From d84e1e2a3573c7dc7d567b5b034c55611fe72ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Wed, 24 Mar 2021 19:41:23 +0100 Subject: [PATCH 001/134] decomp start of unk_02016B94.s --- arm9/arm9.lsf | 1 + arm9/asm/unk_02016B94.s | 109 ------------------------------------- arm9/global.inc | 7 +++ arm9/src/unk_02016B94_c.c | 111 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 109 deletions(-) create mode 100644 arm9/src/unk_02016B94_c.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 6066b7ca6..aa673fa9f 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -49,6 +49,7 @@ Static arm9 Object unk_02015E30.o Object game_init.o Object heap.o + Object unk_02016B94_c.o Object unk_02016B94.o Object unk_0201B1A8.o Object unk_0201B4E8.o diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 3c92650d1..f0dd5cead 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -2,117 +2,8 @@ .include "global.inc" .section .rodata - - .global UNK_020EDB30 -UNK_020EDB30: ; 0x020EDB30 - .byte 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00 - - .global UNK_020EDB38 -UNK_020EDB38: ; 0x020EDB38 - .word FUN_020192D4 - .word FUN_02019358 - .word FUN_020192D4 - - .global UNK_020EDB44 -UNK_020EDB44: ; 0x020EDB44 - .word FUN_020195D0 - .word FUN_0201960C - .word FUN_020195D0 - - .global UNK_020EDB50 -UNK_020EDB50: ; 0x020EDB50 - .word FUN_020195A8 - .word FUN_020195E4 - .word FUN_020195A8 - - .global UNK_020EDB5C -UNK_020EDB5C: ; 0x020EDB5C - .word FUN_020194C8 - .word FUN_0201951C - .word FUN_020194C8 - - .global UNK_020EDB68 -UNK_020EDB68: ; 0x020EDB68 - .word FUN_0201949C - .word FUN_020194E0 - .word FUN_0201949C - - .global UNK_020EDB74 -UNK_020EDB74: ; 0x020EDB74 - .word FUN_020193B4 - .word FUN_02019444 - .word FUN_020193B4 - .text - thumb_func_start FUN_02016B94 -FUN_02016B94: ; 0x02016B94 - push {r3-r5, lr} - mov r1, #0x5a - lsl r1, r1, #0x2 - add r5, r0, #0x0 - bl AllocFromHeap - mov r2, #0x5a - mov r1, #0x0 - lsl r2, r2, #0x2 - add r4, r0, #0x0 - bl memset - str r5, [r4, #0x0] - mov r0, #0x0 - strh r0, [r4, #0x4] - strh r0, [r4, #0x6] - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02016BB8 -FUN_02016BB8: ; 0x02016BB8 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02016BBC -FUN_02016BBC: ; 0x02016BBC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x4] - ldr r2, [r4, #0xc] - bl GX_SetGraphicsMode - ldr r0, [r4, #0x8] - bl GXS_SetGraphicsMode - mov r2, #0x1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0x0] - ldr r0, _02016BF0 ; =0xC7FFFFFF - and r1, r0 - str r1, [r2, #0x0] - ldr r1, [r2, #0x0] - asr r0, r0, #0x3 - and r0, r1 - str r0, [r2, #0x0] - bl GX_DisableEngineALayers - bl GX_DisableEngineBLayers - pop {r4, pc} - nop -_02016BF0: .word 0xC7FFFFFF - - thumb_func_start FUN_02016BF4 -FUN_02016BF4: ; 0x02016BF4 - push {r3, lr} - add r2, r0, #0x0 - cmp r1, #0x0 - bne _02016C0C - ldr r0, [r2, #0x0] - ldr r1, [r2, #0x4] - ldr r2, [r2, #0xc] - bl GX_SetGraphicsMode - bl GX_DisableEngineALayers - pop {r3, pc} -_02016C0C: - ldr r0, [r2, #0x8] - bl GXS_SetGraphicsMode - bl GX_DisableEngineBLayers - pop {r3, pc} - thumb_func_start FUN_02016C18 FUN_02016C18: ; 0x02016C18 push {r3-r7, lr} diff --git a/arm9/global.inc b/arm9/global.inc index 621d07ec8..e96ed1f1c 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8517,3 +8517,10 @@ .extern CARDi_InitCommon .extern MonNotFaintedOrEgg .extern CountAlivePokemon +.extern UNK_020EDB30 +.extern UNK_020EDB38 +.extern UNK_020EDB44 +.extern UNK_020EDB50 +.extern UNK_020EDB5C +.extern UNK_020EDB68 +.extern UNK_020EDB74 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c new file mode 100644 index 000000000..c8fa991cd --- /dev/null +++ b/arm9/src/unk_02016B94_c.c @@ -0,0 +1,111 @@ +#include "global.h" +#include "GX_layers.h" +#include "gx.h" +#include "heap.h" + +extern void FUN_020192D4(); +extern void FUN_02019358(); + +extern void FUN_020195D0(); +extern void FUN_0201960C(); + +extern void FUN_020195A8(); +extern void FUN_020195E4(); + +extern void FUN_020194C8(); +extern void FUN_0201951C(); + +extern void FUN_0201949C(); +extern void FUN_020194E0(); + +extern void FUN_020193B4(); +extern void FUN_02019444(); + +const u8 UNK_020EDB30[8] = { + 0x10, + 0x20, + 0x20, + 0x20, + 0x20, + 0x20, + 0x00, + 0x00, +}; + +void (*const UNK_020EDB5C[])() = { + FUN_020194C8, + FUN_0201951C, + FUN_020194C8, +}; + +void (*const UNK_020EDB50[])() = { + FUN_020195A8, + FUN_020195E4, + FUN_020195A8, +}; + +void (*const UNK_020EDB44[])() = { + FUN_020195D0, + FUN_0201960C, + FUN_020195D0, +}; + +void (*const UNK_020EDB38[])() = { + FUN_020192D4, + FUN_02019358, + FUN_020192D4, +}; + +void (*const UNK_020EDB68[])() = { + FUN_0201949C, + FUN_020194E0, + FUN_0201949C, +}; + +void (*const UNK_020EDB74[])() = { + FUN_020193B4, + FUN_02019444, + FUN_020193B4, +}; + + +THUMB_FUNC void *FUN_02016B94(u32 heap_id) +{ + void *ptr = AllocFromHeap(heap_id, 0x5a << 2); + memset(ptr, 0, 0x5a << 2); + *(u32 *)ptr = heap_id; + *(u16 *)(ptr + 4) = 0; + *(u16 *)(ptr + 6) = 0; + + return ptr; +} + +THUMB_FUNC u32 FUN_02016BB8(u32 *param0) +{ + return *param0; +} + +THUMB_FUNC void FUN_02016BBC(u32 *param0) +{ + GX_SetGraphicsMode(param0[0], param0[1], param0[3]); + GXS_SetGraphicsMode(param0[2]); + reg_GX_DISPCNT &= 0xC7FFFFFF; + reg_GX_DISPCNT &= 0xF8FFFFFF; + + GX_DisableEngineALayers(); + GX_DisableEngineBLayers(); +} + +THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1) +{ + if (param1 == 0) + { + GX_SetGraphicsMode(param0[0], param0[1], param0[3]); + GX_DisableEngineALayers(); + } + else + { + GXS_SetGraphicsMode(param0[2]); + GX_DisableEngineBLayers(); + } +} From 6850ab1f5f9c68553fcc8efb6dd7afe6170a3ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Fri, 26 Mar 2021 18:58:24 +0100 Subject: [PATCH 002/134] nonmatching --- arm9/asm/nonmatchings/FUN_02016C18.s | 652 +++++++++++++++++++++++++++ arm9/asm/unk_02016B94.s | 643 -------------------------- arm9/src/unk_02016B94_c.c | 259 ++++++++++- include/unk_02016B94.h | 64 +++ 4 files changed, 970 insertions(+), 648 deletions(-) create mode 100644 arm9/asm/nonmatchings/FUN_02016C18.s create mode 100644 include/unk_02016B94.h diff --git a/arm9/asm/nonmatchings/FUN_02016C18.s b/arm9/asm/nonmatchings/FUN_02016C18.s new file mode 100644 index 000000000..a18c549e9 --- /dev/null +++ b/arm9/asm/nonmatchings/FUN_02016C18.s @@ -0,0 +1,652 @@ +.section .text + +glabel FUN_02016C18 + +.extern FUN_020177DC +.extern FUN_020179E0 +.extern GX_EngineAToggleLayers +.extern GX_EngineBToggleLayers +.extern AllocFromHeap +.extern MIi_CpuClear16 + + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x10] + ldr r1, [sp, #0x8] + bl FUN_020177DC + add r5, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0x7 + bls _02016C36 + b _0201705A +_02016C36: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02016C42: ; jump table (using 16-bit offset) + .short _02016C52 - _02016C42 - 2; case 0 + .short _02016CAA - _02016C42 - 2; case 1 + .short _02016D02 - _02016C42 - 2; case 2 + .short _02016DA4 - _02016C42 - 2; case 3 + .short _02016E46 - _02016C42 - 2; case 4 + .short _02016E9E - _02016C42 - 2; case 5 + .short _02016EF6 - _02016C42 - 2; case 6 + .short _02016F98 - _02016C42 - 2; case 7 +_02016C52: + mov r0, #0x1 + add r1, r0, #0x0 + bl GX_EngineAToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0xc] + ldr r2, _02016FB4 ; =0x04000008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0xc] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CA0 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CA0: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016CAA: + mov r0, #0x2 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x10] + ldr r2, _02016FB8 ; =0x0400000A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x10] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CF8 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CF8: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016D02: + mov r0, #0x4 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016D18 + cmp r0, #0x1 + beq _02016D3A + cmp r0, #0x2 + beq _02016D5C +_02016D18: + ldrb r1, [r4, #0x12] + ldr r7, _02016FBC ; =0x0400000C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D3A: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FBC ; =0x0400000C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D5C: + ldrb r1, [r4, #0x12] + ldr r7, _02016FBC ; =0x0400000C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016D7C: + ldr r0, _02016FBC ; =0x0400000C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016D9A + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016D9A: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016DA4: + mov r0, #0x8 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016DBA + cmp r0, #0x1 + beq _02016DDC + cmp r0, #0x2 + beq _02016DFE +_02016DBA: + ldrb r1, [r4, #0x12] + ldr r7, _02016FC0 ; =0x0400000E + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DDC: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FC0 ; =0x0400000E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DFE: + ldrb r1, [r4, #0x12] + ldr r7, _02016FC0 ; =0x0400000E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016E1E: + ldr r0, _02016FC0 ; =0x0400000E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016E3C + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016E3C: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016E46: + mov r0, #0x1 + add r1, r0, #0x0 + bl GX_EngineBToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x14] + ldr r2, _02016FC4 ; =0x04001008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x14] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016E94 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016E94: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016E9E: + mov r0, #0x2 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrb r3, [r4, #0x14] + lsl r0, r0, #0x7 + mov r12, r0 + ldr r2, _02016FC8 ; =0x0400100A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + lsl r3, r3, #0xd + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + mov r1, r12 + orr r0, r1 + orr r0, r7 + orr r0, r6 + orr r0, r3 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016EEC + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016EEC: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016EF6: + mov r0, #0x4 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016F0C + cmp r0, #0x1 + beq _02016F2E + cmp r0, #0x2 + beq _02016F50 +_02016F0C: + ldrb r1, [r4, #0x12] + ldr r7, _02016FCC ; =0x0400100C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F2E: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _02016FCC ; =0x0400100C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F50: + ldrb r1, [r4, #0x12] + ldr r7, _02016FCC ; =0x0400100C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016F70: + ldr r0, _02016FCC ; =0x0400100C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016F8E + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016F8E: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016F98: + mov r0, #0x8 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016FAE + cmp r0, #0x1 + beq _02016FF2 + cmp r0, #0x2 + beq _02017014 +_02016FAE: + ldrb r1, [r4, #0x12] + ldr r7, _02016FD0 ; =0x0400100E + b _02016FD4 + .balign 4 +_02016FB4: .word 0x04000008 +_02016FB8: .word 0x0400000A +_02016FBC: .word 0x0400000C +_02016FC0: .word 0x0400000E +_02016FC4: .word 0x04001008 +_02016FC8: .word 0x0400100A +_02016FCC: .word 0x0400100C +_02016FD0: .word 0x0400100E +_02016FD4: + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02016FF2: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, _020170F0 ; =0x0400100E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02017014: + ldrb r1, [r4, #0x12] + ldr r7, _020170F0 ; =0x0400100E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02017034: + ldr r0, _020170F0 ; =0x0400100E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02017052 + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02017052: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] +_0201705A: + ldr r0, [sp, #0x4] + mov r1, #0x2c + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mul r5, r1 + add r2, r0, r5 + mov r3, #0x0 + mov r0, #0x1 + strh r3, [r2, #0x20] + lsl r0, r0, #0xc + str r0, [r2, #0x24] + str r0, [r2, #0x28] + str r3, [r2, #0x2c] + str r3, [r2, #0x30] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020170A2 + ldr r0, [sp, #0x0] + ldr r6, [sp, #0x0] + ldr r0, [r0, #0x0] + add r6, #0x8 + bl AllocFromHeap + str r0, [r6, r5] + ldr r1, [r6, r5] + ldr r2, [r4, #0x8] + mov r0, #0x0 + bl MIi_CpuClear16 + ldr r0, [sp, #0x0] + ldr r2, [r4, #0x8] + add r1, r0, r5 + str r2, [r1, #0xc] + ldr r0, [r4, #0xc] + str r0, [r1, #0x10] + b _020170A8 +_020170A2: + str r3, [r2, #0x8] + str r3, [r2, #0xc] + str r3, [r2, #0x10] +_020170A8: + ldr r0, [sp, #0x0] + ldrb r1, [r4, #0x10] + add r0, r0, r5 + strb r1, [r0, #0x1d] + ldr r1, [sp, #0x8] + strb r1, [r0, #0x1c] + ldrb r1, [r4, #0x11] + strb r1, [r0, #0x1e] + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _020170CA + ldrb r1, [r4, #0x11] + cmp r1, #0x0 + bne _020170CA + mov r1, #0x20 + strb r1, [r0, #0x1f] + b _020170D2 +_020170CA: + ldr r0, [sp, #0x0] + mov r1, #0x40 + add r0, r0, r5 + strb r1, [r0, #0x1f] +_020170D2: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x0] + mov r2, #0x0 + bl FUN_020179E0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x4] + mov r2, #0x3 + bl FUN_020179E0 + add sp, #0x18 + pop {r3-r7, pc} + nop +_020170F0: .word 0x0400100E diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index f0dd5cead..3423d0e77 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -4,649 +4,6 @@ .section .rodata .text - thumb_func_start FUN_02016C18 -FUN_02016C18: ; 0x02016C18 - push {r3-r7, lr} - sub sp, #0x18 - str r1, [sp, #0x4] - str r3, [sp, #0x8] - add r4, r2, #0x0 - str r0, [sp, #0x0] - ldrb r0, [r4, #0x10] - ldr r1, [sp, #0x8] - bl FUN_020177DC - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r0, #0x7 - bls _02016C36 - b _0201705A -_02016C36: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02016C42: ; jump table (using 16-bit offset) - .short _02016C52 - _02016C42 - 2; case 0 - .short _02016CAA - _02016C42 - 2; case 1 - .short _02016D02 - _02016C42 - 2; case 2 - .short _02016DA4 - _02016C42 - 2; case 3 - .short _02016E46 - _02016C42 - 2; case 4 - .short _02016E9E - _02016C42 - 2; case 5 - .short _02016EF6 - _02016C42 - 2; case 6 - .short _02016F98 - _02016C42 - 2; case 7 -_02016C52: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0xc] - ldr r2, _02016FB4 ; =0x04000008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0xc] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CA0 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CA0: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016CAA: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x10] - ldr r2, _02016FB8 ; =0x0400000A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x10] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CF8 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CF8: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016D02: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016D18 - cmp r0, #0x1 - beq _02016D3A - cmp r0, #0x2 - beq _02016D5C -_02016D18: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D3A: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FBC ; =0x0400000C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D5C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016D7C: - ldr r0, _02016FBC ; =0x0400000C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016D9A - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016D9A: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016DA4: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016DBA - cmp r0, #0x1 - beq _02016DDC - cmp r0, #0x2 - beq _02016DFE -_02016DBA: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DDC: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FC0 ; =0x0400000E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DFE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016E1E: - ldr r0, _02016FC0 ; =0x0400000E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016E3C - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016E3C: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016E46: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineBToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x14] - ldr r2, _02016FC4 ; =0x04001008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x14] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016E94 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016E94: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016E9E: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrb r3, [r4, #0x14] - lsl r0, r0, #0x7 - mov r12, r0 - ldr r2, _02016FC8 ; =0x0400100A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - lsl r3, r3, #0xd - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - mov r1, r12 - orr r0, r1 - orr r0, r7 - orr r0, r6 - orr r0, r3 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016EEC - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016EEC: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016EF6: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016F0C - cmp r0, #0x1 - beq _02016F2E - cmp r0, #0x2 - beq _02016F50 -_02016F0C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F2E: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FCC ; =0x0400100C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F50: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016F70: - ldr r0, _02016FCC ; =0x0400100C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016F8E - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016F8E: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016F98: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016FAE - cmp r0, #0x1 - beq _02016FF2 - cmp r0, #0x2 - beq _02017014 -_02016FAE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FD0 ; =0x0400100E - b _02016FD4 - .balign 4 -_02016FB4: .word 0x04000008 -_02016FB8: .word 0x0400000A -_02016FBC: .word 0x0400000C -_02016FC0: .word 0x0400000E -_02016FC4: .word 0x04001008 -_02016FC8: .word 0x0400100A -_02016FCC: .word 0x0400100C -_02016FD0: .word 0x0400100E -_02016FD4: - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02016FF2: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _020170F0 ; =0x0400100E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02017014: - ldrb r1, [r4, #0x12] - ldr r7, _020170F0 ; =0x0400100E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02017034: - ldr r0, _020170F0 ; =0x0400100E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02017052 - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02017052: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] -_0201705A: - ldr r0, [sp, #0x4] - mov r1, #0x2c - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mul r5, r1 - add r2, r0, r5 - mov r3, #0x0 - mov r0, #0x1 - strh r3, [r2, #0x20] - lsl r0, r0, #0xc - str r0, [r2, #0x24] - str r0, [r2, #0x28] - str r3, [r2, #0x2c] - str r3, [r2, #0x30] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020170A2 - ldr r0, [sp, #0x0] - ldr r6, [sp, #0x0] - ldr r0, [r0, #0x0] - add r6, #0x8 - bl AllocFromHeap - str r0, [r6, r5] - ldr r1, [r6, r5] - ldr r2, [r4, #0x8] - mov r0, #0x0 - bl MIi_CpuClear16 - ldr r0, [sp, #0x0] - ldr r2, [r4, #0x8] - add r1, r0, r5 - str r2, [r1, #0xc] - ldr r0, [r4, #0xc] - str r0, [r1, #0x10] - b _020170A8 -_020170A2: - str r3, [r2, #0x8] - str r3, [r2, #0xc] - str r3, [r2, #0x10] -_020170A8: - ldr r0, [sp, #0x0] - ldrb r1, [r4, #0x10] - add r0, r0, r5 - strb r1, [r0, #0x1d] - ldr r1, [sp, #0x8] - strb r1, [r0, #0x1c] - ldrb r1, [r4, #0x11] - strb r1, [r0, #0x1e] - ldr r1, [sp, #0x8] - cmp r1, #0x0 - bne _020170CA - ldrb r1, [r4, #0x11] - cmp r1, #0x0 - bne _020170CA - mov r1, #0x20 - strb r1, [r0, #0x1f] - b _020170D2 -_020170CA: - ldr r0, [sp, #0x0] - mov r1, #0x40 - add r0, r0, r5 - strb r1, [r0, #0x1f] -_020170D2: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x0] - mov r2, #0x0 - bl FUN_020179E0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x4] - mov r2, #0x3 - bl FUN_020179E0 - add sp, #0x18 - pop {r3-r7, pc} - nop -_020170F0: .word 0x0400100E thumb_func_start FUN_020170F4 FUN_020170F4: ; 0x020170F4 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c index c8fa991cd..9d2b91a41 100644 --- a/arm9/src/unk_02016B94_c.c +++ b/arm9/src/unk_02016B94_c.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "GX_layers.h" -#include "gx.h" -#include "heap.h" +#include "unk_02016B94.h" extern void FUN_020192D4(); extern void FUN_02019358(); @@ -21,6 +18,10 @@ extern void FUN_020194E0(); extern void FUN_020193B4(); extern void FUN_02019444(); + +extern u8 FUN_020177DC(u8 param0, u32 param1); +extern void FUN_020179E0(u32 param0, u32 param1, u32 param2, u32 val); + const u8 UNK_020EDB30[8] = { 0x10, 0x20, @@ -68,7 +69,6 @@ void (*const UNK_020EDB74[])() = { FUN_020193B4, }; - THUMB_FUNC void *FUN_02016B94(u32 heap_id) { void *ptr = AllocFromHeap(heap_id, 0x5a << 2); @@ -109,3 +109,252 @@ THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1) GX_DisableEngineBLayers(); } } + + +#ifdef NONMATCHING +THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) +{ + u8 res = FUN_020177DC(param2->unk10, param3); + switch (param1) + { + case 0: + GX_EngineAToggleLayers(1, GX_LAYER_TOGGLE_ON); + + reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2_BG0CNT = (reg_G2_BG0CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2_BG0CNT |= 0x40; + } + else + { + reg_G2_BG0CNT &= ~0x40; + } + + break; + + case 1: + GX_EngineAToggleLayers(2, GX_LAYER_TOGGLE_ON); + reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2_BG1CNT = (reg_G2_BG1CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2_BG1CNT |= 0x40; + } + else + { + reg_G2_BG1CNT &= ~0x40; + } + + break; + + case 2: + GX_EngineAToggleLayers(4, GX_LAYER_TOGGLE_ON); + switch (param3) + { + default: + case 0: + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + break; + case 1: + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + case 2: + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + } + + reg_G2_BG2CNT = (reg_G2_BG2CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2_BG2CNT |= 0x40; + } + else + { + reg_G2_BG2CNT &= ~0x40; + } + + break; + + case 3: + GX_EngineAToggleLayers(8, GX_LAYER_TOGGLE_ON); + + switch (param3) + { + default: + case 0: + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + break; + case 1: + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + case 2: + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + } + + reg_G2_BG3CNT = (reg_G2_BG3CNT & ~3) | (param2->unk15); + if (param2->unk18 != 0) + { + reg_G2_BG3CNT |= 0x40; + } + else + { + reg_G2_BG3CNT &= ~0x40; + } + break; + + case 4: + GX_EngineBToggleLayers(1, GX_LAYER_TOGGLE_ON); + + reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + + reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2S_DB_BG0CNT |= 0x40; + } + else + { + reg_G2S_DB_BG0CNT &= ~0x40; + } + + break; + + case 5: + GX_EngineBToggleLayers(2, GX_LAYER_TOGGLE_ON); + + reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + + reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2S_DB_BG1CNT |= 0x40; + } + else + { + reg_G2S_DB_BG1CNT &= ~0x40; + } + + break; + + case 6: + GX_EngineBToggleLayers(4, GX_LAYER_TOGGLE_ON); + + switch (param3) + { + default: + case 0: + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + break; + case 1: + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + case 2: + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + } + + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & ~3) | (param2->unk15); + + if (param2->unk18 != 0) + { + reg_G2S_DB_BG2CNT |= 0x40; + } + else + { + reg_G2S_DB_BG2CNT &= ~0x40; + } + + break; + case 7: + GX_EngineBToggleLayers(8, GX_LAYER_TOGGLE_ON); + switch (param3) + { + default: + case 0: + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + break; + case 1: + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + case 2: + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | + (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + break; + } + + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & ~3) | (param2->unk15); + if (param2->unk18 != 0) + { + reg_G2S_DB_BG3CNT |= 0x40; + } + else + { + reg_G2S_DB_BG3CNT &= ~0x40; + } + break; + } + + param0->unk08[param1].unk20 = 0; + param0->unk08[param1].unk24 = 0x1000; + param0->unk08[param1].unk28 = 0x1000; + param0->unk08[param1].unk2c = 0; + param0->unk08[param1].unk30 = 0; + + if (param2->unk08 != 0) + { + param0->unk08[param1].unk08 = AllocFromHeap(param0->unk00, param2->unk08); + + MIi_CpuClear16(0, param0->unk08[param1].unk08, param2->unk08); + + param0->unk08[param1].unk0c = param2->unk08; + param0->unk08[param1].unk10 = param2->unk0c; + } + else + { + param0->unk08[param1].unk08 = 0; + param0->unk08[param1].unk0c = 0; + param0->unk08[param1].unk10 = 0; + } + + param0->unk08[param1].unk1d = param2->unk10; + param0->unk08[param1].unk1c = param3; + param0->unk08[param1].unk1e = param2->unk11; + + if (param3 == 0 && param2->unk11 == 0) + { + param0->unk08[param1].unk1f = 0x20; + } + else + { + param0->unk08[param1].unk1f = 0x40; + } + + FUN_020179E0(param0, param1, 0, param2->unk00); + FUN_020179E0(param0, param1, 3, param2->unk04); +} +#else +GLOBAL_ASM("asm/nonmatchings/FUN_02016C18.s") +#endif + diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h new file mode 100644 index 000000000..b1dbfcda8 --- /dev/null +++ b/include/unk_02016B94.h @@ -0,0 +1,64 @@ +#ifndef POKEDIAMOND_UNK_02016B94_H +#define POKEDIAMOND_UNK_02016B94_H + + +#include "global.h" +#include "GX_layers.h" +#include "gx.h" +#include "heap.h" + +struct UnkStruct1 { + u32 unk00; + u32 unk04; + u32 unk08; + u32 unk0c; + + u8 unk10; + u8 unk11; + u8 unk12; + u8 unk13; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; //probably paddding + u32 unk18; +}; + + + +struct UnkStruct2 { + u32 unk00; + u32 unk04; + + + struct InnerStruct { + u32 unk08; + u32 unk0c; + u32 unk10; + + u32 unk14; + u32 unk18; + + u8 unk1c; + u8 unk1d; + u8 unk1e; + u8 unk1f; + u16 unk20; + u16 unk22; //probably padding + u32 unk24; + u32 unk28; + u32 unk2c; + u32 unk30; + } unk08[8]; +}; + + +THUMB_FUNC void *FUN_02016B94(u32 heap_id); +THUMB_FUNC u32 FUN_02016BB8(u32 *param0); +THUMB_FUNC void FUN_02016BBC(u32 *param0); +THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1); +THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3); + + + +#endif //POKEDIAMOND_UNK_02016B94_H \ No newline at end of file From 4ed9bcf63ab72b401ef0bf70b9152754c53ad2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 27 Mar 2021 18:38:30 +0100 Subject: [PATCH 003/134] asm_processor: support asm comments with ; --- tools/asm_processor/asm_processor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/asm_processor/asm_processor.py b/tools/asm_processor/asm_processor.py index ec01c68e2..d97dfe868 100755 --- a/tools/asm_processor/asm_processor.py +++ b/tools/asm_processor/asm_processor.py @@ -375,14 +375,14 @@ def is_temp_name(name): # https://stackoverflow.com/a/241506 def re_comment_replacer(match): s = match.group(0) - if s[0] in "/#": + if s[0] in "/#;": return " " else: return s re_comment_or_string = re.compile( - r'#.*|/\*.*?\*/|"(?:\\.|[^\\"])*"' + r';.*|#.*|/\*.*?\*/|"(?:\\.|[^\\"])*"' ) From 352625ff40a989775c396b1db2c6e4fcc22b1967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 27 Mar 2021 18:38:59 +0100 Subject: [PATCH 004/134] asm_processor: count bls, .word and .extern correctly --- tools/asm_processor/asm_processor.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/asm_processor/asm_processor.py b/tools/asm_processor/asm_processor.py index d97dfe868..13ebf1069 100755 --- a/tools/asm_processor/asm_processor.py +++ b/tools/asm_processor/asm_processor.py @@ -584,8 +584,12 @@ class GlobalAsmBlock: elif line.startswith('.byte'): self.add_sized(len(line.split(',')), real_line) # Branches are 4 bytes long - elif line.startswith('bl'): + elif line.startswith('bl') and not line.startswith('bls'): self.add_sized(4, real_line) + elif line.startswith('.word'): + self.add_sized(4, real_line) + elif line.startswith('.extern'): + pass else: # Unfortunately, macros are hard to support for .rodata -- # we don't know how how space they will expand to before From e831892511c1440df4e20f5ae1478c2b86d17060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 27 Mar 2021 18:39:33 +0100 Subject: [PATCH 005/134] asm_processor: split padding functions are broken so set a high limit --- tools/asm_processor/asm_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/asm_processor/asm_processor.py b/tools/asm_processor/asm_processor.py index 13ebf1069..f00542046 100755 --- a/tools/asm_processor/asm_processor.py +++ b/tools/asm_processor/asm_processor.py @@ -9,7 +9,7 @@ import os from collections import namedtuple, defaultdict from io import StringIO -MAX_FN_SIZE = 100 +MAX_FN_SIZE = 3000 SLOW_CHECKS = False EI_NIDENT = 16 From da21d9dc67083e0076e478e332fbda9a9e493e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 27 Mar 2021 18:40:05 +0100 Subject: [PATCH 006/134] asm_processor: fix number of skip instructions --- tools/asm_processor/asm_processor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/asm_processor/asm_processor.py b/tools/asm_processor/asm_processor.py index f00542046..5c909388d 100755 --- a/tools/asm_processor/asm_processor.py +++ b/tools/asm_processor/asm_processor.py @@ -824,7 +824,7 @@ def repl_float_hex(m): def parse_source(f, opt, framepointer, input_enc, output_enc, print_source=None): opt = "O4" min_instr_count = 3 # idk - skip_instr_count = 2 # idk + skip_instr_count = 3 # mandatory instructions: push, pop and mov r0, 0 use_jtbl_for_rodata = False if opt in ['O2', 'g3'] and not framepointer: From 2023f223aa3cfce3d8e17cddf3833dc8510c443e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Fri, 16 Apr 2021 11:57:16 +0200 Subject: [PATCH 007/134] decomp unk_0202D858.s --- arm9/asm/unk_0202D858.s | 90 -------------------------------------- arm9/src/unk_0202D858.c | 96 +++++++++++++++++++++++++++++++++++++++++ arm9/src/unk_0202F150.c | 18 ++++---- include/unk_0202D858.h | 10 +++++ include/unk_0202F150.h | 5 ++- 5 files changed, 117 insertions(+), 102 deletions(-) delete mode 100644 arm9/asm/unk_0202D858.s create mode 100644 arm9/src/unk_0202D858.c create mode 100644 include/unk_0202D858.h diff --git a/arm9/asm/unk_0202D858.s b/arm9/asm/unk_0202D858.s deleted file mode 100644 index e678326de..000000000 --- a/arm9/asm/unk_0202D858.s +++ /dev/null @@ -1,90 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020EEB04 -UNK_020EEB04: ; 0x020EEB04 - .byte 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x03, 0x04, 0x03, 0x04, 0x07, 0x03, 0x07, 0x04, 0x01, 0x04 - .byte 0x01, 0x01, 0x04, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00 - - .global UNK_020EEB1E -UNK_020EEB1E: ; 0x020EEB1E - .byte 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00 - - .text - - thumb_func_start FUN_0202D858 -FUN_0202D858: ; 0x0202D858 - push {r3-r4, lr} - sub sp, #0x1c - ldr r3, _0202D880 ; =UNK_020EEB04 - add r4, r0, #0x0 - add r2, sp, #0x0 - mov r1, #0x1a -_0202D864: - ldrb r0, [r3, #0x0] - add r3, r3, #0x1 - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0202D864 - cmp r4, #0x1a - blo _0202D878 - bl ErrorHandling -_0202D878: - add r0, sp, #0x0 - ldrb r0, [r0, r4] - add sp, #0x1c - pop {r3-r4, pc} - .balign 4 -_0202D880: .word UNK_020EEB04 - - thumb_func_start FUN_0202D884 -FUN_0202D884: ; 0x0202D884 - push {r3-r4, lr} - sub sp, #0x1c - ldr r3, _0202D8AC ; =UNK_020EEB1E - add r4, r0, #0x0 - add r2, sp, #0x0 - mov r1, #0x1a -_0202D890: - ldrb r0, [r3, #0x0] - add r3, r3, #0x1 - strb r0, [r2, #0x0] - add r2, r2, #0x1 - sub r1, r1, #0x1 - bne _0202D890 - cmp r4, #0x1a - blo _0202D8A4 - bl ErrorHandling -_0202D8A4: - add r0, sp, #0x0 - ldrb r0, [r0, r4] - add sp, #0x1c - pop {r3-r4, pc} - .balign 4 -_0202D8AC: .word UNK_020EEB1E - - thumb_func_start FUN_0202D8B0 -FUN_0202D8B0: ; 0x0202D8B0 - cmp r0, #0xd - bgt _0202D8C4 - cmp r0, #0x7 - blt _0202D8CC - beq _0202D8C8 - cmp r0, #0x9 - beq _0202D8C8 - cmp r0, #0xd - beq _0202D8C8 - b _0202D8CC -_0202D8C4: - cmp r0, #0x12 - bne _0202D8CC -_0202D8C8: - mov r0, #0x1 - bx lr -_0202D8CC: - mov r0, #0x0 - bx lr diff --git a/arm9/src/unk_0202D858.c b/arm9/src/unk_0202D858.c new file mode 100644 index 000000000..45c7c7763 --- /dev/null +++ b/arm9/src/unk_0202D858.c @@ -0,0 +1,96 @@ +#include "unk_0202D858.h" + +struct UnkStruct_0202D858 +{ + u8 unk00[0x1a]; +}; + +static const struct UnkStruct_0202D858 UNK_020EEB04 = { { + 0x01, + 0x01, + 0x01, + 0x01, + 0x03, + 0x03, + 0x03, + 0x04, + 0x03, + 0x04, + 0x07, + 0x03, + 0x07, + 0x04, + 0x01, + 0x04, + 0x01, + 0x01, + 0x04, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x00, + 0x00, +} }; + +static const struct UnkStruct_0202D858 UNK_020EEB1E = { { + 0x01, + 0x01, + 0x01, + 0x01, + 0x03, + 0x03, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x01, + 0x00, + 0x00, +} }; + +THUMB_FUNC u8 FUN_0202D858(u16 param0) +{ + struct UnkStruct_0202D858 st0 = UNK_020EEB04; + + GF_ASSERT(param0 < 0x1a); + + return st0.unk00[param0]; +} + +THUMB_FUNC u8 FUN_0202D884(u16 param0) +{ + struct UnkStruct_0202D858 st0 = UNK_020EEB1E; + + GF_ASSERT(param0 < 0x1a); + + return st0.unk00[param0]; +} + +THUMB_FUNC u32 FUN_0202D8B0(int param0) +{ + switch (param0) + { + case 0x7: + case 0x9: + case 0xd: + case 0x12: + return 1; + } + + return 0; +} diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index 23a7de85e..d36c5794e 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -9,7 +9,6 @@ vu8 UNK_02105D58 = 4; vu8 UNK_02105D59 = 4; extern int FUN_02033534(); -extern u32 FUN_0202D858(u16 param0); extern void FUN_02031480(u32 param0); extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2); extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); @@ -57,7 +56,6 @@ extern u32 FUN_0202EDF8(); extern u16 FUN_0202D19C(); extern void FUN_020334E8(u32 param0, u32 param1); extern u32 FUN_0202EE60(); -extern u32 FUN_0202D884(u16 param0); extern void FUN_0202F05C(); extern void GF_RTC_CopyDateTime(RTCDate *, RTCTime *); extern void FUN_0202D830(u8 *param0, u32 param1); @@ -69,7 +67,7 @@ THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1) UNK_021C59F4.unk00 = 0; if (param0 != 0) { - u32 res = FUN_0202D858((u16)FUN_02033534()) + 1; + int res = FUN_0202D858((u16)FUN_02033534()) + 1; if (UNK_021C59F4.unk04 != 0) { @@ -148,7 +146,7 @@ THUMB_FUNC void FUN_0202F2F0() UNK_021C59F4.unk04->unk67F = 0; UNK_021C59F4.unk04->unk680 = 0; - int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int res = FUN_0202D858((u16)FUN_02033534()) + 1; MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res); @@ -236,7 +234,7 @@ THUMB_FUNC void FUN_0202F5A4() UNK_021C59F4.unk04->unk62C = 0; UNK_021C59F4.unk04->unk62D = 0; - int res = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int res = FUN_0202D858((u16)FUN_02033534()) + 1; MI_CpuFill8(UNK_021C59F4.unk04->unk458, 0, UNK_021C59F4.unk04->unk658 * res); @@ -883,7 +881,7 @@ THUMB_FUNC void FUN_0202FEEC() } int st0 = FUN_02031228((u16)FUN_02033534()); - int r6 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int r6 = FUN_0202D858((u16)FUN_02033534()) + 1; if (UNK_02105D59 == 2 || UNK_02105D59 == 0) { @@ -1100,7 +1098,7 @@ THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2) if (FUN_0202FA28() == 1) { int r6 = FUN_02031228((u16)FUN_02033534()); - int st4 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int st4 = FUN_0202D858((u16)FUN_02033534()) + 1; int r4 = 0; while (r4 < st4) @@ -1946,7 +1944,7 @@ THUMB_FUNC void FUN_02030DFC() { if (UNK_021C59F4.unk04->unk68B == 0) { - int r7 = (int)FUN_0202D858((u16)FUN_02033534()) + 1; + int r7 = FUN_0202D858((u16)FUN_02033534()) + 1; int r4; for (r4 = 0; r4 < r7; r4++) { @@ -2258,12 +2256,12 @@ THUMB_FUNC int FUN_02031228(u16 param0) return 0x26; } -THUMB_FUNC u32 FUN_02031248(u32 param0) +THUMB_FUNC int FUN_02031248(u32 param0) { return FUN_0202D858((u16)param0) + 1; } -THUMB_FUNC u32 FUN_02031258(u32 param0) +THUMB_FUNC int FUN_02031258(u32 param0) { return FUN_0202D884((u16)param0) + 1; } diff --git a/include/unk_0202D858.h b/include/unk_0202D858.h new file mode 100644 index 000000000..210821d07 --- /dev/null +++ b/include/unk_0202D858.h @@ -0,0 +1,10 @@ +#ifndef POKEDIAMOND_UNK_0202D858_H +#define POKEDIAMOND_UNK_0202D858_H + +#include "global.h" + +THUMB_FUNC u8 FUN_0202D858(u16 param0); +THUMB_FUNC u8 FUN_0202D884(u16 param0); +THUMB_FUNC u32 FUN_0202D8B0(int param0); + +#endif // POKEDIAMOND_UNK_0202D858_H diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 3996c1c81..77fb4f7de 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -6,6 +6,7 @@ #include "RTC_api.h" #include "heap.h" #include "main.h" +#include "unk_0202D858.h" struct UnkStruct0202F150_sub1 { @@ -163,8 +164,8 @@ THUMB_FUNC u32 FUN_020311DC(u32 param0); THUMB_FUNC u32 FUN_020311E8(); THUMB_FUNC u32 FUN_020311F0(); THUMB_FUNC int FUN_02031228(u16 param0); -THUMB_FUNC u32 FUN_02031248(u32 param0); -THUMB_FUNC u32 FUN_02031258(u32 param0); +THUMB_FUNC int FUN_02031248(u32 param0); +THUMB_FUNC int FUN_02031258(u32 param0); THUMB_FUNC void FUN_02031268(u8 param0); THUMB_FUNC u8 FUN_02031280(); THUMB_FUNC void FUN_0203129C(); From dcb4eea28034cb3be345736dbc9bb223f3ace92a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Fri, 16 Apr 2021 15:19:40 +0200 Subject: [PATCH 008/134] decompile unk_02031480.s --- arm9/asm/unk_02031480.s | 405 ---------------------------------------- arm9/src/unk_02031480.c | 213 +++++++++++++++++++++ include/unk_02031480.h | 30 +++ 3 files changed, 243 insertions(+), 405 deletions(-) delete mode 100644 arm9/asm/unk_02031480.s create mode 100644 arm9/src/unk_02031480.c create mode 100644 include/unk_02031480.h diff --git a/arm9/asm/unk_02031480.s b/arm9/asm/unk_02031480.s deleted file mode 100644 index 58ff49964..000000000 --- a/arm9/asm/unk_02031480.s +++ /dev/null @@ -1,405 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .bss - - .global UNK_021C59FC -UNK_021C59FC: ; 0x021C59FC - .space 0x4 - - .text - - thumb_func_start FUN_02031480 -FUN_02031480: ; 0x02031480 - push {r4, lr} - ldr r1, _020314C8 ; =UNK_021C59FC - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _0203149C - ldr r1, _020314CC ; =0x00000253 - bl AllocFromHeap - ldr r1, _020314C8 ; =UNK_021C59FC - ldr r2, _020314CC ; =0x00000253 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 -_0203149C: - ldr r1, _020314C8 ; =UNK_021C59FC - mov r3, #0x0 - mov r0, #0xff -_020314A2: - ldr r2, [r1, #0x0] - add r2, r2, r3 - add r3, r3, #0x1 - strb r0, [r2, #0x10] - cmp r3, #0x8 - blt _020314A2 - ldr r3, _020314C8 ; =UNK_021C59FC - mov r1, #0x25 - ldr r2, [r3, #0x0] - lsl r1, r1, #0x4 - strb r0, [r2, r1] - ldr r4, [r3, #0x0] - add r2, r1, #0x1 - strb r0, [r4, r2] - ldr r2, [r3, #0x0] - mov r4, #0x0 - add r0, r1, #0x2 - strb r4, [r2, r0] - pop {r4, pc} - .balign 4 -_020314C8: .word UNK_021C59FC -_020314CC: .word 0x00000253 - - thumb_func_start FUN_020314D0 -FUN_020314D0: ; 0x020314D0 - push {r3, lr} - ldr r0, _020314E4 ; =UNK_021C59FC - ldr r0, [r0, #0x0] - bl FreeToHeap - ldr r0, _020314E4 ; =UNK_021C59FC - mov r1, #0x0 - str r1, [r0, #0x0] - pop {r3, pc} - nop -_020314E4: .word UNK_021C59FC - - thumb_func_start FUN_020314E8 -FUN_020314E8: ; 0x020314E8 - ldr r0, _020314F8 ; =UNK_021C59FC - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020314F4 - mov r0, #0x1 - bx lr -_020314F4: - mov r0, #0x0 - bx lr - .balign 4 -_020314F8: .word UNK_021C59FC - - thumb_func_start FUN_020314FC -FUN_020314FC: ; 0x020314FC - push {r3-r6, lr} - sub sp, #0x4 - ldrb r1, [r2, #0x0] - add r5, r0, #0x0 - add r0, sp, #0x0 - strb r1, [r0, #0x0] - bl FUN_02031190 - cmp r0, #0x0 - bne _02031556 - add r0, sp, #0x0 - strb r5, [r0, #0x1] - ldrb r1, [r0, #0x0] - strb r1, [r0, #0x2] - add r1, sp, #0x0 - mov r0, #0x12 - add r1, #0x1 - bl FUN_02030C4C - ldr r6, _0203155C ; =UNK_021C59FC - add r4, sp, #0x0 - ldr r0, [r6, #0x0] - ldrb r1, [r4, #0x0] - add r0, r0, r5 - mov r5, #0x0 - strb r1, [r0, #0x10] -_02031530: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02031548 - ldr r0, [r6, #0x0] - ldrb r1, [r4, #0x0] - add r0, r0, r5 - ldrb r0, [r0, #0x10] - cmp r1, r0 - bne _02031556 -_02031548: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _02031530 - mov r0, #0x11 - add r1, sp, #0x0 - bl FUN_02030C4C -_02031556: - add sp, #0x4 - pop {r3-r6, pc} - nop -_0203155C: .word UNK_021C59FC - - thumb_func_start FUN_02031560 -FUN_02031560: ; 0x02031560 - ldr r0, _02031570 ; =UNK_021C59FC - ldrb r3, [r2, #0x1] - ldr r1, [r0, #0x0] - ldrb r0, [r2, #0x0] - add r0, r1, r0 - strb r3, [r0, #0x10] - bx lr - nop -_02031570: .word UNK_021C59FC - - thumb_func_start FUN_02031574 -FUN_02031574: ; 0x02031574 - ldr r0, _02031584 ; =UNK_021C59FC - ldrb r2, [r2, #0x0] - ldr r1, [r0, #0x0] - mov r0, #0x25 - lsl r0, r0, #0x4 - strb r2, [r1, r0] - bx lr - nop -_02031584: .word UNK_021C59FC - - thumb_func_start FUN_02031588 -FUN_02031588: ; 0x02031588 - ldr r2, _0203159C ; =UNK_021C59FC - ldr r1, _020315A0 ; =0x00000251 - ldr r3, [r2, #0x0] - strb r0, [r3, r1] - ldr r2, [r2, #0x0] - mov r3, #0x1 - add r0, r1, #0x1 - strb r3, [r2, r0] - bx lr - nop -_0203159C: .word UNK_021C59FC -_020315A0: .word 0x00000251 - - thumb_func_start FUN_020315A4 -FUN_020315A4: ; 0x020315A4 - push {r3, lr} - ldr r0, _020315D0 ; =UNK_021C59FC - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _020315CE - ldr r1, _020315D4 ; =0x00000252 - ldrb r0, [r2, r1] - cmp r0, #0x0 - beq _020315CE - sub r1, r1, #0x1 - mov r0, #0x10 - add r1, r2, r1 - bl FUN_020311D0 - cmp r0, #0x0 - beq _020315CE - ldr r0, _020315D0 ; =UNK_021C59FC - mov r2, #0x0 - ldr r1, [r0, #0x0] - ldr r0, _020315D4 ; =0x00000252 - strb r2, [r1, r0] -_020315CE: - pop {r3, pc} - .balign 4 -_020315D0: .word UNK_021C59FC -_020315D4: .word 0x00000252 - - thumb_func_start FUN_020315D8 -FUN_020315D8: ; 0x020315D8 - ldr r1, _020315F8 ; =UNK_021C59FC - ldr r2, [r1, #0x0] - cmp r2, #0x0 - bne _020315E4 - mov r0, #0x1 - bx lr -_020315E4: - mov r1, #0x25 - lsl r1, r1, #0x4 - ldrb r1, [r2, r1] - cmp r1, r0 - bne _020315F2 - mov r0, #0x1 - bx lr -_020315F2: - mov r0, #0x0 - bx lr - nop -_020315F8: .word UNK_021C59FC - - thumb_func_start FUN_020315FC -FUN_020315FC: ; 0x020315FC - ldr r1, _02031608 ; =UNK_021C59FC - ldr r1, [r1, #0x0] - add r0, r1, r0 - ldrb r0, [r0, #0x10] - bx lr - nop -_02031608: .word UNK_021C59FC - - thumb_func_start FUN_0203160C -FUN_0203160C: ; 0x0203160C - push {r3-r4} - lsl r4, r0, #0x1 - ldr r0, _02031624 ; =UNK_021C59FC - ldrb r3, [r2, #0x0] - ldr r1, [r0, #0x0] - strb r3, [r1, r4] - ldr r0, [r0, #0x0] - ldrb r1, [r2, #0x1] - add r0, r0, r4 - strb r1, [r0, #0x1] - pop {r3-r4} - bx lr - .balign 4 -_02031624: .word UNK_021C59FC - - thumb_func_start FUN_02031628 -FUN_02031628: ; 0x02031628 - mov r0, #0x2 - bx lr - - thumb_func_start FUN_0203162C -FUN_0203162C: ; 0x0203162C - push {r3, lr} - add r2, sp, #0x0 - strb r0, [r2, #0x0] - strb r1, [r2, #0x1] - mov r0, #0x13 - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02031640 -FUN_02031640: ; 0x02031640 - ldr r2, _02031664 ; =UNK_021C59FC - ldr r3, [r2, #0x0] - cmp r3, #0x0 - bne _0203164E - mov r0, #0x0 - mvn r0, r0 - bx lr -_0203164E: - lsl r2, r0, #0x1 - ldrb r0, [r3, r2] - cmp r1, r0 - bne _0203165C - add r0, r3, r2 - ldrb r0, [r0, #0x1] - bx lr -_0203165C: - mov r0, #0x0 - mvn r0, r0 - bx lr - nop -_02031664: .word UNK_021C59FC - - thumb_func_start FUN_02031668 -FUN_02031668: ; 0x02031668 - push {r3-r7, lr} - mov r4, #0x0 - ldr r6, _02031688 ; =UNK_021C59FC - add r5, r4, #0x0 - add r7, r4, #0x0 -_02031672: - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r0, r0, r5 - mov r2, #0x2 - bl MI_CpuFill8 - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, #0x8 - blt _02031672 - pop {r3-r7, pc} - .balign 4 -_02031688: .word UNK_021C59FC - - thumb_func_start FUN_0203168C -FUN_0203168C: ; 0x0203168C - push {r3-r4} - mov r4, #0x0 - mov r0, #0x92 - ldr r1, _020316A8 ; =UNK_021C59FC - add r3, r4, #0x0 - lsl r0, r0, #0x2 -_02031698: - ldr r2, [r1, #0x0] - add r2, r2, r4 - add r4, r4, #0x1 - strb r3, [r2, r0] - cmp r4, #0x8 - blt _02031698 - pop {r3-r4} - bx lr - .balign 4 -_020316A8: .word UNK_021C59FC - - thumb_func_start FUN_020316AC -FUN_020316AC: ; 0x020316AC - push {r4, lr} - ldr r2, _020316DC ; =UNK_021C59FC - ldr r3, [r2, #0x0] - cmp r3, #0x0 - beq _020316D8 - add r4, r0, #0x0 - mov r2, #0x46 - mul r4, r2 - add r3, #0x18 - add r0, r1, #0x0 - add r1, r3, r4 - bl MI_CpuCopy8 - ldr r1, _020316DC ; =UNK_021C59FC - mov r0, #0x14 - ldr r1, [r1, #0x0] - add r1, #0x18 - add r1, r1, r4 - bl FUN_020311D0 - mov r0, #0x1 - pop {r4, pc} -_020316D8: - mov r0, #0x0 - pop {r4, pc} - .balign 4 -_020316DC: .word UNK_021C59FC - - thumb_func_start FUN_020316E0 -FUN_020316E0: ; 0x020316E0 - ldr r1, _02031700 ; =UNK_021C59FC - ldr r3, [r1, #0x0] - mov r1, #0x92 - add r2, r3, r0 - lsl r1, r1, #0x2 - ldrb r1, [r2, r1] - cmp r1, #0x0 - beq _020316FA - mov r1, #0x46 - add r3, #0x18 - mul r1, r0 - add r0, r3, r1 - bx lr -_020316FA: - mov r0, #0x0 - bx lr - nop -_02031700: .word UNK_021C59FC - - thumb_func_start FUN_02031704 -FUN_02031704: ; 0x02031704 - push {r3-r5, lr} - ldr r3, _0203172C ; =UNK_021C59FC - add r1, r0, #0x0 - ldr r0, [r3, #0x0] - mov r5, #0x1 - add r4, r0, r1 - mov r0, #0x92 - lsl r0, r0, #0x2 - strb r5, [r4, r0] - ldr r4, [r3, #0x0] - add r0, r2, #0x0 - mov r2, #0x46 - add r3, r1, #0x0 - add r4, #0x18 - mul r3, r2 - add r1, r4, r3 - bl MI_CpuCopy8 - pop {r3-r5, pc} - nop -_0203172C: .word UNK_021C59FC - - thumb_func_start FUN_02031730 -FUN_02031730: ; 0x02031730 - mov r0, #0x46 - bx lr diff --git a/arm9/src/unk_02031480.c b/arm9/src/unk_02031480.c new file mode 100644 index 000000000..a8ce64744 --- /dev/null +++ b/arm9/src/unk_02031480.c @@ -0,0 +1,213 @@ +#include "unk_02031480.h" + +struct UnkStruct_02031480 +{ + u8 unk000[8][2]; + u8 unk010[8]; + u8 unk018[8][70]; + u8 unk248[8]; + u8 unk250; + u8 unk251; + u8 unk252; +}; + +static struct UnkStruct_02031480 *UNK_021C59FC; + +THUMB_FUNC void FUN_02031480(u32 heap_id) +{ + if (UNK_021C59FC == NULL) + { + UNK_021C59FC = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02031480)); + MI_CpuFill8(UNK_021C59FC, 0, sizeof(struct UnkStruct_02031480)); + } + + for (int i = 0; i < 8; i++) + { + UNK_021C59FC->unk010[i] = 0xff; + } + UNK_021C59FC->unk250 = 0xff; + UNK_021C59FC->unk251 = 0xff; + UNK_021C59FC->unk252 = 0x00; +} + +THUMB_FUNC void FUN_020314D0() +{ + FreeToHeap(UNK_021C59FC); + UNK_021C59FC = NULL; +} + +THUMB_FUNC BOOL FUN_020314E8() +{ + if (UNK_021C59FC != NULL) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_020314FC(u8 param0, u32 unused, u8 *param2) +{ +#pragma unused(unused) + u8 st0[3]; + + st0[0] = param2[0]; + + if (FUN_02031190() == 0) + { + + st0[1] = param0; + st0[2] = st0[0]; + + FUN_02030C4C(0x12, &st0[1]); + + UNK_021C59FC->unk010[param0] = st0[0]; + + for (int i = 0; i < 8; i++) + { + if (FUN_02030E7C((u16)i) != 0) + { + if (st0[0] != UNK_021C59FC->unk010[i]) + { + return; + } + } + } + + FUN_02030C4C(0x11, &st0[0]); + } +} + +THUMB_FUNC void FUN_02031560(u32 unused1, u32 unused2, u8 *param2) +{ +#pragma unused(unused1) +#pragma unused(unused2) + UNK_021C59FC->unk010[param2[0]] = param2[1]; +} + +THUMB_FUNC void FUN_02031574(u32 unused1, u32 unused2, u8 *param2) +{ +#pragma unused(unused1) +#pragma unused(unused2) + UNK_021C59FC->unk250 = *param2; +} + +THUMB_FUNC void FUN_02031588(u8 param0) +{ + UNK_021C59FC->unk251 = param0; + UNK_021C59FC->unk252 = 1; +} + +THUMB_FUNC void FUN_020315A4() +{ + if (UNK_021C59FC != NULL && UNK_021C59FC->unk252 != 0 && + FUN_020311D0(0x10, &UNK_021C59FC->unk251)) + { + UNK_021C59FC->unk252 = 0; + } +} + +THUMB_FUNC BOOL FUN_020315D8(u8 param0) +{ + if (UNK_021C59FC == NULL) + { + return TRUE; + } + + if (UNK_021C59FC->unk250 == param0) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC u8 FUN_020315FC(u8 index) +{ + return UNK_021C59FC->unk010[index]; +} + +THUMB_FUNC void FUN_0203160C(u32 param0, u32 unused, u8 *param2) +{ +#pragma unused(unused) + UNK_021C59FC->unk000[param0][0] = param2[0]; + UNK_021C59FC->unk000[param0][1] = param2[1]; +} + +THUMB_FUNC u32 FUN_02031628() +{ + return 2; +} + +THUMB_FUNC void FUN_0203162C(u8 param0, u8 param1) +{ + u8 st0[2] = { param0, param1 }; + + FUN_020311D0(0x13, st0); +} + +THUMB_FUNC int FUN_02031640(u32 param0, u8 param1) +{ + if (UNK_021C59FC == NULL) + { + return -1; + } + + if (UNK_021C59FC->unk000[param0][0] == param1) + { + return UNK_021C59FC->unk000[param0][1]; + } + + return -1; +} + +THUMB_FUNC void FUN_02031668() +{ + for (int i = 0; i < 8; i++) + { + MI_CpuFill8(UNK_021C59FC->unk000[i], 0, 2); + } +} + +THUMB_FUNC void FUN_0203168C() +{ + for (int i = 0; i < 8; i++) + { + UNK_021C59FC->unk248[i] = 0; + } +} + +THUMB_FUNC BOOL FUN_020316AC(u32 param0, void *param1) +{ + if (UNK_021C59FC != NULL) + { + MI_CpuCopy8(param1, UNK_021C59FC->unk018[param0], 0x46); + FUN_020311D0(0x14, UNK_021C59FC->unk018[param0]); + + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC u8 *FUN_020316E0(u32 param0) +{ + if (UNK_021C59FC->unk248[param0] != 0) + { + return UNK_021C59FC->unk018[param0]; + } + + return NULL; +} + +THUMB_FUNC void FUN_02031704(u32 param0, u32 unused, void *param2) +{ +#pragma unused(unused) + UNK_021C59FC->unk248[param0] = 1; + MI_CpuCopy8(param2, UNK_021C59FC->unk018[param0], 0x46); +} + +THUMB_FUNC u32 FUN_02031730() +{ + return 0x46; +} diff --git a/include/unk_02031480.h b/include/unk_02031480.h new file mode 100644 index 000000000..48cfbd14a --- /dev/null +++ b/include/unk_02031480.h @@ -0,0 +1,30 @@ +#ifndef POKEDIAMOND_UNK_02031480_H +#define POKEDIAMOND_UNK_02031480_H + +#include "global.h" +#include "MI_memory.h" +#include "heap.h" +#include "unk_0202F150.h" + +THUMB_FUNC void FUN_02031480(u32 heap_id); +THUMB_FUNC void FUN_020314D0(); +THUMB_FUNC BOOL FUN_020314E8(); +THUMB_FUNC void FUN_020314FC(u8 param0, u32 param1, u8 *param2); +THUMB_FUNC void FUN_02031560(u32 param0, u32 param1, u8 *param2); +THUMB_FUNC void FUN_02031574(u32 param0, u32 param1, u8 *param2); +THUMB_FUNC void FUN_02031588(u8 param0); +THUMB_FUNC void FUN_020315A4(); +THUMB_FUNC BOOL FUN_020315D8(u8 param0); +THUMB_FUNC u8 FUN_020315FC(u8 index); +THUMB_FUNC void FUN_0203160C(u32 param0, u32 param1, u8 *param2); +THUMB_FUNC u32 FUN_02031628(); +THUMB_FUNC void FUN_0203162C(u8 param0, u8 param1); +THUMB_FUNC int FUN_02031640(u32 param0, u8 param1); +THUMB_FUNC void FUN_02031668(); +THUMB_FUNC void FUN_0203168C(); +THUMB_FUNC BOOL FUN_020316AC(u32 param0, void *param1); +THUMB_FUNC u8 *FUN_020316E0(u32 param0); +THUMB_FUNC void FUN_02031704(u32 param0, u32 param1, void *param2); +THUMB_FUNC u32 FUN_02031730(); + +#endif // POKEDIAMOND_UNK_02031480_H From 61b2d69a68e03e39aaa97ae39969987b52c08c28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Mon, 19 Apr 2021 19:10:37 +0200 Subject: [PATCH 009/134] update externs --- arm9/src/unk_0202F150.c | 4 +--- arm9/src/unk_02031480.c | 2 +- arm9/src/unk_0205FA2C.c | 12 +++++------- include/unk_0202F150.h | 1 + include/unk_02031480.h | 2 +- include/unk_0205FA2C.h | 1 + 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index d36c5794e..c728ddf17 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -1,4 +1,5 @@ #include "unk_0202F150.h" +#include "unk_02031480.h" struct { u8 unk00; @@ -9,7 +10,6 @@ vu8 UNK_02105D58 = 4; vu8 UNK_02105D59 = 4; extern int FUN_02033534(); -extern void FUN_02031480(u32 param0); extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2); extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); extern void FUN_0202D394(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2); @@ -19,7 +19,6 @@ extern void FUN_0202D330(void (*param0)(int)); extern u32 FUN_0202E66C(u32 param0, u32 param1); extern void MOD04_021D83C0(); extern u32 FUN_0202E784(); -extern void FUN_020314D0(); extern void FUN_0202DBA4(); extern void FUN_0200CAB4(u32 param0); extern void FUN_0202D824(u8 *param0); @@ -30,7 +29,6 @@ extern void FUN_02031CDC(); extern void FUN_0202EBD0(u16 param0); extern void FUN_0202ED70(u32 param0); extern void FUN_020335F4(u32 param0); -extern void FUN_020315A4(); extern void FUN_0202E538(); extern u32 MOD04_021D78FC(void *param0, u32 param1); extern u32 FUN_0202CBD4(); diff --git a/arm9/src/unk_02031480.c b/arm9/src/unk_02031480.c index a8ce64744..9639cd741 100644 --- a/arm9/src/unk_02031480.c +++ b/arm9/src/unk_02031480.c @@ -190,7 +190,7 @@ THUMB_FUNC BOOL FUN_020316AC(u32 param0, void *param1) return FALSE; } -THUMB_FUNC u8 *FUN_020316E0(u32 param0) +THUMB_FUNC u8 *FUN_020316E0(int param0) { if (UNK_021C59FC->unk248[param0] != 0) { diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index 7bcdf950a..9c4d7c8f8 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -8,11 +8,9 @@ extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerDat extern u32 FUN_0203384C(u32 *param0); extern u32 *FUN_02038790(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); -extern u32 FUN_02031190(); -extern u32 FUN_020316E0(u32 param0); -extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u32 param1); -extern u16 MOD06_022446BC(struct UnkStruct_0204639C *param0, u32 param1); -extern u16 MOD06_022446E0(struct UnkStruct_0204639C *param0, u32 param1); +extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u8 *param1); +extern u16 MOD06_022446BC(struct UnkStruct_0204639C *param0, u8 *param1); +extern u16 MOD06_022446E0(struct UnkStruct_0204639C *param0, u8 *param1); extern void FUN_0202A5CC(u32 param0, u32 param1); extern u32 FUN_0202A5D0(u32 param0); extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); @@ -282,8 +280,8 @@ THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) { struct UnkStruct_0204639C *res = FUN_02046528(param0); u16 *res2 = (u16 *)FUN_0204652C(param0); - u32 res3 = FUN_020316E0(1 - FUN_02031190()); - if (res3 == 0) + u8 *res3 = FUN_020316E0(1 - FUN_02031190()); + if (res3 == NULL) { return 0; } diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 77fb4f7de..4542cdd1e 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -7,6 +7,7 @@ #include "heap.h" #include "main.h" #include "unk_0202D858.h" +#include "unk_02031480.h" struct UnkStruct0202F150_sub1 { diff --git a/include/unk_02031480.h b/include/unk_02031480.h index 48cfbd14a..975f07962 100644 --- a/include/unk_02031480.h +++ b/include/unk_02031480.h @@ -23,7 +23,7 @@ THUMB_FUNC int FUN_02031640(u32 param0, u8 param1); THUMB_FUNC void FUN_02031668(); THUMB_FUNC void FUN_0203168C(); THUMB_FUNC BOOL FUN_020316AC(u32 param0, void *param1); -THUMB_FUNC u8 *FUN_020316E0(u32 param0); +THUMB_FUNC u8 *FUN_020316E0(int param0); THUMB_FUNC void FUN_02031704(u32 param0, u32 param1, void *param2); THUMB_FUNC u32 FUN_02031730(); diff --git a/include/unk_0205FA2C.h b/include/unk_0205FA2C.h index 99cf7606b..e65507b7a 100644 --- a/include/unk_0205FA2C.h +++ b/include/unk_0205FA2C.h @@ -13,6 +13,7 @@ #include "unk_0202A8F4.h" #include "unk_0204639C.h" #include "unk_0206BB28.h" +#include "unk_02031480.h" struct UnkPlayerStruct1_0205FA2C { From 88aa75fe3e94f1aac0368b6dbcfaf75614066a8a Mon Sep 17 00:00:00 2001 From: tgsm Date: Thu, 29 Apr 2021 07:31:45 -0400 Subject: [PATCH 010/134] Decompile unk_0204B0A0 --- arm9/asm/unk_0204B0A0.s | 302 -------------------------------------- arm9/src/unk_0204B0A0.c | 198 +++++++++++++++++++++++++ include/sav_system_info.h | 2 + include/unk_0204B0A0.h | 25 ++++ 4 files changed, 225 insertions(+), 302 deletions(-) delete mode 100644 arm9/asm/unk_0204B0A0.s create mode 100644 arm9/src/unk_0204B0A0.c create mode 100644 include/unk_0204B0A0.h diff --git a/arm9/asm/unk_0204B0A0.s b/arm9/asm/unk_0204B0A0.s deleted file mode 100644 index a78c13d0e..000000000 --- a/arm9/asm/unk_0204B0A0.s +++ /dev/null @@ -1,302 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0204B0F8 -FUN_0204B0F8: ; 0x0204B0F8 - push {r4-r5, lr} - sub sp, #0x1c - add r5, r0, #0x0 - ldr r0, [r5, #0xc] - bl Sav2_SysInfo_RTC_get - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _0204B12A - add r0, sp, #0xc - add r1, sp, #0x0 - bl GF_RTC_CopyDateTime - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, sp, #0xc - bl FUN_0204B130 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, sp, #0xc - add r3, sp, #0x0 - bl FUN_0204B158 -_0204B12A: - add sp, #0x1c - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_0204B130 -FUN_0204B130: ; 0x0204B130 - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r2, #0x0 - bl RTC_ConvertDateToDay - ldr r1, [r5, #0x20] - add r4, r0, #0x0 - cmp r4, r1 - bhs _0204B148 - str r4, [r5, #0x20] - pop {r4-r6, pc} -_0204B148: - cmp r4, r1 - bls _0204B156 - add r0, r6, #0x0 - sub r1, r4, r1 - bl FUN_0204B1DC - str r4, [r5, #0x20] -_0204B156: - pop {r4-r6, pc} - - thumb_func_start FUN_0204B158 -FUN_0204B158: ; 0x0204B158 - push {r4-r7, lr} - sub sp, #0xc - add r4, r2, #0x0 - str r0, [sp, #0x0] - add r6, r3, #0x0 - add r5, r1, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - bl RTC_ConvertDateTimeToSecond - str r1, [sp, #0x8] - add r1, r5, #0x0 - add r7, r0, #0x0 - add r0, r5, #0x4 - add r1, #0x14 - bl RTC_ConvertDateTimeToSecond - add r2, r1, #0x0 - sub r1, r7, r0 - ldr r1, [sp, #0x8] - sbc r1, r2 - bge _0204B19C - add r2, r5, #0x4 - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r6!, {r0-r1} - add r5, #0x14 - stmia r5!, {r0-r1} - ldr r0, [r6, #0x0] - add sp, #0xc - str r0, [r5, #0x0] - pop {r4-r7, pc} -_0204B19C: - ldr r1, [sp, #0x8] - sub r0, r7, r0 - sbc r1, r2 - mov r2, #0x3c - mov r3, #0x0 - str r1, [sp, #0x8] - bl _ll_sdiv - add r7, r0, #0x0 - cmp r7, #0x0 - ble _0204B1D8 - add r0, r5, #0x0 - add r1, r7, #0x0 - bl FUN_02023884 - ldr r0, [sp, #0x0] - add r1, r7, #0x0 - add r2, r6, #0x0 - bl FUN_0204B270 - add r2, r5, #0x4 - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r6!, {r0-r1} - add r5, #0x14 - stmia r5!, {r0-r1} - ldr r0, [r6, #0x0] - str r0, [r5, #0x0] -_0204B1D8: - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0204B1DC -FUN_0204B1DC: ; 0x0204B1DC - push {r4-r6, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - bl ScriptEnvironment_GetSav2Ptr - add r1, r4, #0x0 - bl FUN_02025A60 - add r0, r5, #0x0 - bl FUN_0203959C - ldr r0, [r5, #0xc] - add r1, r4, #0x0 - bl FUN_02060344 - ldr r0, [r5, #0xc] - bl FUN_0202881C - add r1, r4, #0x0 - bl FUN_02028754 - ldr r0, [r5, #0xc] - bl FUN_0202A9B0 - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0202881C - bl FUN_020287A4 - add r1, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0202A988 - ldr r0, [r5, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl Party_UpdatePokerus - ldr r0, [r5, #0xc] - bl SavArray_Flags_get - add r6, r0, #0x0 - bl FUN_0205F594 - cmp r0, r4 - ble _0204B244 - sub r0, r0, r4 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - b _0204B246 -_0204B244: - mov r1, #0x0 -_0204B246: - add r0, r6, #0x0 - bl FUN_0205F5A4 - lsl r1, r4, #0x10 - ldr r0, [r5, #0xc] - lsr r1, r1, #0x10 - bl FUN_0205F618 - ldr r0, [r5, #0xc] - bl FUN_0205F668 - ldr r0, [r5, #0xc] - bl FUN_0206007C - ldr r0, [r5, #0xc] - bl FUN_02029AFC - bl FUN_02029C08 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0204B270 -FUN_0204B270: ; 0x0204B270 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_0204B3D0 - ldr r0, [r5, #0xc] - add r1, r4, #0x0 - bl FUN_0202A9D0 - add r0, r5, #0x0 - bl FUN_0204B33C - add r2, r0, #0x0 - ldr r0, [r5, #0xc] - add r1, r4, #0x0 - bl FUN_02025B60 - ldr r0, [r5, #0xc] - bl FUN_02022504 - ldr r2, [r6, #0x4] - add r1, r4, #0x0 - bl FUN_0202B3C4 - pop {r4-r6, pc} - - thumb_func_start Script_GetTimeOfDay -Script_GetTimeOfDay: ; 0x0204B2A4 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0x14] - bl GF_RTC_GetTimeOfDayByHour - pop {r3, pc} - - thumb_func_start Script_GetMonth -Script_GetMonth: ; 0x0204B2B4 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0x8] - pop {r3, pc} - - thumb_func_start Script_GetDay -Script_GetDay: ; 0x0204B2C0 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0xc] - pop {r3, pc} - - thumb_func_start Script_GetWeekday -Script_GetWeekday: ; 0x0204B2CC - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0x10] - pop {r3, pc} - - thumb_func_start Script_GetHour -Script_GetHour: ; 0x0204B2D8 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0x14] - pop {r3, pc} - - thumb_func_start Script_GetMinute -Script_GetMinute: ; 0x0204B2E4 - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - ldr r0, [r0, #0x18] - pop {r3, pc} - - thumb_func_start Script_SavRTC_x24toDateTime -Script_SavRTC_x24toDateTime: ; 0x0204B2F0 - push {r3-r5, lr} - ldr r0, [r0, #0xc] - add r5, r1, #0x0 - add r4, r2, #0x0 - bl Sav2_SysInfo_RTC_get - add r3, r0, #0x0 - ldr r2, [r3, #0x24] - ldr r3, [r3, #0x28] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl RTC_ConvertSecondToDateTime - pop {r3-r5, pc} - - thumb_func_start Script_SavRTC_x2CtoDateTime -Script_SavRTC_x2CtoDateTime: ; 0x0204B30C - push {r3-r5, lr} - ldr r0, [r0, #0xc] - add r5, r1, #0x0 - add r4, r2, #0x0 - bl Sav2_SysInfo_RTC_get - add r3, r0, #0x0 - ldr r2, [r3, #0x2c] - ldr r3, [r3, #0x30] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl RTC_ConvertSecondToDateTime - pop {r3-r5, pc} - - thumb_func_start Script_SavRTC_DateTimeTox2C -Script_SavRTC_DateTimeTox2C: ; 0x0204B328 - push {r4, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - add r4, r0, #0x0 - bl GF_RTC_DateTimeToSec - str r0, [r4, #0x2c] - str r1, [r4, #0x30] - pop {r4, pc} - - thumb_func_start FUN_0204B33C -FUN_0204B33C: ; 0x0204B33C - push {r3, lr} - ldr r0, [r0, #0xc] - bl Sav2_SysInfo_RTC_get - bl FUN_02023874 - pop {r3, pc} - .balign 4 diff --git a/arm9/src/unk_0204B0A0.c b/arm9/src/unk_0204B0A0.c new file mode 100644 index 000000000..15a9111d8 --- /dev/null +++ b/arm9/src/unk_0204B0A0.c @@ -0,0 +1,198 @@ +#include "global.h" +#include "event_data.h" +#include "unk_0204B0A0.h" +#include "unk_0205FA2C.h" + +extern void GF_RTC_CopyDateTime(struct RTCDate* date, struct RTCTime* time); +extern void FUN_02029C08(void*); +extern void FUN_0202B3C4(void*, s32, u32); +extern u8 GF_RTC_GetTimeOfDayByHour(u32 hour); +extern s64 GF_RTC_DateTimeToSec(void); +extern void* FUN_02029AFC(struct SaveBlock2* sav2); +extern void* FUN_02022504(struct SaveBlock2* sav2); +extern void FUN_02025B60(struct SaveBlock2* sav2, s32, BOOL); +extern BOOL FUN_0205F668(struct SaveBlock2* sav2); +extern void FUN_0202A9D0(struct SaveBlock2* sav2, s32); +extern BOOL FUN_0205F618(struct SaveBlock2* sav2, u16); +extern void FUN_0204B3D0(struct UnkSavStruct80*, s32); +extern void FUN_0205F5A4(struct ScriptState* state, u16); +extern s32 FUN_0205F594(struct ScriptState* state); +extern void FUN_0202A988(void*, u32); +extern void* FUN_0202A9B0(struct SaveBlock2* sav2); +extern void FUN_02060344(struct SaveBlock2* sav2, s32); +extern void FUN_0203959C(struct UnkSavStruct80*); +extern void FUN_02025A60(struct SaveBlock2* sav2, s32); +extern struct SaveBlock2* ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80*); + +THUMB_FUNC void FUN_0204B0F8(struct UnkSavStruct80* unk) +{ + RTCDate date; + RTCTime time; + + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + if (rtc_info->field_00 != 0) + { + GF_RTC_CopyDateTime(&date, &time); + FUN_0204B130(unk, rtc_info, &date); + FUN_0204B158(unk, rtc_info, &date, &time); + } +} + +THUMB_FUNC void FUN_0204B130(struct UnkSavStruct80* unk, struct UnkSaveStruct_0202376C_sub* rtc_info, struct RTCDate* date) +{ + u32 days = (u32)RTC_ConvertDateToDay(date); + u32 days_since_nitro_epoch = (u32)rtc_info->daysSinceNitroEpoch; + + if (days < days_since_nitro_epoch) + { + rtc_info->daysSinceNitroEpoch = (s32)days; + } + else if (days > days_since_nitro_epoch) + { + FUN_0204B1DC(unk, (s32)(days - days_since_nitro_epoch)); + rtc_info->daysSinceNitroEpoch = (s32)days; + } +} + +THUMB_FUNC void FUN_0204B158(struct UnkSavStruct80* unk, struct UnkSaveStruct_0202376C_sub* rtc_info, struct RTCDate* date, struct RTCTime* time) +{ + s64 unk1 = RTC_ConvertDateTimeToSecond(date, time); + s64 unk2 = RTC_ConvertDateTimeToSecond(&rtc_info->date, &rtc_info->time); + + if (unk2 > unk1) + { + rtc_info->date = *date; + rtc_info->time = *time; + return; + } + + s32 minutes = (s32)((unk1 - unk2) / 60); + if (minutes > 0) + { + FUN_02023884(rtc_info, (u32)minutes); + FUN_0204B270(unk, minutes, time); + + rtc_info->date = *date; + rtc_info->time = *time; + } +} + +THUMB_FUNC void FUN_0204B1DC(struct UnkSavStruct80* unk, s32 a1) +{ + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(unk); + FUN_02025A60(sav2, a1); + FUN_0203959C(unk); + FUN_02060344(unk->saveBlock2, a1); + + void* unk_sav_ptr1 = FUN_0202881C(unk->saveBlock2); + FUN_02028754(unk_sav_ptr1, (u32)a1); + + void* unk_sav_ptr2 = FUN_0202A9B0(unk->saveBlock2); + unk_sav_ptr1 = FUN_0202881C(unk->saveBlock2); + u32 unk1 = FUN_020287A4(unk_sav_ptr1); + FUN_0202A988(unk_sav_ptr2, unk1); + + struct PlayerParty* party = SavArray_PlayerParty_get(unk->saveBlock2); + Party_UpdatePokerus(party, a1); + + struct ScriptState* state = SavArray_Flags_get(unk->saveBlock2); + s32 unk2 = FUN_0205F594(state); + + u16 unk3; + if (unk2 > a1) + { + unk3 = (u16)(unk2 - a1); + } + else + { + unk3 = 0; + } + + FUN_0205F5A4(state, unk3); + FUN_0205F618(unk->saveBlock2, (u16)a1); + FUN_0205F668(unk->saveBlock2); + FUN_0206007C(unk->saveBlock2); + + void* unk_sav_ptr3 = FUN_02029AFC(unk->saveBlock2); + FUN_02029C08(unk_sav_ptr3); +} + +THUMB_FUNC void FUN_0204B270(struct UnkSavStruct80* unk, s32 a1, struct RTCTime* time) +{ + FUN_0204B3D0(unk, a1); + FUN_0202A9D0(unk->saveBlock2, a1); + BOOL unk_bool = FUN_0204B33C(unk); + FUN_02025B60(unk->saveBlock2, a1, unk_bool); + void* unk_sav_ptr = FUN_02022504(unk->saveBlock2); + FUN_0202B3C4(unk_sav_ptr, a1, time->minute); +} + +THUMB_FUNC u32 Script_GetTimeOfDay(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return GF_RTC_GetTimeOfDayByHour(rtc_info->time.hour); +} + +THUMB_FUNC u32 Script_GetMonth(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return rtc_info->date.month; +} + +THUMB_FUNC u32 Script_GetDay(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return rtc_info->date.day; +} + +THUMB_FUNC RTCWeek Script_GetWeekday(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return rtc_info->date.week; +} + +THUMB_FUNC u32 Script_GetHour(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return rtc_info->time.hour; +} + +THUMB_FUNC u32 Script_GetMinute(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return rtc_info->time.minute; +} + +THUMB_FUNC void Script_SavRTC_x24toDateTime(struct UnkSavStruct80* unk, struct RTCDate* date, struct RTCTime* time) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + RTC_ConvertSecondToDateTime(date, time, rtc_info->secondsSinceNitroEpoch); +} + +THUMB_FUNC void Script_SavRTC_x2CtoDateTime(struct UnkSavStruct80* unk, struct RTCDate* date, struct RTCTime* time) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + RTC_ConvertSecondToDateTime(date, time, rtc_info->field_2C); +} + +THUMB_FUNC void Script_SavRTC_DateTimeTox2C(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + rtc_info->field_2C = GF_RTC_DateTimeToSec(); +} + +THUMB_FUNC BOOL FUN_0204B33C(struct UnkSavStruct80* unk) +{ + struct UnkSaveStruct_0202376C_sub* rtc_info = Sav2_SysInfo_RTC_get(unk->saveBlock2); + + return FUN_02023874(rtc_info); +} diff --git a/include/sav_system_info.h b/include/sav_system_info.h index 696cfe070..bded91f77 100644 --- a/include/sav_system_info.h +++ b/include/sav_system_info.h @@ -3,6 +3,8 @@ #include "RTC_api.h" +struct SaveBlock2; + struct UnkSaveStruct_0202376C_sub { /* 0x00 */ u32 field_00; diff --git a/include/unk_0204B0A0.h b/include/unk_0204B0A0.h new file mode 100644 index 000000000..8d37e354c --- /dev/null +++ b/include/unk_0204B0A0.h @@ -0,0 +1,25 @@ +#ifndef POKEDIAMOND_UNK_0204B0A0_H +#define POKEDIAMOND_UNK_0204B0A0_H + +#include "RTC_api.h" +#include "RTC_convert.h" +#include "sav_system_info.h" +#include "script.h" + +void FUN_0204B0F8(struct UnkSavStruct80* unk); +void FUN_0204B130(struct UnkSavStruct80* unk, struct UnkSaveStruct_0202376C_sub* rtc_info, struct RTCDate* date); +void FUN_0204B158(struct UnkSavStruct80* unk, struct UnkSaveStruct_0202376C_sub* rtc_info, struct RTCDate* date, struct RTCTime* time); +void FUN_0204B1DC(struct UnkSavStruct80* unk, s32 a1); +void FUN_0204B270(struct UnkSavStruct80* unk, s32 a1, struct RTCTime* time); +u32 Script_GetTimeOfDay(struct UnkSavStruct80* unk); +u32 Script_GetMonth(struct UnkSavStruct80* unk); +u32 Script_GetDay(struct UnkSavStruct80* unk); +RTCWeek Script_GetWeekday(struct UnkSavStruct80* unk); +u32 Script_GetHour(struct UnkSavStruct80* unk); +u32 Script_GetMinute(struct UnkSavStruct80* unk); +void Script_SavRTC_x24toDateTime(struct UnkSavStruct80* unk, struct RTCDate* date, struct RTCTime* time); +void Script_SavRTC_x2CtoDateTime(struct UnkSavStruct80* unk, struct RTCDate* date, struct RTCTime* time); +void Script_SavRTC_DateTimeTox2C(struct UnkSavStruct80* unk); +BOOL FUN_0204B33C(struct UnkSavStruct80* unk); + +#endif From ac06875ae11374b49b89b6b3620947515e7a562a Mon Sep 17 00:00:00 2001 From: Revo Date: Thu, 29 Apr 2021 19:58:19 -0400 Subject: [PATCH 011/134] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f36b82d04..6bbcd13cd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing guide for Pokémon Diamond -**As the repository is in a volatile state, contribution is closed to the public until further notice.** +**The repository is in a volatile state.** This is a living document which lays out the procedure for decompiling the game code of Pokémon Diamond Version (5.0-US) for the Nintendo DS. From cf188406f006750ec7206e3dd2a6818c767729eb Mon Sep 17 00:00:00 2001 From: tgsm Date: Fri, 30 Apr 2021 04:30:27 -0400 Subject: [PATCH 012/134] Fix a bunch of function signatures A bunch of functions were thought to be returning/taking in an unk_204639c but they actually return/take an unksavstruct80. This fixes that, and also changes a couple of struct members, so this might be useful for scrcmd. --- arm9/src/unk_0204639C.c | 11 +++++----- arm9/src/unk_0204AEA8.c | 4 ++-- arm9/src/unk_0205FA2C.c | 46 ++++++++++++++++++++--------------------- include/script.h | 3 ++- include/unk_0204639C.h | 12 ++++++----- include/unk_0205FA2C.h | 14 ++++++------- 6 files changed, 45 insertions(+), 45 deletions(-) diff --git a/arm9/src/unk_0204639C.c b/arm9/src/unk_0204639C.c index 50aae8fa9..c8291f5aa 100644 --- a/arm9/src/unk_0204639C.c +++ b/arm9/src/unk_0204639C.c @@ -4,7 +4,7 @@ #pragma thumb on -struct UnkStruct_0204639C * FUN_0204639C(struct UnkStruct_0204639C * r5, UnkStruct_0204639C_cb r6, u32 * r7) +struct UnkStruct_0204639C * FUN_0204639C(struct UnkSavStruct80 * r5, UnkStruct_0204639C_cb r6, u32 * r7) { struct UnkStruct_0204639C * ret = AllocFromHeapAtEnd(32, sizeof(struct UnkStruct_0204639C)); ret->unk0 = 0; @@ -18,10 +18,9 @@ struct UnkStruct_0204639C * FUN_0204639C(struct UnkStruct_0204639C * r5, UnkStru return ret; } -void FUN_020463CC(struct UnkStruct_0204639C * r5, UnkStruct_0204639C_cb r4, u32 * r6) +void FUN_020463CC(struct UnkSavStruct80 * r5, UnkStruct_0204639C_cb r4, u32 * r6) { - if (r5->unk10 != NULL) - ErrorHandling(); + GF_ASSERT(r5->unk10 == NULL); r5->unk10 = FUN_0204639C(r5, r4, r6); } @@ -85,7 +84,7 @@ BOOL FUN_020464A4(void * r0) BOOL FUN_020464B8(struct UnkStruct_0204639C * r4) { - struct UnkStruct_0204639C * r5 = FUN_02046528(r4); + struct UnkSavStruct80 * r5 = FUN_02046528(r4); u32 * r4_2 = FUN_0204652C(r4); switch (r4_2[0]) { @@ -113,7 +112,7 @@ void FUN_02046500(struct UnkStruct_0204639C * r6, u32 r5, u32 r4) FUN_0204640C(r6, FUN_020464B8, r2); } -struct UnkStruct_0204639C * FUN_02046528(struct UnkStruct_0204639C * r0) +struct UnkSavStruct80 * FUN_02046528(struct UnkStruct_0204639C * r0) { return r0->unk18; } diff --git a/arm9/src/unk_0204AEA8.c b/arm9/src/unk_0204AEA8.c index 9c572a8e4..a2b2dd718 100644 --- a/arm9/src/unk_0204AEA8.c +++ b/arm9/src/unk_0204AEA8.c @@ -3,12 +3,12 @@ #include "unk_0204639C.h" #include "unk_0204AEA8.h" -extern void MOD05_021E3444(u32, struct UnkStruct_0204639C *, u32); +extern void MOD05_021E3444(u32, struct UnkSavStruct80 *, u32); extern void FUN_0200433C(u32, u16, u32); THUMB_FUNC BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0) { - struct UnkStruct_0204639C *v0 = FUN_02046528(a0); + struct UnkSavStruct80 *v0 = FUN_02046528(a0); u32 *v1 = FUN_0204652C(a0); switch (v1[0]) diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index 9c4d7c8f8..9aa4460f8 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -5,12 +5,12 @@ extern void *UNK_020FA6E8; extern u32 FUN_02079C70(struct SaveBlock2 *sav2); extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]); extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data); -extern u32 FUN_0203384C(u32 *param0); -extern u32 *FUN_02038790(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); +extern u32 FUN_0203384C(struct SaveBlock2 *sav2); +extern u32 *FUN_02038790(struct UnkSavStruct80 *param0, u16 param1, u16 param2); extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); -extern u16 MOD06_02244660(struct UnkStruct_0204639C *param0, u8 *param1); -extern u16 MOD06_022446BC(struct UnkStruct_0204639C *param0, u8 *param1); -extern u16 MOD06_022446E0(struct UnkStruct_0204639C *param0, u8 *param1); +extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1); +extern u16 MOD06_022446BC(struct UnkSavStruct80 *param0, u8 *param1); +extern u16 MOD06_022446E0(struct UnkSavStruct80 *param0, u8 *param1); extern void FUN_0202A5CC(u32 param0, u32 param1); extern u32 FUN_0202A5D0(u32 param0); extern u32 FUN_0202A150(struct UnkStruct_02029FB0 *param0, u32 param1); @@ -36,12 +36,12 @@ const u8 UNK_020F7454[] = { }; THUMB_FUNC u32 FUN_0205FA2C( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id) { struct UnkPlayerStruct1_0205FA2C *ptr = (struct UnkPlayerStruct1_0205FA2C *)AllocFromHeapAtEnd( heap_id, sizeof(struct UnkPlayerStruct1_0205FA2C)); - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); + struct SaveBlock2 *sav2 = param1->saveBlock2; MI_CpuFill8(ptr, 0, sizeof(struct UnkPlayerStruct1_0205FA2C)); ptr->options = Sav2_PlayerData_GetOptionsAddr(sav2); @@ -70,7 +70,7 @@ THUMB_FUNC u32 FUN_0205FA2C( } THUMB_FUNC u32 FUN_0205FAD8( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1) { if (FUN_0204647C(param1)) { @@ -105,9 +105,9 @@ THUMB_FUNC u32 FUN_0205FAD8( } THUMB_FUNC u32 FUN_0205FB34( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id) + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id) { - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)(param1->unkC); + struct SaveBlock2 *sav2 = param1->saveBlock2; struct UnkPlayerStruct2_0205FA2C *ptr = (struct UnkPlayerStruct2_0205FA2C *)AllocFromHeapAtEnd( heap_id, sizeof(struct UnkPlayerStruct2_0205FA2C)); @@ -140,7 +140,7 @@ THUMB_FUNC u32 FUN_0205FB34( } THUMB_FUNC u32 FUN_0205FBC0( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1) + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1) { if (FUN_0204647C(param1)) { @@ -158,7 +158,7 @@ THUMB_FUNC u32 FUN_0205FBC0( THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); struct UnkCallbackStruct1_0205FA2C *res2 = (struct UnkCallbackStruct1_0205FA2C *)FUN_0204652C(param0); switch (res2->unk04) @@ -192,7 +192,7 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, u8 param6, u8 param7) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); struct UnkCallbackStruct1_0205FA2C *ptr = (struct UnkCallbackStruct1_0205FA2C *)AllocFromHeap( 0xb, sizeof(struct UnkCallbackStruct1_0205FA2C)); @@ -210,9 +210,9 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, } THUMB_FUNC u32 FUN_0205FC9C( - struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1) { - if (FUN_0203384C(param1->unkC)) + if (FUN_0203384C(param1->saveBlock2)) { param0->unk08 = FUN_02038790(param1, param0->unk12, param0->unk14); @@ -224,7 +224,7 @@ THUMB_FUNC u32 FUN_0205FC9C( } THUMB_FUNC u32 FUN_0205FCC4( - struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1) + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1) { if (FUN_0204647C(param1)) { @@ -239,7 +239,7 @@ THUMB_FUNC u32 FUN_0205FCC4( THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); struct UnkCallbackStruct2_0205FA2C *res2 = (struct UnkCallbackStruct2_0205FA2C *)FUN_0204652C(param0); @@ -252,7 +252,7 @@ THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) res2->unk04 = FUN_0205FCC4(res2, res); break; case 2: - u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2->unk10); + u16 *var = GetVarPointer(res, res2->unk10); *var = (u16)res2->unk00; FreeToHeap(res2); @@ -264,7 +264,7 @@ THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0) THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); struct UnkCallbackStruct2_0205FA2C *ptr = (struct UnkCallbackStruct2_0205FA2C *)AllocFromHeap( 0xb, sizeof(struct UnkCallbackStruct2_0205FA2C)); MI_CpuFill8(ptr, 0, sizeof(struct UnkCallbackStruct2_0205FA2C)); @@ -278,7 +278,7 @@ THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); u16 *res2 = (u16 *)FUN_0204652C(param0); u8 *res3 = FUN_020316E0(1 - FUN_02031190()); if (res3 == NULL) @@ -286,7 +286,7 @@ THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) return 0; } - u16 *var = GetVarPointer((struct UnkSavStruct80 *)res, res2[1]); + u16 *var = GetVarPointer(res, res2[1]); switch (res2[0]) { case 0: @@ -294,11 +294,9 @@ THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) break; case 1: *var = MOD06_022446BC(res, res3); - break; case 2: *var = MOD06_022446E0(res, res3); - break; } @@ -309,7 +307,7 @@ THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0) THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2) { - struct UnkStruct_0204639C *res = FUN_02046528(param0); + struct UnkSavStruct80 *res = FUN_02046528(param0); u16 *ptr = AllocFromHeap(0xb, 2 * sizeof(u16)); MI_CpuFill8(ptr, 0, 2 * sizeof(u16)); diff --git a/include/script.h b/include/script.h index 9a7270c23..bb2375234 100644 --- a/include/script.h +++ b/include/script.h @@ -28,7 +28,8 @@ struct UnkSavStruct80 u8 padding[0x8]; u32 unk08; struct SaveBlock2 *saveBlock2; //0xC - u8 padding2[0xC]; + struct UnkStruct_0204639C *unk10; + u8 padding2[0x8]; u32 *mapId; //0x1C u8 padding3[0x18]; u32 unk38; diff --git a/include/unk_0204639C.h b/include/unk_0204639C.h index cff2241f1..cebe192d0 100644 --- a/include/unk_0204639C.h +++ b/include/unk_0204639C.h @@ -1,6 +1,8 @@ #ifndef GUARD_UNK_0204639C_H #define GUARD_UNK_0204639C_H +#include "script.h" + struct UnkStruct_0204639C; typedef BOOL (*UnkStruct_0204639C_cb)(struct UnkStruct_0204639C * ); @@ -13,18 +15,18 @@ struct UnkStruct_0204639C u32 * unkC; struct UnkStruct_0204639C * unk10; void * unk14; - struct UnkStruct_0204639C * unk18; + struct UnkSavStruct80 * unk18; u32 * unk1C; }; extern void LoadOverlay_MODULE_05(void *); -extern void FUN_020373D4(struct UnkStruct_0204639C *, u32, u32); +extern void FUN_020373D4(struct UnkSavStruct80 *, u32, u32); extern BOOL FUN_020373AC(void *); extern BOOL FUN_0203739C(void *); extern BOOL FUN_020373C4(void *); -struct UnkStruct_0204639C * FUN_0204639C(struct UnkStruct_0204639C * r5, UnkStruct_0204639C_cb r6, u32 * r7); -void FUN_020463CC(struct UnkStruct_0204639C * r5, UnkStruct_0204639C_cb r4, u32 * r6); +struct UnkStruct_0204639C * FUN_0204639C(struct UnkSavStruct80 * r5, UnkStruct_0204639C_cb r6, u32 * r7); +void FUN_020463CC(struct UnkSavStruct80 * r5, UnkStruct_0204639C_cb r4, u32 * r6); void FUN_020463EC(struct UnkStruct_0204639C * r4, UnkStruct_0204639C_cb r1, u32 * r2); void FUN_0204640C(struct UnkStruct_0204639C * r4, UnkStruct_0204639C_cb r1, u32 * r2); BOOL FUN_02046420(struct UnkStruct_0204639C * r5); @@ -37,6 +39,6 @@ void FUN_02046500(struct UnkStruct_0204639C * r6, u32 r5, u32 r4); u32 * FUN_0204652C(struct UnkStruct_0204639C * r0); u32 * FUN_02046530(struct UnkStruct_0204639C * r0); u32 FUN_02046534(struct UnkStruct_0204639C * r0); -struct UnkStruct_0204639C * FUN_02046528(struct UnkStruct_0204639C *); +struct UnkSavStruct80 * FUN_02046528(struct UnkStruct_0204639C *); #endif //GUARD_UNK_0204639C_H diff --git a/include/unk_0205FA2C.h b/include/unk_0205FA2C.h index e65507b7a..19279a6c2 100644 --- a/include/unk_0205FA2C.h +++ b/include/unk_0205FA2C.h @@ -81,13 +81,13 @@ struct UnkCallbackStruct2_0205FA2C }; THUMB_FUNC u32 FUN_0205FA2C( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id); + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id); THUMB_FUNC u32 FUN_0205FAD8( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1); + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1); THUMB_FUNC u32 FUN_0205FB34( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id); + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id); THUMB_FUNC u32 FUN_0205FBC0( - struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1); + struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1); THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0); THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, void **param1, @@ -99,9 +99,9 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, u8 param7); THUMB_FUNC u32 FUN_0205FC9C( - struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1); + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1); THUMB_FUNC u32 FUN_0205FCC4( - struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1); + struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1); THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0); THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3); @@ -118,4 +118,4 @@ THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2); THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2); THUMB_FUNC BOOL FUN_02060144(u32 **param0); -#endif // POKEDIAMOND_UNK_0205FA2C_H \ No newline at end of file +#endif // POKEDIAMOND_UNK_0205FA2C_H From 6b6c7eab5f18fb21b6ca40795b1042d3bcf85ff3 Mon Sep 17 00:00:00 2001 From: fyren Date: Sat, 1 May 2021 12:09:14 +0200 Subject: [PATCH 013/134] decompile unk_0206015C --- arm9/asm/unk_0206015C.s | 233 ---------------------------------------- arm9/global.inc | 1 + arm9/src/unk_0206015C.c | 113 +++++++++++++++++++ include/unk_0206015C.h | 60 +++++++++++ 4 files changed, 174 insertions(+), 233 deletions(-) delete mode 100644 arm9/asm/unk_0206015C.s create mode 100644 arm9/src/unk_0206015C.c create mode 100644 include/unk_0206015C.h diff --git a/arm9/asm/unk_0206015C.s b/arm9/asm/unk_0206015C.s deleted file mode 100644 index 296e65c59..000000000 --- a/arm9/asm/unk_0206015C.s +++ /dev/null @@ -1,233 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - - .text - - thumb_func_start FUN_0206015C -FUN_0206015C: ; 0x0206015C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0xb - mov r1, #0x10 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - mov r0, #0xb - bl MOD06_02244DB0 - str r0, [r4, #0x0] - mov r0, #0xb - add r1, r5, #0x0 - bl MOD06_02245114 - str r0, [r4, #0x4] - mov r0, #0x0 - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - ldr r0, [r5, #0x10] - ldr r1, _02060190 ; =FUN_02060194 - add r2, r4, #0x0 - bl FUN_0204640C - pop {r3-r5, pc} - nop -_02060190: .word FUN_02060194 - - thumb_func_start FUN_02060194 -FUN_02060194: ; 0x02060194 - push {r3-r7, lr} - sub sp, #0x10 - add r5, r0, #0x0 - bl FUN_02046528 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0204652C - add r4, r0, #0x0 - ldrb r0, [r4, #0xc] - cmp r0, #0x8 - bls _020601B0 - b _02060332 -_020601B0: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020601BC: ; jump table (using 16-bit offset) - .short _020601CE - _020601BC - 2; case 0 - .short _020601F2 - _020601BC - 2; case 1 - .short _020601FE - _020601BC - 2; case 2 - .short _02060226 - _020601BC - 2; case 3 - .short _02060232 - _020601BC - 2; case 4 - .short _020602A2 - _020601BC - 2; case 5 - .short _020602F0 - _020601BC - 2; case 6 - .short _020602FC - _020601BC - 2; case 7 - .short _02060312 - _020601BC - 2; case 8 -_020601CE: - add r0, r6, #0x0 - mov r1, #0x1 - bl FUN_0206367C - ldrb r0, [r4, #0xd] - ldr r1, [r4, #0x4] - bl MOD06_02245198 - ldr r0, [r4, #0x4] - bl MOD06_022451F0 - str r0, [r4, #0x8] - add r0, r5, #0x0 - bl FUN_0204AFC8 - mov r0, #0x1 - strb r0, [r4, #0xc] - b _02060332 -_020601F2: - add r0, r5, #0x0 - bl FUN_0204AF3C - mov r0, #0x2 - strb r0, [r4, #0xc] - b _02060332 -_020601FE: - ldr r0, [r6, #0xc] - bl SavArray_Flags_get - ldrb r1, [r4, #0xd] - cmp r1, #0x0 - bne _02060210 - bl FUN_0205F1C4 - b _02060218 -_02060210: - cmp r1, #0x5 - bne _02060218 - bl FUN_0205F1D4 -_02060218: - ldr r1, [r4, #0x8] - add r0, r5, #0x0 - bl FUN_02049160 - mov r0, #0x3 - strb r0, [r4, #0xc] - b _02060332 -_02060226: - add r0, r5, #0x0 - bl FUN_0204AF84 - mov r0, #0x4 - strb r0, [r4, #0xc] - b _02060332 -_02060232: - ldr r0, [r6, #0x38] - bl FUN_020553A0 - ldrb r1, [r4, #0xd] - add r7, r0, #0x0 - add r1, r1, #0x1 - strb r1, [r4, #0xd] - ldrb r1, [r4, #0xd] - cmp r1, #0x5 - bhi _02060290 - add r0, r6, #0x0 - bl MOD06_02245088 - add r6, r0, #0x0 - add r0, r7, #0x0 - mov r1, #0x1 - bl FUN_0205889C - ldr r0, [r4, #0x0] - add r1, r6, #0x0 - bl MOD06_02244DC4 - ldr r0, [r4, #0x0] - bl MOD06_02244EF8 - mov r0, #0x0 - strb r0, [r4, #0xe] - ldr r0, _02060338 ; =0x00000679 - bl FUN_020054C8 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r0, #0x6 - str r0, [sp, #0x4] - mov r0, #0x1 - str r0, [sp, #0x8] - mov r0, #0xb - str r0, [sp, #0xc] - ldr r3, _0206033C ; =0x0000FFFF - add r0, r5, #0x0 - mov r1, #0x3 - mov r2, #0x11 - bl FUN_0204C1B4 - mov r0, #0x5 - strb r0, [r4, #0xc] - b _02060332 -_02060290: - mov r1, #0x0 - bl FUN_0205889C - add r0, r5, #0x0 - bl FUN_0204B00C - mov r0, #0x8 - strb r0, [r4, #0xc] - b _02060332 -_020602A2: - ldrb r0, [r4, #0xe] - add r0, r0, #0x1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xe] - cmp r0, #0x3c - bhs _020602B8 - ldr r0, _02060340 ; =gMain - ldr r1, [r0, #0x48] - mov r0, #0x1 - tst r0, r1 - beq _02060332 -_020602B8: - ldrb r0, [r4, #0xd] - ldr r1, [r4, #0x4] - bl MOD06_02245198 - ldr r0, [r4, #0x4] - bl MOD06_022451F0 - str r0, [r4, #0x8] - ldr r0, _02060338 ; =0x00000679 - bl FUN_020054C8 - mov r0, #0x0 - str r0, [sp, #0x0] - mov r0, #0x6 - str r0, [sp, #0x4] - mov r0, #0x1 - str r0, [sp, #0x8] - mov r0, #0xb - str r0, [sp, #0xc] - ldr r3, _0206033C ; =0x0000FFFF - add r0, r5, #0x0 - mov r1, #0x3 - mov r2, #0x10 - bl FUN_0204C1B4 - mov r0, #0x6 - strb r0, [r4, #0xc] - b _02060332 -_020602F0: - ldr r0, [r4, #0x0] - bl MOD06_02244F18 - mov r0, #0x7 - strb r0, [r4, #0xc] - b _02060332 -_020602FC: - ldr r0, [r4, #0x0] - bl MOD06_02244F24 - cmp r0, #0x0 - beq _02060332 - ldr r0, [r4, #0x0] - bl MOD06_02244F2C - mov r0, #0x1 - strb r0, [r4, #0xc] - b _02060332 -_02060312: - add r0, r6, #0x0 - mov r1, #0x0 - bl FUN_0206367C - ldr r0, [r4, #0x4] - bl MOD06_02245190 - ldr r0, [r4, #0x0] - bl MOD06_02244DBC - add r0, r4, #0x0 - bl FreeToHeap - add sp, #0x10 - mov r0, #0x1 - pop {r3-r7, pc} -_02060332: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 -_02060338: .word 0x00000679 -_0206033C: .word 0x0000FFFF -_02060340: .word gMain diff --git a/arm9/global.inc b/arm9/global.inc index 9df9973ee..a944a1b17 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -4633,6 +4633,7 @@ .extern FUN_020600DC .extern FUN_02060144 .extern FUN_0206015C +.extern FUN_02060194 .extern FUN_02060344 .extern FUN_020603B0 .extern FUN_020603C8 diff --git a/arm9/src/unk_0206015C.c b/arm9/src/unk_0206015C.c new file mode 100644 index 000000000..070765067 --- /dev/null +++ b/arm9/src/unk_0206015C.c @@ -0,0 +1,113 @@ +#include "unk_0206015C.h" + +THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80 *savStruct) +{ + struct UnkStruct_0206015C *unkStruct = AllocFromHeapAtEnd(0xb, 0x10); + unkStruct->unk0 = MOD06_02244DB0(0xb); + unkStruct->unk4 = MOD06_02245114(0xb, savStruct); + unkStruct->unkC = 0; + unkStruct->unkD = 0; + + FUN_0204640C(savStruct->unk10, FUN_02060194, (u32 *)unkStruct); +} + +THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C *unkStruct0) +{ + struct UnkSavStruct80 *savStruct = FUN_02046528(unkStruct0); + struct UnkStruct_0204652C *unkStruct1 = (struct UnkStruct_0204652C *)FUN_0204652C(unkStruct0); + + switch (unkStruct1->action) + { + case 0: + FUN_0206367C(savStruct, 1); + MOD06_02245198(unkStruct1->unkD, unkStruct1->unk4); + unkStruct1->unk8 = MOD06_022451F0(unkStruct1->unk4); + FUN_0204AFC8(unkStruct0); + unkStruct1->action = 1; + break; + + case 1: + FUN_0204AF3C(unkStruct0); + unkStruct1->action = 2; + break; + + case 2: + struct ScriptState *scrState = SavArray_Flags_get(savStruct->saveBlock2); + u8 unkD = unkStruct1->unkD; + if (unkD == 0) + { + FUN_0205F1C4(scrState); + } + else if (unkD == 5) + { + FUN_0205F1D4(scrState); + } + FUN_02049160(unkStruct0, unkStruct1->unk8); + unkStruct1->action = 3; + break; + + case 3: + FUN_0204AF84(unkStruct0); + unkStruct1->action = 4; + break; + + case 4: + u32 unk0 = FUN_020553A0(savStruct->unk38); + unkStruct1->unkD += 1; + if (unkStruct1->unkD <= 5) + { + void *unkAddr = MOD06_02245088(savStruct); + FUN_0205889C(unk0, 1); + MOD06_02244DC4(unkStruct1->unk0, unkAddr); + MOD06_02244EF8(unkStruct1->unk0); + unkStruct1->unkE = 0; + FUN_020054C8(1657); + FUN_0204C1B4(unkStruct0, 0x3, 0x11, 0x0000FFFF, 0, 6, 1, 0xb); + unkStruct1->action = 5; + } + else + { + FUN_0205889C(unk0, 0); + FUN_0204B00C(unkStruct0); + unkStruct1->action = 8; + } + break; + + case 5: + unkStruct1->unkE += 1; + if (unkStruct1->unkE < 0x3c && !(gMain.unk48 & 1)) + break; + + MOD06_02245198(unkStruct1->unkD, unkStruct1->unk4); + unkStruct1->unk8 = MOD06_022451F0(unkStruct1->unk4); + + FUN_020054C8(1657); + FUN_0204C1B4(unkStruct0, 0x3, 0x10, 0x0000FFFF, 0, 6, 1, 0xb); + unkStruct1->action = 6; + break; + + case 6: + MOD06_02244F18(unkStruct1->unk0); + unkStruct1->action = 7; + break; + + case 7: + if (MOD06_02244F24(unkStruct1->unk0)) + { + MOD06_02244F2C(unkStruct1->unk0); + unkStruct1->action = 1; + } + break; + + case 8: + FUN_0206367C(savStruct, 0); + MOD06_02245190(unkStruct1->unk4); + MOD06_02244DBC(unkStruct1->unk0); + FreeToHeap(unkStruct1); + return 1; + + default: + break; + } + return 0; +} \ No newline at end of file diff --git a/include/unk_0206015C.h b/include/unk_0206015C.h new file mode 100644 index 000000000..75d75c53a --- /dev/null +++ b/include/unk_0206015C.h @@ -0,0 +1,60 @@ +#include "global.h" +#include "script.h" +#include "main.h" +#include "unk_0204639C.h" +#include "heap.h" +#include "event_data.h" + +/* Note to future reader, there might be some errors + in the return type / parameters. They are right for this code + but they might not be for every code, please do not blindly + trust these prototypes if you are decompiling these functions. */ +extern THUMB_FUNC u32 MOD06_02244DB0(u32); +extern THUMB_FUNC void MOD06_02244DBC(void*); +extern THUMB_FUNC void MOD06_02244DC4(void*, void*); +extern THUMB_FUNC void MOD06_02244EF8(void*); +extern THUMB_FUNC void MOD06_02244F18(void*); +extern THUMB_FUNC BOOL MOD06_02244F24(void*); +extern THUMB_FUNC void MOD06_02244F2C(void*); +extern THUMB_FUNC void* MOD06_02245088(struct UnkSavStruct80 * savStruct); +extern THUMB_FUNC u32 MOD06_02245114(u32, struct UnkSavStruct80*); +extern THUMB_FUNC void MOD06_02245190(u32); +extern THUMB_FUNC void MOD06_02245198(u8, u32); +extern THUMB_FUNC u32 MOD06_022451F0(u32); + +extern THUMB_FUNC void FUN_020054C8(u32); +extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32); +extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*); +extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32); +extern THUMB_FUNC u32 FUN_020553A0(u32); +extern THUMB_FUNC void FUN_0205889C(u32, u32); +extern THUMB_FUNC void FUN_0205F1C4(struct ScriptState *); +extern THUMB_FUNC void FUN_0205F1D4(struct ScriptState *); +extern THUMB_FUNC void FUN_0206367C(struct UnkSavStruct80 *, u32); + + +struct UnkStruct_0206015C +{ + u32 unk0; + u32 unk4; + u32 unk8; + u8 unkC; + u8 unkD; +}; + +struct UnkStruct_0204652C +{ + void* unk0; + u32 unk4; + u32 unk8; + u8 action; + u8 unkD; // some kind of counter? + u8 unkE; // some kind of counter? +}; + +THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80* savStruct); +THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C * unkStruct0); + From ce5a50546d48ebe03adee670db617ec0deb30060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 1 May 2021 12:59:57 +0200 Subject: [PATCH 014/134] decompile unk_02031734.s --- arm9/asm/unk_02031734.s | 4136 --------------------------------------- arm9/src/unk_02031734.c | 2365 ++++++++++++++++++++++ include/unk_02031734.h | 223 +++ 3 files changed, 2588 insertions(+), 4136 deletions(-) delete mode 100644 arm9/asm/unk_02031734.s create mode 100644 arm9/src/unk_02031734.c create mode 100644 include/unk_02031734.h diff --git a/arm9/asm/unk_02031734.s b/arm9/asm/unk_02031734.s deleted file mode 100644 index 5a054d514..000000000 --- a/arm9/asm/unk_02031734.s +++ /dev/null @@ -1,4136 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - .section .rodata - .global UNK_020EEC48 -UNK_020EEC48: ; 0x020EEC48 - .word FUN_02032B84, 0x00000000 - - .global UNK_020EEC50 -UNK_020EEC50: ; 0x020EEC50 - .word FUN_0203213C, FUN_02032138, 0x00000000 - - .global UNK_020EEC5C -UNK_020EEC5C: ; 0x020EEC5C - .word FUN_02032234, FUN_0203234C, 0x00000000 - - .section .data - - .balign 4 - .global UNK_02105D5C -UNK_02105D5C: ; 0x02105D5C - .asciz "FREAK" - - .balign 4 - .global UNK_02105D64 -UNK_02105D64: ; 0x02105D64 - .asciz " FULL" - - .balign 4 - .global UNK_02105D6C -UNK_02105D6C: ; 0x02105D6C - .asciz " GAME" - - .section .bss - - .global UNK_021C5A00 -UNK_021C5A00: ; 0x021C5A00 - .space 0x4 - - .text - - thumb_func_start FUN_02031734 -FUN_02031734: ; 0x02031734 - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _020317BC ; =UNK_021C5A00 - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020317B8 - bl FUN_0202E49C - mov r0, #0xf - mov r1, #0x50 - bl AllocFromHeap - ldr r1, _020317BC ; =UNK_021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _020317BC ; =UNK_021C5A00 - mov r2, #0x32 - ldr r1, [r0, #0x0] - strh r2, [r1, #0x3a] - ldr r1, [r0, #0x0] - mov r2, #0x1 - add r1, #0x43 - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - str r5, [r0, #0x28] - add r0, r5, #0x0 - bl Sav2_PlayerData_GetProfileAddr - ldr r1, _020317BC ; =UNK_021C5A00 - ldr r2, [r1, #0x0] - str r0, [r2, #0x2c] - ldr r0, [r1, #0x0] - mov r2, #0x2 - add r0, #0x3c - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x0 - add r0, #0x3d - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0x48 - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0x3f - strb r4, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, #0xc - bl FUN_020312BC - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - bl FUN_0202D8D0 - cmp r4, #0x9 - beq _020317B8 - cmp r4, #0x11 - beq _020317B8 - cmp r4, #0xf - beq _020317B8 - bl FUN_02033E74 -_020317B8: - pop {r3-r5, pc} - nop -_020317BC: .word UNK_021C5A00 - - thumb_func_start FUN_020317C0 -FUN_020317C0: ; 0x020317C0 - push {r3, lr} - ldr r0, _0203180C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203180A - bl FUN_0202D918 - ldr r0, _0203180C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020317DC - bl FreeToHeap -_020317DC: - ldr r0, _0203180C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x13 - blo _020317EE - mov r0, #0x31 - bl FUN_020168D0 -_020317EE: - bl FUN_02033ED0 - bl FUN_0202E4F0 - ldr r0, _0203180C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - bl FreeToHeap - mov r0, #0xf - bl FUN_020168D0 - ldr r0, _0203180C ; =UNK_021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] -_0203180A: - pop {r3, pc} - .balign 4 -_0203180C: .word UNK_021C5A00 - - thumb_func_start FUN_02031810 -FUN_02031810: ; 0x02031810 - ldr r0, _02031820 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203181C - mov r0, #0x1 - bx lr -_0203181C: - mov r0, #0x0 - bx lr - .balign 4 -_02031820: .word UNK_021C5A00 - - thumb_func_start FUN_02031824 -FUN_02031824: ; 0x02031824 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02031858 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031856 - mov r2, #0xe - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0xa - bl FUN_02031734 - ldr r0, _02031858 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _0203185C ; =FUN_02031D30 - mov r1, #0x32 - bl FUN_02031D20 -_02031856: - pop {r4, pc} - .balign 4 -_02031858: .word UNK_021C5A00 -_0203185C: .word FUN_02031D30 - - thumb_func_start FUN_02031860 -FUN_02031860: ; 0x02031860 - push {r3, lr} - ldr r0, _02031878 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031876 - bl FUN_02031468 - ldr r0, _0203187C ; =FUN_020323CC - mov r1, #0x0 - bl FUN_02031D20 -_02031876: - pop {r3, pc} - .balign 4 -_02031878: .word UNK_021C5A00 -_0203187C: .word FUN_020323CC - - thumb_func_start FUN_02031880 -FUN_02031880: ; 0x02031880 - push {r3, lr} - bl FUN_0202FC60 - bl FUN_02031190 - ldr r1, _0203189C ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - strh r0, [r1, #0x38] - ldr r0, _020318A0 ; =FUN_020321B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203189C: .word UNK_021C5A00 -_020318A0: .word FUN_020321B8 - - thumb_func_start FUN_020318A4 -FUN_020318A4: ; 0x020318A4 - ldr r1, _020318B0 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x4f - strb r0, [r1, #0x0] - bx lr - nop -_020318B0: .word UNK_021C5A00 - - thumb_func_start FUN_020318B4 -FUN_020318B4: ; 0x020318B4 - ldr r3, _020318BC ; =FUN_02031D20 - ldr r0, _020318C0 ; =FUN_02032028 - mov r1, #0x0 - bx r3 - .balign 4 -_020318BC: .word FUN_02031D20 -_020318C0: .word FUN_02032028 - - thumb_func_start FUN_020318C4 -FUN_020318C4: ; 0x020318C4 - push {r4} - sub sp, #0xc - ldr r4, _0203190C ; =UNK_020EEC50 - add r3, sp, #0x0 - ldmia r4!, {r0-r1} - add r2, r3, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - ldr r0, _02031910 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - cmp r0, #0x0 - bne _020318E8 - add sp, #0xc - mov r0, #0x0 - pop {r4} - bx lr -_020318E8: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02031904 -_020318EE: - ldr r0, [r2, #0x0] - cmp r1, r0 - bne _020318FC - add sp, #0xc - mov r0, #0x1 - pop {r4} - bx lr -_020318FC: - add r2, r2, #0x4 - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _020318EE -_02031904: - mov r0, #0x0 - add sp, #0xc - pop {r4} - bx lr - .balign 4 -_0203190C: .word UNK_020EEC50 -_02031910: .word UNK_021C5A00 - - thumb_func_start FUN_02031914 -FUN_02031914: ; 0x02031914 - ldr r3, _0203191C ; =FUN_02031D20 - ldr r0, _02031920 ; =FUN_02032178 - mov r1, #0x0 - bx r3 - .balign 4 -_0203191C: .word FUN_02031D20 -_02031920: .word FUN_02032178 - - thumb_func_start FUN_02031924 -FUN_02031924: ; 0x02031924 - ldr r0, _02031930 ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x4c - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031930: .word UNK_021C5A00 - - thumb_func_start FUN_02031934 -FUN_02031934: ; 0x02031934 - push {r3, lr} - bl FUN_0202E49C - ldr r0, _02031944 ; =FUN_02032194 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031944: .word FUN_02032194 - - thumb_func_start FUN_02031948 -FUN_02031948: ; 0x02031948 - push {r3-r7, lr} - add r6, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031980 - ldr r2, _02031984 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_02031734 - ldr r0, _02031988 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r1, #0x40 - strb r5, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - str r4, [r0, #0x30] - ldr r0, _0203198C ; =FUN_020321D0 - bl FUN_02031D20 -_02031980: - pop {r3-r7, pc} - nop -_02031984: .word 0x00007080 -_02031988: .word UNK_021C5A00 -_0203198C: .word FUN_020321D0 - - thumb_func_start FUN_02031990 -FUN_02031990: ; 0x02031990 - push {r3-r7, lr} - add r6, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r4, r3, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _020319C8 - ldr r2, _020319CC ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r6, #0x0 - add r1, r7, #0x0 - bl FUN_02031734 - ldr r0, _020319D0 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r1, #0x40 - strb r5, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - str r4, [r0, #0x30] - ldr r0, _020319D4 ; =FUN_0203224C - bl FUN_02031D20 -_020319C8: - pop {r3-r7, pc} - nop -_020319CC: .word 0x00007080 -_020319D0: .word UNK_021C5A00 -_020319D4: .word FUN_0203224C - - thumb_func_start FUN_020319D8 -FUN_020319D8: ; 0x020319D8 - ldr r1, _020319E8 ; =UNK_021C5A00 - ldr r3, _020319EC ; =FUN_02031D20 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _020319F0 ; =FUN_02032298 - mov r1, #0x0 - bx r3 - .balign 4 -_020319E8: .word UNK_021C5A00 -_020319EC: .word FUN_02031D20 -_020319F0: .word FUN_02032298 - - thumb_func_start FUN_020319F4 -FUN_020319F4: ; 0x020319F4 - push {r3, lr} - bl FUN_0202FCA8 - ldr r0, _02031A04 ; =FUN_02032364 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031A04: .word FUN_02032364 - - thumb_func_start FUN_02031A08 -FUN_02031A08: ; 0x02031A08 - push {r3, lr} - ldr r0, _02031A1C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031A1A - ldr r0, _02031A20 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02031A1A: - pop {r3, pc} - .balign 4 -_02031A1C: .word UNK_021C5A00 -_02031A20: .word FUN_02032440 - - thumb_func_start FUN_02031A24 -FUN_02031A24: ; 0x02031A24 - ldr r3, _02031A28 ; =FUN_0202D298 - bx r3 - .balign 4 -_02031A28: .word FUN_0202D298 - - thumb_func_start FUN_02031A2C -FUN_02031A2C: ; 0x02031A2C - push {r4} - sub sp, #0xc - ldr r4, _02031A74 ; =UNK_020EEC5C - add r3, sp, #0x0 - ldmia r4!, {r0-r1} - add r2, r3, #0x0 - stmia r3!, {r0-r1} - ldr r0, [r4, #0x0] - str r0, [r3, #0x0] - ldr r0, _02031A78 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - cmp r0, #0x0 - bne _02031A50 - add sp, #0xc - mov r0, #0x0 - pop {r4} - bx lr -_02031A50: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02031A6C -_02031A56: - ldr r0, [r2, #0x0] - cmp r1, r0 - bne _02031A64 - add sp, #0xc - mov r0, #0x1 - pop {r4} - bx lr -_02031A64: - add r2, r2, #0x4 - ldr r0, [r2, #0x0] - cmp r0, #0x0 - bne _02031A56 -_02031A6C: - mov r0, #0x0 - add sp, #0xc - pop {r4} - bx lr - .balign 4 -_02031A74: .word UNK_020EEC5C -_02031A78: .word UNK_021C5A00 - - thumb_func_start FUN_02031A7C -FUN_02031A7C: ; 0x02031A7C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02031ABC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031ABA - ldr r2, _02031AC0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - cmp r0, #0x0 - bne _02031A9A - bl FUN_020335E0 -_02031A9A: - add r0, r4, #0x0 - mov r1, #0x9 - bl FUN_02031734 - ldr r0, _02031ABC ; =UNK_021C5A00 - mov r2, #0x9 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r1, #0x0 - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02031AC4 ; =FUN_02032478 - bl FUN_02031D20 -_02031ABA: - pop {r4, pc} - .balign 4 -_02031ABC: .word UNK_021C5A00 -_02031AC0: .word 0x00007080 -_02031AC4: .word FUN_02032478 - - thumb_func_start FUN_02031AC8 -FUN_02031AC8: ; 0x02031AC8 - push {r3, lr} - ldr r1, _02031AEC ; =UNK_021C5A00 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - mov r0, #0x1 - bl FUN_0202D344 - bl FUN_02033E74 - ldr r0, _02031AF0 ; =FUN_02032628 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031AEC: .word UNK_021C5A00 -_02031AF0: .word FUN_02032628 - - thumb_func_start FUN_02031AF4 -FUN_02031AF4: ; 0x02031AF4 - ldr r0, _02031B20 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031B02 - mov r0, #0x0 - mvn r0, r0 - bx lr -_02031B02: - ldr r1, [r0, #0x24] - ldr r0, _02031B24 ; =FUN_0203279C - cmp r1, r0 - bne _02031B0E - mov r0, #0x1 - bx lr -_02031B0E: - ldr r0, _02031B28 ; =FUN_020327B4 - cmp r1, r0 - bne _02031B18 - mov r0, #0x1 - b _02031B1A -_02031B18: - mov r0, #0x0 -_02031B1A: - neg r0, r0 - bx lr - nop -_02031B20: .word UNK_021C5A00 -_02031B24: .word FUN_0203279C -_02031B28: .word FUN_020327B4 - - thumb_func_start FUN_02031B2C -FUN_02031B2C: ; 0x02031B2C - ldr r0, _02031B48 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031B38 - mov r0, #0x0 - bx lr -_02031B38: - ldr r1, [r0, #0x24] - ldr r0, _02031B4C ; =FUN_020327FC - cmp r1, r0 - bne _02031B44 - mov r0, #0x1 - bx lr -_02031B44: - mov r0, #0x0 - bx lr - .balign 4 -_02031B48: .word UNK_021C5A00 -_02031B4C: .word FUN_020327FC - - thumb_func_start FUN_02031B50 -FUN_02031B50: ; 0x02031B50 - push {r3, lr} - mov r0, #0x0 - bl FUN_0202D344 - ldr r0, _02031BC4 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x44 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02031B78 - add r0, r1, #0x0 - add r0, #0x45 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02031B78 - add r1, #0x3f - ldrb r0, [r1, #0x0] - cmp r0, #0x9 - bne _02031B80 -_02031B78: - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 -_02031B80: - bl FUN_02033ED0 - ldr r0, _02031BC4 ; =UNK_021C5A00 - mov r2, #0x9 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r1, #0x48 - strb r2, [r1, #0x0] - ldr r0, [r0, #0x0] - add r0, #0x3c - ldrb r0, [r0, #0x0] - bl FUN_0202D1B0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02031BB8 - mov r0, #0x1 - bl FUN_0202D36C - ldr r0, _02031BC8 ; =FUN_020323DC - mov r1, #0xf - bl FUN_02031D20 - pop {r3, pc} -_02031BB8: - ldr r0, _02031BCC ; =FUN_02032424 - mov r1, #0x5 - bl FUN_02031D20 - pop {r3, pc} - nop -_02031BC4: .word UNK_021C5A00 -_02031BC8: .word FUN_020323DC -_02031BCC: .word FUN_02032424 - - thumb_func_start FUN_02031BD0 -FUN_02031BD0: ; 0x02031BD0 - ldr r0, _02031BEC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031BDC - mov r0, #0x1 - bx lr -_02031BDC: - ldr r1, [r0, #0x24] - ldr r0, _02031BF0 ; =FUN_020324F8 - cmp r1, r0 - beq _02031BE8 - mov r0, #0x1 - bx lr -_02031BE8: - mov r0, #0x0 - bx lr - .balign 4 -_02031BEC: .word UNK_021C5A00 -_02031BF0: .word FUN_020324F8 - - thumb_func_start FUN_02031BF4 -FUN_02031BF4: ; 0x02031BF4 - push {r3, lr} - ldr r0, _02031C08 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031C06 - ldr r0, _02031C0C ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02031C06: - pop {r3, pc} - .balign 4 -_02031C08: .word UNK_021C5A00 -_02031C0C: .word FUN_02032440 - - thumb_func_start FUN_02031C10 -FUN_02031C10: ; 0x02031C10 - push {r3, lr} - ldr r0, _02031C28 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02031C24 - mov r0, #0x1 - add r1, #0x48 - strb r0, [r1, #0x0] - bl FUN_0202D344 -_02031C24: - pop {r3, pc} - nop -_02031C28: .word UNK_021C5A00 - - thumb_func_start FUN_02031C2C -FUN_02031C2C: ; 0x02031C2C - push {r3, lr} - ldr r0, _02031C4C ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02031C48 - mov r0, #0x1 - add r1, #0x48 - strb r0, [r1, #0x0] - bl FUN_0202D344 - ldr r0, _02031C50 ; =FUN_02032850 - mov r1, #0x0 - bl FUN_02031D20 -_02031C48: - pop {r3, pc} - nop -_02031C4C: .word UNK_021C5A00 -_02031C50: .word FUN_02032850 - - thumb_func_start FUN_02031C54 -FUN_02031C54: ; 0x02031C54 - ldr r0, _02031C60 ; =UNK_021C5A00 - mov r1, #0x12 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031C60: .word UNK_021C5A00 - - thumb_func_start FUN_02031C64 -FUN_02031C64: ; 0x02031C64 - ldr r0, _02031C70 ; =UNK_021C5A00 - mov r1, #0x9 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_02031C70: .word UNK_021C5A00 - - thumb_func_start FUN_02031C74 -FUN_02031C74: ; 0x02031C74 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031C9C - ldr r2, _02031CA0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02031734 - ldr r0, _02031CA4 ; =FUN_02032E00 - mov r1, #0x0 - bl FUN_02031D20 -_02031C9C: - pop {r3-r5, pc} - nop -_02031CA0: .word 0x00007080 -_02031CA4: .word FUN_02032E00 - - thumb_func_start FUN_02031CA8 -FUN_02031CA8: ; 0x02031CA8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02031CD0 - ldr r2, _02031CD4 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02031734 - ldr r0, _02031CD8 ; =FUN_02032E48 - mov r1, #0x0 - bl FUN_02031D20 -_02031CD0: - pop {r3-r5, pc} - nop -_02031CD4: .word 0x00007080 -_02031CD8: .word FUN_02032E48 - - thumb_func_start FUN_02031CDC -FUN_02031CDC: ; 0x02031CDC - push {r3, lr} - ldr r0, _02031D1C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031CEE - ldr r0, [r0, #0x24] - cmp r0, #0x0 - beq _02031CEE - blx r0 -_02031CEE: - bl FUN_02033590 - cmp r0, #0x0 - beq _02031D04 - bl MOD04_021DDB08 - mov r1, #0x3 - sub r0, r1, r0 - bl FUN_02033EEC - pop {r3, pc} -_02031D04: - bl FUN_0202EDF8 - cmp r0, #0x0 - beq _02031D18 - bl WM_GetLinkLevel - mov r1, #0x3 - sub r0, r1, r0 - bl FUN_02033EEC -_02031D18: - pop {r3, pc} - nop -_02031D1C: .word UNK_021C5A00 - - thumb_func_start FUN_02031D20 -FUN_02031D20: ; 0x02031D20 - ldr r2, _02031D2C ; =UNK_021C5A00 - ldr r3, [r2, #0x0] - str r0, [r3, #0x24] - ldr r0, [r2, #0x0] - strh r1, [r0, #0x3a] - bx lr - .balign 4 -_02031D2C: .word UNK_021C5A00 - - thumb_func_start FUN_02031D30 -FUN_02031D30: ; 0x02031D30 - push {r3-r5, lr} - ldr r0, _02031DF8 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031D42 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3-r5, pc} -_02031D42: - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02031DF8 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _02031DF8 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x4a - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031DC8 - add r1, #0x43 - ldrb r1, [r1, #0x0] - mov r0, #0x1 - mov r2, #0x7d - lsl r2, r2, #0x2 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, _02031DFC ; =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031DC8: - mov r0, #0x1 - mov r2, #0x7d - add r1, r0, #0x0 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031DF6 - ldr r0, _02031DF8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4c - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031DEE - ldr r0, _02031E00 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031DEE: - ldr r0, _02031E04 ; =FUN_02031EE0 - mov r1, #0x40 - bl FUN_02031D20 -_02031DF6: - pop {r3-r5, pc} - .balign 4 -_02031DF8: .word UNK_021C5A00 -_02031DFC: .word FUN_020320C4 -_02031E00: .word FUN_020323B8 -_02031E04: .word FUN_02031EE0 - - thumb_func_start FUN_02031E08 -FUN_02031E08: ; 0x02031E08 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02031E7C - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _02031E80 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4a - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02031E32 - ldr r0, _02031E84 ; =FUN_02032058 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3-r5, pc} -_02031E32: - mov r2, #0x7d - mov r0, #0x0 - mov r1, #0x1 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031E7C - ldr r0, _02031E80 ; =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - mov r1, #0x0 - str r3, [r4, #0x4] - lsr r0, r3, #0x1a - lsl r1, r1, #0x6 - orr r1, r0 - ldrh r0, [r5, #0x38] - cmp r0, #0x0 - beq _02031E76 - lsl r1, r0, #0x6 - mov r0, #0x0 - strh r0, [r5, #0x38] -_02031E76: - ldr r0, _02031E88 ; =FUN_02031EE0 - bl FUN_02031D20 -_02031E7C: - pop {r3-r5, pc} - nop -_02031E80: .word UNK_021C5A00 -_02031E84: .word FUN_02032058 -_02031E88: .word FUN_02031EE0 - - thumb_func_start FUN_02031E8C -FUN_02031E8C: ; 0x02031E8C - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02031ED6 - mov r0, #0x0 - mov r2, #0x7d - add r1, r0, #0x0 - lsl r2, r2, #0x2 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02031ED6 - ldr r0, _02031ED8 ; =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - ldr r0, _02031EDC ; =FUN_02031EE0 - add r1, #0x10 - str r3, [r5, #0x4] - bl FUN_02031D20 -_02031ED6: - pop {r3-r5, pc} - .balign 4 -_02031ED8: .word UNK_021C5A00 -_02031EDC: .word FUN_02031EE0 - - thumb_func_start FUN_02031EE0 -FUN_02031EE0: ; 0x02031EE0 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _02031F54 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x4f - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02031F50 - add r1, #0x4b - ldrb r0, [r1, #0x0] - cmp r0, #0x0 - bne _02031F50 - bl FUN_0202E8F4 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02031F1A - ldr r1, _02031F54 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _02031F58 ; =FUN_02031F60 - mov r1, #0x20 - bl FUN_02031D20 - pop {r3, pc} -_02031F1A: - ldr r0, _02031F54 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031F2A - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02031F2A: - bl FUN_0202E950 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _02031F48 - ldr r1, _02031F54 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - add r1, #0x3e - strb r0, [r1, #0x0] - ldr r0, _02031F58 ; =FUN_02031F60 - mov r1, #0x20 - bl FUN_02031D20 - pop {r3, pc} -_02031F48: - ldr r0, _02031F5C ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 -_02031F50: - pop {r3, pc} - nop -_02031F54: .word UNK_021C5A00 -_02031F58: .word FUN_02031F60 -_02031F5C: .word FUN_02032028 - - thumb_func_start FUN_02031F60 -FUN_02031F60: ; 0x02031F60 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _02031FBC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _02031F90 - ldr r0, _02031FBC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _02031F90 - ldr r0, _02031FC0 ; =FUN_02031FC8 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_02031F90: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02031FA2 - ldr r0, _02031FC4 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02031FA2: - ldr r0, _02031FBC ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02031FB2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02031FB2: - ldr r0, _02031FC4 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02031FBC: .word UNK_021C5A00 -_02031FC0: .word FUN_02031FC8 -_02031FC4: .word FUN_02032028 - - thumb_func_start FUN_02031FC8 -FUN_02031FC8: ; 0x02031FC8 - push {r3, lr} - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02031FEE - bl FUN_0202FC60 - mov r0, #0x0 - bl FUN_02031268 - bl FUN_02030FA8 - ldr r0, _0203201C ; =FUN_0203213C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02031FEE: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032000 - ldr r0, _02032020 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032000: - ldr r0, _02032024 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032010 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032010: - ldr r0, _02032020 ; =FUN_02032028 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203201C: .word FUN_0203213C -_02032020: .word FUN_02032028 -_02032024: .word UNK_021C5A00 - - thumb_func_start FUN_02032028 -FUN_02032028: ; 0x02032028 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203203A - ldr r0, _0203203C ; =FUN_02032058 - mov r1, #0x0 - bl FUN_02031D20 -_0203203A: - pop {r3, pc} - .balign 4 -_0203203C: .word FUN_02032058 - - thumb_func_start FUN_02032040 -FUN_02032040: ; 0x02032040 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _02032052 - ldr r0, _02032054 ; =FUN_02031E8C - mov r1, #0x0 - bl FUN_02031D20 -_02032052: - pop {r3, pc} - .balign 4 -_02032054: .word FUN_02031E8C - - thumb_func_start FUN_02032058 -FUN_02032058: ; 0x02032058 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _020320BA - mov r0, #0x1 - bl FUN_02031268 - ldr r1, _020320BC ; =UNK_021C5A00 - mov r2, #0x7d - ldr r1, [r1, #0x0] - mov r0, #0x0 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x2 - mov r3, #0x1 - bl FUN_0202F918 - cmp r0, #0x0 - beq _020320BA - ldr r0, _020320BC ; =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, _020320C0 ; =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 -_020320BA: - pop {r3-r5, pc} - .balign 4 -_020320BC: .word UNK_021C5A00 -_020320C0: .word FUN_020320C4 - - thumb_func_start FUN_020320C4 -FUN_020320C4: ; 0x020320C4 - push {r3, lr} - bl FUN_020311E8 - cmp r0, #0x0 - beq _020320E2 - ldr r0, _0203210C ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - ldr r0, _02032110 ; =FUN_02032118 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020320E2: - ldr r0, _0203210C ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020320F2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020320F2: - add r1, #0x4a - ldrb r0, [r1, #0x0] - cmp r0, #0x0 - bne _0203210A - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203210A - ldr r0, _02032114 ; =FUN_02032040 - mov r1, #0x2 - bl FUN_02031D20 -_0203210A: - pop {r3, pc} - .balign 4 -_0203210C: .word UNK_021C5A00 -_02032110: .word FUN_02032118 -_02032114: .word FUN_02032040 - - thumb_func_start FUN_02032118 -FUN_02032118: ; 0x02032118 - push {r3, lr} - mov r0, #0x0 - bl FUN_02031268 - mov r0, #0x1 - bl FUN_0202EE84 - bl FUN_02030FA8 - ldr r0, _02032134 ; =FUN_02032138 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032134: .word FUN_02032138 - - thumb_func_start FUN_02032138 -FUN_02032138: ; 0x02032138 - bx lr - .balign 4 - - thumb_func_start FUN_0203213C -FUN_0203213C: ; 0x0203213C - bx lr - .balign 4 - - thumb_func_start FUN_02032140 -FUN_02032140: ; 0x02032140 - push {r3, lr} - ldr r0, _02032170 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x13 - bhs _02032166 - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203216E - mov r0, #0x1 - bl FUN_02031268 - bl FUN_02030FA8 - mov r0, #0x1 - bl FUN_0202E7B0 -_02032166: - ldr r0, _02032174 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 -_0203216E: - pop {r3, pc} - .balign 4 -_02032170: .word UNK_021C5A00 -_02032174: .word FUN_020323B8 - - thumb_func_start FUN_02032178 -FUN_02032178: ; 0x02032178 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203218E - bl FUN_0202FC60 - ldr r0, _02032190 ; =FUN_02032140 - mov r1, #0x0 - bl FUN_02031D20 -_0203218E: - pop {r3, pc} - .balign 4 -_02032190: .word FUN_02032140 - - thumb_func_start FUN_02032194 -FUN_02032194: ; 0x02032194 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _020321B0 - mov r0, #0x0 - bl FUN_0202E7B0 - bl FUN_0202FC60 - ldr r0, _020321B4 ; =FUN_02031E08 - mov r1, #0x0 - bl FUN_02031D20 -_020321B0: - pop {r3, pc} - nop -_020321B4: .word FUN_02031E08 - - thumb_func_start FUN_020321B8 -FUN_020321B8: ; 0x020321B8 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020321CA - ldr r0, _020321CC ; =FUN_02031E08 - mov r1, #0x0 - bl FUN_02031D20 -_020321CA: - pop {r3, pc} - .balign 4 -_020321CC: .word FUN_02031E08 - - thumb_func_start FUN_020321D0 -FUN_020321D0: ; 0x020321D0 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _0203220C - ldr r0, _02032210 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032210 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x28] - ldr r1, [r1, #0x30] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203220C - bl FUN_0202FA10 - ldr r0, _02032214 ; =FUN_02032218 - mov r1, #0x0 - bl FUN_02031D20 -_0203220C: - pop {r3, pc} - nop -_02032210: .word UNK_021C5A00 -_02032214: .word FUN_02032218 - - thumb_func_start FUN_02032218 -FUN_02032218: ; 0x02032218 - push {r3, lr} - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0203222E - ldr r0, _02032230 ; =FUN_02032234 - mov r1, #0x0 - bl FUN_02031D20 -_0203222E: - pop {r3, pc} - .balign 4 -_02032230: .word FUN_02032234 - - thumb_func_start FUN_02032234 -FUN_02032234: ; 0x02032234 - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032246 - ldr r0, _02032248 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_02032246: - pop {r3, pc} - .balign 4 -_02032248: .word FUN_020323BC - - thumb_func_start FUN_0203224C -FUN_0203224C: ; 0x0203224C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032286 - ldr r0, _02032288 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032288 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x28] - ldr r1, [r1, #0x30] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032286 - bl FUN_0202FA10 - ldr r0, _0203228C ; =FUN_02032290 - mov r1, #0x0 - bl FUN_02031D20 -_02032286: - pop {r3, pc} - .balign 4 -_02032288: .word UNK_021C5A00 -_0203228C: .word FUN_02032290 - - thumb_func_start FUN_02032290 -FUN_02032290: ; 0x02032290 - ldr r3, _02032294 ; =FUN_0202EA54 - bx r3 - .balign 4 -_02032294: .word FUN_0202EA54 - - thumb_func_start FUN_02032298 -FUN_02032298: ; 0x02032298 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _020322B8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _020322B6 - ldr r0, _020322BC ; =FUN_020322C0 - mov r1, #0xa - bl FUN_02031D20 -_020322B6: - pop {r3, pc} - .balign 4 -_020322B8: .word UNK_021C5A00 -_020322BC: .word FUN_020322C0 - - thumb_func_start FUN_020322C0 -FUN_020322C0: ; 0x020322C0 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020322D2 - ldr r0, _020322F0 ; =FUN_020322F8 - mov r1, #0x0 - bl FUN_02031D20 -_020322D2: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _020322EE - bl FUN_02031190 - cmp r0, #0x0 - beq _020322EE - ldr r0, _020322F4 ; =FUN_0203234C - mov r1, #0x0 - bl FUN_02031D20 -_020322EE: - pop {r3, pc} - .balign 4 -_020322F0: .word FUN_020322F8 -_020322F4: .word FUN_0203234C - - thumb_func_start FUN_020322F8 -FUN_020322F8: ; 0x020322F8 - push {r3, lr} - bl FUN_0202E6F0 - ldr r0, _02032308 ; =FUN_0203230C - mov r1, #0x2 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032308: .word FUN_0203230C - - thumb_func_start FUN_0203230C -FUN_0203230C: ; 0x0203230C - push {r3, lr} - ldr r0, _02032344 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203231E - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203231E: - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032340 - mov r1, #0x1 - mov r0, #0x0 - lsl r2, r1, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032340 - bl FUN_0202FA10 - ldr r0, _02032348 ; =FUN_02032298 - mov r1, #0xa - bl FUN_02031D20 -_02032340: - pop {r3, pc} - nop -_02032344: .word UNK_021C5A00 -_02032348: .word FUN_02032298 - - thumb_func_start FUN_0203234C -FUN_0203234C: ; 0x0203234C - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _0203235E - ldr r0, _02032360 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_0203235E: - pop {r3, pc} - .balign 4 -_02032360: .word FUN_020323BC - - thumb_func_start FUN_02032364 -FUN_02032364: ; 0x02032364 - push {r3, lr} - bl FUN_0202E6F0 - ldr r0, _02032374 ; =FUN_02032378 - mov r1, #0x2 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032374: .word FUN_02032378 - - thumb_func_start FUN_02032378 -FUN_02032378: ; 0x02032378 - push {r3, lr} - ldr r0, _020323B0 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203238A - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203238A: - bl FUN_0202EE0C - cmp r0, #0x0 - beq _020323AC - mov r1, #0x1 - mov r0, #0x0 - lsl r2, r1, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _020323AC - bl FUN_0202FA10 - ldr r0, _020323B4 ; =FUN_02032290 - mov r1, #0xa - bl FUN_02031D20 -_020323AC: - pop {r3, pc} - nop -_020323B0: .word UNK_021C5A00 -_020323B4: .word FUN_02032290 - - thumb_func_start FUN_020323B8 -FUN_020323B8: ; 0x020323B8 - bx lr - .balign 4 - - thumb_func_start FUN_020323BC -FUN_020323BC: ; 0x020323BC - push {r3, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _020323CA - bl FUN_020317C0 -_020323CA: - pop {r3, pc} - - thumb_func_start FUN_020323CC -FUN_020323CC: ; 0x020323CC - ldr r3, _020323D4 ; =FUN_02031D20 - ldr r0, _020323D8 ; =FUN_02032440 - mov r1, #0x5 - bx r3 - .balign 4 -_020323D4: .word FUN_02031D20 -_020323D8: .word FUN_02032440 - - thumb_func_start FUN_020323DC -FUN_020323DC: ; 0x020323DC - push {r3, lr} - bl FUN_02030F20 - cmp r0, #0x1 - bgt _020323F8 - mov r0, #0x0 - bl FUN_0202D36C - bl FUN_0202FC80 - ldr r0, _0203241C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 -_020323F8: - ldr r0, _02032420 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032408 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032408: - mov r0, #0x0 - bl FUN_0202D36C - bl FUN_0202FC80 - ldr r0, _0203241C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_0203241C: .word FUN_020324F8 -_02032420: .word UNK_021C5A00 - - thumb_func_start FUN_02032424 -FUN_02032424: ; 0x02032424 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203243A - bl FUN_0202FC60 - ldr r0, _0203243C ; =FUN_020324F8 - mov r1, #0x0 - bl FUN_02031D20 -_0203243A: - pop {r3, pc} - .balign 4 -_0203243C: .word FUN_020324F8 - - thumb_func_start FUN_02032440 -FUN_02032440: ; 0x02032440 - push {r3, lr} - ldr r0, _02032470 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032450 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] -_02032450: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203246E - ldr r0, _02032470 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x3a] - cmp r0, #0x0 - bne _0203246E - bl FUN_0202FA5C - ldr r0, _02032474 ; =FUN_020323BC - mov r1, #0x0 - bl FUN_02031D20 -_0203246E: - pop {r3, pc} - .balign 4 -_02032470: .word UNK_021C5A00 -_02032474: .word FUN_020323BC - - thumb_func_start FUN_02032478 -FUN_02032478: ; 0x02032478 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _020324BE - ldr r0, _020324C0 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _020324C0 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3c - ldrb r0, [r0, #0x0] - bl FUN_0202D1B0 - ldr r0, _020324C0 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _020324BE - bl FUN_0202FA10 - ldr r0, _020324C4 ; =FUN_020324C8 - mov r1, #0x40 - bl FUN_02031D20 -_020324BE: - pop {r3, pc} - .balign 4 -_020324C0: .word UNK_021C5A00 -_020324C4: .word FUN_020324C8 - - thumb_func_start FUN_020324C8 -FUN_020324C8: ; 0x020324C8 - push {r3, lr} - bl FUN_0202EA54 - ldr r0, _020324F0 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020324DE - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020324DE: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020324EE - ldr r0, _020324F4 ; =FUN_02032510 - mov r1, #0x0 - bl FUN_02031D20 -_020324EE: - pop {r3, pc} - .balign 4 -_020324F0: .word UNK_021C5A00 -_020324F4: .word FUN_02032510 - - thumb_func_start FUN_020324F8 -FUN_020324F8: ; 0x020324F8 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203250A - ldr r0, _0203250C ; =FUN_02032510 - mov r1, #0x0 - bl FUN_02031D20 -_0203250A: - pop {r3, pc} - .balign 4 -_0203250C: .word FUN_02032510 - - thumb_func_start FUN_02032510 -FUN_02032510: ; 0x02032510 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032568 - ldr r1, _0203256C ; =UNK_021C5A00 - mov r2, #0x2 - ldr r1, [r1, #0x0] - mov r0, #0x0 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x8 - mov r3, #0x1 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02032568 - ldr r0, _0203256C ; =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - str r3, [r5, #0x4] - bl FUN_0202FA10 - ldr r0, _0203256C ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - ldr r0, _02032570 ; =FUN_02032578 - ldr r1, _02032574 ; =0x00002710 - bl FUN_02031D20 -_02032568: - pop {r3-r5, pc} - nop -_0203256C: .word UNK_021C5A00 -_02032570: .word FUN_02032578 -_02032574: .word 0x00002710 - - thumb_func_start FUN_02032578 -FUN_02032578: ; 0x02032578 - push {r3, lr} - bl FUN_0202F104 - cmp r0, #0x0 - bne _020325B2 - bl FUN_020311E8 - cmp r0, #0x0 - beq _020325A2 - ldr r0, _020325C4 ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - bl FUN_02033E74 - ldr r0, _020325C8 ; =FUN_020327FC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020325A2: - ldr r0, _020325C4 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020325B2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020325B2: - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020325C2 - ldr r0, _020325CC ; =FUN_020325D0 - mov r1, #0x0 - bl FUN_02031D20 -_020325C2: - pop {r3, pc} - .balign 4 -_020325C4: .word UNK_021C5A00 -_020325C8: .word FUN_020327FC -_020325CC: .word FUN_020325D0 - - thumb_func_start FUN_020325D0 -FUN_020325D0: ; 0x020325D0 - push {r3-r5, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203261C - mov r0, #0x0 - mov r2, #0x2 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _0203261C - bl FUN_0202FA10 - ldr r0, _02032620 ; =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - ldr r0, _02032624 ; =FUN_020324C8 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - str r3, [r5, #0x4] - bl FUN_02031D20 -_0203261C: - pop {r3-r5, pc} - nop -_02032620: .word UNK_021C5A00 -_02032624: .word FUN_020324C8 - - thumb_func_start FUN_02032628 -FUN_02032628: ; 0x02032628 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203263A - ldr r0, _0203263C ; =FUN_02032640 - mov r1, #0x0 - bl FUN_02031D20 -_0203263A: - pop {r3, pc} - .balign 4 -_0203263C: .word FUN_02032640 - - thumb_func_start FUN_02032640 -FUN_02032640: ; 0x02032640 - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _02032666 - mov r0, #0x0 - mov r2, #0x2 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032666 - bl FUN_0202FA10 - ldr r0, _02032668 ; =FUN_0203266C - mov r1, #0x64 - bl FUN_02031D20 -_02032666: - pop {r3, pc} - .balign 4 -_02032668: .word FUN_0203266C - - thumb_func_start FUN_0203266C -FUN_0203266C: ; 0x0203266C - push {r3, lr} - ldr r0, _020326C4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _02032698 - ldr r0, _020326C4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _02032698 - ldr r0, _020326C8 ; =FUN_020326D0 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_02032698: - bl FUN_020311F0 - cmp r0, #0x0 - beq _020326AA - ldr r0, _020326CC ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020326AA: - ldr r0, _020326C4 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _020326BA - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_020326BA: - ldr r0, _020326CC ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_020326C4: .word UNK_021C5A00 -_020326C8: .word FUN_020326D0 -_020326CC: .word FUN_020327B8 - - thumb_func_start FUN_020326D0 -FUN_020326D0: ; 0x020326D0 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020326E4 - ldr r0, _02032728 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020326E4: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _0203270C - ldr r0, _0203272C ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - ldr r1, _02032730 ; =UNK_02105D5C - mov r0, #0x6 - bl FUN_020311D0 - ldr r0, _02032734 ; =FUN_02032738 - mov r1, #0x78 - bl FUN_02031D20 - pop {r3, pc} -_0203270C: - ldr r0, _0203272C ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _0203271C - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_0203271C: - ldr r0, _02032728 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_02032728: .word FUN_020327B8 -_0203272C: .word UNK_021C5A00 -_02032730: .word UNK_02105D5C -_02032734: .word FUN_02032738 - - thumb_func_start FUN_02032738 -FUN_02032738: ; 0x02032738 - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _0203274C - ldr r0, _0203278C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_0203274C: - ldr r0, _02032790 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - add r0, r1, #0x0 - add r0, #0x3d - ldrb r0, [r0, #0x0] - cmp r0, #0x2 - bne _02032764 - ldr r0, _02032794 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032764: - cmp r0, #0x1 - bne _02032776 - bl FUN_0202DBE0 - ldr r0, _02032798 ; =FUN_0203279C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032776: - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - beq _02032782 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032782: - ldr r0, _0203278C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_0203278C: .word FUN_020327B8 -_02032790: .word UNK_021C5A00 -_02032794: .word FUN_020327B4 -_02032798: .word FUN_0203279C - - thumb_func_start FUN_0203279C -FUN_0203279C: ; 0x0203279C - push {r3, lr} - bl FUN_020311F0 - cmp r0, #0x0 - beq _020327AE - ldr r0, _020327B0 ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 -_020327AE: - pop {r3, pc} - .balign 4 -_020327B0: .word FUN_020327B8 - - thumb_func_start FUN_020327B4 -FUN_020327B4: ; 0x020327B4 - bx lr - .balign 4 - - thumb_func_start FUN_020327B8 -FUN_020327B8: ; 0x020327B8 - push {r3, lr} - ldr r0, _020327F0 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _020327EC - ldr r0, _020327F0 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x38] - cmp r0, #0x0 - beq _020327E4 - sub r0, r0, #0x1 - strh r0, [r1, #0x38] - ldr r0, _020327F4 ; =FUN_02032640 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020327E4: - ldr r0, _020327F8 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 -_020327EC: - pop {r3, pc} - nop -_020327F0: .word UNK_021C5A00 -_020327F4: .word FUN_02032640 -_020327F8: .word FUN_020327B4 - - thumb_func_start FUN_020327FC -FUN_020327FC: ; 0x020327FC - push {r3, lr} - bl FUN_020311E8 - cmp r0, #0x0 - bne _02032820 - bl FUN_02033510 - cmp r0, #0x0 - bne _0203282C - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _0203282C - ldr r0, _02032848 ; =FUN_020325D0 - mov r1, #0x0 - bl FUN_02031D20 - b _0203282C -_02032820: - bl FUN_02031190 - cmp r0, #0x0 - bne _0203282C - bl FUN_0202DDE8 -_0203282C: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032844 - bl FUN_02033510 - cmp r0, #0x0 - bne _02032844 - ldr r0, _0203284C ; =FUN_020327B8 - mov r1, #0x0 - bl FUN_02031D20 -_02032844: - pop {r3, pc} - nop -_02032848: .word FUN_020325D0 -_0203284C: .word FUN_020327B8 - - thumb_func_start FUN_02032850 -FUN_02032850: ; 0x02032850 - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203287E - ldr r1, _02032880 ; =UNK_021C5A00 - mov r0, #0x0 - ldr r1, [r1, #0x0] - mov r2, #0x2 - add r1, #0x43 - ldrb r1, [r1, #0x0] - lsl r2, r2, #0x8 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203287E - bl FUN_0202FA10 - ldr r0, _02032884 ; =FUN_020323B8 - mov r1, #0x0 - bl FUN_02031D20 -_0203287E: - pop {r3, pc} - .balign 4 -_02032880: .word UNK_021C5A00 -_02032884: .word FUN_020323B8 - - thumb_func_start FUN_02032888 -FUN_02032888: ; 0x02032888 - push {r3, lr} - ldr r0, _020328BC ; =UNK_021C5A00 - mov r1, #0xd - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bl FUN_02031190 - cmp r0, #0x0 - add r0, sp, #0x0 - bne _020328AE - mov r1, #0x0 - strb r1, [r0, #0x1] - add r1, sp, #0x0 - mov r0, #0xa - add r1, #0x1 - bl FUN_020311D0 - pop {r3, pc} -_020328AE: - mov r1, #0x0 - strb r1, [r0, #0x0] - mov r0, #0xa - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - .balign 4 -_020328BC: .word UNK_021C5A00 - - thumb_func_start FUN_020328C0 -FUN_020328C0: ; 0x020328C0 - ldr r1, _020328D8 ; =UNK_021C5A00 - ldr r3, _020328DC ; =FUN_02031D20 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - ldr r0, _020328E0 ; =FUN_02032924 - mov r1, #0x0 - bx r3 - nop -_020328D8: .word UNK_021C5A00 -_020328DC: .word FUN_02031D20 -_020328E0: .word FUN_02032924 - - thumb_func_start FUN_020328E4 -FUN_020328E4: ; 0x020328E4 - ldr r0, _020328F0 ; =UNK_021C5A00 - mov r1, #0x7 - ldr r0, [r0, #0x0] - add r0, #0x3f - strb r1, [r0, #0x0] - bx lr - .balign 4 -_020328F0: .word UNK_021C5A00 - - thumb_func_start FUN_020328F4 -FUN_020328F4: ; 0x020328F4 - push {r3, lr} - ldr r1, _0203291C ; =UNK_021C5A00 - ldr r2, [r1, #0x0] - add r2, #0x3e - strb r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x7 - add r0, #0x3f - strb r2, [r0, #0x0] - ldr r0, [r1, #0x0] - mov r2, #0x3 - strh r2, [r0, #0x38] - bl FUN_02033E74 - ldr r0, _02032920 ; =FUN_02032628 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - nop -_0203291C: .word UNK_021C5A00 -_02032920: .word FUN_02032628 - - thumb_func_start FUN_02032924 -FUN_02032924: ; 0x02032924 - push {r3, lr} - bl FUN_0202E6F0 - cmp r0, #0x0 - beq _02032936 - ldr r0, _02032938 ; =FUN_0203293C - mov r1, #0x0 - bl FUN_02031D20 -_02032936: - pop {r3, pc} - .balign 4 -_02032938: .word FUN_0203293C - - thumb_func_start FUN_0203293C -FUN_0203293C: ; 0x0203293C - push {r3, lr} - bl FUN_0202EE0C - cmp r0, #0x0 - beq _0203296C - ldr r0, _02032970 ; =UNK_021C5A00 - mov r2, #0x2 - ldr r0, [r0, #0x0] - mov r1, #0xd - add r0, #0x3f - strb r1, [r0, #0x0] - mov r0, #0x0 - add r1, r0, #0x0 - lsl r2, r2, #0x8 - bl FUN_0202F950 - cmp r0, #0x0 - beq _0203296C - bl FUN_0202FA1C - ldr r0, _02032974 ; =FUN_02032978 - mov r1, #0x64 - bl FUN_02031D20 -_0203296C: - pop {r3, pc} - nop -_02032970: .word UNK_021C5A00 -_02032974: .word FUN_02032978 - - thumb_func_start FUN_02032978 -FUN_02032978: ; 0x02032978 - push {r3, lr} - ldr r0, _020329E4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202E8A0 - cmp r0, #0x0 - beq _020329A4 - ldr r0, _020329E4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x3e - ldrb r0, [r0, #0x0] - bl FUN_0202FB18 - cmp r0, #0x0 - beq _020329A4 - ldr r0, _020329E8 ; =FUN_020329F4 - mov r1, #0x64 - bl FUN_02031D20 - pop {r3, pc} -_020329A4: - bl FUN_020311F0 - cmp r0, #0x0 - bne _020329B6 - ldr r0, _020329E4 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x0 - bne _020329DC -_020329B6: - ldr r0, _020329E4 ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _020329D2 - ldr r0, _020329EC ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020329D2: - ldr r0, _020329F0 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020329DC: - beq _020329E2 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] -_020329E2: - pop {r3, pc} - .balign 4 -_020329E4: .word UNK_021C5A00 -_020329E8: .word FUN_020329F4 -_020329EC: .word FUN_020327B4 -_020329F0: .word FUN_02032924 - - thumb_func_start FUN_020329F4 -FUN_020329F4: ; 0x020329F4 - push {r3, lr} - ldr r0, _02032A7C ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - ldrh r0, [r1, #0x3a] - cmp r0, #0x5a - bls _02032A06 - sub r0, r0, #0x1 - strh r0, [r1, #0x3a] - pop {r3, pc} -_02032A06: - bl FUN_020311F0 - cmp r0, #0x0 - beq _02032A34 - ldr r0, _02032A7C ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _02032A2A - ldr r0, _02032A80 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A2A: - ldr r0, _02032A84 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A34: - bl FUN_02031190 - bl FUN_02030E7C - cmp r0, #0x0 - beq _02032A4A - ldr r0, _02032A88 ; =FUN_0203279C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A4A: - ldr r0, _02032A7C ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - ldrh r1, [r2, #0x3a] - cmp r1, #0x0 - beq _02032A5A - sub r0, r1, #0x1 - strh r0, [r2, #0x3a] - pop {r3, pc} -_02032A5A: - ldrh r1, [r2, #0x38] - sub r1, r1, #0x1 - strh r1, [r2, #0x38] - ldr r0, [r0, #0x0] - ldrh r0, [r0, #0x38] - cmp r0, #0x0 - bne _02032A72 - ldr r0, _02032A80 ; =FUN_020327B4 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032A72: - ldr r0, _02032A84 ; =FUN_02032924 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} - .balign 4 -_02032A7C: .word UNK_021C5A00 -_02032A80: .word FUN_020327B4 -_02032A84: .word FUN_02032924 -_02032A88: .word FUN_0203279C - - thumb_func_start FUN_02032A8C -FUN_02032A8C: ; 0x02032A8C - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r2, #0x0 - bl FUN_02031190 - cmp r0, #0x0 - bne _02032ADA - ldr r6, _02032ADC ; =UNK_02105D5C - mov r3, #0x1 - mov r2, #0x0 -_02032AA0: - ldrb r1, [r6, #0x0] - ldrb r0, [r4, r2] - cmp r1, r0 - beq _02032AAC - mov r3, #0x0 - b _02032AB4 -_02032AAC: - add r2, r2, #0x1 - add r6, r6, #0x1 - cmp r2, #0x6 - blo _02032AA0 -_02032AB4: - cmp r3, #0x0 - beq _02032AD0 - ldr r0, _02032AE0 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x48 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02032AD0 - ldr r1, _02032AE4 ; =UNK_02105D6C - mov r0, #0x7 - strb r5, [r1, #0x0] - bl FUN_02030C4C - pop {r4-r6, pc} -_02032AD0: - ldr r1, _02032AE8 ; =UNK_02105D64 - mov r0, #0x7 - strb r5, [r1, #0x0] - bl FUN_02030C4C -_02032ADA: - pop {r4-r6, pc} - .balign 4 -_02032ADC: .word UNK_02105D5C -_02032AE0: .word UNK_021C5A00 -_02032AE4: .word UNK_02105D6C -_02032AE8: .word UNK_02105D64 - - thumb_func_start FUN_02032AEC -FUN_02032AEC: ; 0x02032AEC - push {r3-r5, lr} - mov r4, #0x1 - ldr r5, _02032B5C ; =UNK_02105D6C + 1 - add r3, r4, #0x0 -_02032AF4: - ldrb r1, [r5, #0x0] - ldrb r0, [r2, r3] - cmp r1, r0 - beq _02032B00 - mov r4, #0x0 - b _02032B08 -_02032B00: - add r3, r3, #0x1 - add r5, r5, #0x1 - cmp r3, #0x6 - blo _02032AF4 -_02032B08: - cmp r4, #0x0 - beq _02032B22 - ldrb r4, [r2, #0x0] - bl FUN_02031190 - cmp r4, r0 - bne _02032B58 - ldr r0, _02032B60 ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] - pop {r3-r5, pc} -_02032B22: - mov r4, #0x1 - ldr r3, _02032B64 ; =UNK_02105D64 + 1 - add r5, r4, #0x0 -_02032B28: - ldrb r1, [r3, #0x0] - ldrb r0, [r2, r5] - cmp r1, r0 - beq _02032B34 - mov r4, #0x0 - b _02032B3C -_02032B34: - add r5, r5, #0x1 - add r3, r3, #0x1 - cmp r5, #0x6 - blo _02032B28 -_02032B3C: - cmp r4, #0x0 - beq _02032B58 - ldrb r4, [r2, #0x0] - bl FUN_02031190 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r4, r0 - bne _02032B58 - ldr r0, _02032B60 ; =UNK_021C5A00 - mov r1, #0x2 - ldr r0, [r0, #0x0] - add r0, #0x3d - strb r1, [r0, #0x0] -_02032B58: - pop {r3-r5, pc} - nop -_02032B5C: .word UNK_02105D6C + 1 -_02032B60: .word UNK_021C5A00 -_02032B64: .word UNK_02105D64 + 1 - - thumb_func_start FUN_02032B68 -FUN_02032B68: ; 0x02032B68 - mov r0, #0x6 - bx lr - - thumb_func_start FUN_02032B6C -FUN_02032B6C: ; 0x02032B6C - push {r3, lr} - ldr r1, _02032B80 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _02032B7E - add r1, #0x3c - strb r0, [r1, #0x0] - bl FUN_0202D1B0 -_02032B7E: - pop {r3, pc} - .balign 4 -_02032B80: .word UNK_021C5A00 - - thumb_func_start FUN_02032B84 -FUN_02032B84: ; 0x02032B84 - ldr r3, _02032B88 ; =FUN_0202EA54 - bx r3 - .balign 4 -_02032B88: .word FUN_0202EA54 - - thumb_func_start FUN_02032B8C -FUN_02032B8C: ; 0x02032B8C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032BC6 - ldr r0, _02032BC8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032BC8 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - mov r2, #0x20 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032BC6 - bl FUN_0202FA10 - ldr r0, _02032BCC ; =FUN_02032B84 - mov r1, #0x0 - bl FUN_02031D20 -_02032BC6: - pop {r3, pc} - .balign 4 -_02032BC8: .word UNK_021C5A00 -_02032BCC: .word FUN_02032B84 - - thumb_func_start FUN_02032BD0 -FUN_02032BD0: ; 0x02032BD0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032C00 - mov r2, #0x7 - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0xe - bl FUN_02031734 - ldr r0, _02032C04 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02032C08 ; =FUN_02032B8C - bl FUN_02031D20 -_02032C00: - pop {r4, pc} - nop -_02032C04: .word UNK_021C5A00 -_02032C08: .word FUN_02032B8C - - thumb_func_start FUN_02032C0C -FUN_02032C0C: ; 0x02032C0C - push {r3, lr} - ldr r0, _02032C20 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032C1E - ldr r0, _02032C24 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02032C1E: - pop {r3, pc} - .balign 4 -_02032C20: .word UNK_021C5A00 -_02032C24: .word FUN_02032440 - - thumb_func_start FUN_02032C28 -FUN_02032C28: ; 0x02032C28 - sub sp, #0x8 - ldr r1, _02032C64 ; =UNK_020EEC48 - add r0, sp, #0x0 - ldr r2, [r1, #0x0] - ldr r1, [r1, #0x4] - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, _02032C68 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - ldr r3, [r1, #0x24] - cmp r1, #0x0 - bne _02032C46 - mov r0, #0x0 - add sp, #0x8 - bx lr -_02032C46: - cmp r2, #0x0 - beq _02032C5E -_02032C4A: - ldr r1, [r0, #0x0] - cmp r3, r1 - bne _02032C56 - mov r0, #0x1 - add sp, #0x8 - bx lr -_02032C56: - add r0, r0, #0x4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _02032C4A -_02032C5E: - mov r0, #0x0 - add sp, #0x8 - bx lr - .balign 4 -_02032C64: .word UNK_020EEC48 -_02032C68: .word UNK_021C5A00 - - thumb_func_start FUN_02032C6C -FUN_02032C6C: ; 0x02032C6C - ldr r2, _02032CE4 ; =0x00400131 - cmp r0, r2 - bhi _02032C7C - bhs _02032CBA - ldr r2, _02032CE8 ; =0x00000333 - cmp r0, r2 - beq _02032C8E - bx lr -_02032C7C: - ldr r1, _02032CEC ; =0x00400286 - cmp r0, r1 - bhi _02032C86 - beq _02032CCE - bx lr -_02032C86: - add r1, #0x92 - cmp r0, r1 - beq _02032CA6 - bx lr -_02032C8E: - cmp r1, #0xf - bne _02032CE0 - ldr r0, _02032CF0 ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CA6: - ldr r0, _02032CF0 ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x1 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CBA: - ldr r0, _02032CF0 ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x2 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] - bx lr -_02032CCE: - ldr r0, _02032CF0 ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - add r0, r2, #0x0 - add r0, #0x49 - ldrb r1, [r0, #0x0] - mov r0, #0x4 - add r2, #0x49 - orr r0, r1 - strb r0, [r2, #0x0] -_02032CE0: - bx lr - nop -_02032CE4: .word 0x00400131 -_02032CE8: .word 0x00000333 -_02032CEC: .word 0x00400286 -_02032CF0: .word UNK_021C5A00 - - thumb_func_start FUN_02032CF4 -FUN_02032CF4: ; 0x02032CF4 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032D34 - ldr r0, _02032D38 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032D38 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - ldr r0, _02032D3C ; =FUN_02032C6C - bl FUN_0202D308 - mov r0, #0x1 - add r1, r0, #0x0 - mov r2, #0x20 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032D34 - bl FUN_0202FA10 - ldr r0, _02032D40 ; =FUN_02032B84 - mov r1, #0x0 - bl FUN_02031D20 -_02032D34: - pop {r3, pc} - nop -_02032D38: .word UNK_021C5A00 -_02032D3C: .word FUN_02032C6C -_02032D40: .word FUN_02032B84 - - thumb_func_start FUN_02032D44 -FUN_02032D44: ; 0x02032D44 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02030F40 - cmp r0, #0x0 - bne _02032D74 - mov r2, #0x7 - mov r0, #0x3 - mov r1, #0xf - lsl r2, r2, #0xc - bl FUN_02016828 - add r0, r4, #0x0 - mov r1, #0x11 - bl FUN_02031734 - ldr r0, _02032D78 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x40 - strb r1, [r0, #0x0] - ldr r0, _02032D7C ; =FUN_02032CF4 - bl FUN_02031D20 -_02032D74: - pop {r4, pc} - nop -_02032D78: .word UNK_021C5A00 -_02032D7C: .word FUN_02032CF4 - - thumb_func_start FUN_02032D80 -FUN_02032D80: ; 0x02032D80 - push {r3, lr} - ldr r0, _02032D94 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032D92 - ldr r0, _02032D98 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_02032D92: - pop {r3, pc} - .balign 4 -_02032D94: .word UNK_021C5A00 -_02032D98: .word FUN_02032440 - - thumb_func_start FUN_02032D9C -FUN_02032D9C: ; 0x02032D9C - ldr r0, _02032DA8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x49 - ldrb r0, [r0, #0x0] - bx lr - nop -_02032DA8: .word UNK_021C5A00 - - thumb_func_start FUN_02032DAC -FUN_02032DAC: ; 0x02032DAC - push {r3, lr} - bl FUN_02031468 - ldr r0, _02032DF4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02032DBE - mov r0, #0x1 - pop {r3, pc} -_02032DBE: - add r0, #0x3f - ldrb r0, [r0, #0x0] - add r0, #0xe8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x1 - bhi _02032DD4 - bl MOD04_021D83C0 - mov r0, #0x1 - pop {r3, pc} -_02032DD4: - bl FUN_02033590 - cmp r0, #0x0 - beq _02032DE6 - ldr r0, _02032DF8 ; =FUN_0203318C - mov r1, #0x0 - bl FUN_02031D20 - b _02032DEE -_02032DE6: - ldr r0, _02032DFC ; =FUN_02032178 - mov r1, #0x0 - bl FUN_02031D20 -_02032DEE: - mov r0, #0x0 - pop {r3, pc} - nop -_02032DF4: .word UNK_021C5A00 -_02032DF8: .word FUN_0203318C -_02032DFC: .word FUN_02032178 - - thumb_func_start FUN_02032E00 -FUN_02032E00: ; 0x02032E00 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032E3C - ldr r0, _02032E40 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032E40 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _02032E3C - bl FUN_0202FA10 - ldr r0, _02032E44 ; =FUN_02032218 - mov r1, #0x0 - bl FUN_02031D20 -_02032E3C: - pop {r3, pc} - nop -_02032E40: .word UNK_021C5A00 -_02032E44: .word FUN_02032218 - - thumb_func_start FUN_02032E48 -FUN_02032E48: ; 0x02032E48 - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _02032E82 - ldr r0, _02032E84 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x2c] - bl FUN_0202E29C - ldr r0, _02032E84 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202DB14 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - bl FUN_0202F950 - cmp r0, #0x0 - beq _02032E82 - bl FUN_0202FA10 - ldr r0, _02032E88 ; =FUN_02032290 - mov r1, #0x0 - bl FUN_02031D20 -_02032E82: - pop {r3, pc} - .balign 4 -_02032E84: .word UNK_021C5A00 -_02032E88: .word FUN_02032290 - - thumb_func_start FUN_02032E8C -FUN_02032E8C: ; 0x02032E8C - bx lr - .balign 4 - - thumb_func_start FUN_02032E90 -FUN_02032E90: ; 0x02032E90 - push {r3, lr} - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _02032EA2 - ldr r0, _02032EA4 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_02032EA2: - pop {r3, pc} - .balign 4 -_02032EA4: .word FUN_02032E8C - - thumb_func_start FUN_02032EA8 -FUN_02032EA8: ; 0x02032EA8 - bx lr - .balign 4 - - thumb_func_start FUN_02032EAC -FUN_02032EAC: ; 0x02032EAC - bx lr - .balign 4 - - thumb_func_start FUN_02032EB0 -FUN_02032EB0: ; 0x02032EB0 - push {r3, lr} - mov r0, #0x1 - bl FUN_020313A0 - bl MOD04_021D7F8C - cmp r0, #0xa - blt _02032ECA - ldr r0, _02032F0C ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032ECA: - cmp r0, #0x0 - bge _02032ED8 - ldr r0, _02032F10 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032ED8: - cmp r0, #0x1 - bne _02032EE6 - ldr r0, _02032F14 ; =FUN_02032E90 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032EE6: - cmp r0, #0x2 - bne _02032F08 - ldr r0, _02032F18 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x44 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02032F00 - ldr r0, _02032F10 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F00: - ldr r0, _02032F1C ; =FUN_02032EA8 - mov r1, #0x0 - bl FUN_02031D20 -_02032F08: - pop {r3, pc} - nop -_02032F0C: .word FUN_02032EAC -_02032F10: .word FUN_02032E8C -_02032F14: .word FUN_02032E90 -_02032F18: .word UNK_021C5A00 -_02032F1C: .word FUN_02032EA8 - - thumb_func_start FUN_02032F20 -FUN_02032F20: ; 0x02032F20 - add r1, r0, #0x2 - cmp r1, #0x1 - bls _02032F28 - neg r0, r0 -_02032F28: - ldr r1, _02032F30 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - str r0, [r1, #0x34] - bx lr - .balign 4 -_02032F30: .word UNK_021C5A00 - - thumb_func_start FUN_02032F34 -FUN_02032F34: ; 0x02032F34 - push {r3, lr} - mov r0, #0x0 - bl MOD04_021D7800 - cmp r0, #0xa - blt _02032F4A - ldr r0, _02032F88 ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F4A: - cmp r0, #0x0 - bge _02032F5C - bl FUN_02032F20 - ldr r0, _02032F8C ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F5C: - cmp r0, #0x1 - bne _02032F6A - ldr r0, _02032F90 ; =FUN_02032EB0 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F6A: - cmp r0, #0x2 - bne _02032F78 - ldr r0, _02032F94 ; =FUN_02032EA8 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032F78: - cmp r0, #0x3 - bne _02032F84 - ldr r0, _02032F88 ; =FUN_02032EAC - mov r1, #0x0 - bl FUN_02031D20 -_02032F84: - pop {r3, pc} - nop -_02032F88: .word FUN_02032EAC -_02032F8C: .word FUN_02032E8C -_02032F90: .word FUN_02032EB0 -_02032F94: .word FUN_02032EA8 - - thumb_func_start FUN_02032F98 -FUN_02032F98: ; 0x02032F98 - push {r3, lr} - mov r0, #0x1 - bl MOD04_021D7800 - cmp r0, #0x0 - bge _02032FB2 - bl FUN_02032F20 - ldr r0, _02032FD0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02032FB2: - ldr r0, _02032FD4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x42 - ldrb r0, [r0, #0x0] - bl MOD04_021D8494 - cmp r0, #0x0 - beq _02032FCE - bl FUN_0202FC60 - ldr r0, _02032FD8 ; =FUN_02032F34 - mov r1, #0x0 - bl FUN_02031D20 -_02032FCE: - pop {r3, pc} - .balign 4 -_02032FD0: .word FUN_02032E8C -_02032FD4: .word UNK_021C5A00 -_02032FD8: .word FUN_02032F34 - - thumb_func_start FUN_02032FDC -FUN_02032FDC: ; 0x02032FDC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02032FFC ; =FUN_020303BC - ldr r1, _02033000 ; =FUN_02030238 - bl MOD04_021D77C4 - ldr r0, _02033004 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x42 - strb r4, [r0, #0x0] - ldr r0, _02033008 ; =FUN_02032F98 - bl FUN_02031D20 - mov r0, #0x1 - pop {r4, pc} - .balign 4 -_02032FFC: .word FUN_020303BC -_02033000: .word FUN_02030238 -_02033004: .word UNK_021C5A00 -_02033008: .word FUN_02032F98 - - thumb_func_start FUN_0203300C -FUN_0203300C: ; 0x0203300C - ldr r0, _02033048 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _0203304C ; =FUN_02032F34 - cmp r1, r0 - bne _0203301C - mov r0, #0x0 - bx lr -_0203301C: - ldr r0, _02033050 ; =FUN_02032EB0 - cmp r1, r0 - bne _02033026 - mov r0, #0x1 - bx lr -_02033026: - ldr r0, _02033054 ; =FUN_02032E90 - cmp r1, r0 - bne _02033030 - mov r0, #0x3 - bx lr -_02033030: - ldr r0, _02033058 ; =FUN_02032EA8 - cmp r1, r0 - bne _0203303A - mov r0, #0x4 - bx lr -_0203303A: - ldr r0, _0203305C ; =FUN_02032EAC - cmp r1, r0 - bne _02033044 - mov r0, #0x5 - bx lr -_02033044: - mov r0, #0x2 - bx lr - .balign 4 -_02033048: .word UNK_021C5A00 -_0203304C: .word FUN_02032F34 -_02033050: .word FUN_02032EB0 -_02033054: .word FUN_02032E90 -_02033058: .word FUN_02032EA8 -_0203305C: .word FUN_02032EAC - - thumb_func_start FUN_02033060 -FUN_02033060: ; 0x02033060 - push {r3, lr} - ldr r0, _02033090 ; =FUN_020303BC - ldr r1, _02033094 ; =FUN_02030238 - bl MOD04_021D77C4 - mov r0, #0x0 - mvn r0, r0 - bl MOD04_021D8494 - cmp r0, #0x0 - beq _0203308C - ldr r0, _02033098 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x4d - strb r1, [r0, #0x0] - bl FUN_0202FC60 - ldr r0, _0203309C ; =FUN_02032F34 - mov r1, #0x0 - bl FUN_02031D20 -_0203308C: - pop {r3, pc} - nop -_02033090: .word FUN_020303BC -_02033094: .word FUN_02030238 -_02033098: .word UNK_021C5A00 -_0203309C: .word FUN_02032F34 - - thumb_func_start FUN_020330A0 -FUN_020330A0: ; 0x020330A0 - push {r3, lr} - mov r0, #0x0 - bl FUN_020313A0 - ldr r0, _020330D8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x41 - ldrb r0, [r0, #0x0] - bl MOD04_021D82BC - cmp r0, #0x0 - beq _020330C6 - bl MOD04_021D836C - ldr r0, _020330DC ; =FUN_02033060 - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_020330C6: - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _020330D6 - ldr r0, _020330E0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_020330D6: - pop {r3, pc} - .balign 4 -_020330D8: .word UNK_021C5A00 -_020330DC: .word FUN_02033060 -_020330E0: .word FUN_02032E8C - - thumb_func_start FUN_020330E4 -FUN_020330E4: ; 0x020330E4 - push {r3, lr} - bl FUN_02031190 - cmp r0, #0x0 - bne _02033100 - ldr r0, _02033120 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033124 ; =FUN_020330A0 - bl FUN_02031D20 - b _02033112 -_02033100: - ldr r0, _02033120 ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033124 ; =FUN_020330A0 - mov r1, #0x0 - bl FUN_02031D20 -_02033112: - ldr r0, _02033120 ; =UNK_021C5A00 - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, #0x4d - strb r1, [r0, #0x0] - pop {r3, pc} - nop -_02033120: .word UNK_021C5A00 -_02033124: .word FUN_020330A0 - - thumb_func_start FUN_02033128 -FUN_02033128: ; 0x02033128 - ldr r0, _02033134 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4d - ldrb r0, [r0, #0x0] - bx lr - nop -_02033134: .word UNK_021C5A00 - - thumb_func_start FUN_02033138 -FUN_02033138: ; 0x02033138 - ldr r0, _0203314C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _02033150 ; =FUN_02033060 - cmp r1, r0 - bne _02033148 - mov r0, #0x1 - bx lr -_02033148: - mov r0, #0x0 - bx lr - .balign 4 -_0203314C: .word UNK_021C5A00 -_02033150: .word FUN_02033060 - - thumb_func_start FUN_02033154 -FUN_02033154: ; 0x02033154 - ldr r0, _02033174 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - ldr r0, _02033178 ; =FUN_02032F34 - cmp r1, r0 - bne _02033164 - mov r0, #0x1 - bx lr -_02033164: - ldr r0, _0203317C ; =FUN_02033060 - cmp r1, r0 - bne _0203316E - mov r0, #0x1 - bx lr -_0203316E: - mov r0, #0x0 - bx lr - nop -_02033174: .word UNK_021C5A00 -_02033178: .word FUN_02032F34 -_0203317C: .word FUN_02033060 - - thumb_func_start FUN_02033180 -FUN_02033180: ; 0x02033180 - ldr r0, _02033188 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x34] - bx lr - .balign 4 -_02033188: .word UNK_021C5A00 - - thumb_func_start FUN_0203318C -FUN_0203318C: ; 0x0203318C - push {r3, lr} - mov r0, #0x0 - bl FUN_020313A0 - mov r0, #0x0 - bl MOD04_021D82BC - cmp r0, #0x0 - beq _020331AA - bl MOD04_021D836C - ldr r0, _020331BC ; =FUN_02032440 - mov r1, #0x0 - bl FUN_02031D20 -_020331AA: - bl MOD04_021D7F8C - cmp r0, #0x0 - bge _020331BA - ldr r0, _020331C0 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 -_020331BA: - pop {r3, pc} - .balign 4 -_020331BC: .word FUN_02032440 -_020331C0: .word FUN_02032E8C - - thumb_func_start FUN_020331C4 -FUN_020331C4: ; 0x020331C4 - push {r3, lr} - ldr r0, _020331E0 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020331DC - mov r0, #0x1 - bl FUN_020166B8 - ldr r0, _020331E4 ; =FUN_02032440 - mov r1, #0x5 - bl FUN_02031D20 -_020331DC: - pop {r3, pc} - nop -_020331E0: .word UNK_021C5A00 -_020331E4: .word FUN_02032440 - - thumb_func_start FUN_020331E8 -FUN_020331E8: ; 0x020331E8 - push {r3, lr} - ldr r0, _02033200 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020331FE - mov r1, #0x0 - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033204 ; =FUN_020330A0 - bl FUN_02031D20 -_020331FE: - pop {r3, pc} - .balign 4 -_02033200: .word UNK_021C5A00 -_02033204: .word FUN_020330A0 - - thumb_func_start FUN_02033208 -FUN_02033208: ; 0x02033208 - push {r3, lr} - ldr r0, _02033234 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033232 - bl FUN_02031190 - cmp r0, #0x0 - bne _02033220 - mov r1, #0x0 - ldr r0, _02033234 ; =UNK_021C5A00 - b _02033224 -_02033220: - ldr r0, _02033234 ; =UNK_021C5A00 - mov r1, #0x1 -_02033224: - ldr r0, [r0, #0x0] - add r0, #0x41 - strb r1, [r0, #0x0] - ldr r0, _02033238 ; =FUN_020330A0 - mov r1, #0x0 - bl FUN_02031D20 -_02033232: - pop {r3, pc} - .balign 4 -_02033234: .word UNK_021C5A00 -_02033238: .word FUN_020330A0 - - thumb_func_start FUN_0203323C -FUN_0203323C: ; 0x0203323C - push {r3, lr} - bl FUN_02031190 - add r1, sp, #0x0 - strb r0, [r1, #0x0] - mov r0, #0x15 - add r1, sp, #0x0 - bl FUN_020311D0 - pop {r3, pc} - - thumb_func_start FUN_02033250 -FUN_02033250: ; 0x02033250 - ldr r0, _0203327C ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _02033276 - ldr r1, [r2, #0x24] - ldr r0, _02033280 ; =FUN_02032E8C - cmp r1, r0 - bne _02033264 - mov r0, #0x1 - bx lr -_02033264: - ldr r0, _02033284 ; =FUN_02032E90 - cmp r1, r0 - bne _02033276 - add r2, #0x44 - ldrb r0, [r2, #0x0] - cmp r0, #0x0 - beq _02033276 - mov r0, #0x1 - bx lr -_02033276: - mov r0, #0x0 - bx lr - nop -_0203327C: .word UNK_021C5A00 -_02033280: .word FUN_02032E8C -_02033284: .word FUN_02032E90 - - thumb_func_start FUN_02033288 -FUN_02033288: ; 0x02033288 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020332D8 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020332D6 - mov r1, #0xf - add r2, r1, #0x0 - mov r0, #0x3 - add r2, #0xf1 - bl FUN_02016828 - mov r0, #0xf - mov r1, #0x50 - bl AllocFromHeap - ldr r1, _020332D8 ; =UNK_021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _020332D8 ; =UNK_021C5A00 - mov r2, #0x18 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r2, [r0, #0x0] - mov r1, #0x1 - add r2, #0x46 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r4, [r0, #0x28] - mov r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - bl FUN_020166A8 -_020332D6: - pop {r4, pc} - .balign 4 -_020332D8: .word UNK_021C5A00 - - thumb_func_start FUN_020332DC -FUN_020332DC: ; 0x020332DC - push {r3, lr} - ldr r0, _0203330C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033308 - mov r0, #0x1 - bl FUN_020166B8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 - ldr r0, _0203330C ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - bl FreeToHeap - ldr r0, _0203330C ; =UNK_021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, #0xf - bl FUN_020168D0 -_02033308: - pop {r3, pc} - nop -_0203330C: .word UNK_021C5A00 - - thumb_func_start FUN_02033310 -FUN_02033310: ; 0x02033310 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _02033360 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0203335E - mov r1, #0xf - add r2, r1, #0x0 - mov r0, #0x3 - add r2, #0xf1 - bl FUN_02016828 - mov r0, #0xf - mov r1, #0x50 - bl AllocFromHeap - ldr r1, _02033360 ; =UNK_021C5A00 - mov r2, #0x50 - str r0, [r1, #0x0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _02033360 ; =UNK_021C5A00 - mov r2, #0x19 - ldr r1, [r0, #0x0] - add r1, #0x3f - strb r2, [r1, #0x0] - ldr r2, [r0, #0x0] - mov r1, #0x1 - add r2, #0x46 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r4, [r0, #0x28] - mov r0, #0x0 - bl FUN_020334E8 - mov r0, #0x1 - bl FUN_020166A8 -_0203335E: - pop {r4, pc} - .balign 4 -_02033360: .word UNK_021C5A00 - - thumb_func_start FUN_02033364 -FUN_02033364: ; 0x02033364 - push {r3, lr} - ldr r0, _02033394 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033390 - mov r0, #0x1 - bl FUN_020166B8 - mov r0, #0x0 - add r1, r0, #0x0 - bl FUN_020334E8 - ldr r0, _02033394 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - bl FreeToHeap - ldr r0, _02033394 ; =UNK_021C5A00 - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, #0xf - bl FUN_020168D0 -_02033390: - pop {r3, pc} - nop -_02033394: .word UNK_021C5A00 - - thumb_func_start FUN_02033398 -FUN_02033398: ; 0x02033398 - push {r3, lr} - sub sp, #0x8 - ldr r0, _020333EC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020333AA - add sp, #0x8 - mov r0, #0x0 - pop {r3, pc} -_020333AA: - add r0, #0x3f - ldrb r0, [r0, #0x0] - cmp r0, #0x18 - bne _020333C8 - add r0, sp, #0x4 - add r1, sp, #0x0 - bl MOD04_021DD718 - cmp r0, #0x0 - beq _020333E4 - bl MOD04_021DD6F0 - add sp, #0x8 - mov r0, #0x1 - pop {r3, pc} -_020333C8: - cmp r0, #0x19 - bne _020333E4 - add r0, sp, #0x4 - add r1, sp, #0x0 - bl MOD04_021DD718 - cmp r0, #0x0 - beq _020333E4 - ldr r0, [sp, #0x0] - cmp r0, #0x7 - bne _020333E4 - add sp, #0x8 - mov r0, #0x1 - pop {r3, pc} -_020333E4: - mov r0, #0x0 - add sp, #0x8 - pop {r3, pc} - nop -_020333EC: .word UNK_021C5A00 - - thumb_func_start FUN_020333F0 -FUN_020333F0: ; 0x020333F0 - push {r3, lr} - bl MOD04_021D76AC - cmp r0, #0x0 - bge _02033408 - bl FUN_02032F20 - ldr r0, _02033414 ; =FUN_02032E8C - mov r1, #0x0 - bl FUN_02031D20 - pop {r3, pc} -_02033408: - ble _02033412 - ldr r0, _02033418 ; =FUN_02033060 - mov r1, #0x0 - bl FUN_02031D20 -_02033412: - pop {r3, pc} - .balign 4 -_02033414: .word FUN_02032E8C -_02033418: .word FUN_02033060 - - thumb_func_start FUN_0203341C -FUN_0203341C: ; 0x0203341C - push {r3, lr} - bl FUN_0202E4C8 - cmp r0, #0x0 - beq _0203345E - mov r1, #0x31 - mov r0, #0x3 - lsl r2, r1, #0xc - bl FUN_02016828 - mov r0, #0x1 - add r1, r0, #0x0 - lsl r2, r0, #0x9 - add r3, r0, #0x0 - bl FUN_0202F918 - cmp r0, #0x0 - beq _0203345E - ldr r0, _02033460 ; =UNK_021C5A00 - mov r1, #0x31 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl MOD05_021D74E0 - ldr r0, _02033464 ; =FUN_020335D0 - bl MOD04_021D83A8 - bl FUN_0202FA10 - ldr r0, _02033468 ; =FUN_020333F0 - mov r1, #0x0 - bl FUN_02031D20 -_0203345E: - pop {r3, pc} - .balign 4 -_02033460: .word UNK_021C5A00 -_02033464: .word FUN_020335D0 -_02033468: .word FUN_020333F0 - - thumb_func_start FUN_0203346C -FUN_0203346C: ; 0x0203346C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl Sav2_PlayerData_GetProfileAddr - bl FUN_02030F40 - cmp r0, #0x0 - beq _02033482 - mov r0, #0x0 - pop {r3-r5, pc} -_02033482: - mov r0, #0x1 - bl FUN_020166A8 - ldr r2, _020334D0 ; =0x00007080 - mov r0, #0x3 - mov r1, #0xf - bl FUN_02016828 - add r0, r5, #0x0 - mov r1, #0x17 - bl FUN_02031734 - mov r0, #0xf - add r1, r4, #0x0 - bl AllocFromHeap - ldr r1, _020334D4 ; =UNK_021C5A00 - ldr r2, [r1, #0x0] - str r0, [r2, #0x0] - ldr r0, [r1, #0x0] - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r2, r4, #0x0 - bl MI_CpuFill8 - ldr r0, _020334D4 ; =UNK_021C5A00 - mov r1, #0x0 - ldr r2, [r0, #0x0] - add r2, #0x40 - strb r1, [r2, #0x0] - ldr r0, [r0, #0x0] - str r5, [r0, #0x28] - ldr r0, _020334D8 ; =FUN_0203341C - bl FUN_02031D20 - ldr r0, _020334D4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 -_020334D0: .word 0x00007080 -_020334D4: .word UNK_021C5A00 -_020334D8: .word FUN_0203341C - - thumb_func_start FUN_020334DC -FUN_020334DC: ; 0x020334DC - ldr r0, _020334E4 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020334E4: .word UNK_021C5A00 - - thumb_func_start FUN_020334E8 -FUN_020334E8: ; 0x020334E8 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0203350C ; =UNK_021C5A00 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _020334FE - add r2, #0x44 - strb r4, [r2, #0x0] - ldr r0, [r0, #0x0] - add r0, #0x45 - strb r1, [r0, #0x0] -_020334FE: - add r0, r4, #0x0 - bl FUN_0202EE84 - add r0, r4, #0x0 - bl FUN_0202EEB0 - pop {r4, pc} - .balign 4 -_0203350C: .word UNK_021C5A00 - - thumb_func_start FUN_02033510 -FUN_02033510: ; 0x02033510 - ldr r0, _02033530 ; =UNK_021C5A00 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0203352C - add r0, r1, #0x0 - add r0, #0x4e - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033526 - mov r0, #0x1 - bx lr -_02033526: - add r1, #0x45 - ldrb r0, [r1, #0x0] - bx lr -_0203352C: - mov r0, #0x0 - bx lr - .balign 4 -_02033530: .word UNK_021C5A00 - - thumb_func_start FUN_02033534 -FUN_02033534: ; 0x02033534 - ldr r0, _02033548 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02033542 - add r0, #0x3f - ldrb r0, [r0, #0x0] - bx lr -_02033542: - mov r0, #0x1 - bx lr - nop -_02033548: .word UNK_021C5A00 - - thumb_func_start FUN_0203354C -FUN_0203354C: ; 0x0203354C - ldr r0, _02033560 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203355A - add r0, #0x40 - ldrb r0, [r0, #0x0] - bx lr -_0203355A: - mov r0, #0x0 - bx lr - nop -_02033560: .word UNK_021C5A00 - - thumb_func_start FUN_02033564 -FUN_02033564: ; 0x02033564 - ldr r1, _02033570 ; =UNK_021C5A00 - ldr r3, _02033574 ; =MI_CpuCopy8 - ldr r1, [r1, #0x0] - mov r2, #0x6 - add r1, r1, #0x4 - bx r3 - .balign 4 -_02033570: .word UNK_021C5A00 -_02033574: .word MI_CpuCopy8 - - thumb_func_start FUN_02033578 -FUN_02033578: ; 0x02033578 - add r1, r0, #0x0 - ldr r0, _02033588 ; =UNK_021C5A00 - ldr r3, _0203358C ; =MI_CpuCopy8 - ldr r0, [r0, #0x0] - mov r2, #0x6 - add r0, r0, #0x4 - bx r3 - nop -_02033588: .word UNK_021C5A00 -_0203358C: .word MI_CpuCopy8 - - thumb_func_start FUN_02033590 -FUN_02033590: ; 0x02033590 - push {r3, lr} - bl FUN_02033534 - cmp r0, #0x13 - blt _0203359E - mov r0, #0x1 - pop {r3, pc} -_0203359E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020335A4 -FUN_020335A4: ; 0x020335A4 - ldr r1, _020335B4 ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020335B0 - add r1, #0x47 - strb r0, [r1, #0x0] -_020335B0: - bx lr - nop -_020335B4: .word UNK_021C5A00 - - thumb_func_start FUN_020335B8 -FUN_020335B8: ; 0x020335B8 - ldr r0, _020335CC ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020335C6 - add r0, #0x47 - ldrb r0, [r0, #0x0] - bx lr -_020335C6: - mov r0, #0x0 - bx lr - nop -_020335CC: .word UNK_021C5A00 - - thumb_func_start FUN_020335D0 -FUN_020335D0: ; 0x020335D0 - push {r3, lr} - add r2, r0, #0x0 - mov r0, #0x0 - mov r1, #0x1 - bl FUN_02033F70 -_020335DC: - b _020335DC - .balign 4 - - thumb_func_start FUN_020335E0 -FUN_020335E0: ; 0x020335E0 - push {r3, lr} - mov r0, #0x0 - mov r1, #0x4 - add r2, r0, #0x0 - bl FUN_02033F70 -_020335EC: - b _020335EC - .balign 4 - - thumb_func_start FUN_020335F0 -FUN_020335F0: ; 0x020335F0 - bx lr - .balign 4 - - thumb_func_start FUN_020335F4 -FUN_020335F4: ; 0x020335F4 - push {r3, lr} - bl FUN_02033510 - cmp r0, #0x0 - beq _0203366C - bl FUN_020311F0 - cmp r0, #0x0 - bne _02033622 - bl FUN_02033250 - cmp r0, #0x0 - bne _02033622 - bl FUN_02033398 - cmp r0, #0x0 - bne _02033622 - ldr r0, _02033670 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - add r0, #0x4e - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0203366C -_02033622: - bl FUN_020335B8 - cmp r0, #0x0 - bne _0203366C - bl FUN_0200541C - ldr r0, _02033670 ; =UNK_021C5A00 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x28] - bl FUN_0202287C - ldr r1, _02033674 ; =gMain + 0x60 - mov r0, #0x1 - strb r0, [r1, #0x4] - ldr r1, _02033670 ; =UNK_021C5A00 - ldr r2, [r1, #0x0] - add r1, r2, #0x0 - add r1, #0x4e - ldrb r1, [r1, #0x0] - cmp r1, #0x3 - bne _02033654 - mov r0, #0x3 - bl FUN_020335A4 - pop {r3, pc} -_02033654: - add r2, #0x3f - ldrb r1, [r2, #0x0] - cmp r1, #0x19 - beq _02033660 - cmp r1, #0xf - bne _02033668 -_02033660: - mov r0, #0x2 - bl FUN_020335A4 - pop {r3, pc} -_02033668: - bl FUN_020335A4 -_0203366C: - pop {r3, pc} - nop -_02033670: .word UNK_021C5A00 -_02033674: .word gMain + 0x60 - - thumb_func_start FUN_02033678 -FUN_02033678: ; 0x02033678 - push {r3, lr} - bl FUN_0202EDD8 - cmp r0, #0x0 - bne _0203368A - bl FUN_02031810 - cmp r0, #0x0 - bne _0203368E -_0203368A: - mov r0, #0x1 - pop {r3, pc} -_0203368E: - bl FUN_0202E344 - cmp r0, #0x0 - bne _0203369A - mov r0, #0x1 - pop {r3, pc} -_0203369A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020336A0 -FUN_020336A0: ; 0x020336A0 - push {r3, lr} - ldr r1, _020336BC ; =UNK_021C5A00 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020336B6 - add r1, #0x4e - strb r0, [r1, #0x0] - bl FUN_02031468 - mov r0, #0x1 - pop {r3, pc} -_020336B6: - mov r0, #0x0 - pop {r3, pc} - nop -_020336BC: .word UNK_021C5A00 diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c new file mode 100644 index 000000000..21dfad41e --- /dev/null +++ b/arm9/src/unk_02031734.c @@ -0,0 +1,2365 @@ +#include "unk_02031734.h" + +const struct UnkStruct_02031734_const2 UNK_020EEC48 = { { (u32)FUN_02032B84, 0 } }; + +const struct UnkStruct_02031734_const1 UNK_020EEC50 = { { (u32)FUN_0203213C, (u32)FUN_02032138, 0 } }; + +const struct UnkStruct_02031734_const1 UNK_020EEC5C = { { (u32)FUN_02032234, (u32)FUN_0203234C, 0 } }; + +char UNK_02105D5C[] = "FREAK"; + +char UNK_02105D6C[] = " GAME"; + +char UNK_02105D64[] = " FULL"; + +struct UnkStruct_02031734 *UNK_021C5A00; + +extern void FUN_0202E49C(); +extern void FUN_0202D8D0(u32 param0, u32 param1, u32 param2); +extern void FUN_02033E74(); +extern void FUN_0202D918(); +extern void FUN_02033ED0(); +extern void FUN_0202E4F0(); +extern void FUN_0202D298(); +extern void FUN_0202D344(u32 param0); +extern void FUN_0202D1B0(u8 param0); +extern void FUN_0202D36C(u32 param0); +extern u32 MOD04_021DDB08(); +extern void FUN_02033EEC(u32 param0); +extern u32 FUN_0202EDF8(); +extern u32 WM_GetLinkLevel(); +extern u32 FUN_0202E4C8(); +extern void FUN_0202E29C(struct PlayerData *player_data); +extern void FUN_0202DB14(struct SaveBlock2 *sav2, u32 param1); +extern s64 _ll_mul(s64, s64); +extern u32 FUN_0202EE0C(); +extern void FUN_0202EA54(); +extern s32 FUN_0202E8F4(); +extern s32 FUN_0202E950(); +extern u32 FUN_0202E8A0(u8 param0); +extern u32 FUN_0202E6F0(); +extern void FUN_0202EE84(u8 param0); +extern void FUN_0202E7B0(u32 param0); +extern u32 FUN_0202F104(); +extern void FUN_0202DBE0(); +extern void FUN_0202DDE8(); +extern void FUN_0202D308(void (*param0)(u32, u32)); +extern void MOD04_021D83C0(); +extern s32 MOD04_021D7F8C(); +extern s32 MOD04_021D7800(u32 param0); +extern u32 MOD04_021D8494(s32 param0); +extern void MOD04_021D77C4(void (*param0)(u32, u8 *, u16), void (*param1)(u32, void *, u32)); +extern u32 MOD04_021D82BC(u8 param0); +extern void MOD04_021D836C(); +extern u32 MOD04_021DD718(u32 *param0, u32 *param1); +extern void MOD04_021DD6F0(); +extern s32 MOD04_021D76AC(); +extern MOD05_021D74E0(struct SaveBlock2 *sav2, u32 param1); +extern void MOD04_021D83A8(void (*param0)(s32)); +extern void FUN_0202EEB0(u8 param0); +extern void FUN_02033F70(int, int, int); +extern void FUN_0200541C(); +extern u32 FUN_0202EDD8(); +extern u32 FUN_0202E344(); + +THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1) +{ + if (UNK_021C5A00 == NULL) + { + FUN_0202E49C(); + struct UnkStruct_02031734 *ptr = AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); + UNK_021C5A00 = ptr; + MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct_02031734)); + + UNK_021C5A00->unk3A = 0x32; + UNK_021C5A00->unk43 = 1; + UNK_021C5A00->unk28 = sav2; + + UNK_021C5A00->unk2C = Sav2_PlayerData_GetProfileAddr(sav2); + + UNK_021C5A00->unk3C = 2; + UNK_021C5A00->unk3D = 0; + UNK_021C5A00->unk48 = 0; + UNK_021C5A00->unk3F = param1; + + FUN_020312BC(&UNK_021C5A00->unk0C); + FUN_0202D8D0(0, 0, 0); + + if (param1 != 9 && param1 != 0x11 && param1 != 0xf) + { + FUN_02033E74(); + } + } +} + +THUMB_FUNC void FUN_020317C0() +{ + if (UNK_021C5A00 != NULL) + { + FUN_0202D918(); + if (UNK_021C5A00->unk00 != NULL) + { + FreeToHeap(UNK_021C5A00->unk00); + } + + if (UNK_021C5A00->unk3F >= 0x13) + { + FUN_020168D0(0x31); + } + + FUN_02033ED0(); + FUN_0202E4F0(); + + FreeToHeap(UNK_021C5A00); + FUN_020168D0(0xf); + + UNK_021C5A00 = NULL; + } +} + +THUMB_FUNC BOOL FUN_02031810() +{ + if (UNK_021C5A00 != NULL) + { + return TRUE; + } + return FALSE; +} + +THUMB_FUNC void FUN_02031824(struct SaveBlock2 *sav2) +{ + if (UNK_021C5A00 == NULL) + { + FUN_02016828(3, 0xf, 0xe000); + FUN_02031734(sav2, 0xa); + + UNK_021C5A00->unk40 = 0; + FUN_02031D20(FUN_02031D30, 0x32); + } +} + +THUMB_FUNC void FUN_02031860() +{ + if (UNK_021C5A00 != NULL) + { + FUN_02031468(); + FUN_02031D20(FUN_020323CC, 0); + } +} + +THUMB_FUNC void FUN_02031880() +{ + FUN_0202FC60(); + UNK_021C5A00->unk38 = FUN_02031190(); + + FUN_02031D20(FUN_020321B8, 0); +} + +THUMB_FUNC void FUN_020318A4(u8 param0) +{ + UNK_021C5A00->unk4F = param0; +} + +THUMB_FUNC void FUN_020318B4() +{ + FUN_02031D20(FUN_02032028, 0); +} + +THUMB_FUNC BOOL FUN_020318C4() +{ + struct UnkStruct_02031734_const1 st0 = UNK_020EEC50; + + u32 r1 = (u32)UNK_021C5A00->unk24; + + if (UNK_021C5A00 == NULL) + { + return FALSE; + } + + for (u32 i = 0; st0.unk00[i] != 0; i++) + { + + if (r1 == st0.unk00[i]) + { + return TRUE; + } + } + + return FALSE; +} + +THUMB_FUNC void FUN_02031914() +{ + FUN_02031D20(FUN_02032178, 0); +} + +THUMB_FUNC void FUN_02031924() +{ + UNK_021C5A00->unk4C = 1; +} + +THUMB_FUNC void FUN_02031934() +{ + FUN_0202E49C(); + FUN_02031D20(FUN_02032194, 0); +} + +THUMB_FUNC void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7080); + FUN_02031734(sav2, param1); + UNK_021C5A00->unk40 = param2; + UNK_021C5A00->unk30 = param3; + FUN_02031D20(FUN_020321D0, 0); + } +} + +THUMB_FUNC void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7080); + FUN_02031734(sav2, param1); + UNK_021C5A00->unk40 = param2; + UNK_021C5A00->unk30 = param3; + FUN_02031D20(FUN_0203224C, 0); + } +} + +THUMB_FUNC void FUN_020319D8(u8 param0) +{ + UNK_021C5A00->unk3E = param0; + FUN_02031D20(FUN_02032298, 0); +} + +THUMB_FUNC void FUN_020319F4() +{ + FUN_0202FCA8(); + FUN_02031D20(FUN_02032364, 0); +} + +THUMB_FUNC void FUN_02031A08() +{ + if (UNK_021C5A00 != NULL) + { + FUN_02031D20(FUN_02032440, 5); + } +} + +THUMB_FUNC void FUN_02031A24() +{ + FUN_0202D298(); +} + +THUMB_FUNC BOOL FUN_02031A2C() +{ + struct UnkStruct_02031734_const1 st0 = UNK_020EEC5C; + + u32 r1 = (u32)UNK_021C5A00->unk24; + + if (UNK_021C5A00 == NULL) + { + return FALSE; + } + + for (u32 i = 0; st0.unk00[i] != 0; i++) + { + + if (r1 == st0.unk00[i]) + { + return TRUE; + } + } + + return FALSE; +} + +THUMB_FUNC void FUN_02031A7C(struct SaveBlock2 *sav2) +{ + if (UNK_021C5A00 == NULL) + { + if (FUN_02016828(3, 0xf, 0x7080) == 0) + { + FUN_020335E0(); + } + + FUN_02031734(sav2, 9); + UNK_021C5A00->unk3F = 9; + UNK_021C5A00->unk40 = 0; + FUN_02031D20(FUN_02032478, 0); + } +} + +THUMB_FUNC void FUN_02031AC8(u8 param0) +{ + UNK_021C5A00->unk3E = param0; + UNK_021C5A00->unk38 = 3; + FUN_0202D344(1); + FUN_02033E74(); + FUN_02031D20(FUN_02032628, 0); +} + +THUMB_FUNC s32 FUN_02031AF4() +{ + if (UNK_021C5A00 == NULL) + { + return -1; + } + if (UNK_021C5A00->unk24 == FUN_0203279C) + { + return 1; + } + + if (UNK_021C5A00->unk24 == FUN_020327B4) + { + return -1; + } + + return 0; +} + +THUMB_FUNC BOOL FUN_02031B2C() +{ + if (UNK_021C5A00 == NULL) + { + return FALSE; + } + if (UNK_021C5A00->unk24 == FUN_020327FC) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_02031B50() +{ + FUN_0202D344(0); + if (UNK_021C5A00->unk44 != 1 || UNK_021C5A00->unk45 != 1 || UNK_021C5A00->unk3F == 9) + { + FUN_020334E8(0, 0); + } + + FUN_02033ED0(); + UNK_021C5A00->unk3F = 9; + UNK_021C5A00->unk48 = 0; + FUN_0202D1B0(UNK_021C5A00->unk3C); + + if (FUN_02031190() == 0) + { + FUN_0202D36C(1); + FUN_02031D20(FUN_020323DC, 0xf); + return; + } + + FUN_02031D20(FUN_02032424, 5); +} + +THUMB_FUNC u32 FUN_02031BD0() +{ + if (UNK_021C5A00 == NULL) + { + return 1; + } + + if (UNK_021C5A00->unk24 != FUN_020324F8) + { + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_02031BF4() +{ + if (UNK_021C5A00 != NULL) + { + FUN_02031D20(FUN_02032440, 5); + } +} + +THUMB_FUNC void FUN_02031C10() +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk48 = 1; + FUN_0202D344(1); + } +} + +THUMB_FUNC void FUN_02031C2C() +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk48 = 1; + FUN_0202D344(1); + FUN_02031D20(FUN_02032850, 0); + } +} + +THUMB_FUNC void FUN_02031C54() +{ + UNK_021C5A00->unk3F = 0x12; +} + +THUMB_FUNC void FUN_02031C64() +{ + UNK_021C5A00->unk3F = 0x9; +} + +THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7080); + FUN_02031734(sav2, param1); + FUN_02031D20(FUN_02032E00, 0); + } +} + +THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7080); + FUN_02031734(sav2, param1); + FUN_02031D20(FUN_02032E48, 0); + } +} + +THUMB_FUNC void FUN_02031CDC() +{ + if (UNK_021C5A00 != NULL && UNK_021C5A00->unk24 != 0) + { + ((void (*)(void))(UNK_021C5A00->unk24))(); + } + if (FUN_02033590() != 0) + { + FUN_02033EEC(3 - MOD04_021DDB08()); + return; + } + + if (FUN_0202EDF8() != 0) + { + FUN_02033EEC(3 - WM_GetLinkLevel()); + } +} + +THUMB_FUNC void FUN_02031D20(void (*param0)(), u16 param1) +{ + UNK_021C5A00->unk24 = param0; + UNK_021C5A00->unk3A = param1; +} + +THUMB_FUNC void FUN_02031D30() +{ + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + if (FUN_0202E4C8() == 0) + { + return; + } + + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + FUN_02031268(1); + FUN_02030FA8(); + + if (UNK_021C5A00->unk4A != 0) + { + if (FUN_0202F918(1, UNK_021C5A00->unk43, 0x1F4, 1) == 0) + { + return; + } + +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x14) >> 32; + + UNK_021C5A00->unk43 = 0; + FUN_02031D20(FUN_020320C4, r1 + 0x14); +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + bl _ll_mul + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, =FUN_020320C4 + add r1, #0x14 + bl FUN_02031D20 + pop {r3-r5, pc} // clang-format on + ); +#endif + } + + if (FUN_0202F950(1, 1, 0x1F4) != 0) + { + if (UNK_021C5A00->unk4C != 0) + { + FUN_02031D20(FUN_020323B8, 0); + } + else + { + FUN_02031D20(FUN_02031EE0, 0x40); + } + } +} + +THUMB_FUNC void FUN_02031E08() +{ + if (FUN_0202EE0C() != 0) + { + FUN_02031268(1); + FUN_02030FA8(); + + if (UNK_021C5A00->unk4A != 0) + { + FUN_02031D20(FUN_02032058, 0); + return; + } + + if (FUN_0202F950(0, 1, 0x1F4) != 0) + { + +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x40) >> 32; + + if (UNK_021C5A00->unk38 != 0) + { + r1 = UNK_021C5A00->unk38 << 6; + UNK_021C5A00->unk38 = 0; + } + FUN_02031D20(FUN_02031EE0, r1); +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + mov r1, #0x0 + str r3, [r4, #0x4] + lsr r0, r3, #0x1a + lsl r1, r1, #0x6 + orr r1, r0 + ldrh r0, [r5, #0x38] + cmp r0, #0x0 + beq _02031E76 + lsl r1, r0, #0x6 + mov r0, #0x0 + strh r0, [r5, #0x38] + _02031E76: + ldr r0, =FUN_02031EE0 + bl FUN_02031D20 + // clang-format on + ); +#endif + } + } +} + +THUMB_FUNC void FUN_02031E8C() +{ + if (FUN_0202EE0C() != 0) + { + if (FUN_0202F950(0, 0, 0x1F4) != 0) + { + +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x20) >> 32; + + FUN_02031D20(FUN_02031EE0, r1 + 0x10); +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + ldr r0, =FUN_02031EE0 + add r1, #0x10 + str r3, [r5, #0x4] + bl FUN_02031D20 + // clang-format on + ); +#endif + } + } +} + +THUMB_FUNC void FUN_02031EE0() +{ + FUN_0202EA54(); + if (UNK_021C5A00->unk4F == 0 && UNK_021C5A00->unk4B == 0) + { + s32 r0 = FUN_0202E8F4(); + if (r0 != -1) + { + UNK_021C5A00->unk3E = (u8)r0; + FUN_02031D20(FUN_02031F60, 0x20); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + r0 = FUN_0202E950(); + if (r0 != -1) + { + UNK_021C5A00->unk3E = (u8)r0; + FUN_02031D20(FUN_02031F60, 0x20); + return; + } + + FUN_02031D20(FUN_02032028, 0); + } +} + +THUMB_FUNC void FUN_02031F60() +{ + FUN_0202EA54(); + if (FUN_0202E8A0(UNK_021C5A00->unk3E) != 0 && FUN_0202FB18(UNK_021C5A00->unk3E) != 0) + { + FUN_02031D20(FUN_02031FC8, 0x64); + return; + } + + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_02032028, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_02031D20(FUN_02032028, 0); +} + +THUMB_FUNC void FUN_02031FC8() +{ + if (FUN_02030E7C(FUN_02031190()) != 0) + { + FUN_0202FC60(); + FUN_02031268(0); + FUN_02030FA8(); + FUN_02031D20(FUN_0203213C, 0); + return; + } + + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_02032028, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_02031D20(FUN_02032028, 0); +} + +THUMB_FUNC void FUN_02032028() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02032058, 0); + } +} + +THUMB_FUNC void FUN_02032040() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02031E8C, 0); + } +} + +THUMB_FUNC void FUN_02032058() +{ + if (FUN_0202EE0C() != 0) + { + FUN_02031268(1); + if (FUN_0202F918(0, UNK_021C5A00->unk43, 0x1F4, 1) != 0) + { +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x14) >> 32; + + UNK_021C5A00->unk43 = 0; + FUN_02031D20(FUN_020320C4, r1 + 0x14); +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r5, [r0, #0x0] + add r4, r5, #0x0 + add r4, #0xc + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r5, #0xc] + ldr r3, [r4, #0x4] + bl _ll_mul + ldr r2, [r4, #0x10] + ldr r3, [r4, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r5, #0xc] + str r3, [r4, #0x4] + add r0, r3, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0x0 + bl _ll_mul + mov r0, #0x0 + add r5, #0x43 + strb r0, [r5, #0x0] + ldr r0, =FUN_020320C4 + add r1, #0x14 + bl FUN_02031D20 + // clang-format on + ); +#endif + } + } +} + +THUMB_FUNC void FUN_020320C4() +{ + if (FUN_020311E8() != 0) + { + UNK_021C5A00->unk43 = 1; + FUN_02031D20(FUN_02032118, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + if (UNK_021C5A00->unk4A == 0 && FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02032040, 2); + } +} + +THUMB_FUNC void FUN_02032118() +{ + FUN_02031268(0); + FUN_0202EE84(1); + FUN_02030FA8(); + FUN_02031D20(FUN_02032138, 0); +} + +THUMB_FUNC void FUN_02032138() +{ +} +THUMB_FUNC void FUN_0203213C() +{ +} + +THUMB_FUNC void FUN_02032140() +{ + if (UNK_021C5A00->unk3F < 0x13) + { + if (FUN_0202EE0C() == 0) + { + return; + } + + FUN_02031268(1); + FUN_02030FA8(); + FUN_0202E7B0(1); + } + + FUN_02031D20(FUN_020323B8, 0); +} + +THUMB_FUNC void FUN_02032178() +{ + if (FUN_0202E6F0() != 0) + { + FUN_0202FC60(); + FUN_02031D20(FUN_02032140, 0); + } +} + +THUMB_FUNC void FUN_02032194() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E7B0(0); + FUN_0202FC60(); + FUN_02031D20(FUN_02031E08, 0); + } +} + +THUMB_FUNC void FUN_020321B8() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02031E08, 0); + } +} + +THUMB_FUNC void FUN_020321D0() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, UNK_021C5A00->unk30); + if (FUN_0202F918(1, 1, 0x200, 1) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032218, 0); + } + } +} + +THUMB_FUNC void FUN_02032218() +{ + if (FUN_02030E7C(FUN_02031190()) != 0) + { + FUN_02031D20(FUN_02032234, 0); + } +} + +THUMB_FUNC void FUN_02032234() +{ + if (FUN_02030F40() == 0) + { + FUN_02031D20(FUN_020323BC, 0); + } +} + +THUMB_FUNC void FUN_0203224C() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, UNK_021C5A00->unk30); + if (FUN_0202F950(1, 1, 0x200) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032290, 0); + } + } +} + +THUMB_FUNC void FUN_02032290() +{ + FUN_0202EA54(); +} + +THUMB_FUNC void FUN_02032298() +{ + FUN_0202EA54(); + if (FUN_0202FB18(UNK_021C5A00->unk3E) != 0) + { + FUN_02031D20(FUN_020322C0, 0xa); + } +} + +THUMB_FUNC void FUN_020322C0() +{ + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_020322F8, 0); + } + + if (FUN_02030E7C(FUN_02031190()) != 0 && FUN_02031190() != 0) + { + FUN_02031D20(FUN_0203234C, 0); + } +} + +THUMB_FUNC void FUN_020322F8() +{ + FUN_0202E6F0(); + FUN_02031D20(FUN_0203230C, 2); +} + +THUMB_FUNC void FUN_0203230C() +{ + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + if (FUN_0202EE0C() != 0 && FUN_0202F950(0, 1, 0x200) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032298, 0xa); + } +} + +THUMB_FUNC void FUN_0203234C() +{ + if (FUN_02030F40() == 0) + { + FUN_02031D20(FUN_020323BC, 0); + } +} + +THUMB_FUNC void FUN_02032364() +{ + FUN_0202E6F0(); + FUN_02031D20(FUN_02032378, 2); +} + +THUMB_FUNC void FUN_02032378() +{ + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + if (FUN_0202EE0C() != 0 && FUN_0202F950(0, 1, 0x200) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032290, 0xa); + } +} + +THUMB_FUNC void FUN_020323B8() +{ +} + +THUMB_FUNC void FUN_020323BC() +{ + if (FUN_02030F40() == 0) + { + FUN_020317C0(); + } +} + +THUMB_FUNC void FUN_020323CC() +{ + FUN_02031D20(FUN_02032440, 5); +} + +THUMB_FUNC void FUN_020323DC() +{ + if (FUN_02030F20() <= 1) + { + FUN_0202D36C(0); + FUN_0202FC80(); + FUN_02031D20(FUN_020324F8, 0); + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_0202D36C(0); + FUN_0202FC80(); + FUN_02031D20(FUN_020324F8, 0); +} + +THUMB_FUNC void FUN_02032424() +{ + if (FUN_0202E6F0() != 0) + { + FUN_0202FC60(); + FUN_02031D20(FUN_020324F8, 0); + } +} + +THUMB_FUNC void FUN_02032440() +{ + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + } + + if (FUN_0202E6F0() != 0 && UNK_021C5A00->unk3A == 0) + { + FUN_0202FA5C(); + FUN_02031D20(FUN_020323BC, 0); + } +} + +THUMB_FUNC void FUN_02032478() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202D1B0(UNK_021C5A00->unk3C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + if (FUN_0202F950(1, 1, 0x200) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_020324C8, 0x40); + } + } +} + +THUMB_FUNC void FUN_020324C8() +{ + FUN_0202EA54(); + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02032510, 0); + } +} + +THUMB_FUNC void FUN_020324F8() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02032510, 0); + } +} + +THUMB_FUNC void FUN_02032510() +{ + if (FUN_0202EE0C() != 0 && FUN_0202F918(0, UNK_021C5A00->unk43, 0x200, 1) != 0) + { +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + FUN_0202FA10(); + UNK_021C5A00->unk43 = 0; +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + str r3, [r5, #0x4] + bl FUN_0202FA10 + ldr r0, =UNK_021C5A00 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, #0x43 + strb r1, [r0, #0x0] + // clang-format on + ); +#endif + + FUN_02031D20(FUN_02032578, 0x2710); + } +} + +THUMB_FUNC void FUN_02032578() +{ + if (FUN_0202F104() == 0) + { + if (FUN_020311E8() != 0) + { + UNK_021C5A00->unk43 = 1; + FUN_02033E74(); + FUN_02031D20(FUN_020327FC, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + } + + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_020325D0, 0); + } +} + +THUMB_FUNC void FUN_020325D0() +{ + if (FUN_0202EE0C() != 0 && FUN_0202F950(0, 0, 0x200) != 0) + { + FUN_0202FA10(); + +#ifdef NONMATCHING + UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x20) >> 32; + + FUN_02031D20(FUN_020324C8, r1); +#else + asm( + // clang-format off + ldr r0, =UNK_021C5A00 + ldr r4, [r0, #0x0] + add r5, r4, #0x0 + add r5, #0xc + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + ldr r2, [r4, #0xc] + ldr r3, [r5, #0x4] + bl _ll_mul + ldr r2, [r5, #0x10] + ldr r3, [r5, #0x14] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0xc] + mov r1, #0x0 + ldr r0, =FUN_020324C8 + lsr r2, r3, #0x1b + lsl r1, r1, #0x5 + orr r1, r2 + str r3, [r5, #0x4] + bl FUN_02031D20 + // clang-format on + ); +#endif + } +} + +THUMB_FUNC void FUN_02032628() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_02032640, 0); + } +} + +THUMB_FUNC void FUN_02032640() +{ + if (FUN_0202EE0C() != 0 && FUN_0202F950(0, 0, 0x200)) + { + FUN_0202FA10(); + FUN_02031D20(FUN_0203266C, 0x64); + } +} + +THUMB_FUNC void FUN_0203266C() +{ + if (FUN_0202E8A0(UNK_021C5A00->unk3E) != 0 && FUN_0202FB18(UNK_021C5A00->unk3E) != 0) + { + FUN_02031D20(FUN_020326D0, 0x64); + return; + } + + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_020327B8, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_02031D20(FUN_020327B8, 0); +} + +THUMB_FUNC void FUN_020326D0() +{ + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_020327B8, 0); + return; + } + + if (FUN_02030E7C(FUN_02031190()) != 0) + { + UNK_021C5A00->unk3D = 0; + FUN_020311D0(6, UNK_02105D5C); + FUN_02031D20(FUN_02032738, 0x78); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_02031D20(FUN_020327B8, 0); +} + +THUMB_FUNC void FUN_02032738() +{ + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_020327B8, 0); + return; + } + + if (UNK_021C5A00->unk3D == 2) + { + FUN_02031D20(FUN_020327B4, 0); + return; + } + else if (UNK_021C5A00->unk3D == 1) + { + FUN_0202DBE0(); + FUN_02031D20(FUN_0203279C, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + FUN_02031D20(FUN_020327B8, 0); +} + +THUMB_FUNC void FUN_0203279C() +{ + if (FUN_020311F0() != 0) + { + FUN_02031D20(FUN_020327B8, 0); + } +} + +THUMB_FUNC void FUN_020327B4() +{ +} + +THUMB_FUNC void FUN_020327B8() +{ + UNK_021C5A00->unk3D = 0; + if (FUN_0202E6F0() != 0) + { + if (UNK_021C5A00->unk38 != 0) + { + UNK_021C5A00->unk38--; + FUN_02031D20(FUN_02032640, 0); + return; + } + + FUN_02031D20(FUN_020327B4, 0); + } +} + +THUMB_FUNC void FUN_020327FC() +{ + if (FUN_020311E8() == 0) + { + if (FUN_02033510() == 0 && FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_020325D0, 0); + } + } + else if (FUN_02031190() == 0) + { + FUN_0202DDE8(); + } + + if (FUN_020311F0() != 0 && FUN_02033510() == 0) + { + FUN_02031D20(FUN_020327B8, 0); + } +} + +THUMB_FUNC void FUN_02032850() +{ + if (FUN_0202EE0C() != 0) + { + if (FUN_0202F918(0, UNK_021C5A00->unk43, 0x200, 0) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_020323B8, 0); + } + } +} + +THUMB_FUNC void FUN_02032888() +{ + u8 st0[4]; + UNK_021C5A00->unk3F = 0xd; + if (FUN_02031190() == 0) + { + st0[1] = 0; + FUN_020311D0(0xa, &st0[1]); + return; + } + + st0[0] = 0; + FUN_020311D0(0xa, st0); +} + +THUMB_FUNC void FUN_020328C0(u8 param0) +{ + UNK_021C5A00->unk3E = param0; + UNK_021C5A00->unk38 = 3; + FUN_02031D20(FUN_02032924, 0); +} + +THUMB_FUNC void FUN_020328E4() +{ + UNK_021C5A00->unk3F = 7; +} + +THUMB_FUNC void FUN_020328F4(u8 param0) +{ + UNK_021C5A00->unk3E = param0; + UNK_021C5A00->unk3F = 7; + UNK_021C5A00->unk38 = 3; + FUN_02033E74(); + FUN_02031D20(FUN_02032628, 0); +} + +THUMB_FUNC void FUN_02032924() +{ + if (FUN_0202E6F0() != 0) + { + FUN_02031D20(FUN_0203293C, 0); + } +} + +THUMB_FUNC void FUN_0203293C() +{ + if (FUN_0202EE0C() != 0) + { + UNK_021C5A00->unk3F = 0xd; + if (FUN_0202F950(0, 0, 0x200) != 0) + { + FUN_0202FA1C(); + FUN_02031D20(FUN_02032978, 0x64); + } + } +} + +THUMB_FUNC void FUN_02032978() +{ + if (FUN_0202E8A0(UNK_021C5A00->unk3E) != 0 && FUN_0202FB18(UNK_021C5A00->unk3E) != 0) + { + FUN_02031D20(FUN_020329F4, 0x64); + return; + } + + if (FUN_020311F0() != 0 || UNK_021C5A00->unk3A == 0) + { + UNK_021C5A00->unk38--; + if (UNK_021C5A00->unk38 == 0) + { + FUN_02031D20(FUN_020327B4, 0); + return; + } + + FUN_02031D20(FUN_02032924, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } +} + +THUMB_FUNC void FUN_020329F4() +{ + if (UNK_021C5A00->unk3A > 0x5a) + { + UNK_021C5A00->unk3A--; + return; + } + + if (FUN_020311F0() != 0) + { + UNK_021C5A00->unk38--; + if (UNK_021C5A00->unk38 == 0) + { + FUN_02031D20(FUN_020327B4, 0); + return; + } + + FUN_02031D20(FUN_02032924, 0); + return; + } + + if (FUN_02030E7C(FUN_02031190()) != 0) + { + FUN_02031D20(FUN_0203279C, 0); + return; + } + + if (UNK_021C5A00->unk3A != 0) + { + UNK_021C5A00->unk3A--; + return; + } + + UNK_021C5A00->unk38--; + if (UNK_021C5A00->unk38 == 0) + { + FUN_02031D20(FUN_020327B4, 0); + return; + } + + FUN_02031D20(FUN_02032924, 0); +} + +THUMB_FUNC void FUN_02032A8C(u8 param0, u32 param1, u8 *param2) +{ +#pragma unused(param1) + if (FUN_02031190() == 0) + { + + u32 i; + BOOL r3 = TRUE; + for (i = 0; i < 6; i++) + { + if (UNK_02105D5C[i] != param2[i]) + { + r3 = FALSE; + break; + } + } + + if (r3 && UNK_021C5A00->unk48 == 0) + { + UNK_02105D6C[0] = param0; + FUN_02030C4C(7, UNK_02105D6C); + return; + } + + UNK_02105D64[0] = param0; + FUN_02030C4C(7, UNK_02105D64); + } +} + +THUMB_FUNC void FUN_02032AEC(u32 param0, u32 param1, u8 *param2) +{ +#pragma unused(param0) +#pragma unused(param1) + u32 i; + BOOL r4 = TRUE; + for (i = 1; i < 6; i++) + { + if (param2[i] != UNK_02105D6C[i]) + { + r4 = FALSE; + break; + } + } + + if (r4) + { + u8 first = param2[0]; + if (first != FUN_02031190()) + { + return; + } + + UNK_021C5A00->unk3D = 1; + return; + } + + r4 = TRUE; + for (i = 1; i < 6; i++) + { + if (param2[i] != UNK_02105D64[i]) + { + r4 = FALSE; + break; + } + } + + if (r4) + { + u8 first = param2[0]; + if (first != (u8)FUN_02031190()) + { + return; + } + + UNK_021C5A00->unk3D = 2; + } +} + +THUMB_FUNC u32 FUN_02032B68() +{ + return 6; +} + +THUMB_FUNC void FUN_02032B6C(u8 param0) +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk3C = param0; + FUN_0202D1B0(param0); + } +} + +THUMB_FUNC void FUN_02032B84() +{ + FUN_0202EA54(); +} + +THUMB_FUNC void FUN_02032B8C() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + if (FUN_0202F950(1, 1, 0x20) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032B84, 0); + } + } +} + +THUMB_FUNC void FUN_02032BD0(struct SaveBlock2 *sav2) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7000); + FUN_02031734(sav2, 0xe); + UNK_021C5A00->unk40 = 0; + FUN_02031D20(FUN_02032B8C, 0); + } +} + +THUMB_FUNC void FUN_02032C0C() +{ + if (UNK_021C5A00 != NULL) + { + FUN_02031D20(FUN_02032440, 5); + } +} + +THUMB_FUNC u32 FUN_02032C28() +{ + struct UnkStruct_02031734_const2 st0 = UNK_020EEC48; + + u32 fun = (u32)UNK_021C5A00->unk24; + if (UNK_021C5A00 == NULL) + { + return 0; + } + + u32 i = 0; + while (st0.unk00[i] != 0) + { + if (st0.unk00[i] == fun) + { + return 1; + } + + i++; + } + + return 0; +} + +THUMB_FUNC void FUN_02032C6C(u32 param0, u32 param1) +{ + switch (param0) + { + case 0x333: + if (param1 != 0xf) + { + return; + } + UNK_021C5A00->unk49 |= 1; + break; + case 0x400318: + + UNK_021C5A00->unk49 |= 1; + break; + + case 0x400131: + + UNK_021C5A00->unk49 |= 2; + break; + + case 0x400286: + + UNK_021C5A00->unk49 |= 4; + break; + } +} + +THUMB_FUNC void FUN_02032CF4() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + FUN_0202D308(FUN_02032C6C); + if (FUN_0202F950(1, 1, 0x20) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032B84, 0); + } + } +} + +THUMB_FUNC void FUN_02032D44(struct SaveBlock2 *sav2) +{ + if (FUN_02030F40() == 0) + { + FUN_02016828(3, 0xf, 0x7000); + FUN_02031734(sav2, 0x11); + UNK_021C5A00->unk40 = 0; + FUN_02031D20(FUN_02032CF4, 0); + } +} + +THUMB_FUNC void FUN_02032D80() +{ + if (UNK_021C5A00 != NULL) + { + FUN_02031D20(FUN_02032440, 5); + } +} + +THUMB_FUNC u8 FUN_02032D9C() +{ + return UNK_021C5A00->unk49; +} + +THUMB_FUNC BOOL FUN_02032DAC() +{ + FUN_02031468(); + + if (UNK_021C5A00 == NULL) + { + return TRUE; + } + + if ((u8)(UNK_021C5A00->unk3F + 0xe8) <= 1) + { + MOD04_021D83C0(); + return TRUE; + }; + + if (FUN_02033590() != 0) + { + FUN_02031D20(FUN_0203318C, 0); + } + else + { + FUN_02031D20(FUN_02032178, 0); + } + + return FALSE; +} + +THUMB_FUNC void FUN_02032E00() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + if (FUN_0202F918(1, 1, 0x200, 1) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032218, 0); + } + } +} + +THUMB_FUNC void FUN_02032E48() +{ + if (FUN_0202E4C8() != 0) + { + FUN_0202E29C(UNK_021C5A00->unk2C); + FUN_0202DB14(UNK_021C5A00->unk28, 0); + if (FUN_0202F950(1, 1, 0x200) != 0) + { + FUN_0202FA10(); + FUN_02031D20(FUN_02032290, 0); + } + } +} + +THUMB_FUNC void FUN_02032E8C() +{ +} + +THUMB_FUNC void FUN_02032E90() +{ + if (MOD04_021D7F8C() < 0) + { + FUN_02031D20(FUN_02032E8C, 0); + } +} + +THUMB_FUNC void FUN_02032EA8() +{ +} + +THUMB_FUNC void FUN_02032EAC() +{ +} + +THUMB_FUNC void FUN_02032EB0() +{ + FUN_020313A0(1); + + s32 res = MOD04_021D7F8C(); + if (res >= 0xa) + { + FUN_02031D20(FUN_02032EAC, 0); + return; + } + + if (res < 0) + { + FUN_02031D20(FUN_02032E8C, 0); + return; + } + + if (res == 1) + { + FUN_02031D20(FUN_02032E90, 0); + return; + } + + if (res == 2) + { + if (UNK_021C5A00->unk44 != 0) + { + FUN_02031D20(FUN_02032E8C, 0); + return; + } + FUN_02031D20(FUN_02032EA8, 0); + return; + } +} + +THUMB_FUNC void FUN_02032F20(u32 param0) +{ + if (param0 + 2 > 1) + { + param0 = -param0; + } + + UNK_021C5A00->unk34 = param0; +} + +THUMB_FUNC void FUN_02032F34() +{ + s32 res = MOD04_021D7800(0); + if (res >= 0xa) + { + FUN_02031D20(FUN_02032EAC, 0); + return; + } + + if (res < 0) + { + FUN_02032F20((u32)res); + FUN_02031D20(FUN_02032E8C, 0); + return; + } + + if (res == 1) + { + FUN_02031D20(FUN_02032EB0, 0); + return; + } + + if (res == 2) + { + FUN_02031D20(FUN_02032EA8, 0); + return; + } + + if (res == 3) + { + FUN_02031D20(FUN_02032EAC, 0); + return; + } +} + +THUMB_FUNC void FUN_02032F98() +{ + s32 res = MOD04_021D7800(1); + if (res < 0) + { + FUN_02032F20((u32)res); + FUN_02031D20(FUN_02032E8C, 0); + return; + } + + if (MOD04_021D8494(UNK_021C5A00->unk42) != 0) + { + FUN_0202FC60(); + FUN_02031D20(FUN_02032F34, 0); + } +} + +THUMB_FUNC u32 FUN_02032FDC(u8 param0) +{ + MOD04_021D77C4(FUN_020303BC, FUN_02030238); + UNK_021C5A00->unk42 = param0; + FUN_02031D20(FUN_02032F98, 0); + + return 1; +} + +THUMB_FUNC u32 FUN_0203300C() +{ + if (UNK_021C5A00->unk24 == FUN_02032F34) + { + return 0; + } + + if (UNK_021C5A00->unk24 == FUN_02032EB0) + { + return 1; + } + + if (UNK_021C5A00->unk24 == FUN_02032E90) + { + return 3; + } + + if (UNK_021C5A00->unk24 == FUN_02032EA8) + { + return 4; + } + + if (UNK_021C5A00->unk24 == FUN_02032EAC) + { + return 5; + } + + return 2; +} + +THUMB_FUNC void FUN_02033060() +{ + MOD04_021D77C4(FUN_020303BC, FUN_02030238); + if (MOD04_021D8494(-1) != 0) + { + UNK_021C5A00->unk4D = 0; + FUN_0202FC60(); + FUN_02031D20(FUN_02032F34, 0); + } +} + +THUMB_FUNC void FUN_020330A0() +{ + FUN_020313A0(0); + if (MOD04_021D82BC(UNK_021C5A00->unk41) != 0) + { + MOD04_021D836C(); + FUN_02031D20(FUN_02033060, 0); + return; + } + + if (MOD04_021D7F8C() < 0) + { + FUN_02031D20(FUN_02032E8C, 0); + } +} + +THUMB_FUNC void FUN_020330E4() +{ + if (FUN_02031190() == 0) + { + UNK_021C5A00->unk41 = 0; + FUN_02031D20(FUN_020330A0, 0); + } + else + { + UNK_021C5A00->unk41 = 1; + FUN_02031D20(FUN_020330A0, 0); + } + + UNK_021C5A00->unk4D = 1; +} + +THUMB_FUNC u8 FUN_02033128() +{ + return UNK_021C5A00->unk4D; +} + +THUMB_FUNC u32 FUN_02033138() +{ + if (UNK_021C5A00->unk24 == FUN_02033060) + { + return 1; + } + + return 0; +} + +THUMB_FUNC u32 FUN_02033154() +{ + if (UNK_021C5A00->unk24 == FUN_02032F34) + { + return 1; + } + + if (UNK_021C5A00->unk24 == FUN_02033060) + { + return 1; + } + + return 0; +} + +THUMB_FUNC u32 FUN_02033180() +{ + return UNK_021C5A00->unk34; +} + +THUMB_FUNC void FUN_0203318C() +{ + FUN_020313A0(0); + if (MOD04_021D82BC(0) != 0) + { + MOD04_021D836C(); + FUN_02031D20(FUN_02032440, 0); + } + + if (MOD04_021D7F8C() < 0) + { + FUN_02031D20(FUN_02032E8C, 0); + } +} + +THUMB_FUNC void FUN_020331C4() +{ + if (UNK_021C5A00 != NULL) + { + FUN_020166B8(1); + FUN_02031D20(FUN_02032440, 5); + } +} + +THUMB_FUNC void FUN_020331E8() +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk41 = 0; + FUN_02031D20(FUN_020330A0, 0); + } +} + +THUMB_FUNC void FUN_02033208() +{ + if (UNK_021C5A00 != NULL) + { + if (FUN_02031190() == 0) + { + UNK_021C5A00->unk41 = 0; + } + else + { + UNK_021C5A00->unk41 = 1; + } + + FUN_02031D20(FUN_020330A0, 0); + } +} + +THUMB_FUNC void FUN_0203323C() +{ + u8 res = (u8)FUN_02031190(); + FUN_020311D0(0x15, &res); +} + +THUMB_FUNC u32 FUN_02033250() +{ + if (UNK_021C5A00 != NULL) + { + if (UNK_021C5A00->unk24 == FUN_02032E8C) + { + return 1; + } + + if (UNK_021C5A00->unk24 == FUN_02032E90 && UNK_021C5A00->unk44 != 0) + { + return 1; + } + } + + return 0; +} + +THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2) +{ + if (UNK_021C5A00 == NULL) + { + FUN_02016828(3, 0xf, 0x100); + UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); + MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); + + UNK_021C5A00->unk3F = 0x18; + UNK_021C5A00->unk46 = 1; + UNK_021C5A00->unk28 = sav2; + FUN_020334E8(0, 1); + FUN_020166A8(1); + } +} + +THUMB_FUNC void FUN_020332DC() +{ + if (UNK_021C5A00 != 0) + { + FUN_020166B8(1); + FUN_020334E8(0, 0); + FreeToHeap(UNK_021C5A00); + UNK_021C5A00 = NULL; + FUN_020168D0(0xf); + } +} + +THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2) +{ + if (UNK_021C5A00 == NULL) + { + FUN_02016828(3, 0xf, 0x100); + UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); + MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); + UNK_021C5A00->unk3F = 0x19; + UNK_021C5A00->unk46 = 1; + UNK_021C5A00->unk28 = sav2; + FUN_020334E8(0, 1); + FUN_020166A8(1); + } +} + +THUMB_FUNC void FUN_02033364() +{ + if (UNK_021C5A00 != 0) + { + FUN_020166B8(1); + FUN_020334E8(0, 0); + FreeToHeap(UNK_021C5A00); + UNK_021C5A00 = NULL; + FUN_020168D0(0xf); + } +} + +THUMB_FUNC u32 FUN_02033398() +{ + u32 st4; + u32 st0; + if (UNK_021C5A00 == NULL) + { + return 0; + } + + if (UNK_021C5A00->unk3F == 0x18) + { + if (MOD04_021DD718(&st4, &st0) != 0) + { + MOD04_021DD6F0(); + return 1; + } + } + else if (UNK_021C5A00->unk3F == 0x19) + { + if (MOD04_021DD718(&st4, &st0) != 0 && st0 == 7) + { + return 1; + } + } + + return 0; +} + +THUMB_FUNC void FUN_020333F0() +{ + s32 res = MOD04_021D76AC(); + if (res < 0) + { + FUN_02032F20((u32)res); + FUN_02031D20(FUN_02032E8C, 0); + return; + } + else if (res > 0) + { + FUN_02031D20(FUN_02033060, 0); + } +} + +THUMB_FUNC void FUN_0203341C() +{ + if (FUN_0202E4C8() != 0) + { + FUN_02016828(3, 0x31, 0x31000); + if (FUN_0202F918(1, 1, 0x200, 1) != 0) + { + MOD05_021D74E0(UNK_021C5A00->unk28, 0x31); + MOD04_021D83A8(FUN_020335D0); + FUN_0202FA10(); + FUN_02031D20(FUN_020333F0, 0); + } + } +} + +THUMB_FUNC void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1) +{ + Sav2_PlayerData_GetProfileAddr(sav2); + if (FUN_02030F40() != 0) + { + return 0; + } + + FUN_020166A8(1); + FUN_02016828(3, 0xf, 0x7080); + FUN_02031734(sav2, 0x17); + UNK_021C5A00->unk00 = AllocFromHeap(0xf, param1); + MI_CpuFill8(UNK_021C5A00->unk00, 0, param1); + + UNK_021C5A00->unk40 = 0; + UNK_021C5A00->unk28 = sav2; + FUN_02031D20(FUN_0203341C, 0); + + return UNK_021C5A00->unk00; +} + +THUMB_FUNC void *FUN_020334DC() +{ + return UNK_021C5A00->unk00; +} + +THUMB_FUNC void FUN_020334E8(u8 param0, u8 param1) +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk44 = param0; + UNK_021C5A00->unk45 = param1; + } + + FUN_0202EE84(param0); + FUN_0202EEB0(param0); +} + +THUMB_FUNC u8 FUN_02033510() +{ + if (UNK_021C5A00 != NULL) + { + if (UNK_021C5A00->unk4E != 0) + { + return 1; + } + + return UNK_021C5A00->unk45; + } + + return 0; +} + +THUMB_FUNC s32 FUN_02033534() +{ + if (UNK_021C5A00 != NULL) + { + return UNK_021C5A00->unk3F; + } + + return 1; +} + +THUMB_FUNC u8 FUN_0203354C() +{ + if (UNK_021C5A00 != NULL) + { + return UNK_021C5A00->unk40; + } + + return 0; +} + +THUMB_FUNC void FUN_02033564(void *src) +{ + MI_CpuCopy8(src, UNK_021C5A00->unk04, 0x6); +} + +THUMB_FUNC void FUN_02033578(void *dst) +{ + MI_CpuCopy8(UNK_021C5A00->unk04, dst, 0x6); +} + +THUMB_FUNC u32 FUN_02033590() +{ + if (FUN_02033534() >= 0x13) + { + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_020335A4(u8 param0) +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk47 = param0; + } +} + +THUMB_FUNC u8 FUN_020335B8() +{ + if (UNK_021C5A00 != NULL) + { + return UNK_021C5A00->unk47; + } + + return 0; +} + +THUMB_FUNC void FUN_020335D0(s32 param0) +{ + FUN_02033F70(0, 1, param0); + while (1) + { + } +} + +THUMB_FUNC void FUN_020335E0() +{ + FUN_02033F70(0, 4, 0); + while (1) + { + } +} + +THUMB_FUNC void FUN_020335F0() +{ +} + +THUMB_FUNC void FUN_020335F4() +{ + if (FUN_02033510() != 0) + { + if (FUN_020311F0() == 0 && FUN_02033250() == 0 && FUN_02033398() == 0) + { + if (UNK_021C5A00->unk4E == 0) + { + return; + } + } + + if (FUN_020335B8() != 0) + { + return; + } + + FUN_0200541C(); + FUN_0202287C(UNK_021C5A00->unk28); + gMain.unk64 = 1; + if (UNK_021C5A00->unk4E == 3) + { + FUN_020335A4(3); + return; + } + + if (UNK_021C5A00->unk3F == 0x19 || UNK_021C5A00->unk3F == 0xf) + { + FUN_020335A4(2); + } + else + { + FUN_020335A4(1); + } + } +} + +THUMB_FUNC BOOL FUN_02033678() +{ + if (FUN_0202EDD8() != 0 || !FUN_02031810()) + { + return TRUE; + } + + if (FUN_0202E344() == 0) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC u32 FUN_020336A0(u8 param0) +{ + if (UNK_021C5A00 != NULL) + { + UNK_021C5A00->unk4E = param0; + FUN_02031468(); + return 1; + } + + return 0; +} \ No newline at end of file diff --git a/include/unk_02031734.h b/include/unk_02031734.h new file mode 100644 index 000000000..0bfdc910d --- /dev/null +++ b/include/unk_02031734.h @@ -0,0 +1,223 @@ +#ifndef POKEDIAMOND_UNK_02031734_H +#define POKEDIAMOND_UNK_02031734_H + + +#include "global.h" +#include "MI_memory.h" +#include "heap.h" +#include "player_data.h" +#include "unk_0202F150.h" +#include "game_init.h" +#include "unk_0202F150.h" + + +struct UnkStruct_02031734_const1 +{ + u32 unk00[3]; +}; + +struct UnkStruct_02031734_const2 +{ + u32 unk00[2]; +}; + + +struct UnkStruct_02031734 +{ + void *unk00; + u8 unk04[6]; + s64 unk0C; + s64 unk14; + s64 unk1C; + void (*unk24)(); + struct SaveBlock2 *unk28; + struct PlayerData *unk2C; + u32 unk30; + u32 unk34; + u16 unk38; + u16 unk3A; + u8 unk3C; + u8 unk3D; + u8 unk3E; + u8 unk3F; + u8 unk40; + u8 unk41; + u8 unk42; + u8 unk43; + u8 unk44; + u8 unk45; + u8 unk46; + u8 unk47; + u8 unk48; + u8 unk49; + u8 unk4A; + u8 unk4B; + u8 unk4C; + u8 unk4D; + u8 unk4E; + u8 unk4F; +}; + + + + +THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1); +THUMB_FUNC void FUN_020317C0(); +THUMB_FUNC BOOL FUN_02031810(); +THUMB_FUNC void FUN_02031824(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_02031860(); +THUMB_FUNC void FUN_02031880(); +THUMB_FUNC void FUN_020318A4(u8 param0); +THUMB_FUNC void FUN_020318B4(); +THUMB_FUNC BOOL FUN_020318C4(); +THUMB_FUNC void FUN_02031914(); +THUMB_FUNC void FUN_02031924(); +THUMB_FUNC void FUN_02031934(); +THUMB_FUNC void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); +THUMB_FUNC void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); +THUMB_FUNC void FUN_020319D8(u8 param0); +THUMB_FUNC void FUN_020319F4(); +THUMB_FUNC void FUN_02031A08(); +THUMB_FUNC void FUN_02031A24(); +THUMB_FUNC BOOL FUN_02031A2C(); +THUMB_FUNC void FUN_02031A7C(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_02031AC8(u8 param0); +THUMB_FUNC s32 FUN_02031AF4(); +THUMB_FUNC BOOL FUN_02031B2C(); +THUMB_FUNC void FUN_02031B50(); +THUMB_FUNC u32 FUN_02031BD0(); +THUMB_FUNC void FUN_02031BF4(); +THUMB_FUNC void FUN_02031C10(); +THUMB_FUNC void FUN_02031C2C(); +THUMB_FUNC void FUN_02031C54(); +THUMB_FUNC void FUN_02031C64(); +THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1); +THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1); +THUMB_FUNC void FUN_02031CDC(); +THUMB_FUNC void FUN_02031D20(void (*param0)(), u16 param1); +THUMB_FUNC void FUN_02031D30(); +THUMB_FUNC void FUN_02031E08(); +THUMB_FUNC void FUN_02031E8C(); +THUMB_FUNC void FUN_02031EE0(); +THUMB_FUNC void FUN_02031F60(); +THUMB_FUNC void FUN_02031FC8(); +THUMB_FUNC void FUN_02032028(); +THUMB_FUNC void FUN_02032040(); +THUMB_FUNC void FUN_02032058(); +THUMB_FUNC void FUN_020320C4(); +THUMB_FUNC void FUN_02032118(); +THUMB_FUNC void FUN_02032138(); +THUMB_FUNC void FUN_0203213C(); +THUMB_FUNC void FUN_02032140(); +THUMB_FUNC void FUN_02032178(); +THUMB_FUNC void FUN_02032194(); +THUMB_FUNC void FUN_020321B8(); +THUMB_FUNC void FUN_020321D0(); +THUMB_FUNC void FUN_02032218(); +THUMB_FUNC void FUN_02032234(); +THUMB_FUNC void FUN_0203224C(); +THUMB_FUNC void FUN_02032290(); +THUMB_FUNC void FUN_02032298(); +THUMB_FUNC void FUN_020322C0(); +THUMB_FUNC void FUN_020322F8(); +THUMB_FUNC void FUN_0203230C(); +THUMB_FUNC void FUN_0203234C(); +THUMB_FUNC void FUN_02032364(); +THUMB_FUNC void FUN_02032378(); +THUMB_FUNC void FUN_020323B8(); +THUMB_FUNC void FUN_020323BC(); +THUMB_FUNC void FUN_020323CC(); +THUMB_FUNC void FUN_020323DC(); +THUMB_FUNC void FUN_02032424(); +THUMB_FUNC void FUN_02032440(); +THUMB_FUNC void FUN_02032478(); +THUMB_FUNC void FUN_020324C8(); +THUMB_FUNC void FUN_020324F8(); +THUMB_FUNC void FUN_02032510(); +THUMB_FUNC void FUN_02032578(); +THUMB_FUNC void FUN_020325D0(); +THUMB_FUNC void FUN_02032628(); +THUMB_FUNC void FUN_02032640(); +THUMB_FUNC void FUN_0203266C(); +THUMB_FUNC void FUN_020326D0(); +THUMB_FUNC void FUN_02032738(); +THUMB_FUNC void FUN_0203279C(); +THUMB_FUNC void FUN_020327B4(); +THUMB_FUNC void FUN_020327B8(); +THUMB_FUNC void FUN_020327FC(); +THUMB_FUNC void FUN_02032850(); +THUMB_FUNC void FUN_02032888(); +THUMB_FUNC void FUN_020328C0(u8 param0); +THUMB_FUNC void FUN_020328E4(); +THUMB_FUNC void FUN_020328F4(u8 param0); +THUMB_FUNC void FUN_02032924(); +THUMB_FUNC void FUN_0203293C(); +THUMB_FUNC void FUN_02032978(); +THUMB_FUNC void FUN_020329F4(); +THUMB_FUNC void FUN_02032A8C(u8 param0, u32 param1, u8 *param2); +THUMB_FUNC void FUN_02032AEC(u32 param0, u32 param1, u8 *param2); +THUMB_FUNC u32 FUN_02032B68(); +THUMB_FUNC void FUN_02032B6C(u8 param0); +THUMB_FUNC void FUN_02032B84(); +THUMB_FUNC void FUN_02032B8C(); +THUMB_FUNC void FUN_02032BD0(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_02032C0C(); +THUMB_FUNC u32 FUN_02032C28(); +THUMB_FUNC void FUN_02032C6C(u32 param0, u32 param1); +THUMB_FUNC void FUN_02032CF4(); +THUMB_FUNC void FUN_02032D44(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_02032D80(); +THUMB_FUNC u8 FUN_02032D9C(); +THUMB_FUNC BOOL FUN_02032DAC(); +THUMB_FUNC void FUN_02032E00(); +THUMB_FUNC void FUN_02032E48(); +THUMB_FUNC void FUN_02032E8C(); +THUMB_FUNC void FUN_02032E90(); +THUMB_FUNC void FUN_02032EA8(); +THUMB_FUNC void FUN_02032EAC(); +THUMB_FUNC void FUN_02032EB0(); +THUMB_FUNC void FUN_02032F20(u32 param0); +THUMB_FUNC void FUN_02032F34(); +THUMB_FUNC void FUN_02032F98(); +THUMB_FUNC u32 FUN_02032FDC(u8 param0); +THUMB_FUNC u32 FUN_0203300C(); +THUMB_FUNC void FUN_02033060(); +THUMB_FUNC void FUN_020330A0(); +THUMB_FUNC void FUN_020330E4(); +THUMB_FUNC u8 FUN_02033128(); +THUMB_FUNC u32 FUN_02033138(); +THUMB_FUNC u32 FUN_02033154(); +THUMB_FUNC u32 FUN_02033180(); +THUMB_FUNC void FUN_0203318C(); +THUMB_FUNC void FUN_020331C4(); +THUMB_FUNC void FUN_020331E8(); +THUMB_FUNC void FUN_02033208(); +THUMB_FUNC void FUN_0203323C(); +THUMB_FUNC u32 FUN_02033250(); +THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_020332DC(); +THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2); +THUMB_FUNC void FUN_02033364(); +THUMB_FUNC u32 FUN_02033398(); +THUMB_FUNC void FUN_020333F0(); +THUMB_FUNC void FUN_0203341C(); +THUMB_FUNC void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1); +THUMB_FUNC void *FUN_020334DC(); +THUMB_FUNC void FUN_020334E8(u8 param0, u8 param1); +THUMB_FUNC u8 FUN_02033510(); +THUMB_FUNC s32 FUN_02033534(); +THUMB_FUNC u8 FUN_0203354C(); +THUMB_FUNC void FUN_02033564(void *src); +THUMB_FUNC void FUN_02033578(void *dst); +THUMB_FUNC u32 FUN_02033590(); +THUMB_FUNC void FUN_020335A4(u8 param0); +THUMB_FUNC u8 FUN_020335B8(); +THUMB_FUNC void FUN_020335D0(s32 param0); +THUMB_FUNC void FUN_020335E0(); +THUMB_FUNC void FUN_020335F0(); +THUMB_FUNC void FUN_020335F4(); +THUMB_FUNC BOOL FUN_02033678(); +THUMB_FUNC u32 FUN_020336A0(u8 param0); + + +#endif //POKEDIAMOND_UNK_0202F150_H \ No newline at end of file From 56e5d2eac8ed953e9f52b5ae760fcfa72cc6a91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 1 May 2021 13:00:21 +0200 Subject: [PATCH 015/134] remove obsolete externs --- arm9/modules/11/src/module_11_sinit.c | 3 ++- arm9/src/error_handling.c | 3 ++- arm9/src/error_message_reset.c | 7 ++++--- arm9/src/heap.c | 3 ++- arm9/src/main.c | 8 ++++---- arm9/src/unk_0202F150.c | 12 +++++------- include/unk_0202F150.h | 4 ++-- 7 files changed, 21 insertions(+), 19 deletions(-) diff --git a/arm9/modules/11/src/module_11_sinit.c b/arm9/modules/11/src/module_11_sinit.c index 977c4fde2..8bf5f6f6e 100644 --- a/arm9/modules/11/src/module_11_sinit.c +++ b/arm9/modules/11/src/module_11_sinit.c @@ -1,8 +1,9 @@ #include "global.h" #include "poke_overlay.h" #include "FS_overlay.h" +#include "unk_02031734.h" + -extern u32 FUN_02033590(void); FS_EXTERN_OVERLAY(MODULE_16); THUMB_FUNC static void MOD11_0222F284(void) diff --git a/arm9/src/error_handling.c b/arm9/src/error_handling.c index a01894f60..7f006039e 100644 --- a/arm9/src/error_handling.c +++ b/arm9/src/error_handling.c @@ -1,8 +1,9 @@ #include "global.h" #include "error_handling.h" #include "error_message_reset.h" +#include "unk_02031734.h" + -extern u32 FUN_02031810(void); THUMB_FUNC void ErrorHandling(void) { diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 3a7279249..f70fec0f4 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -1,5 +1,9 @@ #include "error_message_reset.h" #include "GX_layers.h" +#include "unk_02031734.h" +#include "unk_0202F150.h" + + const u32 UNK_020FF49C[2] = { 0x1a030300, 0x00230112 }; @@ -27,9 +31,6 @@ extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16); extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); -extern BOOL FUN_02032DAC(void); -extern BOOL FUN_0202FB80(void); -extern BOOL FUN_02033678(void); extern void FUN_02019178(u32 *param0); THUMB_FUNC void VBlankHandler() diff --git a/arm9/src/heap.c b/arm9/src/heap.c index 84abc834a..895ce808e 100644 --- a/arm9/src/heap.c +++ b/arm9/src/heap.c @@ -1,11 +1,12 @@ #include "heap.h" #include "error_message_reset.h" +#include "unk_02031734.h" + extern void *tempName_NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2); extern void *tempName_NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2); extern void thunk_FUN_020adc8c(); extern void FUN_020ADDF0(void *ptr1, void *ptr2); -extern u32 FUN_02031810(void); extern u32 FUN_020ADDC8(void *param0); extern void FUN_020AE82C(u32 param0, void *param1, u32 param2); extern u32 FUN_020ADDC0(void *param0); diff --git a/arm9/src/main.c b/arm9/src/main.c index c50fbaff0..f7bcf7f01 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -12,6 +12,10 @@ #include "player_data.h" #include "sound.h" #include "timer3.h" +#include "unk_02031734.h" +#include "unk_0202F150.h" + + FS_EXTERN_OVERLAY(MODULE_52); FS_EXTERN_OVERLAY(MODULE_63); @@ -23,9 +27,6 @@ struct Unk2106FA0 gBacklightTop; extern BOOL OverlayManager_new(struct Unk21DBE18 *, s32 *, int); extern BOOL OverlayManager_Run(int); extern void OverlayManager_delete(int); -extern BOOL FUN_02033678(void); -extern u32 FUN_020335B8(void); -extern BOOL FUN_0202FB80(void); extern void InitSystemForTheGame(void); extern void InitGraphicMemory(void); @@ -218,7 +219,6 @@ THUMB_FUNC void FUN_02000EE8(void) } extern void FUN_0200E3A0(PMLCDTarget, int); -extern BOOL FUN_02032DAC(void); // No Return THUMB_FUNC void DoSoftReset(u32 parameter) diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index c728ddf17..02980c028 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -1,5 +1,7 @@ #include "unk_0202F150.h" #include "unk_02031480.h" +#include "unk_02031734.h" + struct { u8 unk00; @@ -9,7 +11,6 @@ struct vu8 UNK_02105D58 = 4; vu8 UNK_02105D59 = 4; -extern int FUN_02033534(); extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2); extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); extern void FUN_0202D394(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2); @@ -25,10 +26,8 @@ extern void FUN_0202D824(u8 *param0); extern u32 FUN_0202E9E8(u32 param0); extern u32 FUN_0202F03C(); extern u32 FUN_0202EE24(); -extern void FUN_02031CDC(); extern void FUN_0202EBD0(u16 param0); extern void FUN_0202ED70(u32 param0); -extern void FUN_020335F4(u32 param0); extern void FUN_0202E538(); extern u32 MOD04_021D78FC(void *param0, u32 param1); extern u32 FUN_0202CBD4(); @@ -52,7 +51,6 @@ extern void *FUN_0202DA40(u32 param0, u32 param1, u16 param2); extern u32 MOD04_021D8018(); extern u32 FUN_0202EDF8(); extern u16 FUN_0202D19C(); -extern void FUN_020334E8(u32 param0, u32 param1); extern u32 FUN_0202EE60(); extern void FUN_0202F05C(); extern void GF_RTC_CopyDateTime(RTCDate *, RTCTime *); @@ -537,7 +535,7 @@ THUMB_FUNC void FUN_0202FB58() } } -THUMB_FUNC u32 FUN_0202FB80() +THUMB_FUNC BOOL FUN_0202FB80() { FUN_02031CDC(); @@ -2021,9 +2019,9 @@ THUMB_FUNC u32 FUN_02030E7C(u16 param0) return 0; } -THUMB_FUNC u32 FUN_02030F20() +THUMB_FUNC s32 FUN_02030F20() { - u32 r4 = 0; + s32 r4 = 0; for (int i = 0; i < 8; i++) { if (FUN_02030E7C((u16)i) != 0) diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 4542cdd1e..49c58a52d 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -105,7 +105,7 @@ THUMB_FUNC void FUN_0202FA5C(); THUMB_FUNC u32 FUN_0202FB18(u32 param0); THUMB_FUNC void FUN_0202FB20(); THUMB_FUNC void FUN_0202FB58(); -THUMB_FUNC u32 FUN_0202FB80(); +THUMB_FUNC BOOL FUN_0202FB80(); THUMB_FUNC void FUN_0202FC60(); THUMB_FUNC void FUN_0202FC80(); THUMB_FUNC void FUN_0202FCA8(); @@ -145,7 +145,7 @@ THUMB_FUNC void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0, THUMB_FUNC void FUN_02030DA4(); THUMB_FUNC void FUN_02030DFC(); THUMB_FUNC u32 FUN_02030E7C(u16 param0); -THUMB_FUNC u32 FUN_02030F20(); +THUMB_FUNC s32 FUN_02030F20(); THUMB_FUNC u32 FUN_02030F40(); THUMB_FUNC void FUN_02030F60(u8 param0); THUMB_FUNC u8 FUN_02030F74(u32 param0); From f447c9f02c12d2434f48ccf82cedfab0ea16b5ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 1 May 2021 13:04:52 +0200 Subject: [PATCH 016/134] formatting --- arm9/src/unk_02031734.c | 14 ++++++++++---- include/unk_02031734.h | 12 ++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 21dfad41e..8c4c644c5 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -2,9 +2,13 @@ const struct UnkStruct_02031734_const2 UNK_020EEC48 = { { (u32)FUN_02032B84, 0 } }; -const struct UnkStruct_02031734_const1 UNK_020EEC50 = { { (u32)FUN_0203213C, (u32)FUN_02032138, 0 } }; +const struct UnkStruct_02031734_const1 UNK_020EEC50 = { + { (u32)FUN_0203213C, (u32)FUN_02032138, 0 } +}; -const struct UnkStruct_02031734_const1 UNK_020EEC5C = { { (u32)FUN_02032234, (u32)FUN_0203234C, 0 } }; +const struct UnkStruct_02031734_const1 UNK_020EEC5C = { + { (u32)FUN_02032234, (u32)FUN_0203234C, 0 } +}; char UNK_02105D5C[] = "FREAK"; @@ -2061,7 +2065,8 @@ THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2) if (UNK_021C5A00 == NULL) { FUN_02016828(3, 0xf, 0x100); - UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); + UNK_021C5A00 = + (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); UNK_021C5A00->unk3F = 0x18; @@ -2089,7 +2094,8 @@ THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2) if (UNK_021C5A00 == NULL) { FUN_02016828(3, 0xf, 0x100); - UNK_021C5A00 = (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); + UNK_021C5A00 = + (struct UnkStruct_02031734 *)AllocFromHeap(0xf, sizeof(struct UnkStruct_02031734)); MI_CpuFill8(UNK_021C5A00, 0, sizeof(struct UnkStruct_02031734)); UNK_021C5A00->unk3F = 0x19; UNK_021C5A00->unk46 = 1; diff --git a/include/unk_02031734.h b/include/unk_02031734.h index 0bfdc910d..c8098aec0 100644 --- a/include/unk_02031734.h +++ b/include/unk_02031734.h @@ -1,15 +1,12 @@ #ifndef POKEDIAMOND_UNK_02031734_H #define POKEDIAMOND_UNK_02031734_H - #include "global.h" #include "MI_memory.h" +#include "game_init.h" #include "heap.h" #include "player_data.h" #include "unk_0202F150.h" -#include "game_init.h" -#include "unk_0202F150.h" - struct UnkStruct_02031734_const1 { @@ -21,7 +18,6 @@ struct UnkStruct_02031734_const2 u32 unk00[2]; }; - struct UnkStruct_02031734 { void *unk00; @@ -58,9 +54,6 @@ struct UnkStruct_02031734 u8 unk4F; }; - - - THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1); THUMB_FUNC void FUN_020317C0(); THUMB_FUNC BOOL FUN_02031810(); @@ -219,5 +212,4 @@ THUMB_FUNC void FUN_020335F4(); THUMB_FUNC BOOL FUN_02033678(); THUMB_FUNC u32 FUN_020336A0(u8 param0); - -#endif //POKEDIAMOND_UNK_0202F150_H \ No newline at end of file +#endif // POKEDIAMOND_UNK_0202F150_H \ No newline at end of file From 5780e0c18c86e3eab6cc71695b4fe6629e43a32e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 1 May 2021 13:10:36 +0200 Subject: [PATCH 017/134] BOOL usage --- arm9/src/unk_0202F150.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index 02980c028..b8a42687a 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -585,7 +585,7 @@ THUMB_FUNC BOOL FUN_0202FB80() FUN_020335F4(0); FUN_020315A4(); - return 1; + return TRUE; } THUMB_FUNC void FUN_0202FC60() From 62f567932f7e0eee6e8e354cde7e83472cb51887 Mon Sep 17 00:00:00 2001 From: fyren Date: Sat, 1 May 2021 23:07:29 +0200 Subject: [PATCH 018/134] fixing small issues in unk_0206015C --- arm9/src/unk_0206015C.c | 42 ++++++++++++++++++++++++++++++++++++++--- include/unk_0206015C.h | 38 ++++--------------------------------- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/arm9/src/unk_0206015C.c b/arm9/src/unk_0206015C.c index 070765067..3d2951564 100644 --- a/arm9/src/unk_0206015C.c +++ b/arm9/src/unk_0206015C.c @@ -1,5 +1,41 @@ #include "unk_0206015C.h" +#include "heap.h" +#include "event_data.h" +#include "main.h" + +/* Note to future reader, there might be some errors + in the return type / parameters. They are right for this code + but they might not be for every code, please do not blindly + trust these prototypes if you are decompiling these functions. */ +extern THUMB_FUNC u32 MOD06_02244DB0(u32); +extern THUMB_FUNC void MOD06_02244DBC(void*); +extern THUMB_FUNC void MOD06_02244DC4(void*, void*); +extern THUMB_FUNC void MOD06_02244EF8(void*); +extern THUMB_FUNC void MOD06_02244F18(void*); +extern THUMB_FUNC BOOL MOD06_02244F24(void*); +extern THUMB_FUNC void MOD06_02244F2C(void*); +extern THUMB_FUNC void* MOD06_02245088(struct UnkSavStruct80 * savStruct); +extern THUMB_FUNC u32 MOD06_02245114(u32, struct UnkSavStruct80*); +extern THUMB_FUNC void MOD06_02245190(u32); +extern THUMB_FUNC void MOD06_02245198(u8, u32); +extern THUMB_FUNC u32 MOD06_022451F0(u32); + +extern THUMB_FUNC void FUN_020054C8(u32); +extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32); +extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*); +extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C *); +extern THUMB_FUNC void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32); +extern THUMB_FUNC u32 FUN_020553A0(u32); +extern THUMB_FUNC void FUN_0205889C(u32, u32); +extern THUMB_FUNC void FUN_0205F1C4(struct ScriptState *); +extern THUMB_FUNC void FUN_0205F1D4(struct ScriptState *); +extern THUMB_FUNC void FUN_0206367C(struct UnkSavStruct80 *, u32); + + + THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80 *savStruct) { struct UnkStruct_0206015C *unkStruct = AllocFromHeapAtEnd(0xb, 0x10); @@ -104,10 +140,10 @@ THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C *unkStruct0) MOD06_02245190(unkStruct1->unk4); MOD06_02244DBC(unkStruct1->unk0); FreeToHeap(unkStruct1); - return 1; + return TRUE; default: break; } - return 0; -} \ No newline at end of file + return FALSE; +} diff --git a/include/unk_0206015C.h b/include/unk_0206015C.h index 75d75c53a..e8a312c2a 100644 --- a/include/unk_0206015C.h +++ b/include/unk_0206015C.h @@ -1,40 +1,9 @@ +#ifndef UNK_0206015C_H_GUARD +#define UNK_0206015C_H_GUARD + #include "global.h" #include "script.h" -#include "main.h" #include "unk_0204639C.h" -#include "heap.h" -#include "event_data.h" - -/* Note to future reader, there might be some errors - in the return type / parameters. They are right for this code - but they might not be for every code, please do not blindly - trust these prototypes if you are decompiling these functions. */ -extern THUMB_FUNC u32 MOD06_02244DB0(u32); -extern THUMB_FUNC void MOD06_02244DBC(void*); -extern THUMB_FUNC void MOD06_02244DC4(void*, void*); -extern THUMB_FUNC void MOD06_02244EF8(void*); -extern THUMB_FUNC void MOD06_02244F18(void*); -extern THUMB_FUNC BOOL MOD06_02244F24(void*); -extern THUMB_FUNC void MOD06_02244F2C(void*); -extern THUMB_FUNC void* MOD06_02245088(struct UnkSavStruct80 * savStruct); -extern THUMB_FUNC u32 MOD06_02245114(u32, struct UnkSavStruct80*); -extern THUMB_FUNC void MOD06_02245190(u32); -extern THUMB_FUNC void MOD06_02245198(u8, u32); -extern THUMB_FUNC u32 MOD06_022451F0(u32); - -extern THUMB_FUNC void FUN_020054C8(u32); -extern THUMB_FUNC void FUN_02049160(struct UnkStruct_0204639C*, u32); -extern THUMB_FUNC void FUN_0204AF84(struct UnkStruct_0204639C*); -extern THUMB_FUNC void FUN_0204AF3C(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204AFC8(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204B00C(struct UnkStruct_0204639C *); -extern THUMB_FUNC void FUN_0204C1B4(struct UnkStruct_0204639C*, u32,u32,u32,u32,u32,u32,u32); -extern THUMB_FUNC u32 FUN_020553A0(u32); -extern THUMB_FUNC void FUN_0205889C(u32, u32); -extern THUMB_FUNC void FUN_0205F1C4(struct ScriptState *); -extern THUMB_FUNC void FUN_0205F1D4(struct ScriptState *); -extern THUMB_FUNC void FUN_0206367C(struct UnkSavStruct80 *, u32); - struct UnkStruct_0206015C { @@ -58,3 +27,4 @@ struct UnkStruct_0204652C THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80* savStruct); THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C * unkStruct0); +#endif //UNK_0206015C_H_GUARD From aaaa27e731b1a39fbb35e21ff88f4944d74c9f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sun, 2 May 2021 09:54:51 +0200 Subject: [PATCH 019/134] replace nonmatchings with an inline function --- arm9/src/unk_02031734.c | 215 +++------------------------------------- include/unk_02031734.h | 15 ++- 2 files changed, 25 insertions(+), 205 deletions(-) diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 8c4c644c5..01d85ffb5 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -86,7 +86,7 @@ THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1) UNK_021C5A00->unk48 = 0; UNK_021C5A00->unk3F = param1; - FUN_020312BC(&UNK_021C5A00->unk0C); + FUN_020312BC(UNK_021C5A00->unk0C); FUN_0202D8D0(0, 0, 0); if (param1 != 9 && param1 != 0x11 && param1 != 0xf) @@ -451,10 +451,10 @@ THUMB_FUNC void FUN_02031CDC() } } -THUMB_FUNC void FUN_02031D20(void (*param0)(), u16 param1) +THUMB_FUNC void FUN_02031D20(void (*param0)(), u32 param1) { UNK_021C5A00->unk24 = param0; - UNK_021C5A00->unk3A = param1; + UNK_021C5A00->unk3A = (u16)param1; } THUMB_FUNC void FUN_02031D30() @@ -482,44 +482,11 @@ THUMB_FUNC void FUN_02031D30() return; } -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; - u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x14) >> 32; + u32 r1 = compute(UNK_021C5A00->unk0C, 0x14); UNK_021C5A00->unk43 = 0; FUN_02031D20(FUN_020320C4, r1 + 0x14); -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 - pop {r3-r5, pc} // clang-format on - ); -#endif + return; } if (FUN_0202F950(1, 1, 0x1F4) != 0) @@ -551,50 +518,14 @@ THUMB_FUNC void FUN_02031E08() if (FUN_0202F950(0, 1, 0x1F4) != 0) { -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; - u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x40) >> 32; + u32 r1 = compute(UNK_021C5A00->unk0C, 0x40); if (UNK_021C5A00->unk38 != 0) { - r1 = UNK_021C5A00->unk38 << 6; + r1 = (u32)(UNK_021C5A00->unk38 << 6); UNK_021C5A00->unk38 = 0; } FUN_02031D20(FUN_02031EE0, r1); -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - mov r1, #0x0 - str r3, [r4, #0x4] - lsr r0, r3, #0x1a - lsl r1, r1, #0x6 - orr r1, r0 - ldrh r0, [r5, #0x38] - cmp r0, #0x0 - beq _02031E76 - lsl r1, r0, #0x6 - mov r0, #0x0 - strh r0, [r5, #0x38] - _02031E76: - ldr r0, =FUN_02031EE0 - bl FUN_02031D20 - // clang-format on - ); -#endif } } } @@ -606,39 +537,9 @@ THUMB_FUNC void FUN_02031E8C() if (FUN_0202F950(0, 0, 0x1F4) != 0) { -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; - u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x20) >> 32; + u32 r1 = compute(UNK_021C5A00->unk0C, 0x20); FUN_02031D20(FUN_02031EE0, r1 + 0x10); -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - ldr r0, =FUN_02031EE0 - add r1, #0x10 - str r3, [r5, #0x4] - bl FUN_02031D20 - // clang-format on - ); -#endif } } } @@ -747,44 +648,10 @@ THUMB_FUNC void FUN_02032058() FUN_02031268(1); if (FUN_0202F918(0, UNK_021C5A00->unk43, 0x1F4, 1) != 0) { -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; - u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x14) >> 32; + u32 r1 = compute(UNK_021C5A00->unk0C, 0x14); UNK_021C5A00->unk43 = 0; FUN_02031D20(FUN_020320C4, r1 + 0x14); -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 - add r4, #0xc - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r5, #0xc] - ldr r3, [r4, #0x4] - bl _ll_mul - ldr r2, [r4, #0x10] - ldr r3, [r4, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r5, #0xc] - str r3, [r4, #0x4] - add r0, r3, #0x0 - mov r1, #0x0 - mov r2, #0x14 - mov r3, #0x0 - bl _ll_mul - mov r0, #0x0 - add r5, #0x43 - strb r0, [r5, #0x0] - ldr r0, =FUN_020320C4 - add r1, #0x14 - bl FUN_02031D20 - // clang-format on - ); -#endif } } } @@ -1092,37 +959,12 @@ THUMB_FUNC void FUN_02032510() { if (FUN_0202EE0C() != 0 && FUN_0202F918(0, UNK_021C5A00->unk43, 0x200, 1) != 0) { -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; + // the compiler optimizes away the result of this function because it's not used, so any + // second parameter value matches + compute(UNK_021C5A00->unk0C, 0); + FUN_0202FA10(); UNK_021C5A00->unk43 = 0; -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - str r3, [r5, #0x4] - bl FUN_0202FA10 - ldr r0, =UNK_021C5A00 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, #0x43 - strb r1, [r0, #0x0] - // clang-format on - ); -#endif FUN_02031D20(FUN_02032578, 0x2710); } @@ -1159,38 +1001,9 @@ THUMB_FUNC void FUN_020325D0() { FUN_0202FA10(); -#ifdef NONMATCHING - UNK_021C5A00->unk0C = UNK_021C5A00->unk0C * UNK_021C5A00->unk14 + UNK_021C5A00->unk1C; - u32 r1 = ((s64)((u64)(UNK_021C5A00->unk0C) >> 32) * 0x20) >> 32; + u32 r1 = compute(UNK_021C5A00->unk0C, 0x20); FUN_02031D20(FUN_020324C8, r1); -#else - asm( - // clang-format off - ldr r0, =UNK_021C5A00 - ldr r4, [r0, #0x0] - add r5, r4, #0x0 - add r5, #0xc - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - ldr r2, [r4, #0xc] - ldr r3, [r5, #0x4] - bl _ll_mul - ldr r2, [r5, #0x10] - ldr r3, [r5, #0x14] - add r0, r2, r0 - adc r3, r1 - str r0, [r4, #0xc] - mov r1, #0x0 - ldr r0, =FUN_020324C8 - lsr r2, r3, #0x1b - lsl r1, r1, #0x5 - orr r1, r2 - str r3, [r5, #0x4] - bl FUN_02031D20 - // clang-format on - ); -#endif } } diff --git a/include/unk_02031734.h b/include/unk_02031734.h index c8098aec0..bcfc3f84c 100644 --- a/include/unk_02031734.h +++ b/include/unk_02031734.h @@ -22,9 +22,7 @@ struct UnkStruct_02031734 { void *unk00; u8 unk04[6]; - s64 unk0C; - s64 unk14; - s64 unk1C; + s64 unk0C[3]; void (*unk24)(); struct SaveBlock2 *unk28; struct PlayerData *unk2C; @@ -54,6 +52,15 @@ struct UnkStruct_02031734 u8 unk4F; }; + +inline u32 compute(s64 *param0, u32 param1) +{ + param0[0] = param0[1] * param0[0] + param0[2]; + + return (u32)(((s64)((u64)(param0[0]) >> 32) * param1) >> 32); +} + + THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1); THUMB_FUNC void FUN_020317C0(); THUMB_FUNC BOOL FUN_02031810(); @@ -87,7 +94,7 @@ THUMB_FUNC void FUN_02031C64(); THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1); THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1); THUMB_FUNC void FUN_02031CDC(); -THUMB_FUNC void FUN_02031D20(void (*param0)(), u16 param1); +THUMB_FUNC void FUN_02031D20(void (*param0)(), u32 param1); THUMB_FUNC void FUN_02031D30(); THUMB_FUNC void FUN_02031E08(); THUMB_FUNC void FUN_02031E8C(); From 5618acfd092460c1acb38ed0a56ae161911cdac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sun, 2 May 2021 09:55:35 +0200 Subject: [PATCH 020/134] use boolean in while loops --- arm9/src/unk_02031734.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 01d85ffb5..a9470c49e 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -2102,7 +2102,7 @@ THUMB_FUNC u8 FUN_020335B8() THUMB_FUNC void FUN_020335D0(s32 param0) { FUN_02033F70(0, 1, param0); - while (1) + while (TRUE) { } } @@ -2110,7 +2110,7 @@ THUMB_FUNC void FUN_020335D0(s32 param0) THUMB_FUNC void FUN_020335E0() { FUN_02033F70(0, 4, 0); - while (1) + while (TRUE) { } } From a036306c5554d2d7088c07ea0c08c7b718a6508a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sun, 2 May 2021 10:04:55 +0200 Subject: [PATCH 021/134] fix line endings --- arm9/src/unk_02031734.c | 2 +- include/unk_02031734.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index a9470c49e..ee24af392 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -2181,4 +2181,4 @@ THUMB_FUNC u32 FUN_020336A0(u8 param0) } return 0; -} \ No newline at end of file +} diff --git a/include/unk_02031734.h b/include/unk_02031734.h index bcfc3f84c..53b1e0b7b 100644 --- a/include/unk_02031734.h +++ b/include/unk_02031734.h @@ -219,4 +219,4 @@ THUMB_FUNC void FUN_020335F4(); THUMB_FUNC BOOL FUN_02033678(); THUMB_FUNC u32 FUN_020336A0(u8 param0); -#endif // POKEDIAMOND_UNK_0202F150_H \ No newline at end of file +#endif // POKEDIAMOND_UNK_0202F150_H From fe7f18002c7987ef744b5024151ca0903e4317fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sun, 2 May 2021 10:14:04 +0200 Subject: [PATCH 022/134] cleanup header --- arm9/src/unk_02031734.c | 6 + include/unk_02031734.h | 321 ++++++++++++++++++++-------------------- 2 files changed, 163 insertions(+), 164 deletions(-) diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index ee24af392..3222232c3 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -1,4 +1,10 @@ +#include "global.h" #include "unk_02031734.h" +#include "MI_memory.h" +#include "game_init.h" +#include "heap.h" +#include "player_data.h" +#include "unk_0202F150.h" const struct UnkStruct_02031734_const2 UNK_020EEC48 = { { (u32)FUN_02032B84, 0 } }; diff --git a/include/unk_02031734.h b/include/unk_02031734.h index 53b1e0b7b..baf3901f5 100644 --- a/include/unk_02031734.h +++ b/include/unk_02031734.h @@ -2,11 +2,6 @@ #define POKEDIAMOND_UNK_02031734_H #include "global.h" -#include "MI_memory.h" -#include "game_init.h" -#include "heap.h" -#include "player_data.h" -#include "unk_0202F150.h" struct UnkStruct_02031734_const1 { @@ -52,7 +47,6 @@ struct UnkStruct_02031734 u8 unk4F; }; - inline u32 compute(s64 *param0, u32 param1) { param0[0] = param0[1] * param0[0] + param0[2]; @@ -60,163 +54,162 @@ inline u32 compute(s64 *param0, u32 param1) return (u32)(((s64)((u64)(param0[0]) >> 32) * param1) >> 32); } - -THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1); -THUMB_FUNC void FUN_020317C0(); -THUMB_FUNC BOOL FUN_02031810(); -THUMB_FUNC void FUN_02031824(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02031860(); -THUMB_FUNC void FUN_02031880(); -THUMB_FUNC void FUN_020318A4(u8 param0); -THUMB_FUNC void FUN_020318B4(); -THUMB_FUNC BOOL FUN_020318C4(); -THUMB_FUNC void FUN_02031914(); -THUMB_FUNC void FUN_02031924(); -THUMB_FUNC void FUN_02031934(); -THUMB_FUNC void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); -THUMB_FUNC void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); -THUMB_FUNC void FUN_020319D8(u8 param0); -THUMB_FUNC void FUN_020319F4(); -THUMB_FUNC void FUN_02031A08(); -THUMB_FUNC void FUN_02031A24(); -THUMB_FUNC BOOL FUN_02031A2C(); -THUMB_FUNC void FUN_02031A7C(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02031AC8(u8 param0); -THUMB_FUNC s32 FUN_02031AF4(); -THUMB_FUNC BOOL FUN_02031B2C(); -THUMB_FUNC void FUN_02031B50(); -THUMB_FUNC u32 FUN_02031BD0(); -THUMB_FUNC void FUN_02031BF4(); -THUMB_FUNC void FUN_02031C10(); -THUMB_FUNC void FUN_02031C2C(); -THUMB_FUNC void FUN_02031C54(); -THUMB_FUNC void FUN_02031C64(); -THUMB_FUNC void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1); -THUMB_FUNC void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1); -THUMB_FUNC void FUN_02031CDC(); -THUMB_FUNC void FUN_02031D20(void (*param0)(), u32 param1); -THUMB_FUNC void FUN_02031D30(); -THUMB_FUNC void FUN_02031E08(); -THUMB_FUNC void FUN_02031E8C(); -THUMB_FUNC void FUN_02031EE0(); -THUMB_FUNC void FUN_02031F60(); -THUMB_FUNC void FUN_02031FC8(); -THUMB_FUNC void FUN_02032028(); -THUMB_FUNC void FUN_02032040(); -THUMB_FUNC void FUN_02032058(); -THUMB_FUNC void FUN_020320C4(); -THUMB_FUNC void FUN_02032118(); -THUMB_FUNC void FUN_02032138(); -THUMB_FUNC void FUN_0203213C(); -THUMB_FUNC void FUN_02032140(); -THUMB_FUNC void FUN_02032178(); -THUMB_FUNC void FUN_02032194(); -THUMB_FUNC void FUN_020321B8(); -THUMB_FUNC void FUN_020321D0(); -THUMB_FUNC void FUN_02032218(); -THUMB_FUNC void FUN_02032234(); -THUMB_FUNC void FUN_0203224C(); -THUMB_FUNC void FUN_02032290(); -THUMB_FUNC void FUN_02032298(); -THUMB_FUNC void FUN_020322C0(); -THUMB_FUNC void FUN_020322F8(); -THUMB_FUNC void FUN_0203230C(); -THUMB_FUNC void FUN_0203234C(); -THUMB_FUNC void FUN_02032364(); -THUMB_FUNC void FUN_02032378(); -THUMB_FUNC void FUN_020323B8(); -THUMB_FUNC void FUN_020323BC(); -THUMB_FUNC void FUN_020323CC(); -THUMB_FUNC void FUN_020323DC(); -THUMB_FUNC void FUN_02032424(); -THUMB_FUNC void FUN_02032440(); -THUMB_FUNC void FUN_02032478(); -THUMB_FUNC void FUN_020324C8(); -THUMB_FUNC void FUN_020324F8(); -THUMB_FUNC void FUN_02032510(); -THUMB_FUNC void FUN_02032578(); -THUMB_FUNC void FUN_020325D0(); -THUMB_FUNC void FUN_02032628(); -THUMB_FUNC void FUN_02032640(); -THUMB_FUNC void FUN_0203266C(); -THUMB_FUNC void FUN_020326D0(); -THUMB_FUNC void FUN_02032738(); -THUMB_FUNC void FUN_0203279C(); -THUMB_FUNC void FUN_020327B4(); -THUMB_FUNC void FUN_020327B8(); -THUMB_FUNC void FUN_020327FC(); -THUMB_FUNC void FUN_02032850(); -THUMB_FUNC void FUN_02032888(); -THUMB_FUNC void FUN_020328C0(u8 param0); -THUMB_FUNC void FUN_020328E4(); -THUMB_FUNC void FUN_020328F4(u8 param0); -THUMB_FUNC void FUN_02032924(); -THUMB_FUNC void FUN_0203293C(); -THUMB_FUNC void FUN_02032978(); -THUMB_FUNC void FUN_020329F4(); -THUMB_FUNC void FUN_02032A8C(u8 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_02032AEC(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC u32 FUN_02032B68(); -THUMB_FUNC void FUN_02032B6C(u8 param0); -THUMB_FUNC void FUN_02032B84(); -THUMB_FUNC void FUN_02032B8C(); -THUMB_FUNC void FUN_02032BD0(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02032C0C(); -THUMB_FUNC u32 FUN_02032C28(); -THUMB_FUNC void FUN_02032C6C(u32 param0, u32 param1); -THUMB_FUNC void FUN_02032CF4(); -THUMB_FUNC void FUN_02032D44(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02032D80(); -THUMB_FUNC u8 FUN_02032D9C(); -THUMB_FUNC BOOL FUN_02032DAC(); -THUMB_FUNC void FUN_02032E00(); -THUMB_FUNC void FUN_02032E48(); -THUMB_FUNC void FUN_02032E8C(); -THUMB_FUNC void FUN_02032E90(); -THUMB_FUNC void FUN_02032EA8(); -THUMB_FUNC void FUN_02032EAC(); -THUMB_FUNC void FUN_02032EB0(); -THUMB_FUNC void FUN_02032F20(u32 param0); -THUMB_FUNC void FUN_02032F34(); -THUMB_FUNC void FUN_02032F98(); -THUMB_FUNC u32 FUN_02032FDC(u8 param0); -THUMB_FUNC u32 FUN_0203300C(); -THUMB_FUNC void FUN_02033060(); -THUMB_FUNC void FUN_020330A0(); -THUMB_FUNC void FUN_020330E4(); -THUMB_FUNC u8 FUN_02033128(); -THUMB_FUNC u32 FUN_02033138(); -THUMB_FUNC u32 FUN_02033154(); -THUMB_FUNC u32 FUN_02033180(); -THUMB_FUNC void FUN_0203318C(); -THUMB_FUNC void FUN_020331C4(); -THUMB_FUNC void FUN_020331E8(); -THUMB_FUNC void FUN_02033208(); -THUMB_FUNC void FUN_0203323C(); -THUMB_FUNC u32 FUN_02033250(); -THUMB_FUNC void FUN_02033288(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_020332DC(); -THUMB_FUNC void FUN_02033310(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02033364(); -THUMB_FUNC u32 FUN_02033398(); -THUMB_FUNC void FUN_020333F0(); -THUMB_FUNC void FUN_0203341C(); -THUMB_FUNC void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1); -THUMB_FUNC void *FUN_020334DC(); -THUMB_FUNC void FUN_020334E8(u8 param0, u8 param1); -THUMB_FUNC u8 FUN_02033510(); -THUMB_FUNC s32 FUN_02033534(); -THUMB_FUNC u8 FUN_0203354C(); -THUMB_FUNC void FUN_02033564(void *src); -THUMB_FUNC void FUN_02033578(void *dst); -THUMB_FUNC u32 FUN_02033590(); -THUMB_FUNC void FUN_020335A4(u8 param0); -THUMB_FUNC u8 FUN_020335B8(); -THUMB_FUNC void FUN_020335D0(s32 param0); -THUMB_FUNC void FUN_020335E0(); -THUMB_FUNC void FUN_020335F0(); -THUMB_FUNC void FUN_020335F4(); -THUMB_FUNC BOOL FUN_02033678(); -THUMB_FUNC u32 FUN_020336A0(u8 param0); +void FUN_02031734(struct SaveBlock2 *sav2, u8 param1); +void FUN_020317C0(); +BOOL FUN_02031810(); +void FUN_02031824(struct SaveBlock2 *sav2); +void FUN_02031860(); +void FUN_02031880(); +void FUN_020318A4(u8 param0); +void FUN_020318B4(); +BOOL FUN_020318C4(); +void FUN_02031914(); +void FUN_02031924(); +void FUN_02031934(); +void FUN_02031948(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); +void FUN_02031990(struct SaveBlock2 *sav2, u8 param1, u8 param2, u32 param3); +void FUN_020319D8(u8 param0); +void FUN_020319F4(); +void FUN_02031A08(); +void FUN_02031A24(); +BOOL FUN_02031A2C(); +void FUN_02031A7C(struct SaveBlock2 *sav2); +void FUN_02031AC8(u8 param0); +s32 FUN_02031AF4(); +BOOL FUN_02031B2C(); +void FUN_02031B50(); +u32 FUN_02031BD0(); +void FUN_02031BF4(); +void FUN_02031C10(); +void FUN_02031C2C(); +void FUN_02031C54(); +void FUN_02031C64(); +void FUN_02031C74(struct SaveBlock2 *sav2, u8 param1); +void FUN_02031CA8(struct SaveBlock2 *sav2, u8 param1); +void FUN_02031CDC(); +void FUN_02031D20(void (*param0)(), u32 param1); +void FUN_02031D30(); +void FUN_02031E08(); +void FUN_02031E8C(); +void FUN_02031EE0(); +void FUN_02031F60(); +void FUN_02031FC8(); +void FUN_02032028(); +void FUN_02032040(); +void FUN_02032058(); +void FUN_020320C4(); +void FUN_02032118(); +void FUN_02032138(); +void FUN_0203213C(); +void FUN_02032140(); +void FUN_02032178(); +void FUN_02032194(); +void FUN_020321B8(); +void FUN_020321D0(); +void FUN_02032218(); +void FUN_02032234(); +void FUN_0203224C(); +void FUN_02032290(); +void FUN_02032298(); +void FUN_020322C0(); +void FUN_020322F8(); +void FUN_0203230C(); +void FUN_0203234C(); +void FUN_02032364(); +void FUN_02032378(); +void FUN_020323B8(); +void FUN_020323BC(); +void FUN_020323CC(); +void FUN_020323DC(); +void FUN_02032424(); +void FUN_02032440(); +void FUN_02032478(); +void FUN_020324C8(); +void FUN_020324F8(); +void FUN_02032510(); +void FUN_02032578(); +void FUN_020325D0(); +void FUN_02032628(); +void FUN_02032640(); +void FUN_0203266C(); +void FUN_020326D0(); +void FUN_02032738(); +void FUN_0203279C(); +void FUN_020327B4(); +void FUN_020327B8(); +void FUN_020327FC(); +void FUN_02032850(); +void FUN_02032888(); +void FUN_020328C0(u8 param0); +void FUN_020328E4(); +void FUN_020328F4(u8 param0); +void FUN_02032924(); +void FUN_0203293C(); +void FUN_02032978(); +void FUN_020329F4(); +void FUN_02032A8C(u8 param0, u32 param1, u8 *param2); +void FUN_02032AEC(u32 param0, u32 param1, u8 *param2); +u32 FUN_02032B68(); +void FUN_02032B6C(u8 param0); +void FUN_02032B84(); +void FUN_02032B8C(); +void FUN_02032BD0(struct SaveBlock2 *sav2); +void FUN_02032C0C(); +u32 FUN_02032C28(); +void FUN_02032C6C(u32 param0, u32 param1); +void FUN_02032CF4(); +void FUN_02032D44(struct SaveBlock2 *sav2); +void FUN_02032D80(); +u8 FUN_02032D9C(); +BOOL FUN_02032DAC(); +void FUN_02032E00(); +void FUN_02032E48(); +void FUN_02032E8C(); +void FUN_02032E90(); +void FUN_02032EA8(); +void FUN_02032EAC(); +void FUN_02032EB0(); +void FUN_02032F20(u32 param0); +void FUN_02032F34(); +void FUN_02032F98(); +u32 FUN_02032FDC(u8 param0); +u32 FUN_0203300C(); +void FUN_02033060(); +void FUN_020330A0(); +void FUN_020330E4(); +u8 FUN_02033128(); +u32 FUN_02033138(); +u32 FUN_02033154(); +u32 FUN_02033180(); +void FUN_0203318C(); +void FUN_020331C4(); +void FUN_020331E8(); +void FUN_02033208(); +void FUN_0203323C(); +u32 FUN_02033250(); +void FUN_02033288(struct SaveBlock2 *sav2); +void FUN_020332DC(); +void FUN_02033310(struct SaveBlock2 *sav2); +void FUN_02033364(); +u32 FUN_02033398(); +void FUN_020333F0(); +void FUN_0203341C(); +void *FUN_0203346C(struct SaveBlock2 *sav2, u32 param1); +void *FUN_020334DC(); +void FUN_020334E8(u8 param0, u8 param1); +u8 FUN_02033510(); +s32 FUN_02033534(); +u8 FUN_0203354C(); +void FUN_02033564(void *src); +void FUN_02033578(void *dst); +u32 FUN_02033590(); +void FUN_020335A4(u8 param0); +u8 FUN_020335B8(); +void FUN_020335D0(s32 param0); +void FUN_020335E0(); +void FUN_020335F0(); +void FUN_020335F4(); +BOOL FUN_02033678(); +u32 FUN_020336A0(u8 param0); #endif // POKEDIAMOND_UNK_0202F150_H From 6120ebe7e78f500432708631891feb32bc974be2 Mon Sep 17 00:00:00 2001 From: tgsm Date: Mon, 3 May 2021 08:19:11 -0400 Subject: [PATCH 023/134] Decompile scrcmd_21 -> scrcmd_flags --- arm9/arm9.lsf | 2 +- arm9/asm/scrcmd_21.s | 465 ---------------------------------------- arm9/asm/unk_02038C78.s | 40 ++-- arm9/global.inc | 40 ++-- arm9/src/scrcmd_flags.c | 284 ++++++++++++++++++++++++ include/scrcmd.h | 22 ++ 6 files changed, 347 insertions(+), 506 deletions(-) delete mode 100644 arm9/asm/scrcmd_21.s create mode 100644 arm9/src/scrcmd_flags.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index dee43fd0f..1abf5a522 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -173,7 +173,7 @@ Static arm9 Object scrcmd_18.o Object scrcmd_19.o Object scrcmd_20.o - Object scrcmd_21.o + Object scrcmd_flags.o Object scrcmd_items.o Object scrcmd_23.o Object scrcmd_24.o diff --git a/arm9/asm/scrcmd_21.s b/arm9/asm/scrcmd_21.s deleted file mode 100644 index e1f03c4af..000000000 --- a/arm9/asm/scrcmd_21.s +++ /dev/null @@ -1,465 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020F4574 -UNK_020F4574: ; 0x020F4574 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - - .text - - thumb_func_start FUN_020453F4 -FUN_020453F4: ; 0x020453F4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_Pokedex_get - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl Pokedex_GetSinnohDexFlag - strh r0, [r5, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045424 -FUN_02045424: ; 0x02045424 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_Pokedex_get - bl Pokedex_SetSinnohDexFlag - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045438 -FUN_02045438: ; 0x02045438 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02034E30 - bl FUN_02034E20 - bl FUN_02055474 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045468 -FUN_02045468: ; 0x02045468 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02034E30 - bl FUN_02034E20 - mov r1, #0x1 - bl FUN_02055488 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02045484 -FUN_02045484: ; 0x02045484 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r6, r0, #0x0 - cmp r4, #0x8 - blo _020454B6 - bl ErrorHandling -_020454B6: - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r4, #0x0 - bl PlayerProfile_TestBadgeFlag - strh r0, [r6, #0x0] - mov r0, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_020454CC -FUN_020454CC: ; 0x020454CC - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - cmp r4, #0x8 - blo _020454EA - bl ErrorHandling -_020454EA: - add r5, #0x80 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r4, #0x0 - bl PlayerProfile_SetBadgeFlag - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045500 -FUN_02045500: ; 0x02045500 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECE0 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204552C -FUN_0204552C: ; 0x0204552C - push {r3-r7, lr} - add r6, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - mov r4, #0x0 - ldr r7, _02045578 ; =UNK_020F4574 - str r0, [sp, #0x0] - add r5, r4, #0x0 -_02045548: - add r0, r6, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - ldrb r1, [r7, r4] - bl PlayerProfile_TestBadgeFlag - cmp r0, #0x1 - bne _02045564 - add r0, r5, #0x1 - lsl r0, r0, #0x10 - lsr r5, r0, #0x10 -_02045564: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, #0x8 - blo _02045548 - ldr r0, [sp, #0x0] - strh r5, [r0, #0x0] - mov r0, #0x0 - pop {r3-r7, pc} - nop -_02045578: .word UNK_020F4574 - - thumb_func_start FUN_0204557C -FUN_0204557C: ; 0x0204557C - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECD4 - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045590 -FUN_02045590: ; 0x02045590 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED3C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020455BC -FUN_020455BC: ; 0x020455BC - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED1C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_020455D0 -FUN_020455D0: ; 0x020455D0 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED2C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_020455E4 -FUN_020455E4: ; 0x020455E4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED6C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045610 -FUN_02045610: ; 0x02045610 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED4C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045624 -FUN_02045624: ; 0x02045624 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED5C - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045638 -FUN_02045638: ; 0x02045638 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ED0C - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045664 -FUN_02045664: ; 0x02045664 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - bl FUN_0205ECFC - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02045678 -FUN_02045678: ; 0x02045678 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _020456A6 - cmp r1, #0x1 - beq _0204569E - cmp r1, #0x2 - beq _020456AE - b _020456CC -_0204569E: - mov r1, #0x1 - bl FUN_0205F264 - b _020456D0 -_020456A6: - mov r1, #0x0 - bl FUN_0205F264 - b _020456D0 -_020456AE: - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_0205F264 - strh r0, [r5, #0x0] - b _020456D0 -_020456CC: - bl ErrorHandling -_020456D0: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020456D4 -FUN_020456D4: ; 0x020456D4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _02045700 - cmp r1, #0x1 - beq _020456FA - cmp r1, #0x2 - beq _02045706 - b _02045722 -_020456FA: - bl FUN_0205F274 - b _02045726 -_02045700: - bl FUN_0205F284 - b _02045726 -_02045706: - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0205F294 - strh r0, [r5, #0x0] - b _02045726 -_02045722: - bl ErrorHandling -_02045726: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0204572C -FUN_0204572C: ; 0x0204572C - push {r3-r5, lr} - add r5, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_Flags_get - ldr r2, [r5, #0x8] - add r4, r0, #0x0 - add r1, r2, #0x1 - str r1, [r5, #0x8] - ldrb r1, [r2, #0x0] - cmp r1, #0x0 - beq _02045758 - cmp r1, #0x1 - beq _02045752 - cmp r1, #0x2 - beq _0204575E - b _0204577A -_02045752: - bl FUN_0205F2A4 - b _0204577E -_02045758: - bl FUN_0205F2B4 - b _0204577E -_0204575E: - add r0, r5, #0x0 - bl ScriptReadHalfword - add r5, #0x80 - add r1, r0, #0x0 - ldr r0, [r5, #0x0] - bl GetVarPointer - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0205F2C4 - strh r0, [r5, #0x0] - b _0204577E -_0204577A: - bl ErrorHandling -_0204577E: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 08416fc71..98ec9e957 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -492,23 +492,23 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203D738 .word FUN_0203D774 .word FUN_0203D834 - .word FUN_020453F4 - .word FUN_02045424 - .word FUN_02045438 - .word FUN_02045468 - .word FUN_02045484 - .word FUN_020454CC - .word FUN_0204552C - .word FUN_02045500 - .word FUN_0204557C - .word FUN_02045590 - .word FUN_020455BC - .word FUN_020455D0 - .word FUN_020455E4 - .word FUN_02045610 - .word FUN_02045624 - .word FUN_02045638 - .word FUN_02045664 + .word ScrCmd_HasSinnohDex + .word ScrCmd_GiveSinnohDex + .word ScrCmd_Unk0159 + .word ScrCmd_Unk015A + .word ScrCmd_HasBadge + .word ScrCmd_GiveBadge + .word ScrCmd_GetTotalEarnedBadges + .word ScrCmd_Unk015E + .word ScrCmd_Unk015F + .word ScrCmd_Unk0160 + .word ScrCmd_Unk0161 + .word ScrCmd_Unk0162 + .word ScrCmd_Unk0163 + .word ScrCmd_Unk0164 + .word ScrCmd_Unk0165 + .word ScrCmd_Unk0166 + .word ScrCmd_Unk0167 .word FUN_0203DC00 .word FUN_0203DC58 .word FUN_0203DC70 @@ -612,9 +612,9 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E138 .word FUN_0203E168 .word FUN_0203E254 - .word FUN_02045678 - .word FUN_020456D4 - .word FUN_0204572C + .word ScrCmd_Unk01CF + .word ScrCmd_Unk01D0 + .word ScrCmd_Unk01D1 .word FUN_0203E258 .word FUN_0203E29C .word FUN_0203E2F8 diff --git a/arm9/global.inc b/arm9/global.inc index a944a1b17..8768830d1 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3358,26 +3358,26 @@ .extern ScrCmd_Unk01F2 .extern ScrCmd_Unk01F3 .extern ScrCmd_Unk02A6 -.extern FUN_020453F4 -.extern FUN_02045424 -.extern FUN_02045438 -.extern FUN_02045468 -.extern FUN_02045484 -.extern FUN_020454CC -.extern FUN_02045500 -.extern FUN_0204552C -.extern FUN_0204557C -.extern FUN_02045590 -.extern FUN_020455BC -.extern FUN_020455D0 -.extern FUN_020455E4 -.extern FUN_02045610 -.extern FUN_02045624 -.extern FUN_02045638 -.extern FUN_02045664 -.extern FUN_02045678 -.extern FUN_020456D4 -.extern FUN_0204572C +.extern ScrCmd_HasSinnohDex +.extern ScrCmd_GiveSinnohDex +.extern ScrCmd_Unk0159 +.extern ScrCmd_Unk015A +.extern ScrCmd_HasBadge +.extern ScrCmd_GiveBadge +.extern ScrCmd_Unk015E +.extern ScrCmd_GetTotalEarnedBadges +.extern ScrCmd_Unk015F +.extern ScrCmd_Unk0160 +.extern ScrCmd_Unk0161 +.extern ScrCmd_Unk0162 +.extern ScrCmd_Unk0163 +.extern ScrCmd_Unk0164 +.extern ScrCmd_Unk0165 +.extern ScrCmd_Unk0166 +.extern ScrCmd_Unk0167 +.extern ScrCmd_Unk01CF +.extern ScrCmd_Unk01D0 +.extern ScrCmd_Unk01D1 .extern ScrCmd_GiveItem .extern ScrCmd_TakeItem .extern ScrCmd_HasSpaceForItem diff --git a/arm9/src/scrcmd_flags.c b/arm9/src/scrcmd_flags.c new file mode 100644 index 000000000..c0f6a519d --- /dev/null +++ b/arm9/src/scrcmd_flags.c @@ -0,0 +1,284 @@ +#include "scrcmd.h" +#include "event_data.h" +#include "pokedex.h" + +extern void* FUN_02034E20(void*); +extern void* FUN_02034E30(void*); +extern BOOL FUN_02055474(void*); +extern void FUN_02055488(void*, u32); +extern void FUN_0205ECD4(struct ScriptState* state); +extern BOOL FUN_0205ECE0(struct ScriptState* state); +extern void FUN_0205ECFC(struct ScriptState* state); +extern BOOL FUN_0205ED0C(struct ScriptState* state); +extern void FUN_0205ED1C(struct ScriptState* state); +extern void FUN_0205ED2C(struct ScriptState* state); +extern BOOL FUN_0205ED3C(struct ScriptState* state); +extern void FUN_0205ED4C(struct ScriptState* state); +extern void FUN_0205ED5C(struct ScriptState* state); +extern BOOL FUN_0205ED6C(struct ScriptState* state); +extern BOOL FUN_0205F264(struct ScriptState* state, u32); +extern void FUN_0205F274(struct ScriptState* state); +extern void FUN_0205F284(struct ScriptState* state); +extern BOOL FUN_0205F294(struct ScriptState* state); +extern void FUN_0205F2A4(struct ScriptState* state); +extern void FUN_0205F2B4(struct ScriptState* state); +extern BOOL FUN_0205F2C4(struct ScriptState* state); + +const u8 UNK_020F457F[8] = { + 0, 1, 2, 3, 4, 5, 6, 7, +}; + +THUMB_FUNC BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)Pokedex_GetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + + Pokedex_SetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + *ret_ptr = (u16)FUN_02055474(unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015A(struct ScriptContext* ctx) +{ + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + FUN_02055488(unk, 1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)PlayerProfile_TestBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + PlayerProfile_SetBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015E(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ECE0(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 i; + u16 badges; + for (i = 0, badges = 0; i < 8; i++) + { + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + BOOL has_badge = PlayerProfile_TestBadgeFlag(player, UNK_020F457F[i]); + if (has_badge == TRUE) + { + badges++; + } + } + + *ret_ptr = badges; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015F(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECD4(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0160(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED3C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0161(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED1C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0162(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED2C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0163(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED6C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0164(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED4C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0165(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED5C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED0C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECFC(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F264(state, 1); + break; + case 0: + FUN_0205F264(state, 0); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F264(state, 2); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F274(state); + break; + case 0: + FUN_0205F284(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F294(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F2A4(state); + break; + case 0: + FUN_0205F2B4(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F2C4(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 120a0c961..f895323f0 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -220,6 +220,28 @@ BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); //scrcmd_20.c BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); +//scrcmd_flags.c +BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx); +BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0159(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015A(struct ScriptContext* ctx); +BOOL ScrCmd_HasBadge(struct ScriptContext* ctx); +BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015E(struct ScriptContext* ctx); +BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx); +BOOL ScrCmd_Unk015F(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0160(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0161(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0162(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0163(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0164(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0165(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0166(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0167(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx); + //scrcmd_items.c BOOL ScrCmd_GiveItem(struct ScriptContext* ctx); BOOL ScrCmd_TakeItem(struct ScriptContext* ctx); From 24ac84f8e4b4afafc8c0ed97d80cbdb2ee156c80 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 6 May 2021 17:15:19 +0100 Subject: [PATCH 024/134] attempt to fix build --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4e0f34ea0..c0ed87df1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" - sudo apt -y --allow-downgrades install --install-recommends winehq-stable + sudo apt -y --allow-downgrades install --install-recommends wine-stable winehq-stable - name: Checkout Repo uses: actions/checkout@v2 - name: Setup Repo @@ -43,7 +43,7 @@ jobs: - name: Build Diamond run: make diamond - name: Build Pearl - run: make pearl + run: make pearl - name: Webhook run: | sudo chmod 755 $GITHUB_WORKSPACE/.github/calcrom/webhook.sh From 43bf89ddd18037b763d5cde3492278ebc65adaa3 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 6 May 2021 17:19:21 +0100 Subject: [PATCH 025/134] attempt #2 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c0ed87df1..cb86b6d0d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" - sudo apt -y --allow-downgrades install --install-recommends wine-stable winehq-stable + sudo apt -y --allow-downgrades install --install-recommends wine-stable-i386 wine-stable winehq-stable - name: Checkout Repo uses: actions/checkout@v2 - name: Setup Repo From 0e1c0b7e685d67f4ee5133cf493500b99c846ebf Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 6 May 2021 17:22:48 +0100 Subject: [PATCH 026/134] attempt #3 --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cb86b6d0d..9e90e1ae3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,6 +24,7 @@ jobs: wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" + sudo apt -y --allow-downgrades install --install-recommends libfaudio0:i386 libglib2.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libodbc1:i386 sudo apt -y --allow-downgrades install --install-recommends wine-stable-i386 wine-stable winehq-stable - name: Checkout Repo uses: actions/checkout@v2 From ce01c38a0b50b38c1a9629c5bcd35acd099a7f30 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 6 May 2021 17:32:00 +0100 Subject: [PATCH 027/134] attempt #4 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9e90e1ae3..551c0057b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" - sudo apt -y --allow-downgrades install --install-recommends libfaudio0:i386 libglib2.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libodbc1:i386 + sudo apt -y --allow-downgrades install --install-recommends libmount1:i386 libpcre3:i386 libselinux1:i386 libfaudio0:i386 libglib2.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libodbc1:i386 sudo apt -y --allow-downgrades install --install-recommends wine-stable-i386 wine-stable winehq-stable - name: Checkout Repo uses: actions/checkout@v2 From 9b1ff9741320cc4013ade1e26f3bd3436948c473 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 6 May 2021 17:50:39 +0100 Subject: [PATCH 028/134] try something a bit different --- .github/workflows/build.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 551c0057b..74303ad60 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ env: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - name: Update and Install Software @@ -24,8 +24,7 @@ jobs: wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main" - sudo apt -y --allow-downgrades install --install-recommends libmount1:i386 libpcre3:i386 libselinux1:i386 libfaudio0:i386 libglib2.0-0:i386 libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libodbc1:i386 - sudo apt -y --allow-downgrades install --install-recommends wine-stable-i386 wine-stable winehq-stable + sudo apt -y --allow-downgrades install --install-recommends winehq-stable - name: Checkout Repo uses: actions/checkout@v2 - name: Setup Repo From fead56db333c9eb3024ad4483c26a11a66ffe9f1 Mon Sep 17 00:00:00 2001 From: tgsm Date: Wed, 5 May 2021 14:10:45 -0400 Subject: [PATCH 029/134] Decompile unk_0208890C --- arm9/asm/unk_0208890C.s | 73 ----------------------------------------- arm9/src/unk_0208890C.c | 53 ++++++++++++++++++++++++++++++ include/script.h | 4 ++- include/unk_0208890C.h | 25 ++++++++++++++ 4 files changed, 81 insertions(+), 74 deletions(-) delete mode 100644 arm9/asm/unk_0208890C.s create mode 100644 arm9/src/unk_0208890C.c create mode 100644 include/unk_0208890C.h diff --git a/arm9/asm/unk_0208890C.s b/arm9/asm/unk_0208890C.s deleted file mode 100644 index d27130c90..000000000 --- a/arm9/asm/unk_0208890C.s +++ /dev/null @@ -1,73 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020FD6E4 -UNK_020FD6E4: ; 0x020FD6E4 - .word FUN_020889B0, FUN_02088A00, FUN_02088A78, 0xFFFFFFFF - - .text - - thumb_func_start FUN_0208890C -FUN_0208890C: ; 0x0208890C - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r2, #0x0 - mov r1, #0x20 - add r7, r3, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - mov r1, #0x0 - mov r2, #0x20 - bl MI_CpuFill8 - str r5, [r4, #0xc] - add r0, r5, #0x0 - bl FUN_02028048 - str r0, [r4, #0x8] - add r0, r5, #0x0 - bl Sav2_PlayerData_GetProfileAddr - str r0, [r4, #0x10] - add r0, r5, #0x0 - bl Sav2_Bag_get - str r0, [r4, #0x14] - add r0, r5, #0x0 - bl Sav2_PlayerData_GetOptionsAddr - str r0, [r4, #0x18] - str r7, [r4, #0x1c] - str r6, [r4, #0x4] - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02088950 -FUN_02088950: ; 0x02088950 - ldr r3, _02088958 ; =FUN_020373D4 - add r2, r1, #0x0 - ldr r1, _0208895C ; =UNK_020FD6E4 - bx r3 - .balign 4 -_02088958: .word FUN_020373D4 -_0208895C: .word UNK_020FD6E4 - - thumb_func_start FUN_02088960 -FUN_02088960: ; 0x02088960 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl ScriptEnvironment_GetSav2Ptr - add r3, r5, #0x0 - add r3, #0x98 - add r1, r0, #0x0 - ldr r3, [r3, #0x0] - add r0, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0208890C - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02088950 - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/src/unk_0208890C.c b/arm9/src/unk_0208890C.c new file mode 100644 index 000000000..0bc8803fd --- /dev/null +++ b/arm9/src/unk_0208890C.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "bag.h" +#include "heap.h" +#include "main.h" +#include "MI_memory.h" +#include "player_data.h" +#include "script.h" +#include "unk_0208890C.h" + +extern struct SaveBlock2* ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80*); +extern void* FUN_02028048(struct SaveBlock2* sav2); +extern void FUN_020373D4(struct UnkSavStruct80*, struct Unk21DBE18*, void*); +extern BOOL FUN_020889B0(struct UnkStruct_02006234*, u32*); +extern BOOL FUN_02088A00(struct UnkStruct_02006234*, u32*); +extern BOOL FUN_02088A78(struct UnkStruct_02006234*, u32*); + +const struct Unk21DBE18 UNK_020FD6E4 = { + FUN_020889B0, + FUN_02088A00, + FUN_02088A78, + 0xFFFFFFFF, +}; + +THUMB_FUNC struct UnkStruct_0208890C* FUN_0208890C(void* a0, struct SaveBlock2* sav2, u32 heap_id, void* a3) +{ + struct UnkStruct_0208890C* ret = AllocFromHeap(heap_id, sizeof(struct UnkStruct_0208890C)); + MI_CpuFill8(ret, 0, sizeof(struct UnkStruct_0208890C)); + + ret->sav2 = sav2; + ret->unk8 = FUN_02028048(sav2); + ret->player = Sav2_PlayerData_GetProfileAddr(sav2); + ret->bag = Sav2_Bag_get(sav2); + ret->options = Sav2_PlayerData_GetOptionsAddr(sav2); + ret->unk1C = a3; + ret->unk4 = a0; + + return ret; +} + +THUMB_FUNC void FUN_02088950(struct UnkSavStruct80* unk, struct UnkStruct_0208890C* unk2) +{ + FUN_020373D4(unk, (struct Unk21DBE18*)&UNK_020FD6E4, unk2); +} + +THUMB_FUNC struct UnkStruct_0208890C* FUN_02088960(struct UnkSavStruct80* unk, void* a1, u32 heap_id) +{ + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(unk); + struct UnkStruct_0208890C* ret = FUN_0208890C(a1, sav2, heap_id, unk->unk98); + + FUN_02088950(unk, ret); + + return ret; +} diff --git a/include/script.h b/include/script.h index bb2375234..cb41889d2 100644 --- a/include/script.h +++ b/include/script.h @@ -37,7 +37,9 @@ struct UnkSavStruct80 u32 unk60; u8 padding5[0x14]; u32 unk78; - u8 padding6[0x2C]; + u8 padding6[0x1C]; + void *unk98; + u8 padding7[0xC]; struct UnkStruct_02046444 * unkA8; }; diff --git a/include/unk_0208890C.h b/include/unk_0208890C.h new file mode 100644 index 000000000..9ec040a1d --- /dev/null +++ b/include/unk_0208890C.h @@ -0,0 +1,25 @@ +#ifndef POKEDIAMOND_UNK_0208890C_H +#define POKEDIAMOND_UNK_0208890C_H + +struct Bag; +struct Options; +struct PlayerData; +struct SaveBlock2; + +struct UnkStruct_0208890C +{ + u8 padding[0x4]; + void* unk4; + void* unk8; + struct SaveBlock2* sav2; + struct PlayerData* player; + struct Bag* bag; + struct Options* options; + void* unk1C; +}; + +struct UnkStruct_0208890C* FUN_0208890C(void*, struct SaveBlock2* sav2, u32 heap_id, void*); +void FUN_02088950(struct UnkSavStruct80*, struct UnkStruct_0208890C*); +struct UnkStruct_0208890C* FUN_02088960(struct UnkSavStruct80*, void*, u32 heap_id); + +#endif From 5cdb95f4e0fb866fdbf219ab112d69be21c59a2e Mon Sep 17 00:00:00 2001 From: tgsm Date: Fri, 7 May 2021 13:32:25 -0400 Subject: [PATCH 030/134] Decompile scrcmd_8 --- arm9/asm/scrcmd_8.s | 234 ---------------------------------------- arm9/asm/unk_02038C78.s | 2 +- arm9/global.inc | 2 +- arm9/src/scrcmd_8.c | 87 +++++++++++++++ arm9/src/unk_020286F8.c | 9 +- include/scrcmd.h | 3 + include/unk_020286F8.h | 4 +- 7 files changed, 98 insertions(+), 243 deletions(-) delete mode 100644 arm9/asm/scrcmd_8.s create mode 100644 arm9/src/scrcmd_8.c diff --git a/arm9/asm/scrcmd_8.s b/arm9/asm/scrcmd_8.s deleted file mode 100644 index fbb5b223e..000000000 --- a/arm9/asm/scrcmd_8.s +++ /dev/null @@ -1,234 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02041C38 -FUN_02041C38: ; 0x02041C38 - push {r4-r7, lr} - sub sp, #0xc - add r4, r0, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0xf - bl FUN_02039438 - add r6, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_0202881C - add r5, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r7, [r0, #0xc] - add r0, r4, #0x0 - bl ScriptReadHalfword - cmp r0, #0x6 - bls _02041C6C - b _02041E38 -_02041C6C: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02041C78: ; jump table (using 16-bit offset) - .short _02041C86 - _02041C78 - 2; case 0 - .short _02041CBC - _02041C78 - 2; case 1 - .short _02041CF2 - _02041C78 - 2; case 2 - .short _02041D28 - _02041C78 - 2; case 3 - .short _02041D5E - _02041C78 - 2; case 4 - .short _02041D94 - _02041C78 - 2; case 5 - .short _02041DCE - _02041C78 - 2; case 6 -_02041C86: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02028828 - strh r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041CBC: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02028840 - strh r0, [r4, #0x0] - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041CF2: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r3, r0, #0x0 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r2, r5, #0x0 - bl BufferEasyChatWord - b _02041E38 -_02041D28: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r3, r0, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - ldr r0, [r6, #0x0] - add r1, r7, #0x0 - add r2, r5, #0x0 - bl BufferEasyChatWord - b _02041E38 -_02041D5E: - mov r1, #0x0 - add r0, r5, #0x0 - add r2, r1, #0x0 - bl FUN_020287A8 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - mov r2, #0x0 - str r2, [sp, #0x0] - str r5, [sp, #0x4] - str r0, [sp, #0x8] - ldr r0, [r4, #0x74] - mov r1, #0x5 - mov r3, #0x7 - bl FUN_020385CC - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_02041D94: - add r0, r4, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r7, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_02028828 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r7, #0x0 - mov r2, #0x1 - bl FUN_02028700 - cmp r6, #0x0 - beq _02041DC8 - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_020612F8 -_02041DC8: - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_02041DCE: - mov r0, #0x40 - mov r1, #0x20 - bl String_ctor - add r6, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r6, #0x0 - add r7, r0, #0x0 - bl PlayerName_FlatToString - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x1 - add r3, r6, #0x0 - bl FUN_020287C0 - add r0, r7, #0x0 - bl PlayerProfile_GetTrainerGender - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_020287EC - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x2 - bl FUN_02028810 - bl MTRandom - add r2, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x0 - bl FUN_02028788 - add r0, r6, #0x0 - bl String_dtor - add r0, r5, #0x0 - mov r1, #0x0 - mov r2, #0x1 - bl FUN_02028700 - add r4, #0x80 - ldr r0, [r4, #0x0] - bl FUN_020612EC -_02041E38: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 98ec9e957..a43768aa0 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -690,7 +690,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E81C .word FUN_0203E848 .word FUN_0203E858 - .word FUN_02041C38 + .word ScrCmd_Unk021D .word FUN_02045E1C .word FUN_02045E20 .word FUN_02045EE0 diff --git a/arm9/global.inc b/arm9/global.inc index 8768830d1..05ba01a71 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3238,7 +3238,7 @@ .extern FUN_02041B9C .extern FUN_02041BC4 .extern FUN_02041BF0 -.extern FUN_02041C38 +.extern ScrCmd_Unk021D .extern FUN_02041E40 .extern FUN_02041FDC .extern FUN_02042000 diff --git a/arm9/src/scrcmd_8.c b/arm9/src/scrcmd_8.c new file mode 100644 index 000000000..ba35b3020 --- /dev/null +++ b/arm9/src/scrcmd_8.c @@ -0,0 +1,87 @@ +#include "scrcmd.h" +#include "math_util.h" +#include "unk_020286F8.h" + +extern void* FUN_02039438(struct UnkSavStruct80*, u8 idx); + +extern void FUN_020385CC(struct UnkStruct_0204639C*, u32, u32, u32, u32, u16*, u16* ret_ptr); +extern BOOL FUN_020612EC(struct UnkSavStruct80*); +extern BOOL FUN_020612F8(struct UnkSavStruct80*); + +THUMB_FUNC BOOL ScrCmd_Unk021D(struct ScriptContext* ctx) +{ + struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); + struct UnkSaveStruct_020286F8* unk_sav_ptr = FUN_0202881C(ctx->unk80->saveBlock2); + struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; + + u16 unk = ScriptReadHalfword(ctx); + switch (unk) + { + case 0: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)FUN_02028828(unk_sav_ptr, unk_var); + return FALSE; + } + case 1: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)FUN_02028840(unk_sav_ptr, unk_var); + return FALSE; + } + case 2: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferEasyChatWord(*mgr, sav2, unk_var, idx, 0); + break; + } + case 3: { + u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + BufferEasyChatWord(*mgr, sav2, unk_var, idx, 1); + break; + } + case 4: { + u16* unk_str_ptr = FUN_020287A8(unk_sav_ptr, 0, 0); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_020385CC(ctx->unk74, 5, 0, 7, 0, unk_str_ptr, ret_ptr); + return TRUE; + } + case 5: { + u16 src_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + BOOL unk_bool = FUN_02028828(unk_sav_ptr, 1); + + FUN_02028700(unk_sav_ptr, src_idx, 1); + if (unk_bool != FALSE) + { + FUN_020612F8(ctx->unk80); + } + + return FALSE; + } + case 6: { + struct String* player_name = String_ctor(64, 32); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + PlayerName_FlatToString(player, player_name); + FUN_020287C0(unk_sav_ptr, 0, 1, player_name); + FUN_020287EC(unk_sav_ptr, 0, PlayerProfile_GetTrainerGender(player)); + FUN_02028810(unk_sav_ptr, 0, 2); + FUN_02028788(unk_sav_ptr, 0, MTRandom()); + + String_dtor(player_name); + + FUN_02028700(unk_sav_ptr, 0, 1); + FUN_020612EC(ctx->unk80); + + break; + } + } + + return FALSE; +} diff --git a/arm9/src/unk_020286F8.c b/arm9/src/unk_020286F8.c index f54d1e2eb..a23a94ff6 100644 --- a/arm9/src/unk_020286F8.c +++ b/arm9/src/unk_020286F8.c @@ -75,9 +75,9 @@ void FUN_020287C0(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j, struct Stri CopyStringToU16Array(k, ptr[i].unk_10, 8); } -void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j) +void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j) { - ptr[i].unk_20 = j; + ptr[i].unk_20 = (u8)j; } u8 FUN_020287F8(struct UnkSaveStruct_020286F8 * ptr, u32 i) @@ -90,10 +90,9 @@ u8 FUN_02028804(struct UnkSaveStruct_020286F8 * ptr, u32 i) return ptr[i].unk_21; } - -void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j) +void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j) { - ptr[i].unk_21 = j; + ptr[i].unk_21 = (u8)j; } struct UnkSaveStruct_020286F8 * FUN_0202881C(struct SaveBlock2 * sav2) diff --git a/include/scrcmd.h b/include/scrcmd.h index f895323f0..86bb4f519 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -150,6 +150,9 @@ BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx); BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx); BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx); +//scrcmd_8.c +BOOL ScrCmd_Unk021D(struct ScriptContext* ctx); + //scrcmd_11.c BOOL ScrCmd_Unk017D(struct ScriptContext* ctx); BOOL ScrCmd_Unk017E(struct ScriptContext* ctx); diff --git a/include/unk_020286F8.h b/include/unk_020286F8.h index 3d81753a2..99ecd9823 100644 --- a/include/unk_020286F8.h +++ b/include/unk_020286F8.h @@ -21,10 +21,10 @@ void FUN_02028788(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); u32 FUN_020287A4(struct UnkSaveStruct_020286F8 * ptr); u16 * FUN_020287A8(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); void FUN_020287C0(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j, struct String * k); -void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j); +void FUN_020287EC(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); u8 FUN_020287F8(struct UnkSaveStruct_020286F8 * ptr, u32 i); u8 FUN_02028804(struct UnkSaveStruct_020286F8 * ptr, u32 i); -void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u8 j); +void FUN_02028810(struct UnkSaveStruct_020286F8 * ptr, u32 i, u32 j); struct UnkSaveStruct_020286F8 * FUN_0202881C(struct SaveBlock2 * sav2); BOOL FUN_02028828(struct UnkSaveStruct_020286F8 * ptr, u32 i); BOOL FUN_02028840(struct UnkSaveStruct_020286F8 * ptr, int i); From 0d99c3cbc17514149081de794f2d5ec55e7ab88b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 8 May 2021 12:04:27 +0200 Subject: [PATCH 031/134] decompile unk_0202E29C.s --- arm9/asm/unk_0202E29C.s | 1970 --------------------------------------- arm9/src/unk_0202E29C.c | 1110 ++++++++++++++++++++++ arm9/src/unk_0202F150.c | 8 +- arm9/src/unk_02031734.c | 2 +- include/unk_0202E29C.h | 137 +++ include/unk_0202F150.h | 6 +- 6 files changed, 1255 insertions(+), 1978 deletions(-) delete mode 100644 arm9/asm/unk_0202E29C.s create mode 100644 arm9/src/unk_0202E29C.c create mode 100644 include/unk_0202E29C.h diff --git a/arm9/asm/unk_0202E29C.s b/arm9/asm/unk_0202E29C.s deleted file mode 100644 index 4bb83bc8a..000000000 --- a/arm9/asm/unk_0202E29C.s +++ /dev/null @@ -1,1970 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - - .global UNK_020EEC40 -UNK_020EEC40: ; 0x020EEC40 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - - .section .bss - - .global UNK_021C59E8 -UNK_021C59E8: ; 0x021C59E8 - .space 0xc - - .text - - thumb_func_start FUN_0202E29C -FUN_0202E29C: ; 0x0202E29C - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0202E334 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0202E332 - mov r1, #0xdb - mov r0, #0xf - lsl r1, r1, #0x4 - bl AllocFromHeap - ldr r1, _0202E334 ; =UNK_021C59E8 - mov r2, #0xdb - str r0, [r1, #0x8] - mov r1, #0x0 - lsl r2, r2, #0x4 - bl MI_CpuFill8 - bl FUN_0202CEEC - add r1, r0, #0x0 - mov r0, #0xf - bl AllocFromHeap - ldr r1, _0202E334 ; =UNK_021C59E8 - ldr r2, [r1, #0x8] - ldr r1, _0202E338 ; =0x00000CA4 - str r0, [r2, r1] - bl FUN_0202CEEC - add r2, r0, #0x0 - ldr r0, _0202E334 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E338 ; =0x00000CA4 - ldr r0, [r1, r0] - mov r1, #0x0 - bl MI_CpuFill8 - bl FUN_02023AC4 - add r1, r0, #0x0 - mov r0, #0xf - bl AllocFromHeap - ldr r1, _0202E334 ; =UNK_021C59E8 - ldr r2, [r1, #0x8] - ldr r1, _0202E33C ; =0x00000CBC - str r0, [r2, r1] - bl FUN_02023AC4 - add r2, r0, #0x0 - ldr r0, _0202E334 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E33C ; =0x00000CBC - ldr r0, [r1, r0] - mov r1, #0x0 - bl MI_CpuFill8 - ldr r2, _0202E334 ; =UNK_021C59E8 - mov r1, #0x33 - ldr r3, _0202E340 ; =0x00000333 - ldr r0, [r2, #0x8] - lsl r1, r1, #0x6 - str r3, [r0, r1] - add r0, r1, #0x0 - ldr r3, [r2, #0x8] - sub r0, #0x8 - str r4, [r3, r0] - ldr r0, [r2, #0x8] - sub r1, #0x18 - add r0, r0, r1 - bl MailMsg_init - bl FUN_0202E500 -_0202E332: - pop {r4, pc} - .balign 4 -_0202E334: .word UNK_021C59E8 -_0202E338: .word 0x00000CA4 -_0202E33C: .word 0x00000CBC -_0202E340: .word 0x00000333 - - thumb_func_start FUN_0202E344 -FUN_0202E344: ; 0x0202E344 - ldr r0, _0202E354 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202E350 - mov r0, #0x1 - bx lr -_0202E350: - mov r0, #0x0 - bx lr - .balign 4 -_0202E354: .word UNK_021C59E8 - - thumb_func_start FUN_0202E358 -FUN_0202E358: ; 0x0202E358 - push {r4-r5} - mov r5, #0x0 - cmp r2, #0x0 - ble _0202E378 -_0202E360: - ldrb r4, [r0, #0x0] - ldrb r3, [r1, #0x0] - cmp r4, r3 - beq _0202E36E - mov r0, #0x0 - pop {r4-r5} - bx lr -_0202E36E: - add r5, r5, #0x1 - add r0, r0, #0x1 - add r1, r1, #0x1 - cmp r5, r2 - blt _0202E360 -_0202E378: - mov r0, #0x1 - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_0202E380 -FUN_0202E380: ; 0x0202E380 - push {r3-r7, lr} - add r7, r0, #0x0 - bl FUN_02033534 - add r5, r0, #0x0 - bl FUN_0203354C - add r4, r7, #0x0 - add r6, r0, #0x0 - add r4, #0x50 - cmp r5, #0xe - beq _0202E3C2 - ldrb r0, [r4, #0x4] - bl FUN_0202D8B0 - cmp r0, #0x0 - beq _0202E3AC - add r0, r5, #0x0 - bl FUN_0202D8B0 - cmp r0, #0x0 - bne _0202E3C2 -_0202E3AC: - add r0, r4, #0x0 - add r0, #0x54 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - beq _0202E3BC - ldrb r0, [r4, #0x4] - cmp r0, #0xa - beq _0202E460 -_0202E3BC: - ldrb r0, [r4, #0x4] - cmp r0, r5 - bne _0202E460 -_0202E3C2: - cmp r5, #0xe - beq _0202E3CC - ldrb r0, [r4, #0x5] - cmp r0, r6 - bne _0202E460 -_0202E3CC: - mov r6, #0x0 - add r4, r6, #0x0 - add r5, r6, #0x0 -_0202E3D2: - ldr r0, _0202E464 ; =UNK_021C59E8 - ldr r1, _0202E468 ; =0x00000C84 - ldr r0, [r0, #0x8] - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E412 - add r0, #0x58 - add r0, r0, r5 - add r1, r7, #0x4 - mov r2, #0x6 - bl FUN_0202E358 - cmp r0, #0x0 - beq _0202E412 - ldr r2, _0202E464 ; =UNK_021C59E8 - lsl r1, r6, #0x1 - ldr r3, [r2, #0x8] - mov r0, #0x96 - add r3, r3, r1 - ldr r1, _0202E468 ; =0x00000C84 - strh r0, [r3, r1] - ldr r3, [r2, #0x8] - mov r2, #0xc0 - add r1, r6, #0x0 - add r3, #0x54 - mul r1, r2 - add r0, r7, #0x0 - add r1, r3, r1 - bl MI_CpuCopy8 - pop {r3-r7, pc} -_0202E412: - add r6, r6, #0x1 - add r4, r4, #0x2 - add r5, #0xc0 - cmp r6, #0x10 - blt _0202E3D2 - ldr r0, _0202E464 ; =UNK_021C59E8 - ldr r2, _0202E468 ; =0x00000C84 - ldr r0, [r0, #0x8] - mov r1, #0x0 - add r4, r0, #0x0 -_0202E426: - ldrh r3, [r4, r2] - cmp r3, #0x0 - beq _0202E434 - add r1, r1, #0x1 - add r4, r4, #0x2 - cmp r1, #0x10 - blt _0202E426 -_0202E434: - cmp r1, #0x10 - bge _0202E460 - lsl r2, r1, #0x1 - add r2, r0, r2 - ldr r0, _0202E468 ; =0x00000C84 - mov r3, #0x96 - strh r3, [r2, r0] - ldr r2, _0202E464 ; =UNK_021C59E8 - add r3, r1, #0x0 - ldr r4, [r2, #0x8] - mov r2, #0xc0 - add r4, #0x54 - mul r3, r2 - add r0, r7, #0x0 - add r1, r4, r3 - bl MI_CpuCopy8 - ldr r0, _0202E464 ; =UNK_021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E46C ; =0x00000CB4 - strb r2, [r1, r0] -_0202E460: - pop {r3-r7, pc} - nop -_0202E464: .word UNK_021C59E8 -_0202E468: .word 0x00000C84 -_0202E46C: .word 0x00000CB4 - - thumb_func_start FUN_0202E470 -FUN_0202E470: ; 0x0202E470 - push {r3, lr} - cmp r1, #0x0 - beq _0202E47A - bl OS_Terminate -_0202E47A: - ldr r0, _0202E484 ; =UNK_021C59E8 - mov r1, #0x2 - str r1, [r0, #0x4] - pop {r3, pc} - nop -_0202E484: .word UNK_021C59E8 - - thumb_func_start FUN_0202E488 -FUN_0202E488: ; 0x0202E488 - ldr r0, _0202E494 ; =UNK_021C59E8 - mov r1, #0x0 - str r1, [r0, #0x4] - ldr r3, _0202E498 ; =FUN_02016454 - mov r0, #0x4 - bx r3 - .balign 4 -_0202E494: .word UNK_021C59E8 -_0202E498: .word FUN_02016454 - - thumb_func_start FUN_0202E49C -FUN_0202E49C: ; 0x0202E49C - push {r3, lr} - mov r0, #0x4 - bl FUN_02016444 - ldr r0, _0202E4C0 ; =UNK_021C59E8 - mov r1, #0x1 - str r1, [r0, #0x4] - ldr r1, _0202E4C4 ; =FUN_0202E470 - mov r0, #0x8 - mov r2, #0x0 - bl FUN_02090DB8 - cmp r0, #0x1 - beq _0202E4BC - bl OS_Terminate -_0202E4BC: - pop {r3, pc} - nop -_0202E4C0: .word UNK_021C59E8 -_0202E4C4: .word FUN_0202E470 - - thumb_func_start FUN_0202E4C8 -FUN_0202E4C8: ; 0x0202E4C8 - ldr r0, _0202E4D8 ; =UNK_021C59E8 - ldr r0, [r0, #0x4] - cmp r0, #0x2 - bne _0202E4D4 - mov r0, #0x1 - bx lr -_0202E4D4: - mov r0, #0x0 - bx lr - .balign 4 -_0202E4D8: .word UNK_021C59E8 - - thumb_func_start FUN_0202E4DC -FUN_0202E4DC: ; 0x0202E4DC - ldr r0, _0202E4EC ; =UNK_021C59E8 - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0202E4E8 - mov r0, #0x1 - bx lr -_0202E4E8: - mov r0, #0x0 - bx lr - .balign 4 -_0202E4EC: .word UNK_021C59E8 - - thumb_func_start FUN_0202E4F0 -FUN_0202E4F0: ; 0x0202E4F0 - ldr r3, _0202E4F8 ; =FUN_02090CC8 - ldr r0, _0202E4FC ; =FUN_0202E488 - mov r1, #0x0 - bx r3 - .balign 4 -_0202E4F8: .word FUN_02090CC8 -_0202E4FC: .word FUN_0202E488 - - thumb_func_start FUN_0202E500 -FUN_0202E500: ; 0x0202E500 - push {r3, lr} - ldr r1, _0202E534 ; =UNK_021C59E8 - mov r0, #0xcb - ldr r2, [r1, #0x8] - mov r3, #0x0 - lsl r0, r0, #0x4 - str r3, [r2, r0] - ldr r1, [r1, #0x8] - sub r0, #0xc - ldr r2, [r1, r0] - mov r0, #0x1f - add r1, r2, #0x0 - and r1, r0 - mov r0, #0x20 - sub r0, r0, r1 - add r0, r2, r0 - bl FUN_0202CE64 - ldr r0, _0202E534 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - mov r0, #0x33 - lsl r0, r0, #0x6 - ldr r0, [r1, r0] - bl FUN_0202CB70 - pop {r3, pc} - .balign 4 -_0202E534: .word UNK_021C59E8 - - thumb_func_start FUN_0202E538 -FUN_0202E538: ; 0x0202E538 - push {r3-r5, lr} - mov r4, #0x0 - ldr r2, _0202E564 ; =UNK_021C59E8 - ldr r0, _0202E568 ; =0x00000C84 - add r5, r4, #0x0 - add r1, r4, #0x0 -_0202E544: - ldr r3, [r2, #0x8] - add r4, r4, #0x1 - add r3, r3, r5 - add r5, r5, #0x2 - strh r1, [r3, r0] - cmp r4, #0x10 - blt _0202E544 - ldr r0, _0202E564 ; =UNK_021C59E8 - mov r2, #0x3 - ldr r0, [r0, #0x8] - lsl r2, r2, #0xa - add r0, #0x54 - bl MI_CpuFill8 - pop {r3-r5, pc} - nop -_0202E564: .word UNK_021C59E8 -_0202E568: .word 0x00000C84 - - thumb_func_start FUN_0202E56C -FUN_0202E56C: ; 0x0202E56C - push {r3-r4} - ldr r1, _0202E58C ; =UNK_021C59E8 - lsl r0, r0, #0x18 - ldr r2, [r1, #0x8] - ldr r4, _0202E590 ; =0x00000DAD - lsr r0, r0, #0x18 - ldrb r1, [r2, r4] - mov r3, #0x8 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1c - orr r0, r1 - strb r0, [r2, r4] - pop {r3-r4} - bx lr - nop -_0202E58C: .word UNK_021C59E8 -_0202E590: .word 0x00000DAD - - thumb_func_start FUN_0202E594 -FUN_0202E594: ; 0x0202E594 - push {r4-r5} - ldr r1, _0202E5F0 ; =UNK_021C59E8 - ldr r0, _0202E5F4 ; =0x00000CB4 - ldr r3, [r1, #0x8] - mov r2, #0x0 - strb r2, [r3, r0] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x1 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x4 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x8] - add r3, #0xf6 - strb r2, [r4, r3] - add r3, r0, #0x0 - ldr r5, [r1, #0x8] - add r3, #0xf9 - ldrb r4, [r5, r3] - mov r3, #0x10 - bic r4, r3 - add r3, r0, #0x0 - add r3, #0xf9 - strb r4, [r5, r3] - add r3, r0, #0x0 - ldr r4, [r1, #0x8] - add r3, #0xf8 - strb r2, [r4, r3] - ldr r1, [r1, #0x8] - add r0, #0xf7 - strb r2, [r1, r0] - pop {r4-r5} - bx lr - .balign 4 -_0202E5F0: .word UNK_021C59E8 -_0202E5F4: .word 0x00000CB4 - - thumb_func_start FUN_0202E5F8 -FUN_0202E5F8: ; 0x0202E5F8 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_0202E594 - add r0, r5, #0x0 - bl FUN_0202E56C - bl FUN_0202D2F4 - ldr r0, _0202E65C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E660 ; =0x00000DAB - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _0202E62A - ldr r0, _0202E664 ; =FUN_020303BC - mov r1, #0xe - bl FUN_0202D0A0 - ldr r0, _0202E65C ; =UNK_021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E660 ; =0x00000DAB - strb r2, [r1, r0] -_0202E62A: - ldr r0, _0202E65C ; =UNK_021C59E8 - ldr r3, _0202E668 ; =0x00000DAD - ldr r1, [r0, #0x8] - mov r2, #0x20 - ldrb r0, [r1, r3] - bic r0, r2 - lsl r2, r4, #0x18 - lsr r2, r2, #0x18 - lsl r2, r2, #0x1f - lsr r2, r2, #0x1a - orr r0, r2 - strb r0, [r1, r3] - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202E656 - bl FUN_0202CBFC - cmp r0, #0x0 - beq _0202E656 - mov r0, #0x1 - pop {r3-r5, pc} -_0202E656: - mov r0, #0x0 - pop {r3-r5, pc} - nop -_0202E65C: .word UNK_021C59E8 -_0202E660: .word 0x00000DAB -_0202E664: .word FUN_020303BC -_0202E668: .word 0x00000DAD - - thumb_func_start FUN_0202E66C -FUN_0202E66C: ; 0x0202E66C - push {r4, lr} - sub sp, #0x8 - add r4, r1, #0x0 - bl FUN_0202E594 - cmp r4, #0x0 - beq _0202E67E - bl FUN_0202E538 -_0202E67E: - ldr r0, _0202E6DC ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E6E0 ; =0x00000DAB - ldrb r0, [r1, r0] - cmp r0, #0x0 - bne _0202E69C - ldr r0, _0202E6E4 ; =FUN_02030238 - mov r1, #0xe - bl FUN_0202D0A0 - ldr r0, _0202E6DC ; =UNK_021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E6E0 ; =0x00000DAB - strb r2, [r1, r0] -_0202E69C: - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202E6D4 - ldr r2, _0202E6E8 ; =UNK_020EEC40 - add r0, sp, #0x0 - ldrb r3, [r2, #0x0] - add r1, sp, #0x0 - strb r3, [r0, #0x0] - ldrb r3, [r2, #0x1] - strb r3, [r0, #0x1] - ldrb r3, [r2, #0x2] - strb r3, [r0, #0x2] - ldrb r3, [r2, #0x3] - strb r3, [r0, #0x3] - ldrb r3, [r2, #0x4] - ldrb r2, [r2, #0x5] - strb r3, [r0, #0x4] - strb r2, [r0, #0x5] - ldr r0, _0202E6EC ; =FUN_0202E380 - mov r2, #0x0 - bl FUN_0202C570 - cmp r0, #0x0 - beq _0202E6D4 - add sp, #0x8 - mov r0, #0x1 - pop {r4, pc} -_0202E6D4: - mov r0, #0x0 - add sp, #0x8 - pop {r4, pc} - nop -_0202E6DC: .word UNK_021C59E8 -_0202E6E0: .word 0x00000DAB -_0202E6E4: .word FUN_02030238 -_0202E6E8: .word UNK_020EEC40 -_0202E6EC: .word FUN_0202E380 - - thumb_func_start FUN_0202E6F0 -FUN_0202E6F0: ; 0x0202E6F0 - push {r3, lr} - ldr r0, _0202E77C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - bne _0202E6FE - mov r0, #0x1 - pop {r3, pc} -_0202E6FE: - ldr r0, _0202E780 ; =0x00000DAC - ldrb r0, [r1, r0] - cmp r0, #0x0 - beq _0202E710 - cmp r0, #0x1 - beq _0202E740 - cmp r0, #0x2 - beq _0202E758 - b _0202E776 -_0202E710: - bl FUN_0202D21C - cmp r0, #0x0 - beq _0202E728 - bl FUN_0202C770 - ldr r0, _0202E77C ; =UNK_021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E728: - bl FUN_0202D1E4 - cmp r0, #0x0 - bne _0202E776 - bl FUN_0202D100 - ldr r0, _0202E77C ; =UNK_021C59E8 - mov r2, #0x2 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E740: - bl FUN_0202D1E4 - cmp r0, #0x0 - bne _0202E776 - bl FUN_0202D100 - ldr r0, _0202E77C ; =UNK_021C59E8 - mov r2, #0x2 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] - b _0202E776 -_0202E758: - bl FUN_0202D1C8 - cmp r0, #0x0 - beq _0202E764 - mov r0, #0x1 - pop {r3, pc} -_0202E764: - bl FUN_0202D200 - cmp r0, #0x0 - beq _0202E776 - ldr r0, _0202E77C ; =UNK_021C59E8 - mov r2, #0x1 - ldr r1, [r0, #0x8] - ldr r0, _0202E780 ; =0x00000DAC - strb r2, [r1, r0] -_0202E776: - mov r0, #0x0 - pop {r3, pc} - nop -_0202E77C: .word UNK_021C59E8 -_0202E780: .word 0x00000DAC - - thumb_func_start FUN_0202E784 -FUN_0202E784: ; 0x0202E784 - push {r3, lr} - ldr r0, _0202E7A8 ; =UNK_021C59E8 - ldr r2, [r0, #0x8] - cmp r2, #0x0 - beq _0202E7A2 - ldr r0, _0202E7AC ; =0x00000DAA - ldrb r1, [r2, r0] - cmp r1, #0x0 - bne _0202E7A2 - mov r1, #0x1 - strb r1, [r2, r0] - bl FUN_0202D100 - mov r0, #0x1 - pop {r3, pc} -_0202E7A2: - mov r0, #0x0 - pop {r3, pc} - nop -_0202E7A8: .word UNK_021C59E8 -_0202E7AC: .word 0x00000DAA - - thumb_func_start FUN_0202E7B0 -FUN_0202E7B0: ; 0x0202E7B0 - push {r3, lr} - ldr r1, _0202E7D0 ; =UNK_021C59E8 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0202E7CE - cmp r0, #0x0 - ldr r0, _0202E7D4 ; =0x00000DAA - beq _0202E7C6 - mov r1, #0x2 - strb r1, [r2, r0] - pop {r3, pc} -_0202E7C6: - mov r1, #0x0 - strb r1, [r2, r0] - bl FUN_0202E500 -_0202E7CE: - pop {r3, pc} - .balign 4 -_0202E7D0: .word UNK_021C59E8 -_0202E7D4: .word 0x00000DAA - - thumb_func_start FUN_0202E7D8 -FUN_0202E7D8: ; 0x0202E7D8 - push {r3, lr} - ldr r0, _0202E804 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E808 ; =0x00000CBC - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202E804 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E80C ; =0x00000CA4 - ldr r0, [r1, r0] - bl FreeToHeap - ldr r0, _0202E804 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - bl FreeToHeap - ldr r0, _0202E804 ; =UNK_021C59E8 - mov r1, #0x0 - str r1, [r0, #0x8] - pop {r3, pc} - nop -_0202E804: .word UNK_021C59E8 -_0202E808: .word 0x00000CBC -_0202E80C: .word 0x00000CA4 - - thumb_func_start FUN_0202E810 -FUN_0202E810: ; 0x0202E810 - push {r4, lr} - bl FUN_02030F40 - cmp r0, #0x0 - bne _0202E81E - mov r0, #0x0 - pop {r4, pc} -_0202E81E: - ldr r1, _0202E83C ; =UNK_021C59E8 - mov r0, #0x0 - ldr r4, [r1, #0x8] - ldr r1, _0202E840 ; =0x00000C84 - add r3, r0, #0x0 -_0202E828: - ldrh r2, [r4, r1] - cmp r2, #0x0 - beq _0202E830 - add r0, r0, #0x1 -_0202E830: - add r3, r3, #0x1 - add r4, r4, #0x2 - cmp r3, #0x10 - blt _0202E828 - pop {r4, pc} - nop -_0202E83C: .word UNK_021C59E8 -_0202E840: .word 0x00000C84 - - thumb_func_start FUN_0202E844 -FUN_0202E844: ; 0x0202E844 - push {r3-r5, lr} - ldr r1, _0202E870 ; =UNK_021C59E8 - mov r4, #0x0 - ldr r5, [r1, #0x8] - ldr r1, _0202E874 ; =0x00000C84 - add r3, r4, #0x0 -_0202E850: - ldrh r2, [r5, r1] - cmp r2, #0x0 - beq _0202E860 - cmp r4, r0 - bne _0202E85E - add r0, r3, #0x0 - pop {r3-r5, pc} -_0202E85E: - add r4, r4, #0x1 -_0202E860: - add r3, r3, #0x1 - add r5, r5, #0x2 - cmp r3, #0x10 - blt _0202E850 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202E870: .word UNK_021C59E8 -_0202E874: .word 0x00000C84 - - thumb_func_start FUN_0202E878 -FUN_0202E878: ; 0x0202E878 - ldr r0, _0202E884 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202E888 ; =0x00000CB4 - ldrb r0, [r1, r0] - bx lr - nop -_0202E884: .word UNK_021C59E8 -_0202E888: .word 0x00000CB4 - - thumb_func_start FUN_0202E88C -FUN_0202E88C: ; 0x0202E88C - ldr r0, _0202E898 ; =UNK_021C59E8 - mov r2, #0x0 - ldr r1, [r0, #0x8] - ldr r0, _0202E89C ; =0x00000CB4 - strb r2, [r1, r0] - bx lr - .balign 4 -_0202E898: .word UNK_021C59E8 -_0202E89C: .word 0x00000CB4 - - thumb_func_start FUN_0202E8A0 -FUN_0202E8A0: ; 0x0202E8A0 - ldr r1, _0202E8C8 ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202E8CC ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E8C2 - mov r1, #0xc0 - mul r1, r0 - add r0, r3, r1 - add r0, #0xaa - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0202E8C4 - mov r0, #0x1 - bx lr -_0202E8C2: - mov r0, #0x0 -_0202E8C4: - bx lr - nop -_0202E8C8: .word UNK_021C59E8 -_0202E8CC: .word 0x00000C84 - - thumb_func_start FUN_0202E8D0 -FUN_0202E8D0: ; 0x0202E8D0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r4, #0xf -_0202E8D6: - add r0, r4, #0x0 - bl FUN_0202E8A0 - cmp r0, r5 - ble _0202E8E8 - cmp r0, #0x8 - bge _0202E8E8 - add r0, r4, #0x0 - pop {r3-r5, pc} -_0202E8E8: - sub r4, r4, #0x1 - bpl _0202E8D6 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202E8F4 -FUN_0202E8F4: ; 0x0202E8F4 - push {r3-r7, lr} - bl FUN_0202E810 - cmp r0, #0x0 - bne _0202E904 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} -_0202E904: - mov r5, #0x2d - ldr r7, _0202E948 ; =UNK_021C59E8 - mov r6, #0xf - mov r4, #0x1e - lsl r5, r5, #0x6 -_0202E90E: - ldr r0, [r7, #0x8] - ldr r1, _0202E94C ; =0x00000C84 - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E938 - add r0, #0x58 - add r0, r0, r5 - bl FUN_0202EFE4 - cmp r0, #0x0 - beq _0202E938 - add r0, r6, #0x0 - bl FUN_0202E8A0 - cmp r0, #0x1 - ble _0202E938 - cmp r0, #0x8 - bge _0202E938 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0202E938: - sub r4, r4, #0x2 - sub r5, #0xc0 - sub r6, r6, #0x1 - bpl _0202E90E - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} - nop -_0202E948: .word UNK_021C59E8 -_0202E94C: .word 0x00000C84 - - thumb_func_start FUN_0202E950 -FUN_0202E950: ; 0x0202E950 - push {r3-r7, lr} - bl FUN_0202E810 - cmp r0, #0x0 - bne _0202E960 - mov r0, #0x0 - mvn r0, r0 - pop {r3-r7, pc} -_0202E960: - mov r5, #0x2d - ldr r7, _0202E9A4 ; =UNK_021C59E8 - mov r6, #0xf - mov r4, #0x1e - lsl r5, r5, #0x6 -_0202E96A: - ldr r0, [r7, #0x8] - ldr r1, _0202E9A8 ; =0x00000C84 - add r2, r0, r4 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202E986 - add r0, #0x58 - add r0, r0, r5 - bl FUN_0202EFE4 - cmp r0, #0x0 - beq _0202E986 - add r0, r6, #0x0 - pop {r3-r7, pc} -_0202E986: - sub r4, r4, #0x2 - sub r5, #0xc0 - sub r6, r6, #0x1 - bpl _0202E96A - mov r0, #0x1 - bl FUN_0202E8D0 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - bne _0202E9A2 - mov r0, #0x0 - bl FUN_0202E8D0 -_0202E9A2: - pop {r3-r7, pc} - .balign 4 -_0202E9A4: .word UNK_021C59E8 -_0202E9A8: .word 0x00000C84 - - thumb_func_start FUN_0202E9AC -FUN_0202E9AC: ; 0x0202E9AC - push {r4-r6, lr} - add r4, r1, #0x0 - ldr r1, _0202E9E0 ; =UNK_021C59E8 - mov r5, #0x0 - ldr r6, [r1, #0x8] - ldr r1, _0202E9E4 ; =0x00000C84 - add r3, r5, #0x0 -_0202E9BA: - ldrh r2, [r6, r1] - cmp r2, #0x0 - beq _0202E9D4 - cmp r0, r5 - bne _0202E9D2 - add r0, r3, #0x0 - bl FUN_0202EF84 - add r1, r4, #0x0 - bl PlayerProfile_Copy - pop {r4-r6, pc} -_0202E9D2: - add r5, r5, #0x1 -_0202E9D4: - add r3, r3, #0x1 - add r6, r6, #0x2 - cmp r3, #0x10 - blt _0202E9BA - pop {r4-r6, pc} - nop -_0202E9E0: .word UNK_021C59E8 -_0202E9E4: .word 0x00000C84 - - thumb_func_start FUN_0202E9E8 -FUN_0202E9E8: ; 0x0202E9E8 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_0202CBD4 - cmp r0, #0x2 - bne _0202E9FC - bl FUN_0202C770 - mov r0, #0x0 - pop {r3-r5, pc} -_0202E9FC: - bl FUN_0202CBD4 - cmp r0, #0x1 - bne _0202EA48 - bl FUN_02033534 - mov r1, #0xc0 - add r4, r5, #0x0 - mul r4, r1 - ldr r1, _0202EA4C ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - add r1, r3, r4 - add r1, #0x8a - ldrh r2, [r1, #0x0] - ldr r1, _0202EA50 ; =0x00000DA8 - strb r2, [r3, r1] - bl FUN_0202D8B0 - cmp r0, #0x0 - beq _0202EA36 - ldr r1, _0202EA4C ; =UNK_021C59E8 - mov r0, #0x1 - ldr r1, [r1, #0x8] - mov r2, #0x0 - add r1, #0x58 - add r1, r1, r4 - bl FUN_0202C4D8 - b _0202EA44 -_0202EA36: - ldr r1, _0202EA4C ; =UNK_021C59E8 - mov r0, #0x1 - ldr r1, [r1, #0x8] - add r1, #0x54 - add r1, r1, r4 - bl FUN_0202D034 -_0202EA44: - mov r0, #0x1 - pop {r3-r5, pc} -_0202EA48: - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 -_0202EA4C: .word UNK_021C59E8 -_0202EA50: .word 0x00000DA8 - - thumb_func_start FUN_0202EA54 -FUN_0202EA54: ; 0x0202EA54 - push {r4-r7} - mov r4, #0x0 - ldr r1, _0202EA90 ; =UNK_021C59E8 - ldr r0, _0202EA94 ; =0x00000C84 - add r5, r4, #0x0 - mov r2, #0x1 -_0202EA60: - ldr r3, [r1, #0x8] - add r3, r3, r5 - ldrh r6, [r3, r0] - cmp r6, #0x0 - beq _0202EA84 - beq _0202EA84 - ldr r6, _0202EA94 ; =0x00000C84 - ldrh r6, [r3, r6] - sub r7, r6, #0x1 - ldr r6, _0202EA94 ; =0x00000C84 - strh r7, [r3, r6] - ldr r3, [r1, #0x8] - add r7, r3, r5 - ldrh r6, [r7, r6] - cmp r6, #0x0 - bne _0202EA84 - ldr r6, _0202EA98 ; =0x00000CB4 - strb r2, [r3, r6] -_0202EA84: - add r4, r4, #0x1 - add r5, r5, #0x2 - cmp r4, #0x10 - blt _0202EA60 - pop {r4-r7} - bx lr - .balign 4 -_0202EA90: .word UNK_021C59E8 -_0202EA94: .word 0x00000C84 -_0202EA98: .word 0x00000CB4 - - thumb_func_start FUN_0202EA9C -FUN_0202EA9C: ; 0x0202EA9C - push {r3-r5, lr} - bl FUN_02033534 - add r5, r0, #0x0 - bl FUN_0202EF70 - add r4, r0, #0x0 - cmp r5, #0xf - beq _0202EB24 - ldr r0, _0202EB6C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r5, r1, r0 - bl FUN_02023AC4 - cmp r0, #0x20 - ble _0202EAC2 - bl ErrorHandling -_0202EAC2: - bl PlayerProfile_sizeof - cmp r0, #0x20 - beq _0202EACE - bl ErrorHandling -_0202EACE: - bl PlayerProfile_sizeof - add r1, r5, #0x0 - add r2, r0, #0x0 - add r0, r4, #0x0 - add r1, #0x10 - bl MI_CpuCopy8 - bl FUN_02023AC4 - add r2, r0, #0x0 - ldr r0, _0202EB6C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB74 ; =0x00000CBC - ldr r0, [r1, r0] - add r1, r5, #0x0 - add r1, #0x30 - bl MI_CpuCopy8 - add r0, r4, #0x0 - bl PlayerProfile_GetTrainerID - str r0, [r5, #0x0] - bl FUN_02033534 - strb r0, [r5, #0x4] - bl FUN_0203354C - strb r0, [r5, #0x5] - ldr r0, _0202EB6C ; =UNK_021C59E8 - mov r2, #0x8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB78 ; =0x00000CA8 - add r0, r1, r0 - add r1, r5, #0x0 - add r1, #0x8 - bl MI_CpuCopy8 - bl FUN_0202D358 - add r5, #0x54 - strb r0, [r5, #0x0] - b _0202EB4E -_0202EB24: - ldr r1, _0202EB6C ; =UNK_021C59E8 - ldr r4, [r1, #0x8] - ldr r1, _0202EB70 ; =0x00000CC4 - add r5, r4, r1 - bl PlayerProfile_GetTrainerID - ldr r1, _0202EB70 ; =0x00000CC4 - str r0, [r4, r1] - bl FUN_02033534 - strb r0, [r5, #0x4] - bl FUN_0203354C - strb r0, [r5, #0x5] - ldr r0, _0202EB6C ; =UNK_021C59E8 - add r5, #0x8 - ldr r0, [r0, #0x8] - add r1, r5, #0x0 - mov r2, #0x54 - bl MI_CpuCopy8 -_0202EB4E: - ldr r0, _0202EB6C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl DC_FlushRange - ldr r0, _0202EB6C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EB70 ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl FUN_0202CB7C - pop {r3-r5, pc} - .balign 4 -_0202EB6C: .word UNK_021C59E8 -_0202EB70: .word 0x00000CC4 -_0202EB74: .word 0x00000CBC -_0202EB78: .word 0x00000CA8 - - thumb_func_start FUN_0202EB7C -FUN_0202EB7C: ; 0x0202EB7C - push {r4, lr} - ldr r0, _0202EBC8 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r4, r1, r0 - bl FUN_0202EDB8 - ldrb r1, [r4, #0x6] - cmp r1, r0 - beq _0202EBC6 - bl FUN_0202EDB8 - strb r0, [r4, #0x6] - ldr r0, _0202EBC8 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl DC_FlushRange - ldr r0, _0202EBC8 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EBCC ; =0x00000CC4 - add r0, r1, r0 - mov r1, #0x5c - bl FUN_0202CB7C - ldr r3, _0202EBC8 ; =UNK_021C59E8 - ldr r2, _0202EBCC ; =0x00000CC4 - ldr r4, [r3, #0x8] - ldrh r3, [r3, #0x0] - add r0, r4, r2 - sub r2, r2, #0x4 - ldr r2, [r4, r2] - mov r1, #0x5c - bl FUN_0202D240 -_0202EBC6: - pop {r4, pc} - .balign 4 -_0202EBC8: .word UNK_021C59E8 -_0202EBCC: .word 0x00000CC4 - - thumb_func_start FUN_0202EBD0 -FUN_0202EBD0: ; 0x0202EBD0 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - bl FUN_0202CBD4 - add r5, r0, #0x0 - bl FUN_0202DF54 - bl FUN_0202EB7C - bl FUN_0202D19C - cmp r0, #0x0 - bne _0202EC0C - bl FUN_0202EE24 - cmp r0, #0x0 - bne _0202EC0C - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED54 ; =0x00000DAD - ldrb r1, [r2, r0] - lsl r3, r1, #0x1d - lsr r3, r3, #0x1f - beq _0202EC0C - mov r3, #0x1 - bic r1, r3 - mov r3, #0x1 - orr r1, r3 - strb r1, [r2, r0] -_0202EC0C: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r1, _0202ED58 ; =0x0000FFFF - ldr r3, [r0, #0x8] - ldr r0, _0202ED5C ; =0x00000DA6 - ldrh r2, [r3, r0] - cmp r2, r1 - bne _0202EC1C - strh r4, [r3, r0] -_0202EC1C: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED54 ; =0x00000DAD - ldrb r1, [r2, r0] - lsl r3, r1, #0x1e - lsr r3, r3, #0x1f - beq _0202EC3C - sub r3, r0, #0x7 - ldrh r3, [r2, r3] - cmp r3, r4 - bls _0202EC3C - mov r3, #0x1 - bic r1, r3 - mov r3, #0x1 - orr r1, r3 - strb r1, [r2, r0] -_0202EC3C: - bl FUN_0202CBE8 - cmp r0, #0x19 - bne _0202EC4A - mov r0, #0x0 - bl FUN_020335D0 -_0202EC4A: - cmp r5, #0x9 - bhi _0202ED4C - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0202EC5A: ; jump table (using 16-bit offset) - .short _0202EC6E - _0202EC5A - 2; case 0 - .short _0202EC8E - _0202EC5A - 2; case 1 - .short _0202ED4C - _0202EC5A - 2; case 2 - .short _0202ED4C - _0202EC5A - 2; case 3 - .short _0202ED4C - _0202EC5A - 2; case 4 - .short _0202ED4C - _0202EC5A - 2; case 5 - .short _0202ED4C - _0202EC5A - 2; case 6 - .short _0202ECD2 - _0202EC5A - 2; case 7 - .short _0202ECB8 - _0202EC5A - 2; case 8 - .short _0202ECB8 - _0202EC5A - 2; case 9 -_0202EC6E: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r2, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r1, [r2, r0] - cmp r1, #0x1 - bne _0202EC82 - bl FUN_0202E7D8 - add sp, #0x8 - pop {r3-r5, pc} -_0202EC82: - cmp r1, #0x2 - bne _0202ED4C - mov r1, #0x3 - strb r1, [r2, r0] - add sp, #0x8 - pop {r3-r5, pc} -_0202EC8E: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x1 - bne _0202ECA2 - bl FUN_0202D178 - cmp r0, #0x0 - bne _0202ED4C -_0202ECA2: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED60 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x2 - bne _0202ED4C - bl FUN_0202D178 - add sp, #0x8 - cmp r0, #0x0 - pop {r3-r5, pc} -_0202ECB8: - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r3, [r0, #0x8] - cmp r3, #0x0 - beq _0202ED4C - ldr r1, _0202ED54 ; =0x00000DAD - mov r0, #0x1 - ldrb r2, [r3, r1] - add sp, #0x8 - bic r2, r0 - mov r0, #0x1 - orr r0, r2 - strb r0, [r3, r1] - pop {r3-r5, pc} -_0202ECD2: - bl FUN_0202CDA4 - ldr r3, _0202ED50 ; =UNK_021C59E8 - ldr r2, _0202ED64 ; =0x00000DA9 - ldr r4, [r3, #0x8] - ldrb r1, [r4, r2] - cmp r1, #0x0 - bne _0202ECEE - sub r1, r2, #0x5 - strh r0, [r4, r1] - ldr r0, [r3, #0x8] - mov r1, #0x5 - strb r1, [r0, r2] - b _0202ECF2 -_0202ECEE: - sub r0, r1, #0x1 - strb r0, [r4, r2] -_0202ECF2: - ldr r1, _0202ED50 ; =UNK_021C59E8 - ldr r0, _0202ED68 ; =0x00000DA4 - ldr r2, [r1, #0x8] - ldrh r5, [r2, r0] - add r0, #0x9 - ldrb r0, [r2, r0] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1f - beq _0202ED0A - ldrh r0, [r1, #0x0] - add r0, r0, #0x1 - strh r0, [r1, #0x0] -_0202ED0A: - bl FUN_0202EA9C - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202D858 - add r4, r0, #0x0 - bl FUN_02033534 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202EEE8 - str r0, [sp, #0x0] - ldr r1, _0202ED50 ; =UNK_021C59E8 - ldr r0, _0202ED54 ; =0x00000DAD - ldr r2, [r1, #0x8] - add r3, r4, #0x0 - ldrb r0, [r2, r0] - add r2, r5, #0x0 - lsl r0, r0, #0x1a - lsr r0, r0, #0x1f - str r0, [sp, #0x4] - ldrh r1, [r1, #0x0] - mov r0, #0x0 - bl FUN_0202CF84 - ldr r0, _0202ED50 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202ED6C ; =0x00000DA8 - strb r5, [r1, r0] -_0202ED4C: - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_0202ED50: .word UNK_021C59E8 -_0202ED54: .word 0x00000DAD -_0202ED58: .word 0x0000FFFF -_0202ED5C: .word 0x00000DA6 -_0202ED60: .word 0x00000DAA -_0202ED64: .word 0x00000DA9 -_0202ED68: .word 0x00000DA4 -_0202ED6C: .word 0x00000DA8 - - thumb_func_start FUN_0202ED70 -FUN_0202ED70: ; 0x0202ED70 - push {r3, lr} - ldr r1, _0202ED80 ; =UNK_021C59E8 - ldr r1, [r1, #0x8] - cmp r1, #0x0 - beq _0202ED7E - bl FUN_0202EBD0 -_0202ED7E: - pop {r3, pc} - .balign 4 -_0202ED80: .word UNK_021C59E8 - - thumb_func_start FUN_0202ED84 -FUN_0202ED84: ; 0x0202ED84 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _0202EDB4 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _0202ED94 - mov r0, #0x0 - pop {r4, pc} -_0202ED94: - bl FUN_0202CBD4 - cmp r0, #0x4 - beq _0202EDA0 - mov r0, #0x0 - pop {r4, pc} -_0202EDA0: - bl FUN_0202CB8C - mov r2, #0x1 - add r1, r2, #0x0 - lsl r1, r4 - tst r0, r1 - bne _0202EDB0 - mov r2, #0x0 -_0202EDB0: - add r0, r2, #0x0 - pop {r4, pc} - .balign 4 -_0202EDB4: .word UNK_021C59E8 - - thumb_func_start FUN_0202EDB8 -FUN_0202EDB8: ; 0x0202EDB8 - push {r3-r5, lr} - mov r4, #0x0 - add r5, r4, #0x0 -_0202EDBE: - lsl r0, r5, #0x10 - lsr r0, r0, #0x10 - bl FUN_0202ED84 - cmp r0, #0x0 - beq _0202EDCC - add r4, r4, #0x1 -_0202EDCC: - add r5, r5, #0x1 - cmp r5, #0x8 - blt _0202EDBE - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202EDD8 -FUN_0202EDD8: ; 0x0202EDD8 - ldr r0, _0202EDF0 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202EDEC - ldr r0, _0202EDF4 ; =0x00000DAA - ldrb r0, [r1, r0] - cmp r0, #0x3 - bne _0202EDEC - mov r0, #0x1 - bx lr -_0202EDEC: - mov r0, #0x0 - bx lr - .balign 4 -_0202EDF0: .word UNK_021C59E8 -_0202EDF4: .word 0x00000DAA - - thumb_func_start FUN_0202EDF8 -FUN_0202EDF8: ; 0x0202EDF8 - ldr r0, _0202EE08 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE04 - mov r0, #0x1 - bx lr -_0202EE04: - mov r0, #0x0 - bx lr - .balign 4 -_0202EE08: .word UNK_021C59E8 - - thumb_func_start FUN_0202EE0C -FUN_0202EE0C: ; 0x0202EE0C - push {r3, lr} - ldr r0, _0202EE20 ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE1C - bl FUN_0202D1C8 - pop {r3, pc} -_0202EE1C: - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_0202EE20: .word UNK_021C59E8 - - thumb_func_start FUN_0202EE24 -FUN_0202EE24: ; 0x0202EE24 - push {r3, lr} - ldr r0, _0202EE3C ; =UNK_021C59E8 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EE38 - bl FUN_0202CB8C - ldr r1, _0202EE40 ; =0x0000FFFE - and r0, r1 - pop {r3, pc} -_0202EE38: - mov r0, #0x0 - pop {r3, pc} - .balign 4 -_0202EE3C: .word UNK_021C59E8 -_0202EE40: .word 0x0000FFFE - - thumb_func_start FUN_0202EE44 -FUN_0202EE44: ; 0x0202EE44 - push {r3, lr} - bl FUN_0202EE60 - cmp r0, #0x0 - beq _0202EE5A - bl FUN_0202CBE8 - cmp r0, #0x14 - bne _0202EE5A - mov r0, #0x1 - pop {r3, pc} -_0202EE5A: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0202EE60 -FUN_0202EE60: ; 0x0202EE60 - ldr r0, _0202EE7C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202EE76 - ldr r0, _0202EE80 ; =0x00000DAD - ldrb r0, [r1, r0] - lsl r0, r0, #0x1f - lsr r0, r0, #0x1f - beq _0202EE76 - mov r0, #0x1 - bx lr -_0202EE76: - mov r0, #0x0 - bx lr - nop -_0202EE7C: .word UNK_021C59E8 -_0202EE80: .word 0x00000DAD - - thumb_func_start FUN_0202EE84 -FUN_0202EE84: ; 0x0202EE84 - push {r3-r4} - ldr r1, _0202EEA8 ; =UNK_021C59E8 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0202EEA2 - ldr r4, _0202EEAC ; =0x00000DAD - lsl r0, r0, #0x18 - ldrb r1, [r2, r4] - lsr r0, r0, #0x18 - mov r3, #0x4 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1d - orr r0, r1 - strb r0, [r2, r4] -_0202EEA2: - pop {r3-r4} - bx lr - nop -_0202EEA8: .word UNK_021C59E8 -_0202EEAC: .word 0x00000DAD - - thumb_func_start FUN_0202EEB0 -FUN_0202EEB0: ; 0x0202EEB0 - push {r4-r5} - ldr r5, _0202EEDC ; =UNK_021C59E8 - ldr r2, [r5, #0x8] - cmp r2, #0x0 - beq _0202EED6 - ldr r4, _0202EEE0 ; =0x00000DAD - lsl r0, r0, #0x18 - ldrb r1, [r2, r4] - lsr r0, r0, #0x18 - mov r3, #0x2 - lsl r0, r0, #0x1f - bic r1, r3 - lsr r0, r0, #0x1e - orr r0, r1 - strb r0, [r2, r4] - ldr r2, _0202EEE4 ; =0x0000FFFF - ldr r1, [r5, #0x8] - sub r0, r4, #0x7 - strh r2, [r1, r0] -_0202EED6: - pop {r4-r5} - bx lr - nop -_0202EEDC: .word UNK_021C59E8 -_0202EEE0: .word 0x00000DAD -_0202EEE4: .word 0x0000FFFF - - thumb_func_start FUN_0202EEE8 -FUN_0202EEE8: ; 0x0202EEE8 - push {r3-r5, lr} - add r5, r0, #0x0 - bl WM_GetDispersionBeaconPeriod - add r4, r0, #0x0 - cmp r5, #0x1a - blo _0202EEFA - bl ErrorHandling -_0202EEFA: - cmp r5, #0xa - bne _0202EF04 - lsl r0, r4, #0xe - lsr r0, r0, #0x10 - pop {r3-r5, pc} -_0202EF04: - cmp r5, #0x9 - beq _0202EF0C - cmp r5, #0xd - bne _0202EF12 -_0202EF0C: - lsl r0, r4, #0xe - lsr r0, r0, #0x10 - pop {r3-r5, pc} -_0202EF12: - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0202EF18 -FUN_0202EF18: ; 0x0202EF18 - ldr r1, _0202EF3C ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202EF36 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EF40 ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202EF36 - mov r1, #0xc0 - add r3, #0x54 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202EF36: - mov r0, #0x0 - bx lr - nop -_0202EF3C: .word UNK_021C59E8 -_0202EF40: .word 0x00000C84 - - thumb_func_start FUN_0202EF44 -FUN_0202EF44: ; 0x0202EF44 - ldr r1, _0202EF68 ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202EF62 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EF6C ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202EF62 - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - bx lr -_0202EF62: - mov r0, #0x0 - bx lr - nop -_0202EF68: .word UNK_021C59E8 -_0202EF6C: .word 0x00000C84 - - thumb_func_start FUN_0202EF70 -FUN_0202EF70: ; 0x0202EF70 - ldr r0, _0202EF7C ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - ldr r0, _0202EF80 ; =0x00000CB8 - ldr r0, [r1, r0] - bx lr - nop -_0202EF7C: .word UNK_021C59E8 -_0202EF80: .word 0x00000CB8 - - thumb_func_start FUN_0202EF84 -FUN_0202EF84: ; 0x0202EF84 - ldr r1, _0202EFA4 ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202EFA8 ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - bne _0202EF98 - mov r0, #0x0 - bx lr -_0202EF98: - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - add r0, #0x10 - bx lr - .balign 4 -_0202EFA4: .word UNK_021C59E8 -_0202EFA8: .word 0x00000C84 - - thumb_func_start FUN_0202EFAC -FUN_0202EFAC: ; 0x0202EFAC - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _0202EFDC ; =UNK_021C59E8 - add r4, r1, #0x0 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0202EFD8 - cmp r4, #0x8 - blt _0202EFC2 - bl ErrorHandling -_0202EFC2: - ldr r1, _0202EFDC ; =UNK_021C59E8 - add r0, r5, #0x0 - ldr r2, [r1, #0x8] - ldr r1, _0202EFE0 ; =0x00000C54 - add r3, r2, r1 - mov r2, #0x6 - add r1, r4, #0x0 - mul r1, r2 - add r1, r3, r1 - bl MI_CpuCopy8 -_0202EFD8: - pop {r3-r5, pc} - nop -_0202EFDC: .word UNK_021C59E8 -_0202EFE0: .word 0x00000C54 - - thumb_func_start FUN_0202EFE4 -FUN_0202EFE4: ; 0x0202EFE4 - push {r4-r5} - ldr r2, _0202F034 ; =UNK_021C59E8 - mov r1, #0x0 - ldr r3, [r2, #0x8] - ldr r2, _0202F038 ; =0x00000C54 - add r2, r3, r2 - ldrb r3, [r0, #0x0] -_0202EFF2: - ldrb r4, [r2, #0x0] - cmp r4, r3 - bne _0202F026 - ldrb r5, [r2, #0x1] - ldrb r4, [r0, #0x1] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x2] - ldrb r4, [r0, #0x2] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x3] - ldrb r4, [r0, #0x3] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x4] - ldrb r4, [r0, #0x4] - cmp r5, r4 - bne _0202F026 - ldrb r5, [r2, #0x5] - ldrb r4, [r0, #0x5] - cmp r5, r4 - bne _0202F026 - mov r0, #0x1 - pop {r4-r5} - bx lr -_0202F026: - add r1, r1, #0x1 - add r2, r2, #0x6 - cmp r1, #0x8 - blt _0202EFF2 - mov r0, #0x0 - pop {r4-r5} - bx lr - .balign 4 -_0202F034: .word UNK_021C59E8 -_0202F038: .word 0x00000C54 - - thumb_func_start FUN_0202F03C -FUN_0202F03C: ; 0x0202F03C - ldr r0, _0202F054 ; =UNK_021C59E8 - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _0202F04E - ldr r0, _0202F058 ; =0x00000DAD - ldrb r0, [r1, r0] - lsl r0, r0, #0x1b - lsr r0, r0, #0x1f - bx lr -_0202F04E: - mov r0, #0x0 - bx lr - nop -_0202F054: .word UNK_021C59E8 -_0202F058: .word 0x00000DAD - - thumb_func_start FUN_0202F05C -FUN_0202F05C: ; 0x0202F05C - ldr r0, _0202F070 ; =UNK_021C59E8 - ldr r3, [r0, #0x8] - cmp r3, #0x0 - beq _0202F06E - ldr r1, _0202F074 ; =0x00000DAD - mov r0, #0x10 - ldrb r2, [r3, r1] - orr r0, r2 - strb r0, [r3, r1] -_0202F06E: - bx lr - .balign 4 -_0202F070: .word UNK_021C59E8 -_0202F074: .word 0x00000DAD - - thumb_func_start FUN_0202F078 -FUN_0202F078: ; 0x0202F078 - ldr r1, _0202F088 ; =UNK_021C59E8 - ldr r3, _0202F08C ; =MI_CpuCopy8 - ldr r2, [r1, #0x8] - ldr r1, _0202F090 ; =0x00000CA8 - add r1, r2, r1 - mov r2, #0x8 - bx r3 - nop -_0202F088: .word UNK_021C59E8 -_0202F08C: .word MI_CpuCopy8 -_0202F090: .word 0x00000CA8 - - thumb_func_start FUN_0202F094 -FUN_0202F094: ; 0x0202F094 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02023AC4 - ldr r1, _0202F0B0 ; =UNK_021C59E8 - add r2, r0, #0x0 - ldr r3, [r1, #0x8] - ldr r1, _0202F0B4 ; =0x00000CBC - add r0, r4, #0x0 - ldr r1, [r3, r1] - bl MI_CpuCopy8 - pop {r4, pc} - nop -_0202F0B0: .word UNK_021C59E8 -_0202F0B4: .word 0x00000CBC - - thumb_func_start FUN_0202F0B8 -FUN_0202F0B8: ; 0x0202F0B8 - push {r4, lr} - bl FUN_0202EA9C - ldr r3, _0202F0D4 ; =UNK_021C59E8 - ldr r2, _0202F0D8 ; =0x00000CC4 - ldr r4, [r3, #0x8] - ldrh r3, [r3, #0x0] - add r0, r4, r2 - sub r2, r2, #0x4 - ldr r2, [r4, r2] - mov r1, #0x5c - bl FUN_0202D240 - pop {r4, pc} - .balign 4 -_0202F0D4: .word UNK_021C59E8 -_0202F0D8: .word 0x00000CC4 - - thumb_func_start FUN_0202F0DC -FUN_0202F0DC: ; 0x0202F0DC - push {r4-r6, lr} - mov r5, #0x0 - add r6, r0, #0x0 - add r4, r5, #0x0 -_0202F0E4: - add r0, r4, #0x0 - bl FUN_0202EF44 - cmp r0, #0x0 - beq _0202F0F8 - ldrb r1, [r0, #0x4] - cmp r1, r6 - bne _0202F0F8 - ldrb r0, [r0, #0x6] - add r5, r5, r0 -_0202F0F8: - add r4, r4, #0x1 - cmp r4, #0x10 - blt _0202F0E4 - add r0, r5, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0202F104 -FUN_0202F104: ; 0x0202F104 - ldr r3, _0202F108 ; =FUN_0202D2D0 - bx r3 - .balign 4 -_0202F108: .word FUN_0202D2D0 - - thumb_func_start FUN_0202F10C -FUN_0202F10C: ; 0x0202F10C - push {r3, lr} - ldr r1, _0202F120 ; =UNK_021C59E8 - mov r2, #0x54 - ldr r1, [r1, #0x8] - bl MI_CpuCopy8 - bl FUN_0202F0B8 - pop {r3, pc} - nop -_0202F120: .word UNK_021C59E8 - - thumb_func_start FUN_0202F124 -FUN_0202F124: ; 0x0202F124 - ldr r1, _0202F148 ; =UNK_021C59E8 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _0202F144 - lsl r1, r0, #0x1 - add r2, r3, r1 - ldr r1, _0202F14C ; =0x00000C84 - ldrh r1, [r2, r1] - cmp r1, #0x0 - beq _0202F144 - mov r1, #0xc0 - add r3, #0xa4 - mul r1, r0 - add r0, r3, r1 - add r0, #0x8 - bx lr -_0202F144: - mov r0, #0x0 - bx lr - .balign 4 -_0202F148: .word UNK_021C59E8 -_0202F14C: .word 0x00000C84 diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c new file mode 100644 index 000000000..678f6fe38 --- /dev/null +++ b/arm9/src/unk_0202E29C.c @@ -0,0 +1,1110 @@ +#include "global.h" +#include "unk_0202E29C.h" +#include "MI_memory.h" +#include "OS_cache.h" +#include "game_init.h" +#include "heap.h" +#include "mail_message.h" +#include "player_data.h" +#include "unk_0202D858.h" +#include "unk_0202F150.h" +#include "unk_02031734.h" + +struct UnkStruct_const +{ + u8 unk0[6]; +}; + +const struct UnkStruct_const UNK_020EEC40 = { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } }; + +struct +{ + u16 unk0; + u32 unk4; + struct UnkStruct2 *unk8; + +} UNK_021C59E8; + +extern u32 FUN_0202CEEC(); +extern u32 FUN_02023AC4(); +extern u32 FUN_02090DB8(u32 param0, void (*param1)(u32, u32), u32 param2); +extern void FUN_02090CC8(void (*param0)(), u32 param1); +extern void FUN_0202CE64(void *param0); +extern void FUN_0202CB70(u32 param0); +extern void FUN_0202D2F4(); +extern void FUN_0202D0A0(void (*param0)(u32, u8 *, u32), u32 param1); +extern u32 FUN_0202CBD4(); +extern u32 FUN_0202CBFC(); +extern u32 FUN_0202C570(void (*param0)(struct UnkStruct2_sub *, u32), u8 *param1, u32 param2); +extern u32 FUN_0202D21C(); +extern void FUN_0202C770(); +extern u32 FUN_0202D1E4(); +extern void FUN_0202D100(); +extern u32 FUN_0202D1C8(); +extern u32 FUN_0202D200(); +extern void FUN_0202C4D8(u32 param0, u8 *param1, u32 param2); +extern void FUN_0202D034(u32 param0, struct UnkStruct2_sub *param1); +extern u32 FUN_0202D358(); +extern void FUN_0202CB7C(void *param0, u32 param1); +extern void FUN_0202D240(void *param0, u32 size, u32 param2, u32 param3); +extern void FUN_0202DF54(); +extern u16 FUN_0202D19C(); +extern u32 FUN_0202CBE8(); +extern u32 FUN_0202D178(); +extern u16 FUN_0202CDA4(); +extern void FUN_0202CF84(u32 param0, u16 param1, u16 param2, u32 param3, u32 param4, u32 param5); +extern u32 FUN_0202CB8C(); +extern u16 WM_GetDispersionBeaconPeriod(); +extern BOOL FUN_0202D2D0(); + +THUMB_FUNC void FUN_0202E29C(struct PlayerData *player_data) +{ + if (UNK_021C59E8.unk8 == NULL) + { + UNK_021C59E8.unk8 = AllocFromHeap(0xf, sizeof(struct UnkStruct2)); + MI_CpuFill8(UNK_021C59E8.unk8, 0, sizeof(struct UnkStruct2)); + + UNK_021C59E8.unk8->unkCA4 = AllocFromHeap(0xf, FUN_0202CEEC()); + MI_CpuFill8(UNK_021C59E8.unk8->unkCA4, 0, FUN_0202CEEC()); + + UNK_021C59E8.unk8->unkCBC = AllocFromHeap(0xf, FUN_02023AC4()); + MI_CpuFill8(UNK_021C59E8.unk8->unkCBC, 0, FUN_02023AC4()); + + UNK_021C59E8.unk8->unkCC0 = 0x333; + UNK_021C59E8.unk8->unkCB8 = player_data; + + MailMsg_init(&UNK_021C59E8.unk8->unkCA8); + FUN_0202E500(); + } +} + +THUMB_FUNC BOOL FUN_0202E344() +{ + if (UNK_021C59E8.unk8 != NULL) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC BOOL FUN_0202E358(u8 *param0, u8 *param1, s32 param2) +{ + int i = 0; + while (i < param2) + { + if (*param0 != *param1) + { + return FALSE; + } + + i++; + param0++; + param1++; + } + + return TRUE; +} + +THUMB_FUNC void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1) +{ +#pragma unused(param1) + s32 r5 = FUN_02033534(); + u8 r6 = FUN_0203354C(); + struct UnkStruct2_sub4 *r4 = ¶m0->unk50; + + if (r5 != 0xe) + { + if (FUN_0202D8B0(r4->unk04) == 0 || FUN_0202D8B0(r5) == 0) + { + if (r4->unk30[0x24] != 0) + { + if (r4->unk04 == 0xa) + { + return; + } + } + + if (r4->unk04 != r5) + { + return; + } + } + } + + if (r5 != 0xe) + { + if (r4->unk05 != r6) + { + return; + } + } + + for (int i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + continue; + } + + if (!FUN_0202E358(UNK_021C59E8.unk8->unk054[i].unk04, param0->unk04, 6)) + { + continue; + } + + UNK_021C59E8.unk8->unkC84[i] = 0x96; + + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct2_sub)); + return; + } + + int i; + for (i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + break; + } + } + + if (i < 0x10) + { + UNK_021C59E8.unk8->unkC84[i] = 0x96; + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct2_sub)); + UNK_021C59E8.unk8->unkCB4 = 1; + } +} + +THUMB_FUNC void FUN_0202E470(u32 param0, u32 param1) +{ +#pragma unused(param0) + if (param1 != 0) + { + OS_Terminate(); + } + + UNK_021C59E8.unk4 = 2; +} + +THUMB_FUNC void FUN_0202E488() +{ + UNK_021C59E8.unk4 = 0; + FUN_02016454(4); +} + +THUMB_FUNC void FUN_0202E49C() +{ + FUN_02016444(4); + UNK_021C59E8.unk4 = 1; + if (FUN_02090DB8(8, FUN_0202E470, 0) != 1) + { + OS_Terminate(); + } +} + +THUMB_FUNC BOOL FUN_0202E4C8() +{ + if (UNK_021C59E8.unk4 == 2) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC BOOL FUN_0202E4DC() +{ + if (UNK_021C59E8.unk4 != 0) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_0202E4F0() +{ + FUN_02090CC8(FUN_0202E488, 0); +} + +THUMB_FUNC void FUN_0202E500() +{ + UNK_021C59E8.unk8->unkCB0 = 0; + FUN_0202CE64(UNK_021C59E8.unk8->unkCA4 + (32 - (u32)(UNK_021C59E8.unk8->unkCA4) % 32)); + + FUN_0202CB70(UNK_021C59E8.unk8->unkCC0); +} + +THUMB_FUNC void FUN_0202E538() +{ + for (int i = 0; i < 0x10; i++) + { + UNK_021C59E8.unk8->unkC84[i] = 0; + } + + MI_CpuFill8(UNK_021C59E8.unk8->unk054, 0, 0xC00); +} + +THUMB_FUNC void FUN_0202E56C(u32 param0) +{ + UNK_021C59E8.unk8->unkDAD = + (UNK_021C59E8.unk8->unkDAD & ~8 | (u32)((u8)param0 << 0x1f) >> 0x1c); +} + +THUMB_FUNC void FUN_0202E594() +{ + UNK_021C59E8.unk8->unkCB4 = 0; + + UNK_021C59E8.unk8->unkDAD &= ~1; + + UNK_021C59E8.unk8->unkDAD &= ~4; + + UNK_021C59E8.unk8->unkDAA = 0; + + UNK_021C59E8.unk8->unkDAD &= ~0x10; + + UNK_021C59E8.unk8->unkDAC = 0; + + UNK_021C59E8.unk8->unkDAB = 0; +} + +THUMB_FUNC BOOL FUN_0202E5F8(u32 param0, u32 param1, u32 param2) +{ +#pragma unused(param0) + FUN_0202E594(); + FUN_0202E56C(param1); + FUN_0202D2F4(); + + if (UNK_021C59E8.unk8->unkDAB == 0) + { + FUN_0202D0A0(FUN_020303BC, 0xe); + UNK_021C59E8.unk8->unkDAB = 1; + } + + UNK_021C59E8.unk8->unkDAD = + (UNK_021C59E8.unk8->unkDAD & ~0x20 | (u32)((u8)param2 << 0x1f) >> 0x1a); + if (FUN_0202CBD4() == 1 && FUN_0202CBFC() != 0) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC u32 FUN_0202E66C(u32 param0, u32 param1) +{ +#pragma unused(param0) + FUN_0202E594(); + if (param1 != 0) + { + FUN_0202E538(); + } + + if (UNK_021C59E8.unk8->unkDAB == 0) + { + FUN_0202D0A0(FUN_02030238, 0xe); + UNK_021C59E8.unk8->unkDAB = 1; + } + + if (FUN_0202CBD4() == 1) + { + struct UnkStruct_const st0 = UNK_020EEC40; + + if (FUN_0202C570(FUN_0202E380, st0.unk0, 0) != 0) + { + return 1; + } + } + + return 0; +} + +THUMB_FUNC u32 FUN_0202E6F0() +{ + if (UNK_021C59E8.unk8 == NULL) + { + return 1; + } + + switch (UNK_021C59E8.unk8->unkDAC) + { + case 0: + if (FUN_0202D21C() != 0) + { + FUN_0202C770(); + UNK_021C59E8.unk8->unkDAC = 1; + } + else if (FUN_0202D1E4() == 0) + { + FUN_0202D100(); + UNK_021C59E8.unk8->unkDAC = 2; + } + break; + + case 1: + if (FUN_0202D1E4() == 0) + { + FUN_0202D100(); + UNK_021C59E8.unk8->unkDAC = 2; + } + break; + case 2: + if (FUN_0202D1C8() != 0) + { + return 1; + } + + if (FUN_0202D200() != 0) + { + UNK_021C59E8.unk8->unkDAC = 1; + } + break; + } + + return 0; +} + +THUMB_FUNC BOOL FUN_0202E784() +{ + if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkDAA == 0) + { + UNK_021C59E8.unk8->unkDAA = 1; + FUN_0202D100(); + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_0202E7B0(u32 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + if (param0 != 0) + { + UNK_021C59E8.unk8->unkDAA = 2; + return; + } + + UNK_021C59E8.unk8->unkDAA = 0; + FUN_0202E500(); + } +} + +THUMB_FUNC void FUN_0202E7D8() +{ + FreeToHeap(UNK_021C59E8.unk8->unkCBC); + FreeToHeap(UNK_021C59E8.unk8->unkCA4); + FreeToHeap(UNK_021C59E8.unk8); + + UNK_021C59E8.unk8 = NULL; +} + +THUMB_FUNC u32 FUN_0202E810() +{ + if (FUN_02030F40() == 0) + { + return 0; + } + + u32 count = 0; + for (int i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] != 0) + { + count++; + } + } + + return count; +} + +THUMB_FUNC s32 FUN_0202E844(u32 param0) +{ + int i; + u32 count = 0; + for (i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + continue; + } + + if (count == param0) + { + return i; + } + + count++; + } + + ErrorHandling(); + return 0; +} + +THUMB_FUNC u8 FUN_0202E878() +{ + return UNK_021C59E8.unk8->unkCB4; +} + +THUMB_FUNC void FUN_0202E88C() +{ + UNK_021C59E8.unk8->unkCB4 = 0; +} + +THUMB_FUNC s32 FUN_0202E8A0(s32 param0) +{ + if (UNK_021C59E8.unk8->unkC84[param0] != 0) + { + if (UNK_021C59E8.unk8->unk054[param0].unk50.unk06 == 0) + { + return 1; + } + else + { + return UNK_021C59E8.unk8->unk054[param0].unk50.unk06; + } + } + + return 0; +} + +THUMB_FUNC s32 FUN_0202E8D0(s32 param0) +{ + for (int i = 0xf; i >= 0; i--) + { + s32 ret = FUN_0202E8A0(i); + if (ret > param0 && 8 > ret) + { + return i; + } + } + + return -1; +} + +THUMB_FUNC s32 FUN_0202E8F4() +{ + if (FUN_0202E810() == 0) + { + return -1; + } + + for (int i = 0xf; i >= 0; i--) + { + if (UNK_021C59E8.unk8->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59E8.unk8->unk054[i].unk04)) + { + s32 ret2 = FUN_0202E8A0(i); + if (ret2 > 1 && ret2 < 8) + { + return i; + } + } + } + + return -1; +} + +THUMB_FUNC s32 FUN_0202E950() +{ + if (FUN_0202E810() == 0) + { + return -1; + } + + for (int i = 0xf; i >= 0; i--) + { + if (UNK_021C59E8.unk8->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59E8.unk8->unk054[i].unk04)) + { + + return i; + } + } + + s32 ret = FUN_0202E8D0(1); + if (ret == -1) + { + return FUN_0202E8D0(0); + } + + return ret; +} + +THUMB_FUNC void FUN_0202E9AC(u32 param0, struct PlayerData *player_data) +{ + int i; + u32 count = 0; + for (i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + continue; + } + + if (param0 == count) + { + + PlayerProfile_Copy(FUN_0202EF84(i), player_data); + return; + } + + count++; + } +} + +THUMB_FUNC u32 FUN_0202E9E8(u32 param0) +{ + if (FUN_0202CBD4() == 2) + { + FUN_0202C770(); + return 0; + } + + if (FUN_0202CBD4() == 1) + { + s32 ret = FUN_02033534(); + UNK_021C59E8.unk8->unkDA8 = (u8)UNK_021C59E8.unk8->unk054[param0].unk36; + if (FUN_0202D8B0(ret) != 0) + { + FUN_0202C4D8(1, UNK_021C59E8.unk8->unk054[param0].unk04, 0); + } + else + { + FUN_0202D034(1, &UNK_021C59E8.unk8->unk054[param0]); + } + + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_0202EA54() +{ + for (int i = 0; i < 0x10; i++) + { + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + continue; + } + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + continue; + } + + UNK_021C59E8.unk8->unkC84[i]--; + + if (UNK_021C59E8.unk8->unkC84[i] == 0) + { + UNK_021C59E8.unk8->unkCB4 = 1; + } + } +} + +THUMB_FUNC void FUN_0202EA9C() +{ + s32 res = FUN_02033534(); + struct PlayerData *player_data = FUN_0202EF70(); + + if (res != 0xf) + { + struct UnkStruct2_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + GF_ASSERT((s32)FUN_02023AC4() <= 0x20); + GF_ASSERT(PlayerProfile_sizeof() == 0x20); + + MI_CpuCopy8(player_data, &res->unk08.unk08, PlayerProfile_sizeof()); + + MI_CpuCopy8(UNK_021C59E8.unk8->unkCBC, res->unk08.unk28, FUN_02023AC4()); + + res->unk00 = PlayerProfile_GetTrainerID(player_data); + res->unk04 = (u8)FUN_02033534(); + res->unk05 = FUN_0203354C(); + + MI_CpuCopy8(&UNK_021C59E8.unk8->unkCA8, &res->unk08.unk00, sizeof(struct MailMessage)); + res->unk08.unk4C = (u8)FUN_0202D358(); + } + else + { + struct UnkStruct2_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + res->unk00 = PlayerProfile_GetTrainerID(player_data); + res->unk04 = (u8)FUN_02033534(); + res->unk05 = FUN_0203354C(); + + MI_CpuCopy8(&UNK_021C59E8.unk8->unk000, &res->unk08, sizeof(struct UnkStruct2_sub3)); + } + + DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); + FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); +} + +THUMB_FUNC void FUN_0202EB7C() +{ + struct UnkStruct2_sub2 *r4 = &UNK_021C59E8.unk8->unkCC4; + if (r4->unk06 != FUN_0202EDB8()) + { + r4->unk06 = (u8)FUN_0202EDB8(); + DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); + FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); + + FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, + sizeof(struct UnkStruct2_sub2), + UNK_021C59E8.unk8->unkCC0, + UNK_021C59E8.unk0); + } +} + +THUMB_FUNC void FUN_0202EBD0(u16 param0) +{ + u32 r5 = FUN_0202CBD4(); + FUN_0202DF54(); + FUN_0202EB7C(); + + if (FUN_0202D19C() == 0 && FUN_0202EE24() == 0 && + ((u32)(UNK_021C59E8.unk8->unkDAD << 0x1d) >> 0x1f) != 0) + { + UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + } + + if (UNK_021C59E8.unk8->unkDA6 == 0xFFFF) + { + UNK_021C59E8.unk8->unkDA6 = param0; + } + + if (((u32)(UNK_021C59E8.unk8->unkDAD << 0x1e) >> 0x1f) != 0 && + UNK_021C59E8.unk8->unkDA6 > param0) + { + UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + } + + if (FUN_0202CBE8() == 25) + { + FUN_020335D0(0); + } + + switch (r5) + { + case 0: + if (UNK_021C59E8.unk8->unkDAA == 1) + { + FUN_0202E7D8(); + return; + } + else if (UNK_021C59E8.unk8->unkDAA == 2) + { + UNK_021C59E8.unk8->unkDAA = 3; + } + break; + + case 1: + if (UNK_021C59E8.unk8->unkDAA == 1 && FUN_0202D178() != 0) + { + return; + } + + if (UNK_021C59E8.unk8->unkDAA == 2 && FUN_0202D178() != 0) + { + return; + } + + break; + + case 8: + case 9: + + if (UNK_021C59E8.unk8 != NULL) + { + UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + return; + } + break; + + case 7: + u16 r0 = FUN_0202CDA4(); + if (UNK_021C59E8.unk8->unkDA9 == 0) + { + UNK_021C59E8.unk8->unkDA4 = r0; + UNK_021C59E8.unk8->unkDA9 = 5; + } + else + { + UNK_021C59E8.unk8->unkDA9--; + } + + u16 r5 = UNK_021C59E8.unk8->unkDA4; + if ((u32)(UNK_021C59E8.unk8->unkDAD << 0x1c) >> 0x1f != 0) + { + UNK_021C59E8.unk0++; + } + + FUN_0202EA9C(); + + FUN_0202CF84(0, + UNK_021C59E8.unk0, + r5, + FUN_0202D858((u16)FUN_02033534()), + FUN_0202EEE8((u16)FUN_02033534()), + (u32)(UNK_021C59E8.unk8->unkDAD << 0x1a) >> 0x1f); + + UNK_021C59E8.unk8->unkDA8 = (u8)r5; + + break; + } +} + +THUMB_FUNC void FUN_0202ED70(u16 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + FUN_0202EBD0(param0); + } +} + +THUMB_FUNC u32 FUN_0202ED84(u16 param0) +{ + if (UNK_021C59E8.unk8 == NULL) + { + return 0; + } + + if (FUN_0202CBD4() != 4) + { + return 0; + } + + if ((FUN_0202CB8C() & (1 << param0)) == 0) + { + return 0; + } + + return 1; +} + +THUMB_FUNC u32 FUN_0202EDB8() +{ + u32 count = 0; + for (int i = 0; i < 8; i++) + { + if (FUN_0202ED84((u16)i) != 0) + { + count++; + } + } + + return count; +} + +THUMB_FUNC BOOL FUN_0202EDD8() +{ + if (UNK_021C59E8.unk8 != NULL) + { + if (UNK_021C59E8.unk8->unkDAA == 3) + { + return TRUE; + } + } + + return FALSE; +} + +THUMB_FUNC BOOL FUN_0202EDF8() +{ + if (UNK_021C59E8.unk8 != NULL) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC u32 FUN_0202EE0C() +{ + if (UNK_021C59E8.unk8 != NULL) + { + return FUN_0202D1C8(); + } + + return 1; +} + +THUMB_FUNC u32 FUN_0202EE24() +{ + if (UNK_021C59E8.unk8 != NULL) + { + return FUN_0202CB8C() & 0xFFFE; + } + + return 0; +} + +THUMB_FUNC BOOL FUN_0202EE44() +{ + if (FUN_0202EE60() && FUN_0202CBE8() == 0x14) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC BOOL FUN_0202EE60() +{ + if (UNK_021C59E8.unk8 != NULL && (u32)(UNK_021C59E8.unk8->unkDAD << 0x1f) >> 0x1f != 0) + { + return TRUE; + } + + return FALSE; +} + +THUMB_FUNC void FUN_0202EE84(u32 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + UNK_021C59E8.unk8->unkDAD = + (UNK_021C59E8.unk8->unkDAD & ~4) | (u32)((u8)param0 << 0x1f) >> 0x1d; + } +} + +THUMB_FUNC void FUN_0202EEB0(u32 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + UNK_021C59E8.unk8->unkDAD = + (UNK_021C59E8.unk8->unkDAD & ~2) | (u32)((u8)param0 << 0x1f) >> 0x1e; + + UNK_021C59E8.unk8->unkDA6 = 0xFFFF; + } +} + +THUMB_FUNC u32 FUN_0202EEE8(u16 param0) +{ + u16 r4 = WM_GetDispersionBeaconPeriod(); + GF_ASSERT(param0 < 0x1a); + + if (param0 == 0xa) + { + return (u32)(r4 << 0xe) >> 0x10; + } + + if (param0 == 9 || param0 == 0xd) + { + return (u32)(r4 << 0xe) >> 0x10; + } + + return r4; +} + +THUMB_FUNC struct UnkStruct2_sub *FUN_0202EF18(u32 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + if (UNK_021C59E8.unk8->unkC84[param0] != 0) + { + return &UNK_021C59E8.unk8->unk054[param0]; + } + } + + return NULL; +} + +THUMB_FUNC struct UnkStruct2_sub4 *FUN_0202EF44(s32 param0) +{ + if (UNK_021C59E8.unk8 != NULL) + { + if (UNK_021C59E8.unk8->unkC84[param0] != 0) + { + return &UNK_021C59E8.unk8->unk054[param0].unk50; + } + } + + return NULL; +} + +THUMB_FUNC struct PlayerData *FUN_0202EF70() +{ + return UNK_021C59E8.unk8->unkCB8; +} + +THUMB_FUNC struct PlayerData *FUN_0202EF84(int param0) +{ + if (UNK_021C59E8.unk8->unkC84[param0] == 0) + { + return NULL; + } + + struct UnkStruct2_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + + return &r0->unk10; +} + +THUMB_FUNC void FUN_0202EFAC(u8 *param0, s32 param1) +{ + if (UNK_021C59E8.unk8 != NULL) + { + GF_ASSERT(param1 < 8); + + MI_CpuCopy8(param0, UNK_021C59E8.unk8->unkC54[param1], 6); + } +} + +#ifdef NONMATCHING +THUMB_FUNC BOOL FUN_0202EFE4(u8 *param0) +{ + + for (int i = 0; i < 8; i++) + { + if (UNK_021C59E8.unk8->unkC54[i][0] != param0[0]) + { + continue; + } + + if (UNK_021C59E8.unk8->unkC54[i][1] != param0[1]) + { + continue; + } + if (UNK_021C59E8.unk8->unkC54[i][2] != param0[2]) + { + continue; + } + if (UNK_021C59E8.unk8->unkC54[i][3] != param0[3]) + { + continue; + } + if (UNK_021C59E8.unk8->unkC54[i][4] != param0[4]) + { + continue; + } + if (UNK_021C59E8.unk8->unkC54[i][5] != param0[5]) + { + continue; + } + + return TRUE; + } + + return FALSE; +} +#else +THUMB_FUNC asm BOOL FUN_0202EFE4(u8 *param0) +{ + // clang-format off + push {r4-r5} + ldr r2, =UNK_021C59E8 + mov r1, #0x0 + ldr r3, [r2, #0x8] + ldr r2, =0x00000C54 + add r2, r3, r2 + ldrb r3, [r0, #0x0] +_0202EFF2: + ldrb r4, [r2, #0x0] + cmp r4, r3 + bne _0202F026 + ldrb r5, [r2, #0x1] + ldrb r4, [r0, #0x1] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x2] + ldrb r4, [r0, #0x2] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x3] + ldrb r4, [r0, #0x3] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x4] + ldrb r4, [r0, #0x4] + cmp r5, r4 + bne _0202F026 + ldrb r5, [r2, #0x5] + ldrb r4, [r0, #0x5] + cmp r5, r4 + bne _0202F026 + mov r0, #0x1 + pop {r4-r5} + bx lr +_0202F026: + add r1, r1, #0x1 + add r2, r2, #0x6 + cmp r1, #0x8 + blt _0202EFF2 + mov r0, #0x0 + pop {r4-r5} + bx lr + // clang-format on +} +#endif + +THUMB_FUNC u32 FUN_0202F03C() +{ + if (UNK_021C59E8.unk8 != NULL) + { + return (u32)(UNK_021C59E8.unk8->unkDAD << 0x1b) >> 0x1f; + } + + return 0; +} + +THUMB_FUNC void FUN_0202F05C() +{ + if (UNK_021C59E8.unk8 != NULL) + { + UNK_021C59E8.unk8->unkDAD |= 0x10; + } +} + +THUMB_FUNC void FUN_0202F078(struct MailMessage *mail_message) +{ + MI_CpuCopy8(mail_message, &UNK_021C59E8.unk8->unkCA8, sizeof(struct MailMessage)); +} + +THUMB_FUNC void FUN_0202F094(void *param0) +{ + MI_CpuCopy8(param0, UNK_021C59E8.unk8->unkCBC, FUN_02023AC4()); +} + +THUMB_FUNC void FUN_0202F0B8() +{ + FUN_0202EA9C(); + FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, + sizeof(struct UnkStruct2_sub2), + UNK_021C59E8.unk8->unkCC0, + UNK_021C59E8.unk0); +} + +THUMB_FUNC u32 FUN_0202F0DC(u8 param0) +{ + int i; + u32 r5 = 0; + for (i = 0; i < 0x10; i++) + { + struct UnkStruct2_sub4 *res = FUN_0202EF44(i); + if (res != 0 && res->unk04 == param0) + { + r5 += res->unk06; + } + } + + return r5; +} + +THUMB_FUNC BOOL FUN_0202F104() +{ + return FUN_0202D2D0(); +} + +THUMB_FUNC void FUN_0202F10C(struct UnkStruct2_sub3 *param0) +{ + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk000, sizeof(struct UnkStruct2_sub3)); + FUN_0202F0B8(); +} + +THUMB_FUNC u8 *FUN_0202F124(u32 param0) +{ + if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkC84[param0] != 0) + { + struct UnkStruct2_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + return r0->unk08; + } + + return NULL; +} diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index b8a42687a..a7f69f3c5 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -1044,7 +1044,7 @@ THUMB_FUNC void FUN_02030074() } } -THUMB_FUNC void FUN_02030238(u32 param0, void *param1, u32 param2) +THUMB_FUNC void FUN_02030238(u32 param0, u8 *param1, u32 param2) { if (UNK_021C59F4.unk04->unk66F[0] != 0) { @@ -1143,7 +1143,7 @@ THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2) FUN_0202D3A4(&UNK_021C59F4.unk04->unk470, param1 + 4, param1[3], 0x5FF); } -THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2) +THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u32 param2) { if (UNK_021C59F4.unk04->unk66F[param0] != 0) { @@ -1156,7 +1156,7 @@ THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2) FUN_020303F4(param0, param1, param2); } -THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u16 param2) +THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u32 param2) { #pragma unused(param2) UNK_021C59F4.unk04->unk638[param0]--; @@ -2469,4 +2469,4 @@ THUMB_FUNC void FUN_02031468() { UNK_021C59F4.unk04->unk68A = 1; } -} \ No newline at end of file +} diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 3222232c3..78bfd90ae 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -58,7 +58,7 @@ extern void MOD04_021D83C0(); extern s32 MOD04_021D7F8C(); extern s32 MOD04_021D7800(u32 param0); extern u32 MOD04_021D8494(s32 param0); -extern void MOD04_021D77C4(void (*param0)(u32, u8 *, u16), void (*param1)(u32, void *, u32)); +extern void MOD04_021D77C4(void (*param0)(u32, u8 *, u32), void (*param1)(u32, u8 *, u32)); extern u32 MOD04_021D82BC(u8 param0); extern void MOD04_021D836C(); extern u32 MOD04_021DD718(u32 *param0, u32 *param1); diff --git a/include/unk_0202E29C.h b/include/unk_0202E29C.h new file mode 100644 index 000000000..d755d3f52 --- /dev/null +++ b/include/unk_0202E29C.h @@ -0,0 +1,137 @@ +#ifndef POKEDIAMOND_UNK_0202E29C_H +#define POKEDIAMOND_UNK_0202E29C_H + +#include "global.h" +#include "mail_message.h" +#include "player_data.h" + +struct UnkStruct2_sub4 { + u32 unk00; + u8 unk04; + u8 unk05; + u8 unk06; + u8 unk07; + u8 unk08[8]; + struct PlayerData unk10; + u8 unk30[0x40]; +}; + +struct UnkStruct2_sub +{ + u32 unk00; + u8 unk04[6]; + u8 unk0A[0x2C]; + u16 unk36; + u8 unk38[0x18]; + struct UnkStruct2_sub4 unk50; +}; + +struct UnkStruct2_sub3 +{ + struct MailMessage unk00; + struct PlayerData unk08; + u8 unk28[0x20]; + u8 unk48[0x4]; + u8 unk4C; + u8 unk4D[7]; +}; + +struct UnkStruct2_sub2 +{ + u32 unk00; + u8 unk04; + u8 unk05; + u8 unk06; + struct UnkStruct2_sub3 unk08; +}; + +struct UnkStruct2 +{ + struct UnkStruct2_sub3 unk000; + struct UnkStruct2_sub unk054[16]; + u8 unkC54[8][6]; + u16 unkC84[16]; + void *unkCA4; + struct MailMessage unkCA8; + u32 unkCB0; + u8 unkCB4; + struct PlayerData *unkCB8; + void *unkCBC; + u32 unkCC0; + struct UnkStruct2_sub2 unkCC4; + u8 unkD20[0x84]; + u16 unkDA4; + u16 unkDA6; + u8 unkDA8; + u8 unkDA9; + u8 unkDAA; + u8 unkDAB; + u8 unkDAC; + u8 unkDAD; + u8 unkDAE[0x2]; +}; + + +void FUN_0202E29C(struct PlayerData *player_data); +BOOL FUN_0202E344(); +BOOL FUN_0202E358(u8 *param0, u8 *param1, s32 param2); +void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1); +void FUN_0202E470(u32 param0, u32 param1); +void FUN_0202E488(); +void FUN_0202E49C(); +BOOL FUN_0202E4C8(); +BOOL FUN_0202E4DC(); +void FUN_0202E4F0(); +void FUN_0202E500(); +void FUN_0202E538(); +void FUN_0202E56C(u32 param0); +void FUN_0202E594(); +BOOL FUN_0202E5F8(u32 param0, u32 param1, u32 param2); +u32 FUN_0202E66C(u32 param0, u32 param1); +u32 FUN_0202E6F0(); +BOOL FUN_0202E784(); +void FUN_0202E7B0(u32 param0); +void FUN_0202E7D8(); +u32 FUN_0202E810(); +s32 FUN_0202E844(u32 param0); +u8 FUN_0202E878(); +void FUN_0202E88C(); +s32 FUN_0202E8A0(s32 param0); +s32 FUN_0202E8D0(s32 param0); +s32 FUN_0202E8F4(); +s32 FUN_0202E950(); +void FUN_0202E9AC(u32 param0, struct PlayerData *player_data); +u32 FUN_0202E9E8(u32 param0); +void FUN_0202EA54(); +void FUN_0202EA9C(); +void FUN_0202EB7C(); +void FUN_0202EBD0(u16 param0); +void FUN_0202ED70(u16 param0); +u32 FUN_0202ED84(u16 param0); +u32 FUN_0202EDB8(); +BOOL FUN_0202EDD8(); +BOOL FUN_0202EDF8(); +u32 FUN_0202EE0C(); +u32 FUN_0202EE24(); +BOOL FUN_0202EE44(); +BOOL FUN_0202EE60(); +void FUN_0202EE84(u32 param0); +void FUN_0202EEB0(u32 param0); +u32 FUN_0202EEE8(u16 param0); +struct UnkStruct2_sub *FUN_0202EF18(u32 param0); +struct UnkStruct2_sub4 *FUN_0202EF44(s32 param0); +struct PlayerData *FUN_0202EF70(); +struct PlayerData *FUN_0202EF84(int param0); +void FUN_0202EFAC(u8 *param0, s32 param1); +BOOL FUN_0202EFE4(u8 *param0); +u32 FUN_0202F03C(); +void FUN_0202F05C(); +void FUN_0202F078(struct MailMessage *mail_message); +void FUN_0202F094(void *param0); +void FUN_0202F0B8(); +u32 FUN_0202F0DC(u8 param0); +BOOL FUN_0202F104(); +void FUN_0202F10C(struct UnkStruct2_sub3 *param0); +u8 *FUN_0202F124(u32 param0); + +#endif // POKEDIAMOND_UNK_0202E29C_H diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 49c58a52d..4e19812a3 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -113,10 +113,10 @@ THUMB_FUNC void FUN_0202FCCC(); THUMB_FUNC u32 FUN_0202FE2C(int param0); THUMB_FUNC void FUN_0202FEEC(); THUMB_FUNC void FUN_02030074(); -THUMB_FUNC void FUN_02030238(u32 param0, void *param1, u32 param2); +THUMB_FUNC void FUN_02030238(u32 param0, u8 *param1, u32 param2); THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2); -THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u16 param2); +THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u32 param2); +THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u32 param2); THUMB_FUNC void FUN_020304D4(u32 param0); THUMB_FUNC void FUN_020304F0(u32 param0); THUMB_FUNC void FUN_0203050C(); From 0a89ace18db732440c498c1684e287e164b6d76d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 8 May 2021 12:28:24 +0200 Subject: [PATCH 032/134] externs cleanup --- arm9/src/unk_0202F150.c | 26 +++++++---------------- arm9/src/unk_02031734.c | 47 ++++++++++++++--------------------------- include/unk_0202E29C.h | 4 ++-- include/unk_0202F150.h | 4 ++-- 4 files changed, 28 insertions(+), 53 deletions(-) diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index a7f69f3c5..d52857c17 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -1,6 +1,8 @@ #include "unk_0202F150.h" #include "unk_02031480.h" #include "unk_02031734.h" +#include "unk_0202E29C.h" + struct { @@ -15,20 +17,11 @@ extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 * extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); extern void FUN_0202D394(struct UnkStruct0202F150_sub1 *param0, u8 *param1, u32 param2); extern void FUN_0202D804(u8 *param0); -extern u32 FUN_0202E5F8(u32 param0, u32 param1, u32 param2); extern void FUN_0202D330(void (*param0)(int)); -extern u32 FUN_0202E66C(u32 param0, u32 param1); extern void MOD04_021D83C0(); -extern u32 FUN_0202E784(); extern void FUN_0202DBA4(); extern void FUN_0200CAB4(u32 param0); extern void FUN_0202D824(u8 *param0); -extern u32 FUN_0202E9E8(u32 param0); -extern u32 FUN_0202F03C(); -extern u32 FUN_0202EE24(); -extern void FUN_0202EBD0(u16 param0); -extern void FUN_0202ED70(u32 param0); -extern void FUN_0202E538(); extern u32 MOD04_021D78FC(void *param0, u32 param1); extern u32 FUN_0202CBD4(); extern void FUN_0202D4BC(void *param0); @@ -49,10 +42,7 @@ extern s16 FUN_0202D9A0(u32 param0); extern u32 FUN_0202DA04(u32 param0); extern void *FUN_0202DA40(u32 param0, u32 param1, u16 param2); extern u32 MOD04_021D8018(); -extern u32 FUN_0202EDF8(); extern u16 FUN_0202D19C(); -extern u32 FUN_0202EE60(); -extern void FUN_0202F05C(); extern void GF_RTC_CopyDateTime(RTCDate *, RTCTime *); extern void FUN_0202D830(u8 *param0, u32 param1); extern u32 MOD04_021D8624(); @@ -472,7 +462,7 @@ THUMB_FUNC void FUN_0202FA5C() } else { - if (FUN_0202E784() != 0) + if (FUN_0202E784()) { r4 = 1; } @@ -2033,11 +2023,11 @@ THUMB_FUNC s32 FUN_02030F20() return r4; } -THUMB_FUNC u32 FUN_02030F40() +THUMB_FUNC BOOL FUN_02030F40() { if (UNK_021C59F4.unk04 != NULL && FUN_02033534() >= 0x13) { - return 1; + return TRUE; } return FUN_0202EDF8(); @@ -2221,17 +2211,17 @@ THUMB_FUNC u32 FUN_020311E8() return FUN_0202EE24(); } -THUMB_FUNC u32 FUN_020311F0() +THUMB_FUNC BOOL FUN_020311F0() { if (FUN_02031280() != 0) { - return 0; + return FALSE; } if (UNK_021C59F4.unk04 != NULL && UNK_021C59F4.unk04->unk689 != 0) { FUN_020334E8(1, 1); - return 1; + return TRUE; } return FUN_0202EE60(); diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 78bfd90ae..65ed3bc47 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -5,6 +5,8 @@ #include "heap.h" #include "player_data.h" #include "unk_0202F150.h" +#include "unk_0202E29C.h" + const struct UnkStruct_02031734_const2 UNK_020EEC48 = { { (u32)FUN_02032B84, 0 } }; @@ -24,33 +26,19 @@ char UNK_02105D64[] = " FULL"; struct UnkStruct_02031734 *UNK_021C5A00; -extern void FUN_0202E49C(); extern void FUN_0202D8D0(u32 param0, u32 param1, u32 param2); extern void FUN_02033E74(); extern void FUN_0202D918(); extern void FUN_02033ED0(); -extern void FUN_0202E4F0(); extern void FUN_0202D298(); extern void FUN_0202D344(u32 param0); extern void FUN_0202D1B0(u8 param0); extern void FUN_0202D36C(u32 param0); extern u32 MOD04_021DDB08(); extern void FUN_02033EEC(u32 param0); -extern u32 FUN_0202EDF8(); extern u32 WM_GetLinkLevel(); -extern u32 FUN_0202E4C8(); -extern void FUN_0202E29C(struct PlayerData *player_data); extern void FUN_0202DB14(struct SaveBlock2 *sav2, u32 param1); extern s64 _ll_mul(s64, s64); -extern u32 FUN_0202EE0C(); -extern void FUN_0202EA54(); -extern s32 FUN_0202E8F4(); -extern s32 FUN_0202E950(); -extern u32 FUN_0202E8A0(u8 param0); -extern u32 FUN_0202E6F0(); -extern void FUN_0202EE84(u8 param0); -extern void FUN_0202E7B0(u32 param0); -extern u32 FUN_0202F104(); extern void FUN_0202DBE0(); extern void FUN_0202DDE8(); extern void FUN_0202D308(void (*param0)(u32, u32)); @@ -66,11 +54,8 @@ extern void MOD04_021DD6F0(); extern s32 MOD04_021D76AC(); extern MOD05_021D74E0(struct SaveBlock2 *sav2, u32 param1); extern void MOD04_021D83A8(void (*param0)(s32)); -extern void FUN_0202EEB0(u8 param0); extern void FUN_02033F70(int, int, int); extern void FUN_0200541C(); -extern u32 FUN_0202EDD8(); -extern u32 FUN_0202E344(); THUMB_FUNC void FUN_02031734(struct SaveBlock2 *sav2, u8 param1) { @@ -451,7 +436,7 @@ THUMB_FUNC void FUN_02031CDC() return; } - if (FUN_0202EDF8() != 0) + if (FUN_0202EDF8()) { FUN_02033EEC(3 - WM_GetLinkLevel()); } @@ -471,7 +456,7 @@ THUMB_FUNC void FUN_02031D30() return; } - if (FUN_0202E4C8() == 0) + if (!FUN_0202E4C8()) { return; } @@ -726,7 +711,7 @@ THUMB_FUNC void FUN_02032178() THUMB_FUNC void FUN_02032194() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E7B0(0); FUN_0202FC60(); @@ -744,7 +729,7 @@ THUMB_FUNC void FUN_020321B8() THUMB_FUNC void FUN_020321D0() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, UNK_021C5A00->unk30); @@ -774,7 +759,7 @@ THUMB_FUNC void FUN_02032234() THUMB_FUNC void FUN_0203224C() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, UNK_021C5A00->unk30); @@ -925,7 +910,7 @@ THUMB_FUNC void FUN_02032440() THUMB_FUNC void FUN_02032478() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202D1B0(UNK_021C5A00->unk3C); @@ -978,7 +963,7 @@ THUMB_FUNC void FUN_02032510() THUMB_FUNC void FUN_02032578() { - if (FUN_0202F104() == 0) + if (!FUN_0202F104()) { if (FUN_020311E8() != 0) { @@ -1394,7 +1379,7 @@ THUMB_FUNC void FUN_02032B84() THUMB_FUNC void FUN_02032B8C() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, 0); @@ -1479,7 +1464,7 @@ THUMB_FUNC void FUN_02032C6C(u32 param0, u32 param1) THUMB_FUNC void FUN_02032CF4() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, 0); @@ -1545,7 +1530,7 @@ THUMB_FUNC BOOL FUN_02032DAC() THUMB_FUNC void FUN_02032E00() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, 0); @@ -1559,7 +1544,7 @@ THUMB_FUNC void FUN_02032E00() THUMB_FUNC void FUN_02032E48() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_0202E29C(UNK_021C5A00->unk2C); FUN_0202DB14(UNK_021C5A00->unk28, 0); @@ -1981,7 +1966,7 @@ THUMB_FUNC void FUN_020333F0() THUMB_FUNC void FUN_0203341C() { - if (FUN_0202E4C8() != 0) + if (FUN_0202E4C8()) { FUN_02016828(3, 0x31, 0x31000); if (FUN_0202F918(1, 1, 0x200, 1) != 0) @@ -2164,12 +2149,12 @@ THUMB_FUNC void FUN_020335F4() THUMB_FUNC BOOL FUN_02033678() { - if (FUN_0202EDD8() != 0 || !FUN_02031810()) + if (FUN_0202EDD8() || !FUN_02031810()) { return TRUE; } - if (FUN_0202E344() == 0) + if (!FUN_0202E344()) { return TRUE; } diff --git a/include/unk_0202E29C.h b/include/unk_0202E29C.h index d755d3f52..1339ca090 100644 --- a/include/unk_0202E29C.h +++ b/include/unk_0202E29C.h @@ -5,7 +5,8 @@ #include "mail_message.h" #include "player_data.h" -struct UnkStruct2_sub4 { +struct UnkStruct2_sub4 +{ u32 unk00; u8 unk04; u8 unk05; @@ -71,7 +72,6 @@ struct UnkStruct2 u8 unkDAE[0x2]; }; - void FUN_0202E29C(struct PlayerData *player_data); BOOL FUN_0202E344(); BOOL FUN_0202E358(u8 *param0, u8 *param1, s32 param2); diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 4e19812a3..ea0846c6c 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -146,7 +146,7 @@ THUMB_FUNC void FUN_02030DA4(); THUMB_FUNC void FUN_02030DFC(); THUMB_FUNC u32 FUN_02030E7C(u16 param0); THUMB_FUNC s32 FUN_02030F20(); -THUMB_FUNC u32 FUN_02030F40(); +THUMB_FUNC BOOL FUN_02030F40(); THUMB_FUNC void FUN_02030F60(u8 param0); THUMB_FUNC u8 FUN_02030F74(u32 param0); THUMB_FUNC u32 FUN_02030F88(u32 param0); @@ -163,7 +163,7 @@ THUMB_FUNC u16 FUN_02031190(); THUMB_FUNC u32 FUN_020311D0(u32 param0, u8 *param1); THUMB_FUNC u32 FUN_020311DC(u32 param0); THUMB_FUNC u32 FUN_020311E8(); -THUMB_FUNC u32 FUN_020311F0(); +THUMB_FUNC BOOL FUN_020311F0(); THUMB_FUNC int FUN_02031228(u16 param0); THUMB_FUNC int FUN_02031248(u32 param0); THUMB_FUNC int FUN_02031258(u32 param0); From 5f893fd3ce282c293c42a3e5421aa8256972f90d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 8 May 2021 12:31:19 +0200 Subject: [PATCH 033/134] better struct names --- arm9/src/unk_0202E29C.c | 58 ++++++++++++++++++++--------------------- include/unk_0202E29C.h | 28 ++++++++++---------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index 678f6fe38..36c18b162 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -10,18 +10,18 @@ #include "unk_0202F150.h" #include "unk_02031734.h" -struct UnkStruct_const +struct UnkStruct_0202E29C_const { u8 unk0[6]; }; -const struct UnkStruct_const UNK_020EEC40 = { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } }; +const struct UnkStruct_0202E29C_const UNK_020EEC40 = { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } }; struct { u16 unk0; u32 unk4; - struct UnkStruct2 *unk8; + struct UnkStruct_0202E29C *unk8; } UNK_021C59E8; @@ -35,7 +35,7 @@ extern void FUN_0202D2F4(); extern void FUN_0202D0A0(void (*param0)(u32, u8 *, u32), u32 param1); extern u32 FUN_0202CBD4(); extern u32 FUN_0202CBFC(); -extern u32 FUN_0202C570(void (*param0)(struct UnkStruct2_sub *, u32), u8 *param1, u32 param2); +extern u32 FUN_0202C570(void (*param0)(struct UnkStruct_0202E29C_sub *, u32), u8 *param1, u32 param2); extern u32 FUN_0202D21C(); extern void FUN_0202C770(); extern u32 FUN_0202D1E4(); @@ -43,7 +43,7 @@ extern void FUN_0202D100(); extern u32 FUN_0202D1C8(); extern u32 FUN_0202D200(); extern void FUN_0202C4D8(u32 param0, u8 *param1, u32 param2); -extern void FUN_0202D034(u32 param0, struct UnkStruct2_sub *param1); +extern void FUN_0202D034(u32 param0, struct UnkStruct_0202E29C_sub *param1); extern u32 FUN_0202D358(); extern void FUN_0202CB7C(void *param0, u32 param1); extern void FUN_0202D240(void *param0, u32 size, u32 param2, u32 param3); @@ -61,8 +61,8 @@ THUMB_FUNC void FUN_0202E29C(struct PlayerData *player_data) { if (UNK_021C59E8.unk8 == NULL) { - UNK_021C59E8.unk8 = AllocFromHeap(0xf, sizeof(struct UnkStruct2)); - MI_CpuFill8(UNK_021C59E8.unk8, 0, sizeof(struct UnkStruct2)); + UNK_021C59E8.unk8 = AllocFromHeap(0xf, sizeof(struct UnkStruct_0202E29C)); + MI_CpuFill8(UNK_021C59E8.unk8, 0, sizeof(struct UnkStruct_0202E29C)); UNK_021C59E8.unk8->unkCA4 = AllocFromHeap(0xf, FUN_0202CEEC()); MI_CpuFill8(UNK_021C59E8.unk8->unkCA4, 0, FUN_0202CEEC()); @@ -106,12 +106,12 @@ THUMB_FUNC BOOL FUN_0202E358(u8 *param0, u8 *param1, s32 param2) return TRUE; } -THUMB_FUNC void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1) +THUMB_FUNC void FUN_0202E380(struct UnkStruct_0202E29C_sub *param0, u32 param1) { #pragma unused(param1) s32 r5 = FUN_02033534(); u8 r6 = FUN_0203354C(); - struct UnkStruct2_sub4 *r4 = ¶m0->unk50; + struct UnkStruct_0202E29C_sub4 *r4 = ¶m0->unk50; if (r5 != 0xe) { @@ -154,7 +154,7 @@ THUMB_FUNC void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1) UNK_021C59E8.unk8->unkC84[i] = 0x96; - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct2_sub)); + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); return; } @@ -170,7 +170,7 @@ THUMB_FUNC void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1) if (i < 0x10) { UNK_021C59E8.unk8->unkC84[i] = 0x96; - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct2_sub)); + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); UNK_021C59E8.unk8->unkCB4 = 1; } } @@ -308,7 +308,7 @@ THUMB_FUNC u32 FUN_0202E66C(u32 param0, u32 param1) if (FUN_0202CBD4() == 1) { - struct UnkStruct_const st0 = UNK_020EEC40; + struct UnkStruct_0202E29C_const st0 = UNK_020EEC40; if (FUN_0202C570(FUN_0202E380, st0.unk0, 0) != 0) { @@ -608,7 +608,7 @@ THUMB_FUNC void FUN_0202EA9C() if (res != 0xf) { - struct UnkStruct2_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59E8.unk8->unkCC4; GF_ASSERT((s32)FUN_02023AC4() <= 0x20); GF_ASSERT(PlayerProfile_sizeof() == 0x20); @@ -625,29 +625,29 @@ THUMB_FUNC void FUN_0202EA9C() } else { - struct UnkStruct2_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59E8.unk8->unkCC4; res->unk00 = PlayerProfile_GetTrainerID(player_data); res->unk04 = (u8)FUN_02033534(); res->unk05 = FUN_0203354C(); - MI_CpuCopy8(&UNK_021C59E8.unk8->unk000, &res->unk08, sizeof(struct UnkStruct2_sub3)); + MI_CpuCopy8(&UNK_021C59E8.unk8->unk000, &res->unk08, sizeof(struct UnkStruct_0202E29C_sub3)); } - DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); - FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); + DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); } THUMB_FUNC void FUN_0202EB7C() { - struct UnkStruct2_sub2 *r4 = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *r4 = &UNK_021C59E8.unk8->unkCC4; if (r4->unk06 != FUN_0202EDB8()) { r4->unk06 = (u8)FUN_0202EDB8(); - DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); - FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct2_sub2)); + DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, - sizeof(struct UnkStruct2_sub2), + sizeof(struct UnkStruct_0202E29C_sub2), UNK_021C59E8.unk8->unkCC0, UNK_021C59E8.unk0); } @@ -894,7 +894,7 @@ THUMB_FUNC u32 FUN_0202EEE8(u16 param0) return r4; } -THUMB_FUNC struct UnkStruct2_sub *FUN_0202EF18(u32 param0) +THUMB_FUNC struct UnkStruct_0202E29C_sub *FUN_0202EF18(u32 param0) { if (UNK_021C59E8.unk8 != NULL) { @@ -907,7 +907,7 @@ THUMB_FUNC struct UnkStruct2_sub *FUN_0202EF18(u32 param0) return NULL; } -THUMB_FUNC struct UnkStruct2_sub4 *FUN_0202EF44(s32 param0) +THUMB_FUNC struct UnkStruct_0202E29C_sub4 *FUN_0202EF44(s32 param0) { if (UNK_021C59E8.unk8 != NULL) { @@ -932,7 +932,7 @@ THUMB_FUNC struct PlayerData *FUN_0202EF84(int param0) return NULL; } - struct UnkStruct2_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; return &r0->unk10; } @@ -1066,7 +1066,7 @@ THUMB_FUNC void FUN_0202F0B8() { FUN_0202EA9C(); FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, - sizeof(struct UnkStruct2_sub2), + sizeof(struct UnkStruct_0202E29C_sub2), UNK_021C59E8.unk8->unkCC0, UNK_021C59E8.unk0); } @@ -1077,7 +1077,7 @@ THUMB_FUNC u32 FUN_0202F0DC(u8 param0) u32 r5 = 0; for (i = 0; i < 0x10; i++) { - struct UnkStruct2_sub4 *res = FUN_0202EF44(i); + struct UnkStruct_0202E29C_sub4 *res = FUN_0202EF44(i); if (res != 0 && res->unk04 == param0) { r5 += res->unk06; @@ -1092,9 +1092,9 @@ THUMB_FUNC BOOL FUN_0202F104() return FUN_0202D2D0(); } -THUMB_FUNC void FUN_0202F10C(struct UnkStruct2_sub3 *param0) +THUMB_FUNC void FUN_0202F10C(struct UnkStruct_0202E29C_sub3 *param0) { - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk000, sizeof(struct UnkStruct2_sub3)); + MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk000, sizeof(struct UnkStruct_0202E29C_sub3)); FUN_0202F0B8(); } @@ -1102,7 +1102,7 @@ THUMB_FUNC u8 *FUN_0202F124(u32 param0) { if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkC84[param0] != 0) { - struct UnkStruct2_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; return r0->unk08; } diff --git a/include/unk_0202E29C.h b/include/unk_0202E29C.h index 1339ca090..d4316336c 100644 --- a/include/unk_0202E29C.h +++ b/include/unk_0202E29C.h @@ -5,7 +5,7 @@ #include "mail_message.h" #include "player_data.h" -struct UnkStruct2_sub4 +struct UnkStruct_0202E29C_sub4 { u32 unk00; u8 unk04; @@ -17,17 +17,17 @@ struct UnkStruct2_sub4 u8 unk30[0x40]; }; -struct UnkStruct2_sub +struct UnkStruct_0202E29C_sub { u32 unk00; u8 unk04[6]; u8 unk0A[0x2C]; u16 unk36; u8 unk38[0x18]; - struct UnkStruct2_sub4 unk50; + struct UnkStruct_0202E29C_sub4 unk50; }; -struct UnkStruct2_sub3 +struct UnkStruct_0202E29C_sub3 { struct MailMessage unk00; struct PlayerData unk08; @@ -37,19 +37,19 @@ struct UnkStruct2_sub3 u8 unk4D[7]; }; -struct UnkStruct2_sub2 +struct UnkStruct_0202E29C_sub2 { u32 unk00; u8 unk04; u8 unk05; u8 unk06; - struct UnkStruct2_sub3 unk08; + struct UnkStruct_0202E29C_sub3 unk08; }; -struct UnkStruct2 +struct UnkStruct_0202E29C { - struct UnkStruct2_sub3 unk000; - struct UnkStruct2_sub unk054[16]; + struct UnkStruct_0202E29C_sub3 unk000; + struct UnkStruct_0202E29C_sub unk054[16]; u8 unkC54[8][6]; u16 unkC84[16]; void *unkCA4; @@ -59,7 +59,7 @@ struct UnkStruct2 struct PlayerData *unkCB8; void *unkCBC; u32 unkCC0; - struct UnkStruct2_sub2 unkCC4; + struct UnkStruct_0202E29C_sub2 unkCC4; u8 unkD20[0x84]; u16 unkDA4; u16 unkDA6; @@ -75,7 +75,7 @@ struct UnkStruct2 void FUN_0202E29C(struct PlayerData *player_data); BOOL FUN_0202E344(); BOOL FUN_0202E358(u8 *param0, u8 *param1, s32 param2); -void FUN_0202E380(struct UnkStruct2_sub *param0, u32 param1); +void FUN_0202E380(struct UnkStruct_0202E29C_sub *param0, u32 param1); void FUN_0202E470(u32 param0, u32 param1); void FUN_0202E488(); void FUN_0202E49C(); @@ -118,8 +118,8 @@ BOOL FUN_0202EE60(); void FUN_0202EE84(u32 param0); void FUN_0202EEB0(u32 param0); u32 FUN_0202EEE8(u16 param0); -struct UnkStruct2_sub *FUN_0202EF18(u32 param0); -struct UnkStruct2_sub4 *FUN_0202EF44(s32 param0); +struct UnkStruct_0202E29C_sub *FUN_0202EF18(u32 param0); +struct UnkStruct_0202E29C_sub4 *FUN_0202EF44(s32 param0); struct PlayerData *FUN_0202EF70(); struct PlayerData *FUN_0202EF84(int param0); void FUN_0202EFAC(u8 *param0, s32 param1); @@ -131,7 +131,7 @@ void FUN_0202F094(void *param0); void FUN_0202F0B8(); u32 FUN_0202F0DC(u8 param0); BOOL FUN_0202F104(); -void FUN_0202F10C(struct UnkStruct2_sub3 *param0); +void FUN_0202F10C(struct UnkStruct_0202E29C_sub3 *param0); u8 *FUN_0202F124(u32 param0); #endif // POKEDIAMOND_UNK_0202E29C_H From 5200f263fc773b5bfb246af68619d96822a321b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 13 May 2021 19:38:55 +0200 Subject: [PATCH 034/134] more decomps --- arm9/asm/unk_02016B94.s | 2393 +------------------------------------ arm9/global.inc | 27 + arm9/src/unk_02016B94_c.c | 1988 +++++++++++++++++++++++++++++- include/unk_02016B94.h | 8 +- 4 files changed, 2010 insertions(+), 2406 deletions(-) diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 3423d0e77..43f2a2581 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -5,2402 +5,61 @@ .text - thumb_func_start FUN_020170F4 -FUN_020170F4: ; 0x020170F4 - push {r3-r7, lr} - sub sp, #0x20 - add r4, r1, #0x0 - add r5, r0, #0x0 - add r1, r2, #0x0 - add r0, r3, #0x0 - cmp r1, #0x0 - bne _0201710C - mov r2, #0x2c - mul r2, r4 - add r2, r5, r2 - strb r0, [r2, #0x1e] -_0201710C: - cmp r4, #0x7 - bls _02017112 - b _020177C4 -_02017112: - add r2, r4, r4 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0201711E: ; jump table (using 16-bit offset) - .short _0201712E - _0201711E - 2; case 0 - .short _0201719A - _0201711E - 2; case 1 - .short _02017206 - _0201711E - 2; case 2 - .short _0201733A - _0201711E - 2; case 3 - .short _0201746E - _0201711E - 2; case 4 - .short _020174F4 - _0201711E - 2; case 5 - .short _02017560 - _0201711E - 2; case 6 - .short _02017694 - _0201711E - 2; case 7 -_0201712E: - ldr r2, _02017480 ; =0x04000008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1e] - bne _0201714A - ldrh r3, [r2, #0x1e] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1e] - b _0201715C -_0201714A: - cmp r1, #0x2 - bne _0201715C - ldrh r3, [r2, #0x1e] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1e] -_0201715C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1e] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _02017480 ; =0x04000008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_0201719A: - ldr r2, _02017488 ; =0x0400000A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x1c] - bne _020171B6 - ldrh r3, [r2, #0x1c] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x1c] - b _020171C8 -_020171B6: - cmp r1, #0x2 - bne _020171C8 - ldrh r3, [r2, #0x1c] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x1c] -_020171C8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1c] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _02017488 ; =0x0400000A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017206: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201721A - cmp r3, #0x1 - beq _0201727A - cmp r3, #0x2 - beq _020172DA -_0201721A: - ldr r3, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x1a] - bne _02017236 - ldrh r4, [r3, #0x1a] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x1a] - b _02017248 -_02017236: - cmp r1, #0x2 - bne _02017248 - ldrh r4, [r3, #0x1a] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x1a] -_02017248: - add r0, sp, #0x0 - ldrh r3, [r0, #0x1a] - add r2, r5, r2 - ldr r6, _0201748C ; =0x0400000C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201727A: - ldr r2, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x18] - bne _02017296 - ldrh r3, [r2, #0x18] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x18] - b _020172A8 -_02017296: - cmp r1, #0x2 - bne _020172A8 - ldrh r3, [r2, #0x18] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x18] -_020172A8: - add r0, sp, #0x0 - ldrh r3, [r0, #0x18] - ldr r6, _0201748C ; =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020172DA: - ldr r2, _0201748C ; =0x0400000C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x16] - bne _020172F6 - ldrh r3, [r2, #0x16] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x16] - b _02017308 -_020172F6: - cmp r1, #0x2 - bne _02017308 - ldrh r3, [r2, #0x16] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x16] -_02017308: - add r0, sp, #0x0 - ldrh r3, [r0, #0x16] - ldr r6, _0201748C ; =0x0400000C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201733A: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _0201734E - cmp r3, #0x1 - beq _020173AE - cmp r3, #0x2 - beq _0201740E -_0201734E: - ldr r3, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x14] - bne _0201736A - ldrh r4, [r3, #0x14] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x14] - b _0201737C -_0201736A: - cmp r1, #0x2 - bne _0201737C - ldrh r4, [r3, #0x14] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x14] -_0201737C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x14] - add r2, r5, r2 - ldr r6, _02017490 ; =0x0400000E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020173AE: - ldr r2, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x12] - bne _020173CA - ldrh r3, [r2, #0x12] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x12] - b _020173DC -_020173CA: - cmp r1, #0x2 - bne _020173DC - ldrh r3, [r2, #0x12] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x12] -_020173DC: - add r0, sp, #0x0 - ldrh r3, [r0, #0x12] - ldr r6, _02017490 ; =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201740E: - ldr r2, _02017490 ; =0x0400000E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x10] - bne _0201742A - ldrh r3, [r2, #0x10] - ldr r1, _02017484 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x10] - b _0201743C -_0201742A: - cmp r1, #0x2 - bne _0201743C - ldrh r3, [r2, #0x10] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x10] -_0201743C: - add r0, sp, #0x0 - ldrh r3, [r0, #0x10] - ldr r6, _02017490 ; =0x0400000E - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_0201746E: - ldr r2, _02017494 ; =0x04001008 - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xe] - bne _020174A4 - ldrh r3, [r2, #0xe] - ldr r1, _02017484 ; =0xFFFFE0FF - b _02017498 - .balign 4 -_02017480: .word 0x04000008 -_02017484: .word 0xFFFFE0FF -_02017488: .word 0x0400000A -_0201748C: .word 0x0400000C -_02017490: .word 0x0400000E -_02017494: .word 0x04001008 -_02017498: - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xe] - b _020174B6 -_020174A4: - cmp r1, #0x2 - bne _020174B6 - ldrh r3, [r2, #0xe] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xe] -_020174B6: - add r0, sp, #0x0 - ldrh r3, [r0, #0xe] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _020177C8 ; =0x04001008 - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_020174F4: - ldr r2, _020177CC ; =0x0400100A - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0xc] - bne _02017510 - ldrh r3, [r2, #0xc] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0xc] - b _02017522 -_02017510: - cmp r1, #0x2 - bne _02017522 - ldrh r3, [r2, #0xc] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0xc] -_02017522: - add r0, sp, #0x0 - ldrh r3, [r0, #0xc] - add sp, #0x20 - lsl r0, r3, #0x12 - lsr r6, r0, #0x1f - lsl r0, r3, #0x1a - lsr r2, r0, #0x1c - lsl r0, r3, #0x13 - lsr r1, r0, #0x1b - mov r0, #0x2c - mul r0, r4 - add r0, r5, r0 - lsl r3, r3, #0x10 - lsr r5, r3, #0x1e - lsl r3, r2, #0x2 - ldrb r0, [r0, #0x1e] - lsl r2, r1, #0x8 - lsl r4, r6, #0xd - lsl r1, r0, #0x7 - ldr r0, _020177CC ; =0x0400100A - mov r6, #0x43 - ldrh r7, [r0, #0x0] - lsl r5, r5, #0xe - and r6, r7 - orr r5, r6 - orr r1, r5 - orr r1, r2 - orr r1, r3 - orr r1, r4 - strh r1, [r0, #0x0] - pop {r3-r7, pc} -_02017560: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _02017574 - cmp r3, #0x1 - beq _020175D4 - cmp r3, #0x2 - beq _02017634 -_02017574: - ldr r3, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0xa] - bne _02017590 - ldrh r4, [r3, #0xa] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0xa] - b _020175A2 -_02017590: - cmp r1, #0x2 - bne _020175A2 - ldrh r4, [r3, #0xa] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0xa] -_020175A2: - add r0, sp, #0x0 - ldrh r3, [r0, #0xa] - add r2, r5, r2 - ldr r6, _020177D4 ; =0x0400100C - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_020175D4: - ldr r2, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x8] - bne _020175F0 - ldrh r3, [r2, #0x8] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x8] - b _02017602 -_020175F0: - cmp r1, #0x2 - bne _02017602 - ldrh r3, [r2, #0x8] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x8] -_02017602: - add r0, sp, #0x0 - ldrh r3, [r0, #0x8] - ldr r6, _020177D4 ; =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017634: - ldr r2, _020177D4 ; =0x0400100C - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x6] - bne _02017650 - ldrh r3, [r2, #0x6] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x6] - b _02017662 -_02017650: - cmp r1, #0x2 - bne _02017662 - ldrh r3, [r2, #0x6] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x6] -_02017662: - add r0, sp, #0x0 - ldrh r3, [r0, #0x6] - ldr r6, _020177D4 ; =0x0400100C - add sp, #0x20 - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017694: - mov r2, #0x2c - mul r2, r4 - add r3, r5, r2 - ldrb r3, [r3, #0x1c] - cmp r3, #0x0 - beq _020176A8 - cmp r3, #0x1 - beq _02017708 - cmp r3, #0x2 - beq _02017768 -_020176A8: - ldr r3, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r4, [r3, #0x0] - add r3, sp, #0x0 - strh r4, [r3, #0x4] - bne _020176C4 - ldrh r4, [r3, #0x4] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r4 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r3, #0x4] - b _020176D6 -_020176C4: - cmp r1, #0x2 - bne _020176D6 - ldrh r4, [r3, #0x4] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r4, r1 - lsr r0, r0, #0x1a - orr r0, r4 - strh r0, [r3, #0x4] -_020176D6: - add r0, sp, #0x0 - ldrh r3, [r0, #0x4] - add r2, r5, r2 - ldr r6, _020177D8 ; =0x0400100E - lsl r0, r3, #0x1a - ldrb r4, [r2, #0x1e] - lsr r1, r0, #0x1c - lsl r0, r3, #0x13 - lsl r2, r3, #0x10 - lsr r3, r2, #0x1e - ldrh r5, [r6, #0x0] - lsr r0, r0, #0x1b - lsl r2, r1, #0x2 - lsl r1, r0, #0x8 - lsl r0, r4, #0x7 - mov r4, #0x43 - and r4, r5 - lsl r3, r3, #0xe - orr r3, r4 - orr r0, r3 - orr r0, r1 - orr r0, r2 - add sp, #0x20 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017708: - ldr r2, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x2] - bne _02017724 - ldrh r3, [r2, #0x2] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x2] - b _02017736 -_02017724: - cmp r1, #0x2 - bne _02017736 - ldrh r3, [r2, #0x2] - mov r1, #0x3c - lsl r0, r0, #0x1c - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x2] -_02017736: - add r0, sp, #0x0 - ldrh r3, [r0, #0x2] - ldr r6, _020177D8 ; =0x0400100E - add sp, #0x20 - lsl r1, r3, #0x13 - lsl r0, r3, #0x1a - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsr r0, r0, #0x1c - lsl r1, r0, #0x2 - lsl r0, r4, #0x8 - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] - pop {r3-r7, pc} -_02017768: - ldr r2, _020177D8 ; =0x0400100E - cmp r1, #0x1 - ldrh r3, [r2, #0x0] - add r2, sp, #0x0 - strh r3, [r2, #0x0] - bne _02017784 - ldrh r3, [r2, #0x0] - ldr r1, _020177D0 ; =0xFFFFE0FF - lsl r0, r0, #0x1b - and r1, r3 - lsr r0, r0, #0x13 - orr r0, r1 - strh r0, [r2, #0x0] - b _02017796 -_02017784: - cmp r1, #0x2 - bne _02017796 - ldrh r3, [r2, #0x0] - mov r1, #0x38 - lsl r0, r0, #0x1d - bic r3, r1 - lsr r0, r0, #0x1a - orr r0, r3 - strh r0, [r2, #0x0] -_02017796: - add r0, sp, #0x0 - ldrh r3, [r0, #0x0] - ldr r6, _020177D8 ; =0x0400100E - lsl r1, r3, #0x13 - lsr r4, r1, #0x1b - lsl r1, r3, #0x12 - lsr r2, r1, #0x1f - lsl r0, r3, #0x1a - lsl r1, r3, #0x10 - lsr r3, r1, #0x1e - lsl r1, r4, #0x8 - lsr r0, r0, #0x1d - ldrh r5, [r6, #0x0] - mov r4, #0x43 - lsl r3, r3, #0xe - and r4, r5 - lsl r0, r0, #0x2 - orr r3, r4 - orr r0, r3 - lsl r2, r2, #0xd - orr r0, r1 - orr r0, r2 - strh r0, [r6, #0x0] -_020177C4: - add sp, #0x20 - pop {r3-r7, pc} - .balign 4 -_020177C8: .word 0x04001008 -_020177CC: .word 0x0400100A -_020177D0: .word 0xFFFFE0FF -_020177D4: .word 0x0400100C -_020177D8: .word 0x0400100E - thumb_func_start FUN_020177DC -FUN_020177DC: ; 0x020177DC - cmp r1, #0x0 - beq _020177EA - cmp r1, #0x1 - beq _0201780A - cmp r1, #0x2 - beq _0201782A - b _0201784A -_020177EA: - cmp r0, #0x1 - bne _020177F2 - mov r0, #0x0 - bx lr -_020177F2: - cmp r0, #0x2 - bne _020177FA - mov r0, #0x2 - bx lr -_020177FA: - cmp r0, #0x3 - bne _02017802 - mov r0, #0x1 - bx lr -_02017802: - cmp r0, #0x4 - bne _0201784A - mov r0, #0x3 - bx lr -_0201780A: - cmp r0, #0x0 - bne _02017812 - mov r0, #0x0 - bx lr -_02017812: - cmp r0, #0x1 - bne _0201781A - mov r0, #0x1 - bx lr -_0201781A: - cmp r0, #0x4 - bne _02017822 - mov r0, #0x2 - bx lr -_02017822: - cmp r0, #0x5 - bne _0201784A - mov r0, #0x3 - bx lr -_0201782A: - cmp r0, #0x0 - bne _02017832 - mov r0, #0x0 - bx lr -_02017832: - cmp r0, #0x1 - bne _0201783A - mov r0, #0x1 - bx lr -_0201783A: - cmp r0, #0x4 - bne _02017842 - mov r0, #0x2 - bx lr -_02017842: - cmp r0, #0x5 - bne _0201784A - mov r0, #0x3 - bx lr -_0201784A: - mov r0, #0x0 - bx lr - .balign 4 - thumb_func_start FUN_02017850 -FUN_02017850: ; 0x02017850 - cmp r0, #0x5 - bhi _0201789E - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017860: ; jump table (using 16-bit offset) - .short _0201786C - _02017860 - 2; case 0 - .short _02017874 - _02017860 - 2; case 1 - .short _0201787C - _02017860 - 2; case 2 - .short _02017886 - _02017860 - 2; case 3 - .short _02017890 - _02017860 - 2; case 4 - .short _02017898 - _02017860 - 2; case 5 -_0201786C: - mov r0, #0x10 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_02017874: - mov r0, #0x20 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_0201787C: - mov r0, #0x20 - strb r0, [r1, #0x0] - mov r0, #0x40 - strb r0, [r2, #0x0] - bx lr -_02017886: - mov r0, #0x40 - strb r0, [r1, #0x0] - mov r0, #0x20 - strb r0, [r2, #0x0] - bx lr -_02017890: - mov r0, #0x40 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] - bx lr -_02017898: - mov r0, #0x80 - strb r0, [r1, #0x0] - strb r0, [r2, #0x0] -_0201789E: - bx lr - thumb_func_start FUN_020178A0 -FUN_020178A0: ; 0x020178A0 - push {r3-r5, lr} - add r4, r0, #0x0 - mov r2, #0x2c - add r5, r1, #0x0 - mul r5, r2 - add r4, #0x8 - ldr r0, [r4, r5] - cmp r0, #0x0 - beq _020178BA - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, r5] -_020178BA: - pop {r3-r5, pc} - thumb_func_start FUN_020178BC -FUN_020178BC: ; 0x020178BC - cmp r0, #0x7 - bhi _0201795A - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020178CC: ; jump table (using 16-bit offset) - .short _020178DC - _020178CC - 2; case 0 - .short _020178EC - _020178CC - 2; case 1 - .short _020178FC - _020178CC - 2; case 2 - .short _0201790C - _020178CC - 2; case 3 - .short _0201791C - _020178CC - 2; case 4 - .short _0201792C - _020178CC - 2; case 5 - .short _0201793C - _020178CC - 2; case 6 - .short _0201794C - _020178CC - 2; case 7 -_020178DC: - ldr r2, _0201795C ; =0x04000008 - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_020178EC: - ldr r2, _02017960 ; =0x0400000A - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_020178FC: - ldr r2, _02017964 ; =0x0400000C - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201790C: - ldr r2, _02017968 ; =0x0400000E - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201791C: - ldr r2, _0201796C ; =0x04001008 - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201792C: - ldr r2, _02017970 ; =0x0400100A - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201793C: - ldr r2, _02017974 ; =0x0400100C - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] - bx lr -_0201794C: - ldr r2, _02017978 ; =0x0400100E - mov r0, #0x3 - ldrh r3, [r2, #0x0] - bic r3, r0 - add r0, r3, #0x0 - orr r0, r1 - strh r0, [r2, #0x0] -_0201795A: - bx lr - .balign 4 -_0201795C: .word 0x04000008 -_02017960: .word 0x0400000A -_02017964: .word 0x0400000C -_02017968: .word 0x0400000E -_0201796C: .word 0x04001008 -_02017970: .word 0x0400100A -_02017974: .word 0x0400100C -_02017978: .word 0x0400100E - thumb_func_start FUN_0201797C -FUN_0201797C: ; 0x0201797C - push {r3, lr} - cmp r0, #0x7 - bhi _020179DC - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201798E: ; jump table (using 16-bit offset) - .short _0201799E - _0201798E - 2; case 0 - .short _020179A6 - _0201798E - 2; case 1 - .short _020179AE - _0201798E - 2; case 2 - .short _020179B6 - _0201798E - 2; case 3 - .short _020179BE - _0201798E - 2; case 4 - .short _020179C6 - _0201798E - 2; case 5 - .short _020179CE - _0201798E - 2; case 6 - .short _020179D6 - _0201798E - 2; case 7 -_0201799E: - mov r0, #0x1 - bl GX_EngineAToggleLayers - pop {r3, pc} -_020179A6: - mov r0, #0x2 - bl GX_EngineAToggleLayers - pop {r3, pc} -_020179AE: - mov r0, #0x4 - bl GX_EngineAToggleLayers - pop {r3, pc} -_020179B6: - mov r0, #0x8 - bl GX_EngineAToggleLayers - pop {r3, pc} -_020179BE: - mov r0, #0x1 - bl GX_EngineBToggleLayers - pop {r3, pc} -_020179C6: - mov r0, #0x2 - bl GX_EngineBToggleLayers - pop {r3, pc} -_020179CE: - mov r0, #0x4 - bl GX_EngineBToggleLayers - pop {r3, pc} -_020179D6: - mov r0, #0x8 - bl GX_EngineBToggleLayers -_020179DC: - pop {r3, pc} - .balign 4 - thumb_func_start FUN_020179E0 -FUN_020179E0: ; 0x020179E0 - push {r4-r6, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - mov r0, #0x2c - add r6, r5, #0x0 - mul r6, r0 - add r0, r4, #0x0 - add r0, #0x8 - add r1, r2, #0x0 - add r2, r3, #0x0 - add r0, r0, r6 - bl FUN_02017B8C - add r0, r4, r6 - ldr r1, [r0, #0x14] - ldr r0, [r0, #0x18] - cmp r5, #0x7 - bls _02017A06 - b _02017B1C -_02017A06: - add r2, r5, r5 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02017A12: ; jump table (using 16-bit offset) - .short _02017A22 - _02017A12 - 2; case 0 - .short _02017A38 - _02017A12 - 2; case 1 - .short _02017A4E - _02017A12 - 2; case 2 - .short _02017A78 - _02017A12 - 2; case 3 - .short _02017AA2 - _02017A12 - 2; case 4 - .short _02017AB8 - _02017A12 - 2; case 5 - .short _02017ACE - _02017A12 - 2; case 6 - .short _02017AF6 - _02017A12 - 2; case 7 -_02017A22: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B24 ; =0x04000010 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A38: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B28 ; =0x04000014 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A4E: - add r2, r4, #0x0 - add r2, #0x74 - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _02017A6E - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B2C ; =0x04000018 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A6E: - add r0, r4, #0x0 - mov r1, #0x2 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017A78: - add r2, r4, #0x0 - add r2, #0xa0 - ldrb r2, [r2, #0x0] - cmp r2, #0x0 - bne _02017A98 - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B30 ; =0x0400001C - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017A98: - add r0, r4, #0x0 - mov r1, #0x3 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017AA2: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B34 ; =0x04001010 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017AB8: - ldr r2, _02017B20 ; =0x000001FF - add r3, r1, #0x0 - lsl r1, r0, #0x10 - lsl r0, r2, #0x10 - and r3, r2 - and r0, r1 - add r1, r3, #0x0 - orr r1, r0 - ldr r0, _02017B38 ; =0x04001014 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017ACE: - mov r2, #0x49 - lsl r2, r2, #0x2 - ldrb r3, [r4, r2] - cmp r3, #0x0 - bne _02017AEC - add r2, #0xdb - and r2, r1 - lsl r1, r0, #0x10 - ldr r0, _02017B3C ; =0x01FF0000 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _02017B40 ; =0x04001018 - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017AEC: - add r0, r4, #0x0 - mov r1, #0x6 - bl FUN_02017C6C - pop {r4-r6, pc} -_02017AF6: - mov r2, #0x15 - lsl r2, r2, #0x4 - ldrb r3, [r4, r2] - cmp r3, #0x0 - bne _02017B14 - add r2, #0xaf - and r2, r1 - lsl r1, r0, #0x10 - ldr r0, _02017B3C ; =0x01FF0000 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _02017B44 ; =0x0400101C - str r1, [r0, #0x0] - pop {r4-r6, pc} -_02017B14: - add r0, r4, #0x0 - mov r1, #0x7 - bl FUN_02017C6C -_02017B1C: - pop {r4-r6, pc} - nop -_02017B20: .word 0x000001FF -_02017B24: .word 0x04000010 -_02017B28: .word 0x04000014 -_02017B2C: .word 0x04000018 -_02017B30: .word 0x0400001C -_02017B34: .word 0x04001010 -_02017B38: .word 0x04001014 -_02017B3C: .word 0x01FF0000 -_02017B40: .word 0x04001018 -_02017B44: .word 0x0400101C - thumb_func_start FUN_02017B48 -FUN_02017B48: ; 0x02017B48 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x14] - bx lr - .balign 4 - thumb_func_start FUN_02017B54 -FUN_02017B54: ; 0x02017B54 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x18] - bx lr - .balign 4 - thumb_func_start FUN_02017B60 -FUN_02017B60: ; 0x02017B60 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_02017B8C - ldr r0, [sp, #0x18] - ldr r2, [sp, #0x10] - str r0, [sp, #0x0] - ldr r3, [sp, #0x14] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017BD0 - pop {r3-r5, pc} - .balign 4 - thumb_func_start FUN_02017B8C -FUN_02017B8C: ; 0x02017B8C - cmp r1, #0x5 - bhi _02017BCE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02017B9C: ; jump table (using 16-bit offset) - .short _02017BA8 - _02017B9C - 2; case 0 - .short _02017BAC - _02017B9C - 2; case 1 - .short _02017BB4 - _02017B9C - 2; case 2 - .short _02017BBC - _02017B9C - 2; case 3 - .short _02017BC0 - _02017B9C - 2; case 4 - .short _02017BC8 - _02017B9C - 2; case 5 -_02017BA8: - str r2, [r0, #0xc] - bx lr -_02017BAC: - ldr r1, [r0, #0xc] - add r1, r1, r2 - str r1, [r0, #0xc] - bx lr -_02017BB4: - ldr r1, [r0, #0xc] - sub r1, r1, r2 - str r1, [r0, #0xc] - bx lr -_02017BBC: - str r2, [r0, #0x10] - bx lr -_02017BC0: - ldr r1, [r0, #0x10] - add r1, r1, r2 - str r1, [r0, #0x10] - bx lr -_02017BC8: - ldr r1, [r0, #0x10] - sub r1, r1, r2 - str r1, [r0, #0x10] -_02017BCE: - bx lr - thumb_func_start FUN_02017BD0 -FUN_02017BD0: ; 0x02017BD0 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r1, #0x0 - add r1, r2, #0x0 - add r2, r3, #0x0 - ldr r3, [sp, #0x18] - cmp r4, #0x7 - bhi _02017C58 - add r5, r4, r4 - add r5, pc - ldrh r5, [r5, #0x6] - lsl r5, r5, #0x10 - asr r5, r5, #0x10 - add pc, r5 -_02017BEC: ; jump table (using 16-bit offset) - .short _02017C58 - _02017BEC - 2; case 0 - .short _02017C58 - _02017BEC - 2; case 1 - .short _02017BFC - _02017BEC - 2; case 2 - .short _02017C14 - _02017BEC - 2; case 3 - .short _02017C58 - _02017BEC - 2; case 4 - .short _02017C58 - _02017BEC - 2; case 5 - .short _02017C2C - _02017BEC - 2; case 6 - .short _02017C44 - _02017BEC - 2; case 7 -_02017BFC: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C5C ; =0x04000020 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C14: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C60 ; =0x04000030 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C2C: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C64 ; =0x04001020 - bl G2x_SetBGyAffine_ - add sp, #0x8 - pop {r3-r5, pc} -_02017C44: - mov r5, #0x2c - mul r5, r4 - add r4, r0, r5 - ldr r0, [r4, #0x14] - str r0, [sp, #0x0] - ldr r0, [r4, #0x18] - str r0, [sp, #0x4] - ldr r0, _02017C68 ; =0x04001030 - bl G2x_SetBGyAffine_ -_02017C58: - add sp, #0x8 - pop {r3-r5, pc} - .balign 4 -_02017C5C: .word 0x04000020 -_02017C60: .word 0x04000030 -_02017C64: .word 0x04001020 -_02017C68: .word 0x04001030 - thumb_func_start FUN_02017C6C -FUN_02017C6C: ; 0x02017C6C - push {r4-r5, lr} - sub sp, #0x14 - mov r2, #0x1 - lsl r2, r2, #0xc - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r1, #0x0 - add r0, sp, #0x4 - add r3, r2, #0x0 - str r1, [sp, #0x0] - bl MTX22_2DAffine - mov r3, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, sp, #0x4 - str r3, [sp, #0x0] - bl FUN_02017BD0 - add sp, #0x14 - pop {r4-r5, pc} - .balign 4 - thumb_func_start FUN_02017C98 -FUN_02017C98: ; 0x02017C98 - push {r3-r5, lr} - cmp r2, #0x0 - bne _02017CA4 - bl MI_UncompressLZ8 - pop {r3-r5, pc} -_02017CA4: - mov r4, #0x3 - add r3, r0, #0x0 - tst r3, r4 - bne _02017CCA - add r3, r1, #0x0 - tst r3, r4 - bne _02017CCA - lsl r3, r2, #0x10 - lsr r3, r3, #0x10 - lsr r4, r3, #0x1f - lsl r5, r3, #0x1e - sub r5, r5, r4 - mov r3, #0x1e - ror r5, r3 - add r3, r4, r5 - bne _02017CCA - bl MIi_CpuCopy32 - pop {r3-r5, pc} -_02017CCA: - bl MIi_CpuCopy16 - pop {r3-r5, pc} - thumb_func_start FUN_02017CD0 -FUN_02017CD0: ; 0x02017CD0 - push {r3, lr} - mov r2, #0x2c - mul r2, r1 - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - pop {r3, pc} - .balign 4 - thumb_func_start FUN_02017CE8 -FUN_02017CE8: ; 0x02017CE8 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - str r3, [sp, #0x0] - cmp r3, #0x0 - bne _02017D56 - mov r0, #0x2c - add r7, r4, #0x0 - mul r7, r0 - add r0, r5, r7 - ldr r0, [r0, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02017D26 - ldr r1, [sp, #0x4] - add r0, r6, #0x0 - add r2, r3, #0x0 - bl FUN_02017C98 - add r3, r5, r7 - ldr r2, [r3, #0x10] - ldr r1, [sp, #0x4] - ldr r3, [r3, #0xc] - add r0, r4, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 - add sp, #0x8 - pop {r3-r7, pc} -_02017D26: - ldr r0, [r6, #0x0] - lsr r7, r0, #0x8 - ldr r0, [r5, #0x0] - add r1, r7, #0x0 - bl AllocFromHeapAtEnd - add r5, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r6, #0x0 - add r1, r5, #0x0 - bl FUN_02017C98 - ldr r2, [sp, #0x20] - add r0, r4, #0x0 - add r1, r5, #0x0 - lsl r2, r2, #0x1 - add r3, r7, #0x0 - bl FUN_02017D68 - add r0, r5, #0x0 - bl FreeToHeap - add sp, #0x8 - pop {r3-r7, pc} -_02017D56: - ldr r2, [sp, #0x20] - add r0, r4, #0x0 - add r1, r6, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - thumb_func_start FUN_02017D68 -FUN_02017D68: ; 0x02017D68 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r3, #0x0 - add r7, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - add r5, r2, #0x0 - bl DC_FlushRange - cmp r7, #0x7 - bhi _02017DF8 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017D8A: ; jump table (using 16-bit offset) - .short _02017D9A - _02017D8A - 2; case 0 - .short _02017DA6 - _02017D8A - 2; case 1 - .short _02017DB2 - _02017D8A - 2; case 2 - .short _02017DBE - _02017D8A - 2; case 3 - .short _02017DCA - _02017D8A - 2; case 4 - .short _02017DD6 - _02017D8A - 2; case 5 - .short _02017DE2 - _02017D8A - 2; case 6 - .short _02017DEE - _02017D8A - 2; case 7 -_02017D9A: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG0Scr - pop {r3-r7, pc} -_02017DA6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG1Scr - pop {r3-r7, pc} -_02017DB2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG2Scr - pop {r3-r7, pc} -_02017DBE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG3Scr - pop {r3-r7, pc} -_02017DCA: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG0Scr - pop {r3-r7, pc} -_02017DD6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG1Scr - pop {r3-r7, pc} -_02017DE2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG2Scr - pop {r3-r7, pc} -_02017DEE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG3Scr -_02017DF8: - pop {r3-r7, pc} - .balign 4 - thumb_func_start FUN_02017DFC -FUN_02017DFC: ; 0x02017DFC - push {r4, lr} - add r4, r0, #0x0 - add r0, r2, #0x0 - mov r2, #0x2c - mul r2, r1 - add r1, r4, r2 - ldr r1, [r1, #0x8] - add r2, r3, #0x0 - bl FUN_02017C98 - pop {r4, pc} - .balign 4 - thumb_func_start FUN_02017E14 -FUN_02017E14: ; 0x02017E14 - push {r3-r4, lr} - sub sp, #0x4 - mov r4, #0x2c - mul r4, r1 - add r4, r0, r4 - ldrb r4, [r4, #0x1e] - cmp r4, #0x0 - bne _02017E32 - ldr r4, [sp, #0x10] - lsl r4, r4, #0x5 - str r4, [sp, #0x0] - bl FUN_02017E40 - add sp, #0x4 - pop {r3-r4, pc} -_02017E32: - ldr r4, [sp, #0x10] - lsl r4, r4, #0x6 - str r4, [sp, #0x0] - bl FUN_02017E40 - add sp, #0x4 - pop {r3-r4, pc} - thumb_func_start FUN_02017E40 -FUN_02017E40: ; 0x02017E40 - push {r3-r7, lr} - add r7, r1, #0x0 - add r5, r2, #0x0 - str r3, [sp, #0x0] - cmp r3, #0x0 - bne _02017E78 - ldr r1, [r5, #0x0] - ldr r0, [r0, #0x0] - lsr r4, r1, #0x8 - add r1, r4, #0x0 - bl AllocFromHeapAtEnd - add r6, r0, #0x0 - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02017C98 - ldr r2, [sp, #0x18] - add r0, r7, #0x0 - add r1, r6, #0x0 - add r3, r4, #0x0 - bl FUN_02017E84 - add r0, r6, #0x0 - bl FreeToHeap - pop {r3-r7, pc} -_02017E78: - ldr r2, [sp, #0x18] - add r0, r7, #0x0 - add r1, r5, #0x0 - bl FUN_02017E84 - pop {r3-r7, pc} - thumb_func_start FUN_02017E84 -FUN_02017E84: ; 0x02017E84 - push {r3-r7, lr} - add r4, r1, #0x0 - add r6, r3, #0x0 - add r7, r0, #0x0 - add r0, r4, #0x0 - add r1, r6, #0x0 - add r5, r2, #0x0 - bl DC_FlushRange - cmp r7, #0x7 - bhi _02017F14 - add r0, r7, r7 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02017EA6: ; jump table (using 16-bit offset) - .short _02017EB6 - _02017EA6 - 2; case 0 - .short _02017EC2 - _02017EA6 - 2; case 1 - .short _02017ECE - _02017EA6 - 2; case 2 - .short _02017EDA - _02017EA6 - 2; case 3 - .short _02017EE6 - _02017EA6 - 2; case 4 - .short _02017EF2 - _02017EA6 - 2; case 5 - .short _02017EFE - _02017EA6 - 2; case 6 - .short _02017F0A - _02017EA6 - 2; case 7 -_02017EB6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG0Char - pop {r3-r7, pc} -_02017EC2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG1Char - pop {r3-r7, pc} -_02017ECE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG2Char - pop {r3-r7, pc} -_02017EDA: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GX_LoadBG3Char - pop {r3-r7, pc} -_02017EE6: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG0Char - pop {r3-r7, pc} -_02017EF2: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG1Char - pop {r3-r7, pc} -_02017EFE: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG2Char - pop {r3-r7, pc} -_02017F0A: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl GXS_LoadBG3Char -_02017F14: - pop {r3-r7, pc} - .balign 4 - thumb_func_start FUN_02017F18 -FUN_02017F18: ; 0x02017F18 - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r0, r3, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x0] - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - mov r1, #0x0 - add r2, r5, #0x0 - bl memset - add r0, r6, #0x0 - add r1, r4, #0x0 - add r2, r7, #0x0 - add r3, r5, #0x0 - bl FUN_02017E84 - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - bl FUN_02016A8C - pop {r3-r7, pc} - thumb_func_start FUN_02017F48 -FUN_02017F48: ; 0x02017F48 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r1, #0x0 - add r4, r0, #0x0 - mov r1, #0x2c - add r6, r7, #0x0 - add r4, #0x1f - mul r6, r1 - ldrb r1, [r4, r6] - ldr r0, [r0, #0x0] - add r5, r2, #0x0 - mul r1, r3 - str r1, [sp, #0x0] - bl AllocFromHeapAtEnd - str r0, [sp, #0x4] - ldrb r0, [r4, r6] - cmp r0, #0x20 - bne _02017F82 - lsl r2, r5, #0xc - lsl r1, r5, #0x8 - lsl r0, r5, #0x4 - orr r1, r2 - orr r0, r1 - add r1, r5, #0x0 - orr r1, r0 - lsl r0, r1, #0x10 - add r5, r1, #0x0 - b _02017F8C -_02017F82: - lsl r2, r5, #0x18 - lsl r1, r5, #0x10 - lsl r0, r5, #0x8 - orr r1, r2 - orr r0, r1 -_02017F8C: - orr r5, r0 - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - add r0, r5, #0x0 - bl MIi_CpuClearFast - lsl r0, r7, #0x18 - ldrb r2, [r4, r6] - ldr r3, [sp, #0x20] - ldr r1, [sp, #0x4] - mul r2, r3 - ldr r3, [sp, #0x0] - lsr r0, r0, #0x18 - bl FUN_02017E84 - ldr r0, [sp, #0x4] - bl FreeToHeap - add sp, #0x8 - pop {r3-r7, pc} - thumb_func_start FUN_02017FB4 -FUN_02017FB4: ; 0x02017FB4 - push {r3-r7, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r7, r3, #0x0 - bl DC_FlushRange - cmp r6, #0x4 - bhs _02017FD6 - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r4, #0x0 - bl GX_LoadBGPltt - pop {r3-r7, pc} -_02017FD6: - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r4, #0x0 - bl GXS_LoadBGPltt - pop {r3-r7, pc} - .balign 4 - thumb_func_start FUN_02017FE4 -FUN_02017FE4: ; 0x02017FE4 - push {r0-r3} - push {r3, lr} - add r1, sp, #0xc - mov r2, #0x2 - mov r3, #0x0 - bl FUN_02017FB4 - pop {r3} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 - thumb_func_start FUN_02017FFC -FUN_02017FFC: ; 0x02017FFC - cmp r2, #0x5 - bhi _02018066 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_0201800C: ; jump table (using 16-bit offset) - .short _02018018 - _0201800C - 2; case 0 - .short _02018022 - _0201800C - 2; case 1 - .short _02018022 - _0201800C - 2; case 2 - .short _0201802C - _0201800C - 2; case 3 - .short _02018042 - _0201800C - 2; case 4 - .short _02018064 - _0201800C - 2; case 5 -_02018018: - lsl r1, r1, #0x4 - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018022: - lsl r1, r1, #0x5 - add r0, r0, r1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_0201802C: - mov r2, #0x1f - add r3, r0, #0x0 - and r3, r2 - mov r2, #0x1f - bic r0, r2 - add r0, r1, r0 - lsl r0, r0, #0x5 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018042: - asr r2, r1, #0x5 - asr r3, r0, #0x5 - lsl r2, r2, #0x1 - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - lsl r2, r2, #0x1a - lsr r3, r2, #0x10 - mov r2, #0x1f - and r2, r0 - lsl r0, r1, #0x1b - lsr r0, r0, #0x16 - add r0, r2, r0 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bx lr -_02018064: - mov r0, #0x0 -_02018066: - bx lr - thumb_func_start FUN_02018068 -FUN_02018068: ; 0x02018068 - push {r3-r7} - sub sp, #0x4 - str r3, [sp, #0x0] - add r6, r2, #0x0 - ldr r5, [sp, #0x0] - add r4, r6, #0x0 - sub r4, #0x20 - sub r5, #0x20 - mov r2, #0x0 - lsl r4, r4, #0x10 - lsl r5, r5, #0x10 - add r3, r2, #0x0 - asr r4, r4, #0x10 - asr r7, r5, #0x10 - lsr r5, r0, #0x5 - beq _0201808E - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 -_0201808E: - lsr r5, r1, #0x5 - beq _02018098 - add r2, r2, #0x2 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 -_02018098: - cmp r2, #0x3 - bhi _02018140 - add r2, r2, r2 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_020180A8: ; jump table (using 16-bit offset) - .short _020180B0 - _020180A8 - 2; case 0 - .short _020180CE - _020180A8 - 2; case 1 - .short _020180F4 - _020180A8 - 2; case 2 - .short _02018120 - _020180A8 - 2; case 3 -_020180B0: - cmp r4, #0x0 - blt _020180C0 - lsl r1, r1, #0x5 - add r0, r0, r1 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180C0: - add r2, r1, #0x0 - mul r2, r6 - add r0, r0, r2 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180CE: - cmp r7, #0x0 - blt _020180D8 - mov r2, #0x1 - lsl r2, r2, #0xa - b _020180DC -_020180D8: - ldr r2, [sp, #0x0] - lsl r2, r2, #0x5 -_020180DC: - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r3, r2, #0x10 - mov r2, #0x1f - and r2, r0 - add r0, r1, #0x0 - mul r0, r4 - add r0, r2, r0 - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_020180F4: - lsl r2, r6, #0x5 - add r2, r3, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x10 - cmp r4, #0x0 - blt _0201810E - lsl r1, r1, #0x1b - lsr r1, r1, #0x16 - add r0, r0, r1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_0201810E: - mov r3, #0x1f - and r1, r3 - add r3, r1, #0x0 - mul r3, r6 - add r0, r0, r3 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 - b _02018140 -_02018120: - add r2, r6, r7 - lsl r2, r2, #0x5 - add r2, r3, r2 - add r5, r0, #0x0 - mov r3, #0x1f - add r0, r1, #0x0 - and r0, r3 - add r1, r0, #0x0 - lsl r2, r2, #0x10 - and r5, r3 - mul r1, r4 - lsr r2, r2, #0x10 - add r0, r5, r1 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r3, r0, #0x10 -_02018140: - add r0, r3, #0x0 - add sp, #0x4 - pop {r3-r7} - bx lr - thumb_func_start FUN_02018148 -FUN_02018148: ; 0x02018148 - push {r3-r6, lr} - sub sp, #0x1c - add r6, sp, #0x20 - ldrb r5, [r6, #0x14] - str r5, [sp, #0x0] - ldrb r4, [r6, #0x18] - str r4, [sp, #0x4] - str r2, [sp, #0x8] - mov r2, #0x0 - str r2, [sp, #0xc] - str r2, [sp, #0x10] - str r5, [sp, #0x14] - str r4, [sp, #0x18] - add r2, r3, #0x0 - ldrb r3, [r6, #0x10] - bl FUN_02018170 - add sp, #0x1c - pop {r3-r6, pc} - .balign 4 - thumb_func_start FUN_02018170 -FUN_02018170: ; 0x02018170 - push {r4-r5, lr} - sub sp, #0x1c - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x18 - cmp r1, #0x1 - beq _020181BA - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x0 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018268 - add sp, #0x1c - pop {r4-r5, pc} -_020181BA: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x0 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_020183DC - add sp, #0x1c - pop {r4-r5, pc} - thumb_func_start FUN_020181EC -FUN_020181EC: ; 0x020181EC - push {r4-r5, lr} - sub sp, #0x1c - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x18 - cmp r1, #0x1 - beq _02018236 - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x1 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018268 - add sp, #0x1c - pop {r4-r5, pc} -_02018236: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldr r1, [sp, #0x30] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - add r1, sp, #0x38 - ldrb r1, [r1, #0x0] - str r1, [sp, #0xc] - add r1, sp, #0x3c - ldrb r1, [r1, #0x0] - str r1, [sp, #0x10] - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - str r1, [sp, #0x14] - mov r1, #0x1 - str r1, [sp, #0x18] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_020183DC - add sp, #0x1c - pop {r4-r5, pc} + + + + + + + + + + + + + + + + + + + + + + + + + + thumb_func_start FUN_02018268 FUN_02018268: ; 0x02018268 diff --git a/arm9/global.inc b/arm9/global.inc index b8a17cb81..71693178e 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8525,3 +8525,30 @@ .extern UNK_020EDB5C .extern UNK_020EDB68 .extern UNK_020EDB74 +.extern UNK_021C59F4 +.extern UNK_02105D58 +.extern FUN_0202F150 +.extern FUN_0202F2F0 +.extern FUN_0202F5A4 +.extern FUN_0202F820 +.extern FUN_0202F8D4 +.extern FUN_0202F910 +.extern FUN_0202F918 +.extern FUN_0202F984 +.extern FUN_0202F9E0 +.extern FUN_0202FA28 +.extern FUN_0202FB58 +.extern FUN_0202FB80 +.extern FUN_0202FE2C +.extern FUN_0202FEEC +.extern FUN_02030074 +.extern FUN_020303F4 +.extern FUN_020304D4 +.extern FUN_020304F0 +.extern FUN_02017850 +.extern FUN_02017B8C +.extern FUN_02017C98 +.extern FUN_02017D68 +.extern FUN_02017E84 +.extern FUN_02017FFC +.extern FUN_02018068 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c index 9d2b91a41..c1aca9778 100644 --- a/arm9/src/unk_02016B94_c.c +++ b/arm9/src/unk_02016B94_c.c @@ -1,4 +1,8 @@ #include "unk_02016B94.h" +#include "global.h" +#include "GX_layers.h" +#include "gx.h" +#include "heap.h" extern void FUN_020192D4(); extern void FUN_02019358(); @@ -18,9 +22,8 @@ extern void FUN_020194E0(); extern void FUN_020193B4(); extern void FUN_02019444(); - extern u8 FUN_020177DC(u8 param0, u32 param1); -extern void FUN_020179E0(u32 param0, u32 param1, u32 param2, u32 val); +extern void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val); const u8 UNK_020EDB30[8] = { 0x10, @@ -69,6 +72,7 @@ void (*const UNK_020EDB74[])() = { FUN_020193B4, }; + THUMB_FUNC void *FUN_02016B94(u32 heap_id) { void *ptr = AllocFromHeap(heap_id, 0x5a << 2); @@ -110,9 +114,9 @@ THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1) } } - #ifdef NONMATCHING -THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) +THUMB_FUNC void FUN_02016C18( + struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) { u8 res = FUN_020177DC(param2->unk10, param3); switch (param1) @@ -120,8 +124,8 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr case 0: GX_EngineAToggleLayers(1, GX_LAYER_TOGGLE_ON); - reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); reg_G2_BG0CNT = (reg_G2_BG0CNT & ~3) | (param2->unk15); if (param2->unk18 != 0) @@ -137,8 +141,8 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr case 1: GX_EngineAToggleLayers(2, GX_LAYER_TOGGLE_ON); - reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); reg_G2_BG1CNT = (reg_G2_BG1CNT & ~3) | (param2->unk15); if (param2->unk18 != 0) @@ -158,16 +162,16 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr { default: case 0: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk13 << 2); break; case 1: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; case 2: - reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; } @@ -191,16 +195,16 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr { default: case 0: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk13 << 2); break; case 1: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; case 2: - reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; } @@ -218,8 +222,8 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr case 4: GX_EngineBToggleLayers(1, GX_LAYER_TOGGLE_ON); - reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); reg_G2S_DB_BG0CNT = (reg_G2S_DB_BG0CNT & ~3) | (param2->unk15); @@ -237,8 +241,8 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr case 5: GX_EngineBToggleLayers(2, GX_LAYER_TOGGLE_ON); - reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk14 << 13) | (param2->unk13 << 2); reg_G2S_DB_BG1CNT = (reg_G2S_DB_BG1CNT & ~3) | (param2->unk15); @@ -260,16 +264,16 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr { default: case 0: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk13 << 2); break; case 1: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; case 2: - reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; } @@ -291,16 +295,16 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr { default: case 0: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk11 << 7) | (param2->unk13 << 2); + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk11 << 7) | (param2->unk13 << 2); break; case 1: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; case 2: - reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | - (res << 14) | (param2->unk12 << 8) | (param2->unk16 << 13) | (param2->unk13 << 2); + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | (res << 14) | (param2->unk12 << 8) | + (param2->unk16 << 13) | (param2->unk13 << 2); break; } @@ -348,7 +352,7 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr } else { - param0->unk08[param1].unk1f = 0x40; + param0->unk08[param1].unk1f = 0x40; } FUN_020179E0(param0, param1, 0, param2->unk00); @@ -358,3 +362,1913 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr GLOBAL_ASM("asm/nonmatchings/FUN_02016C18.s") #endif + + +#ifdef NONMATCHING +THUMB_FUNC void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3) +{ + if (param2 == 0) + { + param0->unk08[param1].unk1e = param3; + } + + switch (param1) + { + case 0: + u16 bg0cnt = reg_G2_BG0CNT; + if (param2 == 1) + { + bg0cnt = bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg0cnt = bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG0CNT = (reg_G2_BG0CNT & 0x43) | ((u32)(bg0cnt << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(bg0cnt << 0x13) >> 0x1b) << 8 | + ((u32)(bg0cnt << 0x1a) >> 0x1c) << 2 | + ((u32)(bg0cnt << 0x12) >> 0x1f) << 0xd; + + break; + case 1: + u16 bg1cnt = reg_G2_BG1CNT; + if (param2 == 1) + { + bg1cnt = bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg1cnt = bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG1CNT = (reg_G2_BG1CNT & 0x43) | (((u32)bg1cnt << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(bg1cnt << 0x13) >> 0x1b) << 8 | + ((u32)(bg1cnt << 0x1a) >> 0x1c) << 2 | + ((u32)(bg1cnt << 0x12) >> 0x1f) << 0xd; + + break; + case 2: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + u16 bg2cnt_0 = reg_G2_BG2CNT; + if (param2 == 1) + { + bg2cnt_0 = bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg2cnt_0 = bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_0 << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | + ((u32)(bg2cnt_0 << 0x13) >> 0x1b) << 8 | + ((u32)(bg2cnt_0 << 0x1a) >> 0x1c) << 2; + + break; + case 1: + u16 bg2cnt_1 = reg_G2_BG2CNT; + if (param2 == 1) + { + bg2cnt_1 = bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg2cnt_1 = bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_1 << 0x10) >> 0x1e) << 0xe | + ((u32)(bg2cnt_1 << 0x13) >> 0x1b) << 8 | + ((u32)(bg2cnt_1 << 0x1a) >> 0x1c) << 2 | + ((u32)(bg2cnt_1 << 0x12) >> 0x1f) << 0xd; + break; + case 2: + u16 bg2cnt_2 = reg_G2_BG2CNT; + if (param2 == 1) + { + bg2cnt_2 = bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg2cnt_2 = bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); + } + + reg_G2_BG2CNT = (reg_G2_BG2CNT & 0x43) | ((u32)(bg2cnt_2 << 0x10) >> 0x1e) << 0xe | + ((u32)(bg2cnt_2 << 0x13) >> 0x1b) << 8 | + ((u32)(bg2cnt_2 << 0x1a) >> 0x1d) << 2 | + ((u32)(bg2cnt_2 << 0x12) >> 0x1f) << 0xd; + break; + } + break; + case 3: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + u16 bg3cnt_0 = reg_G2_BG3CNT; + if (param2 == 1) + { + bg3cnt_0 = bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg3cnt_0 = bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_0 << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | + ((u32)(bg3cnt_0 << 0x13) >> 0x1b) << 8 | + ((u32)(bg3cnt_0 << 0x1a) >> 0x1c) << 2; + + break; + case 1: + u16 bg3cnt_1 = reg_G2_BG3CNT; + if (param2 == 1) + { + bg3cnt_1 = bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg3cnt_1 = bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_1 << 0x10) >> 0x1e) << 0xe | + ((u32)(bg3cnt_1 << 0x13) >> 0x1b) << 8 | + ((u32)(bg3cnt_1 << 0x1a) >> 0x1c) << 2 | + ((u32)(bg3cnt_1 << 0x12) >> 0x1f) << 0xd; + break; + case 2: + u16 bg3cnt_2 = reg_G2_BG3CNT; + if (param2 == 1) + { + bg3cnt_2 = bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + bg3cnt_2 = bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); + } + + reg_G2_BG3CNT = (reg_G2_BG3CNT & 0x43) | ((u32)(bg3cnt_2 << 0x10) >> 0x1e) << 0xe | + ((u32)(bg3cnt_2 << 0x13) >> 0x1b) << 8 | + ((u32)(bg3cnt_2 << 0x1a) >> 0x1d) << 2 | + ((u32)(bg3cnt_2 << 0x12) >> 0x1f) << 0xd; + break; + } + break; + case 4: + u16 db_bg0cnt = reg_G2S_DB_BG0CNT; + if (param2 == 1) + { + db_bg0cnt = db_bg0cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg0cnt = db_bg0cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG0CNT = + (reg_G2S_DB_BG0CNT & 0x43) | ((u32)(db_bg0cnt << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(db_bg0cnt << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg0cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg0cnt << 0x12) >> 0x1f) << 0xd; + + break; + case 5: + u16 db_bg1cnt = reg_G2S_DB_BG1CNT; + if (param2 == 1) + { + db_bg1cnt = db_bg1cnt & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg1cnt = db_bg1cnt & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG1CNT = + (reg_G2S_DB_BG1CNT & 0x43) | ((u32)(db_bg1cnt << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(db_bg1cnt << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg1cnt << 0x1a) >> 0x1c) << 2 | ((u32)(db_bg1cnt << 0x12) >> 0x1f) << 0xd; + + break; + case 6: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + u16 db_bg2cnt_0 = reg_G2S_DB_BG2CNT; + if (param2 == 1) + { + db_bg2cnt_0 = db_bg2cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg2cnt_0 = db_bg2cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG2CNT = + (reg_G2S_DB_BG2CNT & 0x43) | ((u32)(db_bg2cnt_0 << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(db_bg2cnt_0 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg2cnt_0 << 0x1a) >> 0x1c) << 2; + + break; + case 1: + u16 db_bg2cnt_1 = reg_G2S_DB_BG2CNT; + if (param2 == 1) + { + db_bg2cnt_1 = db_bg2cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg2cnt_1 = db_bg2cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | + ((u32)(db_bg2cnt_1 << 0x10) >> 0x1e) << 0xe | + ((u32)(db_bg2cnt_1 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg2cnt_1 << 0x1a) >> 0x1c) << 2 | + ((u32)(db_bg2cnt_1 << 0x12) >> 0x1f) << 0xd; + break; + case 2: + u16 db_bg2cnt_2 = reg_G2S_DB_BG2CNT; + if (param2 == 1) + { + db_bg2cnt_2 = db_bg2cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg2cnt_2 = db_bg2cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); + } + + reg_G2S_DB_BG2CNT = (reg_G2S_DB_BG2CNT & 0x43) | + ((u32)(db_bg2cnt_2 << 0x10) >> 0x1e) << 0xe | + ((u32)(db_bg2cnt_2 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg2cnt_2 << 0x1a) >> 0x1d) << 2 | + ((u32)(db_bg2cnt_2 << 0x12) >> 0x1f) << 0xd; + break; + } + break; + case 7: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + u16 db_bg3cnt_0 = reg_G2S_DB_BG3CNT; + if (param2 == 1) + { + db_bg3cnt_0 = db_bg3cnt_0 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg3cnt_0 = db_bg3cnt_0 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG3CNT = + (reg_G2S_DB_BG3CNT & 0x43) | ((u32)(db_bg3cnt_0 << 0x10) >> 0x1e) << 0xe | + param0->unk08[param1].unk1e << 7 | ((u32)(db_bg3cnt_0 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg3cnt_0 << 0x1a) >> 0x1c) << 2; + + break; + case 1: + u16 db_bg3cnt_1 = reg_G2S_DB_BG3CNT; + if (param2 == 1) + { + db_bg3cnt_1 = db_bg3cnt_1 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg3cnt_1 = db_bg3cnt_1 & ~0x3c | ((u32)(param3 << 0x1c) >> 0x1a); + } + + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | + ((u32)(db_bg3cnt_1 << 0x10) >> 0x1e) << 0xe | + ((u32)(db_bg3cnt_1 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg3cnt_1 << 0x1a) >> 0x1c) << 2 | + ((u32)(db_bg3cnt_1 << 0x12) >> 0x1f) << 0xd; + break; + case 2: + u16 db_bg3cnt_2 = reg_G2S_DB_BG3CNT; + if (param2 == 1) + { + db_bg3cnt_2 = db_bg3cnt_2 & 0xFFFFE0FF | ((u32)(param3 << 0x1b) >> 0x13); + } + else if (param2 == 2) + { + db_bg3cnt_2 = db_bg3cnt_2 & ~0x38 | ((u32)(param3 << 0x1d) >> 0x1a); + } + + reg_G2S_DB_BG3CNT = (reg_G2S_DB_BG3CNT & 0x43) | + ((u32)(db_bg3cnt_2 << 0x10) >> 0x1e) << 0xe | + ((u32)(db_bg3cnt_2 << 0x13) >> 0x1b) << 8 | + ((u32)(db_bg3cnt_2 << 0x1a) >> 0x1d) << 2 | + ((u32)(db_bg3cnt_2 << 0x12) >> 0x1f) << 0xd; + break; + } + break; + } +} +#else +THUMB_FUNC asm void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x20 + add r4, r1, #0x0 + add r5, r0, #0x0 + add r1, r2, #0x0 + add r0, r3, #0x0 + cmp r1, #0x0 + bne _0201710C + mov r2, #0x2c + mul r2, r4 + add r2, r5, r2 + strb r0, [r2, #0x1e] +_0201710C: + cmp r4, #0x7 + bls _02017112 + b _020177C4 +_02017112: + add r2, r4, r4 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0201711E: //; jump table (using 16-bit offset) + // .short _0201712E - _0201711E - 2; case 0 + // .short _0201719A - _0201711E - 2; case 1 + // .short _02017206 - _0201711E - 2; case 2 + // .short _0201733A - _0201711E - 2; case 3 + // .short _0201746E - _0201711E - 2; case 4 + // .short _020174F4 - _0201711E - 2; case 5 + // .short _02017560 - _0201711E - 2; case 6 + // .short _02017694 - _0201711E - 2; case 7 + + lsl r6, r1, #0 + lsl r2, r7, #1 + lsl r6, r4, #3 + lsl r2, r3, #8 + lsl r6, r1, #13 + lsl r4, r2, #15 + lsl r0, r0, #17 + lsl r4, r6, #21 +_0201712E: + ldr r2, =0x04000008 + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x1e] + bne _0201714A + ldrh r3, [r2, #0x1e] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x1e] + b _0201715C +_0201714A: + cmp r1, #0x2 + bne _0201715C + ldrh r3, [r2, #0x1e] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x1e] +_0201715C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1e] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, =0x04000008 + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_0201719A: + ldr r2, =0x0400000A + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x1c] + bne _020171B6 + ldrh r3, [r2, #0x1c] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x1c] + b _020171C8 +_020171B6: + cmp r1, #0x2 + bne _020171C8 + ldrh r3, [r2, #0x1c] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x1c] +_020171C8: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1c] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, =0x0400000A + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_02017206: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _0201721A + cmp r3, #0x1 + beq _0201727A + cmp r3, #0x2 + beq _020172DA +_0201721A: + ldr r3, =0x0400000C + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x1a] + bne _02017236 + ldrh r4, [r3, #0x1a] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x1a] + b _02017248 +_02017236: + cmp r1, #0x2 + bne _02017248 + ldrh r4, [r3, #0x1a] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x1a] +_02017248: + add r0, sp, #0x0 + ldrh r3, [r0, #0x1a] + add r2, r5, r2 + ldr r6, =0x0400000C + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201727A: + ldr r2, =0x0400000C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x18] + bne _02017296 + ldrh r3, [r2, #0x18] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x18] + b _020172A8 +_02017296: + cmp r1, #0x2 + bne _020172A8 + ldrh r3, [r2, #0x18] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x18] +_020172A8: + add r0, sp, #0x0 + ldrh r3, [r0, #0x18] + ldr r6, =0x0400000C + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020172DA: + ldr r2, =0x0400000C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x16] + bne _020172F6 + ldrh r3, [r2, #0x16] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x16] + b _02017308 +_020172F6: + cmp r1, #0x2 + bne _02017308 + ldrh r3, [r2, #0x16] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x16] +_02017308: + add r0, sp, #0x0 + ldrh r3, [r0, #0x16] + ldr r6, =0x0400000C + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201733A: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _0201734E + cmp r3, #0x1 + beq _020173AE + cmp r3, #0x2 + beq _0201740E +_0201734E: + ldr r3, =0x0400000E + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x14] + bne _0201736A + ldrh r4, [r3, #0x14] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x14] + b _0201737C +_0201736A: + cmp r1, #0x2 + bne _0201737C + ldrh r4, [r3, #0x14] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x14] +_0201737C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x14] + add r2, r5, r2 + ldr r6, =0x0400000E + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020173AE: + ldr r2, =0x0400000E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x12] + bne _020173CA + ldrh r3, [r2, #0x12] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x12] + b _020173DC +_020173CA: + cmp r1, #0x2 + bne _020173DC + ldrh r3, [r2, #0x12] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x12] +_020173DC: + add r0, sp, #0x0 + ldrh r3, [r0, #0x12] + ldr r6, =0x0400000E + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201740E: + ldr r2, =0x0400000E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x10] + bne _0201742A + ldrh r3, [r2, #0x10] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x10] + b _0201743C +_0201742A: + cmp r1, #0x2 + bne _0201743C + ldrh r3, [r2, #0x10] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x10] +_0201743C: + add r0, sp, #0x0 + ldrh r3, [r0, #0x10] + ldr r6, =0x0400000E + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_0201746E: + ldr r2, =0x04001008 + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0xe] + bne _020174A4 + ldrh r3, [r2, #0xe] + ldr r1, =0xFFFFE0FF + b _02017498 +_02017498: + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0xe] + b _020174B6 +_020174A4: + cmp r1, #0x2 + bne _020174B6 + ldrh r3, [r2, #0xe] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0xe] +_020174B6: + add r0, sp, #0x0 + ldrh r3, [r0, #0xe] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, =0x04001008 + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_020174F4: + ldr r2, =0x0400100A + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0xc] + bne _02017510 + ldrh r3, [r2, #0xc] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0xc] + b _02017522 +_02017510: + cmp r1, #0x2 + bne _02017522 + ldrh r3, [r2, #0xc] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0xc] +_02017522: + add r0, sp, #0x0 + ldrh r3, [r0, #0xc] + add sp, #0x20 + lsl r0, r3, #0x12 + lsr r6, r0, #0x1f + lsl r0, r3, #0x1a + lsr r2, r0, #0x1c + lsl r0, r3, #0x13 + lsr r1, r0, #0x1b + mov r0, #0x2c + mul r0, r4 + add r0, r5, r0 + lsl r3, r3, #0x10 + lsr r5, r3, #0x1e + lsl r3, r2, #0x2 + ldrb r0, [r0, #0x1e] + lsl r2, r1, #0x8 + lsl r4, r6, #0xd + lsl r1, r0, #0x7 + ldr r0, =0x0400100A + mov r6, #0x43 + ldrh r7, [r0, #0x0] + lsl r5, r5, #0xe + and r6, r7 + orr r5, r6 + orr r1, r5 + orr r1, r2 + orr r1, r3 + orr r1, r4 + strh r1, [r0, #0x0] + pop {r3-r7, pc} +_02017560: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _02017574 + cmp r3, #0x1 + beq _020175D4 + cmp r3, #0x2 + beq _02017634 +_02017574: + ldr r3, =0x0400100C + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0xa] + bne _02017590 + ldrh r4, [r3, #0xa] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0xa] + b _020175A2 +_02017590: + cmp r1, #0x2 + bne _020175A2 + ldrh r4, [r3, #0xa] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0xa] +_020175A2: + add r0, sp, #0x0 + ldrh r3, [r0, #0xa] + add r2, r5, r2 + ldr r6, =0x0400100C + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_020175D4: + ldr r2, =0x0400100C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x8] + bne _020175F0 + ldrh r3, [r2, #0x8] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x8] + b _02017602 +_020175F0: + cmp r1, #0x2 + bne _02017602 + ldrh r3, [r2, #0x8] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x8] +_02017602: + add r0, sp, #0x0 + ldrh r3, [r0, #0x8] + ldr r6, =0x0400100C + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017634: + ldr r2, =0x0400100C + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x6] + bne _02017650 + ldrh r3, [r2, #0x6] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x6] + b _02017662 +_02017650: + cmp r1, #0x2 + bne _02017662 + ldrh r3, [r2, #0x6] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x6] +_02017662: + add r0, sp, #0x0 + ldrh r3, [r0, #0x6] + ldr r6, =0x0400100C + add sp, #0x20 + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017694: + mov r2, #0x2c + mul r2, r4 + add r3, r5, r2 + ldrb r3, [r3, #0x1c] + cmp r3, #0x0 + beq _020176A8 + cmp r3, #0x1 + beq _02017708 + cmp r3, #0x2 + beq _02017768 +_020176A8: + ldr r3, =0x0400100E + cmp r1, #0x1 + ldrh r4, [r3, #0x0] + add r3, sp, #0x0 + strh r4, [r3, #0x4] + bne _020176C4 + ldrh r4, [r3, #0x4] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r4 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r3, #0x4] + b _020176D6 +_020176C4: + cmp r1, #0x2 + bne _020176D6 + ldrh r4, [r3, #0x4] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r4, r1 + lsr r0, r0, #0x1a + orr r0, r4 + strh r0, [r3, #0x4] +_020176D6: + add r0, sp, #0x0 + ldrh r3, [r0, #0x4] + add r2, r5, r2 + ldr r6, =0x0400100E + lsl r0, r3, #0x1a + ldrb r4, [r2, #0x1e] + lsr r1, r0, #0x1c + lsl r0, r3, #0x13 + lsl r2, r3, #0x10 + lsr r3, r2, #0x1e + ldrh r5, [r6, #0x0] + lsr r0, r0, #0x1b + lsl r2, r1, #0x2 + lsl r1, r0, #0x8 + lsl r0, r4, #0x7 + mov r4, #0x43 + and r4, r5 + lsl r3, r3, #0xe + orr r3, r4 + orr r0, r3 + orr r0, r1 + orr r0, r2 + add sp, #0x20 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017708: + ldr r2, =0x0400100E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x2] + bne _02017724 + ldrh r3, [r2, #0x2] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x2] + b _02017736 +_02017724: + cmp r1, #0x2 + bne _02017736 + ldrh r3, [r2, #0x2] + mov r1, #0x3c + lsl r0, r0, #0x1c + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x2] +_02017736: + add r0, sp, #0x0 + ldrh r3, [r0, #0x2] + ldr r6, =0x0400100E + add sp, #0x20 + lsl r1, r3, #0x13 + lsl r0, r3, #0x1a + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsr r0, r0, #0x1c + lsl r1, r0, #0x2 + lsl r0, r4, #0x8 + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] + pop {r3-r7, pc} +_02017768: + ldr r2, =0x0400100E + cmp r1, #0x1 + ldrh r3, [r2, #0x0] + add r2, sp, #0x0 + strh r3, [r2, #0x0] + bne _02017784 + ldrh r3, [r2, #0x0] + ldr r1, =0xFFFFE0FF + lsl r0, r0, #0x1b + and r1, r3 + lsr r0, r0, #0x13 + orr r0, r1 + strh r0, [r2, #0x0] + b _02017796 +_02017784: + cmp r1, #0x2 + bne _02017796 + ldrh r3, [r2, #0x0] + mov r1, #0x38 + lsl r0, r0, #0x1d + bic r3, r1 + lsr r0, r0, #0x1a + orr r0, r3 + strh r0, [r2, #0x0] +_02017796: + add r0, sp, #0x0 + ldrh r3, [r0, #0x0] + ldr r6, =0x0400100E + lsl r1, r3, #0x13 + lsr r4, r1, #0x1b + lsl r1, r3, #0x12 + lsr r2, r1, #0x1f + lsl r0, r3, #0x1a + lsl r1, r3, #0x10 + lsr r3, r1, #0x1e + lsl r1, r4, #0x8 + lsr r0, r0, #0x1d + ldrh r5, [r6, #0x0] + mov r4, #0x43 + lsl r3, r3, #0xe + and r4, r5 + lsl r0, r0, #0x2 + orr r3, r4 + orr r0, r3 + lsl r2, r2, #0xd + orr r0, r1 + orr r0, r2 + strh r0, [r6, #0x0] +_020177C4: + add sp, #0x20 + pop {r3-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC u8 FUN_020177DC(u8 param0, u32 param1) +{ + switch (param1) + { + case 0: + + if (param0 == 1) + { + return 0; + } + else if (param0 == 2) + { + return 2; + } + else if (param0 == 3) + { + return 1; + } + else if (param0 == 4) + { + return 3; + } + break; + + case 1: + + if (param0 == 0) + { + return 0; + } + else if (param0 == 1) + { + return 1; + } + else if (param0 == 4) + { + return 2; + } + else if (param0 == 5) + { + return 3; + } + break; + + case 2: + + if (param0 == 0) + { + return 0; + } + else if (param0 == 1) + { + return 1; + } + else if (param0 == 4) + { + return 2; + } + else if (param0 == 5) + { + return 3; + } + break; + } + + return 0; +} + +THUMB_FUNC void FUN_02017850(u32 param0, u8 *param1, u8 *param2) +{ + switch (param0) + { + case 0: + *param1 = 0x10; + *param2 = 0x10; + break; + case 1: + *param1 = 0x20; + *param2 = 0x20; + break; + case 2: + *param1 = 0x20; + *param2 = 0x40; + break; + case 3: + *param1 = 0x40; + *param2 = 0x20; + break; + case 4: + *param1 = 0x40; + *param2 = 0x40; + break; + case 5: + *param1 = 0x80; + *param2 = 0x80; + break; + } +} + +THUMB_FUNC void FUN_020178A0(struct UnkStruct2 *param0, u32 param1) +{ + if (param0->unk08[param1].unk08 != NULL) + { + FreeToHeap(param0->unk08[param1].unk08); + param0->unk08[param1].unk08 = NULL; + } +} + +THUMB_FUNC void FUN_020178BC(u32 param0, u32 param1) +{ + switch (param0) + { + case 0: + reg_G2_BG0CNT = reg_G2_BG0CNT & ~3 | param1; + break; + case 1: + reg_G2_BG1CNT = reg_G2_BG1CNT & ~3 | param1; + break; + case 2: + reg_G2_BG2CNT = reg_G2_BG2CNT & ~3 | param1; + break; + case 3: + reg_G2_BG3CNT = reg_G2_BG3CNT & ~3 | param1; + break; + case 4: + reg_G2S_DB_BG0CNT = reg_G2S_DB_BG0CNT & ~3 | param1; + break; + case 5: + reg_G2S_DB_BG1CNT = reg_G2S_DB_BG1CNT & ~3 | param1; + break; + case 6: + reg_G2S_DB_BG2CNT = reg_G2S_DB_BG2CNT & ~3 | param1; + break; + case 7: + reg_G2S_DB_BG3CNT = reg_G2S_DB_BG3CNT & ~3 | param1; + break; + } +} + +THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle) +{ + switch (param0) + { + case 0: + GX_EngineAToggleLayers(1, toggle); + break; + case 1: + GX_EngineAToggleLayers(2, toggle); + break; + case 2: + GX_EngineAToggleLayers(4, toggle); + break; + case 3: + GX_EngineAToggleLayers(8, toggle); + break; + case 4: + GX_EngineBToggleLayers(1, toggle); + break; + case 5: + GX_EngineBToggleLayers(2, toggle); + break; + case 6: + GX_EngineBToggleLayers(4, toggle); + break; + case 7: + GX_EngineBToggleLayers(8, toggle); + break; + } +} + +extern void FUN_02017B8C(struct InnerStruct *param0, u32 param2, u32 val); +extern void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1); + +THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val) +{ + FUN_02017B8C(¶m0->unk08[param1], param2, val); + + u32 r1 = param0->unk08[param1].unk14; + u32 r0 = param0->unk08[param1].unk18; + switch (param1) + { + case 0: + + reg_G2_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + break; + case 1: + + reg_G2_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + break; + + case 2: + if (param0->unk08[2].unk1c == 0) + { + reg_G2_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + } + else + { + FUN_02017C6C(param0, 2); + } + + break; + + case 3: + if (param0->unk08[3].unk1c == 0) + { + reg_G2_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + } + else + { + FUN_02017C6C(param0, 3); + } + + break; + + case 4: + + reg_G2S_DB_BG0OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + break; + case 5: + + reg_G2S_DB_BG1OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + break; + + case 6: + if (param0->unk08[6].unk1c == 0) + { + reg_G2S_DB_BG2OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + } + else + { + FUN_02017C6C(param0, 6); + } + + break; + + case 7: + if (param0->unk08[7].unk1c == 0) + { + reg_G2S_DB_BG3OFS = (r1 & 0x1FF) | ((r0 << 16) & 0x1FF0000); + } + else + { + FUN_02017C6C(param0, 7); + } + + break; + } +} + +THUMB_FUNC u32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1) +{ + return param0->unk08[param1].unk14; +} + +THUMB_FUNC u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) +{ + return param0->unk08[param1].unk18; +} + +extern void FUN_02017BD0( + struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); + +THUMB_FUNC void FUN_02017B60(struct UnkStruct2 *param0, + u32 param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6) +{ + FUN_02017B8C(¶m0->unk08[param1], param2, param3); + FUN_02017BD0(param0, param1, param4, param5, param6); +} + +THUMB_FUNC void FUN_02017B8C(struct InnerStruct *param0, u32 param1, u32 val) +{ + switch (param1) + { + case 0: + param0->unk14 = val; + break; + case 1: + param0->unk14 += val; + break; + case 2: + param0->unk14 -= val; + break; + case 3: + param0->unk18 = val; + break; + case 4: + param0->unk18 += val; + break; + case 5: + param0->unk18 -= val; + break; + } +} + +THUMB_FUNC void FUN_02017BD0( + struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4) +{ + switch (param1) + { + case 2: + G2x_SetBGyAffine_(0x04000020, + param2, + param3, + param4, + param0->unk08[param1].unk14, + param0->unk08[param1].unk18); + break; + case 3: + G2x_SetBGyAffine_(0x04000030, + param2, + param3, + param4, + param0->unk08[param1].unk14, + param0->unk08[param1].unk18); + break; + case 6: + G2x_SetBGyAffine_(0x04001020, + param2, + param3, + param4, + param0->unk08[param1].unk14, + param0->unk08[param1].unk18); + break; + case 7: + G2x_SetBGyAffine_(0x04001030, + param2, + param3, + param4, + param0->unk08[param1].unk14, + param0->unk08[param1].unk18); + break; + } +} + +THUMB_FUNC void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1) +{ + struct Mtx22 mtx; + MTX22_2DAffine(&mtx, 0, 0x1000, 0x1000, 0); + FUN_02017BD0(param0, param1, &mtx, 0, 0); +} + +THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2) +{ + if (param2 == 0) + { + MI_UncompressLZ8(param0, param1); + return; + } + + if (((u32)param0 % 4) == 0 && ((u32)param1 % 4) == 0 && ((u16)param2 % 4) == 0) + { + MIi_CpuCopy32(param0, param1, param2); + return; + } + + MIi_CpuCopy16(param0, param1, param2); +} + +extern void FUN_02017CE8( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); + +THUMB_FUNC void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1) +{ + FUN_02017CE8(param0, + param1, + param0->unk08[param1].unk08, + param0->unk08[param1].unk0c, + param0->unk08[param1].unk10); +} + +extern void FUN_02017D68(u32 param0, void *param1, u32 param2, u32 param3); + +THUMB_FUNC void FUN_02017CE8( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) +{ + u32 st0 = param3; + if (param3 == 0) + { + void *st4 = param0->unk08[param1].unk08; + if (st4 != 0) + { + FUN_02017C98(param2, st4, param3); + FUN_02017D68(param1, st4, param0->unk08[param1].unk10 * 2, param0->unk08[param1].unk0c); + return; + } + + u32 r7 = param2[0] >> 8; + void *ptr = AllocFromHeapAtEnd(param0->unk00, r7); + FUN_02017C98(param2, ptr, st0); + FUN_02017D68(param1, ptr, param4 * 2, r7); + FreeToHeap(ptr); + return; + } + + FUN_02017D68(param1, param2, param4 * 2, param3); +} + +THUMB_FUNC void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size) +{ + DC_FlushRange(param1, size); + + switch (param0) + { + case 0: + GX_LoadBG0Scr(param1, offset, size); + break; + case 1: + GX_LoadBG1Scr(param1, offset, size); + break; + case 2: + GX_LoadBG2Scr(param1, offset, size); + break; + case 3: + GX_LoadBG3Scr(param1, offset, size); + break; + case 4: + GXS_LoadBG0Scr(param1, offset, size); + break; + case 5: + GXS_LoadBG1Scr(param1, offset, size); + break; + case 6: + GXS_LoadBG2Scr(param1, offset, size); + break; + case 7: + GXS_LoadBG3Scr(param1, offset, size); + break; + } +} + +THUMB_FUNC void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2, u32 param3) +{ + FUN_02017C98(param2, param0->unk08[param1].unk08, param3); +} + +extern void FUN_02017E40( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); + +THUMB_FUNC void FUN_02017E14( + struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) +{ + if (param0->unk08[param1].unk1e == 0) + { + FUN_02017E40(param0, param1, param2, param3, param4 << 5); + return; + } + FUN_02017E40(param0, param1, param2, param3, param4 << 6); +} + +extern void FUN_02017E84(u32 param0, void *param1, u32 param2, u32 param3); + +THUMB_FUNC void FUN_02017E40( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) +{ + u32 st0 = param3; + if (param3 == 0) + { + + u32 r4 = param2[0] >> 8; + void *ptr = AllocFromHeapAtEnd(param0->unk00, r4); + FUN_02017C98(param2, ptr, st0); + FUN_02017E84(param1, ptr, param4, r4); + FreeToHeap(ptr); + return; + } + + FUN_02017E84(param1, param2, param4, param3); +} + +THUMB_FUNC void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size) +{ + DC_FlushRange(param1, size); + + switch (param0) + { + case 0: + GX_LoadBG0Char(param1, offset, size); + break; + case 1: + GX_LoadBG1Char(param1, offset, size); + break; + case 2: + GX_LoadBG2Char(param1, offset, size); + break; + case 3: + GX_LoadBG3Char(param1, offset, size); + break; + case 4: + GXS_LoadBG0Char(param1, offset, size); + break; + case 5: + GXS_LoadBG1Char(param1, offset, size); + break; + case 6: + GXS_LoadBG2Char(param1, offset, size); + break; + case 7: + GXS_LoadBG3Char(param1, offset, size); + break; + } +} + +THUMB_FUNC void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id) +{ + void *ptr = AllocFromHeapAtEnd(heap_id, size); + memset(ptr, 0, size); + + FUN_02017E84(param0, ptr, offset, size); + FUN_02016A8C(heap_id, ptr); +} + +THUMB_FUNC void FUN_02017F48( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) +{ + void *st4; + u32 st0 = param3 * param0->unk08[param1].unk1f; + u32 r5 = param2; + st4 = AllocFromHeapAtEnd(param0->unk00, st0); + + if (param0->unk08[param1].unk1f == 0x20) + { + r5 = (r5 << 0xc | r5 << 0x8 | r5 << 0x4 | r5); + r5 |= r5 << 0x10; + } + else + { + r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5; + } + + MIi_CpuClearFast(r5, st4, st0); + + FUN_02017E84((u8)param1, st4, param0->unk08[param1].unk1f * param4, st0); + FreeToHeap(st4); +} + +THUMB_FUNC void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size) +{ + DC_FlushRange(param1, offset); + if (param0 < 4) + { + GX_LoadBGPltt(param1, size, offset); + return; + } + + GXS_LoadBGPltt(param1, size, offset); +} + +THUMB_FUNC void FUN_02017FE4(u32 param0, u32 param1) +{ + FUN_02017FB4(param0, ¶m1, 2, 0); +} + +THUMB_FUNC u16 FUN_02017FFC(s32 param0, s32 param1, u32 param2) +{ + switch (param2) + { + case 0: + return param0 + (param1 << 4); + case 1: + case 2: + return param0 + (param1 << 5); + case 3: + return (param0 & 0x1f) + ((param1 + (param0 & ~0x1f)) << 5); + case 4: + u16 res = ((u16)((param0 >> 5) + (param1 >> 5) * 2)) << 10; + res += (param0 & 0x1f) + ((param1 & 0x1f) << 5); + return res; + case 5: + return 0; + } +} + +THUMB_FUNC u16 FUN_02018068(u32 param0, u32 param1, u32 param2, u32 param3) +{ + u8 r2 = 0; + u16 r3 = 0; + s16 r4 = param2 - 32; + s16 r5 = param3 - 32; + + if ((param0 >> 5) != 0) + { + r2++; + } + + if ((param1 >> 5) != 0) + { + r2 += 2; + } + + switch (r2) + { + case 0: + if (r4 >= 0) + { + r3 += param0 + (param1 << 5); + } + else + { + r3 += param0 + param1 * param2; + } + break; + case 1: + if (r5 >= 0) + { + r3 += (1 << 0xa); + } + else + { + r3 += (param3 << 5); + } + + r3 += (param0 & 0x1f) + param1 * r4; + break; + case 2: + r3 += param2 << 5; + if (r4 >= 0) + { + r3 += param0 + ((param1 & 0x1f) << 5); + } + else + { + r3 += param0 + (param1 & 0x1f) * param2; + } + break; + case 3: + r3 += (param2 + r5) << 5; + r3 += (param0 & 0x1f) + (param1 & 0x1f) * r4; + break; + } + + return r3; +} + + +extern void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10); + + +THUMB_FUNC void FUN_02018148(struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6) { + FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); +} + + + +extern void FUN_02018268(struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 *param5, u8 param6, u8 param7, u8 param8, u8 param9, u8 param10); +extern void FUN_020183DC(struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 *param5, u8 param6, u8 param7, u8 param8, u8 param9, u8 param10); + +THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10) { + if (param0->unk08[param1].unk1c != 1) { + FUN_02018268(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 0); + } else { + FUN_020183DC(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 0); + } +} + + + +THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10) { + if (param0->unk08[param1].unk1c != 1) { + FUN_02018268(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 1); + } else { + FUN_020183DC(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 1); + } +} diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index b1dbfcda8..0ecf4f563 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -6,6 +6,9 @@ #include "GX_layers.h" #include "gx.h" #include "heap.h" +#include "math_util.h" +#include "MI_uncompress.h" +#include "OS_cache.h" struct UnkStruct1 { u32 unk00; @@ -32,7 +35,7 @@ struct UnkStruct2 { struct InnerStruct { - u32 unk08; + void *unk08; u32 unk0c; u32 unk10; @@ -61,4 +64,5 @@ THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStr -#endif //POKEDIAMOND_UNK_02016B94_H \ No newline at end of file + +#endif //POKEDIAMOND_UNK_02016B94_H From de8b920cbe3c1f893607a4423567a65434333e2b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 14 May 2021 21:21:31 -0400 Subject: [PATCH 035/134] fixrom: crc16 now resembles a proper crc16 routine --- CMakeLists.txt | 4 ++- tools/fixrom/fixrom.c | 58 ++++++++++++++----------------------------- 2 files changed, 22 insertions(+), 40 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e21a731a8..d0806d0f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,6 @@ -cmake_minimum_required (VERSION 2.8.11) +cmake_minimum_required (VERSION 3.15) +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") +set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") project(PokeDiamond) set(CMAKE_CXX_STANDARD 17) set(CMAKE_C_STANDARD 11) diff --git a/tools/fixrom/fixrom.c b/tools/fixrom/fixrom.c index 6c5f5da12..1e526adba 100644 --- a/tools/fixrom/fixrom.c +++ b/tools/fixrom/fixrom.c @@ -60,49 +60,29 @@ static inline void HeaderWriteU32LE(int offset, uint32_t value) RomHeader[offset + 3] = value >> 24; } +#define CRC16_POLYNOMIAL 0xA001 + static uint16_t Calc_CRC16(uint8_t * data, size_t length, uint16_t crc) { - static uint16_t CrcTable[16] = { - 0x0000, - 0xCC01, - 0xD801, - 0x1400, - 0xF001, - 0x3C00, - 0x2800, - 0xE401, - 0xA001, - 0x6C00, - 0x7800, - 0xB401, - 0x5000, - 0x9C01, - 0x8801, - 0x4400, - }; - - uint16_t x = 0; - uint16_t y; - uint16_t bit = 0; - uint8_t * end = data + length; - while (data < end) - { - if (bit == 0) - { - x = data[0] | (data[1] << 8); - } - y = CrcTable[crc & 15]; - crc >>= 4; - crc ^= y; - y = CrcTable[(x >> bit) & 15]; - crc ^= y; - bit += 4; - if (bit == 16) - { - data += 2; - bit = 0; + static uint16_t CrcTable[256] = {}; + static int initialized = 0; + int i; + + if (!initialized) { + for (i = 0; i < 256; i++) { + int c = i; + for (int j = 0; j < 8; j++) { + c = (c >> 1) ^ ((c & 1) ? CRC16_POLYNOMIAL : 0); + } + CrcTable[i] = c; } + initialized = 1; } + + for (i = 0; i < length; i++) { + crc = (crc >> 8) ^ CrcTable[(uint8_t)crc] ^ CrcTable[data[i]]; + } + return crc; } From 5cc0de5c3101cf0dc5bcac9956dd7b5773c087f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 15 May 2021 10:41:32 +0200 Subject: [PATCH 036/134] huge loops --- arm9/asm/unk_02016B94.s | 383 +------------------------------------- arm9/src/unk_02016B94_c.c | 333 ++++++++++++++++++++++++++++++--- 2 files changed, 307 insertions(+), 409 deletions(-) diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 43f2a2581..5a654a24e 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -61,388 +61,9 @@ - thumb_func_start FUN_02018268 -FUN_02018268: ; 0x02018268 - push {r4-r7, lr} - sub sp, #0x44 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r7, r0, #0x0 - ldr r0, [sp, #0x58] - add r6, r3, #0x0 - str r0, [sp, #0x58] - ldr r0, [sp, #0x5c] - ldr r4, [sp, #0x68] - str r0, [sp, #0x5c] - ldr r0, [sp, #0x6c] - str r0, [sp, #0x6c] - ldr r0, [r7, #0x0] - str r0, [sp, #0x2c] - cmp r0, #0x0 - bne _0201828C - b _020183D6 -_0201828C: - ldrb r0, [r7, #0x15] - add r1, sp, #0x40 - add r1, #0x1 - add r2, sp, #0x40 - bl FUN_02017850 - add r0, sp, #0x70 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201833A - mov r0, #0x0 - str r0, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _020182CA - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x1c] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x18] - lsl r1, r0, #0x1 - ldr r0, [sp, #0x5c] - add r0, r0, r1 - str r0, [sp, #0x14] -_020182BC: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x28] - add r0, r1, r0 - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - cmp r0, r1 - blt _020182CC -_020182CA: - b _020183D6 -_020182CC: - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x28] - add r2, r2, r1 - ldr r1, [sp, #0x6c] - cmp r2, r1 - bge _020183D6 - mov r5, #0x0 - cmp r6, #0x0 - bls _02018326 - add r1, r4, #0x0 - mul r1, r2 - lsl r2, r1, #0x1 - ldr r1, [sp, #0x14] - lsl r0, r0, #0x18 - add r1, r1, r2 - lsr r0, r0, #0x18 - str r1, [sp, #0x10] - str r0, [sp, #0x30] -_020182F0: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _02018326 - ldr r1, [sp, #0x18] - add r1, r1, r5 - cmp r1, r4 - bge _02018326 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x30] - lsr r0, r0, #0x18 - bl FUN_02017FFC - ldr r1, [sp, #0x10] - lsl r2, r5, #0x1 - ldrh r1, [r1, r2] - lsl r2, r0, #0x1 - ldr r0, [sp, #0x2c] - strh r1, [r0, r2] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _020182F0 -_02018326: - ldr r0, [sp, #0x28] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _020182BC - add sp, #0x44 - pop {r4-r7, pc} -_0201833A: - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _020183D6 - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x24] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x20] -_0201834E: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - add r1, r1, r0 - add r0, sp, #0x40 - ldrb r0, [r0, #0x0] - cmp r1, r0 - bge _020183D6 - ldr r2, [sp, #0x24] - ldr r0, [sp, #0x8] - add r0, r2, r0 - ldr r2, [sp, #0x6c] - cmp r0, r2 - bge _020183D6 - mov r5, #0x0 - cmp r6, #0x0 - bls _020183C6 - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x34] - str r0, [sp, #0x3c] -_0201837A: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _020183C6 - ldr r1, [sp, #0x20] - add r1, r1, r5 - str r1, [sp, #0xc] - cmp r1, r4 - bge _020183C6 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x34] - lsr r0, r0, #0x18 - bl FUN_02017FFC - str r0, [sp, #0x38] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x3c] - lsl r0, r0, #0x18 - ldr r3, [sp, #0x6c] - lsr r0, r0, #0x18 - add r2, r4, #0x0 - bl FUN_02018068 - lsl r1, r0, #0x1 - ldr r0, [sp, #0x5c] - ldrh r0, [r0, r1] - ldr r1, [sp, #0x38] - lsl r2, r1, #0x1 - ldr r1, [sp, #0x2c] - strh r0, [r1, r2] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _0201837A -_020183C6: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _0201834E -_020183D6: - add sp, #0x44 - pop {r4-r7, pc} - .balign 4 - thumb_func_start FUN_020183DC -FUN_020183DC: ; 0x020183DC - push {r4-r7, lr} - sub sp, #0x44 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r7, r0, #0x0 - ldr r0, [sp, #0x58] - add r6, r3, #0x0 - str r0, [sp, #0x58] - ldr r0, [sp, #0x5c] - ldr r4, [sp, #0x68] - str r0, [sp, #0x5c] - ldr r0, [sp, #0x6c] - str r0, [sp, #0x6c] - ldr r0, [r7, #0x0] - str r0, [sp, #0x2c] - cmp r0, #0x0 - bne _02018400 - b _0201853C -_02018400: - ldrb r0, [r7, #0x15] - add r1, sp, #0x40 - add r1, #0x1 - add r2, sp, #0x40 - bl FUN_02017850 - add r0, sp, #0x70 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _020184A4 - mov r0, #0x0 - str r0, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bhi _02018420 - b _0201853C -_02018420: - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x1c] - ldrb r0, [r1, #0x18] - ldr r1, [sp, #0x5c] - str r0, [sp, #0x18] - add r0, r1, r0 - str r0, [sp, #0x14] -_02018430: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x28] - add r0, r1, r0 - add r1, sp, #0x40 - ldrb r1, [r1, #0x0] - cmp r0, r1 - bge _0201853C - ldr r2, [sp, #0x1c] - ldr r1, [sp, #0x28] - add r2, r2, r1 - ldr r1, [sp, #0x6c] - cmp r2, r1 - bge _0201853C - mov r5, #0x0 - cmp r6, #0x0 - bls _02018490 - ldr r1, [sp, #0x14] - mul r2, r4 - lsl r0, r0, #0x18 - add r1, r1, r2 - lsr r0, r0, #0x18 - str r1, [sp, #0x10] - str r0, [sp, #0x30] -_0201845E: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _02018490 - ldr r1, [sp, #0x18] - add r1, r1, r5 - cmp r1, r4 - bge _02018490 - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x30] - lsr r0, r0, #0x18 - bl FUN_02017FFC - ldr r1, [sp, #0x10] - ldrb r2, [r1, r5] - ldr r1, [sp, #0x2c] - strb r2, [r1, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _0201845E -_02018490: - ldr r0, [sp, #0x28] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x28] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _02018430 - add sp, #0x44 - pop {r4-r7, pc} -_020184A4: - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r0, #0x0 - bls _0201853C - add r1, sp, #0x48 - ldrb r0, [r1, #0x1c] - str r0, [sp, #0x24] - ldrb r0, [r1, #0x18] - str r0, [sp, #0x20] -_020184B8: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - add r1, r1, r0 - add r0, sp, #0x40 - ldrb r0, [r0, #0x0] - cmp r1, r0 - bge _0201853C - ldr r2, [sp, #0x24] - ldr r0, [sp, #0x8] - add r0, r2, r0 - ldr r2, [sp, #0x6c] - cmp r0, r2 - bge _0201853C - mov r5, #0x0 - cmp r6, #0x0 - bls _0201852C - lsl r1, r1, #0x18 - lsl r0, r0, #0x18 - lsr r1, r1, #0x18 - lsr r0, r0, #0x18 - str r1, [sp, #0x34] - str r0, [sp, #0x3c] -_020184E4: - add r1, sp, #0x40 - ldr r0, [sp, #0x0] - ldrb r1, [r1, #0x1] - add r0, r0, r5 - cmp r0, r1 - bge _0201852C - ldr r1, [sp, #0x20] - add r1, r1, r5 - str r1, [sp, #0xc] - cmp r1, r4 - bge _0201852C - ldrb r2, [r7, #0x15] - lsl r0, r0, #0x18 - ldr r1, [sp, #0x34] - lsr r0, r0, #0x18 - bl FUN_02017FFC - str r0, [sp, #0x38] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x3c] - lsl r0, r0, #0x18 - ldr r3, [sp, #0x6c] - lsr r0, r0, #0x18 - add r2, r4, #0x0 - bl FUN_02018068 - ldr r1, [sp, #0x5c] - ldrb r2, [r1, r0] - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x38] - strb r2, [r1, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r6 - blo _020184E4 -_0201852C: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - str r1, [sp, #0x8] - ldr r0, [sp, #0x58] - cmp r1, r0 - blo _020184B8 -_0201853C: - add sp, #0x44 - pop {r4-r7, pc} + + thumb_func_start FUN_02018540 FUN_02018540: ; 0x02018540 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c index c1aca9778..67de19876 100644 --- a/arm9/src/unk_02016B94_c.c +++ b/arm9/src/unk_02016B94_c.c @@ -1,8 +1,8 @@ -#include "unk_02016B94.h" #include "global.h" #include "GX_layers.h" #include "gx.h" #include "heap.h" +#include "unk_02016B94.h" extern void FUN_020192D4(); extern void FUN_02019358(); @@ -72,7 +72,6 @@ void (*const UNK_020EDB74[])() = { FUN_020193B4, }; - THUMB_FUNC void *FUN_02016B94(u32 heap_id) { void *ptr = AllocFromHeap(heap_id, 0x5a << 2); @@ -362,8 +361,6 @@ THUMB_FUNC void FUN_02016C18( GLOBAL_ASM("asm/nonmatchings/FUN_02016C18.s") #endif - - #ifdef NONMATCHING THUMB_FUNC void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3) { @@ -2161,7 +2158,7 @@ THUMB_FUNC void FUN_02017FE4(u32 param0, u32 param1) FUN_02017FB4(param0, ¶m1, 2, 0); } -THUMB_FUNC u16 FUN_02017FFC(s32 param0, s32 param1, u32 param2) +THUMB_FUNC u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2) { switch (param2) { @@ -2181,19 +2178,19 @@ THUMB_FUNC u16 FUN_02017FFC(s32 param0, s32 param1, u32 param2) } } -THUMB_FUNC u16 FUN_02018068(u32 param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) { u8 r2 = 0; u16 r3 = 0; s16 r4 = param2 - 32; s16 r5 = param3 - 32; - if ((param0 >> 5) != 0) + if (((u32)param0 >> 5) != 0) { r2++; } - if ((param1 >> 5) != 0) + if (((u32)param1 >> 5) != 0) { r2 += 2; } @@ -2242,33 +2239,313 @@ THUMB_FUNC u16 FUN_02018068(u32 param0, u32 param1, u32 param2, u32 param3) return r3; } +extern void FUN_02018170(struct UnkStruct2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u32 *param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); -extern void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10); - - -THUMB_FUNC void FUN_02018148(struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6) { +THUMB_FUNC void FUN_02018148( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6) +{ FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); } +extern void FUN_02018268(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u16 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); +extern void FUN_020183DC(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u8 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); - -extern void FUN_02018268(struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 *param5, u8 param6, u8 param7, u8 param8, u8 param9, u8 param10); -extern void FUN_020183DC(struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u32 *param5, u8 param6, u8 param7, u8 param8, u8 param9, u8 param10); - -THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10) { - if (param0->unk08[param1].unk1c != 1) { - FUN_02018268(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 0); - } else { - FUN_020183DC(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 0); +THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u32 *param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10) +{ + if (param0->unk08[param1].unk1c != 1) + { + FUN_02018268(¶m0->unk08[param1], + param2, + param3, + param4, + param5, + param6, + param7, + param8, + param9, + param10, + 0); + } + else + { + FUN_020183DC(¶m0->unk08[param1], + param2, + param3, + param4, + param5, + param6, + param7, + param8, + param9, + param10, + 0); } } - - -THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u32 *param6, u8 param7, u8 param8, u8 param9, u8 param10) { - if (param0->unk08[param1].unk1c != 1) { - FUN_02018268(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 1); - } else { - FUN_020183DC(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7, param8, param9, param10, 1); +THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u32 *param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10) +{ + if (param0->unk08[param1].unk1c != 1) + { + FUN_02018268(¶m0->unk08[param1], + param2, + param3, + param4, + param5, + param6, + param7, + param8, + param9, + param10, + 1); + } + else + { + FUN_020183DC(¶m0->unk08[param1], + param2, + param3, + param4, + param5, + param6, + param7, + param8, + param9, + param10, + 1); + } +} + +THUMB_FUNC void FUN_02018268(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u16 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10) +{ + void *st2c = param0->unk08; + + if (st2c == 0) + { + return; + } + + u8 st41; + u8 st40; + FUN_02017850(param0->unk1d, &st41, &st40); + + u8 i; + u8 j; + if (param10 == 0) + { + for (i = 0; i < param4; i++) + { + + if (param2 + i >= st40) + { + break; + } + + if (param7 + i >= param9) + { + break; + } + + for (j = 0; j < param3; j++) + { + + if (param1 + j >= st41) + { + break; + } + + if (param6 + j >= param8) + { + break; + } + + ((u16 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + param5[param6 + param8 * (param7 + i) + j]; + } + } + } + else + { + for (i = 0; i < param4; i++) + { + + if (param2 + i >= st40) + { + break; + } + + if (param7 + i >= param9) + { + break; + } + + for (j = 0; j < param3; j++) + { + + if (param1 + j >= st41) + { + break; + } + + if (param6 + j >= param8) + { + break; + } + + ((u16 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + param5[FUN_02018068(param6 + j, param7 + i, param8, param9)]; + } + } + } +} + +THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u8 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10) +{ + void *st2c = param0->unk08; + + if (st2c == 0) + { + return; + } + + u8 st41; + u8 st40; + FUN_02017850(param0->unk1d, &st41, &st40); + + u8 i; + u8 j; + if (param10 == 0) + { + for (i = 0; i < param4; i++) + { + + if (param2 + i >= st40) + { + break; + } + + if (param7 + i >= param9) + { + break; + } + + for (j = 0; j < param3; j++) + { + + if (param1 + j >= st41) + { + break; + } + + if (param6 + j >= param8) + { + break; + } + + ((u8 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + param5[param6 + param8 * (param7 + i) + j]; + } + } + } + else + { + for (i = 0; i < param4; i++) + { + + if (param2 + i >= st40) + { + break; + } + + if (param7 + i >= param9) + { + break; + } + + for (j = 0; j < param3; j++) + { + + if (param1 + j >= st41) + { + break; + } + + if (param6 + j >= param8) + { + break; + } + + ((u8 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + param5[FUN_02018068(param6 + j, param7 + i, param8, param9)]; + } + } } } From 4ae167ebbd6d1cfe8de32eab0b3fa9416eaf1dc1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 15 May 2021 12:33:50 -0400 Subject: [PATCH 037/134] Pedantic updates to fixrom --- tools/fixrom/fixrom.c | 67 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/tools/fixrom/fixrom.c b/tools/fixrom/fixrom.c index 1e526adba..59fbd327d 100644 --- a/tools/fixrom/fixrom.c +++ b/tools/fixrom/fixrom.c @@ -6,8 +6,12 @@ #include #include -#define HEADER_SIZE 0x4000 +#define HEADER_SIZE 0x4000 +#define HEADER_CODE_OFFSET 0xC +#define HEADER_SECURE_CRC_OFFSET 0x6C +#define HEADER_CRC_OFFSET 0x15E +// ROM header buffer uint8_t RomHeader[HEADER_SIZE]; static inline noreturn __attribute__((format(printf, 1, 2))) void fatal_error(const char * message, ...) @@ -21,6 +25,9 @@ static inline noreturn __attribute__((format(printf, 1, 2))) void fatal_error(co exit(EXIT_FAILURE); } +// Pedantic check to make sure you're writing to or reading from a valid range +// within the ROM header buffer. +// Call twice, once with the first offset and again with the last address. static inline void OffsetCheck(int offset) { if (offset < 0 || offset >= HEADER_SIZE) @@ -29,37 +36,54 @@ static inline void OffsetCheck(int offset) } } +// Wrapper for memcpy that writes to the ROM header buffer +static inline uint8_t * SafeCopyToHeader(int offset, const void * src, size_t size) +{ + OffsetCheck(offset); + OffsetCheck(offset + size - 1); + return memcpy(RomHeader + offset, src, size); +} + +// Read a 16-bit word from the header buffer static inline uint16_t HeaderReadU16LE(int offset) { OffsetCheck(offset); + OffsetCheck(offset + 1); return RomHeader[offset] | (RomHeader[offset + 1] << 8); } +// Read a 32-bit word from the header buffer static inline uint32_t HeaderReadU32LE(int offset) { OffsetCheck(offset); + OffsetCheck(offset + 3); return RomHeader[offset] | (RomHeader[offset + 1] << 8) | (RomHeader[offset + 2] << 16) | (RomHeader[offset + 3] << 24); } +// Write a 16-bit word to the header buffer static inline void HeaderWriteU16LE(int offset, uint16_t value) { OffsetCheck(offset); + OffsetCheck(offset + 1); RomHeader[offset] = value; RomHeader[offset + 1] = value >> 8; } +// Write a 32-bit word to the header buffer static inline void HeaderWriteU32LE(int offset, uint32_t value) { OffsetCheck(offset); + OffsetCheck(offset + 3); RomHeader[offset] = value; RomHeader[offset + 1] = value >> 8; RomHeader[offset + 2] = value >> 16; RomHeader[offset + 3] = value >> 24; } +// Standard CRC16 routine #define CRC16_POLYNOMIAL 0xA001 static uint16_t Calc_CRC16(uint8_t * data, size_t length, uint16_t crc) @@ -94,20 +118,24 @@ int main(int argc, char ** argv) int override_code = 0; FILE * rom = NULL; + // Parse arguments for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "--secure-crc") == 0) { + // Enforce zero or one if (override_crc) { fatal_error("multiple --secure-crc options specified"); } + // Parse integer char * endptr; unsigned long secure_crc_l = strtoul(argv[++i], &endptr, 0); if (secure_crc_l == 0 && endptr == argv[i]) { fatal_error("argument to --secure-crc must be an integer"); } - if (secure_crc_l >= 0x10000) + // Enforce width + if (secure_crc_l > UINT16_MAX) { fatal_error("argument to --secure-crc must be a 16-bit integer"); } @@ -116,55 +144,66 @@ int main(int argc, char ** argv) } else if (strcmp(argv[i], "--game-code") == 0) { + // Enforce zero or one if (override_code) { fatal_error("multiple --game-code options specified"); } - if (strlen(argv[++i]) > 4) + // Enforce max length + if (strlen(argv[++i]) > sizeof(game_code)) { fatal_error("argument to --game-code must be 4 characters or fewer"); } - strncpy(game_code, argv[i], 4); + memset(game_code, 0, sizeof(game_code)); + strncpy(game_code, argv[i], sizeof(game_code)); override_code = 1; } - else + // Positional arguments + else if (rom == NULL) { - if (rom != NULL) - { - fatal_error("unrecognized %s argument: %s", argv[i][0] == '-' ? "flag" : "positional", argv[i]); - } rom = fopen(argv[i], "r+b"); if (rom == NULL) { fatal_error(argv[i][0] == '-' ? "unrecognized flag argument: %s" : "unable to open file '%s' for reading", argv[i]); } } + else + { + // Invalid argument, complain about it + fatal_error("unrecognized %s argument: %s", argv[i][0] == '-' ? "flag" : "positional", argv[i]); + } } + // Read header to buffer if (fread(RomHeader, 1, HEADER_SIZE, rom) != HEADER_SIZE) { fatal_error("error reading the ROM header"); } + // Update CRC if (override_crc) { - HeaderWriteU16LE(0x6C, secure_crc); + HeaderWriteU16LE(HEADER_SECURE_CRC_OFFSET, secure_crc); } - + + // Update code if (override_code) { - memcpy(RomHeader + 0xC, game_code, 4); + SafeCopyToHeader(HEADER_CODE_OFFSET, game_code, sizeof(game_code)); } - uint16_t header_crc = Calc_CRC16((uint8_t *)RomHeader, 0x15E, 0xFFFF); - HeaderWriteU16LE(0x15E, header_crc); + // Recompute CRC of header not including the crc offset + uint16_t header_crc = Calc_CRC16((uint8_t *)RomHeader, HEADER_CRC_OFFSET, 0xFFFF); + HeaderWriteU16LE(HEADER_CRC_OFFSET, header_crc); + // Write the header back fseek(rom, 0, SEEK_SET); if (fwrite(RomHeader, 1, HEADER_SIZE, rom) != HEADER_SIZE) { fatal_error("error writing the ROM header"); } + // Hooray, we done did it! fclose(rom); return EXIT_SUCCESS; } From e58e45b7ef443f6f76f4a1941b3adc888c1bae3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 15 May 2021 13:25:53 -0400 Subject: [PATCH 038/134] Use FX32_CONST in gSineTable --- arm9/src/math_util.c | 573 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 455 insertions(+), 118 deletions(-) diff --git a/arm9/src/math_util.c b/arm9/src/math_util.c index 5aeb4f8e6..84dfdcfb5 100644 --- a/arm9/src/math_util.c +++ b/arm9/src/math_util.c @@ -8,119 +8,456 @@ extern const s16 UNK_020FFA38[]; // temporary until further notice */ const s32 gSineTable[] = { - 0x00000000, 0x00000047, 0x0000008F, 0x000000D6, - 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3, - 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E, - 0x00000354, 0x00000399, 0x000003DF, 0x00000424, - 0x00000469, 0x000004AE, 0x000004F2, 0x00000536, - 0x00000579, 0x000005BC, 0x000005FE, 0x00000640, - 0x00000682, 0x000006C3, 0x00000704, 0x00000744, - 0x00000783, 0x000007C2, 0x00000800, 0x0000083E, - 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D, - 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12, - 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9, - 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4, - 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F, - 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B, - 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7, - 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42, - 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA, - 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21, - 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74, - 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5, - 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1, - 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA, - 0x00000FFE, 0x00000FFF, 0x00001000, 0x00000FFF, - 0x00000FFE, 0x00000FFA, 0x00000FF6, 0x00000FF0, - 0x00000FEA, 0x00000FE1, 0x00000FD8, 0x00000FCE, - 0x00000FC2, 0x00000FB5, 0x00000FA6, 0x00000F97, - 0x00000F86, 0x00000F74, 0x00000F61, 0x00000F4D, - 0x00000F38, 0x00000F21, 0x00000F09, 0x00000EF0, - 0x00000ED6, 0x00000EBA, 0x00000E9E, 0x00000E80, - 0x00000E61, 0x00000E42, 0x00000E21, 0x00000DFE, - 0x00000DDB, 0x00000DB7, 0x00000D92, 0x00000D6B, - 0x00000D44, 0x00000D1B, 0x00000CF2, 0x00000CC7, - 0x00000C9C, 0x00000C6F, 0x00000C42, 0x00000C13, - 0x00000BE4, 0x00000BB4, 0x00000B82, 0x00000B50, - 0x00000B1D, 0x00000AE9, 0x00000AB5, 0x00000A7F, - 0x00000A49, 0x00000A12, 0x000009DA, 0x000009A1, - 0x00000968, 0x0000092D, 0x000008F2, 0x000008B7, - 0x0000087B, 0x0000083E, 0x00000800, 0x000007C2, - 0x00000783, 0x00000744, 0x00000704, 0x000006C3, - 0x00000682, 0x00000640, 0x000005FE, 0x000005BC, - 0x00000579, 0x00000536, 0x000004F2, 0x000004AE, - 0x00000469, 0x00000424, 0x000003DF, 0x00000399, - 0x00000354, 0x0000030E, 0x000002C7, 0x00000281, - 0x0000023A, 0x000001F3, 0x000001AC, 0x00000165, - 0x0000011E, 0x000000D6, 0x0000008F, 0x00000047, - 0x00000000, 0xFFFFFFB9, 0xFFFFFF71, 0xFFFFFF2A, - 0xFFFFFEE2, 0xFFFFFE9B, 0xFFFFFE54, 0xFFFFFE0D, - 0xFFFFFDC6, 0xFFFFFD7F, 0xFFFFFD39, 0xFFFFFCF2, - 0xFFFFFCAC, 0xFFFFFC67, 0xFFFFFC21, 0xFFFFFBDC, - 0xFFFFFB97, 0xFFFFFB52, 0xFFFFFB0E, 0xFFFFFACA, - 0xFFFFFA87, 0xFFFFFA44, 0xFFFFFA02, 0xFFFFF9C0, - 0xFFFFF97E, 0xFFFFF93D, 0xFFFFF8FC, 0xFFFFF8BC, - 0xFFFFF87D, 0xFFFFF83E, 0xFFFFF800, 0xFFFFF7C2, - 0xFFFFF785, 0xFFFFF749, 0xFFFFF70E, 0xFFFFF6D3, - 0xFFFFF698, 0xFFFFF65F, 0xFFFFF626, 0xFFFFF5EE, - 0xFFFFF5B7, 0xFFFFF581, 0xFFFFF54B, 0xFFFFF517, - 0xFFFFF4E3, 0xFFFFF4B0, 0xFFFFF47E, 0xFFFFF44C, - 0xFFFFF41C, 0xFFFFF3ED, 0xFFFFF3BE, 0xFFFFF391, - 0xFFFFF364, 0xFFFFF339, 0xFFFFF30E, 0xFFFFF2E5, - 0xFFFFF2BC, 0xFFFFF295, 0xFFFFF26E, 0xFFFFF249, - 0xFFFFF225, 0xFFFFF202, 0xFFFFF1DF, 0xFFFFF1BE, - 0xFFFFF19F, 0xFFFFF180, 0xFFFFF162, 0xFFFFF146, - 0xFFFFF12A, 0xFFFFF110, 0xFFFFF0F7, 0xFFFFF0DF, - 0xFFFFF0C8, 0xFFFFF0B3, 0xFFFFF09F, 0xFFFFF08C, - 0xFFFFF07A, 0xFFFFF069, 0xFFFFF05A, 0xFFFFF04B, - 0xFFFFF03E, 0xFFFFF032, 0xFFFFF028, 0xFFFFF01F, - 0xFFFFF016, 0xFFFFF010, 0xFFFFF00A, 0xFFFFF006, - 0xFFFFF002, 0xFFFFF001, 0xFFFFF000, 0xFFFFF001, - 0xFFFFF002, 0xFFFFF006, 0xFFFFF00A, 0xFFFFF010, - 0xFFFFF016, 0xFFFFF01F, 0xFFFFF028, 0xFFFFF032, - 0xFFFFF03E, 0xFFFFF04B, 0xFFFFF05A, 0xFFFFF069, - 0xFFFFF07A, 0xFFFFF08C, 0xFFFFF09F, 0xFFFFF0B3, - 0xFFFFF0C8, 0xFFFFF0DF, 0xFFFFF0F7, 0xFFFFF110, - 0xFFFFF12A, 0xFFFFF146, 0xFFFFF162, 0xFFFFF180, - 0xFFFFF19F, 0xFFFFF1BE, 0xFFFFF1DF, 0xFFFFF202, - 0xFFFFF225, 0xFFFFF249, 0xFFFFF26E, 0xFFFFF295, - 0xFFFFF2BC, 0xFFFFF2E5, 0xFFFFF30E, 0xFFFFF339, - 0xFFFFF364, 0xFFFFF391, 0xFFFFF3BE, 0xFFFFF3ED, - 0xFFFFF41C, 0xFFFFF44C, 0xFFFFF47E, 0xFFFFF4B0, - 0xFFFFF4E3, 0xFFFFF517, 0xFFFFF54B, 0xFFFFF581, - 0xFFFFF5B7, 0xFFFFF5EE, 0xFFFFF626, 0xFFFFF65F, - 0xFFFFF698, 0xFFFFF6D3, 0xFFFFF70E, 0xFFFFF749, - 0xFFFFF785, 0xFFFFF7C2, 0xFFFFF800, 0xFFFFF83E, - 0xFFFFF87D, 0xFFFFF8BC, 0xFFFFF8FC, 0xFFFFF93D, - 0xFFFFF97E, 0xFFFFF9C0, 0xFFFFFA02, 0xFFFFFA44, - 0xFFFFFA87, 0xFFFFFACA, 0xFFFFFB0E, 0xFFFFFB52, - 0xFFFFFB97, 0xFFFFFBDC, 0xFFFFFC21, 0xFFFFFC67, - 0xFFFFFCAC, 0xFFFFFCF2, 0xFFFFFD39, 0xFFFFFD7F, - 0xFFFFFDC6, 0xFFFFFE0D, 0xFFFFFE54, 0xFFFFFE9B, - 0xFFFFFEE2, 0xFFFFFF2A, 0xFFFFFF71, 0xFFFFFFB9, - 0x00000000, 0x00000047, 0x0000008F, 0x000000D6, - 0x0000011E, 0x00000165, 0x000001AC, 0x000001F3, - 0x0000023A, 0x00000281, 0x000002C7, 0x0000030E, - 0x00000354, 0x00000399, 0x000003DF, 0x00000424, - 0x00000469, 0x000004AE, 0x000004F2, 0x00000536, - 0x00000579, 0x000005BC, 0x000005FE, 0x00000640, - 0x00000682, 0x000006C3, 0x00000704, 0x00000744, - 0x00000783, 0x000007C2, 0x00000800, 0x0000083E, - 0x0000087B, 0x000008B7, 0x000008F2, 0x0000092D, - 0x00000968, 0x000009A1, 0x000009DA, 0x00000A12, - 0x00000A49, 0x00000A7F, 0x00000AB5, 0x00000AE9, - 0x00000B1D, 0x00000B50, 0x00000B82, 0x00000BB4, - 0x00000BE4, 0x00000C13, 0x00000C42, 0x00000C6F, - 0x00000C9C, 0x00000CC7, 0x00000CF2, 0x00000D1B, - 0x00000D44, 0x00000D6B, 0x00000D92, 0x00000DB7, - 0x00000DDB, 0x00000DFE, 0x00000E21, 0x00000E42, - 0x00000E61, 0x00000E80, 0x00000E9E, 0x00000EBA, - 0x00000ED6, 0x00000EF0, 0x00000F09, 0x00000F21, - 0x00000F38, 0x00000F4D, 0x00000F61, 0x00000F74, - 0x00000F86, 0x00000F97, 0x00000FA6, 0x00000FB5, - 0x00000FC2, 0x00000FCE, 0x00000FD8, 0x00000FE1, - 0x00000FEA, 0x00000FF0, 0x00000FF6, 0x00000FFA, - 0x00000FFE, 0x00000FFF + FX32_CONST(0.0), // sin(0) + FX32_CONST(0.017333984375), // sin(1) + FX32_CONST(0.034912109375), // sin(2) + FX32_CONST(0.05224609375), // sin(3) + FX32_CONST(0.06982421875), // sin(4) + FX32_CONST(0.087158203125), // sin(5) + FX32_CONST(0.1044921875), // sin(6) + FX32_CONST(0.121826171875), // sin(7) + FX32_CONST(0.13916015625), // sin(8) + FX32_CONST(0.156494140625), // sin(9) + FX32_CONST(0.173583984375), // sin(10) + FX32_CONST(0.19091796875), // sin(11) + FX32_CONST(0.2080078125), // sin(12) + FX32_CONST(0.224853515625), // sin(13) + FX32_CONST(0.241943359375), // sin(14) + FX32_CONST(0.2587890625), // sin(15) + FX32_CONST(0.275634765625), // sin(16) + FX32_CONST(0.29248046875), // sin(17) + FX32_CONST(0.30908203125), // sin(18) + FX32_CONST(0.32568359375), // sin(19) + FX32_CONST(0.342041015625), // sin(20) + FX32_CONST(0.3583984375), // sin(21) + FX32_CONST(0.37451171875), // sin(22) + FX32_CONST(0.390625), // sin(23) + FX32_CONST(0.40673828125), // sin(24) + FX32_CONST(0.422607421875), // sin(25) + FX32_CONST(0.4384765625), // sin(26) + FX32_CONST(0.4541015625), // sin(27) + FX32_CONST(0.469482421875), // sin(28) + FX32_CONST(0.48486328125), // sin(29) + FX32_CONST(0.5), // sin(30) + FX32_CONST(0.51513671875), // sin(31) + FX32_CONST(0.530029296875), // sin(32) + FX32_CONST(0.544677734375), // sin(33) + FX32_CONST(0.55908203125), // sin(34) + FX32_CONST(0.573486328125), // sin(35) + FX32_CONST(0.587890625), // sin(36) + FX32_CONST(0.601806640625), // sin(37) + FX32_CONST(0.61572265625), // sin(38) + FX32_CONST(0.62939453125), // sin(39) + FX32_CONST(0.642822265625), // sin(40) + FX32_CONST(0.656005859375), // sin(41) + FX32_CONST(0.669189453125), // sin(42) + FX32_CONST(0.681884765625), // sin(43) + FX32_CONST(0.694580078125), // sin(44) + FX32_CONST(0.70703125), // sin(45) + FX32_CONST(0.71923828125), // sin(46) + FX32_CONST(0.7314453125), // sin(47) + FX32_CONST(0.7431640625), // sin(48) + FX32_CONST(0.754638671875), // sin(49) + FX32_CONST(0.76611328125), // sin(50) + FX32_CONST(0.777099609375), // sin(51) + FX32_CONST(0.7880859375), // sin(52) + FX32_CONST(0.798583984375), // sin(53) + FX32_CONST(0.80908203125), // sin(54) + FX32_CONST(0.819091796875), // sin(55) + FX32_CONST(0.8291015625), // sin(56) + FX32_CONST(0.838623046875), // sin(57) + FX32_CONST(0.84814453125), // sin(58) + FX32_CONST(0.857177734375), // sin(59) + FX32_CONST(0.865966796875), // sin(60) + FX32_CONST(0.87451171875), // sin(61) + FX32_CONST(0.883056640625), // sin(62) + FX32_CONST(0.89111328125), // sin(63) + FX32_CONST(0.898681640625), // sin(64) + FX32_CONST(0.90625), // sin(65) + FX32_CONST(0.91357421875), // sin(66) + FX32_CONST(0.92041015625), // sin(67) + FX32_CONST(0.92724609375), // sin(68) + FX32_CONST(0.93359375), // sin(69) + FX32_CONST(0.939697265625), // sin(70) + FX32_CONST(0.945556640625), // sin(71) + FX32_CONST(0.951171875), // sin(72) + FX32_CONST(0.956298828125), // sin(73) + FX32_CONST(0.961181640625), // sin(74) + FX32_CONST(0.9658203125), // sin(75) + FX32_CONST(0.97021484375), // sin(76) + FX32_CONST(0.974365234375), // sin(77) + FX32_CONST(0.97802734375), // sin(78) + FX32_CONST(0.981689453125), // sin(79) + FX32_CONST(0.98486328125), // sin(80) + FX32_CONST(0.98779296875), // sin(81) + FX32_CONST(0.990234375), // sin(82) + FX32_CONST(0.992431640625), // sin(83) + FX32_CONST(0.99462890625), // sin(84) + FX32_CONST(0.99609375), // sin(85) + FX32_CONST(0.99755859375), // sin(86) + FX32_CONST(0.99853515625), // sin(87) + FX32_CONST(0.99951171875), // sin(88) + FX32_CONST(0.999755859375), // sin(89) + FX32_CONST(1.0), // sin(90) + FX32_CONST(0.999755859375), // sin(91) + FX32_CONST(0.99951171875), // sin(92) + FX32_CONST(0.99853515625), // sin(93) + FX32_CONST(0.99755859375), // sin(94) + FX32_CONST(0.99609375), // sin(95) + FX32_CONST(0.99462890625), // sin(96) + FX32_CONST(0.992431640625), // sin(97) + FX32_CONST(0.990234375), // sin(98) + FX32_CONST(0.98779296875), // sin(99) + FX32_CONST(0.98486328125), // sin(100) + FX32_CONST(0.981689453125), // sin(101) + FX32_CONST(0.97802734375), // sin(102) + FX32_CONST(0.974365234375), // sin(103) + FX32_CONST(0.97021484375), // sin(104) + FX32_CONST(0.9658203125), // sin(105) + FX32_CONST(0.961181640625), // sin(106) + FX32_CONST(0.956298828125), // sin(107) + FX32_CONST(0.951171875), // sin(108) + FX32_CONST(0.945556640625), // sin(109) + FX32_CONST(0.939697265625), // sin(110) + FX32_CONST(0.93359375), // sin(111) + FX32_CONST(0.92724609375), // sin(112) + FX32_CONST(0.92041015625), // sin(113) + FX32_CONST(0.91357421875), // sin(114) + FX32_CONST(0.90625), // sin(115) + FX32_CONST(0.898681640625), // sin(116) + FX32_CONST(0.89111328125), // sin(117) + FX32_CONST(0.883056640625), // sin(118) + FX32_CONST(0.87451171875), // sin(119) + FX32_CONST(0.865966796875), // sin(120) + FX32_CONST(0.857177734375), // sin(121) + FX32_CONST(0.84814453125), // sin(122) + FX32_CONST(0.838623046875), // sin(123) + FX32_CONST(0.8291015625), // sin(124) + FX32_CONST(0.819091796875), // sin(125) + FX32_CONST(0.80908203125), // sin(126) + FX32_CONST(0.798583984375), // sin(127) + FX32_CONST(0.7880859375), // sin(128) + FX32_CONST(0.777099609375), // sin(129) + FX32_CONST(0.76611328125), // sin(130) + FX32_CONST(0.754638671875), // sin(131) + FX32_CONST(0.7431640625), // sin(132) + FX32_CONST(0.7314453125), // sin(133) + FX32_CONST(0.71923828125), // sin(134) + FX32_CONST(0.70703125), // sin(135) + FX32_CONST(0.694580078125), // sin(136) + FX32_CONST(0.681884765625), // sin(137) + FX32_CONST(0.669189453125), // sin(138) + FX32_CONST(0.656005859375), // sin(139) + FX32_CONST(0.642822265625), // sin(140) + FX32_CONST(0.62939453125), // sin(141) + FX32_CONST(0.61572265625), // sin(142) + FX32_CONST(0.601806640625), // sin(143) + FX32_CONST(0.587890625), // sin(144) + FX32_CONST(0.573486328125), // sin(145) + FX32_CONST(0.55908203125), // sin(146) + FX32_CONST(0.544677734375), // sin(147) + FX32_CONST(0.530029296875), // sin(148) + FX32_CONST(0.51513671875), // sin(149) + FX32_CONST(0.5), // sin(150) + FX32_CONST(0.48486328125), // sin(151) + FX32_CONST(0.469482421875), // sin(152) + FX32_CONST(0.4541015625), // sin(153) + FX32_CONST(0.4384765625), // sin(154) + FX32_CONST(0.422607421875), // sin(155) + FX32_CONST(0.40673828125), // sin(156) + FX32_CONST(0.390625), // sin(157) + FX32_CONST(0.37451171875), // sin(158) + FX32_CONST(0.3583984375), // sin(159) + FX32_CONST(0.342041015625), // sin(160) + FX32_CONST(0.32568359375), // sin(161) + FX32_CONST(0.30908203125), // sin(162) + FX32_CONST(0.29248046875), // sin(163) + FX32_CONST(0.275634765625), // sin(164) + FX32_CONST(0.2587890625), // sin(165) + FX32_CONST(0.241943359375), // sin(166) + FX32_CONST(0.224853515625), // sin(167) + FX32_CONST(0.2080078125), // sin(168) + FX32_CONST(0.19091796875), // sin(169) + FX32_CONST(0.173583984375), // sin(170) + FX32_CONST(0.156494140625), // sin(171) + FX32_CONST(0.13916015625), // sin(172) + FX32_CONST(0.121826171875), // sin(173) + FX32_CONST(0.1044921875), // sin(174) + FX32_CONST(0.087158203125), // sin(175) + FX32_CONST(0.06982421875), // sin(176) + FX32_CONST(0.05224609375), // sin(177) + FX32_CONST(0.034912109375), // sin(178) + FX32_CONST(0.017333984375), // sin(179) + FX32_CONST(0.0), // sin(180) + FX32_CONST(-0.017333984375), // sin(181) + FX32_CONST(-0.034912109375), // sin(182) + FX32_CONST(-0.05224609375), // sin(183) + FX32_CONST(-0.06982421875), // sin(184) + FX32_CONST(-0.087158203125), // sin(185) + FX32_CONST(-0.1044921875), // sin(186) + FX32_CONST(-0.121826171875), // sin(187) + FX32_CONST(-0.13916015625), // sin(188) + FX32_CONST(-0.156494140625), // sin(189) + FX32_CONST(-0.173583984375), // sin(190) + FX32_CONST(-0.19091796875), // sin(191) + FX32_CONST(-0.2080078125), // sin(192) + FX32_CONST(-0.224853515625), // sin(193) + FX32_CONST(-0.241943359375), // sin(194) + FX32_CONST(-0.2587890625), // sin(195) + FX32_CONST(-0.275634765625), // sin(196) + FX32_CONST(-0.29248046875), // sin(197) + FX32_CONST(-0.30908203125), // sin(198) + FX32_CONST(-0.32568359375), // sin(199) + FX32_CONST(-0.342041015625), // sin(200) + FX32_CONST(-0.3583984375), // sin(201) + FX32_CONST(-0.37451171875), // sin(202) + FX32_CONST(-0.390625), // sin(203) + FX32_CONST(-0.40673828125), // sin(204) + FX32_CONST(-0.422607421875), // sin(205) + FX32_CONST(-0.4384765625), // sin(206) + FX32_CONST(-0.4541015625), // sin(207) + FX32_CONST(-0.469482421875), // sin(208) + FX32_CONST(-0.48486328125), // sin(209) + FX32_CONST(-0.5), // sin(210) + FX32_CONST(-0.51513671875), // sin(211) + FX32_CONST(-0.530029296875), // sin(212) + FX32_CONST(-0.544677734375), // sin(213) + FX32_CONST(-0.55908203125), // sin(214) + FX32_CONST(-0.573486328125), // sin(215) + FX32_CONST(-0.587890625), // sin(216) + FX32_CONST(-0.601806640625), // sin(217) + FX32_CONST(-0.61572265625), // sin(218) + FX32_CONST(-0.62939453125), // sin(219) + FX32_CONST(-0.642822265625), // sin(220) + FX32_CONST(-0.656005859375), // sin(221) + FX32_CONST(-0.669189453125), // sin(222) + FX32_CONST(-0.681884765625), // sin(223) + FX32_CONST(-0.694580078125), // sin(224) + FX32_CONST(-0.70703125), // sin(225) + FX32_CONST(-0.71923828125), // sin(226) + FX32_CONST(-0.7314453125), // sin(227) + FX32_CONST(-0.7431640625), // sin(228) + FX32_CONST(-0.754638671875), // sin(229) + FX32_CONST(-0.76611328125), // sin(230) + FX32_CONST(-0.777099609375), // sin(231) + FX32_CONST(-0.7880859375), // sin(232) + FX32_CONST(-0.798583984375), // sin(233) + FX32_CONST(-0.80908203125), // sin(234) + FX32_CONST(-0.819091796875), // sin(235) + FX32_CONST(-0.8291015625), // sin(236) + FX32_CONST(-0.838623046875), // sin(237) + FX32_CONST(-0.84814453125), // sin(238) + FX32_CONST(-0.857177734375), // sin(239) + FX32_CONST(-0.865966796875), // sin(240) + FX32_CONST(-0.87451171875), // sin(241) + FX32_CONST(-0.883056640625), // sin(242) + FX32_CONST(-0.89111328125), // sin(243) + FX32_CONST(-0.898681640625), // sin(244) + FX32_CONST(-0.90625), // sin(245) + FX32_CONST(-0.91357421875), // sin(246) + FX32_CONST(-0.92041015625), // sin(247) + FX32_CONST(-0.92724609375), // sin(248) + FX32_CONST(-0.93359375), // sin(249) + FX32_CONST(-0.939697265625), // sin(250) + FX32_CONST(-0.945556640625), // sin(251) + FX32_CONST(-0.951171875), // sin(252) + FX32_CONST(-0.956298828125), // sin(253) + FX32_CONST(-0.961181640625), // sin(254) + FX32_CONST(-0.9658203125), // sin(255) + FX32_CONST(-0.97021484375), // sin(256) + FX32_CONST(-0.974365234375), // sin(257) + FX32_CONST(-0.97802734375), // sin(258) + FX32_CONST(-0.981689453125), // sin(259) + FX32_CONST(-0.98486328125), // sin(260) + FX32_CONST(-0.98779296875), // sin(261) + FX32_CONST(-0.990234375), // sin(262) + FX32_CONST(-0.992431640625), // sin(263) + FX32_CONST(-0.99462890625), // sin(264) + FX32_CONST(-0.99609375), // sin(265) + FX32_CONST(-0.99755859375), // sin(266) + FX32_CONST(-0.99853515625), // sin(267) + FX32_CONST(-0.99951171875), // sin(268) + FX32_CONST(-0.999755859375), // sin(269) + FX32_CONST(-1.0), // sin(270) + FX32_CONST(-0.999755859375), // sin(271) + FX32_CONST(-0.99951171875), // sin(272) + FX32_CONST(-0.99853515625), // sin(273) + FX32_CONST(-0.99755859375), // sin(274) + FX32_CONST(-0.99609375), // sin(275) + FX32_CONST(-0.99462890625), // sin(276) + FX32_CONST(-0.992431640625), // sin(277) + FX32_CONST(-0.990234375), // sin(278) + FX32_CONST(-0.98779296875), // sin(279) + FX32_CONST(-0.98486328125), // sin(280) + FX32_CONST(-0.981689453125), // sin(281) + FX32_CONST(-0.97802734375), // sin(282) + FX32_CONST(-0.974365234375), // sin(283) + FX32_CONST(-0.97021484375), // sin(284) + FX32_CONST(-0.9658203125), // sin(285) + FX32_CONST(-0.961181640625), // sin(286) + FX32_CONST(-0.956298828125), // sin(287) + FX32_CONST(-0.951171875), // sin(288) + FX32_CONST(-0.945556640625), // sin(289) + FX32_CONST(-0.939697265625), // sin(290) + FX32_CONST(-0.93359375), // sin(291) + FX32_CONST(-0.92724609375), // sin(292) + FX32_CONST(-0.92041015625), // sin(293) + FX32_CONST(-0.91357421875), // sin(294) + FX32_CONST(-0.90625), // sin(295) + FX32_CONST(-0.898681640625), // sin(296) + FX32_CONST(-0.89111328125), // sin(297) + FX32_CONST(-0.883056640625), // sin(298) + FX32_CONST(-0.87451171875), // sin(299) + FX32_CONST(-0.865966796875), // sin(300) + FX32_CONST(-0.857177734375), // sin(301) + FX32_CONST(-0.84814453125), // sin(302) + FX32_CONST(-0.838623046875), // sin(303) + FX32_CONST(-0.8291015625), // sin(304) + FX32_CONST(-0.819091796875), // sin(305) + FX32_CONST(-0.80908203125), // sin(306) + FX32_CONST(-0.798583984375), // sin(307) + FX32_CONST(-0.7880859375), // sin(308) + FX32_CONST(-0.777099609375), // sin(309) + FX32_CONST(-0.76611328125), // sin(310) + FX32_CONST(-0.754638671875), // sin(311) + FX32_CONST(-0.7431640625), // sin(312) + FX32_CONST(-0.7314453125), // sin(313) + FX32_CONST(-0.71923828125), // sin(314) + FX32_CONST(-0.70703125), // sin(315) + FX32_CONST(-0.694580078125), // sin(316) + FX32_CONST(-0.681884765625), // sin(317) + FX32_CONST(-0.669189453125), // sin(318) + FX32_CONST(-0.656005859375), // sin(319) + FX32_CONST(-0.642822265625), // sin(320) + FX32_CONST(-0.62939453125), // sin(321) + FX32_CONST(-0.61572265625), // sin(322) + FX32_CONST(-0.601806640625), // sin(323) + FX32_CONST(-0.587890625), // sin(324) + FX32_CONST(-0.573486328125), // sin(325) + FX32_CONST(-0.55908203125), // sin(326) + FX32_CONST(-0.544677734375), // sin(327) + FX32_CONST(-0.530029296875), // sin(328) + FX32_CONST(-0.51513671875), // sin(329) + FX32_CONST(-0.5), // sin(330) + FX32_CONST(-0.48486328125), // sin(331) + FX32_CONST(-0.469482421875), // sin(332) + FX32_CONST(-0.4541015625), // sin(333) + FX32_CONST(-0.4384765625), // sin(334) + FX32_CONST(-0.422607421875), // sin(335) + FX32_CONST(-0.40673828125), // sin(336) + FX32_CONST(-0.390625), // sin(337) + FX32_CONST(-0.37451171875), // sin(338) + FX32_CONST(-0.3583984375), // sin(339) + FX32_CONST(-0.342041015625), // sin(340) + FX32_CONST(-0.32568359375), // sin(341) + FX32_CONST(-0.30908203125), // sin(342) + FX32_CONST(-0.29248046875), // sin(343) + FX32_CONST(-0.275634765625), // sin(344) + FX32_CONST(-0.2587890625), // sin(345) + FX32_CONST(-0.241943359375), // sin(346) + FX32_CONST(-0.224853515625), // sin(347) + FX32_CONST(-0.2080078125), // sin(348) + FX32_CONST(-0.19091796875), // sin(349) + FX32_CONST(-0.173583984375), // sin(350) + FX32_CONST(-0.156494140625), // sin(351) + FX32_CONST(-0.13916015625), // sin(352) + FX32_CONST(-0.121826171875), // sin(353) + FX32_CONST(-0.1044921875), // sin(354) + FX32_CONST(-0.087158203125), // sin(355) + FX32_CONST(-0.06982421875), // sin(356) + FX32_CONST(-0.05224609375), // sin(357) + FX32_CONST(-0.034912109375), // sin(358) + FX32_CONST(-0.017333984375), // sin(359) + FX32_CONST(0.0), // sin(360) + FX32_CONST(0.017333984375), // sin(361) + FX32_CONST(0.034912109375), // sin(362) + FX32_CONST(0.05224609375), // sin(363) + FX32_CONST(0.06982421875), // sin(364) + FX32_CONST(0.087158203125), // sin(365) + FX32_CONST(0.1044921875), // sin(366) + FX32_CONST(0.121826171875), // sin(367) + FX32_CONST(0.13916015625), // sin(368) + FX32_CONST(0.156494140625), // sin(369) + FX32_CONST(0.173583984375), // sin(370) + FX32_CONST(0.19091796875), // sin(371) + FX32_CONST(0.2080078125), // sin(372) + FX32_CONST(0.224853515625), // sin(373) + FX32_CONST(0.241943359375), // sin(374) + FX32_CONST(0.2587890625), // sin(375) + FX32_CONST(0.275634765625), // sin(376) + FX32_CONST(0.29248046875), // sin(377) + FX32_CONST(0.30908203125), // sin(378) + FX32_CONST(0.32568359375), // sin(379) + FX32_CONST(0.342041015625), // sin(380) + FX32_CONST(0.3583984375), // sin(381) + FX32_CONST(0.37451171875), // sin(382) + FX32_CONST(0.390625), // sin(383) + FX32_CONST(0.40673828125), // sin(384) + FX32_CONST(0.422607421875), // sin(385) + FX32_CONST(0.4384765625), // sin(386) + FX32_CONST(0.4541015625), // sin(387) + FX32_CONST(0.469482421875), // sin(388) + FX32_CONST(0.48486328125), // sin(389) + FX32_CONST(0.5), // sin(390) + FX32_CONST(0.51513671875), // sin(391) + FX32_CONST(0.530029296875), // sin(392) + FX32_CONST(0.544677734375), // sin(393) + FX32_CONST(0.55908203125), // sin(394) + FX32_CONST(0.573486328125), // sin(395) + FX32_CONST(0.587890625), // sin(396) + FX32_CONST(0.601806640625), // sin(397) + FX32_CONST(0.61572265625), // sin(398) + FX32_CONST(0.62939453125), // sin(399) + FX32_CONST(0.642822265625), // sin(400) + FX32_CONST(0.656005859375), // sin(401) + FX32_CONST(0.669189453125), // sin(402) + FX32_CONST(0.681884765625), // sin(403) + FX32_CONST(0.694580078125), // sin(404) + FX32_CONST(0.70703125), // sin(405) + FX32_CONST(0.71923828125), // sin(406) + FX32_CONST(0.7314453125), // sin(407) + FX32_CONST(0.7431640625), // sin(408) + FX32_CONST(0.754638671875), // sin(409) + FX32_CONST(0.76611328125), // sin(410) + FX32_CONST(0.777099609375), // sin(411) + FX32_CONST(0.7880859375), // sin(412) + FX32_CONST(0.798583984375), // sin(413) + FX32_CONST(0.80908203125), // sin(414) + FX32_CONST(0.819091796875), // sin(415) + FX32_CONST(0.8291015625), // sin(416) + FX32_CONST(0.838623046875), // sin(417) + FX32_CONST(0.84814453125), // sin(418) + FX32_CONST(0.857177734375), // sin(419) + FX32_CONST(0.865966796875), // sin(420) + FX32_CONST(0.87451171875), // sin(421) + FX32_CONST(0.883056640625), // sin(422) + FX32_CONST(0.89111328125), // sin(423) + FX32_CONST(0.898681640625), // sin(424) + FX32_CONST(0.90625), // sin(425) + FX32_CONST(0.91357421875), // sin(426) + FX32_CONST(0.92041015625), // sin(427) + FX32_CONST(0.92724609375), // sin(428) + FX32_CONST(0.93359375), // sin(429) + FX32_CONST(0.939697265625), // sin(430) + FX32_CONST(0.945556640625), // sin(431) + FX32_CONST(0.951171875), // sin(432) + FX32_CONST(0.956298828125), // sin(433) + FX32_CONST(0.961181640625), // sin(434) + FX32_CONST(0.9658203125), // sin(435) + FX32_CONST(0.97021484375), // sin(436) + FX32_CONST(0.974365234375), // sin(437) + FX32_CONST(0.97802734375), // sin(438) + FX32_CONST(0.981689453125), // sin(439) + FX32_CONST(0.98486328125), // sin(440) + FX32_CONST(0.98779296875), // sin(441) + FX32_CONST(0.990234375), // sin(442) + FX32_CONST(0.992431640625), // sin(443) + FX32_CONST(0.99462890625), // sin(444) + FX32_CONST(0.99609375), // sin(445) + FX32_CONST(0.99755859375), // sin(446) + FX32_CONST(0.99853515625), // sin(447) + FX32_CONST(0.99951171875), // sin(448) + FX32_CONST(0.999755859375), // sin(449) }; const u16 UNK_020EDC7E[] = // rotations? @@ -310,7 +647,7 @@ THUMB_FUNC u32 MTRandom(void) { if (sMTRNG_Cycles == 625) SetMTRNGSeed(5489); - + for (i = 0; i < 227; i++) { val = (sMTRNG_State[i] & 0x80000000) | (sMTRNG_State[i + 1] & 0x7fffffff); @@ -321,20 +658,20 @@ THUMB_FUNC u32 MTRandom(void) val = (sMTRNG_State[i] & 0x80000000) | (sMTRNG_State[i + 1] & 0x7fffffff); sMTRNG_State[i] = sMTRNG_State[i + -227] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1]; } - + val = (sRNGHack.MTRNG_State[623+1] & 0x80000000) | (sRNGHack.MTRNG_State[0+1] & 0x7fffffff); sRNGHack.MTRNG_State[623+1] = sRNGHack.MTRNG_State[396+1] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1]; sMTRNG_Cycles = 0; } - + val = sMTRNG_State[sMTRNG_Cycles++]; // has to be this way in order to match - + val ^= val >> 11; val ^= (val << 7) & 0x9d2c5680; val ^= (val << 15) & 0xefc60000; val ^= val >> 18; - + return val; } From 9ec0be0b8be2b5d761ee937fae488820981a7a60 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 14:21:32 -0500 Subject: [PATCH 039/134] decomp scrcmd_6 based off of tgsm's work --- arm9/arm9.lsf | 2 +- arm9/asm/scrcmd_6.s | 399 ---------------------------------------- arm9/global.inc | 1 + arm9/src/scrcmd_sound.c | 299 ++++++++++++++++++++++++++++++ 4 files changed, 301 insertions(+), 400 deletions(-) delete mode 100644 arm9/asm/scrcmd_6.s create mode 100644 arm9/src/scrcmd_sound.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 1abf5a522..898904d38 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -157,7 +157,7 @@ Static arm9 Object scrcmd_3.o Object scrcmd_names.o Object scrcmd_5.o - Object scrcmd_6.o + Object scrcmd_sound.o Object scrcmd_7.o Object scrcmd_8.o Object scrcmd_9.o diff --git a/arm9/asm/scrcmd_6.s b/arm9/asm/scrcmd_6.s deleted file mode 100644 index 10b41ff72..000000000 --- a/arm9/asm/scrcmd_6.s +++ /dev/null @@ -1,399 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020413C0 -FUN_020413C0: ; 0x020413C0 - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02005410 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_020413E8 -FUN_020413E8: ; 0x020413E8 - push {r3, lr} - bl ScriptReadHalfword - bl FUN_0200521C - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020413F8 -FUN_020413F8: ; 0x020413F8 - push {r3, lr} - bl ScriptReadHalfword - bl FUN_02004124 - mov r1, #0x0 - bl FUN_02005350 - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_0204140C -FUN_0204140C: ; 0x0204140C - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x1c] - ldr r1, [r1, #0x0] - bl FUN_0204ABA8 - bl FUN_0200521C - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02041424 -FUN_02041424: ; 0x02041424 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_0204AB20 - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0204143C -FUN_0204143C: ; 0x0204143C - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_020053CC - ldr r1, _02041460 ; =FUN_02041464 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r3-r5, pc} - .balign 4 -_02041460: .word FUN_02041464 - - thumb_func_start FUN_02041464 -FUN_02041464: ; 0x02041464 - push {r3, lr} - bl FUN_02005404 - cmp r0, #0x0 - bne _02041472 - mov r0, #0x1 - pop {r3, pc} -_02041472: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02041478 -FUN_02041478: ; 0x02041478 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - mov r0, #0x7f - mov r2, #0x0 - bl FUN_0200538C - ldr r1, _02041498 ; =FUN_02041464 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - nop -_02041498: .word FUN_02041464 - - thumb_func_start FUN_0204149C -FUN_0204149C: ; 0x0204149C - push {r3, lr} - ldr r1, [r0, #0x8] - add r3, r1, #0x1 - str r3, [r0, #0x8] - ldrb r2, [r1, #0x0] - add r1, r3, #0x1 - str r1, [r0, #0x8] - ldrb r1, [r3, #0x0] - add r0, r2, #0x0 - bl FUN_020047C8 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020414B8 -FUN_020414B8: ; 0x020414B8 - push {r3, lr} - bl ScriptReadHalfword - add r1, r0, #0x0 - mov r0, #0x4 - bl FUN_02005308 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020414CC -FUN_020414CC: ; 0x020414CC - push {r3, lr} - ldr r2, [r0, #0x8] - add r1, r2, #0x1 - str r1, [r0, #0x8] - ldrb r0, [r2, #0x0] - bl FUN_020040F4 - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020414E0 -FUN_020414E0: ; 0x020414E0 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - bl FUN_020054C8 - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020414FC -FUN_020414FC: ; 0x020414FC - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - mov r1, #0x0 - bl FUN_020054F0 - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02041518 -FUN_02041518: ; 0x02041518 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - str r0, [r4, #0x64] - ldr r1, _0204153C ; =FUN_02041540 - add r0, r4, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4, pc} - nop -_0204153C: .word FUN_02041540 - - thumb_func_start FUN_02041540 -FUN_02041540: ; 0x02041540 - push {r3, lr} - ldr r0, [r0, #0x64] - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02005508 - cmp r0, #0x0 - bne _02041554 - mov r0, #0x1 - pop {r3, pc} -_02041554: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02041558 -FUN_02041558: ; 0x02041558 - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r0, r5, #0x0 - bl FUN_02005578 - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start ScrCmd_waitcry -ScrCmd_waitcry: ; 0x02041588 - push {r3, lr} - ldr r1, _02041594 ; =FUN_02041598 - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_02041594: .word FUN_02041598 - - thumb_func_start FUN_02041598 -FUN_02041598: ; 0x02041598 - push {r3, lr} - bl FUN_02005670 - cmp r0, #0x0 - bne _020415A6 - mov r0, #0x1 - pop {r3, pc} -_020415A6: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start ScrCmd_playbgm -ScrCmd_playbgm: ; 0x020415AC - push {r3, lr} - bl ScriptReadHalfword - bl PlayBGM - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020415BC -FUN_020415BC: ; 0x020415BC - push {r3, lr} - ldr r1, _020415C8 ; =FUN_020415CC - bl SetupNativeScript - mov r0, #0x1 - pop {r3, pc} - .balign 4 -_020415C8: .word FUN_020415CC - - thumb_func_start FUN_020415CC -FUN_020415CC: ; 0x020415CC - push {r3, lr} - bl FUN_02005CBC - cmp r0, #0x0 - bne _020415DA - mov r0, #0x1 - pop {r3, pc} -_020415DA: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020415E0 -FUN_020415E0: ; 0x020415E0 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r5, #0x80 - add r4, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02029EF8 - bl FUN_02005D20 - cmp r0, #0x1 - bne _02041610 - mov r0, #0x1 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r3-r5, pc} -_02041610: - mov r0, #0x0 - strh r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02041618 -FUN_02041618: ; 0x02041618 - push {r4, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - bl FUN_02005E28 - cmp r0, #0x0 - bne _0204163C - mov r0, #0x1 - strh r0, [r4, #0x0] - mov r0, #0x0 - pop {r4, pc} -_0204163C: - mov r0, #0x0 - strh r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02041644 -FUN_02041644: ; 0x02041644 - push {r3, lr} - bl FUN_02005E64 - mov r0, #0x1 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02041650 -FUN_02041650: ; 0x02041650 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl FUN_02029EF8 - bl FUN_02005E6C - mov r0, #0x1 - pop {r3, pc} - - thumb_func_start FUN_02041664 -FUN_02041664: ; 0x02041664 - push {r3, lr} - mov r1, #0x0 - mov r0, #0x3f - add r2, r1, #0x0 - bl FUN_0200433C - mov r0, #0x1 - pop {r3, pc} - - thumb_func_start FUN_02041674 -FUN_02041674: ; 0x02041674 - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, r0, #0x0 - add r0, r4, #0x0 - bl ScriptReadHalfword - add r4, #0x80 - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl VarGet - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0200488C - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 diff --git a/arm9/global.inc b/arm9/global.inc index 05ba01a71..91c312add 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8518,3 +8518,4 @@ .extern FUN_02025490 .extern FUN_020254A0 .extern FUN_020254B4 +.extern FUN_02041464 diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c new file mode 100644 index 000000000..14ffed618 --- /dev/null +++ b/arm9/src/scrcmd_sound.c @@ -0,0 +1,299 @@ +#include "global.h" +#include "script.h" +#include "scrcmd.h" + +extern BOOL FUN_020413C0(struct ScriptContext *ctx); +extern BOOL FUN_020413E8(struct ScriptContext *ctx); +extern BOOL FUN_020413F8(struct ScriptContext *ctx); +extern BOOL FUN_0204140C(struct ScriptContext *ctx); +extern BOOL FUN_02041424(struct ScriptContext *ctx); +extern BOOL FUN_0204143C(struct ScriptContext *ctx); +extern BOOL FUN_02041464(struct ScriptContext *ctx); +extern BOOL FUN_02041478(struct ScriptContext* ctx); +extern BOOL FUN_0204149C(struct ScriptContext* ctx); +extern BOOL FUN_020414B8(struct ScriptContext *ctx); +extern BOOL FUN_020414CC(struct ScriptContext* ctx); +extern BOOL FUN_020414E0(struct ScriptContext* ctx); +extern BOOL FUN_020414FC(struct ScriptContext* ctx); +extern BOOL FUN_02041518(struct ScriptContext* ctx); +extern BOOL FUN_02041540(struct ScriptContext* ctx); +extern BOOL FUN_02041558(struct ScriptContext* ctx); +extern BOOL ScrCmd_waitcry(struct ScriptContext* ctx); +extern BOOL FUN_02041598(struct ScriptContext* ctx); +extern BOOL FUN_020415BC(struct ScriptContext* ctx); +extern BOOL FUN_020415CC(struct ScriptContext* ctx); +extern BOOL ScrCmd_playbgm(struct ScriptContext* ctx); +extern BOOL FUN_020415E0(struct ScriptContext* ctx); +extern BOOL FUN_02041618(struct ScriptContext* ctx); +extern BOOL FUN_02041644(struct ScriptContext* ctx); +extern BOOL FUN_02041650(struct ScriptContext* ctx); +extern BOOL FUN_02041664(struct ScriptContext* ctx); +extern BOOL FUN_02041674(struct ScriptContext* ctx); + +extern void* FUN_02029EF8(struct SaveBlock2* sav2); +extern u32 FUN_02005D20(void *); +extern void FUN_02005E6C(void *); +extern void FUN_0200433C(u32, u32, u32); +extern u32 FUN_02005E28(void); +extern void FUN_02005E64(void); +extern BOOL FUN_02005CBC(void); +extern void PlayBGM(u16); +extern u32 FUN_02004124(u16); +extern void FUN_0204AB20(struct UnkSavStruct80 *ctx, u16); +extern u16 FUN_0204ABA8(struct UnkSavStruct80 *ctx, u32); +extern void FUN_0200521C(u16); +extern void FUN_02005308(u32, u16); +extern void FUN_02005350(u32, u32); +extern void FUN_0200538C(u32, u16, u32); +extern void FUN_020053CC(u16, u16); +extern BOOL FUN_02005404(void); +extern u16 FUN_02005410(u16); +extern void FUN_020054C8(u16); +extern void FUN_020054F0(u16, u32); +extern void FUN_020047C8(u8, u8); +extern void FUN_020040F4(u8); +extern BOOL FUN_02005508(u16); +extern void FUN_02005578(u16); +extern BOOL FUN_02005670(void); +extern void FUN_0200488C(u16, u16); + + +THUMB_FUNC BOOL FUN_020413C0(struct ScriptContext *ctx) +{ + u16 unk0; + u16 *unk1; + + unk0 = ScriptReadHalfword(ctx); + unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *unk1 = FUN_02005410(unk0); + + return FALSE; +} + +THUMB_FUNC BOOL FUN_020413E8(struct ScriptContext *ctx) +{ + FUN_0200521C(ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020413F8(struct ScriptContext *ctx) +{ + u32 unk0 = FUN_02004124(ScriptReadHalfword(ctx)); + FUN_02005350(unk0, 0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_0204140C(struct ScriptContext *ctx) +{ + u16 unk0 = FUN_0204ABA8(ctx->unk80, *ctx->unk80->mapId); + FUN_0200521C(unk0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041424(struct ScriptContext *ctx) +{ + FUN_0204AB20(ctx->unk80, ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_0204143C(struct ScriptContext* ctx) +{ + u16 unk1 = ScriptReadHalfword(ctx); + u16 unk2 = ScriptReadHalfword(ctx); + + FUN_020053CC(unk1, unk2); + SetupNativeScript(ctx, FUN_02041464); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041464(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + + if(!FUN_02005404()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) +{ + u16 unk = ScriptReadHalfword(ctx); + + FUN_0200538C(0x7F, unk, 0); + SetupNativeScript(ctx, FUN_02041464); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) +{ + + u8 PtrIndx0 = *ctx->scriptPtr++; + + u8 PtrIndx1 = *ctx->scriptPtr++; + + FUN_020047C8(PtrIndx0, PtrIndx1); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) +{ + FUN_02005308(4, ScriptReadHalfword(ctx)); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) +{ + u8 PtrIndx0 = *ctx->scriptPtr++; + FUN_020040F4(PtrIndx0); + return FALSE; +} + + +THUMB_FUNC BOOL FUN_020414E0(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_020054C8(unk); + return FALSE; +} + +THUMB_FUNC BOOL FUN_020414FC(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_020054F0(unk, 0); + return FALSE; +} + +THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + ctx->data[0] = unk; + SetupNativeScript(ctx, FUN_02041540); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) +{ + if(!FUN_02005508((u16)ctx->data[0])) + return 1; + else + return 0; +} + +THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) +{ + u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + FUN_02005578(unk0); + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_waitcry(struct ScriptContext* ctx) +{ + SetupNativeScript(ctx, FUN_02041598); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041598(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + + if(!FUN_02005670()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) +{ + u16 bgm_id = ScriptReadHalfword(ctx); + PlayBGM(bgm_id); + + return FALSE; +} + +THUMB_FUNC BOOL FUN_020415BC(struct ScriptContext* ctx) +{ + SetupNativeScript(ctx, FUN_020415CC); + return TRUE; +} + +THUMB_FUNC BOOL FUN_020415CC(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + if (!FUN_02005CBC()) + return TRUE; + else + return FALSE; +} + +THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + if (FUN_02005D20(unk) == 1) + { + *ret_ptr = 1; + return FALSE; + } + else + { + *ret_ptr = 0; + return FALSE; + } +} + +THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + if (FUN_02005E28() == 0) + { + *ret_ptr = 1; + return FALSE; + } + else + { + *ret_ptr = 0; + return FALSE; + } +} + +THUMB_FUNC BOOL FUN_02041644(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + FUN_02005E64(); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) +{ + void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + FUN_02005E6C(unk); + + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041664(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + FUN_0200433C(0x3F, 0, 0); + return TRUE; +} + +THUMB_FUNC BOOL FUN_02041674(struct ScriptContext* ctx) +{ + u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + FUN_0200488C(unk1, unk2); + + return FALSE; +} + From 44ed8160dfe35adba152d2ef508e2a58ae388799 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 14:43:49 -0500 Subject: [PATCH 040/134] address review comments --- arm9/src/scrcmd_sound.c | 40 +++++----------------------------------- include/scrcmd.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 14ffed618..437c87c28 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -1,35 +1,5 @@ -#include "global.h" -#include "script.h" #include "scrcmd.h" -extern BOOL FUN_020413C0(struct ScriptContext *ctx); -extern BOOL FUN_020413E8(struct ScriptContext *ctx); -extern BOOL FUN_020413F8(struct ScriptContext *ctx); -extern BOOL FUN_0204140C(struct ScriptContext *ctx); -extern BOOL FUN_02041424(struct ScriptContext *ctx); -extern BOOL FUN_0204143C(struct ScriptContext *ctx); -extern BOOL FUN_02041464(struct ScriptContext *ctx); -extern BOOL FUN_02041478(struct ScriptContext* ctx); -extern BOOL FUN_0204149C(struct ScriptContext* ctx); -extern BOOL FUN_020414B8(struct ScriptContext *ctx); -extern BOOL FUN_020414CC(struct ScriptContext* ctx); -extern BOOL FUN_020414E0(struct ScriptContext* ctx); -extern BOOL FUN_020414FC(struct ScriptContext* ctx); -extern BOOL FUN_02041518(struct ScriptContext* ctx); -extern BOOL FUN_02041540(struct ScriptContext* ctx); -extern BOOL FUN_02041558(struct ScriptContext* ctx); -extern BOOL ScrCmd_waitcry(struct ScriptContext* ctx); -extern BOOL FUN_02041598(struct ScriptContext* ctx); -extern BOOL FUN_020415BC(struct ScriptContext* ctx); -extern BOOL FUN_020415CC(struct ScriptContext* ctx); -extern BOOL ScrCmd_playbgm(struct ScriptContext* ctx); -extern BOOL FUN_020415E0(struct ScriptContext* ctx); -extern BOOL FUN_02041618(struct ScriptContext* ctx); -extern BOOL FUN_02041644(struct ScriptContext* ctx); -extern BOOL FUN_02041650(struct ScriptContext* ctx); -extern BOOL FUN_02041664(struct ScriptContext* ctx); -extern BOOL FUN_02041674(struct ScriptContext* ctx); - extern void* FUN_02029EF8(struct SaveBlock2* sav2); extern u32 FUN_02005D20(void *); extern void FUN_02005E6C(void *); @@ -131,9 +101,9 @@ THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) { - u8 PtrIndx0 = *ctx->scriptPtr++; + u8 PtrIndx0 = ScriptReadByte(ctx); - u8 PtrIndx1 = *ctx->scriptPtr++; + u8 PtrIndx1 = ScriptReadByte(ctx); FUN_020047C8(PtrIndx0, PtrIndx1); return FALSE; @@ -147,7 +117,7 @@ THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) { - u8 PtrIndx0 = *ctx->scriptPtr++; + u8 PtrIndx0 = ScriptReadByte(ctx); FUN_020040F4(PtrIndx0); return FALSE; } @@ -180,9 +150,9 @@ THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) { if(!FUN_02005508((u16)ctx->data[0])) - return 1; + return TRUE; else - return 0; + return FALSE; } THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) diff --git a/include/scrcmd.h b/include/scrcmd.h index 86bb4f519..6d52972d6 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -150,6 +150,35 @@ BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx); BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx); BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx); +//scrcmd_sound.c +BOOL FUN_020413C0(struct ScriptContext *ctx); +BOOL FUN_020413E8(struct ScriptContext *ctx); +BOOL FUN_020413F8(struct ScriptContext *ctx); +BOOL FUN_0204140C(struct ScriptContext *ctx); +BOOL FUN_02041424(struct ScriptContext *ctx); +BOOL FUN_0204143C(struct ScriptContext *ctx); +BOOL FUN_02041464(struct ScriptContext *ctx); +BOOL FUN_02041478(struct ScriptContext* ctx); +BOOL FUN_0204149C(struct ScriptContext* ctx); +BOOL FUN_020414B8(struct ScriptContext *ctx); +BOOL FUN_020414CC(struct ScriptContext* ctx); +BOOL FUN_020414E0(struct ScriptContext* ctx); +BOOL FUN_020414FC(struct ScriptContext* ctx); +BOOL FUN_02041518(struct ScriptContext* ctx); +BOOL FUN_02041540(struct ScriptContext* ctx); +BOOL FUN_02041558(struct ScriptContext* ctx); +BOOL ScrCmd_waitcry(struct ScriptContext* ctx); +BOOL FUN_02041598(struct ScriptContext* ctx); +BOOL FUN_020415BC(struct ScriptContext* ctx); +BOOL FUN_020415CC(struct ScriptContext* ctx); +BOOL ScrCmd_playbgm(struct ScriptContext* ctx); +BOOL FUN_020415E0(struct ScriptContext* ctx); +BOOL FUN_02041618(struct ScriptContext* ctx); +BOOL FUN_02041644(struct ScriptContext* ctx); +BOOL FUN_02041650(struct ScriptContext* ctx); +BOOL FUN_02041664(struct ScriptContext* ctx); +BOOL FUN_02041674(struct ScriptContext* ctx); + //scrcmd_8.c BOOL ScrCmd_Unk021D(struct ScriptContext* ctx); From 1355615fe9dfea12a2800c182f6716c190b9a964 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 16:41:35 -0500 Subject: [PATCH 041/134] name scrcmd's in scrcmd_sound --- arm9/asm/unk_02038C78.s | 46 +++++++++++++++++------------------ arm9/global.inc | 46 +++++++++++++++++------------------ arm9/src/scrcmd_sound.c | 53 +++++++++++++++++++---------------------- include/scrcmd.h | 45 +++++++++++++++++----------------- 4 files changed, 93 insertions(+), 97 deletions(-) diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index a43768aa0..38588cd5b 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -222,27 +222,27 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0046 .word ScrCmd_Unk0047 .word ScrCmd_Unk0048 - .word FUN_020414E0 - .word FUN_020414FC - .word FUN_02041518 - .word FUN_02041558 - .word ScrCmd_waitcry - .word ScrCmd_playbgm - .word FUN_020415BC - .word FUN_020413E8 - .word FUN_020413F8 - .word FUN_0204140C - .word FUN_02041424 - .word FUN_0204143C - .word FUN_02041478 - .word FUN_0204149C - .word FUN_020414B8 - .word FUN_020414CC - .word FUN_020415E0 - .word FUN_02041618 - .word FUN_02041644 - .word FUN_02041650 - .word FUN_02041664 + .word ScrCmd_Unk0049 + .word ScrCmd_Unk004A + .word ScrCmd_Unk004B + .word ScrCmd_Unk004C + .word ScrCmd_PlayCryWait + .word ScrCmd_PlayBgm + .word ScrCmd_Unk004F + .word ScrCmd_Unk0050 + .word ScrCmd_Unk0051 + .word ScrCmd_Unk0052 + .word ScrCmd_Unk0053 + .word ScrCmd_Unk0054 + .word ScrCmd_Unk0055 + .word ScrCmd_Unk0056 + .word ScrCmd_Unk0057 + .word ScrCmd_Unk0058 + .word ScrCmd_Unk0059 + .word ScrCmd_Unk005A + .word ScrCmd_Unk005B + .word ScrCmd_Unk005C + .word ScrCmd_Unk005D .word FUN_0203AFC4 .word FUN_0203B148 .word FUN_0203B1F0 @@ -792,7 +792,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0280 .word FUN_02044A0C .word FUN_0203F484 - .word FUN_02041674 + .word ScrCmd_Unk0283 .word FUN_0203F4D8 .word FUN_0203F508 .word FUN_0203F5D4 @@ -835,7 +835,7 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203B7F0 .word FUN_0203FB4C .word FUN_0203B790 - .word FUN_020413C0 + .word ScrCmd_Unk02AE .word FUN_0203FB64 .word FUN_0203FB94 .word FUN_0203FBA0 diff --git a/arm9/global.inc b/arm9/global.inc index 91c312add..38ec47f44 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3196,29 +3196,29 @@ .extern FUN_02041194 .extern FUN_020411C4 .extern FUN_02041340 -.extern FUN_020413C0 -.extern FUN_020413E8 -.extern FUN_020413F8 -.extern FUN_0204140C -.extern FUN_02041424 -.extern FUN_0204143C -.extern FUN_02041478 -.extern FUN_0204149C -.extern FUN_020414B8 -.extern FUN_020414CC -.extern FUN_020414E0 -.extern FUN_020414FC -.extern FUN_02041518 -.extern FUN_02041558 -.extern ScrCmd_waitcry -.extern ScrCmd_playbgm -.extern FUN_020415BC -.extern FUN_020415E0 -.extern FUN_02041618 -.extern FUN_02041644 -.extern FUN_02041650 -.extern FUN_02041664 -.extern FUN_02041674 +.extern ScrCmd_Unk02AE +.extern ScrCmd_Unk0050 +.extern ScrCmd_Unk0051 +.extern ScrCmd_Unk0052 +.extern ScrCmd_Unk0053 +.extern ScrCmd_Unk0054 +.extern ScrCmd_Unk0055 +.extern ScrCmd_Unk0056 +.extern ScrCmd_Unk0057 +.extern ScrCmd_Unk0058 +.extern ScrCmd_Unk0049 +.extern ScrCmd_Unk004A +.extern ScrCmd_Unk004B +.extern ScrCmd_Unk004C +.extern ScrCmd_PlayCryWait +.extern ScrCmd_PlayBgm +.extern ScrCmd_Unk004F +.extern ScrCmd_Unk0059 +.extern ScrCmd_Unk005A +.extern ScrCmd_Unk005B +.extern ScrCmd_Unk005C +.extern ScrCmd_Unk005D +.extern ScrCmd_Unk0283 .extern FUN_020416A8 .extern FUN_02041770 .extern FUN_020417E0 diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 437c87c28..5acaae1ea 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -28,46 +28,43 @@ extern BOOL FUN_02005670(void); extern void FUN_0200488C(u16, u16); -THUMB_FUNC BOOL FUN_020413C0(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx) { - u16 unk0; - u16 *unk1; - - unk0 = ScriptReadHalfword(ctx); - unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk0 = ScriptReadHalfword(ctx); + u16 *unk1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *unk1 = FUN_02005410(unk0); return FALSE; } -THUMB_FUNC BOOL FUN_020413E8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0050(struct ScriptContext *ctx) { FUN_0200521C(ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_020413F8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0051(struct ScriptContext *ctx) { u32 unk0 = FUN_02004124(ScriptReadHalfword(ctx)); FUN_02005350(unk0, 0); return FALSE; } -THUMB_FUNC BOOL FUN_0204140C(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0052(struct ScriptContext *ctx) { u16 unk0 = FUN_0204ABA8(ctx->unk80, *ctx->unk80->mapId); FUN_0200521C(unk0); return FALSE; } -THUMB_FUNC BOOL FUN_02041424(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0053(struct ScriptContext *ctx) { FUN_0204AB20(ctx->unk80, ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_0204143C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0054(struct ScriptContext *ctx) { u16 unk1 = ScriptReadHalfword(ctx); u16 unk2 = ScriptReadHalfword(ctx); @@ -88,7 +85,7 @@ THUMB_FUNC BOOL FUN_02041464(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0055(struct ScriptContext* ctx) { u16 unk = ScriptReadHalfword(ctx); @@ -98,7 +95,7 @@ THUMB_FUNC BOOL FUN_02041478(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0056(struct ScriptContext* ctx) { u8 PtrIndx0 = ScriptReadByte(ctx); @@ -109,13 +106,13 @@ THUMB_FUNC BOOL FUN_0204149C(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020414B8(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0057(struct ScriptContext* ctx) { FUN_02005308(4, ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0058(struct ScriptContext* ctx) { u8 PtrIndx0 = ScriptReadByte(ctx); FUN_020040F4(PtrIndx0); @@ -123,21 +120,21 @@ THUMB_FUNC BOOL FUN_020414CC(struct ScriptContext* ctx) } -THUMB_FUNC BOOL FUN_020414E0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0049(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054C8(unk); return FALSE; } -THUMB_FUNC BOOL FUN_020414FC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004A(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054F0(unk, 0); return FALSE; } -THUMB_FUNC BOOL FUN_02041518(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004B(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -155,7 +152,7 @@ THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004C(struct ScriptContext* ctx) { u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -163,7 +160,7 @@ THUMB_FUNC BOOL FUN_02041558(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_waitcry(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayCryWait(struct ScriptContext* ctx) { SetupNativeScript(ctx, FUN_02041598); return TRUE; @@ -179,7 +176,7 @@ THUMB_FUNC BOOL FUN_02041598(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayBgm(struct ScriptContext* ctx) { u16 bgm_id = ScriptReadHalfword(ctx); PlayBGM(bgm_id); @@ -187,7 +184,7 @@ THUMB_FUNC BOOL ScrCmd_playbgm(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020415BC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk004F(struct ScriptContext* ctx) { SetupNativeScript(ctx, FUN_020415CC); return TRUE; @@ -202,7 +199,7 @@ THUMB_FUNC BOOL FUN_020415CC(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0059(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -219,7 +216,7 @@ THUMB_FUNC BOOL FUN_020415E0(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005A(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -235,14 +232,14 @@ THUMB_FUNC BOOL FUN_02041618(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL FUN_02041644(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005B(struct ScriptContext* ctx) { #pragma unused(ctx) FUN_02005E64(); return TRUE; } -THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005C(struct ScriptContext* ctx) { void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); FUN_02005E6C(unk); @@ -250,14 +247,14 @@ THUMB_FUNC BOOL FUN_02041650(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL FUN_02041664(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk005D(struct ScriptContext* ctx) { #pragma unused(ctx) FUN_0200433C(0x3F, 0, 0); return TRUE; } -THUMB_FUNC BOOL FUN_02041674(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0283(struct ScriptContext* ctx) { u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); diff --git a/include/scrcmd.h b/include/scrcmd.h index 6d52972d6..c246279df 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -151,33 +151,32 @@ BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx); BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx); //scrcmd_sound.c -BOOL FUN_020413C0(struct ScriptContext *ctx); -BOOL FUN_020413E8(struct ScriptContext *ctx); -BOOL FUN_020413F8(struct ScriptContext *ctx); -BOOL FUN_0204140C(struct ScriptContext *ctx); -BOOL FUN_02041424(struct ScriptContext *ctx); -BOOL FUN_0204143C(struct ScriptContext *ctx); +BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx); +BOOL ScrCmd_Unk0050(struct ScriptContext *ctx); +BOOL ScrCmd_Unk0051(struct ScriptContext *ctx); +BOOL ScrCmd_Unk0052(struct ScriptContext *ctx); +BOOL ScrCmd_Unk0053(struct ScriptContext *ctx); +BOOL ScrCmd_Unk0054(struct ScriptContext *ctx); BOOL FUN_02041464(struct ScriptContext *ctx); -BOOL FUN_02041478(struct ScriptContext* ctx); -BOOL FUN_0204149C(struct ScriptContext* ctx); -BOOL FUN_020414B8(struct ScriptContext *ctx); -BOOL FUN_020414CC(struct ScriptContext* ctx); -BOOL FUN_020414E0(struct ScriptContext* ctx); -BOOL FUN_020414FC(struct ScriptContext* ctx); -BOOL FUN_02041518(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0055(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0056(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0058(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0049(struct ScriptContext* ctx); +BOOL ScrCmd_Unk004A(struct ScriptContext* ctx); +BOOL ScrCmd_Unk004B(struct ScriptContext* ctx); BOOL FUN_02041540(struct ScriptContext* ctx); -BOOL FUN_02041558(struct ScriptContext* ctx); -BOOL ScrCmd_waitcry(struct ScriptContext* ctx); +BOOL ScrCmd_Unk004C(struct ScriptContext* ctx); +BOOL ScrCmd_PlayCryWait(struct ScriptContext* ctx); BOOL FUN_02041598(struct ScriptContext* ctx); -BOOL FUN_020415BC(struct ScriptContext* ctx); +BOOL ScrCmd_Unk004F(struct ScriptContext* ctx); BOOL FUN_020415CC(struct ScriptContext* ctx); -BOOL ScrCmd_playbgm(struct ScriptContext* ctx); -BOOL FUN_020415E0(struct ScriptContext* ctx); -BOOL FUN_02041618(struct ScriptContext* ctx); -BOOL FUN_02041644(struct ScriptContext* ctx); -BOOL FUN_02041650(struct ScriptContext* ctx); -BOOL FUN_02041664(struct ScriptContext* ctx); -BOOL FUN_02041674(struct ScriptContext* ctx); +BOOL ScrCmd_PlayBgm(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0059(struct ScriptContext* ctx); +BOOL ScrCmd_Unk005A(struct ScriptContext* ctx); +BOOL ScrCmd_Unk005B(struct ScriptContext* ctx); +BOOL ScrCmd_Unk005C(struct ScriptContext* ctx); +BOOL ScrCmd_Unk005D(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0283(struct ScriptContext *ctx); //scrcmd_8.c BOOL ScrCmd_Unk021D(struct ScriptContext* ctx); From 1587f8ba1df811f8a580e3cb7068a6641cd1846f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 15 May 2021 18:09:44 -0400 Subject: [PATCH 042/134] GenerateFontHalfRowLookupTable closer to matching but not quite --- arm9/src/text.c | 183 +++++++++++------------------------------------- 1 file changed, 40 insertions(+), 143 deletions(-) diff --git a/arm9/src/text.c b/arm9/src/text.c index aadb84c04..efaa6f4e8 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -7,7 +7,17 @@ const struct FontInfo *gFonts = NULL; u16 UNK_021C5734[0x100]; u32 UNK_021C5714[8]; -u8 UNK_021C570C[8]; + +// These three variables are written and never read. +// GenerateFontHalfRowLookupTable sets these variables +// in a manner consistent with them being defined static +// in the scope of that function, but doing so breaks the +// allocation of other variables in this file. +u16 UNK_021C5712; +u16 UNK_021C570E; +u16 UNK_021C5710; + +u8 UNK_021C570C; extern u32 FUN_0200CA7C(void (*func)(u32, struct TextPrinter *), struct TextPrinter *printer, u32 param2); @@ -187,7 +197,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s printer->printerTemplate = *printerTemplate; printer->printerTemplate.currentChar = String_c_str((struct String *)printer->printerTemplate.currentChar); //TODO clean up printer->callback = callback; - UNK_021C570C[0] = 0; + UNK_021C570C = 0; FUN_0201C1A8(printer); if (speed != 0xff && speed != 0) { @@ -222,7 +232,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s THUMB_FUNC void RunTextPrinter(u32 param0, struct TextPrinter *printer) { #pragma unused(param0) - if (UNK_021C570C[0] == 0) + if (UNK_021C570C == 0) { if (printer->Unk29 == 0) { @@ -271,149 +281,36 @@ THUMB_FUNC u32 RenderFont(struct TextPrinter *printer) #ifdef NONMATCHING THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) { - u32 fg12, bg12, shadow12; - u32 temp; + s32 r5 = 0; + u32 sp20[4]; + s32 i; // sp14 + s32 j; // sp10 + s32 k; // spC + s32 l; // r3 - u16 *current = UNK_021C570C; + sp20[0] = 0; + sp20[1] = fgColor; + sp20[2] = shadowColor; + sp20[3] = bgColor; - bg12 = bgColor << 12; - fg12 = fgColor << 12; - shadow12 = shadowColor << 12; + // FIXME: Need these to be accessed by a pointer to UNK_021C570C + UNK_021C5712 = bgColor; + UNK_021C570E = fgColor; + UNK_021C5710 = shadowColor; - temp = (bgColor << 8) | (bgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (bgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (bgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (fgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (fgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (fgColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (shadowColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (shadowColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (shadowColor << 4) | bgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (bgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (bgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (bgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (fgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (fgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (fgColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (shadowColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (shadowColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (shadowColor << 4) | fgColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (bgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (bgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (bgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (fgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (fgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (fgColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (bgColor << 8) | (shadowColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (fgColor << 8) | (shadowColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; - - temp = (shadowColor << 8) | (shadowColor << 4) | shadowColor; - *(current++) = (bg12) | temp; - *(current++) = (fg12) | temp; - *(current++) = (shadow12) | temp; + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + for (k = 0; k < 4; k++) + { + for (l = 0; l < 4; l++) + { + UNK_021C5734[r5++] = (u16)((sp20[l] << 12) | (sp20[k] << 8) | (sp20[j] << 4) | (sp20[i] << 0)); + } + } + } + } } #else GLOBAL_ASM("asm/nonmatchings/GenerateFontHalfRowLookupTable.s") From 61776017dc42d46aa5cefcb40429d7d96984f703 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 19:31:22 -0500 Subject: [PATCH 043/134] decomp 3 files --- arm9/asm/RTC_internal.s | 53 --------------------------------- arm9/asm/WIFI_stubsmd5_dummy.s | 25 ---------------- arm9/asm/unk_02022504.s | 53 --------------------------------- arm9/lib/include/RTC_internal.h | 10 +++++++ arm9/lib/src/RTC_internal.c | 32 ++++++++++++++++++++ arm9/src/WIFI_stubsmd5_dummy.c | 17 +++++++++++ arm9/src/unk_02022504.c | 32 ++++++++++++++++++++ include/WIFI_stubsmd5_dummy.h | 12 ++++++++ include/unk_02022504.h | 15 ++++++++++ 9 files changed, 118 insertions(+), 131 deletions(-) delete mode 100644 arm9/asm/RTC_internal.s delete mode 100644 arm9/asm/WIFI_stubsmd5_dummy.s delete mode 100644 arm9/asm/unk_02022504.s create mode 100644 arm9/lib/include/RTC_internal.h create mode 100644 arm9/lib/src/RTC_internal.c create mode 100644 arm9/src/WIFI_stubsmd5_dummy.c create mode 100644 arm9/src/unk_02022504.c create mode 100644 include/WIFI_stubsmd5_dummy.h create mode 100644 include/unk_02022504.h diff --git a/arm9/asm/RTC_internal.s b/arm9/asm/RTC_internal.s deleted file mode 100644 index 408b630c2..000000000 --- a/arm9/asm/RTC_internal.s +++ /dev/null @@ -1,53 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start RtcSendPxiCommand -RtcSendPxiCommand: ; 0x020D61D4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r0, r0, lsl #0x8 - and r1, r0, #0x7f00 - mov r0, #0x5 - mov r2, #0x0 - bl PXI_SendWordByFifo -_020D61F0: ; 0x020D61F0 - cmp r0, #0x0 - movge r0, #0x1 - movlt r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start RTCi_WriteRawStatus2Async -RTCi_WriteRawStatus2Async: - ldr ip, _020D6214 ; =RtcSendPxiCommand - mov r0, #0x27 - bx r12 - .balign 4 -_020D6214: .word RtcSendPxiCommand - - arm_func_start RTCi_ReadRawTimeAsync -RTCi_ReadRawTimeAsync: - ldr ip, _020D6224 ; =RtcSendPxiCommand - mov r0, #0x12 - bx r12 - .balign 4 -_020D6224: .word RtcSendPxiCommand - - arm_func_start RTCi_ReadRawDateAsync -RTCi_ReadRawDateAsync: - ldr ip, _020D6234 ; =RtcSendPxiCommand - mov r0, #0x11 - bx r12 - .balign 4 -_020D6234: .word RtcSendPxiCommand - - arm_func_start RTCi_ReadRawDateTimeAsync -RTCi_ReadRawDateTimeAsync: - ldr ip, _020D6244 ; =RtcSendPxiCommand - mov r0, #0x10 - bx r12 - .balign 4 -_020D6244: .word RtcSendPxiCommand diff --git a/arm9/asm/WIFI_stubsmd5_dummy.s b/arm9/asm/WIFI_stubsmd5_dummy.s deleted file mode 100644 index dd3f79a7f..000000000 --- a/arm9/asm/WIFI_stubsmd5_dummy.s +++ /dev/null @@ -1,25 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start MD5Final -MD5Final: ; 0x020A8BA4 - ldr ip, _020A8BAC ; =DGT_Hash1GetDigest_R - bx r12 - .balign 4 -_020A8BAC: .word DGT_Hash1GetDigest_R - - arm_func_start MD5Update -MD5Update: ; 0x020A8BB0 - ldr ip, _020A8BB8 ; =DGT_Hash1SetSource - bx r12 - .balign 4 -_020A8BB8: .word DGT_Hash1SetSource - - arm_func_start MD5Init -MD5Init: ; 0x020A8BBC - ldr ip, _020A8BC4 ; =DGT_Hash1Reset - bx r12 - .balign 4 -_020A8BC4: .word DGT_Hash1Reset diff --git a/arm9/asm/unk_02022504.s b/arm9/asm/unk_02022504.s deleted file mode 100644 index e34635382..000000000 --- a/arm9/asm/unk_02022504.s +++ /dev/null @@ -1,53 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02022504 -FUN_02022504: ; 0x02022504 - ldr r3, _0202250C ; =SavArray_get - mov r1, #0x1b - bx r3 - nop -_0202250C: .word SavArray_get - - thumb_func_start GetStoragePCPointer -GetStoragePCPointer: ; 0x02022510 - ldr r3, _02022518 ; =SavArray_get - mov r1, #0x23 - bx r3 - nop -_02022518: .word SavArray_get - - thumb_func_start FUN_0202251C -FUN_0202251C: ; 0x0202251C - ldr r3, _02022524 ; =SavArray_get - mov r1, #0x1f - bx r3 - nop -_02022524: .word SavArray_get - - thumb_func_start FUN_02022528 -FUN_02022528: ; 0x02022528 - ldr r3, _02022530 ; =SavArray_get - mov r1, #0x20 - bx r3 - nop -_02022530: .word SavArray_get - - thumb_func_start LoadHallOfFame -LoadHallOfFame: ; 0x02022534 - push {r3, lr} - add r3, r2, #0x0 - mov r2, #0x0 - bl ReadSaveFileFromFlash - pop {r3, pc} - - thumb_func_start SaveHallOfFame -SaveHallOfFame: ; 0x02022540 - ldr r3, _02022548 ; =WriteSaveFileToFlash - add r2, r1, #0x0 - mov r1, #0x0 - bx r3 - .balign 4 -_02022548: .word WriteSaveFileToFlash diff --git a/arm9/lib/include/RTC_internal.h b/arm9/lib/include/RTC_internal.h new file mode 100644 index 000000000..fb86e8182 --- /dev/null +++ b/arm9/lib/include/RTC_internal.h @@ -0,0 +1,10 @@ +#ifndef NITRO_RTC_INTERNAL_H_ +#define NITRO_RTC_INTERNAL_H_ + +u32 RtcSendPxiCommand(u8 command); +u32 RTCi_WriteRawStatus2Async(void); +u32 RTCi_ReadRawTimeAsync(void); +u32 RTCi_ReadRawDateAsync(void); +u32 RTCi_ReadRawDateTimeAsync(void); + +#endif //NITRO_RTC_INTERNAL_H_ diff --git a/arm9/lib/src/RTC_internal.c b/arm9/lib/src/RTC_internal.c new file mode 100644 index 000000000..2e997eed1 --- /dev/null +++ b/arm9/lib/src/RTC_internal.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "PXI_fifo.h" +#include "RTC_internal.h" + +u32 RTCi_ReadRawDateTimeAsync(void) +{ + return RtcSendPxiCommand(16); +} + +u32 RTCi_ReadRawDateAsync(void) +{ + return RtcSendPxiCommand(17); +} + +u32 RTCi_ReadRawTimeAsync(void) +{ + return RtcSendPxiCommand(18); +} + +u32 RTCi_WriteRawStatus2Async(void) +{ + return RtcSendPxiCommand(39); +} + +u32 RtcSendPxiCommand(u8 command) +{ + s32 data = command << 8 & 0x7f00; + if(PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, data, FALSE) >= 0) + return 1; + else + return 0; +} diff --git a/arm9/src/WIFI_stubsmd5_dummy.c b/arm9/src/WIFI_stubsmd5_dummy.c new file mode 100644 index 000000000..a6447af9f --- /dev/null +++ b/arm9/src/WIFI_stubsmd5_dummy.c @@ -0,0 +1,17 @@ +#include "global.h" +#include "WIFI_stubsmd5_dummy.h" + +ARM_FUNC void MD5Final(u8 *digest, struct DGTHash1Context *context) +{ + DGT_Hash1GetDigest_R(digest, context); +} + +ARM_FUNC void MD5Update(struct DGTHash1Context *context, u8 *input, u32 length) +{ + DGT_Hash1SetSource(context, input, length); +} + +ARM_FUNC void MD5Init(struct DGTHash1Context *context) +{ + DGT_Hash1Reset(context); +} diff --git a/arm9/src/unk_02022504.c b/arm9/src/unk_02022504.c new file mode 100644 index 000000000..405ea15ba --- /dev/null +++ b/arm9/src/unk_02022504.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "unk_02022504.h" + +THUMB_FUNC void *FUN_02022504(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 27); +} + +THUMB_FUNC struct PCStorage *GetStoragePCPointer(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 35); +} + +THUMB_FUNC void *FUN_0202251C(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 31); +} + +THUMB_FUNC void *FUN_02022528(struct SaveBlock2 *sav2) +{ + return SavArray_get(sav2, 32); +} + +THUMB_FUNC u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p) +{ + return ReadSaveFileFromFlash(sav2, heap_id, 0, ret_p); +} + +THUMB_FUNC int *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data) +{ + return WriteSaveFileToFlash(sav2, 0, data); +} diff --git a/include/WIFI_stubsmd5_dummy.h b/include/WIFI_stubsmd5_dummy.h new file mode 100644 index 000000000..73e83e390 --- /dev/null +++ b/include/WIFI_stubsmd5_dummy.h @@ -0,0 +1,12 @@ +#ifndef POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H +#define POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H + +#include "dgt.h" + +void MD5Final(u8 *digest, struct DGTHash1Context *context); +void MD5Update(struct DGTHash1Context *context, u8 *input, u32 length); +void MD5Init(struct DGTHash1Context *context); + + +#endif //POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H + diff --git a/include/unk_02022504.h b/include/unk_02022504.h new file mode 100644 index 000000000..3473ffffe --- /dev/null +++ b/include/unk_02022504.h @@ -0,0 +1,15 @@ +#ifndef POKEDIAMOND_UNK_02022504_H +#define POKEDIAMOND_UNK_02022504_H + +#include "save_block_2.h" +#include "pokemon_storage_system.h" + +void *FUN_02022504(struct SaveBlock2 *sav2); +struct PCStorage *GetStoragePCPointer(struct SaveBlock2 *sav2); +void *FUN_0202251C(struct SaveBlock2 *sav2); +void *FUN_02022528(struct SaveBlock2 *sav2); +u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p); +int *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data); + +#endif //POKEDIAMOND_UNK_02022504_H + From 5d6018d667c8897e660ab1752b25884befdce5af Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 19:47:03 -0500 Subject: [PATCH 044/134] rtc funcs are all bool --- arm9/lib/include/RTC_internal.h | 10 +++++----- arm9/lib/src/RTC_internal.c | 15 ++++++--------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/arm9/lib/include/RTC_internal.h b/arm9/lib/include/RTC_internal.h index fb86e8182..77934291e 100644 --- a/arm9/lib/include/RTC_internal.h +++ b/arm9/lib/include/RTC_internal.h @@ -1,10 +1,10 @@ #ifndef NITRO_RTC_INTERNAL_H_ #define NITRO_RTC_INTERNAL_H_ -u32 RtcSendPxiCommand(u8 command); -u32 RTCi_WriteRawStatus2Async(void); -u32 RTCi_ReadRawTimeAsync(void); -u32 RTCi_ReadRawDateAsync(void); -u32 RTCi_ReadRawDateTimeAsync(void); +BOOL RtcSendPxiCommand(u8 command); +BOOL RTCi_WriteRawStatus2Async(void); +BOOL RTCi_ReadRawTimeAsync(void); +BOOL RTCi_ReadRawDateAsync(void); +BOOL RTCi_ReadRawDateTimeAsync(void); #endif //NITRO_RTC_INTERNAL_H_ diff --git a/arm9/lib/src/RTC_internal.c b/arm9/lib/src/RTC_internal.c index 2e997eed1..fcd4da69f 100644 --- a/arm9/lib/src/RTC_internal.c +++ b/arm9/lib/src/RTC_internal.c @@ -2,31 +2,28 @@ #include "PXI_fifo.h" #include "RTC_internal.h" -u32 RTCi_ReadRawDateTimeAsync(void) +BOOL RTCi_ReadRawDateTimeAsync(void) { return RtcSendPxiCommand(16); } -u32 RTCi_ReadRawDateAsync(void) +BOOL RTCi_ReadRawDateAsync(void) { return RtcSendPxiCommand(17); } -u32 RTCi_ReadRawTimeAsync(void) +BOOL RTCi_ReadRawTimeAsync(void) { return RtcSendPxiCommand(18); } -u32 RTCi_WriteRawStatus2Async(void) +BOOL RTCi_WriteRawStatus2Async(void) { return RtcSendPxiCommand(39); } -u32 RtcSendPxiCommand(u8 command) +BOOL RtcSendPxiCommand(u8 command) { s32 data = command << 8 & 0x7f00; - if(PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, data, FALSE) >= 0) - return 1; - else - return 0; + return PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, data, FALSE) >= 0; } From 5f4bb52fd5d93b2638c99baee82d63b4d9b9f790 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 15 May 2021 20:30:26 -0500 Subject: [PATCH 045/134] address review comments --- arm9/lib/include/RTC_internal.h | 3 ++- arm9/lib/src/RTC_internal.c | 14 ++++++++------ arm9/src/WIFI_stubsmd5_dummy.c | 2 +- arm9/src/unk_02022504.c | 2 +- include/WIFI_stubsmd5_dummy.h | 3 +-- include/unk_02022504.h | 3 +-- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/arm9/lib/include/RTC_internal.h b/arm9/lib/include/RTC_internal.h index 77934291e..440d8b95a 100644 --- a/arm9/lib/include/RTC_internal.h +++ b/arm9/lib/include/RTC_internal.h @@ -1,7 +1,8 @@ #ifndef NITRO_RTC_INTERNAL_H_ #define NITRO_RTC_INTERNAL_H_ -BOOL RtcSendPxiCommand(u8 command); +#include "nitro/types.h" + BOOL RTCi_WriteRawStatus2Async(void); BOOL RTCi_ReadRawTimeAsync(void); BOOL RTCi_ReadRawDateAsync(void); diff --git a/arm9/lib/src/RTC_internal.c b/arm9/lib/src/RTC_internal.c index fcd4da69f..c7a5f2aa7 100644 --- a/arm9/lib/src/RTC_internal.c +++ b/arm9/lib/src/RTC_internal.c @@ -1,28 +1,30 @@ -#include "global.h" +#include "function_target.h" #include "PXI_fifo.h" #include "RTC_internal.h" -BOOL RTCi_ReadRawDateTimeAsync(void) +static BOOL RtcSendPxiCommand(u8 command); + +ARM_FUNC BOOL RTCi_ReadRawDateTimeAsync(void) { return RtcSendPxiCommand(16); } -BOOL RTCi_ReadRawDateAsync(void) +ARM_FUNC BOOL RTCi_ReadRawDateAsync(void) { return RtcSendPxiCommand(17); } -BOOL RTCi_ReadRawTimeAsync(void) +ARM_FUNC BOOL RTCi_ReadRawTimeAsync(void) { return RtcSendPxiCommand(18); } -BOOL RTCi_WriteRawStatus2Async(void) +ARM_FUNC BOOL RTCi_WriteRawStatus2Async(void) { return RtcSendPxiCommand(39); } -BOOL RtcSendPxiCommand(u8 command) +ARM_FUNC static BOOL RtcSendPxiCommand(u8 command) { s32 data = command << 8 & 0x7f00; return PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, data, FALSE) >= 0; diff --git a/arm9/src/WIFI_stubsmd5_dummy.c b/arm9/src/WIFI_stubsmd5_dummy.c index a6447af9f..6de2edca5 100644 --- a/arm9/src/WIFI_stubsmd5_dummy.c +++ b/arm9/src/WIFI_stubsmd5_dummy.c @@ -1,4 +1,4 @@ -#include "global.h" +#include "function_target.h" #include "WIFI_stubsmd5_dummy.h" ARM_FUNC void MD5Final(u8 *digest, struct DGTHash1Context *context) diff --git a/arm9/src/unk_02022504.c b/arm9/src/unk_02022504.c index 405ea15ba..0267a87cd 100644 --- a/arm9/src/unk_02022504.c +++ b/arm9/src/unk_02022504.c @@ -26,7 +26,7 @@ THUMB_FUNC u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p) return ReadSaveFileFromFlash(sav2, heap_id, 0, ret_p); } -THUMB_FUNC int *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data) +THUMB_FUNC s32 *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data) { return WriteSaveFileToFlash(sav2, 0, data); } diff --git a/include/WIFI_stubsmd5_dummy.h b/include/WIFI_stubsmd5_dummy.h index 73e83e390..d82b55c5a 100644 --- a/include/WIFI_stubsmd5_dummy.h +++ b/include/WIFI_stubsmd5_dummy.h @@ -1,12 +1,11 @@ #ifndef POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H #define POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H +#include "nitro/types.h" #include "dgt.h" void MD5Final(u8 *digest, struct DGTHash1Context *context); void MD5Update(struct DGTHash1Context *context, u8 *input, u32 length); void MD5Init(struct DGTHash1Context *context); - #endif //POKEDIAMOND_WIFI_STUBSMD5_DUMMY_H - diff --git a/include/unk_02022504.h b/include/unk_02022504.h index 3473ffffe..aa541f85a 100644 --- a/include/unk_02022504.h +++ b/include/unk_02022504.h @@ -9,7 +9,6 @@ struct PCStorage *GetStoragePCPointer(struct SaveBlock2 *sav2); void *FUN_0202251C(struct SaveBlock2 *sav2); void *FUN_02022528(struct SaveBlock2 *sav2); u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p); -int *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data); +s32 *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data); #endif //POKEDIAMOND_UNK_02022504_H - From 6a91d89d2c9cde15b12e092dcc7d92c19a994b55 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 16 May 2021 10:19:38 -0400 Subject: [PATCH 046/134] Match GenerateFontHalfRowLookupTable using '-ipa file' --- arm9/Makefile | 6 +- .../GenerateFontHalfRowLookupTable.s | 92 ------------------- arm9/src/main.c | 2 +- arm9/src/math_util.c | 30 ++++-- arm9/src/pokedex.c | 46 +++++----- arm9/src/text.c | 13 +-- arm9/src/unk_02015E30.c | 30 +++--- arm9/src/unk_02021934.c | 46 +++++----- arm9/src/unk_0202F150.c | 2 +- arm9/src/unk_02031734.c | 6 +- 10 files changed, 91 insertions(+), 182 deletions(-) delete mode 100644 arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s diff --git a/arm9/Makefile b/arm9/Makefile index 8b84a135e..6f05d1c58 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -110,7 +110,7 @@ ASM_PROCESSOR := $(ASM_PROCESSOR_DIR)/compile.sh # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start LIBS := -Llib -lsyscall @@ -192,6 +192,10 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS) $(LIB # TODO: Move out to lib/Makefile $(BUILD_DIR)/lib/%.o: MWCCVERSION = 1.2/sp2p3 +$(BUILD_DIR)/lib/%.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -interworking -DFS_IMPLEMENT -enum int -W all -i ../include -ir ../include-mw -ir lib/include + +# FIXME: Using -ipa file breaks .rodata alignment +$(BUILD_DIR)/src/math_util.o: CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) ####################### Everything Else ###################### diff --git a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s b/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s deleted file mode 100644 index a590ef02b..000000000 --- a/arm9/asm/nonmatchings/GenerateFontHalfRowLookupTable.s +++ /dev/null @@ -1,92 +0,0 @@ -.section .text - -glabel GenerateFontHalfRowLookupTable - -.extern UNK_021C570C -.extern UNK_021C5734 - - push {r3-r7, lr} - sub sp, #0x30 - ldr r3, _0201C0F8 ; =UNK_021C570C - mov r5, #0x0 - str r5, [sp, #0x20] - str r0, [sp, #0x24] - str r2, [sp, #0x28] - str r1, [sp, #0x2c] - strh r1, [r3, #0x6] - strh r0, [r3, #0x2] - add r0, sp, #0x20 - strh r2, [r3, #0x4] - str r5, [sp, #0x14] - str r0, [sp, #0x8] - mov r12, r0 - mov lr, r0 - str r0, [sp, #0x18] -_0201C07E: - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x18] - str r0, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r0, [r0, #0x0] - str r0, [sp, #0x1c] -_0201C08C: - mov r0, #0x0 - str r0, [sp, #0xc] - mov r0, lr - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x0] - lsl r7, r0, #0x4 -_0201C09A: - ldr r0, [sp, #0x0] - mov r3, #0x0 - ldr r0, [r0, #0x0] - mov r4, r12 - lsl r6, r0, #0x8 -_0201C0A4: - ldr r0, [r4, #0x0] - add r1, r7, #0x0 - lsl r0, r0, #0xc - orr r0, r6 - orr r1, r0 - ldr r0, [sp, #0x1c] - add r3, r3, #0x1 - add r2, r0, #0x0 - orr r2, r1 - lsl r1, r5, #0x1 - ldr r0, _0201C0FC ; =UNK_021C5734 - add r5, r5, #0x1 - add r4, r4, #0x4 - strh r2, [r0, r1] - cmp r3, #0x4 - blt _0201C0A4 - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, #0x4 - blt _0201C09A - ldr r0, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x4] - ldr r0, [sp, #0x10] - add r0, r0, #0x1 - str r0, [sp, #0x10] - cmp r0, #0x4 - blt _0201C08C - ldr r0, [sp, #0x8] - add r0, r0, #0x4 - str r0, [sp, #0x8] - ldr r0, [sp, #0x14] - add r0, r0, #0x1 - str r0, [sp, #0x14] - cmp r0, #0x4 - blt _0201C07E - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_0201C0F8: .word UNK_021C570C -_0201C0FC: .word UNK_021C5734 diff --git a/arm9/src/main.c b/arm9/src/main.c index f7bcf7f01..05b7f67f5 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -54,8 +54,8 @@ extern struct Unk21DBE18 MOD52_021D76C8; extern u8 SDK_STATIC_BSS_START[]; -const int gGameVersion = GAME_VERSION; const int gGameLanguage = GAME_LANGUAGE; +const int gGameVersion = GAME_VERSION; THUMB_FUNC void NitroMain(void) { diff --git a/arm9/src/math_util.c b/arm9/src/math_util.c index 84dfdcfb5..4ecee59c3 100644 --- a/arm9/src/math_util.c +++ b/arm9/src/math_util.c @@ -6,7 +6,7 @@ extern const s16 UNK_020FFA38[]; // temporary until further notice /* * Constant tables */ -const s32 gSineTable[] = +const fx32 gSineTable[] = { FX32_CONST(0.0), // sin(0) FX32_CONST(0.017333984375), // sin(1) @@ -460,7 +460,7 @@ const s32 gSineTable[] = FX32_CONST(0.999755859375), // sin(449) }; -const u16 UNK_020EDC7E[] = // rotations? +static const u16 UNK_020EDC7E[] = // rotations? { 0x0000, 0x00B7, 0x016D, 0x0223, 0x02D9, 0x038F, 0x0445, 0x04FB, 0x05B1, 0x0667, 0x071D, 0x07D3, 0x0889, 0x093F, 0x09F5, 0x0AAB, 0x0B61, 0x0C17, 0x0CCD, 0x0D83, @@ -592,31 +592,41 @@ THUMB_FUNC s32 Sin32(s32 degrees) * Random number generators */ static u32 sMTRNG_State[624]; // Mersenne Twister seed storage/buffer +#ifdef NONMATCHING +// Using -ipa file makes the following hack unnecessary, +// but for some reason forces UNK_020EDC7E to align to +// word rather than short... +static u32 sLCRNG_State; +#define sMTRNG_State_2 sMTRNG_State +#else static union { u32 LC_State; // Linear-congruential seed storage/buffer u32 MTRNG_State[]; // Don't bother asking why Game Freak did this. Just don't. } sRNGHack; +#define sLCRNG_State sRNGHack.LC_State +#define sMTRNG_State_2 (sRNGHack.MTRNG_State + 1) +#endif // Returns the Linear-congruential buffer in full. THUMB_FUNC u32 GetLCRNGSeed() { - return sRNGHack.LC_State; + return sLCRNG_State; } // Initializes the Linear-congruential buffer with a 32-bit seed. THUMB_FUNC void SetLCRNGSeed(u32 seed) { - sRNGHack.LC_State = seed; + sLCRNG_State = seed; } // Calculates an unsigned 16-bit random integer using the Linear-congruential algorithm. THUMB_FUNC u16 LCRandom(void) { // cycle the RNG - sRNGHack.LC_State *= 0x41C64E6D; - sRNGHack.LC_State += 0x6073; - return (u16)(sRNGHack.LC_State / 65536); // shut up the compiler + sLCRNG_State *= 0x41C64E6D; + sLCRNG_State += 0x6073; + return (u16)(sLCRNG_State / 65536); // shut up the compiler } // Returns a cheap, psuedo-random unsigned 32-bit random integer from a seed. @@ -631,7 +641,7 @@ static u32 sMTRNG_XOR[2] = {0, 0x9908b0df}; // Mersenne Twister XOR mask table // Initializes the Mersenne Twister buffer with a 32-bit seed. THUMB_FUNC void SetMTRNGSeed(u32 seed) { - sRNGHack.MTRNG_State[0+1] = seed; + sMTRNG_State_2[0] = seed; for (sMTRNG_Cycles = 1; sMTRNG_Cycles < 624; sMTRNG_Cycles++) sMTRNG_State[sMTRNG_Cycles] = 1812433253 * (sMTRNG_State[sMTRNG_Cycles - 1] ^ (sMTRNG_State[sMTRNG_Cycles - 1] >> 30)) + sMTRNG_Cycles; @@ -659,8 +669,8 @@ THUMB_FUNC u32 MTRandom(void) sMTRNG_State[i] = sMTRNG_State[i + -227] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1]; } - val = (sRNGHack.MTRNG_State[623+1] & 0x80000000) | (sRNGHack.MTRNG_State[0+1] & 0x7fffffff); - sRNGHack.MTRNG_State[623+1] = sRNGHack.MTRNG_State[396+1] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1]; + val = (sMTRNG_State_2[623] & 0x80000000) | (sMTRNG_State_2[0] & 0x7fffffff); + sMTRNG_State_2[623] = sMTRNG_State_2[396] ^ (val >> 1) ^ sMTRNG_XOR[val & 0x1]; sMTRNG_Cycles = 0; } diff --git a/arm9/src/pokedex.c b/arm9/src/pokedex.c index bd1ea2544..d86afa6ac 100644 --- a/arm9/src/pokedex.c +++ b/arm9/src/pokedex.c @@ -226,12 +226,11 @@ void Pokedex_InitSeenDeoxysFormesArray(struct Pokedex * pokedex) static inline BOOL HasUnownLetterBeenSeen(struct Pokedex * pokedex, u8 letter) { - u8 * arr; s32 i; + u8 * arr; for (i = 0, arr = (u8 *)pokedex; i < 28; i++, arr++) { - u8 val = arr[0x010C]; - if (letter == val) + if (letter == *(arr + 0x10C)) return TRUE; } return FALSE; @@ -239,12 +238,11 @@ static inline BOOL HasUnownLetterBeenSeen(struct Pokedex * pokedex, u8 letter) static inline s32 FindFirstAvailableUnownLetterSlot(struct Pokedex * pokedex) { - u8 * arr; s32 i; + u8 * arr; for (i = 0, arr = (u8 *)pokedex; i < 28; i++, arr++) { - u8 val = arr[0x010C]; - if (val == 0xFF) + if (*(arr + 0x10C) == 0xFF) break; } return i; @@ -320,26 +318,26 @@ s32 FUN_020242C8(struct Pokedex * pokedex, u16 species, s32 r4) return r1; } -const u16 sSinnohDexMythicalMons[] = { - SPECIES_MANAPHY -}; - -const u16 sNationalDexMythicalMons[] = { - SPECIES_MEW, - SPECIES_LUGIA, - SPECIES_HO_OH, - SPECIES_CELEBI, - SPECIES_JIRACHI, - SPECIES_DEOXYS, - SPECIES_PHIONE, - SPECIES_MANAPHY, - SPECIES_DARKRAI, - SPECIES_SHAYMIN, - SPECIES_ARCEUS -}; - BOOL Pokedex_SpeciesIsNotMythical(u16 species) { + static const u16 sSinnohDexMythicalMons[] = { + SPECIES_MANAPHY + }; + + static const u16 sNationalDexMythicalMons[] = { + SPECIES_MEW, + SPECIES_LUGIA, + SPECIES_HO_OH, + SPECIES_CELEBI, + SPECIES_JIRACHI, + SPECIES_DEOXYS, + SPECIES_PHIONE, + SPECIES_MANAPHY, + SPECIES_DARKRAI, + SPECIES_SHAYMIN, + SPECIES_ARCEUS + }; + s32 i; BOOL ret = TRUE; for (i = 0; i < (s32)NELEMS(sNationalDexMythicalMons); i++) diff --git a/arm9/src/text.c b/arm9/src/text.c index efaa6f4e8..3034baab1 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -7,16 +7,9 @@ const struct FontInfo *gFonts = NULL; u16 UNK_021C5734[0x100]; u32 UNK_021C5714[8]; - -// These three variables are written and never read. -// GenerateFontHalfRowLookupTable sets these variables -// in a manner consistent with them being defined static -// in the scope of that function, but doing so breaks the -// allocation of other variables in this file. -u16 UNK_021C5712; u16 UNK_021C570E; u16 UNK_021C5710; - +u16 UNK_021C5712; u8 UNK_021C570C; extern u32 FUN_0200CA7C(void (*func)(u32, struct TextPrinter *), struct TextPrinter *printer, u32 param2); @@ -278,7 +271,6 @@ THUMB_FUNC u32 RenderFont(struct TextPrinter *printer) } } -#ifdef NONMATCHING THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor) { s32 r5 = 0; @@ -312,9 +304,6 @@ THUMB_FUNC void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadow } } } -#else -GLOBAL_ASM("asm/nonmatchings/GenerateFontHalfRowLookupTable.s") -#endif THUMB_FUNC void DecompressGlyphTile(const u16 *src, u16 *dst) { diff --git a/arm9/src/unk_02015E30.c b/arm9/src/unk_02015E30.c index 8be466fbf..2f7b5bb52 100644 --- a/arm9/src/unk_02015E30.c +++ b/arm9/src/unk_02015E30.c @@ -1,35 +1,37 @@ #include "unk_02015E30.h" -struct UnkStruct_02015E30 UNK_021C4898; +u64 UNK_021C48B0; +u64 UNK_021C48A8; +u64 UNK_021C48A0; +struct IGT * UNK_021C489C; +u32 UNK_021C4898; THUMB_FUNC void FUN_02015E30() { - UNK_021C4898.unk00 = 0; + UNK_021C4898 = 0; } THUMB_FUNC void FUN_02015E3C(struct IGT *igt) { - struct UnkStruct_02015E30 *unk1 = &UNK_021C4898; - UNK_021C4898.unk00 = 1; - UNK_021C4898.unk10 = 0; - UNK_021C4898.unk14 = 0; - UNK_021C4898.unk08 = 0; - UNK_021C4898.unk04 = igt; + UNK_021C4898 = 1; + UNK_021C48A8 = 0; + UNK_021C48A0 = 0; + UNK_021C489C = igt; - UNK_021C4898.unk18 = GetTimer3Count(); + UNK_021C48B0 = GetTimer3Count(); } THUMB_FUNC void FUN_02015E60() { - if (UNK_021C4898.unk00 != 0) + if (UNK_021C4898 != 0) { - u64 res = Timer3CountToSeconds(GetTimer3Count() - UNK_021C4898.unk18); + u64 res = Timer3CountToSeconds(GetTimer3Count() - UNK_021C48B0); - if (UNK_021C4898.unk08 < res) + if (UNK_021C48A0 < res) { - AddIGTSeconds(UNK_021C4898.unk04, (u32)(res - UNK_021C4898.unk08)); - UNK_021C4898.unk08 = res; + AddIGTSeconds(UNK_021C489C, (u32)(res - UNK_021C48A0)); + UNK_021C48A0 = res; } } } diff --git a/arm9/src/unk_02021934.c b/arm9/src/unk_02021934.c index cd66a136a..ebc600faf 100644 --- a/arm9/src/unk_02021934.c +++ b/arm9/src/unk_02021934.c @@ -109,31 +109,31 @@ struct String * StringDup(struct String * src, u32 heap_id) return dest; } -static const u16 sCharset_JP[10] = { - 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - 0xA7, 0xA8, 0xA9, 0xAA, 0xAB -}; - -static const u16 sCharset_EN[10] = { - 0x121, 0x122, 0x123, 0x124, 0x125, - 0x126, 0x127, 0x128, 0x129, 0x12A -}; - -static const u32 sPowersOfTen[10] = { - 1, - 10, - 100, - 1000, - 10000, - 100000, - 1000000, - 10000000, - 100000000, - 1000000000 -}; - void String16_FormatInteger(struct String * str, int num, u32 ndigits, int strConvMode, BOOL whichCharset) { + static const u16 sCharset_EN[10] = { + 0x121, 0x122, 0x123, 0x124, 0x125, + 0x126, 0x127, 0x128, 0x129, 0x12A + }; + + static const u16 sCharset_JP[10] = { + 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, + 0xA7, 0xA8, 0xA9, 0xAA, 0xAB + }; + + static const u32 sPowersOfTen[10] = { + 1, + 10, + 100, + 1000, + 10000, + 100000, + 1000000, + 10000000, + 100000000, + 1000000000 + }; + ASSERT_STR16(str); const u16 * charbase; diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index d52857c17..ae7d2ed22 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -10,8 +10,8 @@ struct struct UnkStruct0202F150 *unk04; } UNK_021C59F4; -vu8 UNK_02105D58 = 4; vu8 UNK_02105D59 = 4; +vu8 UNK_02105D58 = 4; extern void FUN_0202D7D8(u8 *param0, u32 param1, struct UnkStruct0202F150_sub1 *param2); extern u32 FUN_0200CA60(void (*param0)(), u32 param1, u32 param2); diff --git a/arm9/src/unk_02031734.c b/arm9/src/unk_02031734.c index 65ed3bc47..57764b826 100644 --- a/arm9/src/unk_02031734.c +++ b/arm9/src/unk_02031734.c @@ -18,11 +18,9 @@ const struct UnkStruct_02031734_const1 UNK_020EEC5C = { { (u32)FUN_02032234, (u32)FUN_0203234C, 0 } }; -char UNK_02105D5C[] = "FREAK"; - -char UNK_02105D6C[] = " GAME"; - char UNK_02105D64[] = " FULL"; +char UNK_02105D5C[] = "FREAK"; +char UNK_02105D6C[] = " GAME"; struct UnkStruct_02031734 *UNK_021C5A00; From e22dc9134171fe4b24cafdfe15619ba5939d3608 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 16 May 2021 18:42:17 -0400 Subject: [PATCH 047/134] Fix arrangement of module 52 --- arm9/modules/52/src/module_52.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c index 1f74c77f6..39a164950 100644 --- a/arm9/modules/52/src/module_52.c +++ b/arm9/modules/52/src/module_52.c @@ -150,10 +150,10 @@ THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2) FUN_0205ECD4(SavArray_Flags_get(sav2)); } -const struct MOD52_Struct MOD52_021D76C8 = { - MOD52_021D757C, - MOD52_021D7594, - MOD52_021D75E8, +const struct MOD52_Struct MOD52_021D76E8 = { + MOD52_021D74E0, + MOD52_021D74F8, + MOD52_021D750C, 0xFFFFFFFF, }; @@ -164,10 +164,10 @@ const struct MOD52_Struct MOD52_021D76D8 = { 0xFFFFFFFF, }; -const struct MOD52_Struct MOD52_021D76E8 = { - MOD52_021D74E0, - MOD52_021D74F8, - MOD52_021D750C, +const struct MOD52_Struct MOD52_021D76C8 = { + MOD52_021D757C, + MOD52_021D7594, + MOD52_021D75E8, 0xFFFFFFFF, }; From dc13d38ac229697e3c4bbbadf943fc91bbb2667a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 16 May 2021 20:39:53 -0400 Subject: [PATCH 048/134] Fix prototypes in module 52 --- CMakeLists.txt | 5 +- arm9/CMakeLists.txt | 18 + arm9/modules/52/include/module_52.h | 28 +- arm9/modules/52/src/module_52.c | 633 +++++++--------------------- 4 files changed, 176 insertions(+), 508 deletions(-) create mode 100644 arm9/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index d0806d0f6..92d8aea28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,10 +15,7 @@ endif(APPLE) add_compile_options(-fms-extensions) -file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c" "*.cpp") - -add_executable(PokeDiamond ${SOURCES}) -target_include_directories(PokeDiamond PRIVATE include include-mw arm9/lib/include arm7/lib/include arm9/modules/05/include arm9/modules/21/include arm9/modules/59/include arm9/modules/63/include) +add_subdirectory(arm9) add_executable(calcrom .github/calcrom/calcrom.cpp) target_include_directories(calcrom PRIVATE /usr/local/include) diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt new file mode 100644 index 000000000..9170d823c --- /dev/null +++ b/arm9/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required (VERSION 3.15) +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") +set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") +project(DP_Arm9) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_C_STANDARD 11) + +# TODO: Add commands + +enable_language(ASM) + +add_compile_options(-fms-extensions) + +file(GLOB_RECURSE SOURCES "*.c" "*.cpp") +file(GLOB MODULE_INC modules/*/include) + +add_executable(DP_Arm9 ${SOURCES}) +target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC}) diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h index 4c47a82d9..0abc13e10 100644 --- a/arm9/modules/52/include/module_52.h +++ b/arm9/modules/52/include/module_52.h @@ -13,30 +13,22 @@ #include "unk_02024E64.h" #include "unk_020286F8.h" -const u8 MOD52_021D76F8[]; +const u16 MOD52_021D76F8[]; -THUMB_FUNC int MOD52_021D74E0(); -THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0); -THUMB_FUNC int MOD52_021D750C(); +THUMB_FUNC BOOL MOD52_021D74E0(); +THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused); +THUMB_FUNC BOOL MOD52_021D750C(); -THUMB_FUNC int MOD52_021D7528(); -THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0); -THUMB_FUNC int MOD52_021D7560(); +THUMB_FUNC BOOL MOD52_021D7528(); +THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused); +THUMB_FUNC BOOL MOD52_021D7560(); -THUMB_FUNC int MOD52_021D757C(); -THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0); -THUMB_FUNC int MOD52_021D75E8(); +THUMB_FUNC BOOL MOD52_021D757C(); +THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused); +THUMB_FUNC BOOL MOD52_021D75E8(); THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid); THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2); THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2); -struct MOD52_Struct -{ - int (*func1)(void); - int (*func2)(struct UnkStruct_02006234 *param0); - int (*func3)(void); - u32 terminator; -}; - #endif // POKEDIAMOND_MODULE_52_H \ No newline at end of file diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c index 39a164950..52cba9755 100644 --- a/arm9/modules/52/src/module_52.c +++ b/arm9/modules/52/src/module_52.c @@ -9,20 +9,23 @@ extern struct Unk21DBE18 UNK_020F2B8C; extern void FUN_02015E3C(struct IGT *igt); extern int FUN_02053678(u32 random, u32 gender, u32 param2); -extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u8 param2[], u32 param3); +extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u16 param2[], u32 param3); extern void FUN_020377E0(struct SaveBlock2 *sav2); extern void FUN_0205ECD4(struct ScriptState *script_state); -THUMB_FUNC int MOD52_021D74E0() +THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_0201681C(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; } -THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0) +THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused) { +#pragma unused(unused) struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird MOD52_021D769C(0x4d, sav2); @@ -30,24 +33,29 @@ THUMB_FUNC int MOD52_021D74F8(struct UnkStruct_02006234 *param0) return 1; } -THUMB_FUNC int MOD52_021D750C() +THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_020168D0(0x4d); RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144); return 1; } -THUMB_FUNC int MOD52_021D7528() +THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_0201681C(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; } -THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0) +THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused) { +#pragma unused(unused) struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird MOD52_021D7604(0x4d, sav2, 1); @@ -57,24 +65,29 @@ THUMB_FUNC int MOD52_021D7540(struct UnkStruct_02006234 *param0) return 1; } -THUMB_FUNC int MOD52_021D7560() +THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_020168D0(0x4d); RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C); return 1; } -THUMB_FUNC int MOD52_021D757C() +THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_0201681C(3, 0x4d, 2 << 16); InitializeMainRNG(); return 1; } -THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0) +THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused) { +#pragma unused(unused) struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2); @@ -93,8 +106,10 @@ THUMB_FUNC int MOD52_021D7594(struct UnkStruct_02006234 *param0) return 1; } -THUMB_FUNC int MOD52_021D75E8() +THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2) { +#pragma unused(arg1) +#pragma unused(arg2) FUN_020168D0(0x4d); RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C); @@ -150,498 +165,144 @@ THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2) FUN_0205ECD4(SavArray_Flags_get(sav2)); } -const struct MOD52_Struct MOD52_021D76E8 = { +const struct Unk21DBE18 MOD52_021D76E8 = { MOD52_021D74E0, MOD52_021D74F8, MOD52_021D750C, 0xFFFFFFFF, }; -const struct MOD52_Struct MOD52_021D76D8 = { +const struct Unk21DBE18 MOD52_021D76D8 = { MOD52_021D7528, MOD52_021D7540, MOD52_021D7560, 0xFFFFFFFF, }; -const struct MOD52_Struct MOD52_021D76C8 = { +const struct Unk21DBE18 MOD52_021D76C8 = { MOD52_021D757C, MOD52_021D7594, MOD52_021D75E8, 0xFFFFFFFF, }; -const u8 MOD52_021D76F8[] = { - 0x9B, - 0x00, - 0x01, - 0x00, - 0x95, - 0x00, - 0x01, - 0x00, - 0x96, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x02, - 0x00, - 0xA5, - 0x00, - 0x02, - 0x00, - 0x95, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x02, - 0x00, - 0x9E, - 0x00, - 0x01, - 0x00, - 0xA7, - 0x00, - 0x02, - 0x00, - 0xA7, - 0x00, - 0x02, - 0x00, - 0xAA, - 0x00, - 0x01, - 0x00, - 0x95, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x01, - 0x00, - 0x98, - 0x00, - 0x01, - 0x00, - 0x98, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x01, - 0x00, - 0x95, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x01, - 0x00, - 0x9B, - 0x00, - 0x01, - 0x00, - 0xA5, - 0x00, - 0x01, - 0x00, - 0xA6, - 0x00, - 0x02, - 0x00, - 0xA4, - 0x00, - 0x02, - 0x00, - 0xA5, - 0x00, - 0x02, - 0x00, - 0xA8, - 0x00, - 0x02, - 0x00, - 0x9A, - 0x00, - 0x01, - 0x00, - 0x96, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x01, - 0x00, - 0x9C, - 0x00, - 0x01, - 0x00, - 0xA6, - 0x00, - 0x01, - 0x00, - 0xA6, - 0x00, - 0x01, - 0x00, - 0x9F, - 0x00, - 0x01, - 0x00, - 0x99, - 0x00, - 0x01, - 0x00, - 0x99, - 0x00, - 0x01, - 0x00, - 0xA4, - 0x00, - 0x01, - 0x00, - 0xA8, - 0x00, - 0x01, - 0x00, - 0x9E, - 0x00, - 0x01, - 0x00, - 0x96, - 0x00, - 0x01, - 0x00, - 0xA0, - 0x00, - 0x01, - 0x00, - 0xA2, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0x99, - 0x00, - 0x01, - 0x00, - 0xA3, - 0x00, - 0x01, - 0x00, - 0xAD, - 0x00, - 0x01, - 0x00, - 0x9E, - 0x00, - 0x01, - 0x00, - 0x99, - 0x00, - 0x01, - 0x00, - 0xAE, - 0x00, - 0x01, - 0x00, - 0x9D, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0xA8, - 0x00, - 0x01, - 0x00, - 0xA8, - 0x00, - 0x01, - 0x00, - 0xA8, - 0x00, - 0x01, - 0x00, - 0x9C, - 0x00, - 0x01, - 0x00, - 0x9C, - 0x00, - 0x01, - 0x00, - 0xA6, - 0x00, - 0x01, - 0x00, - 0xA6, - 0x00, - 0x01, - 0x00, - 0xA2, - 0x00, - 0x01, - 0x00, - 0xA3, - 0x00, - 0x01, - 0x00, - 0x98, - 0x00, - 0x01, - 0x00, - 0x98, - 0x00, - 0x01, - 0x00, - 0x95, - 0x00, - 0x01, - 0x00, - 0x9E, - 0x00, - 0x01, - 0x00, - 0x96, - 0x00, - 0x01, - 0x00, - 0xA9, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x02, - 0x00, - 0xA5, - 0x00, - 0x02, - 0x00, - 0xA0, - 0x00, - 0x01, - 0x00, - 0xA1, - 0x00, - 0x01, - 0x00, - 0x98, - 0x00, - 0x01, - 0x00, - 0x9C, - 0x00, - 0x01, - 0x00, - 0x9F, - 0x00, - 0x01, - 0x00, - 0xA8, - 0x00, - 0x02, - 0x00, - 0x9A, - 0x00, - 0x01, - 0x00, - 0x97, - 0x00, - 0x01, - 0x00, - 0xA1, - 0x00, - 0x01, - 0x00, - 0xAC, - 0x00, - 0x01, - 0x00, - 0xA0, - 0x00, - 0x02, - 0x00, - 0xA1, - 0x00, - 0x02, - 0x00, - 0xA2, - 0x00, - 0x02, - 0x00, - 0xAB, - 0x00, - 0x01, - 0x00, - 0x9E, - 0x00, - 0x02, - 0x00, - 0xA5, - 0x00, - 0x03, - 0x00, - 0xA6, - 0x00, - 0x03, - 0x00, - 0xA7, - 0x00, - 0x03, - 0x00, - 0xA9, - 0x00, - 0x01, - 0x00, - 0xA9, - 0x00, - 0x01, - 0x00, - 0xAC, - 0x00, - 0x02, - 0x00, - 0xAC, - 0x00, - 0x02, - 0x00, - 0xAA, - 0x00, - 0x01, - 0x00, - 0xAA, - 0x00, - 0x01, - 0x00, - 0xAE, - 0x00, - 0x01, - 0x00, - 0xAE, - 0x00, - 0x01, - 0x00, - 0xAB, - 0x00, - 0x01, - 0x00, - 0xAB, - 0x00, - 0x01, - 0x00, - 0xA9, - 0x00, - 0x01, - 0x00, - 0xA9, - 0x00, - 0x01, - 0x00, - 0xAC, - 0x00, - 0x01, - 0x00, - 0xAC, - 0x00, - 0x01, - 0x00, - 0xAE, - 0x00, - 0x01, - 0x00, - 0xAE, - 0x00, - 0x01, - 0x00, - 0xAD, - 0x00, - 0x01, - 0x00, - 0xAD, - 0x00, - 0x01, - 0x00, - 0xAB, - 0x00, - 0x01, - 0x00, - 0xAB, - 0x00, - 0x01, - 0x00, - 0x9D, - 0x00, - 0x01, - 0x00, - 0x9A, - 0x00, - 0x01, - 0x00, - 0xAB, - 0x00, - 0x02, - 0x00, - 0xAD, - 0x00, - 0x02, - 0x00, - 0xAA, - 0x00, - 0x02, - 0x00, - 0xAA, - 0x00, - 0x02, - 0x00, - 0xAD, - 0x00, - 0x01, - 0x00, - 0xAD, - 0x00, - 0x01, - 0x00, +const u16 MOD52_021D76F8[] = { + ITEM_ORAN_BERRY, 1, + ITEM_CHERI_BERRY, 1, + ITEM_CHESTO_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_ORAN_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_RAZZ_BERRY, 2, + ITEM_BLUK_BERRY, 2, + ITEM_CHERI_BERRY, 1, + ITEM_ORAN_BERRY, 2, + ITEM_SITRUS_BERRY, 1, + ITEM_WEPEAR_BERRY, 2, + ITEM_WEPEAR_BERRY, 2, + ITEM_KELPSY_BERRY, 1, + ITEM_CHERI_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_ORAN_BERRY, 1, + ITEM_ORAN_BERRY, 1, + ITEM_RAWST_BERRY, 1, + ITEM_RAWST_BERRY, 1, + ITEM_RAZZ_BERRY, 1, + ITEM_RAZZ_BERRY, 1, + ITEM_CHERI_BERRY, 1, + ITEM_ORAN_BERRY, 1, + ITEM_ORAN_BERRY, 1, + ITEM_BLUK_BERRY, 1, + ITEM_NANAB_BERRY, 2, + ITEM_RAZZ_BERRY, 2, + ITEM_BLUK_BERRY, 2, + ITEM_PINAP_BERRY, 2, + ITEM_LEPPA_BERRY, 1, + ITEM_CHESTO_BERRY, 1, + ITEM_RAZZ_BERRY, 1, + ITEM_RAZZ_BERRY, 1, + ITEM_PERSIM_BERRY, 1, + ITEM_NANAB_BERRY, 1, + ITEM_NANAB_BERRY, 1, + ITEM_FIGY_BERRY, 1, + ITEM_ASPEAR_BERRY, 1, + ITEM_ASPEAR_BERRY, 1, + ITEM_RAZZ_BERRY, 1, + ITEM_PINAP_BERRY, 1, + ITEM_SITRUS_BERRY, 1, + ITEM_CHESTO_BERRY, 1, + ITEM_WIKI_BERRY, 1, + ITEM_AGUAV_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_ASPEAR_BERRY, 1, + ITEM_IAPAPA_BERRY, 1, + ITEM_GREPA_BERRY, 1, + ITEM_SITRUS_BERRY, 1, + ITEM_ASPEAR_BERRY, 1, + ITEM_TAMATO_BERRY, 1, + ITEM_LUM_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_PINAP_BERRY, 1, + ITEM_PINAP_BERRY, 1, + ITEM_PINAP_BERRY, 1, + ITEM_PERSIM_BERRY, 1, + ITEM_PERSIM_BERRY, 1, + ITEM_NANAB_BERRY, 1, + ITEM_NANAB_BERRY, 1, + ITEM_AGUAV_BERRY, 1, + ITEM_IAPAPA_BERRY, 1, + ITEM_RAWST_BERRY, 1, + ITEM_RAWST_BERRY, 1, + ITEM_CHERI_BERRY, 1, + ITEM_SITRUS_BERRY, 1, + ITEM_CHESTO_BERRY, 1, + ITEM_POMEG_BERRY, 1, + ITEM_PECHA_BERRY, 2, + ITEM_BLUK_BERRY, 2, + ITEM_WIKI_BERRY, 1, + ITEM_MAGO_BERRY, 1, + ITEM_RAWST_BERRY, 1, + ITEM_PERSIM_BERRY, 1, + ITEM_FIGY_BERRY, 1, + ITEM_PINAP_BERRY, 2, + ITEM_LEPPA_BERRY, 1, + ITEM_PECHA_BERRY, 1, + ITEM_MAGO_BERRY, 1, + ITEM_HONDEW_BERRY, 1, + ITEM_WIKI_BERRY, 2, + ITEM_MAGO_BERRY, 2, + ITEM_AGUAV_BERRY, 2, + ITEM_QUALOT_BERRY, 1, + ITEM_SITRUS_BERRY, 2, + ITEM_BLUK_BERRY, 3, + ITEM_NANAB_BERRY, 3, + ITEM_WEPEAR_BERRY, 3, + ITEM_POMEG_BERRY, 1, + ITEM_POMEG_BERRY, 1, + ITEM_HONDEW_BERRY, 2, + ITEM_HONDEW_BERRY, 2, + ITEM_KELPSY_BERRY, 1, + ITEM_KELPSY_BERRY, 1, + ITEM_TAMATO_BERRY, 1, + ITEM_TAMATO_BERRY, 1, + ITEM_QUALOT_BERRY, 1, + ITEM_QUALOT_BERRY, 1, + ITEM_POMEG_BERRY, 1, + ITEM_POMEG_BERRY, 1, + ITEM_HONDEW_BERRY, 1, + ITEM_HONDEW_BERRY, 1, + ITEM_TAMATO_BERRY, 1, + ITEM_TAMATO_BERRY, 1, + ITEM_GREPA_BERRY, 1, + ITEM_GREPA_BERRY, 1, + ITEM_QUALOT_BERRY, 1, + ITEM_QUALOT_BERRY, 1, + ITEM_LUM_BERRY, 1, + ITEM_LEPPA_BERRY, 1, + ITEM_QUALOT_BERRY, 2, + ITEM_GREPA_BERRY, 2, + ITEM_KELPSY_BERRY, 2, + ITEM_KELPSY_BERRY, 2, + ITEM_GREPA_BERRY, 1, + ITEM_GREPA_BERRY, 1, }; \ No newline at end of file From a125d1fb025c9fbf1d6857722a5cf591f430bf48 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 16 May 2021 20:47:51 -0400 Subject: [PATCH 049/134] More prototype fixing --- arm9/modules/52/include/module_52.h | 16 +- arm9/modules/52/src/module_52.c | 308 ++++++++++++++-------------- arm9/src/main.c | 9 +- arm9/src/overlay_manager.c | 2 +- include/main.h | 8 +- include/overlay_manager.h | 2 +- 6 files changed, 171 insertions(+), 174 deletions(-) diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h index 0abc13e10..0adedc62f 100644 --- a/arm9/modules/52/include/module_52.h +++ b/arm9/modules/52/include/module_52.h @@ -13,19 +13,21 @@ #include "unk_02024E64.h" #include "unk_020286F8.h" -const u16 MOD52_021D76F8[]; +extern const struct Unk21DBE18 MOD52_021D76E8; +extern const struct Unk21DBE18 MOD52_021D76D8; +extern const struct Unk21DBE18 MOD52_021D76C8; -THUMB_FUNC BOOL MOD52_021D74E0(); +THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2); THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D750C(); +THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D7528(); +THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2); THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D7560(); +THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D757C(); +THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2); THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D75E8(); +THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2); THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid); THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2); diff --git a/arm9/modules/52/src/module_52.c b/arm9/modules/52/src/module_52.c index 52cba9755..41f2706a2 100644 --- a/arm9/modules/52/src/module_52.c +++ b/arm9/modules/52/src/module_52.c @@ -1,170 +1,18 @@ #include "module_52.h" #include "heap.h" #include "unk_0205FA2C.h" +#include "unk_02015E30.h" extern struct Unk21DBE18 UNK_020FD144; extern struct Unk21DBE18 UNK_020F2B7C; extern struct Unk21DBE18 UNK_020F2B8C; -extern void FUN_02015E3C(struct IGT *igt); extern int FUN_02053678(u32 random, u32 gender, u32 param2); extern void FUN_020250C4(void *sav_ptr, u32 heap_id, const u16 param2[], u32 param3); extern void FUN_020377E0(struct SaveBlock2 *sav2); extern void FUN_0205ECD4(struct ScriptState *script_state); -THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); - InitializeMainRNG(); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused) -{ -#pragma unused(unused) - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird - - MOD52_021D769C(0x4d, sav2); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_020168D0(0x4d); - RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); - InitializeMainRNG(); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused) -{ -#pragma unused(unused) - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird - - MOD52_021D7604(0x4d, sav2, 1); - struct IGT *igt = Sav2_PlayerData_GetIGTAddr(sav2); - FUN_02015E3C(igt); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_020168D0(0x4d); - RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_0201681C(3, 0x4d, 2 << 16); - InitializeMainRNG(); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused) -{ -#pragma unused(unused) - struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird - - struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2); - - MOD52_021D7688(0x4d, sav2); - Options_SetButtonModeOnMain(sav2, 0); - - if (!Sav2_SysInfo_MacAddressIsMine(sav2_info) || !Sav2_SysInfo_RTCOffsetIsMine(sav2_info)) - { - FUN_020238A4(Sav2_SysInfo_RTC_get(sav2)); - Sav2_SysInfo_InitFromSystem(sav2_info); - } - - FUN_02015E3C(Sav2_PlayerData_GetIGTAddr(sav2)); - - return 1; -} - -THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2) -{ -#pragma unused(arg1) -#pragma unused(arg2) - FUN_020168D0(0x4d); - RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C); - - return 1; -} - -THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid) -{ - Sav2_SysInfo_InitFromSystem(Sav2_SysInfo_get(sav2)); - Sav2_SysInfo_RTC_init(Sav2_SysInfo_RTC_get(sav2)); - - struct UnkSaveStruct_020286F8 *unk_sav2 = FUN_0202881C(sav2); - - FUN_02028788(unk_sav2, 1, MTRandom()); - FUN_0206007C(sav2); - - struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); - u32 trainerid = MTRandom(); - - if (set_trainerid) - { - PlayerProfile_SetTrainerID(player_data, trainerid); - } - - u32 gender = PlayerProfile_GetTrainerGender(player_data); - int avatar = FUN_02053678(trainerid, gender, 0); - - PlayerProfile_SetAvatar(player_data, (u8)avatar); - - FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, 0x76); -} - -THUMB_FUNC void MOD52_021D7688(u32 unused, struct SaveBlock2 *sav2) -{ -#pragma unused(unused) - - if (FUN_020226FC(sav2)) - { - return; - } - - OS_ResetSystem(0); -} - -THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2) -{ -#pragma unused(unused) - - Sav2_InitDynamicRegion(sav2); - FUN_020377E0(sav2); - struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); - PlayerProfile_SetMoney(player_data, 3000); - FUN_0205ECD4(SavArray_Flags_get(sav2)); -} - const struct Unk21DBE18 MOD52_021D76E8 = { MOD52_021D74E0, MOD52_021D74F8, @@ -305,4 +153,156 @@ const u16 MOD52_021D76F8[] = { ITEM_KELPSY_BERRY, 2, ITEM_GREPA_BERRY, 1, ITEM_GREPA_BERRY, 1, -}; \ No newline at end of file +}; + +THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused) +{ +#pragma unused(unused) + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + MOD52_021D769C(0x4d, sav2); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_020168D0(0x4d); + RegisterMainOverlay(0XFFFFFFFF, &UNK_020FD144); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused) +{ +#pragma unused(unused) + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + MOD52_021D7604(0x4d, sav2, 1); + struct IGT *igt = Sav2_PlayerData_GetIGTAddr(sav2); + FUN_02015E3C(igt); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_020168D0(0x4d); + RegisterMainOverlay(0xFFFFFFFF, &UNK_020F2B7C); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_0201681C(3, 0x4d, 2 << 16); + InitializeMainRNG(); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused) +{ +#pragma unused(unused) + struct SaveBlock2 *sav2 = (struct SaveBlock2 *)OverlayManager_GetField18(param0)[2]; // weird + + struct SavSysInfo *sav2_info = Sav2_SysInfo_get(sav2); + + MOD52_021D7688(0x4d, sav2); + Options_SetButtonModeOnMain(sav2, 0); + + if (!Sav2_SysInfo_MacAddressIsMine(sav2_info) || !Sav2_SysInfo_RTCOffsetIsMine(sav2_info)) + { + FUN_020238A4(Sav2_SysInfo_RTC_get(sav2)); + Sav2_SysInfo_InitFromSystem(sav2_info); + } + + FUN_02015E3C(Sav2_PlayerData_GetIGTAddr(sav2)); + + return 1; +} + +THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2) +{ +#pragma unused(arg1) +#pragma unused(arg2) + FUN_020168D0(0x4d); + RegisterMainOverlay(0XFFFFFFFF, &UNK_020F2B8C); + + return 1; +} + +THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid) +{ + Sav2_SysInfo_InitFromSystem(Sav2_SysInfo_get(sav2)); + Sav2_SysInfo_RTC_init(Sav2_SysInfo_RTC_get(sav2)); + + struct UnkSaveStruct_020286F8 *unk_sav2 = FUN_0202881C(sav2); + + FUN_02028788(unk_sav2, 1, MTRandom()); + FUN_0206007C(sav2); + + struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); + u32 trainerid = MTRandom(); + + if (set_trainerid) + { + PlayerProfile_SetTrainerID(player_data, trainerid); + } + + u32 gender = PlayerProfile_GetTrainerGender(player_data); + int avatar = FUN_02053678(trainerid, gender, 0); + + PlayerProfile_SetAvatar(player_data, (u8)avatar); + + FUN_020250C4(FUN_02024ECC(sav2), heap_id, MOD52_021D76F8, NELEMS(MOD52_021D76F8) / 2); +} + +THUMB_FUNC void MOD52_021D7688(u32 unused, struct SaveBlock2 *sav2) +{ +#pragma unused(unused) + + if (FUN_020226FC(sav2)) + { + return; + } + + OS_ResetSystem(0); +} + +THUMB_FUNC void MOD52_021D769C(u32 unused, struct SaveBlock2 *sav2) +{ +#pragma unused(unused) + + Sav2_InitDynamicRegion(sav2); + FUN_020377E0(sav2); + struct PlayerData *player_data = Sav2_PlayerData_GetProfileAddr(sav2); + PlayerProfile_SetMoney(player_data, 3000); + FUN_0205ECD4(SavArray_Flags_get(sav2)); +} diff --git a/arm9/src/main.c b/arm9/src/main.c index 05b7f67f5..117535b23 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -14,7 +14,7 @@ #include "timer3.h" #include "unk_02031734.h" #include "unk_0202F150.h" - +#include "module_52.h" FS_EXTERN_OVERLAY(MODULE_52); @@ -24,10 +24,6 @@ FS_EXTERN_OVERLAY(MODULE_63); struct Unk2106FA0 gBacklightTop; -extern BOOL OverlayManager_new(struct Unk21DBE18 *, s32 *, int); -extern BOOL OverlayManager_Run(int); -extern void OverlayManager_delete(int); - extern void InitSystemForTheGame(void); extern void InitGraphicMemory(void); extern void FUN_02022294(void); @@ -50,7 +46,6 @@ extern void FUN_0200A318(void); extern void FUN_0200E2D8(void); extern struct Unk21DBE18 MOD63_021DBE18; -extern struct Unk21DBE18 MOD52_021D76C8; extern u8 SDK_STATIC_BSS_START[]; @@ -174,7 +169,7 @@ THUMB_FUNC void Main_RunOverlayManager(void) } } -THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, struct Unk21DBE18 * arg1) +THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1) { if (gBacklightTop.unk14 != NULL) ErrorHandling(); diff --git a/arm9/src/overlay_manager.c b/arm9/src/overlay_manager.c index a59e15ac7..4a04dde16 100644 --- a/arm9/src/overlay_manager.c +++ b/arm9/src/overlay_manager.c @@ -4,7 +4,7 @@ #include "heap.h" #include "overlay_manager.h" -THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id) +THUMB_FUNC struct UnkStruct_02006234 * OverlayManager_new(const struct Unk21DBE18 * ovly_mgr, s32 * a1, u32 heap_id) { struct UnkStruct_02006234 * ret = (struct UnkStruct_02006234 *)AllocFromHeap(heap_id, sizeof(struct UnkStruct_02006234)); ret->ovly_mgr = *ovly_mgr; diff --git a/include/main.h b/include/main.h index d40e22f94..2e424e09c 100644 --- a/include/main.h +++ b/include/main.h @@ -20,7 +20,7 @@ struct UnkStruct_02006234 struct Unk21DBE18 ovly_mgr; u32 unk10; u32 unk14; - int * unk18; + s32 * unk18; void * unk1C; struct SaveBlock2 * unk20; u32 unk24; @@ -31,9 +31,9 @@ struct Unk2106FA0 PMBackLightSwitch unk0; s32 unk4; FSOverlayID unk8; - s32 unkC; + struct UnkStruct_02006234 *unkC; FSOverlayID unk10; - struct Unk21DBE18 * unk14; + const struct Unk21DBE18 * unk14; s32 unk18; s32 unk1C; struct SaveBlock2 * unk20; @@ -113,7 +113,7 @@ extern struct Main gMain; void FUN_02000DF4(void); void Main_RunOverlayManager(void); -void RegisterMainOverlay(FSOverlayID id, struct Unk21DBE18 * arg1); +void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1); void FUN_02000E9C(void); void FUN_02000EC8(u32 parameter); void FUN_02000EE8(void); diff --git a/include/overlay_manager.h b/include/overlay_manager.h index 193bc7e8a..534af18d2 100644 --- a/include/overlay_manager.h +++ b/include/overlay_manager.h @@ -5,7 +5,7 @@ struct Unk21DBE18; -struct UnkStruct_02006234 * OverlayManager_new(struct Unk21DBE18 * ovly_mgr, int * a1, u32 heap_id); +struct UnkStruct_02006234 * OverlayManager_new(const struct Unk21DBE18 * ovly_mgr, s32 * a1, u32 heap_id); void OverlayManager_delete(struct UnkStruct_02006234 * a0); void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); void * OverlayManager_GetData(struct UnkStruct_02006234 * a0); From 1c7120ac14f155f47dca5c4ff6059121382a562c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 May 2021 08:22:16 -0400 Subject: [PATCH 050/134] UnkStruct_0202E29C.unkDAD is a bitfield --- arm9/src/overlay_manager.c | 2 +- arm9/src/unk_0202E29C.c | 39 +++++++++++++++++--------------------- arm9/src/unk_0202F150.c | 4 ++-- include/overlay_manager.h | 2 +- include/unk_0202E29C.h | 7 ++++++- include/unk_0202F150.h | 2 +- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/arm9/src/overlay_manager.c b/arm9/src/overlay_manager.c index 4a04dde16..0a03a87d6 100644 --- a/arm9/src/overlay_manager.c +++ b/arm9/src/overlay_manager.c @@ -38,7 +38,7 @@ THUMB_FUNC void OverlayManager_FreeData(struct UnkStruct_02006234 * a0) a0->unk1C = NULL; } -THUMB_FUNC int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) +THUMB_FUNC s32 * OverlayManager_GetField18(struct UnkStruct_02006234 * a0) { return a0->unk18; } diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index 36c18b162..5f99ca8f6 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -247,21 +247,20 @@ THUMB_FUNC void FUN_0202E538() THUMB_FUNC void FUN_0202E56C(u32 param0) { - UNK_021C59E8.unk8->unkDAD = - (UNK_021C59E8.unk8->unkDAD & ~8 | (u32)((u8)param0 << 0x1f) >> 0x1c); + UNK_021C59E8.unk8->unkDAD_3 = (u8)param0; } THUMB_FUNC void FUN_0202E594() { UNK_021C59E8.unk8->unkCB4 = 0; - UNK_021C59E8.unk8->unkDAD &= ~1; + UNK_021C59E8.unk8->unkDAD_0 = 0; - UNK_021C59E8.unk8->unkDAD &= ~4; + UNK_021C59E8.unk8->unkDAD_2 = 0; UNK_021C59E8.unk8->unkDAA = 0; - UNK_021C59E8.unk8->unkDAD &= ~0x10; + UNK_021C59E8.unk8->unkDAD_4 = 0; UNK_021C59E8.unk8->unkDAC = 0; @@ -281,8 +280,7 @@ THUMB_FUNC BOOL FUN_0202E5F8(u32 param0, u32 param1, u32 param2) UNK_021C59E8.unk8->unkDAB = 1; } - UNK_021C59E8.unk8->unkDAD = - (UNK_021C59E8.unk8->unkDAD & ~0x20 | (u32)((u8)param2 << 0x1f) >> 0x1a); + UNK_021C59E8.unk8->unkDAD_5 = (u8)param2; if (FUN_0202CBD4() == 1 && FUN_0202CBFC() != 0) { return TRUE; @@ -659,10 +657,9 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) FUN_0202DF54(); FUN_0202EB7C(); - if (FUN_0202D19C() == 0 && FUN_0202EE24() == 0 && - ((u32)(UNK_021C59E8.unk8->unkDAD << 0x1d) >> 0x1f) != 0) + if (FUN_0202D19C() == 0 && FUN_0202EE24() == 0 && UNK_021C59E8.unk8->unkDAD_2) { - UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + UNK_021C59E8.unk8->unkDAD_0 = 1; } if (UNK_021C59E8.unk8->unkDA6 == 0xFFFF) @@ -670,10 +667,10 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) UNK_021C59E8.unk8->unkDA6 = param0; } - if (((u32)(UNK_021C59E8.unk8->unkDAD << 0x1e) >> 0x1f) != 0 && + if (UNK_021C59E8.unk8->unkDAD_1 && UNK_021C59E8.unk8->unkDA6 > param0) { - UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + UNK_021C59E8.unk8->unkDAD_0 = 1; } if (FUN_0202CBE8() == 25) @@ -713,7 +710,7 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) if (UNK_021C59E8.unk8 != NULL) { - UNK_021C59E8.unk8->unkDAD = (UNK_021C59E8.unk8->unkDAD & ~1) | 1; + UNK_021C59E8.unk8->unkDAD_0 = 1; return; } break; @@ -731,7 +728,7 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) } u16 r5 = UNK_021C59E8.unk8->unkDA4; - if ((u32)(UNK_021C59E8.unk8->unkDAD << 0x1c) >> 0x1f != 0) + if (UNK_021C59E8.unk8->unkDAD_3) { UNK_021C59E8.unk0++; } @@ -743,7 +740,7 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) r5, FUN_0202D858((u16)FUN_02033534()), FUN_0202EEE8((u16)FUN_02033534()), - (u32)(UNK_021C59E8.unk8->unkDAD << 0x1a) >> 0x1f); + UNK_021C59E8.unk8->unkDAD_5); UNK_021C59E8.unk8->unkDA8 = (u8)r5; @@ -848,7 +845,7 @@ THUMB_FUNC BOOL FUN_0202EE44() THUMB_FUNC BOOL FUN_0202EE60() { - if (UNK_021C59E8.unk8 != NULL && (u32)(UNK_021C59E8.unk8->unkDAD << 0x1f) >> 0x1f != 0) + if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkDAD_0) { return TRUE; } @@ -860,8 +857,7 @@ THUMB_FUNC void FUN_0202EE84(u32 param0) { if (UNK_021C59E8.unk8 != NULL) { - UNK_021C59E8.unk8->unkDAD = - (UNK_021C59E8.unk8->unkDAD & ~4) | (u32)((u8)param0 << 0x1f) >> 0x1d; + UNK_021C59E8.unk8->unkDAD_2 = (u8)param0; } } @@ -869,8 +865,7 @@ THUMB_FUNC void FUN_0202EEB0(u32 param0) { if (UNK_021C59E8.unk8 != NULL) { - UNK_021C59E8.unk8->unkDAD = - (UNK_021C59E8.unk8->unkDAD & ~2) | (u32)((u8)param0 << 0x1f) >> 0x1e; + UNK_021C59E8.unk8->unkDAD_1 = (u8)param0; UNK_021C59E8.unk8->unkDA6 = 0xFFFF; } @@ -1038,7 +1033,7 @@ THUMB_FUNC u32 FUN_0202F03C() { if (UNK_021C59E8.unk8 != NULL) { - return (u32)(UNK_021C59E8.unk8->unkDAD << 0x1b) >> 0x1f; + return UNK_021C59E8.unk8->unkDAD_4; } return 0; @@ -1048,7 +1043,7 @@ THUMB_FUNC void FUN_0202F05C() { if (UNK_021C59E8.unk8 != NULL) { - UNK_021C59E8.unk8->unkDAD |= 0x10; + UNK_021C59E8.unk8->unkDAD_4 = 1; } } diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index ae7d2ed22..1586dae5f 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -336,9 +336,9 @@ THUMB_FUNC void FUN_0202F910(int param0) FUN_0202F820(param0); } -THUMB_FUNC u32 FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC BOOL FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3) { - u32 ret = 1; + BOOL ret = TRUE; if (FUN_02033534() < 0x13) { ret = FUN_0202E5F8(param0, param1, param3); diff --git a/include/overlay_manager.h b/include/overlay_manager.h index 534af18d2..8d9bd6e39 100644 --- a/include/overlay_manager.h +++ b/include/overlay_manager.h @@ -10,7 +10,7 @@ void OverlayManager_delete(struct UnkStruct_02006234 * a0); void * OverlayManager_CreateAndGetData(struct UnkStruct_02006234 * a0, u32 size, u32 heap_id); void * OverlayManager_GetData(struct UnkStruct_02006234 * a0); void OverlayManager_FreeData(struct UnkStruct_02006234 * a0); -int * OverlayManager_GetField18(struct UnkStruct_02006234 * a0); +s32 * OverlayManager_GetField18(struct UnkStruct_02006234 * a0); BOOL OverlayManager_Run(struct UnkStruct_02006234 * a0); #endif //POKEDIAMOND_OVERLAY_MANAGER_H diff --git a/include/unk_0202E29C.h b/include/unk_0202E29C.h index d4316336c..92998f7cb 100644 --- a/include/unk_0202E29C.h +++ b/include/unk_0202E29C.h @@ -68,7 +68,12 @@ struct UnkStruct_0202E29C u8 unkDAA; u8 unkDAB; u8 unkDAC; - u8 unkDAD; + u8 unkDAD_0:1; + u8 unkDAD_1:1; + u8 unkDAD_2:1; + u8 unkDAD_3:1; + u8 unkDAD_4:1; + u8 unkDAD_5:1; u8 unkDAE[0x2]; }; diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index ea0846c6c..8f5cdd3e2 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -93,7 +93,7 @@ THUMB_FUNC void FUN_0202F5A4(); THUMB_FUNC void FUN_0202F820(int param0); THUMB_FUNC void FUN_0202F8D4(); THUMB_FUNC void FUN_0202F910(int param0); -THUMB_FUNC u32 FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3); +THUMB_FUNC BOOL FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3); THUMB_FUNC u32 FUN_0202F950(u32 param0, u32 param1, u32 param2); THUMB_FUNC void FUN_0202F984(); THUMB_FUNC void FUN_0202F9E0(u32 param0); From 066316b4f030f89811ee93b749c4ff927fdc65ed Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 May 2021 08:33:54 -0400 Subject: [PATCH 051/134] -ipa file means this no longer needs to be a struct --- arm9/src/unk_0202E29C.c | 318 ++++++++++++++++++++-------------------- 1 file changed, 157 insertions(+), 161 deletions(-) diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index 5f99ca8f6..ef3cecd58 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -17,13 +17,9 @@ struct UnkStruct_0202E29C_const const struct UnkStruct_0202E29C_const UNK_020EEC40 = { { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } }; -struct -{ - u16 unk0; - u32 unk4; - struct UnkStruct_0202E29C *unk8; - -} UNK_021C59E8; +u16 UNK_021C59E8; +struct UnkStruct_0202E29C *UNK_021C59F0; +u32 UNK_021C59EC; extern u32 FUN_0202CEEC(); extern u32 FUN_02023AC4(); @@ -59,28 +55,28 @@ extern BOOL FUN_0202D2D0(); THUMB_FUNC void FUN_0202E29C(struct PlayerData *player_data) { - if (UNK_021C59E8.unk8 == NULL) + if (UNK_021C59F0 == NULL) { - UNK_021C59E8.unk8 = AllocFromHeap(0xf, sizeof(struct UnkStruct_0202E29C)); - MI_CpuFill8(UNK_021C59E8.unk8, 0, sizeof(struct UnkStruct_0202E29C)); + UNK_021C59F0 = AllocFromHeap(0xf, sizeof(struct UnkStruct_0202E29C)); + MI_CpuFill8(UNK_021C59F0, 0, sizeof(struct UnkStruct_0202E29C)); - UNK_021C59E8.unk8->unkCA4 = AllocFromHeap(0xf, FUN_0202CEEC()); - MI_CpuFill8(UNK_021C59E8.unk8->unkCA4, 0, FUN_0202CEEC()); + UNK_021C59F0->unkCA4 = AllocFromHeap(0xf, FUN_0202CEEC()); + MI_CpuFill8(UNK_021C59F0->unkCA4, 0, FUN_0202CEEC()); - UNK_021C59E8.unk8->unkCBC = AllocFromHeap(0xf, FUN_02023AC4()); - MI_CpuFill8(UNK_021C59E8.unk8->unkCBC, 0, FUN_02023AC4()); + UNK_021C59F0->unkCBC = AllocFromHeap(0xf, FUN_02023AC4()); + MI_CpuFill8(UNK_021C59F0->unkCBC, 0, FUN_02023AC4()); - UNK_021C59E8.unk8->unkCC0 = 0x333; - UNK_021C59E8.unk8->unkCB8 = player_data; + UNK_021C59F0->unkCC0 = 0x333; + UNK_021C59F0->unkCB8 = player_data; - MailMsg_init(&UNK_021C59E8.unk8->unkCA8); + MailMsg_init(&UNK_021C59F0->unkCA8); FUN_0202E500(); } } THUMB_FUNC BOOL FUN_0202E344() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { return TRUE; } @@ -142,26 +138,26 @@ THUMB_FUNC void FUN_0202E380(struct UnkStruct_0202E29C_sub *param0, u32 param1) for (int i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { continue; } - if (!FUN_0202E358(UNK_021C59E8.unk8->unk054[i].unk04, param0->unk04, 6)) + if (!FUN_0202E358(UNK_021C59F0->unk054[i].unk04, param0->unk04, 6)) { continue; } - UNK_021C59E8.unk8->unkC84[i] = 0x96; + UNK_021C59F0->unkC84[i] = 0x96; - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); + MI_CpuCopy8(param0, &UNK_021C59F0->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); return; } int i; for (i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { break; } @@ -169,9 +165,9 @@ THUMB_FUNC void FUN_0202E380(struct UnkStruct_0202E29C_sub *param0, u32 param1) if (i < 0x10) { - UNK_021C59E8.unk8->unkC84[i] = 0x96; - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); - UNK_021C59E8.unk8->unkCB4 = 1; + UNK_021C59F0->unkC84[i] = 0x96; + MI_CpuCopy8(param0, &UNK_021C59F0->unk054[i], sizeof(struct UnkStruct_0202E29C_sub)); + UNK_021C59F0->unkCB4 = 1; } } @@ -183,19 +179,19 @@ THUMB_FUNC void FUN_0202E470(u32 param0, u32 param1) OS_Terminate(); } - UNK_021C59E8.unk4 = 2; + UNK_021C59EC = 2; } THUMB_FUNC void FUN_0202E488() { - UNK_021C59E8.unk4 = 0; + UNK_021C59EC = 0; FUN_02016454(4); } THUMB_FUNC void FUN_0202E49C() { FUN_02016444(4); - UNK_021C59E8.unk4 = 1; + UNK_021C59EC = 1; if (FUN_02090DB8(8, FUN_0202E470, 0) != 1) { OS_Terminate(); @@ -204,7 +200,7 @@ THUMB_FUNC void FUN_0202E49C() THUMB_FUNC BOOL FUN_0202E4C8() { - if (UNK_021C59E8.unk4 == 2) + if (UNK_021C59EC == 2) { return TRUE; } @@ -214,7 +210,7 @@ THUMB_FUNC BOOL FUN_0202E4C8() THUMB_FUNC BOOL FUN_0202E4DC() { - if (UNK_021C59E8.unk4 != 0) + if (UNK_021C59EC != 0) { return TRUE; } @@ -229,42 +225,42 @@ THUMB_FUNC void FUN_0202E4F0() THUMB_FUNC void FUN_0202E500() { - UNK_021C59E8.unk8->unkCB0 = 0; - FUN_0202CE64(UNK_021C59E8.unk8->unkCA4 + (32 - (u32)(UNK_021C59E8.unk8->unkCA4) % 32)); + UNK_021C59F0->unkCB0 = 0; + FUN_0202CE64(UNK_021C59F0->unkCA4 + (32 - (u32)(UNK_021C59F0->unkCA4) % 32)); - FUN_0202CB70(UNK_021C59E8.unk8->unkCC0); + FUN_0202CB70(UNK_021C59F0->unkCC0); } THUMB_FUNC void FUN_0202E538() { for (int i = 0; i < 0x10; i++) { - UNK_021C59E8.unk8->unkC84[i] = 0; + UNK_021C59F0->unkC84[i] = 0; } - MI_CpuFill8(UNK_021C59E8.unk8->unk054, 0, 0xC00); + MI_CpuFill8(UNK_021C59F0->unk054, 0, 0xC00); } THUMB_FUNC void FUN_0202E56C(u32 param0) { - UNK_021C59E8.unk8->unkDAD_3 = (u8)param0; + UNK_021C59F0->unkDAD_3 = (u8)param0; } THUMB_FUNC void FUN_0202E594() { - UNK_021C59E8.unk8->unkCB4 = 0; + UNK_021C59F0->unkCB4 = 0; - UNK_021C59E8.unk8->unkDAD_0 = 0; + UNK_021C59F0->unkDAD_0 = 0; - UNK_021C59E8.unk8->unkDAD_2 = 0; + UNK_021C59F0->unkDAD_2 = 0; - UNK_021C59E8.unk8->unkDAA = 0; + UNK_021C59F0->unkDAA = 0; - UNK_021C59E8.unk8->unkDAD_4 = 0; + UNK_021C59F0->unkDAD_4 = 0; - UNK_021C59E8.unk8->unkDAC = 0; + UNK_021C59F0->unkDAC = 0; - UNK_021C59E8.unk8->unkDAB = 0; + UNK_021C59F0->unkDAB = 0; } THUMB_FUNC BOOL FUN_0202E5F8(u32 param0, u32 param1, u32 param2) @@ -274,13 +270,13 @@ THUMB_FUNC BOOL FUN_0202E5F8(u32 param0, u32 param1, u32 param2) FUN_0202E56C(param1); FUN_0202D2F4(); - if (UNK_021C59E8.unk8->unkDAB == 0) + if (UNK_021C59F0->unkDAB == 0) { FUN_0202D0A0(FUN_020303BC, 0xe); - UNK_021C59E8.unk8->unkDAB = 1; + UNK_021C59F0->unkDAB = 1; } - UNK_021C59E8.unk8->unkDAD_5 = (u8)param2; + UNK_021C59F0->unkDAD_5 = (u8)param2; if (FUN_0202CBD4() == 1 && FUN_0202CBFC() != 0) { return TRUE; @@ -298,10 +294,10 @@ THUMB_FUNC u32 FUN_0202E66C(u32 param0, u32 param1) FUN_0202E538(); } - if (UNK_021C59E8.unk8->unkDAB == 0) + if (UNK_021C59F0->unkDAB == 0) { FUN_0202D0A0(FUN_02030238, 0xe); - UNK_021C59E8.unk8->unkDAB = 1; + UNK_021C59F0->unkDAB = 1; } if (FUN_0202CBD4() == 1) @@ -319,23 +315,23 @@ THUMB_FUNC u32 FUN_0202E66C(u32 param0, u32 param1) THUMB_FUNC u32 FUN_0202E6F0() { - if (UNK_021C59E8.unk8 == NULL) + if (UNK_021C59F0 == NULL) { return 1; } - switch (UNK_021C59E8.unk8->unkDAC) + switch (UNK_021C59F0->unkDAC) { case 0: if (FUN_0202D21C() != 0) { FUN_0202C770(); - UNK_021C59E8.unk8->unkDAC = 1; + UNK_021C59F0->unkDAC = 1; } else if (FUN_0202D1E4() == 0) { FUN_0202D100(); - UNK_021C59E8.unk8->unkDAC = 2; + UNK_021C59F0->unkDAC = 2; } break; @@ -343,7 +339,7 @@ THUMB_FUNC u32 FUN_0202E6F0() if (FUN_0202D1E4() == 0) { FUN_0202D100(); - UNK_021C59E8.unk8->unkDAC = 2; + UNK_021C59F0->unkDAC = 2; } break; case 2: @@ -354,7 +350,7 @@ THUMB_FUNC u32 FUN_0202E6F0() if (FUN_0202D200() != 0) { - UNK_021C59E8.unk8->unkDAC = 1; + UNK_021C59F0->unkDAC = 1; } break; } @@ -364,9 +360,9 @@ THUMB_FUNC u32 FUN_0202E6F0() THUMB_FUNC BOOL FUN_0202E784() { - if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkDAA == 0) + if (UNK_021C59F0 != NULL && UNK_021C59F0->unkDAA == 0) { - UNK_021C59E8.unk8->unkDAA = 1; + UNK_021C59F0->unkDAA = 1; FUN_0202D100(); return TRUE; } @@ -376,26 +372,26 @@ THUMB_FUNC BOOL FUN_0202E784() THUMB_FUNC void FUN_0202E7B0(u32 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { if (param0 != 0) { - UNK_021C59E8.unk8->unkDAA = 2; + UNK_021C59F0->unkDAA = 2; return; } - UNK_021C59E8.unk8->unkDAA = 0; + UNK_021C59F0->unkDAA = 0; FUN_0202E500(); } } THUMB_FUNC void FUN_0202E7D8() { - FreeToHeap(UNK_021C59E8.unk8->unkCBC); - FreeToHeap(UNK_021C59E8.unk8->unkCA4); - FreeToHeap(UNK_021C59E8.unk8); + FreeToHeap(UNK_021C59F0->unkCBC); + FreeToHeap(UNK_021C59F0->unkCA4); + FreeToHeap(UNK_021C59F0); - UNK_021C59E8.unk8 = NULL; + UNK_021C59F0 = NULL; } THUMB_FUNC u32 FUN_0202E810() @@ -408,7 +404,7 @@ THUMB_FUNC u32 FUN_0202E810() u32 count = 0; for (int i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] != 0) + if (UNK_021C59F0->unkC84[i] != 0) { count++; } @@ -423,7 +419,7 @@ THUMB_FUNC s32 FUN_0202E844(u32 param0) u32 count = 0; for (i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { continue; } @@ -442,25 +438,25 @@ THUMB_FUNC s32 FUN_0202E844(u32 param0) THUMB_FUNC u8 FUN_0202E878() { - return UNK_021C59E8.unk8->unkCB4; + return UNK_021C59F0->unkCB4; } THUMB_FUNC void FUN_0202E88C() { - UNK_021C59E8.unk8->unkCB4 = 0; + UNK_021C59F0->unkCB4 = 0; } THUMB_FUNC s32 FUN_0202E8A0(s32 param0) { - if (UNK_021C59E8.unk8->unkC84[param0] != 0) + if (UNK_021C59F0->unkC84[param0] != 0) { - if (UNK_021C59E8.unk8->unk054[param0].unk50.unk06 == 0) + if (UNK_021C59F0->unk054[param0].unk50.unk06 == 0) { return 1; } else { - return UNK_021C59E8.unk8->unk054[param0].unk50.unk06; + return UNK_021C59F0->unk054[param0].unk50.unk06; } } @@ -490,7 +486,7 @@ THUMB_FUNC s32 FUN_0202E8F4() for (int i = 0xf; i >= 0; i--) { - if (UNK_021C59E8.unk8->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59E8.unk8->unk054[i].unk04)) + if (UNK_021C59F0->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59F0->unk054[i].unk04)) { s32 ret2 = FUN_0202E8A0(i); if (ret2 > 1 && ret2 < 8) @@ -512,7 +508,7 @@ THUMB_FUNC s32 FUN_0202E950() for (int i = 0xf; i >= 0; i--) { - if (UNK_021C59E8.unk8->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59E8.unk8->unk054[i].unk04)) + if (UNK_021C59F0->unkC84[i] != 0 && FUN_0202EFE4(UNK_021C59F0->unk054[i].unk04)) { return i; @@ -534,7 +530,7 @@ THUMB_FUNC void FUN_0202E9AC(u32 param0, struct PlayerData *player_data) u32 count = 0; for (i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { continue; } @@ -561,14 +557,14 @@ THUMB_FUNC u32 FUN_0202E9E8(u32 param0) if (FUN_0202CBD4() == 1) { s32 ret = FUN_02033534(); - UNK_021C59E8.unk8->unkDA8 = (u8)UNK_021C59E8.unk8->unk054[param0].unk36; + UNK_021C59F0->unkDA8 = (u8)UNK_021C59F0->unk054[param0].unk36; if (FUN_0202D8B0(ret) != 0) { - FUN_0202C4D8(1, UNK_021C59E8.unk8->unk054[param0].unk04, 0); + FUN_0202C4D8(1, UNK_021C59F0->unk054[param0].unk04, 0); } else { - FUN_0202D034(1, &UNK_021C59E8.unk8->unk054[param0]); + FUN_0202D034(1, &UNK_021C59F0->unk054[param0]); } return 1; @@ -581,20 +577,20 @@ THUMB_FUNC void FUN_0202EA54() { for (int i = 0; i < 0x10; i++) { - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { continue; } - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { continue; } - UNK_021C59E8.unk8->unkC84[i]--; + UNK_021C59F0->unkC84[i]--; - if (UNK_021C59E8.unk8->unkC84[i] == 0) + if (UNK_021C59F0->unkC84[i] == 0) { - UNK_021C59E8.unk8->unkCB4 = 1; + UNK_021C59F0->unkCB4 = 1; } } } @@ -606,48 +602,48 @@ THUMB_FUNC void FUN_0202EA9C() if (res != 0xf) { - struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59F0->unkCC4; GF_ASSERT((s32)FUN_02023AC4() <= 0x20); GF_ASSERT(PlayerProfile_sizeof() == 0x20); MI_CpuCopy8(player_data, &res->unk08.unk08, PlayerProfile_sizeof()); - MI_CpuCopy8(UNK_021C59E8.unk8->unkCBC, res->unk08.unk28, FUN_02023AC4()); + MI_CpuCopy8(UNK_021C59F0->unkCBC, res->unk08.unk28, FUN_02023AC4()); res->unk00 = PlayerProfile_GetTrainerID(player_data); res->unk04 = (u8)FUN_02033534(); res->unk05 = FUN_0203354C(); - MI_CpuCopy8(&UNK_021C59E8.unk8->unkCA8, &res->unk08.unk00, sizeof(struct MailMessage)); + MI_CpuCopy8(&UNK_021C59F0->unkCA8, &res->unk08.unk00, sizeof(struct MailMessage)); res->unk08.unk4C = (u8)FUN_0202D358(); } else { - struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *res = &UNK_021C59F0->unkCC4; res->unk00 = PlayerProfile_GetTrainerID(player_data); res->unk04 = (u8)FUN_02033534(); res->unk05 = FUN_0203354C(); - MI_CpuCopy8(&UNK_021C59E8.unk8->unk000, &res->unk08, sizeof(struct UnkStruct_0202E29C_sub3)); + MI_CpuCopy8(&UNK_021C59F0->unk000, &res->unk08, sizeof(struct UnkStruct_0202E29C_sub3)); } - DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); - FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + DC_FlushRange(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + FUN_0202CB7C(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); } THUMB_FUNC void FUN_0202EB7C() { - struct UnkStruct_0202E29C_sub2 *r4 = &UNK_021C59E8.unk8->unkCC4; + struct UnkStruct_0202E29C_sub2 *r4 = &UNK_021C59F0->unkCC4; if (r4->unk06 != FUN_0202EDB8()) { r4->unk06 = (u8)FUN_0202EDB8(); - DC_FlushRange(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); - FUN_0202CB7C(&UNK_021C59E8.unk8->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + DC_FlushRange(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); + FUN_0202CB7C(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2)); - FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, + FUN_0202D240(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2), - UNK_021C59E8.unk8->unkCC0, - UNK_021C59E8.unk0); + UNK_021C59F0->unkCC0, + UNK_021C59E8); } } @@ -657,20 +653,20 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) FUN_0202DF54(); FUN_0202EB7C(); - if (FUN_0202D19C() == 0 && FUN_0202EE24() == 0 && UNK_021C59E8.unk8->unkDAD_2) + if (FUN_0202D19C() == 0 && FUN_0202EE24() == 0 && UNK_021C59F0->unkDAD_2) { - UNK_021C59E8.unk8->unkDAD_0 = 1; + UNK_021C59F0->unkDAD_0 = 1; } - if (UNK_021C59E8.unk8->unkDA6 == 0xFFFF) + if (UNK_021C59F0->unkDA6 == 0xFFFF) { - UNK_021C59E8.unk8->unkDA6 = param0; + UNK_021C59F0->unkDA6 = param0; } - if (UNK_021C59E8.unk8->unkDAD_1 && - UNK_021C59E8.unk8->unkDA6 > param0) + if (UNK_021C59F0->unkDAD_1 && + UNK_021C59F0->unkDA6 > param0) { - UNK_021C59E8.unk8->unkDAD_0 = 1; + UNK_021C59F0->unkDAD_0 = 1; } if (FUN_0202CBE8() == 25) @@ -681,24 +677,24 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) switch (r5) { case 0: - if (UNK_021C59E8.unk8->unkDAA == 1) + if (UNK_021C59F0->unkDAA == 1) { FUN_0202E7D8(); return; } - else if (UNK_021C59E8.unk8->unkDAA == 2) + else if (UNK_021C59F0->unkDAA == 2) { - UNK_021C59E8.unk8->unkDAA = 3; + UNK_021C59F0->unkDAA = 3; } break; case 1: - if (UNK_021C59E8.unk8->unkDAA == 1 && FUN_0202D178() != 0) + if (UNK_021C59F0->unkDAA == 1 && FUN_0202D178() != 0) { return; } - if (UNK_021C59E8.unk8->unkDAA == 2 && FUN_0202D178() != 0) + if (UNK_021C59F0->unkDAA == 2 && FUN_0202D178() != 0) { return; } @@ -708,41 +704,41 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) case 8: case 9: - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - UNK_021C59E8.unk8->unkDAD_0 = 1; + UNK_021C59F0->unkDAD_0 = 1; return; } break; case 7: u16 r0 = FUN_0202CDA4(); - if (UNK_021C59E8.unk8->unkDA9 == 0) + if (UNK_021C59F0->unkDA9 == 0) { - UNK_021C59E8.unk8->unkDA4 = r0; - UNK_021C59E8.unk8->unkDA9 = 5; + UNK_021C59F0->unkDA4 = r0; + UNK_021C59F0->unkDA9 = 5; } else { - UNK_021C59E8.unk8->unkDA9--; + UNK_021C59F0->unkDA9--; } - u16 r5 = UNK_021C59E8.unk8->unkDA4; - if (UNK_021C59E8.unk8->unkDAD_3) + u16 r5 = UNK_021C59F0->unkDA4; + if (UNK_021C59F0->unkDAD_3) { - UNK_021C59E8.unk0++; + UNK_021C59E8++; } FUN_0202EA9C(); FUN_0202CF84(0, - UNK_021C59E8.unk0, + UNK_021C59E8, r5, FUN_0202D858((u16)FUN_02033534()), FUN_0202EEE8((u16)FUN_02033534()), - UNK_021C59E8.unk8->unkDAD_5); + UNK_021C59F0->unkDAD_5); - UNK_021C59E8.unk8->unkDA8 = (u8)r5; + UNK_021C59F0->unkDA8 = (u8)r5; break; } @@ -750,7 +746,7 @@ THUMB_FUNC void FUN_0202EBD0(u16 param0) THUMB_FUNC void FUN_0202ED70(u16 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { FUN_0202EBD0(param0); } @@ -758,7 +754,7 @@ THUMB_FUNC void FUN_0202ED70(u16 param0) THUMB_FUNC u32 FUN_0202ED84(u16 param0) { - if (UNK_021C59E8.unk8 == NULL) + if (UNK_021C59F0 == NULL) { return 0; } @@ -792,9 +788,9 @@ THUMB_FUNC u32 FUN_0202EDB8() THUMB_FUNC BOOL FUN_0202EDD8() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - if (UNK_021C59E8.unk8->unkDAA == 3) + if (UNK_021C59F0->unkDAA == 3) { return TRUE; } @@ -805,7 +801,7 @@ THUMB_FUNC BOOL FUN_0202EDD8() THUMB_FUNC BOOL FUN_0202EDF8() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { return TRUE; } @@ -815,7 +811,7 @@ THUMB_FUNC BOOL FUN_0202EDF8() THUMB_FUNC u32 FUN_0202EE0C() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { return FUN_0202D1C8(); } @@ -825,7 +821,7 @@ THUMB_FUNC u32 FUN_0202EE0C() THUMB_FUNC u32 FUN_0202EE24() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { return FUN_0202CB8C() & 0xFFFE; } @@ -845,7 +841,7 @@ THUMB_FUNC BOOL FUN_0202EE44() THUMB_FUNC BOOL FUN_0202EE60() { - if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkDAD_0) + if (UNK_021C59F0 != NULL && UNK_021C59F0->unkDAD_0) { return TRUE; } @@ -855,19 +851,19 @@ THUMB_FUNC BOOL FUN_0202EE60() THUMB_FUNC void FUN_0202EE84(u32 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - UNK_021C59E8.unk8->unkDAD_2 = (u8)param0; + UNK_021C59F0->unkDAD_2 = (u8)param0; } } THUMB_FUNC void FUN_0202EEB0(u32 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - UNK_021C59E8.unk8->unkDAD_1 = (u8)param0; + UNK_021C59F0->unkDAD_1 = (u8)param0; - UNK_021C59E8.unk8->unkDA6 = 0xFFFF; + UNK_021C59F0->unkDA6 = 0xFFFF; } } @@ -891,11 +887,11 @@ THUMB_FUNC u32 FUN_0202EEE8(u16 param0) THUMB_FUNC struct UnkStruct_0202E29C_sub *FUN_0202EF18(u32 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - if (UNK_021C59E8.unk8->unkC84[param0] != 0) + if (UNK_021C59F0->unkC84[param0] != 0) { - return &UNK_021C59E8.unk8->unk054[param0]; + return &UNK_021C59F0->unk054[param0]; } } @@ -904,11 +900,11 @@ THUMB_FUNC struct UnkStruct_0202E29C_sub *FUN_0202EF18(u32 param0) THUMB_FUNC struct UnkStruct_0202E29C_sub4 *FUN_0202EF44(s32 param0) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - if (UNK_021C59E8.unk8->unkC84[param0] != 0) + if (UNK_021C59F0->unkC84[param0] != 0) { - return &UNK_021C59E8.unk8->unk054[param0].unk50; + return &UNK_021C59F0->unk054[param0].unk50; } } @@ -917,28 +913,28 @@ THUMB_FUNC struct UnkStruct_0202E29C_sub4 *FUN_0202EF44(s32 param0) THUMB_FUNC struct PlayerData *FUN_0202EF70() { - return UNK_021C59E8.unk8->unkCB8; + return UNK_021C59F0->unkCB8; } THUMB_FUNC struct PlayerData *FUN_0202EF84(int param0) { - if (UNK_021C59E8.unk8->unkC84[param0] == 0) + if (UNK_021C59F0->unkC84[param0] == 0) { return NULL; } - struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59F0->unk054[param0].unk50; return &r0->unk10; } THUMB_FUNC void FUN_0202EFAC(u8 *param0, s32 param1) { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { GF_ASSERT(param1 < 8); - MI_CpuCopy8(param0, UNK_021C59E8.unk8->unkC54[param1], 6); + MI_CpuCopy8(param0, UNK_021C59F0->unkC54[param1], 6); } } @@ -948,28 +944,28 @@ THUMB_FUNC BOOL FUN_0202EFE4(u8 *param0) for (int i = 0; i < 8; i++) { - if (UNK_021C59E8.unk8->unkC54[i][0] != param0[0]) + if (UNK_021C59F0->unkC54[i][0] != param0[0]) { continue; } - if (UNK_021C59E8.unk8->unkC54[i][1] != param0[1]) + if (UNK_021C59F0->unkC54[i][1] != param0[1]) { continue; } - if (UNK_021C59E8.unk8->unkC54[i][2] != param0[2]) + if (UNK_021C59F0->unkC54[i][2] != param0[2]) { continue; } - if (UNK_021C59E8.unk8->unkC54[i][3] != param0[3]) + if (UNK_021C59F0->unkC54[i][3] != param0[3]) { continue; } - if (UNK_021C59E8.unk8->unkC54[i][4] != param0[4]) + if (UNK_021C59F0->unkC54[i][4] != param0[4]) { continue; } - if (UNK_021C59E8.unk8->unkC54[i][5] != param0[5]) + if (UNK_021C59F0->unkC54[i][5] != param0[5]) { continue; } @@ -1031,9 +1027,9 @@ _0202F026: THUMB_FUNC u32 FUN_0202F03C() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - return UNK_021C59E8.unk8->unkDAD_4; + return UNK_021C59F0->unkDAD_4; } return 0; @@ -1041,29 +1037,29 @@ THUMB_FUNC u32 FUN_0202F03C() THUMB_FUNC void FUN_0202F05C() { - if (UNK_021C59E8.unk8 != NULL) + if (UNK_021C59F0 != NULL) { - UNK_021C59E8.unk8->unkDAD_4 = 1; + UNK_021C59F0->unkDAD_4 = 1; } } THUMB_FUNC void FUN_0202F078(struct MailMessage *mail_message) { - MI_CpuCopy8(mail_message, &UNK_021C59E8.unk8->unkCA8, sizeof(struct MailMessage)); + MI_CpuCopy8(mail_message, &UNK_021C59F0->unkCA8, sizeof(struct MailMessage)); } THUMB_FUNC void FUN_0202F094(void *param0) { - MI_CpuCopy8(param0, UNK_021C59E8.unk8->unkCBC, FUN_02023AC4()); + MI_CpuCopy8(param0, UNK_021C59F0->unkCBC, FUN_02023AC4()); } THUMB_FUNC void FUN_0202F0B8() { FUN_0202EA9C(); - FUN_0202D240(&UNK_021C59E8.unk8->unkCC4, + FUN_0202D240(&UNK_021C59F0->unkCC4, sizeof(struct UnkStruct_0202E29C_sub2), - UNK_021C59E8.unk8->unkCC0, - UNK_021C59E8.unk0); + UNK_021C59F0->unkCC0, + UNK_021C59E8); } THUMB_FUNC u32 FUN_0202F0DC(u8 param0) @@ -1089,15 +1085,15 @@ THUMB_FUNC BOOL FUN_0202F104() THUMB_FUNC void FUN_0202F10C(struct UnkStruct_0202E29C_sub3 *param0) { - MI_CpuCopy8(param0, &UNK_021C59E8.unk8->unk000, sizeof(struct UnkStruct_0202E29C_sub3)); + MI_CpuCopy8(param0, &UNK_021C59F0->unk000, sizeof(struct UnkStruct_0202E29C_sub3)); FUN_0202F0B8(); } THUMB_FUNC u8 *FUN_0202F124(u32 param0) { - if (UNK_021C59E8.unk8 != NULL && UNK_021C59E8.unk8->unkC84[param0] != 0) + if (UNK_021C59F0 != NULL && UNK_021C59F0->unkC84[param0] != 0) { - struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59E8.unk8->unk054[param0].unk50; + struct UnkStruct_0202E29C_sub4 *r0 = &UNK_021C59F0->unk054[param0].unk50; return r0->unk08; } From 71c737c85b671425f887dd1670e200f95bfeb0cf Mon Sep 17 00:00:00 2001 From: tgsm Date: Sat, 15 May 2021 23:23:13 -0400 Subject: [PATCH 052/134] Decompile scrcmd_24 --- arm9/asm/scrcmd_24.s | 316 ---------------------------------------- arm9/asm/unk_02038C78.s | 20 +-- arm9/global.inc | 20 +-- arm9/src/scrcmd_24.c | 276 +++++++++++++++++++++++++++++++++++ include/scrcmd.h | 13 ++ include/unk_020377F0.h | 30 ++++ include/unk_02088DD8.h | 19 +++ 7 files changed, 358 insertions(+), 336 deletions(-) delete mode 100644 arm9/asm/scrcmd_24.s create mode 100644 arm9/src/scrcmd_24.c create mode 100644 include/unk_020377F0.h create mode 100644 include/unk_02088DD8.h diff --git a/arm9/asm/scrcmd_24.s b/arm9/asm/scrcmd_24.s deleted file mode 100644 index b9569382c..000000000 --- a/arm9/asm/scrcmd_24.s +++ /dev/null @@ -1,316 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02045D88 -FUN_02045D88: ; 0x02045D88 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x13 - bl FUN_02039438 - add r1, r5, #0x0 - add r1, #0x80 - lsl r2, r4, #0x18 - add r6, r0, #0x0 - ldr r1, [r1, #0x0] - mov r0, #0x20 - lsr r2, r2, #0x18 - bl FUN_02037CF0 - str r0, [r6, #0x0] - ldr r1, _02045DCC ; =FUN_0203BC04 - add r0, r5, #0x0 - bl SetupNativeScript - mov r0, #0x1 - pop {r4-r6, pc} - nop -_02045DCC: .word FUN_0203BC04 - - thumb_func_start FUN_02045DD0 -FUN_02045DD0: ; 0x02045DD0 - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02045DFC - bl ErrorHandling -_02045DFC: - ldr r0, [r4, #0x0] - bl FUN_02037D5C - strh r0, [r5, #0x0] - ldrh r0, [r5, #0x0] - cmp r0, #0x4 - bne _02045E0E - mov r0, #0xff - strh r0, [r5, #0x0] -_02045E0E: - ldr r0, [r4, #0x0] - bl FreeToHeap - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045E1C -FUN_02045E1C: ; 0x02045E1C - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02045E20 -FUN_02045E20: ; 0x02045E20 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r5, #0x80 - add r6, r0, #0x0 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - mov r1, #0x20 - bl FUN_02088DF8 - add r5, r0, #0x0 - bl FUN_02088EF8 - strh r0, [r4, #0x0] - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02045E74 -FUN_02045E74: ; 0x02045E74 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, #0x80 - add r7, r1, #0x0 - ldr r0, [r0, #0x0] - mov r1, #0x13 - str r2, [sp, #0x0] - add r6, r3, #0x0 - bl FUN_02039438 - str r0, [sp, #0x4] - mov r0, #0x20 - bl FUN_02088DD8 - add r4, r0, #0x0 - ldr r0, [sp, #0x4] - str r4, [r0, #0x0] - ldr r0, [sp, #0x0] - str r0, [r4, #0x0] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl ScriptEnvironment_GetSav2Ptr - bl Sav2_PlayerData_GetProfileAddr - str r0, [r4, #0x4] - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetOptionsAddr - str r0, [r4, #0x8] - str r6, [r4, #0xc] - add r0, r5, #0x0 - strb r7, [r4, #0x15] - add r0, #0x80 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_02038864 - ldr r1, _02045EDC ; =FUN_0203BC04 - add r0, r5, #0x0 - bl SetupNativeScript - add r0, r6, #0x0 - bl FreeToHeap - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02045EDC: .word FUN_0203BC04 - - thumb_func_start FUN_02045EE0 -FUN_02045EE0: ; 0x02045EE0 - mov r0, #0x1 - bx lr - - thumb_func_start FUN_02045EE4 -FUN_02045EE4: ; 0x02045EE4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r4, #0x0 - bl GetPartyMonByIndex - add r4, r0, #0x0 - mov r1, #0x20 - bl FUN_02088DF8 - add r3, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x1 - add r2, r4, #0x0 - bl FUN_02045E74 - mov r0, #0x1 - pop {r3-r5, pc} - - thumb_func_start FUN_02045F24 -FUN_02045F24: ; 0x02045F24 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl SavArray_PlayerParty_get - add r1, r6, #0x0 - bl GetPartyMonByIndex - add r6, r0, #0x0 - mov r0, #0x20 - mov r1, #0x4 - bl AllocFromHeap - add r3, r0, #0x0 - ldr r0, _02045F80 ; =0x0000FFFF - strh r4, [r3, #0x0] - strh r0, [r3, #0x2] - add r0, r5, #0x0 - mov r1, #0x0 - add r2, r6, #0x0 - bl FUN_02045E74 - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 -_02045F80: .word 0x0000FFFF - - thumb_func_start FUN_02045F84 -FUN_02045F84: ; 0x02045F84 - mov r0, #0x0 - bx lr - - thumb_func_start FUN_02045F88 -FUN_02045F88: ; 0x02045F88 - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - ldr r4, [r0, #0x0] - cmp r4, #0x0 - bne _02045FB2 - bl ErrorHandling -_02045FB2: - ldrb r0, [r4, #0x16] - cmp r0, #0x0 - bne _02045FBC - mov r0, #0x0 - b _02045FBE -_02045FBC: - mov r0, #0xff -_02045FBE: - strh r0, [r5, #0x0] - add r0, r4, #0x0 - bl FUN_02088DF0 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02045FCC -FUN_02045FCC: ; 0x02045FCC - push {r3-r5, lr} - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl GetVarPointer - add r4, #0x80 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - mov r1, #0x13 - bl FUN_02039438 - ldr r4, [r0, #0x0] - cmp r4, #0x0 - bne _02045FF6 - bl ErrorHandling -_02045FF6: - ldrb r0, [r4, #0x16] - cmp r0, #0x0 - bne _02046000 - mov r0, #0x0 - b _02046002 -_02046000: - mov r0, #0xff -_02046002: - strh r0, [r5, #0x0] - add r0, r4, #0x0 - bl FUN_02088DF0 - mov r0, #0x0 - pop {r3-r5, pc} - .balign 4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 38588cd5b..09eb287ab 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -603,8 +603,8 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E078 .word FUN_0203E0CC .word FUN_0203E120 - .word FUN_02045D88 - .word FUN_02045DD0 + .word ScrCmd_Unk01C6 + .word ScrCmd_Unk01C7 .word FUN_02044D8C .word FUN_02044E34 .word FUN_02044E78 @@ -691,14 +691,14 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203E848 .word FUN_0203E858 .word ScrCmd_Unk021D - .word FUN_02045E1C - .word FUN_02045E20 - .word FUN_02045EE0 - .word FUN_02045EE4 - .word FUN_02045F84 - .word FUN_02045F88 - .word FUN_02045F24 - .word FUN_02045FCC + .word ScrCmd_Unk021E + .word ScrCmd_Unk021F + .word ScrCmd_Unk0220 + .word ScrCmd_Unk0221 + .word ScrCmd_Unk0222 + .word ScrCmd_Unk0223 + .word ScrCmd_Unk0224 + .word ScrCmd_Unk0225 .word FUN_0203E870 .word FUN_0203E894 .word FUN_0203E8C4 diff --git a/arm9/global.inc b/arm9/global.inc index 38ec47f44..bf5471c11 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3402,16 +3402,16 @@ .extern ScrCmd_Unk0090 .extern ScrCmd_Unk0091 .extern ScrCmd_Unk0092 -.extern FUN_02045D88 -.extern FUN_02045DD0 -.extern FUN_02045E1C -.extern FUN_02045E20 -.extern FUN_02045EE0 -.extern FUN_02045EE4 -.extern FUN_02045F24 -.extern FUN_02045F84 -.extern FUN_02045F88 -.extern FUN_02045FCC +.extern ScrCmd_Unk01C6 +.extern ScrCmd_Unk01C7 +.extern ScrCmd_Unk021E +.extern ScrCmd_Unk021F +.extern ScrCmd_Unk0220 +.extern ScrCmd_Unk0221 +.extern ScrCmd_Unk0224 +.extern ScrCmd_Unk0222 +.extern ScrCmd_Unk0223 +.extern ScrCmd_Unk0225 .extern ScrCmd_Unk023F .extern ScrCmd_Unk0240 .extern ScrCmd_Unk0241 diff --git a/arm9/src/scrcmd_24.c b/arm9/src/scrcmd_24.c new file mode 100644 index 000000000..d3f955d0f --- /dev/null +++ b/arm9/src/scrcmd_24.c @@ -0,0 +1,276 @@ +#include "scrcmd.h" +#include "heap.h" +#include "party.h" +#include "unk_020377F0.h" +#include "unk_02088DD8.h" + +extern void* FUN_02039438(struct UnkSavStruct80*, int idx); + +extern struct UnkStruct_02037CF0* FUN_02037CF0(u32 heap_id, struct UnkSavStruct80*, u8); +extern u8 FUN_02037D5C(struct UnkStruct_02037CF0*); +extern void FUN_02038864(struct UnkSavStruct80*, struct UnkStruct_02088DD8*); +extern BOOL FUN_0203BC04(struct ScriptContext* ctx); +extern struct UnkStruct_02088DD8* FUN_02088DD8(u32 heap_id); +extern void FUN_02088DF0(struct UnkStruct_02037CF0*); +extern void* FUN_02088DF8(struct Pokemon* pokemon, u32 heap_id); +extern BOOL FUN_02088EF8(void*); + +THUMB_FUNC BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct UnkStruct_02037CF0** unk_ret_ptr = FUN_02039438(ctx->unk80, 19); + *unk_ret_ptr = FUN_02037CF0(32, ctx->unk80, (u8)unk); + + SetupNativeScript(ctx, FUN_0203BC04); + return TRUE; +} + +#ifdef NONMATCHING +THUMB_FUNC BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct UnkStruct_02037CF0** unk_ptr = FUN_02039438(ctx->unk80, 19); + GF_ASSERT(*unk_ptr != NULL); + + *ret_ptr = FUN_02037D5C(*unk_ptr); + if (*ret_ptr == 4) + { + *ret_ptr = 0xFF; + } + + FreeToHeap(*unk_ptr); + *unk_ptr = NULL; + return FALSE; +} +#else +THUMB_FUNC asm BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) +{ + push {r3-r5, lr} + add r4, r0, #0x0 + bl ScriptReadHalfword + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl GetVarPointer + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl FUN_02039438 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _02045DFC + bl ErrorHandling +_02045DFC: + ldr r0, [r4, #0x0] + bl FUN_02037D5C + strh r0, [r5, #0x0] + ldrh r0, [r5, #0x0] + cmp r0, #0x4 + bne _02045E0E + mov r0, #0xff + strh r0, [r5, #0x0] +_02045E0E: + ldr r0, [r4, #0x0] + bl FreeToHeap + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} +} +#endif + +THUMB_FUNC BOOL ScrCmd_Unk021E(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk021F(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2); + struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); + void* unk_ptr = FUN_02088DF8(pokemon, 32); + + *ret_ptr = (u16)FUN_02088EF8(unk_ptr); + FreeToHeap(unk_ptr); + + return FALSE; +} + +THUMB_FUNC void FUN_02045E74(struct ScriptContext* ctx, u8 a1, struct Pokemon* pokemon, void* a3) +{ + struct UnkStruct_02088DD8** unk = FUN_02039438(ctx->unk80, 19); + struct UnkStruct_02088DD8* unk2 = FUN_02088DD8(32); + *unk = unk2; + + unk2->pokemon = pokemon; + + struct SaveBlock2* sav2 = ScriptEnvironment_GetSav2Ptr(ctx->unk80); + unk2->player = Sav2_PlayerData_GetProfileAddr(sav2); + + unk2->options = Sav2_PlayerData_GetOptionsAddr(ctx->unk80->saveBlock2); + unk2->unkC = a3; + unk2->unk15 = a1; + FUN_02038864(ctx->unk80, unk2); + + SetupNativeScript(ctx, FUN_0203BC04); + FreeToHeap(a3); +} + +THUMB_FUNC BOOL ScrCmd_Unk0220(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0221(struct ScriptContext* ctx) +{ + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2); + struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); + void* unk_ptr = FUN_02088DF8(pokemon, 32); + + FUN_02045E74(ctx, 1, pokemon, unk_ptr); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0224(struct ScriptContext* ctx) +{ + u16 mon_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + struct PlayerParty* party = SavArray_PlayerParty_get(ctx->unk80->saveBlock2); + struct Pokemon* pokemon = GetPartyMonByIndex(party, mon_idx); + + u16* unk_array = AllocFromHeap(32, 2 * sizeof(u16)); + unk_array[0] = unk2; + unk_array[1] = 0xFFFF; + + FUN_02045E74(ctx, 0, pokemon, unk_array); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0222(struct ScriptContext* ctx) +{ +#pragma unused(ctx) + return FALSE; +} + +#ifdef NONMATCHING +THUMB_FUNC BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19); + struct UnkStruct_02037CF0* unk_sub = *unk; + + GF_ASSERT(unk_sub != NULL); + + if (unk_sub->unk16 == 0) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 0xFF; + } + + FUN_02088DF0(unk_sub); + return FALSE; +} +#else +THUMB_FUNC asm BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) +{ + push {r3-r5, lr} + add r4, r0, #0x0 + bl ScriptReadHalfword + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl GetVarPointer + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl FUN_02039438 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + bne _02045FB2 + bl ErrorHandling +_02045FB2: + ldrb r0, [r4, #0x16] + cmp r0, #0x0 + bne _02045FBC + mov r0, #0x0 + b _02045FBE +_02045FBC: + mov r0, #0xff +_02045FBE: + strh r0, [r5, #0x0] + add r0, r4, #0x0 + bl FUN_02088DF0 + mov r0, #0x0 + pop {r3-r5, pc} +} +#endif + +#ifdef NONMATCHING +THUMB_FUNC BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct UnkStruct_02037CF0** unk = FUN_02039438(ctx->unk80, 19); + struct UnkStruct_02037CF0* unk_sub = *unk; + + GF_ASSERT(unk_sub != NULL); + + if (unk_sub->unk16 == 0) + { + *ret_ptr = 0; + } + else + { + *ret_ptr = 0xFF; + } + + FUN_02088DF0(unk_sub); + return FALSE; +} +#else +THUMB_FUNC asm BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) +{ + push {r3-r5, lr} + add r4, r0, #0x0 + bl ScriptReadHalfword + add r1, r0, #0x0 + add r0, r4, #0x0 + add r0, #0x80 + ldr r0, [r0, #0x0] + bl GetVarPointer + add r4, #0x80 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + mov r1, #0x13 + bl FUN_02039438 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + bne _02045FB2 + bl ErrorHandling +_02045FB2: + ldrb r0, [r4, #0x16] + cmp r0, #0x0 + bne _02045FBC + mov r0, #0x0 + b _02045FBE +_02045FBC: + mov r0, #0xff +_02045FBE: + strh r0, [r5, #0x0] + add r0, r4, #0x0 + bl FUN_02088DF0 + mov r0, #0x0 + pop {r3-r5, pc} +} +#endif diff --git a/include/scrcmd.h b/include/scrcmd.h index c246279df..edc4c00d9 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -301,6 +301,19 @@ BOOL ScrCmd_Unk0090(struct ScriptContext* ctx); BOOL ScrCmd_Unk0091(struct ScriptContext* ctx); BOOL ScrCmd_Unk0092(struct ScriptContext* ctx); +//scrcmd_24.c +BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx); +BOOL ScrCmd_Unk021E(struct ScriptContext* ctx); +BOOL ScrCmd_Unk021F(struct ScriptContext* ctx); +void FUN_02045E74(struct ScriptContext* ctx, u8 a1, struct Pokemon* pokemon, void* a3); +BOOL ScrCmd_Unk0220(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0221(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0224(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0222(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0223(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0225(struct ScriptContext* ctx); + //scrcmd_25.c BOOL ScrCmd_Unk023F(struct ScriptContext* ctx); BOOL ScrCmd_Unk0240(struct ScriptContext* ctx); diff --git a/include/unk_020377F0.h b/include/unk_020377F0.h new file mode 100644 index 000000000..912768893 --- /dev/null +++ b/include/unk_020377F0.h @@ -0,0 +1,30 @@ +#ifndef POKEDIAMOND_UNK_020377F0_H +#define POKEDIAMOND_UNK_020377F0_H + +struct Options; +struct PlayerParty; + +// This struct gets created from a bunch of places, not just 0x02037CF0. This was +// just the first place I (tgsm) found it being created. +struct UnkStruct_02037CF0 +{ + struct PlayerParty* party; + struct Options* options; + u16* name_buf; + u32 trainer_id; + u8 gender; + u8 unk11; + u8 unk12; + u8 party_count; + u8 unk14; + u8 unk15; + u8 unk16; + u8 padding; + u16 unk18; + u8 padding2[0x2]; + BOOL has_national_dex; + u8 padding3[0xC]; + BOOL unk2C; +}; + +#endif diff --git a/include/unk_02088DD8.h b/include/unk_02088DD8.h new file mode 100644 index 000000000..318a98fb4 --- /dev/null +++ b/include/unk_02088DD8.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_UNK_02088DD8_H +#define POKEDIAMOND_UNK_02088DD8_H + +struct Options; +struct PlayerData; +struct Pokemon; + +struct UnkStruct_02088DD8 +{ + struct Pokemon* pokemon; + struct PlayerData* player; + struct Options* options; + void* unkC; + u8 padding[0x5]; + u8 unk15; + u8 padding2[0x2]; +}; + +#endif From 51c7eeb82fab151a9e0a87172c64ab5f6abbe9e0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 May 2021 20:27:53 -0400 Subject: [PATCH 053/134] Bring FUN_0202FEF4 closer to matching --- arm9/src/unk_0202E29C.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index ef3cecd58..938107f2d 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -941,35 +941,21 @@ THUMB_FUNC void FUN_0202EFAC(u8 *param0, s32 param1) #ifdef NONMATCHING THUMB_FUNC BOOL FUN_0202EFE4(u8 *param0) { - + u8 (*ptr)[6] = UNK_021C59F0->unkC54; for (int i = 0; i < 8; i++) { - if (UNK_021C59F0->unkC54[i][0] != param0[0]) - { + if (ptr[i][0] != param0[0]) continue; - } - - if (UNK_021C59F0->unkC54[i][1] != param0[1]) - { + if (ptr[i][1] != param0[1]) continue; - } - if (UNK_021C59F0->unkC54[i][2] != param0[2]) - { + if (ptr[i][2] != param0[2]) continue; - } - if (UNK_021C59F0->unkC54[i][3] != param0[3]) - { + if (ptr[i][3] != param0[3]) continue; - } - if (UNK_021C59F0->unkC54[i][4] != param0[4]) - { + if (ptr[i][4] != param0[4]) continue; - } - if (UNK_021C59F0->unkC54[i][5] != param0[5]) - { + if (ptr[i][5] != param0[5]) continue; - } - return TRUE; } From e0636bd748fa018ef03398a95a6ee1b66710e4ad Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 17 May 2021 20:53:40 -0400 Subject: [PATCH 054/134] [leak informed] Break apart gBacklightTop --- arm9/global.inc | 1 + arm9/modules/83/asm/module_83.s | 4 +- arm9/src/main.c | 69 +++++++++++++++++---------------- include/main.h | 18 ++++++++- 4 files changed, 55 insertions(+), 37 deletions(-) diff --git a/arm9/global.inc b/arm9/global.inc index 38ec47f44..4ed9aa742 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -7708,6 +7708,7 @@ .extern MTX_TransApply44 .extern NitroMain .extern gBacklightTop +.extern UNK_02016FA4 .extern OS_AllocFromArenaHi .extern OS_AllocFromArenaLo .extern OS_AllocFromHeap diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 7e36aa68d..8b006bca3 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -18576,7 +18576,7 @@ MOD83_02236804: ; 0x02236804 bl CTRDG_IsPulledOut cmp r0, #1 beq _02236822 - ldr r0, _02236B3C ; =gBacklightTop + 4 + ldr r0, _02236B3C ; =UNK_02016FA4 ldr r0, [r0] cmp r0, #0 beq _02236828 @@ -18966,7 +18966,7 @@ _02236B2E: str r0, [r5] b _02236D90 .align 2, 0 -_02236B3C: .word gBacklightTop + 4 +_02236B3C: .word UNK_02016FA4 _02236B40: .word 0x000004A8 _02236B44: .word 0x000004AC _02236B48: .word 0x0000E880 diff --git a/arm9/src/main.c b/arm9/src/main.c index 117535b23..dd806cf88 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -22,7 +22,9 @@ FS_EXTERN_OVERLAY(MODULE_63); #define SOFT_RESET_KEY (PAD_BUTTON_L | PAD_BUTTON_R | PAD_BUTTON_START | PAD_BUTTON_SELECT) -struct Unk2106FA0 gBacklightTop; +s32 UNK_02016FA4; +PMBackLightSwitch gBacklightTop; +struct UnkStruct_02016FA8 UNK_02016FA8;; extern void InitSystemForTheGame(void); extern void InitGraphicMemory(void); @@ -52,6 +54,7 @@ extern u8 SDK_STATIC_BSS_START[]; const int gGameLanguage = GAME_LANGUAGE; const int gGameVersion = GAME_VERSION; +__declspec(noreturn) THUMB_FUNC void NitroMain(void) { InitSystemForTheGame(); @@ -68,13 +71,13 @@ THUMB_FUNC void NitroMain(void) FUN_02002C50(0, 3); FUN_02002C50(1, 3); FUN_02002C50(3, 3); - gBacklightTop.unk18 = -1; - gBacklightTop.unk20 = SaveBlock2_new(); - InitSoundData(FUN_02029EF8(gBacklightTop.unk20), Sav2_PlayerData_GetOptionsAddr(gBacklightTop.unk20)); + UNK_02016FA8.unk10 = -1; + UNK_02016FA8.unk18 = SaveBlock2_new(); + InitSoundData(FUN_02029EF8(UNK_02016FA8.unk18), Sav2_PlayerData_GetOptionsAddr(UNK_02016FA8.unk18)); Init_Timer3(); if (FUN_020337E8(3) == 3) FUN_02034188(3, 0); - if (FUN_020227FC(gBacklightTop.unk20) == 0) + if (FUN_020227FC(UNK_02016FA8.unk18) == 0) { FUN_02089D90(0); } @@ -84,12 +87,12 @@ THUMB_FUNC void NitroMain(void) { case 0: // Title Demo - gBacklightTop.unk1C = 0; + UNK_02016FA8.unk14 = 0; RegisterMainOverlay(FS_OVERLAY_ID(MODULE_63), &MOD63_021DBE18); break; case 1: // Reset transition? - gBacklightTop.unk1C = 1; + UNK_02016FA8.unk14 = 1; RegisterMainOverlay(FS_OVERLAY_ID(MODULE_52), &MOD52_021D76C8); break; default: @@ -102,7 +105,7 @@ THUMB_FUNC void NitroMain(void) InitializeMainRNG(); FUN_0200A2AC(); FUN_02015E30(); - gBacklightTop.unk4 = 0; + UNK_02016FA4 = 0; for (;;) { FUN_02000EE8(); @@ -141,40 +144,40 @@ THUMB_FUNC void NitroMain(void) THUMB_FUNC void FUN_02000DF4(void) { - gBacklightTop.unk8 = (FSOverlayID)-1; - gBacklightTop.unkC = 0; - gBacklightTop.unk10 = (FSOverlayID)-1; // overlay invalid - gBacklightTop.unk14 = NULL; + UNK_02016FA8.unk0 = SDK_OVERLAY_INVALID_ID; + UNK_02016FA8.unk4 = NULL; + UNK_02016FA8.unk8 = SDK_OVERLAY_INVALID_ID; // overlay invalid + UNK_02016FA8.unkC = NULL; } THUMB_FUNC void Main_RunOverlayManager(void) { - if (!gBacklightTop.unkC) + if (UNK_02016FA8.unk4 == NULL) { - if (gBacklightTop.unk14 == NULL) + if (UNK_02016FA8.unkC == NULL) return; - if (gBacklightTop.unk10 != SDK_OVERLAY_INVALID_ID) - HandleLoadOverlay(gBacklightTop.unk10, 0); - gBacklightTop.unk8 = gBacklightTop.unk10; - gBacklightTop.unkC = OverlayManager_new(gBacklightTop.unk14, &gBacklightTop.unk18, 0); - gBacklightTop.unk10 = SDK_OVERLAY_INVALID_ID; - gBacklightTop.unk14 = NULL; + if (UNK_02016FA8.unk8 != SDK_OVERLAY_INVALID_ID) + HandleLoadOverlay(UNK_02016FA8.unk8, 0); + UNK_02016FA8.unk0 = UNK_02016FA8.unk8; + UNK_02016FA8.unk4 = OverlayManager_new(UNK_02016FA8.unkC, &UNK_02016FA8.unk10, 0); + UNK_02016FA8.unk8 = SDK_OVERLAY_INVALID_ID; + UNK_02016FA8.unkC = NULL; } - if (OverlayManager_Run(gBacklightTop.unkC)) + if (OverlayManager_Run(UNK_02016FA8.unk4)) { - OverlayManager_delete(gBacklightTop.unkC); - gBacklightTop.unkC = 0; - if (gBacklightTop.unk8 != SDK_OVERLAY_INVALID_ID) - UnloadOverlayByID(gBacklightTop.unk8); + OverlayManager_delete(UNK_02016FA8.unk4); + UNK_02016FA8.unk4 = NULL; + if (UNK_02016FA8.unk0 != SDK_OVERLAY_INVALID_ID) + UnloadOverlayByID(UNK_02016FA8.unk0); } } THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1) { - if (gBacklightTop.unk14 != NULL) + if (UNK_02016FA8.unkC != NULL) ErrorHandling(); - gBacklightTop.unk10 = id; - gBacklightTop.unk14 = arg1; + UNK_02016FA8.unk8 = id; + UNK_02016FA8.unkC = arg1; } THUMB_FUNC void FUN_02000E9C(void) @@ -215,7 +218,7 @@ THUMB_FUNC void FUN_02000EE8(void) extern void FUN_0200E3A0(PMLCDTarget, int); -// No Return +__declspec(noreturn) THUMB_FUNC void DoSoftReset(u32 parameter) { FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); @@ -289,10 +292,10 @@ THUMB_FUNC void HandleDSLidAction(void) FUN_0201CE04(); if (CTRDG_IsPulledOut() == TRUE) { - gBacklightTop.unk4 = 1; + UNK_02016FA4 = 1; } { - int r1 = gBacklightTop.unk4; + int r1 = UNK_02016FA4; while (1) { PMWakeUpTrigger trigger = PM_TRIGGER_COVER_OPEN | PM_TRIGGER_CARD; @@ -306,7 +309,7 @@ THUMB_FUNC void HandleDSLidAction(void) } else if (PAD_DetectFold()) { - r1 = gBacklightTop.unk4 = 1; + r1 = UNK_02016FA4 = 1; } else break; @@ -326,6 +329,6 @@ THUMB_FUNC void HandleDSLidAction(void) { PM_GetBackLight(&top, &bottom); if (top == PM_BACKLIGHT_OFF) - PM_SetBackLight(PM_LCD_ALL, gBacklightTop.unk0); + PM_SetBackLight(PM_LCD_ALL, gBacklightTop); } } diff --git a/include/main.h b/include/main.h index 2e424e09c..78e0fd764 100644 --- a/include/main.h +++ b/include/main.h @@ -104,8 +104,22 @@ struct Main //extern struct UnkStruct_021C4918 gMain + 0x60; -extern struct Unk2106FA0 gBacklightTop; -extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool... +extern PMBackLightSwitch gBacklightTop; +extern s32 UNK_02016FA4; + +struct UnkStruct_02016FA8 +{ + FSOverlayID unk0; + struct UnkStruct_02006234 *unk4; + FSOverlayID unk8; + const struct Unk21DBE18 * unkC; + s32 unk10; + s32 unk14; + struct SaveBlock2 * unk18; + +}; + +extern struct UnkStruct_02016FA8 UNK_02016FA8; void NitroMain(void); From a69fee786db2b7197c86b14278ef7f8e908e2f23 Mon Sep 17 00:00:00 2001 From: red031000 Date: Tue, 18 May 2021 18:07:32 +0100 Subject: [PATCH 055/134] literally one function --- arm9/asm/scrcmd_asm.s | 44 ----------------------------------------- arm9/asm/unk_02038C78.s | 2 +- arm9/global.inc | 2 +- arm9/src/scrcmd.c | 20 +++++++++++++++++++ include/scrcmd.h | 1 + 5 files changed, 23 insertions(+), 46 deletions(-) diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 3d6645c22..c1e91c9f3 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -14,50 +14,6 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start FUN_0203AFC4 -FUN_0203AFC4: ; 0x0203AFC4 - push {r4-r6, lr} - add r5, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r6, r0, #0x0 - add r0, r5, #0x0 - bl ScriptReadWord - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - add r1, r6, #0x0 - bl FUN_0203B120 - add r6, r0, #0x0 - bne _0203AFF6 - bl ErrorHandling -_0203AFF6: - ldr r1, [r5, #0x8] - add r0, r6, #0x0 - add r1, r1, r4 - bl FUN_0205AEA4 - add r4, r0, #0x0 - add r0, r5, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - mov r1, #0x4 - bl FUN_02039438 - ldrb r1, [r0, #0x0] - add r5, #0x80 - mov r2, #0x0 - add r1, r1, #0x1 - strb r1, [r0, #0x0] - ldr r0, [r5, #0x0] - add r1, r4, #0x0 - bl FUN_0203B174 - mov r0, #0x0 - pop {r4-r6, pc} - thumb_func_start FUN_0203B024 FUN_0203B024: ; 0x0203B024 push {r3-r7, lr} diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 38588cd5b..3369ec2e0 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -243,7 +243,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk005B .word ScrCmd_Unk005C .word ScrCmd_Unk005D - .word FUN_0203AFC4 + .word ScrCmd_Unk005E .word FUN_0203B148 .word FUN_0203B1F0 .word FUN_0203B3B0 diff --git a/arm9/global.inc b/arm9/global.inc index 38ec47f44..2a318a971 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -2783,7 +2783,7 @@ .extern ScrCmd_Unk0048 .extern ScrCmd_Unk02CF .extern ScrCmd_Unk02D0 -.extern FUN_0203AFC4 +.extern ScrCmd_Unk005E .extern FUN_0203B024 .extern FUN_0203B148 .extern FUN_0203B1F0 diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 4ad17e51a..fb88da545 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -55,6 +55,10 @@ extern void MOD05_021E26CC(u32 param0, u8 param1); extern void MOD05_021E2B80(u32 param0, u8 param1); extern void MOD05_021E2B9C(u32 param0, u8 param1); +extern u32 FUN_0203B120(struct UnkSavStruct80 *arg, u16 param1); +extern u32 FUN_0205AEA4(u32 param0, const u8 *ptr); +extern void FUN_0203B174(struct UnkSavStruct80 *arg, u32 param1, u32 param2); + extern u8 *UNK_020F34E0; static BOOL RunPauseTimer(struct ScriptContext *ctx); @@ -1298,3 +1302,19 @@ THUMB_FUNC BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx) MOD05_021E2B9C(*unk, ScriptReadByte(ctx)); return TRUE; } + +THUMB_FUNC BOOL ScrCmd_Unk005E(struct ScriptContext *ctx) +{ + u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 unk2 = ScriptReadWord(ctx); + + u32 unk3 = FUN_0203B120(ctx->unk80, unk); + GF_ASSERT(unk3); + + u32 unk4 = FUN_0205AEA4(unk3, ctx->scriptPtr + unk2); + u8 *unk5 = FUN_02039438(ctx->unk80, 4); + (*unk5)++; + + FUN_0203B174(ctx->unk80, unk4, 0); + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index c246279df..c4a9631c9 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -105,6 +105,7 @@ BOOL ScrCmd_Unk0047(struct ScriptContext *ctx); BOOL ScrCmd_Unk0048(struct ScriptContext *ctx); BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx); BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx); +BOOL ScrCmd_Unk005E(struct ScriptContext *ctx); //scrcmd_4.c BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx); From f21598fbb594af3bdcd348af3c1b4d9cd576c1d1 Mon Sep 17 00:00:00 2001 From: red031000 Date: Tue, 18 May 2021 20:32:22 +0100 Subject: [PATCH 056/134] some box sprites --- files/poketool/icongra/poke_icon/.gitignore | 15 +++++++++ .../poketool/icongra/poke_icon/narc_0017.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0017.png | Bin 0 -> 277 bytes .../poketool/icongra/poke_icon/narc_0018.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0018.png | Bin 0 -> 241 bytes .../poketool/icongra/poke_icon/narc_0019.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0019.png | Bin 0 -> 421 bytes .../poketool/icongra/poke_icon/narc_0020.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0020.png | Bin 0 -> 279 bytes .../poketool/icongra/poke_icon/narc_0021.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0021.png | Bin 0 -> 266 bytes .../poketool/icongra/poke_icon/narc_0022.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0022.png | Bin 0 -> 437 bytes .../poketool/icongra/poke_icon/narc_0023.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0023.png | Bin 0 -> 364 bytes .../poketool/icongra/poke_icon/narc_0024.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0024.png | Bin 0 -> 387 bytes .../poketool/icongra/poke_icon/narc_0025.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0025.png | Bin 0 -> 456 bytes .../poketool/icongra/poke_icon/narc_0026.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0026.png | Bin 0 -> 318 bytes .../poketool/icongra/poke_icon/narc_0027.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0027.png | Bin 0 -> 374 bytes .../poketool/icongra/poke_icon/narc_0028.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0028.png | Bin 0 -> 346 bytes .../poketool/icongra/poke_icon/narc_0029.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0029.png | Bin 0 -> 465 bytes .../poketool/icongra/poke_icon/narc_0030.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0030.png | Bin 0 -> 333 bytes .../poketool/icongra/poke_icon/narc_0031.NCGR | Bin 1072 -> 0 bytes .../poketool/icongra/poke_icon/narc_0031.png | Bin 0 -> 373 bytes filesystem.mk | 15 +++++++++ graphics_rules.mk | 30 ++++++++++++++++++ 33 files changed, 60 insertions(+) delete mode 100644 files/poketool/icongra/poke_icon/narc_0017.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0017.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0018.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0018.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0019.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0019.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0020.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0020.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0021.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0021.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0022.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0022.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0023.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0023.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0024.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0024.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0025.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0025.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0026.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0026.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0027.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0027.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0028.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0028.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0029.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0029.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0030.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0030.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0031.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0031.png diff --git a/files/poketool/icongra/poke_icon/.gitignore b/files/poketool/icongra/poke_icon/.gitignore index 8f4afa7f0..27f5eeabd 100644 --- a/files/poketool/icongra/poke_icon/.gitignore +++ b/files/poketool/icongra/poke_icon/.gitignore @@ -11,4 +11,19 @@ narc_0013.NCGR narc_0014.NCGR narc_0015.NCGR narc_0016.NCGR +narc_0017.NCGR +narc_0018.NCGR +narc_0019.NCGR +narc_0020.NCGR +narc_0021.NCGR +narc_0022.NCGR +narc_0023.NCGR +narc_0024.NCGR +narc_0025.NCGR +narc_0026.NCGR +narc_0027.NCGR +narc_0028.NCGR +narc_0029.NCGR +narc_0030.NCGR +narc_0031.NCGR narc_0402.NCGR diff --git a/files/poketool/icongra/poke_icon/narc_0017.NCGR b/files/poketool/icongra/poke_icon/narc_0017.NCGR deleted file mode 100644 index 8676315a5ade63cdd8f99be491005119929decbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd^-K?{OF6og0Wymsu^Pw3n&+$cOKh+g&2b@vxZ9rUVu&`V(3EGQIcWu2mdVV8Li z-Y)M8_Kv5ombIP(3s?xY2WQ2*re-i%CuYn3{!^z7s8-P@IvaXAJJ5C>s!z(&Oe57t zC7X?k!V8ixh0;EdG<4*1m|FvBXSY5>+Og2|u8PH^S%b|gVqDVap>mz)@MH;@3zVko uFLcMi$bWkVM#}HUhOs9M7|tFU5agkNtO{uQd%f7d6x_ey{t3wkwA}#5_+*Iy diff --git a/files/poketool/icongra/poke_icon/narc_0017.png b/files/poketool/icongra/poke_icon/narc_0017.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8dbd3720080e93fd3f5fe8a87fba0c4fb818c2 GIT binary patch literal 277 zcmV+w0qXvVP)yF+f;yQ0;P+Z zUxOjpgz(+G{F#h+M7K*QW;Lo%fORaufFKTOhMkz2-pCE^-VuPUKLBW{V{a;1Ni&DZ z$x4?BU|$;mWsTPGn*Xu~P_cG|6)ZeC$sdJrf*iuMvXX__B=`w~Ap61c#^DEo><3}I bqsy`bi!WC?hy5%j00000NkvXXu0mjf#V&Qm literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0018.NCGR b/files/poketool/icongra/poke_icon/narc_0018.NCGR deleted file mode 100644 index 6401655c8915833e448f38e8103d124044dce74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd^-u?oUK5JczD+E`lp34;EBg+-43e;ZW?4>6-n(n!#q*;%s&6f9q8KZUw0DpzfsuCmkRO5GYT5UR8jWJE#}r zL1xVqR4XY|WRZA|0en&~bkLihst8nFngi+D!BK1%0V-VqU6Y{|EKJz&P!c mf$?k1%@}*lfHC%tff&cpH)M?ar)o0rynkcN7_i;P?EeCf3rYn5 diff --git a/files/poketool/icongra/poke_icon/narc_0018.png b/files/poketool/icongra/poke_icon/narc_0018.png new file mode 100644 index 0000000000000000000000000000000000000000..fe17c1e7701c318b562ff58e6f806c61c3c4b4b4 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QU(D&A+Ax~XN!xA_wL>M|NsB$ zIbL(ldQJJ}^{#l%w<+KDE{Xc~O!M2fHCL}@J@e8`N{VuHblg^Uq!6f=u_VYZn8D%M zjWi%9-_yl0#G?1@Bt@|X10Lt7aL2Lhi`d{aaRcocJy3 zZ~pzzg2xHWZwlB-4^*fw+nLVP)fqIaaebLe!j>)4Pc91b9$lL7)ZQ#3bwPqa0ypE$ otBf~S|B?E#^bpI}(uyte;$O<#5(9GQgRExoboFyt=akR{04YOd0RR91 literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0019.NCGR b/files/poketool/icongra/poke_icon/narc_0019.NCGR deleted file mode 100644 index 46d342ae22221d23f3d155694dde6ea0a628faea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd5)u};G<5WNWIgpnaad;(JUSf~R`4E>S*M!J-hO#KvwtS9Fe60s1;vJFG!NKwpl zX%iMo+4`gxKij9fbM7r3=1+czqPt6?D~f1w|2V&e_P_;&vpsNjeb8sMT90lMaO`Tg z3tO9zAye0ht;vGkn-EmTL|FqWqH>}y8#^15{16_wW}gYMLYY5copa(j&zGB*mCwai zLwwXqE-(ML<+Sv%0d#_J^||j zFI*u|gKMw`M-*D?R&$IG>33X$Cng?qoToVWVCpWM*kFd>0@ z3!VZdg*1fm)A#tp?g-$qV;(5`QdMHmUDdNI4ZEJDYdGy#DkIYY<0p)N#|G;MN`;D$ WCnC7@cMo9xF-Waeq}%x49{2*hq1cH4 diff --git a/files/poketool/icongra/poke_icon/narc_0019.png b/files/poketool/icongra/poke_icon/narc_0019.png new file mode 100644 index 0000000000000000000000000000000000000000..11ad963d9101a417aba6db427101cacd139094e1 GIT binary patch literal 421 zcmV;W0b2fvP)i+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*IBS}O-R5*>@(mig&AQ*t*?*woI_Xr)bTD_95;Vxy3m-sB+Kfx7T zdFg<#C8Q`(EhzuNS-Vta;}zI|9)Q0*>;^#QI#__Esh7|V7XFx71BSGZU^lYS5d2mj z+@cWd>2)h#HElyr$Wx$lma)~Pc73_F7l9wIfAcMlDy71R9D5a|FlJiAj{UV^$rC#9nsE@-O2zd$s z^K0P!XtvwtI9kgm|b8A0ZePK zDds#Ff$}AvB7kXd%3dNEl)QL}V5Z7T0HdnwMlgrRa9|F%^-EJH{V%P6@|(kvS=VO4Rqx)`a}MHd9Bu7=0B5KNy+ zCb)*utdI6*_>%{EHfuf5(;g0ckG=7L_t>ik6nP+GR~vofARq3pLHCE?jP5^tt(JKQ Ddp>aV diff --git a/files/poketool/icongra/poke_icon/narc_0020.png b/files/poketool/icongra/poke_icon/narc_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..6efbd0418524e6c468453dbe25bd4045e26cf2c6 GIT binary patch literal 279 zcmV+y0qFjTP)jI1!Xkd zn-o?SBED`u-u#3-qMwtEV6g!$6W_3o+bIizHSaW`#Z(o0;_0s0gIU;3eay^mXk0m6 zsUWc`VT0g!kcNON*NQC^+CDk(vNZp^(7fTV_xh&51l-aCb1q2iA`bL?_}}mO@W)p! dG+5|kdIHyvXQ4Wt=m-D+002ovPDHLkV1j3DdwBo= literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0021.NCGR b/files/poketool/icongra/poke_icon/narc_0021.NCGR deleted file mode 100644 index f0e4eb2b711af1ca633124ee4a72459fb4c0856b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmds#F%H5o3`KthbHm8U5x4^C024z`?HyHMF7_k_UsdAq7!pvSwcitF=|dM-=KU!4ezK(n_w7KOOE=?xs@E?1OHtU5BQh; z>)`JmnEf-L=mM@1AzeT>@xbiDV$k literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0022.NCGR b/files/poketool/icongra/poke_icon/narc_0022.NCGR deleted file mode 100644 index 3d83aea4103f3649e5f3b5a8c412436118b6d8b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd6lu}%Xq42E67+%Pio2uR&8LcJ4ARBC$f)Gl--OBtBjrLUBMO2?8!IwEl$YX00^ zq1ADFEm@AO*s{#8nm#;@?{H?w6~$O9h}|B~7h^rgPNBnYODxDU z3-973@8OY%cOh^{hFZM}^rymi>ok#AM2?Wx6@yShWE9MfShKG_-?qBaQfs}{db8E* z_n_CC!|QtEm5^KpRh4qKC{?!j4!oaF(*2UNC9hcJg3>P{7>doNu&EnTSPaP(@p1dl ztTEooa?Y3=j={a8Bs0n>$v?<8dF-_HT)Z%`i_^qnrv(c*r+!=Y(hUZ#*X+8DvJl{a z!9mTy*@c*<1WEih6dd&LAD<=5v*c69w)@X(#(EeyfC0QAp^BB9RZ3=HAb^3%kpbZN zyMG)h?g%*49E7++qbwOb*CUZJY8dd?JyW7~MrGF6CMPn+Ze^X-mcRihJNq*S&I)kW G$H5Qz^5DV$@k}+L5?eSfJi!=PxIvVWoB#c1(7(GUq4h!Xx>9$Rg;=(`x*nxDy4=R+BlQ1N?nFeNli%TRgEv# z^P_3D*#|(X@p4_Lm4i3*>HaZZ7P`^a`wpDhawggo_H(gt|DCj(;})bXyC7W`_r-YC z&4r=6x6(i?_5Uj>gnNH5Pvr?p59yR6Xg30PP94AqTgN63jI3PLPHZ%L(Gp fVsUvKOI_42DF)Hi{b3Ze00000NkvXXu0mjfQ}@50 literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0023.NCGR b/files/poketool/icongra/poke_icon/narc_0023.NCGR deleted file mode 100644 index b84b867e142a4b5de8a39af5014b934a7dfbb620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd^;F-ycS6vtoDxp8!q7F-nrHyY#yogD5%B->@^aNFf0^#c^_R|yI?IK+@b911>P zYVW4@6gTk?e_nWb$$RA2uI`tQ_>pDTrvPV=!Rqc|c|mI=oj}TsqTKm@{imX*X$>2U z3g<>g@YsQlbNeYzmmE`Srrs(p$m*MXpCA4CL<5K zZ5hnwGB--*smC{cj?DmAUvaRm0C0{9?dZdqwcNq8%i$>pc%dwXe;|5M|DK!}O~})C zp(7(U6PrV7hReX53ih$}CJJGQzY=Aocu_41#In;3l6zb;A0_=-F%Ww_vfqBOXIjRe guy4nHlcQpN%Wdrn`)VD*wN#XRP(Vif;n(~>0jryan*aa+ diff --git a/files/poketool/icongra/poke_icon/narc_0023.png b/files/poketool/icongra/poke_icon/narc_0023.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c8f5d8ae221b081689df597bbb8c1a02554b87 GIT binary patch literal 364 zcmV-y0h9iTP)i+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*H>PbXFR5*?8l09m~Fc3y{0?i$qJ_f6B7vCidDp#Gh%#CsZ7ru%i zuv-L-$$$hl>=$h#jhr@B$P|Kk4D*AYQhzS!2;%w!KoLp~k3j{O%V_YNKq#Phrh&5= z@a5FC0WP;-pK{A(68H($nKpxcVw`VX1~iVi$II)S!2~wZ+qv}EzRcC0#pZfxo|jnw zwJe`io@!nW=jubjf7J2#G^qoA+npbfDgwCI}s3?dw@XmDkd2N?t!rk z7pN)`r#Nn)?HJ)7=}srDxfJKV!=8kF*0P@pdu8*x>AchLskQQtm7yGNKDLA8B!6WuW7cx^ KFVnPV*S-Lt%d!dp diff --git a/files/poketool/icongra/poke_icon/narc_0024.png b/files/poketool/icongra/poke_icon/narc_0024.png new file mode 100644 index 0000000000000000000000000000000000000000..c0348df5c08dc455b38b727e1b8835cdab3e25d5 GIT binary patch literal 387 zcmV-}0et?6P)i+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*I0ZBwbR5*>@(lLs|Fc3h|If3U6IY5d8wv3PBA}|ZvOy`uojSDwA zfFZt$Ns%TX1R@eBu(J+}<%x@}wu&n2Gcrg#fOlB3+GDd61aW{|<&vZ`5bsr!Lt+Qv z9(g`t+GLzmwVMaNxFv1^=MzLMk;{1iBpfB2{4R&b;3bgX%mMpeN|JgBgZK|VQT``L z3KVq!B)Srf>SA_p$*O&EzHId#im|xq1J86=y-u+jc)Rr%hu@$$IGjEe2Q;Z$ap)#N znnU8wpym*g(HyX)B%g}I6etiY4nn0+R2(KAqB%VJ!G~C@Aj!XQz$cg&4ruKDV8YM+!j~_#Orq`zh7T5p)002ovPDHLkV1oKfq_Y43 literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0025.NCGR b/files/poketool/icongra/poke_icon/narc_0025.NCGR deleted file mode 100644 index e39457604906bcce33f8677def0dae8d1adf544b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd5)Jx{|h5WNcKhLI7aJ3{f$jRzottV@&l0Iub^hEWLZ>B zr3@VJ+N3Q~fwdPs-{qZs{&+XO9o_R+uXlAybVfZI-`tHZ5HswAgli4lc^4m-cQ{T7 zWJIpn9Zhbab)!8eKG8{{*=sI#d2+#KT`4{wmo`9`2S<#dZUU;)fJ#9vS%=X*v|#vG zqW2d-VyAsk>(rQ;sd=_!!$1>fCW~`Z#LvrM{j#~(qsfgilZ>+!t7$$Qi+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*IMoC0LR5*>@k}+<>AQXlJ97pzZ_6aV+XL_2&R;w*zEG`mZe1LJ_2fE!V6VE@B=D= zf-p>};78dJggK0WL7q$ZqcGxH`4NS2wI8c61HhdyQHRGBBw<9QLlUOe0b{?Aq(e95 yBHFb3r~}CW&B2e|WX!GO$&dSSnSOv@`0)*0#Lx<8J<5py0000y-1GQO7M3|SFYs}Bg%2!qgy0qySuRe%!xg#1 zpH2sceEC8?GMQQ4Ebhv-X)ca|6Es*}-!9Hr7vc!D_XhS(clDoGH3I7mbkjqn2ciWu zOr;rarktMbsTF8}G$zu)%a}x@a!WpoxKx~B8`(?i$5r+(HsAZ4t#y^W{5#BLe4KX= zUApW_8cIYvqfWizRIQU;n3*9&I101mihN?9%RfXk^gd!81EUb2{RjVl{vrD_0QBZS e2EO9I9(q^J*yjwq`)}>JarA$n(p?6=P)DV$@k}(RyFbqX?0{IX;Bk!!z0QLd^GwO@N>^okvr-8?v#UYr(%D^qZ- zytX9Hm{H(u*7BxXGY4Vb8coBvs)#(u(9J=UMmde-3X0N^UkSyg8UFChTtRP|^QJ~S zZEz&kxV`z;?ZfNNdp(kY;e&@67|#3a__cudM;YiJA*iQyD s!t;0dv1Mc+NA<8_PxD?ttLDG)6ryh({MX<7Hw|dPf3C*-ht!|=1cG?o0ssI2 diff --git a/files/poketool/icongra/poke_icon/narc_0027.png b/files/poketool/icongra/poke_icon/narc_0027.png new file mode 100644 index 0000000000000000000000000000000000000000..b9959d1c511af4dcb0450c62eda3dc3a28c90a03 GIT binary patch literal 374 zcmV-+0g3*JP)@l1pmCFc6041oB~WfSz+`h|f`Es`;Fh#Dcy_py*S>4MBc{24b=4Cgj<$YS(q;pt zAVjYph?kl{k&|b%0{APxSm6hBNVUmB6Om@FnJ}q8&sH)p@q6?~M`S`rJ!knQq%HFr&U5@jA8Ka28it^JV ze9J`Imh(jU;KAVtYdRXN8_SBVU7NKr(iok%TP4pc>3fMkDwBvwrI-@47R)_yvk{GV z!f*D%x#6%z={dRPuiD++zf-7d+J=Bl4;VTA$h9*HGolYT2qz{WKGK9e*c_!{jO-`; zNA4Qw+%x%N@Qi+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*H*hxe|R5*?8(mx8qFcb#xoS?ab-aw(FhjEBww!F>Ur$gP%(5n>O z9AZI8z=EF@q3<=bn|@Q@NB$LlO8rLkPz)IZk9qn|c`h;>25lV|`9M}%JMTCU86fcy zM9BgjUjbiRjAvdEP@6F{b1{a_Ae>KJ0LC`Wjn8~uTUizYl z>YpMD4(|vKp9l_0VcH=$K>K&W9DKG=l7n~TB!@)g7928p2gw2XUU2B{#ypsV4k1lG sc!BQFnhl=fnYVVo^l^=akLt@lUUX`V5=We8T>t<807*qoM6N<$g6fc!l>h($ literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0029.NCGR b/files/poketool/icongra/poke_icon/narc_0029.NCGR deleted file mode 100644 index 7db15dcff985697e4af8e993cbd0b4c15538df14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmdT?!AiqG5S^mutVfSx?pDaXi}au;4}QetW)4E%wDpC$lpz``*Lt^j>$P(e)|O8I9=S=5Bg{y<(kE$Q>4P=l%ZgMjfK2RPDC( z-2M1&h?*Av+8RpQwy{b3bzcoN;!Tr^$eIP3gfY^j+q zi%tuj$%ZrDux6Gswcce(tXce#=%rQBPGlxNXXZQuLd-q*V2prCm?vT=m5#a;=mLGr zYv#JAu>{A!CeS)8{~lF1E{Li(AnNmdWcE)ruM?{4xO$zeUZRPs>8kE)^X`Mj<7f}( zh#Wc`HR+rEvxp~cjws`?zIotF|4{gg2SOG%20gHa&*tV49#Aa{kwST||AviPHd*jk z65Hew9?(vqzX)?0^!L!;2hD$Y0QyVn;ej1VUPFo{<_~+odaAskg&EYJxn^EN|EPK; adO^qf+oR-T7g-0aTvV+b?Ga3HDEb7ayZtZ# diff --git a/files/poketool/icongra/poke_icon/narc_0029.png b/files/poketool/icongra/poke_icon/narc_0029.png new file mode 100644 index 0000000000000000000000000000000000000000..a52ea0319e39d7af96cce802f8187625bdf98c68 GIT binary patch literal 465 zcmV;?0WSWDP)i+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*IPf0{UR5*>@lEG@jFbszM1ok`h0a9oVyCrYq-0GWk^!xO%+kLA?d4`clVp7rsgD*V9L00000NkvXX Hu0mjf$}-e( literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0030.NCGR b/files/poketool/icongra/poke_icon/narc_0030.NCGR deleted file mode 100644 index 9eba4fa488a064c82d243619d1d3fa399762c0da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmds#y=ucS6orpzXS-v^K0;riWN4=jc`A8v)&`8T_X%3AiDzMfUqPcogQBs)!S0EP zAhe~>WNI%Q-HUY5-}$EZlgFWtqT5U03K6Dv50e|#1LFewxkGU7I@Et74}drDjlrTe z-jubkO&+eEu-I`hJIW-ZblHXF)ALZ}@Xr;G7Rz5OVj!c6mF=x^jg}5VRfjy2cPvzb zdAdQqRqQ-3td<7LPQ&(dz&>%ejIv=@v(8%Mq%|UMC8b2-OgUH=I{sDu!oczCzGL8c z{TH=m@2HWnO31)4G7yu26+vuiNa~i&p0UpiypVxZZOFjvZ2ybbPTL>+&$sk{P5;Z& G{Qm&1G`SoA diff --git a/files/poketool/icongra/poke_icon/narc_0030.png b/files/poketool/icongra/poke_icon/narc_0030.png new file mode 100644 index 0000000000000000000000000000000000000000..3c81efd6915f901789545ae4944545a0740a3fa7 GIT binary patch literal 333 zcmV-T0kZyyP)DV$@lEDgtFbszK1o5>y2JTu}(feK@GS6brSLjg@oJXZ) zU3ZzOmz_4)a?8ixB+yTYUn@VyeL`JC5=Yc=u$DwL^9M~CgOY09RD6f6HFA(#EXIJ) zasa~nC@~lz7CddB4`7vS?U2JQQ+GB)POdJb*?>kzZJ%zDvC=dl17QRqUfE@EXks9G ziD)>0UQQw^*!BNZ-w?*)UKsyI7_$=w@{l<)VIU2ktK{YfsA+VWTFi?K=StTF^8=oK fw0l3A5Bl){Utyzc`sWND00000NkvXXu0mjfE7FZ; literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0031.NCGR b/files/poketool/icongra/poke_icon/narc_0031.NCGR deleted file mode 100644 index ed4367709f6d2d4f18f36ff5a2278db33bfa82eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd5)y-ve05WWcJn30i3-~o^j>Hrf%AFprFX6V2~FR};LQ}PO#2|9bOqa0`QqaunB zu=JGAzMMb%PWry({o+yjEW17jxPT0ncMppz%|+u3Qf&;aT~7Jw?qL{B1cWFMQ9a|O zr0ywBql+eF6rDm7sUnEipPyswahynq;!$Fd)ec~*2zzCwcD;V&Vrh!k%B*$@L{m8J zixC|9oH}fezxs? zO(qPp1~H+gF6lqV4bA!|lFAR=fd~BOKP)DV$*l0j<3FbqX=g7`q~Nv9{s1UmbCh!$N&G*_6tgJ+<- z*jRO1sJ~}lXtnzfNw)Fpy1!j!4_UP#PD|YhqywyvfLoG2FSZG-Sf9l5N&v7ZOP$Fu znO?UFoDJhJZhY`Q4gdppnWA)DW@y1JB40U|t7EP?h-wb_Y3ViV`|N$42`Owd2y|YT z7W9ChX=xb>2z=~8+Wc?J*}ct4*M=NAF!>UQh4}^~jMF!jtU@b3U@S~pAO@?#I4?1t zh5WGnG@Zc0xbyVl8)5c%Y5j1PA=jG2Ed#NBWv}HmLVk217h%|sE`{>jzvss%4@2CF Tm9GJX00000NkvXXu0mjfi@v1A literal 0 HcmV?d00001 diff --git a/filesystem.mk b/filesystem.mk index 4264c367b..1ebf684b2 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -2599,6 +2599,21 @@ files/poketool/icongra/poke_icon.narc: \ files/poketool/icongra/poke_icon/narc_0014.NCGR \ files/poketool/icongra/poke_icon/narc_0015.NCGR \ files/poketool/icongra/poke_icon/narc_0016.NCGR \ + files/poketool/icongra/poke_icon/narc_0017.NCGR \ + files/poketool/icongra/poke_icon/narc_0018.NCGR \ + files/poketool/icongra/poke_icon/narc_0019.NCGR \ + files/poketool/icongra/poke_icon/narc_0020.NCGR \ + files/poketool/icongra/poke_icon/narc_0021.NCGR \ + files/poketool/icongra/poke_icon/narc_0022.NCGR \ + files/poketool/icongra/poke_icon/narc_0023.NCGR \ + files/poketool/icongra/poke_icon/narc_0024.NCGR \ + files/poketool/icongra/poke_icon/narc_0025.NCGR \ + files/poketool/icongra/poke_icon/narc_0026.NCGR \ + files/poketool/icongra/poke_icon/narc_0027.NCGR \ + files/poketool/icongra/poke_icon/narc_0028.NCGR \ + files/poketool/icongra/poke_icon/narc_0029.NCGR \ + files/poketool/icongra/poke_icon/narc_0030.NCGR \ + files/poketool/icongra/poke_icon/narc_0031.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR files/msgdata/msg.narc: \ diff --git a/graphics_rules.mk b/graphics_rules.mk index 8abbbbaac..e9c1c3de4 100644 --- a/graphics_rules.mk +++ b/graphics_rules.mk @@ -86,6 +86,21 @@ CLOBBER_SIZE_VERSION101_NCGR_FILES := files/graphic/bag_gra/narc_0002.NCGR \ files/poketool/icongra/poke_icon/narc_0014.NCGR \ files/poketool/icongra/poke_icon/narc_0015.NCGR \ files/poketool/icongra/poke_icon/narc_0016.NCGR \ + files/poketool/icongra/poke_icon/narc_0017.NCGR \ + files/poketool/icongra/poke_icon/narc_0018.NCGR \ + files/poketool/icongra/poke_icon/narc_0019.NCGR \ + files/poketool/icongra/poke_icon/narc_0020.NCGR \ + files/poketool/icongra/poke_icon/narc_0021.NCGR \ + files/poketool/icongra/poke_icon/narc_0022.NCGR \ + files/poketool/icongra/poke_icon/narc_0023.NCGR \ + files/poketool/icongra/poke_icon/narc_0024.NCGR \ + files/poketool/icongra/poke_icon/narc_0025.NCGR \ + files/poketool/icongra/poke_icon/narc_0026.NCGR \ + files/poketool/icongra/poke_icon/narc_0027.NCGR \ + files/poketool/icongra/poke_icon/narc_0028.NCGR \ + files/poketool/icongra/poke_icon/narc_0029.NCGR \ + files/poketool/icongra/poke_icon/narc_0030.NCGR \ + files/poketool/icongra/poke_icon/narc_0031.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR 4BPP_NCLR_FILES := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ @@ -498,6 +513,21 @@ NCGR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/poketool/icongra/poke_icon/narc_0014.NCGR \ files/poketool/icongra/poke_icon/narc_0015.NCGR \ files/poketool/icongra/poke_icon/narc_0016.NCGR \ + files/poketool/icongra/poke_icon/narc_0017.NCGR \ + files/poketool/icongra/poke_icon/narc_0018.NCGR \ + files/poketool/icongra/poke_icon/narc_0019.NCGR \ + files/poketool/icongra/poke_icon/narc_0020.NCGR \ + files/poketool/icongra/poke_icon/narc_0021.NCGR \ + files/poketool/icongra/poke_icon/narc_0022.NCGR \ + files/poketool/icongra/poke_icon/narc_0023.NCGR \ + files/poketool/icongra/poke_icon/narc_0024.NCGR \ + files/poketool/icongra/poke_icon/narc_0025.NCGR \ + files/poketool/icongra/poke_icon/narc_0026.NCGR \ + files/poketool/icongra/poke_icon/narc_0027.NCGR \ + files/poketool/icongra/poke_icon/narc_0028.NCGR \ + files/poketool/icongra/poke_icon/narc_0029.NCGR \ + files/poketool/icongra/poke_icon/narc_0030.NCGR \ + files/poketool/icongra/poke_icon/narc_0031.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR \ files/poketool/pokegra/pokegra/narc_0006.NCGR \ files/poketool/pokegra/pokegra/narc_0007.NCGR \ From 929c5c94cf404904ea4601e7c083c716f84ceca9 Mon Sep 17 00:00:00 2001 From: red031000 Date: Wed, 19 May 2021 22:29:57 +0100 Subject: [PATCH 057/134] a few more icons --- files/poketool/icongra/poke_icon/.gitignore | 5 +++++ files/poketool/icongra/poke_icon/narc_0032.NCGR | Bin 1072 -> 0 bytes files/poketool/icongra/poke_icon/narc_0032.png | Bin 0 -> 353 bytes files/poketool/icongra/poke_icon/narc_0033.NCGR | Bin 1072 -> 0 bytes files/poketool/icongra/poke_icon/narc_0033.png | Bin 0 -> 411 bytes files/poketool/icongra/poke_icon/narc_0034.NCGR | Bin 1072 -> 0 bytes files/poketool/icongra/poke_icon/narc_0034.png | Bin 0 -> 338 bytes files/poketool/icongra/poke_icon/narc_0035.NCGR | Bin 1072 -> 0 bytes files/poketool/icongra/poke_icon/narc_0035.png | Bin 0 -> 402 bytes files/poketool/icongra/poke_icon/narc_0036.NCGR | Bin 1072 -> 0 bytes files/poketool/icongra/poke_icon/narc_0036.png | Bin 0 -> 287 bytes filesystem.mk | 5 +++++ graphics_rules.mk | 10 ++++++++++ 13 files changed, 20 insertions(+) delete mode 100644 files/poketool/icongra/poke_icon/narc_0032.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0032.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0033.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0033.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0034.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0034.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0035.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0035.png delete mode 100644 files/poketool/icongra/poke_icon/narc_0036.NCGR create mode 100644 files/poketool/icongra/poke_icon/narc_0036.png diff --git a/files/poketool/icongra/poke_icon/.gitignore b/files/poketool/icongra/poke_icon/.gitignore index 27f5eeabd..c80b78432 100644 --- a/files/poketool/icongra/poke_icon/.gitignore +++ b/files/poketool/icongra/poke_icon/.gitignore @@ -26,4 +26,9 @@ narc_0028.NCGR narc_0029.NCGR narc_0030.NCGR narc_0031.NCGR +narc_0032.NCGR +narc_0033.NCGR +narc_0034.NCGR +narc_0035.NCGR +narc_0036.NCGR narc_0402.NCGR diff --git a/files/poketool/icongra/poke_icon/narc_0032.NCGR b/files/poketool/icongra/poke_icon/narc_0032.NCGR deleted file mode 100644 index 3424a4642e510d0db1efbfe67dee618da0dc6572..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmdr~p-u!b5SuxJ{2hLUIZw zd7am3XPWfA&CU9*PF;6#N_0jYZLV+EEAWaqA+3D|YUg|YCvqi96Hth}B2yAUaft-x zalumcT%%)|I4`Fl2GD{+c@x^ZM^nZ?5qSVKi|ml=OL~-h&&)}Sm5ntniy4FDp|?2_ zM?=hpT=??J!Q@|V1}S4;9%E#5L||+?E%)RA4nzY^1v&QZjeo=w{&Nd>1MLB8RI@e~ z4R&#jpY_LbiEVj(a`MdZKz^&7OJbABWeX2j Zcz_!Z%tMY?k`oX8^H2J7fc8h|{|<*(sBHiM diff --git a/files/poketool/icongra/poke_icon/narc_0032.png b/files/poketool/icongra/poke_icon/narc_0032.png new file mode 100644 index 0000000000000000000000000000000000000000..feb77f7db4e81c8df98bf126097f77c4667f2a89 GIT binary patch literal 353 zcmV-n0iOPeP)DV$t-pKs5p2siq>wFRWU1$AY$0D7>|E z$mMA8XynDgig#7Nt+1osf=_VK54}j5_au`Z0DWt50BF+~WbUNJiIfvaNyO19X-j9Y z=u3mrO8+H1-V=m*4gkW8PY{MR6QeL3GCy|^#x&Y@g+jL>@+{mt@HB;~It-e^n0}fD z5Qa5Au7bi8{gPK<{8^ZyCT^Xe`Oz8(e%p^9V_cnf)%Qne00000NkvXXu0mjfKjE87 literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0033.NCGR b/files/poketool/icongra/poke_icon/narc_0033.NCGR deleted file mode 100644 index ca90981ba7b69fb0f39d6643388d0b6895b0c47e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmdT?v1-FG5PhcY>g(7k^b-mmx+Rnh?Nms>bhGK=Z1og0`d6JH^`;0)@Fw-0i6A!3 z(y4v$e5aFiI{e=HdHEWAk~~}kw@9#ldRg8x55yI;b^>d6G5=f9ah%8|j^+Yz5WotY zXX-8^G!Y$dAC0cg_);mh2PBTLxH=fow=!qh|bI490YYF{UTYW5cA} z8uPX_71tRlY$_?q*F9!=k5G0ZZ6{7@fh{?QGT#GxOR}kwSEguLP>!(3`prE1^1Cdn zt<5U_0nXLF^ANjnP@lRg^-{6n=c%aihyHr}KOxFBn)%EJfgTwC!RP=N=RTP3Q79D) zj+!V5dhD_X=rQ{2vInBi=z}0>yYhU!r+qtV(~UrecXC0Qr^qcyVG6Pxo*q8YrCL&s YpdOpk13P+v`qP&a{Vk-n0l(G%8$P$WfB*mh diff --git a/files/poketool/icongra/poke_icon/narc_0033.png b/files/poketool/icongra/poke_icon/narc_0033.png new file mode 100644 index 0000000000000000000000000000000000000000..675439338dd309115f4018f25d2e89a6aa7a9c27 GIT binary patch literal 411 zcmV;M0c8G(P)i+lfKO3m(bod2|>q{aVgtej$ET0ucUI?rcD00001 zbW%=J06^y0W&i*I8A(JzR5*?0ld*2YAP|P{31CXcz61}@SLlMW*_+2MRl^p)DpBQ( z=aV9n&GgP3SjpU_Dii)dKgaPI;7<*kpTJ5232fbfJYQ$n0ngXNJHSE}F0&JJNx$%_dXdC!;Z}Sjms^8|-xirMK4hGQ;ACE1gxPN|ex%>@;|Ir4wV>SxQ@Q{E002ovPDHLk FV1f(;w}}7% literal 0 HcmV?d00001 diff --git a/files/poketool/icongra/poke_icon/narc_0034.NCGR b/files/poketool/icongra/poke_icon/narc_0034.NCGR deleted file mode 100644 index 9fa16d271da337b1f2eff3d8300d5a3ddf9673a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmd6lu};G<5QZ;;Ib~$*698%!Scs|)FfsIz=yG0QV7Z(8Y7vtsD^izaiTMwum5Z>1 z#L|;a`F%dye{|pWY4eh%s=B)*x}u7<>*vi9Iw3B|YIC4=ebDFm?P1IE7`E{E5AVdO zh<7@U$IVP6XtyBJAuIkO(PGge?TDZC$(yVilvVV>vyOgfnz2o{t3CBigQJb|qF0{Y zog36^5K(^HIi3=8{9vxlpru){_vSaD{utfoiYUfX_l^U-a-x?Ndhz!=LI5HP@CU;qOx7}y(QU;sJwV8Dw8_FzC9H~<6Relc`G X8k0E-nTN9MZopZ2{)t2VpZR|Qj*68d diff --git a/files/poketool/icongra/poke_icon/narc_0034.png b/files/poketool/icongra/poke_icon/narc_0034.png new file mode 100644 index 0000000000000000000000000000000000000000..5919f109501384a52bddb62abb44f40b6c94cb86 GIT binary patch literal 338 zcmV-Y0j>UtP)DV$fuIgl7bN%yYXNxjJ8{?Lk8MZ~?UbhXwlr1(U0F2q)7IOmV-{MEjN_q5 zBxL&%+|D~t?Gpc7pA<%Bi7?8qT_TJYACfQ_h1upLVF1~JD3yeX2EiaoC1Dn%%%IrQ kHiam4M3 z5Qw!s`RwzZFMiH@%g@C(cB9eTBheF$X!-HAc##-l52U%?B=F=LV^YV&zvOITPL9T;V|=4ABP+OhvhtZyNs(}f9K;uHFd>e)7K@;V=b zVjN4hKCA4*m2Vi_#1&^0n~cV<8O>%H)$wprQY7QQ*cA;7(0dKQiUzu)28ODxtuW?= z@&X|EM4qqx`SXr_mvDYt1FEsx8d!k~P$8P^%A*FXXaJ%CANa(-DpAp>58Nv^cP(zF abw0@{?o^LGtEVnb9FuS4t=IX#cf~KQ`OXIb diff --git a/files/poketool/icongra/poke_icon/narc_0035.png b/files/poketool/icongra/poke_icon/narc_0035.png new file mode 100644 index 0000000000000000000000000000000000000000..08198e6b2c3f2069e57c25c10af7db290fa6a0e1 GIT binary patch literal 402 zcmV;D0d4+?P)DV$@l09z3AP|K)fqe&8?zV813r))%63H4jriIE^i@ZHS zSqVY)mQDEaS}9XRp_@Q0OiJOiam<#BQ z*^J`3b`mf;%;b^5EdfOYqTGSei&h|664AUx%?vMV1(A7SRd1Q56iA^`5y0o57R{kO ztsibLiUX?x>}43k%IkZcyI}`-wPj8TyN}$)uaI4zf!JS9;CelQ&We9>eh{Wd1JQw8 zc=AI^%)kL8VGvZSJcJ3{wv>gz0X&3B;^oY@Fwzs{i<&SwQH7ye$-)#eLK%g2WkHIz@ezBafljx^5N8`zZl_LCJkxaq#vgql z%joT1datLh+pK^Gbl5$=_G{B>afgzd!g7zl`d02_g9e9WC+ss=vNlIgYBi!kNSgkX zbZxV|QX^%~2tFXtUPDV$JNR5*?0lA#X6FbqWV1s+ib l{6%3nHj*|O3iI23d;pE$hj#{ literal 0 HcmV?d00001 diff --git a/filesystem.mk b/filesystem.mk index 1ebf684b2..2f8034cb1 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -2614,6 +2614,11 @@ files/poketool/icongra/poke_icon.narc: \ files/poketool/icongra/poke_icon/narc_0029.NCGR \ files/poketool/icongra/poke_icon/narc_0030.NCGR \ files/poketool/icongra/poke_icon/narc_0031.NCGR \ + files/poketool/icongra/poke_icon/narc_0032.NCGR \ + files/poketool/icongra/poke_icon/narc_0033.NCGR \ + files/poketool/icongra/poke_icon/narc_0034.NCGR \ + files/poketool/icongra/poke_icon/narc_0035.NCGR \ + files/poketool/icongra/poke_icon/narc_0036.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR files/msgdata/msg.narc: \ diff --git a/graphics_rules.mk b/graphics_rules.mk index e9c1c3de4..5587bb68f 100644 --- a/graphics_rules.mk +++ b/graphics_rules.mk @@ -101,6 +101,11 @@ CLOBBER_SIZE_VERSION101_NCGR_FILES := files/graphic/bag_gra/narc_0002.NCGR \ files/poketool/icongra/poke_icon/narc_0029.NCGR \ files/poketool/icongra/poke_icon/narc_0030.NCGR \ files/poketool/icongra/poke_icon/narc_0031.NCGR \ + files/poketool/icongra/poke_icon/narc_0032.NCGR \ + files/poketool/icongra/poke_icon/narc_0033.NCGR \ + files/poketool/icongra/poke_icon/narc_0034.NCGR \ + files/poketool/icongra/poke_icon/narc_0035.NCGR \ + files/poketool/icongra/poke_icon/narc_0036.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR 4BPP_NCLR_FILES := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ @@ -528,6 +533,11 @@ NCGR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/poketool/icongra/poke_icon/narc_0029.NCGR \ files/poketool/icongra/poke_icon/narc_0030.NCGR \ files/poketool/icongra/poke_icon/narc_0031.NCGR \ + files/poketool/icongra/poke_icon/narc_0032.NCGR \ + files/poketool/icongra/poke_icon/narc_0033.NCGR \ + files/poketool/icongra/poke_icon/narc_0034.NCGR \ + files/poketool/icongra/poke_icon/narc_0035.NCGR \ + files/poketool/icongra/poke_icon/narc_0036.NCGR \ files/poketool/icongra/poke_icon/narc_0402.NCGR \ files/poketool/pokegra/pokegra/narc_0006.NCGR \ files/poketool/pokegra/pokegra/narc_0007.NCGR \ From 73d208810e888514be6cb13bd34db9c8bc47032c Mon Sep 17 00:00:00 2001 From: red031000 Date: Wed, 19 May 2021 22:58:03 +0100 Subject: [PATCH 058/134] implement nitrogfx ncer mapping type --- files/poketool/icongra/poke_icon/.gitignore | 3 +- .../poketool/icongra/poke_icon/narc_0002.json | 1 + .../poketool/icongra/poke_icon/narc_0004.json | 1 + .../poketool/icongra/poke_icon/narc_0006.NCER | Bin 202 -> 0 bytes .../poketool/icongra/poke_icon/narc_0006.json | 68 ++++++++++++++++++ filesystem.mk | 1 + graphics_rules.mk | 3 +- tools/nitrogfx/gfx.c | 3 +- tools/nitrogfx/json.c | 3 +- tools/nitrogfx/options.h | 1 + 10 files changed, 79 insertions(+), 5 deletions(-) delete mode 100644 files/poketool/icongra/poke_icon/narc_0006.NCER create mode 100644 files/poketool/icongra/poke_icon/narc_0006.json diff --git a/files/poketool/icongra/poke_icon/.gitignore b/files/poketool/icongra/poke_icon/.gitignore index c80b78432..fccab7c87 100644 --- a/files/poketool/icongra/poke_icon/.gitignore +++ b/files/poketool/icongra/poke_icon/.gitignore @@ -1,6 +1,5 @@ narc_0000.NCLR -narc_0002.NCER -narc_0004.NCER +*.NCER narc_0007.NCGR narc_0008.NCGR narc_0009.NCGR diff --git a/files/poketool/icongra/poke_icon/narc_0002.json b/files/poketool/icongra/poke_icon/narc_0002.json index defb5b411..1750fa558 100644 --- a/files/poketool/icongra/poke_icon/narc_0002.json +++ b/files/poketool/icongra/poke_icon/narc_0002.json @@ -4,6 +4,7 @@ "imageHeight": 32, "imageWidth": 32, "cellCount": 2, + "mappingType": 0, "cells": [ { "readOnly": 2054, diff --git a/files/poketool/icongra/poke_icon/narc_0004.json b/files/poketool/icongra/poke_icon/narc_0004.json index 3d8b8b80a..b8cae63a3 100644 --- a/files/poketool/icongra/poke_icon/narc_0004.json +++ b/files/poketool/icongra/poke_icon/narc_0004.json @@ -4,6 +4,7 @@ "imageHeight": 32, "imageWidth": 32, "cellCount": 2, + "mappingType": 0, "cells": [ { "readOnly": 2054, diff --git a/files/poketool/icongra/poke_icon/narc_0006.NCER b/files/poketool/icongra/poke_icon/narc_0006.NCER deleted file mode 100644 index 19e6e054edcb7e089005efc7ed59fda50a55f6e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmWG?b@u!JkAd+N0|SEq12coSldH22kj=!v$RGiv8G#rXFfy=lfcX4C_~HMD{~$ga z68{6kheiel5Xr&dI21k(t?G)6E@ R5KL2skO> 8; //unlikely to be more than 16 bits, but there are 32 allocated, change if necessary - fwrite(KBECHeader, 1, 0x20, fp); + KBECHeader[16] = (options->mappingType & 0xFF); //not possible to be more than 8 bits, though 32 are allocated + fwrite(KBECHeader, 1, 0x20, fp); unsigned char *KBECContents = malloc(size); diff --git a/tools/nitrogfx/json.c b/tools/nitrogfx/json.c index aad325be8..b825c363d 100644 --- a/tools/nitrogfx/json.c +++ b/tools/nitrogfx/json.c @@ -51,16 +51,17 @@ struct JsonToCellOptions *ParseNCERJson(char *path) cJSON *imageHeight = cJSON_GetObjectItemCaseSensitive(json, "imageHeight"); cJSON *imageWidth = cJSON_GetObjectItemCaseSensitive(json, "imageWidth"); cJSON *cellCount = cJSON_GetObjectItemCaseSensitive(json, "cellCount"); + cJSON *mappingType = cJSON_GetObjectItemCaseSensitive(json, "mappingType"); options->labelEnabled = GetBool(labelBool); options->extended = GetBool(extended); options->imageHeight = GetInt(imageHeight); options->imageWidth = GetInt(imageWidth); options->cellCount = GetInt(cellCount); + options->mappingType = GetInt(mappingType); options->cells = malloc(sizeof(struct Cell *) * options->cellCount); - if (options->labelEnabled) { cJSON *labelCount = cJSON_GetObjectItemCaseSensitive(json, "labelCount"); diff --git a/tools/nitrogfx/options.h b/tools/nitrogfx/options.h index 780c83e6d..66e9895db 100644 --- a/tools/nitrogfx/options.h +++ b/tools/nitrogfx/options.h @@ -74,6 +74,7 @@ struct Cell { struct JsonToCellOptions { bool labelEnabled; bool extended; + int mappingType; int imageHeight; int imageWidth; int cellCount; From ded31ee11b7c6f4aed68bca2a53a4372ea713492 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 19 May 2021 20:48:11 -0400 Subject: [PATCH 059/134] Decomp ListMenuInit --- arm9/arm9.lsf | 1 + arm9/asm/unk_020010A8.s | 170 ----------------------- arm9/asm/unk_020625EC.s | 2 +- arm9/asm/unk_020653EC.s | 4 +- arm9/global.inc | 2 +- arm9/modules/05/asm/mod05_021E1AD8.s | 2 +- arm9/modules/05/asm/module_05.s | 2 +- arm9/modules/06/asm/module_06.s | 12 +- arm9/modules/18/asm/module_18.s | 22 +-- arm9/modules/55/asm/module_55.s | 2 +- arm9/modules/56/asm/module_56.s | 8 +- arm9/modules/59/asm/mod59_021D74E0_asm.s | 2 +- arm9/modules/65/asm/module_65.s | 4 +- arm9/modules/71/asm/module_71.s | 2 +- arm9/modules/75/asm/module_75.s | 2 +- arm9/modules/76/asm/module_76.s | 2 +- arm9/modules/77/asm/module_77.s | 4 +- arm9/modules/80/asm/module_80.s | 8 +- arm9/modules/83/asm/module_83.s | 4 +- arm9/src/list_menu.c | 49 +++++++ include/list_menu.h | 56 ++++++++ 21 files changed, 148 insertions(+), 212 deletions(-) create mode 100644 arm9/src/list_menu.c create mode 100644 include/list_menu.h diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 898904d38..18ed6d18f 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -6,6 +6,7 @@ Static arm9 { Address 0x02000000 Object main.o + Object list_menu.o Object unk_020010A8.o Object unk_02001B80.o Object string_util.o diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index 440ba8e2b..7c6c1aa70 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,176 +5,6 @@ .text - thumb_func_start FUN_020010A8 -FUN_020010A8: ; 0x020010A8 - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r0, r3, #0x0 - mov r1, #0x38 - add r7, r2, #0x0 - str r3, [sp, #0x0] - bl AllocFromHeap - add r4, r0, #0x0 - add r3, r5, #0x0 - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r0, [sp, #0x0] - bl FUN_02013690 - str r0, [r4, #0x28] - strh r6, [r4, #0x2c] - add r1, r4, #0x0 - strh r7, [r4, #0x2e] - mov r0, #0x0 - add r1, #0x30 - strb r0, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0x31 - strb r0, [r1, #0x0] - add r1, r4, #0x0 - mov r2, #0xff - add r1, #0x32 - strb r2, [r1, #0x0] - add r1, r4, #0x0 - add r1, #0x33 - strb r0, [r1, #0x0] - add r1, r4, #0x0 - ldr r0, [sp, #0x0] - add r1, #0x34 - strb r0, [r1, #0x0] - add r0, r4, #0x0 - ldrb r1, [r4, #0x17] - add r0, #0x20 - ldrb r2, [r0, #0x0] - lsl r1, r1, #0x18 - mov r0, #0xf - lsr r3, r1, #0x1c - mov r1, #0xf - bic r2, r0 - and r3, r1 - orr r3, r2 - add r2, r4, #0x0 - add r2, #0x20 - strb r3, [r2, #0x0] - add r2, r4, #0x0 - add r2, #0x20 - ldrb r2, [r2, #0x0] - mov r3, #0xf0 - bic r2, r3 - ldrb r3, [r4, #0x18] - lsl r3, r3, #0x1c - lsr r3, r3, #0x1c - lsl r3, r3, #0x1c - lsr r3, r3, #0x18 - orr r3, r2 - add r2, r4, #0x0 - add r2, #0x20 - strb r3, [r2, #0x0] - add r2, r4, #0x0 - add r2, #0x21 - ldrb r2, [r2, #0x0] - bic r2, r0 - ldrb r0, [r4, #0x18] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x21 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - mov r1, #0x3f - bic r0, r1 - ldrh r1, [r4, #0x1a] - lsl r1, r1, #0x1d - lsr r1, r1, #0x1d - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - mov r1, #0x3f - and r1, r2 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x22 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x24 - ldrb r0, [r0, #0x0] - mov r1, #0x7f - bic r0, r1 - ldrh r1, [r4, #0x1a] - lsl r1, r1, #0x11 - lsr r1, r1, #0x1a - lsl r1, r1, #0x18 - lsr r2, r1, #0x18 - mov r1, #0x7f - and r1, r2 - orr r1, r0 - add r0, r4, #0x0 - add r0, #0x24 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x24 - ldrb r1, [r0, #0x0] - mov r0, #0x80 - bic r1, r0 - add r0, r4, #0x0 - add r0, #0x24 - strb r1, [r0, #0x0] - ldrh r1, [r4, #0x10] - ldrh r0, [r4, #0x12] - cmp r1, r0 - bhs _020011AC - strh r1, [r4, #0x12] -_020011AC: - ldrb r2, [r4, #0x18] - ldr r0, [r4, #0x28] - lsl r1, r2, #0x1c - lsr r1, r1, #0x1c - lsl r1, r1, #0x18 - lsr r3, r1, #0x18 - ldrb r1, [r4, #0x17] - lsl r2, r2, #0x18 - lsr r2, r2, #0x1c - lsl r1, r1, #0x18 - lsr r1, r1, #0x1c - lsl r1, r1, #0x18 - lsl r2, r2, #0x18 - lsr r1, r1, #0x8 - lsr r2, r2, #0x10 - orr r1, r2 - orr r1, r3 - bl FUN_020136E0 - ldrb r1, [r4, #0x18] - ldr r0, [r4, #0xc] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - bl FUN_02019620 - ldrh r1, [r4, #0x2c] - ldrh r3, [r4, #0x12] - add r0, r4, #0x0 - mov r2, #0x0 - bl FUN_02001714 - add r0, r4, #0x0 - bl FUN_020017AC - add r0, r4, #0x0 - mov r1, #0x1 - bl FUN_02001B64 - ldr r0, [r5, #0xc] - bl CopyWindowToVram - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - thumb_func_start FUN_02001204 FUN_02001204: ; 0x02001204 push {r4-r6, lr} diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 2ec122fac..8c5ffee81 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1455,7 +1455,7 @@ _02063094: ldr r2, [sp, #0x18] add r0, #0xa0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit add r1, r5, #0x0 add r1, #0xc0 str r0, [r1, #0x0] diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 3d43d136a..e238bee00 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1110,7 +1110,7 @@ _02065C64: lsl r3, r3, #0x18 ldrh r2, [r5, r2] lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] @@ -1362,7 +1362,7 @@ _02065E14: ldr r2, [sp, #0x4] add r0, r5, r0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] diff --git a/arm9/global.inc b/arm9/global.inc index 4ed9aa742..fb6a23220 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -188,7 +188,7 @@ .extern FUN_02000EE8 .extern FUN_02000F18 .extern HandleDSLidAction -.extern FUN_020010A8 +.extern ListMenuInit .extern FUN_02001204 .extern FUN_02001300 .extern FUN_02001328 diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 0b72da2ae..74e58b664 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -738,7 +738,7 @@ _021E2032: add r0, r4, r0 mov r1, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0x6d lsl r1, r1, #2 str r0, [r4, r1] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index fe3463004..7289aee23 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -15277,7 +15277,7 @@ _021EFF54: add r0, r2, #0 add r2, r1, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #4] add r0, r5, #0 add r0, #0x20 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index d46e003bc..7c6a92f1a 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9220,7 +9220,7 @@ _0223DC8E: add r0, r2, #0 add r2, r1, #0 str r5, [sp, #0x20] - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x78] add sp, #0x24 pop {r4, r5, r6, r7, pc} @@ -11388,7 +11388,7 @@ _0223EEB8: mov r1, #0 add r0, r2, #0 add r2, r1, #0 - bl FUN_020010A8 + bl ListMenuInit ldr r1, _0223EF10 ; =0x02252420 ldr r2, [r1] str r0, [r2, #0x5c] @@ -14666,7 +14666,7 @@ _022409D2: add r2, #0x78 ldrh r2, [r2] mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5] add r5, #0x34 add r0, r5, #0 @@ -14855,7 +14855,7 @@ _02240B4A: add r2, #0x7a ldrh r2, [r2] mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #4] add r5, #0x44 add r0, r5, #0 @@ -19028,7 +19028,7 @@ MOD06_02242CDC: ; 0x02242CDC mov r1, #0 add r2, r5, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit add r4, #0x88 str r0, [r4] add sp, #0x14 @@ -42332,7 +42332,7 @@ _0224E084: mov r1, #0 ldr r0, _0224E16C ; =MOD6_022523A0 add r2, r1, #0 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #8] ldr r0, [r5, #4] mov r1, #0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index d0f6db33f..b90914e22 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22075,7 +22075,7 @@ _0224409E: ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r5, #0 - bl FUN_020010A8 + bl ListMenuInit ldr r1, [sp, #0xc] str r0, [r1, #0xc] add r0, r1, #0 @@ -29593,7 +29593,7 @@ _02247AFA: strh r1, [r5, #0x3a] add r0, sp, #0x14 add r2, r1, #0 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x20] add r5, #0xc add r0, r5, #0 @@ -29745,7 +29745,7 @@ _02247C40: strh r1, [r5, #0x3a] add r2, r1, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x20] add r5, #0xc add r0, r5, #0 @@ -29898,7 +29898,7 @@ _02247D6C: strh r1, [r5, #0x3a] add r2, r1, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x20] add r5, #0xc add r0, r5, #0 @@ -31278,7 +31278,7 @@ _02248870: strh r1, [r5, #0x36] add r2, r1, #0 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x1c] add r5, #8 add r0, r5, #0 @@ -33530,7 +33530,7 @@ _02249A0E: add r2, r1, #0 mov r3, #4 str r5, [sp, #0x3c] - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x50] add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} @@ -36727,7 +36727,7 @@ _0224B42C: lsr r1, r1, #0x10 lsr r2, r2, #0x10 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x48] add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} @@ -36848,7 +36848,7 @@ _0224B528: lsr r1, r1, #0x10 lsr r2, r2, #0x10 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x48] add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} @@ -38606,7 +38606,7 @@ _0224C396: lsr r1, r1, #0x10 lsr r2, r2, #0x10 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x48] mov r0, #0x8b lsl r0, r0, #2 @@ -39228,7 +39228,7 @@ _0224C87C: lsr r1, r1, #0x10 lsr r2, r2, #0x10 mov r3, #4 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x48] add r5, #0x10 add r0, r5, #0 @@ -42402,7 +42402,7 @@ _0224E186: ldr r2, [r5, #0x34] ldrh r1, [r1] ldrh r2, [r2] - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x28] add r0, r5, #4 bl CopyWindowToVram diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index 0d96ce130..fec8672e3 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -3306,7 +3306,7 @@ _021D8F1A: add r0, sp, #0x1c add r2, r1, #0 mov r3, #0x34 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0xea lsl r1, r1, #2 str r0, [r5, r1] diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index d1046c7b9..fa8325c22 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -3567,7 +3567,7 @@ _022139D0: add r2, r1, #0 mov r3, #0x36 str r5, [sp, #0x30] - bl FUN_020010A8 + bl ListMenuInit add r5, #0xb4 str r0, [r5] add sp, #0x34 @@ -5134,7 +5134,7 @@ _02214642: add r0, sp, #0x14 mov r1, #0 mov r3, #0x36 - bl FUN_020010A8 + bl ListMenuInit add r1, r5, #0 add r1, #0xbc str r0, [r1] @@ -5425,7 +5425,7 @@ _0221488C: ldrh r2, [r2, r3] mov r1, #0 mov r3, #0x36 - bl FUN_020010A8 + bl ListMenuInit add r1, r5, #0 add r1, #0xbc str r0, [r1] @@ -5717,7 +5717,7 @@ _02214ADC: add r0, sp, #0x2c add r2, r1, #0 mov r3, #0x36 - bl FUN_020010A8 + bl ListMenuInit add r1, r5, #0 add r1, #0xbc str r0, [r1] diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index c86d2c94b..cc593cac5 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -1096,7 +1096,7 @@ _021D7DF2: lsl r3, r3, #0x18 add r2, r1, #0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit str r0, [r5, #0x40] ldr r0, [sp, #0x10] ldr r2, _021D7EC4 ; =0x000003D9 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index 229a9214a..a772b2c82 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -1684,7 +1684,7 @@ _021D81C0: ldrh r2, [r2] add r0, #0x84 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit add r1, r5, #0 add r1, #0xc4 str r0, [r1] @@ -2276,7 +2276,7 @@ _021D8648: add r0, #0xa4 add r2, r1, #0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit add r5, #0xc8 str r0, [r5] pop {r3, r4, r5, pc} diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index ac2559a63..637a45306 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -7127,7 +7127,7 @@ MOD71_02231018: ; 0x02231018 mov r3, #0x1a str r5, [sp, #0x14] str r4, [sp, #0x20] - bl FUN_020010A8 + bl ListMenuInit add sp, #0x34 pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 1a9861c97..707b3e927 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -1606,7 +1606,7 @@ _021E784E: add r1, r3, #0 add r0, sp, #0 mov r3, #6 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0x57 lsl r1, r1, #2 str r0, [r4, r1] diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 13ddf00c5..11317efb4 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -1340,7 +1340,7 @@ _021D7F50: ldrh r1, [r3, #0x12] ldrh r2, [r3, #0x10] mov r3, #0x43 - bl FUN_020010A8 + bl ListMenuInit mov r1, #0x41 lsl r1, r1, #2 str r0, [r5, r1] diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index a5eaa94b5..786457f79 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -1812,7 +1812,7 @@ _021D83B2: lsl r3, r3, #0x18 add r2, r1, #0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit ldr r1, _021D8410 ; =0x0000C054 ldr r2, _021D8414 ; =0x000001D9 str r0, [r5, r1] @@ -1902,7 +1902,7 @@ _021D8462: lsl r3, r3, #0x18 add r2, r1, #0 lsr r3, r3, #0x18 - bl FUN_020010A8 + bl ListMenuInit ldr r1, _021D84D0 ; =0x0000C054 ldr r2, _021D84D4 ; =0x000001D9 str r0, [r5, r1] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index f0b34ee0a..8de13d8d3 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -13718,7 +13718,7 @@ _02234388: ldrh r1, [r2, #6] ldrh r2, [r2, #4] mov r3, #0x3e - bl FUN_020010A8 + bl ListMenuInit add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -13912,7 +13912,7 @@ MOD80_022344DC: ; 0x022344DC ldrh r2, [r3, r2] add r0, sp, #0x18 mov r3, #0x3e - bl FUN_020010A8 + bl ListMenuInit add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop @@ -13968,7 +13968,7 @@ _02234578: add r0, sp, #4 add r2, r1, #0 mov r3, #0x3e - bl FUN_020010A8 + bl ListMenuInit add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -14024,7 +14024,7 @@ _022345E8: add r0, sp, #4 add r2, r1, #0 mov r3, #0x3e - bl FUN_020010A8 + bl ListMenuInit add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 8b006bca3..88803eb8d 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -5869,7 +5869,7 @@ _02230436: add r0, sp, #8 add r2, r1, #0 mov r3, #0x56 - bl FUN_020010A8 + bl ListMenuInit str r0, [r4, #0x78] mov r0, #0 ldr r2, [sp, #0x40] @@ -8205,7 +8205,7 @@ _02231752: str r0, [sp, #0x10] add r0, r2, #0 add r2, r1, #0 - bl FUN_020010A8 + bl ListMenuInit ldr r1, _02231798 ; =0x00002B68 str r0, [r5, r1] add sp, #0x24 diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c new file mode 100644 index 000000000..981365620 --- /dev/null +++ b/arm9/src/list_menu.c @@ -0,0 +1,49 @@ +#pragma thumb on + +#include "global.h" +#include "heap.h" +#include "list_menu.h" + +extern void * FUN_02013690(u32 heap_id); +extern void FUN_020136E0(void *, u32); +extern void FUN_02019620(struct Window *, u32); +void FUN_02001714(struct ListMenu *, u16, u16, u16); +void FUN_020017AC(struct ListMenu *); +void FUN_02001B64(struct ListMenu *, BOOL); +extern void CopyWindowToVram(struct Window *); + +struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) +{ + struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu)); + list->template = *template; + list->unk_28 = FUN_02013690(heap_id); + list->cursorPos = cursorPos; + list->itemsAbove = itemsAbove; + list->unk_30 = 0; + list->unk_31 = 0; + list->taskId = 0xFF; + list->unk_33 = 0; + list->heap_id = (u8)heap_id; + list->cursorPal = list->template.cursorPal; + list->fillValue = list->template.fillValue; + list->cursorShadowPal = list->template.cursorShadowPal; + list->lettersSpacing = list->template.lettersSpacing; + list->fontId = list->template.fontId; + list->enabled = 0; + if (list->template.totalItems < list->template.maxShowed) + list->template.maxShowed = list->template.totalItems; + FUN_020136E0( + list->unk_28, + (u32)( + ((u32)(list->template.cursorPal << 24) >> 8) + | ((u32)(list->template.cursorShadowPal << 24) >> 16) + | ((u32)(list->template.fillValue << 24) >> 24) + ) + ); + FUN_02019620(list->template.window, list->template.fillValue); + FUN_02001714(list, list->cursorPos, 0, list->template.maxShowed); + FUN_020017AC(list); + FUN_02001B64(list, 1); + CopyWindowToVram(template->window); + return list; +} diff --git a/include/list_menu.h b/include/list_menu.h new file mode 100644 index 000000000..befbf0511 --- /dev/null +++ b/include/list_menu.h @@ -0,0 +1,56 @@ +#ifndef POKEDIAMOND_LIST_MENU_H +#define POKEDIAMOND_LIST_MENU_H + +struct ListMenu; + +// TODO: Move to its own header, and fill it out +struct Window +{ + u8 * unk_00; + u8 unk_04; +}; + +// TODO: Document remaining fields. +// A lot of these are named based on similar fields in gen 3. +struct ListMenuTemplate +{ + u8 filler_00[12]; + /*0x0C*/ struct Window * window; + /*0x10*/ u16 totalItems; + /*0x12*/ u16 maxShowed; + /*0x14*/ u8 header_X; + /*0x15*/ u8 item_X; + /*0x16*/ u8 cursor_X; + /*0x17*/ u8 upText_Y:4; + u8 cursorPal:4; + /*0x18*/ u8 fillValue:4; + u8 cursorShadowPal:4; + /*0x1A*/ u16 lettersSpacing:3; + u16 unk_1a_3:6; + u16 fontId:6; + /*0x1C*/ u8 filler_1C[4]; +}; + +struct ListMenu +{ + /*0x00*/ struct ListMenuTemplate template; + // ListMenuOverride from gen 3 + /*0x20*/ u8 cursorPal:4; + u8 fillValue:4; + /*0x21*/ u8 cursorShadowPal:4; + u8 unk_21_4:4; + /*0x22*/ u8 lettersSpacing:6; + /*0x23*/ u8 unk_23; + /*0x24*/ u8 fontId:7; + u8 enabled:1; + /*0x28*/ void * unk_28; + /*0x2c*/ u16 cursorPos; + /*0x2e*/ u16 itemsAbove; + /*0x30*/ u8 unk_30; + /*0x31*/ u8 unk_31; + /*0x32*/ u8 taskId; + /*0x33*/ u8 unk_33; + /*0x34*/ u8 heap_id; +}; + +#endif // POKEDIAMOND_LIST_MENU_H From 8e300b8f7f14f2ef2a1479a27f0e5aed1aa36d40 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 19 May 2021 21:15:40 -0400 Subject: [PATCH 060/134] Decompile ListMenu_ProcessInput --- arm9/asm/scrcmd_asm.s | 2 +- arm9/asm/unk_020010A8.s | 180 +++-------------------- arm9/asm/unk_02001B80.s | 2 +- arm9/asm/unk_020023C0.s | 2 +- arm9/asm/unk_02016B94.s | 4 +- arm9/asm/unk_02035068.s | 2 +- arm9/asm/unk_02048120.s | 4 +- arm9/asm/unk_02050E48.s | 4 +- arm9/asm/unk_020625EC.s | 20 +-- arm9/asm/unk_020653EC.s | 12 +- arm9/asm/unk_0206C700.s | 4 +- arm9/asm/unk_0206F3FC.s | 8 +- arm9/asm/unk_02072548.s | 42 +++--- arm9/asm/unk_02073DA8.s | 2 +- arm9/asm/unk_0207550C.s | 4 +- arm9/asm/unk_020772F0.s | 30 ++-- arm9/asm/unk_0207D5BC.s | 88 +++++------ arm9/asm/unk_02086414.s | 4 +- arm9/asm/unk_0208A338.s | 4 +- arm9/global.inc | 4 +- arm9/modules/05/asm/mod05_021E1AD8.s | 10 +- arm9/modules/05/asm/mod05_021E2B80.s | 2 +- arm9/modules/05/asm/mod05_021E2E88.s | 2 +- arm9/modules/05/asm/mod05_021E8310.s | 2 +- arm9/modules/05/asm/module_05.s | 8 +- arm9/modules/06/asm/module_06.s | 68 ++++----- arm9/modules/07/asm/module_07.s | 8 +- arm9/modules/09/asm/module_09.s | 170 ++++++++++----------- arm9/modules/11/asm/module_11_thumb1.s | 4 +- arm9/modules/11/asm/module_11_thumb2.s | 18 +-- arm9/modules/12/asm/module_12.s | 18 +-- arm9/modules/14/asm/module_14.s | 62 ++++---- arm9/modules/15/asm/module_15.s | 20 +-- arm9/modules/16/asm/module_16.s | 32 ++-- arm9/modules/17/asm/module_17.s | 18 +-- arm9/modules/18/asm/module_18.s | 48 +++--- arm9/modules/24/asm/module_24.s | 2 +- arm9/modules/36/asm/module_36.s | 4 +- arm9/modules/38/asm/module_38.s | 4 +- arm9/modules/43/asm/module_43.s | 2 +- arm9/modules/47/asm/module_47.s | 10 +- arm9/modules/49/asm/module_49.s | 2 +- arm9/modules/51/asm/module_51.s | 12 +- arm9/modules/53/asm/module_53.s | 10 +- arm9/modules/54/asm/module_54.s | 12 +- arm9/modules/55/asm/module_55.s | 30 ++-- arm9/modules/56/asm/module_56.s | 22 +-- arm9/modules/58/asm/module_58.s | 14 +- arm9/modules/59/asm/mod59_021D74E0_asm.s | 2 +- arm9/modules/60/asm/module_60.s | 8 +- arm9/modules/61/asm/module_61.s | 6 +- arm9/modules/62/asm/module_62.s | 20 +-- arm9/modules/64/asm/module_64.s | 8 +- arm9/modules/65/asm/module_65.s | 10 +- arm9/modules/66/asm/module_66.s | 22 +-- arm9/modules/67/asm/module_67.s | 4 +- arm9/modules/68/asm/module_68.s | 24 +-- arm9/modules/69/asm/module_69.s | 4 +- arm9/modules/70/asm/module_70.s | 8 +- arm9/modules/71/asm/module_71.s | 30 ++-- arm9/modules/73/asm/module_73.s | 16 +- arm9/modules/74/asm/module_74.s | 10 +- arm9/modules/75/asm/module_75.s | 60 ++++---- arm9/modules/76/asm/module_76.s | 22 +-- arm9/modules/77/asm/module_77.s | 6 +- arm9/modules/80/asm/module_80.s | 110 +++++++------- arm9/modules/81/asm/module_81.s | 8 +- arm9/modules/82/asm/module_82.s | 18 +-- arm9/modules/83/asm/module_83.s | 24 +-- arm9/modules/84/asm/module_84_thumb2.s | 6 +- arm9/modules/85/asm/module_85.s | 4 +- arm9/src/game_init.c | 48 +++--- arm9/src/list_menu.c | 76 +++++++++- arm9/src/main.c | 2 +- arm9/src/scrcmd.c | 42 +++--- arm9/src/text_02054590.c | 6 +- arm9/src/unk_0206015C.c | 2 +- include/list_menu.h | 20 ++- include/main.h | 4 +- 79 files changed, 802 insertions(+), 864 deletions(-) diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 3d6645c22..e481c6f13 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -3534,7 +3534,7 @@ FUN_0203CBE8: ; 0x0203CBE8 mov r1, #0x1 bl FUN_02039438 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index 7c6c1aa70..0551ad9c0 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,144 +5,6 @@ .text - thumb_func_start FUN_02001204 -FUN_02001204: ; 0x02001204 - push {r4-r6, lr} - add r4, r0, #0x0 - add r1, r4, #0x0 - ldr r6, _020012FC ; =gMain - mov r3, #0x0 - add r1, #0x33 - strb r3, [r1, #0x0] - ldr r1, [r6, #0x48] - mov r2, #0x1 - add r5, r1, #0x0 - tst r5, r2 - beq _0200122C - ldrh r1, [r4, #0x2c] - ldrh r0, [r4, #0x2e] - ldr r2, [r4, #0x0] - add r0, r1, r0 - lsl r0, r0, #0x3 - add r0, r2, r0 - ldr r0, [r0, #0x4] - pop {r4-r6, pc} -_0200122C: - mov r5, #0x2 - tst r1, r5 - beq _02001236 - sub r0, r5, #0x4 - pop {r4-r6, pc} -_02001236: - ldr r5, [r6, #0x4c] - mov r1, #0x40 - tst r1, r5 - beq _02001254 - add r1, r2, #0x0 - bl FUN_02001AA4 - cmp r0, #0x0 - bne _0200124E - mov r0, #0x1 - add r4, #0x33 - strb r0, [r4, #0x0] -_0200124E: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_02001254: - mov r1, #0x80 - add r3, r5, #0x0 - tst r3, r1 - beq _02001274 - add r1, r2, #0x0 - add r3, r2, #0x0 - bl FUN_02001AA4 - cmp r0, #0x0 - bne _0200126E - mov r0, #0x2 - add r4, #0x33 - strb r0, [r4, #0x0] -_0200126E: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_02001274: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x17 - lsr r0, r0, #0x1e - beq _02001284 - cmp r0, #0x1 - beq _0200128A - cmp r0, #0x2 - beq _0200129C -_02001284: - mov r0, #0x0 - add r1, r0, #0x0 - b _020012AC -_0200128A: - mov r0, #0x20 - mov r1, #0x10 - and r0, r5 - and r1, r5 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 - b _020012AC -_0200129C: - lsl r0, r1, #0x2 - add r1, #0x80 - and r0, r5 - and r1, r5 - lsl r0, r0, #0x10 - lsl r1, r1, #0x10 - lsr r0, r0, #0x10 - lsr r1, r1, #0x10 -_020012AC: - cmp r0, #0x0 - beq _020012D0 - ldrh r2, [r4, #0x12] - add r0, r4, #0x0 - mov r1, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - mov r3, #0x0 - bl FUN_02001AA4 - cmp r0, #0x0 - bne _020012CA - mov r0, #0x3 - add r4, #0x33 - strb r0, [r4, #0x0] -_020012CA: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_020012D0: - cmp r1, #0x0 - beq _020012F4 - ldrh r2, [r4, #0x12] - mov r1, #0x1 - add r0, r4, #0x0 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - add r3, r1, #0x0 - bl FUN_02001AA4 - cmp r0, #0x0 - bne _020012EE - mov r0, #0x4 - add r4, #0x33 - strb r0, [r4, #0x0] -_020012EE: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} -_020012F4: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} - nop -_020012FC: .word gMain - thumb_func_start FUN_02001300 FUN_02001300: ; 0x02001300 push {r4, lr} @@ -174,14 +36,14 @@ FUN_02001328: ; 0x02001328 ldr r0, [r4, #0xc] lsl r1, r1, #0x1c lsr r1, r1, #0x1c - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r1, [r4, #0x2c] ldrh r3, [r4, #0x12] add r0, r4, #0x0 mov r2, #0x0 - bl FUN_02001714 + bl ListMenuPrintEntries add r0, r4, #0x0 - bl FUN_020017AC + bl ListMenuDrawCursor ldr r0, [r4, #0xc] bl CopyWindowToVram pop {r4, pc} @@ -221,7 +83,7 @@ _0200136E: mov r2, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02001AA4 + bl ListMenuChangeSelection b _020013AC _02001398: cmp r0, #0x80 @@ -232,7 +94,7 @@ _02001398: lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r3, r2, #0x0 - bl FUN_02001AA4 + bl ListMenuChangeSelection _020013AC: ldr r1, [sp, #0x18] cmp r1, #0x0 @@ -742,8 +604,8 @@ _02001710: add sp, #0x18 pop {r4-r6, pc} - thumb_func_start FUN_02001714 -FUN_02001714: ; 0x02001714 + thumb_func_start ListMenuPrintEntries +ListMenuPrintEntries: ; 0x02001714 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 @@ -824,8 +686,8 @@ _020017A6: pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_020017AC -FUN_020017AC: ; 0x020017AC + thumb_func_start ListMenuDrawCursor +ListMenuDrawCursor: ; 0x020017AC push {r3-r5, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x1a] @@ -1109,12 +971,12 @@ FUN_0200198C: ; 0x0200198C ldr r0, [r5, #0xc] lsl r1, r1, #0x1c lsr r1, r1, #0x1c - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r1, [r5, #0x2c] ldrh r3, [r5, #0x12] add r0, r5, #0x0 mov r2, #0x0 - bl FUN_02001714 + bl ListMenuPrintEntries add sp, #0x8 pop {r3-r7, pc} _020019B8: @@ -1151,7 +1013,7 @@ _020019B8: add r0, r5, #0x0 mov r2, #0x0 add r3, r4, #0x0 - bl FUN_02001714 + bl ListMenuPrintEntries ldrb r0, [r5, #0x17] lsl r0, r0, #0x1c lsr r2, r0, #0x1c @@ -1207,7 +1069,7 @@ _02001A46: add r0, r5, #0x0 lsr r1, r1, #0x10 lsr r2, r2, #0x10 - bl FUN_02001714 + bl ListMenuPrintEntries ldr r0, [r5, #0xc] bl FUN_0201AB0C lsl r0, r0, #0x13 @@ -1228,8 +1090,8 @@ _02001A46: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02001AA4 -FUN_02001AA4: ; 0x02001AA4 + thumb_func_start ListMenuChangeSelection +ListMenuChangeSelection: ; 0x02001AA4 push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x0] @@ -1298,10 +1160,10 @@ _02001B1A: add r0, r4, #0x0 bl FUN_02001804 add r0, r4, #0x0 - bl FUN_020017AC + bl ListMenuDrawCursor add r0, r4, #0x0 mov r1, #0x0 - bl FUN_02001B64 + bl ListMenuCallSelectionChangedCallback ldr r0, [r4, #0xc] bl CopyWindowToVram b _02001B5E @@ -1314,10 +1176,10 @@ _02001B38: add r1, r6, #0x0 bl FUN_0200198C add r0, r4, #0x0 - bl FUN_020017AC + bl ListMenuDrawCursor add r0, r4, #0x0 mov r1, #0x0 - bl FUN_02001B64 + bl ListMenuCallSelectionChangedCallback ldr r0, [r4, #0xc] bl CopyWindowToVram _02001B5E: @@ -1325,8 +1187,8 @@ _02001B5E: add sp, #0x10 pop {r3-r7, pc} - thumb_func_start FUN_02001B64 -FUN_02001B64: ; 0x02001B64 + thumb_func_start ListMenuCallSelectionChangedCallback +ListMenuCallSelectionChangedCallback: ; 0x02001B64 push {r3-r5, lr} ldr r3, [r0, #0x4] add r2, r1, #0x0 diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 4962171d5..c00d6dd7c 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -634,7 +634,7 @@ FUN_02001FF4: ; 0x02001FF4 bl FUN_02002E4C add r1, r0, #0x0 ldr r0, [r5, #0x4] - bl FUN_02019620 + bl FillWindowPixelBuffer ldrb r0, [r5, #0x19] ldrb r1, [r5, #0x16] ldrb r7, [r5, #0x17] diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index baa1b890a..54d01d039 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -500,7 +500,7 @@ _0200275C: bl FUN_02002A00 ldrb r1, [r4, #0x12] ldr r0, [r4, #0x4] - bl FUN_02019620 + bl FillWindowPixelBuffer ldrb r0, [r4, #0xa] strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 3c92650d1..a050d569f 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -5886,8 +5886,8 @@ FUN_0201960C: ; 0x0201960C pop {r4, pc} .balign 4 - thumb_func_start FUN_02019620 -FUN_02019620: ; 0x02019620 + thumb_func_start FillWindowPixelBuffer +FillWindowPixelBuffer: ; 0x02019620 push {r3-r5, lr} add r4, r0, #0x0 ldrb r2, [r4, #0x4] diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index f0cdc150e..38fb3842d 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -966,7 +966,7 @@ _0203576C: add r0, r5, #0x0 add r0, #0x10 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0203589C ; =0x00000143 mov r0, #0x0 mov r1, #0x1a diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 6f3030450..7c046e254 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -209,7 +209,7 @@ _02048298: add r0, r4, #0x0 add r0, #0xc mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] @@ -263,7 +263,7 @@ FUN_020482F4: ; 0x020482F4 add r0, r5, #0x0 add r0, #0xc mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x1c] ldr r1, [sp, #0x10] add r2, r6, #0x0 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index c8a8a153d..b5eed02a6 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1711,7 +1711,7 @@ FUN_02051B68: ; 0x02051B68 bl FUN_0200CB00 ldr r0, [sp, #0x20] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r7, #0x0 add r6, r7, #0x0 add r4, r7, #0x0 @@ -1837,7 +1837,7 @@ FUN_02051C88: ; 0x02051C88 bl FUN_0200CB00 add r0, r7, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r6, #0x0 add r4, r6, #0x0 _02051CE0: diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 8c5ffee81..024e66def 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -246,7 +246,7 @@ FUN_02062770: ; 0x02062770 add r4, r0, #0x0 add r0, #0xc0 ldr r0, [r0, #0x0] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r1, _020627C8 ; =gMain ldr r3, [r1, #0x48] mov r1, #0x2 @@ -467,7 +467,7 @@ _0206290C: _02062912: add r0, #0xe4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x0 str r3, [sp, #0x0] ldrh r0, [r4, #0x1a] @@ -578,7 +578,7 @@ FUN_020629D8: ; 0x020629D8 _020629EE: add r0, #0xe4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x0 str r3, [sp, #0x0] ldrh r0, [r4, #0x1a] @@ -1173,7 +1173,7 @@ FUN_02062DB0: ; 0x02062DB0 add r4, #0xe4 add r0, r4, #0x0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r3-r4, pc} .balign 4 @@ -1385,7 +1385,7 @@ FUN_02063028: ; 0x02063028 add r0, r5, #0x0 add r0, #0xd4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldrb r0, [r5, #0x18] mov r6, #0x0 cmp r0, #0x0 @@ -1474,7 +1474,7 @@ _02063094: add r0, r5, #0x0 add r0, #0xe4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _02063174 ; =0x0001020F @@ -1579,7 +1579,7 @@ FUN_02063208: ; 0x02063208 add r4, r0, #0x0 add r0, #0xe4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _02063234 ; =0x0001020F @@ -1626,7 +1626,7 @@ FUN_02063264: ; 0x02063264 add r4, r0, #0x0 add r0, #0xe4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _020632A0 ; =0x0001020F @@ -1675,7 +1675,7 @@ FUN_020632A4: ; 0x020632A4 add r0, r4, #0x0 add r0, #0xd4 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x1 str r0, [sp, #0x1c] mov r0, #0x0 @@ -1901,7 +1901,7 @@ FUN_02063430: ; 0x02063430 add r0, r4, #0x0 add r0, #0xf4 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0x0 str r1, [sp, #0x0] ldr r0, _020634D8 ; =0x00010200 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index e238bee00..e2feaf961 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -146,7 +146,7 @@ FUN_020654D0: ; 0x020654D0 add r5, r1, #0x0 lsl r0, r0, #0x4 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0x0 mov r0, #0x69 lsl r0, r0, #0x2 @@ -256,7 +256,7 @@ FUN_020655B0: ; 0x020655B0 add r4, r1, #0x0 lsl r0, r0, #0x4 ldr r0, [r4, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r5, r0, #0x0 ldr r0, _02065638 ; =gMain mov r1, #0x2 @@ -967,12 +967,12 @@ FUN_02065AF4: ; 0x02065AF4 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x65 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldrb r0, [r5, #0x1b] ldr r1, [r5, #0x0] add r0, r0, #0x1 @@ -1295,7 +1295,7 @@ FUN_02065DD8: ; 0x02065DD8 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r7, #0x43 ldr r6, _02065ECC ; =UNK_020F7EAC mov r4, #0x0 @@ -2006,7 +2006,7 @@ FUN_02066334: ; 0x02066334 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r3-r4, pc} .balign 4 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 879f7f487..2c5a9ba6d 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -147,7 +147,7 @@ FUN_0206C700: ; 0x0206C700 bl FUN_02019064 ldr r0, [r4, #0x4] mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x4] mov r1, #0x0 mov r2, #0x1 @@ -2673,7 +2673,7 @@ FUN_0206DD6C: ; 0x0206DD6C bl FreeToHeap ldr r0, [r4, #0x4] mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x2c] bl Options_GetTextFrameDelay mov r3, #0x0 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index b7b79b0e5..b1a1edbd7 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -5223,7 +5223,7 @@ FUN_02071CB4: ; 0x02071CB4 lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072B7C @@ -5645,7 +5645,7 @@ _02072054: bl FUN_0200D0BC add r0, r5, r7 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl FUN_0207322C add r0, r4, #0x0 @@ -5902,7 +5902,7 @@ _02072282: lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl FUN_0207322C mov r0, #0xb @@ -6066,7 +6066,7 @@ _020723D6: lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl FUN_0207322C ldr r0, _02072410 ; =0x000005A4 diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index 5b3ed0a35..901eea031 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -1042,14 +1042,14 @@ FUN_02072D1C: ; 0x02072D1C str r0, [sp, #0x4] add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x1 lsl r0, r0, #0x4 add r7, r5, #0x4 str r0, [sp, #0x8] add r0, r7, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r7, #0x0 str r0, [sp, #0xc] add r0, r4, #0x2 @@ -1058,7 +1058,7 @@ FUN_02072D1C: ; 0x02072D1C str r0, [sp, #0x10] add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r7, #0x0 str r0, [sp, #0x14] add r0, r4, #0x3 @@ -1066,7 +1066,7 @@ FUN_02072D1C: ; 0x02072D1C ldr r0, [sp, #0x14] mov r1, #0x0 add r0, r0, r4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072A54 @@ -1179,13 +1179,13 @@ FUN_02072E4C: ; 0x02072E4C lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 @@ -1249,13 +1249,13 @@ FUN_02072EE4: ; 0x02072EE4 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 @@ -1319,13 +1319,13 @@ FUN_02072F78: ; 0x02072F78 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 @@ -1367,13 +1367,13 @@ FUN_02072FDC: ; 0x02072FDC lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 @@ -1463,12 +1463,12 @@ FUN_02073094: ; 0x02073094 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x7d lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x1 tst r0, r4 beq _020730FE @@ -1563,7 +1563,7 @@ FUN_02073160: ; 0x02073160 _0207317A: add r0, r4, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x0 mvn r0, r0 cmp r6, r0 @@ -1634,7 +1634,7 @@ FUN_020731E8: ; 0x020731E8 _02073202: add r0, r5, r6 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x0 mvn r0, r0 cmp r4, r0 @@ -1763,7 +1763,7 @@ FUN_020732F4: ; 0x020732F4 add r0, r4, r6 mov r1, #0x0 add r7, r2, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r7, #0x0 beq _02073318 cmp r7, #0x1 @@ -1817,7 +1817,7 @@ FUN_02073364: ; 0x02073364 add r0, r4, r7 mov r1, #0x0 add r6, r2, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r6, #0x0 beq _0207338C cmp r6, #0x1 @@ -1880,7 +1880,7 @@ FUN_020733E4: ; 0x020733E4 add r0, r4, r6 mov r1, #0x0 add r7, r2, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r7, #0x0 ldr r0, _02073440 ; =0x0000069C bne _0207340E @@ -1928,7 +1928,7 @@ FUN_02073448: ; 0x02073448 add r0, r4, r7 mov r1, #0x0 add r6, r2, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r6, #0x6 ldr r0, _020734B8 ; =0x0000069C bhs _02073476 @@ -2046,7 +2046,7 @@ FUN_020734C0: ; 0x020734C0 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r4, #0x0 str r4, [sp, #0x14] add r7, r5, #0x0 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 6635b399e..a854727bc 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -316,7 +316,7 @@ _02074018: lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl FUN_0207322C mov r0, #0xf diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index 144886219..743c2845b 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -1403,7 +1403,7 @@ _020760D4: lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _02076134 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] @@ -1672,7 +1672,7 @@ _020762DC: lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _020763E0 ; =0x00000B25 add r0, r4, #0x0 ldrb r1, [r4, r1] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index a5d7b26dc..6ed83b149 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1013,7 +1013,7 @@ _02077594: ldr r0, _020776B0 ; =0x00000448 mov r1, #0xf add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _020776B0 ; =0x00000448 mov r2, #0x1 add r0, r4, r0 @@ -3359,7 +3359,7 @@ FUN_020788C4: ; 0x020788C4 _020788DE: add r0, r5, #0x0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0x0 str r1, [sp, #0x0] ldr r0, _02078908 ; =0x000E0F01 @@ -3524,7 +3524,7 @@ _020789D8: lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x3 str r0, [sp, #0x0] mov r0, #0x7 @@ -3548,7 +3548,7 @@ _020789D8: ldr r0, _02078B74 ; =0x00000438 mov r1, #0x1 add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r5, #0x0] cmp r1, #0x5 bne _02078A90 @@ -3581,7 +3581,7 @@ _02078A90: ldr r0, _02078B78 ; =0x00000448 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0x5e ldr r0, _02078B78 ; =0x00000448 lsl r2, r2, #0x2 @@ -3640,7 +3640,7 @@ _02078B0E: bl FUN_02019064 add r0, r7, r6 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r4, #0x1 cmp r4, #0x3 blt _02078B0E @@ -3661,7 +3661,7 @@ _02078B0E: ldr r0, _02078B84 ; =0x00000428 mov r1, #0x0 add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r4-r7, pc} .balign 4 @@ -4212,7 +4212,7 @@ FUN_02078FA0: ; 0x02078FA0 mov r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x0 ldr r3, _0207906C ; =0x000D0E0F add r0, #0x30 @@ -4266,7 +4266,7 @@ _02079012: strh r1, [r0, #0x2] add r0, r6, r7 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 add r1, sp, #0xc bl CopyU16ArrayToString @@ -4563,7 +4563,7 @@ _0207924A: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 @@ -4599,7 +4599,7 @@ _0207927C: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 @@ -4632,7 +4632,7 @@ _020792CA: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 @@ -4708,7 +4708,7 @@ _0207936A: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r4, r0] @@ -4835,7 +4835,7 @@ _02079470: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 @@ -5203,7 +5203,7 @@ FUN_0207974C: ; 0x0207974C add r5, r0, #0x0 str r3, [sp, #0x14] str r2, [sp, #0x30] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _0207982C ; =UNK_020F9D30 ldr r0, [sp, #0x10] mov r7, #0x0 diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index 2546b9058..0fab5e2c3 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -82,7 +82,7 @@ _0207D5C4: bl FUN_02019150 add r0, r4, r6 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 @@ -300,7 +300,7 @@ FUN_0207D768: ; 0x0207D768 lsl r4, r4, #0x2 add r0, r5, r4 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0x0 add r2, r4, #0x0 str r1, [sp, #0x0] @@ -371,7 +371,7 @@ FUN_0207D800: ; 0x0207D800 lsl r6, r6, #0x2 add r0, r5, r6 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0x0 add r0, #0x8c ldr r0, [r5, r0] @@ -444,7 +444,7 @@ FUN_0207D8A0: ; 0x0207D8A0 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0207D918 ; =0x0000025E ldrh r2, [r5, r0] cmp r2, #0x0 @@ -504,7 +504,7 @@ FUN_0207D924: ; 0x0207D924 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207D954 ; =0x000F0E00 @@ -1151,37 +1151,37 @@ FUN_0207DE3C: ; 0x0207DE3C lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0x93 lsl r1, r1, #0x2 ldr r0, [r4, r1] @@ -1522,7 +1522,7 @@ FUN_0207E190: ; 0x0207E190 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl FUN_0207B628 add r6, r0, #0x0 @@ -1601,49 +1601,49 @@ FUN_0207E200: ; 0x0207E200 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x60 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x70 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1875,7 +1875,7 @@ _0207E4C6: ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0207E584 ; =0x00000674 mov r1, #0xa5 ldr r0, [r4, r2] @@ -1929,7 +1929,7 @@ _0207E4C6: sub r0, #0x8 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0207E584 ; =0x00000674 mov r1, #0xa3 ldr r0, [r4, r2] @@ -1991,25 +1991,25 @@ _0207E5BC: lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207EA44 @@ -2074,25 +2074,25 @@ _0207E678: lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207EA44 @@ -2144,7 +2144,7 @@ FUN_0207E70C: ; 0x0207E70C lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x0 str r0, [sp, #0x0] ldr r2, _0207E780 ; =0x00000699 @@ -2214,7 +2214,7 @@ _0207E7BC: ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0207E830 ; =0x00000674 mov r1, #0xa5 ldr r0, [r4, r2] @@ -2278,7 +2278,7 @@ FUN_0207E840: ; 0x0207E840 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0207E994 ; =0x00000674 mov r1, #0xba ldr r0, [r5, r0] @@ -2436,13 +2436,13 @@ FUN_0207E9A0: ; 0x0207E9A0 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0207EA34 ; =0x0000069A mov r1, #0x3 ldrb r0, [r4, r0] @@ -2659,19 +2659,19 @@ FUN_0207EB64: ; 0x0207EB64 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x60 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x70 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0x2 bl GetWazaAttr @@ -2819,7 +2819,7 @@ FUN_0207ECDC: ; 0x0207ECDC ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0x4 bl FUN_0207EA44 @@ -2862,7 +2862,7 @@ FUN_0207ED30: ; 0x0207ED30 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] @@ -2873,7 +2873,7 @@ FUN_0207ED30: ; 0x0207ED30 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _0207EDB0 ; =0x0000068D add r0, r4, #0x0 ldrb r1, [r4, r1] @@ -2946,7 +2946,7 @@ _0207EDEE: _0207EDF6: add r0, r4, #0x0 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0207EE24 ; =0x00000674 mov r1, #0x9c ldr r0, [r5, r2] @@ -2977,7 +2977,7 @@ FUN_0207EE2C: ; 0x0207EE2C add r4, r1, #0x0 add r0, #0x50 mov r1, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0x0 mov r1, #0xa bl GetWazaAttr @@ -3098,7 +3098,7 @@ _0207EF10: bl FUN_0200D0BC add r0, r6, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _0207EF64 ; =0x00000674 add r1, r5, #0x0 ldr r0, [r4, r2] diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 7e7745fe9..b3f2444c9 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -552,7 +552,7 @@ FUN_02086784: ; 0x02086784 bl FUN_0200D0BC add r0, r5, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0x0 bl CopyWindowToVram add sp, #0x14 @@ -567,7 +567,7 @@ FUN_020867EC: ; 0x020867EC str r0, [sp, #0xc] str r2, [sp, #0x10] add r6, r3, #0x0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _02086874 ; =0x0000013F mov r0, #0x0 mov r1, #0x1a diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 2be81a9fd..94714e95b 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -556,7 +556,7 @@ FUN_0208A77C: ; 0x0208A77C bl FUN_02019064 add r0, r7, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r6, #0x0 add r4, r6, #0x0 _0208A7D2: @@ -644,7 +644,7 @@ FUN_0208A82C: ; 0x0208A82C bl FUN_02019064 add r0, r7, #0x0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r6, #0x0 add r4, r6, #0x0 _0208A882: diff --git a/arm9/global.inc b/arm9/global.inc index fb6a23220..c6cbbcedc 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -189,7 +189,7 @@ .extern FUN_02000F18 .extern HandleDSLidAction .extern ListMenuInit -.extern FUN_02001204 +.extern ListMenu_ProcessInput .extern FUN_02001300 .extern FUN_02001328 .extern FUN_02001354 @@ -1098,7 +1098,7 @@ .extern FUN_020195D0 .extern FUN_020195E4 .extern FUN_0201960C -.extern FUN_02019620 +.extern FillWindowPixelBuffer .extern FUN_02019658 .extern FUN_02019684 .extern FUN_020196F4 diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 74e58b664..74ef40cf9 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -1045,7 +1045,7 @@ _021E22B8: mov r0, #0x6d lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #0x6d mov r1, #0xb5 @@ -1189,7 +1189,7 @@ MOD05_021E23D0: ; 0x021E23D0 add r6, r0, #0 ldr r0, [r5, #0x18] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x8c ldr r0, [r0] @@ -1750,7 +1750,7 @@ MOD05_021E27E8: ; 0x021E27E8 bl FUN_0200CCA4 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0x7a mov r0, #0 mov r1, #0x1a @@ -1936,7 +1936,7 @@ MOD05_021E29C8: ; 0x021E29C8 str r1, [sp, #0xc] add r0, r1, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021E2A6C ; =0x00000141 mov r0, #0 mov r1, #0x1a @@ -2054,7 +2054,7 @@ MOD05_021E2AD4: ; 0x021E2AD4 str r1, [sp, #0xc] add r0, r1, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021E2B7C ; =0x00000141 mov r0, #0 mov r1, #0x1a diff --git a/arm9/modules/05/asm/mod05_021E2B80.s b/arm9/modules/05/asm/mod05_021E2B80.s index 16e19ae01..8a1f94134 100644 --- a/arm9/modules/05/asm/mod05_021E2B80.s +++ b/arm9/modules/05/asm/mod05_021E2B80.s @@ -296,7 +296,7 @@ MOD05_CreateMessageBox: ; 0x021E2D9C _021E2DC8: ldr r0, [r4, #0xc] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer pop {r3, r4, r5, pc} .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s index 0666b52d5..f83ed12c2 100644 --- a/arm9/modules/05/asm/mod05_021E2E88.s +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -146,7 +146,7 @@ _021E2F92: add r0, r5, #0 add r0, #0x20 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #8 str r2, [sp] add r0, r5, #0 diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s index 7a66cdcb8..08407e834 100644 --- a/arm9/modules/05/asm/mod05_021E8310.s +++ b/arm9/modules/05/asm/mod05_021E8310.s @@ -279,7 +279,7 @@ MOD05_021E84F4: ; 0x021E84F4 bl FUN_02002E4C add r1, r0, #0 ldr r0, [r4, #0x10] - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl MOD05_021E8410 ldr r0, [r4, #0x10] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 7289aee23..4e5e67fea 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -2766,7 +2766,7 @@ _021E9C02: lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x83 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -3738,7 +3738,7 @@ _021EA430: lsl r0, r0, #8 ldr r0, [r4, r0] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] @@ -5404,7 +5404,7 @@ _021EB18E: bl FUN_02017FB4 ldr r0, [r4] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] bl FUN_02019220 ldr r0, [r5] @@ -15298,7 +15298,7 @@ MOD05_021EFFC8: ; 0x021EFFC8 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #4] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #1 mvn r0, r0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 7c6a92f1a..1974440b5 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9246,7 +9246,7 @@ _0223DD0C: add r0, r4, #0 add r0, #0x18 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #1 mvn r1, r1 cmp r5, r1 @@ -9456,7 +9456,7 @@ MOD06_0223DED0: ; 0x0223DED0 bne _0223DF1C add r0, #0x28 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x28 mov r1, #1 @@ -9560,7 +9560,7 @@ MOD06_0223DFB4: ; 0x0223DFB4 add r2, #2 bl FUN_02001448 ldr r0, [r5, #0x78] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 ldr r0, [r5, #0x78] mov r1, #0 @@ -9637,7 +9637,7 @@ _0223E034: add r0, r5, #0 add r0, #0x58 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x18 bl FUN_02019570 @@ -9832,7 +9832,7 @@ _0223E214: add r0, r5, #0 add r0, #0x48 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x48 mov r1, #1 @@ -9934,7 +9934,7 @@ _0223E2C4: add r0, r4, #0 add r0, #0x58 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0223E380 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 @@ -10167,7 +10167,7 @@ MOD06_0223E4E8: ; 0x0223E4E8 add r4, r1, #0 add r0, #0x38 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r4, #0 bne _0223E50A add r0, r5, #0 @@ -10429,7 +10429,7 @@ _0223E704: add r0, r5, #0 add r0, #0x58 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0x23 lsl r2, r2, #4 ldr r1, [r5, r2] @@ -10644,7 +10644,7 @@ _0223E88A: add r0, r5, #0 add r0, #0x58 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0x23 lsl r2, r2, #4 ldr r1, [r5, r2] @@ -11853,7 +11853,7 @@ _0223F2AA: mov r1, #0xf ldr r0, [r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0223F330 ; =0x02252420 ldr r0, [r0] add r0, #0x30 @@ -12074,7 +12074,7 @@ _0223F49A: ldr r0, _0223F518 ; =0x02252420 ldr r0, [r0] ldr r0, [r0, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput _0223F4A4: mov r1, #1 mvn r1, r1 @@ -12611,7 +12611,7 @@ _0223F910: mov r1, #0xf ldr r0, [r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0223F950 ; =0x02252420 ldr r0, [r0] add r0, #0x30 @@ -12727,7 +12727,7 @@ _0223FA02: mov r1, #0xf ldr r0, [r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0223FA5C ; =0x02252420 add r1, r4, #0 ldr r2, [r0] @@ -12995,7 +12995,7 @@ _0223FC14: _0223FC32: ldr r0, [sp, #4] ldr r0, [r0, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 bl FUN_0202DF08 cmp r0, #0xff @@ -13094,7 +13094,7 @@ MOD06_0223FD08: ; 0x0223FD08 add r0, r4, #0 bl MOD06_0223F9D8 ldr r0, [r4, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, [r4, #0x60] mov r1, #4 bl FUN_020021AC @@ -13421,7 +13421,7 @@ MOD06_0223FFD4: ; 0x0223FFD4 mov r0, #0 bl FUN_02031A24 ldr r0, [r4, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, _02240020 ; =0x02252420 ldr r0, [r0] add r0, #0x94 @@ -13459,7 +13459,7 @@ MOD06_02240030: ; 0x02240030 add r0, r5, #0 bl MOD06_0223F9D8 ldr r0, [r5, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, [r5, #0x60] mov r1, #4 bl FUN_020021AC @@ -13681,7 +13681,7 @@ MOD06_02240204: ; 0x02240204 add r0, r4, #0 bl MOD06_0223F9D8 ldr r0, [r4, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, _02240248 ; =0x02252420 ldr r0, [r0] add r0, #0x94 @@ -13719,7 +13719,7 @@ MOD06_02240258: ; 0x02240258 add r0, r5, #0 bl MOD06_0223F9D8 ldr r0, [r5, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, [r5, #0x60] mov r1, #4 bl FUN_020021AC @@ -13778,7 +13778,7 @@ _022402DC: add r0, r4, #0 bl MOD06_0223F9D8 ldr r0, [r4, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r0, #0xa bl FUN_020315D8 cmp r0, #0 @@ -13804,7 +13804,7 @@ MOD06_02240310: ; 0x02240310 add r0, r4, #0 bl MOD06_0223F9D8 ldr r0, [r4, #0x5c] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r0, _02240354 ; =0x02252420 ldr r0, [r0] add r0, #0x94 @@ -13843,7 +13843,7 @@ MOD06_02240364: ; 0x02240364 ldr r0, [r0] mov r1, #0xf add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x20 mov r1, #0 @@ -14711,7 +14711,7 @@ MOD06_02240A64: ; 0x02240A64 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r2, r5, #0 ldr r0, [r5] @@ -14873,7 +14873,7 @@ MOD06_02240BB8: ; 0x02240BB8 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #4] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r2, r5, #0 ldr r0, [r5, #4] @@ -14992,7 +14992,7 @@ MOD06_02240C58: ; 0x02240C58 bl FUN_0200CCA4 ldr r0, [sp, #0x24] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x14] add r1, r0, #0 add r1, #0x78 @@ -19287,7 +19287,7 @@ MOD06_02242F1C: ; 0x02242F1C add r4, r0, #0 add r0, #0x88 ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #1 mvn r1, r1 cmp r0, r1 @@ -19331,7 +19331,7 @@ _02242F6E: add r0, r4, #0 add r0, #0x88 ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #1 mvn r1, r1 cmp r0, r1 @@ -19480,7 +19480,7 @@ MOD06_02243080: ; 0x02243080 add r0, r5, #0 add r0, #0x14 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x54] ldr r1, [sp, #0xc] add r2, r4, #0 @@ -40892,7 +40892,7 @@ MOD06_0224D46C: ; 0x0224D46C bl FUN_0200CCA4 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x64 mov r1, #0xb bl String_ctor @@ -41813,7 +41813,7 @@ MOD06_0224DC5C: ; 0x0224DC5C bl FUN_02019064 ldr r0, [r5, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #4] mov r1, #0 mov r2, #1 @@ -41859,7 +41859,7 @@ MOD06_0224DCD8: ; 0x0224DCD8 _0224DCEC: ldr r0, [r5, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r1, r6, #0 bl StringDup @@ -42077,7 +42077,7 @@ _0224DEA8: str r0, [r6, #0xc] ldr r0, [r6, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [r6] _0224DED2: @@ -42148,7 +42148,7 @@ MOD06_0224DF1C: ; 0x0224DF1C bl BufferIntegerAsString ldr r0, [r5, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r7, #0 add r6, r5, #0 add r4, r7, #0 @@ -42463,7 +42463,7 @@ MOD06_0224E1E4: ; 0x0224E1E4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #8] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0 add r4, r0, #0 mvn r1, r1 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 3cef2d249..48e34649c 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -4900,19 +4900,19 @@ MOD07_02214600: ; 0x02214600 mov r1, #0 str r2, [sp, #0xc] str r3, [sp, #0x10] - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 add r0, #0x10 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 add r0, #0x20 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 add r0, #0x30 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x28] ldr r1, [sp, #8] str r0, [sp] diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 55a90a71f..ade67f558 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -4718,7 +4718,7 @@ MOD09_022143F8: ; 0x022143F8 ldr r0, _02214450 ; =0x00002050 mov r1, #0xf add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02214454 ; =0x00001FA8 add r1, r5, #0 ldr r0, [r4, r0] @@ -6461,7 +6461,7 @@ _02215362: _02215368: add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _022153A8 ; =0x00001FA8 mov r1, #0x3c ldr r0, [r4, r0] @@ -6748,7 +6748,7 @@ _022155EE: ldr r0, [sp, #8] add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r0, [r6, #8] cmp r0, #0 beq _0221563E @@ -6884,22 +6884,22 @@ MOD09_022156FC: ; 0x022156FC ldr r0, _02215780 ; =0x00002070 mov r1, #0 ldr r0, [r4, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215780 ; =0x00002070 mov r1, #0 ldr r0, [r4, r0] add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215780 ; =0x00002070 mov r1, #0 ldr r0, [r4, r0] add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215780 ; =0x00002070 mov r1, #0 ldr r0, [r4, r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r4] add r0, r4, #0 ldrb r1, [r1, #0x11] @@ -7122,7 +7122,7 @@ MOD09_022158EC: ; 0x022158EC lsl r0, r6, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #1 lsl r0, r0, #4 str r0, [sp, #0x18] @@ -7131,7 +7131,7 @@ MOD09_022158EC: ; 0x022158EC ldr r0, [sp, #0x18] add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #2 lsl r0, r0, #4 str r0, [sp, #0x14] @@ -7140,7 +7140,7 @@ MOD09_022158EC: ; 0x022158EC ldr r0, [sp, #0x14] add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #3 lsl r0, r0, #4 str r0, [sp, #0x10] @@ -7149,7 +7149,7 @@ MOD09_022158EC: ; 0x022158EC ldr r0, [sp, #0x10] add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #4 lsl r0, r0, #4 str r0, [sp, #0xc] @@ -7158,12 +7158,12 @@ MOD09_022158EC: ; 0x022158EC ldr r0, [sp, #0xc] add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215A20 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0 str r2, [sp] str r2, [sp, #4] @@ -7269,63 +7269,63 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] mov r0, #5 lsl r0, r0, #6 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xe0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xf0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] mov r0, #1 lsl r0, r0, #8 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] mov r0, #0x11 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] mov r0, #0x12 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xd0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] mov r0, #0x15 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] lsl r0, r4, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #0 @@ -7333,7 +7333,7 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #0 @@ -7341,7 +7341,7 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #0 @@ -7349,28 +7349,28 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #5 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #6 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #7 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #0 @@ -7378,7 +7378,7 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #0 @@ -7386,35 +7386,35 @@ MOD09_02215A2C: ; 0x02215A2C lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #4 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #1 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #2 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215C40 ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #3 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0 str r2, [sp] str r2, [sp, #4] @@ -7502,68 +7502,68 @@ MOD09_02215C44: ; 0x02215C44 mul r4, r1 add r0, #0x60 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x70 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x80 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x90 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xa0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #1 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] lsl r0, r4, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #2 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #3 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #5 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215D9C ; =0x00002070 ldr r1, [r5, r0] add r0, r4, #4 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5] add r2, r5, #0 ldrb r3, [r0, #0x11] @@ -7652,32 +7652,32 @@ MOD09_02215DA8: ; 0x02215DA8 ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02215EC4 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -7785,62 +7785,62 @@ MOD09_02215ED0: ; 0x02215ED0 ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x60 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x70 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x90 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xa0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x80 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216090 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0xb0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -7983,27 +7983,27 @@ MOD09_0221609C: ; 0x0221609C ldr r0, _02216184 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216184 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216184 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216184 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216184 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -8112,37 +8112,37 @@ MOD09_022161B0: ; 0x022161B0 ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x50 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02216304 ; =0x00002070 mov r1, #0 ldr r0, [r5, r0] add r0, #0x60 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -8275,7 +8275,7 @@ MOD09_02216314: ; 0x02216314 ldr r0, _02216338 ; =0x00002060 mov r1, #0xf add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl MOD09_0221633C pop {r4, pc} @@ -14486,7 +14486,7 @@ _022195C4: ldr r0, [r5, #0x2c] add r1, r7, #0 add r0, r0, r4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r4, #0x10 cmp r6, #5 @@ -14588,7 +14588,7 @@ MOD09_02219694: ; 0x02219694 add r0, r4, r6 mov r1, #0 str r2, [sp, #0x10] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02219730 ; =0x0000114D lsl r7, r7, #2 ldrb r1, [r5, r0] @@ -14664,7 +14664,7 @@ MOD09_02219738: ; 0x02219738 add r0, r4, r7 mov r1, #0 str r2, [sp, #0x10] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _022197C4 ; =0x0000114D lsl r6, r6, #2 ldrb r1, [r5, r0] @@ -14827,7 +14827,7 @@ MOD09_02219884: ; 0x02219884 lsl r0, r0, #4 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x10] mov r1, #0x1c ldr r4, [r5, #0x2c] @@ -14962,7 +14962,7 @@ MOD09_022199B4: ; 0x022199B4 lsl r0, r0, #6 add r0, r1, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02219A6C ; =0x0000114D ldrb r0, [r4, r0] cmp r0, #3 @@ -15089,7 +15089,7 @@ MOD09_02219A8C: ; 0x02219A8C bl StringExpandPlaceholders add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -15170,7 +15170,7 @@ _02219B6C: ldr r0, [r5, #0x2c] add r1, r7, #0 add r0, r0, r4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r4, #0x10 cmp r6, #4 @@ -15230,7 +15230,7 @@ MOD09_02219BE0: ; 0x02219BE0 add r0, r4, #0 add r0, #0x1c mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl MOD09_02219C08 pop {r4, pc} diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 32981b60b..08cd42c8a 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -633,7 +633,7 @@ _0222D99A: bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #8] mov r1, #0 mov r2, #1 @@ -795,7 +795,7 @@ _0222DC42: bl FUN_02019064 ldr r0, [r4, #8] mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #8] mov r1, #0 mov r2, #1 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 62996375c..6f66fe903 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -186,7 +186,7 @@ _0222F30E: bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #8] mov r1, #0 mov r2, #1 @@ -4854,7 +4854,7 @@ _022316CC: add r4, r0, #0 add r0, r6, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] @@ -4892,7 +4892,7 @@ _02231708: add r4, r0, #0 add r0, r6, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] @@ -4917,7 +4917,7 @@ _0223174C: bl GetTrainerMessageByIdPair add r0, r6, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 ldr r0, [sp, #0x28] str r3, [sp] @@ -4962,7 +4962,7 @@ MOD11_0223178C: ; 0x0223178C bl MOD11_022321EC add r0, r7, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] ldr r0, _022317DC ; =MOD11_0223220C @@ -5000,7 +5000,7 @@ MOD11_022317E0: ; 0x022317E0 beq _02231814 add r0, r4, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer _02231814: ldr r1, [sp, #0x28] mov r0, #2 @@ -23862,7 +23862,7 @@ _0223AC50: bl FUN_02019064 add r0, r5, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 mov r1, #0 mov r2, #1 @@ -62294,7 +62294,7 @@ MOD11_0224D518: ; 0x0224D518 bl MOD11_0222FF6C add r6, r0, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0 bl FUN_02019548 mov r1, #0x65 @@ -71657,7 +71657,7 @@ _022520D2: bl MOD11_0222FF6C add r6, r0, #0 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0 bl FUN_02019548 ldr r0, [r4] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index f717789ac..247571cb5 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -15225,7 +15225,7 @@ MOD12_02234EFC: ; 0x02234EFC add r4, r0, #0 add r0, #0x34 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, #0x34 add r0, r4, #0 bl CopyWindowToVram @@ -15275,7 +15275,7 @@ _02234F42: add r0, r5, #0 add r0, #0x34 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r4, [sp, #4] @@ -25518,7 +25518,7 @@ _02239AF4: add r0, r5, #0 add r0, #0x34 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r4, [sp, #4] @@ -34767,7 +34767,7 @@ _0223E210: add r0, r5, #0 add r0, #0x78 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r4, [sp, #4] @@ -35104,7 +35104,7 @@ _0223E49A: add r0, r5, #0 add r0, #0x88 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -43554,7 +43554,7 @@ _02242618: add r0, r5, #0 add r0, #0x34 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r4, [sp, #4] @@ -43894,13 +43894,13 @@ _022428E6: str r0, [sp, #0x14] add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #5 lsl r0, r0, #4 str r0, [sp, #0x18] add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 str r0, [sp] mov r0, #0 @@ -47014,7 +47014,7 @@ _022440EE: ldr r0, [r4] mov r1, #0xff add r0, #0x34 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] add r0, #0x34 bl CopyWindowToVram diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 37a18d6dc..9399db6ea 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -20058,7 +20058,7 @@ MOD14_021E1284: ; 0x021E1284 ldr r4, [r0, #4] add r4, #0x30 add r0, r4, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r2, [r5, #2] ldr r1, [r5, #8] add r0, r4, #0 @@ -20233,19 +20233,19 @@ MOD14_021E13F0: ; 0x021E13F0 beq _021E144E ldr r0, [r4, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x10] bl MOD14_021DC408 cmp r0, #0 @@ -20276,19 +20276,19 @@ MOD14_021E1450: ; 0x021E1450 beq _021E14CC ldr r0, [r4, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x24] cmp r0, #0 beq _021E148E @@ -20334,19 +20334,19 @@ MOD14_021E14D0: ; 0x021E14D0 beq _021E153A ldr r0, [r4, #4] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x10 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0xf add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] mov r1, #0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x24] cmp r0, #0 beq _021E150E @@ -20615,7 +20615,7 @@ MOD14_021E1704: ; 0x021E1704 ldr r0, [r5, #4] mov r1, #0 add r0, #0x30 - bl FUN_02019620 + bl FillWindowPixelBuffer ldrb r0, [r4, #0xf] cmp r0, #0 bne _021E1742 @@ -20828,7 +20828,7 @@ MOD14_021E189C: ; 0x021E189C bl MOD14_021E1908 ldr r0, [r5, #0x18] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x10] ldr r2, [r5, #0x30] add r1, r4, #0 @@ -20976,7 +20976,7 @@ _021E19E8: str r0, [sp, #0x14] add r0, #0x10 str r0, [sp, #0x14] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x10] mov r6, #0 add r0, #0x21 @@ -22259,7 +22259,7 @@ MOD14_021E2394: ; 0x021E2394 add r6, r0, #0 add r0, r4, #0 mov r1, #7 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -22288,7 +22288,7 @@ MOD14_021E23F8: ; 0x021E23F8 ldr r4, [r0, #0x10] mov r1, #7 add r0, r4, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl FUN_02019548 pop {r4, pc} @@ -22303,7 +22303,7 @@ MOD14_021E240C: ; 0x021E240C str r0, [sp, #0xc] add r0, #0x10 str r0, [sp, #0xc] - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r7, #0 bl MOD14_021E2188 mov r6, #0 @@ -22345,7 +22345,7 @@ MOD14_021E2464: ; 0x021E2464 mov r1, #4 add r4, #0x10 add r0, r4, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl FUN_02019548 pop {r4, pc} @@ -22698,7 +22698,7 @@ MOD14_021E26E4: ; 0x021E26E4 ldr r0, [r5, #0x10] mov r1, #4 add r0, #0x20 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021E279C ; =0x00004BF8 add r1, r6, #0 ldr r0, [r5, r2] @@ -24684,7 +24684,7 @@ MOD14_021E355C: ; 0x021E355C add r0, r4, #0 add r0, #0x88 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x88 bl CopyWindowToVram @@ -28653,11 +28653,11 @@ _021E541E: add r0, r7, #0 add r0, #0x78 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r7, #0 add r0, #0x88 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r7, #0 mov r5, #0 add r4, #0x78 @@ -28797,7 +28797,7 @@ _021E554C: bl FUN_02019270 add r0, r5, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r7, #8 cmp r6, #2 @@ -28983,7 +28983,7 @@ _021E56B4: bl FUN_02019270 add r0, r5, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r7, #8 cmp r6, #2 @@ -29032,7 +29032,7 @@ MOD14_021E5718: ; 0x021E5718 add r7, #0x98 add r0, r7, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #8] bl MOD14_021DC560 cmp r0, #0 @@ -29116,7 +29116,7 @@ MOD14_021E57CC: ; 0x021E57CC add r4, #0x98 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl FUN_02019548 pop {r4, pc} @@ -29156,7 +29156,7 @@ _021E581A: str r0, [sp, #0x14] add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x18] cmp r0, #1 bne _021E5836 @@ -29299,7 +29299,7 @@ _021E593E: str r0, [sp, #0x18] add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x1c] cmp r0, #1 bne _021E595A @@ -29753,7 +29753,7 @@ MOD14_021E5CFC: ; 0x021E5CFC add r4, r1, r0 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #8] bl MOD14_021DC3F0 cmp r0, #0 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 560be1201..e994d6da7 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -4749,7 +4749,7 @@ MOD15_021D9964: ; 0x021D9964 add r0, r4, #0 add r0, #0xc mov r1, #0xd - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #0 @@ -5194,7 +5194,7 @@ MOD15_021D9CB4: ; 0x021D9CB4 add r5, r1, #0 add r0, #0x1c mov r1, #9 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r5, #3 bhi _021D9DB0 add r0, r5, r5 @@ -5462,7 +5462,7 @@ MOD15_021D9ECC: ; 0x021D9ECC add r4, r1, #0 add r0, #0x2c mov r1, #9 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x48] ldr r2, [r5, #0x4c] mov r1, #9 @@ -5650,7 +5650,7 @@ MOD15_021DA044: ; 0x021DA044 bl FUN_02019270 add r0, sp, #0x10 mov r1, #0xe - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _021DA0B0 ; =0x00000183 mov r0, #0x1a add r2, r4, #0 @@ -6021,7 +6021,7 @@ _021DA31A: bl FUN_02019064 add r0, sp, #0x28 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 add r1, r5, #0 add r2, r0, #0 @@ -6102,7 +6102,7 @@ _021DA3CC: add r4, r0, #0 add r0, sp, #0x20 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer bl MOD15_021DB770 add r7, r0, #0 ldr r5, _021DA474 ; =0x00000000 @@ -6215,7 +6215,7 @@ _021DA4C2: bl FUN_02019064 add r0, r6, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] mov r0, #0xff @@ -6769,7 +6769,7 @@ MOD15_021DA8E8: ; 0x021DA8E8 add r0, r5, #0 add r0, #0x10 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x10 bl FUN_02019270 @@ -6853,7 +6853,7 @@ MOD15_021DA9D4: ; 0x021DA9D4 add r6, r0, #0 add r0, #0x10 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0 bl MOD15_021DAD78 ldr r0, [r6, #4] @@ -7378,7 +7378,7 @@ _021DADD4: add r0, r5, #0 add r0, #0x20 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 26ae4fbfe..68e9336c8 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -3518,7 +3518,7 @@ MOD16_021D8F60: ; 0x021D8F60 bl FUN_02019064 add r0, r4, #4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #4 bl CopyWindowToVram add sp, #0x14 @@ -13350,7 +13350,7 @@ _021DD77E: ldr r0, [r5] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5] mov r1, #1 ldr r0, [r0] @@ -13505,7 +13505,7 @@ _021DD8A8: ldr r0, [r5] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5] mov r1, #1 ldr r0, [r0] @@ -16653,7 +16653,7 @@ MOD16_021DEFF8: ; 0x021DEFF8 ldr r0, [r5] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5] mov r1, #7 add r0, r0, #4 @@ -16737,7 +16737,7 @@ MOD16_021DF0BC: ; 0x021DF0BC ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] mov r1, #0 add r0, r0, #4 @@ -17852,7 +17852,7 @@ _021DF92E: ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] add r0, r0, #4 bl FUN_02019220 @@ -17883,7 +17883,7 @@ MOD16_021DF970: ; 0x021DF970 add r4, r1, #0 add r0, r5, #4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x5e add r1, r4, #0 bl MOD16_021D8270 @@ -17928,7 +17928,7 @@ MOD16_021DF9C0: ; 0x021DF9C0 ldr r0, [r5] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r4] add r0, r5, #0 add r2, r6, #0 @@ -26946,7 +26946,7 @@ MOD16_021E3B70: ; 0x021E3B70 add r6, r2, #0 add r0, r0, #4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer str r6, [sp] ldr r3, _021E3BBC ; =0x000007F8 ldr r0, [r4] @@ -26985,7 +26985,7 @@ MOD16_021E3BC8: ; 0x021E3BC8 ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] mov r1, #1 ldr r0, [r0] @@ -27335,7 +27335,7 @@ MOD16_021E3E6C: ; 0x021E3E6C ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #2 lsl r0, r0, #0xa ldr r3, [r5, r0] @@ -29593,7 +29593,7 @@ MOD16_021E4EE4: ; 0x021E4EE4 ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r1, r4, #0 bl MOD16_021E5224 @@ -34307,7 +34307,7 @@ MOD16_021E71A8: ; 0x021E71A8 ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r1, r4, #0 bl MOD16_021E753C @@ -45513,7 +45513,7 @@ MOD16_021EC574: ; 0x021EC574 ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] mov r1, #1 ldr r0, [r0] @@ -48265,7 +48265,7 @@ MOD16_021EDA3C: ; 0x021EDA3C ldr r0, [r4] mov r1, #0 add r0, r0, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4] mov r1, #1 ldr r0, [r0] @@ -51473,7 +51473,7 @@ MOD16_021EF318: ; 0x021EF318 bl FUN_02019064 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl CopyWindowToVram add r0, r4, #0 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 82398e6bd..03989527e 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -4691,7 +4691,7 @@ MOD17_021D9918: ; 0x021D9918 ldr r0, _021D99D4 ; =0x000006A8 mov r1, #0xf ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -4753,7 +4753,7 @@ MOD17_021D99E0: ; 0x021D99E0 add r4, r1, #0 ldr r0, [r5, r0] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021D9A5C ; =0x00000151 mov r0, #0 mov r1, #0x1a @@ -4818,7 +4818,7 @@ _021D9A7E: ldr r0, _021D9B08 ; =0x000006A8 mov r1, #0xf ldr r0, [r5, r0] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021D9B0C ; =0x00000151 mov r0, #0 mov r1, #0x1a @@ -11436,7 +11436,7 @@ _021DC9CC: lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -11817,7 +11817,7 @@ MOD17_021DCC68: ; 0x021DCC68 bl FUN_02019064 ldr r0, [r5] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x34] cmp r0, #0 beq _021DCCCC @@ -11860,7 +11860,7 @@ MOD17_021DCCEC: ; 0x021DCCEC add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x28] add r1, r4, #0 str r0, [sp] @@ -11896,7 +11896,7 @@ MOD17_021DCD34: ; 0x021DCD34 add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x28] add r1, r4, #0 str r0, [sp] @@ -12396,7 +12396,7 @@ _021DD0D0: bl MOD17_021DCC68 ldr r0, [r7, #0x18] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] mov r3, #4 @@ -14313,7 +14313,7 @@ MOD17_021DDFAC: ; 0x021DDFAC lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0xc] cmp r0, #0 bne _021DDFCA diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index b90914e22..78cc22200 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22355,7 +22355,7 @@ _022442B2: pop {r3, r4, r5, r6, r7, pc} _022442CA: ldr r0, [sp, #4] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r1, r5, #0 ldr r0, [sp, #4] @@ -23187,7 +23187,7 @@ MOD18_0224486C: ; 0x0224486C bl FUN_020545B8 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x80 str r3, [sp] mov r2, #4 @@ -29766,7 +29766,7 @@ MOD18_02247C98: ; 0x02247C98 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #0x20] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD18_02248FEC @@ -29919,7 +29919,7 @@ MOD18_02247DD8: ; 0x02247DD8 add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #0x20] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD18_02248FEC @@ -30102,7 +30102,7 @@ MOD18_02247F5C: ; 0x02247F5C add r5, r1, #0 add r6, r0, #0 ldr r0, [r5, #0x20] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD18_02248FEC @@ -31298,7 +31298,7 @@ MOD18_022488F0: ; 0x022488F0 add r5, r1, #0 add r7, r0, #0 ldr r0, [r5, #0x1c] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r1, r5, #0 ldr r0, [r5, #0x1c] @@ -33957,7 +33957,7 @@ MOD18_02249DB8: ; 0x02249DB8 push {r4, r5, r6, lr} add r5, r1, #0 ldr r0, [r5, #0x50] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0x93 add r4, r0, #0 lsl r1, r1, #2 @@ -34434,7 +34434,7 @@ MOD18_0224A1C0: ; 0x0224A1C0 push {r4, r5, r6, lr} add r5, r1, #0 ldr r0, [r5, #0x50] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0x93 add r4, r0, #0 lsl r1, r1, #2 @@ -34858,7 +34858,7 @@ MOD18_0224A550: ; 0x0224A550 push {r4, r5, r6, lr} add r5, r1, #0 ldr r0, [r5, #0x50] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0x93 add r4, r0, #0 lsl r1, r1, #2 @@ -35800,7 +35800,7 @@ MOD18_0224AD04: ; 0x0224AD04 push {r4, r5, r6, lr} add r5, r1, #0 ldr r0, [r5, #0x50] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0x93 add r4, r0, #0 lsl r1, r1, #2 @@ -36486,7 +36486,7 @@ MOD18_0224B250: ; 0x0224B250 push {r3, r4, r5, lr} add r4, r1, #0 ldr r0, [r4, #0x48] - bl FUN_02001204 + bl ListMenu_ProcessInput add r5, r0, #0 add r1, sp, #0 ldr r0, [r4, #0x48] @@ -36862,7 +36862,7 @@ MOD18_0224B560: ; 0x0224B560 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x48] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r1, sp, #0 ldr r0, [r5, #0x48] @@ -38642,7 +38642,7 @@ _0224C434: add r0, r4, #0 add r0, #0x20 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer bl MOD18_0223D658 bl MOD18_0224DBB4 ldr r1, _0224C504 ; =0x00000247 @@ -38756,7 +38756,7 @@ MOD18_0224C510: ; 0x0224C510 add r0, #0x20 mov r1, #0xf mov r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x10] cmp r0, #0 beq _0224C546 @@ -39490,7 +39490,7 @@ _0224CB1A: add r0, r4, #0 add r0, #0x20 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, #0x20 add r0, r4, #0 bl CopyWindowToVram @@ -39531,7 +39531,7 @@ MOD18_0224CB34: ; 0x0224CB34 add r0, r5, #0 add r0, #0x30 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x30 bl CopyWindowToVram @@ -39680,7 +39680,7 @@ _0224CC7E: pop {r4, r5, r6, pc} _0224CC8E: ldr r0, [r4, #0x48] - bl FUN_02001204 + bl ListMenu_ProcessInput add r5, r0, #0 add r1, sp, #4 ldr r0, [r4, #0x48] @@ -39771,7 +39771,7 @@ _0224CD32: pop {r4, r5, r6, pc} _0224CD48: ldr r0, [r4, #0x48] - bl FUN_02001204 + bl ListMenu_ProcessInput add r5, r0, #0 add r1, sp, #4 ldr r0, [r4, #0x48] @@ -40827,7 +40827,7 @@ MOD18_0224D5CC: ; 0x0224D5CC add r0, r4, #0 add r0, #8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x30] cmp r0, #0 beq _0224D644 @@ -41332,7 +41332,7 @@ MOD18_0224DA00: ; 0x0224DA00 add r0, r5, #0 add r0, #8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 ldr r3, _0224DAA0 ; =0x022513FC str r6, [sp] @@ -41590,7 +41590,7 @@ _0224DC4C: add r0, r5, #0 add r0, #8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 ldr r2, _0224DCB0 ; =0x000001E2 add r0, #8 @@ -42345,7 +42345,7 @@ MOD18_0224E0CC: ; 0x0224E0CC add r0, r5, #0 add r0, #0x14 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r7, #0 mov r1, #0 bl NewString_ReadMsgData @@ -42429,7 +42429,7 @@ MOD18_0224E210: ; 0x0224E210 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x28] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD18_0224E73C @@ -42804,7 +42804,7 @@ _0224E454: add r0, r5, #0 add r0, #0x18 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x24] mov r1, #9 bl NewString_ReadMsgData diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index 2888f12de..19ece4741 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -681,7 +681,7 @@ MOD24_02254D00: ; 0x02254D00 bne _02254D38 ldr r0, [r4, #0x70] mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer _02254D38: mov r0, #1 pop {r4, pc} diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index fcd3cbc99..2bbabb41b 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -1108,7 +1108,7 @@ MOD36_0225503C: ; 0x0225503C add r0, r4, #0 add r0, #0x48 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer _02255082: add r0, r4, #0 add r0, #0x48 @@ -1298,7 +1298,7 @@ MOD36_022551E0: ; 0x022551E0 add r0, r4, #0 add r0, #0x48 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, #0x48 add r0, r4, #0 bl FUN_02019548 diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s index e1d888d44..89e7ff797 100644 --- a/arm9/modules/38/asm/module_38.s +++ b/arm9/modules/38/asm/module_38.s @@ -1046,7 +1046,7 @@ MOD38_0225500C: ; 0x0225500C add r0, r4, #0 mov r1, #4 add r6, r2, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r6, #0x12 bne _02255036 add r0, r5, #0 @@ -1106,7 +1106,7 @@ MOD38_02255084: ; 0x02255084 add r0, r4, #0 mov r1, #4 add r6, r2, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r2, r5, #0 add r0, #0xb8 diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index 89b232596..fd20dc175 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -654,7 +654,7 @@ MOD43_02254CD0: ; 0x02254CD0 bl FUN_02019064 add r0, sp, #0x14 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s index abb1ea34b..3ec4768c3 100644 --- a/arm9/modules/47/asm/module_47.s +++ b/arm9/modules/47/asm/module_47.s @@ -1162,7 +1162,7 @@ MOD47_022550FC: ; 0x022550FC add r4, r0, #0 add r0, #0x20 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x58] ldr r2, [r4, #0x5c] mov r1, #0 @@ -1225,7 +1225,7 @@ MOD47_02255184: ; 0x02255184 add r4, r0, #0 add r0, #0x20 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x58] ldr r2, [r4, #0x5c] mov r1, #1 @@ -1265,7 +1265,7 @@ MOD47_022551D8: ; 0x022551D8 add r4, r0, #0 add r0, #0x20 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x58] ldr r2, [r4, #0x5c] mov r1, #2 @@ -1322,7 +1322,7 @@ MOD47_02255250: ; 0x02255250 add r4, r0, #0 add r0, #0x20 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x58] ldr r2, [r4, #0x5c] mov r1, #2 @@ -1386,7 +1386,7 @@ MOD47_022552D8: ; 0x022552D8 add r7, r1, #0 add r0, #0x20 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x58] ldr r2, [r5, #0x5c] mov r1, #5 diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s index bce289da2..1de7ea96e 100644 --- a/arm9/modules/49/asm/module_49.s +++ b/arm9/modules/49/asm/module_49.s @@ -421,7 +421,7 @@ MOD49_02254AD4: ; 0x02254AD4 bl FUN_02019064 add r0, sp, #0x1c mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, sp, #0x1c bl FUN_02019270 ldr r1, _02254BD4 ; =0x00000197 diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s index 60bdd0165..aa0549bdc 100644 --- a/arm9/modules/51/asm/module_51.s +++ b/arm9/modules/51/asm/module_51.s @@ -165,7 +165,7 @@ _02254960: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl CopyWindowToVram ldr r0, [sp, #0x18] @@ -193,7 +193,7 @@ _02254960: add r0, r5, #0 add r0, #0x10 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x10 bl CopyWindowToVram @@ -221,7 +221,7 @@ _02254960: add r0, r5, #0 add r0, #0x20 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x20 bl CopyWindowToVram @@ -792,20 +792,20 @@ MOD51_02254E48: ; 0x02254E48 add r7, r5, r0 add r0, r7, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x76 lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x1c] add r0, r0, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x7a lsl r0, r0, #2 add r5, r5, r0 add r0, r5, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #2 str r0, [sp] mov r0, #0xff diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index b4fd4d809..42385e75b 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -1325,7 +1325,7 @@ MOD53_021D7FDC: ; 0x021D7FDC lsl r0, r0, #2 add r0, r7, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #2 str r0, [sp] mov r0, #0x1e @@ -1346,7 +1346,7 @@ MOD53_021D7FDC: ; 0x021D7FDC lsl r0, r0, #2 add r0, r7, r0 mov r1, #2 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x15 str r0, [sp] mov r0, #6 @@ -1368,7 +1368,7 @@ MOD53_021D7FDC: ; 0x021D7FDC lsl r0, r0, #2 add r0, r7, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r7, #0x28] mov r0, #1 mov r2, #0 @@ -1415,7 +1415,7 @@ _021D80A8: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x14] add r6, #0x14 add r0, r0, #1 @@ -3633,7 +3633,7 @@ MOD53_021D91C8: ; 0x021D91C8 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 904d1c7f8..1131a268c 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -1081,7 +1081,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -1103,7 +1103,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] mov r0, #0x1a @@ -1148,7 +1148,7 @@ MOD54_021D7DB4: ; 0x021D7DB4 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xa6 lsl r0, r0, #2 ldr r2, _021D7E94 ; =0x00010300 @@ -1176,7 +1176,7 @@ MOD54_021D7E98: ; 0x021D7E98 add r6, r0, #0 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #1 str r1, [sp] mov r0, #0x41 @@ -2787,7 +2787,7 @@ MOD54_021D8AF8: ; 0x021D8AF8 _021D8B18: add r0, r6, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r7, [sp, #0x14] mov r0, #0 str r0, [sp, #0x20] @@ -3013,7 +3013,7 @@ MOD54_021D8C90: ; 0x021D8C90 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xba lsl r0, r0, #2 add r0, r5, r0 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index fec8672e3..d2fdf544e 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -1238,7 +1238,7 @@ _021D7F02: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r2, r5, #0 add r2, #0xc0 ldr r0, [r5, #0x10] @@ -1305,7 +1305,7 @@ _021D7F86: bl FUN_02019064 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r6, #2 bne _021D7FF4 ldr r0, [r5, #8] @@ -2618,7 +2618,7 @@ _021D89AE: add r7, r0, #0 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] mov r0, #0xff @@ -2775,7 +2775,7 @@ _021D8AEE: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r2, r5, #0 add r2, #0xc0 ldr r0, [r5, #0x10] @@ -2834,7 +2834,7 @@ _021D8B6C: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r2, r5, #0 add r2, #0xd0 ldr r0, [r5, #0x10] @@ -2917,7 +2917,7 @@ _021D8C02: bl FUN_02019064 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl FUN_02019220 add r6, r6, #1 @@ -3374,7 +3374,7 @@ _021D9002: mov r0, #0xea lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput ldr r1, _021D90D0 ; =0x00000418 add r4, r0, #0 add r0, r1, #0 @@ -3605,7 +3605,7 @@ _021D91D6: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #8] bl Sav2_PlayerData_GetProfileAddr add r2, r0, #0 @@ -3677,7 +3677,7 @@ _021D9278: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 mov r0, #0 eor r1, r4 @@ -3781,7 +3781,7 @@ _021D9338: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r1, r5, #0 add r1, #0xbc mov r0, #0 @@ -4164,7 +4164,7 @@ _021D969A: lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x34 bl PlayerProfile_new str r0, [sp, #0x20] @@ -4243,7 +4243,7 @@ _021D974E: lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0xc] ldr r2, [sp, #0x20] mov r1, #0 @@ -4382,7 +4382,7 @@ _021D987C: lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r2, r4, #0 add r2, #0xc4 ldr r0, [r4, #0x10] @@ -5397,7 +5397,7 @@ _021DA0D0: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xce lsl r0, r0, #2 ldr r2, _021DA158 ; =0x000001E2 @@ -5478,7 +5478,7 @@ _021DA17C: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xce lsl r0, r0, #2 ldr r2, _021DA210 ; =0x000001E2 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index fa8325c22..3ba5c1be6 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -1342,7 +1342,7 @@ _022128CE: lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 mov r2, #0x16 add r0, #0xcc @@ -2786,7 +2786,7 @@ _0221344C: lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -3712,7 +3712,7 @@ _02213B2C: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 mov r2, #0x16 add r0, #0xcc @@ -4139,7 +4139,7 @@ _02213ECE: add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 _02213EE8: mov r0, #1 @@ -5180,7 +5180,7 @@ _022146EE: add r0, r5, #0 add r0, #0xbc ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD56_02213BF4 @@ -5463,7 +5463,7 @@ _0221493C: add r0, r5, #0 add r0, #0xbc ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 add r0, r5, #0 bl MOD56_02213BF4 @@ -5837,7 +5837,7 @@ _02214C1E: add r0, r4, #0 add r0, #0xbc ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r5, r0, #0 add r0, r4, #0 bl MOD56_02213BF4 @@ -7019,7 +7019,7 @@ _02215532: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] @@ -7569,7 +7569,7 @@ MOD56_022159B0: ; 0x022159B0 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 mov r2, #0x16 add r0, #0xcc @@ -8272,7 +8272,7 @@ _02215F82: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xcf lsl r0, r0, #2 ldr r2, _02215FF0 ; =0x000001E2 @@ -8388,7 +8388,7 @@ _02216048: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xdb lsl r0, r0, #2 ldr r2, _022160E0 ; =0x000001D9 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 93c1c39d2..9a7a8402e 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -1077,7 +1077,7 @@ MOD58_021DA30C: ; 0x021DA30C lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #9 str r0, [sp] mov r0, #0x18 @@ -1097,7 +1097,7 @@ MOD58_021DA30C: ; 0x021DA30C lsl r0, r0, #2 add r0, r5, r0 mov r1, #2 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x15 str r0, [sp] mov r0, #8 @@ -1118,7 +1118,7 @@ MOD58_021DA30C: ; 0x021DA30C lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _021DA4BC ; =0x000E0702 mov r2, #1 str r0, [sp] @@ -1189,7 +1189,7 @@ _021DA3C2: lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r3, #0xe0 @@ -1234,7 +1234,7 @@ _021DA46A: bl FUN_02019064 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x14] add r7, #0x14 add r0, r0, #1 @@ -1646,7 +1646,7 @@ _021DA7A4: lsl r0, r0, #2 add r0, r5, r0 mov r1, #2 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xb1 lsl r0, r0, #2 add r0, r5, r0 @@ -2217,7 +2217,7 @@ MOD58_021DAB94: ; 0x021DAB94 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xb5 lsl r0, r0, #2 add r0, r5, r0 diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index cc593cac5..b4cc612f1 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -1111,7 +1111,7 @@ _021D7DF2: b _021D7E96 _021D7E4C: ldr r0, [r5, #0x40] - bl FUN_02001204 + bl ListMenu_ProcessInput mov r1, #0 mvn r1, r1 str r0, [r5, #0x48] diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index 418fa446b..c01c83ffa 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -922,15 +922,15 @@ MOD60_021D7BA4: ; 0x021D7BA4 add r0, r4, #0 add r0, #0x2c mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x3c mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x4c mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x4c bl FUN_020192B8 @@ -980,7 +980,7 @@ _021D7CF0: bl FUN_02019570 add r0, r5, r4 add r1, r7, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 bl FUN_020192B8 add r0, r5, r4 diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index 3afc1e03e..54af7ce16 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -305,7 +305,7 @@ _021D7702: add r0, r5, #0 add r0, #0x94 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r5] mov r0, #0x4c bl String_ctor @@ -432,7 +432,7 @@ _021D77F2: add r0, r5, #0 add r0, #0x94 mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r5] mov r0, #0x4c bl String_ctor @@ -1484,7 +1484,7 @@ MOD61_021D7FF4: ; 0x021D7FF4 _021D80BE: add r0, r5, #0 add r1, r6, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r4, #5 bge _021D80D0 add r0, r5, #0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index d65fb1173..d0afdb757 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -3251,7 +3251,7 @@ MOD62_0222EE78: ; 0x0222EE78 cmp r5, r1 bne _0222EE96 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl CopyWindowToVram add sp, #0xc @@ -3268,7 +3268,7 @@ _0222EE96: add r5, r0, #0 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -3331,7 +3331,7 @@ MOD62_0222EEE0: ; 0x0222EEE0 bl FUN_0200D0BC add r0, r5, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl CopyWindowToVram add sp, #0x14 @@ -3377,7 +3377,7 @@ MOD62_0222EF44: ; 0x0222EF44 bl FUN_02019064 add r0, r5, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl CopyWindowToVram add sp, #0x14 @@ -3552,14 +3552,14 @@ _0222F0E2: bne _0222F0FE add r0, r5, #0 mov r1, #0xee - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl CopyWindowToVram b _0222F152 _0222F0FE: add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x64 mov r1, #0x35 bl String_ctor @@ -3621,7 +3621,7 @@ MOD62_0222F168: ; 0x0222F168 bne _0222F194 add r0, r5, r4 mov r1, #0xee - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 bl CopyWindowToVram add sp, #0x14 @@ -3629,7 +3629,7 @@ MOD62_0222F168: ; 0x0222F168 _0222F194: add r0, r5, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x64 mov r1, #0x35 bl String_ctor @@ -3693,7 +3693,7 @@ MOD62_0222F208: ; 0x0222F208 cmp r5, r1 bne _0222F226 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl CopyWindowToVram add sp, #0xc @@ -3710,7 +3710,7 @@ _0222F226: add r5, r0, #0 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] str r1, [sp, #4] diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 0ade6b6c8..d8d296789 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -683,7 +683,7 @@ MOD64_021D7A54: ; 0x021D7A54 add r0, #0x98 ldr r0, [r0] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _021D7AE8 ; =0x000006A8 mov r1, #1 ldr r0, [r5, r0] @@ -2318,7 +2318,7 @@ _021D86F8: add r6, r0, #0 add r0, r5, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 ldr r0, [sp, #0x2c] str r3, [sp] @@ -2375,7 +2375,7 @@ _021D8770: str r0, [r4] add r0, r5, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 ldr r0, [sp, #0x2c] str r3, [sp] @@ -3511,7 +3511,7 @@ _021D8FEC: lsl r1, r1, #0x18 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index a772b2c82..9d2d4c834 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -335,7 +335,7 @@ _021D7762: add r0, r5, #0 add r0, #0xc4 ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 b _021D7796 _021D7784: @@ -425,7 +425,7 @@ MOD65_021D7818: ; 0x021D7818 add r5, r0, #0 add r0, #0xc8 ldr r0, [r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 ldr r0, _021D78A4 ; =gMain ldr r1, [r0, #0x48] @@ -998,7 +998,7 @@ _021D7C68: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, r7, #1 add r4, #8 add r5, #0x10 @@ -3269,7 +3269,7 @@ MOD65_021D8E68: ; 0x021D8E68 add r0, r4, #0 add r0, #0x6c mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x10] mov r1, #1 ldrb r0, [r0, #0xb] @@ -3842,7 +3842,7 @@ MOD65_021D92C4: ; 0x021D92C4 add r0, r4, #0 add r0, #0x6c mov r1, #0xff - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x20] bl StringSetEmpty mov r0, #1 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index e0b21bf2e..0dda816f2 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -1350,7 +1350,7 @@ _021D7F44: bl FUN_0200D6F8 add r0, r7, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] mov r0, #0xff @@ -1720,7 +1720,7 @@ MOD66_021D820C: ; 0x021D820C bl StringSetEmpty add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, #0xa0 ldr r0, [r6] cmp r0, #0 @@ -1801,7 +1801,7 @@ MOD66_021D82B8: ; 0x021D82B8 bne _021D82DC add r0, r6, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0 bl CopyWindowToVram add r0, r6, #0 @@ -1811,7 +1811,7 @@ MOD66_021D82B8: ; 0x021D82B8 _021D82DC: add r0, r6, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r1, [r4, #8] ldr r0, _021D8378 ; =0x0000FFFF cmp r1, r0 @@ -2044,7 +2044,7 @@ MOD66_021D8494: ; 0x021D8494 cmp r5, #0 beq _021D84C6 add r0, r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl FUN_02019570 ldrb r1, [r4, #0x15] @@ -2104,7 +2104,7 @@ MOD66_021D84C8: ; 0x021D84C8 sub r4, r1, r0 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -2212,23 +2212,23 @@ MOD66_021D8554: ; 0x021D8554 add r0, r4, #0 add r0, #0x28 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x38 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x48 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x58 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x68 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x28 bl CopyWindowToVram diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 4982fa309..2d417cd2f 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -1122,10 +1122,10 @@ _021D7DAC: _021D7DB4: add r0, r6, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index 5c2c17407..e80e78c98 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -555,7 +555,7 @@ MOD68_021D7958: ; 0x021D7958 add r4, r0, #0 add r0, r4, #4 mov r1, #4 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 ldr r3, _021D7974 ; =0x00010204 add r0, r4, #0 @@ -572,7 +572,7 @@ MOD68_021D7978: ; 0x021D7978 add r4, r0, #0 add r0, #0x24 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r3, _021D7994 ; =0x000F0200 add r0, r4, #0 mov r1, #2 @@ -589,7 +589,7 @@ MOD68_021D7998: ; 0x021D7998 add r4, r0, #0 add r0, #0x34 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r3, _021D79B4 ; =0x000F0200 add r0, r4, #0 mov r1, #3 @@ -606,7 +606,7 @@ MOD68_021D79B8: ; 0x021D79B8 add r4, r0, #0 add r0, #0x44 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r3, _021D79D4 ; =0x000F0200 add r0, r4, #0 mov r1, #4 @@ -623,7 +623,7 @@ MOD68_021D79D8: ; 0x021D79D8 add r4, r0, #0 add r0, #0x54 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r3, _021D79F4 ; =0x000F0200 add r0, r4, #0 mov r1, #5 @@ -640,7 +640,7 @@ MOD68_021D79F8: ; 0x021D79F8 add r4, r0, #0 add r0, #0x64 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r3, _021D7A14 ; =0x000F0200 add r0, r4, #0 mov r1, #6 @@ -660,7 +660,7 @@ MOD68_021D7A18: ; 0x021D7A18 add r4, #0x14 add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #5 str r0, [sp] add r0, r5, #0 @@ -752,7 +752,7 @@ MOD68_021D7AE4: ; 0x021D7AE4 add r5, #0xb4 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] @@ -790,7 +790,7 @@ MOD68_021D7B34: ; 0x021D7B34 add r5, #0x94 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, #0xc4 ldr r0, [r4] mov r1, #0xa @@ -826,7 +826,7 @@ MOD68_021D7B80: ; 0x021D7B80 add r5, #0xa4 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r4, r0] @@ -871,7 +871,7 @@ MOD68_021D7BDC: ; 0x021D7BDC add r5, #0x74 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, #0xc4 ldr r0, [r4] mov r1, #8 @@ -907,7 +907,7 @@ MOD68_021D7C28: ; 0x021D7C28 add r6, #0x84 add r0, r6, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x7f lsl r0, r0, #2 ldr r0, [r5, r0] diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 33fafb4f1..d88f4eb8e 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -793,7 +793,7 @@ MOD69_0222DBAC: ; 0x0222DBAC add r0, r4, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 bl FUN_02019548 @@ -2608,7 +2608,7 @@ _0222EAEA: _0222EB16: ldr r0, [r4, #0x10] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x10] bl FUN_02019548 ldr r0, [r4, #0x28] diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index a0966fec4..eb5ef9736 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -1022,11 +1022,11 @@ MOD70_021D7CC0: ; 0x021D7CC0 add r4, r0, #0 add r0, #0x14 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x24 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 bl FUN_02019548 @@ -1102,7 +1102,7 @@ MOD70_021D7CE8: ; 0x021D7CE8 bl StringExpandPlaceholders add r0, r6, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r2, #0xff @@ -1136,7 +1136,7 @@ MOD70_021D7D98: ; 0x021D7D98 add r0, #0x24 mov r1, #0xf str r0, [sp, #0xc] - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x1c] cmp r0, #0 beq _021D7DC8 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 637a45306..5a669930b 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -2700,7 +2700,7 @@ MOD71_0222EC5C: ; 0x0222EC5C bl GetMonData add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x20] ldr r2, [sp, #8] str r0, [sp] @@ -2910,7 +2910,7 @@ _0222EE14: str r0, [sp, #0x30] add r0, r6, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2985,7 +2985,7 @@ _0222EEA6: lsr r7, r0, #0x10 add r0, r6, r4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x14 mov r1, #0x1a bl String_ctor @@ -4313,7 +4313,7 @@ MOD71_0222F954: ; 0x0222F954 mov r0, #0xda lsl r0, r0, #6 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #1 mvn r0, r0 @@ -6627,7 +6627,7 @@ MOD71_02230C48: ; 0x02230C48 bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #1 add r1, r5, #0 str r2, [sp] @@ -6646,7 +6646,7 @@ MOD71_02230C48: ; 0x02230C48 add r0, r5, #0 add r0, #0x10 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x15 str r0, [sp] mov r0, #5 @@ -6666,7 +6666,7 @@ MOD71_02230C48: ; 0x02230C48 add r0, r5, #0 add r0, #0x60 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 bl Options_GetFrame lsl r0, r0, #0x18 @@ -6706,7 +6706,7 @@ MOD71_02230C48: ; 0x02230C48 lsl r0, r0, #4 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0xe @@ -6728,7 +6728,7 @@ MOD71_02230C48: ; 0x02230C48 lsl r0, r0, #4 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -6750,7 +6750,7 @@ MOD71_02230C48: ; 0x02230C48 lsl r0, r0, #4 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x11 str r0, [sp] mov r0, #0xb @@ -6771,7 +6771,7 @@ MOD71_02230C48: ; 0x02230C48 lsl r0, r0, #6 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0xb @@ -6792,7 +6792,7 @@ MOD71_02230C48: ; 0x02230C48 lsl r0, r0, #4 add r0, r5, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r4, _02230E80 ; =0x022313F4 mov r7, #0 mov r6, #0x33 @@ -6824,7 +6824,7 @@ _02230DE2: ldr r0, [sp, #0x18] mov r1, #0 add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, r7, #1 add r6, #0x10 add r4, r4, #4 @@ -6861,7 +6861,7 @@ _02230E2C: bl FUN_02019064 add r0, r5, r7 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r4, #0xa cmp r6, #8 @@ -6995,7 +6995,7 @@ _02230F6A: _02230F76: add r0, r5, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] ldr r0, _02230FAC ; =0x0001020F diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index d5105d7e0..cf221b3fb 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -4805,7 +4805,7 @@ MOD73_021D9AC8: ; 0x021D9AC8 add r4, r0, #0 ldr r0, [r4, #8] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r4, #0x18] mov r2, #0 ldr r0, [r4, #8] @@ -4984,10 +4984,10 @@ MOD73_021D9BE0: ; 0x021D9BE0 bl FUN_02019064 ldr r0, [r5, #8] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0xc] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r5, #0x10] mov r1, #4 lsl r0, r0, #0x18 @@ -5953,7 +5953,7 @@ _021DA2FA: bl FUN_02019064 ldr r0, [r4, #8] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r4, r4, #4 add r5, #0xc @@ -6099,7 +6099,7 @@ _021DA446: mov r1, #0 str r1, [r5, #0x30] ldr r0, [r5, #8] - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] ldr r0, _021DA498 ; =0x0001020F @@ -6173,7 +6173,7 @@ MOD73_021DA4D4: ; 0x021DA4D4 bl FUN_02018744 ldr r0, [r4, #0xc] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] ldr r0, _021DA54C ; =0x0001020F @@ -6192,7 +6192,7 @@ MOD73_021DA4D4: ; 0x021DA4D4 bl FUN_0200CCA4 ldr r0, [r4, #0x10] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] ldr r0, _021DA54C ; =0x0001020F @@ -6494,7 +6494,7 @@ MOD73_021DA770: ; 0x021DA770 ldr r0, [r4, #0x14] add r6, r1, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r6, #6 bhi _021DA7EC add r0, r6, r6 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 1fce128e8..0189a34da 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -771,7 +771,7 @@ _021D7A9A: bl FUN_02019150 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, r7, #1 add r4, #8 add r5, #0x10 @@ -790,7 +790,7 @@ _021D7AC0: bl FUN_02019150 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, r7, #1 add r4, #8 add r5, #0x10 @@ -1343,7 +1343,7 @@ MOD74_021D7F44: ; 0x021D7F44 mov r1, #0 add r5, r2, #0 add r4, r3, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r4, #8 blo _021D7F8C mov r0, #2 @@ -1637,7 +1637,7 @@ MOD74_021D818C: ; 0x021D818C add r0, r4, #0 add r0, #0x8c mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #4 str r0, [sp] mov r1, #0 @@ -1664,7 +1664,7 @@ MOD74_021D81E0: ; 0x021D81E0 add r4, r0, #0 add r0, #0x8c mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x8c bl FUN_02019570 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 707b3e927..e9293c4e3 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -1693,7 +1693,7 @@ _021E78F8: add r0, r5, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #1 mvn r1, r1 cmp r7, r1 @@ -1959,7 +1959,7 @@ _021E7B12: add r0, r4, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 bl FUN_02019570 @@ -2038,7 +2038,7 @@ _021E7BC0: mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 mov r0, #0x57 lsl r0, r0, #2 @@ -2396,11 +2396,11 @@ MOD75_021E7E60: ; 0x021E7E60 bl MOD75_021E7AA4 add r0, r4, #4 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #4 bl FUN_02019220 add r0, r4, #0 @@ -3776,7 +3776,7 @@ _021E892E: mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 mov r0, #0x57 lsl r0, r0, #2 @@ -4455,7 +4455,7 @@ MOD75_021E8E1C: ; 0x021E8E1C add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 ldr r2, _021E8EA8 ; =0x000003D9 add r0, #0x64 @@ -4567,7 +4567,7 @@ _021E8F3A: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 ldr r2, _021E8FB8 ; =0x000003D9 add r0, #0x64 @@ -4686,7 +4686,7 @@ _021E9046: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 ldr r2, _021E91A8 ; =0x000003D9 add r0, #0x64 @@ -4726,7 +4726,7 @@ _021E908E: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x46 mov r1, #0xfe lsl r0, r0, #2 @@ -5102,7 +5102,7 @@ MOD75_021E9394: ; 0x021E9394 _021E93AA: add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 ldr r2, _021E942C ; =0x000003D9 add r0, #0x64 @@ -5473,7 +5473,7 @@ _021E967A: add r0, r5, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl MOD75_021EB660 ldr r1, _021E9718 ; =0x00000426 @@ -5711,7 +5711,7 @@ _021E9872: add r0, r5, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 ldr r2, _021E9928 ; =0x000003D9 add r0, #0x64 @@ -5864,7 +5864,7 @@ _021E99C6: add r0, r5, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 ldr r2, _021E9B3C ; =0x000003D9 add r0, #0x64 @@ -6100,7 +6100,7 @@ _021E9BAC: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -6195,7 +6195,7 @@ _021E9C80: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -6405,7 +6405,7 @@ _021E9E2A: add r0, r5, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl MOD75_021EB660 ldr r1, _021E9EDC ; =0x00000426 @@ -6654,7 +6654,7 @@ _021EA016: add r0, r4, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 ldr r2, _021EA0C4 ; =0x000003D9 add r0, #0x64 @@ -7755,7 +7755,7 @@ MOD75_021EA8BC: ; 0x021EA8BC add r4, r0, #0 add r0, #0x24 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r2, r4, #0 add r2, #0xc4 ldr r6, [r2] @@ -7922,7 +7922,7 @@ MOD75_021EA9F8: ; 0x021EA9F8 add r0, r5, #0 add r0, #0x54 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _021EAAA0 ; =0x00000424 mov r4, #0 ldrb r0, [r5, r0] @@ -8971,7 +8971,7 @@ _021EB22E: add r0, r5, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] @@ -9001,7 +9001,7 @@ _021EB298: bl FUN_0200D0BC add r0, r4, r6 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9119,7 +9119,7 @@ _021EB37A: add r0, r5, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r1, r5, #0 add r1, #0xc4 ldr r1, [r1] @@ -9144,7 +9144,7 @@ MOD75_021EB3D8: ; 0x021EB3D8 add r5, r0, #0 add r0, #0x14 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9214,7 +9214,7 @@ MOD75_021EB454: ; 0x021EB454 add r0, r5, #0 add r0, #0x34 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9280,7 +9280,7 @@ MOD75_021EB504: ; 0x021EB504 add r4, #0x94 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9365,7 +9365,7 @@ MOD75_021EB5B0: ; 0x021EB5B0 add r0, r5, #0 add r0, #0x64 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9543,7 +9543,7 @@ MOD75_021EB708: ; 0x021EB708 _021EB722: add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x45 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -9654,7 +9654,7 @@ MOD75_021EB808: ; 0x021EB808 bne _021EB854 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021EB8E4 ; =0x000003F7 add r0, r4, #0 mov r1, #1 @@ -9755,7 +9755,7 @@ MOD75_021EB8E8: ; 0x021EB8E8 add r4, #0xa4 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r2, _021EB9B0 ; =0x000003F7 add r0, r4, #0 mov r1, #1 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 11317efb4..a1b276d4c 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -467,7 +467,7 @@ _021D78A8: bl FUN_02019150 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r6, r6, #1 add r4, #8 add r5, #0x10 @@ -478,7 +478,7 @@ _021D78A8: add r0, r7, #0 add r0, #0xc8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, #0xc8 add r0, r7, #0 mov r1, #0 @@ -600,7 +600,7 @@ _021D799C: mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 ldr r2, [r5] mov r0, #0x41 @@ -1418,19 +1418,19 @@ MOD76_021D800C: ; 0x021D800C add r4, r1, #0 add r0, #0xa8 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x78 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x88 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 add r0, #0x98 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x4b lsl r0, r0, #2 ldr r0, [r5, r0] @@ -1601,7 +1601,7 @@ MOD76_021D81AC: ; 0x021D81AC add r4, r1, #0 add r0, #0xb8 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #1 mvn r1, r1 cmp r4, r1 @@ -2043,7 +2043,7 @@ MOD76_021D853C: ; 0x021D853C add r5, r1, #0 add r0, #0xc8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 add r1, r5, #0 bl MOD76_021D8354 @@ -2169,7 +2169,7 @@ MOD76_021D862C: ; 0x021D862C add r4, r0, #0 add r0, #0xc8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 mov r1, #0 bl MOD76_021D8354 @@ -2217,7 +2217,7 @@ MOD76_021D8688: ; 0x021D8688 add r4, r0, #0 add r0, #0xc8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 mov r1, #0 bl MOD76_021D8354 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 786457f79..b47670c41 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -242,7 +242,7 @@ _021D76D6: _021D76FA: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 @@ -358,7 +358,7 @@ _021D77A2: _021D77DE: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 @@ -438,7 +438,7 @@ _021D7838: _021D7886: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 8de13d8d3..60122fa97 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -2951,7 +2951,7 @@ MOD80_0222EC98: ; 0x0222EC98 ldr r0, _0222ED88 ; =0x00000EB8 mov r1, #0 add r0, r7, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #2 str r0, [sp] mov r3, #0 @@ -2992,7 +2992,7 @@ _0222ECF2: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [sp, #0x14] add r6, #0x1e add r0, r0, #1 @@ -3019,7 +3019,7 @@ _0222ECF2: ldr r0, _0222ED94 ; =0x00000E98 mov r1, #0xf add r0, r7, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -3039,7 +3039,7 @@ _0222ECF2: ldr r0, _0222ED98 ; =0x00000FB8 mov r1, #0xf add r0, r7, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -3678,7 +3678,7 @@ MOD80_0222F250: ; 0x0222F250 ldr r0, _0222F2A0 ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0222F2A0 ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -3720,7 +3720,7 @@ MOD80_0222F2A8: ; 0x0222F2A8 ldr r0, _0222F2F8 ; =0x00000FB8 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0222F2F8 ; =0x00000FB8 mov r1, #0 add r0, r5, r0 @@ -3761,7 +3761,7 @@ MOD80_0222F300: ; 0x0222F300 add r6, r0, #0 add r0, r5, #0 lsr r1, r1, #0x18 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -4250,7 +4250,7 @@ MOD80_0222F6EC: ; 0x0222F6EC ldr r0, [sp, #0x14] add r0, r0, r1 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xf str r0, [sp] mov r0, #0xa @@ -4303,7 +4303,7 @@ _0222F754: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r4, #8] ldr r0, [r4, #0xc] add r7, r7, #1 @@ -4805,7 +4805,7 @@ MOD80_0222FB3C: ; 0x0222FB3C ldr r0, _0222FBB8 ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _0222FBB8 ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -4912,7 +4912,7 @@ MOD80_0222FBC0: ; 0x0222FBC0 _0222FC64: add r0, r5, #0 add r1, r7, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r4, #1 add r5, #0x10 cmp r4, #5 @@ -5506,7 +5506,7 @@ MOD80_02230128: ; 0x02230128 ldr r0, [sp, #0x14] add r0, r0, r1 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xf str r0, [sp] mov r0, #0xa @@ -5559,7 +5559,7 @@ _02230190: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, [r4, #8] ldr r0, [r4, #0xc] add r7, r7, #1 @@ -5983,7 +5983,7 @@ MOD80_022304F8: ; 0x022304F8 ldr r0, _02230548 ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02230548 ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -6061,7 +6061,7 @@ MOD80_022305A8: ; 0x022305A8 add r5, r0, #0 add r7, r2, #0 add r4, r3, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 str r0, [sp] ldr r0, _02230610 ; =0x000F0200 @@ -6113,7 +6113,7 @@ MOD80_02230614: ; 0x02230614 mov r1, #0 add r6, r0, #0 add r4, r2, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer cmp r5, #0 beq _0223063A mov r2, #0 @@ -6516,7 +6516,7 @@ MOD80_02230944: ; 0x02230944 ldr r0, [sp, #0x14] add r0, r0, r1 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0 mov r3, #0xb5 ldr r0, _02230A70 ; =0x000F0D00 @@ -6551,7 +6551,7 @@ MOD80_02230944: ; 0x02230944 ldr r0, [sp, #0x14] add r0, r0, r1 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r1, _02230A78 ; =0x00000F08 ldr r0, [sp, #0x14] ldr r4, _02230A7C ; =0x0223719C @@ -6582,7 +6582,7 @@ _022309D2: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r7, r7, #1 add r6, #0x16 add r4, r4, #4 @@ -6624,7 +6624,7 @@ _02230A20: ldr r0, [sp, #0x18] mov r1, #0 add r0, r0, r7 - bl FUN_02019620 + bl FillWindowPixelBuffer add r5, r5, #1 add r6, #0x10 add r4, r4, #4 @@ -7524,7 +7524,7 @@ MOD80_0223113C: ; 0x0223113C ldr r0, _022311BC ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #5 str r0, [sp] mov r0, #0xa @@ -7543,7 +7543,7 @@ MOD80_0223113C: ; 0x0223113C ldr r0, _022311C4 ; =0x00000EE8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 add sp, #0x14 pop {r3, r4, pc} @@ -7807,7 +7807,7 @@ _0223138C: ldr r0, _0223147C ; =0x00000F18 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] ldr r0, _02231480 ; =0x00010200 @@ -7847,7 +7847,7 @@ _0223138C: ldr r0, _02231488 ; =0x00000F38 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] mov r0, #2 @@ -7913,7 +7913,7 @@ MOD80_02231490: ; 0x02231490 ldr r0, _022314E8 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 add sp, #0x14 pop {r3, r4, pc} @@ -8025,7 +8025,7 @@ _0223158E: mov r1, #0 add r0, r5, r0 str r1, [r5, #0x2c] - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] mov r0, #2 @@ -8089,7 +8089,7 @@ MOD80_02231614: ; 0x02231614 ldr r0, _0223166C ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 add sp, #0x14 pop {r3, r4, pc} @@ -8199,7 +8199,7 @@ _0223170C: mov r1, #0 add r0, r5, r0 str r1, [r5, #0x2c] - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp] ldr r0, _02231788 ; =0x00010200 @@ -8377,7 +8377,7 @@ MOD80_0223187C: ; 0x0223187C ldr r0, _022318CC ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _022318CC ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -9121,7 +9121,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, _02231FDC ; =0x00000EB8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0 mov r1, #0xb5 ldr r0, _02231FE0 ; =0x000F0E00 @@ -9150,7 +9150,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, _02231FE4 ; =0x00000EC8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02231FE4 ; =0x00000EC8 add r0, r4, r0 bl CopyWindowToVram @@ -9172,7 +9172,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, _02231FE8 ; =0x00000E98 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x13 str r0, [sp] mov r0, #0x1b @@ -9192,7 +9192,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, _02231FF0 ; =0x00000FB8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x15 str r0, [sp] mov r0, #6 @@ -9212,7 +9212,7 @@ MOD80_02231EA8: ; 0x02231EA8 ldr r0, _02231FF8 ; =0x00000EE8 mov r1, #6 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #1 ldr r0, _02231FFC ; =0x00010306 str r3, [sp] @@ -10679,7 +10679,7 @@ _02232B62: add r4, r5, r0 add r0, r4, #0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r4, #0 mov r1, #0 mov r2, #1 @@ -11146,7 +11146,7 @@ _02232F22: ldr r0, _02232F9C ; =0x00000EC8 mov r1, #0 add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] ldr r0, _02232FA0 ; =0x00010200 @@ -11657,7 +11657,7 @@ MOD80_022332EC: ; 0x022332EC ldr r0, _02233350 ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02233350 ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -11908,7 +11908,7 @@ MOD80_02233500: ; 0x02233500 ldr r0, _022335CC ; =0x00000EB8 mov r1, #0 add r0, r7, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #0 mov r1, #0xb5 ldr r0, _022335D0 ; =0x000F0E00 @@ -11938,7 +11938,7 @@ MOD80_02233500: ; 0x02233500 ldr r0, _022335D4 ; =0x00000E98 mov r1, #0 add r0, r7, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0 str r0, [sp, #0x14] ldr r0, _022335D8 ; =0x00000F08 @@ -11968,7 +11968,7 @@ _0223357E: bl FUN_02019064 add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 bl CopyWindowToVram ldr r0, [sp, #0x14] @@ -12158,7 +12158,7 @@ _02233714: ldr r0, _02233778 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #5 str r0, [sp] mov r0, #0xa @@ -12177,7 +12177,7 @@ _02233714: ldr r0, _02233780 ; =0x00000EE8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 str r0, [r4, #0x2c] add sp, #0x14 @@ -12577,7 +12577,7 @@ MOD80_02233A6C: ; 0x02233A6C ldr r0, _02233AC4 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 add sp, #0x14 pop {r3, r4, pc} @@ -12752,7 +12752,7 @@ MOD80_02233BE8: ; 0x02233BE8 ldr r0, _02233C40 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #3 add sp, #0x14 pop {r3, r4, pc} @@ -13235,7 +13235,7 @@ MOD80_02233FB4: ; 0x02233FB4 _02233FE0: add r0, r5, #0 add r1, r7, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r4, #1 add r5, #0x10 cmp r4, #3 @@ -13307,7 +13307,7 @@ MOD80_02234048: ; 0x02234048 _02234074: add r0, r5, #0 add r1, r7, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r4, #1 add r5, #0x10 cmp r4, #3 @@ -13416,7 +13416,7 @@ _0223415A: _0223415E: add r0, r5, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r4, r4, #1 add r5, #0x10 cmp r4, #3 @@ -13867,7 +13867,7 @@ MOD80_022344DC: ; 0x022344DC mov r1, #0xf str r2, [sp, #0x10] str r3, [sp, #0x14] - bl FUN_02019620 + bl FillWindowPixelBuffer ldrh r1, [r5, #6] ldrh r0, [r5, #4] ldr r2, [sp, #0x14] @@ -14089,7 +14089,7 @@ MOD80_02234698: ; 0x02234698 sub sp, #4 add r5, r0, #0 add r4, r1, #0 - bl FUN_02001204 + bl ListMenu_ProcessInput add r6, r0, #0 add r0, r5, #0 add r1, sp, #0 @@ -14449,7 +14449,7 @@ MOD80_02234958: ; 0x02234958 ldr r0, _02234990 ; =0x00000E98 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r3, r4, pc} nop @@ -18128,7 +18128,7 @@ MOD80_02236580: ; 0x02236580 ldr r0, _02236628 ; =0x00000EC8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] mov r0, #0x18 @@ -18149,7 +18149,7 @@ MOD80_02236580: ; 0x02236580 ldr r0, _0223662C ; =0x00000EB8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #1 mov r1, #0xb5 ldr r0, _02236630 ; =0x000F0E00 @@ -18180,7 +18180,7 @@ MOD80_02236580: ; 0x02236580 ldr r0, _02236634 ; =0x00000E98 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r3, r4, pc} nop @@ -19051,7 +19051,7 @@ MOD80_02236C70: ; 0x02236C70 ldr r0, _02236CD8 ; =0x00000E98 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02236CD8 ; =0x00000E98 mov r1, #0 add r0, r5, r0 @@ -19206,7 +19206,7 @@ MOD80_02236D8C: ; 0x02236D8C ldr r0, _02236DFC ; =0x00000EC8 mov r1, #0xf add r0, r5, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02236DFC ; =0x00000EC8 mov r1, #1 add r0, r5, r0 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 94767f703..63312258e 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -2229,7 +2229,7 @@ MOD81_02238E44: ; 0x02238E44 add r0, r4, #0 add r0, #0x44 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x20 str r3, [sp] mov r0, #0x3a @@ -2527,7 +2527,7 @@ _0223918A: add r0, r4, #0 add r0, #0x44 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] mov r0, #0xff @@ -9281,7 +9281,7 @@ MOD81_0223C658: ; 0x0223C658 add r0, r4, #0 add r0, #0x48 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0x20 str r3, [sp] mov r0, #0x3a @@ -9640,7 +9640,7 @@ _0223C9D0: add r0, r4, #0 add r0, #0x48 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #0 str r3, [sp] mov r0, #0xff diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index b9d0df311..6af5c4447 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -1744,7 +1744,7 @@ MOD82_0222E35C: ; 0x0222E35C lsl r0, r0, #6 add r0, r4, r0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xe str r0, [sp] mov r0, #4 @@ -1766,7 +1766,7 @@ MOD82_0222E35C: ; 0x0222E35C lsl r0, r0, #4 add r0, r4, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0xe str r0, [sp] mov r0, #4 @@ -1788,7 +1788,7 @@ MOD82_0222E35C: ; 0x0222E35C lsl r0, r0, #4 add r0, r4, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r2, #1 mov r1, #0xdb lsl r1, r1, #4 @@ -1810,7 +1810,7 @@ MOD82_0222E35C: ; 0x0222E35C lsl r0, r0, #4 add r0, r4, r0 mov r1, #6 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #1 ldr r0, _0222E46C ; =0x00010406 str r3, [sp] @@ -1842,7 +1842,7 @@ MOD82_0222E35C: ; 0x0222E35C lsl r0, r0, #6 add r0, r4, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer add sp, #0x14 pop {r3, r4, pc} nop @@ -4037,7 +4037,7 @@ MOD82_0222F4D8: ; 0x0222F4D8 lsl r0, r0, #6 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x36 lsl r0, r0, #6 add r0, r5, r0 @@ -4132,7 +4132,7 @@ MOD82_0222F59C: ; 0x0222F59C lsl r0, r0, #6 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x36 lsl r0, r0, #6 add r0, r5, r0 @@ -4258,7 +4258,7 @@ MOD82_0222F694: ; 0x0222F694 add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #1 str r0, [sp] add r0, r4, #0 @@ -4375,7 +4375,7 @@ MOD82_0222F740: ; 0x0222F740 lsl r0, r0, #6 add r0, r5, r0 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer mov r0, #0x37 lsl r0, r0, #6 add r0, r5, r0 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 88803eb8d..671656326 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -5993,7 +5993,7 @@ MOD83_0223050C: ; 0x0223050C bl FUN_02002E4C add r1, r0, #0 add r0, r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r6, [r4, #0x14] cmp r6, #0 bne _02230554 @@ -6059,7 +6059,7 @@ MOD83_022305A4: ; 0x022305A4 bl FUN_02002E4C add r1, r0, #0 add r0, r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -6092,7 +6092,7 @@ MOD83_02230604: ; 0x02230604 add r6, r2, #0 bl OverlayManager_GetData ldr r0, [r0, #0x78] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #1 mvn r0, r0 @@ -8238,7 +8238,7 @@ MOD83_022317A8: ; 0x022317A8 bl FUN_02002E4C add r1, r0, #0 add r0, r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r6, #0 add r1, r4, #0 add r2, r7, #0 @@ -9125,7 +9125,7 @@ _02231EBE: bl FUN_02002E4C add r1, r0, #0 add r0, r6, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x18] ldr r3, [r4, #0x24] str r0, [sp, #0x28] @@ -9249,7 +9249,7 @@ _02231FD2: add r0, r6, #0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x20] cmp r0, #0 beq _02231FFE @@ -9529,7 +9529,7 @@ MOD83_02232208: ; 0x02232208 bl OverlayManager_GetData ldr r1, _02232270 ; =0x00002B68 ldr r0, [r0, r1] - bl FUN_02001204 + bl ListMenu_ProcessInput add r4, r0, #0 mov r0, #1 mvn r0, r0 @@ -10694,7 +10694,7 @@ _02232B94: ldr r0, _02232D1C ; =0x00002AA8 mov r1, #0 add r0, r4, r0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _02232D1C ; =0x00002AA8 add r0, r4, r0 bl CopyWindowToVram @@ -11088,7 +11088,7 @@ _02232E7E: mov r5, #0 ldr r0, [sp, #0x10] add r1, r5, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, #0 str r0, [sp, #0x14] cmp r6, #0 @@ -11230,7 +11230,7 @@ MOD83_02232FE4: ; 0x02232FE4 str r0, [r5, r1] add r0, r4, #0 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r3, #1 str r3, [sp] ldr r0, _0223307C ; =0x000029A0 @@ -15511,7 +15511,7 @@ _02234F7A: ldr r0, [r5] lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02019620 + bl FillWindowPixelBuffer _02234F8C: mov r0, #0 ldr r1, [r5, #0x34] @@ -23084,7 +23084,7 @@ MOD83_0223894C: ; 0x0223894C add r1, #0x48 ldrb r1, [r1] ldr r0, [r5, #0x10] - bl FUN_02019620 + bl FillWindowPixelBuffer _02238976: mov r0, #0 ldr r1, [r5, #0x4c] diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 66e7a1960..969429f04 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -577,7 +577,7 @@ MOD84_021D84F8: ; 0x021D84F8 bl FUN_02019064 ldr r0, [r4, #0x24] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, [r4, #0x24] bl FUN_02019270 ldr r0, [r4, #0x24] @@ -712,7 +712,7 @@ _021D864C: ble _021D86D0 ldr r0, [r5, #0x28] mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer mov r1, #0 str r1, [sp] mov r0, #0xff @@ -880,7 +880,7 @@ MOD84_021D87B0: ; 0x021D87B0 beq _021D87CE ldr r0, [r5, #0x24] mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r4, _021D8814 ; =0x0001020F b _021D87D0 _021D87CE: diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index adb495087..a77983407 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -847,7 +847,7 @@ MOD85_021D7BEC: ; 0x021D7BEC add r0, r4, #0 add r0, #8 mov r1, #0xf - bl FUN_02019620 + bl FillWindowPixelBuffer ldr r0, _021D7C40 ; =0x00000408 ldr r2, [r4, #0x18] ldr r0, [r5, r0] @@ -884,7 +884,7 @@ MOD85_021D7C44: ; 0x021D7C44 add r0, r5, r4 add r0, #8 mov r1, #0 - bl FUN_02019620 + bl FillWindowPixelBuffer add r0, r5, r4 add r0, #8 bl FUN_02019220 diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index a7508fab7..a9e0b94ed 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -344,8 +344,8 @@ void FUN_020163BC(void) gMain.unk3C = 0; gMain.unk40 = 0; gMain.unk44 = 0; - gMain.unk48 = 0; - gMain.unk4C = 0; + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = 0; gMain.unk50 = 0; gMain.unk54 = 8; gMain.unk58 = 15; @@ -387,9 +387,9 @@ void FUN_02016464(void) TPData raw, calib; if (PAD_DetectFold()) { - gMain.unk48 = 0; + gMain.newKeys = 0; gMain.unk44 = 0; - gMain.unk4C = 0; + gMain.newAndRepeatedKeys = 0; gMain.unk60 = 0; gMain.unk62 = 0; return; @@ -409,9 +409,9 @@ void FUN_02016464(void) gMain.unk50 = gMain.unk58; } gMain.unk38 = r0; - gMain.unk48 = gMain.unk3C; + gMain.newKeys = gMain.unk3C; gMain.unk44 = r0; - gMain.unk4C = gMain.unk40; + gMain.newAndRepeatedKeys = gMain.unk40; FUN_02016568(); if (gMain.unk64 == 0) { @@ -453,26 +453,26 @@ void FUN_02016568(void) case 0: // Normal break; case 1: // Start = X - if (gMain.unk48 & PAD_BUTTON_START) - gMain.unk48 |= PAD_BUTTON_X; + if (gMain.newKeys & PAD_BUTTON_START) + gMain.newKeys |= PAD_BUTTON_X; if (gMain.unk44 & PAD_BUTTON_START) gMain.unk44 |= PAD_BUTTON_X; - if (gMain.unk4C & PAD_BUTTON_START) - gMain.unk4C |= PAD_BUTTON_X; + if (gMain.newAndRepeatedKeys & PAD_BUTTON_START) + gMain.newAndRepeatedKeys |= PAD_BUTTON_X; break; case 2: // Swap X and Y; unused in the retail game { u32 r1 = 0; - if (gMain.unk48 & PAD_BUTTON_X) + if (gMain.newKeys & PAD_BUTTON_X) { r1 |= PAD_BUTTON_Y; } - if (gMain.unk48 & PAD_BUTTON_Y) + if (gMain.newKeys & PAD_BUTTON_Y) { r1 |= PAD_BUTTON_X; } - gMain.unk48 &= 0xF3FF; - gMain.unk48 |= r1; + gMain.newKeys &= 0xF3FF; + gMain.newKeys |= r1; } { u32 r1 = 0; @@ -489,28 +489,28 @@ void FUN_02016568(void) } { u32 r1 = 0; - if (gMain.unk4C & PAD_BUTTON_X) + if (gMain.newAndRepeatedKeys & PAD_BUTTON_X) { r1 |= PAD_BUTTON_Y; } - if (gMain.unk4C & PAD_BUTTON_Y) + if (gMain.newAndRepeatedKeys & PAD_BUTTON_Y) { r1 |= PAD_BUTTON_X; } - gMain.unk4C &= 0xF3FF; - gMain.unk4C |= r1; + gMain.newAndRepeatedKeys &= 0xF3FF; + gMain.newAndRepeatedKeys |= r1; } break; case 3: // L = A - if (gMain.unk48 & PAD_BUTTON_L) - gMain.unk48 |= PAD_BUTTON_A; + if (gMain.newKeys & PAD_BUTTON_L) + gMain.newKeys |= PAD_BUTTON_A; if (gMain.unk44 & PAD_BUTTON_L) gMain.unk44 |= PAD_BUTTON_A; - if (gMain.unk4C & PAD_BUTTON_L) - gMain.unk4C |= PAD_BUTTON_A; - gMain.unk48 &= 0xFCFF; + if (gMain.newAndRepeatedKeys & PAD_BUTTON_L) + gMain.newAndRepeatedKeys |= PAD_BUTTON_A; + gMain.newKeys &= 0xFCFF; gMain.unk44 &= 0xFCFF; - gMain.unk4C &= 0xFCFF; + gMain.newAndRepeatedKeys &= 0xFCFF; } } diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 981365620..a0069e322 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -2,14 +2,16 @@ #include "global.h" #include "heap.h" +#include "main.h" #include "list_menu.h" extern void * FUN_02013690(u32 heap_id); extern void FUN_020136E0(void *, u32); -extern void FUN_02019620(struct Window *, u32); -void FUN_02001714(struct ListMenu *, u16, u16, u16); -void FUN_020017AC(struct ListMenu *); -void FUN_02001B64(struct ListMenu *, BOOL); +extern void FillWindowPixelBuffer(struct Window *, u32); +void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16); +void ListMenuDrawCursor(struct ListMenu *); +BOOL ListMenuChangeSelection(struct ListMenu *, s32, u8, s32); +void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) @@ -40,10 +42,68 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur | ((u32)(list->template.fillValue << 24) >> 24) ) ); - FUN_02019620(list->template.window, list->template.fillValue); - FUN_02001714(list, list->cursorPos, 0, list->template.maxShowed); - FUN_020017AC(list); - FUN_02001B64(list, 1); + FillWindowPixelBuffer(list->template.window, list->template.fillValue); + ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, TRUE); CopyWindowToVram(template->window); return list; } + +s32 ListMenu_ProcessInput(struct ListMenu * list) +{ + list->unk_33 = 0; + + if (gMain.newKeys & REG_PAD_KEYINPUT_A_MASK) { + return list->template.items[list->cursorPos + list->itemsAbove].index; + } + else if (gMain.newKeys & REG_PAD_KEYINPUT_B_MASK) { + return LIST_CANCEL; + } + else if (gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_UP_MASK) { + if (!ListMenuChangeSelection(list, TRUE, 1, FALSE)) + list->unk_33 = 1; + return LIST_NOTHING_CHOSEN; + } + else if (gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_DOWN_MASK) { + if (!ListMenuChangeSelection(list, TRUE, 1, TRUE)) + list->unk_33 = 2; + return LIST_NOTHING_CHOSEN; + } + else + { + u16 rightButton, leftButton; + switch (list->template.scrollMultiple) + { + case LIST_NO_MULTIPLE_SCROLL: + default: + leftButton = FALSE; + rightButton = FALSE; + break; + case LIST_MULTIPLE_SCROLL_DPAD: + leftButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_LEFT_MASK; + rightButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_RIGHT_MASK; + break; + case LIST_MULTIPLE_SCROLL_L_R: + leftButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_L_MASK; + rightButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_R_MASK; + break; + } + if (leftButton) + { + if (!ListMenuChangeSelection(list, TRUE, list->template.maxShowed, FALSE)) + list->unk_33 = 3; + return LIST_NOTHING_CHOSEN; + } + else if (rightButton) + { + if (!ListMenuChangeSelection(list, TRUE, list->template.maxShowed, TRUE)) + list->unk_33 = 4; + return LIST_NOTHING_CHOSEN; + } + else + { + return LIST_NOTHING_CHOSEN; + } + } +} diff --git a/arm9/src/main.c b/arm9/src/main.c index dd806cf88..4879cb4cb 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -255,7 +255,7 @@ THUMB_FUNC void FUN_02000F4C(u32 arg0, u32 arg1) { HandleDSLidAction(); FUN_02016464(); - if (gMain.unk48 & 1) + if (gMain.newKeys & 1) break; FUN_02000E9C(); } diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 4ad17e51a..3bb26ac06 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -672,7 +672,7 @@ THUMB_FUNC BOOL ScrCmd_WaitButtonAB(struct ScriptContext *ctx) THUMB_FUNC static BOOL FUN_0203A46C(struct ScriptContext *ctx) { #pragma unused(ctx) - if (gMain.unk48 & 0x3) // Mask (A | B) ? + if (gMain.newKeys & 0x3) // Mask (A | B) ? { return TRUE; } @@ -688,7 +688,7 @@ THUMB_FUNC BOOL ScrCmd_WaitButtonABTime(struct ScriptContext *ctx) THUMB_FUNC static BOOL FUN_0203A4AC(struct ScriptContext *ctx) { - if (gMain.unk48 & 0x3) // Mask (A | B) ? + if (gMain.newKeys & 0x3) // Mask (A | B) ? { return TRUE; } @@ -709,27 +709,27 @@ THUMB_FUNC BOOL ScrCmd_WaitButton(struct ScriptContext *ctx) THUMB_FUNC static BOOL FUN_0203A4E0(struct ScriptContext *ctx) { - if (gMain.unk48 & 3) + if (gMain.newKeys & 3) { return TRUE; } - else if (gMain.unk48 & 0x40) + else if (gMain.newKeys & 0x40) { FUN_02055304(ctx->unk80->unk38, 0); } - else if (gMain.unk48 & 0x80) + else if (gMain.newKeys & 0x80) { FUN_02055304(ctx->unk80->unk38, 1); } - else if (gMain.unk48 & 0x20) + else if (gMain.newKeys & 0x20) { FUN_02055304(ctx->unk80->unk38, 2); } - else if (gMain.unk48 & 0x10) + else if (gMain.newKeys & 0x10) { FUN_02055304(ctx->unk80->unk38, 3); } - else if (gMain.unk48 & 0x400) + else if (gMain.newKeys & 0x400) { FUN_02039460(ctx->unk80); } @@ -749,11 +749,11 @@ THUMB_FUNC BOOL ScrCmd_Unk0032(struct ScriptContext *ctx) THUMB_FUNC static BOOL FUN_0203A570(struct ScriptContext *ctx) { #pragma unused(ctx) - if (gMain.unk48 & 0x3) + if (gMain.newKeys & 0x3) { return TRUE; } - else if (gMain.unk48 & 0xf0) + else if (gMain.newKeys & 0xf0) { return TRUE; } @@ -969,19 +969,19 @@ THUMB_FUNC static BOOL FUN_0203A94C(struct ScriptContext *ctx) return TRUE; } - if (gMain.unk48 & 0x40) + if (gMain.newKeys & 0x40) { tmp = 0; } - else if (gMain.unk48 & 0x80) + else if (gMain.newKeys & 0x80) { tmp = 1; } - else if (gMain.unk48 & 0x20) + else if (gMain.newKeys & 0x20) { tmp = 2; } - else if (gMain.unk48 & 0x10) + else if (gMain.newKeys & 0x10) { tmp = 3; } @@ -995,7 +995,7 @@ THUMB_FUNC static BOOL FUN_0203A94C(struct ScriptContext *ctx) } else { - if (gMain.unk48 & 0x400) + if (gMain.newKeys & 0x400) { FUN_0201BD7C(*unk1); *varPtr = 1; @@ -1018,24 +1018,24 @@ THUMB_FUNC static BOOL FUN_0203AA0C(struct ScriptContext *ctx) u16 *unk = GetVarPointer(ctx->unk80, (u16)ctx->data[0]); u32 tmp = 0xFFFF; - if (gMain.unk48 & 0x3) + if (gMain.newKeys & 0x3) { *unk = 0; return TRUE; } - else if (gMain.unk48 & 0x40) + else if (gMain.newKeys & 0x40) { tmp = 0; } - else if (gMain.unk48 & 0x80) + else if (gMain.newKeys & 0x80) { tmp = 1; } - else if (gMain.unk48 & 0x20) + else if (gMain.newKeys & 0x20) { tmp = 2; } - else if (gMain.unk48 & 0x10) + else if (gMain.newKeys & 0x10) { tmp = 3; } @@ -1048,7 +1048,7 @@ THUMB_FUNC static BOOL FUN_0203AA0C(struct ScriptContext *ctx) } else { - if (gMain.unk48 & 0x400) + if (gMain.newKeys & 0x400) { *unk = 1; return TRUE; diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index 470a2fe3c..392af46dc 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -11,7 +11,7 @@ extern void FUN_0200CD68(u32 param0, u32 param1, u32 param2, u32 param3, u8 para extern u32 FUN_0201AB08(u32 *param0); extern void FUN_0200D0BC(u32 *param0, u32 param1, u32 param2, u32 param3); -extern void FUN_02019620(u32 *param0, u32 param1); +extern void FillWindowPixelBuffer(u32 *param0, u32 param1); extern void FUN_02002B60(u8 param0); extern void FUN_02002B7C(u32 param0); @@ -52,7 +52,7 @@ THUMB_FUNC void FUN_02054608(u32 *param0, struct Options *options) THUMB_FUNC void FUN_0205464C(u32 *param0) { - FUN_02019620(param0, 15); + FillWindowPixelBuffer(param0, 15); } THUMB_FUNC u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options, u8 param3) @@ -103,6 +103,6 @@ THUMB_FUNC void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3) THUMB_FUNC void FUN_02054744(u32 *param0, u32 param1, u32 param2) { FUN_0200D300(*param0, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); - FUN_02019620(param0, 15); + FillWindowPixelBuffer(param0, 15); FUN_0200D6F8(param0, 0, 0x399, 9, (u8)param1); } diff --git a/arm9/src/unk_0206015C.c b/arm9/src/unk_0206015C.c index 3d2951564..a217f52c4 100644 --- a/arm9/src/unk_0206015C.c +++ b/arm9/src/unk_0206015C.c @@ -111,7 +111,7 @@ THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C *unkStruct0) case 5: unkStruct1->unkE += 1; - if (unkStruct1->unkE < 0x3c && !(gMain.unk48 & 1)) + if (unkStruct1->unkE < 0x3c && !(gMain.newKeys & 1)) break; MOD06_02245198(unkStruct1->unkD, unkStruct1->unk4); diff --git a/include/list_menu.h b/include/list_menu.h index befbf0511..ed47d21d8 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -1,6 +1,14 @@ #ifndef POKEDIAMOND_LIST_MENU_H #define POKEDIAMOND_LIST_MENU_H +#define LIST_HEADER -3 +#define LIST_CANCEL -2 +#define LIST_NOTHING_CHOSEN -1 + +#define LIST_NO_MULTIPLE_SCROLL 0 +#define LIST_MULTIPLE_SCROLL_DPAD 1 +#define LIST_MULTIPLE_SCROLL_L_R 2 + struct ListMenu; // TODO: Move to its own header, and fill it out @@ -10,11 +18,18 @@ struct Window u8 unk_04; }; +struct ListMenuItem +{ + const u16 * text; + s32 index; +}; + // TODO: Document remaining fields. // A lot of these are named based on similar fields in gen 3. struct ListMenuTemplate { - u8 filler_00[12]; + struct ListMenuItem * items; + u8 filler_04[8]; /*0x0C*/ struct Window * window; /*0x10*/ u16 totalItems; /*0x12*/ u16 maxShowed; @@ -26,7 +41,8 @@ struct ListMenuTemplate /*0x18*/ u8 fillValue:4; u8 cursorShadowPal:4; /*0x1A*/ u16 lettersSpacing:3; - u16 unk_1a_3:6; + u16 itemVerticalPadding:4; + u16 scrollMultiple:2; u16 fontId:6; /*0x1C*/ u8 filler_1C[4]; }; diff --git a/include/main.h b/include/main.h index 78e0fd764..9227d9a80 100644 --- a/include/main.h +++ b/include/main.h @@ -84,8 +84,8 @@ struct Main u32 unk3C; u32 unk40; u32 unk44; - u32 unk48; - u32 unk4C; + u32 newKeys; + u32 newAndRepeatedKeys; s32 unk50; s32 unk54; s32 unk58; From 84a6ed639c0887d084b0d9785f842dca9621b8e8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 19 May 2021 21:23:32 -0400 Subject: [PATCH 061/134] DestroyListMenu, RedrawListMenu --- arm9/asm/unk_020010A8.s | 44 ------------------------ arm9/asm/unk_02001B80.s | 2 +- arm9/asm/unk_02012CC8.s | 8 ++--- arm9/asm/unk_02050E48.s | 2 +- arm9/asm/unk_020625EC.s | 2 +- arm9/asm/unk_020653EC.s | 4 +-- arm9/asm/unk_0208A338.s | 2 +- arm9/global.inc | 8 ++--- arm9/modules/05/asm/mod05_021E1AD8.s | 2 +- arm9/modules/05/asm/module_05.s | 2 +- arm9/modules/06/asm/module_06.s | 14 ++++---- arm9/modules/15/asm/module_15.s | 2 +- arm9/modules/18/asm/module_18.s | 18 +++++----- arm9/modules/55/asm/module_55.s | 2 +- arm9/modules/56/asm/module_56.s | 20 +++++------ arm9/modules/59/asm/mod59_021D74E0_asm.s | 2 +- arm9/modules/65/asm/module_65.s | 4 +-- arm9/modules/71/asm/module_71.s | 2 +- arm9/modules/75/asm/module_75.s | 14 ++++---- arm9/modules/76/asm/module_76.s | 2 +- arm9/modules/77/asm/module_77.s | 2 +- arm9/modules/80/asm/module_80.s | 32 ++++++++--------- arm9/modules/83/asm/module_83.s | 8 ++--- arm9/src/list_menu.c | 33 +++++++++++++----- include/list_menu.h | 13 ++++++- 25 files changed, 114 insertions(+), 130 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index 0551ad9c0..dba61431a 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,50 +5,6 @@ .text - thumb_func_start FUN_02001300 -FUN_02001300: ; 0x02001300 - push {r4, lr} - add r4, r0, #0x0 - cmp r1, #0x0 - beq _0200130C - ldrh r0, [r4, #0x2c] - strh r0, [r1, #0x0] -_0200130C: - cmp r2, #0x0 - beq _02001314 - ldrh r0, [r4, #0x2e] - strh r0, [r2, #0x0] -_02001314: - ldr r0, [r4, #0x28] - bl FUN_020136C0 - add r0, r4, #0x0 - add r0, #0x34 - ldrb r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_02016A8C - pop {r4, pc} - - thumb_func_start FUN_02001328 -FUN_02001328: ; 0x02001328 - push {r4, lr} - add r4, r0, #0x0 - ldrb r1, [r4, #0x18] - ldr r0, [r4, #0xc] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - bl FillWindowPixelBuffer - ldrh r1, [r4, #0x2c] - ldrh r3, [r4, #0x12] - add r0, r4, #0x0 - mov r2, #0x0 - bl ListMenuPrintEntries - add r0, r4, #0x0 - bl ListMenuDrawCursor - ldr r0, [r4, #0xc] - bl CopyWindowToVram - pop {r4, pc} - .balign 4 - thumb_func_start FUN_02001354 FUN_02001354: ; 0x02001354 push {r4-r6, lr} diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index c00d6dd7c..65ba52af7 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -130,7 +130,7 @@ FUN_02001C5C: ; 0x02001C5C strb r0, [r1, #0x0] _02001C68: ldr r0, [r4, #0xc] - bl FUN_020136C0 + bl DestroyListMenuCursorObj ldrb r0, [r4, #0x1c] add r1, r4, #0x0 bl FUN_02016A8C diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index b77e441c7..92e460b65 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1511,8 +1511,8 @@ _020136B2: _020136B8: .word 0x0001020F _020136BC: .word UNK_020ED548 - thumb_func_start FUN_020136C0 -FUN_020136C0: ; 0x020136C0 + thumb_func_start DestroyListMenuCursorObj +DestroyListMenuCursorObj: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA @@ -1530,8 +1530,8 @@ _020136D8: _020136DE: pop {r4, pc} - thumb_func_start FUN_020136E0 -FUN_020136E0: ; 0x020136E0 + thumb_func_start CreateListMenuCursorObj +CreateListMenuCursorObj: ; 0x020136E0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index b5eed02a6..95b46dc5c 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1442,7 +1442,7 @@ _020519BA: ldr r0, [r4, #0x10] bl String_dtor ldr r0, [r4, #0x78] - bl FUN_020136C0 + bl DestroyListMenuCursorObj add r0, r4, #0x0 mov r1, #0x1 bl FUN_02051810 diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 024e66def..bf2484643 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1515,7 +1515,7 @@ FUN_02063178: ; 0x02063178 ldr r0, [r0, #0x0] add r1, #0x22 add r2, #0x24 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index e2feaf961..50cb53181 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1418,7 +1418,7 @@ FUN_02065EF8: ; 0x02065EF8 ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] @@ -1495,7 +1495,7 @@ FUN_02065F8C: ; 0x02065F8C ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 94714e95b..f1e7c3570 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -73,7 +73,7 @@ FUN_0208A3C8: ; 0x0208A3C8 ldr r0, [r4, #0x50] bl FUN_020853A8 ldr r0, [r4, #0x14] - bl FUN_020136C0 + bl DestroyListMenuCursorObj ldr r0, [r4, #0x4] bl String_dtor ldr r0, [r4, #0x8] diff --git a/arm9/global.inc b/arm9/global.inc index c6cbbcedc..e826f9ce8 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -190,8 +190,8 @@ .extern HandleDSLidAction .extern ListMenuInit .extern ListMenu_ProcessInput -.extern FUN_02001300 -.extern FUN_02001328 +.extern DestroyListMenu +.extern RedrawListMenu .extern FUN_02001354 .extern FUN_020013C8 .extern FUN_020013E8 @@ -883,8 +883,8 @@ .extern FUN_0201365C .extern FUN_02013674 .extern FUN_02013690 -.extern FUN_020136C0 -.extern FUN_020136E0 +.extern DestroyListMenuCursorObj +.extern CreateListMenuCursorObj .extern FUN_020136F8 .extern MailMsg_init .extern MailMsg_init_withBank diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 74ef40cf9..d9ec58bf8 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -1134,7 +1134,7 @@ MOD05_021E2368: ; 0x021E2368 mov r1, #0 ldr r0, [r6, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x1a lsl r0, r0, #4 ldr r0, [r6, r0] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 4e5e67fea..0528681aa 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -15366,7 +15366,7 @@ _021F0056: mov r1, #0 ldr r0, [r5, #4] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r5] bl ListMenu_dtor mov r0, #0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 1974440b5..9336c826b 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9595,7 +9595,7 @@ _0223E006: mov r1, #0 ldr r0, [r5, #0x78] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r5, #0x7c] bl ListMenu_dtor add r0, r5, #0 @@ -12966,7 +12966,7 @@ _0223FBDA: strb r0, [r2] ldr r0, [r1] ldr r0, [r0, #0x5c] - bl FUN_02001328 + bl RedrawListMenu ldr r0, _0223FCF0 ; =0x02252420 mov r1, #3 ldr r0, [r0] @@ -13853,7 +13853,7 @@ MOD06_02240364: ; 0x02240364 mov r1, #0 ldr r0, [r4, #0x5c] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0 add r0, #0x20 bl FUN_02019570 @@ -14686,7 +14686,7 @@ MOD06_02240A28: ; 0x02240A28 beq _02240A62 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0 add r0, #0x34 mov r1, #1 @@ -14921,7 +14921,7 @@ _02240C1A: beq _02240C50 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r5, #0 add r0, #0x44 mov r1, #1 @@ -19439,7 +19439,7 @@ MOD06_02243024: ; 0x02243024 mov r1, #0 ldr r0, [r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r6, #0x74] mov r1, #0 bl FUN_0200CCF8 @@ -42445,7 +42445,7 @@ _0224E1C0: mov r1, #0 ldr r0, [r6, #8] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r6, #4] bl FUN_02019570 ldr r0, [r6, #4] diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index e994d6da7..0b2abaab1 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -4359,7 +4359,7 @@ MOD15_021D9634: ; 0x021D9634 ldr r0, [r4, #0x50] cmp r0, #0 beq _021D9642 - bl FUN_020136C0 + bl DestroyListMenuCursorObj _021D9642: ldr r0, [r4, #0x3c] cmp r0, #0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 78cc22200..99b0d4ca8 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22037,7 +22037,7 @@ MOD18_02244028: ; 0x02244028 ldr r1, [sp, #0xc] str r0, [r1, #0x10] ldr r1, _022440C0 ; =0x0008090F - bl FUN_020136E0 + bl CreateListMenuCursorObj ldr r1, [sp, #8] ldr r0, [sp, #0xc] strb r1, [r0, #0x1d] @@ -22316,7 +22316,7 @@ _02244268: mov r0, #0 strb r0, [r5, #0x1c] ldr r0, [sp, #4] - bl FUN_02001328 + bl RedrawListMenu mov r0, #0 add sp, #0x10 mvn r0, r0 @@ -22397,12 +22397,12 @@ MOD18_02244318: ; 0x02244318 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r4] cmp r0, #0 beq _02244334 ldr r0, [r4, #0x10] - bl FUN_020136C0 + bl DestroyListMenuCursorObj ldr r0, [r4, #8] bl FreeToHeap _02244334: @@ -30159,7 +30159,7 @@ MOD18_02247FC0: ; 0x02247FC0 mov r1, #0 ldr r0, [r4, #0x20] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0 add r0, #0xc bl FUN_02019570 @@ -31135,7 +31135,7 @@ MOD18_02248784: ; 0x02248784 mov r1, #0 ldr r0, [r4, #0x1c] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0 add r0, #8 bl FUN_02019570 @@ -33377,7 +33377,7 @@ _02249902: beq _02249916 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0 str r0, [r4, #0x48] b _02249936 @@ -33552,7 +33552,7 @@ MOD18_02249A64: ; 0x02249A64 beq _02249A8C mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r1, r4, #0 add r1, #0x24 ldrb r1, [r1] @@ -42483,7 +42483,7 @@ MOD18_0224E26C: ; 0x0224E26C ldr r0, [r4, #0x28] ldr r1, [r4, #0x30] ldr r2, [r4, #0x34] - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #4 mov r1, #1 bl FUN_0200CCF8 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index d2fdf544e..704cf6dea 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -3458,7 +3458,7 @@ _021D9098: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r5, #0x14] bl ListMenu_dtor add r0, r6, #0 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 3ba5c1be6..ba3275fa5 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -1450,7 +1450,7 @@ _022129D8: beq _022129EA mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu _022129EA: add r0, r4, #0 add r0, #0xb0 @@ -2479,7 +2479,7 @@ MOD56_02213194: ; 0x02213194 mov r1, #0 ldr r0, [r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r6, #0 mov r1, #0 add r0, #0xb4 @@ -3675,7 +3675,7 @@ _02213AF0: mov r1, #0 ldr r0, [r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r5, #0 mov r1, #0 add r0, #0xb4 @@ -3864,7 +3864,7 @@ _02213C84: add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] - bl FUN_02001328 + bl RedrawListMenu str r4, [r5, #8] _02213CA8: add r0, r5, #0 @@ -3917,7 +3917,7 @@ _02213CF0: add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] - bl FUN_02001328 + bl RedrawListMenu _02213D0C: add r1, sp, #0xc ldrh r1, [r1, #2] @@ -4099,7 +4099,7 @@ _02213E5C: mov r1, #0 ldr r0, [r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r0, r5, #0 mov r1, #0 add r0, #0xb4 @@ -5257,7 +5257,7 @@ _0221476E: ldr r0, [r0] mov r1, #0 add r2, r5, r2 - bl FUN_02001300 + bl DestroyListMenu add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] @@ -5298,7 +5298,7 @@ _022147CE: ldr r0, [r0] mov r1, #0 add r2, r5, r2 - bl FUN_02001300 + bl DestroyListMenu add r5, #0xb8 ldr r0, [r5] bl ListMenu_dtor @@ -5521,7 +5521,7 @@ _02214994: lsl r3, r3, #1 mov r1, #0 add r2, r2, r3 - bl FUN_02001300 + bl DestroyListMenu add r5, #0xb8 ldr r0, [r5] bl ListMenu_dtor @@ -6074,7 +6074,7 @@ _02214DEC: mov r1, #0 ldr r0, [r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu add r4, #0xb8 ldr r0, [r4] bl ListMenu_dtor diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index b4cc612f1..dbad5e9c2 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -1133,7 +1133,7 @@ _021D7E66: mov r1, #0 ldr r0, [r5, #0x40] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, [r5, #0x44] bl ListMenu_dtor ldr r0, _021D7EC8 ; =0x000005DC diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index 9d2d4c834..c8d4ac1aa 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -1725,7 +1725,7 @@ _021D823E: ldr r0, [r0] add r1, #0x80 add r2, #0x82 - bl FUN_02001300 + bl DestroyListMenu add r0, r5, #0 add r0, #0xcc ldr r0, [r0] @@ -2304,7 +2304,7 @@ MOD65_021D86BC: ; 0x021D86BC ldr r0, [r0] add r1, sp, #0 add r2, #2 - bl FUN_02001300 + bl DestroyListMenu add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 5a669930b..1ae20a7eb 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -4383,7 +4383,7 @@ _0222F9E4: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _0222FA34 ; =0x0000367C ldr r0, [r5, r0] bl ListMenu_dtor diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index e9293c4e3..8ecfcb91f 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -1911,7 +1911,7 @@ MOD75_021E7AA4: ; 0x021E7AA4 add r3, #8 add r1, r1, r2 add r2, r3, r2 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r4, r0] @@ -2830,7 +2830,7 @@ _021E81D2: add r3, #8 add r1, r1, r2 add r2, r3, r2 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] @@ -3709,7 +3709,7 @@ MOD75_021E8864: ; 0x021E8864 mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02001328 + bl RedrawListMenu add r0, r4, #0 bl MOD75_021E8AAC pop {r4, pc} @@ -3928,7 +3928,7 @@ MOD75_021E8A48: ; 0x021E8A48 ldr r0, [r5, r0] add r1, r4, #6 add r2, r4, #4 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x57 mov r1, #0 lsl r0, r0, #2 @@ -5022,7 +5022,7 @@ MOD75_021E92BC: ; 0x021E92BC add r3, #8 add r1, r1, r2 add r2, r3, r2 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r4, r0] @@ -5608,7 +5608,7 @@ MOD75_021E97A8: ; 0x021E97A8 mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02001328 + bl RedrawListMenu add r0, r4, #0 bl MOD75_021EB344 add r0, r4, #0 @@ -5633,7 +5633,7 @@ MOD75_021E97E4: ; 0x021E97E4 mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02001328 + bl RedrawListMenu add r0, r4, #0 bl MOD75_021EB344 add r0, r4, #0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index a1b276d4c..9f7f7745a 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -1365,7 +1365,7 @@ MOD76_021D7FAC: ; 0x021D7FAC ldr r0, [r4, r0] add r1, #0x12 add r2, #0x10 - bl FUN_02001300 + bl DestroyListMenu mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r4, r0] diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index b47670c41..01cab9b70 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -1937,7 +1937,7 @@ MOD77_021D84D8: ; 0x021D84D8 mov r1, #0 ldr r0, [r4, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _021D850C ; =0x0000C058 ldr r0, [r4, r0] bl ListMenu_dtor diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 60122fa97..5982ed766 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -7626,7 +7626,7 @@ _02231240: add r1, r2, #6 ldr r0, [r4, r0] add r2, r2, #4 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _022312B8 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -7643,7 +7643,7 @@ _02231266: add r1, r2, #6 ldr r0, [r4, r0] add r2, r2, #4 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _022312B8 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -7747,7 +7747,7 @@ _02231342: ldr r0, [r4, r0] add r1, #0xa add r2, #8 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02231468 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -7780,7 +7780,7 @@ _0223138C: ldr r0, [r4, r0] add r1, #0xa add r2, #8 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02231468 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -7980,7 +7980,7 @@ _0223154A: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _022315F4 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -8005,7 +8005,7 @@ _0223158E: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _022315F4 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -8153,7 +8153,7 @@ _022316D0: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02231770 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -8178,7 +8178,7 @@ _0223170C: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02231770 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -12260,7 +12260,7 @@ _022337FA: add r1, r2, #6 ldr r0, [r4, r0] add r2, r2, #4 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _0223387C ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -12277,7 +12277,7 @@ _02233820: add r1, r2, #6 ldr r0, [r4, r0] add r2, r2, #4 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _0223387C ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -12415,7 +12415,7 @@ _02233932: ldr r0, [r4, r0] add r1, #0xa add r2, #8 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233A50 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -12454,7 +12454,7 @@ _0223398C: ldr r0, [r4, r0] add r1, #0xa add r2, #8 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233A50 ; =0x00000FC8 ldr r0, [r4, r0] bl ListMenu_dtor @@ -12644,7 +12644,7 @@ _02233B26: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233BD0 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -12669,7 +12669,7 @@ _02233B6A: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233BD0 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -12816,7 +12816,7 @@ _02233CA4: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233D70 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor @@ -12856,7 +12856,7 @@ _02233CFA: mov r1, #0 ldr r0, [r5, r0] add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02233D70 ; =0x00000FC8 ldr r0, [r5, r0] bl ListMenu_dtor diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 671656326..8551901e1 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -4616,7 +4616,7 @@ _0222FA62: beq _0222FA70 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu _0222FA70: add r0, r7, #0 add r0, #0x18 @@ -5863,7 +5863,7 @@ _022303FE: beq _02230436 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu _02230436: mov r1, #0 add r0, sp, #8 @@ -8150,7 +8150,7 @@ _02231708: beq _02231718 mov r1, #0 add r2, r1, #0 - bl FUN_02001300 + bl DestroyListMenu _02231718: add r0, r7, #0 mov r1, #0x57 @@ -8510,7 +8510,7 @@ MOD83_02231A00: ; 0x02231A00 str r1, [r4, r0] sub r0, r0, #4 ldr r0, [r4, r0] - bl FUN_02001300 + bl DestroyListMenu ldr r0, _02231A44 ; =0x00002B68 mov r1, #0 str r1, [r4, r0] diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index a0069e322..6d440ad16 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -1,12 +1,11 @@ -#pragma thumb on - #include "global.h" #include "heap.h" #include "main.h" #include "list_menu.h" extern void * FUN_02013690(u32 heap_id); -extern void FUN_020136E0(void *, u32); +extern void CreateListMenuCursorObj(void *, u32); +extern void DestroyListMenuCursorObj(void *); extern void FillWindowPixelBuffer(struct Window *, u32); void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16); void ListMenuDrawCursor(struct ListMenu *); @@ -14,11 +13,11 @@ BOOL ListMenuChangeSelection(struct ListMenu *, s32, u8, s32); void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); -struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) +THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) { struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu)); list->template = *template; - list->unk_28 = FUN_02013690(heap_id); + list->cursor = FUN_02013690(heap_id); list->cursorPos = cursorPos; list->itemsAbove = itemsAbove; list->unk_30 = 0; @@ -34,8 +33,8 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur list->enabled = 0; if (list->template.totalItems < list->template.maxShowed) list->template.maxShowed = list->template.totalItems; - FUN_020136E0( - list->unk_28, + CreateListMenuCursorObj( + list->cursor, (u32)( ((u32)(list->template.cursorPal << 24) >> 8) | ((u32)(list->template.cursorShadowPal << 24) >> 16) @@ -50,7 +49,7 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur return list; } -s32 ListMenu_ProcessInput(struct ListMenu * list) +THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list) { list->unk_33 = 0; @@ -107,3 +106,21 @@ s32 ListMenu_ProcessInput(struct ListMenu * list) } } } + +THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove) +{ + if (cursorPos != NULL) + *cursorPos = list->cursorPos; + if (itemsAbove != NULL) + *itemsAbove = list->itemsAbove; + DestroyListMenuCursorObj(list->cursor); + FUN_02016A8C(list->heap_id, list); +} + +THUMB_FUNC void RedrawListMenu(struct ListMenu * list) +{ + FillWindowPixelBuffer(list->template.window, list->template.fillValue); + ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed); + ListMenuDrawCursor(list); + CopyWindowToVram(list->template.window); +} diff --git a/include/list_menu.h b/include/list_menu.h index ed47d21d8..67b738936 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -18,6 +18,12 @@ struct Window u8 unk_04; }; +// TODO: Move to its own header, and fill it out +struct ListMenuCursor +{ + // ??? +}; + struct ListMenuItem { const u16 * text; @@ -59,7 +65,7 @@ struct ListMenu /*0x23*/ u8 unk_23; /*0x24*/ u8 fontId:7; u8 enabled:1; - /*0x28*/ void * unk_28; + /*0x28*/ struct ListMenuCursor *cursor; /*0x2c*/ u16 cursorPos; /*0x2e*/ u16 itemsAbove; /*0x30*/ u8 unk_30; @@ -69,4 +75,9 @@ struct ListMenu /*0x34*/ u8 heap_id; }; +THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id); +THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list); +THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove); +THUMB_FUNC void RedrawListMenu(struct ListMenu * list); + #endif // POKEDIAMOND_LIST_MENU_H From 9a01e66394be406a1a3c53c45942e3669fd4f327 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 18 May 2021 19:22:08 +0200 Subject: [PATCH 062/134] more decomps, more nonmatchings --- arm9/asm/unk_02016B94.s | 2174 ---------------------------------- arm9/global.inc | 4 + arm9/src/unk_02016B94_c.c | 2334 ++++++++++++++++++++++++++++++++++++- 3 files changed, 2337 insertions(+), 2175 deletions(-) diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 5a654a24e..b2ff66844 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -34,2180 +34,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thumb_func_start FUN_02018540 -FUN_02018540: ; 0x02018540 - push {r4-r5, lr} - sub sp, #0xc - add r4, r2, #0x0 - add r2, r3, #0x0 - mov r3, #0x2c - add r5, r1, #0x0 - mul r5, r3 - add r1, r0, r5 - ldrb r1, [r1, #0x1c] - add r3, sp, #0x8 - cmp r1, #0x1 - beq _02018574 - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldrb r1, [r3, #0x18] - str r1, [sp, #0x4] - ldrb r1, [r3, #0x1c] - str r1, [sp, #0x8] - ldrb r3, [r3, #0x10] - add r1, r4, #0x0 - bl FUN_02018590 - add sp, #0xc - pop {r4-r5, pc} -_02018574: - ldrb r1, [r3, #0x14] - add r0, #0x8 - add r0, r0, r5 - str r1, [sp, #0x0] - ldrb r1, [r3, #0x18] - str r1, [sp, #0x4] - lsl r1, r4, #0x18 - ldrb r3, [r3, #0x10] - lsr r1, r1, #0x18 - bl FUN_02018640 - add sp, #0xc - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_02018590 -FUN_02018590: ; 0x02018590 - push {r4-r7, lr} - sub sp, #0x1c - str r2, [sp, #0x4] - str r3, [sp, #0x8] - ldr r4, [r0, #0x0] - add r7, r1, #0x0 - str r0, [sp, #0x0] - ldr r6, [sp, #0x38] - cmp r4, #0x0 - beq _0201863A - ldrb r0, [r0, #0x15] - add r1, sp, #0x18 - add r1, #0x1 - add r2, sp, #0x18 - bl FUN_02017850 - add r0, sp, #0x20 - ldrb r2, [r0, #0x14] - ldr r1, [sp, #0x8] - add r1, r1, r2 - ldr r2, [sp, #0x8] - str r1, [sp, #0xc] - cmp r2, r1 - bge _0201863A - ldrb r2, [r0, #0x10] - ldr r0, [sp, #0x4] - lsl r1, r6, #0xc - add r0, r0, r2 - add r1, r1, r7 - str r0, [sp, #0x10] - lsl r0, r1, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x14] -_020185D2: - add r0, sp, #0x18 - ldrb r1, [r0, #0x0] - ldr r0, [sp, #0x8] - cmp r0, r1 - bhs _0201863A - ldr r5, [sp, #0x4] - ldr r0, [sp, #0x10] - add r1, r5, #0x0 - cmp r1, r0 - bge _0201862A -_020185E6: - add r0, sp, #0x18 - ldrb r0, [r0, #0x1] - cmp r5, r0 - bhs _0201862A - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x8] - ldrb r2, [r2, #0x15] - add r0, r5, #0x0 - bl FUN_02017FFC - cmp r6, #0x11 - bne _02018604 - lsl r0, r0, #0x1 - strh r7, [r4, r0] - b _0201861E -_02018604: - cmp r6, #0x10 - bne _02018618 - lsl r0, r0, #0x1 - ldrh r2, [r4, r0] - mov r1, #0xf - lsl r1, r1, #0xc - and r1, r2 - add r1, r7, r1 - strh r1, [r4, r0] - b _0201861E -_02018618: - lsl r1, r0, #0x1 - ldr r0, [sp, #0x14] - strh r0, [r4, r1] -_0201861E: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, [sp, #0x10] - cmp r5, r0 - blt _020185E6 -_0201862A: - ldr r0, [sp, #0x8] - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - ldr r0, [sp, #0xc] - str r1, [sp, #0x8] - cmp r1, r0 - blt _020185D2 -_0201863A: - add sp, #0x1c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02018640 -FUN_02018640: ; 0x02018640 - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x0] - add r7, r0, #0x0 - str r2, [sp, #0x4] - ldr r0, [r7, #0x0] - add r5, r3, #0x0 - str r0, [sp, #0xc] - cmp r0, #0x0 - beq _020186B0 - ldrb r0, [r7, #0x15] - add r1, sp, #0x10 - add r1, #0x1 - add r2, sp, #0x10 - bl FUN_02017850 - add r1, sp, #0x18 - ldrb r0, [r1, #0x14] - add r0, r5, r0 - str r0, [sp, #0x8] - cmp r5, r0 - bge _020186B0 - ldrb r1, [r1, #0x10] - ldr r0, [sp, #0x4] - add r6, r0, r1 -_02018672: - add r0, sp, #0x10 - ldrb r0, [r0, #0x0] - cmp r5, r0 - bhs _020186B0 - ldr r4, [sp, #0x4] - add r0, r4, #0x0 - cmp r0, r6 - bge _020186A4 -_02018682: - add r0, sp, #0x10 - ldrb r0, [r0, #0x1] - cmp r4, r0 - bhs _020186A4 - ldrb r2, [r7, #0x15] - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_02017FFC - ldr r2, [sp, #0x0] - ldr r1, [sp, #0xc] - strb r2, [r1, r0] - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, r6 - blt _02018682 -_020186A4: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - ldr r0, [sp, #0x8] - cmp r5, r0 - blt _02018672 -_020186B0: - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_020186B4 -FUN_020186B4: ; 0x020186B4 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - mov r0, #0x2c - add r7, r1, #0x0 - mul r7, r0 - str r2, [sp, #0x0] - add r0, r5, r7 - ldr r4, [r0, #0x8] - add r6, r3, #0x0 - cmp r4, #0x0 - beq _0201873C - ldrb r0, [r0, #0x1d] - add r1, sp, #0x10 - add r1, #0x1 - add r2, sp, #0x10 - bl FUN_02017850 - add r0, sp, #0x18 - ldrb r1, [r0, #0x14] - add r1, r6, r1 - str r1, [sp, #0x4] - cmp r6, r1 - bge _0201873C - add r1, r5, r7 - str r1, [sp, #0xc] - ldrb r1, [r0, #0x18] - lsl r1, r1, #0xc - str r1, [sp, #0x8] - ldrb r1, [r0, #0x10] - ldr r0, [sp, #0x0] - add r7, r0, r1 -_020186F4: - add r0, sp, #0x10 - ldrb r0, [r0, #0x0] - cmp r6, r0 - bhs _0201873C - ldr r5, [sp, #0x0] - add r0, r5, #0x0 - cmp r0, r7 - bge _02018730 -_02018704: - add r0, sp, #0x10 - ldrb r0, [r0, #0x1] - cmp r5, r0 - bhs _02018730 - ldr r2, [sp, #0xc] - add r0, r5, #0x0 - ldrb r2, [r2, #0x1d] - add r1, r6, #0x0 - bl FUN_02017FFC - lsl r0, r0, #0x1 - ldrh r2, [r4, r0] - ldr r1, _02018740 ; =0x00000FFF - and r2, r1 - ldr r1, [sp, #0x8] - orr r1, r2 - strh r1, [r4, r0] - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, r7 - blt _02018704 -_02018730: - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldr r0, [sp, #0x4] - cmp r6, r0 - blt _020186F4 -_0201873C: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02018740: .word 0x00000FFF - - thumb_func_start FUN_02018744 -FUN_02018744: ; 0x02018744 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r2, r5, r0 - ldr r1, [r2, #0x8] - cmp r1, #0x0 - beq _02018766 - ldr r2, [r2, #0xc] - mov r0, #0x0 - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017CD0 -_02018766: - pop {r3-r5, pc} - - thumb_func_start FUN_02018768 -FUN_02018768: ; 0x02018768 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r3, r5, r0 - ldr r1, [r3, #0x8] - cmp r1, #0x0 - beq _0201878A - add r0, r2, #0x0 - ldr r2, [r3, #0xc] - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02017CD0 -_0201878A: - pop {r3-r5, pc} - - thumb_func_start FUN_0201878C -FUN_0201878C: ; 0x0201878C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x2c - mul r0, r4 - add r3, r5, r0 - ldr r1, [r3, #0x8] - cmp r1, #0x0 - beq _020187AE - add r0, r2, #0x0 - ldr r2, [r3, #0xc] - bl MIi_CpuClear16 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0201AC68 -_020187AE: - pop {r3-r5, pc} - - thumb_func_start FUN_020187B0 -FUN_020187B0: ; 0x020187B0 - push {r3, lr} - cmp r0, #0x7 - bhi _02018802 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020187C2: ; jump table (using 16-bit offset) - .short _020187D2 - _020187C2 - 2; case 0 - .short _020187D8 - _020187C2 - 2; case 1 - .short _020187DE - _020187C2 - 2; case 2 - .short _020187E4 - _020187C2 - 2; case 3 - .short _020187EA - _020187C2 - 2; case 4 - .short _020187F0 - _020187C2 - 2; case 5 - .short _020187F6 - _020187C2 - 2; case 6 - .short _020187FC - _020187C2 - 2; case 7 -_020187D2: - bl G2_GetBG0CharPtr - pop {r3, pc} -_020187D8: - bl G2_GetBG1CharPtr - pop {r3, pc} -_020187DE: - bl G2_GetBG2CharPtr - pop {r3, pc} -_020187E4: - bl G2_GetBG3CharPtr - pop {r3, pc} -_020187EA: - bl G2S_GetBG0CharPtr - pop {r3, pc} -_020187F0: - bl G2S_GetBG1CharPtr - pop {r3, pc} -_020187F6: - bl G2S_GetBG2CharPtr - pop {r3, pc} -_020187FC: - bl G2S_GetBG3CharPtr - pop {r3, pc} -_02018802: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02018808 -FUN_02018808: ; 0x02018808 - push {r4-r7} - lsl r3, r3, #0x1c - lsr r3, r3, #0x18 - mov r4, #0x0 - cmp r1, #0x0 - bls _02018842 - mov r5, #0xf - add r6, r5, #0x0 -_02018818: - ldrb r7, [r0, r4] - and r7, r6 - strb r7, [r2, #0x0] - ldrb r7, [r2, #0x0] - cmp r7, #0x0 - beq _02018828 - add r7, r7, r3 - strb r7, [r2, #0x0] -_02018828: - ldrb r7, [r0, r4] - asr r7, r7, #0x4 - and r7, r5 - strb r7, [r2, #0x1] - ldrb r7, [r2, #0x1] - cmp r7, #0x0 - beq _0201883A - add r7, r7, r3 - strb r7, [r2, #0x1] -_0201883A: - add r4, r4, #0x1 - add r2, r2, #0x2 - cmp r4, r1 - blo _02018818 -_02018842: - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02018848 -FUN_02018848: ; 0x02018848 - push {r3-r7, lr} - add r5, r1, #0x0 - add r6, r0, #0x0 - add r0, r3, #0x0 - lsl r1, r5, #0x1 - add r7, r2, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r6, #0x0 - add r1, r5, #0x0 - add r2, r4, #0x0 - add r3, r7, #0x0 - bl FUN_02018808 - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201886C -FUN_0201886C: ; 0x0201886C - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x8] - bx lr - .balign 4 - - thumb_func_start FUN_02018878 -FUN_02018878: ; 0x02018878 - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrh r0, [r0, #0x20] - bx lr - .balign 4 - - thumb_func_start FUN_02018884 -FUN_02018884: ; 0x02018884 - sub sp, #0x20 - cmp r1, #0x7 - bls _0201888C - b _02018A38 -_0201888C: - add r2, r1, r1 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_02018898: ; jump table (using 16-bit offset) - .short _020188A8 - _02018898 - 2; case 0 - .short _020188BC - _02018898 - 2; case 1 - .short _020188D0 - _02018898 - 2; case 2 - .short _02018920 - _02018898 - 2; case 3 - .short _02018970 - _02018898 - 2; case 4 - .short _02018984 - _02018898 - 2; case 5 - .short _02018998 - _02018898 - 2; case 6 - .short _020189E8 - _02018898 - 2; case 7 -_020188A8: - ldr r0, _02018A40 ; =0x04000008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1e] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188BC: - ldr r0, _02018A44 ; =0x0400000A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1c] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188D0: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020188E4 - cmp r0, #0x1 - beq _020188F8 - cmp r0, #0x2 - beq _0201890C -_020188E4: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x1a] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020188F8: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x18] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201890C: - ldr r0, _02018A48 ; =0x0400000C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x16] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018920: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _02018934 - cmp r0, #0x1 - beq _02018948 - cmp r0, #0x2 - beq _0201895C -_02018934: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x14] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018948: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x12] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_0201895C: - ldr r0, _02018A4C ; =0x0400000E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x10] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018970: - ldr r0, _02018A50 ; =0x04001008 - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xe] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018984: - ldr r0, _02018A54 ; =0x0400100A - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xc] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018998: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189AC - cmp r0, #0x1 - beq _020189C0 - cmp r0, #0x2 - beq _020189D4 -_020189AC: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0xa] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189C0: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x8] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189D4: - ldr r0, _02018A58 ; =0x0400100C - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x6] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_020189E8: - mov r2, #0x2c - mul r2, r1 - add r0, r0, r2 - ldrb r0, [r0, #0x1c] - cmp r0, #0x0 - beq _020189FC - cmp r0, #0x1 - beq _02018A10 - cmp r0, #0x2 - beq _02018A24 -_020189FC: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x4] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A10: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x2] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A24: - ldr r0, _02018A5C ; =0x0400100E - ldrh r1, [r0, #0x0] - add r0, sp, #0x0 - add sp, #0x20 - strh r1, [r0, #0x0] - lsl r0, r1, #0x1e - lsr r0, r0, #0x1e - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bx lr -_02018A38: - mov r0, #0x0 - add sp, #0x20 - bx lr - nop -_02018A40: .word 0x04000008 -_02018A44: .word 0x0400000A -_02018A48: .word 0x0400000C -_02018A4C: .word 0x0400000E -_02018A50: .word 0x04001008 -_02018A54: .word 0x0400100A -_02018A58: .word 0x0400100C -_02018A5C: .word 0x0400100E - - thumb_func_start FUN_02018A60 -FUN_02018A60: ; 0x02018A60 - push {r3-r7, lr} - sub sp, #0x68 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x70 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018A88 - ldr r0, [sp, #0x8] - add r0, r0, r3 - str r0, [sp, #0x50] - b _02018A8E -_02018A88: - ldr r0, [sp, #0x8] - add r0, r2, r0 - str r0, [sp, #0x50] -_02018A8E: - ldr r2, [sp, #0x4] - add r3, sp, #0x70 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018AA6 - ldr r2, [sp, #0xc] - add r2, r2, r4 - str r2, [sp, #0x4c] - b _02018AAC -_02018AA6: - ldr r2, [sp, #0xc] - add r2, r3, r2 - str r2, [sp, #0x4c] -_02018AAC: - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x48] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x44] - add r1, sp, #0x70 - ldrh r1, [r1, #0x20] - ldr r2, _02018C98 ; =0x0000FFFF - str r1, [sp, #0x38] - cmp r1, r2 - bne _02018BB4 - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018ADE - cmp r2, r1 - blt _02018AE0 -_02018ADE: - b _02018C92 -_02018AE0: - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018AEA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018B96 - cmp r1, r0 - bge _02018B96 - add r0, r3, #0x0 - lsl r5, r0, #0x2 - add r0, r4, #0x0 - lsl r6, r0, #0x2 - ldr r0, _02018C9C ; =0x00003FE0 - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x48] - and r1, r0 - mul r2, r1 - str r2, [sp, #0x20] - ldr r2, [sp, #0x28] - mov r1, #0x1c - and r2, r1 - str r2, [sp, #0x1c] - ldr r2, [sp, #0x24] - and r0, r2 - ldr r2, [sp, #0x44] - mul r2, r0 - ldr r0, [sp, #0x24] - str r2, [sp, #0x18] - and r0, r1 - str r0, [sp, #0x14] -_02018B26: - ldr r0, [sp, #0x4] - asr r2, r4, #0x1 - mov r1, #0x3 - ldr r0, [r0, #0x0] - and r1, r2 - add r1, r0, r1 - ldr r0, _02018C9C ; =0x00003FE0 - and r0, r6 - add r1, r1, r0 - ldr r0, [sp, #0x18] - add r6, r6, #0x4 - add r0, r1, r0 - str r0, [sp, #0x64] - lsl r0, r4, #0x1f - lsr r2, r0, #0x1d - ldr r0, [sp, #0x0] - asr r1, r3, #0x1 - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r1 - ldr r1, _02018C9C ; =0x00003FE0 - add r4, r4, #0x1 - and r1, r5 - str r1, [sp, #0x54] - add r1, r7, r0 - ldr r0, [sp, #0x54] - add r5, r5, #0x4 - add r1, r0, r1 - ldr r0, [sp, #0x20] - add r1, r0, r1 - ldr r0, [sp, #0x1c] - ldrb r1, [r0, r1] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r1, r0 - mov r0, #0xf - and r0, r1 - add r7, r0, #0x0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - lsl r7, r2 - ldrb r0, [r0, r1] - add r3, r3, #0x1 - str r0, [sp, #0x58] - mov r0, #0xf0 - asr r0, r2 - ldr r1, [sp, #0x58] - add r2, r7, #0x0 - and r0, r1 - orr r2, r0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x64] - strb r2, [r0, r1] - ldr r0, [sp, #0x50] - cmp r3, r0 - blt _02018B26 -_02018B96: - ldr r0, [sp, #0x28] - add r0, r0, #0x4 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x24] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018AEA - add sp, #0x68 - pop {r3-r7, pc} -_02018BB4: - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x4c] - cmp r2, r1 - bge _02018C92 - cmp r2, r1 - bge _02018C92 - add r1, r2, #0x0 - lsl r1, r1, #0x2 - lsl r0, r0, #0x2 - str r1, [sp, #0x40] - str r0, [sp, #0x3c] -_02018BCA: - ldr r3, [sp, #0x8] - ldr r0, [sp, #0x50] - add r1, r3, #0x0 - ldr r4, [sp, #0x10] - cmp r1, r0 - bge _02018C78 - cmp r1, r0 - bge _02018C78 - add r0, r3, #0x0 - lsl r1, r0, #0x2 - add r0, r4, #0x0 - lsl r2, r0, #0x2 - ldr r0, _02018C9C ; =0x00003FE0 - ldr r5, [sp, #0x40] - ldr r6, [sp, #0x48] - and r5, r0 - mul r6, r5 - str r6, [sp, #0x34] - ldr r6, [sp, #0x40] - mov r5, #0x1c - and r6, r5 - str r6, [sp, #0x30] - ldr r6, [sp, #0x3c] - and r0, r6 - ldr r6, [sp, #0x44] - mul r6, r0 - ldr r0, [sp, #0x3c] - str r6, [sp, #0x2c] - and r0, r5 - str r0, [sp, #0x60] -_02018C06: - ldr r0, [sp, #0x4] - asr r6, r4, #0x1 - mov r5, #0x3 - and r5, r6 - ldr r0, [r0, #0x0] - asr r6, r3, #0x1 - add r5, r0, r5 - ldr r0, _02018C9C ; =0x00003FE0 - and r0, r2 - add r5, r5, r0 - ldr r0, [sp, #0x2c] - add r5, r5, r0 - ldr r0, [sp, #0x0] - ldr r7, [r0, #0x0] - mov r0, #0x3 - and r0, r6 - ldr r6, _02018C9C ; =0x00003FE0 - and r6, r1 - str r6, [sp, #0x5c] - add r6, r7, r0 - ldr r0, [sp, #0x5c] - add r6, r0, r6 - ldr r0, [sp, #0x34] - add r6, r0, r6 - ldr r0, [sp, #0x30] - ldrb r6, [r0, r6] - lsl r0, r3, #0x1f - lsr r0, r0, #0x1d - asr r6, r0 - mov r0, #0xf - and r0, r6 - ldr r6, [sp, #0x38] - cmp r0, r6 - beq _02018C6A - lsl r6, r4, #0x1f - lsr r7, r6, #0x1d - lsl r0, r7 - mov lr, r0 - ldr r0, [sp, #0x60] - ldrb r0, [r5, r0] - mov r12, r0 - mov r0, #0xf0 - add r6, r0, #0x0 - asr r6, r7 - mov r0, r12 - and r0, r6 - mov r6, lr - orr r6, r0 - ldr r0, [sp, #0x60] - strb r6, [r5, r0] -_02018C6A: - ldr r0, [sp, #0x50] - add r3, r3, #0x1 - add r1, r1, #0x4 - add r2, r2, #0x4 - add r4, r4, #0x1 - cmp r3, r0 - blt _02018C06 -_02018C78: - ldr r0, [sp, #0x40] - add r0, r0, #0x4 - str r0, [sp, #0x40] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x4c] - cmp r1, r0 - blt _02018BCA -_02018C92: - add sp, #0x68 - pop {r3-r7, pc} - nop -_02018C98: .word 0x0000FFFF -_02018C9C: .word 0x00003FE0 - - thumb_func_start FUN_02018CA0 -FUN_02018CA0: ; 0x02018CA0 - push {r3-r7, lr} - sub sp, #0x50 - str r2, [sp, #0x8] - str r3, [sp, #0xc] - add r2, sp, #0x58 - str r0, [sp, #0x0] - ldrh r0, [r2, #0x10] - str r1, [sp, #0x4] - ldrh r2, [r2, #0x18] - str r0, [sp, #0x10] - add r0, r1, #0x0 - ldrh r1, [r0, #0x4] - ldr r0, [sp, #0x10] - sub r3, r1, r0 - cmp r3, r2 - bge _02018CC6 - ldr r0, [sp, #0x8] - add r0, r0, r3 - b _02018CCA -_02018CC6: - ldr r0, [sp, #0x8] - add r0, r2, r0 -_02018CCA: - ldr r2, [sp, #0x4] - add r3, sp, #0x58 - mov r12, r0 - ldrh r0, [r3, #0x14] - ldrh r2, [r2, #0x6] - ldrh r3, [r3, #0x1c] - sub r4, r2, r0 - cmp r4, r3 - bge _02018CE2 - ldr r2, [sp, #0xc] - add r2, r2, r4 - b _02018CE6 -_02018CE2: - ldr r2, [sp, #0xc] - add r2, r3, r2 -_02018CE6: - mov lr, r2 - ldr r2, [sp, #0x0] - mov r3, #0x7 - ldrh r4, [r2, #0x4] - add r2, r4, #0x0 - and r2, r3 - add r2, r4, r2 - asr r2, r2, #0x3 - str r2, [sp, #0x4c] - add r2, r1, #0x0 - and r2, r3 - add r1, r1, r2 - asr r1, r1, #0x3 - str r1, [sp, #0x48] - add r1, sp, #0x58 - ldrh r1, [r1, #0x20] - ldr r2, _02018E80 ; =0x0000FFFF - str r1, [sp, #0x3c] - cmp r1, r2 - bne _02018DC6 - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018D1C - mov r1, lr - cmp r2, r1 - blt _02018D1E -_02018D1C: - b _02018E7C -_02018D1E: - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x28] - str r0, [sp, #0x24] -_02018D28: - ldr r1, [sp, #0x8] - mov r0, r12 - add r2, r1, #0x0 - ldr r7, [sp, #0x10] - cmp r2, r0 - bge _02018DA8 - mov r0, r12 - cmp r2, r0 - bge _02018DA8 - add r0, r1, #0x0 - lsl r2, r0, #0x3 - add r0, r7, #0x0 - lsl r3, r0, #0x3 - ldr r6, _02018E84 ; =0x00007FC0 - ldr r0, [sp, #0x28] - ldr r4, [sp, #0x4c] - and r0, r6 - mul r4, r0 - str r4, [sp, #0x20] - ldr r0, [sp, #0x28] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x24] - ldr r4, [sp, #0x48] - and r0, r6 - mul r4, r0 - ldr r0, [sp, #0x24] - str r4, [sp, #0x18] - and r0, r5 - str r0, [sp, #0x14] -_02018D66: - ldr r0, [sp, #0x0] - add r5, r1, #0x0 - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r2 - add r4, r4, r0 - ldr r0, [sp, #0x20] - add r5, r7, #0x0 - add r4, r0, r4 - ldr r0, [sp, #0x1c] - add r1, r1, #0x1 - ldrb r6, [r0, r4] - ldr r0, [sp, #0x4] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r3 - add r4, r4, r0 - ldr r0, [sp, #0x18] - add r2, #0x8 - add r4, r0, r4 - ldr r0, [sp, #0x14] - add r3, #0x8 - strb r6, [r0, r4] - mov r0, r12 - add r7, r7, #0x1 - cmp r1, r0 - blt _02018D66 -_02018DA8: - ldr r0, [sp, #0x28] - add r0, #0x8 - str r0, [sp, #0x28] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x24] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x24] - mov r0, lr - cmp r1, r0 - blt _02018D28 - add sp, #0x50 - pop {r3-r7, pc} -_02018DC6: - ldr r2, [sp, #0xc] - mov r1, lr - cmp r2, r1 - bge _02018E7C - mov r1, lr - cmp r2, r1 - bge _02018E7C - add r1, r2, #0x0 - lsl r1, r1, #0x3 - lsl r0, r0, #0x3 - str r1, [sp, #0x44] - str r0, [sp, #0x40] -_02018DDE: - ldr r2, [sp, #0x8] - mov r0, r12 - add r1, r2, #0x0 - ldr r3, [sp, #0x10] - cmp r1, r0 - bge _02018E62 - mov r0, r12 - cmp r1, r0 - bge _02018E62 - add r0, r2, #0x0 - lsl r6, r0, #0x3 - add r0, r3, #0x0 - lsl r1, r0, #0x3 - ldr r7, _02018E84 ; =0x00007FC0 - ldr r0, [sp, #0x44] - ldr r4, [sp, #0x4c] - and r0, r7 - mul r4, r0 - str r4, [sp, #0x38] - ldr r0, [sp, #0x44] - mov r5, #0x38 - and r0, r5 - str r0, [sp, #0x34] - ldr r0, [sp, #0x40] - ldr r4, [sp, #0x48] - and r0, r7 - mul r4, r0 - ldr r0, [sp, #0x40] - str r4, [sp, #0x30] - and r0, r5 - str r0, [sp, #0x2c] -_02018E1C: - ldr r0, [sp, #0x4] - mov r4, #0x7 - ldr r0, [r0, #0x0] - and r4, r3 - add r0, r0, r4 - ldr r4, _02018E84 ; =0x00007FC0 - add r5, r2, #0x0 - and r4, r1 - add r4, r0, r4 - ldr r0, [sp, #0x30] - add r7, r4, r0 - ldr r0, [sp, #0x0] - mov r4, #0x7 - and r5, r4 - ldr r0, [r0, #0x0] - ldr r4, _02018E84 ; =0x00007FC0 - add r0, r0, r5 - and r4, r6 - add r4, r4, r0 - ldr r0, [sp, #0x38] - add r4, r0, r4 - ldr r0, [sp, #0x34] - ldrb r0, [r0, r4] - ldr r4, [sp, #0x3c] - cmp r0, r4 - beq _02018E54 - ldr r4, [sp, #0x2c] - strb r0, [r7, r4] -_02018E54: - add r2, r2, #0x1 - mov r0, r12 - add r6, #0x8 - add r1, #0x8 - add r3, r3, #0x1 - cmp r2, r0 - blt _02018E1C -_02018E62: - ldr r0, [sp, #0x44] - add r0, #0x8 - str r0, [sp, #0x44] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x40] - ldr r1, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0x40] - mov r0, lr - cmp r1, r0 - blt _02018DDE -_02018E7C: - add sp, #0x50 - pop {r3-r7, pc} - .balign 4 -_02018E80: .word 0x0000FFFF -_02018E84: .word 0x00007FC0 - - thumb_func_start FUN_02018E88 -FUN_02018E88: ; 0x02018E88 - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - str r0, [sp, #0x2c] - ldr r0, [sp, #0x4] - add r6, r0, r3 - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - cmp r6, r0 - ble _02018EA4 - add r6, r0, #0x0 -_02018EA4: - add r1, sp, #0x18 - ldrh r2, [r1, #0x10] - ldr r1, [sp, #0x8] - add r1, r1, r2 - mov r12, r1 - ldr r1, [sp, #0x0] - ldrh r2, [r1, #0x6] - mov r1, r12 - cmp r1, r2 - ble _02018EBA - mov r12, r2 -_02018EBA: - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - mov lr, r0 - ldr r1, [sp, #0x8] - mov r0, r12 - cmp r1, r0 - bge _02018F44 - add r0, r1, #0x0 - lsl r0, r0, #0x2 - str r0, [sp, #0xc] - ldr r0, [sp, #0x2c] - lsl r0, r0, #0x4 - str r0, [sp, #0x10] -_02018ED8: - ldr r1, [sp, #0x4] - add r0, r1, #0x0 - cmp r0, r6 - bge _02018F32 - lsl r5, r0, #0x2 - ldr r2, _02018F48 ; =0x00003FE0 - ldr r0, [sp, #0xc] - and r0, r2 - add r7, r0, #0x0 - mov r2, lr - mul r7, r2 - ldr r0, [sp, #0xc] - mov r2, #0x1c - and r2, r0 -_02018EF4: - ldr r0, [sp, #0x0] - asr r3, r1, #0x1 - ldr r4, [r0, #0x0] - mov r0, #0x3 - and r0, r3 - ldr r3, _02018F48 ; =0x00003FE0 - add r0, r4, r0 - and r3, r5 - add r0, r0, r3 - add r0, r0, r7 - mov r3, #0x1 - tst r3, r1 - ldrb r4, [r0, r2] - beq _02018F1C - mov r3, #0xf - and r3, r4 - strb r3, [r0, r2] - ldrb r4, [r0, r2] - ldr r3, [sp, #0x10] - b _02018F26 -_02018F1C: - mov r3, #0xf0 - and r3, r4 - strb r3, [r0, r2] - ldrb r4, [r0, r2] - ldr r3, [sp, #0x2c] -_02018F26: - orr r3, r4 - add r1, r1, #0x1 - strb r3, [r0, r2] - add r5, r5, #0x4 - cmp r1, r6 - blt _02018EF4 -_02018F32: - ldr r0, [sp, #0xc] - add r0, r0, #0x4 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r1, r0, #0x1 - mov r0, r12 - str r1, [sp, #0x8] - cmp r1, r0 - blt _02018ED8 -_02018F44: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02018F48: .word 0x00003FE0 - - thumb_func_start FUN_02018F4C -FUN_02018F4C: ; 0x02018F4C - push {r4-r7, lr} - sub sp, #0x14 - str r1, [sp, #0x4] - str r2, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - str r0, [sp, #0x2c] - ldr r0, [sp, #0x4] - add r5, r0, r3 - ldr r0, [sp, #0x0] - ldrh r0, [r0, #0x4] - cmp r5, r0 - ble _02018F68 - add r5, r0, #0x0 -_02018F68: - add r1, sp, #0x18 - ldrh r2, [r1, #0x10] - ldr r1, [sp, #0x8] - add r1, r1, r2 - mov lr, r1 - ldr r1, [sp, #0x0] - ldrh r2, [r1, #0x6] - mov r1, lr - cmp r1, r2 - ble _02018F7E - mov lr, r2 -_02018F7E: - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x10] - ldr r1, [sp, #0x8] - mov r0, lr - cmp r1, r0 - bge _02018FEA - add r0, r1, #0x0 - lsl r0, r0, #0x3 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - lsl r0, r0, #0x3 - mov r12, r0 -_02018F9C: - ldr r2, [sp, #0x4] - add r0, r2, #0x0 - cmp r0, r5 - bge _02018FD8 - ldr r1, [sp, #0xc] - ldr r0, _02018FF0 ; =0x00007FC0 - mov r3, r12 - and r0, r1 - add r7, r0, #0x0 - ldr r1, [sp, #0x10] - mov r0, #0x38 - mul r7, r1 - ldr r1, [sp, #0xc] - add r6, r1, #0x0 - and r6, r0 -_02018FBA: - ldr r0, [sp, #0x0] - ldr r4, _02018FF0 ; =0x00007FC0 - ldr r1, [r0, #0x0] - mov r0, #0x7 - and r0, r2 - and r4, r3 - add r0, r1, r0 - add r0, r4, r0 - add r1, r7, r0 - ldr r0, [sp, #0x2c] - add r2, r2, #0x1 - strb r0, [r6, r1] - add r3, #0x8 - cmp r2, r5 - blt _02018FBA -_02018FD8: - ldr r0, [sp, #0xc] - add r0, #0x8 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r1, r0, #0x1 - mov r0, lr - str r1, [sp, #0x8] - cmp r1, r0 - blt _02018F9C -_02018FEA: - add sp, #0x14 - pop {r4-r7, pc} - nop -_02018FF0: .word 0x00007FC0 - - thumb_func_start FUN_02018FF4 -FUN_02018FF4: ; 0x02018FF4 - push {r4-r6, lr} - add r5, r1, #0x0 - lsl r1, r5, #0x4 - bl AllocFromHeap - add r6, r0, #0x0 - mov r4, #0x0 - cmp r5, #0x0 - ble _02019018 -_02019006: - lsl r0, r4, #0x4 - add r0, r6, r0 - bl FUN_0201901C - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r5 - blt _02019006 -_02019018: - add r0, r6, #0x0 - pop {r4-r6, pc} - - thumb_func_start FUN_0201901C -FUN_0201901C: ; 0x0201901C - mov r3, #0x0 - str r3, [r0, #0x0] - mov r1, #0xff - strb r1, [r0, #0x4] - strb r3, [r0, #0x5] - strb r3, [r0, #0x6] - strb r3, [r0, #0x7] - strb r3, [r0, #0x8] - strb r3, [r0, #0x9] - ldrh r2, [r0, #0xa] - ldr r1, _02019044 ; =0xFFFF8000 - and r2, r1 - strh r2, [r0, #0xa] - str r3, [r0, #0xc] - ldrh r2, [r0, #0xa] - sub r1, r1, #0x1 - and r1, r2 - strh r1, [r0, #0xa] - bx lr - nop -_02019044: .word 0xFFFF8000 - - thumb_func_start FUN_02019048 -FUN_02019048: ; 0x02019048 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0201905A - ldrb r1, [r0, #0x4] - cmp r1, #0xff - beq _0201905A - ldr r0, [r0, #0xc] - cmp r0, #0x0 - bne _0201905E -_0201905A: - mov r0, #0x0 - bx lr -_0201905E: - mov r0, #0x1 - bx lr - .balign 4 - - thumb_func_start FUN_02019064 -FUN_02019064: ; 0x02019064 - push {r3-r7, lr} - add r6, r2, #0x0 - add r5, r0, #0x0 - mov r0, #0x2c - add r7, r6, #0x0 - mul r7, r0 - add r4, r1, #0x0 - str r3, [sp, #0x0] - add r1, r5, r7 - ldr r0, [r1, #0x8] - cmp r0, #0x0 - beq _020190E0 - add r3, sp, #0x8 - ldrb r2, [r1, #0x1f] - ldrb r1, [r3, #0x14] - ldrb r3, [r3, #0x18] - ldr r0, [r5, #0x0] - mul r3, r1 - add r1, r2, #0x0 - mul r1, r3 - bl AllocFromHeap - add r1, r0, #0x0 - beq _020190E0 - str r5, [r4, #0x0] - strb r6, [r4, #0x4] - ldr r0, [sp, #0x0] - add r3, sp, #0x8 - strb r0, [r4, #0x5] - ldrb r0, [r3, #0x10] - ldr r2, _020190E4 ; =0xFFFF8000 - strb r0, [r4, #0x6] - ldrb r0, [r3, #0x14] - strb r0, [r4, #0x7] - ldrb r0, [r3, #0x18] - strb r0, [r4, #0x8] - ldrb r0, [r3, #0x1c] - strb r0, [r4, #0x9] - ldrh r0, [r4, #0xa] - ldrh r3, [r3, #0x20] - and r0, r2 - lsr r2, r2, #0x11 - and r2, r3 - orr r0, r2 - strh r0, [r4, #0xa] - str r1, [r4, #0xc] - add r0, r5, r7 - ldrb r0, [r0, #0x1e] - cmp r0, #0x0 - bne _020190CC - mov r2, #0x0 - b _020190CE -_020190CC: - mov r2, #0x1 -_020190CE: - ldrh r1, [r4, #0xa] - ldr r0, _020190E8 ; =0xFFFF7FFF - and r1, r0 - lsl r0, r2, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1f - lsr r0, r0, #0x10 - orr r0, r1 - strh r0, [r4, #0xa] -_020190E0: - pop {r3-r7, pc} - nop -_020190E4: .word 0xFFFF8000 -_020190E8: .word 0xFFFF7FFF - - thumb_func_start FUN_020190EC -FUN_020190EC: ; 0x020190EC - push {r3-r7, lr} - sub sp, #0x8 - str r3, [sp, #0x0] - add r5, r0, #0x0 - ldr r0, [sp, #0x24] - add r6, r2, #0x0 - str r0, [sp, #0x24] - ldr r0, [sp, #0x0] - add r4, r1, #0x0 - mul r0, r6 - lsl r0, r0, #0x5 - str r0, [sp, #0x4] - ldr r0, [r5, #0x0] - ldr r1, [sp, #0x4] - bl AllocFromHeap - ldr r1, [sp, #0x24] - add r7, r0, #0x0 - lsl r2, r1, #0x4 - orr r1, r2 - lsl r1, r1, #0x18 - ldr r2, [sp, #0x4] - lsr r1, r1, #0x18 - bl memset - cmp r7, #0x0 - beq _02019148 - str r5, [r4, #0x0] - strb r6, [r4, #0x7] - ldr r0, [sp, #0x0] - strb r0, [r4, #0x8] - ldrh r1, [r4, #0xa] - ldr r0, _0201914C ; =0xFFFF8000 - add r3, r1, #0x0 - add r1, sp, #0x10 - ldrh r2, [r1, #0x10] - lsr r1, r0, #0x11 - and r3, r0 - and r1, r2 - orr r1, r3 - strh r1, [r4, #0xa] - str r7, [r4, #0xc] - ldrh r1, [r4, #0xa] - sub r0, r0, #0x1 - and r0, r1 - strh r0, [r4, #0xa] -_02019148: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_0201914C: .word 0xFFFF8000 - - thumb_func_start FUN_02019150 -FUN_02019150: ; 0x02019150 - push {lr} - sub sp, #0x14 - add r3, r2, #0x0 - ldrb r2, [r3, #0x2] - str r2, [sp, #0x0] - ldrb r2, [r3, #0x3] - str r2, [sp, #0x4] - ldrb r2, [r3, #0x4] - str r2, [sp, #0x8] - ldrb r2, [r3, #0x5] - str r2, [sp, #0xc] - ldrh r2, [r3, #0x6] - str r2, [sp, #0x10] - ldrb r2, [r3, #0x0] - ldrb r3, [r3, #0x1] - bl FUN_02019064 - add sp, #0x14 - pop {pc} - .balign 4 - - thumb_func_start FUN_02019178 -FUN_02019178: ; 0x02019178 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FreeToHeap - mov r2, #0x0 - str r2, [r4, #0x0] - mov r0, #0xff - strb r0, [r4, #0x4] - strb r2, [r4, #0x5] - strb r2, [r4, #0x6] - strb r2, [r4, #0x7] - strb r2, [r4, #0x8] - strb r2, [r4, #0x9] - ldrh r1, [r4, #0xa] - ldr r0, _020191A0 ; =0xFFFF8000 - and r0, r1 - strh r0, [r4, #0xa] - str r2, [r4, #0xc] - pop {r4, pc} - .balign 4 -_020191A0: .word 0xFFFF8000 - - thumb_func_start FUN_020191A4 -FUN_020191A4: ; 0x020191A4 - push {r4-r6, lr} - add r6, r1, #0x0 - add r5, r0, #0x0 - mov r4, #0x0 - cmp r6, #0x0 - ble _020191C8 -_020191B0: - lsl r0, r4, #0x4 - add r0, r5, r0 - ldr r0, [r0, #0xc] - cmp r0, #0x0 - beq _020191BE - bl FreeToHeap -_020191BE: - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - cmp r4, r6 - blt _020191B0 -_020191C8: - add r0, r5, #0x0 - bl FreeToHeap - pop {r4-r6, pc} - - thumb_func_start CopyWindowToVram -CopyWindowToVram: ; 0x020191D0 - push {r4, lr} - add r4, r0, #0x0 - bne _020191DA - bl ErrorHandling -_020191DA: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _020191E4 - bl ErrorHandling -_020191E4: - ldrb r0, [r4, #0x4] - cmp r0, #0x8 - blo _020191EE - bl ErrorHandling -_020191EE: - ldrb r1, [r4, #0x4] - mov r0, #0x2c - ldr r2, [r4, #0x0] - mul r0, r1 - add r0, r2, r0 - ldrb r0, [r0, #0x1c] - cmp r0, #0x3 - blo _02019202 - bl ErrorHandling -_02019202: - ldrb r2, [r4, #0x4] - mov r1, #0x2c - ldr r3, [r4, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - add r0, r4, #0x0 - lsl r2, r1, #0x2 - ldr r1, _0201921C ; =UNK_020EDB68 - ldr r1, [r1, r2] - blx r1 - pop {r4, pc} - nop -_0201921C: .word UNK_020EDB68 - - thumb_func_start FUN_02019220 -FUN_02019220: ; 0x02019220 - push {r4, lr} - add r4, r0, #0x0 - bne _0201922A - bl ErrorHandling -_0201922A: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _02019234 - bl ErrorHandling -_02019234: - ldrb r0, [r4, #0x4] - cmp r0, #0x8 - blo _0201923E - bl ErrorHandling -_0201923E: - ldrb r1, [r4, #0x4] - mov r0, #0x2c - ldr r2, [r4, #0x0] - mul r0, r1 - add r0, r2, r0 - ldrb r0, [r0, #0x1c] - cmp r0, #0x3 - blo _02019252 - bl ErrorHandling -_02019252: - ldrb r2, [r4, #0x4] - mov r1, #0x2c - ldr r3, [r4, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - add r0, r4, #0x0 - lsl r2, r1, #0x2 - ldr r1, _0201926C ; =UNK_020EDB5C - ldr r1, [r1, r2] - blx r1 - pop {r4, pc} - nop -_0201926C: .word UNK_020EDB5C - - thumb_func_start FUN_02019270 -FUN_02019270: ; 0x02019270 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _02019288 ; =UNK_020EDB38 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_02019288: .word UNK_020EDB38 - - thumb_func_start FUN_0201928C -FUN_0201928C: ; 0x0201928C - push {r4-r6, lr} - add r5, r0, #0x0 - ldrb r6, [r5, #0x7] - ldrb r4, [r5, #0x8] - strb r1, [r5, #0x7] - strb r2, [r5, #0x8] - ldrb r3, [r5, #0x4] - mov r2, #0x2c - ldr r1, [r5, #0x0] - mul r2, r3 - add r1, r1, r2 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020192B4 ; =UNK_020EDB38 - ldr r1, [r1, r2] - blx r1 - strb r6, [r5, #0x7] - strb r4, [r5, #0x8] - pop {r4-r6, pc} - nop -_020192B4: .word UNK_020EDB38 - - thumb_func_start FUN_020192B8 -FUN_020192B8: ; 0x020192B8 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020192D0 ; =UNK_020EDB74 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_020192D0: .word UNK_020EDB74 - - thumb_func_start FUN_020192D4 -FUN_020192D4: ; 0x020192D4 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldrb r1, [r5, #0x4] - mov r0, #0x2c - ldr r2, [r5, #0x0] - mul r0, r1 - add r0, r2, r0 - ldr r0, [r0, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02019354 - ldrh r0, [r5, #0xa] - ldrb r1, [r5, #0x5] - lsl r0, r0, #0x11 - lsr r3, r0, #0x11 - ldrb r0, [r5, #0x7] - add r7, r1, r0 - ldrb r0, [r5, #0x6] - ldrb r1, [r5, #0x8] - mov r12, r0 - add r0, r0, r1 - mov r1, r12 - mov lr, r0 - cmp r1, r0 - bhs _02019354 -_02019308: - ldrb r2, [r5, #0x5] - cmp r2, r7 - bhs _02019348 - mov r0, r12 - lsl r0, r0, #0x1b - lsr r0, r0, #0x16 - lsl r1, r0, #0x1 - ldr r0, [sp, #0x4] - add r0, r0, r1 - mov r1, r12 - str r0, [sp, #0x0] - mov r0, #0x20 - add r6, r1, #0x0 - and r6, r0 -_02019324: - ldrb r0, [r5, #0x9] - mov r4, #0x20 - add r1, r3, #0x0 - lsl r0, r0, #0xc - and r4, r2 - orr r1, r0 - mov r0, #0x1f - add r4, r6, r4 - and r0, r2 - lsl r4, r4, #0x5 - add r0, r0, r4 - lsl r4, r0, #0x1 - ldr r0, [sp, #0x0] - add r2, r2, #0x1 - strh r1, [r0, r4] - add r3, r3, #0x1 - cmp r2, r7 - blo _02019324 -_02019348: - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _02019308 -_02019354: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02019358 -FUN_02019358: ; 0x02019358 - push {r4-r7} - ldrb r3, [r0, #0x4] - mov r1, #0x2c - add r2, r3, #0x0 - mul r2, r1 - ldr r1, [r0, #0x0] - add r1, r1, r2 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _020193AC - ldrb r2, [r1, #0x1d] - ldr r1, _020193B0 ; =UNK_020EDB30 - ldrb r6, [r1, r2] - ldrb r1, [r0, #0x6] - add r2, r1, #0x0 - mul r2, r6 - add r2, r3, r2 - ldrb r1, [r0, #0x5] - mov r3, #0x0 - add r4, r2, r1 - ldrh r1, [r0, #0xa] - lsl r1, r1, #0x11 - lsr r5, r1, #0x11 - ldrb r1, [r0, #0x8] - cmp r1, #0x0 - ble _020193AC - add r1, r3, #0x0 -_0201938E: - ldrb r7, [r0, #0x7] - add r2, r1, #0x0 - cmp r7, #0x0 - ble _020193A2 -_02019396: - strb r5, [r4, r2] - ldrb r7, [r0, #0x7] - add r2, r2, #0x1 - add r5, r5, #0x1 - cmp r2, r7 - blt _02019396 -_020193A2: - ldrb r2, [r0, #0x8] - add r3, r3, #0x1 - add r4, r4, r6 - cmp r3, r2 - blt _0201938E -_020193AC: - pop {r4-r7} - bx lr - .balign 4 -_020193B0: .word UNK_020EDB30 - - thumb_func_start FUN_020193B4 -FUN_020193B4: ; 0x020193B4 - push {r4-r7, lr} - sub sp, #0xc - ldrb r2, [r0, #0x4] - str r0, [sp, #0x0] - mov r0, #0x2c - add r1, r2, #0x0 - mul r1, r0 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - add r1, r0, r1 - ldr r0, [r1, #0x8] - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _0201943C - ldrb r1, [r1, #0x1d] - ldr r0, _02019440 ; =UNK_020EDB30 - ldrb r0, [r0, r1] - str r0, [sp, #0x8] - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x5] - ldrb r0, [r0, #0x7] - add r2, r1, r0 - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x6] - mov r12, r0 - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x8] - mov r0, r12 - add r0, r0, r1 - mov r1, r12 - mov lr, r0 - cmp r1, r0 - bhs _0201943C - mov r6, #0x0 - mov r7, #0x20 -_020193FA: - ldr r0, [sp, #0x0] - ldrb r1, [r0, #0x5] - cmp r1, r2 - bhs _02019430 - mov r3, r12 - mov r0, #0x1f - and r3, r0 - ldr r0, [sp, #0x8] - mul r0, r3 - lsl r3, r0, #0x1 - ldr r0, [sp, #0x4] - add r5, r0, r3 - mov r3, r12 - mov r0, #0x20 - and r3, r0 -_02019418: - add r4, r1, #0x0 - and r4, r7 - mov r0, #0x1f - add r4, r3, r4 - and r0, r1 - lsl r4, r4, #0x5 - add r0, r0, r4 - lsl r0, r0, #0x1 - add r1, r1, #0x1 - strh r6, [r5, r0] - cmp r1, r2 - blo _02019418 -_02019430: - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _020193FA -_0201943C: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 -_02019440: .word UNK_020EDB30 - - thumb_func_start FUN_02019444 -FUN_02019444: ; 0x02019444 - push {r4-r7} - ldrb r3, [r0, #0x4] - mov r1, #0x2c - add r2, r3, #0x0 - mul r2, r1 - ldr r1, [r0, #0x0] - add r1, r1, r2 - ldr r3, [r1, #0x8] - cmp r3, #0x0 - beq _02019492 - ldrb r2, [r1, #0x1d] - ldr r1, _02019498 ; =UNK_020EDB30 - mov r4, #0x0 - ldrb r6, [r1, r2] - ldrb r1, [r0, #0x6] - add r2, r1, #0x0 - mul r2, r6 - ldrb r1, [r0, #0x5] - add r2, r3, r2 - add r5, r2, r1 - ldrb r1, [r0, #0x8] - cmp r1, #0x0 - ble _02019492 - add r1, r4, #0x0 - add r2, r4, #0x0 -_02019476: - ldrb r7, [r0, #0x7] - add r3, r2, #0x0 - cmp r7, #0x0 - ble _02019488 -_0201947E: - strb r1, [r5, r3] - ldrb r7, [r0, #0x7] - add r3, r3, #0x1 - cmp r3, r7 - blt _0201947E -_02019488: - ldrb r3, [r0, #0x8] - add r4, r4, #0x1 - add r5, r5, r6 - cmp r4, r3 - blt _02019476 -_02019492: - pop {r4-r7} - bx lr - nop -_02019498: .word UNK_020EDB30 - thumb_func_start FUN_0201949C FUN_0201949C: ; 0x0201949C push {r3-r4, lr} diff --git a/arm9/global.inc b/arm9/global.inc index 71693178e..12be8f105 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8552,3 +8552,7 @@ .extern FUN_02017E84 .extern FUN_02017FFC .extern FUN_02018068 +.extern FUN_02018808 +.extern FUN_02018848 +.extern FUN_02018CA0 +.extern FUN_02018E88 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94_c.c index 67de19876..376e12713 100644 --- a/arm9/src/unk_02016B94_c.c +++ b/arm9/src/unk_02016B94_c.c @@ -358,7 +358,652 @@ THUMB_FUNC void FUN_02016C18( FUN_020179E0(param0, param1, 3, param2->unk04); } #else -GLOBAL_ASM("asm/nonmatchings/FUN_02016C18.s") +THUMB_FUNC asm void FUN_02016C18( + struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x18 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + add r4, r2, #0x0 + str r0, [sp, #0x0] + ldrb r0, [r4, #0x10] + ldr r1, [sp, #0x8] + bl FUN_020177DC + add r5, r0, #0x0 + ldr r0, [sp, #0x4] + cmp r0, #0x7 + bls _02016C36 + b _0201705A +_02016C36: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02016C42: + // jump table (using 16-bit offset) + // .short _02016C52 - _02016C42 - 2; case 0 + // .short _02016CAA - _02016C42 - 2; case 1 + // .short _02016D02 - _02016C42 - 2; case 2 + // .short _02016DA4 - _02016C42 - 2; case 3 + // .short _02016E46 - _02016C42 - 2; case 4 + // .short _02016E9E - _02016C42 - 2; case 5 + // .short _02016EF6 - _02016C42 - 2; case 6 + // .short _02016F98 - _02016C42 - 2; case 7 + + lsl r6, r1, #0 + lsl r6, r4, #1 + lsl r6, r7, #2 + lsl r0, r4, #5 + lsl r2, r0, #8 + lsl r2, r3, #9 + lsl r2, r6, #10 + lsl r4, r2, #13 +_02016C52: + mov r0, #0x1 + add r1, r0, #0x0 + bl GX_EngineAToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0xc] + ldr r2, =0x04000008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0xc] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CA0 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CA0: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016CAA: + mov r0, #0x2 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x10] + ldr r2, =0x0400000A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x10] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016CF8 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016CF8: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016D02: + mov r0, #0x4 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016D18 + cmp r0, #0x1 + beq _02016D3A + cmp r0, #0x2 + beq _02016D5C +_02016D18: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400000C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D3A: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, =0x0400000C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016D7C +_02016D5C: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400000C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016D7C: + ldr r0, =0x0400000C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016D9A + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016D9A: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016DA4: + mov r0, #0x8 + mov r1, #0x1 + bl GX_EngineAToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016DBA + cmp r0, #0x1 + beq _02016DDC + cmp r0, #0x2 + beq _02016DFE +_02016DBA: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400000E + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DDC: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, =0x0400000E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016E1E +_02016DFE: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400000E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016E1E: + ldr r0, =0x0400000E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016E3C + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016E3C: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016E46: + mov r0, #0x1 + add r1, r0, #0x0 + bl GX_EngineBToggleLayers + ldrb r3, [r4, #0x14] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + ldrb r2, [r4, #0x13] + lsl r6, r3, #0xd + lsl r0, r0, #0x7 + lsl r3, r2, #0x2 + str r0, [sp, #0x14] + ldr r2, =0x04001008 + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r1, r0 + ldr r0, [sp, #0x14] + orr r0, r1 + orr r0, r7 + orr r0, r3 + orr r0, r6 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016E94 + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016E94: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016E9E: + mov r0, #0x2 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrb r3, [r4, #0x14] + lsl r0, r0, #0x7 + mov r12, r0 + ldr r2, =0x0400100A + lsl r7, r1, #0x8 + ldrh r1, [r2, #0x0] + mov r0, #0x43 + lsl r3, r3, #0xd + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + mov r1, r12 + orr r0, r1 + orr r0, r7 + orr r0, r6 + orr r0, r3 + strh r0, [r2, #0x0] + ldrh r1, [r2, #0x0] + mov r0, #0x3 + bic r1, r0 + ldrb r0, [r4, #0x15] + orr r0, r1 + strh r0, [r2, #0x0] + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _02016EEC + ldrh r1, [r2, #0x0] + mov r0, #0x40 + orr r0, r1 + strh r0, [r2, #0x0] + b _0201705A +_02016EEC: + ldrh r1, [r2, #0x0] + mov r0, #0x40 + bic r1, r0 + strh r1, [r2, #0x0] + b _0201705A +_02016EF6: + mov r0, #0x4 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016F0C + cmp r0, #0x1 + beq _02016F2E + cmp r0, #0x2 + beq _02016F50 +_02016F0C: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400100C + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F2E: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, =0x0400100C + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02016F70 +_02016F50: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400100C + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02016F70: + ldr r0, =0x0400100C + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02016F8E + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02016F8E: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] + b _0201705A +_02016F98: + mov r0, #0x8 + mov r1, #0x1 + bl GX_EngineBToggleLayers + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02016FAE + cmp r0, #0x1 + beq _02016FF2 + cmp r0, #0x2 + beq _02017014 +_02016FAE: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400100E + b _02016FD4 +_02016FD4: + ldrb r2, [r4, #0x13] + lsl r3, r1, #0x8 + ldrb r0, [r4, #0x11] + lsl r6, r2, #0x2 + ldrh r1, [r7, #0x0] + lsl r2, r0, #0x7 + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02016FF2: + ldrb r2, [r4, #0x13] + ldrb r1, [r4, #0x12] + ldrb r0, [r4, #0x16] + lsl r3, r2, #0x2 + ldr r7, =0x0400100E + lsl r2, r1, #0x8 + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] + b _02017034 +_02017014: + ldrb r1, [r4, #0x12] + ldr r7, =0x0400100E + ldrb r0, [r4, #0x16] + lsl r3, r1, #0x8 + ldrb r2, [r4, #0x13] + lsl r6, r0, #0xd + ldrh r1, [r7, #0x0] + mov r0, #0x43 + lsl r2, r2, #0x2 + and r0, r1 + lsl r1, r5, #0xe + orr r0, r1 + orr r0, r2 + orr r0, r3 + orr r0, r6 + strh r0, [r7, #0x0] +_02017034: + ldr r0, =0x0400100E + mov r1, #0x3 + ldrh r2, [r0, #0x0] + bic r2, r1 + ldrb r1, [r4, #0x15] + orr r1, r2 + strh r1, [r0, #0x0] + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _02017052 + ldrh r2, [r0, #0x0] + mov r1, #0x40 + orr r1, r2 + strh r1, [r0, #0x0] + b _0201705A +_02017052: + ldrh r2, [r0, #0x0] + mov r1, #0x40 + bic r2, r1 + strh r2, [r0, #0x0] +_0201705A: + ldr r0, [sp, #0x4] + mov r1, #0x2c + add r5, r0, #0x0 + ldr r0, [sp, #0x0] + mul r5, r1 + add r2, r0, r5 + mov r3, #0x0 + mov r0, #0x1 + strh r3, [r2, #0x20] + lsl r0, r0, #0xc + str r0, [r2, #0x24] + str r0, [r2, #0x28] + str r3, [r2, #0x2c] + str r3, [r2, #0x30] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020170A2 + ldr r0, [sp, #0x0] + ldr r6, [sp, #0x0] + ldr r0, [r0, #0x0] + add r6, #0x8 + bl AllocFromHeap + str r0, [r6, r5] + ldr r1, [r6, r5] + ldr r2, [r4, #0x8] + mov r0, #0x0 + bl MIi_CpuClear16 + ldr r0, [sp, #0x0] + ldr r2, [r4, #0x8] + add r1, r0, r5 + str r2, [r1, #0xc] + ldr r0, [r4, #0xc] + str r0, [r1, #0x10] + b _020170A8 +_020170A2: + str r3, [r2, #0x8] + str r3, [r2, #0xc] + str r3, [r2, #0x10] +_020170A8: + ldr r0, [sp, #0x0] + ldrb r1, [r4, #0x10] + add r0, r0, r5 + strb r1, [r0, #0x1d] + ldr r1, [sp, #0x8] + strb r1, [r0, #0x1c] + ldrb r1, [r4, #0x11] + strb r1, [r0, #0x1e] + ldr r1, [sp, #0x8] + cmp r1, #0x0 + bne _020170CA + ldrb r1, [r4, #0x11] + cmp r1, #0x0 + bne _020170CA + mov r1, #0x20 + strb r1, [r0, #0x1f] + b _020170D2 +_020170CA: + ldr r0, [sp, #0x0] + mov r1, #0x40 + add r0, r0, r5 + strb r1, [r0, #0x1f] +_020170D2: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x0] + mov r2, #0x0 + bl FUN_020179E0 + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldr r3, [r4, #0x4] + mov r2, #0x3 + bl FUN_020179E0 + add sp, #0x18 + pop {r3-r7, pc} + // clang-format on +} #endif #ifdef NONMATCHING @@ -2549,3 +3194,1690 @@ THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, } } } + +extern void FUN_02018590( + struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +extern void FUN_02018640( + struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); + +THUMB_FUNC void FUN_02018540(struct UnkStruct2 *param0, + u32 param1, + u16 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6, + u8 param7) +{ + if (param0->unk08[param1].unk1c != 1) + { + + FUN_02018590(¶m0->unk08[param1], param2, param3, param4, param5, param6, param7); + } + else + { + FUN_02018640(¶m0->unk08[param1], param2, param3, param4, param5, param6); + } +} + +THUMB_FUNC void FUN_02018590( + struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) +{ + void *r4 = param0->unk08; + + if (r4 != 0) + { + + u8 st19; + u8 st18; + FUN_02017850(param0->unk1d, &st19, &st18); + + u8 i; + u8 j; + for (i = param3; i < param3 + param5; i++) + { + if (i >= st18) + { + break; + } + + for (j = param2; j < param2 + param4; j++) + { + if (j >= st19) + { + break; + } + + u16 idx = FUN_02017FFC(j, i, param0->unk1d); + + if (param6 == 0x11) + { + ((u16 *)r4)[idx] = param1; + } + else if (param6 == 0x10) + { + ((u16 *)r4)[idx] = (((u16 *)r4)[idx] & 0xF000) + param1; + } + else + { + ((u16 *)r4)[idx] = (param6 << 0xc) + param1; + } + } + } + } +} + +THUMB_FUNC void FUN_02018640( + struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5) +{ + void *r4 = param0->unk08; + + if (r4 != 0) + { + + u8 st19; + u8 st18; + FUN_02017850(param0->unk1d, &st19, &st18); + + u8 i; + u8 j; + for (i = param3; i < param3 + param5; i++) + { + if (i >= st18) + { + break; + } + + for (j = param2; j < param2 + param4; j++) + { + if (j >= st19) + { + break; + } + + ((u8 *)r4)[FUN_02017FFC(j, i, param0->unk1d)] = param1; + } + } + } +} + +THUMB_FUNC void FUN_020186B4( + struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) +{ + void *r4 = param0->unk08[param1].unk08; + + if (r4 != NULL) + { + u8 st11; + u8 st10; + FUN_02017850(param0->unk08[param1].unk1d, &st11, &st10); + + u8 i; + u8 j; + for (i = param3; i < param3 + param5; i++) + { + if (i >= st10) + { + break; + } + + for (j = param2; j < param2 + param4; j++) + { + if (j >= st11) + { + break; + } + + u16 idx = FUN_02017FFC(j, i, param0->unk08[param1].unk1d); + ((u16 *)r4)[idx] = (((u16 *)r4)[idx] & 0xfff) | (param6 << 0xc); + } + } + } +} + +THUMB_FUNC void FUN_02018744(struct UnkStruct2 *param0, u32 param1) +{ + if (param0->unk08[param1].unk08 != NULL) + { + MIi_CpuClear16(0, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + FUN_02017CD0(param0, param1); + } +} + +THUMB_FUNC void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2) +{ + if (param0->unk08[param1].unk08 != NULL) + { + MIi_CpuClear16(param2, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + FUN_02017CD0(param0, param1); + } +} + +extern void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1); + +THUMB_FUNC void FUN_0201878C(struct UnkStruct2 *param0, u32 param1, u16 param2) +{ + if (param0->unk08[param1].unk08 != NULL) + { + MIi_CpuClear16(param2, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + FUN_0201AC68(param0, param1); + } +} + +THUMB_FUNC void *FUN_020187B0(u32 param0) +{ + switch (param0) + { + case 0: + return G2_GetBG0CharPtr(); + case 1: + return G2_GetBG1CharPtr(); + case 2: + return G2_GetBG2CharPtr(); + case 3: + return G2_GetBG3CharPtr(); + case 4: + return G2S_GetBG0CharPtr(); + case 5: + return G2S_GetBG1CharPtr(); + case 6: + return G2S_GetBG2CharPtr(); + case 7: + return G2S_GetBG3CharPtr(); + } + + return NULL; +} + +THUMB_FUNC void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3) +{ + param3 = param3 << 4; + for (int i = 0; i < param1; i++) + { + param2[i][0] = param0[i] & 0xf; + if (param2[i][0] != 0) + { + param2[i][0] += param3; + } + + param2[i][1] = (param0[i] >> 4) & 0xf; + if (param2[i][1] != 0) + { + param2[i][1] += param3; + } + } +} + +THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2] +{ + u8(*ptr)[2] = (u8(*)[2])AllocFromHeap(heap_id, param1 * 2); + + FUN_02018808(param0, param1, ptr, param2); + + return ptr; +} + +THUMB_FUNC void *FUN_0201886C(struct UnkStruct2 *param0, u32 param1) +{ + return param0->unk08[param1].unk08; +} + +THUMB_FUNC u16 FUN_02018878(struct UnkStruct2 *param0, u32 param1) +{ + return param0->unk08[param1].unk20; +} + +#ifdef NONMATCHING +THUMB_FUNC u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1) +{ + + // the compiler keeps optimizing the stack away :( + u16 st0[16]; + switch (param1) + { + case 0: + st0[15] = reg_G2_BG0CNT; + return (u32)(st0[15] << 0x1e) >> 0x1e; + case 1: + st0[14] = reg_G2_BG1CNT; + return (u32)(st0[14] << 0x1e) >> 0x1e; + + case 2: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + st0[13] = reg_G2_BG2CNT; + return (u32)(st0[13] << 0x1e) >> 0x1e; + case 1: + st0[12] = reg_G2_BG2CNT; + return (u32)(st0[12] << 0x1e) >> 0x1e; + case 2: + st0[11] = reg_G2_BG2CNT; + return (u32)(st0[11] << 0x1e) >> 0x1e; + } + break; + case 3: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + st0[10] = reg_G2_BG3CNT; + return (u32)(st0[10] << 0x1e) >> 0x1e; + case 1: + st0[9] = reg_G2_BG3CNT; + return (u32)(st0[9] << 0x1e) >> 0x1e; + case 2: + st0[8] = reg_G2_BG3CNT; + return (u32)(st0[8] << 0x1e) >> 0x1e; + } + break; + + case 4: + st0[7] = reg_G2S_DB_BG0CNT; + return (u32)(st0[7] << 0x1e) >> 0x1e; + case 5: + st0[6] = reg_G2S_DB_BG1CNT; + return (u32)(st0[6] << 0x1e) >> 0x1e; + + case 6: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + st0[5] = reg_G2S_DB_BG2CNT; + return (u32)(st0[5] << 0x1e) >> 0x1e; + case 1: + st0[4] = reg_G2S_DB_BG2CNT; + return (u32)(st0[4] << 0x1e) >> 0x1e; + case 2: + st0[3] = reg_G2S_DB_BG2CNT; + return (u32)(st0[3] << 0x1e) >> 0x1e; + } + break; + case 7: + switch (param0->unk08[param1].unk1c) + { + default: + case 0: + st0[2] = reg_G2S_DB_BG3CNT; + return (u32)(st0[2] << 0x1e) >> 0x1e; + case 1: + st0[1] = reg_G2S_DB_BG3CNT; + return (u32)(st0[1] << 0x1e) >> 0x1e; + case 2: + st0[0] = reg_G2S_DB_BG3CNT; + return (u32)(st0[0] << 0x1e) >> 0x1e; + } + break; + } + + return 0; +} +#else +THUMB_FUNC asm u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1) +{ + // clang-format off + sub sp, #0x20 + cmp r1, #0x7 + bls _0201888C + b _02018A38 +_0201888C: + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_02018898: + // jump table (using 16-bit offset) + // .short _020188A8 - _02018898 - 2; case 0 + // .short _020188BC - _02018898 - 2; case 1 + // .short _020188D0 - _02018898 - 2; case 2 + // .short _02018920 - _02018898 - 2; case 3 + // .short _02018970 - _02018898 - 2; case 4 + // .short _02018984 - _02018898 - 2; case 5 + // .short _02018998 - _02018898 - 2; case 6 + // .short _020189E8 - _02018898 - 2; case 7 + + lsl r6, r1, #0 + lsl r2, r4, #0 + lsl r6, r6, #0 + lsl r6, r0, #2 + lsl r6, r2, #3 + lsl r2, r5, #3 + lsl r6, r7, #3 + lsl r6, r1, #5 +_020188A8: + ldr r0, =0x04000008 + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1e] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188BC: + ldr r0, =0x0400000A + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1c] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188D0: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020188E4 + cmp r0, #0x1 + beq _020188F8 + cmp r0, #0x2 + beq _0201890C +_020188E4: + ldr r0, =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x1a] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020188F8: + ldr r0, =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x18] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_0201890C: + ldr r0, =0x0400000C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x16] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018920: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _02018934 + cmp r0, #0x1 + beq _02018948 + cmp r0, #0x2 + beq _0201895C +_02018934: + ldr r0, =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x14] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018948: + ldr r0, =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x12] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_0201895C: + ldr r0, =0x0400000E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x10] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018970: + ldr r0, =0x04001008 + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xe] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018984: + ldr r0, =0x0400100A + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xc] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018998: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020189AC + cmp r0, #0x1 + beq _020189C0 + cmp r0, #0x2 + beq _020189D4 +_020189AC: + ldr r0, =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0xa] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189C0: + ldr r0, =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x8] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189D4: + ldr r0, =0x0400100C + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x6] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_020189E8: + mov r2, #0x2c + mul r2, r1 + add r0, r0, r2 + ldrb r0, [r0, #0x1c] + cmp r0, #0x0 + beq _020189FC + cmp r0, #0x1 + beq _02018A10 + cmp r0, #0x2 + beq _02018A24 +_020189FC: + ldr r0, =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x4] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A10: + ldr r0, =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x2] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A24: + ldr r0, =0x0400100E + ldrh r1, [r0, #0x0] + add r0, sp, #0x0 + add sp, #0x20 + strh r1, [r0, #0x0] + lsl r0, r1, #0x1e + lsr r0, r0, #0x1e + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr +_02018A38: + mov r0, #0x0 + add sp, #0x20 + bx lr + // clang-format on +} +#endif + +#ifdef NONMATCHING +THUMB_FUNC void FUN_02018A60(u16 *param0, + u16 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8) +{ + + u8 *unk1; + u8 *unk2; + + int st50; + if (param1[2] - param4 < param6) + { + st50 = param2 + param1[2] - param4; + } + else + { + st50 = param2 + param6; + } + + int st4c; + if (param1[3] - param5 < param7) + { + st4c = param3 + param1[3] - param5; + } + else + { + st4c = param3 + param7; + } + + int st48 = (param0[2] + (param0[2] & 7)) >> 3; + + int st44 = (param1[2] + (param1[2] & 7)) >> 3; + + u32 i, i1; + u32 j, j1; + if (param8 == 0xFFFF) + { + i1 = param5; + for (i = param3; i < st4c; i++) + { + j1 = param4; + for (j = param2; j < st50; j++) + { + + unk1 = + *(u32 *)param1 + (j1 >> 1) & + 0x3 + ((j1 << 2) & 0x3fe0) + st44 * ((i1 << 2) & 0x3fe0) + ((i1 << 2) & 0x1c); + unk2 = *(u32 *)param0 + (j >> 1) & + 0x3 + ((j << 2) & 0x3fe0) + st48 * ((i << 2) & 0x3FE0) + ((i << 2) & 0x1c); + + u8 r1 = *unk2; + + u32 r2 = (j1 << 0x1f) >> 0x1d; + u32 r7 = ((r1 >> ((j << 0x1f) >> 0x1d)) & 0xf) << r2; + + *unk1 = r7 | (*unk1 & (0xf0 >> r2)); + + j1++; + } + i1++; + } + } + else + { + + i1 = param5; + for (i = param3; i < st4c; i++) + { + j1 = param4; + for (j = param2; j < st50; j++) + { + + unk1 = *(u32 *)param1 + ((j1 >> 1) & 3) + ((j1 << 2) & 0x3fe0) + + st44 * ((i1 << 2) & 0x3fe0) + (i1 << 2) & + 0x1c; + unk2 = *(u32 *)param0 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + + st48 * ((i << 2) & 0x3fe0) + ((i << 2) & 0x1c); + u8 r0 = ((*unk2) >> ((j << 0x1f) >> 0x1d)) & 0xf; + + if (r0 != param8) + { + u32 r7 = ((j1 << 0x1f) >> 0x1d); + *unk1 = (r0 << r7) | (*unk1 & (0xf0 >> r7)); + } + + j1++; + } + i1++; + } + } +} +#else +THUMB_FUNC asm void FUN_02018A60(u16 *param0, + u16 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x68 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x70 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018A88 + ldr r0, [sp, #0x8] + add r0, r0, r3 + str r0, [sp, #0x50] + b _02018A8E +_02018A88: + ldr r0, [sp, #0x8] + add r0, r2, r0 + str r0, [sp, #0x50] +_02018A8E: + ldr r2, [sp, #0x4] + add r3, sp, #0x70 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018AA6 + ldr r2, [sp, #0xc] + add r2, r2, r4 + str r2, [sp, #0x4c] + b _02018AAC +_02018AA6: + ldr r2, [sp, #0xc] + add r2, r3, r2 + str r2, [sp, #0x4c] +_02018AAC: + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x48] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x44] + add r1, sp, #0x70 + ldrh r1, [r1, #0x20] + ldr r2, =0x0000FFFF + str r1, [sp, #0x38] + cmp r1, r2 + bne _02018BB4 + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018ADE + cmp r2, r1 + blt _02018AE0 +_02018ADE: + b _02018C92 +_02018AE0: + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018AEA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018B96 + cmp r1, r0 + bge _02018B96 + add r0, r3, #0x0 + lsl r5, r0, #0x2 + add r0, r4, #0x0 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x48] + and r1, r0 + mul r2, r1 + str r2, [sp, #0x20] + ldr r2, [sp, #0x28] + mov r1, #0x1c + and r2, r1 + str r2, [sp, #0x1c] + ldr r2, [sp, #0x24] + and r0, r2 + ldr r2, [sp, #0x44] + mul r2, r0 + ldr r0, [sp, #0x24] + str r2, [sp, #0x18] + and r0, r1 + str r0, [sp, #0x14] +_02018B26: + ldr r0, [sp, #0x4] + asr r2, r4, #0x1 + mov r1, #0x3 + ldr r0, [r0, #0x0] + and r1, r2 + add r1, r0, r1 + ldr r0, =0x00003FE0 + and r0, r6 + add r1, r1, r0 + ldr r0, [sp, #0x18] + add r6, r6, #0x4 + add r0, r1, r0 + str r0, [sp, #0x64] + lsl r0, r4, #0x1f + lsr r2, r0, #0x1d + ldr r0, [sp, #0x0] + asr r1, r3, #0x1 + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r1 + ldr r1, =0x00003FE0 + add r4, r4, #0x1 + and r1, r5 + str r1, [sp, #0x54] + add r1, r7, r0 + ldr r0, [sp, #0x54] + add r5, r5, #0x4 + add r1, r0, r1 + ldr r0, [sp, #0x20] + add r1, r0, r1 + ldr r0, [sp, #0x1c] + ldrb r1, [r0, r1] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r1, r0 + mov r0, #0xf + and r0, r1 + add r7, r0, #0x0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + lsl r7, r2 + ldrb r0, [r0, r1] + add r3, r3, #0x1 + str r0, [sp, #0x58] + mov r0, #0xf0 + asr r0, r2 + ldr r1, [sp, #0x58] + add r2, r7, #0x0 + and r0, r1 + orr r2, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x64] + strb r2, [r0, r1] + ldr r0, [sp, #0x50] + cmp r3, r0 + blt _02018B26 +_02018B96: + ldr r0, [sp, #0x28] + add r0, r0, #0x4 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x24] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018AEA + add sp, #0x68 + pop {r3-r7, pc} +_02018BB4: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x4c] + cmp r2, r1 + bge _02018C92 + cmp r2, r1 + bge _02018C92 + add r1, r2, #0x0 + lsl r1, r1, #0x2 + lsl r0, r0, #0x2 + str r1, [sp, #0x40] + str r0, [sp, #0x3c] +_02018BCA: + ldr r3, [sp, #0x8] + ldr r0, [sp, #0x50] + add r1, r3, #0x0 + ldr r4, [sp, #0x10] + cmp r1, r0 + bge _02018C78 + cmp r1, r0 + bge _02018C78 + add r0, r3, #0x0 + lsl r1, r0, #0x2 + add r0, r4, #0x0 + lsl r2, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x40] + ldr r6, [sp, #0x48] + and r5, r0 + mul r6, r5 + str r6, [sp, #0x34] + ldr r6, [sp, #0x40] + mov r5, #0x1c + and r6, r5 + str r6, [sp, #0x30] + ldr r6, [sp, #0x3c] + and r0, r6 + ldr r6, [sp, #0x44] + mul r6, r0 + ldr r0, [sp, #0x3c] + str r6, [sp, #0x2c] + and r0, r5 + str r0, [sp, #0x60] +_02018C06: + ldr r0, [sp, #0x4] + asr r6, r4, #0x1 + mov r5, #0x3 + and r5, r6 + ldr r0, [r0, #0x0] + asr r6, r3, #0x1 + add r5, r0, r5 + ldr r0, =0x00003FE0 + and r0, r2 + add r5, r5, r0 + ldr r0, [sp, #0x2c] + add r5, r5, r0 + ldr r0, [sp, #0x0] + ldr r7, [r0, #0x0] + mov r0, #0x3 + and r0, r6 + ldr r6, =0x00003FE0 + and r6, r1 + str r6, [sp, #0x5c] + add r6, r7, r0 + ldr r0, [sp, #0x5c] + add r6, r0, r6 + ldr r0, [sp, #0x34] + add r6, r0, r6 + ldr r0, [sp, #0x30] + ldrb r6, [r0, r6] + lsl r0, r3, #0x1f + lsr r0, r0, #0x1d + asr r6, r0 + mov r0, #0xf + and r0, r6 + ldr r6, [sp, #0x38] + cmp r0, r6 + beq _02018C6A + lsl r6, r4, #0x1f + lsr r7, r6, #0x1d + lsl r0, r7 + mov lr, r0 + ldr r0, [sp, #0x60] + ldrb r0, [r5, r0] + mov r12, r0 + mov r0, #0xf0 + add r6, r0, #0x0 + asr r6, r7 + mov r0, r12 + and r0, r6 + mov r6, lr + orr r6, r0 + ldr r0, [sp, #0x60] + strb r6, [r5, r0] +_02018C6A: + ldr r0, [sp, #0x50] + add r3, r3, #0x1 + add r1, r1, #0x4 + add r2, r2, #0x4 + add r4, r4, #0x1 + cmp r3, r0 + blt _02018C06 +_02018C78: + ldr r0, [sp, #0x40] + add r0, r0, #0x4 + str r0, [sp, #0x40] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0xc] + add r0, r0, #0x4 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x4c] + cmp r1, r0 + blt _02018BCA +_02018C92: + add sp, #0x68 + pop {r3-r7, pc} + // clang-format on +} +#endif + +#ifdef NONMATCHING +THUMB_FUNC void FUN_02018CA0(u16 *param0, + u16 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8) +{ + // horrible for loops like the one above +} +#else +THUMB_FUNC asm void FUN_02018CA0(u16 *param0, + u16 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8) +{ + // clang-format off + push {r3-r7, lr} + sub sp, #0x50 + str r2, [sp, #0x8] + str r3, [sp, #0xc] + add r2, sp, #0x58 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x10] + str r1, [sp, #0x4] + ldrh r2, [r2, #0x18] + str r0, [sp, #0x10] + add r0, r1, #0x0 + ldrh r1, [r0, #0x4] + ldr r0, [sp, #0x10] + sub r3, r1, r0 + cmp r3, r2 + bge _02018CC6 + ldr r0, [sp, #0x8] + add r0, r0, r3 + b _02018CCA +_02018CC6: + ldr r0, [sp, #0x8] + add r0, r2, r0 +_02018CCA: + ldr r2, [sp, #0x4] + add r3, sp, #0x58 + mov r12, r0 + ldrh r0, [r3, #0x14] + ldrh r2, [r2, #0x6] + ldrh r3, [r3, #0x1c] + sub r4, r2, r0 + cmp r4, r3 + bge _02018CE2 + ldr r2, [sp, #0xc] + add r2, r2, r4 + b _02018CE6 +_02018CE2: + ldr r2, [sp, #0xc] + add r2, r3, r2 +_02018CE6: + mov lr, r2 + ldr r2, [sp, #0x0] + mov r3, #0x7 + ldrh r4, [r2, #0x4] + add r2, r4, #0x0 + and r2, r3 + add r2, r4, r2 + asr r2, r2, #0x3 + str r2, [sp, #0x4c] + add r2, r1, #0x0 + and r2, r3 + add r1, r1, r2 + asr r1, r1, #0x3 + str r1, [sp, #0x48] + add r1, sp, #0x58 + ldrh r1, [r1, #0x20] + ldr r2, =0x0000FFFF + str r1, [sp, #0x3c] + cmp r1, r2 + bne _02018DC6 + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018D1C + mov r1, lr + cmp r2, r1 + blt _02018D1E +_02018D1C: + b _02018E7C +_02018D1E: + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x28] + str r0, [sp, #0x24] +_02018D28: + ldr r1, [sp, #0x8] + mov r0, r12 + add r2, r1, #0x0 + ldr r7, [sp, #0x10] + cmp r2, r0 + bge _02018DA8 + mov r0, r12 + cmp r2, r0 + bge _02018DA8 + add r0, r1, #0x0 + lsl r2, r0, #0x3 + add r0, r7, #0x0 + lsl r3, r0, #0x3 + ldr r6, =0x00007FC0 + ldr r0, [sp, #0x28] + ldr r4, [sp, #0x4c] + and r0, r6 + mul r4, r0 + str r4, [sp, #0x20] + ldr r0, [sp, #0x28] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x24] + ldr r4, [sp, #0x48] + and r0, r6 + mul r4, r0 + ldr r0, [sp, #0x24] + str r4, [sp, #0x18] + and r0, r5 + str r0, [sp, #0x14] +_02018D66: + ldr r0, [sp, #0x0] + add r5, r1, #0x0 + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, =0x00007FC0 + add r0, r0, r5 + and r4, r2 + add r4, r4, r0 + ldr r0, [sp, #0x20] + add r5, r7, #0x0 + add r4, r0, r4 + ldr r0, [sp, #0x1c] + add r1, r1, #0x1 + ldrb r6, [r0, r4] + ldr r0, [sp, #0x4] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, =0x00007FC0 + add r0, r0, r5 + and r4, r3 + add r4, r4, r0 + ldr r0, [sp, #0x18] + add r2, #0x8 + add r4, r0, r4 + ldr r0, [sp, #0x14] + add r3, #0x8 + strb r6, [r0, r4] + mov r0, r12 + add r7, r7, #0x1 + cmp r1, r0 + blt _02018D66 +_02018DA8: + ldr r0, [sp, #0x28] + add r0, #0x8 + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x24] + mov r0, lr + cmp r1, r0 + blt _02018D28 + add sp, #0x50 + pop {r3-r7, pc} +_02018DC6: + ldr r2, [sp, #0xc] + mov r1, lr + cmp r2, r1 + bge _02018E7C + mov r1, lr + cmp r2, r1 + bge _02018E7C + add r1, r2, #0x0 + lsl r1, r1, #0x3 + lsl r0, r0, #0x3 + str r1, [sp, #0x44] + str r0, [sp, #0x40] +_02018DDE: + ldr r2, [sp, #0x8] + mov r0, r12 + add r1, r2, #0x0 + ldr r3, [sp, #0x10] + cmp r1, r0 + bge _02018E62 + mov r0, r12 + cmp r1, r0 + bge _02018E62 + add r0, r2, #0x0 + lsl r6, r0, #0x3 + add r0, r3, #0x0 + lsl r1, r0, #0x3 + ldr r7, =0x00007FC0 + ldr r0, [sp, #0x44] + ldr r4, [sp, #0x4c] + and r0, r7 + mul r4, r0 + str r4, [sp, #0x38] + ldr r0, [sp, #0x44] + mov r5, #0x38 + and r0, r5 + str r0, [sp, #0x34] + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x48] + and r0, r7 + mul r4, r0 + ldr r0, [sp, #0x40] + str r4, [sp, #0x30] + and r0, r5 + str r0, [sp, #0x2c] +_02018E1C: + ldr r0, [sp, #0x4] + mov r4, #0x7 + ldr r0, [r0, #0x0] + and r4, r3 + add r0, r0, r4 + ldr r4, =0x00007FC0 + add r5, r2, #0x0 + and r4, r1 + add r4, r0, r4 + ldr r0, [sp, #0x30] + add r7, r4, r0 + ldr r0, [sp, #0x0] + mov r4, #0x7 + and r5, r4 + ldr r0, [r0, #0x0] + ldr r4, =0x00007FC0 + add r0, r0, r5 + and r4, r6 + add r4, r4, r0 + ldr r0, [sp, #0x38] + add r4, r0, r4 + ldr r0, [sp, #0x34] + ldrb r0, [r0, r4] + ldr r4, [sp, #0x3c] + cmp r0, r4 + beq _02018E54 + ldr r4, [sp, #0x2c] + strb r0, [r7, r4] +_02018E54: + add r2, r2, #0x1 + mov r0, r12 + add r6, #0x8 + add r1, #0x8 + add r3, r3, #0x1 + cmp r2, r0 + blt _02018E1C +_02018E62: + ldr r0, [sp, #0x44] + add r0, #0x8 + str r0, [sp, #0x44] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x40] + ldr r1, [sp, #0xc] + add r0, #0x8 + str r0, [sp, #0x40] + mov r0, lr + cmp r1, r0 + blt _02018DDE +_02018E7C: + add sp, #0x50 + pop {r3-r7, pc} + // clang-format on +} +#endif + +THUMB_FUNC void FUN_02018E88(u16 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) +{ + + int r6 = param1 + param3; + if (r6 > param0[2]) + { + r6 = param0[2]; + } + + int r12 = param2 + param4; + if (r12 > param0[3]) + { + r12 = param0[3]; + } + + int lr = (((param0[2]) + (param0[2] & 7)) >> 3); + + for (int i = param2; i < r12; i++) + { + + for (int j = param1; j < r6; j++) + { + + u8 *unk = (u8 *)(*(u8 **)param0 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + + (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c)); + + if ((j & 1) != 0) + { + *unk &= 0xf; + *unk |= (param5 << 4); + } + else + { + *unk &= 0xf0; + *unk |= param5; + } + } + } +} + +THUMB_FUNC void FUN_02018F4C(u16 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) +{ + + int r6 = param1 + param3; + if (r6 > param0[2]) + { + r6 = param0[2]; + } + + int r12 = param2 + param4; + if (r12 > param0[3]) + { + r12 = param0[3]; + } + + int lr = (((param0[2]) + (param0[2] & 7)) >> 3); + + for (int i = param2; i < r12; i++) + { + + for (int j = param1; j < r6; j++) + { + + u8 *unk = (u8 *)(*(u8 **)param0 + (j & 7) + ((j << 3) & 0x7fc0) + + (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38)); + + *unk = param5; + } + } +} + +struct Window +{ + struct UnkStruct2 *unk00; + u8 unk04; + u8 unk05; + u8 unk06; + u8 unk07; + u8 unk08; + u8 unk09; + u16 unk0a : 15; + u16 unk0b : 1; + void *unk0c; +}; + +extern void FUN_0201901C(struct Window *ptr); + +THUMB_FUNC void *FUN_02018FF4(u32 heap_id, s32 size) +{ + struct Window *ptr = AllocFromHeap(heap_id, size << 4); + + for (u16 i = 0; i < size; i++) + { + FUN_0201901C(&ptr[i]); + } + + return ptr; +} + +THUMB_FUNC void FUN_0201901C(struct Window *param0) +{ + param0->unk00 = 0; + param0->unk04 = 0xff; + param0->unk05 = 0; + param0->unk06 = 0; + param0->unk07 = 0; + param0->unk08 = 0; + param0->unk09 = 0; + + param0->unk0a = 0; + param0->unk0c = 0; + + param0->unk0b = 0; +} + +THUMB_FUNC BOOL FUN_02019048(struct Window *param0) +{ + if (param0->unk00 == 0 || param0->unk04 == 0xff || param0->unk0c == 0) + { + return FALSE; + } + + return TRUE; +} + +enum UnkEnum1 +{ + UnkEnum1_0 = 0, + UnkEnum1_1 = 1 +}; + +THUMB_FUNC void FUN_02019064(struct UnkStruct2 *param0, + struct Window *param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6, + u8 param7, + u16 param8) +{ + if (param0->unk08[param2].unk08 == NULL) + { + return; + } + + void *ptr = AllocFromHeap(param0->unk00, param5 * param6 * param0->unk08[param2].unk1f); + + if (ptr == NULL) + { + return; + } + param1->unk00 = param0; + param1->unk04 = param2; + param1->unk05 = param3; + param1->unk06 = param4; + param1->unk07 = param5; + param1->unk08 = param6; + param1->unk09 = param7; + + param1->unk0a = param8; + param1->unk0c = ptr; + + enum UnkEnum1 r2; + if (param0->unk08[param2].unk1e == 0) + { + r2 = UnkEnum1_0; + } + else + { + r2 = UnkEnum1_1; + } + + param1->unk0b = r2; +} + +THUMB_FUNC void FUN_020190EC( + struct UnkStruct2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5) +{ + u32 size = param2 * param3 * 32; + + void *ptr = AllocFromHeap(param0->unk00, size); + + param5 |= (param5 * 16); + memset(ptr, param5, size); + + if (ptr != NULL) + { + param1->unk00 = param0; + param1->unk07 = param2; + param1->unk08 = param3; + param1->unk0a = param4; + param1->unk0c = ptr; + param1->unk0b = 0; + } +} + +struct UnkStruct4 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u16 unk6; +}; + +THUMB_FUNC void FUN_02019150( + struct UnkStruct2 *param0, struct Window *param1, struct UnkStruct4 *param2) +{ + + FUN_02019064(param0, + param1, + param2->unk0, + param2->unk1, + param2->unk2, + param2->unk3, + param2->unk4, + param2->unk5, + param2->unk6); +} + +THUMB_FUNC void FUN_02019178(struct Window *param0) +{ + FreeToHeap(param0->unk0c); + + param0->unk00 = 0; + param0->unk04 = 0xff; + param0->unk05 = 0; + param0->unk06 = 0; + param0->unk07 = 0; + param0->unk08 = 0; + param0->unk09 = 0; + param0->unk0a = 0; + param0->unk0c = 0; +} + +THUMB_FUNC void FUN_020191A4(struct Window *param0, int param1) +{ + for (u16 i = 0; i < param1; i++) + { + if (param0[i].unk0c != NULL) + { + FreeToHeap(param0[i].unk0c); + } + } + + FreeToHeap(param0); +} + +THUMB_FUNC void CopyWindowToVram(struct Window *param0) +{ + + GF_ASSERT(param0); + GF_ASSERT(param0->unk00); + GF_ASSERT(param0->unk04 < 8); + GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3); + + UNK_020EDB68[param0->unk00->unk08[param0->unk04].unk1c](param0); +} + +THUMB_FUNC void FUN_02019220(struct Window *param0) +{ + + GF_ASSERT(param0); + GF_ASSERT(param0->unk00); + GF_ASSERT(param0->unk04 < 8); + GF_ASSERT(param0->unk00->unk08[param0->unk04].unk1c < 3); + + UNK_020EDB5C[param0->unk00->unk08[param0->unk04].unk1c](param0); +} + +THUMB_FUNC void FUN_02019270(struct Window *param0) +{ + UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0); +} + +THUMB_FUNC void FUN_0201928C(struct Window *param0, u8 param1, u8 param2) +{ + u8 unk07 = param0->unk07; + u8 unk08 = param0->unk08; + + param0->unk07 = param1; + param0->unk08 = param2; + UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0); + + param0->unk07 = unk07; + param0->unk08 = unk08; +} + +THUMB_FUNC void FUN_020192B8(struct Window *param0) +{ + UNK_020EDB74[param0->unk00->unk08[param0->unk04].unk1c](param0); +} + +THUMB_FUNC void FUN_020192D4(struct Window *param0) +{ + u32 i, j; + u32 r3; + u32 iCount, jCount; + u16 *st4 = param0->unk00->unk08[param0->unk04].unk08; + + if (st4 == NULL) + { + return; + } + + r3 = param0->unk0a; + jCount = param0->unk05 + param0->unk07; + iCount = param0->unk06 + param0->unk08; + + for (i = param0->unk06; i < iCount; i++) + { + for (j = param0->unk05; j < jCount; j++) + { + st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] = + (r3 | (param0->unk09 << 12)); + + r3++; + } + } +} + +THUMB_FUNC void FUN_02019358(struct Window *param0) +{ + int j, i; + u8 *r4; + + int r5; + int r6; + + if (param0->unk00->unk08[param0->unk04].unk08 == NULL) + { + return; + } + + r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; + + r4 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; + r5 = param0->unk0a; + + for (i = 0; i < param0->unk08; i++) + { + for (j = 0; j < param0->unk07; j++) + { + r4[j] = r5; + r5++; + } + r4 += r6; + } +} + +THUMB_FUNC void FUN_020193B4(struct Window *param0) +{ + + u32 i, j; + + u32 iCount, jCount; + u32 st8; + + u16 *st4; + + if (param0->unk00->unk08[param0->unk04].unk08 == NULL) + { + return; + } + st4 = param0->unk00->unk08[param0->unk04].unk08; + + st8 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; + jCount = param0->unk05 + param0->unk07; + iCount = param0->unk06 + param0->unk08; + + for (i = param0->unk06; i < iCount; i++) + { + for (j = param0->unk05; j < jCount; j++) + { + st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) * st8) + (j & 0x1f)] = 0; + } + } +} + +THUMB_FUNC void FUN_02019444(struct Window *param0) +{ + + int j, i; + u8 *r5; + + int r6; + + if (param0->unk00->unk08[param0->unk04].unk08 == NULL) + { + return; + } + + + r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; + r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; + + for ( i = 0; i < param0->unk08; i++) + { + for ( j = 0; j < param0->unk07; j++) + { + r5[j] = 0; + } + r5 += r6; + + } + +} From b9775f239f86191af5cb1ee8f58f4fbcdc7e4b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 09:37:43 +0200 Subject: [PATCH 063/134] remaining decomps --- arm9/arm9.lsf | 1 - arm9/asm/unk_02016B94.s | 4007 ----------------- arm9/src/{unk_02016B94_c.c => unk_02016B94.c} | 3422 +++++++++++++- include/unk_02016B94.h | 3 +- 4 files changed, 3379 insertions(+), 4054 deletions(-) delete mode 100644 arm9/asm/unk_02016B94.s rename arm9/src/{unk_02016B94_c.c => unk_02016B94.c} (59%) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 1569f4eeb..1abf5a522 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -49,7 +49,6 @@ Static arm9 Object unk_02015E30.o Object game_init.o Object heap.o - Object unk_02016B94_c.o Object unk_02016B94.o Object unk_0201B1A8.o Object unk_0201B4E8.o diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s deleted file mode 100644 index b2ff66844..000000000 --- a/arm9/asm/unk_02016B94.s +++ /dev/null @@ -1,4007 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .rodata - .text - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - thumb_func_start FUN_0201949C -FUN_0201949C: ; 0x0201949C - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_020192D4 - add r0, r4, #0x0 - bl FUN_02019548 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_020194C8 -FUN_020194C8: ; 0x020194C8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020192D4 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - add r0, r4, #0x0 - bl FUN_02019548 - pop {r4, pc} - - thumb_func_start FUN_020194E0 -FUN_020194E0: ; 0x020194E0 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02019358 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x11 - lsr r0, r0, #0x11 - str r0, [sp, #0x0] - ldrb r5, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - mul r3, r5 - ldr r2, [r4, #0xc] - lsl r3, r3, #0x6 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_0201951C -FUN_0201951C: ; 0x0201951C - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02019358 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - ldrh r0, [r4, #0xa] - lsl r0, r0, #0x11 - lsr r0, r0, #0x11 - str r0, [sp, #0x0] - ldrb r5, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - mul r3, r5 - ldr r2, [r4, #0xc] - lsl r3, r3, #0x6 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_02019548 -FUN_02019548: ; 0x02019548 - push {r3-r5, lr} - add r3, r0, #0x0 - ldrh r2, [r3, #0xa] - ldrb r1, [r3, #0x4] - mov r4, #0x2c - lsl r2, r2, #0x11 - ldr r0, [r3, #0x0] - lsr r2, r2, #0x11 - str r2, [sp, #0x0] - mul r4, r1 - add r4, r0, r4 - ldr r2, [r3, #0xc] - ldrb r5, [r3, #0x7] - ldrb r3, [r3, #0x8] - ldrb r4, [r4, #0x1f] - mul r3, r5 - mul r3, r4 - bl FUN_02017E14 - pop {r3-r5, pc} - - thumb_func_start FUN_02019570 -FUN_02019570: ; 0x02019570 - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _02019588 ; =UNK_020EDB50 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_02019588: .word UNK_020EDB50 - - thumb_func_start FUN_0201958C -FUN_0201958C: ; 0x0201958C - push {r3, lr} - ldrb r2, [r0, #0x4] - mov r1, #0x2c - ldr r3, [r0, #0x0] - mul r1, r2 - add r1, r3, r1 - ldrb r1, [r1, #0x1c] - lsl r2, r1, #0x2 - ldr r1, _020195A4 ; =UNK_020EDB44 - ldr r1, [r1, r2] - blx r1 - pop {r3, pc} - .balign 4 -_020195A4: .word UNK_020EDB44 - - thumb_func_start FUN_020195A8 -FUN_020195A8: ; 0x020195A8 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_020193B4 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_020195D0 -FUN_020195D0: ; 0x020195D0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020193B4 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020195E4 -FUN_020195E4: ; 0x020195E4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_02019444 - ldrb r1, [r4, #0x4] - mov r0, #0x2c - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [r4, #0x0] - add r3, r0, r2 - ldr r2, [r3, #0x10] - str r2, [sp, #0x0] - ldr r2, [r3, #0x8] - ldr r3, [r3, #0xc] - bl FUN_02017CE8 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 - - thumb_func_start FUN_0201960C -FUN_0201960C: ; 0x0201960C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02019444 - ldrb r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl FUN_0201AC68 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02019620 -FUN_02019620: ; 0x02019620 - push {r3-r5, lr} - add r4, r0, #0x0 - ldrb r2, [r4, #0x4] - mov r0, #0x2c - ldr r3, [r4, #0x0] - mul r0, r2 - add r0, r3, r0 - ldrb r2, [r0, #0x1f] - cmp r2, #0x20 - bne _0201963C - lsl r0, r1, #0x4 - orr r0, r1 - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 -_0201963C: - lsl r3, r1, #0x18 - lsl r0, r1, #0x10 - orr r0, r3 - lsl r5, r1, #0x8 - orr r0, r5 - orr r0, r1 - ldr r1, [r4, #0xc] - ldrb r3, [r4, #0x8] - ldrb r4, [r4, #0x7] - mul r2, r4 - mul r2, r3 - bl MIi_CpuClearFast - pop {r3-r5, pc} - - thumb_func_start FUN_02019658 -FUN_02019658: ; 0x02019658 - push {r4-r5, lr} - sub sp, #0x1c - add r4, sp, #0x18 - ldrh r5, [r4, #0x10] - str r5, [sp, #0x0] - ldrh r5, [r4, #0x14] - str r5, [sp, #0x4] - ldrh r5, [r4, #0x18] - str r5, [sp, #0x8] - ldrh r5, [r4, #0x1c] - str r5, [sp, #0xc] - ldrh r5, [r4, #0x20] - str r5, [sp, #0x10] - ldrh r4, [r4, #0x24] - str r4, [sp, #0x14] - mov r4, #0x0 - str r4, [sp, #0x18] - bl FUN_02019684 - add sp, #0x1c - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_02019684 -FUN_02019684: ; 0x02019684 - push {r4-r5, lr} - sub sp, #0x24 - str r1, [sp, #0x1c] - add r4, sp, #0x20 - ldrh r5, [r4, #0x10] - add r1, sp, #0x14 - strh r5, [r1, #0xc] - ldrh r5, [r4, #0x14] - strh r5, [r1, #0xe] - ldr r5, [r0, #0xc] - str r5, [sp, #0x14] - ldrb r5, [r0, #0x7] - lsl r5, r5, #0x3 - strh r5, [r1, #0x4] - ldrb r5, [r0, #0x8] - lsl r5, r5, #0x3 - strh r5, [r1, #0x6] - ldrb r5, [r0, #0x4] - ldr r1, [r0, #0x0] - mov r0, #0x2c - mul r0, r5 - add r0, r1, r0 - ldrb r0, [r0, #0x1e] - add r1, sp, #0x14 - cmp r0, #0x0 - ldrh r0, [r4, #0x18] - bne _020196D6 - str r0, [sp, #0x0] - ldrh r0, [r4, #0x1c] - str r0, [sp, #0x4] - ldrh r0, [r4, #0x20] - str r0, [sp, #0x8] - ldrh r0, [r4, #0x24] - str r0, [sp, #0xc] - ldrh r0, [r4, #0x28] - str r0, [sp, #0x10] - add r0, sp, #0x1c - bl FUN_02018A60 - add sp, #0x24 - pop {r4-r5, pc} -_020196D6: - str r0, [sp, #0x0] - ldrh r0, [r4, #0x1c] - str r0, [sp, #0x4] - ldrh r0, [r4, #0x20] - str r0, [sp, #0x8] - ldrh r0, [r4, #0x24] - str r0, [sp, #0xc] - ldrh r0, [r4, #0x28] - str r0, [sp, #0x10] - add r0, sp, #0x1c - bl FUN_02018CA0 - add sp, #0x24 - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_020196F4 -FUN_020196F4: ; 0x020196F4 - push {r3-r5, lr} - sub sp, #0x10 - add r5, r1, #0x0 - ldr r1, [r0, #0xc] - add r4, r2, #0x0 - str r1, [sp, #0x8] - ldrb r1, [r0, #0x7] - add r2, r3, #0x0 - lsl r3, r1, #0x3 - add r1, sp, #0x8 - strh r3, [r1, #0x4] - ldrb r3, [r0, #0x8] - lsl r3, r3, #0x3 - strh r3, [r1, #0x6] - ldrb r3, [r0, #0x4] - ldr r1, [r0, #0x0] - mov r0, #0x2c - mul r0, r3 - add r0, r1, r0 - ldrb r0, [r0, #0x1e] - add r3, sp, #0x10 - cmp r0, #0x0 - bne _02019736 - ldrh r0, [r3, #0x14] - add r1, r4, #0x0 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x10] - add r0, sp, #0x8 - bl FUN_02018E88 - add sp, #0x10 - pop {r3-r5, pc} -_02019736: - ldrh r0, [r3, #0x14] - add r1, r4, #0x0 - str r0, [sp, #0x0] - str r5, [sp, #0x4] - ldrh r3, [r3, #0x10] - add r0, sp, #0x8 - bl FUN_02018F4C - add sp, #0x10 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0201974C -FUN_0201974C: ; 0x0201974C - push {r4-r7, lr} - sub sp, #0x1fc - sub sp, #0x118 - add r5, r0, #0x0 - ldr r0, [sp, #0x330] - str r1, [sp, #0x0] - str r0, [sp, #0x330] - add r1, sp, #0x318 - ldrh r1, [r1, #0x10] - ldr r0, [r5, #0xc] - str r1, [sp, #0x5c] - ldrb r1, [r5, #0x7] - str r0, [sp, #0x278] - ldrb r0, [r5, #0x8] - lsl r1, r1, #0x13 - lsr r4, r1, #0x10 - ldr r1, [sp, #0x5c] - lsl r0, r0, #0x13 - sub r1, r4, r1 - lsr r0, r0, #0x10 - str r4, [sp, #0x58] - str r1, [sp, #0x8] - cmp r1, r2 - blt _0201977E - str r2, [sp, #0x8] -_0201977E: - add r1, sp, #0x318 - ldrh r1, [r1, #0x14] - sub r0, r0, r1 - str r1, [sp, #0x48] - str r0, [sp, #0x4] - cmp r0, r3 - blt _0201978E - str r3, [sp, #0x4] -_0201978E: - ldr r0, [sp, #0x8] - mov r4, #0x0 - cmp r0, #0x8 - ble _0201979E - mov r0, #0x1 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_0201979E: - ldr r0, [sp, #0x4] - cmp r0, #0x8 - ble _020197AC - mov r0, #0x2 - orr r0, r4 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 -_020197AC: - ldrh r0, [r5, #0xa] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - beq _020197B8 - bl FUN_0201A12C -_020197B8: - cmp r4, #0x3 - bls _020197C0 - bl FUN_0201A8BC -_020197C0: - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020197CC: ; jump table (using 16-bit offset) - .short _020197D4 - _020197CC - 2; case 0 - .short _020198D6 - _020197CC - 2; case 1 - .short _02019AE6 - _020197CC - 2; case 2 - .short _02019D06 - _020197CC - 2; case 3 -_020197D4: - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x70] - mov r0, #0x0 - str r0, [sp, #0x274] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020197EA - bl FUN_0201A8BC -_020197EA: - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x6c] -_020197F6: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x70] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x26c] - ldr r0, [sp, #0x274] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x270] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _020198AA - ble _020198AA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x6c] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x68] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x6c] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x64] - str r0, [sp, #0x60] -_02019848: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x68] - str r5, [sp, #0x27c] - add r0, r5, r0 - ldr r5, [sp, #0x26c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201989C - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x280] - ldrb r5, [r0, r7] - str r5, [sp, #0x284] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x284] - and r6, r5 - ldr r5, [sp, #0x280] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _0201989C - ldr r6, [sp, #0x27c] - ldr r0, [sp, #0x64] - add r6, r6, r0 - ldr r0, [sp, #0x60] - strb r5, [r0, r6] -_0201989C: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019848 -_020198AA: - ldr r0, [sp, #0x270] - cmp r0, #0x0 - beq _020198B8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _020198BE -_020198B8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_020198BE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x274] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x274] - cmp r1, r0 - blt _020197F6 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_020198D6: - ldr r0, [sp, #0x0] - str r0, [sp, #0x25c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x264] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x84] - mov r0, #0x0 - str r0, [sp, #0x268] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _020199D2 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x80] -_02019902: - ldr r0, [sp, #0x25c] - ldr r1, [sp, #0x84] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x258] - ldr r0, [sp, #0x268] - ldr r6, [sp, #0x80] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x260] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x264] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x264] - str r6, [sp, #0x7c] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x80] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x78] - str r0, [sp, #0x74] -_0201994C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x7c] - str r5, [sp, #0x288] - add r0, r5, r0 - ldr r5, [sp, #0x258] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _020199A0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x28c] - ldrb r5, [r0, r7] - str r5, [sp, #0x290] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x290] - and r6, r5 - ldr r5, [sp, #0x28c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199A0 - ldr r6, [sp, #0x288] - ldr r0, [sp, #0x78] - add r6, r6, r0 - ldr r0, [sp, #0x74] - strb r5, [r0, r6] -_020199A0: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _0201994C - ldr r0, [sp, #0x260] - cmp r0, #0x0 - beq _020199BA - ldr r0, [sp, #0x264] - add r0, r0, #0x2 - str r0, [sp, #0x264] - b _020199C0 -_020199BA: - ldr r0, [sp, #0x264] - add r0, r0, #0x1 - str r0, [sp, #0x264] -_020199C0: - ldr r0, [sp, #0x25c] - add r0, r0, #0x4 - str r0, [sp, #0x25c] - ldr r0, [sp, #0x268] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x268] - cmp r1, r0 - blt _02019902 -_020199D2: - ldr r0, [sp, #0x0] - add r0, #0x20 - str r0, [sp, #0x0] - ldr r0, [sp, #0x54] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x98] - mov r0, #0x0 - str r0, [sp, #0x254] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bgt _020199EE - bl FUN_0201A8BC -_020199EE: - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x94] -_02019A00: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x98] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x24c] - ldr r0, [sp, #0x254] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x250] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x294] - sub r0, #0x8 - str r0, [sp, #0x294] - cmp r0, #0x0 - ble _02019ABA - ble _02019ABA - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x94] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0x90] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x94] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0x8c] - str r0, [sp, #0x88] -_02019A58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0x90] - str r5, [sp, #0x298] - add r0, r5, r0 - ldr r5, [sp, #0x24c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019AAC - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x29c] - ldrb r5, [r0, r7] - str r5, [sp, #0x2a0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2a0] - and r6, r5 - ldr r5, [sp, #0x29c] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AAC - ldr r6, [sp, #0x298] - ldr r0, [sp, #0x8c] - add r6, r6, r0 - ldr r0, [sp, #0x88] - strb r5, [r0, r6] -_02019AAC: - ldr r0, [sp, #0x294] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019A58 -_02019ABA: - ldr r0, [sp, #0x250] - cmp r0, #0x0 - beq _02019AC8 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019ACE -_02019AC8: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019ACE: - ldr r0, [sp, #0x0] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x254] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x254] - cmp r1, r0 - blt _02019A00 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019AE6: - ldr r0, [sp, #0x0] - mov r1, #0x7 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x244] - mov r0, #0x0 - str r0, [sp, #0x248] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xa8] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x40] -_02019B06: - ldr r0, [sp, #0x23c] - ldr r1, [sp, #0xa8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x238] - ldr r0, [sp, #0x248] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x240] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019BC2 - ble _02019BC2 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x244] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x244] - str r6, [sp, #0xa4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019B68 ; =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xa0] - str r0, [sp, #0x9c] -_02019B58: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019B68 ; =0x00003FE0 - b _02019B6C - nop -_02019B68: .word 0x00003FE0 -_02019B6C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xa4] - str r5, [sp, #0x2a4] - add r0, r5, r0 - ldr r5, [sp, #0x238] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019BB4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2a8] - ldrb r5, [r0, r7] - str r5, [sp, #0x2ac] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2ac] - and r6, r5 - ldr r5, [sp, #0x2a8] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BB4 - ldr r6, [sp, #0x2a4] - ldr r0, [sp, #0xa0] - add r6, r6, r0 - ldr r0, [sp, #0x9c] - strb r5, [r0, r6] -_02019BB4: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019B58 -_02019BC2: - ldr r0, [sp, #0x240] - cmp r0, #0x0 - beq _02019BD0 - ldr r0, [sp, #0x244] - add r0, r0, #0x2 - str r0, [sp, #0x244] - b _02019BD6 -_02019BD0: - ldr r0, [sp, #0x244] - add r0, r0, #0x1 - str r0, [sp, #0x244] -_02019BD6: - ldr r0, [sp, #0x23c] - add r0, r0, #0x4 - str r0, [sp, #0x23c] - ldr r0, [sp, #0x248] - add r0, r0, #0x1 - str r0, [sp, #0x248] - cmp r0, #0x8 - blt _02019B06 - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x40 - str r0, [sp, #0x0] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] -_02019BF6: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019C04 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019C04: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019BF6 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xb8] - mov r0, #0x0 - str r0, [sp, #0x20] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _02019C24 - bl FUN_0201A8BC -_02019C24: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xb8] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x230] - ldr r0, [sp, #0x20] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x234] - ldr r0, [sp, #0x8] - mov r1, #0x0 - cmp r0, #0x0 - ble _02019CD8 - ble _02019CD8 - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x40] - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xb4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x40] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xb0] - str r0, [sp, #0xac] -_02019C76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xb4] - str r5, [sp, #0x2b0] - add r0, r5, r0 - ldr r5, [sp, #0x230] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019CCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2b4] - ldrb r5, [r0, r7] - str r5, [sp, #0x2b8] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2b8] - and r6, r5 - ldr r5, [sp, #0x2b4] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CCA - ldr r6, [sp, #0x2b0] - ldr r0, [sp, #0xb0] - add r6, r6, r0 - ldr r0, [sp, #0xac] - strb r5, [r0, r6] -_02019CCA: - ldr r0, [sp, #0x8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019C76 -_02019CD8: - ldr r0, [sp, #0x234] - cmp r0, #0x0 - beq _02019CE6 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _02019CEC -_02019CE6: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_02019CEC: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x20] - cmp r0, r1 - blt _02019C24 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} -_02019D06: - ldr r0, [sp, #0x0] - str r0, [sp, #0x220] - ldr r0, [sp, #0x48] - str r0, [sp, #0x228] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x22c] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x38] -_02019D2A: - ldr r0, [sp, #0x220] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x21c] - ldr r0, [sp, #0x22c] - ldr r6, [sp, #0x38] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x224] - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x228] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x228] - str r6, [sp, #0xc4] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - str r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xc0] - str r0, [sp, #0xbc] -_02019D76: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xc4] - str r5, [sp, #0x2bc] - add r0, r5, r0 - ldr r5, [sp, #0x21c] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019DCA - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2c0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2c4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2c4] - and r6, r5 - ldr r5, [sp, #0x2c0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DCA - ldr r6, [sp, #0x2bc] - ldr r0, [sp, #0xc0] - add r6, r6, r0 - ldr r0, [sp, #0xbc] - strb r5, [r0, r6] -_02019DCA: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019D76 - ldr r0, [sp, #0x224] - cmp r0, #0x0 - beq _02019DE4 - ldr r0, [sp, #0x228] - add r0, r0, #0x2 - str r0, [sp, #0x228] - b _02019DEA -_02019DE4: - ldr r0, [sp, #0x228] - add r0, r0, #0x1 - str r0, [sp, #0x228] -_02019DEA: - ldr r0, [sp, #0x220] - add r0, r0, #0x4 - str r0, [sp, #0x220] - ldr r0, [sp, #0x22c] - add r0, r0, #0x1 - str r0, [sp, #0x22c] - cmp r0, #0x8 - blt _02019D2A - ldr r0, [sp, #0x0] - str r0, [sp, #0x20c] - add r0, #0x20 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x48] - str r0, [sp, #0x214] - mov r0, #0x0 - str r0, [sp, #0x218] - ldr r0, [sp, #0x5c] - str r0, [sp, #0xd4] - add r0, #0x8 - str r0, [sp, #0xd4] -_02019E12: - ldr r0, [sp, #0x20c] - ldr r1, [sp, #0x3c] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0xd4] - str r0, [sp, #0x208] - ldr r0, [sp, #0x218] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x210] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2c8] - sub r0, #0x8 - str r0, [sp, #0x2c8] - cmp r0, #0x0 - ble _02019ECC - ble _02019ECC - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x214] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x214] - str r6, [sp, #0xd0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xcc] - str r0, [sp, #0xc8] -_02019E6A: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xd0] - str r5, [sp, #0x2cc] - add r0, r5, r0 - ldr r5, [sp, #0x208] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019EBE - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2d0] - ldrb r5, [r0, r7] - str r5, [sp, #0x2d4] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2d4] - and r6, r5 - ldr r5, [sp, #0x2d0] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EBE - ldr r6, [sp, #0x2cc] - ldr r0, [sp, #0xcc] - add r6, r6, r0 - ldr r0, [sp, #0xc8] - strb r5, [r0, r6] -_02019EBE: - ldr r0, [sp, #0x2c8] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _02019E6A -_02019ECC: - ldr r0, [sp, #0x210] - cmp r0, #0x0 - beq _02019EDA - ldr r0, [sp, #0x214] - add r0, r0, #0x2 - str r0, [sp, #0x214] - b _02019EE0 -_02019EDA: - ldr r0, [sp, #0x214] - add r0, r0, #0x1 - str r0, [sp, #0x214] -_02019EE0: - ldr r0, [sp, #0x20c] - add r0, r0, #0x4 - str r0, [sp, #0x20c] - ldr r0, [sp, #0x218] - add r0, r0, #0x1 - str r0, [sp, #0x218] - cmp r0, #0x8 - blt _02019E12 - ldr r0, [sp, #0x0] - mov r2, #0x0 - str r0, [sp, #0x1fc] - add r0, #0x40 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x48] - mov r1, #0x1 - add r0, #0x8 - str r0, [sp, #0x48] - str r0, [sp, #0x204] -_02019F04: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _02019F12 - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019F12: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _02019F04 - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xe4] - mov r0, #0x0 - str r0, [sp, #0x1c] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A008 -_02019F30: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0xe4] - ldr r0, [r0, #0x0] - ldr r6, [sp, #0x38] - str r0, [sp, #0x1f8] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x200] - ldr r0, [sp, #0x204] - mov r1, #0x0 - lsl r5, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x204] - str r6, [sp, #0xe0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _02019F88 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - ldr r3, [sp, #0x34] - add r4, r1, #0x0 - str r5, [sp, #0xdc] - str r0, [sp, #0xd8] -_02019F78: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _02019F88 ; =0x00003FE0 - b _02019F8C - nop -_02019F88: .word 0x00003FE0 -_02019F8C: - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xe0] - str r5, [sp, #0x2d8] - add r0, r5, r0 - ldr r5, [sp, #0x1f8] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _02019FD4 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2dc] - ldrb r5, [r0, r7] - str r5, [sp, #0x2e0] - mov r5, #0xf0 - asr r5, r6 - ldr r6, [sp, #0x2e0] - and r6, r5 - ldr r5, [sp, #0x2dc] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FD4 - ldr r6, [sp, #0x2d8] - ldr r0, [sp, #0xdc] - add r6, r6, r0 - ldr r0, [sp, #0xd8] - strb r5, [r0, r6] -_02019FD4: - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, #0x8 - blt _02019F78 - ldr r0, [sp, #0x200] - cmp r0, #0x0 - beq _02019FEE - ldr r0, [sp, #0x204] - add r0, r0, #0x2 - str r0, [sp, #0x204] - b _02019FF4 -_02019FEE: - ldr r0, [sp, #0x204] - add r0, r0, #0x1 - str r0, [sp, #0x204] -_02019FF4: - ldr r0, [sp, #0x1fc] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x1fc] - ldr r0, [sp, #0x1c] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1c] - cmp r0, r1 - blt _02019F30 -_0201A008: - ldr r0, [sp, #0x0] - mov r2, #0x0 - add r0, #0x60 - str r0, [sp, #0x0] - mov r1, #0x1 -_0201A012: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A020 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A020: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A012 - ldr r0, [sp, #0x50] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xf4] - mov r0, #0x0 - str r0, [sp, #0x18] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - bgt _0201A03E - bl FUN_0201A8BC -_0201A03E: - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A044: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0xf4] - ldr r0, [r0, #0x0] - ldr r2, [sp, #0x5c] - str r0, [sp, #0x1f0] - ldr r0, [sp, #0x18] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1f4] - ldr r0, [sp, #0x8] - mov r1, #0x0 - str r0, [sp, #0x2e4] - sub r0, #0x8 - str r0, [sp, #0x2e4] - cmp r0, #0x0 - ble _0201A0FE - ble _0201A0FE - add r0, r2, #0x0 - lsl r3, r0, #0x2 - ldr r0, [sp, #0x48] - ldr r6, [sp, #0x38] - lsl r5, r0, #0x2 - ldr r0, _0201A3A8 ; =0x00003FE0 - add r7, r5, #0x0 - and r0, r5 - mul r6, r0 - mov r0, #0x1c - and r7, r0 - ldr r0, [sp, #0x48] - str r6, [sp, #0xf0] - add r0, r0, #0x1 - lsl r6, r0, #0x2 - ldr r0, _0201A3A8 ; =0x00003FE0 - ldr r5, [sp, #0x38] - and r0, r6 - mul r5, r0 - mov r0, #0x1c - and r0, r6 - add r4, r1, #0x0 - str r5, [sp, #0xec] - str r0, [sp, #0xe8] -_0201A09C: - asr r5, r2, #0x1 - mov r0, #0x3 - and r5, r0 - ldr r0, [sp, #0x278] - add r0, r0, r5 - ldr r5, _0201A3A8 ; =0x00003FE0 - and r5, r3 - add r5, r0, r5 - ldr r0, [sp, #0xf0] - str r5, [sp, #0x2e8] - add r0, r5, r0 - ldr r5, [sp, #0x1f0] - add r6, r5, #0x0 - lsr r6, r4 - mov r5, #0xf - and r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - beq _0201A0F0 - lsl r6, r2, #0x1f - lsr r6, r6, #0x1d - lsl r5, r6 - str r5, [sp, #0x2ec] - ldrb r5, [r0, r7] - mov r12, r5 - mov r5, #0xf0 - asr r5, r6 - mov r6, r12 - and r6, r5 - ldr r5, [sp, #0x2ec] - orr r5, r6 - lsl r5, r5, #0x18 - lsr r5, r5, #0x18 - strb r5, [r0, r7] - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A0F0 - ldr r6, [sp, #0x2e8] - ldr r0, [sp, #0xec] - add r6, r6, r0 - ldr r0, [sp, #0xe8] - strb r5, [r0, r6] -_0201A0F0: - ldr r0, [sp, #0x2e4] - add r1, r1, #0x1 - add r4, r4, #0x4 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r1, r0 - blt _0201A09C -_0201A0FE: - ldr r0, [sp, #0x1f4] - cmp r0, #0x0 - beq _0201A10C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A112 -_0201A10C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A112: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x18] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x18] - cmp r0, r1 - blt _0201A044 - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - - thumb_func_start FUN_0201A12C -FUN_0201A12C: ; 0x0201A12C - lsl r1, r2, #0x2 - mul r1, r3 - ldr r3, [r5, #0x0] - ldrb r2, [r5, #0x9] - ldr r0, [sp, #0x0] - ldr r3, [r3, #0x0] - lsl r1, r1, #0x3 - bl FUN_02018848 - str r0, [sp, #0x1ec] - cmp r4, #0x3 - bhi _0201A21E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201A150: ; jump table (using 16-bit offset) - .short _0201A158 - _0201A150 - 2; case 0 - .short _0201A220 - _0201A150 - 2; case 1 - .short _0201A3CA - _0201A150 - 2; case 2 - .short _0201A56E - _0201A150 - 2; case 3 -_0201A158: - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x10c] - mov r0, #0x0 - str r0, [sp, #0x1e8] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A21E - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x108] -_0201A178: - ldr r1, [sp, #0x10c] - ldr r0, [sp, #0x1e8] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x310] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A1FC - ble _0201A1FC - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x108] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x100] - ldr r0, [sp, #0x48] - str r2, [sp, #0x104] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x108] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0xfc] - str r0, [sp, #0xf8] -_0201A1C4: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x104] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0x100] - strb r1, [r2, r0] - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A1F0 - ldr r0, [sp, #0xfc] - add r2, r3, r0 - ldr r0, [sp, #0xf8] - strb r1, [r0, r2] -_0201A1F0: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A1C4 -_0201A1FC: - ldr r0, [sp, #0x310] - cmp r0, #0x0 - beq _0201A20A - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A210 -_0201A20A: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A210: - ldr r0, [sp, #0x1e8] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e8] - cmp r1, r0 - blt _0201A178 -_0201A21E: - b _0201A8B6 -_0201A220: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1e0] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x124] - mov r0, #0x0 - str r0, [sp, #0x1e4] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A2E6 - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x120] -_0201A24A: - ldr r1, [sp, #0x124] - ldr r0, [sp, #0x1e4] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x30c] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1e0] - ldr r2, [sp, #0x120] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x118] - ldr r0, [sp, #0x1e0] - str r2, [sp, #0x11c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x120] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r2, [sp, #0x114] - str r0, [sp, #0x110] -_0201A28E: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x11c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x118] - strb r1, [r2, r0] - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2BA - ldr r0, [sp, #0x114] - add r2, r3, r0 - ldr r0, [sp, #0x110] - strb r1, [r0, r2] -_0201A2BA: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A28E - ldr r0, [sp, #0x30c] - cmp r0, #0x0 - beq _0201A2D2 - ldr r0, [sp, #0x1e0] - add r0, r0, #0x2 - str r0, [sp, #0x1e0] - b _0201A2D8 -_0201A2D2: - ldr r0, [sp, #0x1e0] - add r0, r0, #0x1 - str r0, [sp, #0x1e0] -_0201A2D8: - ldr r0, [sp, #0x1e4] - add r7, #0x8 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1e4] - cmp r1, r0 - blt _0201A24A -_0201A2E6: - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x308] - add r0, #0x40 - str r0, [sp, #0x308] - ldr r0, [sp, #0x4c] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x13c] - mov r0, #0x0 - str r0, [sp, #0x1dc] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0201A3C8 - ldr r0, [sp, #0x5c] - mov r1, #0x7 - add r0, #0x8 - str r0, [sp, #0x5c] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x138] -_0201A312: - ldr r1, [sp, #0x13c] - ldr r0, [sp, #0x1dc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1d8] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A398 - ble _0201A398 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x138] - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x130] - ldr r0, [sp, #0x48] - str r2, [sp, #0x134] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A3AC ; =0x00007FC0 - ldr r2, [sp, #0x138] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x12c] - str r0, [sp, #0x128] -_0201A360: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A3AC ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x134] - add r2, r3, r0 - ldr r0, [sp, #0x308] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A38E - ldr r0, [sp, #0x130] - strb r1, [r2, r0] - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A38E - ldr r0, [sp, #0x12c] - add r2, r3, r0 - ldr r0, [sp, #0x128] - strb r1, [r0, r2] -_0201A38E: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A360 -_0201A398: - ldr r0, [sp, #0x1d8] - cmp r0, #0x0 - beq _0201A3B0 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A3B6 - nop -_0201A3A8: .word 0x00003FE0 -_0201A3AC: .word 0x00007FC0 -_0201A3B0: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A3B6: - ldr r0, [sp, #0x308] - add r0, #0x8 - str r0, [sp, #0x308] - ldr r0, [sp, #0x1dc] - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - str r1, [sp, #0x1dc] - cmp r1, r0 - blt _0201A312 -_0201A3C8: - b _0201A8B6 -_0201A3CA: - ldr r0, [sp, #0x48] - mov r1, #0x7 - str r0, [sp, #0x1d0] - mov r0, #0x0 - str r0, [sp, #0x1d4] - ldr r0, [sp, #0x330] - ldr r7, [sp, #0x1ec] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x150] - ldr r0, [sp, #0x58] - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x30] -_0201A3E8: - ldr r1, [sp, #0x150] - ldr r0, [sp, #0x1d4] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x304] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A46C - ble _0201A46C - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1d0] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x148] - ldr r0, [sp, #0x1d0] - str r2, [sp, #0x14c] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x144] - str r0, [sp, #0x140] -_0201A434: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x14c] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A460 - ldr r0, [sp, #0x148] - strb r1, [r2, r0] - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A460 - ldr r0, [sp, #0x144] - add r2, r3, r0 - ldr r0, [sp, #0x140] - strb r1, [r0, r2] -_0201A460: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A434 -_0201A46C: - ldr r0, [sp, #0x304] - cmp r0, #0x0 - beq _0201A47A - ldr r0, [sp, #0x1d0] - add r0, r0, #0x2 - str r0, [sp, #0x1d0] - b _0201A480 -_0201A47A: - ldr r0, [sp, #0x1d0] - add r0, r0, #0x1 - str r0, [sp, #0x1d0] -_0201A480: - ldr r0, [sp, #0x1d4] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1d4] - cmp r0, #0x8 - blt _0201A3E8 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - str r0, [sp, #0x48] - add r7, #0x80 - mov r0, #0x0 - mov r2, #0x1 -_0201A49A: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A4A8 - ldr r1, [sp, #0x48] - add r1, r1, #0x1 - str r1, [sp, #0x48] -_0201A4A8: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A49A - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x164] - mov r0, #0x0 - str r0, [sp, #0x14] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A56C -_0201A4C4: - ldr r1, [sp, #0x164] - ldr r0, [sp, #0x14] - mov r4, #0x0 - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x300] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x5c] - cmp r0, #0x0 - ble _0201A548 - ble _0201A548 - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x30] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x15c] - ldr r0, [sp, #0x48] - str r2, [sp, #0x160] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x30] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x158] - str r0, [sp, #0x154] -_0201A510: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x160] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A53C - ldr r0, [sp, #0x15c] - strb r1, [r2, r0] - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A53C - ldr r0, [sp, #0x158] - add r2, r3, r0 - ldr r0, [sp, #0x154] - strb r1, [r0, r2] -_0201A53C: - ldr r0, [sp, #0x8] - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r0 - blt _0201A510 -_0201A548: - ldr r0, [sp, #0x300] - cmp r0, #0x0 - beq _0201A556 - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A55C -_0201A556: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A55C: - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x14] - cmp r0, r1 - blt _0201A4C4 -_0201A56C: - b _0201A8B6 -_0201A56E: - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - str r0, [sp, #0x1c8] - ldr r0, [sp, #0x330] - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - mov r0, #0x0 - str r0, [sp, #0x1cc] - lsl r0, r1, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2c] - ldr r0, [sp, #0x58] - mov r1, #0x7 - and r1, r0 - add r0, r0, r1 - asr r0, r0, #0x3 - str r0, [sp, #0x28] -_0201A590: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1cc] - ldr r5, [sp, #0x5c] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2fc] - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c8] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x170] - ldr r0, [sp, #0x1c8] - str r2, [sp, #0x174] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - mov r4, #0x0 - str r6, [sp, #0x24] - str r2, [sp, #0x16c] - str r0, [sp, #0x168] -_0201A5D6: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x174] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A602 - ldr r0, [sp, #0x170] - strb r1, [r2, r0] - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A602 - ldr r0, [sp, #0x16c] - add r2, r3, r0 - ldr r0, [sp, #0x168] - strb r1, [r0, r2] -_0201A602: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A5D6 - ldr r0, [sp, #0x2fc] - cmp r0, #0x0 - beq _0201A61A - ldr r0, [sp, #0x1c8] - add r0, r0, #0x2 - str r0, [sp, #0x1c8] - b _0201A620 -_0201A61A: - ldr r0, [sp, #0x1c8] - add r0, r0, #0x1 - str r0, [sp, #0x1c8] -_0201A620: - ldr r0, [sp, #0x1cc] - add r7, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x1cc] - cmp r0, #0x8 - blt _0201A590 - ldr r0, [sp, #0x1ec] - str r0, [sp, #0x2f8] - add r0, #0x40 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x48] - str r0, [sp, #0x1c0] - mov r0, #0x0 - str r0, [sp, #0x1c4] - ldr r0, [sp, #0x5c] - str r0, [sp, #0x188] - add r0, #0x8 - str r0, [sp, #0x188] -_0201A644: - ldr r1, [sp, #0x2c] - ldr r0, [sp, #0x1c4] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1bc] - ldr r5, [sp, #0x188] - cmp r7, #0x0 - ble _0201A6CA - ble _0201A6CA - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x1c0] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x180] - ldr r0, [sp, #0x1c0] - str r2, [sp, #0x184] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x17c] - str r0, [sp, #0x178] -_0201A692: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A748 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x184] - add r2, r3, r0 - ldr r0, [sp, #0x2f8] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x180] - strb r1, [r2, r0] - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6C0 - ldr r0, [sp, #0x17c] - add r2, r3, r0 - ldr r0, [sp, #0x178] - strb r1, [r0, r2] -_0201A6C0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A692 -_0201A6CA: - ldr r0, [sp, #0x1bc] - cmp r0, #0x0 - beq _0201A6D8 - ldr r0, [sp, #0x1c0] - add r0, r0, #0x2 - str r0, [sp, #0x1c0] - b _0201A6DE -_0201A6D8: - ldr r0, [sp, #0x1c0] - add r0, r0, #0x1 - str r0, [sp, #0x1c0] -_0201A6DE: - ldr r0, [sp, #0x2f8] - add r0, #0x8 - str r0, [sp, #0x2f8] - ldr r0, [sp, #0x1c4] - add r0, r0, #0x1 - str r0, [sp, #0x1c4] - cmp r0, #0x8 - blt _0201A644 - ldr r0, [sp, #0x48] - ldr r7, [sp, #0x1ec] - add r0, #0x8 - add r7, #0x80 - str r0, [sp, #0x48] - str r0, [sp, #0x1b8] - mov r0, #0x0 - mov r2, #0x1 -_0201A6FE: - ldr r1, [sp, #0x330] - asr r1, r0 - tst r1, r2 - beq _0201A70C - ldr r1, [sp, #0x1b8] - add r1, r1, #0x1 - str r1, [sp, #0x1b8] -_0201A70C: - add r0, r0, #0x1 - cmp r0, #0x8 - blt _0201A6FE - ldr r0, [sp, #0x330] - asr r0, r0, #0x8 - str r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x19c] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A7CE -_0201A72A: - ldr r1, [sp, #0x19c] - ldr r0, [sp, #0x10] - ldr r2, [sp, #0x28] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x2f4] - ldr r0, [sp, #0x1b8] - mov r3, #0x38 - lsl r1, r0, #0x3 - ldr r0, _0201A748 ; =0x00007FC0 - b _0201A74C - nop -_0201A748: .word 0x00007FC0 -_0201A74C: - ldr r5, [sp, #0x5c] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x194] - ldr r0, [sp, #0x1b8] - str r2, [sp, #0x198] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - ldr r6, [sp, #0x24] - mov r4, #0x0 - str r2, [sp, #0x190] - str r0, [sp, #0x18c] -_0201A774: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A8C4 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x198] - ldrb r1, [r7, r4] - add r2, r3, r0 - cmp r1, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x194] - strb r1, [r2, r0] - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7A0 - ldr r0, [sp, #0x190] - add r2, r3, r0 - ldr r0, [sp, #0x18c] - strb r1, [r0, r2] -_0201A7A0: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, #0x8 - blt _0201A774 - ldr r0, [sp, #0x2f4] - cmp r0, #0x0 - beq _0201A7B8 - ldr r0, [sp, #0x1b8] - add r0, r0, #0x2 - str r0, [sp, #0x1b8] - b _0201A7BE -_0201A7B8: - ldr r0, [sp, #0x1b8] - add r0, r0, #0x1 - str r0, [sp, #0x1b8] -_0201A7BE: - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x4] - add r0, r0, #0x1 - sub r1, #0x8 - add r7, #0x8 - str r0, [sp, #0x10] - cmp r0, r1 - blt _0201A72A -_0201A7CE: - ldr r0, [sp, #0x1ec] - mov r2, #0x0 - str r0, [sp, #0x2f0] - add r0, #0xc0 - str r0, [sp, #0x2f0] - mov r1, #0x1 -_0201A7DA: - ldr r0, [sp, #0x330] - asr r0, r2 - tst r0, r1 - beq _0201A7E8 - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A7E8: - add r2, r2, #0x1 - cmp r2, #0x8 - blt _0201A7DA - ldr r0, [sp, #0x44] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x1b0] - mov r0, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - sub r0, #0x8 - cmp r0, #0x0 - ble _0201A8B6 - ldr r0, [sp, #0x5c] - add r0, #0x8 - str r0, [sp, #0x5c] -_0201A808: - ldr r1, [sp, #0x1b0] - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x8] - asr r1, r0 - mov r0, #0x1 - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - sub r7, #0x8 - mov r4, #0x0 - str r0, [sp, #0x1b4] - ldr r5, [sp, #0x5c] - cmp r7, #0x0 - ble _0201A88E - ble _0201A88E - add r0, r5, #0x0 - lsl r6, r0, #0x3 - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x28] - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - mov r3, #0x38 - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r0, [sp, #0x1a8] - ldr r0, [sp, #0x48] - str r2, [sp, #0x1ac] - add r0, r0, #0x1 - lsl r1, r0, #0x3 - ldr r0, _0201A8C4 ; =0x00007FC0 - ldr r2, [sp, #0x28] - and r0, r1 - mul r2, r0 - add r0, r1, #0x0 - and r0, r3 - str r2, [sp, #0x1a4] - str r0, [sp, #0x1a0] -_0201A856: - mov r0, #0x7 - add r1, r5, #0x0 - and r1, r0 - ldr r0, [sp, #0x278] - add r1, r0, r1 - ldr r0, _0201A8C4 ; =0x00007FC0 - and r0, r6 - add r3, r1, r0 - ldr r0, [sp, #0x1ac] - add r2, r3, r0 - ldr r0, [sp, #0x2f0] - ldrb r1, [r0, r4] - cmp r1, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a8] - strb r1, [r2, r0] - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A884 - ldr r0, [sp, #0x1a4] - add r2, r3, r0 - ldr r0, [sp, #0x1a0] - strb r1, [r0, r2] -_0201A884: - add r4, r4, #0x1 - add r6, #0x8 - add r5, r5, #0x1 - cmp r4, r7 - blt _0201A856 -_0201A88E: - ldr r0, [sp, #0x1b4] - cmp r0, #0x0 - beq _0201A89C - ldr r0, [sp, #0x48] - add r0, r0, #0x2 - str r0, [sp, #0x48] - b _0201A8A2 -_0201A89C: - ldr r0, [sp, #0x48] - add r0, r0, #0x1 - str r0, [sp, #0x48] -_0201A8A2: - ldr r0, [sp, #0x2f0] - ldr r1, [sp, #0x4] - add r0, #0x8 - str r0, [sp, #0x2f0] - ldr r0, [sp, #0xc] - sub r1, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, r1 - blt _0201A808 -_0201A8B6: - ldr r0, [sp, #0x1ec] - bl FreeToHeap - - thumb_func_start FUN_0201A8BC -FUN_0201A8BC: ; 0x0201A8BC - add sp, #0x1fc - add sp, #0x118 - pop {r4-r7, pc} - nop -_0201A8C4: .word 0x00007FC0 - - thumb_func_start FUN_0201A8C8 -FUN_0201A8C8: ; 0x0201A8C8 - push {r4-r6, lr} - ldrb r6, [r0, #0x4] - mov r5, #0x2c - ldr r4, [r0, #0x0] - mul r5, r6 - add r4, r4, r5 - ldrb r4, [r4, #0x1e] - cmp r4, #0x0 - bne _0201A8E0 - bl FUN_0201A8E8 - pop {r4-r6, pc} -_0201A8E0: - bl FUN_0201A9D4 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0201A8E8 -FUN_0201A8E8: ; 0x0201A8E8 - push {r3-r7, lr} - sub sp, #0x10 - add r6, r3, #0x0 - add r4, r0, #0x0 - add r0, r1, #0x0 - lsl r3, r6, #0x18 - lsl r1, r6, #0x10 - str r2, [sp, #0x0] - orr r1, r3 - lsl r5, r6, #0x8 - orr r1, r5 - orr r1, r6 - str r1, [sp, #0x4] - ldrb r1, [r4, #0x7] - ldrb r3, [r4, #0x8] - ldr r2, [r4, #0xc] - str r1, [sp, #0x8] - mul r1, r3 - lsl r1, r1, #0x5 - str r1, [sp, #0xc] - cmp r0, #0x3 - bhi _0201A9CE - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0201A920: ; jump table (using 16-bit offset) - .short _0201A928 - _0201A920 - 2; case 0 - .short _0201A976 - _0201A920 - 2; case 1 - .short _0201A9CE - _0201A920 - 2; case 2 - .short _0201A9CE - _0201A920 - 2; case 3 -_0201A928: - add r0, r1, #0x0 - mov r7, #0x0 - cmp r0, #0x0 - ble _0201A9CE - mov r0, #0x7 - mov lr, r0 -_0201A934: - ldr r3, [sp, #0x0] - mov r4, #0x0 - add r5, r7, #0x0 -_0201A93A: - mov r0, #0x7 - add r6, r3, #0x0 - and r6, r0 - add r1, r3, #0x0 - mov r0, lr - bic r1, r0 - ldr r0, [sp, #0x8] - mul r1, r0 - add r0, r6, #0x0 - orr r0, r1 - lsl r0, r0, #0x2 - add r1, r7, r0 - ldr r0, [sp, #0xc] - cmp r1, r0 - bge _0201A95C - ldr r0, [r2, r1] - b _0201A95E -_0201A95C: - ldr r0, [sp, #0x4] -_0201A95E: - add r4, r4, #0x1 - str r0, [r2, r5] - add r3, r3, #0x1 - add r5, r5, #0x4 - cmp r4, #0x8 - blt _0201A93A - ldr r0, [sp, #0xc] - add r7, #0x20 - cmp r7, r0 - blt _0201A934 - add sp, #0x10 - pop {r3-r7, pc} -_0201A976: - add r0, r1, #0x0 - sub r0, r0, #0x4 - add r2, r2, r0 - add r0, r1, #0x0 - mov r7, #0x0 - cmp r0, #0x0 - ble _0201A9CE - mov r0, #0x7 - mov r12, r0 -_0201A988: - ldr r4, [sp, #0x0] - mov r5, #0x0 - add r3, r7, #0x0 -_0201A98E: - mov r0, #0x7 - add r6, r4, #0x0 - and r6, r0 - add r1, r4, #0x0 - mov r0, r12 - bic r1, r0 - ldr r0, [sp, #0x8] - mul r1, r0 - add r0, r6, #0x0 - orr r0, r1 - lsl r0, r0, #0x2 - add r1, r7, r0 - ldr r0, [sp, #0xc] - cmp r1, r0 - bge _0201A9B6 - sub r0, r2, r1 - ldr r1, [r0, #0x0] - sub r0, r2, r3 - str r1, [r0, #0x0] - b _0201A9BC -_0201A9B6: - ldr r0, [sp, #0x4] - sub r1, r2, r3 - str r0, [r1, #0x0] -_0201A9BC: - add r5, r5, #0x1 - add r4, r4, #0x1 - add r3, r3, #0x4 - cmp r5, #0x8 - blt _0201A98E - ldr r0, [sp, #0xc] - add r7, #0x20 - cmp r7, r0 - blt _0201A988 -_0201A9CE: - add sp, #0x10 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0201A9D4 -FUN_0201A9D4: ; 0x0201A9D4 - push {r3-r7, lr} - sub sp, #0x20 - add r6, r3, #0x0 - add r4, r0, #0x0 - str r2, [sp, #0x0] - lsl r2, r6, #0x18 - lsl r0, r6, #0x10 - orr r0, r2 - ldrb r2, [r4, #0x7] - ldr r3, [r4, #0xc] - lsl r5, r6, #0x8 - orr r0, r5 - ldrb r4, [r4, #0x8] - str r2, [sp, #0x10] - orr r0, r6 - mul r2, r4 - lsl r2, r2, #0x6 - str r2, [sp, #0x1c] - cmp r1, #0x3 - bls _0201A9FE - b _0201AB04 -_0201A9FE: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201AA0A: ; jump table (using 16-bit offset) - .short _0201AA12 - _0201AA0A - 2; case 0 - .short _0201AA80 - _0201AA0A - 2; case 1 - .short _0201AB04 - _0201AA0A - 2; case 2 - .short _0201AB04 - _0201AA0A - 2; case 3 -_0201AA12: - mov r1, #0x0 - str r1, [sp, #0xc] - add r1, r2, #0x0 - cmp r1, #0x0 - ble _0201AB04 - add r1, r1, #0x4 - str r1, [sp, #0x14] - mov r1, #0x7 - mov lr, r1 -_0201AA24: - ldr r4, [sp, #0x0] - ldr r5, [sp, #0xc] - mov r7, #0x0 -_0201AA2A: - mov r1, #0x7 - add r6, r4, #0x0 - and r6, r1 - add r2, r4, #0x0 - mov r1, lr - bic r2, r1 - ldr r1, [sp, #0x10] - mul r2, r1 - add r1, r6, #0x0 - orr r1, r2 - lsl r2, r1, #0x3 - ldr r1, [sp, #0xc] - add r1, r1, r2 - ldr r2, [sp, #0x1c] - cmp r1, r2 - bge _0201AA50 - ldr r2, [r3, r1] - str r2, [r3, r5] - b _0201AA52 -_0201AA50: - str r0, [r3, r5] -_0201AA52: - add r2, r1, #0x4 - ldr r1, [sp, #0x14] - cmp r2, r1 - bge _0201AA62 - ldr r2, [r3, r2] - add r1, r5, #0x4 - str r2, [r3, r1] - b _0201AA66 -_0201AA62: - add r1, r5, #0x4 - str r0, [r3, r1] -_0201AA66: - add r7, r7, #0x1 - add r4, r4, #0x1 - add r5, #0x8 - cmp r7, #0x8 - blt _0201AA2A - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x1c] - add r2, #0x40 - str r2, [sp, #0xc] - cmp r2, r1 - blt _0201AA24 - add sp, #0x20 - pop {r3-r7, pc} -_0201AA80: - add r1, r2, #0x0 - sub r1, #0x8 - add r3, r3, r1 - mov r1, #0x0 - str r1, [sp, #0x8] - add r1, r2, #0x0 - cmp r1, #0x0 - ble _0201AB04 -_0201AA90: - mov r1, #0x0 - str r1, [sp, #0x4] - ldr r1, [sp, #0x1c] - ldr r5, [sp, #0x0] - sub r1, r1, #0x4 - str r1, [sp, #0x18] - mov r1, #0x7 - ldr r4, [sp, #0x8] - mov r12, r1 -_0201AAA2: - mov r1, #0x7 - add r6, r5, #0x0 - and r6, r1 - add r2, r5, #0x0 - mov r1, r12 - bic r2, r1 - ldr r1, [sp, #0x10] - mul r2, r1 - add r1, r6, #0x0 - orr r1, r2 - lsl r2, r1, #0x3 - ldr r1, [sp, #0x8] - add r6, r1, r2 - ldr r1, [sp, #0x1c] - cmp r6, r1 - bge _0201AACC - sub r1, r3, r6 - ldr r2, [r1, #0x0] - sub r1, r3, r4 - str r2, [r1, #0x0] - b _0201AAD0 -_0201AACC: - sub r1, r3, r4 - str r0, [r1, #0x0] -_0201AAD0: - ldr r1, [sp, #0x18] - sub r2, r6, #0x4 - cmp r2, r1 - bge _0201AAE4 - sub r1, r3, r2 - sub r2, r4, #0x4 - ldr r1, [r1, #0x0] - sub r2, r3, r2 - str r1, [r2, #0x0] - b _0201AAEA -_0201AAE4: - sub r1, r4, #0x4 - sub r1, r3, r1 - str r0, [r1, #0x0] -_0201AAEA: - ldr r1, [sp, #0x4] - add r5, r5, #0x1 - add r1, r1, #0x1 - add r4, #0x8 - str r1, [sp, #0x4] - cmp r1, #0x8 - blt _0201AAA2 - ldr r2, [sp, #0x8] - ldr r1, [sp, #0x1c] - add r2, #0x40 - str r2, [sp, #0x8] - cmp r2, r1 - blt _0201AA90 -_0201AB04: - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_0201AB08 -FUN_0201AB08: ; 0x0201AB08 - ldrb r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_0201AB0C -FUN_0201AB0C: ; 0x0201AB0C - ldrb r0, [r0, #0x7] - bx lr - - thumb_func_start FUN_0201AB10 -FUN_0201AB10: ; 0x0201AB10 - ldrb r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_0201AB14 -FUN_0201AB14: ; 0x0201AB14 - ldrb r0, [r0, #0x5] - bx lr - - thumb_func_start FUN_0201AB18 -FUN_0201AB18: ; 0x0201AB18 - ldrb r0, [r0, #0x6] - bx lr - - thumb_func_start FUN_0201AB1C -FUN_0201AB1C: ; 0x0201AB1C - strb r1, [r0, #0x5] - bx lr - - thumb_func_start FUN_0201AB20 -FUN_0201AB20: ; 0x0201AB20 - strb r1, [r0, #0x6] - bx lr - - thumb_func_start FUN_0201AB24 -FUN_0201AB24: ; 0x0201AB24 - strb r1, [r0, #0x9] - bx lr - - thumb_func_start FUN_0201AB28 -FUN_0201AB28: ; 0x0201AB28 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl FUN_020161A4 - add r1, sp, #0x0 - str r0, [r4, #0x0] - bl FUN_020B0030 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_0201AB44 -FUN_0201AB44: ; 0x0201AB44 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - bl FUN_020161A4 - add r1, sp, #0x0 - str r0, [r4, #0x0] - bl FUN_020B0138 - ldr r0, [sp, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_0201AB60 -FUN_0201AB60: ; 0x0201AB60 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_0201AC78 - add r0, r4, #0x0 - bl FUN_0201AB78 - mov r0, #0x0 - strh r0, [r4, #0x4] - strh r0, [r4, #0x6] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201AB78 -FUN_0201AB78: ; 0x0201AB78 - push {r4, lr} - add r4, r0, #0x0 - ldrh r1, [r4, #0x6] - mov r0, #0x1 - tst r0, r1 - beq _0201AB92 - ldr r2, [r4, #0x10] - ldr r1, [r4, #0x8] - ldr r3, [r4, #0xc] - mov r0, #0x0 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AB92: - ldrh r1, [r4, #0x6] - mov r0, #0x2 - tst r0, r1 - beq _0201ABA8 - ldr r2, [r4, #0x3c] - ldr r1, [r4, #0x34] - ldr r3, [r4, #0x38] - mov r0, #0x1 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABA8: - ldrh r1, [r4, #0x6] - mov r0, #0x4 - tst r0, r1 - beq _0201ABBE - ldr r2, [r4, #0x68] - ldr r1, [r4, #0x60] - ldr r3, [r4, #0x64] - mov r0, #0x2 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABBE: - ldrh r1, [r4, #0x6] - mov r0, #0x8 - tst r0, r1 - beq _0201ABE0 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0x94 - add r3, r4, #0x0 - add r1, #0x8c - ldr r2, [r2, #0x0] - add r3, #0x90 - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x3 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201ABE0: - ldrh r1, [r4, #0x6] - mov r0, #0x10 - tst r0, r1 - beq _0201AC02 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0xc0 - add r3, r4, #0x0 - add r1, #0xb8 - ldr r2, [r2, #0x0] - add r3, #0xbc - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x4 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC02: - ldrh r1, [r4, #0x6] - mov r0, #0x20 - tst r0, r1 - beq _0201AC24 - add r2, r4, #0x0 - add r1, r4, #0x0 - add r2, #0xec - add r3, r4, #0x0 - add r1, #0xe4 - ldr r2, [r2, #0x0] - add r3, #0xe8 - ldr r1, [r1, #0x0] - ldr r3, [r3, #0x0] - mov r0, #0x5 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC24: - ldrh r0, [r4, #0x6] - mov r3, #0x40 - tst r0, r3 - beq _0201AC44 - add r2, r3, #0x0 - add r1, r3, #0x0 - add r2, #0xd8 - add r1, #0xd0 - ldr r2, [r4, r2] - add r3, #0xd4 - ldr r1, [r4, r1] - ldr r3, [r4, r3] - mov r0, #0x6 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC44: - ldrh r0, [r4, #0x6] - mov r3, #0x80 - tst r0, r3 - beq _0201AC64 - add r2, r3, #0x0 - add r1, r3, #0x0 - add r2, #0xc4 - add r1, #0xbc - ldr r2, [r4, r2] - add r3, #0xc0 - ldr r1, [r4, r1] - ldr r3, [r4, r3] - mov r0, #0x7 - lsl r2, r2, #0x1 - bl FUN_02017D68 -_0201AC64: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201AC68 -FUN_0201AC68: ; 0x0201AC68 - ldrh r3, [r0, #0x6] - mov r2, #0x1 - lsl r2, r1 - add r1, r3, #0x0 - orr r1, r2 - strh r1, [r0, #0x6] - bx lr - .balign 4 - - thumb_func_start FUN_0201AC78 -FUN_0201AC78: ; 0x0201AC78 - push {r4, lr} - sub sp, #0x48 - add r4, r0, #0x0 - ldrh r1, [r4, #0x4] - mov r0, #0x1 - tst r0, r1 - beq _0201AC9E - ldr r1, [r4, #0x14] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x18] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEB4 ; =0x04000010 - str r1, [r0, #0x0] -_0201AC9E: - ldrh r1, [r4, #0x4] - mov r0, #0x2 - tst r0, r1 - beq _0201ACBE - ldr r1, [r4, #0x40] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x44] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEB8 ; =0x04000014 - str r1, [r0, #0x0] -_0201ACBE: - ldrh r1, [r4, #0x4] - mov r0, #0x4 - tst r0, r1 - beq _0201AD1E - add r0, r4, #0x0 - add r0, #0x74 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201ACEA - ldr r1, [r4, #0x6c] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - ldr r1, [r4, #0x70] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEBC ; =0x04000018 - str r1, [r0, #0x0] - b _0201AD1E -_0201ACEA: - mov r0, #0x2 - str r0, [sp, #0x0] - add r1, r4, #0x0 - add r1, #0x78 - add r3, r4, #0x0 - add r3, #0x80 - ldrh r1, [r1, #0x0] - ldr r2, [r4, #0x7c] - ldr r3, [r3, #0x0] - add r0, sp, #0x38 - bl MTX22_2DAffine - ldr r0, [r4, #0x6c] - add r2, r4, #0x0 - str r0, [sp, #0x0] - ldr r0, [r4, #0x70] - add r3, r4, #0x0 - str r0, [sp, #0x4] - add r2, #0x84 - add r3, #0x88 - ldr r0, _0201AEC0 ; =0x04000020 - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r1, sp, #0x38 - bl G2x_SetBGyAffine_ -_0201AD1E: - ldrh r1, [r4, #0x4] - mov r0, #0x8 - tst r0, r1 - beq _0201AD8E - add r0, r4, #0x0 - add r0, #0xa0 - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _0201AD4E - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0x98 - add r2, #0x9c - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AEC4 ; =0x0400001C - str r1, [r0, #0x0] - b _0201AD8E -_0201AD4E: - mov r0, #0x2 - add r1, r4, #0x0 - str r0, [sp, #0x0] - add r1, #0xa4 - add r2, r4, #0x0 - add r3, r4, #0x0 - add r2, #0xa8 - add r3, #0xac - ldrh r1, [r1, #0x0] - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r0, sp, #0x28 - bl MTX22_2DAffine - add r0, r4, #0x0 - add r0, #0x98 - ldr r0, [r0, #0x0] - add r2, r4, #0x0 - str r0, [sp, #0x0] - add r0, r4, #0x0 - add r0, #0x9c - ldr r0, [r0, #0x0] - add r3, r4, #0x0 - str r0, [sp, #0x4] - add r2, #0xb0 - add r3, #0xb4 - ldr r0, _0201AEC8 ; =0x04000030 - ldr r2, [r2, #0x0] - ldr r3, [r3, #0x0] - add r1, sp, #0x28 - bl G2x_SetBGyAffine_ -_0201AD8E: - ldrh r1, [r4, #0x4] - mov r0, #0x10 - tst r0, r1 - beq _0201ADB2 - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0xc4 - add r2, #0xc8 - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AECC ; =0x04001010 - str r1, [r0, #0x0] -_0201ADB2: - ldrh r1, [r4, #0x4] - mov r0, #0x20 - tst r0, r1 - beq _0201ADD6 - add r0, r4, #0x0 - add r2, r4, #0x0 - add r0, #0xf0 - add r2, #0xf4 - ldr r2, [r2, #0x0] - ldr r0, [r0, #0x0] - ldr r1, _0201AEB0 ; =0x000001FF - lsl r2, r2, #0x10 - and r0, r1 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AED0 ; =0x04001014 - str r1, [r0, #0x0] -_0201ADD6: - ldrh r0, [r4, #0x4] - mov r3, #0x40 - tst r0, r3 - beq _0201AE3E - add r0, r3, #0x0 - add r0, #0xe4 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _0201AE04 - ldr r1, _0201AEB0 ; =0x000001FF - add r3, #0xdc - add r2, r1, #0x0 - sub r2, #0xdf - ldr r0, [r4, r3] - ldr r2, [r4, r2] - and r0, r1 - lsl r2, r2, #0x10 - lsl r1, r1, #0x10 - and r1, r2 - orr r1, r0 - ldr r0, _0201AED4 ; =0x04001018 - str r1, [r0, #0x0] - b _0201AE3E -_0201AE04: - mov r0, #0x2 - add r1, r3, #0x0 - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r1, #0xe8 - add r2, #0xec - add r3, #0xf0 - ldrh r1, [r4, r1] - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r0, sp, #0x18 - bl MTX22_2DAffine - mov r3, #0x47 - lsl r3, r3, #0x2 - ldr r0, [r4, r3] - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r0, r3, #0x4 - ldr r0, [r4, r0] - add r2, #0x18 - str r0, [sp, #0x4] - add r3, #0x1c - ldr r0, _0201AED8 ; =0x04001020 - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r1, sp, #0x18 - bl G2x_SetBGyAffine_ -_0201AE3E: - ldrh r0, [r4, #0x4] - mov r3, #0x80 - tst r0, r3 - beq _0201AEAC - add r0, r3, #0x0 - add r0, #0xd0 - ldrb r0, [r4, r0] - cmp r0, #0x0 - bne _0201AE72 - add r3, #0xc8 - ldr r1, [r4, r3] - ldr r0, _0201AEB0 ; =0x000001FF - add r2, r1, #0x0 - add r1, r0, #0x0 - sub r1, #0xb3 - ldr r1, [r4, r1] - and r2, r0 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - and r0, r1 - add r1, r2, #0x0 - orr r1, r0 - ldr r0, _0201AEDC ; =0x0400101C - add sp, #0x48 - str r1, [r0, #0x0] - pop {r4, pc} -_0201AE72: - mov r0, #0x2 - add r1, r3, #0x0 - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r1, #0xd4 - add r2, #0xd8 - add r3, #0xdc - ldrh r1, [r4, r1] - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r0, sp, #0x8 - bl MTX22_2DAffine - mov r3, #0x52 - lsl r3, r3, #0x2 - ldr r0, [r4, r3] - add r2, r3, #0x0 - str r0, [sp, #0x0] - add r0, r3, #0x4 - ldr r0, [r4, r0] - add r2, #0x18 - str r0, [sp, #0x4] - add r3, #0x1c - ldr r0, _0201AEE0 ; =0x04001030 - ldr r2, [r4, r2] - ldr r3, [r4, r3] - add r1, sp, #0x8 - bl G2x_SetBGyAffine_ -_0201AEAC: - add sp, #0x48 - pop {r4, pc} - .balign 4 -_0201AEB0: .word 0x000001FF -_0201AEB4: .word 0x04000010 -_0201AEB8: .word 0x04000014 -_0201AEBC: .word 0x04000018 -_0201AEC0: .word 0x04000020 -_0201AEC4: .word 0x0400001C -_0201AEC8: .word 0x04000030 -_0201AECC: .word 0x04001010 -_0201AED0: .word 0x04001014 -_0201AED4: .word 0x04001018 -_0201AED8: .word 0x04001020 -_0201AEDC: .word 0x0400101C -_0201AEE0: .word 0x04001030 - - thumb_func_start FUN_0201AEE4 -FUN_0201AEE4: ; 0x0201AEE4 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_02017B8C - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF08 -FUN_0201AF08: ; 0x0201AF08 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_0201AF2C - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF2C -FUN_0201AF2C: ; 0x0201AF2C - cmp r1, #0x0 - beq _0201AF3A - cmp r1, #0x1 - beq _0201AF3E - cmp r1, #0x2 - beq _0201AF46 - bx lr -_0201AF3A: - strh r2, [r0, #0x18] - bx lr -_0201AF3E: - ldrh r1, [r0, #0x18] - add r1, r1, r2 - strh r1, [r0, #0x18] - bx lr -_0201AF46: - ldrh r1, [r0, #0x18] - sub r1, r1, r2 - strh r1, [r0, #0x18] - bx lr - .balign 4 - - thumb_func_start FUN_0201AF50 -FUN_0201AF50: ; 0x0201AF50 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x0 - mov r0, #0x2c - add r1, #0x8 - mul r0, r4 - add r0, r1, r0 - add r1, r2, #0x0 - add r2, r3, #0x0 - bl FUN_0201AF74 - mov r0, #0x1 - ldrh r1, [r5, #0x4] - lsl r0, r4 - orr r0, r1 - strh r0, [r5, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_0201AF74 -FUN_0201AF74: ; 0x0201AF74 - sub r1, #0x9 - cmp r1, #0x5 - bhi _0201AFB8 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0201AF86: ; jump table (using 16-bit offset) - .short _0201AF92 - _0201AF86 - 2; case 0 - .short _0201AF96 - _0201AF86 - 2; case 1 - .short _0201AF9E - _0201AF86 - 2; case 2 - .short _0201AFA6 - _0201AF86 - 2; case 3 - .short _0201AFAA - _0201AF86 - 2; case 4 - .short _0201AFB2 - _0201AF86 - 2; case 5 -_0201AF92: - str r2, [r0, #0x24] - bx lr -_0201AF96: - ldr r1, [r0, #0x24] - add r1, r1, r2 - str r1, [r0, #0x24] - bx lr -_0201AF9E: - ldr r1, [r0, #0x24] - sub r1, r1, r2 - str r1, [r0, #0x24] - bx lr -_0201AFA6: - str r2, [r0, #0x28] - bx lr -_0201AFAA: - ldr r1, [r0, #0x28] - add r1, r1, r2 - str r1, [r0, #0x28] - bx lr -_0201AFB2: - ldr r1, [r0, #0x28] - sub r1, r1, r2 - str r1, [r0, #0x28] -_0201AFB8: - bx lr - .balign 4 - - thumb_func_start FUN_0201AFBC -FUN_0201AFBC: ; 0x0201AFBC - push {r4-r7, lr} - sub sp, #0x1c - str r1, [sp, #0x0] - add r7, r0, #0x0 - str r2, [sp, #0x4] - ldr r0, [sp, #0x30] - str r3, [sp, #0x8] - str r0, [sp, #0x30] - ldr r0, [sp, #0x0] - add r4, r7, #0x0 - mov r1, #0x2c - add r5, r0, #0x0 - mul r5, r1 - add r4, #0x8 - ldr r0, [r4, r5] - cmp r0, #0x0 - bne _0201AFE4 - add sp, #0x1c - mov r0, #0x0 - pop {r4-r7, pc} -_0201AFE4: - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x8] - add r2, r7, r5 - lsl r0, r0, #0x15 - lsl r1, r1, #0x15 - ldrb r2, [r2, #0x1d] - lsr r0, r0, #0x18 - lsr r1, r1, #0x18 - bl FUN_02017FFC - add r6, r0, #0x0 - ldr r0, [sp, #0x0] - bl FUN_020187B0 - str r0, [sp, #0x18] - ldr r1, [sp, #0x4] - mov r0, #0x7 - and r1, r0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - str r1, [sp, #0x14] - ldr r1, [sp, #0x8] - and r0, r1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r1, r7, r5 - str r0, [sp, #0x10] - ldrb r0, [r1, #0x1e] - cmp r0, #0x0 - bne _0201B096 - ldr r0, [r4, r5] - mov r1, #0x40 - str r0, [sp, #0xc] - ldr r0, [r7, #0x0] - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - lsl r0, r6, #0x1 - ldr r1, [sp, #0xc] - mov r12, r0 - ldrh r0, [r1, r0] - mov r3, #0x0 - mov r6, #0xf - lsl r0, r0, #0x16 - lsr r1, r0, #0x11 - ldr r0, [sp, #0x18] - add r2, r0, r1 -_0201B042: - ldrb r5, [r2, r3] - lsl r0, r3, #0x1 - add r1, r4, r0 - and r5, r6 - strb r5, [r4, r0] - ldrb r0, [r2, r3] - asr r0, r0, #0x4 - strb r0, [r1, #0x1] - add r0, r3, #0x1 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - cmp r3, #0x20 - blo _0201B042 - ldr r2, [sp, #0xc] - mov r1, r12 - ldrh r1, [r2, r1] - add r0, r7, #0x0 - asr r2, r1, #0xa - mov r1, #0x3 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r4, #0x0 - bl FUN_0201B118 - ldr r0, [sp, #0x10] - lsl r1, r0, #0x3 - ldr r0, [sp, #0x14] - add r0, r0, r1 - ldrb r5, [r4, r0] - add r0, r4, #0x0 - bl FreeToHeap - ldr r0, [sp, #0x30] - ldrh r2, [r0, #0x0] - mov r0, #0x1 - add r1, r0, #0x0 - lsl r1, r5 - tst r1, r2 - beq _0201B10C - add sp, #0x1c - pop {r4-r7, pc} -_0201B096: - ldrb r0, [r1, #0x1c] - cmp r0, #0x1 - beq _0201B0E0 - ldr r0, [r7, #0x0] - ldr r4, [r4, r5] - mov r1, #0x40 - bl AllocFromHeapAtEnd - lsl r6, r6, #0x1 - ldrh r1, [r4, r6] - add r5, r0, #0x0 - lsl r1, r1, #0x16 - lsr r2, r1, #0x10 - ldr r1, [sp, #0x18] - add r1, r1, r2 - mov r2, #0x40 - bl memcpy - ldrh r1, [r4, r6] - add r0, r7, #0x0 - asr r2, r1, #0xa - mov r1, #0x3 - and r1, r2 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r2, r5, #0x0 - bl FUN_0201B118 - ldr r0, [sp, #0x10] - lsl r1, r0, #0x3 - ldr r0, [sp, #0x14] - add r0, r0, r1 - ldrb r4, [r5, r0] - add r0, r5, #0x0 - bl FreeToHeap - b _0201B0F4 -_0201B0E0: - ldr r1, [r4, r5] - ldr r0, [sp, #0x10] - ldrb r1, [r1, r6] - lsl r0, r0, #0x3 - lsl r2, r1, #0x6 - ldr r1, [sp, #0x14] - add r1, r1, r2 - add r1, r0, r1 - ldr r0, [sp, #0x18] - ldrb r4, [r0, r1] -_0201B0F4: - ldr r0, [sp, #0x30] - ldrh r2, [r0, #0x0] - lsl r0, r2, #0x18 - lsr r1, r0, #0x18 - ldr r0, _0201B114 ; =0x0000FFFF -_0201B0FE: - cmp r2, r0 - beq _0201B10C - cmp r4, r1 - bne _0201B0FE - add sp, #0x1c - mov r0, #0x1 - pop {r4-r7, pc} -_0201B10C: - mov r0, #0x0 - add sp, #0x1c - pop {r4-r7, pc} - nop -_0201B114: .word 0x0000FFFF - - thumb_func_start FUN_0201B118 -FUN_0201B118: ; 0x0201B118 - push {r3-r7, lr} - str r1, [sp, #0x0] - ldr r1, [sp, #0x0] - add r7, r2, #0x0 - cmp r1, #0x0 - beq _0201B1A4 - ldr r0, [r0, #0x0] - mov r1, #0x40 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - ldr r0, [sp, #0x0] - mov r1, #0x1 - tst r0, r1 - beq _0201B166 - mov r0, #0x0 - mov r5, #0x7 -_0201B13A: - lsl r3, r0, #0x3 - add r2, r7, r3 - mov r1, #0x0 - add r3, r4, r3 -_0201B142: - sub r6, r5, r1 - ldrb r6, [r2, r6] - strb r6, [r3, r1] - add r1, r1, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - cmp r1, #0x8 - blo _0201B142 - add r0, r0, #0x1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - cmp r0, #0x8 - blo _0201B13A - add r0, r7, #0x0 - add r1, r4, #0x0 - mov r2, #0x40 - bl memcpy -_0201B166: - ldr r0, [sp, #0x0] - mov r1, #0x2 - tst r0, r1 - beq _0201B19E - mov r5, #0x0 - mov r6, #0x7 -_0201B172: - lsl r0, r5, #0x3 - add r3, r4, r0 - sub r0, r6, r5 - lsl r0, r0, #0x3 - add r2, r7, r0 - mov r1, #0x8 -_0201B17E: - ldrb r0, [r2, #0x0] - add r2, r2, #0x1 - strb r0, [r3, #0x0] - add r3, r3, #0x1 - sub r1, r1, #0x1 - bne _0201B17E - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x8 - blo _0201B172 - add r0, r7, #0x0 - add r1, r4, #0x0 - mov r2, #0x40 - bl memcpy -_0201B19E: - add r0, r4, #0x0 - bl FreeToHeap -_0201B1A4: - pop {r3-r7, pc} - .balign 4 diff --git a/arm9/src/unk_02016B94_c.c b/arm9/src/unk_02016B94.c similarity index 59% rename from arm9/src/unk_02016B94_c.c rename to arm9/src/unk_02016B94.c index 376e12713..64344c4c2 100644 --- a/arm9/src/unk_02016B94_c.c +++ b/arm9/src/unk_02016B94.c @@ -3776,9 +3776,16 @@ _02018A38: } #endif +struct UnkStruct3 +{ + void *unk00; + u16 unk04; + u16 unk06; +}; + #ifdef NONMATCHING -THUMB_FUNC void FUN_02018A60(u16 *param0, - u16 *param1, +THUMB_FUNC void FUN_02018A60(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, u16 param2, u16 param3, u16 param4, @@ -3792,9 +3799,9 @@ THUMB_FUNC void FUN_02018A60(u16 *param0, u8 *unk2; int st50; - if (param1[2] - param4 < param6) + if (param1->unk04 - param4 < param6) { - st50 = param2 + param1[2] - param4; + st50 = param2 + param1->unk04 - param4; } else { @@ -3802,18 +3809,18 @@ THUMB_FUNC void FUN_02018A60(u16 *param0, } int st4c; - if (param1[3] - param5 < param7) + if (param1->unk06 - param5 < param7) { - st4c = param3 + param1[3] - param5; + st4c = param3 + param1->unk06 - param5; } else { st4c = param3 + param7; } - int st48 = (param0[2] + (param0[2] & 7)) >> 3; + int st48 = (param0->unk04 + (param0->unk04 & 7)) >> 3; - int st44 = (param1[2] + (param1[2] & 7)) >> 3; + int st44 = (param1->unk04 + (param1->unk04 & 7)) >> 3; u32 i, i1; u32 j, j1; @@ -3827,9 +3834,9 @@ THUMB_FUNC void FUN_02018A60(u16 *param0, { unk1 = - *(u32 *)param1 + (j1 >> 1) & + (u32)(param1->unk00) + (j1 >> 1) & 0x3 + ((j1 << 2) & 0x3fe0) + st44 * ((i1 << 2) & 0x3fe0) + ((i1 << 2) & 0x1c); - unk2 = *(u32 *)param0 + (j >> 1) & + unk2 = (u32)(param0->unk00) + (j >> 1) & 0x3 + ((j << 2) & 0x3fe0) + st48 * ((i << 2) & 0x3FE0) + ((i << 2) & 0x1c); u8 r1 = *unk2; @@ -3854,10 +3861,10 @@ THUMB_FUNC void FUN_02018A60(u16 *param0, for (j = param2; j < st50; j++) { - unk1 = *(u32 *)param1 + ((j1 >> 1) & 3) + ((j1 << 2) & 0x3fe0) + + unk1 = (u32)param1->unk00 + ((j1 >> 1) & 3) + ((j1 << 2) & 0x3fe0) + st44 * ((i1 << 2) & 0x3fe0) + (i1 << 2) & 0x1c; - unk2 = *(u32 *)param0 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + + unk2 = (u32)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + st48 * ((i << 2) & 0x3fe0) + ((i << 2) & 0x1c); u8 r0 = ((*unk2) >> ((j << 0x1f) >> 0x1d)) & 0xf; @@ -3874,8 +3881,8 @@ THUMB_FUNC void FUN_02018A60(u16 *param0, } } #else -THUMB_FUNC asm void FUN_02018A60(u16 *param0, - u16 *param1, +THUMB_FUNC asm void FUN_02018A60(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, u16 param2, u16 param3, u16 param4, @@ -4188,8 +4195,8 @@ _02018C92: #endif #ifdef NONMATCHING -THUMB_FUNC void FUN_02018CA0(u16 *param0, - u16 *param1, +THUMB_FUNC void FUN_02018CA0(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, u16 param2, u16 param3, u16 param4, @@ -4201,8 +4208,8 @@ THUMB_FUNC void FUN_02018CA0(u16 *param0, // horrible for loops like the one above } #else -THUMB_FUNC asm void FUN_02018CA0(u16 *param0, - u16 *param1, +THUMB_FUNC asm void FUN_02018CA0(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, u16 param2, u16 param3, u16 param4, @@ -4471,22 +4478,23 @@ _02018E7C: } #endif -THUMB_FUNC void FUN_02018E88(u16 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) +THUMB_FUNC void FUN_02018E88( + struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) { int r6 = param1 + param3; - if (r6 > param0[2]) + if (r6 > param0->unk04) { - r6 = param0[2]; + r6 = param0->unk04; } int r12 = param2 + param4; - if (r12 > param0[3]) + if (r12 > param0->unk06) { - r12 = param0[3]; + r12 = param0->unk06; } - int lr = (((param0[2]) + (param0[2] & 7)) >> 3); + int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3); for (int i = param2; i < r12; i++) { @@ -4494,7 +4502,7 @@ THUMB_FUNC void FUN_02018E88(u16 *param0, u16 param1, u16 param2, u16 param3, u1 for (int j = param1; j < r6; j++) { - u8 *unk = (u8 *)(*(u8 **)param0 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + + u8 *unk = (u8 *)((u8 *)param0->unk00 + ((j >> 1) & 3) + ((j << 2) & 0x3fe0) + (((i << 2) & 0x3fe0) * lr) + ((i << 2) & 0x1c)); if ((j & 1) != 0) @@ -4511,22 +4519,23 @@ THUMB_FUNC void FUN_02018E88(u16 *param0, u16 param1, u16 param2, u16 param3, u1 } } -THUMB_FUNC void FUN_02018F4C(u16 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) +THUMB_FUNC void FUN_02018F4C( + struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) { int r6 = param1 + param3; - if (r6 > param0[2]) + if (r6 > param0->unk04) { - r6 = param0[2]; + r6 = param0->unk04; } int r12 = param2 + param4; - if (r12 > param0[3]) + if (r12 > param0->unk06) { - r12 = param0[3]; + r12 = param0->unk06; } - int lr = (((param0[2]) + (param0[2] & 7)) >> 3); + int lr = (((param0->unk04) + (param0->unk04 & 7)) >> 3); for (int i = param2; i < r12; i++) { @@ -4534,7 +4543,7 @@ THUMB_FUNC void FUN_02018F4C(u16 *param0, u16 param1, u16 param2, u16 param3, u1 for (int j = param1; j < r6; j++) { - u8 *unk = (u8 *)(*(u8 **)param0 + (j & 7) + ((j << 3) & 0x7fc0) + + u8 *unk = (u8 *)((u8 *)param0->unk00 + (j & 7) + ((j << 3) & 0x7fc0) + (((i << 3) & 0x7fc0) * lr) + ((i << 3) & 0x38)); *unk = param5; @@ -4866,18 +4875,3341 @@ THUMB_FUNC void FUN_02019444(struct Window *param0) return; } + r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; + r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - - for ( i = 0; i < param0->unk08; i++) - { - for ( j = 0; j < param0->unk07; j++) - { - r5[j] = 0; - } - r5 += r6; - - } - + for (i = 0; i < param0->unk08; i++) + { + for (j = 0; j < param0->unk07; j++) + { + r5[j] = 0; + } + r5 += r6; + } +} + +extern void FUN_02019548(struct Window *window); + +THUMB_FUNC void FUN_0201949C(struct Window *window) +{ + FUN_020192D4(window); + FUN_02019548(window); + FUN_02017CE8(window->unk00, + window->unk04, + window->unk00->unk08[window->unk04].unk08, + window->unk00->unk08[window->unk04].unk0c, + window->unk00->unk08[window->unk04].unk10); +} + +THUMB_FUNC void FUN_020194C8(struct Window *window) +{ + FUN_020192D4(window); + FUN_0201AC68(window->unk00, window->unk04); + FUN_02019548(window); +} + +THUMB_FUNC void FUN_020194E0(struct Window *window) +{ + FUN_02019358(window); + FUN_02017CE8(window->unk00, + window->unk04, + window->unk00->unk08[window->unk04].unk08, + window->unk00->unk08[window->unk04].unk0c, + window->unk00->unk08[window->unk04].unk10); + + FUN_02017E14(window->unk00, + window->unk04, + window->unk0c, + window->unk07 * window->unk08 * 64, + window->unk0a); +} + +THUMB_FUNC void FUN_0201951C(struct Window *window) +{ + FUN_02019358(window); + FUN_0201AC68(window->unk00, window->unk04); + FUN_02017E14(window->unk00, + window->unk04, + window->unk0c, + window->unk07 * window->unk08 * 64, + window->unk0a); +} + +THUMB_FUNC void FUN_02019548(struct Window *window) +{ + FUN_02017E14(window->unk00, + window->unk04, + window->unk0c, + window->unk07 * window->unk08 * window->unk00->unk08[window->unk04].unk1f, + window->unk0a); +} + +THUMB_FUNC void FUN_02019570(struct Window *window) +{ + UNK_020EDB50[window->unk00->unk08[window->unk04].unk1c](window); +} + +THUMB_FUNC void FUN_0201958C(struct Window *window) +{ + UNK_020EDB44[window->unk00->unk08[window->unk04].unk1c](window); +} + +THUMB_FUNC void FUN_020195A8(struct Window *window) +{ + FUN_020193B4(window); + FUN_02017CE8(window->unk00, + window->unk04, + window->unk00->unk08[window->unk04].unk08, + window->unk00->unk08[window->unk04].unk0c, + window->unk00->unk08[window->unk04].unk10); +} + +THUMB_FUNC void FUN_020195D0(struct Window *window) +{ + FUN_020193B4(window); + FUN_0201AC68(window->unk00, window->unk04); +} + +THUMB_FUNC void FUN_020195E4(struct Window *window) +{ + FUN_02019444(window); + FUN_02017CE8(window->unk00, + window->unk04, + window->unk00->unk08[window->unk04].unk08, + window->unk00->unk08[window->unk04].unk0c, + window->unk00->unk08[window->unk04].unk10); +} + +THUMB_FUNC void FUN_0201960C(struct Window *window) +{ + FUN_02019444(window); + FUN_0201AC68(window->unk00, window->unk04); +} + +THUMB_FUNC void FUN_02019620(struct Window *window, u8 param1) +{ + if (window->unk00->unk08[window->unk04].unk1f == 0x20) + { + param1 |= param1 << 4; + } + + MIi_CpuClearFast((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1, + window->unk0c, + window->unk00->unk08[window->unk04].unk1f * window->unk07 * window->unk08); +} + +extern void FUN_02019684(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10); +THUMB_FUNC void FUN_02019658(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9) +{ + FUN_02019684(window, param1, param2, param3, param4, param5, param6, param7, param8, param9, 0); +} + +THUMB_FUNC void FUN_02019684(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10) +{ + struct UnkStruct3 st1c = { param1, param4, param5 }; + struct UnkStruct3 st14 = { window->unk0c, window->unk07 << 3, window->unk08 << 3 }; + + if (window->unk00->unk08[window->unk04].unk1e == 0) + { + FUN_02018A60(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); + } + else + { + FUN_02018CA0(&st1c, &st14, param2, param3, param6, param7, param8, param9, param10); + } +} + +THUMB_FUNC void FUN_020196F4( + struct Window *window, u8 param1, u16 param2, u16 param3, u16 param4, u16 param5) +{ + struct UnkStruct3 st8 = { window->unk0c, window->unk07 << 3, window->unk08 << 3 }; + + if (window->unk00->unk08[window->unk04].unk1e == 0) + { + FUN_02018E88(&st8, param2, param3, param4, param5, param1); + } + else + { + FUN_02018F4C(&st8, param2, param3, param4, param5, param1); + } +} + +#ifdef NONMATCHING +THUMB_FUNC void FUN_0201974C( + struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6) +{ + u32 str330 = param6; + u32 *st0 = param1; + u16 st5c = param4; + + void *st278 = window->unk0c; + u16 st58 = window->unk07 << 3; + + int st8 = st58 - st5c; + + if (st8 >= param2) + { + st8 = param2; + } + + int st4 = (u16)(window->unk08 << 3) - param5; + u16 st48 = param5; + + if (st4 >= param3) + { + st4 = param3; + } + + u8 r4 = 0; + if (st8 > 8) + { + r4 |= 1; + } + + if (st4 > 8) + { + r4 |= 2; + } + + if (window->unk0b == 0) + { + switch (r4) + { + case 0: + u8 st70 = param6; + for (u32 st274 = 0; st274 < st4; st274++) + { + u32 st6c = (st58 + (st58 & 7)) >> 3; + + u32 st26c = st0[0]; + u8 st270 = (u8)((st70 >> st274) & 1); + u32 r2 = st5c; + + for (u32 r1 = 0; r1 < st8; r1++) + { + u32 r3 = st5c << 2; + u32 st68 = ((st48 << 2) & 0x3fe0) * st6c; + u32 r7 = (st48 << 2) & 0x1c; + u32 st64 = (((st48 + 1) << 2) & 0x3fe0) * st6c; + u32 st60 = ((st48 + 1) << 2) & 0x1c; + u32 r4 = r1; + + void *st27c = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); + u8 *r0 = st27c + st68; + + u8 r5 = (u8)((st26c >> r4) & 0xf); + if (r5 != 0) + { + u32 st280 = (r5 << ((r2 & 1) << 2)); + u32 st284 = r0[r7]; + + u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st284) | st280; + r0[r7] = r5; + + if (st270 != 0) + { + *(u8 *)(st27c + st64 + st60) = r5; + } + } + + r4 += 4; + r3 += 4; + r2 += 1; + } + + if (st270 != 0) + { + st48 += 2; + } + else + { + st48++; + } + + st0++; + } + + break; + + case 1: + u32 *st25c = st0; + u32 st264 = st48; + u8 st54 = param6; + u8 st84 = param6; + + for (u32 st268 = 0; st268 < st4; st268++) + { + u32 st80 = (st58 + (st58 & 7)) >> 3; + + u32 st258 = *st25c; + u32 r2 = st5c; + u8 st260 = (st84 >> st268) & 1; + u32 r3 = st5c << 2; + u32 st7c = ((st264 << 2) & 0x3fe0) * st80; + u32 r7 = (st264 << 2) & 0x1c; + u32 st78 = (((st264 + 1) << 2) & 0x3fe0) * st80; + u32 st74 = ((st264 + 1) << 2) & 0x1c; + u32 r4 = 0; + + for (u32 r1 = 0; r1 < 8; r1++) + { + void *st288 = st278 + ((r2 >> 1) & 3) + (r3 & 0x3fe0); + u8 *r0 = st288 + st7c; + u8 r5 = (st258 >> r4) & 0xf; + if (r5 != 0) + { + u32 st28c = r5 << ((r2 & 1) << 2); + u32 st290 = r0[r7]; + u8 r5 = ((0xf0 >> ((r2 & 1) << 2)) & st290) | st28c; + r0[r7] = r5; + + if (st260 != 0) + { + *(u8 *)(st288 + st78 + st74) = r5; + } + } + + r4 += 4; + r3 += 4; + r2++; + } + + if (st260 != 0) + { + st264 += 2; + } + else + { + st264++; + } + + st25c++; + } + + st0 += 0x20; + u8 st98 = st54; + + for (u32 st254 = 0; st254 < st4; st254++) + { + st5c += 8; + u32 st94 = (st58 + (st58 & 7)) >> 3; + + //_02019A00 + } + + break; + + case 2: + // TODO + break; + case 3: + // TODO + break; + } + } + else + { + // TODO: FUN_0201A12C + } +} +#else +asm void FUN_0201974C( + struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6) +{ + // clang-format off + push {r4-r7, lr} + sub sp, #0x1fc + sub sp, #0x118 + add r5, r0, #0x0 + ldr r0, [sp, #0x330] + str r1, [sp, #0x0] + str r0, [sp, #0x330] + add r1, sp, #0x318 + ldrh r1, [r1, #0x10] + ldr r0, [r5, #0xc] + str r1, [sp, #0x5c] + ldrb r1, [r5, #0x7] + str r0, [sp, #0x278] + ldrb r0, [r5, #0x8] + lsl r1, r1, #0x13 + lsr r4, r1, #0x10 + ldr r1, [sp, #0x5c] + lsl r0, r0, #0x13 + sub r1, r4, r1 + lsr r0, r0, #0x10 + str r4, [sp, #0x58] + str r1, [sp, #0x8] + cmp r1, r2 + blt _0201977E + str r2, [sp, #0x8] +_0201977E: + add r1, sp, #0x318 + ldrh r1, [r1, #0x14] + sub r0, r0, r1 + str r1, [sp, #0x48] + str r0, [sp, #0x4] + cmp r0, r3 + blt _0201978E + str r3, [sp, #0x4] +_0201978E: + ldr r0, [sp, #0x8] + mov r4, #0x0 + cmp r0, #0x8 + ble _0201979E + mov r0, #0x1 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_0201979E: + ldr r0, [sp, #0x4] + cmp r0, #0x8 + ble _020197AC + mov r0, #0x2 + orr r0, r4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 +_020197AC: + ldrh r0, [r5, #0xa] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + beq _020197B8 + bl FUN_0201A12C +_020197B8: + cmp r4, #0x3 + bls _020197C0 + bl FUN_0201A8BC +_020197C0: + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020197CC: + lsl r6, r0, #0 + lsl r0, r1, #4 + lsl r0, r3, #12 + lsl r0, r7, #20 + // jump table (using 16-bit offset) + // .short _020197D4 - _020197CC - 2; case 0 + // .short _020198D6 - _020197CC - 2; case 1 + // .short _02019AE6 - _020197CC - 2; case 2 + // .short _02019D06 - _020197CC - 2; case 3 +_020197D4: + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x70] + mov r0, #0x0 + str r0, [sp, #0x274] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020197EA + bl FUN_0201A8BC +_020197EA: + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x6c] +_020197F6: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x70] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x26c] + ldr r0, [sp, #0x274] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x270] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _020198AA + ble _020198AA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x6c] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x68] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x6c] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x64] + str r0, [sp, #0x60] +_02019848: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x68] + str r5, [sp, #0x27c] + add r0, r5, r0 + ldr r5, [sp, #0x26c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201989C + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x280] + ldrb r5, [r0, r7] + str r5, [sp, #0x284] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x284] + and r6, r5 + ldr r5, [sp, #0x280] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _0201989C + ldr r6, [sp, #0x27c] + ldr r0, [sp, #0x64] + add r6, r6, r0 + ldr r0, [sp, #0x60] + strb r5, [r0, r6] +_0201989C: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019848 +_020198AA: + ldr r0, [sp, #0x270] + cmp r0, #0x0 + beq _020198B8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _020198BE +_020198B8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_020198BE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x274] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x274] + cmp r1, r0 + blt _020197F6 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_020198D6: + ldr r0, [sp, #0x0] + str r0, [sp, #0x25c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x264] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x84] + mov r0, #0x0 + str r0, [sp, #0x268] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _020199D2 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x80] +_02019902: + ldr r0, [sp, #0x25c] + ldr r1, [sp, #0x84] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x258] + ldr r0, [sp, #0x268] + ldr r6, [sp, #0x80] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x260] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x264] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x264] + str r6, [sp, #0x7c] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x80] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x78] + str r0, [sp, #0x74] +_0201994C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x7c] + str r5, [sp, #0x288] + add r0, r5, r0 + ldr r5, [sp, #0x258] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _020199A0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x28c] + ldrb r5, [r0, r7] + str r5, [sp, #0x290] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x290] + and r6, r5 + ldr r5, [sp, #0x28c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199A0 + ldr r6, [sp, #0x288] + ldr r0, [sp, #0x78] + add r6, r6, r0 + ldr r0, [sp, #0x74] + strb r5, [r0, r6] +_020199A0: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _0201994C + ldr r0, [sp, #0x260] + cmp r0, #0x0 + beq _020199BA + ldr r0, [sp, #0x264] + add r0, r0, #0x2 + str r0, [sp, #0x264] + b _020199C0 +_020199BA: + ldr r0, [sp, #0x264] + add r0, r0, #0x1 + str r0, [sp, #0x264] +_020199C0: + ldr r0, [sp, #0x25c] + add r0, r0, #0x4 + str r0, [sp, #0x25c] + ldr r0, [sp, #0x268] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x268] + cmp r1, r0 + blt _02019902 +_020199D2: + ldr r0, [sp, #0x0] + add r0, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x54] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x98] + mov r0, #0x0 + str r0, [sp, #0x254] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bgt _020199EE + bl FUN_0201A8BC +_020199EE: + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x94] +_02019A00: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x98] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x24c] + ldr r0, [sp, #0x254] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x250] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x294] + sub r0, #0x8 + str r0, [sp, #0x294] + cmp r0, #0x0 + ble _02019ABA + ble _02019ABA + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x94] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0x90] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x94] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0x8c] + str r0, [sp, #0x88] +_02019A58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0x90] + str r5, [sp, #0x298] + add r0, r5, r0 + ldr r5, [sp, #0x24c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019AAC + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x29c] + ldrb r5, [r0, r7] + str r5, [sp, #0x2a0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2a0] + and r6, r5 + ldr r5, [sp, #0x29c] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AAC + ldr r6, [sp, #0x298] + ldr r0, [sp, #0x8c] + add r6, r6, r0 + ldr r0, [sp, #0x88] + strb r5, [r0, r6] +_02019AAC: + ldr r0, [sp, #0x294] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019A58 +_02019ABA: + ldr r0, [sp, #0x250] + cmp r0, #0x0 + beq _02019AC8 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019ACE +_02019AC8: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019ACE: + ldr r0, [sp, #0x0] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x254] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x254] + cmp r1, r0 + blt _02019A00 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019AE6: + ldr r0, [sp, #0x0] + mov r1, #0x7 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x244] + mov r0, #0x0 + str r0, [sp, #0x248] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xa8] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x40] +_02019B06: + ldr r0, [sp, #0x23c] + ldr r1, [sp, #0xa8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x238] + ldr r0, [sp, #0x248] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x240] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019BC2 + ble _02019BC2 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x244] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x244] + str r6, [sp, #0xa4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xa0] + str r0, [sp, #0x9c] +_02019B58: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 +// b _02019B6C +// nop +// _02019B68: .word 0x00003FE0 +// _02019B6C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xa4] + str r5, [sp, #0x2a4] + add r0, r5, r0 + ldr r5, [sp, #0x238] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019BB4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2a8] + ldrb r5, [r0, r7] + str r5, [sp, #0x2ac] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2ac] + and r6, r5 + ldr r5, [sp, #0x2a8] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BB4 + ldr r6, [sp, #0x2a4] + ldr r0, [sp, #0xa0] + add r6, r6, r0 + ldr r0, [sp, #0x9c] + strb r5, [r0, r6] +_02019BB4: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019B58 +_02019BC2: + ldr r0, [sp, #0x240] + cmp r0, #0x0 + beq _02019BD0 + ldr r0, [sp, #0x244] + add r0, r0, #0x2 + str r0, [sp, #0x244] + b _02019BD6 +_02019BD0: + ldr r0, [sp, #0x244] + add r0, r0, #0x1 + str r0, [sp, #0x244] +_02019BD6: + ldr r0, [sp, #0x23c] + add r0, r0, #0x4 + str r0, [sp, #0x23c] + ldr r0, [sp, #0x248] + add r0, r0, #0x1 + str r0, [sp, #0x248] + cmp r0, #0x8 + blt _02019B06 + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x40 + str r0, [sp, #0x0] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] +_02019BF6: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019C04 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019C04: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019BF6 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xb8] + mov r0, #0x0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _02019C24 + bl FUN_0201A8BC +_02019C24: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xb8] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x230] + ldr r0, [sp, #0x20] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x234] + ldr r0, [sp, #0x8] + mov r1, #0x0 + cmp r0, #0x0 + ble _02019CD8 + ble _02019CD8 + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x40] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xb4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x40] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xb0] + str r0, [sp, #0xac] +_02019C76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xb4] + str r5, [sp, #0x2b0] + add r0, r5, r0 + ldr r5, [sp, #0x230] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019CCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2b4] + ldrb r5, [r0, r7] + str r5, [sp, #0x2b8] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2b8] + and r6, r5 + ldr r5, [sp, #0x2b4] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CCA + ldr r6, [sp, #0x2b0] + ldr r0, [sp, #0xb0] + add r6, r6, r0 + ldr r0, [sp, #0xac] + strb r5, [r0, r6] +_02019CCA: + ldr r0, [sp, #0x8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019C76 +_02019CD8: + ldr r0, [sp, #0x234] + cmp r0, #0x0 + beq _02019CE6 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _02019CEC +_02019CE6: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_02019CEC: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x20] + cmp r0, r1 + blt _02019C24 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} +_02019D06: + ldr r0, [sp, #0x0] + str r0, [sp, #0x220] + ldr r0, [sp, #0x48] + str r0, [sp, #0x228] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x22c] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x38] +_02019D2A: + ldr r0, [sp, #0x220] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x21c] + ldr r0, [sp, #0x22c] + ldr r6, [sp, #0x38] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x224] + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x228] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x228] + str r6, [sp, #0xc4] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + str r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xc0] + str r0, [sp, #0xbc] +_02019D76: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xc4] + str r5, [sp, #0x2bc] + add r0, r5, r0 + ldr r5, [sp, #0x21c] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019DCA + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2c0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2c4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2c4] + and r6, r5 + ldr r5, [sp, #0x2c0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DCA + ldr r6, [sp, #0x2bc] + ldr r0, [sp, #0xc0] + add r6, r6, r0 + ldr r0, [sp, #0xbc] + strb r5, [r0, r6] +_02019DCA: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019D76 + ldr r0, [sp, #0x224] + cmp r0, #0x0 + beq _02019DE4 + ldr r0, [sp, #0x228] + add r0, r0, #0x2 + str r0, [sp, #0x228] + b _02019DEA +_02019DE4: + ldr r0, [sp, #0x228] + add r0, r0, #0x1 + str r0, [sp, #0x228] +_02019DEA: + ldr r0, [sp, #0x220] + add r0, r0, #0x4 + str r0, [sp, #0x220] + ldr r0, [sp, #0x22c] + add r0, r0, #0x1 + str r0, [sp, #0x22c] + cmp r0, #0x8 + blt _02019D2A + ldr r0, [sp, #0x0] + str r0, [sp, #0x20c] + add r0, #0x20 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x48] + str r0, [sp, #0x214] + mov r0, #0x0 + str r0, [sp, #0x218] + ldr r0, [sp, #0x5c] + str r0, [sp, #0xd4] + add r0, #0x8 + str r0, [sp, #0xd4] +_02019E12: + ldr r0, [sp, #0x20c] + ldr r1, [sp, #0x3c] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0xd4] + str r0, [sp, #0x208] + ldr r0, [sp, #0x218] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x210] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2c8] + sub r0, #0x8 + str r0, [sp, #0x2c8] + cmp r0, #0x0 + ble _02019ECC + ble _02019ECC + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x214] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x214] + str r6, [sp, #0xd0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xcc] + str r0, [sp, #0xc8] +_02019E6A: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xd0] + str r5, [sp, #0x2cc] + add r0, r5, r0 + ldr r5, [sp, #0x208] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019EBE + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2d0] + ldrb r5, [r0, r7] + str r5, [sp, #0x2d4] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2d4] + and r6, r5 + ldr r5, [sp, #0x2d0] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EBE + ldr r6, [sp, #0x2cc] + ldr r0, [sp, #0xcc] + add r6, r6, r0 + ldr r0, [sp, #0xc8] + strb r5, [r0, r6] +_02019EBE: + ldr r0, [sp, #0x2c8] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _02019E6A +_02019ECC: + ldr r0, [sp, #0x210] + cmp r0, #0x0 + beq _02019EDA + ldr r0, [sp, #0x214] + add r0, r0, #0x2 + str r0, [sp, #0x214] + b _02019EE0 +_02019EDA: + ldr r0, [sp, #0x214] + add r0, r0, #0x1 + str r0, [sp, #0x214] +_02019EE0: + ldr r0, [sp, #0x20c] + add r0, r0, #0x4 + str r0, [sp, #0x20c] + ldr r0, [sp, #0x218] + add r0, r0, #0x1 + str r0, [sp, #0x218] + cmp r0, #0x8 + blt _02019E12 + ldr r0, [sp, #0x0] + mov r2, #0x0 + str r0, [sp, #0x1fc] + add r0, #0x40 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x48] + mov r1, #0x1 + add r0, #0x8 + str r0, [sp, #0x48] + str r0, [sp, #0x204] +_02019F04: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _02019F12 + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019F12: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _02019F04 + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xe4] + mov r0, #0x0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A008 +_02019F30: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0xe4] + ldr r0, [r0, #0x0] + ldr r6, [sp, #0x38] + str r0, [sp, #0x1f8] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x200] + ldr r0, [sp, #0x204] + mov r1, #0x0 + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x204] + str r6, [sp, #0xe0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + ldr r3, [sp, #0x34] + add r4, r1, #0x0 + str r5, [sp, #0xdc] + str r0, [sp, #0xd8] +_02019F78: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 +// b _02019F8C +// nop +// _02019F88: .word 0x00003FE0 +// _02019F8C: + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xe0] + str r5, [sp, #0x2d8] + add r0, r5, r0 + ldr r5, [sp, #0x1f8] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _02019FD4 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2dc] + ldrb r5, [r0, r7] + str r5, [sp, #0x2e0] + mov r5, #0xf0 + asr r5, r6 + ldr r6, [sp, #0x2e0] + and r6, r5 + ldr r5, [sp, #0x2dc] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FD4 + ldr r6, [sp, #0x2d8] + ldr r0, [sp, #0xdc] + add r6, r6, r0 + ldr r0, [sp, #0xd8] + strb r5, [r0, r6] +_02019FD4: + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, #0x8 + blt _02019F78 + ldr r0, [sp, #0x200] + cmp r0, #0x0 + beq _02019FEE + ldr r0, [sp, #0x204] + add r0, r0, #0x2 + str r0, [sp, #0x204] + b _02019FF4 +_02019FEE: + ldr r0, [sp, #0x204] + add r0, r0, #0x1 + str r0, [sp, #0x204] +_02019FF4: + ldr r0, [sp, #0x1fc] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x1fc] + ldr r0, [sp, #0x1c] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1c] + cmp r0, r1 + blt _02019F30 +_0201A008: + ldr r0, [sp, #0x0] + mov r2, #0x0 + add r0, #0x60 + str r0, [sp, #0x0] + mov r1, #0x1 +_0201A012: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A020 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A020: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A012 + ldr r0, [sp, #0x50] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xf4] + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + bgt _0201A03E + bl FUN_0201A8BC +_0201A03E: + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A044: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0xf4] + ldr r0, [r0, #0x0] + ldr r2, [sp, #0x5c] + str r0, [sp, #0x1f0] + ldr r0, [sp, #0x18] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1f4] + ldr r0, [sp, #0x8] + mov r1, #0x0 + str r0, [sp, #0x2e4] + sub r0, #0x8 + str r0, [sp, #0x2e4] + cmp r0, #0x0 + ble _0201A0FE + ble _0201A0FE + add r0, r2, #0x0 + lsl r3, r0, #0x2 + ldr r0, [sp, #0x48] + ldr r6, [sp, #0x38] + lsl r5, r0, #0x2 + ldr r0, =0x00003FE0 + add r7, r5, #0x0 + and r0, r5 + mul r6, r0 + mov r0, #0x1c + and r7, r0 + ldr r0, [sp, #0x48] + str r6, [sp, #0xf0] + add r0, r0, #0x1 + lsl r6, r0, #0x2 + ldr r0, =0x00003FE0 + ldr r5, [sp, #0x38] + and r0, r6 + mul r5, r0 + mov r0, #0x1c + and r0, r6 + add r4, r1, #0x0 + str r5, [sp, #0xec] + str r0, [sp, #0xe8] +_0201A09C: + asr r5, r2, #0x1 + mov r0, #0x3 + and r5, r0 + ldr r0, [sp, #0x278] + add r0, r0, r5 + ldr r5, =0x00003FE0 + and r5, r3 + add r5, r0, r5 + ldr r0, [sp, #0xf0] + str r5, [sp, #0x2e8] + add r0, r5, r0 + ldr r5, [sp, #0x1f0] + add r6, r5, #0x0 + lsr r6, r4 + mov r5, #0xf + and r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + beq _0201A0F0 + lsl r6, r2, #0x1f + lsr r6, r6, #0x1d + lsl r5, r6 + str r5, [sp, #0x2ec] + ldrb r5, [r0, r7] + mov r12, r5 + mov r5, #0xf0 + asr r5, r6 + mov r6, r12 + and r6, r5 + ldr r5, [sp, #0x2ec] + orr r5, r6 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + strb r5, [r0, r7] + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A0F0 + ldr r6, [sp, #0x2e8] + ldr r0, [sp, #0xec] + add r6, r6, r0 + ldr r0, [sp, #0xe8] + strb r5, [r0, r6] +_0201A0F0: + ldr r0, [sp, #0x2e4] + add r1, r1, #0x1 + add r4, r4, #0x4 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r1, r0 + blt _0201A09C +_0201A0FE: + ldr r0, [sp, #0x1f4] + cmp r0, #0x0 + beq _0201A10C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A112 +_0201A10C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A112: + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x18] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x18] + cmp r0, r1 + blt _0201A044 + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + +FUN_0201A12C: // 0x0201A12C + lsl r1, r2, #0x2 + mul r1, r3 + ldr r3, [r5, #0x0] + ldrb r2, [r5, #0x9] + ldr r0, [sp, #0x0] + ldr r3, [r3, #0x0] + lsl r1, r1, #0x3 + bl FUN_02018848 + str r0, [sp, #0x1ec] + cmp r4, #0x3 + bhi _0201A21E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0201A150: + + lsl r6, r0, #0 + lsl r6, r1, #3 + lsl r0, r7, #9 + lsl r4, r3, #16 + // jump table (using 16-bit offset) + // .short _0201A158 - _0201A150 - 2; case 0 + // .short _0201A220 - _0201A150 - 2; case 1 + // .short _0201A3CA - _0201A150 - 2; case 2 + // .short _0201A56E - _0201A150 - 2; case 3 +_0201A158: + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10c] + mov r0, #0x0 + str r0, [sp, #0x1e8] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A21E + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x108] +_0201A178: + ldr r1, [sp, #0x10c] + ldr r0, [sp, #0x1e8] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x310] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A1FC + ble _0201A1FC + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x108] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x100] + ldr r0, [sp, #0x48] + str r2, [sp, #0x104] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x108] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0xfc] + str r0, [sp, #0xf8] +_0201A1C4: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x104] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0x100] + strb r1, [r2, r0] + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A1F0 + ldr r0, [sp, #0xfc] + add r2, r3, r0 + ldr r0, [sp, #0xf8] + strb r1, [r0, r2] +_0201A1F0: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A1C4 +_0201A1FC: + ldr r0, [sp, #0x310] + cmp r0, #0x0 + beq _0201A20A + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A210 +_0201A20A: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A210: + ldr r0, [sp, #0x1e8] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e8] + cmp r1, r0 + blt _0201A178 +_0201A21E: + b _0201A8B6 +_0201A220: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1e0] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x124] + mov r0, #0x0 + str r0, [sp, #0x1e4] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A2E6 + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x120] +_0201A24A: + ldr r1, [sp, #0x124] + ldr r0, [sp, #0x1e4] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x30c] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1e0] + ldr r2, [sp, #0x120] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x118] + ldr r0, [sp, #0x1e0] + str r2, [sp, #0x11c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x120] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r2, [sp, #0x114] + str r0, [sp, #0x110] +_0201A28E: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x11c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x118] + strb r1, [r2, r0] + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2BA + ldr r0, [sp, #0x114] + add r2, r3, r0 + ldr r0, [sp, #0x110] + strb r1, [r0, r2] +_0201A2BA: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A28E + ldr r0, [sp, #0x30c] + cmp r0, #0x0 + beq _0201A2D2 + ldr r0, [sp, #0x1e0] + add r0, r0, #0x2 + str r0, [sp, #0x1e0] + b _0201A2D8 +_0201A2D2: + ldr r0, [sp, #0x1e0] + add r0, r0, #0x1 + str r0, [sp, #0x1e0] +_0201A2D8: + ldr r0, [sp, #0x1e4] + add r7, #0x8 + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1e4] + cmp r1, r0 + blt _0201A24A +_0201A2E6: + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x308] + add r0, #0x40 + str r0, [sp, #0x308] + ldr r0, [sp, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x13c] + mov r0, #0x0 + str r0, [sp, #0x1dc] + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ble _0201A3C8 + ldr r0, [sp, #0x5c] + mov r1, #0x7 + add r0, #0x8 + str r0, [sp, #0x5c] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x138] +_0201A312: + ldr r1, [sp, #0x13c] + ldr r0, [sp, #0x1dc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1d8] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A398 + ble _0201A398 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x138] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x130] + ldr r0, [sp, #0x48] + str r2, [sp, #0x134] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x138] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x12c] + str r0, [sp, #0x128] +_0201A360: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x134] + add r2, r3, r0 + ldr r0, [sp, #0x308] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A38E + ldr r0, [sp, #0x130] + strb r1, [r2, r0] + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A38E + ldr r0, [sp, #0x12c] + add r2, r3, r0 + ldr r0, [sp, #0x128] + strb r1, [r0, r2] +_0201A38E: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A360 +_0201A398: + ldr r0, [sp, #0x1d8] + cmp r0, #0x0 + beq _0201A3B0 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A3B6 +// nop +// _0201A3A8: .word 0x00003FE0 +// _0201A3AC: .word 0x00007FC0 +_0201A3B0: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A3B6: + ldr r0, [sp, #0x308] + add r0, #0x8 + str r0, [sp, #0x308] + ldr r0, [sp, #0x1dc] + add r1, r0, #0x1 + ldr r0, [sp, #0x4] + str r1, [sp, #0x1dc] + cmp r1, r0 + blt _0201A312 +_0201A3C8: + b _0201A8B6 +_0201A3CA: + ldr r0, [sp, #0x48] + mov r1, #0x7 + str r0, [sp, #0x1d0] + mov r0, #0x0 + str r0, [sp, #0x1d4] + ldr r0, [sp, #0x330] + ldr r7, [sp, #0x1ec] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x150] + ldr r0, [sp, #0x58] + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x30] +_0201A3E8: + ldr r1, [sp, #0x150] + ldr r0, [sp, #0x1d4] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x304] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A46C + ble _0201A46C + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1d0] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x148] + ldr r0, [sp, #0x1d0] + str r2, [sp, #0x14c] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x144] + str r0, [sp, #0x140] +_0201A434: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x14c] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A460 + ldr r0, [sp, #0x148] + strb r1, [r2, r0] + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A460 + ldr r0, [sp, #0x144] + add r2, r3, r0 + ldr r0, [sp, #0x140] + strb r1, [r0, r2] +_0201A460: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A434 +_0201A46C: + ldr r0, [sp, #0x304] + cmp r0, #0x0 + beq _0201A47A + ldr r0, [sp, #0x1d0] + add r0, r0, #0x2 + str r0, [sp, #0x1d0] + b _0201A480 +_0201A47A: + ldr r0, [sp, #0x1d0] + add r0, r0, #0x1 + str r0, [sp, #0x1d0] +_0201A480: + ldr r0, [sp, #0x1d4] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1d4] + cmp r0, #0x8 + blt _0201A3E8 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + str r0, [sp, #0x48] + add r7, #0x80 + mov r0, #0x0 + mov r2, #0x1 +_0201A49A: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A4A8 + ldr r1, [sp, #0x48] + add r1, r1, #0x1 + str r1, [sp, #0x48] +_0201A4A8: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A49A + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x164] + mov r0, #0x0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A56C +_0201A4C4: + ldr r1, [sp, #0x164] + ldr r0, [sp, #0x14] + mov r4, #0x0 + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x300] + ldr r0, [sp, #0x8] + ldr r5, [sp, #0x5c] + cmp r0, #0x0 + ble _0201A548 + ble _0201A548 + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x30] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x15c] + ldr r0, [sp, #0x48] + str r2, [sp, #0x160] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x30] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x158] + str r0, [sp, #0x154] +_0201A510: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x160] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A53C + ldr r0, [sp, #0x15c] + strb r1, [r2, r0] + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A53C + ldr r0, [sp, #0x158] + add r2, r3, r0 + ldr r0, [sp, #0x154] + strb r1, [r0, r2] +_0201A53C: + ldr r0, [sp, #0x8] + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r0 + blt _0201A510 +_0201A548: + ldr r0, [sp, #0x300] + cmp r0, #0x0 + beq _0201A556 + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A55C +_0201A556: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A55C: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x14] + cmp r0, r1 + blt _0201A4C4 +_0201A56C: + b _0201A8B6 +_0201A56E: + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + str r0, [sp, #0x1c8] + ldr r0, [sp, #0x330] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0x0 + str r0, [sp, #0x1cc] + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x58] + mov r1, #0x7 + and r1, r0 + add r0, r0, r1 + asr r0, r0, #0x3 + str r0, [sp, #0x28] +_0201A590: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1cc] + ldr r5, [sp, #0x5c] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2fc] + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c8] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x170] + ldr r0, [sp, #0x1c8] + str r2, [sp, #0x174] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + mov r4, #0x0 + str r6, [sp, #0x24] + str r2, [sp, #0x16c] + str r0, [sp, #0x168] +_0201A5D6: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x174] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A602 + ldr r0, [sp, #0x170] + strb r1, [r2, r0] + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A602 + ldr r0, [sp, #0x16c] + add r2, r3, r0 + ldr r0, [sp, #0x168] + strb r1, [r0, r2] +_0201A602: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A5D6 + ldr r0, [sp, #0x2fc] + cmp r0, #0x0 + beq _0201A61A + ldr r0, [sp, #0x1c8] + add r0, r0, #0x2 + str r0, [sp, #0x1c8] + b _0201A620 +_0201A61A: + ldr r0, [sp, #0x1c8] + add r0, r0, #0x1 + str r0, [sp, #0x1c8] +_0201A620: + ldr r0, [sp, #0x1cc] + add r7, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x1cc] + cmp r0, #0x8 + blt _0201A590 + ldr r0, [sp, #0x1ec] + str r0, [sp, #0x2f8] + add r0, #0x40 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x48] + str r0, [sp, #0x1c0] + mov r0, #0x0 + str r0, [sp, #0x1c4] + ldr r0, [sp, #0x5c] + str r0, [sp, #0x188] + add r0, #0x8 + str r0, [sp, #0x188] +_0201A644: + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1c4] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1bc] + ldr r5, [sp, #0x188] + cmp r7, #0x0 + ble _0201A6CA + ble _0201A6CA + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x1c0] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x180] + ldr r0, [sp, #0x1c0] + str r2, [sp, #0x184] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x17c] + str r0, [sp, #0x178] +_0201A692: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x184] + add r2, r3, r0 + ldr r0, [sp, #0x2f8] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x180] + strb r1, [r2, r0] + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6C0 + ldr r0, [sp, #0x17c] + add r2, r3, r0 + ldr r0, [sp, #0x178] + strb r1, [r0, r2] +_0201A6C0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A692 +_0201A6CA: + ldr r0, [sp, #0x1bc] + cmp r0, #0x0 + beq _0201A6D8 + ldr r0, [sp, #0x1c0] + add r0, r0, #0x2 + str r0, [sp, #0x1c0] + b _0201A6DE +_0201A6D8: + ldr r0, [sp, #0x1c0] + add r0, r0, #0x1 + str r0, [sp, #0x1c0] +_0201A6DE: + ldr r0, [sp, #0x2f8] + add r0, #0x8 + str r0, [sp, #0x2f8] + ldr r0, [sp, #0x1c4] + add r0, r0, #0x1 + str r0, [sp, #0x1c4] + cmp r0, #0x8 + blt _0201A644 + ldr r0, [sp, #0x48] + ldr r7, [sp, #0x1ec] + add r0, #0x8 + add r7, #0x80 + str r0, [sp, #0x48] + str r0, [sp, #0x1b8] + mov r0, #0x0 + mov r2, #0x1 +_0201A6FE: + ldr r1, [sp, #0x330] + asr r1, r0 + tst r1, r2 + beq _0201A70C + ldr r1, [sp, #0x1b8] + add r1, r1, #0x1 + str r1, [sp, #0x1b8] +_0201A70C: + add r0, r0, #0x1 + cmp r0, #0x8 + blt _0201A6FE + ldr r0, [sp, #0x330] + asr r0, r0, #0x8 + str r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x19c] + mov r0, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A7CE +_0201A72A: + ldr r1, [sp, #0x19c] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x28] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x2f4] + ldr r0, [sp, #0x1b8] + mov r3, #0x38 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 +// b _0201A74C +// nop +// _0201A748: .word 0x00007FC0 +// _0201A74C: + ldr r5, [sp, #0x5c] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x194] + ldr r0, [sp, #0x1b8] + str r2, [sp, #0x198] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + ldr r6, [sp, #0x24] + mov r4, #0x0 + str r2, [sp, #0x190] + str r0, [sp, #0x18c] +_0201A774: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x198] + ldrb r1, [r7, r4] + add r2, r3, r0 + cmp r1, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x194] + strb r1, [r2, r0] + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7A0 + ldr r0, [sp, #0x190] + add r2, r3, r0 + ldr r0, [sp, #0x18c] + strb r1, [r0, r2] +_0201A7A0: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, #0x8 + blt _0201A774 + ldr r0, [sp, #0x2f4] + cmp r0, #0x0 + beq _0201A7B8 + ldr r0, [sp, #0x1b8] + add r0, r0, #0x2 + str r0, [sp, #0x1b8] + b _0201A7BE +_0201A7B8: + ldr r0, [sp, #0x1b8] + add r0, r0, #0x1 + str r0, [sp, #0x1b8] +_0201A7BE: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x4] + add r0, r0, #0x1 + sub r1, #0x8 + add r7, #0x8 + str r0, [sp, #0x10] + cmp r0, r1 + blt _0201A72A +_0201A7CE: + ldr r0, [sp, #0x1ec] + mov r2, #0x0 + str r0, [sp, #0x2f0] + add r0, #0xc0 + str r0, [sp, #0x2f0] + mov r1, #0x1 +_0201A7DA: + ldr r0, [sp, #0x330] + asr r0, r2 + tst r0, r1 + beq _0201A7E8 + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A7E8: + add r2, r2, #0x1 + cmp r2, #0x8 + blt _0201A7DA + ldr r0, [sp, #0x44] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x1b0] + mov r0, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x4] + sub r0, #0x8 + cmp r0, #0x0 + ble _0201A8B6 + ldr r0, [sp, #0x5c] + add r0, #0x8 + str r0, [sp, #0x5c] +_0201A808: + ldr r1, [sp, #0x1b0] + ldr r0, [sp, #0xc] + ldr r7, [sp, #0x8] + asr r1, r0 + mov r0, #0x1 + and r0, r1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + sub r7, #0x8 + mov r4, #0x0 + str r0, [sp, #0x1b4] + ldr r5, [sp, #0x5c] + cmp r7, #0x0 + ble _0201A88E + ble _0201A88E + add r0, r5, #0x0 + lsl r6, r0, #0x3 + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x28] + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + mov r3, #0x38 + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r0, [sp, #0x1a8] + ldr r0, [sp, #0x48] + str r2, [sp, #0x1ac] + add r0, r0, #0x1 + lsl r1, r0, #0x3 + ldr r0, =0x00007FC0 + ldr r2, [sp, #0x28] + and r0, r1 + mul r2, r0 + add r0, r1, #0x0 + and r0, r3 + str r2, [sp, #0x1a4] + str r0, [sp, #0x1a0] +_0201A856: + mov r0, #0x7 + add r1, r5, #0x0 + and r1, r0 + ldr r0, [sp, #0x278] + add r1, r0, r1 + ldr r0, =0x00007FC0 + and r0, r6 + add r3, r1, r0 + ldr r0, [sp, #0x1ac] + add r2, r3, r0 + ldr r0, [sp, #0x2f0] + ldrb r1, [r0, r4] + cmp r1, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a8] + strb r1, [r2, r0] + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A884 + ldr r0, [sp, #0x1a4] + add r2, r3, r0 + ldr r0, [sp, #0x1a0] + strb r1, [r0, r2] +_0201A884: + add r4, r4, #0x1 + add r6, #0x8 + add r5, r5, #0x1 + cmp r4, r7 + blt _0201A856 +_0201A88E: + ldr r0, [sp, #0x1b4] + cmp r0, #0x0 + beq _0201A89C + ldr r0, [sp, #0x48] + add r0, r0, #0x2 + str r0, [sp, #0x48] + b _0201A8A2 +_0201A89C: + ldr r0, [sp, #0x48] + add r0, r0, #0x1 + str r0, [sp, #0x48] +_0201A8A2: + ldr r0, [sp, #0x2f0] + ldr r1, [sp, #0x4] + add r0, #0x8 + str r0, [sp, #0x2f0] + ldr r0, [sp, #0xc] + sub r1, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, r1 + blt _0201A808 +_0201A8B6: + ldr r0, [sp, #0x1ec] + bl FreeToHeap + +FUN_0201A8BC: // 0x0201A8BC + add sp, #0x1fc + add sp, #0x118 + pop {r4-r7, pc} + // clang-format on +} +#endif + +extern void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3); +extern void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3); + +THUMB_FUNC void FUN_0201A8C8(struct Window *window, u32 param1, u8 param2, u8 param3) +{ + if (window->unk00->unk08[window->unk04].unk1e == 0) + { + FUN_0201A8E8(window, param1, param2, param3); + } + else + { + FUN_0201A9D4(window, param1, param2, param3); + } +} + +THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3) +{ + void *r2; + int r5, r1, r3; + int st4, stc; + u32 st8; + int i, j; + + r2 = window->unk0c; + st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; + stc = window->unk08 * window->unk07 * 32; + st8 = window->unk07; + + switch (param1) + { + case 0: + for (i = 0; i < stc; i += 32) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 2); + r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + + if (r1 < stc) + { + *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); + } + else + { + *(u32 *)(r2 + r5) = st4; + } + + r3++; + } + } + + break; + case 1: + r2 += stc - 4; + for (i = 0; i < stc; i += 32) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 2); + r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + + if (r1 < stc) + { + *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); + } + else + { + *(u32 *)(r2 - r5) = st4; + } + + r3++; + } + } + + break; + case 2: + case 3: + break; + } +} + +THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3) +{ + + void *r2; + int r5, r1, r3; + int st4, stc; + u32 st8; + int i, j; + + r2 = (u8 *)window->unk0c; + st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; + stc = window->unk08 * window->unk07 * 64; + st8 = window->unk07; + + switch (param1) + { + case 0: + for (i = 0; i < stc; i += 64) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 3); + r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 3); + + if (r1 < stc) + { + *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); + } + else + { + *(u32 *)(r2 + r5) = st4; + } + + r5 += 4; + r1 += 4; + if (r1 < stc + 4) + { + *(u32 *)(r2 + r5) = *(u32 *)(r2 + r1); + } + else + { + *(u32 *)(r2 + r5) = st4; + } + + r3++; + } + } + + break; + case 1: + r2 += stc - 8; + for (i = 0; i < stc; i += 64) + { + r3 = param2; + for (j = 0; j < 8; j++) + { + r5 = i + (j << 3); + r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 3); + + if (r1 < stc) + { + *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); + } + else + { + *(u32 *)(r2 - r5) = st4; + } + + r5 -= 4; + r1 -= 4; + if (r1 < stc - 4) + { + *(u32 *)(r2 - r5) = *(u32 *)(r2 - r1); + } + else + { + *(u32 *)(r2 - r5) = st4; + } + + r3++; + } + } + + break; + case 2: + case 3: + break; + } +} + +THUMB_FUNC u8 FUN_0201AB08(struct Window *window) +{ + return window->unk04; +} + +THUMB_FUNC u8 FUN_0201AB0C(struct Window *window) +{ + return window->unk07; +} +THUMB_FUNC u8 FUN_0201AB10(struct Window *window) +{ + return window->unk08; +} +THUMB_FUNC u8 FUN_0201AB14(struct Window *window) +{ + return window->unk05; +} +THUMB_FUNC u8 FUN_0201AB18(struct Window *window) +{ + return window->unk06; +} +THUMB_FUNC void FUN_0201AB1C(struct Window *window, u8 param1) +{ + window->unk05 = param1; +} +THUMB_FUNC void FUN_0201AB20(struct Window *window, u8 param1) +{ + window->unk06 = param1; +} +THUMB_FUNC void FUN_0201AB24(struct Window *window, u8 param1) +{ + window->unk09 = param1; +} + +extern void FUN_020B0030(u32 param0, u32 param1); + +THUMB_FUNC u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path) +{ + void *ptr = FUN_020161A4(heap_id, path); + window->unk00 = ptr; + u32 st0; + FUN_020B0030(ptr, &st0); + + return st0; +} + +extern void FUN_020B0138(u32 param0, u32 param1); + +THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path) +{ + void *ptr = FUN_020161A4(heap_id, path); + window->unk00 = ptr; + u32 st0; + FUN_020B0138(ptr, &st0); + + return st0; +} + +extern void FUN_0201AC78(struct UnkStruct2 *param0); +extern void FUN_0201AB78(struct UnkStruct2 *param0); + +THUMB_FUNC void FUN_0201AB60(struct UnkStruct2 *param0) +{ + FUN_0201AC78(param0); + FUN_0201AB78(param0); + + param0->unk04 = 0; + param0->unk06 = 0; +} + +THUMB_FUNC void FUN_0201AB78(struct UnkStruct2 *param0) +{ + if ((param0->unk06 & 1) != 0) + { + FUN_02017D68(0, param0->unk08[0].unk08, param0->unk08[0].unk10 * 2, param0->unk08[0].unk0c); + } + + if ((param0->unk06 & 2) != 0) + { + FUN_02017D68(1, param0->unk08[1].unk08, param0->unk08[1].unk10 * 2, param0->unk08[1].unk0c); + } + + if ((param0->unk06 & 4) != 0) + { + FUN_02017D68(2, param0->unk08[2].unk08, param0->unk08[2].unk10 * 2, param0->unk08[2].unk0c); + } + + if ((param0->unk06 & 8) != 0) + { + FUN_02017D68(3, param0->unk08[3].unk08, param0->unk08[3].unk10 * 2, param0->unk08[3].unk0c); + } + + if ((param0->unk06 & 0x10) != 0) + { + FUN_02017D68(4, param0->unk08[4].unk08, param0->unk08[4].unk10 * 2, param0->unk08[4].unk0c); + } + + if ((param0->unk06 & 0x20) != 0) + { + FUN_02017D68(5, param0->unk08[5].unk08, param0->unk08[5].unk10 * 2, param0->unk08[5].unk0c); + } + + if ((param0->unk06 & 0x40) != 0) + { + FUN_02017D68(6, param0->unk08[6].unk08, param0->unk08[6].unk10 * 2, param0->unk08[6].unk0c); + } + + if ((param0->unk06 & 0x80) != 0) + { + FUN_02017D68(7, param0->unk08[7].unk08, param0->unk08[7].unk10 * 2, param0->unk08[7].unk0c); + } +} + +THUMB_FUNC void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1) +{ + param0->unk06 |= 1 << param1; +} + +THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) +{ + if ((param0->unk04 & 1) != 0) + { + reg_G2_BG0OFS = + (param0->unk08[0].unk14 & 0x1ff) | ((param0->unk08[0].unk18 << 0x10) & 0x1ff0000); + } + + if ((param0->unk04 & 2) != 0) + { + reg_G2_BG1OFS = + (param0->unk08[1].unk14 & 0x1ff) | ((param0->unk08[1].unk18 << 0x10) & 0x1ff0000); + } + + if ((param0->unk04 & 4) != 0) + { + if (param0->unk08[2].unk1c == 0) + { + reg_G2_BG2OFS = + (param0->unk08[2].unk14 & 0x1ff) | ((param0->unk08[2].unk18 << 0x10) & 0x1ff0000); + } + else + { + struct Mtx22 st38; + MTX22_2DAffine( + &st38, param0->unk08[2].unk20, param0->unk08[2].unk24, param0->unk08[2].unk28, 2); + G2x_SetBGyAffine_(0x04000020, + &st38, + param0->unk08[2].unk2c, + param0->unk08[2].unk30, + param0->unk08[2].unk14, + param0->unk08[2].unk18); + } + } + + if ((param0->unk04 & 8) != 0) + { + if (param0->unk08[3].unk1c == 0) + { + reg_G2_BG3OFS = + (param0->unk08[3].unk14 & 0x1ff) | ((param0->unk08[3].unk18 << 0x10) & 0x1ff0000); + } + else + { + struct Mtx22 st28; + MTX22_2DAffine( + &st28, param0->unk08[3].unk20, param0->unk08[3].unk24, param0->unk08[3].unk28, 2); + G2x_SetBGyAffine_(0x04000030, + &st28, + param0->unk08[3].unk2c, + param0->unk08[3].unk30, + param0->unk08[3].unk14, + param0->unk08[3].unk18); + } + } + + if ((param0->unk04 & 0x10) != 0) + { + reg_G2S_DB_BG0OFS = + (param0->unk08[4].unk14 & 0x1ff) | ((param0->unk08[4].unk18 << 0x10) & 0x1ff0000); + } + + if ((param0->unk04 & 0x20) != 0) + { + reg_G2S_DB_BG1OFS = + (param0->unk08[5].unk14 & 0x1ff) | ((param0->unk08[5].unk18 << 0x10) & 0x1ff0000); + } + + if ((param0->unk04 & 0x40) != 0) + { + if (param0->unk08[6].unk1c == 0) + { + reg_G2S_DB_BG2OFS = + (param0->unk08[6].unk14 & 0x1ff) | ((param0->unk08[6].unk18 << 0x10) & 0x1ff0000); + } + else + { + struct Mtx22 st18; + MTX22_2DAffine( + &st18, param0->unk08[6].unk20, param0->unk08[6].unk24, param0->unk08[6].unk28, 2); + G2x_SetBGyAffine_(0x04001020, + &st18, + param0->unk08[6].unk2c, + param0->unk08[6].unk30, + param0->unk08[6].unk14, + param0->unk08[6].unk18); + } + } + + if ((param0->unk04 & 0x80) != 0) + { + if (param0->unk08[7].unk1c == 0) + { + reg_G2S_DB_BG3OFS = + (param0->unk08[7].unk14 & 0x1ff) | ((param0->unk08[7].unk18 << 0x10) & 0x1ff0000); + } + else + { + struct Mtx22 st08; + MTX22_2DAffine( + &st08, param0->unk08[7].unk20, param0->unk08[7].unk24, param0->unk08[7].unk28, 2); + G2x_SetBGyAffine_(0x04001030, + &st08, + param0->unk08[7].unk2c, + param0->unk08[7].unk30, + param0->unk08[7].unk14, + param0->unk08[7].unk18); + } + } +} + +THUMB_FUNC void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +{ + FUN_02017B8C(¶m0->unk08[param1], param2, param3); + param0->unk04 |= 1 << param1; +} + +extern void FUN_0201AF2C(struct InnerStruct *param0, u32 param2, u32 val); + +THUMB_FUNC void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +{ + FUN_0201AF2C(¶m0->unk08[param1], param2, param3); + param0->unk04 |= 1 << param1; +} + +THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val) +{ + switch (param1) + { + case 0: + param0->unk20 = val; + break; + case 1: + param0->unk20 += val; + break; + case 2: + param0->unk20 -= val; + break; + } +} + +extern void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val); + +THUMB_FUNC void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +{ + FUN_0201AF74(¶m0->unk08[param1], param2, param3); + param0->unk04 |= 1 << param1; +} + +THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val) +{ + switch (param1 - 9) + { + case 0: + param0->unk2c = val; + break; + case 1: + param0->unk2c += val; + break; + case 2: + param0->unk2c -= val; + break; + case 3: + param0->unk30 = val; + break; + case 4: + param0->unk30 += val; + break; + case 5: + param0->unk30 -= val; + break; + } +} + +extern void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2); + +THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) +{ + void *st18; + u16 r6; + u8 st14; + u8 st10; + u8 r5; + u8 i; + + if (param0->unk08[param1].unk08 == NULL) + { + return 0; + } + + r6 = FUN_02017FFC(param2 >> 3, param3 >> 3, param0->unk08[param1].unk1d); + st18 = FUN_020187B0(param1); + + st14 = param2 & 7; + st10 = param3 & 7; + + if (param0->unk08[param1].unk1e == 0) + { + u16 *stc = param0->unk08[param1].unk08; + u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); + + st18 += ((stc[r6] & 0x3ff) << 5); + for (i = 0; i < 0x20; i++) + { + ptr[(i << 1)] = ((u8 *)st18)[i] & 0xf; + ptr[(i << 1) + 1] = ((u8 *)st18)[i] >> 4; + } + + FUN_0201B118(param0, (stc[r6] >> 0xa) & 3, ptr); + + r5 = ptr[st14 + (st10 << 3)]; + FreeToHeap(ptr); + + if ((param4[0] & (1 << r5)) != 0) + { + return 1; + } + } + else + { + if (param0->unk08[param1].unk1c != 1) + { + u16 *r4 = param0->unk08[param1].unk08; + u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); + + memcpy(ptr, st18 + ((r4[r6] & 0x3ff) << 6), 0x40); + + FUN_0201B118(param0, (r4[r6] >> 0xa) & 3, ptr); + + r5 = ptr[st14 + (st10 << 3)]; + FreeToHeap(ptr); + } + else + { + r5 = ((u8 *)st18)[(((u8 *)param0->unk08[param1].unk08)[r6] << 6) + st14 + (st10 << 3)]; + } + + while (TRUE) + { + if (param4[0] == 0xffff) + { + break; + } + if (r5 == (u8)(param4[0])) + { + return 1; + } + } + } + return 0; +} + +THUMB_FUNC void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2) +{ + u8 i, j; + if (param1 != 0) + { + u8 *ptr = AllocFromHeapAtEnd(param0->unk00, 0x40); + + if ((param1 & 1) != 0) + { + for (i = 0; i < 8; i++) + { + for (j = 0; j < 8; j++) + { + ptr[i * 8 + j] = param2[i * 8 + (7 - j)]; + } + } + + memcpy(param2, ptr, 0x40); + } + + if ((param1 & 2) != 0) + { + for (i = 0; i < 8; i++) + { + u8 *r3 = &ptr[i * 8]; + u8 *r2 = ¶m2[(7 - i) * 8]; + for (u32 j = 8; j > 0; j--) + { + *r3++ = *r2++; + } + } + + memcpy(param2, ptr, 0x40); + } + + FreeToHeap(ptr); + } } diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index 0ecf4f563..eaf764ad6 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -31,7 +31,8 @@ struct UnkStruct1 { struct UnkStruct2 { u32 unk00; - u32 unk04; + u16 unk04; + u16 unk06; struct InnerStruct { From c1a0ef9536ef8bcc2d7b7047f6154f32a6fea542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 09:57:50 +0200 Subject: [PATCH 064/134] headers cleanup --- arm9/src/unk_02016B94.c | 157 ++--------------------- include/unk_02016B94.h | 274 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 265 insertions(+), 166 deletions(-) diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index 64344c4c2..1b880747f 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -1,29 +1,11 @@ #include "global.h" +#include "unk_02016B94.h" #include "GX_layers.h" #include "gx.h" #include "heap.h" -#include "unk_02016B94.h" -extern void FUN_020192D4(); -extern void FUN_02019358(); - -extern void FUN_020195D0(); -extern void FUN_0201960C(); - -extern void FUN_020195A8(); -extern void FUN_020195E4(); - -extern void FUN_020194C8(); -extern void FUN_0201951C(); - -extern void FUN_0201949C(); -extern void FUN_020194E0(); - -extern void FUN_020193B4(); -extern void FUN_02019444(); - -extern u8 FUN_020177DC(u8 param0, u32 param1); -extern void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val); +extern void FUN_020B0030(u32 param0, u32 param1); +extern void FUN_020B0138(u32 param0, u32 param1); const u8 UNK_020EDB30[8] = { 0x10, @@ -36,37 +18,37 @@ const u8 UNK_020EDB30[8] = { 0x00, }; -void (*const UNK_020EDB5C[])() = { +void (*const UNK_020EDB5C[])(struct Window *) = { FUN_020194C8, FUN_0201951C, FUN_020194C8, }; -void (*const UNK_020EDB50[])() = { +void (*const UNK_020EDB50[])(struct Window *) = { FUN_020195A8, FUN_020195E4, FUN_020195A8, }; -void (*const UNK_020EDB44[])() = { +void (*const UNK_020EDB44[])(struct Window *) = { FUN_020195D0, FUN_0201960C, FUN_020195D0, }; -void (*const UNK_020EDB38[])() = { +void (*const UNK_020EDB38[])(struct Window *) = { FUN_020192D4, FUN_02019358, FUN_020192D4, }; -void (*const UNK_020EDB68[])() = { +void (*const UNK_020EDB68[])(struct Window *) = { FUN_0201949C, FUN_020194E0, FUN_0201949C, }; -void (*const UNK_020EDB74[])() = { +void (*const UNK_020EDB74[])(struct Window *) = { FUN_020193B4, FUN_02019444, FUN_020193B4, @@ -2416,9 +2398,6 @@ THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle) } } -extern void FUN_02017B8C(struct InnerStruct *param0, u32 param2, u32 val); -extern void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1); - THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val) { FUN_02017B8C(¶m0->unk08[param1], param2, val); @@ -2505,9 +2484,6 @@ THUMB_FUNC u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) return param0->unk08[param1].unk18; } -extern void FUN_02017BD0( - struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); - THUMB_FUNC void FUN_02017B60(struct UnkStruct2 *param0, u32 param1, u32 param2, @@ -2609,9 +2585,6 @@ THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2) MIi_CpuCopy16(param0, param1, param2); } -extern void FUN_02017CE8( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); - THUMB_FUNC void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1) { FUN_02017CE8(param0, @@ -2621,8 +2594,6 @@ THUMB_FUNC void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1) param0->unk08[param1].unk10); } -extern void FUN_02017D68(u32 param0, void *param1, u32 param2, u32 param3); - THUMB_FUNC void FUN_02017CE8( struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { @@ -2686,9 +2657,6 @@ THUMB_FUNC void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2 FUN_02017C98(param2, param0->unk08[param1].unk08, param3); } -extern void FUN_02017E40( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); - THUMB_FUNC void FUN_02017E14( struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) { @@ -2700,8 +2668,6 @@ THUMB_FUNC void FUN_02017E14( FUN_02017E40(param0, param1, param2, param3, param4 << 6); } -extern void FUN_02017E84(u32 param0, void *param1, u32 param2, u32 param3); - THUMB_FUNC void FUN_02017E40( struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { @@ -2884,47 +2850,12 @@ THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) return r3; } -extern void FUN_02018170(struct UnkStruct2 *param0, - u32 param1, - u8 param2, - u8 param3, - u8 param4, - u8 param5, - u32 *param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); - THUMB_FUNC void FUN_02018148( struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6) { FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); } -extern void FUN_02018268(struct InnerStruct *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u16 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); -extern void FUN_020183DC(struct InnerStruct *param0, - u8 param1, - u8 param2, - u8 param3, - u8 param4, - u8 *param5, - u8 param6, - u8 param7, - u8 param8, - u8 param9, - u8 param10); - THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, @@ -3195,11 +3126,6 @@ THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, } } -extern void FUN_02018590( - struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); -extern void FUN_02018640( - struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); - THUMB_FUNC void FUN_02018540(struct UnkStruct2 *param0, u32 param1, u16 param2, @@ -3353,8 +3279,6 @@ THUMB_FUNC void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2) } } -extern void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1); - THUMB_FUNC void FUN_0201878C(struct UnkStruct2 *param0, u32 param1, u16 param2) { if (param0->unk08[param1].unk08 != NULL) @@ -3776,13 +3700,6 @@ _02018A38: } #endif -struct UnkStruct3 -{ - void *unk00; - u16 unk04; - u16 unk06; -}; - #ifdef NONMATCHING THUMB_FUNC void FUN_02018A60(struct UnkStruct3 *param0, struct UnkStruct3 *param1, @@ -4551,22 +4468,6 @@ THUMB_FUNC void FUN_02018F4C( } } -struct Window -{ - struct UnkStruct2 *unk00; - u8 unk04; - u8 unk05; - u8 unk06; - u8 unk07; - u8 unk08; - u8 unk09; - u16 unk0a : 15; - u16 unk0b : 1; - void *unk0c; -}; - -extern void FUN_0201901C(struct Window *ptr); - THUMB_FUNC void *FUN_02018FF4(u32 heap_id, s32 size) { struct Window *ptr = AllocFromHeap(heap_id, size << 4); @@ -4677,17 +4578,6 @@ THUMB_FUNC void FUN_020190EC( } } -struct UnkStruct4 -{ - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - u16 unk6; -}; - THUMB_FUNC void FUN_02019150( struct UnkStruct2 *param0, struct Window *param1, struct UnkStruct4 *param2) { @@ -4888,8 +4778,6 @@ THUMB_FUNC void FUN_02019444(struct Window *param0) } } -extern void FUN_02019548(struct Window *window); - THUMB_FUNC void FUN_0201949C(struct Window *window) { FUN_020192D4(window); @@ -4998,17 +4886,6 @@ THUMB_FUNC void FUN_02019620(struct Window *window, u8 param1) window->unk00->unk08[window->unk04].unk1f * window->unk07 * window->unk08); } -extern void FUN_02019684(struct Window *window, - void *param1, - u16 param2, - u16 param3, - u16 param4, - u16 param5, - u16 param6, - u16 param7, - u16 param8, - u16 param9, - u16 param10); THUMB_FUNC void FUN_02019658(struct Window *window, void *param1, u16 param2, @@ -7631,9 +7508,6 @@ FUN_0201A8BC: // 0x0201A8BC } #endif -extern void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3); -extern void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3); - THUMB_FUNC void FUN_0201A8C8(struct Window *window, u32 param1, u8 param2, u8 param3) { if (window->unk00->unk08[window->unk04].unk1e == 0) @@ -7839,8 +7713,6 @@ THUMB_FUNC void FUN_0201AB24(struct Window *window, u8 param1) window->unk09 = param1; } -extern void FUN_020B0030(u32 param0, u32 param1); - THUMB_FUNC u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path) { void *ptr = FUN_020161A4(heap_id, path); @@ -7851,8 +7723,6 @@ THUMB_FUNC u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path return st0; } -extern void FUN_020B0138(u32 param0, u32 param1); - THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path) { void *ptr = FUN_020161A4(heap_id, path); @@ -7863,9 +7733,6 @@ THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path return st0; } -extern void FUN_0201AC78(struct UnkStruct2 *param0); -extern void FUN_0201AB78(struct UnkStruct2 *param0); - THUMB_FUNC void FUN_0201AB60(struct UnkStruct2 *param0) { FUN_0201AC78(param0); @@ -8040,8 +7907,6 @@ THUMB_FUNC void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, param0->unk04 |= 1 << param1; } -extern void FUN_0201AF2C(struct InnerStruct *param0, u32 param2, u32 val); - THUMB_FUNC void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) { FUN_0201AF2C(¶m0->unk08[param1], param2, param3); @@ -8064,8 +7929,6 @@ THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val) } } -extern void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val); - THUMB_FUNC void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) { FUN_0201AF74(¶m0->unk08[param1], param2, param3); @@ -8097,8 +7960,6 @@ THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val) } } -extern void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2); - THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) { void *st18; diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index eaf764ad6..0183e96c1 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -1,16 +1,16 @@ #ifndef POKEDIAMOND_UNK_02016B94_H #define POKEDIAMOND_UNK_02016B94_H - #include "global.h" #include "GX_layers.h" +#include "MI_uncompress.h" +#include "OS_cache.h" #include "gx.h" #include "heap.h" #include "math_util.h" -#include "MI_uncompress.h" -#include "OS_cache.h" -struct UnkStruct1 { +struct UnkStruct1 +{ u32 unk00; u32 unk04; u32 unk08; @@ -23,19 +23,18 @@ struct UnkStruct1 { u8 unk14; u8 unk15; u8 unk16; - u8 unk17; //probably paddding + u8 unk17; // probably paddding u32 unk18; }; - - -struct UnkStruct2 { +struct UnkStruct2 +{ u32 unk00; u16 unk04; u16 unk06; - - struct InnerStruct { + struct InnerStruct + { void *unk08; u32 unk0c; u32 unk10; @@ -48,7 +47,7 @@ struct UnkStruct2 { u8 unk1e; u8 unk1f; u16 unk20; - u16 unk22; //probably padding + u16 unk22; // probably padding u32 unk24; u32 unk28; u32 unk2c; @@ -56,14 +55,253 @@ struct UnkStruct2 { } unk08[8]; }; +struct UnkStruct3 +{ + void *unk00; + u16 unk04; + u16 unk06; +}; -THUMB_FUNC void *FUN_02016B94(u32 heap_id); -THUMB_FUNC u32 FUN_02016BB8(u32 *param0); -THUMB_FUNC void FUN_02016BBC(u32 *param0); -THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1); -THUMB_FUNC void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3); +struct UnkStruct4 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u16 unk6; +}; +struct Window +{ + struct UnkStruct2 *unk00; + u8 unk04; + u8 unk05; + u8 unk06; + u8 unk07; + u8 unk08; + u8 unk09; + u16 unk0a : 15; + u16 unk0b : 1; + void *unk0c; +}; +void *FUN_02016B94(u32 heap_id); +u32 FUN_02016BB8(u32 *param0); +void FUN_02016BBC(u32 *param0); +void FUN_02016BF4(u32 *param0, u32 param1); +void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3); +void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3); +u8 FUN_020177DC(u8 param0, u32 param1); +void FUN_02017850(u32 param0, u8 *param1, u8 *param2); +void FUN_020178A0(struct UnkStruct2 *param0, u32 param1); +void FUN_020178BC(u32 param0, u32 param1); +void FUN_0201797C(u32 param0, GX_LayerToggle toggle); +void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val); +u32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1); +u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1); +void FUN_02017B60(struct UnkStruct2 *param0, + u32 param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6); +void FUN_02017B8C(struct InnerStruct *param0, u32 param1, u32 val); +void FUN_02017BD0( + struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); +void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1); +void FUN_02017C98(const void *param0, void *param1, u32 param2); +void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1); +void FUN_02017CE8(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); +void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2, u32 param3); +void FUN_02017E14(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); +void FUN_02017E40(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); +void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); +void FUN_02017F48(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); +void FUN_02017FE4(u32 param0, u32 param1); +u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); +u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3); +void FUN_02018148( + struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018170(struct UnkStruct2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u32 *param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); +void FUN_020181EC(struct UnkStruct2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u32 *param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); +void FUN_02018268(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u16 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); +void FUN_020183DC(struct InnerStruct *param0, + u8 param1, + u8 param2, + u8 param3, + u8 param4, + u8 *param5, + u8 param6, + u8 param7, + u8 param8, + u8 param9, + u8 param10); +void FUN_02018540(struct UnkStruct2 *param0, + u32 param1, + u16 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6, + u8 param7); +void FUN_02018590( + struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018640( + struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); +void FUN_020186B4( + struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018744(struct UnkStruct2 *param0, u32 param1); +void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2); +void FUN_0201878C(struct UnkStruct2 *param0, u32 param1, u16 param2); +void *FUN_020187B0(u32 param0); +void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3); +u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]; +void *FUN_0201886C(struct UnkStruct2 *param0, u32 param1); +u16 FUN_02018878(struct UnkStruct2 *param0, u32 param1); +u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1); +void FUN_02018A60(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8); +void FUN_02018CA0(struct UnkStruct3 *param0, + struct UnkStruct3 *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8); +void FUN_02018E88( + struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); +void FUN_02018F4C( + struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); +void *FUN_02018FF4(u32 heap_id, s32 size); +void FUN_0201901C(struct Window *param0); +BOOL FUN_02019048(struct Window *param0); +void FUN_02019064(struct UnkStruct2 *param0, + struct Window *param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6, + u8 param7, + u16 param8); +void FUN_020190EC( + struct UnkStruct2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5); +void FUN_02019150(struct UnkStruct2 *param0, struct Window *param1, struct UnkStruct4 *param2); +void FUN_02019178(struct Window *param0); +void FUN_020191A4(struct Window *param0, int param1); +void CopyWindowToVram(struct Window *param0); +void FUN_02019220(struct Window *param0); +void FUN_02019270(struct Window *param0); +void FUN_0201928C(struct Window *param0, u8 param1, u8 param2); +void FUN_020192B8(struct Window *param0); +void FUN_020192D4(struct Window *param0); +void FUN_02019358(struct Window *param0); +void FUN_020193B4(struct Window *param0); +void FUN_02019444(struct Window *param0); +void FUN_0201949C(struct Window *window); +void FUN_020194C8(struct Window *window); +void FUN_020194E0(struct Window *window); +void FUN_0201951C(struct Window *window); +void FUN_02019548(struct Window *window); +void FUN_02019570(struct Window *window); +void FUN_0201958C(struct Window *window); +void FUN_020195A8(struct Window *window); +void FUN_020195D0(struct Window *window); +void FUN_020195E4(struct Window *window); +void FUN_0201960C(struct Window *window); +void FUN_02019620(struct Window *window, u8 param1); +void FUN_02019658(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9); +void FUN_02019684(struct Window *window, + void *param1, + u16 param2, + u16 param3, + u16 param4, + u16 param5, + u16 param6, + u16 param7, + u16 param8, + u16 param9, + u16 param10); +void FUN_020196F4(struct Window *window, u8 param1, u16 param2, u16 param3, u16 param4, u16 param5); +void FUN_0201974C( + struct Window *window, u32 *param1, u32 param2, u32 param3, u16 param4, u16 param5, u32 param6); +void FUN_0201A8C8(struct Window *window, u32 param1, u8 param2, u8 param3); +void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 param3); +void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 param3); +u8 FUN_0201AB08(struct Window *window); +u8 FUN_0201AB0C(struct Window *window); +u8 FUN_0201AB10(struct Window *window); +u8 FUN_0201AB14(struct Window *window); +u8 FUN_0201AB18(struct Window *window); +void FUN_0201AB1C(struct Window *window, u8 param1); +void FUN_0201AB20(struct Window *window, u8 param1); +void FUN_0201AB24(struct Window *window, u8 param1); +u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path); +u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path); +void FUN_0201AB60(struct UnkStruct2 *param0); +void FUN_0201AB78(struct UnkStruct2 *param0); +void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1); +void FUN_0201AC78(struct UnkStruct2 *param0); +void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); +void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); +void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val); +void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); +void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val); +u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); +void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2); - -#endif //POKEDIAMOND_UNK_02016B94_H +#endif // POKEDIAMOND_UNK_02016B94_H From 8af497a617e45668f7c3c0badc1324ce45308183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 11:23:46 +0200 Subject: [PATCH 065/134] global cleanup --- arm9/asm/nonmatchings/FUN_02016C18.s | 652 --------------------------- arm9/global.inc | 38 -- 2 files changed, 690 deletions(-) delete mode 100644 arm9/asm/nonmatchings/FUN_02016C18.s diff --git a/arm9/asm/nonmatchings/FUN_02016C18.s b/arm9/asm/nonmatchings/FUN_02016C18.s deleted file mode 100644 index a18c549e9..000000000 --- a/arm9/asm/nonmatchings/FUN_02016C18.s +++ /dev/null @@ -1,652 +0,0 @@ -.section .text - -glabel FUN_02016C18 - -.extern FUN_020177DC -.extern FUN_020179E0 -.extern GX_EngineAToggleLayers -.extern GX_EngineBToggleLayers -.extern AllocFromHeap -.extern MIi_CpuClear16 - - push {r3-r7, lr} - sub sp, #0x18 - str r1, [sp, #0x4] - str r3, [sp, #0x8] - add r4, r2, #0x0 - str r0, [sp, #0x0] - ldrb r0, [r4, #0x10] - ldr r1, [sp, #0x8] - bl FUN_020177DC - add r5, r0, #0x0 - ldr r0, [sp, #0x4] - cmp r0, #0x7 - bls _02016C36 - b _0201705A -_02016C36: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02016C42: ; jump table (using 16-bit offset) - .short _02016C52 - _02016C42 - 2; case 0 - .short _02016CAA - _02016C42 - 2; case 1 - .short _02016D02 - _02016C42 - 2; case 2 - .short _02016DA4 - _02016C42 - 2; case 3 - .short _02016E46 - _02016C42 - 2; case 4 - .short _02016E9E - _02016C42 - 2; case 5 - .short _02016EF6 - _02016C42 - 2; case 6 - .short _02016F98 - _02016C42 - 2; case 7 -_02016C52: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0xc] - ldr r2, _02016FB4 ; =0x04000008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0xc] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CA0 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CA0: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016CAA: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x10] - ldr r2, _02016FB8 ; =0x0400000A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x10] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016CF8 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016CF8: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016D02: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016D18 - cmp r0, #0x1 - beq _02016D3A - cmp r0, #0x2 - beq _02016D5C -_02016D18: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D3A: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FBC ; =0x0400000C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016D7C -_02016D5C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FBC ; =0x0400000C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016D7C: - ldr r0, _02016FBC ; =0x0400000C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016D9A - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016D9A: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016DA4: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineAToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016DBA - cmp r0, #0x1 - beq _02016DDC - cmp r0, #0x2 - beq _02016DFE -_02016DBA: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DDC: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FC0 ; =0x0400000E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016E1E -_02016DFE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FC0 ; =0x0400000E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016E1E: - ldr r0, _02016FC0 ; =0x0400000E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016E3C - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016E3C: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016E46: - mov r0, #0x1 - add r1, r0, #0x0 - bl GX_EngineBToggleLayers - ldrb r3, [r4, #0x14] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - ldrb r2, [r4, #0x13] - lsl r6, r3, #0xd - lsl r0, r0, #0x7 - lsl r3, r2, #0x2 - str r0, [sp, #0x14] - ldr r2, _02016FC4 ; =0x04001008 - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r1, r0 - ldr r0, [sp, #0x14] - orr r0, r1 - orr r0, r7 - orr r0, r3 - orr r0, r6 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016E94 - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016E94: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016E9E: - mov r0, #0x2 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrb r3, [r4, #0x14] - lsl r0, r0, #0x7 - mov r12, r0 - ldr r2, _02016FC8 ; =0x0400100A - lsl r7, r1, #0x8 - ldrh r1, [r2, #0x0] - mov r0, #0x43 - lsl r3, r3, #0xd - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - mov r1, r12 - orr r0, r1 - orr r0, r7 - orr r0, r6 - orr r0, r3 - strh r0, [r2, #0x0] - ldrh r1, [r2, #0x0] - mov r0, #0x3 - bic r1, r0 - ldrb r0, [r4, #0x15] - orr r0, r1 - strh r0, [r2, #0x0] - ldr r0, [r4, #0x18] - cmp r0, #0x0 - beq _02016EEC - ldrh r1, [r2, #0x0] - mov r0, #0x40 - orr r0, r1 - strh r0, [r2, #0x0] - b _0201705A -_02016EEC: - ldrh r1, [r2, #0x0] - mov r0, #0x40 - bic r1, r0 - strh r1, [r2, #0x0] - b _0201705A -_02016EF6: - mov r0, #0x4 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016F0C - cmp r0, #0x1 - beq _02016F2E - cmp r0, #0x2 - beq _02016F50 -_02016F0C: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F2E: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _02016FCC ; =0x0400100C - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02016F70 -_02016F50: - ldrb r1, [r4, #0x12] - ldr r7, _02016FCC ; =0x0400100C - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02016F70: - ldr r0, _02016FCC ; =0x0400100C - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02016F8E - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02016F8E: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] - b _0201705A -_02016F98: - mov r0, #0x8 - mov r1, #0x1 - bl GX_EngineBToggleLayers - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02016FAE - cmp r0, #0x1 - beq _02016FF2 - cmp r0, #0x2 - beq _02017014 -_02016FAE: - ldrb r1, [r4, #0x12] - ldr r7, _02016FD0 ; =0x0400100E - b _02016FD4 - .balign 4 -_02016FB4: .word 0x04000008 -_02016FB8: .word 0x0400000A -_02016FBC: .word 0x0400000C -_02016FC0: .word 0x0400000E -_02016FC4: .word 0x04001008 -_02016FC8: .word 0x0400100A -_02016FCC: .word 0x0400100C -_02016FD0: .word 0x0400100E -_02016FD4: - ldrb r2, [r4, #0x13] - lsl r3, r1, #0x8 - ldrb r0, [r4, #0x11] - lsl r6, r2, #0x2 - ldrh r1, [r7, #0x0] - lsl r2, r0, #0x7 - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02016FF2: - ldrb r2, [r4, #0x13] - ldrb r1, [r4, #0x12] - ldrb r0, [r4, #0x16] - lsl r3, r2, #0x2 - ldr r7, _020170F0 ; =0x0400100E - lsl r2, r1, #0x8 - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] - b _02017034 -_02017014: - ldrb r1, [r4, #0x12] - ldr r7, _020170F0 ; =0x0400100E - ldrb r0, [r4, #0x16] - lsl r3, r1, #0x8 - ldrb r2, [r4, #0x13] - lsl r6, r0, #0xd - ldrh r1, [r7, #0x0] - mov r0, #0x43 - lsl r2, r2, #0x2 - and r0, r1 - lsl r1, r5, #0xe - orr r0, r1 - orr r0, r2 - orr r0, r3 - orr r0, r6 - strh r0, [r7, #0x0] -_02017034: - ldr r0, _020170F0 ; =0x0400100E - mov r1, #0x3 - ldrh r2, [r0, #0x0] - bic r2, r1 - ldrb r1, [r4, #0x15] - orr r1, r2 - strh r1, [r0, #0x0] - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _02017052 - ldrh r2, [r0, #0x0] - mov r1, #0x40 - orr r1, r2 - strh r1, [r0, #0x0] - b _0201705A -_02017052: - ldrh r2, [r0, #0x0] - mov r1, #0x40 - bic r2, r1 - strh r2, [r0, #0x0] -_0201705A: - ldr r0, [sp, #0x4] - mov r1, #0x2c - add r5, r0, #0x0 - ldr r0, [sp, #0x0] - mul r5, r1 - add r2, r0, r5 - mov r3, #0x0 - mov r0, #0x1 - strh r3, [r2, #0x20] - lsl r0, r0, #0xc - str r0, [r2, #0x24] - str r0, [r2, #0x28] - str r3, [r2, #0x2c] - str r3, [r2, #0x30] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020170A2 - ldr r0, [sp, #0x0] - ldr r6, [sp, #0x0] - ldr r0, [r0, #0x0] - add r6, #0x8 - bl AllocFromHeap - str r0, [r6, r5] - ldr r1, [r6, r5] - ldr r2, [r4, #0x8] - mov r0, #0x0 - bl MIi_CpuClear16 - ldr r0, [sp, #0x0] - ldr r2, [r4, #0x8] - add r1, r0, r5 - str r2, [r1, #0xc] - ldr r0, [r4, #0xc] - str r0, [r1, #0x10] - b _020170A8 -_020170A2: - str r3, [r2, #0x8] - str r3, [r2, #0xc] - str r3, [r2, #0x10] -_020170A8: - ldr r0, [sp, #0x0] - ldrb r1, [r4, #0x10] - add r0, r0, r5 - strb r1, [r0, #0x1d] - ldr r1, [sp, #0x8] - strb r1, [r0, #0x1c] - ldrb r1, [r4, #0x11] - strb r1, [r0, #0x1e] - ldr r1, [sp, #0x8] - cmp r1, #0x0 - bne _020170CA - ldrb r1, [r4, #0x11] - cmp r1, #0x0 - bne _020170CA - mov r1, #0x20 - strb r1, [r0, #0x1f] - b _020170D2 -_020170CA: - ldr r0, [sp, #0x0] - mov r1, #0x40 - add r0, r0, r5 - strb r1, [r0, #0x1f] -_020170D2: - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x0] - mov r2, #0x0 - bl FUN_020179E0 - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldr r3, [r4, #0x4] - mov r2, #0x3 - bl FUN_020179E0 - add sp, #0x18 - pop {r3-r7, pc} - nop -_020170F0: .word 0x0400100E diff --git a/arm9/global.inc b/arm9/global.inc index 12be8f105..05ba01a71 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8518,41 +8518,3 @@ .extern FUN_02025490 .extern FUN_020254A0 .extern FUN_020254B4 -.extern UNK_020EDB30 -.extern UNK_020EDB38 -.extern UNK_020EDB44 -.extern UNK_020EDB50 -.extern UNK_020EDB5C -.extern UNK_020EDB68 -.extern UNK_020EDB74 -.extern UNK_021C59F4 -.extern UNK_02105D58 -.extern FUN_0202F150 -.extern FUN_0202F2F0 -.extern FUN_0202F5A4 -.extern FUN_0202F820 -.extern FUN_0202F8D4 -.extern FUN_0202F910 -.extern FUN_0202F918 -.extern FUN_0202F984 -.extern FUN_0202F9E0 -.extern FUN_0202FA28 -.extern FUN_0202FB58 -.extern FUN_0202FB80 -.extern FUN_0202FE2C -.extern FUN_0202FEEC -.extern FUN_02030074 -.extern FUN_020303F4 -.extern FUN_020304D4 -.extern FUN_020304F0 -.extern FUN_02017850 -.extern FUN_02017B8C -.extern FUN_02017C98 -.extern FUN_02017D68 -.extern FUN_02017E84 -.extern FUN_02017FFC -.extern FUN_02018068 -.extern FUN_02018808 -.extern FUN_02018848 -.extern FUN_02018CA0 -.extern FUN_02018E88 From b934918219cb4871c726b4e9815f0b801210865b Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 20 May 2021 17:08:43 +0100 Subject: [PATCH 066/134] bunch of item icons --- files/itemtool/itemdata/item_icon/.gitignore | 10 ++++++++++ files/itemtool/itemdata/item_icon/narc_0166.NCGR | Bin 560 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0166.png | Bin 0 -> 289 bytes files/itemtool/itemdata/item_icon/narc_0167.NCLR | Bin 552 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0168.NCGR | Bin 560 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0168.png | Bin 0 -> 277 bytes files/itemtool/itemdata/item_icon/narc_0169.NCLR | Bin 552 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0170.NCGR | Bin 560 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0170.png | Bin 0 -> 306 bytes files/itemtool/itemdata/item_icon/narc_0171.NCLR | Bin 552 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0172.NCGR | Bin 560 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0172.png | Bin 0 -> 306 bytes files/itemtool/itemdata/item_icon/narc_0173.NCLR | Bin 552 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0174.NCGR | Bin 560 -> 0 bytes files/itemtool/itemdata/item_icon/narc_0174.png | Bin 0 -> 289 bytes files/itemtool/itemdata/item_icon/narc_0175.NCLR | Bin 552 -> 0 bytes filesystem.mk | 12 +++++++++++- graphics_rules.mk | 15 +++++++++++++++ 18 files changed, 36 insertions(+), 1 deletion(-) delete mode 100644 files/itemtool/itemdata/item_icon/narc_0166.NCGR create mode 100644 files/itemtool/itemdata/item_icon/narc_0166.png delete mode 100644 files/itemtool/itemdata/item_icon/narc_0167.NCLR delete mode 100644 files/itemtool/itemdata/item_icon/narc_0168.NCGR create mode 100644 files/itemtool/itemdata/item_icon/narc_0168.png delete mode 100644 files/itemtool/itemdata/item_icon/narc_0169.NCLR delete mode 100644 files/itemtool/itemdata/item_icon/narc_0170.NCGR create mode 100644 files/itemtool/itemdata/item_icon/narc_0170.png delete mode 100644 files/itemtool/itemdata/item_icon/narc_0171.NCLR delete mode 100644 files/itemtool/itemdata/item_icon/narc_0172.NCGR create mode 100644 files/itemtool/itemdata/item_icon/narc_0172.png delete mode 100644 files/itemtool/itemdata/item_icon/narc_0173.NCLR delete mode 100644 files/itemtool/itemdata/item_icon/narc_0174.NCGR create mode 100644 files/itemtool/itemdata/item_icon/narc_0174.png delete mode 100644 files/itemtool/itemdata/item_icon/narc_0175.NCLR diff --git a/files/itemtool/itemdata/item_icon/.gitignore b/files/itemtool/itemdata/item_icon/.gitignore index 190832e8b..6710dbd16 100644 --- a/files/itemtool/itemdata/item_icon/.gitignore +++ b/files/itemtool/itemdata/item_icon/.gitignore @@ -162,3 +162,13 @@ narc_0162.NCGR narc_0162.NCLR narc_0164.NCGR narc_0164.NCLR +narc_0166.NCGR +narc_0166.NCLR +narc_0168.NCGR +narc_0168.NCLR +narc_0170.NCGR +narc_0170.NCLR +narc_0172.NCGR +narc_0172.NCLR +narc_0174.NCGR +narc_0174.NCLR diff --git a/files/itemtool/itemdata/item_icon/narc_0166.NCGR b/files/itemtool/itemdata/item_icon/narc_0166.NCGR deleted file mode 100644 index ec3586beea7ab417dc98fb5211edee7a6ac0515f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmd5%JE{Uf5UhD#U?zHE^&`{{qTaBvlqf808b{)~mH~#)N&nsTp-UR*bybMk7>p!+1#UV z6>JfSg7+7#nC~@TEP-_ZgEVl diff --git a/files/itemtool/itemdata/item_icon/narc_0166.png b/files/itemtool/itemdata/item_icon/narc_0166.png new file mode 100644 index 0000000000000000000000000000000000000000..de6ca576bdea898cc9d3048cd50eb6873789be64 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*DYJN7#bP^dB|W&@w23; zHD{;%w{)z2cQtFxnyl(5ujZ(;N4I39MLkvlDrGDQ@(X5gcy=QV$eHiy;uxYa@#+L! zJ|;tf*6rpCx&k(}yYMP_1Vn3XIO`EI+mcDNnjuYp1Lr}ZJ_mu2t-;;NcYen`dtZ9@ z{Zg^DS6264sp52GVt#Sg^#`Niw&S%Oq YH)oi0{%O09XFy)`boFyt=akR{0EXghI{*Lx literal 0 HcmV?d00001 diff --git a/files/itemtool/itemdata/item_icon/narc_0167.NCLR b/files/itemtool/itemdata/item_icon/narc_0167.NCLR deleted file mode 100644 index 65e3fb332ca2215932d29b0c3005844a2ec95e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmWIYarXQFkAYExiGe|Yfsr93#3w)k$Yy4M0K>?diTR?$h zGn>2I?PW7rOegcl-I!4aurOGRXOkiG2hl~S)nF}Z^3NC~ODanS|7wX?DU+pouUaOF zs(P-bZ0&Y>`tM^cCE}AmZsX0CL_G)A9$`X8iB*30#v) A_W%F@ diff --git a/files/itemtool/itemdata/item_icon/narc_0168.png b/files/itemtool/itemdata/item_icon/narc_0168.png new file mode 100644 index 0000000000000000000000000000000000000000..351d07128d7bb3fed22bad6415d8f9875dca845d GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*DYJN7#bP^dC1`Z(K+v? z6t9VL{QvE0(%GP>y^e;(j{l#{`M;$&@MP&;pi;(?AirP+hi5m^fSk#mE{-7@6O$7Z zggCgk6pAHTU(XX)`h4{C{k_`mK}vCPao=S;8w5`=LK4csL)?Ai_79_L?VuzwU}5}GTUz;Jz2ppX*7_NU(*IR*9$zbkWe zbX?%ESYc8=|2bP0l+XkKJjGvJ literal 0 HcmV?d00001 diff --git a/files/itemtool/itemdata/item_icon/narc_0169.NCLR b/files/itemtool/itemdata/item_icon/narc_0169.NCLR deleted file mode 100644 index 1082f7645b006df47f9d3e66985fa1af34728464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmWIYarXQFkAYExiGe|Yfsr93#3w)k$Yy4M09_I@dsQX{+y1EItB95B3#UDb%Nd zBEV}xdD80SOYePI`tx7W`rRm{x5nzx-F2TdaVGE1f&3d-x`sdC)h~E$<3L4ilAxUp zdp8gJgAHzzMrTuP*D8+%Ar|_^Dn!y8X&}rgP)08dz*`H>wqRpq2H{M|k49^EM()B0 Y7A8|Bk)_lhY+#6x$mTk!)_RM01+h;`2mk;8 diff --git a/files/itemtool/itemdata/item_icon/narc_0170.png b/files/itemtool/itemdata/item_icon/narc_0170.png new file mode 100644 index 0000000000000000000000000000000000000000..1bfc49f1a1b4158edf4ce3ca87bafa511da5be90 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*DYJN7#bP^d2o;vRoy&g z&6KNGySH4O^6XjE)gZ??j)qx|5CswYvws0uj3q&S!3+-1ZlnP@8$4YcLo_B{onXs% z$bhHywe%5g$E%Uc{okrT@8=s**#yq;te&fu4C$qG9rld#Vnr-k7~u z^6HYN6AuoZa%L+pmOeCxLFQZ=yMAleg5-ArS%UnH^JemdKI;Vst0LeLXbpQYW literal 0 HcmV?d00001 diff --git a/files/itemtool/itemdata/item_icon/narc_0171.NCLR b/files/itemtool/itemdata/item_icon/narc_0171.NCLR deleted file mode 100644 index e15a8a7a686c548ae1764d5bdd106db1871127ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmWIYarXQFkAYExiGe|Yfsr93#3w)k$Yy4M0T7_rKkBb^QF-&Zs+%>Ph+kx01Jb~&E5Qp{zP4(pZ$ol$>9IiJ`$Kzmd&`b zO=H8`B&2tjj%)X^UC+|dG54#6c4dGv{YERBv*Ha~BW$b)B_gO|N0v`yuPLQRQZ`AW z)>uo7rO;~CUY)8zBt;!c=MYy8`s~n&L-y|Mb=Y=K1XyPNOwhkE>Tq}vFS%{Sw^>^M X;zb&22xLElh=IHkPRGR%_~-Qtv0YYP diff --git a/files/itemtool/itemdata/item_icon/narc_0172.png b/files/itemtool/itemdata/item_icon/narc_0172.png new file mode 100644 index 0000000000000000000000000000000000000000..81b648e5bc6bc4d094c4245ce88d30a183797590 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*DYJN7#bP^dC1`G7O!v5 zg8u){YM#=(=IEAZSEHJX9k<*&3sjT&b>}7^#aI&L7tG-B>_!@pv%%BFF+^kH)eDAv zhZH1O6LvbzJoP|z=D(IJ2Uo6N_|E8s*P&y4;*F_di(IgF^6LC*`3V!Y z-~KD6_;lOq%Yk{jcE8vb<*>8z(zk6f2fo_&Y6r}nz13+=*n>NgClr*_H|$|Jey&ls zq;4Xgviogu2A$1M%?{f!N>rq+kau9I(z>9q)ZDI_CK(1L4Njh^>bP0l+XkKeGhyU literal 0 HcmV?d00001 diff --git a/files/itemtool/itemdata/item_icon/narc_0173.NCLR b/files/itemtool/itemdata/item_icon/narc_0173.NCLR deleted file mode 100644 index b3edb23eaab2b1f5f0deb0b53844deeb258df02a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmWIYarXQFkAYExiGe|Yfsr93#3w)k$Yy4M0ca&Vp@&8n`I3Ca=j zf>216F9dbuV9?Ch;O8FO#N-!4ORA@-Q<4CL;U8ZM}Q^i+lqSgE<5M diff --git a/files/itemtool/itemdata/item_icon/narc_0174.png b/files/itemtool/itemdata/item_icon/narc_0174.png new file mode 100644 index 0000000000000000000000000000000000000000..1766cbcdfaaeeffacbf347bfbdc546bc7c40900b GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvg8-ip*DYJN7#bP^d2q00Nz(r* zhG)GDpA{RvdzKV+HOO&}qhYb*oFL2p_Y4(FOI`w%GL{7S1v5B2yO9Ru%=dJ04AGc) zc7h?_Ap;)Q*V0FVRcFccZH-p%UYWGHiYbpF<@Fnb6u&$NNekC-t1SY?hL7IbzpSs{ zy{b;$z)LBLHNZ)a@s6|GQ~t~lPTyTGJ+x14XxOnvv(Z@Nli|X`8JqVcPu$h+s}!yG zrP$bY`mwcHch8$iIWVtYtoCX{24ngn;pq>&*ux$iTH|<{S^o4i>-Rrb`sM%q_q#gk b|I0lLk~?&FHn|Jug1qSI>gTe~DWM4fm27ON literal 0 HcmV?d00001 diff --git a/files/itemtool/itemdata/item_icon/narc_0175.NCLR b/files/itemtool/itemdata/item_icon/narc_0175.NCLR deleted file mode 100644 index 9ab0f314159c547cef1c4cb24b7172d8355f9f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 552 zcmWIYarXQFkAYExiGe|Yfsr93#3w)k$Yy4M0>J_maUhD$&J#(GXwy8E)6pP diff --git a/filesystem.mk b/filesystem.mk index f06a54294..2b74f25fb 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -1742,7 +1742,17 @@ files/itemtool/itemdata/item_icon.narc: \ files/itemtool/itemdata/item_icon/narc_0162.NCGR \ files/itemtool/itemdata/item_icon/narc_0162.NCLR \ files/itemtool/itemdata/item_icon/narc_0164.NCGR \ - files/itemtool/itemdata/item_icon/narc_0164.NCLR + files/itemtool/itemdata/item_icon/narc_0164.NCLR \ + files/itemtool/itemdata/item_icon/narc_0166.NCGR \ + files/itemtool/itemdata/item_icon/narc_0166.NCLR \ + files/itemtool/itemdata/item_icon/narc_0168.NCGR \ + files/itemtool/itemdata/item_icon/narc_0168.NCLR \ + files/itemtool/itemdata/item_icon/narc_0170.NCGR \ + files/itemtool/itemdata/item_icon/narc_0170.NCLR \ + files/itemtool/itemdata/item_icon/narc_0172.NCGR \ + files/itemtool/itemdata/item_icon/narc_0172.NCLR \ + files/itemtool/itemdata/item_icon/narc_0174.NCGR \ + files/itemtool/itemdata/item_icon/narc_0174.NCLR files/application/custom_ball/data/cb_data.narc: \ diff --git a/graphics_rules.mk b/graphics_rules.mk index d20020cdc..691a81f48 100644 --- a/graphics_rules.mk +++ b/graphics_rules.mk @@ -76,6 +76,11 @@ CLOBBER_SIZE_VERSION101_NCGR_FILES := files/graphic/bag_gra/narc_0002.NCGR \ files/itemtool/itemdata/item_icon/narc_0160.NCGR \ files/itemtool/itemdata/item_icon/narc_0162.NCGR \ files/itemtool/itemdata/item_icon/narc_0164.NCGR \ + files/itemtool/itemdata/item_icon/narc_0166.NCGR \ + files/itemtool/itemdata/item_icon/narc_0168.NCGR \ + files/itemtool/itemdata/item_icon/narc_0170.NCGR \ + files/itemtool/itemdata/item_icon/narc_0172.NCGR \ + files/itemtool/itemdata/item_icon/narc_0174.NCGR \ files/poketool/icongra/poke_icon/narc_0007.NCGR \ files/poketool/icongra/poke_icon/narc_0008.NCGR \ files/poketool/icongra/poke_icon/narc_0009.NCGR \ @@ -508,6 +513,11 @@ NCGR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0005.NCGR \ files/itemtool/itemdata/item_icon/narc_0160.NCGR \ files/itemtool/itemdata/item_icon/narc_0162.NCGR \ files/itemtool/itemdata/item_icon/narc_0164.NCGR \ + files/itemtool/itemdata/item_icon/narc_0166.NCGR \ + files/itemtool/itemdata/item_icon/narc_0168.NCGR \ + files/itemtool/itemdata/item_icon/narc_0170.NCGR \ + files/itemtool/itemdata/item_icon/narc_0172.NCGR \ + files/itemtool/itemdata/item_icon/narc_0174.NCGR \ files/poketool/icongra/poke_icon/narc_0007.NCGR \ files/poketool/icongra/poke_icon/narc_0008.NCGR \ files/poketool/icongra/poke_icon/narc_0009.NCGR \ @@ -792,6 +802,11 @@ NCLR_CLEAN_LIST := files/application/wifi_earth/wifi_earth/narc_0006.NCLR \ files/itemtool/itemdata/item_icon/narc_0160.NCLR \ files/itemtool/itemdata/item_icon/narc_0162.NCLR \ files/itemtool/itemdata/item_icon/narc_0164.NCLR \ + files/itemtool/itemdata/item_icon/narc_0166.NCLR \ + files/itemtool/itemdata/item_icon/narc_0168.NCLR \ + files/itemtool/itemdata/item_icon/narc_0170.NCLR \ + files/itemtool/itemdata/item_icon/narc_0172.NCLR \ + files/itemtool/itemdata/item_icon/narc_0174.NCLR \ files/poketool/icongra/poke_icon/narc_0000.NCLR \ files/poketool/pokegra/pokegra/narc_0010.NCLR \ files/poketool/pokegra/pokegra/narc_0011.NCLR \ From 056db847ca93551cbcadcd79a264c360ba86519d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 18:32:19 +0200 Subject: [PATCH 067/134] fix compiler warnings --- arm9/src/unk_02016B94.c | 244 ++++++++++++++++++++-------------------- include/unk_02016B94.h | 65 ++++++----- 2 files changed, 161 insertions(+), 148 deletions(-) diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index 1b880747f..e5403f127 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -4,8 +4,8 @@ #include "gx.h" #include "heap.h" -extern void FUN_020B0030(u32 param0, u32 param1); -extern void FUN_020B0138(u32 param0, u32 param1); +extern void FUN_020B0030(void *param0, u32 *param1); +extern void FUN_020B0138(void *param0, u32 *param1); const u8 UNK_020EDB30[8] = { 0x10, @@ -54,13 +54,13 @@ void (*const UNK_020EDB74[])(struct Window *) = { FUN_020193B4, }; -THUMB_FUNC void *FUN_02016B94(u32 heap_id) +THUMB_FUNC struct UnkStruct2 *FUN_02016B94(u32 heap_id) { - void *ptr = AllocFromHeap(heap_id, 0x5a << 2); - memset(ptr, 0, 0x5a << 2); - *(u32 *)ptr = heap_id; - *(u16 *)(ptr + 4) = 0; - *(u16 *)(ptr + 6) = 0; + struct UnkStruct2 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct2)); + memset(ptr, 0, sizeof(struct UnkStruct2)); + ptr->unk00 = heap_id; + ptr->unk04 = 0; + ptr->unk06 = 0; return ptr; } @@ -70,10 +70,10 @@ THUMB_FUNC u32 FUN_02016BB8(u32 *param0) return *param0; } -THUMB_FUNC void FUN_02016BBC(u32 *param0) +THUMB_FUNC void FUN_02016BBC(const struct GraphicsModes *modes) { - GX_SetGraphicsMode(param0[0], param0[1], param0[3]); - GXS_SetGraphicsMode(param0[2]); + GX_SetGraphicsMode(modes->mode1, modes->mode2, modes->mode4); + GXS_SetGraphicsMode(modes->mode3); reg_GX_DISPCNT &= 0xC7FFFFFF; reg_GX_DISPCNT &= 0xF8FFFFFF; @@ -2336,33 +2336,33 @@ THUMB_FUNC void FUN_020178A0(struct UnkStruct2 *param0, u32 param1) } } -THUMB_FUNC void FUN_020178BC(u32 param0, u32 param1) +THUMB_FUNC void FUN_020178BC(u32 param0, u16 param1) { switch (param0) { case 0: - reg_G2_BG0CNT = reg_G2_BG0CNT & ~3 | param1; + reg_G2_BG0CNT = (u16)(reg_G2_BG0CNT & ~3 | param1); break; case 1: - reg_G2_BG1CNT = reg_G2_BG1CNT & ~3 | param1; + reg_G2_BG1CNT = (u16)(reg_G2_BG1CNT & ~3 | param1); break; case 2: - reg_G2_BG2CNT = reg_G2_BG2CNT & ~3 | param1; + reg_G2_BG2CNT = (u16)(reg_G2_BG2CNT & ~3 | param1); break; case 3: - reg_G2_BG3CNT = reg_G2_BG3CNT & ~3 | param1; + reg_G2_BG3CNT = (u16)(reg_G2_BG3CNT & ~3 | param1); break; case 4: - reg_G2S_DB_BG0CNT = reg_G2S_DB_BG0CNT & ~3 | param1; + reg_G2S_DB_BG0CNT = (u16)(reg_G2S_DB_BG0CNT & ~3 | param1); break; case 5: - reg_G2S_DB_BG1CNT = reg_G2S_DB_BG1CNT & ~3 | param1; + reg_G2S_DB_BG1CNT = (u16)(reg_G2S_DB_BG1CNT & ~3 | param1); break; case 6: - reg_G2S_DB_BG2CNT = reg_G2S_DB_BG2CNT & ~3 | param1; + reg_G2S_DB_BG2CNT = (u16)(reg_G2S_DB_BG2CNT & ~3 | param1); break; case 7: - reg_G2S_DB_BG3CNT = reg_G2S_DB_BG3CNT & ~3 | param1; + reg_G2S_DB_BG3CNT = (u16)(reg_G2S_DB_BG3CNT & ~3 | param1); break; } } @@ -2398,12 +2398,12 @@ THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle) } } -THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val) +THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 val) { FUN_02017B8C(¶m0->unk08[param1], param2, val); - u32 r1 = param0->unk08[param1].unk14; - u32 r0 = param0->unk08[param1].unk18; + u32 r1 = (u32)param0->unk08[param1].unk14; + u32 r0 = (u32)param0->unk08[param1].unk18; switch (param1) { case 0: @@ -2474,12 +2474,12 @@ THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, } } -THUMB_FUNC u32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC fx32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1) { return param0->unk08[param1].unk14; } -THUMB_FUNC u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC fx32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) { return param0->unk08[param1].unk18; } @@ -2487,16 +2487,16 @@ THUMB_FUNC u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) THUMB_FUNC void FUN_02017B60(struct UnkStruct2 *param0, u32 param1, u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6) + fx32 param3, + struct Mtx22 *param4, + fx32 param5, + fx32 param6) { FUN_02017B8C(¶m0->unk08[param1], param2, param3); FUN_02017BD0(param0, param1, param4, param5, param6); } -THUMB_FUNC void FUN_02017B8C(struct InnerStruct *param0, u32 param1, u32 val) +THUMB_FUNC void FUN_02017B8C(struct InnerStruct *param0, u32 param1, fx32 val) { switch (param1) { @@ -2527,7 +2527,7 @@ THUMB_FUNC void FUN_02017BD0( switch (param1) { case 2: - G2x_SetBGyAffine_(0x04000020, + G2x_SetBGyAffine_(reg_G2_BG2P, param2, param3, param4, @@ -2535,7 +2535,7 @@ THUMB_FUNC void FUN_02017BD0( param0->unk08[param1].unk18); break; case 3: - G2x_SetBGyAffine_(0x04000030, + G2x_SetBGyAffine_(reg_G2_BG3P, param2, param3, param4, @@ -2543,7 +2543,7 @@ THUMB_FUNC void FUN_02017BD0( param0->unk08[param1].unk18); break; case 6: - G2x_SetBGyAffine_(0x04001020, + G2x_SetBGyAffine_(reg_G2S_DB_BG2P, param2, param3, param4, @@ -2551,7 +2551,7 @@ THUMB_FUNC void FUN_02017BD0( param0->unk08[param1].unk18); break; case 7: - G2x_SetBGyAffine_(0x04001030, + G2x_SetBGyAffine_(reg_G2S_DB_BG3P, param2, param3, param4, @@ -2658,7 +2658,7 @@ THUMB_FUNC void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2 } THUMB_FUNC void FUN_02017E14( - struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) + struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { if (param0->unk08[param1].unk1e == 0) { @@ -2729,7 +2729,7 @@ THUMB_FUNC void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id) } THUMB_FUNC void FUN_02017F48( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) + struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) { void *st4; u32 st0 = param3 * param0->unk08[param1].unk1f; @@ -2774,27 +2774,29 @@ THUMB_FUNC u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2) switch (param2) { case 0: - return param0 + (param1 << 4); + return (u16)(param0 + (param1 << 4)); case 1: case 2: - return param0 + (param1 << 5); + return (u16)(param0 + (param1 << 5)); case 3: - return (param0 & 0x1f) + ((param1 + (param0 & ~0x1f)) << 5); + return (u16)((param0 & 0x1f) + ((param1 + (param0 & ~0x1f)) << 5)); case 4: - u16 res = ((u16)((param0 >> 5) + (param1 >> 5) * 2)) << 10; + u16 res = (u16)(((u16)((param0 >> 5) + (param1 >> 5) * 2)) << 10); res += (param0 & 0x1f) + ((param1 & 0x1f) << 5); return res; case 5: return 0; } + + return param0; } THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) { u8 r2 = 0; u16 r3 = 0; - s16 r4 = param2 - 32; - s16 r5 = param3 - 32; + s16 r4 = (s16)(param2 - 32); + s16 r5 = (s16)(param3 - 32); if (((u32)param0 >> 5) != 0) { @@ -2851,7 +2853,7 @@ THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) } THUMB_FUNC void FUN_02018148( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6) + struct UnkStruct2 *param0, u32 param1, void *param2, u8 param3, u8 param4, u8 param5, u8 param6) { FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); } @@ -2862,7 +2864,7 @@ THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, u8 param3, u8 param4, u8 param5, - u32 *param6, + void *param6, u8 param7, u8 param8, u8 param9, @@ -2875,7 +2877,7 @@ THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, param3, param4, param5, - param6, + (u16 *)param6, param7, param8, param9, @@ -2889,7 +2891,7 @@ THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, param3, param4, param5, - param6, + (u8 *)param6, param7, param8, param9, @@ -2904,7 +2906,7 @@ THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, u8 param3, u8 param4, u8 param5, - u32 *param6, + void *param6, u8 param7, u8 param8, u8 param9, @@ -2917,7 +2919,7 @@ THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, param3, param4, param5, - param6, + (u16 *)param6, param7, param8, param9, @@ -2931,7 +2933,7 @@ THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, param3, param4, param5, - param6, + (u8 *)param6, param7, param8, param9, @@ -2993,7 +2995,7 @@ THUMB_FUNC void FUN_02018268(struct InnerStruct *param0, break; } - ((u16 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = param5[param6 + param8 * (param7 + i) + j]; } } @@ -3026,8 +3028,8 @@ THUMB_FUNC void FUN_02018268(struct InnerStruct *param0, break; } - ((u16 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = - param5[FUN_02018068(param6 + j, param7 + i, param8, param9)]; + ((u16 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = + param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)]; } } } @@ -3086,7 +3088,7 @@ THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, break; } - ((u8 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = + ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = param5[param6 + param8 * (param7 + i) + j]; } } @@ -3119,8 +3121,8 @@ THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, break; } - ((u8 *)st2c)[FUN_02017FFC(param1 + j, param2 + i, param0->unk1d)] = - param5[FUN_02018068(param6 + j, param7 + i, param8, param9)]; + ((u8 *)st2c)[FUN_02017FFC((u8)(param1 + j), (u8)(param2 + i), param0->unk1d)] = + param5[FUN_02018068((u8)(param6 + j), (u8)(param7 + i), param8, param9)]; } } } @@ -3142,7 +3144,7 @@ THUMB_FUNC void FUN_02018540(struct UnkStruct2 *param0, } else { - FUN_02018640(¶m0->unk08[param1], param2, param3, param4, param5, param6); + FUN_02018640(¶m0->unk08[param1], (u8)param2, param3, param4, param5, param6); } } @@ -3182,11 +3184,11 @@ THUMB_FUNC void FUN_02018590( } else if (param6 == 0x10) { - ((u16 *)r4)[idx] = (((u16 *)r4)[idx] & 0xF000) + param1; + ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xF000) + param1); } else { - ((u16 *)r4)[idx] = (param6 << 0xc) + param1; + ((u16 *)r4)[idx] = (u16)((param6 << 0xc) + param1); } } } @@ -3255,7 +3257,7 @@ THUMB_FUNC void FUN_020186B4( } u16 idx = FUN_02017FFC(j, i, param0->unk08[param1].unk1d); - ((u16 *)r4)[idx] = (((u16 *)r4)[idx] & 0xfff) | (param6 << 0xc); + ((u16 *)r4)[idx] = (u16)((((u16 *)r4)[idx] & 0xfff) | (param6 << 0xc)); } } } @@ -3315,16 +3317,16 @@ THUMB_FUNC void *FUN_020187B0(u32 param0) THUMB_FUNC void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3) { - param3 = param3 << 4; + param3 <<= 4; for (int i = 0; i < param1; i++) { - param2[i][0] = param0[i] & 0xf; + param2[i][0] = (u8)(param0[i] & 0xf); if (param2[i][0] != 0) { param2[i][0] += param3; } - param2[i][1] = (param0[i] >> 4) & 0xf; + param2[i][1] = (u8)((param0[i] >> 4) & 0xf); if (param2[i][1] != 0) { param2[i][1] += param3; @@ -4470,7 +4472,7 @@ THUMB_FUNC void FUN_02018F4C( THUMB_FUNC void *FUN_02018FF4(u32 heap_id, s32 size) { - struct Window *ptr = AllocFromHeap(heap_id, size << 4); + struct Window *ptr = AllocFromHeap(heap_id, (u32)(size << 4)); for (u16 i = 0; i < size; i++) { @@ -4527,7 +4529,7 @@ THUMB_FUNC void FUN_02019064(struct UnkStruct2 *param0, return; } - void *ptr = AllocFromHeap(param0->unk00, param5 * param6 * param0->unk08[param2].unk1f); + void *ptr = AllocFromHeap(param0->unk00, (u32)(param5 * param6 * param0->unk08[param2].unk1f)); if (ptr == NULL) { @@ -4560,7 +4562,7 @@ THUMB_FUNC void FUN_02019064(struct UnkStruct2 *param0, THUMB_FUNC void FUN_020190EC( struct UnkStruct2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5) { - u32 size = param2 * param3 * 32; + u32 size = (u32)(param2 * param3 * 32); void *ptr = AllocFromHeap(param0->unk00, size); @@ -4679,15 +4681,15 @@ THUMB_FUNC void FUN_020192D4(struct Window *param0) } r3 = param0->unk0a; - jCount = param0->unk05 + param0->unk07; - iCount = param0->unk06 + param0->unk08; + jCount = (u32)(param0->unk05 + param0->unk07); + iCount = (u32)(param0->unk06 + param0->unk08); for (i = param0->unk06; i < iCount; i++) { for (j = param0->unk05; j < jCount; j++) { st4[((i & 0x20) * 32) + ((j & 0x20) * 32) + ((i & 0x1f) << 5) + (j & 0x1f)] = - (r3 | (param0->unk09 << 12)); + (u16)(r3 | (param0->unk09 << 12)); r3++; } @@ -4716,7 +4718,7 @@ THUMB_FUNC void FUN_02019358(struct Window *param0) { for (j = 0; j < param0->unk07; j++) { - r4[j] = r5; + r4[j] = (u8)r5; r5++; } r4 += r6; @@ -4740,8 +4742,8 @@ THUMB_FUNC void FUN_020193B4(struct Window *param0) st4 = param0->unk00->unk08[param0->unk04].unk08; st8 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - jCount = param0->unk05 + param0->unk07; - iCount = param0->unk06 + param0->unk08; + jCount = (u32)(param0->unk05 + param0->unk07); + iCount = (u32)(param0->unk06 + param0->unk08); for (i = param0->unk06; i < iCount; i++) { @@ -4808,7 +4810,7 @@ THUMB_FUNC void FUN_020194E0(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - window->unk07 * window->unk08 * 64, + (u32)(window->unk07 * window->unk08 * 64), window->unk0a); } @@ -4819,7 +4821,7 @@ THUMB_FUNC void FUN_0201951C(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - window->unk07 * window->unk08 * 64, + (u32)(window->unk07 * window->unk08 * 64), window->unk0a); } @@ -4828,7 +4830,7 @@ THUMB_FUNC void FUN_02019548(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - window->unk07 * window->unk08 * window->unk00->unk08[window->unk04].unk1f, + (u32)(window->unk07 * window->unk08 * window->unk00->unk08[window->unk04].unk1f), window->unk0a); } @@ -4881,9 +4883,9 @@ THUMB_FUNC void FUN_02019620(struct Window *window, u8 param1) param1 |= param1 << 4; } - MIi_CpuClearFast((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1, + MIi_CpuClearFast((u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), window->unk0c, - window->unk00->unk08[window->unk04].unk1f * window->unk07 * window->unk08); + (u32)(window->unk00->unk08[window->unk04].unk1f * window->unk07 * window->unk08)); } THUMB_FUNC void FUN_02019658(struct Window *window, @@ -4913,7 +4915,9 @@ THUMB_FUNC void FUN_02019684(struct Window *window, u16 param10) { struct UnkStruct3 st1c = { param1, param4, param5 }; - struct UnkStruct3 st14 = { window->unk0c, window->unk07 << 3, window->unk08 << 3 }; + struct UnkStruct3 st14 = { + window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) + }; if (window->unk00->unk08[window->unk04].unk1e == 0) { @@ -4928,7 +4932,7 @@ THUMB_FUNC void FUN_02019684(struct Window *window, THUMB_FUNC void FUN_020196F4( struct Window *window, u8 param1, u16 param2, u16 param3, u16 param4, u16 param5) { - struct UnkStruct3 st8 = { window->unk0c, window->unk07 << 3, window->unk08 << 3 }; + struct UnkStruct3 st8 = { window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) }; if (window->unk00->unk08[window->unk04].unk1e == 0) { @@ -7542,7 +7546,7 @@ THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 pa for (j = 0; j < 8; j++) { r5 = i + (j << 2); - r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); if (r1 < stc) { @@ -7550,7 +7554,7 @@ THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 + r5) = st4; + *(u32 *)(r2 + r5) = (u32)st4; } r3++; @@ -7566,7 +7570,7 @@ THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 pa for (j = 0; j < 8; j++) { r5 = i + (j << 2); - r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 2); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 2); if (r1 < stc) { @@ -7574,7 +7578,7 @@ THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 - r5) = st4; + *(u32 *)(r2 - r5) = (u32)st4; } r3++; @@ -7611,7 +7615,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa for (j = 0; j < 8; j++) { r5 = i + (j << 3); - r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 3); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3); if (r1 < stc) { @@ -7619,7 +7623,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 + r5) = st4; + *(u32 *)(r2 + r5) = (u32)st4; } r5 += 4; @@ -7630,7 +7634,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 + r5) = st4; + *(u32 *)(r2 + r5) = (u32)st4; } r3++; @@ -7646,7 +7650,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa for (j = 0; j < 8; j++) { r5 = i + (j << 3); - r1 = i + (((st8 * (r3 & ~7)) | (r3 & 7)) << 3); + r1 = i + (int)(((st8 * (r3 & ~7)) | (r3 & 7)) << 3); if (r1 < stc) { @@ -7654,7 +7658,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 - r5) = st4; + *(u32 *)(r2 - r5) = (u32)st4; } r5 -= 4; @@ -7665,7 +7669,7 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa } else { - *(u32 *)(r2 - r5) = st4; + *(u32 *)(r2 - r5) = (u32)st4; } r3++; @@ -7794,29 +7798,29 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) { if ((param0->unk04 & 1) != 0) { - reg_G2_BG0OFS = - (param0->unk08[0].unk14 & 0x1ff) | ((param0->unk08[0].unk18 << 0x10) & 0x1ff0000); + reg_G2_BG0OFS = (u32)( + (param0->unk08[0].unk14 & 0x1ff) | ((param0->unk08[0].unk18 << 0x10) & 0x1ff0000)); } if ((param0->unk04 & 2) != 0) { - reg_G2_BG1OFS = - (param0->unk08[1].unk14 & 0x1ff) | ((param0->unk08[1].unk18 << 0x10) & 0x1ff0000); + reg_G2_BG1OFS = (u32)( + (param0->unk08[1].unk14 & 0x1ff) | ((param0->unk08[1].unk18 << 0x10) & 0x1ff0000)); } if ((param0->unk04 & 4) != 0) { if (param0->unk08[2].unk1c == 0) { - reg_G2_BG2OFS = - (param0->unk08[2].unk14 & 0x1ff) | ((param0->unk08[2].unk18 << 0x10) & 0x1ff0000); + reg_G2_BG2OFS = (u32)( + (param0->unk08[2].unk14 & 0x1ff) | ((param0->unk08[2].unk18 << 0x10) & 0x1ff0000)); } else { struct Mtx22 st38; MTX22_2DAffine( &st38, param0->unk08[2].unk20, param0->unk08[2].unk24, param0->unk08[2].unk28, 2); - G2x_SetBGyAffine_(0x04000020, + G2x_SetBGyAffine_(reg_G2_BG2P, &st38, param0->unk08[2].unk2c, param0->unk08[2].unk30, @@ -7829,15 +7833,15 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) { if (param0->unk08[3].unk1c == 0) { - reg_G2_BG3OFS = - (param0->unk08[3].unk14 & 0x1ff) | ((param0->unk08[3].unk18 << 0x10) & 0x1ff0000); + reg_G2_BG3OFS = (u32)( + (param0->unk08[3].unk14 & 0x1ff) | ((param0->unk08[3].unk18 << 0x10) & 0x1ff0000)); } else { struct Mtx22 st28; MTX22_2DAffine( &st28, param0->unk08[3].unk20, param0->unk08[3].unk24, param0->unk08[3].unk28, 2); - G2x_SetBGyAffine_(0x04000030, + G2x_SetBGyAffine_(reg_G2_BG3P, &st28, param0->unk08[3].unk2c, param0->unk08[3].unk30, @@ -7848,29 +7852,29 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) if ((param0->unk04 & 0x10) != 0) { - reg_G2S_DB_BG0OFS = - (param0->unk08[4].unk14 & 0x1ff) | ((param0->unk08[4].unk18 << 0x10) & 0x1ff0000); + reg_G2S_DB_BG0OFS = (u32)( + (param0->unk08[4].unk14 & 0x1ff) | ((param0->unk08[4].unk18 << 0x10) & 0x1ff0000)); } if ((param0->unk04 & 0x20) != 0) { - reg_G2S_DB_BG1OFS = - (param0->unk08[5].unk14 & 0x1ff) | ((param0->unk08[5].unk18 << 0x10) & 0x1ff0000); + reg_G2S_DB_BG1OFS = (u32)( + (param0->unk08[5].unk14 & 0x1ff) | ((param0->unk08[5].unk18 << 0x10) & 0x1ff0000)); } if ((param0->unk04 & 0x40) != 0) { if (param0->unk08[6].unk1c == 0) { - reg_G2S_DB_BG2OFS = - (param0->unk08[6].unk14 & 0x1ff) | ((param0->unk08[6].unk18 << 0x10) & 0x1ff0000); + reg_G2S_DB_BG2OFS = (u32)( + (param0->unk08[6].unk14 & 0x1ff) | ((param0->unk08[6].unk18 << 0x10) & 0x1ff0000)); } else { struct Mtx22 st18; MTX22_2DAffine( &st18, param0->unk08[6].unk20, param0->unk08[6].unk24, param0->unk08[6].unk28, 2); - G2x_SetBGyAffine_(0x04001020, + G2x_SetBGyAffine_(reg_G2S_DB_BG2P, &st18, param0->unk08[6].unk2c, param0->unk08[6].unk30, @@ -7883,15 +7887,15 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) { if (param0->unk08[7].unk1c == 0) { - reg_G2S_DB_BG3OFS = - (param0->unk08[7].unk14 & 0x1ff) | ((param0->unk08[7].unk18 << 0x10) & 0x1ff0000); + reg_G2S_DB_BG3OFS = (u32)( + (param0->unk08[7].unk14 & 0x1ff) | ((param0->unk08[7].unk18 << 0x10) & 0x1ff0000)); } else { struct Mtx22 st08; MTX22_2DAffine( &st08, param0->unk08[7].unk20, param0->unk08[7].unk24, param0->unk08[7].unk28, 2); - G2x_SetBGyAffine_(0x04001030, + G2x_SetBGyAffine_(reg_G2S_DB_BG3P, &st08, param0->unk08[7].unk2c, param0->unk08[7].unk30, @@ -7901,19 +7905,19 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) } } -THUMB_FUNC void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_02017B8C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u16 param3) { FUN_0201AF2C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val) +THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u16 val) { switch (param1) { @@ -7929,13 +7933,13 @@ THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val) } } -THUMB_FUNC void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_0201AF74(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val) +THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, fx32 val) { switch (param1 - 9) { @@ -7974,11 +7978,11 @@ THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 return 0; } - r6 = FUN_02017FFC(param2 >> 3, param3 >> 3, param0->unk08[param1].unk1d); + r6 = FUN_02017FFC((u8)(param2 >> 3), (u8)(param3 >> 3), param0->unk08[param1].unk1d); st18 = FUN_020187B0(param1); - st14 = param2 & 7; - st10 = param3 & 7; + st14 = (u8)(param2 & 7); + st10 = (u8)(param3 & 7); if (param0->unk08[param1].unk1e == 0) { @@ -7988,11 +7992,11 @@ THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 st18 += ((stc[r6] & 0x3ff) << 5); for (i = 0; i < 0x20; i++) { - ptr[(i << 1)] = ((u8 *)st18)[i] & 0xf; - ptr[(i << 1) + 1] = ((u8 *)st18)[i] >> 4; + ptr[(i << 1)] = (u8)(((u8 *)st18)[i] & 0xf); + ptr[(i << 1) + 1] = (u8)(((u8 *)st18)[i] >> 4); } - FUN_0201B118(param0, (stc[r6] >> 0xa) & 3, ptr); + FUN_0201B118(param0, (u8)((stc[r6] >> 0xa) & 3), ptr); r5 = ptr[st14 + (st10 << 3)]; FreeToHeap(ptr); @@ -8011,7 +8015,7 @@ THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 memcpy(ptr, st18 + ((r4[r6] & 0x3ff) << 6), 0x40); - FUN_0201B118(param0, (r4[r6] >> 0xa) & 3, ptr); + FUN_0201B118(param0, (u8)((r4[r6] >> 0xa) & 3), ptr); r5 = ptr[st14 + (st10 << 3)]; FreeToHeap(ptr); diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index 0183e96c1..f4e57737c 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -9,6 +9,10 @@ #include "heap.h" #include "math_util.h" +#define reg_G2_BG2P (u32 *)0x4000020 +#define reg_G2_BG3P (u32 *)0x4000030 +#define reg_G2S_DB_BG2P (u32 *)0x4001020 +#define reg_G2S_DB_BG3P (u32 *)0x4001030 struct UnkStruct1 { u32 unk00; @@ -39,8 +43,8 @@ struct UnkStruct2 u32 unk0c; u32 unk10; - u32 unk14; - u32 unk18; + fx32 unk14; + fx32 unk18; u8 unk1c; u8 unk1d; @@ -48,10 +52,10 @@ struct UnkStruct2 u8 unk1f; u16 unk20; u16 unk22; // probably padding - u32 unk24; - u32 unk28; - u32 unk2c; - u32 unk30; + fx32 unk24; + fx32 unk28; + fx32 unk2c; + fx32 unk30; } unk08[8]; }; @@ -87,28 +91,28 @@ struct Window void *unk0c; }; -void *FUN_02016B94(u32 heap_id); +struct UnkStruct2 *FUN_02016B94(u32 heap_id); u32 FUN_02016BB8(u32 *param0); -void FUN_02016BBC(u32 *param0); +void FUN_02016BBC(const struct GraphicsModes *modes); void FUN_02016BF4(u32 *param0, u32 param1); void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3); void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3); u8 FUN_020177DC(u8 param0, u32 param1); void FUN_02017850(u32 param0, u8 *param1, u8 *param2); void FUN_020178A0(struct UnkStruct2 *param0, u32 param1); -void FUN_020178BC(u32 param0, u32 param1); +void FUN_020178BC(u32 param0, u16 param1); void FUN_0201797C(u32 param0, GX_LayerToggle toggle); -void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 val); -u32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1); -u32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1); +void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 val); +fx32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1); +fx32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1); void FUN_02017B60(struct UnkStruct2 *param0, u32 param1, u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6); -void FUN_02017B8C(struct InnerStruct *param0, u32 param1, u32 val); + fx32 param3, + struct Mtx22 *param4, + fx32 param5, + fx32 param6); +void FUN_02017B8C(struct InnerStruct *param0, u32 param1, fx32 val); void FUN_02017BD0( struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1); @@ -117,24 +121,29 @@ void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1); void FUN_02017CE8(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2, u32 param3); -void FUN_02017E14(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); +void FUN_02017E14(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017E40(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); -void FUN_02017F48(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017F48(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017FE4(u32 param0, u32 param1); u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3); -void FUN_02018148( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018148(struct UnkStruct2 *param0, + u32 param1, + void *param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6); void FUN_02018170(struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, - u32 *param6, + void *param6, u8 param7, u8 param8, u8 param9, @@ -145,7 +154,7 @@ void FUN_020181EC(struct UnkStruct2 *param0, u8 param3, u8 param4, u8 param5, - u32 *param6, + void *param6, u8 param7, u8 param8, u8 param9, @@ -296,11 +305,11 @@ void FUN_0201AB60(struct UnkStruct2 *param0); void FUN_0201AB78(struct UnkStruct2 *param0); void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1); void FUN_0201AC78(struct UnkStruct2 *param0); -void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); -void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); -void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u32 val); -void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3); -void FUN_0201AF74(struct InnerStruct *param0, u32 param1, u32 val); +void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3); +void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u16 param3); +void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u16 val); +void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3); +void FUN_0201AF74(struct InnerStruct *param0, u32 param1, fx32 val); u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2); From fb002e4c21e5a4e4a2b4afa151ea725f16d86d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 18:33:34 +0200 Subject: [PATCH 068/134] remove obsolete externs --- arm9/src/error_message_reset.c | 34 +++++++++++---------------- arm9/src/scrcmd.c | 9 ++++---- arm9/src/text_02054590.c | 42 +++++++++++++++++++--------------- include/script.h | 4 +++- include/text_02054590.h | 13 ++++++----- 5 files changed, 50 insertions(+), 52 deletions(-) diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index f70fec0f4..52873cdf7 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -2,36 +2,28 @@ #include "GX_layers.h" #include "unk_02031734.h" #include "unk_0202F150.h" +#include "unk_02016B94.h" -const u32 UNK_020FF49C[2] = { 0x1a030300, 0x00230112 }; +const struct UnkStruct4 UNK_020FF49C = { 0, 3, 3, 0x1a, 0x12, 1, 0x23 }; const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 }; const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 }; -const u32 UNK_020FF4BC[7] = { 0x00, 0x00, 0x0800, 0x00, 0x06000001, 0x0100, 0x00 }; +const struct UnkStruct1 UNK_020FF4BC = { 0, 0, 0x800, 0, 1, 0, 0, 6, 0, 1, 0, 0, 0 }; const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 }; u32 sErrorMessagePrinterLock; extern void FUN_0200E3A0(PMLCDTarget, int); -extern u32 *FUN_02016B94(u32 param0); -extern void FUN_02016BBC(const struct GraphicsModes *modes); -extern void FUN_02016C18(u32 *param0, u32 param1, void *param2, u32 param3); -extern void FUN_02018744(u32 *param0, u32 param1); -extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_0200CB00(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); -extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); -extern void FUN_02017FE4(u32 param0, u32 param1); -extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2); -extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16); -extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); +extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); -extern void FUN_02019178(u32 *param0); THUMB_FUNC void VBlankHandler() { @@ -43,8 +35,8 @@ THUMB_FUNC void VBlankHandler() THUMB_FUNC void PrintErrorMessageAndReset() { - u32 *ptr; - u32 buf[4]; + struct UnkStruct2 *ptr; + struct Window buf; if (sErrorMessagePrinterLock != 1) { @@ -83,7 +75,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() ptr = FUN_02016B94(0); FUN_02016BBC(&UNK_020FF4AC); - FUN_02016C18(ptr, 0, UNK_020FF4BC, 0); + FUN_02016C18(ptr, 0, &UNK_020FF4BC, 0); FUN_02018744(ptr, 0); FUN_0200CB00(ptr, 0, 503, 2, 0, 0); @@ -97,13 +89,13 @@ THUMB_FUNC void PrintErrorMessageAndReset() struct String *str = String_ctor(6 << 6, 0); FUN_0201BD5C(); - FUN_02019150(ptr, buf, UNK_020FF49C); - FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90); - FUN_0200CCA4(buf, 0, 0x1f7, 2); + FUN_02019150(ptr, &buf, &UNK_020FF49C); + FUN_020196F4(&buf, 15, 0, 0, 0xd0, 0x90); + FUN_0200CCA4(&buf, 0, 0x1f7, 2); ReadMsgDataIntoString(msg_data, 3, str); - AddTextPrinterParameterized((u32)buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf + AddTextPrinterParameterized((u32)(&buf), 0, (const u16 *)str, 0, 0, 0, NULL); // wtf String_dtor(str); GX_BothDispOn(); @@ -133,7 +125,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); - FUN_02019178(buf); + FUN_02019178(&buf); DestroyMsgData(msg_data); FreeToHeap(ptr); diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index fb88da545..5472e02db 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -4,6 +4,7 @@ #include "options.h" #include "player_data.h" #include "text.h" +#include "unk_02016B94.h" extern void *FUN_02039438(struct UnkSavStruct80* arg, u32 id); extern void *CreateScriptContext(struct UnkSavStruct80* arg, u16 id); @@ -27,9 +28,7 @@ extern void FUN_02055304(u32 param0, u32 param1); extern void FUN_02039460(struct UnkSavStruct80 *arg); extern void FUN_020545B8(u32 param0, u8 *param1, u32 param2); extern void FUN_02054608(u8 *param0, struct Options *options); -extern void FUN_0200D0E0(u32 *param0, u32 param1); -extern void FUN_02019178(u32 *param0); -extern void FUN_020179E0(u32 param0, u32 param1, u32 param2, u16 val); +extern void FUN_0200D0E0(struct Window *param0, u32 param1); extern u32 FUN_02058510(u32 param0, u32 param1); extern void MOD05_021E8128(u32 param0, u8 type, u16 map); extern void MOD05_021E8130(u32 param0, u32 param1); @@ -777,7 +776,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0033(struct ScriptContext *ctx) THUMB_FUNC BOOL ScrCmd_Unk0034(struct ScriptContext* ctx) { struct UnkSavStruct80 *unk80 = ctx->unk80; - u32 *unk = FUN_02039438(unk80, 0x1); //windowID? + struct Window *unk = FUN_02039438(unk80, 0x1); u8 *unk2 = FUN_02039438(unk80, 0x6); FUN_0200D0E0(unk, 0); //clear window? FUN_02019178(unk); @@ -788,7 +787,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0034(struct ScriptContext* ctx) THUMB_FUNC BOOL ScrCmd_Unk0035(struct ScriptContext* ctx) { struct UnkSavStruct80 *unk80 = ctx->unk80; - u32 *unk = FUN_02039438(unk80, 0x1); //windowID? + struct Window *unk = FUN_02039438(unk80, 0x1); u8 *unk2 = FUN_02039438(unk80, 0x6); FUN_02019178(unk); *unk2 = 0; diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index 470a2fe3c..c99957152 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -1,25 +1,27 @@ #include "text_02054590.h" #include "text.h" +#include "unk_02016B94.h" extern void FUN_0201BD5C(void); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_02002EEC(u32 param0, u32 param1, u32 param2); -extern void FUN_02019064(u32 param0, u32 param1, u32 param2, u8 param3, u32 param4, u8 param5, u32 param6, u32 param7, u32 param8); - -extern void FUN_0200CD68(u32 param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); -extern u32 FUN_0201AB08(u32 *param0); -extern void FUN_0200D0BC(u32 *param0, u32 param1, u32 param2, u32 param3); - -extern void FUN_02019620(u32 *param0, u32 param1); +extern void FUN_0200CD68( + struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_0200D0BC(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_02002B60(u8 param0); extern void FUN_02002B7C(u32 param0); extern void FUN_02002BB8(u32 param0); -extern void FUN_0200D300(u32 param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5, u32 param6); -extern void FUN_0200D6F8(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4); - +extern void FUN_0200D300(struct UnkStruct2 *param0, + u32 param1, + u32 param2, + u32 param3, + u8 param4, + u32 param5, + u32 param6); +extern void FUN_0200D6F8(struct Window *param0, u32 param1, u32 param2, u32 param3, u8 param4); THUMB_FUNC void FUN_02054590(u32 param0, u32 param1) { @@ -31,7 +33,7 @@ THUMB_FUNC void FUN_02054590(u32 param0, u32 param1) FUN_02002EEC(param0, 384, 4); } -THUMB_FUNC void FUN_020545B8(u32 param0, u32 param1, u32 param2) +THUMB_FUNC void FUN_020545B8(struct UnkStruct2 *param0, struct Window *param1, u32 param2) { if (param2 == 3) { @@ -43,14 +45,14 @@ THUMB_FUNC void FUN_020545B8(u32 param0, u32 param1, u32 param2) } } -THUMB_FUNC void FUN_02054608(u32 *param0, struct Options *options) +THUMB_FUNC void FUN_02054608(struct Window *param0, struct Options *options) { - FUN_0200CD68(*param0, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4); + FUN_0200CD68(param0->unk00, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4); FUN_0205464C(param0); FUN_0200D0BC(param0, 0, 994, 10); } -THUMB_FUNC void FUN_0205464C(u32 *param0) +THUMB_FUNC void FUN_0205464C(struct Window *param0) { FUN_02019620(param0, 15); } @@ -60,7 +62,8 @@ THUMB_FUNC u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options FUN_02002B60(param3); FUN_02002B7C(0); FUN_02002BB8(0); - return AddTextPrinterParameterized(windowId, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); + return AddTextPrinterParameterized( + windowId, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); } THUMB_FUNC u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5) @@ -71,12 +74,13 @@ THUMB_FUNC u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 spee return AddTextPrinterParameterized(windowId, fontId, str, 0, 0, speed, NULL); } -THUMB_FUNC u8 FUN_020546C8(u32 param0) //bool8? +THUMB_FUNC u8 FUN_020546C8(u32 param0) // bool8? { return !FUN_0201BD70(param0); } -THUMB_FUNC void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3) +THUMB_FUNC void FUN_020546E0( + struct UnkStruct2 *param0, struct Window *param1, u32 param2, u32 param3) { u32 r4 = 0; u32 r5 = 0; @@ -100,9 +104,9 @@ THUMB_FUNC void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3) } } -THUMB_FUNC void FUN_02054744(u32 *param0, u32 param1, u32 param2) +THUMB_FUNC void FUN_02054744(struct Window *param0, u32 param1, u32 param2) { - FUN_0200D300(*param0, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); + FUN_0200D300(param0->unk00, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); FUN_02019620(param0, 15); FUN_0200D6F8(param0, 0, 0x399, 9, (u8)param1); } diff --git a/include/script.h b/include/script.h index cb41889d2..92d586b64 100644 --- a/include/script.h +++ b/include/script.h @@ -4,6 +4,8 @@ #include "global.h" #include "msgdata.h" #include "save_block_2.h" +#include "unk_02016B94.h" + struct ScriptContext; @@ -26,7 +28,7 @@ struct UnkStruct_02046444 struct UnkSavStruct80 { u8 padding[0x8]; - u32 unk08; + struct UnkStruct2 *unk08; struct SaveBlock2 *saveBlock2; //0xC struct UnkStruct_0204639C *unk10; u8 padding2[0x8]; diff --git a/include/text_02054590.h b/include/text_02054590.h index 725bd9b4b..6c5090e7e 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -3,15 +3,16 @@ #include "global.h" #include "options.h" +#include "unk_02016B94.h" void FUN_02054590(u32 param0, u32 param1); -void FUN_020545B8(u32 param0, u32 param1, u32 param2); -void FUN_02054608(u32 *param0, struct Options *options); -void FUN_0205464C(u32 *param0); +void FUN_020545B8(struct UnkStruct2 *param0, struct Window *param1, u32 param2); +void FUN_02054608(struct Window *param0, struct Options *options); +void FUN_0205464C(struct Window *param0); u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options, u8 param3); u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5); u8 FUN_020546C8(u32 param0); -void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3); -void FUN_02054744(u32 *param0, u32 param1, u32 param2); +void FUN_020546E0(struct UnkStruct2 *param0, struct Window *param1, u32 param2, u32 param3); +void FUN_02054744(struct Window *param0, u32 param1, u32 param2); -#endif //POKEDIAMOND_UNK_02054590_H +#endif // POKEDIAMOND_UNK_02054590_H From 8df65ef7a08ee617dc858e4f40429c01f866f1dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 19:22:55 +0200 Subject: [PATCH 069/134] more extern cleanups --- arm9/src/GX_layers.c | 3 +++ arm9/src/script_buffers.c | 6 ++---- arm9/src/text.c | 10 +++------- arm9/src/unk_02016B94.c | 1 + include/GX_layers.h | 27 ++++++++++++++++++++++++--- include/error_message_reset.h | 24 ------------------------ include/script_buffers.h | 5 +++-- include/text.h | 3 ++- 8 files changed, 38 insertions(+), 41 deletions(-) diff --git a/arm9/src/GX_layers.c b/arm9/src/GX_layers.c index ce188876b..f0ac9472b 100644 --- a/arm9/src/GX_layers.c +++ b/arm9/src/GX_layers.c @@ -1,4 +1,7 @@ #include "GX_layers.h" +#include "GX_vramcnt.h" +#include "gx.h" +#include "main.h" struct GX_LayerData layer_data; diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index e9a55051b..68ab59349 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -21,8 +21,6 @@ extern void StringCat_HandleTrainerName(struct String * dest, const struct Strin extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4); -extern void FUN_02019658(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16); -extern void FUN_020196F4(int, u8, u16, u16, u16, u16); const u16 UNK_020ECE6C[][2] = { { 0x0140, 0x0008 }, @@ -803,12 +801,12 @@ void MessagePrinter_delete(struct UnkStruct_0200B870 * a0) } } -void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4) +void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, struct Window *a2, int a3, int a4) { FUN_02019658(a2, a0->unk_4->unk_14 + UNK_020ECE6C[a1][0], 0, 0, UNK_020ECE6C[a1][1], 8, (u16)a3, (u16)a4, UNK_020ECE6C[a1][1], 8); } -void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7) +void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, struct Window *sp30, int r5, int r7) { ConvertUIntToDecimalString(string->data, value, mode, n); for (int i = 0; string->data[i] != EOS; i++) diff --git a/arm9/src/text.c b/arm9/src/text.c index 3034baab1..685591465 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -18,15 +18,11 @@ extern struct TextPrinter *FUN_0201B6C8(void); extern void FUN_0200CAB4(u32 param0); extern void FUN_0201C1A8(struct TextPrinter *printer); -extern void CopyWindowToVram(u32 windowId); extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); extern void *FUN_02006BB0(u32 param0, u32 param1, u32 param2, struct TextPrinter **param3, u32 param4); -extern u32 FUN_0201AB0C(u32 windowId); -extern void FUN_02019658(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); - THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) { @@ -214,7 +210,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s } if (speed != 0xff) { - CopyWindowToVram(printer->printerTemplate.windowId); // CopyWindowToVram? + CopyWindowToVram(printer->printerTemplate.windowId); } FUN_0201C238(printer); FreeToHeap((void *)printer); @@ -343,13 +339,13 @@ THUMB_FUNC void *FUN_0201C1B0(void) THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2, u32 param3) { #pragma unused (param1, param2) - u32 windowId = printer->printerTemplate.windowId; + struct Window * windowId = printer->printerTemplate.windowId; if (printer->Unk2C == NULL) { printer->Unk2C = FUN_0201C1B0(); } u32 r6 = (u32)printer->Unk2C + param3 * (sizeof(struct TextPrinter) * 8); - u32 r2 = ((FUN_0201AB0C(windowId) - 3) << 0x13) >> 0x10; + u16 r2 = (FUN_0201AB0C(windowId) - 3) <<3; FUN_02019658(windowId, r6, 0, 0, 24, 32, r2, 0, 24, 32); } diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index e5403f127..7eb007470 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -3,6 +3,7 @@ #include "GX_layers.h" #include "gx.h" #include "heap.h" +#include "game_init.h" extern void FUN_020B0030(void *param0, u32 *param1); extern void FUN_020B0138(void *param0, u32 *param1); diff --git a/include/GX_layers.h b/include/GX_layers.h index e94fb4ec9..69fdc1986 100644 --- a/include/GX_layers.h +++ b/include/GX_layers.h @@ -3,9 +3,6 @@ #include "global.h" -#include "GX_vramcnt.h" -#include "error_message_reset.h" -#include "gx.h" struct GX_LayerData { @@ -20,6 +17,30 @@ typedef enum { } GX_LayerToggle; +struct GraphicsBanks +{ + s32 bg; + s32 bgextpltt; + s32 subbg; + s32 subbgextpltt; + s32 obj; + s32 objextpltt; + s32 subobj; + s32 subobjextpltt; + s32 tex; + s32 texpltt; +}; + + +struct GraphicsModes { + u32 mode1; + u32 mode2; + u32 mode3; + u32 mode4; +}; + + + THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks); THUMB_FUNC void GX_DisableEngineALayers(); THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle); diff --git a/include/error_message_reset.h b/include/error_message_reset.h index d12cbf335..8c44c0a8e 100644 --- a/include/error_message_reset.h +++ b/include/error_message_reset.h @@ -9,30 +9,6 @@ #include "text.h" - -struct GraphicsBanks -{ - s32 bg; - s32 bgextpltt; - s32 subbg; - s32 subbgextpltt; - s32 obj; - s32 objextpltt; - s32 subobj; - s32 subobjextpltt; - s32 tex; - s32 texpltt; -}; - - -struct GraphicsModes { - u32 mode1; - u32 mode2; - u32 mode3; - u32 mode4; -}; - - THUMB_FUNC void VBlankHandler(); THUMB_FUNC void PrintErrorMessageAndReset(); diff --git a/include/script_buffers.h b/include/script_buffers.h index d0fff5280..20de53de8 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -4,6 +4,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" #include "trainer_data.h" +#include "unk_02016B94.h" struct UnkStruct_0200AA80_sub_sub { @@ -105,7 +106,7 @@ void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, str void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr); struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4); void MessagePrinter_delete(struct UnkStruct_0200B870 * a0); -void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4); -void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7); +void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, struct Window *a2, int a3, int a4); +void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, struct Window *sp30, int r5, int r7); #endif //POKEDIAMOND_SCRIPT_BUFFERS_H diff --git a/include/text.h b/include/text.h index 40f4d03ad..0874f21d6 100644 --- a/include/text.h +++ b/include/text.h @@ -2,11 +2,12 @@ #define POKEDIAMOND_TEXT_H #include "global.h" +#include "unk_02016B94.h" struct TextPrinterTemplate { const u16* currentChar; - u32 windowId; + struct Window *windowId; u8 padding[1]; u8 fontId; u8 x; From d2caf0745621b35455cd6d82ffe55d3a6d40235a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Thu, 20 May 2021 19:25:56 +0200 Subject: [PATCH 070/134] struct renaming --- arm9/src/error_message_reset.c | 8 +-- arm9/src/text_02054590.c | 8 +-- arm9/src/unk_02016B94.c | 128 ++++++++++++++++----------------- include/script.h | 2 +- include/text_02054590.h | 4 +- include/unk_02016B94.h | 116 +++++++++++++++--------------- 6 files changed, 133 insertions(+), 133 deletions(-) diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 52873cdf7..8780e77e5 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -6,20 +6,20 @@ -const struct UnkStruct4 UNK_020FF49C = { 0, 3, 3, 0x1a, 0x12, 1, 0x23 }; +const struct UnkStruct_02016B94_4 UNK_020FF49C = { 0, 3, 3, 0x1a, 0x12, 1, 0x23 }; const u32 UNK_020FF4A4[2] = { 0x00020000, 0x00000000 }; const struct GraphicsModes UNK_020FF4AC = { mode1 : 1 }; -const struct UnkStruct1 UNK_020FF4BC = { 0, 0, 0x800, 0, 1, 0, 0, 6, 0, 1, 0, 0, 0 }; +const struct UnkStruct_02016B94_1 UNK_020FF4BC = { 0, 0, 0x800, 0, 1, 0, 0, 6, 0, 1, 0, 0, 0 }; const struct GraphicsBanks UNK_020FF4D8 = { bg : 3 }; u32 sErrorMessagePrinterLock; extern void FUN_0200E3A0(PMLCDTarget, int); -extern void FUN_0200CB00(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern void FUN_0200CB00(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); @@ -35,7 +35,7 @@ THUMB_FUNC void VBlankHandler() THUMB_FUNC void PrintErrorMessageAndReset() { - struct UnkStruct2 *ptr; + struct UnkStruct_02016B94_2 *ptr; struct Window buf; if (sErrorMessagePrinterLock != 1) diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index c99957152..6707ac6ed 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -7,14 +7,14 @@ extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_02002EEC(u32 param0, u32 param1, u32 param2); extern void FUN_0200CD68( - struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_0200D0BC(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_02002B60(u8 param0); extern void FUN_02002B7C(u32 param0); extern void FUN_02002BB8(u32 param0); -extern void FUN_0200D300(struct UnkStruct2 *param0, +extern void FUN_0200D300(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, @@ -33,7 +33,7 @@ THUMB_FUNC void FUN_02054590(u32 param0, u32 param1) FUN_02002EEC(param0, 384, 4); } -THUMB_FUNC void FUN_020545B8(struct UnkStruct2 *param0, struct Window *param1, u32 param2) +THUMB_FUNC void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2) { if (param2 == 3) { @@ -80,7 +80,7 @@ THUMB_FUNC u8 FUN_020546C8(u32 param0) // bool8? } THUMB_FUNC void FUN_020546E0( - struct UnkStruct2 *param0, struct Window *param1, u32 param2, u32 param3) + struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3) { u32 r4 = 0; u32 r5 = 0; diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index 7eb007470..ff86037df 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -55,10 +55,10 @@ void (*const UNK_020EDB74[])(struct Window *) = { FUN_020193B4, }; -THUMB_FUNC struct UnkStruct2 *FUN_02016B94(u32 heap_id) +THUMB_FUNC struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id) { - struct UnkStruct2 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct2)); - memset(ptr, 0, sizeof(struct UnkStruct2)); + struct UnkStruct_02016B94_2 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02016B94_2)); + memset(ptr, 0, sizeof(struct UnkStruct_02016B94_2)); ptr->unk00 = heap_id; ptr->unk04 = 0; ptr->unk06 = 0; @@ -98,7 +98,7 @@ THUMB_FUNC void FUN_02016BF4(u32 *param0, u32 param1) #ifdef NONMATCHING THUMB_FUNC void FUN_02016C18( - struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) + struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3) { u8 res = FUN_020177DC(param2->unk10, param3); switch (param1) @@ -342,7 +342,7 @@ THUMB_FUNC void FUN_02016C18( } #else THUMB_FUNC asm void FUN_02016C18( - struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3) + struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3) { // clang-format off push {r3-r7, lr} @@ -990,7 +990,7 @@ _020170D2: #endif #ifdef NONMATCHING -THUMB_FUNC void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3) +THUMB_FUNC void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) { if (param2 == 0) { @@ -1294,7 +1294,7 @@ THUMB_FUNC void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u } } #else -THUMB_FUNC asm void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3) +THUMB_FUNC asm void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) { // clang-format off push {r3-r7, lr} @@ -2328,7 +2328,7 @@ THUMB_FUNC void FUN_02017850(u32 param0, u8 *param1, u8 *param2) } } -THUMB_FUNC void FUN_020178A0(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1) { if (param0->unk08[param1].unk08 != NULL) { @@ -2399,7 +2399,7 @@ THUMB_FUNC void FUN_0201797C(u32 param0, GX_LayerToggle toggle) } } -THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 val) +THUMB_FUNC void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val) { FUN_02017B8C(¶m0->unk08[param1], param2, val); @@ -2475,17 +2475,17 @@ THUMB_FUNC void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, } } -THUMB_FUNC fx32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1) { return param0->unk08[param1].unk14; } -THUMB_FUNC fx32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1) { return param0->unk08[param1].unk18; } -THUMB_FUNC void FUN_02017B60(struct UnkStruct2 *param0, +THUMB_FUNC void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3, @@ -2497,7 +2497,7 @@ THUMB_FUNC void FUN_02017B60(struct UnkStruct2 *param0, FUN_02017BD0(param0, param1, param4, param5, param6); } -THUMB_FUNC void FUN_02017B8C(struct InnerStruct *param0, u32 param1, fx32 val) +THUMB_FUNC void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val) { switch (param1) { @@ -2523,7 +2523,7 @@ THUMB_FUNC void FUN_02017B8C(struct InnerStruct *param0, u32 param1, fx32 val) } THUMB_FUNC void FUN_02017BD0( - struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4) + struct UnkStruct_02016B94_2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4) { switch (param1) { @@ -2562,7 +2562,7 @@ THUMB_FUNC void FUN_02017BD0( } } -THUMB_FUNC void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1) { struct Mtx22 mtx; MTX22_2DAffine(&mtx, 0, 0x1000, 0x1000, 0); @@ -2586,7 +2586,7 @@ THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2) MIi_CpuCopy16(param0, param1, param2); } -THUMB_FUNC void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1) { FUN_02017CE8(param0, param1, @@ -2596,7 +2596,7 @@ THUMB_FUNC void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1) } THUMB_FUNC void FUN_02017CE8( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { u32 st0 = param3; if (param3 == 0) @@ -2653,13 +2653,13 @@ THUMB_FUNC void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size) } } -THUMB_FUNC void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2, u32 param3) +THUMB_FUNC void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3) { FUN_02017C98(param2, param0->unk08[param1].unk08, param3); } THUMB_FUNC void FUN_02017E14( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { if (param0->unk08[param1].unk1e == 0) { @@ -2670,7 +2670,7 @@ THUMB_FUNC void FUN_02017E14( } THUMB_FUNC void FUN_02017E40( - struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4) { u32 st0 = param3; if (param3 == 0) @@ -2730,7 +2730,7 @@ THUMB_FUNC void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id) } THUMB_FUNC void FUN_02017F48( - struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4) { void *st4; u32 st0 = param3 * param0->unk08[param1].unk1f; @@ -2854,12 +2854,12 @@ THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) } THUMB_FUNC void FUN_02018148( - struct UnkStruct2 *param0, u32 param1, void *param2, u8 param3, u8 param4, u8 param5, u8 param6) + struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u8 param3, u8 param4, u8 param5, u8 param6) { FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); } -THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, +THUMB_FUNC void FUN_02018170(struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, @@ -2901,7 +2901,7 @@ THUMB_FUNC void FUN_02018170(struct UnkStruct2 *param0, } } -THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, +THUMB_FUNC void FUN_020181EC(struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, @@ -2943,7 +2943,7 @@ THUMB_FUNC void FUN_020181EC(struct UnkStruct2 *param0, } } -THUMB_FUNC void FUN_02018268(struct InnerStruct *param0, +THUMB_FUNC void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, @@ -3036,7 +3036,7 @@ THUMB_FUNC void FUN_02018268(struct InnerStruct *param0, } } -THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, +THUMB_FUNC void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, @@ -3129,7 +3129,7 @@ THUMB_FUNC void FUN_020183DC(struct InnerStruct *param0, } } -THUMB_FUNC void FUN_02018540(struct UnkStruct2 *param0, +THUMB_FUNC void FUN_02018540(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2, u8 param3, @@ -3150,7 +3150,7 @@ THUMB_FUNC void FUN_02018540(struct UnkStruct2 *param0, } THUMB_FUNC void FUN_02018590( - struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) + struct UnkStruct_02016B94_2_sub *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) { void *r4 = param0->unk08; @@ -3197,7 +3197,7 @@ THUMB_FUNC void FUN_02018590( } THUMB_FUNC void FUN_02018640( - struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5) + struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5) { void *r4 = param0->unk08; @@ -3231,7 +3231,7 @@ THUMB_FUNC void FUN_02018640( } THUMB_FUNC void FUN_020186B4( - struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) + struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) { void *r4 = param0->unk08[param1].unk08; @@ -3264,7 +3264,7 @@ THUMB_FUNC void FUN_020186B4( } } -THUMB_FUNC void FUN_02018744(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1) { if (param0->unk08[param1].unk08 != NULL) { @@ -3273,7 +3273,7 @@ THUMB_FUNC void FUN_02018744(struct UnkStruct2 *param0, u32 param1) } } -THUMB_FUNC void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2) +THUMB_FUNC void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2) { if (param0->unk08[param1].unk08 != NULL) { @@ -3282,7 +3282,7 @@ THUMB_FUNC void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2) } } -THUMB_FUNC void FUN_0201878C(struct UnkStruct2 *param0, u32 param1, u16 param2) +THUMB_FUNC void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2) { if (param0->unk08[param1].unk08 != NULL) { @@ -3344,18 +3344,18 @@ THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2] return ptr; } -THUMB_FUNC void *FUN_0201886C(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u32 param1) { return param0->unk08[param1].unk08; } -THUMB_FUNC u16 FUN_02018878(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1) { return param0->unk08[param1].unk20; } #ifdef NONMATCHING -THUMB_FUNC u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1) { // the compiler keeps optimizing the stack away :( @@ -3442,7 +3442,7 @@ THUMB_FUNC u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1) return 0; } #else -THUMB_FUNC asm u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC asm u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1) { // clang-format off sub sp, #0x20 @@ -3704,8 +3704,8 @@ _02018A38: #endif #ifdef NONMATCHING -THUMB_FUNC void FUN_02018A60(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +THUMB_FUNC void FUN_02018A60(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -3801,8 +3801,8 @@ THUMB_FUNC void FUN_02018A60(struct UnkStruct3 *param0, } } #else -THUMB_FUNC asm void FUN_02018A60(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +THUMB_FUNC asm void FUN_02018A60(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -4115,8 +4115,8 @@ _02018C92: #endif #ifdef NONMATCHING -THUMB_FUNC void FUN_02018CA0(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +THUMB_FUNC void FUN_02018CA0(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -4128,8 +4128,8 @@ THUMB_FUNC void FUN_02018CA0(struct UnkStruct3 *param0, // horrible for loops like the one above } #else -THUMB_FUNC asm void FUN_02018CA0(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +THUMB_FUNC asm void FUN_02018CA0(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -4399,7 +4399,7 @@ _02018E7C: #endif THUMB_FUNC void FUN_02018E88( - struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) + struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) { int r6 = param1 + param3; @@ -4440,7 +4440,7 @@ THUMB_FUNC void FUN_02018E88( } THUMB_FUNC void FUN_02018F4C( - struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) + struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5) { int r6 = param1 + param3; @@ -4515,7 +4515,7 @@ enum UnkEnum1 UnkEnum1_1 = 1 }; -THUMB_FUNC void FUN_02019064(struct UnkStruct2 *param0, +THUMB_FUNC void FUN_02019064(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, @@ -4561,7 +4561,7 @@ THUMB_FUNC void FUN_02019064(struct UnkStruct2 *param0, } THUMB_FUNC void FUN_020190EC( - struct UnkStruct2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5) + struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5) { u32 size = (u32)(param2 * param3 * 32); @@ -4582,7 +4582,7 @@ THUMB_FUNC void FUN_020190EC( } THUMB_FUNC void FUN_02019150( - struct UnkStruct2 *param0, struct Window *param1, struct UnkStruct4 *param2) + struct UnkStruct_02016B94_2 *param0, struct Window *param1, struct UnkStruct_02016B94_4 *param2) { FUN_02019064(param0, @@ -4915,8 +4915,8 @@ THUMB_FUNC void FUN_02019684(struct Window *window, u16 param9, u16 param10) { - struct UnkStruct3 st1c = { param1, param4, param5 }; - struct UnkStruct3 st14 = { + struct UnkStruct_02016B94_3 st1c = { param1, param4, param5 }; + struct UnkStruct_02016B94_3 st14 = { window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) }; @@ -4933,7 +4933,7 @@ THUMB_FUNC void FUN_02019684(struct Window *window, THUMB_FUNC void FUN_020196F4( struct Window *window, u8 param1, u16 param2, u16 param3, u16 param4, u16 param5) { - struct UnkStruct3 st8 = { window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) }; + struct UnkStruct_02016B94_3 st8 = { window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) }; if (window->unk00->unk08[window->unk04].unk1e == 0) { @@ -7738,7 +7738,7 @@ THUMB_FUNC u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path return st0; } -THUMB_FUNC void FUN_0201AB60(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0) { FUN_0201AC78(param0); FUN_0201AB78(param0); @@ -7747,7 +7747,7 @@ THUMB_FUNC void FUN_0201AB60(struct UnkStruct2 *param0) param0->unk06 = 0; } -THUMB_FUNC void FUN_0201AB78(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0) { if ((param0->unk06 & 1) != 0) { @@ -7790,12 +7790,12 @@ THUMB_FUNC void FUN_0201AB78(struct UnkStruct2 *param0) } } -THUMB_FUNC void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1) { param0->unk06 |= 1 << param1; } -THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0) { if ((param0->unk04 & 1) != 0) { @@ -7906,19 +7906,19 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct2 *param0) } } -THUMB_FUNC void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3) +THUMB_FUNC void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_02017B8C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u16 param3) +THUMB_FUNC void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3) { FUN_0201AF2C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u16 val) +THUMB_FUNC void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val) { switch (param1) { @@ -7934,13 +7934,13 @@ THUMB_FUNC void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u16 val) } } -THUMB_FUNC void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3) +THUMB_FUNC void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_0201AF74(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, fx32 val) +THUMB_FUNC void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val) { switch (param1 - 9) { @@ -7965,7 +7965,7 @@ THUMB_FUNC void FUN_0201AF74(struct InnerStruct *param0, u32 param1, fx32 val) } } -THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) +THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) { void *st18; u16 r6; @@ -8041,7 +8041,7 @@ THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 return 0; } -THUMB_FUNC void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2) +THUMB_FUNC void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2) { u8 i, j; if (param1 != 0) diff --git a/include/script.h b/include/script.h index 92d586b64..01bba3058 100644 --- a/include/script.h +++ b/include/script.h @@ -28,7 +28,7 @@ struct UnkStruct_02046444 struct UnkSavStruct80 { u8 padding[0x8]; - struct UnkStruct2 *unk08; + struct UnkStruct_02016B94_2 *unk08; struct SaveBlock2 *saveBlock2; //0xC struct UnkStruct_0204639C *unk10; u8 padding2[0x8]; diff --git a/include/text_02054590.h b/include/text_02054590.h index 6c5090e7e..57560595f 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -6,13 +6,13 @@ #include "unk_02016B94.h" void FUN_02054590(u32 param0, u32 param1); -void FUN_020545B8(struct UnkStruct2 *param0, struct Window *param1, u32 param2); +void FUN_020545B8(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2); void FUN_02054608(struct Window *param0, struct Options *options); void FUN_0205464C(struct Window *param0); u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options, u8 param3); u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5); u8 FUN_020546C8(u32 param0); -void FUN_020546E0(struct UnkStruct2 *param0, struct Window *param1, u32 param2, u32 param3); +void FUN_020546E0(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u32 param2, u32 param3); void FUN_02054744(struct Window *param0, u32 param1, u32 param2); #endif // POKEDIAMOND_UNK_02054590_H diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index f4e57737c..b19fd6252 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -13,7 +13,7 @@ #define reg_G2_BG3P (u32 *)0x4000030 #define reg_G2S_DB_BG2P (u32 *)0x4001020 #define reg_G2S_DB_BG3P (u32 *)0x4001030 -struct UnkStruct1 +struct UnkStruct_02016B94_1 { u32 unk00; u32 unk04; @@ -31,13 +31,13 @@ struct UnkStruct1 u32 unk18; }; -struct UnkStruct2 +struct UnkStruct_02016B94_2 { u32 unk00; u16 unk04; u16 unk06; - struct InnerStruct + struct UnkStruct_02016B94_2_sub { void *unk08; u32 unk0c; @@ -59,14 +59,14 @@ struct UnkStruct2 } unk08[8]; }; -struct UnkStruct3 +struct UnkStruct_02016B94_3 { void *unk00; u16 unk04; u16 unk06; }; -struct UnkStruct4 +struct UnkStruct_02016B94_4 { u8 unk0; u8 unk1; @@ -79,7 +79,7 @@ struct UnkStruct4 struct Window { - struct UnkStruct2 *unk00; + struct UnkStruct_02016B94_2 *unk00; u8 unk04; u8 unk05; u8 unk06; @@ -91,53 +91,53 @@ struct Window void *unk0c; }; -struct UnkStruct2 *FUN_02016B94(u32 heap_id); +struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id); u32 FUN_02016BB8(u32 *param0); void FUN_02016BBC(const struct GraphicsModes *modes); void FUN_02016BF4(u32 *param0, u32 param1); -void FUN_02016C18(struct UnkStruct2 *param0, u8 param1, struct UnkStruct1 *param2, u8 param3); -void FUN_020170F4(struct UnkStruct2 *param0, u8 param1, u32 param2, u8 param3); +void FUN_02016C18(struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3); +void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3); u8 FUN_020177DC(u8 param0, u32 param1); void FUN_02017850(u32 param0, u8 *param1, u8 *param2); -void FUN_020178A0(struct UnkStruct2 *param0, u32 param1); +void FUN_020178A0(struct UnkStruct_02016B94_2 *param0, u32 param1); void FUN_020178BC(u32 param0, u16 param1); void FUN_0201797C(u32 param0, GX_LayerToggle toggle); -void FUN_020179E0(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 val); -fx32 FUN_02017B48(struct UnkStruct2 *param0, u32 param1); -fx32 FUN_02017B54(struct UnkStruct2 *param0, u32 param1); -void FUN_02017B60(struct UnkStruct2 *param0, +void FUN_020179E0(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 val); +fx32 FUN_02017B48(struct UnkStruct_02016B94_2 *param0, u32 param1); +fx32 FUN_02017B54(struct UnkStruct_02016B94_2 *param0, u32 param1); +void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3, struct Mtx22 *param4, fx32 param5, fx32 param6); -void FUN_02017B8C(struct InnerStruct *param0, u32 param1, fx32 val); +void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); void FUN_02017BD0( - struct UnkStruct2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); -void FUN_02017C6C(struct UnkStruct2 *param0, u32 param1); + struct UnkStruct_02016B94_2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); +void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1); void FUN_02017C98(const void *param0, void *param1, u32 param2); -void FUN_02017CD0(struct UnkStruct2 *param0, u32 param1); -void FUN_02017CE8(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1); +void FUN_02017CE8(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); -void FUN_02017DFC(struct UnkStruct2 *param0, u32 param1, void *param2, u32 param3); -void FUN_02017E14(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E40(struct UnkStruct2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3); +void FUN_02017E14(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017E40(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); -void FUN_02017F48(struct UnkStruct2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); +void FUN_02017F48(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017FE4(u32 param0, u32 param1); u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3); -void FUN_02018148(struct UnkStruct2 *param0, +void FUN_02018148(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u8 param3, u8 param4, u8 param5, u8 param6); -void FUN_02018170(struct UnkStruct2 *param0, +void FUN_02018170(struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, @@ -148,7 +148,7 @@ void FUN_02018170(struct UnkStruct2 *param0, u8 param8, u8 param9, u8 param10); -void FUN_020181EC(struct UnkStruct2 *param0, +void FUN_020181EC(struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, @@ -159,7 +159,7 @@ void FUN_020181EC(struct UnkStruct2 *param0, u8 param8, u8 param9, u8 param10); -void FUN_02018268(struct InnerStruct *param0, +void FUN_02018268(struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, @@ -170,7 +170,7 @@ void FUN_02018268(struct InnerStruct *param0, u8 param8, u8 param9, u8 param10); -void FUN_020183DC(struct InnerStruct *param0, +void FUN_020183DC(struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, @@ -181,7 +181,7 @@ void FUN_020183DC(struct InnerStruct *param0, u8 param8, u8 param9, u8 param10); -void FUN_02018540(struct UnkStruct2 *param0, +void FUN_02018540(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2, u8 param3, @@ -190,22 +190,22 @@ void FUN_02018540(struct UnkStruct2 *param0, u8 param6, u8 param7); void FUN_02018590( - struct InnerStruct *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); + struct UnkStruct_02016B94_2_sub *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); void FUN_02018640( - struct InnerStruct *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); + struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); void FUN_020186B4( - struct UnkStruct2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); -void FUN_02018744(struct UnkStruct2 *param0, u32 param1); -void FUN_02018768(struct UnkStruct2 *param0, u32 param1, u16 param2); -void FUN_0201878C(struct UnkStruct2 *param0, u32 param1, u16 param2); + struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1); +void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); +void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); void *FUN_020187B0(u32 param0); void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3); u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]; -void *FUN_0201886C(struct UnkStruct2 *param0, u32 param1); -u16 FUN_02018878(struct UnkStruct2 *param0, u32 param1); -u8 FUN_02018884(struct UnkStruct2 *param0, u32 param1); -void FUN_02018A60(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u32 param1); +u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1); +u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1); +void FUN_02018A60(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -213,8 +213,8 @@ void FUN_02018A60(struct UnkStruct3 *param0, u16 param6, u16 param7, u16 param8); -void FUN_02018CA0(struct UnkStruct3 *param0, - struct UnkStruct3 *param1, +void FUN_02018CA0(struct UnkStruct_02016B94_3 *param0, + struct UnkStruct_02016B94_3 *param1, u16 param2, u16 param3, u16 param4, @@ -223,13 +223,13 @@ void FUN_02018CA0(struct UnkStruct3 *param0, u16 param7, u16 param8); void FUN_02018E88( - struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); + struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); void FUN_02018F4C( - struct UnkStruct3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); + struct UnkStruct_02016B94_3 *param0, u16 param1, u16 param2, u16 param3, u16 param4, u8 param5); void *FUN_02018FF4(u32 heap_id, s32 size); void FUN_0201901C(struct Window *param0); BOOL FUN_02019048(struct Window *param0); -void FUN_02019064(struct UnkStruct2 *param0, +void FUN_02019064(struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, @@ -239,8 +239,8 @@ void FUN_02019064(struct UnkStruct2 *param0, u8 param7, u16 param8); void FUN_020190EC( - struct UnkStruct2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5); -void FUN_02019150(struct UnkStruct2 *param0, struct Window *param1, struct UnkStruct4 *param2); + struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5); +void FUN_02019150(struct UnkStruct_02016B94_2 *param0, struct Window *param1, struct UnkStruct_02016B94_4 *param2); void FUN_02019178(struct Window *param0); void FUN_020191A4(struct Window *param0, int param1); void CopyWindowToVram(struct Window *param0); @@ -301,16 +301,16 @@ void FUN_0201AB20(struct Window *window, u8 param1); void FUN_0201AB24(struct Window *window, u8 param1); u32 FUN_0201AB28(struct Window *window, u32 heap_id, const char *path); u32 FUN_0201AB44(struct Window *window, u32 heap_id, const char *path); -void FUN_0201AB60(struct UnkStruct2 *param0); -void FUN_0201AB78(struct UnkStruct2 *param0); -void FUN_0201AC68(struct UnkStruct2 *param0, u32 param1); -void FUN_0201AC78(struct UnkStruct2 *param0); -void FUN_0201AEE4(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF08(struct UnkStruct2 *param0, u32 param1, u32 param2, u16 param3); -void FUN_0201AF2C(struct InnerStruct *param0, u32 param1, u16 val); -void FUN_0201AF50(struct UnkStruct2 *param0, u32 param1, u32 param2, fx32 param3); -void FUN_0201AF74(struct InnerStruct *param0, u32 param1, fx32 val); -u32 FUN_0201AFBC(struct UnkStruct2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); -void FUN_0201B118(struct UnkStruct2 *param0, u8 param1, u8 *param2); +void FUN_0201AB60(struct UnkStruct_02016B94_2 *param0); +void FUN_0201AB78(struct UnkStruct_02016B94_2 *param0); +void FUN_0201AC68(struct UnkStruct_02016B94_2 *param0, u32 param1); +void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0); +void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); +void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3); +void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, u16 val); +void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3); +void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); +u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4); +void FUN_0201B118(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 *param2); #endif // POKEDIAMOND_UNK_02016B94_H From 5c9213cb7fcfabdd3c85408f39a04314dd03e780 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 08:28:03 -0400 Subject: [PATCH 071/134] FUN_02001354 --- arm9/asm/unk_020010A8.s | 64 ----------------------------------------- arm9/src/list_menu.c | 30 ++++++++++++++++++- 2 files changed, 29 insertions(+), 65 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index dba61431a..a6a35c2f8 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,70 +5,6 @@ .text - thumb_func_start FUN_02001354 -FUN_02001354: ; 0x02001354 - push {r4-r6, lr} - add r4, r0, #0x0 - add r6, r1, #0x0 - beq _0200136E - add r5, r4, #0x0 - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} - ldmia r6!, {r0-r1} - stmia r5!, {r0-r1} -_0200136E: - strh r2, [r4, #0x2c] - add r0, r4, #0x0 - strh r3, [r4, #0x2e] - mov r3, #0x0 - add r0, #0x30 - strb r3, [r0, #0x0] - add r0, r4, #0x0 - add r0, #0x31 - add r1, sp, #0x0 - strb r3, [r0, #0x0] - ldrh r0, [r1, #0x14] - cmp r0, #0x40 - bne _02001398 - ldrh r1, [r1, #0x10] - add r0, r4, #0x0 - mov r2, #0x1 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl ListMenuChangeSelection - b _020013AC -_02001398: - cmp r0, #0x80 - bne _020013AC - ldrh r1, [r1, #0x10] - mov r2, #0x1 - add r0, r4, #0x0 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - add r3, r2, #0x0 - bl ListMenuChangeSelection -_020013AC: - ldr r1, [sp, #0x18] - cmp r1, #0x0 - beq _020013B6 - ldrh r0, [r4, #0x2c] - strh r0, [r1, #0x0] -_020013B6: - ldr r1, [sp, #0x1c] - cmp r1, #0x0 - beq _020013C0 - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x0] -_020013C0: - mov r0, #0x0 - mvn r0, r0 - pop {r4-r6, pc} - .balign 4 - thumb_func_start FUN_020013C8 FUN_020013C8: ; 0x020013C8 push {r4, lr} diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 6d440ad16..2700f30ee 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -9,7 +9,7 @@ extern void DestroyListMenuCursorObj(void *); extern void FillWindowPixelBuffer(struct Window *, u32); void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16); void ListMenuDrawCursor(struct ListMenu *); -BOOL ListMenuChangeSelection(struct ListMenu *, s32, u8, s32); +BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32); void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); @@ -124,3 +124,31 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * list) ListMenuDrawCursor(list); CopyWindowToVram(list->template.window); } + +THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 * sp18, u16 * sp1C) +{ + if (template != NULL) + list->template = *template; + list->cursorPos = cursorPos; + list->itemsAbove = itemsAbove; + list->unk_30 = 0; + list->unk_31 = 0; + + if (input == REG_PAD_KEYINPUT_UP_MASK) + { + ListMenuChangeSelection(list, updateFlag, 1, FALSE); + } + else if (input == REG_PAD_KEYINPUT_DOWN_MASK) + { + ListMenuChangeSelection(list, updateFlag, 1, TRUE); + } + if (sp18 != NULL) + { + *sp18 = list->cursorPos; + } + if (sp1C != NULL) + { + *sp1C = list->itemsAbove; + } + return -1; +} From 150597d495383f09a4ee733d24b3e770c57494eb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 08:38:11 -0400 Subject: [PATCH 072/134] through FUN_02001464 --- arm9/asm/unk_020010A8.s | 103 ---------------------------------------- arm9/src/list_menu.c | 46 ++++++++++++++++-- 2 files changed, 41 insertions(+), 108 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index a6a35c2f8..14603d3ed 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,109 +5,6 @@ .text - thumb_func_start FUN_020013C8 -FUN_020013C8: ; 0x020013C8 - push {r4, lr} - sub sp, #0x10 - mov r4, #0x0 - str r4, [sp, #0x0] - add r4, sp, #0x8 - ldrh r4, [r4, #0x10] - str r4, [sp, #0x4] - ldr r4, [sp, #0x1c] - str r4, [sp, #0x8] - ldr r4, [sp, #0x20] - str r4, [sp, #0xc] - bl FUN_02001354 - add sp, #0x10 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020013E8 -FUN_020013E8: ; 0x020013E8 - push {r3-r6} - add r4, r0, #0x0 - add r4, #0x20 - ldrb r6, [r4, #0x0] - mov r4, #0xf - mov r5, #0xf - bic r6, r4 - and r1, r5 - orr r6, r1 - add r1, r0, #0x0 - add r1, #0x20 - strb r6, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x20 - lsl r2, r2, #0x1c - ldrb r1, [r1, #0x0] - mov r6, #0xf0 - lsr r2, r2, #0x18 - bic r1, r6 - orr r2, r1 - add r1, r0, #0x0 - add r1, #0x20 - strb r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x21 - ldrb r2, [r1, #0x0] - add r1, r3, #0x0 - and r1, r5 - bic r2, r4 - orr r2, r1 - add r1, r0, #0x0 - add r1, #0x21 - strb r2, [r1, #0x0] - add r1, r0, #0x0 - add r1, #0x24 - ldrb r2, [r1, #0x0] - mov r1, #0x80 - add r0, #0x24 - orr r1, r2 - strb r1, [r0, #0x0] - pop {r3-r6} - bx lr - - thumb_func_start FUN_0200143C -FUN_0200143C: ; 0x0200143C - ldrh r2, [r0, #0x2c] - ldrh r0, [r0, #0x2e] - add r0, r2, r0 - strh r0, [r1, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02001448 -FUN_02001448: ; 0x02001448 - cmp r1, #0x0 - beq _02001450 - ldrh r3, [r0, #0x2c] - strh r3, [r1, #0x0] -_02001450: - cmp r2, #0x0 - beq _02001458 - ldrh r0, [r0, #0x2e] - strh r0, [r2, #0x0] -_02001458: - bx lr - .balign 4 - - thumb_func_start FUN_0200145C -FUN_0200145C: ; 0x0200145C - add r0, #0x33 - ldrb r0, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02001464 -FUN_02001464: ; 0x02001464 - ldr r2, [r0, #0x0] - lsl r0, r1, #0x3 - add r0, r2, r0 - ldr r0, [r0, #0x4] - bx lr - .balign 4 - thumb_func_start FUN_02001470 FUN_02001470: ; 0x02001470 push {r4, lr} diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 2700f30ee..1a46c4e2e 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -125,7 +125,7 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * list) CopyWindowToVram(list->template.window); } -THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 * sp18, u16 * sp1C) +THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) { if (template != NULL) list->template = *template; @@ -142,13 +142,49 @@ THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, struct ListMenuTemplate * te { ListMenuChangeSelection(list, updateFlag, 1, TRUE); } - if (sp18 != NULL) + if (cursorPosDest_p != NULL) { - *sp18 = list->cursorPos; + *cursorPosDest_p = list->cursorPos; } - if (sp1C != NULL) + if (itemsAboveDest_p != NULL) { - *sp1C = list->itemsAbove; + *itemsAboveDest_p = list->itemsAbove; } return -1; } + +s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) +{ + return FUN_02001354(list, template, cursorPos, itemsAbove, FALSE, input, cursorPosDest_p, itemsAboveDest_p); +} + +void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) +{ + list->cursorPal = cursorPal; + list->fillValue = fillValue; + list->cursorShadowPal = cursorShadowPal; + list->enabled = TRUE; +} + +void FUN_0200143C(struct ListMenu * list, u16 * index_p) +{ + *index_p = list->cursorPos + list->itemsAbove; +} + +void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) +{ + if (cursorPos_p != NULL) + *cursorPos_p = list->cursorPos; + if (itemsAbove_p != NULL) + *itemsAbove_p = list->itemsAbove; +} + +u8 FUN_0200145C(struct ListMenu * list) +{ + return list->unk_33; +} + +s32 FUN_02001464(struct ListMenu * list, s32 index) +{ + return list->template.items[index].index; +} From 80231d12b10043197be4d01222346fe7f0b72900 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 09:08:28 -0400 Subject: [PATCH 073/134] ListMenuGetSetTemplateField --- arm9/asm/unk_020010A8.s | 288 -------------------------------- arm9/asm/unk_020625EC.s | 4 +- arm9/asm/unk_020653EC.s | 6 +- arm9/global.inc | 4 +- arm9/modules/06/asm/module_06.s | 14 +- arm9/modules/18/asm/module_18.s | 50 +++--- arm9/modules/56/asm/module_56.s | 8 +- arm9/modules/65/asm/module_65.s | 6 +- arm9/modules/75/asm/module_75.s | 4 +- arm9/modules/76/asm/module_76.s | 2 +- arm9/src/list_menu.c | 115 +++++++++++++ include/list_menu.h | 12 +- 12 files changed, 173 insertions(+), 340 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index 14603d3ed..534ca98b5 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -5,294 +5,6 @@ .text - thumb_func_start FUN_02001470 -FUN_02001470: ; 0x02001470 - push {r4, lr} - add r4, r0, #0x0 - cmp r1, #0x13 - bhi _02001532 - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02001484: ; jump table (using 16-bit offset) - .short _020014AC - _02001484 - 2; case 0 - .short _020014B0 - _02001484 - 2; case 1 - .short _020014B4 - _02001484 - 2; case 2 - .short _020014B8 - _02001484 - 2; case 3 - .short _02001532 - _02001484 - 2; case 4 - .short _020014BC - _02001484 - 2; case 5 - .short _020014C0 - _02001484 - 2; case 6 - .short _020014C4 - _02001484 - 2; case 7 - .short _020014C8 - _02001484 - 2; case 8 - .short _020014D0 - _02001484 - 2; case 9 - .short _020014EA - _02001484 - 2; case 10 - .short _020014F2 - _02001484 - 2; case 11 - .short _020014FA - _02001484 - 2; case 12 - .short _02001502 - _02001484 - 2; case 13 - .short _0200150A - _02001484 - 2; case 14 - .short _02001512 - _02001484 - 2; case 15 - .short _0200151A - _02001484 - 2; case 16 - .short _02001522 - _02001484 - 2; case 17 - .short _0200152A - _02001484 - 2; case 18 - .short _0200152E - _02001484 - 2; case 19 -_020014AC: - ldr r0, [r4, #0x4] - pop {r4, pc} -_020014B0: - ldr r0, [r4, #0x8] - pop {r4, pc} -_020014B4: - ldrh r0, [r4, #0x10] - pop {r4, pc} -_020014B8: - ldrh r0, [r4, #0x12] - pop {r4, pc} -_020014BC: - ldrb r0, [r4, #0x14] - pop {r4, pc} -_020014C0: - ldrb r0, [r4, #0x15] - pop {r4, pc} -_020014C4: - ldrb r0, [r4, #0x16] - pop {r4, pc} -_020014C8: - ldrb r0, [r4, #0x17] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - pop {r4, pc} -_020014D0: - ldrh r0, [r4, #0x1a] - mov r1, #0x1 - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_02002E4C - ldrh r1, [r4, #0x1a] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1c - add r0, r1, r0 - pop {r4, pc} -_020014EA: - ldrb r0, [r4, #0x17] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - pop {r4, pc} -_020014F2: - ldrb r0, [r4, #0x18] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - pop {r4, pc} -_020014FA: - ldrb r0, [r4, #0x18] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - pop {r4, pc} -_02001502: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - pop {r4, pc} -_0200150A: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x19 - lsr r0, r0, #0x1c - pop {r4, pc} -_02001512: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x17 - lsr r0, r0, #0x1e - pop {r4, pc} -_0200151A: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - pop {r4, pc} -_02001522: - ldrh r0, [r4, #0x1a] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - pop {r4, pc} -_0200152A: - ldr r0, [r4, #0xc] - pop {r4, pc} -_0200152E: - ldr r0, [r4, #0x1c] - pop {r4, pc} -_02001532: - mov r0, #0x0 - mvn r0, r0 - pop {r4, pc} - - thumb_func_start FUN_02001538 -FUN_02001538: ; 0x02001538 - cmp r1, #0x13 - bls _0200153E - b _02001648 -_0200153E: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0200154A: ; jump table (using 16-bit offset) - .short _02001572 - _0200154A - 2; case 0 - .short _02001576 - _0200154A - 2; case 1 - .short _0200157A - _0200154A - 2; case 2 - .short _0200157E - _0200154A - 2; case 3 - .short _02001648 - _0200154A - 2; case 4 - .short _02001582 - _0200154A - 2; case 5 - .short _02001586 - _0200154A - 2; case 6 - .short _0200158A - _0200154A - 2; case 7 - .short _0200158E - _0200154A - 2; case 8 - .short _02001648 - _0200154A - 2; case 9 - .short _020015A2 - _0200154A - 2; case 10 - .short _020015B6 - _0200154A - 2; case 11 - .short _020015CA - _0200154A - 2; case 12 - .short _020015DE - _0200154A - 2; case 13 - .short _020015F2 - _0200154A - 2; case 14 - .short _02001606 - _0200154A - 2; case 15 - .short _0200161A - _0200154A - 2; case 16 - .short _0200162E - _0200154A - 2; case 17 - .short _02001642 - _0200154A - 2; case 18 - .short _02001646 - _0200154A - 2; case 19 -_02001572: - str r2, [r0, #0x4] - bx lr -_02001576: - str r2, [r0, #0x8] - bx lr -_0200157A: - strh r2, [r0, #0x10] - bx lr -_0200157E: - strh r2, [r0, #0x12] - bx lr -_02001582: - strb r2, [r0, #0x14] - bx lr -_02001586: - strb r2, [r0, #0x15] - bx lr -_0200158A: - strb r2, [r0, #0x16] - bx lr -_0200158E: - ldrb r3, [r0, #0x17] - mov r1, #0xf - bic r3, r1 - lsl r1, r2, #0x18 - lsr r2, r1, #0x18 - mov r1, #0xf - and r1, r2 - orr r1, r3 - strb r1, [r0, #0x17] - bx lr -_020015A2: - ldrb r3, [r0, #0x17] - mov r1, #0xf0 - bic r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1c - lsr r1, r1, #0x18 - orr r1, r3 - strb r1, [r0, #0x17] - bx lr -_020015B6: - ldrb r3, [r0, #0x18] - mov r1, #0xf - bic r3, r1 - lsl r1, r2, #0x18 - lsr r2, r1, #0x18 - mov r1, #0xf - and r1, r2 - orr r1, r3 - strb r1, [r0, #0x18] - bx lr -_020015CA: - ldrb r3, [r0, #0x18] - mov r1, #0xf0 - bic r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1c - lsr r1, r1, #0x18 - orr r1, r3 - strb r1, [r0, #0x18] - bx lr -_020015DE: - ldrh r3, [r0, #0x1a] - mov r1, #0x7 - bic r3, r1 - lsl r1, r2, #0x18 - lsr r2, r1, #0x18 - mov r1, #0x7 - and r1, r2 - orr r1, r3 - strh r1, [r0, #0x1a] - bx lr -_020015F2: - ldrh r3, [r0, #0x1a] - mov r1, #0x78 - bic r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1c - lsr r1, r1, #0x19 - orr r1, r3 - strh r1, [r0, #0x1a] - bx lr -_02001606: - ldrh r3, [r0, #0x1a] - ldr r1, _0200164C ; =0xFFFFFE7F - and r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1e - lsr r1, r1, #0x17 - orr r1, r3 - strh r1, [r0, #0x1a] - bx lr -_0200161A: - ldrh r3, [r0, #0x1a] - ldr r1, _02001650 ; =0xFFFF81FF - and r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1a - lsr r1, r1, #0x11 - orr r1, r3 - strh r1, [r0, #0x1a] - bx lr -_0200162E: - ldrh r3, [r0, #0x1a] - ldr r1, _02001654 ; =0xFFFF7FFF - and r3, r1 - lsl r1, r2, #0x18 - lsr r1, r1, #0x18 - lsl r1, r1, #0x1f - lsr r1, r1, #0x10 - orr r1, r3 - strh r1, [r0, #0x1a] - bx lr -_02001642: - str r2, [r0, #0xc] - bx lr -_02001646: - str r2, [r0, #0x1c] -_02001648: - bx lr - nop -_0200164C: .word 0xFFFFFE7F -_02001650: .word 0xFFFF81FF -_02001654: .word 0xFFFF7FFF - thumb_func_start FUN_02001658 FUN_02001658: ; 0x02001658 str r1, [r0, #0x0] diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index bf2484643..5147f099c 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1546,7 +1546,7 @@ FUN_020631C8: ; 0x020631C8 push {r3-r5, lr} mov r1, #0x13 add r5, r0, #0x0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 @@ -1555,7 +1555,7 @@ FUN_020631C8: ; 0x020631C8 bl FUN_02001448 add r0, r5, #0x0 mov r1, #0x2 - bl FUN_02001470 + bl ListMenuGetTemplateField add r2, sp, #0x0 ldrh r3, [r2, #0x0] ldrh r2, [r2, #0x2] diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 50cb53181..5e09d0a61 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1169,7 +1169,7 @@ FUN_02065CFC: ; 0x02065CFC add r4, r1, #0x0 mov r1, #0x13 add r5, r0, #0x0 - bl FUN_02001470 + bl ListMenuGetTemplateField ldr r1, _02065D48 ; =0x0000FFFF cmp r4, r1 bne _02065D1C @@ -1210,7 +1210,7 @@ FUN_02065D4C: ; 0x02065D4C mov r1, #0x13 add r4, r0, #0x0 add r6, r2, #0x0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 @@ -1219,7 +1219,7 @@ FUN_02065D4C: ; 0x02065D4C bl FUN_02001448 add r0, r4, #0x0 mov r1, #0x2 - bl FUN_02001470 + bl ListMenuGetTemplateField lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r6, #0x0 diff --git a/arm9/global.inc b/arm9/global.inc index 59d2d3da7..dddc91cbf 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -199,8 +199,8 @@ .extern FUN_02001448 .extern FUN_0200145C .extern FUN_02001464 -.extern FUN_02001470 -.extern FUN_02001538 +.extern ListMenuGetTemplateField +.extern ListMenuSetTemplateField .extern FUN_02001658 .extern FUN_02001B80 .extern FUN_02001B8C diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 9336c826b..fbe98b2bd 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9236,7 +9236,7 @@ MOD06_0223DCF0: ; 0x0223DCF0 mov r1, #0x13 str r0, [sp, #0x10] add r6, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 cmp r6, #1 beq _0223DD0C @@ -9348,7 +9348,7 @@ _0223DDE4: _0223DDF0: ldr r0, [sp, #0x10] mov r1, #2 - bl FUN_02001470 + bl ListMenuGetTemplateField cmp r0, #7 bls _0223DE16 add r1, sp, #0x14 @@ -9383,7 +9383,7 @@ MOD06_0223DE34: ; 0x0223DE34 add r4, r1, #0 mov r1, #0x13 add r7, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r1, #1 mvn r1, r1 add r5, r0, #0 @@ -11619,7 +11619,7 @@ MOD06_0223F0C8: ; 0x0223F0C8 mov r1, #3 add r5, r0, #0 mov r4, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField cmp r0, #0 bls _0223F0F6 add r6, r4, #0 @@ -11633,7 +11633,7 @@ _0223F0DC: add r0, r5, #0 add r1, r7, #0 add r4, r4, #1 - bl FUN_02001470 + bl ListMenuGetTemplateField cmp r4, r0 blo _0223F0DC _0223F0F6: @@ -12972,7 +12972,7 @@ _0223FBDA: ldr r0, [r0] mov r5, #0 ldr r0, [r0, #0x5c] - bl FUN_02001470 + bl ListMenuGetTemplateField cmp r0, #0 bls _0223FC32 ldr r4, _0223FCF0 ; =0x02252420 @@ -12989,7 +12989,7 @@ _0223FC14: add r1, r7, #0 ldr r0, [r0, #0x5c] add r5, r5, #1 - bl FUN_02001470 + bl ListMenuGetTemplateField cmp r5, r0 blo _0223FC14 _0223FC32: diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 99b0d4ca8..96ff03e23 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22099,7 +22099,7 @@ MOD18_022440C4: ; 0x022440C4 lsr r6, r0, #0x10 ldr r0, [r4, #0xc] mov r1, #3 - bl FUN_02001470 + bl ListMenuGetTemplateField lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldrh r0, [r4, #0x18] @@ -22118,23 +22118,23 @@ _022440F0: bhi _0224413A ldr r0, [r4, #0xc] mov r1, #7 - bl FUN_02001470 + bl ListMenuGetTemplateField str r0, [sp] ldr r0, [r4, #0xc] mov r1, #9 - bl FUN_02001470 + bl ListMenuGetTemplateField lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, [r4, #0xc] mov r1, #8 - bl FUN_02001470 + bl ListMenuGetTemplateField str r0, [sp, #4] sub r0, r6, r5 add r5, r7, #0 mul r5, r0 ldr r0, [r4, #0xc] mov r1, #0x12 - bl FUN_02001470 + bl ListMenuGetTemplateField ldr r3, [sp, #4] add r1, r0, #0 ldr r0, [r4, #0x10] @@ -22159,7 +22159,7 @@ MOD18_02244140: ; 0x02244140 beq _0224418A ldr r0, [sp, #4] mov r1, #2 - bl FUN_02001470 + bl ListMenuGetTemplateField add r7, r0, #0 add r1, sp, #0xc ldr r0, [sp, #4] @@ -33623,7 +33623,7 @@ MOD18_02249AF4: ; 0x02249AF4 push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r2, #0x81 add r1, r0, #0 lsl r2, r2, #2 @@ -33862,7 +33862,7 @@ MOD18_02249CC8: ; 0x02249CC8 ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -34077,7 +34077,7 @@ MOD18_02249EBC: ; 0x02249EBC push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r2, #0x81 add r1, r0, #0 lsl r2, r2, #2 @@ -34352,7 +34352,7 @@ MOD18_0224A0EC: ; 0x0224A0EC ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -34542,7 +34542,7 @@ MOD18_0224A2B4: ; 0x0224A2B4 push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r2, #0x81 add r1, r0, #0 lsl r2, r2, #2 @@ -34776,7 +34776,7 @@ MOD18_0224A47C: ; 0x0224A47C ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -35399,7 +35399,7 @@ MOD18_0224A9B4: ; 0x0224A9B4 push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r2, #0x81 add r1, r0, #0 lsl r2, r2, #2 @@ -35431,7 +35431,7 @@ MOD18_0224A9EC: ; 0x0224A9EC add r4, r1, #0 mov r1, #0x13 add r5, r0, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField ldr r0, [r0, #0xc] bl ScriptEnvironment_GetSav2Ptr bl FUN_02026CC4 @@ -35715,7 +35715,7 @@ MOD18_0224AC24: ; 0x0224AC24 ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -36444,7 +36444,7 @@ MOD18_0224B204: ; 0x0224B204 push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r0, #1 mvn r0, r0 cmp r4, r0 @@ -36464,7 +36464,7 @@ MOD18_0224B228: ; 0x0224B228 push {r4, lr} add r4, r1, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField mov r0, #1 mvn r0, r0 cmp r4, r0 @@ -36973,7 +36973,7 @@ MOD18_0224B614: ; 0x0224B614 ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -37066,7 +37066,7 @@ MOD18_0224B6E0: ; 0x0224B6E0 ldr r0, [r5, #0x4c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r1, sp, #0 add r2, r0, #0 ldrh r1, [r1, #2] @@ -38632,7 +38632,7 @@ MOD18_0224C418: ; 0x0224C418 mov r1, #0x13 add r7, r0, #0 add r6, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 cmp r6, #0 beq _0224C434 @@ -38746,7 +38746,7 @@ MOD18_0224C510: ; 0x0224C510 mov r1, #0x13 str r0, [sp, #0xc] str r2, [sp, #0x10] - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 ldr r0, [r4, #0xc] bl ScriptEnvironment_GetSav2Ptr @@ -42643,12 +42643,12 @@ _0224E384: ldr r0, [r5, #0x2c] mov r1, #2 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r7, r0, #0 ldr r0, [r5, #0x2c] mov r1, #3 ldr r0, [r0, #0xc] - bl FUN_02001470 + bl ListMenuGetTemplateField add r3, r0, #0 add r1, sp, #0 lsl r2, r7, #0x10 @@ -42692,11 +42692,11 @@ MOD18_0224E3F0: ; 0x0224E3F0 add r4, r1, #0 add r5, r0, #0 mov r1, #0x13 - bl FUN_02001470 + bl ListMenuGetTemplateField add r6, r0, #0 add r0, r5, #0 mov r1, #2 - bl FUN_02001470 + bl ListMenuGetTemplateField lsr r1, r4, #1 sub r0, r0, #1 cmp r1, r0 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index ba3275fa5..2d066c8d8 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -3021,7 +3021,7 @@ MOD56_02213624: ; 0x02213624 add r5, r1, #0 mov r1, #0x13 add r7, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 ldr r6, _02213750 ; =0x00010200 cmp r5, #0x20 @@ -3814,7 +3814,7 @@ _02213C24: ldr r0, [r0] mov r1, #2 add r2, r4, #2 - bl FUN_02001538 + bl ListMenuSetTemplateField cmp r4, #3 ble _02213C50 add r0, r5, #0 @@ -3822,7 +3822,7 @@ _02213C24: ldr r0, [r0] mov r1, #3 mov r2, #5 - bl FUN_02001538 + bl ListMenuSetTemplateField b _02213C5E _02213C50: add r0, r5, #0 @@ -3830,7 +3830,7 @@ _02213C50: ldr r0, [r0] mov r1, #3 add r2, r4, #2 - bl FUN_02001538 + bl ListMenuSetTemplateField _02213C5E: add r0, r5, #0 bl MOD56_02213938 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index c8d4ac1aa..44e0d1a20 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -2057,11 +2057,11 @@ _021D84E0: .word 0x00000001 thumb_func_start MOD65_021D84E4 MOD65_021D84E4: ; 0x021D84E4 - ldr r3, _021D84EC ; =FUN_02001470 + ldr r3, _021D84EC ; =ListMenuGetTemplateField mov r1, #0x13 bx r3 nop -_021D84EC: .word FUN_02001470 +_021D84EC: .word ListMenuGetTemplateField thumb_func_end MOD65_021D84E4 thumb_func_start MOD65_021D84F0 @@ -2072,7 +2072,7 @@ MOD65_021D84F0: ; 0x021D84F0 mov r1, #0x13 add r7, r0, #0 add r6, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 cmp r6, #0 bne _021D850C diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 8ecfcb91f..32ceb7777 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -1624,7 +1624,7 @@ MOD75_021E7870: ; 0x021E7870 add r7, r1, #0 mov r1, #0x13 add r4, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r5, r0, #0 cmp r4, #1 beq _021E78F8 @@ -1751,7 +1751,7 @@ MOD75_021E797C: ; 0x021E797C mov r1, #0x13 str r0, [sp] add r7, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 add r0, #0xc4 ldr r0, [r0] diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 9f7f7745a..ddc3bcd3d 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -1380,7 +1380,7 @@ MOD76_021D7FD0: ; 0x021D7FD0 add r5, r1, #0 mov r1, #0x13 add r6, r2, #0 - bl FUN_02001470 + bl ListMenuGetTemplateField add r4, r0, #0 cmp r6, #1 beq _021D7FE8 diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 1a46c4e2e..db0328ef5 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -12,6 +12,7 @@ void ListMenuDrawCursor(struct ListMenu *); BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32); void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); +extern s32 FUN_02002E4C(u8 fontId, s32 attr); THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) { @@ -188,3 +189,117 @@ s32 FUN_02001464(struct ListMenu * list, s32 index) { return list->template.items[index].index; } + +s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) +{ + switch (attr) + { + case 0: + return (s32)list->template.moveCursorFunc; + case 1: + return (s32)list->template.itemPrintFunc; + case 2: + return (s32)list->template.totalItems; + case 3: + return (s32)list->template.maxShowed; + case 4: + break; + case 5: + return (s32)list->template.header_X; + case 6: + return (s32)list->template.item_X; + case 7: + return (s32)list->template.cursor_X; + case 8: + return (s32)list->template.upText_Y; + case 9: + return FUN_02002E4C(list->template.fontId, 1) + list->template.itemVerticalPadding; + case 10: + return (s32)list->template.cursorPal; + case 11: + return (s32)list->template.fillValue; + case 12: + return (s32)list->template.cursorShadowPal; + case 13: + return (s32)list->template.lettersSpacing; + case 14: + return (s32)list->template.itemVerticalPadding; + case 15: + return (s32)list->template.scrollMultiple; + case 16: + return (s32)list->template.fontId; + case 17: + return (s32)list->template.unk_1B_7; + case 18: + return (s32)list->template.window; + case 19: + return (s32)list->template.unk_1C; + } + + return -1; +} + +void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 value) +{ + switch (attr) + { + case 0: + list->template.moveCursorFunc = (LM_MOVECURSORFUNC)value; + break; + case 1: + list->template.itemPrintFunc = (LM_ITEMPRINTFUNC)value; + break; + case 2: + list->template.totalItems = (u16)value; + break; + case 3: + list->template.maxShowed = (u16)value; + break; + case 4: + break; + case 5: + list->template.header_X = (u8)value; + break; + case 6: + list->template.item_X = (u8)value; + break; + case 7: + list->template.cursor_X = (u8)value; + break; + case 8: + list->template.upText_Y = (u8)value; + break; + case 9: + break; + case 10: + list->template.cursorPal = (u8)value; + break; + case 11: + list->template.fillValue = (u8)value; + break; + case 12: + list->template.cursorShadowPal = (u8)value; + break; + case 13: + list->template.lettersSpacing = (u8)value; + break; + case 14: + list->template.itemVerticalPadding = (u8)value; + break; + case 15: + list->template.scrollMultiple = (u8)value; + break; + case 16: + list->template.fontId = (u8)value; + break; + case 17: + list->template.unk_1B_7 = (u8)value; + break; + case 18: + list->template.window = (struct Window *)value; + break; + case 19: + list->template.unk_1C = (u32)value; + break; + } +} diff --git a/include/list_menu.h b/include/list_menu.h index 67b738936..5f8e6944e 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -32,10 +32,15 @@ struct ListMenuItem // TODO: Document remaining fields. // A lot of these are named based on similar fields in gen 3. + +typedef void (*LM_MOVECURSORFUNC)(s32, u8, struct ListMenu *); +typedef void (*LM_ITEMPRINTFUNC)(struct Window *, s32, u8); + struct ListMenuTemplate { - struct ListMenuItem * items; - u8 filler_04[8]; + /*0x00*/ struct ListMenuItem * items; + /*0x04*/ LM_MOVECURSORFUNC moveCursorFunc; + /*0x08*/ LM_ITEMPRINTFUNC itemPrintFunc; /*0x0C*/ struct Window * window; /*0x10*/ u16 totalItems; /*0x12*/ u16 maxShowed; @@ -50,7 +55,8 @@ struct ListMenuTemplate u16 itemVerticalPadding:4; u16 scrollMultiple:2; u16 fontId:6; - /*0x1C*/ u8 filler_1C[4]; + u16 unk_1B_7:1; + /*0x1C*/ u32 unk_1C; }; struct ListMenu From 11f1419d080f346574b7a83d528c42a9473d41ec Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 12:51:26 -0400 Subject: [PATCH 074/134] ListMenuPrint --- arm9/asm/unk_020010A8.s | 101 +------------------------------- arm9/global.inc | 2 +- arm9/modules/18/asm/module_18.s | 2 +- arm9/src/list_menu.c | 50 ++++++++++++---- arm9/src/text.c | 30 +++++----- include/list_menu.h | 11 +--- include/text.h | 15 +++-- 7 files changed, 72 insertions(+), 139 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index 534ca98b5..d7a2c9f08 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -2,109 +2,10 @@ .include "global.inc" .extern gMain + .extern FUN_0200165C .text - thumb_func_start FUN_02001658 -FUN_02001658: ; 0x02001658 - str r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0200165C -FUN_0200165C: ; 0x0200165C - push {r4-r6, lr} - sub sp, #0x18 - add r5, r1, #0x0 - add r6, r0, #0x0 - add r4, r2, #0x0 - cmp r5, #0x0 - beq _02001710 - add r0, #0x24 - ldrb r0, [r0, #0x0] - lsl r0, r0, #0x18 - lsr r0, r0, #0x1f - str r3, [sp, #0x0] - beq _020016CC - mov r0, #0xff - str r0, [sp, #0x4] - add r0, r6, #0x0 - add r0, #0x20 - ldrb r2, [r0, #0x0] - add r3, r4, #0x0 - lsl r0, r2, #0x18 - lsr r0, r0, #0x1c - lsl r0, r0, #0x18 - lsr r1, r0, #0x18 - lsl r0, r2, #0x1c - add r2, r6, #0x0 - add r2, #0x21 - ldrb r2, [r2, #0x0] - lsr r0, r0, #0x1c - lsl r0, r0, #0x18 - lsl r2, r2, #0x1c - lsr r2, r2, #0x1c - lsl r2, r2, #0x18 - lsr r0, r0, #0x8 - lsr r2, r2, #0x10 - orr r0, r2 - orr r0, r1 - str r0, [sp, #0x8] - add r0, r6, #0x0 - add r0, #0x22 - ldrb r0, [r0, #0x0] - add r2, r5, #0x0 - lsl r0, r0, #0x1a - lsr r0, r0, #0x1a - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldr r0, [r6, #0xc] - add r6, #0x24 - ldrb r1, [r6, #0x0] - lsl r1, r1, #0x19 - lsr r1, r1, #0x19 - bl AddTextPrinterParameterized3 - add sp, #0x18 - pop {r4-r6, pc} -_020016CC: - mov r0, #0xff - str r0, [sp, #0x4] - ldrb r1, [r6, #0x18] - add r3, r4, #0x0 - lsl r0, r1, #0x1c - lsr r0, r0, #0x1c - lsl r0, r0, #0x18 - lsr r2, r0, #0x18 - ldrb r0, [r6, #0x17] - lsl r1, r1, #0x18 - lsr r1, r1, #0x1c - lsl r0, r0, #0x18 - lsr r0, r0, #0x1c - lsl r0, r0, #0x18 - lsl r1, r1, #0x18 - lsr r0, r0, #0x8 - lsr r1, r1, #0x10 - orr r0, r1 - orr r0, r2 - str r0, [sp, #0x8] - ldrh r0, [r6, #0x1a] - add r2, r5, #0x0 - lsl r0, r0, #0x1d - lsr r0, r0, #0x1d - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - ldrh r1, [r6, #0x1a] - ldr r0, [r6, #0xc] - lsl r1, r1, #0x11 - lsr r1, r1, #0x1a - bl AddTextPrinterParameterized3 -_02001710: - add sp, #0x18 - pop {r4-r6, pc} - thumb_func_start ListMenuPrintEntries ListMenuPrintEntries: ; 0x02001714 push {r4-r7, lr} diff --git a/arm9/global.inc b/arm9/global.inc index dddc91cbf..8c0a01db8 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -201,7 +201,7 @@ .extern FUN_02001464 .extern ListMenuGetTemplateField .extern ListMenuSetTemplateField -.extern FUN_02001658 +.extern ListMenuPrint .extern FUN_02001B80 .extern FUN_02001B8C .extern FUN_02001C14 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 96ff03e23..6f55f226f 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22312,7 +22312,7 @@ _02244268: ldr r1, [sp] str r0, [r5, #8] ldr r0, [sp, #4] - bl FUN_02001658 + bl ListMenuPrint mov r0, #0 strb r0, [r5, #0x1c] ldr r0, [sp, #4] diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index db0328ef5..8dec327dc 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -14,6 +14,15 @@ void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); extern s32 FUN_02002E4C(u8 fontId, s32 attr); +static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal) +{ + return (u32)( + ((u32)(fgPal << 24) >> 8) + | ((u32)(shdwPal << 24) >> 16) + | ((u32)(bgPal << 24) >> 24) + ); +} + THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id) { struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu)); @@ -31,11 +40,12 @@ THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * templa list->cursorShadowPal = list->template.cursorShadowPal; list->lettersSpacing = list->template.lettersSpacing; list->fontId = list->template.fontId; - list->enabled = 0; + list->overrideEnabled = FALSE; if (list->template.totalItems < list->template.maxShowed) list->template.maxShowed = list->template.totalItems; CreateListMenuCursorObj( list->cursor, +// MakeFontColor(list->template.cursorPal, list->template.cursorShadowPal, list->fillValue) (u32)( ((u32)(list->template.cursorPal << 24) >> 8) | ((u32)(list->template.cursorShadowPal << 24) >> 16) @@ -154,25 +164,25 @@ THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplat return -1; } -s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) +THUMB_FUNC s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) { return FUN_02001354(list, template, cursorPos, itemsAbove, FALSE, input, cursorPosDest_p, itemsAboveDest_p); } -void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) +THUMB_FUNC void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) { list->cursorPal = cursorPal; list->fillValue = fillValue; list->cursorShadowPal = cursorShadowPal; - list->enabled = TRUE; + list->overrideEnabled = TRUE; } -void FUN_0200143C(struct ListMenu * list, u16 * index_p) +THUMB_FUNC void FUN_0200143C(struct ListMenu * list, u16 * index_p) { *index_p = list->cursorPos + list->itemsAbove; } -void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) +THUMB_FUNC void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) { if (cursorPos_p != NULL) *cursorPos_p = list->cursorPos; @@ -180,17 +190,17 @@ void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) *itemsAbove_p = list->itemsAbove; } -u8 FUN_0200145C(struct ListMenu * list) +THUMB_FUNC u8 FUN_0200145C(struct ListMenu * list) { return list->unk_33; } -s32 FUN_02001464(struct ListMenu * list, s32 index) +THUMB_FUNC s32 FUN_02001464(struct ListMenu * list, s32 index) { return list->template.items[index].index; } -s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) +THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) { switch (attr) { @@ -239,7 +249,7 @@ s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) return -1; } -void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 value) +THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 value) { switch (attr) { @@ -303,3 +313,23 @@ void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 value) break; } } + +THUMB_FUNC void ListMenuPrint(struct ListMenu * list, struct ListMenuItem * items) +{ + list->template.items = items; +} + +THUMB_FUNC void FUN_0200165C(struct ListMenu * list, const u16 * str, u8 x, u8 y) +{ + if (str != NULL) + { + if (list->overrideEnabled) + { + AddTextPrinterParameterized3(list->template.window, list->fontId, str, x, y, 0xFF, MakeFontColor(list->cursorPal, list->cursorShadowPal, list->fillValue), list->lettersSpacing, 0, NULL); + } + else + { + AddTextPrinterParameterized3(list->template.window, list->template.fontId, str, x, y, 0xFF, MakeFontColor(list->template.cursorPal, list->template.cursorShadowPal, list->template.fillValue), list->template.lettersSpacing, 0, NULL); + } + } +} diff --git a/arm9/src/text.c b/arm9/src/text.c index 3034baab1..23e6ca673 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -18,14 +18,14 @@ extern struct TextPrinter *FUN_0201B6C8(void); extern void FUN_0200CAB4(u32 param0); extern void FUN_0201C1A8(struct TextPrinter *printer); -extern void CopyWindowToVram(u32 windowId); +extern void CopyWindowToVram(struct Window * window); extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); extern void *FUN_02006BB0(u32 param0, u32 param1, u32 param2, struct TextPrinter **param3, u32 param4); -extern u32 FUN_0201AB0C(u32 windowId); -extern void FUN_02019658(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); +extern u32 FUN_0201AB0C(struct Window * window); +extern void FUN_02019658(struct Window * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) @@ -99,11 +99,11 @@ THUMB_FUNC void FUN_0201BD7C(u32 param0) FUN_0201BCFC(param0); } -THUMB_FUNC u16 AddTextPrinterParameterized(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; - printerTemplate.windowId = windowId; + printerTemplate.window = window; printerTemplate.currentChar = str; printerTemplate.fontId = fontId; printerTemplate.x = (u8)x; @@ -122,11 +122,11 @@ THUMB_FUNC u16 AddTextPrinterParameterized(u32 windowId, u8 fontId, const u16 *s return AddTextPrinter(&printerTemplate, speed, callback); } -THUMB_FUNC u16 AddTextPrinterParameterized2(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; - printerTemplate.windowId = windowId; + printerTemplate.window = window; printerTemplate.currentChar = str; printerTemplate.fontId = fontId; printerTemplate.x = (u8)x; @@ -145,13 +145,13 @@ THUMB_FUNC u16 AddTextPrinterParameterized2(u32 windowId, u8 fontId, const u16 * return AddTextPrinter(&printerTemplate, speed, callback); } -THUMB_FUNC u16 AddTextPrinterParameterized3(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; - printerTemplate.windowId = windowId; + printerTemplate.window = window; printerTemplate.currentChar = str; - printerTemplate.fontId = fontId; + printerTemplate.fontId = (u8)fontId; printerTemplate.x = (u8)x; printerTemplate.y = (u8)y; printerTemplate.currentX = (u8)x; @@ -214,7 +214,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s } if (speed != 0xff) { - CopyWindowToVram(printer->printerTemplate.windowId); // CopyWindowToVram? + CopyWindowToVram(printer->printerTemplate.window); // CopyWindowToVram? } FUN_0201C238(printer); FreeToHeap((void *)printer); @@ -235,7 +235,7 @@ THUMB_FUNC void RunTextPrinter(u32 param0, struct TextPrinter *printer) switch (temp) { case 0: - CopyWindowToVram(printer->printerTemplate.windowId); + CopyWindowToVram(printer->printerTemplate.window); //fallthrough case 3: if (printer->callback == NULL) @@ -343,14 +343,14 @@ THUMB_FUNC void *FUN_0201C1B0(void) THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2, u32 param3) { #pragma unused (param1, param2) - u32 windowId = printer->printerTemplate.windowId; + struct Window * window = printer->printerTemplate.window; if (printer->Unk2C == NULL) { printer->Unk2C = FUN_0201C1B0(); } u32 r6 = (u32)printer->Unk2C + param3 * (sizeof(struct TextPrinter) * 8); - u32 r2 = ((FUN_0201AB0C(windowId) - 3) << 0x13) >> 0x10; - FUN_02019658(windowId, r6, 0, 0, 24, 32, r2, 0, 24, 32); + u32 r2 = ((FUN_0201AB0C(window) - 3) << 0x13) >> 0x10; + FUN_02019658(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } THUMB_FUNC void FUN_0201C238(struct TextPrinter *printer) diff --git a/include/list_menu.h b/include/list_menu.h index 5f8e6944e..0be1a32a6 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -1,6 +1,8 @@ #ifndef POKEDIAMOND_LIST_MENU_H #define POKEDIAMOND_LIST_MENU_H +#include "text.h" + #define LIST_HEADER -3 #define LIST_CANCEL -2 #define LIST_NOTHING_CHOSEN -1 @@ -11,13 +13,6 @@ struct ListMenu; -// TODO: Move to its own header, and fill it out -struct Window -{ - u8 * unk_00; - u8 unk_04; -}; - // TODO: Move to its own header, and fill it out struct ListMenuCursor { @@ -70,7 +65,7 @@ struct ListMenu /*0x22*/ u8 lettersSpacing:6; /*0x23*/ u8 unk_23; /*0x24*/ u8 fontId:7; - u8 enabled:1; + u8 overrideEnabled:1; /*0x28*/ struct ListMenuCursor *cursor; /*0x2c*/ u16 cursorPos; /*0x2e*/ u16 itemsAbove; diff --git a/include/text.h b/include/text.h index 40f4d03ad..1218a0b34 100644 --- a/include/text.h +++ b/include/text.h @@ -3,10 +3,17 @@ #include "global.h" +// TODO: Move to its own header, and fill it out +struct Window +{ + u8 * unk_00; + u8 unk_04; +}; + struct TextPrinterTemplate { const u16* currentChar; - u32 windowId; + struct Window * window; u8 padding[1]; u8 fontId; u8 x; @@ -69,9 +76,9 @@ BOOL FUN_0201BD44(u32 param0); void FUN_0201BD5C(void); u8 FUN_0201BD70(u32 param0); void FUN_0201BD7C(u32 param0); -u16 AddTextPrinterParameterized(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); -u16 AddTextPrinterParameterized2(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)); -u16 AddTextPrinterParameterized3(u32 windowId, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)); u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); void RunTextPrinter(u32 param0, struct TextPrinter *printer); u32 RenderFont(struct TextPrinter *printer); From bcc2b21b1db3a0a54c5d5c446644b288064e14d9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 13:45:38 -0400 Subject: [PATCH 075/134] ListMenuUpdateSelectedRowIndexAndScrollOffset --- arm9/asm/unk_020010A8.s | 371 +---------------------- arm9/asm/unk_02001B80.s | 18 +- arm9/asm/unk_020023C0.s | 4 +- arm9/asm/unk_02002C14.s | 4 +- arm9/asm/unk_02012CC8.s | 4 +- arm9/asm/unk_02016B94.s | 4 +- arm9/asm/unk_02033F50.s | 2 +- arm9/asm/unk_02034188.s | 2 +- arm9/asm/unk_02050E48.s | 12 +- arm9/asm/unk_020653EC.s | 2 +- arm9/asm/unk_02072548.s | 10 +- arm9/asm/unk_020772F0.s | 10 +- arm9/asm/unk_02089498.s | 4 +- arm9/asm/unk_02089960.s | 4 +- arm9/asm/unk_02089D90.s | 2 +- arm9/asm/unk_02089F24.s | 4 +- arm9/asm/unk_0208A338.s | 8 +- arm9/global.inc | 8 +- arm9/modules/05/asm/mod05_021E1AD8.s | 6 +- arm9/modules/05/asm/mod05_021E3444.s | 2 +- arm9/modules/05/asm/mod05_021E8310.s | 8 +- arm9/modules/06/asm/module_06.s | 6 +- arm9/modules/07/asm/module_07.s | 6 +- arm9/modules/09/asm/module_09.s | 12 +- arm9/modules/11/asm/module_11_thumb2.s | 2 +- arm9/modules/14/asm/module_14.s | 4 +- arm9/modules/15/asm/module_15.s | 14 +- arm9/modules/16/asm/module_16.s | 18 +- arm9/modules/18/asm/module_18.s | 4 +- arm9/modules/24/asm/module_24.s | 4 +- arm9/modules/27/asm/module_27.s | 4 +- arm9/modules/36/asm/module_36.s | 2 +- arm9/modules/53/asm/module_53.s | 2 +- arm9/modules/57/asm/module_57.s | 26 +- arm9/modules/59/asm/mod59_021D74E0_asm.s | 6 +- arm9/modules/59/asm/mod59_021D9868.s | 2 +- arm9/modules/60/asm/module_60.s | 2 +- arm9/modules/63/asm/mod63_021D74E0.s | 2 +- arm9/modules/65/asm/module_65.s | 8 +- arm9/modules/75/asm/module_75.s | 4 +- arm9/modules/77/asm/module_77.s | 18 +- arm9/modules/83/asm/module_83.s | 14 +- arm9/modules/84/asm/module_84_thumb2.s | 6 +- arm9/modules/86/asm/module_86.s | 4 +- arm9/src/error_message_reset.c | 4 +- arm9/src/list_menu.c | 155 +++++++++- arm9/src/script_buffers.c | 4 +- include/list_menu.h | 4 +- 48 files changed, 310 insertions(+), 516 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index d7a2c9f08..e814dda21 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -2,363 +2,14 @@ .include "global.inc" .extern gMain - .extern FUN_0200165C + .extern ListMenuPrint + .extern ListMenuPrintEntries + .extern ListMenuDrawCursor + .extern ListMenuErasePrintedCursor + .extern ListMenuUpdateSelectedRowIndexAndScrollOffset .text - thumb_func_start ListMenuPrintEntries -ListMenuPrintEntries: ; 0x02001714 - push {r4-r7, lr} - sub sp, #0x14 - add r5, r0, #0x0 - str r3, [sp, #0x0] - ldrh r0, [r5, #0x1a] - add r4, r1, #0x0 - mov r1, #0x1 - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - add r6, r2, #0x0 - bl FUN_02002E4C - ldrh r1, [r5, #0x1a] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1c - add r0, r1, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0x0] - cmp r0, #0x0 - ble _020017A6 -_02001748: - ldr r1, [r5, #0x0] - lsl r0, r4, #0x3 - str r0, [sp, #0x8] - add r0, r1, r0 - ldr r1, [r0, #0x4] - mov r0, #0x2 - mvn r0, r0 - cmp r1, r0 - beq _02001760 - ldrb r0, [r5, #0x15] - str r0, [sp, #0x4] - b _02001764 -_02001760: - ldrb r0, [r5, #0x14] - str r0, [sp, #0x4] -_02001764: - ldrb r0, [r5, #0x17] - lsl r0, r0, #0x1c - lsr r3, r0, #0x1c - ldr r0, [sp, #0xc] - add r2, r0, #0x0 - mul r2, r6 - add r0, r3, r2 - lsl r0, r0, #0x18 - ldr r3, [r5, #0x8] - lsr r7, r0, #0x18 - cmp r3, #0x0 - beq _02001782 - add r0, r5, #0x0 - add r2, r7, #0x0 - blx r3 -_02001782: - ldr r2, [r5, #0x0] - ldr r1, [sp, #0x8] - add r0, r5, #0x0 - ldr r1, [r2, r1] - ldr r2, [sp, #0x4] - add r3, r7, #0x0 - bl FUN_0200165C - add r0, r4, #0x1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, [sp, #0x10] - add r6, r6, #0x1 - add r1, r0, #0x1 - ldr r0, [sp, #0x0] - str r1, [sp, #0x10] - cmp r1, r0 - blt _02001748 -_020017A6: - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start ListMenuDrawCursor -ListMenuDrawCursor: ; 0x020017AC - push {r3-r5, lr} - add r4, r0, #0x0 - ldrh r0, [r4, #0x1a] - mov r1, #0x1 - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl FUN_02002E4C - ldrh r1, [r4, #0x1a] - ldrh r5, [r4, #0x2e] - lsl r2, r1, #0x19 - lsr r2, r2, #0x1c - add r0, r2, r0 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - ldrb r0, [r4, #0x17] - mul r3, r5 - ldrb r2, [r4, #0x16] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - add r0, r0, r3 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - lsl r0, r1, #0x10 - lsr r0, r0, #0x1f - cmp r0, #0x3 - bhi _02001802 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020017F2: ; jump table (using 16-bit offset) - .short _020017FA - _020017F2 - 2; case 0 - .short _02001802 - _020017F2 - 2; case 1 - .short _02001802 - _020017F2 - 2; case 2 - .short _02001802 - _020017F2 - 2; case 3 -_020017FA: - ldr r0, [r4, #0x28] - ldr r1, [r4, #0xc] - bl FUN_020136F8 -_02001802: - pop {r3-r5, pc} - - thumb_func_start FUN_02001804 -FUN_02001804: ; 0x02001804 - push {r3-r5, lr} - sub sp, #0x8 - add r4, r0, #0x0 - ldrh r0, [r4, #0x1a] - add r5, r1, #0x0 - lsl r1, r0, #0x10 - lsr r1, r1, #0x1f - cmp r1, #0x3 - bhi _02001868 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02001822: ; jump table (using 16-bit offset) - .short _0200182A - _02001822 - 2; case 0 - .short _02001868 - _02001822 - 2; case 1 - .short _02001868 - _02001822 - 2; case 2 - .short _02001868 - _02001822 - 2; case 3 -_0200182A: - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - mov r1, #0x1 - bl FUN_02002E4C - ldrh r1, [r4, #0x1a] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1c - add r0, r1, r0 - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - mov r0, #0x8 - str r0, [sp, #0x0] - mov r0, #0x10 - str r0, [sp, #0x4] - ldrb r1, [r4, #0x18] - ldr r0, [r4, #0xc] - ldrb r2, [r4, #0x16] - ldrb r4, [r4, #0x17] - lsl r1, r1, #0x1c - mul r3, r5 - lsl r4, r4, #0x1c - lsr r4, r4, #0x1c - add r3, r4, r3 - lsl r3, r3, #0x10 - lsr r1, r1, #0x1c - lsr r3, r3, #0x10 - bl FUN_020196F4 -_02001868: - add sp, #0x8 - pop {r3-r5, pc} - - thumb_func_start FUN_0200186C -FUN_0200186C: ; 0x0200186C - push {r4-r7} - ldrh r4, [r0, #0x2e] - ldrh r3, [r0, #0x2c] - cmp r1, #0x0 - ldrh r2, [r0, #0x12] - bne _020018FE - cmp r2, #0x1 - bne _02001880 - mov r1, #0x0 - b _02001898 -_02001880: - lsr r7, r2, #0x1f - lsl r6, r2, #0x1f - sub r6, r6, r7 - mov r5, #0x1f - ror r6, r5 - lsr r1, r2, #0x1 - add r5, r7, r6 - add r1, r1, r5 - sub r1, r2, r1 - sub r1, r1, #0x1 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 -_02001898: - cmp r3, #0x0 - bne _020018CC - cmp r4, #0x0 - beq _020018C6 - ldr r2, [r0, #0x0] - lsl r1, r3, #0x3 - mov r3, #0x2 - add r1, r2, r1 - mvn r3, r3 -_020018AA: - sub r2, r4, #0x1 - lsl r2, r2, #0x10 - lsr r4, r2, #0x10 - lsl r2, r4, #0x3 - add r2, r1, r2 - ldr r2, [r2, #0x4] - cmp r2, r3 - beq _020018C2 - strh r4, [r0, #0x2e] - mov r0, #0x1 - pop {r4-r7} - bx lr -_020018C2: - cmp r4, #0x0 - bne _020018AA -_020018C6: - mov r0, #0x0 - pop {r4-r7} - bx lr -_020018CC: - cmp r4, r1 - bls _020018F6 - ldr r5, [r0, #0x0] - lsl r2, r3, #0x3 - add r2, r5, r2 - mov r5, #0x2 - mvn r5, r5 -_020018DA: - sub r4, r4, #0x1 - lsl r4, r4, #0x10 - lsr r4, r4, #0x10 - lsl r6, r4, #0x3 - add r6, r2, r6 - ldr r6, [r6, #0x4] - cmp r6, r5 - beq _020018F2 - strh r4, [r0, #0x2e] - mov r0, #0x1 - pop {r4-r7} - bx lr -_020018F2: - cmp r4, r1 - bhi _020018DA -_020018F6: - strh r1, [r0, #0x2e] - sub r1, r3, #0x1 - strh r1, [r0, #0x2c] - b _02001984 -_020018FE: - cmp r2, #0x1 - bne _02001906 - mov r5, #0x0 - b _0200191A -_02001906: - lsr r7, r2, #0x1f - lsl r6, r2, #0x1f - sub r6, r6, r7 - mov r5, #0x1f - ror r6, r5 - lsr r1, r2, #0x1 - add r5, r7, r6 - add r1, r1, r5 - lsl r1, r1, #0x10 - lsr r5, r1, #0x10 -_0200191A: - ldrh r1, [r0, #0x10] - sub r1, r1, r2 - cmp r3, r1 - bne _02001954 - sub r2, r2, #0x1 - cmp r4, r2 - bge _0200194E - ldr r5, [r0, #0x0] - lsl r1, r3, #0x3 - add r1, r5, r1 - mov r5, #0x2 - mvn r5, r5 -_02001932: - add r3, r4, #0x1 - lsl r3, r3, #0x10 - lsr r4, r3, #0x10 - lsl r3, r4, #0x3 - add r3, r1, r3 - ldr r3, [r3, #0x4] - cmp r3, r5 - beq _0200194A - strh r4, [r0, #0x2e] - mov r0, #0x1 - pop {r4-r7} - bx lr -_0200194A: - cmp r4, r2 - blt _02001932 -_0200194E: - mov r0, #0x0 - pop {r4-r7} - bx lr -_02001954: - cmp r4, r5 - bhs _0200197E - ldr r2, [r0, #0x0] - lsl r1, r3, #0x3 - mov r6, #0x2 - add r1, r2, r1 - mvn r6, r6 -_02001962: - add r2, r4, #0x1 - lsl r2, r2, #0x10 - lsr r4, r2, #0x10 - lsl r2, r4, #0x3 - add r2, r1, r2 - ldr r2, [r2, #0x4] - cmp r2, r6 - beq _0200197A - strh r4, [r0, #0x2e] - mov r0, #0x1 - pop {r4-r7} - bx lr -_0200197A: - cmp r4, r5 - blo _02001962 -_0200197E: - strh r5, [r0, #0x2e] - add r1, r3, #0x1 - strh r1, [r0, #0x2c] -_02001984: - mov r0, #0x2 - pop {r4-r7} - bx lr - .balign 4 - thumb_func_start FUN_0200198C FUN_0200198C: ; 0x0200198C push {r3-r7, lr} @@ -388,7 +39,7 @@ _020019B8: lsr r0, r0, #0x1a lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_02002E4C + bl GetFontAttribute ldrh r1, [r5, #0x1a] lsl r1, r1, #0x19 lsr r1, r1, #0x1c @@ -444,7 +95,7 @@ _020019B8: lsl r1, r1, #0x1c lsr r1, r1, #0x1c add r3, r4, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0x8 pop {r3-r7, pc} _02001A46: @@ -487,7 +138,7 @@ _02001A46: ldr r0, [r5, #0xc] lsl r1, r1, #0x1c lsr r1, r1, #0x1c - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -511,7 +162,7 @@ ListMenuChangeSelection: ; 0x02001AA4 _02001AC0: ldr r1, [sp, #0x8] add r0, r4, #0x0 - bl FUN_0200186C + bl ListMenuUpdateSelectedRowIndexAndScrollOffset orr r5, r0 cmp r0, #0x2 bne _02001AEA @@ -560,7 +211,7 @@ _02001B14: _02001B1A: ldr r1, [sp, #0xc] add r0, r4, #0x0 - bl FUN_02001804 + bl ListMenuErasePrintedCursor add r0, r4, #0x0 bl ListMenuDrawCursor add r0, r4, #0x0 @@ -572,7 +223,7 @@ _02001B1A: _02001B38: ldr r1, [sp, #0xc] add r0, r4, #0x0 - bl FUN_02001804 + bl ListMenuErasePrintedCursor ldr r2, [sp, #0x8] add r0, r4, #0x0 add r1, r6, #0x0 diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 65ba52af7..c2e1a2453 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -57,20 +57,20 @@ FUN_02001B8C: ; 0x02001B8C strb r6, [r4, #0x17] strb r7, [r4, #0x18] ldrb r0, [r5, #0x8] - bl FUN_02002E4C + bl GetFontAttribute add r6, r0, #0x0 ldrb r0, [r5, #0x8] mov r1, #0x2 - bl FUN_02002E4C + bl GetFontAttribute add r0, r6, r0 strb r0, [r4, #0x19] ldrb r0, [r5, #0x8] mov r1, #0x1 - bl FUN_02002E4C + bl GetFontAttribute add r6, r0, #0x0 ldrb r0, [r5, #0x8] mov r1, #0x3 - bl FUN_02002E4C + bl GetFontAttribute add r0, r6, r0 strb r0, [r4, #0x1a] add r0, r4, #0x0 @@ -108,7 +108,7 @@ FUN_02001C34: ; 0x02001C34 add r6, r1, #0x0 add r4, r2, #0x0 mov r1, #0x0 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0x0 str r4, [sp, #0x0] mov r0, #0x2 @@ -420,7 +420,7 @@ FUN_02001E64: ; 0x02001E64 _02001E7C: ldrb r0, [r5, #0x8] mov r1, #0x6 - bl FUN_02002E4C + bl GetFontAttribute add r1, sp, #0x8 add r7, r0, #0x0 add r0, r5, #0x0 @@ -437,7 +437,7 @@ _02001E7C: ldrb r2, [r3, #0x1] ldrb r3, [r3, #0x0] ldr r0, [r5, #0x4] - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, #0x0 bl FUN_02002080 add r0, r6, #0x0 @@ -631,7 +631,7 @@ FUN_02001FF4: ; 0x02001FF4 add r5, r0, #0x0 ldrb r0, [r5, #0x8] mov r1, #0x6 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0x0 ldr r0, [r5, #0x4] bl FillWindowPixelBuffer @@ -718,7 +718,7 @@ FUN_02002080: ; 0x02002080 ldrb r3, [r3, #0x0] ldr r0, [r4, #0xc] ldr r1, [r4, #0x4] - bl FUN_020136F8 + bl ListMenuUpdateCursorObj _020020AA: add sp, #0x4 pop {r3-r4, pc} diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index 54d01d039..5b9bf77a2 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -193,7 +193,7 @@ _020024F2: mov r1, #0x1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x9] - bl FUN_02002E4C + bl GetFontAttribute ldrb r1, [r4, #0xf] ldrb r2, [r4, #0xd] add sp, #0xc @@ -520,7 +520,7 @@ _02002786: bl FUN_02002A00 ldrb r0, [r4, #0x9] mov r1, #0x1 - bl FUN_02002E4C + bl GetFontAttribute ldrb r1, [r4, #0xf] add r1, r1, r0 add r0, r4, #0x0 diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s index c4049d4b6..740dca10d 100644 --- a/arm9/asm/unk_02002C14.s +++ b/arm9/asm/unk_02002C14.s @@ -327,8 +327,8 @@ _02002E2E: .balign 4 _02002E48: .word UNK_02106FC8 - thumb_func_start FUN_02002E4C -FUN_02002E4C: ; 0x02002E4C + thumb_func_start GetFontAttribute +GetFontAttribute: ; 0x02002E4C mov r2, #0x0 cmp r1, #0x7 bhi _02002EAC diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index 92e460b65..c3ed22aa4 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1546,8 +1546,8 @@ _020136F4: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020136F8 -FUN_020136F8: ; 0x020136F8 + thumb_func_start ListMenuUpdateCursorObj +ListMenuUpdateCursorObj: ; 0x020136F8 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index a050d569f..9a6e152f3 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -5999,8 +5999,8 @@ _020196D6: pop {r4-r5, pc} .balign 4 - thumb_func_start FUN_020196F4 -FUN_020196F4: ; 0x020196F4 + thumb_func_start FillWindowPixelRect +FillWindowPixelRect: ; 0x020196F4 push {r3-r5, lr} sub sp, #0x10 add r5, r1, #0x0 diff --git a/arm9/asm/unk_02033F50.s b/arm9/asm/unk_02033F50.s index a5439dfee..ed33e0842 100644 --- a/arm9/asm/unk_02033F50.s +++ b/arm9/asm/unk_02033F50.s @@ -198,7 +198,7 @@ _02033FA4: add r0, sp, #0x18 mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _0203417C ; =0x000001F7 add r0, sp, #0x18 mov r1, #0x0 diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s index 44144564c..082658353 100644 --- a/arm9/asm/unk_02034188.s +++ b/arm9/asm/unk_02034188.s @@ -138,7 +138,7 @@ FUN_02034188: ; 0x02034188 add r0, sp, #0x14 mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _0203438C ; =0x000001F7 add r0, sp, #0x14 mov r1, #0x0 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index 95b46dc5c..70ba73b0e 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1769,14 +1769,14 @@ _02051C34: lsr r0, r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x20] - bl FUN_020196F4 + bl FillWindowPixelRect ldr r3, [sp, #0x14] add r1, r5, #0x0 ldr r0, [r5, #0x78] add r1, #0x54 mov r2, #0x0 lsl r3, r3, #0x4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj add r0, r5, #0x0 add r0, #0x54 mov r1, #0x0 @@ -1880,13 +1880,13 @@ _02051D0A: str r0, [sp, #0x4] add r0, r7, #0x0 add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r3, [sp, #0x14] ldr r0, [r5, #0x78] ldr r1, [r5, #0x7c] mov r2, #0x0 lsl r3, r3, #0x4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj ldr r0, [r5, #0x7c] mov r1, #0x0 mov r2, #0x1 @@ -1987,14 +1987,14 @@ _02051DE0: lsr r1, r1, #0x10 str r1, [sp, #0x4] mov r1, #0xf - bl FUN_020196F4 + bl FillWindowPixelRect mov r3, #0x81 ldrsb r3, [r4, r3] ldr r0, [r4, #0x78] ldr r1, [r4, #0x7c] mov r2, #0x0 lsl r3, r3, #0x4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj ldr r0, [r4, #0x7c] bl FUN_02019548 mov r0, #0x0 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 5e09d0a61..003e13309 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -2066,7 +2066,7 @@ _02066426: add r0, r5, r1 mov r1, #0xff add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x1 bl FUN_02002B60 mov r0, #0x0 diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index 901eea031..03f7c540a 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -870,7 +870,7 @@ FUN_02072BBC: ; 0x02072BBC add r0, r5, r4 mov r2, #0x4 add r3, r1, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, r4 bl FUN_02019220 add sp, #0x8 @@ -1000,7 +1000,7 @@ _02072CBE: mov r1, #0xa mov r2, #0x0 mov r3, #0x2 - bl FUN_020196F4 + bl FillWindowPixelRect str r5, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] @@ -1008,7 +1008,7 @@ _02072CBE: mov r1, #0x9 mov r2, #0x0 mov r3, #0x3 - bl FUN_020196F4 + bl FillWindowPixelRect str r5, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] @@ -1016,7 +1016,7 @@ _02072CBE: mov r1, #0xa mov r2, #0x0 mov r3, #0x5 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc @@ -2158,7 +2158,7 @@ FUN_0207363C: ; 0x0207363C mov r1, #0xf mov r2, #0x50 mov r3, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _020736E8 ; =0x0000069C mov r1, #0xc0 ldr r0, [r5, r0] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 6ed83b149..7a0741862 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -5219,7 +5219,7 @@ _0207976C: add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 @@ -5229,7 +5229,7 @@ _0207976C: add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x26 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 @@ -5239,7 +5239,7 @@ _0207976C: add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x4c - bl FUN_020196F4 + bl FillWindowPixelRect add r7, r7, #0x1 add r6, #0x20 cmp r7, #0x6 @@ -5256,7 +5256,7 @@ _020797BA: add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x13 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 @@ -5266,7 +5266,7 @@ _020797BA: add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x39 - bl FUN_020196F4 + bl FillWindowPixelRect add r7, r7, #0x1 add r6, #0x20 cmp r7, #0x7 diff --git a/arm9/asm/unk_02089498.s b/arm9/asm/unk_02089498.s index b4c7a133f..3facd1829 100644 --- a/arm9/asm/unk_02089498.s +++ b/arm9/asm/unk_02089498.s @@ -360,7 +360,7 @@ FUN_02089734: ; 0x02089734 add r0, r4, #0x0 mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0x8 pop {r4, pc} nop @@ -539,7 +539,7 @@ _020898B8: mov r1, #0xf add r2, r6, #0x0 add r3, r6, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, #0x0 ldr r2, _02089958 ; =0x000001E2 add r0, #0x1c diff --git a/arm9/asm/unk_02089960.s b/arm9/asm/unk_02089960.s index 4502d1f98..9c06a4ab7 100644 --- a/arm9/asm/unk_02089960.s +++ b/arm9/asm/unk_02089960.s @@ -299,7 +299,7 @@ FUN_02089B80: ; 0x02089B80 add r0, r4, #0x0 mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0x8 pop {r4, pc} nop @@ -466,7 +466,7 @@ _02089CE8: mov r1, #0xf add r2, r6, #0x0 add r3, r6, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, #0x0 ldr r2, _02089D88 ; =0x000001E2 add r0, #0x20 diff --git a/arm9/asm/unk_02089D90.s b/arm9/asm/unk_02089D90.s index 92b9e9875..e7b882726 100644 --- a/arm9/asm/unk_02089D90.s +++ b/arm9/asm/unk_02089D90.s @@ -137,7 +137,7 @@ FUN_02089D90: ; 0x02089D90 add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _02089F18 ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 diff --git a/arm9/asm/unk_02089F24.s b/arm9/asm/unk_02089F24.s index b678254ce..b5c93a8ad 100644 --- a/arm9/asm/unk_02089F24.s +++ b/arm9/asm/unk_02089F24.s @@ -141,7 +141,7 @@ FUN_02089F24: ; 0x02089F24 add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _0208A0AC ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 @@ -310,7 +310,7 @@ _0208A0C8: add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _0208A24C ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index f1e7c3570..3b40567c2 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -583,7 +583,7 @@ _0208A7D2: ldr r0, [r5, #0x14] add r1, r7, #0x0 add r3, r2, #0x0 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj _0208A808: str r7, [r5, #0x68] mov r1, #0x0 @@ -671,7 +671,7 @@ _0208A882: ldr r0, [r5, #0x14] add r1, r7, #0x0 add r3, r2, #0x0 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj _0208A8B8: str r7, [r5, #0x68] mov r1, #0x0 @@ -771,13 +771,13 @@ _0208A954: lsr r1, r1, #0x10 str r1, [sp, #0x4] mov r1, #0xf - bl FUN_020196F4 + bl FillWindowPixelRect ldr r3, [r4, #0x5c] ldr r0, [r4, #0x14] ldr r1, [r4, #0x68] mov r2, #0x0 lsl r3, r3, #0x4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj ldr r0, [r4, #0x68] bl FUN_02019548 ldr r0, _0208A994 ; =0x000005DC diff --git a/arm9/global.inc b/arm9/global.inc index 8c0a01db8..1debdc23b 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -201,7 +201,7 @@ .extern FUN_02001464 .extern ListMenuGetTemplateField .extern ListMenuSetTemplateField -.extern ListMenuPrint +.extern ListMenuGetItemStr .extern FUN_02001B80 .extern FUN_02001B8C .extern FUN_02001C14 @@ -236,7 +236,7 @@ .extern FontFunc .extern FUN_02002DE0 .extern FUN_02002E14 -.extern FUN_02002E4C +.extern GetFontAttribute .extern FUN_02002ED0 .extern FUN_02002EEC .extern FUN_02002F08 @@ -885,7 +885,7 @@ .extern FUN_02013690 .extern DestroyListMenuCursorObj .extern CreateListMenuCursorObj -.extern FUN_020136F8 +.extern ListMenuUpdateCursorObj .extern MailMsg_init .extern MailMsg_init_withBank .extern MailMsg_init_default @@ -1101,7 +1101,7 @@ .extern FillWindowPixelBuffer .extern FUN_02019658 .extern FUN_02019684 -.extern FUN_020196F4 +.extern FillWindowPixelRect .extern FUN_0201974C .extern FUN_0201A8C8 .extern FUN_0201AB08 diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index d9ec58bf8..36e4432ad 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -1259,7 +1259,7 @@ MOD05_021E2464: ; 0x021E2464 add r5, r0, #0 add r0, r4, #0 add r1, r0, #0 - bl FUN_02002E4C + bl GetFontAttribute lsl r1, r0, #3 mov r0, #7 tst r0, r1 @@ -1318,7 +1318,7 @@ _021E2496: add r0, #8 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r2, #0 add r0, r5, #0 mov r1, #0xf @@ -1807,7 +1807,7 @@ MOD05_021E28A0: ; 0x021E28A0 mov r1, #0xf mov r2, #0 str r3, [sp, #4] - bl FUN_020196F4 + bl FillWindowPixelRect mov r2, #0x7a mov r0, #0 mov r1, #0x1a diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index 27446591e..ea709996f 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1989,7 +1989,7 @@ _021E4370: ldrb r1, [r1, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect _021E4390: add sp, #8 pop {r3, r4, r5, pc} diff --git a/arm9/modules/05/asm/mod05_021E8310.s b/arm9/modules/05/asm/mod05_021E8310.s index 08407e834..5bf27853a 100644 --- a/arm9/modules/05/asm/mod05_021E8310.s +++ b/arm9/modules/05/asm/mod05_021E8310.s @@ -139,11 +139,11 @@ MOD05_021E8410: ; 0x021E8410 add r5, r0, #0 mov r0, #0 mov r1, #1 - bl FUN_02002E4C + bl GetFontAttribute add r4, r0, #0 mov r0, #0 mov r1, #3 - bl FUN_02002E4C + bl GetFontAttribute add r0, r4, r0 str r0, [sp, #0x14] mov r4, #0 @@ -204,7 +204,7 @@ _021E846E: add r6, r0, #0 mov r0, #0 mov r1, #2 - bl FUN_02002E4C + bl GetFontAttribute add r2, r0, #0 mov r0, #0 add r1, r6, #0 @@ -276,7 +276,7 @@ MOD05_021E84F4: ; 0x021E84F4 bl FUN_0200CB00 mov r0, #0 mov r1, #6 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0 ldr r0, [r4, #0x10] bl FillWindowPixelBuffer diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index fbe98b2bd..fcf63fe5a 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9491,7 +9491,7 @@ _0223DF1C: mov r1, #0xf mov r2, #0 str r3, [sp, #4] - bl FUN_020196F4 + bl FillWindowPixelRect _0223DF30: mov r0, #0x10 mov r1, #0xb @@ -11680,7 +11680,7 @@ _0223F11A: add r0, #0x20 mov r2, #8 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, sp, #0xc ldrh r2, [r0] cmp r2, r4 @@ -12160,7 +12160,7 @@ _0223F53C: mov r2, #8 add r0, #0x20 mov r3, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _0223F580 ; =0x02252420 mov r1, #0 ldr r0, [r0] diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 48e34649c..1110fa5c9 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -4858,7 +4858,7 @@ _0221459E: mov r1, #0xa mov r2, #0 mov r3, #2 - bl FUN_020196F4 + bl FillWindowPixelRect lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp] @@ -4868,7 +4868,7 @@ _0221459E: mov r1, #9 mov r2, #0 mov r3, #3 - bl FUN_020196F4 + bl FillWindowPixelRect lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp] @@ -4878,7 +4878,7 @@ _0221459E: mov r1, #0xa mov r2, #0 mov r3, #5 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0xc pop {r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index ade67f558..9b2367ba7 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -4419,7 +4419,7 @@ _0221415E: add r0, r0, r5 lsr r1, r1, #0x18 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [sp, #0x14] add r3, r6, #2 str r0, [sp] @@ -4432,7 +4432,7 @@ _0221415E: add r0, r0, r5 add r1, r7, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [sp, #0x14] ldr r1, [sp, #0x10] str r0, [sp] @@ -4447,7 +4447,7 @@ _0221415E: add r0, r0, r5 lsr r1, r1, #0x18 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _022141D4 ; =0x00002070 ldr r0, [r4, r0] add r0, r0, r5 @@ -6673,7 +6673,7 @@ MOD09_022154FC: ; 0x022154FC mov r1, #0 lsr r2, r2, #0x10 mov r3, #0x18 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _022155C4 ; =0x00001FA8 mov r1, #0x2c ldr r0, [r5, r0] @@ -6828,7 +6828,7 @@ MOD09_0221567C: ; 0x0221567C add r0, r0, r4 mov r2, #0x38 mov r3, #0x20 - bl FUN_020196F4 + bl FillWindowPixelRect mov r2, #0x40 str r2, [sp] mov r0, #8 @@ -6838,7 +6838,7 @@ MOD09_0221567C: ; 0x0221567C ldr r0, [r5, r0] mov r3, #0x18 add r0, r0, r4 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x20 str r0, [sp] add r0, r5, #0 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 6f66fe903..962280d66 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -23987,7 +23987,7 @@ _0223ADBA: mov r2, #0x50 mov r3, #0 add r7, r0, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 str r1, [sp, #0x4c] add r5, sp, #0xb0 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 9399db6ea..8f54eb98c 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -21221,7 +21221,7 @@ MOD14_021E1B9C: ; 0x021E1B9C mov r1, #0xf mov r2, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect add r6, #0x20 ldrb r2, [r6] add r0, r4, #0 @@ -27058,7 +27058,7 @@ _021E47AE: ldrh r3, [r5, #2] add r0, r7, #0 mov r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #2 ldrsh r0, [r5, r0] mov r1, #0 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 0b2abaab1..fbf194995 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -5135,7 +5135,7 @@ MOD15_021D9C30: ; 0x021D9C30 ldrh r3, [r3, #2] add r0, r4, #0 mov r1, #0xe - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0xc pop {r3, r4, pc} @@ -5509,7 +5509,7 @@ MOD15_021D9ECC: ; 0x021D9ECC add r1, #0x2c mov r2, #0 lsl r3, r4, #4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj add r5, #0x2c add r0, r5, #0 bl CopyWindowToVram @@ -5533,13 +5533,13 @@ MOD15_021D9F58: ; 0x021D9F58 add r0, #0x2c mov r1, #9 add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [r5, #0x50] add r5, #0x2c add r1, r5, #0 mov r2, #0 lsl r3, r4, #4 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj add sp, #8 pop {r3, r4, r5, pc} @@ -7291,7 +7291,7 @@ _021DAD1A: add r0, r5, #0 add r2, r1, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #8 pop {r3, r4, r5, pc} _021DAD3E: @@ -7308,7 +7308,7 @@ _021DAD3E: add r0, #0x10 add r2, r1, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xd0 str r0, [sp] @@ -7319,7 +7319,7 @@ _021DAD3E: add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #8 pop {r3, r4, r5, pc} diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 68e9336c8..0b9a1de79 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -17058,7 +17058,7 @@ MOD16_021DF350: ; 0x021DF350 mov r1, #0 mov r2, #0x18 mov r3, #8 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r6, #3 bhi _021DF394 add r0, r6, r6 @@ -17135,7 +17135,7 @@ MOD16_021DF3E4: ; 0x021DF3E4 mov r1, #0 mov r2, #0x18 mov r3, #8 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #0x5d add r1, r5, #0 bl MOD16_021D8270 @@ -17387,7 +17387,7 @@ MOD16_021DF5D0: ; 0x021DF5D0 mov r1, #0 mov r2, #0x58 mov r3, #0x34 - bl FUN_020196F4 + bl FillWindowPixelRect add r5, #0x51 add r0, r5, #0 add r1, r6, #0 @@ -17433,7 +17433,7 @@ MOD16_021DF630: ; 0x021DF630 mov r1, #0 mov r2, #0x58 mov r3, #0x4d - bl FUN_020196F4 + bl FillWindowPixelRect cmp r6, #9 bhi _021DF698 add r0, r6, r6 @@ -17529,7 +17529,7 @@ MOD16_021DF6D8: ; 0x021DF6D8 mov r1, #0 mov r2, #0x58 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r6, #0x11 bhi _021DF774 add r0, r6, r6 @@ -41593,7 +41593,7 @@ MOD16_021EA858: ; 0x021EA858 add r2, r1, #0 add r0, r0, #4 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [r4] mov r1, #1 ldr r0, [r0] @@ -41901,7 +41901,7 @@ MOD16_021EAAA4: ; 0x021EAAA4 mov r1, #0 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r1, [sp, #0x38] ldr r0, [sp, #0xc] mov r6, #0 @@ -42016,7 +42016,7 @@ _021EABA2: mov r1, #6 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect str r5, [r4] add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -42049,7 +42049,7 @@ MOD16_021EABC4: ; 0x021EABC4 mov r1, #0 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r5, r6 bge _021EAC18 _021EABFE: diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 6f55f226f..7810113ce 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22140,7 +22140,7 @@ _022440F0: ldr r0, [r4, #0x10] ldr r2, [sp] add r3, r5, r3 - bl FUN_020136F8 + bl ListMenuUpdateCursorObj _0224413A: add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -22312,7 +22312,7 @@ _02244268: ldr r1, [sp] str r0, [r5, #8] ldr r0, [sp, #4] - bl ListMenuPrint + bl ListMenuGetItemStr mov r0, #0 strb r0, [r5, #0x1c] ldr r0, [sp, #4] diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index 19ece4741..a069571e3 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -987,7 +987,7 @@ _02254F80: mov r1, #4 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect asr r1, r5, #3 mov r2, #0x14 asr r0, r6, #3 @@ -1048,7 +1048,7 @@ _02254FF2: mov r1, #1 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [r7, #0x70] mov r2, #0x20 ldr r1, [r0, #0xc] diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 9fa91fb47..0dac7728b 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -834,7 +834,7 @@ MOD27_02254EAC: ; 0x02254EAC mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r4, #0 beq _02254EE0 lsl r0, r4, #0x10 @@ -846,7 +846,7 @@ MOD27_02254EAC: ; 0x02254EAC add r0, r5, #0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect _02254EE0: add r0, r5, #0 bl FUN_02019548 diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index 2bbabb41b..6a1e0245a 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -1205,7 +1205,7 @@ MOD36_0225510C: ; 0x0225510C mov r1, #1 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r1, [r4, #0x54] lsl r0, r5, #5 add r0, r1, r0 diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 42385e75b..93468fe64 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -3429,7 +3429,7 @@ _021D906C: add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r6, r6, #1 add r4, #0x10 cmp r6, #5 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 39e977cc2..463396abd 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -2689,7 +2689,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r2, r1, #0 add r3, r1, #0 add r7, r0, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0x88 str r0, [sp] @@ -2699,7 +2699,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x10 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0x88 str r0, [sp] @@ -2709,7 +2709,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x20 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0x88 str r0, [sp] @@ -2719,7 +2719,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x30 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0x88 str r0, [sp] @@ -2729,7 +2729,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x40 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -2739,7 +2739,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x50 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -2749,7 +2749,7 @@ MOD57_021D89F0: ; 0x021D89F0 add r0, #0x60 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _021D8CEC ; =0x0000022D mov r0, #0 mov r1, #0x1a @@ -3042,7 +3042,7 @@ MOD57_021D8CF8: ; 0x021D8CF8 add r0, #0x70 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -3052,7 +3052,7 @@ MOD57_021D8CF8: ; 0x021D8CF8 add r0, #0x80 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -3062,7 +3062,7 @@ MOD57_021D8CF8: ; 0x021D8CF8 add r0, #0x90 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #0xe0 str r0, [sp] @@ -3072,7 +3072,7 @@ MOD57_021D8CF8: ; 0x021D8CF8 add r0, #0xa0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _021D8FAC ; =0x0000022D mov r0, #0 mov r1, #0x1a @@ -3455,7 +3455,7 @@ _021D906E: add r0, #0x50 mov r2, #0xb8 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r2, _021D913C ; =0x0000022D mov r0, #0 mov r1, #0x1a @@ -3558,7 +3558,7 @@ _021D9164: mov r1, #0 mov r2, #0xcd add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r4, #0 bl CopyWindowToVram add sp, #0x10 diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index dbad5e9c2..d89153a3d 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -883,7 +883,7 @@ _021D7C5E: add r0, #0x1c mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, #0 ldr r2, _021D7D60 ; =0x000003E2 add r0, #0x1c @@ -1234,7 +1234,7 @@ _021D7EFA: add r0, #0x1c add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r1, r5, #0 str r1, [sp] ldr r0, _021D8048 ; =0x00010200 @@ -1273,7 +1273,7 @@ _021D7F7C: add r0, #0x1c add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r1, r5, #0 str r1, [sp] ldr r0, _021D804C ; =0x000F0200 diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s index 6d2d6e6b5..370d58b1f 100644 --- a/arm9/modules/59/asm/mod59_021D9868.s +++ b/arm9/modules/59/asm/mod59_021D9868.s @@ -536,7 +536,7 @@ _021D9C9A: add r0, #0x10 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r5, #0 add r1, r6, #0 add r2, r0, #0 diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index c01c83ffa..fa7752a8a 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -1209,7 +1209,7 @@ MOD60_021D7EA4: ; 0x021D7EA4 mov r1, #0xff lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [sp, #0x14] cmp r0, #5 bne _021D7F26 diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index a323b642c..11daacd01 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -2064,7 +2064,7 @@ _021D844C: add r0, #0xac add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add r0, r7, #0 mov r1, #0 add r2, r4, #0 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index 44e0d1a20..dca4005ba 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -1404,7 +1404,7 @@ _021D7FCA: add r0, r5, r0 mov r1, #0xff add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #1 bl FUN_02002B60 mov r0, #0 @@ -1711,7 +1711,7 @@ MOD65_021D8214: ; 0x021D8214 add r0, #0xe8 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r4, #0 beq _021D823E add r0, r5, #0 @@ -1953,7 +1953,7 @@ _021D83D2: mov r1, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldrb r1, [r4, #0x1b] cmp r1, #5 bne _021D8434 @@ -2140,7 +2140,7 @@ _021D8578: add r0, #0xf8 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect cmp r5, #0xff bne _021D85B4 add r0, r4, #0 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 32ceb7777..51a9bfa5d 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -8646,7 +8646,7 @@ MOD75_021EAFB0: ; 0x021EAFB0 add r0, r5, #4 add r2, r1, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 str r4, [sp] mov r0, #0xff @@ -9686,7 +9686,7 @@ _021EB854: mov r1, #0xf mov r2, #0 str r3, [sp, #4] - bl FUN_020196F4 + bl FillWindowPixelRect _021EB866: mov r0, #0x45 lsl r0, r0, #2 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 01cab9b70..838cf1c82 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -601,7 +601,7 @@ _021D79D0: add r0, r4, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D7B7C ; =0x0000C034 ldr r2, _021D7B80 ; =0x000001D9 add r0, r4, r0 @@ -656,7 +656,7 @@ _021D7A4E: add r0, r4, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D7B84 ; =0x0000C314 ldr r1, [r4, r0] cmp r1, #0 @@ -1432,7 +1432,7 @@ MOD77_021D7FAC: ; 0x021D7FAC add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D8224 ; =0x0000C014 ldr r2, _021D8214 ; =0x000001E2 add r0, r5, r0 @@ -1565,7 +1565,7 @@ MOD77_021D7FAC: ; 0x021D7FAC add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D8244 ; =0x0000C060 mov r1, #0xc ldr r0, [r5, r0] @@ -1671,7 +1671,7 @@ _021D82B0: mov r1, #0xf add r2, r4, #0 add r3, r4, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r0, #1 ldr r1, [r5] lsl r0, r0, #0xa @@ -1978,7 +1978,7 @@ MOD77_021D8510: ; 0x021D8510 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D85CC ; =0x0000C044 ldr r2, _021D85D0 ; =0x000001D9 add r0, r5, r0 @@ -2067,7 +2067,7 @@ MOD77_021D85E0: ; 0x021D85E0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D8690 ; =0x0000C044 ldr r2, _021D8694 ; =0x000001D9 add r0, r5, r0 @@ -2159,7 +2159,7 @@ MOD77_021D86B4: ; 0x021D86B4 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, _021D8810 ; =0x0000C060 mov r1, #0xe ldr r0, [r5, r0] @@ -2245,7 +2245,7 @@ _021D8748: add r0, r5, r0 mov r1, #0xf add r3, r2, #0 - bl FUN_020196F4 + bl FillWindowPixelRect ldr r0, [r5] add r2, r7, #0 str r0, [sp] diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 8551901e1..36b862f43 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -901,7 +901,7 @@ MOD83_0222DCA0: ; 0x0222DCA0 add r5, r0, #0 mov r0, #0 mov r1, #2 - bl FUN_02002E4C + bl GetFontAttribute add r2, r0, #0 mov r0, #0 add r1, r5, #0 @@ -2926,7 +2926,7 @@ MOD83_0222EC78: ; 0x0222EC78 add r1, #0xf8 str r0, [r1] mov r1, #1 - bl FUN_02002E4C + bl GetFontAttribute add r2, r0, #0 add r0, r5, #0 add r0, #0xf0 @@ -5990,7 +5990,7 @@ MOD83_0223050C: ; 0x0223050C str r0, [r4, #0xc] mov r0, #1 mov r1, #6 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0 add r0, r5, #0 bl FillWindowPixelBuffer @@ -6056,7 +6056,7 @@ MOD83_022305A4: ; 0x022305A4 bl CopyU16ArrayToStringN mov r0, #0 mov r1, #6 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0 add r0, r5, #0 bl FillWindowPixelBuffer @@ -8235,7 +8235,7 @@ MOD83_022317A8: ; 0x022317A8 add r6, r0, #0 mov r0, #1 mov r1, #6 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0 add r0, r5, #0 bl FillWindowPixelBuffer @@ -9122,7 +9122,7 @@ _02231EBE: lsl r1, r1, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 - bl FUN_02002E4C + bl GetFontAttribute add r1, r0, #0 add r0, r6, #0 bl FillWindowPixelBuffer @@ -23133,7 +23133,7 @@ _022389D0: mov r1, #2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_02002E4C + bl GetFontAttribute add r2, r0, #0 ldr r0, [r5, #0x40] add r1, r4, #0 diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 969429f04..a843354a1 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -786,7 +786,7 @@ _021D86E0: ldr r0, [r5, #0x24] add r2, r1, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect b _021D8754 _021D8718: add r1, r3, #0 @@ -803,7 +803,7 @@ _021D8718: ldr r0, [r5, #0x24] add r2, r1, #0 lsr r3, r3, #0x10 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #0 mov r0, #1 lsl r0, r0, #8 @@ -816,7 +816,7 @@ _021D8718: ldr r0, [r5, #0x24] add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect _021D8754: mov r0, #1 str r0, [r5, #0x18] diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s index 08651acb2..db86339df 100644 --- a/arm9/modules/86/asm/module_86.s +++ b/arm9/modules/86/asm/module_86.s @@ -504,7 +504,7 @@ MOD86_021D78D4: ; 0x021D78D4 add r0, #0x14 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect mov r1, #4 add r0, sp, #8 strb r1, [r0] @@ -523,7 +523,7 @@ MOD86_021D78D4: ; 0x021D78D4 add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_020196F4 + bl FillWindowPixelRect add sp, #0x10 pop {r4, pc} .align 2, 0 diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index f70fec0f4..6bff812ac 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -27,7 +27,7 @@ extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); extern void FUN_02017FE4(u32 param0, u32 param1); extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2); -extern void FUN_020196F4(u32 *, u8, u16, u16, u16, u16); +extern void FillWindowPixelRect(u32 *, u8, u16, u16, u16, u16); extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); @@ -98,7 +98,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() FUN_0201BD5C(); FUN_02019150(ptr, buf, UNK_020FF49C); - FUN_020196F4(buf, 15, 0, 0, 0xd0, 0x90); + FillWindowPixelRect(buf, 15, 0, 0, 0xd0, 0x90); FUN_0200CCA4(buf, 0, 0x1f7, 2); ReadMsgDataIntoString(msg_data, 3, str); diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 8dec327dc..f54db3028 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -4,6 +4,7 @@ #include "list_menu.h" extern void * FUN_02013690(u32 heap_id); +extern void * ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y); extern void CreateListMenuCursorObj(void *, u32); extern void DestroyListMenuCursorObj(void *); extern void FillWindowPixelBuffer(struct Window *, u32); @@ -12,7 +13,8 @@ void ListMenuDrawCursor(struct ListMenu *); BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32); void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); -extern s32 FUN_02002E4C(u8 fontId, s32 attr); +extern s32 GetFontAttribute(u8 fontId, s32 attr); +extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height); static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal) { @@ -223,7 +225,7 @@ THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) case 8: return (s32)list->template.upText_Y; case 9: - return FUN_02002E4C(list->template.fontId, 1) + list->template.itemVerticalPadding; + return GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; case 10: return (s32)list->template.cursorPal; case 11: @@ -239,7 +241,7 @@ THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) case 16: return (s32)list->template.fontId; case 17: - return (s32)list->template.unk_1B_7; + return (s32)list->template.cursorKind; case 18: return (s32)list->template.window; case 19: @@ -303,7 +305,7 @@ THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 v list->template.fontId = (u8)value; break; case 17: - list->template.unk_1B_7 = (u8)value; + list->template.cursorKind = (u8)value; break; case 18: list->template.window = (struct Window *)value; @@ -314,12 +316,12 @@ THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 v } } -THUMB_FUNC void ListMenuPrint(struct ListMenu * list, struct ListMenuItem * items) +THUMB_FUNC void ListMenuGetItemStr(struct ListMenu * list, struct ListMenuItem * items) { list->template.items = items; } -THUMB_FUNC void FUN_0200165C(struct ListMenu * list, const u16 * str, u8 x, u8 y) +THUMB_FUNC void ListMenuPrint(struct ListMenu * list, const u16 * str, u8 x, u8 y) { if (str != NULL) { @@ -333,3 +335,144 @@ THUMB_FUNC void FUN_0200165C(struct ListMenu * list, const u16 * str, u8 x, u8 y } } } + +THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 yOffset, u16 count) +{ + s32 i; + u8 x, y; + u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + + for (i = 0; i < count; i++) + { + if (list->template.items[startIndex].index != LIST_HEADER) + x = list->template.item_X; + else + x = list->template.header_X; + y = (yOffset + i) * yMultiplier + list->template.upText_Y; + if (list->template.itemPrintFunc != NULL) + list->template.itemPrintFunc(list, list->template.items[startIndex].index, y); + ListMenuPrint(list, list->template.items[startIndex].text, x, y); + startIndex++; + } +} + +THUMB_FUNC void ListMenuDrawCursor(struct ListMenu * list) +{ + u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 x = list->template.cursor_X; + u8 y = list->itemsAbove * yMultiplier + list->template.upText_Y; + switch (list->template.cursorKind) + { + case 0: + ListMenuUpdateCursorObj(list->cursor, list->template.window, x, y); + break; + case 1: + case 2: // leftover + case 3: // leftover + break; + } +} + +THUMB_FUNC void ListMenuErasePrintedCursor(struct ListMenu * list, u16 itemsAbove) +{ + switch (list->template.cursorKind) + { + case 0: + u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 width = 8; + u8 height = 16; + FillWindowPixelRect(list->template.window, + list->template.fillValue, + list->template.cursor_X, + itemsAbove * yMultiplier + list->template.upText_Y, + width, + height); + break; + case 1: + case 2: // leftover + case 3: // leftover + break; + } +} + +THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, u8 movingDown) +{ + u32 cursorPos; + u16 itemsAbove; + u16 newRow; + + itemsAbove = list->itemsAbove; + cursorPos = list->cursorPos; + + if (!movingDown) + { + if (list->template.maxShowed == 1) + newRow = 0; + else + newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1; + + if (cursorPos == 0) + { + while (itemsAbove != 0) + { + itemsAbove--; + if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + { + list->itemsAbove = itemsAbove; + return 1; + } + } + return 0; + } + else + { + while (itemsAbove > newRow) + { + itemsAbove--; + if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + { + list->itemsAbove = itemsAbove; + return 1; + } + } + list->itemsAbove = newRow; + list->cursorPos = cursorPos - 1; + } + } + else + { + if (list->template.maxShowed == 1) + newRow = 0; + else + newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)); + + if (cursorPos == list->template.totalItems - list->template.maxShowed) + { + while (itemsAbove < list->template.maxShowed - 1) + { + itemsAbove++; + if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + { + list->itemsAbove = itemsAbove; + return 1; + } + } + return 0; + } + else + { + while (itemsAbove < newRow) + { + itemsAbove++; + if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + { + list->itemsAbove = itemsAbove; + return 1; + } + } + list->itemsAbove = newRow; + list->cursorPos = cursorPos + 1; + } + } + return 2; +} diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index e9a55051b..55ceca6ab 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -22,7 +22,7 @@ extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4); extern void FUN_02019658(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16); -extern void FUN_020196F4(int, u8, u16, u16, u16, u16); +extern void FillWindowPixelRect(int, u8, u16, u16, u16, u16); const u16 UNK_020ECE6C[][2] = { { 0x0140, 0x0008 }, @@ -819,7 +819,7 @@ void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum Pri } else { - FUN_020196F4(sp30, (u8)string->unk_28, (u16)r5, (u16)r7, 8, 8); + FillWindowPixelRect(sp30, (u8)string->unk_28, (u16)r5, (u16)r7, 8, 8); } r5 += 8; } diff --git a/include/list_menu.h b/include/list_menu.h index 0be1a32a6..966a942aa 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -29,7 +29,7 @@ struct ListMenuItem // A lot of these are named based on similar fields in gen 3. typedef void (*LM_MOVECURSORFUNC)(s32, u8, struct ListMenu *); -typedef void (*LM_ITEMPRINTFUNC)(struct Window *, s32, u8); +typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *, s32, u8); struct ListMenuTemplate { @@ -50,7 +50,7 @@ struct ListMenuTemplate u16 itemVerticalPadding:4; u16 scrollMultiple:2; u16 fontId:6; - u16 unk_1B_7:1; + u16 cursorKind:1; /*0x1C*/ u32 unk_1C; }; From c49b55a8f94b6b74fe35b8e6994551dc33a4ff6f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 14:01:31 -0400 Subject: [PATCH 076/134] ListMenuScroll --- arm9/asm/unk_020010A8.s | 136 +------------------------------- arm9/asm/unk_020023C0.s | 8 +- arm9/asm/unk_0200CABC.s | 34 ++++---- arm9/asm/unk_02016B94.s | 12 +-- arm9/asm/unk_0207D5BC.s | 6 +- arm9/global.inc | 6 +- arm9/modules/06/asm/module_06.s | 2 +- arm9/modules/09/asm/module_09.s | 48 +++++------ arm9/modules/14/asm/module_14.s | 2 +- arm9/modules/18/asm/module_18.s | 2 +- arm9/modules/65/asm/module_65.s | 10 +-- arm9/modules/68/asm/module_68.s | 2 +- arm9/modules/76/asm/module_76.s | 4 +- arm9/modules/83/asm/module_83.s | 20 ++--- arm9/src/list_menu.c | 43 ++++++++++ arm9/src/text.c | 4 +- 16 files changed, 125 insertions(+), 214 deletions(-) diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s index e814dda21..37faa5e71 100644 --- a/arm9/asm/unk_020010A8.s +++ b/arm9/asm/unk_020010A8.s @@ -7,142 +7,10 @@ .extern ListMenuDrawCursor .extern ListMenuErasePrintedCursor .extern ListMenuUpdateSelectedRowIndexAndScrollOffset + .extern ListMenuScroll .text - thumb_func_start FUN_0200198C -FUN_0200198C: ; 0x0200198C - push {r3-r7, lr} - sub sp, #0x8 - add r5, r0, #0x0 - ldrh r0, [r5, #0x12] - add r4, r1, #0x0 - add r7, r2, #0x0 - cmp r4, r0 - blt _020019B8 - ldrb r1, [r5, #0x18] - ldr r0, [r5, #0xc] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - bl FillWindowPixelBuffer - ldrh r1, [r5, #0x2c] - ldrh r3, [r5, #0x12] - add r0, r5, #0x0 - mov r2, #0x0 - bl ListMenuPrintEntries - add sp, #0x8 - pop {r3-r7, pc} -_020019B8: - ldrh r0, [r5, #0x1a] - mov r1, #0x1 - lsl r0, r0, #0x11 - lsr r0, r0, #0x1a - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - bl GetFontAttribute - ldrh r1, [r5, #0x1a] - lsl r1, r1, #0x19 - lsr r1, r1, #0x1c - add r0, r1, r0 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - cmp r7, #0x0 - ldrb r0, [r5, #0x18] - bne _02001A46 - lsl r0, r0, #0x1c - lsr r7, r0, #0x1c - add r2, r4, #0x0 - lsl r3, r7, #0x4 - mul r2, r6 - orr r3, r7 - lsl r2, r2, #0x18 - lsl r3, r3, #0x18 - ldr r0, [r5, #0xc] - mov r1, #0x1 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl FUN_0201A8C8 - ldrh r1, [r5, #0x2c] - add r0, r5, #0x0 - mov r2, #0x0 - add r3, r4, #0x0 - bl ListMenuPrintEntries - ldrb r0, [r5, #0x17] - lsl r0, r0, #0x1c - lsr r2, r0, #0x1c - ldrh r0, [r5, #0x12] - add r1, r0, #0x0 - mul r1, r6 - add r0, r2, r1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - ldr r0, [r5, #0xc] - bl FUN_0201AB0C - add r6, r0, #0x0 - ldr r0, [r5, #0xc] - bl FUN_0201AB10 - lsl r0, r0, #0x3 - lsl r1, r6, #0x13 - sub r0, r0, r4 - lsr r1, r1, #0x10 - lsl r0, r0, #0x10 - str r1, [sp, #0x0] - lsr r0, r0, #0x10 - str r0, [sp, #0x4] - ldrb r1, [r5, #0x18] - ldr r0, [r5, #0xc] - mov r2, #0x0 - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - add r3, r4, #0x0 - bl FillWindowPixelRect - add sp, #0x8 - pop {r3-r7, pc} -_02001A46: - lsl r0, r0, #0x1c - lsr r3, r0, #0x1c - add r2, r4, #0x0 - mul r2, r6 - lsl r6, r3, #0x4 - orr r3, r6 - lsl r2, r2, #0x18 - lsl r3, r3, #0x18 - ldr r0, [r5, #0xc] - mov r1, #0x0 - lsr r2, r2, #0x18 - lsr r3, r3, #0x18 - bl FUN_0201A8C8 - ldrh r0, [r5, #0x12] - ldrh r1, [r5, #0x2c] - add r3, r4, #0x0 - sub r2, r0, r4 - add r1, r1, r2 - lsl r1, r1, #0x10 - lsl r2, r2, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - lsr r2, r2, #0x10 - bl ListMenuPrintEntries - ldr r0, [r5, #0xc] - bl FUN_0201AB0C - lsl r0, r0, #0x13 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - ldrb r0, [r5, #0x17] - mov r2, #0x0 - add r3, r2, #0x0 - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - str r0, [sp, #0x4] - ldrb r1, [r5, #0x18] - ldr r0, [r5, #0xc] - lsl r1, r1, #0x1c - lsr r1, r1, #0x1c - bl FillWindowPixelRect - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - thumb_func_start ListMenuChangeSelection ListMenuChangeSelection: ; 0x02001AA4 push {r3-r7, lr} @@ -227,7 +95,7 @@ _02001B38: ldr r2, [sp, #0x8] add r0, r4, #0x0 add r1, r6, #0x0 - bl FUN_0200198C + bl ListMenuScroll add r0, r4, #0x0 bl ListMenuDrawCursor add r0, r4, #0x0 diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index 5b9bf77a2..a4223e537 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -549,7 +549,7 @@ _020027B6: ldr r0, [r4, #0x4] mov r1, #0x0 lsr r3, r3, #0x18 - bl FUN_0201A8C8 + bl ScrollWindow mov r1, #0x0 b _020027F2 _020027D8: @@ -560,7 +560,7 @@ _020027D8: mov r1, #0x0 mov r2, #0x4 lsr r3, r3, #0x18 - bl FUN_0201A8C8 + bl ScrollWindow add r0, r4, #0x0 add r0, #0x27 ldrb r0, [r0, #0x0] @@ -686,7 +686,7 @@ _020028AC: bl FUN_0201AB18 str r0, [sp, #0x28] ldr r0, [r5, #0x4] - bl FUN_0201AB0C + bl GetWindowWidth ldr r1, _020029F8 ; =gTextFlags ldrh r6, [r1, #0x2] ldr r1, [sp, #0x28] @@ -853,7 +853,7 @@ FUN_02002A00: ; 0x02002A00 bl FUN_0201AB18 add r6, r0, #0x0 ldr r0, [r5, #0x4] - bl FUN_0201AB0C + bl GetWindowWidth ldr r1, _02002A90 ; =gTextFlags add r7, r6, #0x2 ldrh r4, [r1, #0x2] diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 6d5938455..57462727c 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -291,10 +291,10 @@ FUN_0200CCA4: ; 0x0200CCA4 bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x1c] add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] str r1, [sp, #0x0] @@ -328,10 +328,10 @@ FUN_0200CCF8: ; 0x0200CCF8 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x14] add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 @@ -758,10 +758,10 @@ FUN_0200D06C: ; 0x0200D06C bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight str r7, [sp, #0x0] str r0, [sp, #0x4] lsl r0, r6, #0x18 @@ -813,10 +813,10 @@ FUN_0200D0E0: ; 0x0200D0E0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x14] add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 @@ -1575,10 +1575,10 @@ FUN_0200D6F8: ; 0x0200D6F8 bl FUN_0201AB18 str r0, [sp, #0x1c] add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] @@ -1604,10 +1604,10 @@ _0200D756: bl FUN_0201AB18 str r0, [sp, #0x24] add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] @@ -1648,10 +1648,10 @@ FUN_0200D7A0: ; 0x0200D7A0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 @@ -1681,10 +1681,10 @@ _0200D7FE: bl FUN_0201AB18 add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_0201AB10 + bl GetWindowHeight sub r1, r6, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 @@ -1863,7 +1863,7 @@ FUN_0200D980: ; 0x0200D980 bl FUN_0201AB18 str r0, [sp, #0x1c] ldr r0, [r5, #0x0] - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x20] cmp r6, #0x2 bne _0200DA8A diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 9a6e152f3..6f46943c2 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -8422,8 +8422,8 @@ FUN_0201A8BC: ; 0x0201A8BC nop _0201A8C4: .word 0x00007FC0 - thumb_func_start FUN_0201A8C8 -FUN_0201A8C8: ; 0x0201A8C8 + thumb_func_start ScrollWindow +ScrollWindow: ; 0x0201A8C8 push {r4-r6, lr} ldrb r6, [r0, #0x4] mov r5, #0x2c @@ -8752,13 +8752,13 @@ FUN_0201AB08: ; 0x0201AB08 ldrb r0, [r0, #0x4] bx lr - thumb_func_start FUN_0201AB0C -FUN_0201AB0C: ; 0x0201AB0C + thumb_func_start GetWindowWidth +GetWindowWidth: ; 0x0201AB0C ldrb r0, [r0, #0x7] bx lr - thumb_func_start FUN_0201AB10 -FUN_0201AB10: ; 0x0201AB10 + thumb_func_start GetWindowHeight +GetWindowHeight: ; 0x0201AB10 ldrb r0, [r0, #0x8] bx lr diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index 0fab5e2c3..0aa84bfc2 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -581,7 +581,7 @@ _0207D9B4: lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r6, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r0, r0, r5 @@ -598,7 +598,7 @@ _0207D9D8: lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r6, #0x0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r1, r0, r5 @@ -1647,7 +1647,7 @@ FUN_0207E200: ; 0x0207E200 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl FUN_0201AB0C + bl GetWindowWidth mov r1, #0x76 str r1, [sp, #0x0] mov r1, #0x9d diff --git a/arm9/global.inc b/arm9/global.inc index 1debdc23b..684b51636 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1103,10 +1103,10 @@ .extern FUN_02019684 .extern FillWindowPixelRect .extern FUN_0201974C -.extern FUN_0201A8C8 +.extern ScrollWindow .extern FUN_0201AB08 -.extern FUN_0201AB0C -.extern FUN_0201AB10 +.extern GetWindowWidth +.extern GetWindowHeight .extern FUN_0201AB14 .extern FUN_0201AB18 .extern FUN_0201AB1C diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index fcf63fe5a..2c8e92bf9 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -11665,7 +11665,7 @@ _0223F11A: lsl r5, r5, #4 ldr r0, [r0] add r0, #0x20 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, #8 lsl r0, r0, #0x10 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 9b2367ba7..c6ad3fc0f 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -4150,7 +4150,7 @@ _02213F22: bl NewString_ReadMsgData add r6, r0, #0 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x28] mov r0, #0 add r1, r6, #0 @@ -4196,7 +4196,7 @@ _02213FA6: bl NewString_ReadMsgData add r6, r0, #0 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth str r0, [sp, #0x2c] mov r0, #0 add r1, r6, #0 @@ -4623,7 +4623,7 @@ MOD09_022142FC: ; 0x022142FC cmp r0, #2 bne _02214360 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth add r5, r0, #0 add r0, sp, #0x20 ldrh r0, [r0, #0x10] @@ -4766,7 +4766,7 @@ MOD09_0221445C: ; 0x0221445C bl FUN_02002E14 add r6, r0, #0 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth add r3, r0, #0 mov r0, #6 str r0, [sp] @@ -4944,7 +4944,7 @@ _022145F4: ldr r0, [r5, r0] lsl r4, r6, #4 add r0, r0, r4 - bl FUN_0201AB0C + bl GetWindowWidth add r6, r0, #0 mov r0, #0 ldr r1, [sp, #0x10] @@ -5070,7 +5070,7 @@ MOD09_02214694: ; 0x02214694 ldr r0, _02214780 ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsl r0, r0, #0x18 @@ -5179,7 +5179,7 @@ MOD09_02214790: ; 0x02214790 ldr r0, _0221487C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsl r0, r0, #0x18 @@ -5289,7 +5289,7 @@ MOD09_0221488C: ; 0x0221488C ldr r0, _0221497C ; =0x00002070 ldr r0, [r5, r0] add r0, r0, r4 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsl r0, r0, #0x18 @@ -5401,7 +5401,7 @@ MOD09_0221498C: ; 0x0221498C ldr r0, [r4, r0] lsl r5, r5, #4 add r0, r0, r5 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsl r0, r0, #0x18 @@ -5513,7 +5513,7 @@ MOD09_02214A8C: ; 0x02214A8C ldr r0, [r4, r0] lsl r5, r5, #4 add r0, r0, r5 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsl r0, r0, #0x18 @@ -5602,7 +5602,7 @@ MOD09_02214B8C: ; 0x02214B8C ldr r0, _02214D14 ; =0x00002070 ldr r0, [r5, r0] add r0, #0x40 - bl FUN_0201AB0C + bl GetWindowWidth lsl r1, r0, #3 ldr r0, [sp, #0x14] ldr r2, [sp, #0x10] @@ -5843,7 +5843,7 @@ MOD09_02214DE8: ; 0x02214DE8 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r5 lsl r0, r0, #0x10 @@ -5893,7 +5893,7 @@ _02214E42: lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r5 lsl r0, r0, #0x10 @@ -5979,7 +5979,7 @@ MOD09_02214F18: ; 0x02214F18 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r5 lsl r0, r0, #0x10 @@ -6029,7 +6029,7 @@ _02214F72: lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r5 lsl r0, r0, #0x10 @@ -6166,7 +6166,7 @@ MOD09_022150C8: ; 0x022150C8 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r1, r0, r6 lsr r0, r1, #0x1f @@ -6275,7 +6275,7 @@ MOD09_022151A8: ; 0x022151A8 bl FUN_02002E14 str r0, [sp, #0x1c] add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r1, r0, #3 ldr r0, [sp, #0x1c] ldr r2, [sp, #0x18] @@ -7030,7 +7030,7 @@ _02215830: mov r4, #8 _02215840: ldr r0, [sp, #0x18] - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r6 sub r0, r0, r7 @@ -11816,7 +11816,7 @@ _0221803C: lsl r1, r1, #4 add r0, r0, r1 add r1, r7, #0 - bl FUN_0201A8C8 + bl ScrollWindow ldr r1, _022180B0 ; =0x00002070 ldr r0, [r5, r1] add r1, r1, #5 @@ -11839,7 +11839,7 @@ _02218072: add r0, r1, r0 ldr r2, [sp] add r1, r7, #0 - bl FUN_0201A8C8 + bl ScrollWindow ldr r0, _022180B0 ; =0x00002070 ldr r1, [r5, r0] ldrb r0, [r6, r4] @@ -14450,7 +14450,7 @@ MOD09_02219560: ; 0x02219560 bl FUN_02002E14 add r7, r0, #0 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsr r3, r0, #1 @@ -14626,7 +14626,7 @@ MOD09_02219694: ; 0x02219694 bl FUN_02002E14 add r7, r0, #0 add r0, r4, r6 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsr r3, r0, #1 @@ -14841,7 +14841,7 @@ MOD09_02219884: ; 0x02219884 mov r0, #0x19 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r0, r0, r7 lsr r6, r0, #1 @@ -16913,7 +16913,7 @@ _0221A93C: ldr r1, [sp] add r2, r7, #0 mov r3, #0 - bl FUN_0201A8C8 + bl ScrollWindow ldrb r0, [r4, r5] ldr r1, [r6, #0x2c] lsl r0, r0, #4 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 8f54eb98c..e51aee694 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -19965,7 +19965,7 @@ _021E11CE: add r0, #0x30 mov r2, #4 add r3, r1, #0 - bl FUN_0201A8C8 + bl ScrollWindow ldr r0, [r5, #4] add r0, #0x30 bl FUN_02019548 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 7810113ce..76c91cca8 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -23388,7 +23388,7 @@ _02244AF8: ldr r0, [sp, #0xc] mov r2, #2 add r3, r1, #0 - bl FUN_0201A8C8 + bl ScrollWindow ldr r0, [sp, #0xc] bl CopyWindowToVram ldr r0, [r5] diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index dca4005ba..e74ab2367 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -1792,7 +1792,7 @@ _021D82A2: mov r1, #1 mov r2, #2 mov r3, #0 - bl FUN_0201A8C8 + bl ScrollWindow b _021D8392 _021D82D2: mov r0, #0x1e @@ -1812,7 +1812,7 @@ _021D82D2: mov r1, #0 mov r2, #4 add r3, r1, #0 - bl FUN_0201A8C8 + bl ScrollWindow mov r0, #1 strh r0, [r4, #0x14] b _021D8392 @@ -1834,7 +1834,7 @@ _021D8302: mov r1, #1 mov r2, #2 mov r3, #0 - bl FUN_0201A8C8 + bl ScrollWindow mov r0, #0 strh r0, [r4, #0x14] b _021D8392 @@ -1856,7 +1856,7 @@ _021D8330: mov r1, #0 mov r2, #2 add r3, r1, #0 - bl FUN_0201A8C8 + bl ScrollWindow mov r0, #1 strh r0, [r4, #0x14] b _021D8392 @@ -1881,7 +1881,7 @@ _021D835E: mov r1, #0 mov r2, #2 add r3, r1, #0 - bl FUN_0201A8C8 + bl ScrollWindow mov r0, #0 strh r0, [r4, #0x14] _021D8392: diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index e80e78c98..9f0a99ee9 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -527,7 +527,7 @@ MOD68_021D7904: ; 0x021D7904 bl FUN_02002E14 add r7, r0, #0 add r0, r5, r4 - bl FUN_0201AB0C + bl GetWindowWidth add r3, r0, #0 mov r1, #0 lsl r3, r3, #3 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index ddc3bcd3d..86989ca3b 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -1021,7 +1021,7 @@ _021D7CE8: add r1, #8 lsl r0, r4, #4 add r0, r1, r0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r0, r0, r6 @@ -1041,7 +1041,7 @@ _021D7D12: add r1, #8 lsl r0, r4, #4 add r0, r1, r0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r1, r0, r6 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 36b862f43..a36fe53c9 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -434,10 +434,10 @@ _0222D8B2: bl FUN_0201AB18 add r7, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_0201AB0C + bl GetWindowWidth add r5, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_0201AB10 + bl GetWindowHeight str r5, [sp] str r0, [sp, #4] mov r0, #0 @@ -908,7 +908,7 @@ MOD83_0222DCA0: ; 0x0222DCA0 bl FUN_02002E14 add r4, r0, #0 add r0, r6, #0 - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 add r4, #0x20 sub r3, r0, r4 @@ -1601,10 +1601,10 @@ _0222E206: bl FUN_0201AB18 str r0, [sp, #0x14] add r0, r5, #0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0 add r0, r5, #0 - bl FUN_0201AB10 + bl GetWindowHeight str r7, [sp] str r0, [sp, #4] mov r0, #0 @@ -1628,10 +1628,10 @@ _0222E256: bl FUN_0201AB18 str r0, [sp, #0x1c] add r0, r5, #0 - bl FUN_0201AB0C + bl GetWindowWidth add r7, r0, #0 add r0, r5, #0 - bl FUN_0201AB10 + bl GetWindowHeight str r7, [sp] str r0, [sp, #4] mov r0, #1 @@ -1707,7 +1707,7 @@ MOD83_0222E2E4: ; 0x0222E2E4 add r1, #0x5c lsl r0, r0, #4 add r0, r1, r0 - bl FUN_0201AB10 + bl GetWindowHeight add r0, r0, #2 lsl r3, r0, #3 mov r0, #0x42 @@ -1769,7 +1769,7 @@ _0222E362: sub r0, r0, #1 lsl r4, r0, #3 add r0, r5, #0 - bl FUN_0201AB10 + bl GetWindowHeight cmp r7, r4 ble _0222E384 mov r0, #1 @@ -23140,7 +23140,7 @@ _022389D0: bl FUN_02002E14 add r7, r0, #0 ldr r0, [r5, #0x10] - bl FUN_0201AB0C + bl GetWindowWidth lsl r0, r0, #3 sub r3, r0, r7 ldr r0, [r5, #0x24] diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index f54db3028..59de2813a 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -15,6 +15,9 @@ void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); extern s32 GetFontAttribute(u8 fontId, s32 attr); extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height); +extern void ScrollWindow(struct Window *, u8, u8, u8); +extern u16 GetWindowWidth(struct Window *); +extern u16 GetWindowHeight(struct Window *); static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal) { @@ -476,3 +479,43 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis } return 2; } + +THUMB_FUNC void ListMenuScroll(struct ListMenu * list, u8 count, u8 movingDown) +{ + if (count >= list->template.maxShowed) + { + FillWindowPixelBuffer(list->template.window, list->template.fillValue); + ListMenuPrintEntries(list, list->cursorPos, 0, list->template.maxShowed); + } + else + { + u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + + if (!movingDown) + { + u16 y, width, height; + + ScrollWindow(list->template.window, 1, count * yMultiplier, (list->template.fillValue << 4) | list->template.fillValue); + ListMenuPrintEntries(list, list->cursorPos, 0, count); + + y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y; + width = GetWindowWidth(list->template.window); + height = GetWindowHeight(list->template.window); + FillWindowPixelRect(list->template.window, + list->template.fillValue, + 0, y, width * 8, height * 8 - y); + } + else + { + u32 width; + + ScrollWindow(list->template.window, 0, count * yMultiplier, (list->template.fillValue << 4) | list->template.fillValue); + ListMenuPrintEntries(list, list->cursorPos + (list->template.maxShowed - count), list->template.maxShowed - count, count); + + width = GetWindowWidth(list->template.window); + FillWindowPixelRect(list->template.window, + list->template.fillValue, + 0, 0, width * 8, list->template.upText_Y); + } + } +} diff --git a/arm9/src/text.c b/arm9/src/text.c index 23e6ca673..926fa29f5 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -24,7 +24,7 @@ extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); extern void *FUN_02006BB0(u32 param0, u32 param1, u32 param2, struct TextPrinter **param3, u32 param4); -extern u32 FUN_0201AB0C(struct Window * window); +extern u32 GetWindowWidth(struct Window * window); extern void FUN_02019658(struct Window * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); @@ -349,7 +349,7 @@ THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2 printer->Unk2C = FUN_0201C1B0(); } u32 r6 = (u32)printer->Unk2C + param3 * (sizeof(struct TextPrinter) * 8); - u32 r2 = ((FUN_0201AB0C(window) - 3) << 0x13) >> 0x10; + u32 r2 = ((GetWindowWidth(window) - 3) << 0x13) >> 0x10; FUN_02019658(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } From 433f9a7f144c3f0fcad357f8916cf1d599a1bcd4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 16:09:22 -0400 Subject: [PATCH 077/134] Finish decompiling list_menu --- arm9/arm9.lsf | 1 - arm9/asm/unk_020010A8.s | 127 --------------------------- arm9/asm/unk_02001B80.s | 6 +- arm9/asm/unk_0200CABC.s | 2 +- arm9/asm/unk_02012CC8.s | 8 +- arm9/asm/unk_02016B94.s | 2 +- arm9/asm/unk_02035068.s | 12 +-- arm9/asm/unk_02050E48.s | 2 +- arm9/asm/unk_02053750.s | 12 +-- arm9/asm/unk_02057380.s | 8 +- arm9/asm/unk_0205AD98.s | 2 +- arm9/asm/unk_0205C598.s | 2 +- arm9/asm/unk_020625EC.s | 2 +- arm9/asm/unk_020643C0.s | 8 +- arm9/asm/unk_020653EC.s | 8 +- arm9/asm/unk_0206F3FC.s | 6 +- arm9/asm/unk_02073DA8.s | 2 +- arm9/asm/unk_020772F0.s | 8 +- arm9/asm/unk_02079C70.s | 2 +- arm9/asm/unk_0208A338.s | 2 +- arm9/global.inc | 20 ++--- arm9/modules/04/asm/thumb_04.s | 6 +- arm9/modules/05/asm/mod05_021DB44C.s | 6 +- arm9/modules/05/asm/mod05_021DBA00.s | 2 +- arm9/modules/05/asm/mod05_021DBABC.s | 2 +- arm9/modules/05/asm/mod05_021DC0B8.s | 8 +- arm9/modules/05/asm/mod05_021E1374.s | 2 +- arm9/modules/05/asm/mod05_021E1AD8.s | 8 +- arm9/modules/05/asm/mod05_021E5FD8.s | 4 +- arm9/modules/05/asm/module_05.s | 52 +++++------ arm9/modules/05/src/mod05_021E72FC.c | 2 +- arm9/modules/06/asm/module_06.s | 28 +++--- arm9/modules/15/asm/module_15.s | 2 +- arm9/modules/18/asm/module_18.s | 62 ++++++------- arm9/modules/20/asm/module_20.s | 18 ++-- arm9/modules/55/asm/module_55.s | 2 +- arm9/modules/56/asm/module_56.s | 14 +-- arm9/modules/65/asm/module_65.s | 2 +- arm9/modules/67/asm/module_67.s | 2 +- arm9/modules/68/asm/module_68.s | 2 +- arm9/modules/71/asm/module_71.s | 2 +- arm9/modules/75/asm/module_75.s | 36 ++++---- arm9/modules/76/asm/module_76.s | 6 +- arm9/modules/80/asm/module_80.s | 2 +- arm9/modules/83/asm/module_83.s | 2 +- arm9/src/game_init.c | 2 +- arm9/src/heap.c | 2 +- arm9/src/itemtool.c | 2 +- arm9/src/list_menu.c | 98 ++++++++++++++++----- include/heap.h | 2 +- include/list_menu.h | 4 +- 51 files changed, 276 insertions(+), 348 deletions(-) delete mode 100644 arm9/asm/unk_020010A8.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 18ed6d18f..24908839d 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -7,7 +7,6 @@ Static arm9 Address 0x02000000 Object main.o Object list_menu.o - Object unk_020010A8.o Object unk_02001B80.o Object string_util.o Object unk_020023C0.o diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s deleted file mode 100644 index 37faa5e71..000000000 --- a/arm9/asm/unk_020010A8.s +++ /dev/null @@ -1,127 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - .extern ListMenuPrint - .extern ListMenuPrintEntries - .extern ListMenuDrawCursor - .extern ListMenuErasePrintedCursor - .extern ListMenuUpdateSelectedRowIndexAndScrollOffset - .extern ListMenuScroll - - .text - - thumb_func_start ListMenuChangeSelection -ListMenuChangeSelection: ; 0x02001AA4 - push {r3-r7, lr} - sub sp, #0x10 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r4, r0, #0x0 - str r3, [sp, #0x8] - ldrh r0, [r4, #0x2e] - mov r6, #0x0 - add r5, r6, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - add r7, r6, #0x0 - cmp r0, #0x0 - bls _02001AF6 -_02001AC0: - ldr r1, [sp, #0x8] - add r0, r4, #0x0 - bl ListMenuUpdateSelectedRowIndexAndScrollOffset - orr r5, r0 - cmp r0, #0x2 - bne _02001AEA - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldrh r1, [r4, #0x2c] - ldrh r0, [r4, #0x2e] - ldr r2, [r4, #0x0] - add r0, r1, r0 - lsl r0, r0, #0x3 - add r0, r2, r0 - ldr r1, [r0, #0x4] - mov r0, #0x2 - mvn r0, r0 - cmp r1, r0 - beq _02001AC0 -_02001AEA: - add r0, r7, #0x1 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, [sp, #0x4] - cmp r7, r0 - blo _02001AC0 -_02001AF6: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02001B5E - cmp r5, #0x3 - bhi _02001B14 - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02001B0C: ; jump table (using 16-bit offset) - .short _02001B14 - _02001B0C - 2; case 0 - .short _02001B1A - _02001B0C - 2; case 1 - .short _02001B38 - _02001B0C - 2; case 2 - .short _02001B38 - _02001B0C - 2; case 3 -_02001B14: - add sp, #0x10 - mov r0, #0x1 - pop {r3-r7, pc} -_02001B1A: - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl ListMenuErasePrintedCursor - add r0, r4, #0x0 - bl ListMenuDrawCursor - add r0, r4, #0x0 - mov r1, #0x0 - bl ListMenuCallSelectionChangedCallback - ldr r0, [r4, #0xc] - bl CopyWindowToVram - b _02001B5E -_02001B38: - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl ListMenuErasePrintedCursor - ldr r2, [sp, #0x8] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl ListMenuScroll - add r0, r4, #0x0 - bl ListMenuDrawCursor - add r0, r4, #0x0 - mov r1, #0x0 - bl ListMenuCallSelectionChangedCallback - ldr r0, [r4, #0xc] - bl CopyWindowToVram -_02001B5E: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start ListMenuCallSelectionChangedCallback -ListMenuCallSelectionChangedCallback: ; 0x02001B64 - push {r3-r5, lr} - ldr r3, [r0, #0x4] - add r2, r1, #0x0 - cmp r3, #0x0 - beq _02001B7E - ldrh r5, [r0, #0x2c] - ldrh r4, [r0, #0x2e] - ldr r1, [r0, #0x0] - add r4, r5, r4 - lsl r4, r4, #0x3 - add r1, r1, r4 - ldr r1, [r1, #0x4] - blx r3 -_02001B7E: - pop {r3-r5, pc} diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index c2e1a2453..6e08d1db4 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -41,7 +41,7 @@ FUN_02001B8C: ; 0x02001B8C ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [sp, #0x4] - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0xc] ldr r0, [sp, #0x24] str r0, [r4, #0x10] @@ -133,7 +133,7 @@ _02001C68: bl DestroyListMenuCursorObj ldrb r0, [r4, #0x1c] add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} thumb_func_start FUN_02001C78 @@ -894,7 +894,7 @@ FUN_020021EC: ; 0x020021EC bl FUN_02019178 ldr r1, [r5, #0x4] add r0, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [r5, #0x0] bl ListMenu_dtor add r0, r5, #0x0 diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 57462727c..69afdbe71 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -1098,7 +1098,7 @@ FUN_0200D300: ; 0x0200D300 bl FUN_02017FB4 ldr r1, [sp, #0x14] add r0, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, sp, #0x20 ldrb r3, [r0, #0x10] cmp r3, #0x1 diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index c3ed22aa4..781d1d6d8 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1488,8 +1488,8 @@ _02013688: strh r0, [r4, #0x0] pop {r4, pc} - thumb_func_start FUN_02013690 -FUN_02013690: ; 0x02013690 + thumb_func_start ListMenuCursorNew +ListMenuCursorNew: ; 0x02013690 push {r3-r5, lr} mov r1, #0x8 add r5, r0, #0x0 @@ -1530,8 +1530,8 @@ _020136D8: _020136DE: pop {r4, pc} - thumb_func_start CreateListMenuCursorObj -CreateListMenuCursorObj: ; 0x020136E0 + thumb_func_start ListMenuCursorSetColor +ListMenuCursorSetColor: ; 0x020136E0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 6f46943c2..73330a71d 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -2716,7 +2716,7 @@ FUN_02017F18: ; 0x02017F18 bl FUN_02017E84 ldr r0, [sp, #0x0] add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r3-r7, pc} thumb_func_start FUN_02017F48 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 38fb3842d..1123d9f5f 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -1731,7 +1731,7 @@ FUN_02035DC8: ; 0x02035DC8 cmp r1, #0x0 beq _02035DF0 mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit _02035DF0: mov r0, #0xc strh r0, [r4, #0x2a] @@ -3193,7 +3193,7 @@ FUN_02036A14: ; 0x02036A14 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 @@ -3223,7 +3223,7 @@ FUN_02036A78: ; 0x02036A78 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 @@ -3255,7 +3255,7 @@ FUN_02036AB8: ; 0x02036AB8 ldr r1, [r4, r0] mov r0, #0xb ldr r7, [r1, #0x0] - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] @@ -3264,7 +3264,7 @@ FUN_02036AB8: ; 0x02036AB8 bne _02036B0E mov r0, #0xb add r1, r5, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x7a lsl r1, r1, #0x2 lsl r2, r7, #0x18 @@ -3320,7 +3320,7 @@ _02036B0E: lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index 70ba73b0e..d7eb4bc45 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1333,7 +1333,7 @@ _0205188E: add r0, #0x64 bl FUN_0201901C mov r0, #0xb - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0x78] bl FUN_02033534 add r1, r4, #0x0 diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 6ab541420..4724c3080 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -1291,7 +1291,7 @@ FUN_020540C8: ; 0x020540C8 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _020540E4: @@ -1408,7 +1408,7 @@ FUN_020541A4: ; 0x020541A4 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _020541C0: @@ -1481,7 +1481,7 @@ FUN_02054228: ; 0x02054228 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054244: @@ -1581,7 +1581,7 @@ FUN_020542E8: ; 0x020542E8 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054304: @@ -1749,7 +1749,7 @@ FUN_0205442C: ; 0x0205442C bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054448: @@ -1900,7 +1900,7 @@ FUN_0205454C: ; 0x0205454C bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054568: diff --git a/arm9/asm/unk_02057380.s b/arm9/asm/unk_02057380.s index c6a258763..ef4050e39 100644 --- a/arm9/asm/unk_02057380.s +++ b/arm9/asm/unk_02057380.s @@ -33,10 +33,10 @@ FUN_020573AC: ; 0x020573AC bl FUN_020583CC add r1, r0, #0x0 mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0xb add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 @@ -1035,10 +1035,10 @@ _02057C42: blt _02057C1A ldr r1, [r5, #0x10] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0xb add r1, r5, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r3-r7, pc} thumb_func_start FUN_02057C64 diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s index bc0fa0dd8..54448e617 100644 --- a/arm9/asm/unk_0205AD98.s +++ b/arm9/asm/unk_0205AD98.s @@ -212,7 +212,7 @@ _0205AF14: bl FUN_0205AE50 mov r0, #0x4 add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r5, #0x0 bl FUN_0200CAB4 pop {r3-r5, pc} diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s index ac7a6808d..d80c26b43 100644 --- a/arm9/asm/unk_0205C598.s +++ b/arm9/asm/unk_0205C598.s @@ -723,7 +723,7 @@ FUN_0205CAE0: ; 0x0205CAE0 bl FUN_0201B6C8 add r1, r0, #0x0 mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 5147f099c..48f512e97 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1552,7 +1552,7 @@ FUN_020631C8: ; 0x020631C8 add r0, r5, #0x0 add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r5, #0x0 mov r1, #0x2 bl ListMenuGetTemplateField diff --git a/arm9/asm/unk_020643C0.s b/arm9/asm/unk_020643C0.s index bc843c820..4a7b92d3e 100644 --- a/arm9/asm/unk_020643C0.s +++ b/arm9/asm/unk_020643C0.s @@ -292,12 +292,12 @@ _020645F2: thumb_func_start FUN_02064600 FUN_02064600: ; 0x02064600 - ldr r3, _02064608 ; =FUN_02016A8C + ldr r3, _02064608 ; =FreeToHeapExplicit add r1, r0, #0x0 ldr r0, [r1, #0x8] bx r3 .balign 4 -_02064608: .word FUN_02016A8C +_02064608: .word FreeToHeapExplicit thumb_func_start FUN_0206460C FUN_0206460C: ; 0x0206460C @@ -320,13 +320,13 @@ _02064622: thumb_func_start FUN_02064630 FUN_02064630: ; 0x02064630 - ldr r3, _0206463C ; =FUN_02016A8C + ldr r3, _0206463C ; =FreeToHeapExplicit add r1, r0, #0x0 ldr r0, [r1, #0x8] ldr r1, [r1, #0xc] bx r3 nop -_0206463C: .word FUN_02016A8C +_0206463C: .word FreeToHeapExplicit thumb_func_start FUN_02064640 FUN_02064640: ; 0x02064640 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 003e13309..69cc0dbd5 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1177,7 +1177,7 @@ FUN_02065CFC: ; 0x02065CFC mov r1, #0x1 mov r2, #0xf mov r3, #0x2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} _02065D1C: mov r1, #0xc @@ -1191,14 +1191,14 @@ _02065D1C: mov r1, #0x3 mov r2, #0xf mov r3, #0x4 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} _02065D38: add r0, r5, #0x0 mov r1, #0x7 mov r2, #0xf mov r3, #0x8 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} nop _02065D48: .word 0x0000FFFF @@ -1216,7 +1216,7 @@ FUN_02065D4C: ; 0x02065D4C add r0, r4, #0x0 add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r4, #0x0 mov r1, #0x2 bl ListMenuGetTemplateField diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index b1a1edbd7..772480edf 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1237,7 +1237,7 @@ FUN_0206FCD4: ; 0x0206FCD4 bl FUN_020178A0 mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 @@ -1293,7 +1293,7 @@ FUN_0206FD24: ; 0x0206FD24 bl memcpy mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x1a mov r0, #0x0 lsl r1, r1, #0x4 @@ -3729,7 +3729,7 @@ _02071146: bl FUN_02072844 mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r5, #0x0 bl FUN_0207295C mov r1, #0x0 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index a854727bc..6dd1bf643 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -1672,7 +1672,7 @@ _02074B6A: add r1, r7, #0x0 str r0, [r3, #0x0] mov r0, #0xc - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x3 lsl r1, r1, #0x8 ldrb r3, [r4, r1] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 7a0741862..80d633bbd 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1509,18 +1509,18 @@ _02077982: ldr r1, _02077A70 ; =0x000004AC mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [r4, #0x0] cmp r0, #0x1 bne _020779C2 ldr r1, _02077A74 ; =0x000004B4 mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r1, _02077A78 ; =0x000004BC mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit _020779C2: mov r0, #0x16 lsl r0, r0, #0x4 @@ -2250,7 +2250,7 @@ _02077FB0: bl FUN_020178A0 mov r0, #0x12 add r1, r6, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4-r6, pc} thumb_func_start FUN_02077FE8 diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 722c8144a..617a122a6 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -533,7 +533,7 @@ FUN_0207A08C: ; 0x0207A08C bl FUN_020178A0 mov r0, #0x13 add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 3b40567c2..2005be3e2 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -36,7 +36,7 @@ FUN_0208A338: ; 0x0208A338 bl NewMsgDataFromNarc str r0, [r4, #0x10] mov r0, #0x20 - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0x14] ldr r2, [r4, #0x0] mov r0, #0x2 diff --git a/arm9/global.inc b/arm9/global.inc index 684b51636..c93890f27 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -192,13 +192,13 @@ .extern ListMenu_ProcessInput .extern DestroyListMenu .extern RedrawListMenu -.extern FUN_02001354 -.extern FUN_020013C8 -.extern FUN_020013E8 -.extern FUN_0200143C -.extern FUN_02001448 -.extern FUN_0200145C -.extern FUN_02001464 +.extern ListMenuTestInputInternal +.extern ListMenuTestInput +.extern ListMenuOverrideSetColors +.extern ListMenuGetCurrentItemArrayId +.extern ListMenuGetScrollAndRow +.extern ListMenuGetUnk33 +.extern ListMenuGetValueByArrayId .extern ListMenuGetTemplateField .extern ListMenuSetTemplateField .extern ListMenuGetItemStr @@ -882,9 +882,9 @@ .extern FUN_02013628 .extern FUN_0201365C .extern FUN_02013674 -.extern FUN_02013690 +.extern ListMenuCursorNew .extern DestroyListMenuCursorObj -.extern CreateListMenuCursorObj +.extern ListMenuCursorSetColor .extern ListMenuUpdateCursorObj .extern MailMsg_init .extern MailMsg_init_withBank @@ -1029,7 +1029,7 @@ .extern AllocFromHeap .extern AllocFromHeapAtEnd .extern FreeToHeap -.extern FUN_02016A8C +.extern FreeToHeapExplicit .extern FUN_02016AF8 .extern FUN_02016B20 .extern FUN_02016B44 diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s index 6b6a6f272..12374ec56 100644 --- a/arm9/modules/04/asm/thumb_04.s +++ b/arm9/modules/04/asm/thumb_04.s @@ -202,13 +202,13 @@ MOD04_021D7660: ; 0x021D7660 ldr r0, [r2, r1] sub r1, #0x50 ldr r1, [r2, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r1, _021D76A0 ; =UNK04_0220FBC0 ldr r0, _021D76A8 ; =0x00001F54 ldr r2, [r1] ldr r1, [r1, #4] ldr r0, [r2, r0] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, _021D76A0 ; =UNK04_0220FBC0 mov r1, #0 str r1, [r0, #4] @@ -3065,7 +3065,7 @@ MOD04_021D8C6C: ; 0x021D8C6C lsl r0, r0, #8 ldr r0, [r2, r0] ldr r1, [r1] - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0 ldr r0, _021D8CBC ; =UNK04_0220FBC8 cmp r4, #0 diff --git a/arm9/modules/05/asm/mod05_021DB44C.s b/arm9/modules/05/asm/mod05_021DB44C.s index b606312e0..039db6a9b 100644 --- a/arm9/modules/05/asm/mod05_021DB44C.s +++ b/arm9/modules/05/asm/mod05_021DB44C.s @@ -67,7 +67,7 @@ _021DB4BA: bl MOD05_021DB7A0 ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] pop {r4, pc} @@ -419,7 +419,7 @@ _021DB73E: _021DB78A: ldr r1, [sp, #0x14] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #8] add sp, #0x1fc add sp, #0x20 @@ -433,7 +433,7 @@ MOD05_021DB7A0: ; 0x021DB7A0 add r4, r0, #0 ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021DBA00.s b/arm9/modules/05/asm/mod05_021DBA00.s index 22e64df58..d0d97f37a 100644 --- a/arm9/modules/05/asm/mod05_021DBA00.s +++ b/arm9/modules/05/asm/mod05_021DBA00.s @@ -24,7 +24,7 @@ MOD05_021DBA1C: ; 0x021DBA1C add r4, r0, #0 ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021DBABC.s b/arm9/modules/05/asm/mod05_021DBABC.s index 28a15fb2e..0481b9ebc 100644 --- a/arm9/modules/05/asm/mod05_021DBABC.s +++ b/arm9/modules/05/asm/mod05_021DBABC.s @@ -24,7 +24,7 @@ MOD05_021DBAD8: ; 0x021DBAD8 add r4, r0, #0 ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index ab06fed19..1714cbec3 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -692,7 +692,7 @@ _021DC5A2: bl NARC_dtor ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] _021DC5FE: @@ -1362,7 +1362,7 @@ _021DCAD2: bl MOD05_021DC880 ldr r1, [r4, #0x10] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #0x1c] @@ -1390,7 +1390,7 @@ _021DCB14: cmp r1, #0 beq _021DCB2C mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r1, [r4, #0xc] ldr r0, _021DCB64 ; =0x00000F58 mov r2, #0 @@ -1414,7 +1414,7 @@ _021DCB3E: _021DCB4C: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4, #0xc] _021DCB58: diff --git a/arm9/modules/05/asm/mod05_021E1374.s b/arm9/modules/05/asm/mod05_021E1374.s index df43ddb97..a0192db68 100644 --- a/arm9/modules/05/asm/mod05_021E1374.s +++ b/arm9/modules/05/asm/mod05_021E1374.s @@ -533,7 +533,7 @@ _021E1770: bl FUN_0200CAB4 mov r0, #4 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit _021E178E: pop {r4, pc} .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 36e4432ad..5a7f759b8 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -1012,13 +1012,13 @@ MOD05_021E2278: ; 0x021E2278 mov r1, #3 mov r2, #0xf mov r3, #4 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} _021E228E: mov r1, #1 mov r2, #0xf mov r3, #2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} .balign 4, 0 @@ -1054,7 +1054,7 @@ _021E22B8: ldrh r6, [r5, r1] ldr r0, [r5, r0] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r0, #0xb5 lsl r0, r0, #2 ldrh r0, [r5, r0] @@ -1226,7 +1226,7 @@ MOD05_021E2434: ; 0x021E2434 ldr r0, [r4, r1] add r1, r1, #6 add r1, r4, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldr r0, _021E2460 ; =0x000001BA ldrh r1, [r4, r0] add r0, #0xe2 diff --git a/arm9/modules/05/asm/mod05_021E5FD8.s b/arm9/modules/05/asm/mod05_021E5FD8.s index 8ce2cd0f4..ab5f7010b 100644 --- a/arm9/modules/05/asm/mod05_021E5FD8.s +++ b/arm9/modules/05/asm/mod05_021E5FD8.s @@ -2409,12 +2409,12 @@ _021E72CC: thumb_func_start MOD05_021E72DC MOD05_021E72DC: ; 0x021E72DC - ldr r3, _021E72E4 ; =FUN_02016A8C + ldr r3, _021E72E4 ; =FreeToHeapExplicit add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 -_021E72E4: .word FUN_02016A8C +_021E72E4: .word FreeToHeapExplicit thumb_func_start MOD05_021E72E8 MOD05_021E72E8: ; 0x021E72E8 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 0528681aa..e1f83467e 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -339,7 +339,7 @@ MOD05_021E88C0: ; 0x021E88C0 bl GX_EngineAToggleLayers ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} thumb_func_start MOD05_021E88E8 @@ -513,7 +513,7 @@ _021E8A42: bl MOD05_021E37A4 ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C _021E8A56: @@ -695,7 +695,7 @@ _021E8BC2: bl MOD05_021E37A4 ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C _021E8BD6: @@ -851,7 +851,7 @@ _021E8CE6: _021E8D00: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -1008,7 +1008,7 @@ _021E8E1C: _021E8E36: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -1256,7 +1256,7 @@ _021E8FFC: _021E9010: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -1391,7 +1391,7 @@ _021E910C: _021E9120: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -1794,7 +1794,7 @@ _021E944E: bl MOD05_021E37A4 ldr r1, [r7, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x10] bl FUN_0200621C _021E948A: @@ -2151,7 +2151,7 @@ _021E974A: bl MOD05_021E3A48 ldr r1, [r6, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x10] bl FUN_0200621C _021E9786: @@ -2594,7 +2594,7 @@ _021E9AF0: bl MOD05_021E3E44 ldr r1, [r7, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x14] bl FUN_0200621C add sp, #0x58 @@ -3183,7 +3183,7 @@ _021E9FA4: ldr r1, [sp, #0x1c] mov r0, #4 ldr r1, [r1, #0xc] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x18] bl FUN_0200621C add sp, #0x44 @@ -3594,7 +3594,7 @@ _021EA354: bl MOD05_021E3E44 ldr r1, [r5, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C _021EA382: @@ -4116,7 +4116,7 @@ _021EA76C: ldr r1, [sp, #0x18] mov r0, #4 ldr r1, [r1, #0xc] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x14] bl FUN_0200621C _021EA7DE: @@ -4472,7 +4472,7 @@ _021EAA98: bl MOD05_021E3E44 ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C _021EAAC6: @@ -4781,7 +4781,7 @@ _021EAD1A: bl MOD05_021E3E44 ldr r1, [r6, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x10] bl FUN_0200621C _021EAD4C: @@ -5156,7 +5156,7 @@ _021EB01A: ldr r1, [sp, #0x14] mov r0, #4 ldr r1, [r1, #0xc] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [sp, #0x10] bl FUN_0200621C _021EB04A: @@ -5586,7 +5586,7 @@ _021EB394: strb r1, [r0] ldr r1, [r5, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C _021EB3F2: @@ -5797,7 +5797,7 @@ _021EB56C: _021EB58A: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -6008,7 +6008,7 @@ _021EB720: _021EB73E: ldr r1, [r4, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0 bl FUN_0200621C mov r0, #1 @@ -6506,7 +6506,7 @@ _021EBB60: str r0, [r2] ldr r1, [r5, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x30 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} @@ -7514,7 +7514,7 @@ _021EC37A: bl MOD05_021E3E44 ldr r1, [r5, #0xc] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x4c mov r0, #1 pop {r4, r5, r6, r7, pc} @@ -19600,11 +19600,11 @@ MOD05_021F21AC: ; 0x021F21AC add r1, #0xe4 ldr r1, [r1] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r4, #0xf4 ldr r1, [r4] mov r0, #4 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} thumb_func_start MOD05_021F21CC @@ -22552,12 +22552,12 @@ _021F37C2: thumb_func_start MOD05_021F37D0 MOD05_021F37D0: ; 0x021F37D0 - ldr r3, _021F37D8 ; =FUN_02016A8C + ldr r3, _021F37D8 ; =FreeToHeapExplicit add r1, r0, #0 ldr r0, [r1] bx r3 .balign 4, 0 -_021F37D8: .word FUN_02016A8C +_021F37D8: .word FreeToHeapExplicit thumb_func_start MOD05_021F37DC MOD05_021F37DC: ; 0x021F37DC @@ -22588,7 +22588,7 @@ _021F37FC: bne _021F37F0 ldr r0, [r5] ldr r1, [r5, #0xc] - bl FUN_02016A8C + bl FreeToHeapExplicit _021F380E: pop {r3, r4, r5, pc} diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c index c24a7bd34..7284224c3 100644 --- a/arm9/modules/05/src/mod05_021E72FC.c +++ b/arm9/modules/05/src/mod05_021E72FC.c @@ -156,5 +156,5 @@ THUMB_FUNC UnkStruct021E7358 *MOD05_021E74D4(u32 param0) THUMB_FUNC void MOD05_021E74F8(UnkStruct021E7358 *param0) { - FUN_02016A8C(4, param0); + FreeToHeapExplicit(4, param0); } diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 2c8e92bf9..92922fbaa 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -9328,7 +9328,7 @@ _0223DDBA: ldr r0, [sp, #0x10] add r1, #2 add r2, sp, #0x14 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0x14 ldrh r0, [r0, #2] cmp r0, #0 @@ -9558,14 +9558,14 @@ MOD06_0223DFB4: ; 0x0223DFB4 ldr r0, [r5, #0x78] mov r1, #0 add r2, #2 - bl FUN_02001448 + bl ListMenuGetScrollAndRow ldr r0, [r5, #0x78] bl ListMenu_ProcessInput add r4, r0, #0 ldr r0, [r5, #0x78] mov r1, #0 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0 ldrh r2, [r0] ldrh r0, [r0, #2] @@ -11655,7 +11655,7 @@ MOD06_0223F0F8: ; 0x0223F0F8 cmp r0, #0 beq _0223F11A add r1, sp, #0xc - bl FUN_02001448 + bl ListMenuGetScrollAndRow _0223F11A: add r0, sp, #0xc ldrh r1, [r0] @@ -12105,7 +12105,7 @@ _0223F4D8: add r1, r4, #0 ldr r0, [r4, #0x5c] add r1, #0x8e - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, r4, #0 add r0, #0x8e ldrh r5, [r0] @@ -12451,7 +12451,7 @@ MOD06_0223F7C4: ; 0x0223F7C4 cmp r0, #0 beq _0223F7E0 add r1, sp, #0xc - bl FUN_02001448 + bl ListMenuGetScrollAndRow _0223F7E0: add r0, sp, #0xc ldrh r1, [r0] @@ -14717,14 +14717,14 @@ MOD06_02240A64: ; 0x02240A64 ldr r0, [r5] mov r1, #0 add r2, #0x78 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r5, #0 add r0, #0x80 ldrh r6, [r0] add r1, r5, #0 ldr r0, [r5] add r1, #0x80 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, r5, #0 add r0, #0x80 ldrh r0, [r0] @@ -14879,14 +14879,14 @@ MOD06_02240BB8: ; 0x02240BB8 ldr r0, [r5, #4] mov r1, #0 add r2, #0x7a - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r5, #0 add r0, #0x82 ldrh r6, [r0] add r1, r5, #0 ldr r0, [r5, #4] add r1, #0x82 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, r5, #0 add r0, #0x82 ldrh r0, [r0] @@ -19219,13 +19219,13 @@ MOD06_02242E9C: ; 0x02242E9C mov r1, #3 mov r2, #0xf mov r3, #4 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} _02242EB2: mov r1, #1 mov r2, #0xf mov r3, #2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} .align 2, 0 @@ -42471,7 +42471,7 @@ MOD06_0224E1E4: ; 0x0224E1E4 bne _0224E22A ldr r0, [r5, #8] add r1, sp, #0 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r2, #0x4b add r0, sp, #0 lsl r2, r2, #2 @@ -42685,7 +42685,7 @@ MOD06_0224E39C: ; 0x0224E39C ldr r0, [r4, #8] add r1, sp, #0 mov r2, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0 ldrh r0, [r0] cmp r0, #0 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index fbf194995..beb5863b2 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -4345,7 +4345,7 @@ MOD15_021D95E8: ; 0x021D95E8 bl NewMsgDataFromNarc str r0, [r4, #0x48] mov r0, #0x23 - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0x50] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 76c91cca8..d8d29d243 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22033,11 +22033,11 @@ MOD18_02244028: ; 0x02244028 ldr r1, [sp, #0x30] strb r1, [r0, #0x1e] ldr r0, [sp, #8] - bl FUN_02013690 + bl ListMenuCursorNew ldr r1, [sp, #0xc] str r0, [r1, #0x10] ldr r1, _022440C0 ; =0x0008090F - bl CreateListMenuCursorObj + bl ListMenuCursorSetColor ldr r1, [sp, #8] ldr r0, [sp, #0xc] strb r1, [r0, #0x1d] @@ -22165,7 +22165,7 @@ MOD18_02244140: ; 0x02244140 ldr r0, [sp, #4] add r1, #2 add r2, sp, #0xc - bl FUN_02001448 + bl ListMenuGetScrollAndRow ldrb r0, [r5, #0x1c] cmp r0, #0 bne _0224416E @@ -22361,7 +22361,7 @@ _022442CA: ldr r0, [sp, #4] add r1, #0x20 ldrh r6, [r5, #0x20] - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldrh r0, [r5, #0x20] cmp r6, r0 beq _022442EA @@ -31304,7 +31304,7 @@ MOD18_022488F0: ; 0x022488F0 ldr r0, [r5, #0x1c] add r1, #0x36 ldrh r6, [r5, #0x36] - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldrh r0, [r5, #0x36] cmp r6, r0 beq _02248916 @@ -32213,7 +32213,7 @@ MOD18_02248FEC: ; 0x02248FEC ldr r0, [r5, #0x20] add r1, #0x3a ldrh r4, [r5, #0x3a] - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldrh r0, [r5, #0x3a] cmp r4, r0 beq _02249008 @@ -33853,7 +33853,7 @@ MOD18_02249CC8: ; 0x02249CC8 ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -33964,7 +33964,7 @@ MOD18_02249DB8: ; 0x02249DB8 ldrh r6, [r5, r1] ldr r0, [r5, #0x50] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r0, #0x93 lsl r0, r0, #2 ldrh r0, [r5, r0] @@ -34343,7 +34343,7 @@ MOD18_0224A0EC: ; 0x0224A0EC ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -34441,7 +34441,7 @@ MOD18_0224A1C0: ; 0x0224A1C0 ldrh r6, [r5, r1] ldr r0, [r5, #0x50] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r0, #0x93 lsl r0, r0, #2 ldrh r0, [r5, r0] @@ -34767,7 +34767,7 @@ MOD18_0224A47C: ; 0x0224A47C ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -34865,7 +34865,7 @@ MOD18_0224A550: ; 0x0224A550 ldrh r6, [r5, r1] ldr r0, [r5, #0x50] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r0, #0x93 lsl r0, r0, #2 ldrh r0, [r5, r0] @@ -35443,14 +35443,14 @@ MOD18_0224A9EC: ; 0x0224A9EC mov r1, #1 mov r2, #0xf mov r3, #2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, r4, r5, pc} _0224AA1A: mov r1, #2 add r0, r5, #0 mov r2, #0xf add r3, r1, #0 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, r4, r5, pc} thumb_func_end MOD18_0224A9EC @@ -35706,7 +35706,7 @@ MOD18_0224AC24: ; 0x0224AC24 ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -35807,7 +35807,7 @@ MOD18_0224AD04: ; 0x0224AD04 ldrh r6, [r5, r1] ldr r0, [r5, #0x50] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId mov r0, #0x93 lsl r0, r0, #2 ldrh r0, [r5, r0] @@ -36492,7 +36492,7 @@ MOD18_0224B250: ; 0x0224B250 ldr r0, [r4, #0x48] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -36868,7 +36868,7 @@ MOD18_0224B560: ; 0x0224B560 ldr r0, [r5, #0x48] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -36964,7 +36964,7 @@ MOD18_0224B614: ; 0x0224B614 ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -37057,7 +37057,7 @@ MOD18_0224B6E0: ; 0x0224B6E0 ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -38067,7 +38067,7 @@ MOD18_0224BF84: ; 0x0224BF84 ldr r0, [r5, #0x48] ldrh r4, [r5, r1] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldr r0, _0224BFA4 ; =0x0000024A ldrh r0, [r5, r0] cmp r4, r0 @@ -39686,7 +39686,7 @@ _0224CC8E: ldr r0, [r4, #0x48] add r1, #2 add r2, sp, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #4 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -39696,7 +39696,7 @@ _0224CC8E: ldr r0, [r4, #0x48] ldrh r6, [r4, r1] add r1, r4, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldr r0, _0224CF54 ; =0x0000024A ldrh r0, [r4, r0] cmp r6, r0 @@ -39777,7 +39777,7 @@ _0224CD48: ldr r0, [r4, #0x48] add r1, #2 add r2, sp, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow mov r0, #0x92 lsl r0, r0, #2 ldrb r0, [r4, r0] @@ -39792,7 +39792,7 @@ _0224CD48: ldr r0, [r4, #0x48] ldrh r6, [r4, r1] add r1, r4, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldr r0, _0224CF54 ; =0x0000024A ldrh r0, [r4, r0] cmp r6, r0 @@ -39916,7 +39916,7 @@ _0224CE68: ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #4 ldrh r1, [r2] ldrh r2, [r2, #2] @@ -40138,7 +40138,7 @@ _0224D046: ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow mov r0, #0x92 lsl r0, r0, #2 ldrb r0, [r4, r0] @@ -42512,13 +42512,13 @@ MOD18_0224E2B4: ; 0x0224E2B4 add r1, r2, #0 mov r2, #0xf mov r3, #2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} _0224E2CC: mov r1, #2 mov r2, #0xf add r3, r1, #0 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3, pc} thumb_func_end MOD18_0224E2B4 @@ -42639,7 +42639,7 @@ _0224E384: ldr r0, [r0, #0xc] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow ldr r0, [r5, #0x2c] mov r1, #2 ldr r0, [r0, #0xc] @@ -43078,7 +43078,7 @@ MOD18_0224E73C: ; 0x0224E73C add r1, r5, #0 ldr r0, [r5, #0x28] add r1, #0x40 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r5, #0x40 ldrh r0, [r5] cmp r4, r0 diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index 67f4c29ab..ee93d3173 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -3279,23 +3279,23 @@ _02253C0E: cmp r1, #0 beq _02253C22 add r0, r5, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit _02253C22: ldr r1, [r4, #0xc] cmp r1, #0 beq _02253C2E add r0, r5, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit _02253C2E: ldr r1, [r4, #4] cmp r1, #0 beq _02253C3A add r0, r5, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit _02253C3A: add r0, r5, #0 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit _02253C42: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -3848,7 +3848,7 @@ MOD20_02254014: ; 0x02254014 cmp r1, #0 beq _02254028 ldr r0, [r4, #0x10] - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4] _02254028: @@ -3856,7 +3856,7 @@ _02254028: cmp r1, #0 beq _02254038 ldr r0, [r4, #0x10] - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0 str r0, [r4, #4] _02254038: @@ -4072,7 +4072,7 @@ _02254176: _02254188: add r0, r5, #0 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r4, #0 _02254192: add r0, r4, #0 @@ -4089,10 +4089,10 @@ MOD20_02254198: ; 0x02254198 _022541A2: ldr r0, [r4, #8] ldr r1, [r4, #0x14] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [r4, #8] add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} thumb_func_end MOD20_02254198 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index 704cf6dea..957465b9d 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -3382,7 +3382,7 @@ _021D9002: ldrh r7, [r5, r1] ldr r0, [r5, r0] add r1, r5, r1 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId ldr r0, _021D90D0 ; =0x00000418 ldrh r0, [r5, r0] cmp r7, r0 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 2d066c8d8..9eac53b85 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -3840,7 +3840,7 @@ _02213C5E: ldr r0, [r0] add r1, #2 add r2, sp, #0xc - bl FUN_02001448 + bl ListMenuGetScrollAndRow cmp r4, #3 blt _02213C84 add r0, sp, #0xc @@ -3860,7 +3860,7 @@ _02213C84: ldrh r2, [r3, #2] ldrh r3, [r3] ldr r0, [r0] - bl FUN_020013C8 + bl ListMenuTestInput add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] @@ -3873,7 +3873,7 @@ _02213CA8: ldr r0, [r0] add r1, #2 add r2, sp, #0xc - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0xc ldr r1, [r5, #8] ldrh r3, [r0] @@ -3913,7 +3913,7 @@ _02213CF0: str r1, [sp, #8] add r0, #0xb4 ldr r0, [r0] - bl FUN_020013C8 + bl ListMenuTestInput add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] @@ -5554,7 +5554,7 @@ MOD56_022149D8: ; 0x022149D8 add r0, #0xb4 ldr r0, [r0] add r1, sp, #0x28 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, sp, #0x28 ldrh r0, [r0] add r0, r5, r0 @@ -5878,7 +5878,7 @@ _02214C66: add r0, #0xb4 ldr r0, [r0] add r1, sp, #0xc - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, sp, #0xc ldrh r0, [r0] add r0, r4, r0 @@ -7024,7 +7024,7 @@ _02215532: add r0, #0xb4 ldr r0, [r0] add r1, sp, #0x14 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, sp, #0x14 ldrh r0, [r0] add r0, r5, r0 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index e74ab2367..df2185cc4 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -2083,7 +2083,7 @@ _021D850C: add r0, r7, #0 add r1, #2 add r2, sp, #0x10 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r2, sp, #0x10 ldrh r2, [r2] mov r0, #7 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index 2d417cd2f..f67a18179 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -327,7 +327,7 @@ MOD67_021D777C: ; 0x021D777C bl FUN_020178A0 mov r0, #0x2a add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .align 2, 0 thumb_func_end MOD67_021D777C diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index 9f0a99ee9..ebb66d25e 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -320,7 +320,7 @@ MOD68_021D7774: ; 0x021D7774 bl FUN_020178A0 mov r0, #0x24 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .align 2, 0 thumb_func_end MOD68_021D7774 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 1ae20a7eb..171b49d7d 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -1750,7 +1750,7 @@ MOD71_0222E438: ; 0x0222E438 lsl r1, r1, #2 ldr r1, [r4, r1] mov r0, #0x1a - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r4, r0] diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 51a9bfa5d..cdef5e273 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -759,7 +759,7 @@ MOD75_021E71BC: ; 0x021E71BC bl FUN_020178A0 mov r0, #6 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .align 2, 0 thumb_func_end MOD75_021E71BC @@ -1773,14 +1773,14 @@ MOD75_021E797C: ; 0x021E797C mov r1, #8 mov r2, #0 mov r3, #9 - bl FUN_020013E8 + bl ListMenuOverrideSetColors b _021E79C6 _021E79BA: ldr r0, [sp] mov r1, #1 mov r2, #0 mov r3, #2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors _021E79C6: ldrb r0, [r6, #8] cmp r0, #7 @@ -2019,7 +2019,7 @@ MOD75_021E7B7C: ; 0x021E7B7C ldr r0, [r5, r0] add r1, r4, #6 add r2, r4, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow ldr r0, _021E7CD8 ; =gMain ldr r1, [r0, #0x48] mov r0, #4 @@ -2046,7 +2046,7 @@ _021E7BC0: ldr r0, [r5, r0] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0 ldrh r2, [r0] ldrh r0, [r4, #4] @@ -2085,7 +2085,7 @@ _021E7BFC: lsl r1, r1, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 - bl FUN_02001464 + bl ListMenuGetValueByArrayId add r6, r0, #0 mov r0, #0x49 mov r1, #1 @@ -2102,7 +2102,7 @@ _021E7C38: mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0200145C + bl ListMenuGetUnk33 cmp r0, #1 bne _021E7C5E add r0, r5, #0 @@ -3643,7 +3643,7 @@ MOD75_021E8808: ; 0x021E8808 add r1, r2, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 - bl FUN_02001464 + bl ListMenuGetValueByArrayId mov r1, #1 mvn r1, r1 cmp r0, r1 @@ -3701,7 +3701,7 @@ MOD75_021E8864: ; 0x021E8864 lsl r0, r0, #2 ldrb r1, [r4, r1] ldr r0, [r4, r0] - bl FUN_02001464 + bl ListMenuGetValueByArrayId ldr r1, _021E88B8 ; =0x0000047C str r0, [r4, r1] add r0, r4, #0 @@ -3744,7 +3744,7 @@ _021E88D0: ldr r0, [r5, r0] add r1, r4, #6 add r2, r4, #4 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r5, #0 bl MOD75_021E87B8 cmp r0, #1 @@ -3784,7 +3784,7 @@ _021E892E: ldr r0, [r5, r0] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, sp, #0 ldrh r2, [r0] ldrh r0, [r4, #4] @@ -3816,7 +3816,7 @@ _021E896A: mov r0, #0x57 lsl r0, r0, #2 ldr r0, [r5, r0] - bl FUN_0200145C + bl ListMenuGetUnk33 cmp r0, #1 bne _021E899A add r0, r5, #0 @@ -7055,7 +7055,7 @@ MOD75_021EA328: ; 0x021EA328 ldrh r3, [r3] ldr r0, [r4, r0] mov r1, #0 - bl FUN_02001354 + bl ListMenuTestInputInternal add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] @@ -7207,7 +7207,7 @@ MOD75_021EA444: ; 0x021EA444 ldrh r3, [r3] ldr r0, [r4, r0] mov r1, #0 - bl FUN_02001354 + bl ListMenuTestInputInternal add r0, r4, #0 add r0, #0xc4 ldr r0, [r0] @@ -7904,7 +7904,7 @@ _021EA9A8: bl FUN_02019220 mov r0, #6 add r1, r7, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -7993,7 +7993,7 @@ _021EAA8C: bl FUN_02019220 ldr r1, [sp, #0x18] mov r0, #6 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -8620,7 +8620,7 @@ MOD75_021EAF70: ; 0x021EAF70 bl FUN_02019658 mov r0, #6 add r1, r6, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x1c pop {r3, r4, r5, r6, pc} thumb_func_end MOD75_021EAF70 @@ -8695,7 +8695,7 @@ MOD75_021EB004: ; 0x021EB004 bl FUN_02019658 mov r0, #6 add r1, r6, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit add sp, #0x1c pop {r3, r4, r5, r6, pc} .align 2, 0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 86989ca3b..8e883a1d8 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -382,7 +382,7 @@ MOD76_021D77E4: ; 0x021D77E4 bl FUN_020178A0 mov r0, #0x43 add r1, r4, #0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D77E4 @@ -596,7 +596,7 @@ _021D799C: ldr r0, [r5, r0] add r1, #2 add r2, sp, #0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow mov r0, #0x41 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -609,7 +609,7 @@ _021D799C: ldr r0, [r5, r0] add r1, #0x12 add r2, #0x10 - bl FUN_02001448 + bl ListMenuGetScrollAndRow ldr r2, [r5] add r1, sp, #0 ldrh r1, [r1, #2] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 5982ed766..70ab6d089 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -14093,7 +14093,7 @@ MOD80_02234698: ; 0x02234698 add r6, r0, #0 add r0, r5, #0 add r1, sp, #0 - bl FUN_0200143C + bl ListMenuGetCurrentItemArrayId add r0, sp, #0 ldrh r1, [r4] ldrh r0, [r0] diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index a36fe53c9..64ff452be 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -4538,7 +4538,7 @@ MOD83_0222F9DC: ; 0x0222F9DC ldr r1, _0222F9F4 ; =MOD83_0223B884 mov r0, #0xf ldr r1, [r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, _0222F9F4 ; =MOD83_0223B884 mov r1, #0 str r1, [r0] diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index a9e0b94ed..f52a66590 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -203,7 +203,7 @@ void * FUN_020161A4(u32 heap_id, const char * path) { if (size != FS_ReadFile(&file, ret, (s32)size)) { - FUN_02016A8C(heap_id, ret); + FreeToHeapExplicit(heap_id, ret); ret = NULL; } } diff --git a/arm9/src/heap.c b/arm9/src/heap.c index 895ce808e..f28b4f888 100644 --- a/arm9/src/heap.c +++ b/arm9/src/heap.c @@ -309,7 +309,7 @@ void FreeToHeap(void *ptr) ErrorHandling(); } -void FUN_02016A8C(u32 param0, void *param1) +void FreeToHeapExplicit(u32 param0, void *param1) { GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); diff --git a/arm9/src/itemtool.c b/arm9/src/itemtool.c index 6b892d6d9..9982ff405 100644 --- a/arm9/src/itemtool.c +++ b/arm9/src/itemtool.c @@ -778,7 +778,7 @@ u32 GetItemAttr(u16 item, u32 attr, u32 heap_id) u32 ret; struct ItemData * itemData = (struct ItemData *)LoadItemDataOrGfx(item, 0, heap_id); ret = GetItemAttr_PreloadedItemData(itemData, attr); - FUN_02016A8C(heap_id, itemData); + FreeToHeapExplicit(heap_id, itemData); return ret; } diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 59de2813a..7b663eca4 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -3,21 +3,21 @@ #include "main.h" #include "list_menu.h" -extern void * FUN_02013690(u32 heap_id); +extern void * ListMenuCursorNew(u32 heap_id); extern void * ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y); -extern void CreateListMenuCursorObj(void *, u32); +extern void ListMenuCursorSetColor(void *, u32); extern void DestroyListMenuCursorObj(void *); extern void FillWindowPixelBuffer(struct Window *, u32); -void ListMenuPrintEntries(struct ListMenu *, u16, u16, u16); -void ListMenuDrawCursor(struct ListMenu *); -BOOL ListMenuChangeSelection(struct ListMenu *, u8, u8, s32); -void ListMenuCallSelectionChangedCallback(struct ListMenu *, BOOL); extern void CopyWindowToVram(struct Window *); extern s32 GetFontAttribute(u8 fontId, s32 attr); extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height); extern void ScrollWindow(struct Window *, u8, u8, u8); extern u16 GetWindowWidth(struct Window *); extern u16 GetWindowHeight(struct Window *); +void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 yOffset, u16 count); +void ListMenuDrawCursor(struct ListMenu * list); +BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorAndCallCallback, u8 count, u8 movingDown); +void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit); static inline u32 MakeFontColor(u32 fgPal, u32 shdwPal, u32 bgPal) { @@ -32,7 +32,7 @@ THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * templa { struct ListMenu * list = AllocFromHeap(heap_id, sizeof(struct ListMenu)); list->template = *template; - list->cursor = FUN_02013690(heap_id); + list->cursor = ListMenuCursorNew(heap_id); list->cursorPos = cursorPos; list->itemsAbove = itemsAbove; list->unk_30 = 0; @@ -48,7 +48,7 @@ THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * templa list->overrideEnabled = FALSE; if (list->template.totalItems < list->template.maxShowed) list->template.maxShowed = list->template.totalItems; - CreateListMenuCursorObj( + ListMenuCursorSetColor( list->cursor, // MakeFontColor(list->template.cursorPal, list->template.cursorShadowPal, list->fillValue) (u32)( @@ -130,7 +130,7 @@ THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * i if (itemsAbove != NULL) *itemsAbove = list->itemsAbove; DestroyListMenuCursorObj(list->cursor); - FUN_02016A8C(list->heap_id, list); + FreeToHeapExplicit(list->heap_id, list); } THUMB_FUNC void RedrawListMenu(struct ListMenu * list) @@ -141,7 +141,7 @@ THUMB_FUNC void RedrawListMenu(struct ListMenu * list) CopyWindowToVram(list->template.window); } -THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) +THUMB_FUNC s32 ListMenuTestInputInternal(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *newCursorPos, u16 *newItemsAbove) { if (template != NULL) list->template = *template; @@ -158,23 +158,23 @@ THUMB_FUNC s32 FUN_02001354(struct ListMenu * list, const struct ListMenuTemplat { ListMenuChangeSelection(list, updateFlag, 1, TRUE); } - if (cursorPosDest_p != NULL) + if (newCursorPos != NULL) { - *cursorPosDest_p = list->cursorPos; + *newCursorPos = list->cursorPos; } - if (itemsAboveDest_p != NULL) + if (newItemsAbove != NULL) { - *itemsAboveDest_p = list->itemsAbove; + *newItemsAbove = list->itemsAbove; } return -1; } -THUMB_FUNC s32 FUN_020013C8(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *cursorPosDest_p, u16 *itemsAboveDest_p) +THUMB_FUNC s32 ListMenuTestInput(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *newCursorPos, u16 *newItemsAbove) { - return FUN_02001354(list, template, cursorPos, itemsAbove, FALSE, input, cursorPosDest_p, itemsAboveDest_p); + return ListMenuTestInputInternal(list, template, cursorPos, itemsAbove, FALSE, input, newCursorPos, newItemsAbove); } -THUMB_FUNC void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) +THUMB_FUNC void ListMenuOverrideSetColors(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal) { list->cursorPal = cursorPal; list->fillValue = fillValue; @@ -182,12 +182,12 @@ THUMB_FUNC void FUN_020013E8(struct ListMenu * list, u8 cursorPal, u8 fillValue, list->overrideEnabled = TRUE; } -THUMB_FUNC void FUN_0200143C(struct ListMenu * list, u16 * index_p) +THUMB_FUNC void ListMenuGetCurrentItemArrayId(struct ListMenu * list, u16 * index_p) { *index_p = list->cursorPos + list->itemsAbove; } -THUMB_FUNC void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) +THUMB_FUNC void ListMenuGetScrollAndRow(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) { if (cursorPos_p != NULL) *cursorPos_p = list->cursorPos; @@ -195,12 +195,12 @@ THUMB_FUNC void FUN_02001448(struct ListMenu * list, u16 * cursorPos_p, u16 * it *itemsAbove_p = list->itemsAbove; } -THUMB_FUNC u8 FUN_0200145C(struct ListMenu * list) +THUMB_FUNC u8 ListMenuGetUnk33(struct ListMenu * list) { return list->unk_33; } -THUMB_FUNC s32 FUN_02001464(struct ListMenu * list, s32 index) +THUMB_FUNC s32 ListMenuGetValueByArrayId(struct ListMenu * list, s32 index) { return list->template.items[index].index; } @@ -519,3 +519,59 @@ THUMB_FUNC void ListMenuScroll(struct ListMenu * list, u8 count, u8 movingDown) } } } + +THUMB_FUNC BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorAndCallCallback, u8 count, u8 movingDown) +{ + u16 oldSelectedRow; + u8 selectionChange, i, cursorCount; + + oldSelectedRow = list->itemsAbove; + cursorCount = 0; + selectionChange = 0; + for (i = 0; i < count; i++) + { + do + { + u8 ret = ListMenuUpdateSelectedRowIndexAndScrollOffset(list, movingDown); + + selectionChange |= ret; + if (ret != 2) + break; + cursorCount++; + } + while (list->template.items[list->cursorPos + list->itemsAbove].index == LIST_HEADER); + } + + if (updateCursorAndCallCallback) + { + switch (selectionChange) + { + case 0: + default: + return TRUE; + case 1: + ListMenuErasePrintedCursor(list, oldSelectedRow); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, FALSE); + CopyWindowToVram(list->template.window); + break; + case 2: + case 3: + ListMenuErasePrintedCursor(list, oldSelectedRow); + ListMenuScroll(list, cursorCount, movingDown); + ListMenuDrawCursor(list); + ListMenuCallSelectionChangedCallback(list, FALSE); + CopyWindowToVram(list->template.window); + break; + } + } + return FALSE; +} + +void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit) +{ + if (list->template.moveCursorFunc != NULL) + { + list->template.moveCursorFunc(list, list->template.items[list->cursorPos + list->itemsAbove].index, onInit); + } +} diff --git a/include/heap.h b/include/heap.h index 69aedd9e5..5dc517953 100644 --- a/include/heap.h +++ b/include/heap.h @@ -28,7 +28,7 @@ THUMB_FUNC void FUN_02016988(); void *AllocFromHeap(u32 heap_id, u32 size); void *AllocFromHeapAtEnd(u32 heap_id, u32 size); void FreeToHeap(void *ptr); -void FUN_02016A8C(u32 heap_id, void * ptr); +void FreeToHeapExplicit(u32 heap_id, void * ptr); THUMB_FUNC u32 FUN_02016AF8(u32 param0); THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2); THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1); diff --git a/include/list_menu.h b/include/list_menu.h index 966a942aa..35fc44e67 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -28,8 +28,8 @@ struct ListMenuItem // TODO: Document remaining fields. // A lot of these are named based on similar fields in gen 3. -typedef void (*LM_MOVECURSORFUNC)(s32, u8, struct ListMenu *); -typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *, s32, u8); +typedef void (*LM_MOVECURSORFUNC)(struct ListMenu *list, s32 index, u8 onInit); +typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *list, s32 index, u8 y); struct ListMenuTemplate { From 5f3c83a7e596f028b199f15dbe98031deffe791c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 16:33:29 -0400 Subject: [PATCH 078/134] Missed one --- arm9/asm/unk_02001B80.s | 8 -------- arm9/global.inc | 2 +- arm9/modules/18/asm/module_18.s | 4 ++-- arm9/src/list_menu.c | 7 ++++++- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 6e08d1db4..1b7f2aace 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -12,14 +12,6 @@ UNK_020ECAC8: ; 0x020ECAC8 .text - thumb_func_start FUN_02001B80 -FUN_02001B80: ; 0x02001B80 - ldr r3, _02001B88 ; =CopyWindowToVram - ldr r0, [r0, #0xc] - bx r3 - nop -_02001B88: .word CopyWindowToVram - thumb_func_start FUN_02001B8C FUN_02001B8C: ; 0x02001B8C push {r3-r7, lr} diff --git a/arm9/global.inc b/arm9/global.inc index c93890f27..10769fcb5 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -202,7 +202,7 @@ .extern ListMenuGetTemplateField .extern ListMenuSetTemplateField .extern ListMenuGetItemStr -.extern FUN_02001B80 +.extern ListMenuCopyToVram .extern FUN_02001B8C .extern FUN_02001C14 .extern FUN_02001C34 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index d8d29d243..fb14c7c89 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -38637,7 +38637,7 @@ MOD18_0224C418: ; 0x0224C418 cmp r6, #0 beq _0224C434 add r0, r7, #0 - bl FUN_02001B80 + bl ListMenuCopyToVram _0224C434: add r0, r4, #0 add r0, #0x20 @@ -38761,7 +38761,7 @@ MOD18_0224C510: ; 0x0224C510 cmp r0, #0 beq _0224C546 ldr r0, [sp, #0xc] - bl FUN_02001B80 + bl ListMenuCopyToVram _0224C546: mov r0, #1 mvn r0, r0 diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 7b663eca4..e38321455 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -568,10 +568,15 @@ THUMB_FUNC BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorA return FALSE; } -void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit) +THUMB_FUNC void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 onInit) { if (list->template.moveCursorFunc != NULL) { list->template.moveCursorFunc(list, list->template.items[list->cursorPos + list->itemsAbove].index, onInit); } } + +THUMB_FUNC void ListMenuCopyToVram(struct ListMenu * list) +{ + CopyWindowToVram(list->template.window); +} From cdd1aae79156e0f7eaf1d2fd0056ef2af62a7f0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 18:38:50 -0400 Subject: [PATCH 079/134] Rename funcs in unk_02011744.s to disambiguate from list_menu --- arm9/asm/unk_02001B80.s | 8 +- arm9/asm/unk_02011744.s | 36 +++---- arm9/asm/unk_02035068.s | 8 +- arm9/asm/unk_020625EC.s | 8 +- arm9/asm/unk_020653EC.s | 14 +-- arm9/asm/unk_0206F3FC.s | 2 +- arm9/asm/unk_02072548.s | 6 +- arm9/asm/unk_02073DA8.s | 34 +++--- arm9/asm/unk_0207550C.s | 10 +- arm9/asm/unk_02086414.s | 6 +- arm9/global.inc | 12 +-- arm9/modules/05/asm/module_05.s | 8 +- arm9/modules/06/asm/module_06.s | 50 ++++----- arm9/modules/18/asm/module_18.s | 126 +++++++++++------------ arm9/modules/55/asm/module_55.s | 10 +- arm9/modules/56/asm/module_56.s | 42 ++++---- arm9/modules/59/asm/mod59_021D74E0_asm.s | 6 +- arm9/modules/62/asm/module_62.s | 6 +- arm9/modules/65/asm/module_65.s | 14 +-- arm9/modules/71/asm/module_71.s | 32 +++--- arm9/modules/75/asm/module_75.s | 34 +++--- arm9/modules/76/asm/module_76.s | 8 +- arm9/modules/77/asm/module_77.s | 10 +- arm9/modules/80/asm/module_80.s | 90 ++++++++-------- arm9/modules/83/asm/module_83.s | 16 +-- 25 files changed, 298 insertions(+), 298 deletions(-) diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 1b7f2aace..f76e1b80f 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -764,18 +764,18 @@ CreateYesNoMenu: ; 0x020020EC add r4, r0, #0x0 mov r0, #0x2 add r1, r5, #0x0 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r4, #0x0 mov r2, #0x29 mov r3, #0x0 add r6, r0, #0x0 - bl ListMenu_ItemFromMsgData ; YES + bl ListMenuItems_AppendFromMsgData ; YES mov r3, #0x2a add r2, r3, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 sub r3, #0x2c - bl ListMenu_ItemFromMsgData ; NO + bl ListMenuItems_AppendFromMsgData ; NO add r0, r4, #0x0 bl DestroyMsgData add r0, r5, #0x0 @@ -888,7 +888,7 @@ FUN_020021EC: ; 0x020021EC add r0, r4, #0x0 bl FreeToHeapExplicit ldr r0, [r5, #0x0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0x0 mov r1, #0x0 bl FUN_02001C5C diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index 0f9f871b4..98fd8b7ee 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -2407,8 +2407,8 @@ _0201282C: .word sMaxDate _02012830: .word sMaxTime _02012834: .word 0xBC19137F - thumb_func_start ListMenu_ctor -ListMenu_ctor: ; 0x02012838 + thumb_func_start ListMenuItems_ctor +ListMenuItems_ctor: ; 0x02012838 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 @@ -2440,23 +2440,23 @@ _02012862: _0201286E: pop {r3-r5, pc} - thumb_func_start ListMenu_dtor -ListMenu_dtor: ; 0x02012870 + thumb_func_start ListMenuItems_dtor +ListMenuItems_dtor: ; 0x02012870 push {r4, lr} add r4, r0, #0x0 - bl ListMenu_DestroyMenuStrings + bl ListMenuItems_DestroyMenuStrings add r0, r4, #0x0 bl FreeToHeap pop {r4, pc} - thumb_func_start ListMenu_ItemFromMsgData -ListMenu_ItemFromMsgData: ; 0x02012880 + thumb_func_start ListMenuItems_AppendFromMsgData +ListMenuItems_AppendFromMsgData: ; 0x02012880 push {r3-r7, lr} add r6, r1, #0x0 add r1, sp, #0x0 add r7, r2, #0x0 add r5, r3, #0x0 - bl ListMenu_NewItem + bl ListMenuItems_NewItem add r4, r0, #0x0 beq _0201289E add r0, r6, #0x0 @@ -2467,14 +2467,14 @@ ListMenu_ItemFromMsgData: ; 0x02012880 _0201289E: pop {r3-r7, pc} - thumb_func_start ListMenu_AddItem -ListMenu_AddItem: ; 0x020128A0 + thumb_func_start ListMenuItems_AddItem +ListMenuItems_AddItem: ; 0x020128A0 push {r3-r6, lr} sub sp, #0x4 add r6, r1, #0x0 add r1, sp, #0x0 add r5, r2, #0x0 - bl ListMenu_NewItem + bl ListMenuItems_NewItem add r4, r0, #0x0 beq _020128BE ldr r1, [sp, #0x0] @@ -2487,13 +2487,13 @@ _020128BE: pop {r3-r6, pc} .balign 4 - thumb_func_start ListMenu_CopyItem -ListMenu_CopyItem: ; 0x020128C4 + thumb_func_start ListMenuItems_CopyItem +ListMenuItems_CopyItem: ; 0x020128C4 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 add r1, sp, #0x0 - bl ListMenu_NewItem + bl ListMenuItems_NewItem cmp r0, #0x0 beq _020128DC ldr r1, [r4, #0x0] @@ -2504,8 +2504,8 @@ _020128DC: add sp, #0x4 pop {r3-r4, pc} - thumb_func_start ListMenu_NewItem -ListMenu_NewItem: ; 0x020128E0 + thumb_func_start ListMenuItems_NewItem +ListMenuItems_NewItem: ; 0x020128E0 push {r4, lr} ldr r3, [r0, #0x0] cmp r3, #0x0 @@ -2541,8 +2541,8 @@ _02012912: pop {r4, pc} .balign 4 - thumb_func_start ListMenu_DestroyMenuStrings -ListMenu_DestroyMenuStrings: ; 0x0201291C + thumb_func_start ListMenuItems_DestroyMenuStrings +ListMenuItems_DestroyMenuStrings: ; 0x0201291C push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x0 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 1123d9f5f..c9df4ca49 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -639,7 +639,7 @@ FUN_0203549C: ; 0x0203549C str r0, [sp, #0x18] ldr r0, [sp, #0x14] mov r1, #0xb - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r4, #0x24] mov r5, #0x0 ldr r0, [sp, #0x14] @@ -684,7 +684,7 @@ _02035526: ldrb r2, [r2, #0x0] ldr r0, [r4, #0x24] add r1, r7, #0x0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldr r0, [sp, #0x20] bl String_dtor add r0, r7, #0x0 @@ -698,7 +698,7 @@ _02035594: ldr r0, [r4, #0x24] ldr r1, [sp, #0x18] ldr r2, [r2, r6] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _020355A2: ldr r0, [sp, #0x1c] add r0, #0x8c @@ -902,7 +902,7 @@ FUN_02035718: ; 0x02035718 mov r1, #0x0 bl FUN_02001C5C ldr r0, [r4, #0x24] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x0 str r0, [r4, #0x20] pop {r4, pc} diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 48f512e97..fc235004e 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1361,7 +1361,7 @@ FUN_02063028: ; 0x02063028 ldr r1, [r5, #0x0] add r7, r0, #0x1 add r0, r7, #0x0 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0x0 add r1, #0xc4 str r0, [r1, #0x0] @@ -1397,7 +1397,7 @@ _0206307C: ldr r0, [r0, #0x0] ldr r1, [r4, #0x64] add r2, r6, #0x0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldrb r0, [r5, #0x18] add r6, r6, #0x1 add r4, r4, #0x4 @@ -1409,7 +1409,7 @@ _02063094: ldr r0, [r0, #0x0] ldr r1, [r5, #0x38] ldr r2, _02063160 ; =0x0000FFFF - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r1, r5, #0x0 ldr r0, _02063164 ; =UNK_020F7C2C add r1, #0xa0 @@ -1519,7 +1519,7 @@ FUN_02063178: ; 0x02063178 add r0, r4, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0x0 add r0, #0xd4 bl FUN_02019570 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 69cc0dbd5..df203337b 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -976,7 +976,7 @@ FUN_02065AF4: ; 0x02065AF4 ldrb r0, [r5, #0x1b] ldr r1, [r5, #0x0] add r0, r0, #0x1 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r1, #0x59 lsl r1, r1, #0x2 add r7, r5, #0x0 @@ -995,7 +995,7 @@ _02065B7E: ldr r1, [r2, #0x8] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 @@ -1011,7 +1011,7 @@ _02065B9E: sub r1, #0x4c ldr r1, [r5, r1] ldr r2, _02065CE0 ; =0x0000FFFF - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r6, #0x1 lsl r0, r0, #0x18 mov r1, #0x5 @@ -1280,7 +1280,7 @@ FUN_02065DD8: ; 0x02065DD8 str r2, [sp, #0x4] ldr r1, [r5, #0x0] mov r0, #0x4 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r5, r1] @@ -1309,7 +1309,7 @@ _02065E14: ldr r1, [r5, r7] ldr r2, [r6, r2] ldr r3, [r3, #0x4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -1422,7 +1422,7 @@ FUN_02065EF8: ; 0x02065EF8 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 @@ -1499,7 +1499,7 @@ FUN_02065F8C: ; 0x02065F8C mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 772480edf..1a62b92b5 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -781,7 +781,7 @@ _0206F914: bl FUN_02001C5C ldr r0, _0206F978 ; =0x000006F8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index 03f7c540a..7cbbce8fd 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -453,7 +453,7 @@ FUN_02072844: ; 0x02072844 bl FUN_02019064 ldr r0, [sp, #0x14] mov r1, #0xc - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _0207294C ; =0x000006F8 mov r6, #0x0 str r0, [r5, r1] @@ -473,7 +473,7 @@ _02072890: ldr r1, _02072950 ; =0x000006E8 ldr r0, [r5, r0] ldr r1, [r3, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 @@ -488,7 +488,7 @@ _020728B4: ldr r1, _02072954 ; =0x000006AC ldr r0, [r5, r0] ldr r1, [r3, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem _020728CC: add r0, r4, #0x1 lsl r0, r0, #0x10 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index 6dd1bf643..9cac16620 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -46,7 +46,7 @@ FUN_02073DB4: ; 0x02073DB4 bl FUN_02001C5C ldr r0, _02073DF0 ; =0x000006F8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 @@ -69,7 +69,7 @@ FUN_02073DF4: ; 0x02073DF4 bl FUN_020731D4 mov r0, #0x3 mov r1, #0xc - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02073EB0 ; =0x000006F8 str r0, [r5, r1] mov r0, #0x3 @@ -79,7 +79,7 @@ FUN_02073DF4: ; 0x02073DF4 ldr r0, [r5, r1] sub r1, #0x40 ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x4 bl FUN_02073DA8 ldr r1, _02073EB0 ; =0x000006F8 @@ -87,7 +87,7 @@ FUN_02073DF4: ; 0x02073DF4 ldr r0, [r5, r1] sub r1, #0x3c ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x9 bl FUN_02073DA8 ldr r1, _02073EB0 ; =0x000006F8 @@ -95,7 +95,7 @@ FUN_02073DF4: ; 0x02073DF4 ldr r0, [r5, r1] sub r1, #0x28 ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldr r0, _02073EB0 ; =0x000006F8 mov r1, #0x0 ldr r0, [r5, r0] @@ -155,7 +155,7 @@ FUN_02073EB8: ; 0x02073EB8 bl FUN_02001C5C ldr r0, _02073EE4 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02073EE8 ; =0x000005A4 mov r1, #0x3 ldr r0, [r5, r0] @@ -186,7 +186,7 @@ FUN_02073EEC: ; 0x02073EEC bl FUN_02001C5C ldr r0, _02074048 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _0207404C ; =0x00000B25 ldrb r1, [r5, r0] mov r0, #0x2c @@ -381,7 +381,7 @@ FUN_020740AC: ; 0x020740AC bl FUN_020731D4 mov r0, #0x3 mov r1, #0xc - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02074168 ; =0x000006F8 str r0, [r5, r1] mov r0, #0x6 @@ -391,7 +391,7 @@ FUN_020740AC: ; 0x020740AC ldr r0, [r5, r1] sub r1, #0x34 ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x7 bl FUN_02073DA8 ldr r1, _02074168 ; =0x000006F8 @@ -399,7 +399,7 @@ FUN_020740AC: ; 0x020740AC ldr r0, [r5, r1] sub r1, #0x30 ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x9 bl FUN_02073DA8 ldr r1, _02074168 ; =0x000006F8 @@ -407,7 +407,7 @@ FUN_020740AC: ; 0x020740AC ldr r0, [r5, r1] sub r1, #0x28 ldr r1, [r5, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldr r0, _02074168 ; =0x000006F8 mov r1, #0x0 ldr r0, [r5, r0] @@ -467,7 +467,7 @@ FUN_02074170: ; 0x02074170 bl FUN_02001C5C ldr r0, _0207419C ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _020741A0 ; =0x000005A4 mov r1, #0x7 ldr r0, [r5, r0] @@ -497,7 +497,7 @@ FUN_020741A4: ; 0x020741A4 bl FUN_02001C5C ldr r0, _020741F0 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0x0 mov r1, #0x2b mov r2, #0x1 @@ -744,7 +744,7 @@ FUN_020743AC: ; 0x020743AC bl FUN_02001C5C ldr r0, _02074414 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02074418 ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] @@ -2324,7 +2324,7 @@ FUN_02075090: ; 0x02075090 bl FUN_02001C5C ldr r0, _020750C0 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} @@ -2349,7 +2349,7 @@ FUN_020750C4: ; 0x020750C4 bl FUN_02001C5C ldr r0, _020750F4 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} @@ -2482,7 +2482,7 @@ _020751E4: bl FUN_02001C5C ldr r0, _0207523C ; =0x000006F8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x1b str r0, [r6, #0x0] pop {r4-r6, pc} diff --git a/arm9/asm/unk_0207550C.s b/arm9/asm/unk_0207550C.s index 743c2845b..9e2ab9b0e 100644 --- a/arm9/asm/unk_0207550C.s +++ b/arm9/asm/unk_0207550C.s @@ -3174,7 +3174,7 @@ FUN_02076FB0: ; 0x02076FB0 mov r2, #0x2 ldr r1, [r5, r1] mvn r2, r2 - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x0 pop {r3-r7, pc} _0207701C: @@ -3182,7 +3182,7 @@ _0207701C: sub r1, #0x50 ldr r1, [r5, r1] add r2, r6, #0x0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem mov r0, #0x1 pop {r3-r7, pc} .balign 4 @@ -3209,7 +3209,7 @@ _02077050: _02077058: mov r0, #0x4 mov r1, #0xc - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02077108 ; =0x000006F8 str r0, [r4, r1] add r0, r4, #0x0 @@ -3328,7 +3328,7 @@ _02077130: bl FUN_02001C5C ldr r0, _02077230 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0x0 mov r1, #0x20 mov r2, #0x1 @@ -3353,7 +3353,7 @@ _0207716A: bl FUN_02001C5C ldr r0, _02077230 ; =0x000006F8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02077234 ; =0x000005A4 ldr r6, [r5, r0] add r0, r5, #0x0 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index b3f2444c9..3cbdf2a8f 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -658,7 +658,7 @@ FUN_02086878: ; 0x02086878 bl FUN_02019064 mov r0, #0x2 mov r1, #0x47 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x44] ldr r2, _0208695C ; =0x0000013F mov r0, #0x0 @@ -675,7 +675,7 @@ _020868DE: ldr r0, [r5, #0x44] add r1, r6, #0x0 add r2, r4, #0x0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r6, #0x0 bl String_dtor add r4, r4, #0x1 @@ -744,7 +744,7 @@ FUN_02086960: ; 0x02086960 mov r1, #0x0 bl FUN_02001C5C ldr r0, [r4, #0x44] - bl ListMenu_dtor + bl ListMenuItems_dtor pop {r4, pc} thumb_func_start FUN_0208698C diff --git a/arm9/global.inc b/arm9/global.inc index 10769fcb5..5b931bb80 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -810,12 +810,12 @@ .extern GF_RTC_GetTimeOfDay .extern GF_RTC_GetTimeOfDayByHour .extern FUN_020127C0 -.extern ListMenu_ctor -.extern ListMenu_dtor -.extern ListMenu_ItemFromMsgData -.extern ListMenu_AddItem -.extern ListMenu_CopyItem -.extern ListMenu_DestroyMenuStrings +.extern ListMenuItems_ctor +.extern ListMenuItems_dtor +.extern ListMenuItems_AppendFromMsgData +.extern ListMenuItems_AddItem +.extern ListMenuItems_CopyItem +.extern ListMenuItems_DestroyMenuStrings .extern FUN_02012944 .extern FUN_02012974 .extern FUN_02012988 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index e1f83467e..e130e2086 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -15197,7 +15197,7 @@ MOD05_021EFEDC: ; 0x021EFEDC add r7, r0, #0 add r0, r7, #1 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5] mov r0, #1 str r0, [sp] @@ -15238,7 +15238,7 @@ _021EFF2E: ldr r0, [r5] ldr r1, [r5, #8] add r2, r4, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem _021EFF54: add r4, r4, #1 cmp r4, #0x20 @@ -15248,7 +15248,7 @@ _021EFF54: ldr r0, [r5] ldr r1, [r5, #0x3c] sub r3, #0xd - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r4, _021EFFC0 ; =UNK05_021F8B4C add r3, sp, #0x14 add r2, r3, #0 @@ -15368,7 +15368,7 @@ _021F0056: add r2, r1, #0 bl DestroyListMenu ldr r0, [r5] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 92922fbaa..d8efc02e0 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -8427,7 +8427,7 @@ MOD06_0223D63C: ; 0x0223D63C mov r4, #3 add r0, r4, #0 mov r1, #0xb - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0x84 str r0, [r1] @@ -8439,7 +8439,7 @@ MOD06_0223D63C: ; 0x0223D63C ldr r1, [r1] mov r2, #0xf mov r3, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r5, #0 add r1, r5, #0 add r0, #0x84 @@ -8448,7 +8448,7 @@ MOD06_0223D63C: ; 0x0223D63C ldr r1, [r1] mov r2, #0x10 mov r3, #0xe - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r5, #0 add r1, r5, #0 add r0, #0x84 @@ -8458,7 +8458,7 @@ MOD06_0223D63C: ; 0x0223D63C ldr r0, [r0] ldr r1, [r1] sub r3, #0x13 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData mov r3, #1 str r3, [sp] mov r1, #0xd @@ -8478,7 +8478,7 @@ _0223D6B8: mov r4, #2 add r0, r4, #0 mov r1, #0xb - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0x84 str r0, [r1] @@ -8490,7 +8490,7 @@ _0223D6B8: ldr r1, [r1] mov r2, #0xf add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r5, #0 add r1, r5, #0 add r0, #0x84 @@ -8500,7 +8500,7 @@ _0223D6B8: ldr r0, [r0] ldr r1, [r1] sub r3, #0x13 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData mov r3, #1 str r3, [sp] mov r1, #0xd @@ -8618,7 +8618,7 @@ MOD06_0223D7B8: ; 0x0223D7B8 add r0, r4, #0 add r0, #0x84 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r4, #8 add r0, r4, #0 bl FUN_02019178 @@ -9146,7 +9146,7 @@ _0223DC34: ldrb r0, [r5, r0] mov r1, #0xb add r0, r0, #1 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x7c] mov r0, #0x8b lsl r0, r0, #2 @@ -9172,7 +9172,7 @@ _0223DC52: ldr r0, [r5, #0x7c] ldrh r2, [r2, r4] add r1, r7, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r7, #0 bl String_dtor mov r0, #0x8b @@ -9190,7 +9190,7 @@ _0223DC8E: ldr r0, [r5, #0x7c] ldr r1, [r1] sub r3, #0xa - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, [sp] bl DestroyMsgData ldr r4, _0223DCEC ; =0x0224F38C @@ -9597,7 +9597,7 @@ _0223E006: add r2, r1, #0 bl DestroyListMenu ldr r0, [r5, #0x7c] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 bl MOD06_0223D9C0 add r0, r5, #0 @@ -11977,7 +11977,7 @@ MOD06_0223F3B8: ; 0x0223F3B8 beq _0223F450 mov r0, #0x10 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r4, _0223F454 ; =0x02252420 mov r5, #0 ldr r1, [r4] @@ -12006,7 +12006,7 @@ _0223F3E0: mov r2, #0 ldr r0, [r1, #0x64] ldr r1, [r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r5, r5, #1 cmp r5, #0x10 blt _0223F3E0 @@ -12821,7 +12821,7 @@ MOD06_0223FAB8: ; 0x0223FAB8 beq _0223FB4C mov r0, #5 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r4, _0223FB50 ; =0x02252420 mov r5, #0 ldr r1, [r4] @@ -12834,7 +12834,7 @@ _0223FAE6: ldr r0, [r1, #0x64] ldr r1, [r1, #0x74] add r3, r7, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r5, r5, #1 cmp r5, #5 blt _0223FAE6 @@ -13849,7 +13849,7 @@ MOD06_02240364: ; 0x02240364 mov r1, #0 bl FUN_0200CCF8 ldr r0, [r4, #0x64] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r1, #0 ldr r0, [r4, #0x5c] add r2, r1, #0 @@ -14577,7 +14577,7 @@ _02240940: bne _022409D2 add r0, r6, #2 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #8] mov r3, #1 str r3, [sp] @@ -14605,7 +14605,7 @@ _02240940: ldr r1, [r5, #0x68] mov r2, #0x7b mov r3, #0xc - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData mov r4, #0 cmp r6, #0 ble _022409C4 @@ -14625,7 +14625,7 @@ _02240998: ldr r0, [r5, #8] ldr r1, [r5, #0x20] add r2, r4, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r4, r4, #1 cmp r4, r6 blt _02240998 @@ -14635,7 +14635,7 @@ _022409C4: ldr r0, [r5, #8] ldr r1, [r5, #0x68] sub r3, #0x74 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _022409D2: ldr r4, _02240A24 ; =0x0224F704 add r3, sp, #0x14 @@ -14700,7 +14700,7 @@ MOD06_02240A28: ; 0x02240A28 add r0, #0x34 bl FUN_02019178 ldr r0, [r4, #8] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 str r0, [r4] _02240A62: @@ -14792,7 +14792,7 @@ MOD06_02240B04: ; 0x02240B04 mov r0, #3 mov r1, #4 ldr r4, _02240BA8 ; =MOD6_022522E4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0xc] mov r0, #0xa str r0, [sp] @@ -14823,7 +14823,7 @@ _02240B4A: ldr r1, [r5, #0x68] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, #3 @@ -14935,7 +14935,7 @@ _02240C1A: add r0, #0x44 bl FUN_02019178 ldr r0, [r5, #0xc] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 str r0, [r5, #4] _02240C50: diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index fb14c7c89..1b4efb2af 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -22044,7 +22044,7 @@ MOD18_02244028: ; 0x02244028 ldr r1, [sp, #0xc] ldrh r0, [r5, #0x10] ldrb r1, [r1, #0x1d] - bl ListMenu_ctor + bl ListMenuItems_ctor add r7, r0, #0 ldrh r0, [r5, #0x10] mov r6, #0 @@ -22055,7 +22055,7 @@ _02244084: ldr r1, [r5] add r0, r7, #0 add r1, r1, r4 - bl ListMenu_CopyItem + bl ListMenuItems_CopyItem ldrh r0, [r5, #0x10] add r6, r6, #1 add r4, #8 @@ -22216,7 +22216,7 @@ _022441BA: blx r3 ldrb r1, [r5, #0x1d] add r0, r7, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r4, #0 add r6, r4, #0 str r0, [sp] @@ -22234,7 +22234,7 @@ _022441DE: lsl r1, r4, #3 ldr r0, [sp] add r1, r2, r1 - bl ListMenu_CopyItem + bl ListMenuItems_CopyItem _022441EA: add r0, sp, #0xc ldrh r1, [r0, #2] @@ -22250,7 +22250,7 @@ _022441EA: add r1, r2, r1 lsl r1, r1, #3 add r1, r3, r1 - bl ListMenu_CopyItem + bl ListMenuItems_CopyItem _0224420A: add r6, r6, #1 cmp r6, r7 @@ -25548,17 +25548,17 @@ MOD18_02245B1C: ; 0x02245B1C add r5, r0, #0 ldr r1, [sp, #0x30] mov r0, #2 - bl ListMenu_ctor + bl ListMenuItems_ctor add r4, r0, #0 add r1, r5, #0 mov r2, #0x26 mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r4, #0 add r1, r5, #0 mov r2, #0x27 mov r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, [sp, #0x30] mov r1, #1 str r4, [sp, #0x10] @@ -29532,7 +29532,7 @@ MOD18_02247AA8: ; 0x02247AA8 add r5, r0, #0 mov r0, #4 add r1, r0, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x1c] mov r3, #1 str r3, [sp] @@ -29569,7 +29569,7 @@ _02247AFA: ldr r2, [r4] ldr r3, [r4, #4] add r1, r7, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, #4 @@ -29658,7 +29658,7 @@ MOD18_02247BB8: ; 0x02247BB8 add r5, r0, #0 mov r0, #4 add r1, r0, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x1c] mov r3, #1 str r3, [sp] @@ -29714,7 +29714,7 @@ _02247C2C: ldr r0, [r5, #0x1c] add r1, r6, #0 add r3, r2, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _02247C40 _02247C3E: sub r4, r4, #1 @@ -29831,7 +29831,7 @@ MOD18_02247D1C: ; 0x02247D1C add r5, r0, #0 mov r0, #4 add r1, r0, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x1c] mov r3, #1 str r3, [sp] @@ -29871,7 +29871,7 @@ _02247D6C: lsl r2, r2, #2 add r2, r4, r2 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, #4 blt _02247D6C @@ -30167,7 +30167,7 @@ MOD18_02247FC0: ; 0x02247FC0 add r0, #0xc bl FUN_02019178 ldr r0, [r4, #0x1c] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 str r0, [r4, #0x1c] _02247FF8: @@ -31143,7 +31143,7 @@ MOD18_02248784: ; 0x02248784 add r0, #8 bl FUN_02019178 ldr r0, [r4, #0x18] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 str r0, [r4, #0x18] _022487BC: @@ -31202,7 +31202,7 @@ MOD18_02248820: ; 0x02248820 add r5, r0, #0 mov r0, #5 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x18] mov r3, #1 add r1, r5, #0 @@ -31242,7 +31242,7 @@ _02248870: lsl r2, r2, #2 add r2, r4, r2 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, #4 blt _02248870 @@ -31250,7 +31250,7 @@ _02248870: add r1, r6, #0 mov r2, #0x30 mov r3, #0x33 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #0 bl DestroyMsgData ldr r4, _022488EC ; =0x02250528 @@ -32943,7 +32943,7 @@ MOD18_02249564: ; 0x02249564 bl MOD18_02249544 mov r0, #7 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r0, #1 str r0, [sp] @@ -32985,7 +32985,7 @@ _022495BA: ldr r0, [r5, #0x40] ldr r2, [r4, #4] add r1, r7, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r7, #0 bl String_dtor b _022495EE @@ -32994,7 +32994,7 @@ _022495E2: ldr r1, [sp, #0x14] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _022495EE: add r6, r6, #1 add r4, #8 @@ -33413,7 +33413,7 @@ _02249936: add r0, #0x10 bl FUN_02019178 ldr r0, [r4, #0x40] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0 bl MOD18_0224CBAC _02249968: @@ -33456,7 +33456,7 @@ _02249998: _022499A2: add r0, r6, #0 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x44] lsl r0, r7, #0x18 lsr r0, r0, #0x18 @@ -33498,7 +33498,7 @@ _022499FA: ldr r1, [sp, #0x14] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r7, r7, #1 add r4, #8 cmp r7, r6 @@ -33559,7 +33559,7 @@ MOD18_02249A64: ; 0x02249A64 ldr r0, [r4, #0x20] bl FUN_0201AC68 ldr r0, [r4, #0x44] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 str r0, [r4, #0x50] _02249A8C: @@ -33730,7 +33730,7 @@ MOD18_02249BA8: ; 0x02249BA8 bl MOD18_0224DB80 add r0, r6, #1 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -33767,7 +33767,7 @@ _02249C18: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, r6 blt _02249C18 @@ -33777,7 +33777,7 @@ _02249C30: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] sub r3, #0x24 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r3, _02249CBC ; =0x02250598 add r2, sp, #0x1c ldmia r3!, {r0, r1} @@ -34197,7 +34197,7 @@ MOD18_02249F8C: ; 0x02249F8C bl MOD18_0224DB80 add r0, r6, #1 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -34259,7 +34259,7 @@ _0224A002: ldr r0, [r5, #0x40] ldr r1, [r5, #0x68] add r2, r4, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r4, r4, #1 cmp r4, r6 blt _0224A002 @@ -34269,7 +34269,7 @@ _0224A058: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] sub r3, #0x3e - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r3, _0224A0E0 ; =0x02250598 add r2, sp, #0x20 ldmia r3!, {r0, r1} @@ -34646,7 +34646,7 @@ MOD18_0224A360: ; 0x0224A360 bl MOD18_0224DB80 add r0, r6, #1 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -34683,7 +34683,7 @@ _0224A3D0: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, r6 blt _0224A3D0 @@ -34693,7 +34693,7 @@ _0224A3E8: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] sub r3, #0x3e - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r3, _0224A470 ; =0x02250598 add r2, sp, #0x1c ldmia r3!, {r0, r1} @@ -35584,7 +35584,7 @@ MOD18_0224AB08: ; 0x0224AB08 bl MOD18_0224DB80 add r0, r6, #1 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -35621,7 +35621,7 @@ _0224AB78: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, r6 blt _0224AB78 @@ -35630,7 +35630,7 @@ _0224AB90: ldr r0, [r5, #0x40] ldr r1, [sp, #0x18] sub r3, r2, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r3, _0224AC18 ; =0x02250598 add r2, sp, #0x1c ldmia r3!, {r0, r1} @@ -36627,7 +36627,7 @@ _0224B374: bl MOD18_022498EC ldr r0, [sp, #0x18] mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 str r2, [sp] @@ -36675,13 +36675,13 @@ _0224B3D4: add r1, r7, #0 add r2, r6, #5 mvn r3, r3 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _0224B3F4 _0224B3EA: add r1, r7, #0 add r2, r6, r4 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _0224B3F4: ldr r0, [sp, #0x18] add r4, r4, #1 @@ -36750,7 +36750,7 @@ MOD18_0224B464: ; 0x0224B464 bl MOD18_022498EC ldr r0, [sp, #0x1c] mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -36796,13 +36796,13 @@ _0224B4D0: add r1, r7, #0 add r2, r6, r4 mvn r3, r3 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _0224B4F0 _0224B4E6: add r1, r7, #0 add r2, r6, r4 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _0224B4F0: ldr r0, [sp, #0x1c] add r4, r4, #1 @@ -38462,7 +38462,7 @@ _0224C288: bl MOD18_022498EC add r0, r4, #0 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -38502,14 +38502,14 @@ _0224C288: ldr r0, [r5, #0x40] mov r2, #0xd mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData bl MOD18_0223D658 bl MOD18_0224DBB4 add r1, r0, #0 ldr r0, [r5, #0x40] mov r2, #0xe mov r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData bl MOD18_0223D658 bl MOD18_0224DBB4 mov r2, #0xf @@ -38517,7 +38517,7 @@ _0224C288: add r3, r2, #0 ldr r0, [r5, #0x40] sub r3, #0x11 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _0224C396 _0224C31E: cmp r0, #0 @@ -38532,14 +38532,14 @@ _0224C31E: ldr r0, [r5, #0x40] mov r2, #0x10 mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData bl MOD18_0223D658 bl MOD18_0224DBB4 add r1, r0, #0 ldr r0, [r5, #0x40] mov r2, #0x11 mov r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData bl MOD18_0223D658 bl MOD18_0224DBB4 mov r2, #0x12 @@ -38547,7 +38547,7 @@ _0224C31E: add r3, r2, #0 ldr r0, [r5, #0x40] sub r3, #0x14 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _0224C396 _0224C36C: bl MOD18_0223D658 @@ -38556,7 +38556,7 @@ _0224C36C: ldr r0, [r5, #0x40] mov r2, #0x1c mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData bl MOD18_0223D658 bl MOD18_0224DBB4 mov r2, #0x16 @@ -38564,7 +38564,7 @@ _0224C36C: add r3, r2, #0 ldr r0, [r5, #0x40] sub r3, #0x18 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _0224C396: bl MOD18_0224DAD8 add r1, sp, #0x14 @@ -39086,7 +39086,7 @@ MOD18_0224C7D4: ; 0x0224C7D4 bl MOD18_022498EC mov r0, #6 mov r1, #4 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x40] mov r2, #3 add r1, r5, #0 @@ -39160,7 +39160,7 @@ _0224C87C: ldr r0, [r5, #0x40] add r1, r6, #0 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, #5 blt _0224C87C @@ -39168,7 +39168,7 @@ _0224C87C: ldr r0, [r5, #0x40] add r1, r6, #0 sub r3, r2, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #0 bl DestroyMsgData bl MOD18_0224DAD8 @@ -42286,7 +42286,7 @@ MOD18_0224E0CC: ; 0x0224E0CC add r5, r0, #0 mov r0, #4 add r1, r0, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x24] mov r2, #3 str r2, [sp] @@ -42369,7 +42369,7 @@ _0224E186: ldr r2, [r4] add r1, r7, #0 add r3, r6, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, r4, #4 cmp r6, #4 @@ -42496,7 +42496,7 @@ MOD18_0224E26C: ; 0x0224E26C add r0, #0x14 bl FUN_02019178 ldr r0, [r4, #0x24] - bl ListMenu_dtor + bl ListMenuItems_dtor pop {r4, pc} .align 2, 0 thumb_func_end MOD18_0224E26C @@ -42741,7 +42741,7 @@ _0224E454: ldr r0, [sp, #0x20] mov r1, #4 add r0, r0, #1 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5, #0x28] mov r2, #3 str r2, [sp] @@ -42899,7 +42899,7 @@ _0224E5B4: ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r3, r6, r3 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, [sp, #0x20] add r4, r4, #1 add r6, r6, #2 @@ -42911,7 +42911,7 @@ _0224E5CE: ldr r1, [sp, #0x18] ldr r2, _0224E694 ; =0x00000115 add r3, r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, [sp, #0x18] bl DestroyMsgData bl MOD18_0223D678 @@ -43025,7 +43025,7 @@ MOD18_0224E6A8: ; 0x0224E6A8 add r0, #0x18 bl FUN_02019178 ldr r0, [r4, #0x28] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, [r4, #4] bl FUN_0205EBEC pop {r4, pc} diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index 957465b9d..c221c2d0e 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -3213,7 +3213,7 @@ MOD55_021D8E6C: ; 0x021D8E6C stmia r2!, {r0, r1} add r0, r7, #0 mov r1, #0x34 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r4, _021D8FD0 ; =0x021DA3D8 str r0, [r5, #0x14] mov r6, #0 @@ -3222,7 +3222,7 @@ _021D8EB6: ldr r1, [r5, #0x10] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, #4 @@ -3241,7 +3241,7 @@ _021D8ECC: stmia r2!, {r0, r1} add r0, r7, #0 mov r1, #0x34 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r4, _021D8FD8 ; =0x021DA438 str r0, [r5, #0x14] mov r6, #0 @@ -3250,7 +3250,7 @@ _021D8EEE: ldr r1, [r5, #0x10] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, #4 @@ -3460,7 +3460,7 @@ _021D9098: add r2, r1, #0 bl DestroyListMenu ldr r0, [r5, #0x14] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r6, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 9eac53b85..8626dac26 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -1457,7 +1457,7 @@ _022129EA: ldr r0, [r0] cmp r0, #0 beq _02212A00 - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0 mov r1, #0 add r0, #0xb0 @@ -2487,7 +2487,7 @@ MOD56_02213194: ; 0x02213194 add r0, r6, #0 add r0, #0xb0 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r6, #0 mov r1, #0 add r0, #0xb0 @@ -3462,7 +3462,7 @@ _02213944: ldr r0, [r0] ldr r1, [r5, r7] sub r2, r2, #1 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r6, r6, #1 _0221395C: add r4, r4, #1 @@ -3476,7 +3476,7 @@ _0221395C: ldr r1, [r1] mov r2, #0x1b mov r3, #0x20 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r5, #0 add r0, #0xb0 add r5, #0xcc @@ -3485,7 +3485,7 @@ _0221395C: ldr r0, [r0] ldr r1, [r5] sub r3, #0x30 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -3498,7 +3498,7 @@ MOD56_02213990: ; 0x02213990 add r5, r0, #0 mov r0, #0x22 mov r1, #0x36 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xb0 str r0, [r1] @@ -3683,7 +3683,7 @@ _02213AF0: add r0, r5, #0 add r0, #0xb0 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 mov r1, #0 add r0, #0xb0 @@ -3808,7 +3808,7 @@ _02213C24: add r0, r5, #0 add r0, #0xb0 ldr r0, [r0] - bl ListMenu_DestroyMenuStrings + bl ListMenuItems_DestroyMenuStrings add r0, r5, #0 add r0, #0xb4 ldr r0, [r0] @@ -4107,7 +4107,7 @@ _02213E5C: add r0, r5, #0 add r0, #0xb0 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 mov r1, #0 add r0, #0xb0 @@ -5059,7 +5059,7 @@ MOD56_022145D4: ; 0x022145D4 stmia r2!, {r0, r1} mov r0, #4 mov r1, #0x36 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xb8 ldr r4, _022146C4 ; =0x02216480 @@ -5074,7 +5074,7 @@ _02214602: ldr r1, [r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, #4 @@ -5261,7 +5261,7 @@ _0221476E: add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 add r1, r4, #0 bl MOD56_02214808 @@ -5301,7 +5301,7 @@ _022147CE: bl DestroyListMenu add r5, #0xb8 ldr r0, [r5] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop @@ -5338,7 +5338,7 @@ _02214820: stmia r2!, {r0, r1} add r0, r7, #0 mov r1, #0x36 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xb8 mov r6, #0 @@ -5354,7 +5354,7 @@ _0221484C: ldr r1, [r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, r7 @@ -5524,7 +5524,7 @@ _02214994: bl DestroyListMenu add r5, #0xb8 ldr r0, [r5] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r6, #0 pop {r4, r5, r6, pc} nop @@ -5585,7 +5585,7 @@ MOD56_022149D8: ; 0x022149D8 lsr r0, r0, #0x10 str r0, [sp, #0x1c] mov r0, #3 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xb8 str r0, [r1] @@ -5630,7 +5630,7 @@ _02214A7E: ldr r1, [r1] ldr r3, [r4, #4] mov r2, #0x1a - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _02214ADC _02214A9E: ldrh r0, [r7, #0x16] @@ -5652,7 +5652,7 @@ _02214AB2: ldr r1, [r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _02214ADC _02214AC8: add r0, r5, #0 @@ -5663,7 +5663,7 @@ _02214AC8: ldr r1, [r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _02214ADC: ldr r0, [sp, #0x24] add r4, #8 @@ -6077,7 +6077,7 @@ _02214DEC: bl DestroyListMenu add r4, #0xb8 ldr r0, [r4] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, [sp] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index d89153a3d..a928881a3 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -1051,7 +1051,7 @@ _021D7DC4: bl FUN_02019150 ldr r1, [r5] add r0, r6, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r7, #0 str r0, [r5, #0x44] cmp r6, #0 @@ -1061,7 +1061,7 @@ _021D7DDE: ldr r1, [r5, #0x4c] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r7, r7, #1 add r4, #8 cmp r7, r6 @@ -1135,7 +1135,7 @@ _021D7E66: add r2, r1, #0 bl DestroyListMenu ldr r0, [r5, #0x44] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _021D7EC8 ; =0x000005DC bl FUN_020054C8 mov r0, #0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index d0afdb757..33113c9d9 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -1957,7 +1957,7 @@ _0222E442: bl FUN_02019064 add r0, r7, #0 mov r1, #0x35 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r2, #0x67 ldr r1, [sp, #0x1c] lsl r2, r2, #2 @@ -1990,7 +1990,7 @@ _0222E49A: ldr r0, [r1, r0] ldr r2, [r2, #4] add r1, r4, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r4, #0 bl String_dtor add r6, r6, #1 @@ -4612,7 +4612,7 @@ MOD62_0222F904: ; 0x0222F904 mov r0, #0x67 lsl r0, r0, #2 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r4, #0xfc add r0, r4, #0 bl FUN_02019178 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index df2185cc4..b3f219dca 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -1542,7 +1542,7 @@ MOD65_021D80C8: ; 0x021D80C8 strb r0, [r5, #0x1c] ldrb r0, [r5, #0x1c] ldr r1, [r5] - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xcc str r0, [r1] @@ -1585,7 +1585,7 @@ _021D80EE: ldrb r2, [r6, #5] ldr r0, [r0] ldr r1, [r5, #0x34] - bl ListMenu_AddItem + bl ListMenuItems_AddItem cmp r4, #0xff bne _021D80EE _021D8142: @@ -1594,7 +1594,7 @@ _021D8142: ldr r0, [r0] ldr r1, [r5, #0x38] mov r2, #0xff - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r1, r5, #0 ldr r0, _021D8210 ; =0x021DA2E0 add r1, #0x84 @@ -1729,7 +1729,7 @@ _021D823E: add r0, r5, #0 add r0, #0xcc ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 add r0, #0x80 ldrh r1, [r0] @@ -2223,7 +2223,7 @@ MOD65_021D8634: ; 0x021D8634 add r5, r0, #0 ldr r1, [r5] mov r0, #3 - bl ListMenu_ctor + bl ListMenuItems_ctor add r1, r5, #0 add r1, #0xd0 str r0, [r1] @@ -2235,7 +2235,7 @@ _021D8648: ldr r1, [r5, #0x2c] add r2, r4, #1 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -2308,7 +2308,7 @@ MOD65_021D86BC: ; 0x021D86BC add r0, r4, #0 add r0, #0xd0 ldr r0, [r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0 mov r1, #0 add r0, #0xc8 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 171b49d7d..d5c1ec6fc 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -4386,7 +4386,7 @@ _0222F9E4: bl DestroyListMenu ldr r0, _0222FA34 ; =0x0000367C ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 @@ -4412,7 +4412,7 @@ MOD71_0222FA38: ; 0x0222FA38 str r0, [sp] add r0, r0, #1 mov r1, #0x1a - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _0222FAD0 ; =0x0000367C str r0, [r5, r1] mov r0, #0x64 @@ -4438,7 +4438,7 @@ _0222FA60: add r1, r6, #0 ldr r0, [r5, r0] add r2, r4, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem _0222FA8A: add r4, r4, #1 cmp r4, #0x20 @@ -4450,7 +4450,7 @@ _0222FA8A: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0xd - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #0 bl String_dtor ldr r2, _0222FAD0 ; =0x0000367C @@ -4909,7 +4909,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 bl MOD71_02230F40 mov r0, #3 mov r1, #0x1a - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _0222FED8 ; =0x0000065C mov r2, #0x11 str r0, [r4, r1] @@ -4918,7 +4918,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 lsl r1, r1, #2 ldr r1, [r4, r1] mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _0222FED8 ; =0x0000065C mov r1, #0x61 lsl r1, r1, #2 @@ -4926,7 +4926,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 ldr r1, [r4, r1] mov r2, #0x12 mov r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _0222FED8 ; =0x0000065C mov r1, #0x61 lsl r1, r1, #2 @@ -4934,7 +4934,7 @@ MOD71_0222FDD8: ; 0x0222FDD8 ldr r1, [r4, r1] mov r2, #0x13 mov r3, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _0222FED8 ; =0x0000065C ldr r1, [r4, r0] str r1, [sp, #0x10] @@ -5024,7 +5024,7 @@ _0222FF10: bl FUN_02001C5C ldr r0, _0223000C ; =0x0000065C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r1, _02230010 ; =MOD71_0222F538 ldr r0, _02230014 ; =0x00002214 add sp, #0x10 @@ -5063,7 +5063,7 @@ _0222FF64: bl FUN_02001C5C ldr r0, _0223000C ; =0x0000065C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r1, _0223001C ; =MOD71_02230020 ldr r0, _02230014 ; =0x00002214 str r1, [r4, r0] @@ -5100,7 +5100,7 @@ _0222FFB4: bl FUN_02001C5C ldr r0, _0223000C ; =0x0000065C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r1, _02230010 ; =MOD71_0222F538 ldr r0, _02230014 ; =0x00002214 str r1, [r4, r0] @@ -6155,7 +6155,7 @@ MOD71_02230810: ; 0x02230810 bl MOD71_02230F40 mov r0, #2 mov r1, #0x1a - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02230900 ; =0x0000065C mov r2, #0x11 str r0, [r4, r1] @@ -6164,7 +6164,7 @@ MOD71_02230810: ; 0x02230810 lsl r1, r1, #2 ldr r1, [r4, r1] mov r3, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02230900 ; =0x0000065C mov r1, #0x61 lsl r1, r1, #2 @@ -6172,7 +6172,7 @@ MOD71_02230810: ; 0x02230810 ldr r1, [r4, r1] mov r2, #0x13 mov r3, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02230900 ; =0x0000065C ldr r1, [r4, r0] sub r0, #0x94 @@ -6259,7 +6259,7 @@ _0223092E: bl FUN_02001C5C ldr r0, _022309E4 ; =0x0000065C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add sp, #0x10 mov r0, #3 pop {r4, pc} @@ -6295,7 +6295,7 @@ _02230982: bl FUN_02001C5C ldr r0, _022309E4 ; =0x0000065C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r1, _022309DC ; =MOD71_0222F538 ldr r0, _022309E0 ; =0x00002214 str r1, [r4, r0] diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index cdef5e273..197cb819e 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -1233,7 +1233,7 @@ MOD75_021E7580: ; 0x021E7580 ldrb r0, [r0, r1] mov r1, #6 add r0, r0, #3 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r1, #0x16 lsl r1, r1, #4 str r0, [r5, r1] @@ -1243,7 +1243,7 @@ MOD75_021E7580: ; 0x021E7580 add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x23 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldrb r3, [r4, #8] cmp r3, #3 bne _021E764A @@ -1280,7 +1280,7 @@ _021E75CE: ldr r0, [r5, r0] ldr r1, [r7, r1] add r2, r6, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldr r0, [sp] ldrb r1, [r4, #8] add r0, r0, #4 @@ -1300,7 +1300,7 @@ _021E761A: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x22 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData mov r1, #0x16 lsl r1, r1, #4 ldr r0, [r5, r1] @@ -1309,7 +1309,7 @@ _021E761A: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x23 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #3 add sp, #8 strb r0, [r4, #9] @@ -1348,7 +1348,7 @@ _021E7658: ldr r0, [r5, r0] ldr r1, [r7, r1] add r2, r6, #0 - bl ListMenu_AddItem + bl ListMenuItems_AddItem ldr r0, [sp, #4] ldrb r3, [r4, #8] add r0, r0, #4 @@ -1377,7 +1377,7 @@ _021E76A4: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x22 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _021E76E0 _021E76CC: mov r1, #0x16 @@ -1388,7 +1388,7 @@ _021E76CC: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x2b - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _021E76E0: mov r1, #0x16 lsl r1, r1, #4 @@ -1398,7 +1398,7 @@ _021E76E0: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x23 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #3 add sp, #8 strb r0, [r4, #9] @@ -1412,7 +1412,7 @@ _021E76FC: add r3, r2, #0 ldr r1, [r5, r1] sub r3, #0x23 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #2 strb r0, [r4, #9] add sp, #8 @@ -1915,7 +1915,7 @@ MOD75_021E7AA4: ; 0x021E7AA4 mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #0x57 mov r1, #0 lsl r0, r0, #2 @@ -2834,7 +2834,7 @@ _021E81D2: mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor _021E8206: add r0, r5, #0 add r0, #0xc4 @@ -3900,7 +3900,7 @@ MOD75_021E89F0: ; 0x021E89F0 mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0 bl MOD75_021E7580 _021E8A3C: @@ -5026,7 +5026,7 @@ MOD75_021E92BC: ; 0x021E92BC mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r4, #0 bl MOD75_021E7580 add r0, r4, #0 @@ -8881,7 +8881,7 @@ _021EB180: _021EB1B0: add r0, r7, #0 mov r1, #6 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r1, #0x55 lsl r1, r1, #2 mov r4, #0 @@ -8901,7 +8901,7 @@ _021EB1C4: lsl r1, r1, #2 ldr r0, [r5, r0] ldr r1, [r3, r1] - bl ListMenu_AddItem + bl ListMenuItems_AddItem add r0, r4, #1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -9112,7 +9112,7 @@ _021EB37A: mov r0, #0x55 lsl r0, r0, #2 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor add r0, r5, #0 add r0, #0xb4 bl FUN_02019178 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index 8e883a1d8..baa825fc6 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -1257,7 +1257,7 @@ MOD76_021D7ECC: ; 0x021D7ECC strb r1, [r5, r0] ldrb r0, [r5, r0] mov r1, #0x43 - bl ListMenu_ctor + bl ListMenuItems_ctor mov r1, #0x42 lsl r1, r1, #2 str r0, [r5, r1] @@ -1287,7 +1287,7 @@ _021D7F0E: ldr r0, [r5, r0] add r1, r7, #0 add r3, r2, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _021D7F42 _021D7F2A: mov r0, #0x42 @@ -1299,7 +1299,7 @@ _021D7F2A: ldr r0, [r5, r0] ldr r1, [r1] sub r3, #0x22 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _021D7F50 _021D7F42: mov r0, #0x61 @@ -1369,7 +1369,7 @@ MOD76_021D7FAC: ; 0x021D7FAC mov r0, #0x42 lsl r0, r0, #2 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor pop {r4, pc} .align 2, 0 thumb_func_end MOD76_021D7FAC diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 838cf1c82..4dce464f0 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -1767,7 +1767,7 @@ MOD77_021D8370: ; 0x021D8370 bl FUN_02019150 ldrh r0, [r6, #0x10] ldr r1, [r5] - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _021D8404 ; =0x0000C058 mov r7, #0 str r0, [r5, r1] @@ -1782,7 +1782,7 @@ _021D8398: ldr r1, [r5, r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldrh r0, [r6, #0x10] add r7, r7, #1 add r4, #8 @@ -1853,7 +1853,7 @@ MOD77_021D8418: ; 0x021D8418 str r0, [sp, #8] ldr r1, [r5] add r0, r6, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _021D84C8 ; =0x0000C058 mov r4, #0 str r0, [r5, r1] @@ -1865,7 +1865,7 @@ _021D844E: ldr r0, [r5, r0] ldr r1, [sp, #8] add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, r6 blo _021D844E @@ -1940,7 +1940,7 @@ MOD77_021D84D8: ; 0x021D84D8 bl DestroyListMenu ldr r0, _021D850C ; =0x0000C058 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor pop {r4, pc} .align 2, 0 _021D8504: .word 0x0000C024 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 70ab6d089..ea6a3c138 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -4573,7 +4573,7 @@ MOD80_0222F96C: ; 0x0222F96C bic r3, r1 mov r1, #0x3e strb r3, [r2, #0xb] - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _0222F9FC ; =0x00000FC8 mov r2, #0x36 str r0, [r4, r1] @@ -4581,14 +4581,14 @@ MOD80_0222F96C: ; 0x0222F96C ldr r1, _0222FA00 ; =0x00000B34 mov r3, #1 ldr r1, [r4, r1] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _0222F9FC ; =0x00000FC8 ldr r1, _0222FA00 ; =0x00000B34 ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x37 mov r3, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _0222F9FC ; =0x00000FC8 mov r2, #0x1f ldr r1, [r4, r0] @@ -4647,7 +4647,7 @@ _0222FA26: bl FUN_02001C5C ldr r0, _0222FADC ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _0222FAE0 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -4702,7 +4702,7 @@ _0222FAA4: bl FUN_02001C5C ldr r0, _0222FADC ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _0222FAE0 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -7629,7 +7629,7 @@ _02231240: bl DestroyListMenu ldr r0, _022312B8 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _022312BC ; =0x000005DC bl FUN_020054C8 mov r0, #6 @@ -7646,7 +7646,7 @@ _02231266: bl DestroyListMenu ldr r0, _022312B8 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _022312C0 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -7750,7 +7750,7 @@ _02231342: bl DestroyListMenu ldr r0, _02231468 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _0223146C ; =0x00000EE8 mov r1, #0 add r0, r4, r0 @@ -7783,7 +7783,7 @@ _0223138C: bl DestroyListMenu ldr r0, _02231468 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02231474 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -7983,7 +7983,7 @@ _0223154A: bl DestroyListMenu ldr r0, _022315F4 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _022315F8 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -8008,7 +8008,7 @@ _0223158E: bl DestroyListMenu ldr r0, _022315F4 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _022315F8 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -8156,7 +8156,7 @@ _022316D0: bl DestroyListMenu ldr r0, _02231770 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02231774 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -8181,7 +8181,7 @@ _0223170C: bl DestroyListMenu ldr r0, _02231770 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02231774 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -9823,7 +9823,7 @@ MOD80_02232470: ; 0x02232470 bic r3, r1 mov r1, #0x3e strb r3, [r2, #0xb] - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02232510 ; =0x00000FC8 mov r2, #0x5e str r0, [r4, r1] @@ -9831,21 +9831,21 @@ MOD80_02232470: ; 0x02232470 ldr r1, _02232514 ; =0x00000B34 mov r3, #1 ldr r1, [r4, r1] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232510 ; =0x00000FC8 ldr r1, _02232514 ; =0x00000B34 ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x5f mov r3, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232510 ; =0x00000FC8 ldr r1, _02232514 ; =0x00000B34 ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x60 mov r3, #3 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232510 ; =0x00000FC8 mov r2, #0x1f ldr r1, [r4, r0] @@ -9912,7 +9912,7 @@ _02232546: bl FUN_02001C5C ldr r0, _02232660 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232664 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -9932,7 +9932,7 @@ _02232574: bl FUN_02001C5C ldr r0, _02232660 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232664 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -10016,7 +10016,7 @@ _0223262E: bl FUN_02001C5C ldr r0, _02232660 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232664 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -10063,7 +10063,7 @@ MOD80_02232670: ; 0x02232670 bic r3, r1 mov r1, #0x3e strb r3, [r2, #0xb] - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02232710 ; =0x00000FC8 mov r2, #0x54 str r0, [r4, r1] @@ -10071,21 +10071,21 @@ MOD80_02232670: ; 0x02232670 ldr r1, _02232714 ; =0x00000B34 mov r3, #1 ldr r1, [r4, r1] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232710 ; =0x00000FC8 ldr r1, _02232714 ; =0x00000B34 ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x55 mov r3, #2 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232710 ; =0x00000FC8 ldr r1, _02232714 ; =0x00000B34 ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x56 mov r3, #3 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData ldr r0, _02232710 ; =0x00000FC8 mov r2, #0x1f ldr r1, [r4, r0] @@ -10152,7 +10152,7 @@ _02232746: bl FUN_02001C5C ldr r0, _0223283C ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232840 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -10172,7 +10172,7 @@ _02232774: bl FUN_02001C5C ldr r0, _0223283C ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232840 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -10239,7 +10239,7 @@ _0223280A: bl FUN_02001C5C ldr r0, _0223283C ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02232840 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -12263,7 +12263,7 @@ _022337FA: bl DestroyListMenu ldr r0, _0223387C ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r0, #5 str r0, [r4, #0x2c] ldr r0, _02233880 ; =0x000005DC @@ -12280,7 +12280,7 @@ _02233820: bl DestroyListMenu ldr r0, _0223387C ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233884 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -12418,7 +12418,7 @@ _02233932: bl DestroyListMenu ldr r0, _02233A50 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233A54 ; =0x00000EE8 mov r1, #0 add r0, r4, r0 @@ -12457,7 +12457,7 @@ _0223398C: bl DestroyListMenu ldr r0, _02233A50 ; =0x00000FC8 ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233A58 ; =0x00000ED8 mov r1, #0 add r0, r4, r0 @@ -12647,7 +12647,7 @@ _02233B26: bl DestroyListMenu ldr r0, _02233BD0 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233BD4 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -12672,7 +12672,7 @@ _02233B6A: bl DestroyListMenu ldr r0, _02233BD0 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233BD4 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -12819,7 +12819,7 @@ _02233CA4: bl DestroyListMenu ldr r0, _02233D70 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233D74 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -12859,7 +12859,7 @@ _02233CFA: bl DestroyListMenu ldr r0, _02233D70 ; =0x00000FC8 ldr r0, [r5, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor ldr r0, _02233D74 ; =0x00000ED8 mov r1, #0 add r0, r5, r0 @@ -13680,7 +13680,7 @@ MOD80_02234370: ; 0x02234370 mov r1, #0x3e str r2, [sp] add r6, r3, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r5] mov r4, #0 _02234388: @@ -13689,7 +13689,7 @@ _02234388: add r1, r6, #0 add r2, #0x68 add r3, r4, #1 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, #9 blt _02234388 @@ -13791,7 +13791,7 @@ _0223444A: _02234456: add r0, r6, #1 mov r1, #0x3e - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, [sp] str r0, [r1] mov r0, #0 @@ -13816,7 +13816,7 @@ _02234472: ldr r1, [sp, #4] ldr r0, [r0] add r3, r2, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData b _022344B6 _02234494: ldrh r1, [r5] @@ -13833,7 +13833,7 @@ _02234494: ldr r1, [sp, #4] ldr r0, [r0] add r3, r2, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData _022344B6: ldr r0, [sp, #0x10] add r5, r5, #2 @@ -13848,7 +13848,7 @@ _022344C2: ldr r0, [r0] ldr r1, [sp, #8] sub r3, #0x77 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r0, r6, #1 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} @@ -13929,7 +13929,7 @@ MOD80_02234560: ; 0x02234560 mov r0, #4 mov r1, #0x3e add r7, r2, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r5, _022345C8 ; =0x02237B64 str r0, [r6] mov r4, #0 @@ -13938,7 +13938,7 @@ _02234578: ldr r2, [r5] ldr r3, [r5, #4] add r1, r7, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 add r5, #8 cmp r4, #4 @@ -13985,7 +13985,7 @@ MOD80_022345D0: ; 0x022345D0 mov r0, #0xd mov r1, #0x3e add r7, r2, #0 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r5, _02234638 ; =0x02237494 str r0, [r6] mov r4, #0 @@ -13994,7 +13994,7 @@ _022345E8: ldr r2, [r5] add r1, r7, #0 add r3, r4, #0 - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r4, r4, #1 add r5, #8 cmp r4, #0xd diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 64ff452be..233b529ae 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -4609,7 +4609,7 @@ MOD83_0222FA4C: ; 0x0222FA4C ldr r0, [r7, #0x7c] cmp r0, #0 beq _0222FA62 - bl ListMenu_dtor + bl ListMenuItems_dtor _0222FA62: ldr r0, [r7, #0x78] cmp r0, #0 @@ -5812,11 +5812,11 @@ MOD83_022303B0: ; 0x022303B0 ldr r0, [r4, #0x7c] cmp r0, #0 beq _022303CC - bl ListMenu_dtor + bl ListMenuItems_dtor _022303CC: add r0, r7, #0 mov r1, #0x56 - bl ListMenu_ctor + bl ListMenuItems_ctor str r0, [r4, #0x7c] ldr r2, _0223045C ; =0x00000172 mov r0, #0 @@ -5832,7 +5832,7 @@ _022303EA: ldr r1, [r4, #0x10] ldr r2, [r5] ldr r3, [r5, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r5, #8 cmp r6, r7 @@ -8142,7 +8142,7 @@ MOD83_022316F0: ; 0x022316F0 str r3, [sp] cmp r0, #0 beq _02231708 - bl ListMenu_dtor + bl ListMenuItems_dtor _02231708: ldr r0, _02231798 ; =0x00002B68 ldr r0, [r5, r0] @@ -8154,7 +8154,7 @@ _02231708: _02231718: add r0, r7, #0 mov r1, #0x57 - bl ListMenu_ctor + bl ListMenuItems_ctor ldr r1, _02231794 ; =0x00002B6C ldr r2, _0223179C ; =0x00000172 str r0, [r5, r1] @@ -8174,7 +8174,7 @@ _0223173A: ldr r1, [r5, r1] ldr r2, [r4] ldr r3, [r4, #4] - bl ListMenu_ItemFromMsgData + bl ListMenuItems_AppendFromMsgData add r6, r6, #1 add r4, #8 cmp r6, r7 @@ -8503,7 +8503,7 @@ MOD83_02231A00: ; 0x02231A00 add r4, r0, #0 ldr r0, _02231A40 ; =0x00002B6C ldr r0, [r4, r0] - bl ListMenu_dtor + bl ListMenuItems_dtor mov r1, #0 ldr r0, _02231A40 ; =0x00002B6C add r2, r1, #0 From 70b098f92d46c134388e02bd8c436649fe31e999 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 19:43:41 -0400 Subject: [PATCH 080/134] Fix parameterization --- arm9/asm/unk_02001B80.s | 2 +- arm9/asm/unk_02016B94.s | 10 ++++----- arm9/asm/unk_020484A8.s | 2 +- arm9/asm/unk_02050E48.s | 12 +++++------ arm9/asm/unk_0206C700.s | 2 +- arm9/asm/unk_0207D5BC.s | 2 +- arm9/asm/unk_02086414.s | 4 ++-- arm9/asm/unk_0208A338.s | 12 +++++------ arm9/global.inc | 4 ++-- arm9/modules/05/asm/mod05_021E1AD8.s | 6 +++--- arm9/modules/05/asm/module_05.s | 6 +++--- arm9/modules/06/asm/module_06.s | 14 ++++++------ arm9/modules/09/asm/module_09.s | 4 ++-- arm9/modules/11/asm/module_11_thumb1.s | 2 +- arm9/modules/11/asm/module_11_thumb2.s | 8 +++---- arm9/modules/12/asm/module_12.s | 8 +++---- arm9/modules/14/asm/module_14.s | 8 +++---- arm9/modules/15/asm/module_15.s | 2 +- arm9/modules/16/asm/module_16.s | 6 +++--- arm9/modules/17/asm/module_17.s | 14 ++++++------ arm9/modules/18/asm/module_18.s | 4 ++-- arm9/modules/24/asm/module_24.s | 2 +- arm9/modules/27/asm/module_27.s | 4 ++-- arm9/modules/62/asm/module_62.s | 8 +++---- arm9/modules/64/asm/module_64.s | 8 +++---- arm9/modules/73/asm/module_73.s | 6 +++--- arm9/modules/84/asm/module_84_thumb2.s | 4 ++-- arm9/src/error_message_reset.c | 21 +++++++++--------- arm9/src/list_menu.c | 12 +---------- arm9/src/text.c | 3 +-- arm9/src/text_02054590.c | 30 ++++++++++++-------------- include/font.h | 6 ++++++ include/list_menu.h | 8 +------ include/list_menu_cursor.h | 17 +++++++++++++++ include/text.h | 9 ++------ include/text_02054590.h | 11 +++++----- include/window.h | 25 +++++++++++++++++++++ 37 files changed, 165 insertions(+), 141 deletions(-) create mode 100644 include/font.h create mode 100644 include/list_menu_cursor.h create mode 100644 include/window.h diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index f76e1b80f..696f470c4 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -781,7 +781,7 @@ CreateYesNoMenu: ; 0x020020EC add r0, r5, #0x0 mov r1, #0x1 str r6, [sp, #0x14] - bl FUN_02018FF4 + bl AllocWindows add r1, r0, #0x0 str r1, [sp, #0x18] mov r0, #0x0 diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 73330a71d..a6817b28b 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -5022,8 +5022,8 @@ _02018FEA: nop _02018FF0: .word 0x00007FC0 - thumb_func_start FUN_02018FF4 -FUN_02018FF4: ; 0x02018FF4 + thumb_func_start AllocWindows +AllocWindows: ; 0x02018FF4 push {r4-r6, lr} add r5, r1, #0x0 lsl r1, r5, #0x4 @@ -5035,7 +5035,7 @@ FUN_02018FF4: ; 0x02018FF4 _02019006: lsl r0, r4, #0x4 add r0, r6, r0 - bl FUN_0201901C + bl InitWindow add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 @@ -5045,8 +5045,8 @@ _02019018: add r0, r6, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0201901C -FUN_0201901C: ; 0x0201901C + thumb_func_start InitWindow +InitWindow: ; 0x0201901C mov r3, #0x0 str r3, [r0, #0x0] mov r1, #0xff diff --git a/arm9/asm/unk_020484A8.s b/arm9/asm/unk_020484A8.s index 4750c7ead..929f1efa5 100644 --- a/arm9/asm/unk_020484A8.s +++ b/arm9/asm/unk_020484A8.s @@ -343,7 +343,7 @@ FUN_02048764: ; 0x02048764 str r0, [r1, #0x30] add r1, #0x1c add r0, r1, #0x0 - bl FUN_0201901C + bl InitWindow ldr r0, _020487D4 ; =UNK_020F46B0 bl GX_SetBanks ldr r2, _020487D8 ; =0x04000304 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index d7eb4bc45..fbe0aed9f 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1255,7 +1255,7 @@ _02051836: bl FUN_02019178 add r0, r5, #0x0 add r0, #0x14 - bl FUN_0201901C + bl InitWindow _02051846: add r0, r5, #0x0 add r0, #0x54 @@ -1267,7 +1267,7 @@ _02051846: bl FUN_02019178 add r0, r5, #0x0 add r0, #0x54 - bl FUN_0201901C + bl InitWindow _02051862: add r0, r5, #0x0 add r0, #0x64 @@ -1279,7 +1279,7 @@ _02051862: bl FUN_02019178 add r5, #0x64 add r0, r5, #0x0 - bl FUN_0201901C + bl InitWindow _0205187E: pop {r3-r5, pc} @@ -1325,13 +1325,13 @@ _0205188E: str r0, [r4, #0x10] add r0, r4, #0x0 add r0, #0x14 - bl FUN_0201901C + bl InitWindow add r0, r4, #0x0 add r0, #0x54 - bl FUN_0201901C + bl InitWindow add r0, r4, #0x0 add r0, #0x64 - bl FUN_0201901C + bl InitWindow mov r0, #0xb bl ListMenuCursorNew str r0, [r4, #0x78] diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 2c5a9ba6d..3124976ed 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -117,7 +117,7 @@ FUN_0206C700: ; 0x0206C700 str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4, #0x4] ldr r0, [sp, #0x18] str r0, [r4, #0x2c] diff --git a/arm9/asm/unk_0207D5BC.s b/arm9/asm/unk_0207D5BC.s index 0aa84bfc2..5a814a795 100644 --- a/arm9/asm/unk_0207D5BC.s +++ b/arm9/asm/unk_0207D5BC.s @@ -190,7 +190,7 @@ _0207D692: mov r0, #0x13 lsl r1, r1, #0x18 lsr r1, r1, #0x18 - bl FUN_02018FF4 + bl AllocWindows mov r1, #0x91 lsl r1, r1, #0x2 str r0, [r4, r1] diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 3cbdf2a8f..949452596 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -517,7 +517,7 @@ FUN_02086784: ; 0x02086784 add r0, r5, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 - bl FUN_0201901C + bl InitWindow ldr r0, [sp, #0x28] lsl r2, r4, #0x18 lsl r0, r0, #0x18 @@ -627,7 +627,7 @@ FUN_02086878: ; 0x02086878 add r6, r1, #0x0 str r2, [sp, #0x14] add r4, r3, #0x0 - bl FUN_0201901C + bl InitWindow ldr r0, [sp, #0x3c] ldr r3, [sp, #0x38] lsl r0, r0, #0x18 diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 2005be3e2..bafa4c915 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -48,13 +48,13 @@ FUN_0208A338: ; 0x0208A338 bl FUN_020853DC add r0, r4, #0x0 add r0, #0x18 - bl FUN_0201901C + bl InitWindow add r0, r4, #0x0 add r0, #0x28 - bl FUN_0201901C + bl InitWindow add r0, r4, #0x0 add r0, #0x38 - bl FUN_0201901C + bl InitWindow mov r0, #0x0 str r0, [r4, #0x54] ldr r1, _0208A3C4 ; =FUN_0208A458 @@ -102,7 +102,7 @@ FUN_0208A400: ; 0x0208A400 bl FUN_02019178 add r0, r4, #0x0 add r0, #0x18 - bl FUN_0201901C + bl InitWindow _0208A41E: add r0, r4, #0x0 add r0, #0x28 @@ -114,7 +114,7 @@ _0208A41E: bl FUN_02019178 add r0, r4, #0x0 add r0, #0x28 - bl FUN_0201901C + bl InitWindow _0208A43A: add r0, r4, #0x0 add r0, #0x38 @@ -126,7 +126,7 @@ _0208A43A: bl FUN_02019178 add r4, #0x38 add r0, r4, #0x0 - bl FUN_0201901C + bl InitWindow _0208A456: pop {r4, pc} diff --git a/arm9/global.inc b/arm9/global.inc index 5b931bb80..4bb2f3829 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1070,8 +1070,8 @@ .extern FUN_02018884 .extern FUN_02018A60 .extern FUN_02018F4C -.extern FUN_02018FF4 -.extern FUN_0201901C +.extern AllocWindows +.extern InitWindow .extern FUN_02019048 .extern FUN_02019064 .extern FUN_020190EC diff --git a/arm9/modules/05/asm/mod05_021E1AD8.s b/arm9/modules/05/asm/mod05_021E1AD8.s index 5a7f759b8..c41f4c575 100644 --- a/arm9/modules/05/asm/mod05_021E1AD8.s +++ b/arm9/modules/05/asm/mod05_021E1AD8.s @@ -1718,7 +1718,7 @@ MOD05_021E27E8: ; 0x021E27E8 add r6, r2, #0 mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 str r6, [sp] mov r0, #0xa @@ -1878,7 +1878,7 @@ MOD05_021E2950: ; 0x021E2950 add r6, r2, #0 mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 str r6, [sp] mov r0, #0xa @@ -2007,7 +2007,7 @@ MOD05_021E2A70: ; 0x021E2A70 add r6, r2, #0 mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 str r6, [sp] mov r0, #0xa diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index e130e2086..13563cc24 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -2737,7 +2737,7 @@ _021E9C02: bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows mov r1, #0x83 lsl r1, r1, #2 str r0, [r4, r1] @@ -3709,7 +3709,7 @@ _021EA430: bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows mov r1, #2 lsl r1, r1, #8 str r0, [r4, r1] @@ -5380,7 +5380,7 @@ _021EB18E: str r0, [r4, #4] mov r0, #4 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4] mov r3, #0 str r3, [sp] diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index d8efc02e0..62cd7742e 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -11454,15 +11454,15 @@ _0223EF28: str r0, [r2, #0x7c] ldr r0, [r1] add r0, #0x20 - bl FUN_0201901C + bl InitWindow ldr r0, _0223EFF4 ; =0x02252420 ldr r0, [r0] add r0, #0x30 - bl FUN_0201901C + bl InitWindow ldr r0, _0223EFF4 ; =0x02252420 ldr r0, [r0] add r0, #0x40 - bl FUN_0201901C + bl InitWindow mov r0, #4 bl ScrStrBufs_new ldr r1, _0223EFF4 ; =0x02252420 @@ -14473,7 +14473,7 @@ MOD06_02240864: ; 0x02240864 bne _0224089E add r0, r5, #0 add r0, #0x54 - bl FUN_0201901C + bl InitWindow ldr r0, [r5, #0x10] add r1, r5, #0 ldr r0, [r0, #8] @@ -41794,7 +41794,7 @@ MOD06_0224DC5C: ; 0x0224DC5C str r3, [r5, #8] add r0, r2, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #4] mov r0, #0x13 str r0, [sp] @@ -42039,7 +42039,7 @@ MOD06_0224DE60: ; 0x0224DE60 beq _0224DED2 add r0, r3, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r6, #4] mov r0, #0xb str r0, [sp] @@ -42214,7 +42214,7 @@ _0224DFC0: add r2, #0x14 str r0, [r5, r2] ldr r0, [sp, #0x14] - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #4] mov r0, #1 str r0, [sp] diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index c6ad3fc0f..63e3d1e0d 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -3922,7 +3922,7 @@ _02213D74: ldr r0, [r4] ldrb r1, [r4, r1] ldr r0, [r0, #0xc] - bl FUN_02018FF4 + bl AllocWindows ldr r1, _02213DDC ; =0x00002070 mov r5, #0 str r0, [r4, r1] @@ -14355,7 +14355,7 @@ _022194C6: add r1, #0x30 ldrb r1, [r1] ldr r0, [r0, #0xc] - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #0x2c] add r0, r5, #0 add r0, #0x30 diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 08cd42c8a..1bc8e471d 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -746,7 +746,7 @@ MOD11_0222DB50: ; 0x0222DB50 str r0, [r4, #4] mov r0, #5 mov r1, #3 - bl FUN_02018FF4 + bl AllocWindows mov r7, #0x73 str r0, [r4, #8] mov r6, #0 diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 962280d66..3a852eef9 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -45,7 +45,7 @@ MOD11_0222F29C: ; 0x0222F29C str r0, [r5, #4] mov r0, #5 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #8] add r0, r5, #0 bl FUN_0206BFF0 @@ -28099,7 +28099,7 @@ _0223CF5C: add r0, r6, #0 bl String_dtor add r0, sp, #0x68 - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -88280,7 +88280,7 @@ _0225A49C: cmp r4, #0 bne _0225A4DA add r0, sp, #0x3c - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -88914,7 +88914,7 @@ MOD11_0225A968: ; 0x0225A968 bl FUN_02019178 _0225A994: add r0, r4, #0 - bl FUN_0201901C + bl InitWindow ldr r0, [r5] bl MOD11_0222FF68 mov r1, #0 diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 247571cb5..01de211a4 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -7568,7 +7568,7 @@ MOD12_02231380: ; 0x02231380 add r6, r6, #1 _022313B0: add r0, sp, #0x34 - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -9540,7 +9540,7 @@ _022322FE: cmp r4, #0 bne _0223233C add r0, sp, #0x3c - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -10928,7 +10928,7 @@ MOD12_02232D7C: ; 0x02232D7C bl FUN_02019178 _02232DA8: add r0, r4, #0 - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -29905,7 +29905,7 @@ _0223BCF0: add r6, r6, #1 _0223BD1C: add r0, sp, #0x38 - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index e51aee694..3af575902 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -13820,7 +13820,7 @@ MOD14_021DE1D0: ; 0x021DE1D0 beq _021DE262 mov r0, #0xa mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 beq _021DE250 ldr r0, _021DE270 ; =0x00005984 @@ -19634,7 +19634,7 @@ MOD14_021E0F40: ; 0x021E0F40 beq _021E0FA0 mov r0, #0xa mov r1, #4 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #4] cmp r0, #0 beq _021E0F94 @@ -20751,7 +20751,7 @@ MOD14_021E1818: ; 0x021E1818 add r6, r0, #0 mov r0, #0xa mov r1, #2 - bl FUN_02018FF4 + bl AllocWindows str r0, [r6, #0x18] cmp r0, #0 beq _021E1848 @@ -21631,7 +21631,7 @@ MOD14_021E1EEC: ; 0x021E1EEC add r7, r0, #0 mov r0, #0xa mov r1, #3 - bl FUN_02018FF4 + bl AllocWindows str r0, [r7, #0x10] cmp r0, #0 beq _021E1F1A diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index beb5863b2..3c379dc5c 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -7680,7 +7680,7 @@ MOD15_021DAFF8: ; 0x021DAFF8 cmp r0, #0 beq _021DB0D4 add r0, sp, #0x10 - bl FUN_0201901C + bl InitWindow ldr r0, [r5, #0xc] add r1, sp, #0xc str r0, [sp, #0x10] diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 0b9a1de79..45bf6e83e 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -8433,9 +8433,9 @@ MOD16_021DB388: ; 0x021DB388 add r4, r1, #0 mov r1, #1 add r6, r2, #0 - bl FUN_02018FF4 + bl AllocWindows add r7, r0, #0 - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -51457,7 +51457,7 @@ MOD16_021EF318: ; 0x021EF318 add r5, r0, #0 add r0, r1, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 mov r3, #0 str r3, [sp] diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 03989527e..b96d5a988 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -2123,7 +2123,7 @@ MOD17_021D83E4: ; 0x021D83E4 str r0, [r5, r1] mov r0, #0xd mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows ldr r2, _021D84EC ; =0x000006A8 mov r1, #0 str r0, [r5, r2] @@ -2663,7 +2663,7 @@ _021D88F8: str r0, [r4, r1] mov r0, #0xd mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows ldr r1, _021D8994 ; =0x000006A8 mov r2, #0 str r0, [r4, r1] @@ -11265,9 +11265,9 @@ _021DC898: add r7, r0, #0 mov r0, #0xe mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r4, r0, #0 - bl FUN_0201901C + bl InitWindow mov r0, #0 ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] @@ -11789,9 +11789,9 @@ MOD17_021DCC68: ; 0x021DCC68 mov r0, #0xe mov r1, #1 add r4, r2, #0 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5] - bl FUN_0201901C + bl InitWindow lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -14242,7 +14242,7 @@ MOD17_021DDF1C: ; 0x021DDF1C add r4, r0, #0 mov r0, #0xe mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows mov r1, #0x19 lsl r1, r1, #4 str r0, [r4, r1] diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 1b4efb2af..dccb0b7d6 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -25562,7 +25562,7 @@ MOD18_02245B1C: ; 0x02245B1C ldr r0, [sp, #0x30] mov r1, #1 str r4, [sp, #0x10] - bl FUN_02018FF4 + bl AllocWindows add r1, r0, #0 str r1, [sp, #0x14] mov r0, #0 @@ -41435,7 +41435,7 @@ _0224DB08: add r0, r4, #0 str r7, [r4, #0x18] add r0, #8 - bl FUN_0201901C + bl InitWindow ldr r1, [r4, #0x40] mov r0, #1 bic r1, r0 diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index a069571e3..07a7285cc 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -662,7 +662,7 @@ MOD24_02254D00: ; 0x02254D00 add r4, r0, #0 mov r0, #8 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4, #0x70] add r1, r0, #0 beq _02254D3C diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 0dac7728b..7d7fa32ad 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -389,7 +389,7 @@ MOD27_02254AF0: ; 0x02254AF0 add r7, r6, #0 _02254B36: add r0, r4, #0 - bl FUN_0201901C + bl InitWindow add r0, r5, #0 add r0, #0x9c str r7, [r0] @@ -608,7 +608,7 @@ MOD27_02254CC8: ; 0x02254CC8 add r4, #0x3c _02254CE8: add r0, r4, #0 - bl FUN_0201901C + bl InitWindow ldrh r0, [r5, #2] add r1, r4, #0 mov r2, #6 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 33113c9d9..f1eb2a704 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -1152,7 +1152,7 @@ MOD62_0222DE00: ; 0x0222DE00 bl NewString_ReadMsgData str r0, [sp, #0x18] add r0, sp, #0x1c - bl FUN_0201901C + bl InitWindow mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1936,7 +1936,7 @@ _0222E442: add r0, r4, r0 asr r7, r0, #1 ldr r0, [sp, #0x18] - bl FUN_0201901C + bl InitWindow lsl r0, r5, #0x18 lsr r0, r0, #0x18 str r0, [sp] @@ -3298,7 +3298,7 @@ MOD62_0222EEE0: ; 0x0222EEE0 add r0, r5, #0 add r4, r2, #0 add r6, r3, #0 - bl FUN_0201901C + bl InitWindow ldr r0, [sp, #0x28] lsl r2, r4, #0x18 lsl r0, r0, #0x18 @@ -3347,7 +3347,7 @@ MOD62_0222EF44: ; 0x0222EF44 add r0, r5, #0 add r4, r2, #0 add r6, r3, #0 - bl FUN_0201901C + bl InitWindow ldr r0, [sp, #0x28] lsl r2, r4, #0x18 lsl r0, r0, #0x18 diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index d8d296789..ce90e9658 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -653,14 +653,14 @@ MOD64_021D7A54: ; 0x021D7A54 add r5, r0, #0 add r0, r4, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r1, r5, #0 add r1, #0x98 str r0, [r1] add r0, r5, #0 add r0, #0x98 ldr r0, [r0] - bl FUN_0201901C + bl InitWindow mov r0, #0x13 str r0, [sp] mov r0, #0x17 @@ -3393,14 +3393,14 @@ MOD64_021D8EF4: ; 0x021D8EF4 _021D8F16: ldr r0, [sp, #0x18] mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows add r1, r5, #0 add r1, #0x9c str r0, [r1] add r0, r5, #0 add r0, #0x9c ldr r0, [r0] - bl FUN_0201901C + bl InitWindow cmp r4, #0 beq _021D8F3C cmp r4, #1 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index cf221b3fb..4a086c519 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -4947,11 +4947,11 @@ MOD73_021D9BE0: ; 0x021D9BE0 add r5, r0, #0 add r0, r4, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #8] add r0, r4, #0 mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r5, #0xc] mov r0, #0x13 str r0, [sp] @@ -5924,7 +5924,7 @@ MOD73_021DA2AC: ; 0x021DA2AC _021DA2FA: ldr r0, [sp, #0x14] mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4, #8] ldrh r0, [r5, #2] mov r2, #2 diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index a843354a1..087f0fe07 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -559,7 +559,7 @@ MOD84_021D84F8: ; 0x021D84F8 str r0, [r4, #0x30] mov r0, #0x4b mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4, #0x24] mov r3, #0 lsl r2, r5, #0x18 @@ -584,7 +584,7 @@ MOD84_021D84F8: ; 0x021D84F8 bl CopyWindowToVram mov r0, #0x4b mov r1, #1 - bl FUN_02018FF4 + bl AllocWindows str r0, [r4, #0x28] mov r3, #0 lsl r2, r5, #0x18 diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 6bff812ac..426ba876d 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -20,18 +20,17 @@ u32 sErrorMessagePrinterLock; extern void FUN_0200E3A0(PMLCDTarget, int); extern u32 *FUN_02016B94(u32 param0); extern void FUN_02016BBC(const struct GraphicsModes *modes); -extern void FUN_02016C18(u32 *param0, u32 param1, void *param2, u32 param3); +extern void FUN_02016C18(u32 *param0, struct Window * param1, const u32 *param2, u32 param3); extern void FUN_02018744(u32 *param0, u32 param1); extern void FUN_0200CB00(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); extern void FUN_02002ED0(u32 param0, u32 param1, u32 param2); extern void FUN_02017F18(u32 param0, u32 param1, u32 param2, u32 param3); extern void FUN_02017FE4(u32 param0, u32 param1); -extern void FUN_02019150(u32 *param0, u32 *param1, const u32 *param2); -extern void FillWindowPixelRect(u32 *, u8, u16, u16, u16, u16); -extern void FUN_0200CCA4(u32 *param0, u32 param1, u32 param2, u32 param3); +extern void FUN_02019150(u32 *param0, struct Window *param1, const u32 *param2); +extern void FUN_0200CCA4(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_0200E394(u32 param0); extern void FUN_0200A274(u32 param0, u32 param1, u32 param2); -extern void FUN_02019178(u32 *param0); +extern void FUN_02019178(struct Window *param0); THUMB_FUNC void VBlankHandler() { @@ -44,7 +43,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() { u32 *ptr; - u32 buf[4]; + struct Window buf; if (sErrorMessagePrinterLock != 1) { @@ -97,13 +96,13 @@ THUMB_FUNC void PrintErrorMessageAndReset() struct String *str = String_ctor(6 << 6, 0); FUN_0201BD5C(); - FUN_02019150(ptr, buf, UNK_020FF49C); - FillWindowPixelRect(buf, 15, 0, 0, 0xd0, 0x90); - FUN_0200CCA4(buf, 0, 0x1f7, 2); + FUN_02019150(ptr, &buf, UNK_020FF49C); + FillWindowPixelRect(&buf, 15, 0, 0, 0xd0, 0x90); + FUN_0200CCA4(&buf, 0, 0x1f7, 2); ReadMsgDataIntoString(msg_data, 3, str); - AddTextPrinterParameterized((u32)buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf + AddTextPrinterParameterized(&buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf String_dtor(str); GX_BothDispOn(); @@ -133,7 +132,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() FUN_0200E3A0(PM_LCD_TOP, 0x7FFF); FUN_0200E3A0(PM_LCD_BOTTOM, 0x7FFF); - FUN_02019178(buf); + FUN_02019178(&buf); DestroyMsgData(msg_data); FreeToHeap(ptr); diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index e38321455..cd9abde0f 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -2,18 +2,8 @@ #include "heap.h" #include "main.h" #include "list_menu.h" +#include "text.h" -extern void * ListMenuCursorNew(u32 heap_id); -extern void * ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y); -extern void ListMenuCursorSetColor(void *, u32); -extern void DestroyListMenuCursorObj(void *); -extern void FillWindowPixelBuffer(struct Window *, u32); -extern void CopyWindowToVram(struct Window *); -extern s32 GetFontAttribute(u8 fontId, s32 attr); -extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height); -extern void ScrollWindow(struct Window *, u8, u8, u8); -extern u16 GetWindowWidth(struct Window *); -extern u16 GetWindowHeight(struct Window *); void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 yOffset, u16 count); void ListMenuDrawCursor(struct ListMenu * list); BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorAndCallCallback, u8 count, u8 movingDown); diff --git a/arm9/src/text.c b/arm9/src/text.c index 926fa29f5..bbaa3472d 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -24,7 +24,6 @@ extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); extern void *FUN_02006BB0(u32 param0, u32 param1, u32 param2, struct TextPrinter **param3, u32 param4); -extern u32 GetWindowWidth(struct Window * window); extern void FUN_02019658(struct Window * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); @@ -349,7 +348,7 @@ THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2 printer->Unk2C = FUN_0201C1B0(); } u32 r6 = (u32)printer->Unk2C + param3 * (sizeof(struct TextPrinter) * 8); - u32 r2 = ((GetWindowWidth(window) - 3) << 0x13) >> 0x10; + u16 r2 = (GetWindowWidth(window) - 3) * 8; FUN_02019658(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index 392af46dc..e2765c6fa 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -7,18 +7,16 @@ extern void FUN_02002EEC(u32 param0, u32 param1, u32 param2); extern void FUN_02019064(u32 param0, u32 param1, u32 param2, u8 param3, u32 param4, u8 param5, u32 param6, u32 param7, u32 param8); -extern void FUN_0200CD68(u32 param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); -extern u32 FUN_0201AB08(u32 *param0); -extern void FUN_0200D0BC(u32 *param0, u32 param1, u32 param2, u32 param3); - -extern void FillWindowPixelBuffer(u32 *param0, u32 param1); +extern void FUN_0200CD68(void * param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5); +extern u32 FUN_0201AB08(struct Window *param0); +extern void FUN_0200D0BC(struct Window *param0, u32 param1, u32 param2, u32 param3); extern void FUN_02002B60(u8 param0); extern void FUN_02002B7C(u32 param0); extern void FUN_02002BB8(u32 param0); -extern void FUN_0200D300(u32 param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5, u32 param6); -extern void FUN_0200D6F8(u32 *param0, u32 param1, u32 param2, u32 param3, u8 param4); +extern void FUN_0200D300(void * param0, u32 param1, u32 param2, u32 param3, u8 param4, u32 param5, u32 param6); +extern void FUN_0200D6F8(struct Window *param0, u32 param1, u32 param2, u32 param3, u8 param4); THUMB_FUNC void FUN_02054590(u32 param0, u32 param1) @@ -43,32 +41,32 @@ THUMB_FUNC void FUN_020545B8(u32 param0, u32 param1, u32 param2) } } -THUMB_FUNC void FUN_02054608(u32 *param0, struct Options *options) +THUMB_FUNC void FUN_02054608(struct Window *param0, struct Options *options) { - FUN_0200CD68(*param0, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4); + FUN_0200CD68(param0->unk_00, FUN_0201AB08(param0), 994, 10, (u8)Options_GetFrame(options), 4); FUN_0205464C(param0); FUN_0200D0BC(param0, 0, 994, 10); } -THUMB_FUNC void FUN_0205464C(u32 *param0) +THUMB_FUNC void FUN_0205464C(struct Window *param0) { FillWindowPixelBuffer(param0, 15); } -THUMB_FUNC u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options, u8 param3) +THUMB_FUNC u16 FUN_02054658(struct Window * window, const u16 *str, struct Options *options, u8 param3) { FUN_02002B60(param3); FUN_02002B7C(0); FUN_02002BB8(0); - return AddTextPrinterParameterized(windowId, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); + return AddTextPrinterParameterized(window, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); } -THUMB_FUNC u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5) +THUMB_FUNC u16 DrawFieldMessage(struct Window * window, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5) { FUN_02002B60(a4); FUN_02002B7C(a5); FUN_02002BB8(0); - return AddTextPrinterParameterized(windowId, fontId, str, 0, 0, speed, NULL); + return AddTextPrinterParameterized(window, fontId, str, 0, 0, speed, NULL); } THUMB_FUNC u8 FUN_020546C8(u32 param0) //bool8? @@ -100,9 +98,9 @@ THUMB_FUNC void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3) } } -THUMB_FUNC void FUN_02054744(u32 *param0, u32 param1, u32 param2) +THUMB_FUNC void FUN_02054744(struct Window *param0, u32 param1, u32 param2) { - FUN_0200D300(*param0, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); + FUN_0200D300(param0->unk_00, FUN_0201AB08(param0), 0x399, 9, (u8)param1, param2, 4); FillWindowPixelBuffer(param0, 15); FUN_0200D6F8(param0, 0, 0x399, 9, (u8)param1); } diff --git a/include/font.h b/include/font.h new file mode 100644 index 000000000..e5e64e882 --- /dev/null +++ b/include/font.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_FONT_H +#define POKEDIAMOND_FONT_H + +extern s32 GetFontAttribute(u8 fontId, s32 attr); + +#endif // POKEDIAMOND_FONT_H diff --git a/include/list_menu.h b/include/list_menu.h index 35fc44e67..4cc1d247e 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -1,7 +1,7 @@ #ifndef POKEDIAMOND_LIST_MENU_H #define POKEDIAMOND_LIST_MENU_H -#include "text.h" +#include "list_menu_cursor.h" #define LIST_HEADER -3 #define LIST_CANCEL -2 @@ -13,12 +13,6 @@ struct ListMenu; -// TODO: Move to its own header, and fill it out -struct ListMenuCursor -{ - // ??? -}; - struct ListMenuItem { const u16 * text; diff --git a/include/list_menu_cursor.h b/include/list_menu_cursor.h new file mode 100644 index 000000000..355c63ecc --- /dev/null +++ b/include/list_menu_cursor.h @@ -0,0 +1,17 @@ +#ifndef POKEDIAMOND_LIST_MENU_CURSOR_H +#define POKEDIAMOND_LIST_MENU_CURSOR_H + +#include "window.h" + +// TODO: Move to its own header, and fill it out +struct ListMenuCursor +{ + // ??? +}; + +extern struct ListMenuCursor * ListMenuCursorNew(u32 heap_id); +extern void ListMenuUpdateCursorObj(struct ListMenuCursor *, struct Window *, u8 x, u8 y); +extern void ListMenuCursorSetColor(struct ListMenuCursor *, u32); +extern void DestroyListMenuCursorObj(struct ListMenuCursor *); + +#endif // POKEDIAMOND_LIST_MENU_CURSOR_H diff --git a/include/text.h b/include/text.h index 1218a0b34..78bfb9d42 100644 --- a/include/text.h +++ b/include/text.h @@ -2,13 +2,8 @@ #define POKEDIAMOND_TEXT_H #include "global.h" - -// TODO: Move to its own header, and fill it out -struct Window -{ - u8 * unk_00; - u8 unk_04; -}; +#include "window.h" +#include "font.h" struct TextPrinterTemplate { diff --git a/include/text_02054590.h b/include/text_02054590.h index 725bd9b4b..b1ee055a3 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -3,15 +3,16 @@ #include "global.h" #include "options.h" +#include "window.h" void FUN_02054590(u32 param0, u32 param1); void FUN_020545B8(u32 param0, u32 param1, u32 param2); -void FUN_02054608(u32 *param0, struct Options *options); -void FUN_0205464C(u32 *param0); -u16 FUN_02054658(u8 windowId, const u16 *str, struct Options *options, u8 param3); -u16 DrawFieldMessage(u8 windowId, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5); +void FUN_02054608(struct Window *param0, struct Options *options); +void FUN_0205464C(struct Window *param0); +u16 FUN_02054658(struct Window * window, const u16 *str, struct Options *options, u8 param3); +u16 DrawFieldMessage(struct Window * window, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5); u8 FUN_020546C8(u32 param0); void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3); -void FUN_02054744(u32 *param0, u32 param1, u32 param2); +void FUN_02054744(struct Window *param0, u32 param1, u32 param2); #endif //POKEDIAMOND_UNK_02054590_H diff --git a/include/window.h b/include/window.h new file mode 100644 index 000000000..ebe3338ae --- /dev/null +++ b/include/window.h @@ -0,0 +1,25 @@ +#ifndef POKEDIAMOND_WINDOW_H +#define POKEDIAMOND_WINDOW_H + +struct Window +{ + u8 * unk_00; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 width; + u8 height; + u8 unk_9; + u16 unk_A_0:15; + u16 unk_A_15:1; + void * unk_C; +}; + +extern void FillWindowPixelBuffer(struct Window *, u32); +extern void CopyWindowToVram(struct Window *); +extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u16 width, u16 height); +extern void ScrollWindow(struct Window *, u8, u8, u8); +extern u16 GetWindowWidth(struct Window *); +extern u16 GetWindowHeight(struct Window *); + +#endif // POKEDIAMOND_WINDOW_H From 4d5947ecb02e28fce1cd1156bd6908571fbf29bd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 21:50:44 -0400 Subject: [PATCH 081/134] Adjust typing in text.c routines --- arm9/asm/unk_02001B80.s | 2 +- arm9/asm/unk_0200CABC.s | 2 +- arm9/asm/unk_02016B94.s | 22 ++++----- arm9/asm/unk_020772F0.s | 2 +- arm9/global.inc | 6 +-- arm9/modules/05/asm/mod05_021E2E88.s | 18 +++---- arm9/modules/14/asm/module_14.s | 2 +- arm9/modules/15/asm/module_15.s | 4 +- arm9/modules/16/asm/module_16.s | 2 +- arm9/modules/53/asm/module_53.s | 2 +- arm9/modules/58/asm/module_58.s | 2 +- arm9/modules/75/asm/module_75.s | 8 ++-- arm9/modules/84/asm/module_84_thumb2.s | 2 +- arm9/src/script_buffers.c | 6 +-- arm9/src/text.c | 19 ++++---- include/text.h | 66 +++++++++++++------------- 16 files changed, 83 insertions(+), 82 deletions(-) diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index 696f470c4..18e10da60 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -913,7 +913,7 @@ FUN_02002218: ; 0x02002218 mov r2, #0x0 str r3, [sp, #0x14] add r3, r2, #0x0 - bl FUN_02019658 + bl BlitBitmapRectToWindow add sp, #0x18 pop {r4, pc} nop diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 69afdbe71..27b27a76b 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -879,7 +879,7 @@ FUN_0200D148: ; 0x0200D148 mov r0, #0x0 str r0, [sp, #0x10] add r0, sp, #0x1c - bl FUN_02018A60 + bl BlitBitmapRect4Bit add sp, #0x24 pop {r4-r5, pc} diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index a6817b28b..0a68dea2a 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -4256,8 +4256,8 @@ _02018A54: .word 0x0400100A _02018A58: .word 0x0400100C _02018A5C: .word 0x0400100E - thumb_func_start FUN_02018A60 -FUN_02018A60: ; 0x02018A60 + thumb_func_start BlitBitmapRect4Bit +BlitBitmapRect4Bit: ; 0x02018A60 push {r3-r7, lr} sub sp, #0x68 str r2, [sp, #0x8] @@ -4560,8 +4560,8 @@ _02018C92: _02018C98: .word 0x0000FFFF _02018C9C: .word 0x00003FE0 - thumb_func_start FUN_02018CA0 -FUN_02018CA0: ; 0x02018CA0 + thumb_func_start BlitBitmapRect8Bit +BlitBitmapRect8Bit: ; 0x02018CA0 push {r3-r7, lr} sub sp, #0x50 str r2, [sp, #0x8] @@ -5917,8 +5917,8 @@ _0201963C: bl MIi_CpuClearFast pop {r3-r5, pc} - thumb_func_start FUN_02019658 -FUN_02019658: ; 0x02019658 + thumb_func_start BlitBitmapRectToWindow +BlitBitmapRectToWindow: ; 0x02019658 push {r4-r5, lr} sub sp, #0x1c add r4, sp, #0x18 @@ -5936,13 +5936,13 @@ FUN_02019658: ; 0x02019658 str r4, [sp, #0x14] mov r4, #0x0 str r4, [sp, #0x18] - bl FUN_02019684 + bl BlitBitmapRect add sp, #0x1c pop {r4-r5, pc} .balign 4 - thumb_func_start FUN_02019684 -FUN_02019684: ; 0x02019684 + thumb_func_start BlitBitmapRect +BlitBitmapRect: ; 0x02019684 push {r4-r5, lr} sub sp, #0x24 str r1, [sp, #0x1c] @@ -5980,7 +5980,7 @@ FUN_02019684: ; 0x02019684 ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c - bl FUN_02018A60 + bl BlitBitmapRect4Bit add sp, #0x24 pop {r4-r5, pc} _020196D6: @@ -5994,7 +5994,7 @@ _020196D6: ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c - bl FUN_02018CA0 + bl BlitBitmapRect8Bit add sp, #0x24 pop {r4-r5, pc} .balign 4 diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 80d633bbd..16a7190fd 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -4119,7 +4119,7 @@ _02078EB4: mov r2, #0x0 ldr r0, [sp, #0x18] add r3, r2, #0x0 - bl FUN_02019658 + bl BlitBitmapRectToWindow b _02078F56 _02078F00: ldr r0, _02078F78 ; =0x0000D004 diff --git a/arm9/global.inc b/arm9/global.inc index 4bb2f3829..b3f4dcbb1 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1068,7 +1068,7 @@ .extern FUN_0201886C .extern FUN_02018878 .extern FUN_02018884 -.extern FUN_02018A60 +.extern BlitBitmapRect4Bit .extern FUN_02018F4C .extern AllocWindows .extern InitWindow @@ -1099,8 +1099,8 @@ .extern FUN_020195E4 .extern FUN_0201960C .extern FillWindowPixelBuffer -.extern FUN_02019658 -.extern FUN_02019684 +.extern BlitBitmapRectToWindow +.extern BlitBitmapRect .extern FillWindowPixelRect .extern FUN_0201974C .extern ScrollWindow diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s index f83ed12c2..75d92e5b5 100644 --- a/arm9/modules/05/asm/mod05_021E2E88.s +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -159,7 +159,7 @@ _021E2F92: ldr r1, [r5, #0x34] add r0, #0x20 ldr r1, [r1, #0x14] - bl FUN_02019658 + bl BlitBitmapRectToWindow ldr r0, [sp, #0x18] mov r1, #8 add r0, r0, #1 @@ -178,7 +178,7 @@ _021E2F92: ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x18 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r0, #8 str r0, [sp] str r0, [sp, #4] @@ -192,7 +192,7 @@ _021E2F92: ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x38 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r1, #8 str r1, [sp] lsl r0, r4, #0x10 @@ -208,7 +208,7 @@ _021E2F92: add r0, #0x20 mov r2, #0x40 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r1, #8 str r1, [sp] str r1, [sp, #4] @@ -223,7 +223,7 @@ _021E2F92: ldr r1, [r1, #0x14] add r0, #0x20 mov r2, #0x20 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r1, #8 str r1, [sp] lsl r0, r4, #0x10 @@ -240,7 +240,7 @@ _021E2F92: add r0, #0x20 mov r2, #0x30 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow ldr r0, [sp, #0x18] mov r7, #0 cmp r0, #0 @@ -266,7 +266,7 @@ _021E3078: ldr r1, [r1, #0x14] mov r2, #0x10 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r0, #8 str r0, [sp] str r0, [sp, #4] @@ -282,7 +282,7 @@ _021E3078: ldr r1, [r1, #0x14] mov r2, #0x48 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r0, #8 str r0, [sp] str r0, [sp, #4] @@ -299,7 +299,7 @@ _021E3078: ldr r1, [r1, #0x14] mov r2, #0x28 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 3af575902..3a3217433 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -21087,7 +21087,7 @@ _021E1AA0: ldr r1, [r1, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_02019684 + bl BlitBitmapRect add sp, #0x1c pop {r4, r5, pc} .align 2, 0 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 3c379dc5c..cd1cb9eb3 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -7416,7 +7416,7 @@ _021DADD4: ldr r1, [r5, #0x2c] add r0, #0x10 add r3, r2, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r1, #0x60 lsl r2, r7, #0x10 lsl r3, r6, #0x10 @@ -7436,7 +7436,7 @@ _021DADD4: ldr r1, [r5, #0x2c] add r0, #0x10 lsr r3, r3, #0x10 - bl FUN_02019658 + bl BlitBitmapRectToWindow add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 45bf6e83e..adc8e5c22 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -9139,7 +9139,7 @@ MOD16_021DB7F4: ; 0x021DB7F4 str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r0, [sp, #0x18] - bl FUN_02019658 + bl BlitBitmapRectToWindow _021DB848: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 93468fe64..f49ce02cb 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -2915,7 +2915,7 @@ _021D8C9C: mov r1, ip lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_02019658 + bl BlitBitmapRectToWindow add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD53_021D8C58 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 9a7a8402e..7f3bd998a 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -1780,7 +1780,7 @@ _021DA888: mov r1, ip lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_02019658 + bl BlitBitmapRectToWindow add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD58_021DA844 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 197cb819e..82294cbf9 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -7898,7 +7898,7 @@ _021EA9A8: ldr r1, [r1, #0x14] add r0, #0x54 mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow add r5, #0x54 add r0, r5, #0 bl FUN_02019220 @@ -7979,7 +7979,7 @@ _021EAA4C: add r0, r6, #0 ldr r1, [r1, #0x14] mov r3, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -8617,7 +8617,7 @@ MOD75_021EAF70: ; 0x021EAF70 add r0, r5, #4 ldr r1, [r1, #0x14] mov r2, #0x28 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r0, #6 add r1, r6, #0 bl FreeToHeapExplicit @@ -8692,7 +8692,7 @@ MOD75_021EB004: ; 0x021EB004 add r0, r5, #4 ldr r1, [r1, #0x14] add r3, r2, #0 - bl FUN_02019658 + bl BlitBitmapRectToWindow mov r0, #6 add r1, r6, #0 bl FreeToHeapExplicit diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 087f0fe07..82d292c62 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -750,7 +750,7 @@ _021D864C: ldr r0, [r5, #0x24] ldr r1, [r1, #0xc] lsr r3, r3, #0x10 - bl FUN_02019658 + bl BlitBitmapRectToWindow _021D86D0: mov r1, #1 str r1, [r5, #0x18] diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index 55ceca6ab..e17654d85 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -21,7 +21,7 @@ extern void StringCat_HandleTrainerName(struct String * dest, const struct Strin extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4); -extern void FUN_02019658(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16); +extern void BlitBitmapRectToWindow(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16); extern void FillWindowPixelRect(int, u8, u16, u16, u16, u16); const u16 UNK_020ECE6C[][2] = { @@ -805,7 +805,7 @@ void MessagePrinter_delete(struct UnkStruct_0200B870 * a0) void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4) { - FUN_02019658(a2, a0->unk_4->unk_14 + UNK_020ECE6C[a1][0], 0, 0, UNK_020ECE6C[a1][1], 8, (u16)a3, (u16)a4, UNK_020ECE6C[a1][1], 8); + BlitBitmapRectToWindow(a2, a0->unk_4->unk_14 + UNK_020ECE6C[a1][0], 0, 0, UNK_020ECE6C[a1][1], 8, (u16)a3, (u16)a4, UNK_020ECE6C[a1][1], 8); } void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7) @@ -815,7 +815,7 @@ void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum Pri { if (string->data[i] >= 0x00A2 && string->data[i] <= 0x00AB) { - FUN_02019658(sp30, string->unk_4->unk_14 + (string->data[i] - 0x00A2) * 32, 0, 0, 8, 8, (u16)r5, (u16)r7, 8, 8); + BlitBitmapRectToWindow(sp30, string->unk_4->unk_14 + (string->data[i] - 0x00A2) * 32, 0, 0, 8, 8, (u16)r5, (u16)r7, 8, 8); } else { diff --git a/arm9/src/text.c b/arm9/src/text.c index bbaa3472d..b4adba161 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -2,6 +2,7 @@ #include "heap.h" #include "string16.h" #include "MI_memory.h" +#include "filesystem.h" const struct FontInfo *gFonts = NULL; @@ -22,9 +23,9 @@ extern void CopyWindowToVram(struct Window * window); extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); -extern void *FUN_02006BB0(u32 param0, u32 param1, u32 param2, struct TextPrinter **param3, u32 param4); +extern void *FUN_02006BB0(NarcId narcId, s32 param1, BOOL param2, void *param3, u32 heap_id); -extern void FUN_02019658(struct Window * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9); +extern void BlitBitmapRectToWindow(struct Window * window, void * src, u16 srcX, u16 srcY, u16 srcWidth, u16 srcHeight, u16 dstX, u16 dstY, u16 dstWidth, u16 dstHeight); THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) @@ -329,12 +330,12 @@ THUMB_FUNC void FUN_0201C1A8(struct TextPrinter *printer) printer->Unk2C = NULL; } -THUMB_FUNC void *FUN_0201C1B0(void) +THUMB_FUNC u16 *FUN_0201C1B0(void) { - void *res = AllocFromHeap(0, sizeof(struct TextPrinter) * 32); - struct TextPrinter *var; - void *tmp = FUN_02006BB0(14, 5, 0, &var, 0); - MIi_CpuCopy32((void *)var->printerTemplate.Unk20, res, sizeof(struct TextPrinter) * 32); //todo Unk20 can't be right here + void *res = AllocFromHeap(0, 32 * 24 * sizeof(u16)); + struct Font * var; + void *tmp = FUN_02006BB0(NARC_GRAPHIC_FONT, 5, 0, &var, 0); + MIi_CpuCopy32(var->unk20, res, 32 * 24 * sizeof(u16)); FreeToHeap(tmp); return res; } @@ -347,9 +348,9 @@ THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2 { printer->Unk2C = FUN_0201C1B0(); } - u32 r6 = (u32)printer->Unk2C + param3 * (sizeof(struct TextPrinter) * 8); + u16 * r6 = printer->Unk2C + param3 * 6 * 32; u16 r2 = (GetWindowWidth(window) - 3) * 8; - FUN_02019658(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); + BlitBitmapRectToWindow(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } THUMB_FUNC void FUN_0201C238(struct TextPrinter *printer) diff --git a/include/text.h b/include/text.h index 78bfb9d42..c9afc9b3e 100644 --- a/include/text.h +++ b/include/text.h @@ -7,49 +7,49 @@ struct TextPrinterTemplate { - const u16* currentChar; - struct Window * window; - u8 padding[1]; - u8 fontId; - u8 x; - u8 y; - u8 currentX; - u8 currentY; - u8 letterSpacing; - u8 lineSpacing; - u8 unk; - u8 fgColor; - u8 bgColor; - u8 shadowColor; - union - { - struct - { - u16 unk2; - u8 unk3; - u8 unk4; - }; - u32 Unk20; //todo this can't be right - }; + const u16* currentChar; // 0 + struct Window * window; // 4 + u8 padding[1]; // 8 + u8 fontId; // 9 + u8 x; // a + u8 y; // b + u8 currentX; // c + u8 currentY; // d + u8 letterSpacing; // e + u8 lineSpacing; // f + u8 unk; // 10 + u8 fgColor; // 11 + u8 bgColor; // 12 + u8 shadowColor; // 13 + u16 unk2; // 14 + u8 unk3; // 16 + u8 unk4; // 17 +}; + +struct Font +{ + u8 filler[20]; + void * unk20; }; struct TextPrinter { struct TextPrinterTemplate printerTemplate; - u8 (*callback)(struct TextPrinterTemplate *, u16); // 0x10 + u8 (*callback)(struct TextPrinterTemplate *, u16); // 0x18 u8 subStructFields[7]; // always cast to struct TextPrinterSubStruct... so why bother - u8 active; - u8 state; // 0x1C - u8 textSpeedBottom:7; + // 1c + u8 active; // 23 + u8 state; // 0x24 + u8 textSpeedBottom:7; // 25 u8 textSpeedTop:1; - u8 delayCounter; - u8 scrollDistance; - u8 minLetterSpacing; // 0x20 + u8 delayCounter; // 26 + u8 scrollDistance; // 27 + u8 minLetterSpacing; // 0x28 u8 Unk29; // used to be japanese, not sure about that anymore u16 Unk2A; - void *Unk2C; + u16 *Unk2C; }; struct FontInfo @@ -80,7 +80,7 @@ u32 RenderFont(struct TextPrinter *printer); void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor); void DecompressGlyphTile(const u16 *src, u16 *dst); void FUN_0201C1A8(struct TextPrinter *printer); -void *FUN_0201C1B0(void); +u16 *FUN_0201C1B0(void); void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2, u32 param3); void FUN_0201C238(struct TextPrinter *printer); From 161881cff2120cc0e7d6dd725e50430480ea5b8d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 21:53:52 -0400 Subject: [PATCH 082/134] Actually, this makes a bit more sense --- arm9/src/text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm9/src/text.c b/arm9/src/text.c index b4adba161..b79954621 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -348,7 +348,7 @@ THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2 { printer->Unk2C = FUN_0201C1B0(); } - u16 * r6 = printer->Unk2C + param3 * 6 * 32; + u16 * r6 = printer->Unk2C + param3 * 24 * 8; u16 r2 = (GetWindowWidth(window) - 3) * 8; BlitBitmapRectToWindow(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } From 595b90d91c903837b4b0199159a2dece90ea4dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 22 May 2021 09:01:28 +0200 Subject: [PATCH 083/134] simpler raw number --- arm9/src/unk_02016B94.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index ff86037df..c8cff96f1 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -2824,7 +2824,7 @@ THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) case 1: if (r5 >= 0) { - r3 += (1 << 0xa); + r3 += 0x400; } else { From ef69f285d6103c8ff20092ee14d0ee0b1d51794b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 07:37:19 -0400 Subject: [PATCH 084/134] Remove THUMB_FUNC from headers --- arm9/modules/52/include/module_52.h | 24 ++-- include/GX_layers.h | 18 +-- include/error_message_reset.h | 4 +- include/heap.h | 24 ++-- include/list_menu.h | 8 +- include/timer3.h | 12 +- include/unk_02015E30.h | 6 +- include/unk_02024E64.h | 20 ++-- include/unk_0202D858.h | 6 +- include/unk_0202F150.h | 180 ++++++++++++++-------------- include/unk_02031480.h | 40 +++---- include/unk_0205FA2C.h | 42 +++---- include/unk_0206015C.h | 4 +- 13 files changed, 194 insertions(+), 194 deletions(-) diff --git a/arm9/modules/52/include/module_52.h b/arm9/modules/52/include/module_52.h index 0adedc62f..d997f1a63 100644 --- a/arm9/modules/52/include/module_52.h +++ b/arm9/modules/52/include/module_52.h @@ -17,20 +17,20 @@ extern const struct Unk21DBE18 MOD52_021D76E8; extern const struct Unk21DBE18 MOD52_021D76D8; extern const struct Unk21DBE18 MOD52_021D76C8; -THUMB_FUNC BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D74E0(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D74F8(struct UnkStruct_02006234 *param0, u32 *unused); +BOOL MOD52_021D750C(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D7528(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D7540(struct UnkStruct_02006234 *param0, u32 *unused); +BOOL MOD52_021D7560(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused); -THUMB_FUNC BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D757C(struct UnkStruct_02006234 *arg1, u32 *arg2); +BOOL MOD52_021D7594(struct UnkStruct_02006234 *param0, u32 *unused); +BOOL MOD52_021D75E8(struct UnkStruct_02006234 *arg1, u32 *arg2); -THUMB_FUNC void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid); -THUMB_FUNC void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2); -THUMB_FUNC void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2); +void MOD52_021D7604(u32 heap_id, struct SaveBlock2 *sav2, BOOL set_trainerid); +void MOD52_021D7688(u32 param0, struct SaveBlock2 *sav2); +void MOD52_021D769C(u32 param0, struct SaveBlock2 *sav2); #endif // POKEDIAMOND_MODULE_52_H \ No newline at end of file diff --git a/include/GX_layers.h b/include/GX_layers.h index e94fb4ec9..d6afc743b 100644 --- a/include/GX_layers.h +++ b/include/GX_layers.h @@ -20,14 +20,14 @@ typedef enum { } GX_LayerToggle; -THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks); -THUMB_FUNC void GX_DisableEngineALayers(); -THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle); -THUMB_FUNC void GX_SetEngineALayers(u32 layer_mask); -THUMB_FUNC void GX_DisableEngineBLayers(); -THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle); -THUMB_FUNC void GX_BothDispOn(); -THUMB_FUNC void GX_SwapDisplay(); -THUMB_FUNC u32 GX_GetEngineALayers(); +void GX_SetBanks(const struct GraphicsBanks *banks); +void GX_DisableEngineALayers(); +void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle); +void GX_SetEngineALayers(u32 layer_mask); +void GX_DisableEngineBLayers(); +void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle); +void GX_BothDispOn(); +void GX_SwapDisplay(); +u32 GX_GetEngineALayers(); #endif //POKEDIAMOND_GX_LAYERS_H diff --git a/include/error_message_reset.h b/include/error_message_reset.h index d12cbf335..c3a3dd6ad 100644 --- a/include/error_message_reset.h +++ b/include/error_message_reset.h @@ -33,7 +33,7 @@ struct GraphicsModes { }; -THUMB_FUNC void VBlankHandler(); -THUMB_FUNC void PrintErrorMessageAndReset(); +void VBlankHandler(); +void PrintErrorMessageAndReset(); #endif //POKEDIAMOND_ERROR_MESSAGE_RESET_H diff --git a/include/heap.h b/include/heap.h index 5dc517953..de1f5f188 100644 --- a/include/heap.h +++ b/include/heap.h @@ -17,21 +17,21 @@ struct UnkStruct_020166C8 }; -THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size); -THUMB_FUNC s32 FUN_020167F4(); -THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2); -THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2); -THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3); -THUMB_FUNC void FUN_020168D0(u32 heap_id); -THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3); -THUMB_FUNC void FUN_02016988(); +void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size); +s32 FUN_020167F4(); +u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2); +u32 FUN_02016828(u32 param0, u32 param1, u32 param2); +u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3); +void FUN_020168D0(u32 heap_id); +u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3); +void FUN_02016988(); void *AllocFromHeap(u32 heap_id, u32 size); void *AllocFromHeapAtEnd(u32 heap_id, u32 size); void FreeToHeap(void *ptr); void FreeToHeapExplicit(u32 heap_id, void * ptr); -THUMB_FUNC u32 FUN_02016AF8(u32 param0); -THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2); -THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1); -THUMB_FUNC u32 FUN_02016B90(u32 param0); +u32 FUN_02016AF8(u32 param0); +void FUN_02016B20(u32 param0, u32 param1, u32 param2); +void FUN_02016B44(void *ptr, u32 param1); +u32 FUN_02016B90(u32 param0); #endif //POKEDIAMOND_HEAP_H diff --git a/include/list_menu.h b/include/list_menu.h index 4cc1d247e..113226746 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -70,9 +70,9 @@ struct ListMenu /*0x34*/ u8 heap_id; }; -THUMB_FUNC struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id); -THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list); -THUMB_FUNC void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove); -THUMB_FUNC void RedrawListMenu(struct ListMenu * list); +struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u32 heap_id); +s32 ListMenu_ProcessInput(struct ListMenu * list); +void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove); +void RedrawListMenu(struct ListMenu * list); #endif // POKEDIAMOND_LIST_MENU_H diff --git a/include/timer3.h b/include/timer3.h index be6e1da8f..3220c7a35 100644 --- a/include/timer3.h +++ b/include/timer3.h @@ -10,12 +10,12 @@ struct Timer3Data vu64 Timer3Counter; }; -THUMB_FUNC void Init_Timer3(); -THUMB_FUNC void CountUpTimer3(); -THUMB_FUNC u64 internal_GetTimer3Count(); -THUMB_FUNC u64 GetTimer3Count(); -THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count); -THUMB_FUNC u64 Timer3CountToSeconds(u64 count); +void Init_Timer3(); +void CountUpTimer3(); +u64 internal_GetTimer3Count(); +u64 GetTimer3Count(); +u64 Timer3CountToMilliSeconds(u64 count); +u64 Timer3CountToSeconds(u64 count); #endif //POKEDIAMOND_TIMER3_H diff --git a/include/unk_02015E30.h b/include/unk_02015E30.h index 6a4d6c158..67a7aaaf6 100644 --- a/include/unk_02015E30.h +++ b/include/unk_02015E30.h @@ -15,8 +15,8 @@ struct UnkStruct_02015E30 u64 unk18; }; -THUMB_FUNC void FUN_02015E30(); -THUMB_FUNC void FUN_02015E3C(struct IGT *igt); -THUMB_FUNC void FUN_02015E60(); +void FUN_02015E30(); +void FUN_02015E3C(struct IGT *igt); +void FUN_02015E60(); #endif //POKEDIAMOND_UNK_02015E30_H diff --git a/include/unk_02024E64.h b/include/unk_02024E64.h index ed1bd4473..68e7103c0 100644 --- a/include/unk_02024E64.h +++ b/include/unk_02024E64.h @@ -14,15 +14,15 @@ struct UnkStruct_02024E64 { u8 unk74A[2]; // might be padding }; -THUMB_FUNC u32 FUN_02024E64(); -THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0); -THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2); -THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2); -THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2); -THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2); -THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk); -THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str); -THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk); -THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str); +u32 FUN_02024E64(); +void FUN_02024E6C(struct UnkStruct_02024E64 *param0); +struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2); +void *FUN_02024EC0(struct SaveBlock2 *sav2); +struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2); +void *FUN_02024ED8(struct SaveBlock2 *sav2); +u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk); +void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str); +u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk); +void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str); #endif diff --git a/include/unk_0202D858.h b/include/unk_0202D858.h index 210821d07..b58459987 100644 --- a/include/unk_0202D858.h +++ b/include/unk_0202D858.h @@ -3,8 +3,8 @@ #include "global.h" -THUMB_FUNC u8 FUN_0202D858(u16 param0); -THUMB_FUNC u8 FUN_0202D884(u16 param0); -THUMB_FUNC u32 FUN_0202D8B0(int param0); +u8 FUN_0202D858(u16 param0); +u8 FUN_0202D884(u16 param0); +u32 FUN_0202D8B0(int param0); #endif // POKEDIAMOND_UNK_0202D858_H diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h index 8f5cdd3e2..b87bbf0c0 100644 --- a/include/unk_0202F150.h +++ b/include/unk_0202F150.h @@ -87,100 +87,100 @@ struct UnkStruct0202F150 u8 unk68B; }; -THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1); -THUMB_FUNC void FUN_0202F2F0(); -THUMB_FUNC void FUN_0202F5A4(); -THUMB_FUNC void FUN_0202F820(int param0); -THUMB_FUNC void FUN_0202F8D4(); -THUMB_FUNC void FUN_0202F910(int param0); -THUMB_FUNC BOOL FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3); -THUMB_FUNC u32 FUN_0202F950(u32 param0, u32 param1, u32 param2); -THUMB_FUNC void FUN_0202F984(); -THUMB_FUNC void FUN_0202F9E0(u32 param0); -THUMB_FUNC void FUN_0202FA10(); -THUMB_FUNC void FUN_0202FA1C(); -THUMB_FUNC u8 FUN_0202FA28(); -THUMB_FUNC u32 FUN_0202FA48(); -THUMB_FUNC void FUN_0202FA5C(); -THUMB_FUNC u32 FUN_0202FB18(u32 param0); -THUMB_FUNC void FUN_0202FB20(); -THUMB_FUNC void FUN_0202FB58(); -THUMB_FUNC BOOL FUN_0202FB80(); -THUMB_FUNC void FUN_0202FC60(); -THUMB_FUNC void FUN_0202FC80(); -THUMB_FUNC void FUN_0202FCA8(); -THUMB_FUNC void FUN_0202FCCC(); -THUMB_FUNC u32 FUN_0202FE2C(int param0); -THUMB_FUNC void FUN_0202FEEC(); -THUMB_FUNC void FUN_02030074(); -THUMB_FUNC void FUN_02030238(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_020304D4(u32 param0); -THUMB_FUNC void FUN_020304F0(u32 param0); -THUMB_FUNC void FUN_0203050C(); -THUMB_FUNC void FUN_02030674(); -THUMB_FUNC void FUN_020307A8(); -THUMB_FUNC void FUN_020307BC(); -THUMB_FUNC void FUN_020307D0(); -THUMB_FUNC u32 FUN_020307E4(u8 *param0, u32 param1); -THUMB_FUNC void FUN_0203086C(); -THUMB_FUNC u32 FUN_02030870(u8 *param0); -THUMB_FUNC u32 FUN_02030930(u8 *param0); -THUMB_FUNC void FUN_02030A00(u8 *param0); -THUMB_FUNC u32 FUN_02030A78(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC u32 FUN_02030ADC(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC u32 FUN_02030BC4(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC u32 FUN_02030C4C(u32 param0, u8 *param1); -THUMB_FUNC int FUN_02030C58(); -THUMB_FUNC void FUN_02030C70( +u32 FUN_0202F150(u32 param0, u32 param1); +void FUN_0202F2F0(); +void FUN_0202F5A4(); +void FUN_0202F820(int param0); +void FUN_0202F8D4(); +void FUN_0202F910(int param0); +BOOL FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3); +u32 FUN_0202F950(u32 param0, u32 param1, u32 param2); +void FUN_0202F984(); +void FUN_0202F9E0(u32 param0); +void FUN_0202FA10(); +void FUN_0202FA1C(); +u8 FUN_0202FA28(); +u32 FUN_0202FA48(); +void FUN_0202FA5C(); +u32 FUN_0202FB18(u32 param0); +void FUN_0202FB20(); +void FUN_0202FB58(); +BOOL FUN_0202FB80(); +void FUN_0202FC60(); +void FUN_0202FC80(); +void FUN_0202FCA8(); +void FUN_0202FCCC(); +u32 FUN_0202FE2C(int param0); +void FUN_0202FEEC(); +void FUN_02030074(); +void FUN_02030238(u32 param0, u8 *param1, u32 param2); +void FUN_0203026C(u32 param0, u8 *param1, u32 param2); +void FUN_020303BC(u32 param0, u8 *param1, u32 param2); +void FUN_020303F4(u32 param0, u8 *param1, u32 param2); +void FUN_020304D4(u32 param0); +void FUN_020304F0(u32 param0); +void FUN_0203050C(); +void FUN_02030674(); +void FUN_020307A8(); +void FUN_020307BC(); +void FUN_020307D0(); +u32 FUN_020307E4(u8 *param0, u32 param1); +void FUN_0203086C(); +u32 FUN_02030870(u8 *param0); +u32 FUN_02030930(u8 *param0); +void FUN_02030A00(u8 *param0); +u32 FUN_02030A78(u32 param0, u8 *param1, u32 param2); +u32 FUN_02030ADC(u32 param0, u8 *param1, u32 param2); +u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2); +u32 FUN_02030BC4(u32 param0, u8 *param1, u32 param2); +u32 FUN_02030C4C(u32 param0, u8 *param1); +int FUN_02030C58(); +void FUN_02030C70( u32 param0, u32 param1, u32 param2, void *param3, struct UnkStruct0202F150_sub2 *param4); -THUMB_FUNC void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0, +void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0, u32 param1, void *param2, u32 param3, struct UnkStruct0202F150_sub2 *param4); -THUMB_FUNC void FUN_02030DA4(); -THUMB_FUNC void FUN_02030DFC(); -THUMB_FUNC u32 FUN_02030E7C(u16 param0); -THUMB_FUNC s32 FUN_02030F20(); -THUMB_FUNC BOOL FUN_02030F40(); -THUMB_FUNC void FUN_02030F60(u8 param0); -THUMB_FUNC u8 FUN_02030F74(u32 param0); -THUMB_FUNC u32 FUN_02030F88(u32 param0); -THUMB_FUNC void FUN_02030FA8(); -THUMB_FUNC void FUN_02030FC8(); -THUMB_FUNC u32 FUN_02030FE0(); -THUMB_FUNC void FUN_02031000(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_0203105C(u32 param0, u8 *param1, u32 param2); -THUMB_FUNC void FUN_02031088(); -THUMB_FUNC void FUN_0203110C(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_02031134(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_0203115C(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC u16 FUN_02031190(); -THUMB_FUNC u32 FUN_020311D0(u32 param0, u8 *param1); -THUMB_FUNC u32 FUN_020311DC(u32 param0); -THUMB_FUNC u32 FUN_020311E8(); -THUMB_FUNC BOOL FUN_020311F0(); -THUMB_FUNC int FUN_02031228(u16 param0); -THUMB_FUNC int FUN_02031248(u32 param0); -THUMB_FUNC int FUN_02031258(u32 param0); -THUMB_FUNC void FUN_02031268(u8 param0); -THUMB_FUNC u8 FUN_02031280(); -THUMB_FUNC void FUN_0203129C(); -THUMB_FUNC void FUN_020312BC(s64 *param0); -THUMB_FUNC void FUN_02031354(u32 param0); -THUMB_FUNC u32 FUN_02031370(); -THUMB_FUNC u32 FUN_02031388(); -THUMB_FUNC void FUN_020313A0(u8 param0); -THUMB_FUNC void FUN_020313B4(u8 param0, u32 param1); -THUMB_FUNC u32 FUN_020313CC(u32 param0); -THUMB_FUNC u32 FUN_020313EC(); -THUMB_FUNC void FUN_02031400(u32 param0); -THUMB_FUNC u32 FUN_02031438(); -THUMB_FUNC void FUN_02031454(); -THUMB_FUNC void FUN_02031468(); +void FUN_02030DA4(); +void FUN_02030DFC(); +u32 FUN_02030E7C(u16 param0); +s32 FUN_02030F20(); +BOOL FUN_02030F40(); +void FUN_02030F60(u8 param0); +u8 FUN_02030F74(u32 param0); +u32 FUN_02030F88(u32 param0); +void FUN_02030FA8(); +void FUN_02030FC8(); +u32 FUN_02030FE0(); +void FUN_02031000(u32 param0, u8 *param1, u32 param2); +void FUN_0203105C(u32 param0, u8 *param1, u32 param2); +void FUN_02031088(); +void FUN_0203110C(u32 param0, u32 param1, u8 *param2); +void FUN_02031134(u32 param0, u32 param1, u8 *param2); +void FUN_0203115C(u32 param0, u32 param1, u8 *param2); +u16 FUN_02031190(); +u32 FUN_020311D0(u32 param0, u8 *param1); +u32 FUN_020311DC(u32 param0); +u32 FUN_020311E8(); +BOOL FUN_020311F0(); +int FUN_02031228(u16 param0); +int FUN_02031248(u32 param0); +int FUN_02031258(u32 param0); +void FUN_02031268(u8 param0); +u8 FUN_02031280(); +void FUN_0203129C(); +void FUN_020312BC(s64 *param0); +void FUN_02031354(u32 param0); +u32 FUN_02031370(); +u32 FUN_02031388(); +void FUN_020313A0(u8 param0); +void FUN_020313B4(u8 param0, u32 param1); +u32 FUN_020313CC(u32 param0); +u32 FUN_020313EC(); +void FUN_02031400(u32 param0); +u32 FUN_02031438(); +void FUN_02031454(); +void FUN_02031468(); #endif // POKEDIAMOND_UNK_0202F150_H diff --git a/include/unk_02031480.h b/include/unk_02031480.h index 975f07962..951a37174 100644 --- a/include/unk_02031480.h +++ b/include/unk_02031480.h @@ -6,25 +6,25 @@ #include "heap.h" #include "unk_0202F150.h" -THUMB_FUNC void FUN_02031480(u32 heap_id); -THUMB_FUNC void FUN_020314D0(); -THUMB_FUNC BOOL FUN_020314E8(); -THUMB_FUNC void FUN_020314FC(u8 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_02031560(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_02031574(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC void FUN_02031588(u8 param0); -THUMB_FUNC void FUN_020315A4(); -THUMB_FUNC BOOL FUN_020315D8(u8 param0); -THUMB_FUNC u8 FUN_020315FC(u8 index); -THUMB_FUNC void FUN_0203160C(u32 param0, u32 param1, u8 *param2); -THUMB_FUNC u32 FUN_02031628(); -THUMB_FUNC void FUN_0203162C(u8 param0, u8 param1); -THUMB_FUNC int FUN_02031640(u32 param0, u8 param1); -THUMB_FUNC void FUN_02031668(); -THUMB_FUNC void FUN_0203168C(); -THUMB_FUNC BOOL FUN_020316AC(u32 param0, void *param1); -THUMB_FUNC u8 *FUN_020316E0(int param0); -THUMB_FUNC void FUN_02031704(u32 param0, u32 param1, void *param2); -THUMB_FUNC u32 FUN_02031730(); +void FUN_02031480(u32 heap_id); +void FUN_020314D0(); +BOOL FUN_020314E8(); +void FUN_020314FC(u8 param0, u32 param1, u8 *param2); +void FUN_02031560(u32 param0, u32 param1, u8 *param2); +void FUN_02031574(u32 param0, u32 param1, u8 *param2); +void FUN_02031588(u8 param0); +void FUN_020315A4(); +BOOL FUN_020315D8(u8 param0); +u8 FUN_020315FC(u8 index); +void FUN_0203160C(u32 param0, u32 param1, u8 *param2); +u32 FUN_02031628(); +void FUN_0203162C(u8 param0, u8 param1); +int FUN_02031640(u32 param0, u8 param1); +void FUN_02031668(); +void FUN_0203168C(); +BOOL FUN_020316AC(u32 param0, void *param1); +u8 *FUN_020316E0(int param0); +void FUN_02031704(u32 param0, u32 param1, void *param2); +u32 FUN_02031730(); #endif // POKEDIAMOND_UNK_02031480_H diff --git a/include/unk_0205FA2C.h b/include/unk_0205FA2C.h index 19279a6c2..418c7077a 100644 --- a/include/unk_0205FA2C.h +++ b/include/unk_0205FA2C.h @@ -80,16 +80,16 @@ struct UnkCallbackStruct2_0205FA2C u16 unk14; }; -THUMB_FUNC u32 FUN_0205FA2C( +u32 FUN_0205FA2C( struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id); -THUMB_FUNC u32 FUN_0205FAD8( +u32 FUN_0205FAD8( struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1); -THUMB_FUNC u32 FUN_0205FB34( +u32 FUN_0205FB34( struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1, u32 heap_id); -THUMB_FUNC u32 FUN_0205FBC0( +u32 FUN_0205FBC0( struct UnkCallbackStruct1_0205FA2C *param0, struct UnkSavStruct80 *param1); -THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0); -THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, +int FUN_0205FBE8(struct UnkStruct_0204639C *param0); +void FUN_0205FC50(struct UnkStruct_0204639C *param0, void **param1, u8 param2, u8 param3, @@ -98,24 +98,24 @@ THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0, u8 param6, u8 param7); -THUMB_FUNC u32 FUN_0205FC9C( +u32 FUN_0205FC9C( struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1); -THUMB_FUNC u32 FUN_0205FCC4( +u32 FUN_0205FCC4( struct UnkCallbackStruct2_0205FA2C *param0, struct UnkSavStruct80 *param1); -THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0); -THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3); +int FUN_0205FCE8(struct UnkStruct_0204639C *param0); +void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3); -THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0); -THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); +int FUN_0205FD70(struct UnkStruct_0204639C *param0); +void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2); -THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2); -THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2); -THUMB_FUNC void FUN_02060044(u16 **param0, u32 *param1); -THUMB_FUNC u32 FUN_02060064(u32 param0); -THUMB_FUNC u32 FUN_02060070(u32 param0); -THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2); -THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2); -THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2); -THUMB_FUNC BOOL FUN_02060144(u32 **param0); +u32 FUN_0205FE10(struct SaveBlock2 *sav2); +u32 FUN_0205FF5C(struct SaveBlock2 *sav2); +void FUN_02060044(u16 **param0, u32 *param1); +u32 FUN_02060064(u32 param0); +u32 FUN_02060070(u32 param0); +u32 FUN_0206007C(struct SaveBlock2 *sav2); +u32 FUN_020600A0(struct SaveBlock2 *sav2); +u32 FUN_020600DC(struct SaveBlock2 *sav2); +BOOL FUN_02060144(u32 **param0); #endif // POKEDIAMOND_UNK_0205FA2C_H diff --git a/include/unk_0206015C.h b/include/unk_0206015C.h index e8a312c2a..c285fac93 100644 --- a/include/unk_0206015C.h +++ b/include/unk_0206015C.h @@ -24,7 +24,7 @@ struct UnkStruct_0204652C u8 unkE; // some kind of counter? }; -THUMB_FUNC void FUN_0206015C(struct UnkSavStruct80* savStruct); -THUMB_FUNC BOOL FUN_02060194(struct UnkStruct_0204639C * unkStruct0); +void FUN_0206015C(struct UnkSavStruct80* savStruct); +BOOL FUN_02060194(struct UnkStruct_0204639C * unkStruct0); #endif //UNK_0206015C_H_GUARD From ce0b8bd678043d429543827e6afb586dc30aff03 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 07:39:05 -0400 Subject: [PATCH 085/134] Remove deprecated comment --- arm9/src/text.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arm9/src/text.c b/arm9/src/text.c index b79954621..eee77ae1b 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -214,7 +214,7 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s } if (speed != 0xff) { - CopyWindowToVram(printer->printerTemplate.window); // CopyWindowToVram? + CopyWindowToVram(printer->printerTemplate.window); } FUN_0201C238(printer); FreeToHeap((void *)printer); From 616cd9b1c1cf789ae990d4236085d1a6748d3850 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 07:40:46 -0400 Subject: [PATCH 086/134] Un-all-caps list menu function typedefs --- arm9/src/list_menu.c | 4 ++-- include/list_menu.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index cd9abde0f..5ae5a5b4d 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -249,10 +249,10 @@ THUMB_FUNC void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 v switch (attr) { case 0: - list->template.moveCursorFunc = (LM_MOVECURSORFUNC)value; + list->template.moveCursorFunc = (LM_MoveCursorFunc_t)value; break; case 1: - list->template.itemPrintFunc = (LM_ITEMPRINTFUNC)value; + list->template.itemPrintFunc = (LM_ItemPrintFunc_t)value; break; case 2: list->template.totalItems = (u16)value; diff --git a/include/list_menu.h b/include/list_menu.h index 113226746..3f60c6f27 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -22,14 +22,14 @@ struct ListMenuItem // TODO: Document remaining fields. // A lot of these are named based on similar fields in gen 3. -typedef void (*LM_MOVECURSORFUNC)(struct ListMenu *list, s32 index, u8 onInit); -typedef void (*LM_ITEMPRINTFUNC)(struct ListMenu *list, s32 index, u8 y); +typedef void (*LM_MoveCursorFunc_t)(struct ListMenu *list, s32 index, u8 onInit); +typedef void (*LM_ItemPrintFunc_t)(struct ListMenu *list, s32 index, u8 y); struct ListMenuTemplate { /*0x00*/ struct ListMenuItem * items; - /*0x04*/ LM_MOVECURSORFUNC moveCursorFunc; - /*0x08*/ LM_ITEMPRINTFUNC itemPrintFunc; + /*0x04*/ LM_MoveCursorFunc_t moveCursorFunc; + /*0x08*/ LM_ItemPrintFunc_t itemPrintFunc; /*0x0C*/ struct Window * window; /*0x10*/ u16 totalItems; /*0x12*/ u16 maxShowed; From de6f8fc978e5297d3f425d2d6c8517e9bb8e75ff Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 10:37:04 -0400 Subject: [PATCH 087/134] Merge conflicting prototypes --- arm9/asm/unk_02006864.s | 2 +- arm9/modules/21/src/mod21_02254854.c | 2 +- arm9/src/script_buffers.c | 18 +++++++++--------- arm9/src/text.c | 14 +++++--------- arm9/src/unk_0200CA44.c | 10 +++++----- include/script_buffers.h | 5 +++-- include/text.h | 17 +++++++++++------ include/unk_0200CA44.h | 10 ++++++---- include/window.h | 1 + 9 files changed, 42 insertions(+), 37 deletions(-) diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index 5528150d1..5bd62750d 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -567,7 +567,7 @@ FUN_02006C88: ; 0x02006C88 thumb_func_start UncompressFromNarc UncompressFromNarc: ; 0x02006C98 - ; BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4) + ; void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd) push {r3-r7, lr} add r5, r2, #0x0 add r7, r0, #0x0 diff --git a/arm9/modules/21/src/mod21_02254854.c b/arm9/modules/21/src/mod21_02254854.c index a9a7599da..1c91afdeb 100644 --- a/arm9/modules/21/src/mod21_02254854.c +++ b/arm9/modules/21/src/mod21_02254854.c @@ -29,7 +29,7 @@ THUMB_FUNC BOOL MOD21_02254854(UnkStruct02254854 **param0, u32 param1, u32 param UnkStruct02254854 *alloced = (UnkStruct02254854 *)AllocFromHeap(8, sizeof(UnkStruct02254854)); if (alloced != NULL) { - if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44((void (*)(u32, void *))MOD21_02254930, alloced, (void *)1)) + if (MOD21_0225489C(alloced, param1, param2, param3) && FUN_0200CA44((void (*)(u32, struct TextPrinter *))MOD21_02254930, (struct TextPrinter *)alloced, 1)) { *param0 = alloced; return TRUE; diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index e17654d85..939781f40 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -12,6 +12,8 @@ #include "trainer_data.h" #include "script_buffers.h" #include "unk_02024E64.h" +#include "window.h" +#include "text.h" #pragma thumb on @@ -20,9 +22,7 @@ extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1); extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src); extern void StrAddChar(struct String * str, u16 val); extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); -extern BOOL UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL a2, u32 heap_id, BOOL a4); -extern void BlitBitmapRectToWindow(int, u8 *, u16, u16, u16, u16, u16, u16, u16, u16); -extern void FillWindowPixelRect(int, u8, u16, u16, u16, u16); +extern void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); const u16 UNK_020ECE6C[][2] = { { 0x0140, 0x0008 }, @@ -803,24 +803,24 @@ void MessagePrinter_delete(struct UnkStruct_0200B870 * a0) } } -void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4) +void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, struct Window * a2, int a3, int a4) { BlitBitmapRectToWindow(a2, a0->unk_4->unk_14 + UNK_020ECE6C[a1][0], 0, 0, UNK_020ECE6C[a1][1], 8, (u16)a3, (u16)a4, UNK_020ECE6C[a1][1], 8); } -void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7) +void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, struct Window *window, int x, int y) { ConvertUIntToDecimalString(string->data, value, mode, n); for (int i = 0; string->data[i] != EOS; i++) { - if (string->data[i] >= 0x00A2 && string->data[i] <= 0x00AB) + if (string->data[i] >= CHAR_0 && string->data[i] <= CHAR_9) { - BlitBitmapRectToWindow(sp30, string->unk_4->unk_14 + (string->data[i] - 0x00A2) * 32, 0, 0, 8, 8, (u16)r5, (u16)r7, 8, 8); + BlitBitmapRectToWindow(window, string->unk_4->unk_14 + (string->data[i] - CHAR_0) * 32, 0, 0, 8, 8, (u16)x, (u16)y, 8, 8); } else { - FillWindowPixelRect(sp30, (u8)string->unk_28, (u16)r5, (u16)r7, 8, 8); + FillWindowPixelRect(window, (u8)string->unk_28, (u16)x, (u16)y, 8, 8); } - r5 += 8; + x += 8; } } diff --git a/arm9/src/text.c b/arm9/src/text.c index eee77ae1b..b21acf88b 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -3,6 +3,8 @@ #include "string16.h" #include "MI_memory.h" #include "filesystem.h" +#include "script_buffers.h" +#include "unk_0200CA44.h" const struct FontInfo *gFonts = NULL; @@ -13,19 +15,13 @@ u16 UNK_021C5710; u16 UNK_021C5712; u8 UNK_021C570C; -extern u32 FUN_0200CA7C(void (*func)(u32, struct TextPrinter *), struct TextPrinter *printer, u32 param2); - extern struct TextPrinter *FUN_0201B6C8(void); -extern void FUN_0200CAB4(u32 param0); extern void FUN_0201C1A8(struct TextPrinter *printer); -extern void CopyWindowToVram(struct Window * window); extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); -extern void *FUN_02006BB0(NarcId narcId, s32 param1, BOOL param2, void *param3, u32 heap_id); - -extern void BlitBitmapRectToWindow(struct Window * window, void * src, u16 srcX, u16 srcY, u16 srcWidth, u16 srcHeight, u16 dstX, u16 dstY, u16 dstWidth, u16 dstHeight); +extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) @@ -333,9 +329,9 @@ THUMB_FUNC void FUN_0201C1A8(struct TextPrinter *printer) THUMB_FUNC u16 *FUN_0201C1B0(void) { void *res = AllocFromHeap(0, 32 * 24 * sizeof(u16)); - struct Font * var; + struct UnkStruct_0200B870_sub * var; void *tmp = FUN_02006BB0(NARC_GRAPHIC_FONT, 5, 0, &var, 0); - MIi_CpuCopy32(var->unk20, res, 32 * 24 * sizeof(u16)); + MIi_CpuCopy32(var->unk_14, res, 32 * 24 * sizeof(u16)); FreeToHeap(tmp); return res; } diff --git a/arm9/src/unk_0200CA44.c b/arm9/src/unk_0200CA44.c index fd703cd39..6ffed8be9 100644 --- a/arm9/src/unk_0200CA44.c +++ b/arm9/src/unk_0200CA44.c @@ -2,25 +2,25 @@ #include "main.h" #include "unk_0200CA44.h" -extern BOOL FUN_0201B60C(void *, void (*)(u32, void *), void *, void *); +extern BOOL FUN_0201B60C(void *, void (*)(u32, struct TextPrinter *), struct TextPrinter *, u32); extern void FUN_0201B6A0(s32); -THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(u32, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA44(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) { return FUN_0201B60C(gMain.unk18, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(u32, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA60(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) { return FUN_0201B60C(gMain.unk1C, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(u32, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA7C(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) { return FUN_0201B60C(gMain.unk24, r0, r1, r2); } -THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(u32, void *), void * r1, void * r2) +THUMB_FUNC BOOL FUN_0200CA98(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2) { return FUN_0201B60C(gMain.unk20, r0, r1, r2); } diff --git a/include/script_buffers.h b/include/script_buffers.h index d0fff5280..51a02e437 100644 --- a/include/script_buffers.h +++ b/include/script_buffers.h @@ -4,6 +4,7 @@ #include "pokemon.h" #include "pokemon_storage_system.h" #include "trainer_data.h" +#include "window.h" struct UnkStruct_0200AA80_sub_sub { @@ -105,7 +106,7 @@ void StringExpandPlaceholders(struct ScrStrBufs * mgr, struct String * dest, str void ScrStrBufs_ResetBuffers(struct ScrStrBufs * mgr); struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4); void MessagePrinter_delete(struct UnkStruct_0200B870 * a0); -void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, int a2, int a3, int a4); -void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, int sp30, int r5, int r7); +void FUN_0200B9A8(struct UnkStruct_0200B870 * a0, int a1, struct Window * a2, int a3, int a4); +void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum PrintingMode mode, struct Window *window, int x, int y); #endif //POKEDIAMOND_SCRIPT_BUFFERS_H diff --git a/include/text.h b/include/text.h index c9afc9b3e..57185a057 100644 --- a/include/text.h +++ b/include/text.h @@ -5,6 +5,17 @@ #include "window.h" #include "font.h" +#define CHAR_0 0x00A2 +#define CHAR_1 0x00A3 +#define CHAR_2 0x00A4 +#define CHAR_3 0x00A5 +#define CHAR_4 0x00A6 +#define CHAR_5 0x00A7 +#define CHAR_6 0x00A8 +#define CHAR_7 0x00A9 +#define CHAR_8 0x00AA +#define CHAR_9 0x00AB + struct TextPrinterTemplate { const u16* currentChar; // 0 @@ -26,12 +37,6 @@ struct TextPrinterTemplate u8 unk4; // 17 }; -struct Font -{ - u8 filler[20]; - void * unk20; -}; - struct TextPrinter { struct TextPrinterTemplate printerTemplate; diff --git a/include/unk_0200CA44.h b/include/unk_0200CA44.h index 2e479ab87..6dd208c3c 100644 --- a/include/unk_0200CA44.h +++ b/include/unk_0200CA44.h @@ -1,10 +1,12 @@ #ifndef POKEDIAMOND_UNK_0200CA44_H #define POKEDIAMOND_UNK_0200CA44_H -BOOL FUN_0200CA44(void (*r0)(u32, void *), void * r1, void * r2); -BOOL FUN_0200CA60(void (*r0)(u32, void *), void * r1, void * r2); -BOOL FUN_0200CA7C(void (*r0)(u32, void *), void * r1, void * r2); -BOOL FUN_0200CA98(void (*r0)(u32, void *), void * r1, void * r2); +#include "text.h" + +BOOL FUN_0200CA44(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); +BOOL FUN_0200CA60(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); +BOOL FUN_0200CA7C(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); +BOOL FUN_0200CA98(void (*r0)(u32, struct TextPrinter *), struct TextPrinter * r1, u32 r2); void FUN_0200CAB4(s32 unk1); #endif //POKEDIAMOND_UNK_0200CA44_H diff --git a/include/window.h b/include/window.h index ebe3338ae..ed3576fb1 100644 --- a/include/window.h +++ b/include/window.h @@ -21,5 +21,6 @@ extern void FillWindowPixelRect(struct Window *, u32 fillValue, u16 x, u16 y, u1 extern void ScrollWindow(struct Window *, u8, u8, u8); extern u16 GetWindowWidth(struct Window *); extern u16 GetWindowHeight(struct Window *); +extern void BlitBitmapRectToWindow(struct Window * window, const void * src, u16 srcX, u16 srcY, u16 srcWidth, u16 srcHeight, u16 dstX, u16 dstY, u16 dstWidth, u16 dstHeight); #endif // POKEDIAMOND_WINDOW_H From 412bd487ed5513e52ad47f6eb3709b4d1aab1353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sat, 22 May 2021 18:58:41 +0200 Subject: [PATCH 088/134] better field names for Window struct --- arm9/src/unk_02016B94.c | 161 ++++++++++++++++++++++++---------------- include/unk_02016B94.h | 60 ++++++++++----- 2 files changed, 137 insertions(+), 84 deletions(-) diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index b38b52569..4183087ba 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -1,9 +1,9 @@ #include "global.h" #include "unk_02016B94.h" #include "GX_layers.h" +#include "game_init.h" #include "gx.h" #include "heap.h" -#include "game_init.h" extern void FUN_020B0030(void *param0, u32 *param1); extern void FUN_020B0138(void *param0, u32 *param1); @@ -1294,7 +1294,8 @@ THUMB_FUNC void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 } } #else -THUMB_FUNC asm void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) +THUMB_FUNC asm void FUN_020170F4( + struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3) { // clang-format off push {r3-r7, lr} @@ -2653,7 +2654,8 @@ THUMB_FUNC void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size) } } -THUMB_FUNC void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3) +THUMB_FUNC void FUN_02017DFC( + struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3) { FUN_02017C98(param2, param0->unk08[param1].unk08, param3); } @@ -2853,8 +2855,13 @@ THUMB_FUNC u16 FUN_02018068(u8 param0, u8 param1, u8 param2, u8 param3) return r3; } -THUMB_FUNC void FUN_02018148( - struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u8 param3, u8 param4, u8 param5, u8 param6) +THUMB_FUNC void FUN_02018148(struct UnkStruct_02016B94_2 *param0, + u32 param1, + void *param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6) { FUN_02018170(param0, param1, param3, param4, param5, param6, param2, 0, 0, param5, param6); } @@ -3149,8 +3156,13 @@ THUMB_FUNC void FUN_02018540(struct UnkStruct_02016B94_2 *param0, } } -THUMB_FUNC void FUN_02018590( - struct UnkStruct_02016B94_2_sub *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) +THUMB_FUNC void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0, + u16 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6) { void *r4 = param0->unk08; @@ -3230,8 +3242,13 @@ THUMB_FUNC void FUN_02018640( } } -THUMB_FUNC void FUN_020186B4( - struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6) +THUMB_FUNC void FUN_020186B4(struct UnkStruct_02016B94_2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6) { void *r4 = param0->unk08[param1].unk08; @@ -4489,14 +4506,14 @@ THUMB_FUNC void InitWindow(struct Window *param0) param0->unk04 = 0xff; param0->unk05 = 0; param0->unk06 = 0; - param0->unk07 = 0; - param0->unk08 = 0; + param0->width = 0; + param0->height = 0; param0->unk09 = 0; - param0->unk0a = 0; + param0->unk0a_0 = 0; param0->unk0c = 0; - param0->unk0b = 0; + param0->unk0b_15 = 0; } THUMB_FUNC BOOL FUN_02019048(struct Window *param0) @@ -4540,11 +4557,11 @@ THUMB_FUNC void FUN_02019064(struct UnkStruct_02016B94_2 *param0, param1->unk04 = param2; param1->unk05 = param3; param1->unk06 = param4; - param1->unk07 = param5; - param1->unk08 = param6; + param1->width = param5; + param1->height = param6; param1->unk09 = param7; - param1->unk0a = param8; + param1->unk0a_0 = param8; param1->unk0c = ptr; enum UnkEnum1 r2; @@ -4557,11 +4574,15 @@ THUMB_FUNC void FUN_02019064(struct UnkStruct_02016B94_2 *param0, r2 = UnkEnum1_1; } - param1->unk0b = r2; + param1->unk0b_15 = r2; } -THUMB_FUNC void FUN_020190EC( - struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5) +THUMB_FUNC void FUN_020190EC(struct UnkStruct_02016B94_2 *param0, + struct Window *param1, + u8 param2, + u8 param3, + u16 param4, + u8 param5) { u32 size = (u32)(param2 * param3 * 32); @@ -4573,11 +4594,11 @@ THUMB_FUNC void FUN_020190EC( if (ptr != NULL) { param1->unk00 = param0; - param1->unk07 = param2; - param1->unk08 = param3; - param1->unk0a = param4; + param1->width = param2; + param1->height = param3; + param1->unk0a_0 = param4; param1->unk0c = ptr; - param1->unk0b = 0; + param1->unk0b_15 = 0; } } @@ -4604,10 +4625,10 @@ THUMB_FUNC void FUN_02019178(struct Window *param0) param0->unk04 = 0xff; param0->unk05 = 0; param0->unk06 = 0; - param0->unk07 = 0; - param0->unk08 = 0; + param0->width = 0; + param0->height = 0; param0->unk09 = 0; - param0->unk0a = 0; + param0->unk0a_0 = 0; param0->unk0c = 0; } @@ -4653,15 +4674,15 @@ THUMB_FUNC void FUN_02019270(struct Window *param0) THUMB_FUNC void FUN_0201928C(struct Window *param0, u8 param1, u8 param2) { - u8 unk07 = param0->unk07; - u8 unk08 = param0->unk08; + u8 unk07 = param0->width; + u8 unk08 = param0->height; - param0->unk07 = param1; - param0->unk08 = param2; + param0->width = param1; + param0->height = param2; UNK_020EDB38[param0->unk00->unk08[param0->unk04].unk1c](param0); - param0->unk07 = unk07; - param0->unk08 = unk08; + param0->width = unk07; + param0->height = unk08; } THUMB_FUNC void FUN_020192B8(struct Window *param0) @@ -4681,9 +4702,9 @@ THUMB_FUNC void FUN_020192D4(struct Window *param0) return; } - r3 = param0->unk0a; - jCount = (u32)(param0->unk05 + param0->unk07); - iCount = (u32)(param0->unk06 + param0->unk08); + r3 = param0->unk0a_0; + jCount = (u32)(param0->unk05 + param0->width); + iCount = (u32)(param0->unk06 + param0->height); for (i = param0->unk06; i < iCount; i++) { @@ -4713,11 +4734,11 @@ THUMB_FUNC void FUN_02019358(struct Window *param0) r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; r4 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - r5 = param0->unk0a; + r5 = param0->unk0a_0; - for (i = 0; i < param0->unk08; i++) + for (i = 0; i < param0->height; i++) { - for (j = 0; j < param0->unk07; j++) + for (j = 0; j < param0->width; j++) { r4[j] = (u8)r5; r5++; @@ -4743,8 +4764,8 @@ THUMB_FUNC void FUN_020193B4(struct Window *param0) st4 = param0->unk00->unk08[param0->unk04].unk08; st8 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; - jCount = (u32)(param0->unk05 + param0->unk07); - iCount = (u32)(param0->unk06 + param0->unk08); + jCount = (u32)(param0->unk05 + param0->width); + iCount = (u32)(param0->unk06 + param0->height); for (i = param0->unk06; i < iCount; i++) { @@ -4771,9 +4792,9 @@ THUMB_FUNC void FUN_02019444(struct Window *param0) r6 = UNK_020EDB30[param0->unk00->unk08[param0->unk04].unk1d]; r5 = param0->unk00->unk08[param0->unk04].unk08 + param0->unk06 * r6 + param0->unk05; - for (i = 0; i < param0->unk08; i++) + for (i = 0; i < param0->height; i++) { - for (j = 0; j < param0->unk07; j++) + for (j = 0; j < param0->width; j++) { r5[j] = 0; } @@ -4811,8 +4832,8 @@ THUMB_FUNC void FUN_020194E0(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - (u32)(window->unk07 * window->unk08 * 64), - window->unk0a); + (u32)(window->width * window->height * 64), + window->unk0a_0); } THUMB_FUNC void FUN_0201951C(struct Window *window) @@ -4822,8 +4843,8 @@ THUMB_FUNC void FUN_0201951C(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - (u32)(window->unk07 * window->unk08 * 64), - window->unk0a); + (u32)(window->width * window->height * 64), + window->unk0a_0); } THUMB_FUNC void FUN_02019548(struct Window *window) @@ -4831,8 +4852,8 @@ THUMB_FUNC void FUN_02019548(struct Window *window) FUN_02017E14(window->unk00, window->unk04, window->unk0c, - (u32)(window->unk07 * window->unk08 * window->unk00->unk08[window->unk04].unk1f), - window->unk0a); + (u32)(window->width * window->height * window->unk00->unk08[window->unk04].unk1f), + window->unk0a_0); } THUMB_FUNC void FUN_02019570(struct Window *window) @@ -4886,7 +4907,7 @@ THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1) MIi_CpuClearFast((u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), window->unk0c, - (u32)(window->unk00->unk08[window->unk04].unk1f * window->unk07 * window->unk08)); + (u32)(window->unk00->unk08[window->unk04].unk1f * window->width * window->height)); } THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window, @@ -4900,7 +4921,8 @@ THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window, u16 dstWidth, u16 dstHeight) { - BlitBitmapRect(window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0); + BlitBitmapRect( + window, src, srcX, srcY, srcWidth, srcHeight, dstX, dstY, dstWidth, dstHeight, 0); } THUMB_FUNC void BlitBitmapRect(struct Window *window, @@ -4917,7 +4939,7 @@ THUMB_FUNC void BlitBitmapRect(struct Window *window, { struct UnkStruct_02016B94_3 st1c = { param1, param4, param5 }; struct UnkStruct_02016B94_3 st14 = { - window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) + window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3) }; if (window->unk00->unk08[window->unk04].unk1e == 0) @@ -4930,9 +4952,12 @@ THUMB_FUNC void BlitBitmapRect(struct Window *window, } } -THUMB_FUNC void FillWindowPixelRect(struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height) +THUMB_FUNC void FillWindowPixelRect( + struct Window *window, u8 fillValue, u16 x, u16 y, u16 width, u16 height) { - struct UnkStruct_02016B94_3 st8 = { window->unk0c, (u16)(window->unk07 << 3), (u16)(window->unk08 << 3) }; + struct UnkStruct_02016B94_3 st8 = { + window->unk0c, (u16)(window->width << 3), (u16)(window->height << 3) + }; if (window->unk00->unk08[window->unk04].unk1e == 0) { @@ -4953,7 +4978,7 @@ THUMB_FUNC void FUN_0201974C( u16 st5c = param4; void *st278 = window->unk0c; - u16 st58 = window->unk07 << 3; + u16 st58 = window->width << 3; int st8 = st58 - st5c; @@ -4962,7 +4987,7 @@ THUMB_FUNC void FUN_0201974C( st8 = param2; } - int st4 = (u16)(window->unk08 << 3) - param5; + int st4 = (u16)(window->height << 3) - param5; u16 st48 = param5; if (st4 >= param3) @@ -4981,7 +5006,7 @@ THUMB_FUNC void FUN_0201974C( r4 |= 2; } - if (window->unk0b == 0) + if (window->unk0b_15 == 0) { switch (r4) { @@ -7534,8 +7559,8 @@ THUMB_FUNC void FUN_0201A8E8(struct Window *window, u32 param1, u8 param2, u8 pa r2 = window->unk0c; st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; - stc = window->unk08 * window->unk07 * 32; - st8 = window->unk07; + stc = window->height * window->width * 32; + st8 = window->width; switch (param1) { @@ -7603,8 +7628,8 @@ THUMB_FUNC void FUN_0201A9D4(struct Window *window, u32 param1, u8 param2, u8 pa r2 = (u8 *)window->unk0c; st4 = (param3 << 0x18) | (param3 << 0x10) | (param3 << 0x8) | param3; - stc = window->unk08 * window->unk07 * 64; - st8 = window->unk07; + stc = window->height * window->width * 64; + st8 = window->width; switch (param1) { @@ -7690,11 +7715,11 @@ THUMB_FUNC u8 FUN_0201AB08(struct Window *window) THUMB_FUNC u8 GetWindowWidth(struct Window *window) { - return window->unk07; + return window->width; } THUMB_FUNC u8 GetWindowHeight(struct Window *window) { - return window->unk08; + return window->height; } THUMB_FUNC u8 FUN_0201AB14(struct Window *window) { @@ -7905,13 +7930,15 @@ THUMB_FUNC void FUN_0201AC78(struct UnkStruct_02016B94_2 *param0) } } -THUMB_FUNC void FUN_0201AEE4(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) +THUMB_FUNC void FUN_0201AEE4( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_02017B8C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; } -THUMB_FUNC void FUN_0201AF08(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3) +THUMB_FUNC void FUN_0201AF08( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u16 param3) { FUN_0201AF2C(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; @@ -7933,7 +7960,8 @@ THUMB_FUNC void FUN_0201AF2C(struct UnkStruct_02016B94_2_sub *param0, u32 param1 } } -THUMB_FUNC void FUN_0201AF50(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) +THUMB_FUNC void FUN_0201AF50( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, fx32 param3) { FUN_0201AF74(¶m0->unk08[param1], param2, param3); param0->unk04 |= 1 << param1; @@ -7964,7 +7992,8 @@ THUMB_FUNC void FUN_0201AF74(struct UnkStruct_02016B94_2_sub *param0, u32 param1 } } -THUMB_FUNC u32 FUN_0201AFBC(struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) +THUMB_FUNC u32 FUN_0201AFBC( + struct UnkStruct_02016B94_2 *param0, u8 param1, u8 param2, u8 param3, u16 *param4) { void *st18; u16 r6; diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index 6ec223e02..a13f1634c 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -83,11 +83,11 @@ struct Window u8 unk04; u8 unk05; u8 unk06; - u8 unk07; - u8 unk08; + u8 width; + u8 height; u8 unk09; - u16 unk0a : 15; - u16 unk0b : 1; + u16 unk0a_0 : 15; + u16 unk0b_15 : 1; void *unk0c; }; @@ -95,7 +95,8 @@ struct UnkStruct_02016B94_2 *FUN_02016B94(u32 heap_id); u32 FUN_02016BB8(u32 *param0); void FUN_02016BBC(const struct GraphicsModes *modes); void FUN_02016BF4(u32 *param0, u32 param1); -void FUN_02016C18(struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3); +void FUN_02016C18( + struct UnkStruct_02016B94_2 *param0, u8 param1, struct UnkStruct_02016B94_1 *param2, u8 param3); void FUN_020170F4(struct UnkStruct_02016B94_2 *param0, u8 param1, u32 param2, u8 param3); u8 FUN_020177DC(u8 param0, u32 param1); void FUN_02017850(u32 param0, u8 *param1, u8 *param2); @@ -113,19 +114,26 @@ void FUN_02017B60(struct UnkStruct_02016B94_2 *param0, fx32 param5, fx32 param6); void FUN_02017B8C(struct UnkStruct_02016B94_2_sub *param0, u32 param1, fx32 val); -void FUN_02017BD0( - struct UnkStruct_02016B94_2 *param0, u32 param1, struct Mtx22 *param2, fx32 param3, fx32 param4); +void FUN_02017BD0(struct UnkStruct_02016B94_2 *param0, + u32 param1, + struct Mtx22 *param2, + fx32 param3, + fx32 param4); void FUN_02017C6C(struct UnkStruct_02016B94_2 *param0, u32 param1); void FUN_02017C98(const void *param0, void *param1, u32 param2); void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1); -void FUN_02017CE8(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017CE8( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017D68(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017DFC(struct UnkStruct_02016B94_2 *param0, u32 param1, void *param2, u32 param3); -void FUN_02017E14(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); -void FUN_02017E40(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017E14( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); +void FUN_02017E40( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 *param2, u32 param3, u32 param4); void FUN_02017E84(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017F18(u32 param0, u32 size, u32 offset, u32 heap_id); -void FUN_02017F48(struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); +void FUN_02017F48( + struct UnkStruct_02016B94_2 *param0, u32 param1, u32 param2, u32 param3, u32 param4); void FUN_02017FB4(u32 param0, void *param1, u32 offset, u32 size); void FUN_02017FE4(u32 param0, u32 param1); u16 FUN_02017FFC(u8 param0, u8 param1, u8 param2); @@ -189,12 +197,22 @@ void FUN_02018540(struct UnkStruct_02016B94_2 *param0, u8 param5, u8 param6, u8 param7); -void FUN_02018590( - struct UnkStruct_02016B94_2_sub *param0, u16 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_02018590(struct UnkStruct_02016B94_2_sub *param0, + u16 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6); void FUN_02018640( struct UnkStruct_02016B94_2_sub *param0, u8 param1, u8 param2, u8 param3, u8 param4, u8 param5); -void FUN_020186B4( - struct UnkStruct_02016B94_2 *param0, u32 param1, u8 param2, u8 param3, u8 param4, u8 param5, u8 param6); +void FUN_020186B4(struct UnkStruct_02016B94_2 *param0, + u32 param1, + u8 param2, + u8 param3, + u8 param4, + u8 param5, + u8 param6); void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1); void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); @@ -238,9 +256,15 @@ void FUN_02019064(struct UnkStruct_02016B94_2 *param0, u8 param6, u8 param7, u16 param8); -void FUN_020190EC( - struct UnkStruct_02016B94_2 *param0, struct Window *param1, u8 param2, u8 param3, u16 param4, u8 param5); -void FUN_02019150(struct UnkStruct_02016B94_2 *param0, struct Window *param1, struct UnkStruct_02016B94_4 *param2); +void FUN_020190EC(struct UnkStruct_02016B94_2 *param0, + struct Window *param1, + u8 param2, + u8 param3, + u16 param4, + u8 param5); +void FUN_02019150(struct UnkStruct_02016B94_2 *param0, + struct Window *param1, + struct UnkStruct_02016B94_4 *param2); void FUN_02019178(struct Window *param0); void FUN_020191A4(struct Window *param0, int param1); void CopyWindowToVram(struct Window *param0); From d5bd2337cf8970b1ce7f8a3d0e64aa092e705462 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 15:35:19 -0400 Subject: [PATCH 089/134] Split unk_02011744.s --- arm9/arm9.lsf | 4 + arm9/asm/gf_rtc.s | 410 ++++++++ arm9/asm/list_menu_items.s | 162 ++++ arm9/asm/unk_02011744.s | 1810 ------------------------------------ arm9/asm/unk_02012004.s | 787 ++++++++++++++++ arm9/asm/unk_02012944.s | 471 ++++++++++ 6 files changed, 1834 insertions(+), 1810 deletions(-) create mode 100644 arm9/asm/gf_rtc.s create mode 100644 arm9/asm/list_menu_items.s create mode 100644 arm9/asm/unk_02012004.s create mode 100644 arm9/asm/unk_02012944.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 24908839d..0be7bc5ab 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -36,6 +36,10 @@ Static arm9 Object unk_0200E850.o Object unk_0201137C.o Object unk_02011744.o + Object unk_02012004.o + Object gf_rtc.o + Object list_menu_items.o + Object unk_02012944.o Object unk_02012CC8.o Object mail_message.o Object unk_020139D8.o diff --git a/arm9/asm/gf_rtc.s b/arm9/asm/gf_rtc.s new file mode 100644 index 000000000..a73a4801e --- /dev/null +++ b/arm9/asm/gf_rtc.s @@ -0,0 +1,410 @@ + .include "asm/macros.inc" + .include "global.inc" + + .rodata + + .global sMaxTime +sMaxTime: ; 0x020ED498 + ; 23:59:59 + .word 23, 59, 59 + + .global sMaxDate +sMaxDate: ; 0x020ED4A4 + ; 31 December, 2099 + .word 99, 12, 31, 0 + + .global sGF_DaysPerMonth +sGF_DaysPerMonth: ; 0x020ED4B2 + .short 0 + .short 31 + .short 59 + .short 90 + .short 120 + .short 151 + .short 181 + .short 212 + .short 243 + .short 273 + .short 304 + .short 334 + + .global sTimeOfDayByHour +sTimeOfDayByHour: ; 0x020ED4CC + ; 00:00 - 03:59 + .byte 0x04, 0x04, 0x04, 0x04 + ; 04:00 - 09:59 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + ; 10:00 - 16:59 + .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 + ; 17:00 - 19:59 + .byte 0x02, 0x02, 0x02 + ; 20:00 - 23:59 + .byte 0x03, 0x03, 0x03, 0x03 + + .section .bss + + .global sGFRTCWork +sGFRTCWork: ; 0x021C4808 + .space 0x48 + + .text + + thumb_func_start GF_InitRTCWork +GF_InitRTCWork: ; 0x0201259C + push {r3, lr} + bl RTC_Init + ldr r3, _020125CC ; =sGFRTCWork + mov r0, #0x0 + add r2, r3, #0x0 + add r1, r0, #0x0 + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + stmia r2!, {r0-r1} + ldr r1, _020125D0 ; =sGFRTCWork + str r0, [r1, #0x0] + str r0, [r1, #0x4] + str r0, [r1, #0x8] + add r0, r3, #0x0 + bl GF_RTC_GetDateTime + pop {r3, pc} + .balign 4 +_020125CC: .word sGFRTCWork +_020125D0: .word sGFRTCWork + + thumb_func_start GF_RTC_UpdateOnFrame +GF_RTC_UpdateOnFrame: ; 0x020125D4 + push {r3, lr} + ldr r0, _020125F4 ; =sGFRTCWork + ldr r1, [r0, #0x4] + cmp r1, #0x0 + bne _020125F2 + ldr r1, [r0, #0x8] + add r1, r1, #0x1 + str r1, [r0, #0x8] + cmp r1, #0xa + ble _020125F2 + mov r1, #0x0 + str r1, [r0, #0x8] + ldr r0, _020125F8 ; =sGFRTCWork + bl GF_RTC_GetDateTime +_020125F2: + pop {r3, pc} + .balign 4 +_020125F4: .word sGFRTCWork +_020125F8: .word sGFRTCWork + + thumb_func_start GF_RTC_GetDateTime_Callback +GF_RTC_GetDateTime_Callback: ; 0x020125FC + push {r4, lr} + add r4, r1, #0x0 + str r0, [r4, #0xc] + cmp r0, #0x0 + beq _0201260A + bl ErrorHandling +_0201260A: + add r3, r4, #0x0 + mov r0, #0x1 + add r2, r4, #0x0 + add r3, #0x2c + str r0, [r4, #0x0] + ldmia r3!, {r0-r1} + add r2, #0x10 + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + add r3, r4, #0x0 + add r3, #0x3c + add r2, r4, #0x0 + ldmia r3!, {r0-r1} + add r2, #0x20 + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + str r0, [r2, #0x0] + mov r0, #0x0 + str r0, [r4, #0x4] + pop {r4, pc} + + thumb_func_start GF_RTC_GetDateTime +GF_RTC_GetDateTime: ; 0x02012634 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1 + str r0, [r4, #0x4] + add r0, r4, #0x0 + add r1, r4, #0x0 + ldr r2, _02012658 ; =GF_RTC_GetDateTime_Callback + add r0, #0x2c + add r1, #0x3c + add r3, r4, #0x0 + bl RTC_GetDateTimeAsync + str r0, [r4, #0xc] + cmp r0, #0x0 + beq _02012656 + bl ErrorHandling +_02012656: + pop {r4, pc} + .balign 4 +_02012658: .word GF_RTC_GetDateTime_Callback + + thumb_func_start GF_RTC_CopyDateTime +GF_RTC_CopyDateTime: ; 0x0201265C + push {r3-r5, lr} + add r5, r0, #0x0 + ldr r0, _02012684 ; =sGFRTCWork + add r4, r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _0201266E + bl ErrorHandling +_0201266E: + ldr r2, _02012688 ; =sGFRTCWork + 16 + ldmia r2!, {r0-r1} + stmia r5!, {r0-r1} + ldmia r2!, {r0-r1} + ldr r2, _0201268C ; =sGFRTCWork + 32 + stmia r5!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 +_02012684: .word sGFRTCWork +_02012688: .word sGFRTCWork + 16 +_0201268C: .word sGFRTCWork + 32 + + thumb_func_start GF_RTC_CopyTime +GF_RTC_CopyTime: ; 0x02012690 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020126AC ; =sGFRTCWork + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020126A0 + bl ErrorHandling +_020126A0: + ldr r2, _020126B0 ; =sGFRTCWork + 32 + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldr r0, [r2, #0x0] + str r0, [r4, #0x0] + pop {r4, pc} + .balign 4 +_020126AC: .word sGFRTCWork +_020126B0: .word sGFRTCWork + 32 + + thumb_func_start GF_RTC_CopyDate +GF_RTC_CopyDate: ; 0x020126B4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020126D0 ; =sGFRTCWork + ldr r0, [r0, #0x0] + cmp r0, #0x1 + beq _020126C4 + bl ErrorHandling +_020126C4: + ldr r2, _020126D4 ; =sGFRTCWork + 16 + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + ldmia r2!, {r0-r1} + stmia r4!, {r0-r1} + pop {r4, pc} + .balign 4 +_020126D0: .word sGFRTCWork +_020126D4: .word sGFRTCWork + 16 + + thumb_func_start GF_RTC_TimeToSec +GF_RTC_TimeToSec: ; 0x020126D8 + push {r3-r4} + ldr r4, _020126F8 ; =sGFRTCWork + 32 + mov r0, #0x3c + ldr r1, [r4, #0x4] + ldr r3, [r4, #0x8] + add r2, r1, #0x0 + mul r2, r0 + mov r0, #0xe1 + ldr r1, [r4, #0x0] + lsl r0, r0, #0x4 + mul r0, r1 + add r0, r2, r0 + add r0, r3, r0 + pop {r3-r4} + bx lr + nop +_020126F8: .word sGFRTCWork + 32 + + thumb_func_start GF_RTC_DateTimeToSec +GF_RTC_DateTimeToSec: ; 0x020126FC + ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond + ldr r0, _02012708 ; =sGFRTCWork + 16 + ldr r1, _0201270C ; =sGFRTCWork + 32 + bx r3 + .balign 4 +_02012704: .word RTC_ConvertDateTimeToSecond +_02012708: .word sGFRTCWork + 16 +_0201270C: .word sGFRTCWork + 32 + + thumb_func_start FUN_02012710 +FUN_02012710: ; 0x02012710 + push {r4-r6, lr} + sub sp, #0x10 + add r5, r0, #0x0 + ldr r2, [r5, #0x4] + ldr r0, _02012778 ; =sGF_DaysPerMonth - 2 + lsl r1, r2, #0x1 + ldrh r0, [r0, r1] + ldr r3, [r5, #0x8] + add r4, r3, r0 + cmp r2, #0x3 + blo _02012752 + ldr r6, [r5, #0x0] + mov r0, #0x1e + lsr r2, r6, #0x1f + lsl r1, r6, #0x1e + sub r1, r1, r2 + ror r1, r0 + add r0, r2, r1 + bne _02012742 + add r0, r6, #0x0 + mov r1, #0x64 + bl _s32_div_f + cmp r1, #0x0 + bne _02012750 +_02012742: + mov r1, #0x19 + add r0, r6, #0x0 + lsl r1, r1, #0x4 + bl _s32_div_f + cmp r1, #0x0 + bne _02012752 +_02012750: + add r4, r4, #0x1 +_02012752: + add r6, r5, #0x0 + add r3, sp, #0x0 + add r2, r3, #0x0 + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r6!, {r0-r1} + stmia r3!, {r0-r1} + mov r0, #0x1 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + add r0, r2, #0x0 + bl RTC_ConvertDateToDay + add r0, r5, #0x0 + bl RTC_ConvertDateToDay + add r0, r4, #0x0 + add sp, #0x10 + pop {r4-r6, pc} + .balign 4 +_02012778: .word sGF_DaysPerMonth - 2 + + thumb_func_start IsNighttime +IsNighttime: ; 0x0201277C + push {r3, lr} + bl GF_RTC_GetTimeOfDay + cmp r0, #0x3 + beq _0201278A + cmp r0, #0x4 + bne _0201278E +_0201278A: + mov r0, #0x1 + pop {r3, pc} +_0201278E: + mov r0, #0x0 + pop {r3, pc} + .balign 4 + + thumb_func_start GF_RTC_GetTimeOfDay +GF_RTC_GetTimeOfDay: ; 0x02012794 + push {lr} + sub sp, #0xc + add r0, sp, #0x0 + bl GF_RTC_CopyTime + ldr r0, [sp, #0x0] + bl GF_RTC_GetTimeOfDayByHour + add sp, #0xc + pop {pc} + + thumb_func_start GF_RTC_GetTimeOfDayByHour +GF_RTC_GetTimeOfDayByHour: ; 0x020127A8 + push {r4, lr} + add r4, r0, #0x0 + bmi _020127B2 + cmp r4, #0x18 + blt _020127B6 +_020127B2: + bl ErrorHandling +_020127B6: + ldr r0, _020127BC ; =sTimeOfDayByHour + ldrb r0, [r0, r4] + pop {r4, pc} + .balign 4 +_020127BC: .word sTimeOfDayByHour + + thumb_func_start FUN_020127C0 +FUN_020127C0: ; 0x020127C0 + push {r4-r7, lr} + sub sp, #0x24 + add r6, r3, #0x0 + ldr r3, _0201282C ; =sMaxDate + add r4, r0, #0x0 + add r7, r1, #0x0 + add r5, r2, #0x0 + add r2, sp, #0x14 + ldmia r3!, {r0-r1} + str r2, [sp, #0x0] + stmia r2!, {r0-r1} + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + ldr r3, _02012830 ; =sMaxTime + add r2, sp, #0x8 + ldmia r3!, {r0-r1} + str r2, [sp, #0x4] + stmia r2!, {r0-r1} + ldr r0, [r3, #0x0] + ldr r1, [sp, #0x4] + str r0, [r2, #0x0] + ldr r0, [sp, #0x0] + bl RTC_ConvertDateTimeToSecond + add r2, r1, #0x0 + add r3, r0, #0x0 + mov r1, #0x0 + ldr r0, _02012834 ; =0xBC19137F + eor r1, r2 + eor r0, r3 + orr r0, r1 + beq _02012804 + bl ErrorHandling +_02012804: + sub r0, r4, r5 + mov r12, r7 + mov r0, r12 + sbc r0, r6 + bge _02012818 + sub r0, r5, r4 + sbc r6, r7 + add sp, #0x24 + add r1, r6, #0x0 + pop {r4-r7, pc} +_02012818: + ldr r0, _02012834 ; =0xBC19137F + mov r1, #0x0 + sub r0, r0, r4 + sbc r1, r7 + add r0, r5, r0 + adc r6, r1 + add r1, r6, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + nop +_0201282C: .word sMaxDate +_02012830: .word sMaxTime +_02012834: .word 0xBC19137F diff --git a/arm9/asm/list_menu_items.s b/arm9/asm/list_menu_items.s new file mode 100644 index 000000000..eecacb092 --- /dev/null +++ b/arm9/asm/list_menu_items.s @@ -0,0 +1,162 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start ListMenuItems_ctor +ListMenuItems_ctor: ; 0x02012838 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r1, r5, #0x1 + add r0, r4, #0x0 + lsl r1, r1, #0x3 + bl AllocFromHeap + cmp r0, #0x0 + beq _0201286E + mov r2, #0x0 + cmp r5, #0x0 + bls _02012862 + add r3, r0, #0x0 + add r1, r2, #0x0 +_02012856: + str r1, [r3, #0x0] + str r1, [r3, #0x4] + add r2, r2, #0x1 + add r3, #0x8 + cmp r2, r5 + blo _02012856 +_02012862: + mov r1, #0x0 + lsl r2, r2, #0x3 + mvn r1, r1 + str r1, [r0, r2] + add r1, r0, r2 + str r4, [r1, #0x4] +_0201286E: + pop {r3-r5, pc} + + thumb_func_start ListMenuItems_dtor +ListMenuItems_dtor: ; 0x02012870 + push {r4, lr} + add r4, r0, #0x0 + bl ListMenuItems_DestroyMenuStrings + add r0, r4, #0x0 + bl FreeToHeap + pop {r4, pc} + + thumb_func_start ListMenuItems_AppendFromMsgData +ListMenuItems_AppendFromMsgData: ; 0x02012880 + push {r3-r7, lr} + add r6, r1, #0x0 + add r1, sp, #0x0 + add r7, r2, #0x0 + add r5, r3, #0x0 + bl ListMenuItems_NewItem + add r4, r0, #0x0 + beq _0201289E + add r0, r6, #0x0 + add r1, r7, #0x0 + bl NewString_ReadMsgData + str r0, [r4, #0x0] + str r5, [r4, #0x4] +_0201289E: + pop {r3-r7, pc} + + thumb_func_start ListMenuItems_AddItem +ListMenuItems_AddItem: ; 0x020128A0 + push {r3-r6, lr} + sub sp, #0x4 + add r6, r1, #0x0 + add r1, sp, #0x0 + add r5, r2, #0x0 + bl ListMenuItems_NewItem + add r4, r0, #0x0 + beq _020128BE + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl StringDup + str r0, [r4, #0x0] + str r5, [r4, #0x4] +_020128BE: + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start ListMenuItems_CopyItem +ListMenuItems_CopyItem: ; 0x020128C4 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r1, #0x0 + add r1, sp, #0x0 + bl ListMenuItems_NewItem + cmp r0, #0x0 + beq _020128DC + ldr r1, [r4, #0x0] + str r1, [r0, #0x0] + ldr r1, [r4, #0x4] + str r1, [r0, #0x4] +_020128DC: + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start ListMenuItems_NewItem +ListMenuItems_NewItem: ; 0x020128E0 + push {r4, lr} + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _02012900 + mov r2, #0x0 + mvn r2, r2 +_020128EC: + cmp r3, r2 + bne _020128F8 + bl ErrorHandling + mov r0, #0x0 + pop {r4, pc} +_020128F8: + add r0, #0x8 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + bne _020128EC +_02012900: + mov r2, #0x0 + mvn r2, r2 + add r4, r0, #0x0 + cmp r3, r2 + beq _02012912 +_0201290A: + add r0, #0x8 + ldr r3, [r0, #0x0] + cmp r3, r2 + bne _0201290A +_02012912: + ldr r0, [r0, #0x4] + str r0, [r1, #0x0] + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start ListMenuItems_DestroyMenuStrings +ListMenuItems_DestroyMenuStrings: ; 0x0201291C + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x0 + ldr r1, [r5, #0x0] + mvn r0, r0 + cmp r1, r0 + beq _02012942 + mov r4, #0x0 + add r6, r0, #0x0 +_0201292E: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02012942 + bl String_dtor + str r4, [r5, #0x0] + add r5, #0x8 + ldr r0, [r5, #0x0] + cmp r0, r6 + bne _0201292E +_02012942: + pop {r4-r6, pc} diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index 98fd8b7ee..40ddf1abc 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -20,81 +20,6 @@ UNK_020ED398: ; 0x020ED398 .byte 0x01, 0x02 .byte 0x01, 0x01 - .global UNK_020ED3B0 -UNK_020ED3B0: ; 0x020ED3B0 - .word 0x00000147 - .word 0x000001EF - - .global UNK_020ED3B8 -UNK_020ED3B8: ; 0x020ED3B8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - - .global UNK_020ED3C8 -UNK_020ED3C8: ; 0x020ED3C8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - - .global UNK_020ED3D8 -UNK_020ED3D8: ; 0x020ED3D8 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK_020ED438 -UNK_020ED438: ; 0x020ED438 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global sMaxTime -sMaxTime: ; 0x020ED498 - ; 23:59:59 - .word 23, 59, 59 - - .global sMaxDate -sMaxDate: ; 0x020ED4A4 - ; 31 December, 2099 - .word 99, 12, 31, 0 - - .global sGF_DaysPerMonth -sGF_DaysPerMonth: ; 0x020ED4B2 - .short 0 - .short 31 - .short 59 - .short 90 - .short 120 - .short 151 - .short 181 - .short 212 - .short 243 - .short 273 - .short 304 - .short 334 - - .global sTimeOfDayByHour -sTimeOfDayByHour: ; 0x020ED4CC - ; 00:00 - 03:59 - .byte 0x04, 0x04, 0x04, 0x04 - ; 04:00 - 09:59 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; 10:00 - 16:59 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - ; 17:00 - 19:59 - .byte 0x02, 0x02, 0x02 - ; 20:00 - 23:59 - .byte 0x03, 0x03, 0x03, 0x03 - - .section .bss - - .global sGFRTCWork -sGFRTCWork: ; 0x021C4808 - .space 0x48 - .text thumb_func_start FUN_02011744 @@ -1296,1738 +1221,3 @@ FUN_02011FF4: ; 0x02011FF4 str r0, [r1, #0xc] bx lr .balign 4 - - thumb_func_start FUN_02012004 -FUN_02012004: ; 0x02012004 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - ldr r6, [sp, #0x20] - str r1, [sp, #0x4] - add r5, r2, #0x0 - add r4, r3, #0x0 - str r0, [sp, #0x24] - mov r7, #0x0 -_02012018: - ldr r1, [r4, #0x0] - ldr r0, [sp, #0x4] - ldr r2, [r5, #0x0] - add r0, r0, r1 - ldr r1, [sp, #0x0] - add r1, r1, r2 - add r2, r6, #0x0 - bl memcpy - ldr r1, [r5, #0x0] - ldr r0, [sp, #0x24] - add r7, r7, #0x1 - add r0, r1, r0 - str r0, [r5, #0x0] - ldr r0, [r4, #0x0] - add r0, r0, r6 - str r0, [r4, #0x0] - cmp r7, #0x8 - blt _02012018 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02012044 -FUN_02012044: ; 0x02012044 - push {r4-r6, lr} - add r5, r3, #0x0 - bl AllocAndReadWholeNarcMemberByIdPair - add r4, r0, #0x0 - bne _02012054 - bl ErrorHandling -_02012054: - add r0, r4, #0x0 - add r1, r5, #0x0 - bl FUN_020B0088 - add r6, r0, #0x0 - cmp r5, #0x0 - bne _02012066 - bl ErrorHandling -_02012066: - cmp r6, #0x0 - bne _0201206E - bl ErrorHandling -_0201206E: - add r0, r4, #0x0 - bl FreeToHeap - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02012078 -FUN_02012078: ; 0x02012078 - push {r4-r7, lr} - sub sp, #0x2c - ldr r4, [sp, #0x40] - str r0, [sp, #0x8] - add r6, r0, r2 - ldrh r0, [r4, #0x2] - str r1, [sp, #0xc] - add r5, r3, #0x0 - cmp r0, r6 - bge _02012090 - bl ErrorHandling -_02012090: - ldr r0, [sp, #0xc] - ldrh r1, [r4, #0x0] - add r0, r0, r5 - str r0, [sp, #0x14] - cmp r1, r0 - bge _020120A0 - bl ErrorHandling -_020120A0: - ldr r0, [r4, #0x14] - str r0, [sp, #0x20] - ldr r0, [sp, #0x44] - str r0, [sp, #0x1c] - ldrh r0, [r4, #0x2] - lsl r7, r0, #0x2 - ldr r0, [sp, #0xc] - add r1, r0, #0x0 - mul r1, r7 - ldr r0, [sp, #0x8] - str r1, [sp, #0x18] - lsl r1, r0, #0x2 - ldr r0, [sp, #0x18] - str r1, [sp, #0x10] - add r0, r1, r0 - str r0, [sp, #0x28] - mov r0, #0x0 - str r0, [sp, #0x24] - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x14] - cmp r1, r0 - bge _0201210A -_020120CC: - ldr r4, [sp, #0x8] - add r0, r4, #0x0 - cmp r0, r6 - bge _020120F8 - ldr r0, [sp, #0x18] - lsl r1, r0, #0x3 - ldr r0, [sp, #0x10] - add r5, r0, r1 -_020120DC: - str r5, [sp, #0x28] - mov r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x1c] - add r2, sp, #0x28 - add r3, sp, #0x24 - str r7, [sp, #0x4] - bl FUN_02012004 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r6 - blt _020120DC -_020120F8: - ldr r0, [sp, #0x18] - add r0, r0, r7 - str r0, [sp, #0x18] - ldr r0, [sp, #0xc] - add r1, r0, #0x1 - ldr r0, [sp, #0x14] - str r1, [sp, #0xc] - cmp r1, r0 - blt _020120CC -_0201210A: - add sp, #0x2c - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02012110 -FUN_02012110: ; 0x02012110 - push {r4-r5} - sub sp, #0x8 - ldr r2, _02012148 ; =UNK_020ED3B0 - add r1, sp, #0x0 - ldr r3, [r2, #0x0] - ldr r2, [r2, #0x4] - str r3, [sp, #0x0] - str r2, [sp, #0x4] - ldr r2, _0201214C ; =0x000001EF - mov r5, #0x0 - add r3, r2, #0x0 -_02012126: - ldr r4, [r1, #0x0] - cmp r4, r3 - beq _02012140 - cmp r4, r0 - bne _02012138 - add sp, #0x8 - mov r0, #0x1 - pop {r4-r5} - bx lr -_02012138: - add r5, r5, #0x1 - add r1, r1, #0x4 - cmp r5, r2 - blt _02012126 -_02012140: - mov r0, #0x0 - add sp, #0x8 - pop {r4-r5} - bx lr - .balign 4 -_02012148: .word UNK_020ED3B0 -_0201214C: .word 0x000001EF - - thumb_func_start FUN_02012150 -FUN_02012150: ; 0x02012150 - push {r3-r4, lr} - sub sp, #0xc - add r4, r3, #0x0 - mov r3, #0x0 - str r3, [sp, #0x8] - add r3, sp, #0x8 - bl FUN_02012044 - ldr r0, [sp, #0x8] - ldr r0, [r0, #0x14] - bl FUN_02008A74 - ldr r0, [sp, #0x34] - bl FUN_02012110 - ldr r1, [sp, #0x30] - cmp r1, #0x2 - bne _02012184 - cmp r0, #0x1 - bne _02012184 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x28] - ldr r0, [r0, #0x14] - ldr r2, [sp, #0x2c] - bl FUN_02008904 -_02012184: - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x18] - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - ldr r2, [sp, #0x1c] - str r0, [sp, #0x4] - ldr r3, [sp, #0x20] - add r0, r4, #0x0 - bl FUN_02012078 - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0201219C -FUN_0201219C: ; 0x0201219C - push {r4-r7, lr} - sub sp, #0x24 - add r7, r1, #0x0 - add r5, r2, #0x0 - ldr r2, [sp, #0x3c] - ldr r1, [sp, #0x40] - add r6, r0, #0x0 - mul r1, r2 - add r0, r5, #0x0 - lsl r1, r1, #0x5 - str r3, [sp, #0x20] - bl AllocFromHeap - add r4, r0, #0x0 - ldr r0, [sp, #0x38] - ldr r3, [sp, #0x20] - str r0, [sp, #0x0] - ldr r0, [sp, #0x3c] - add r1, r7, #0x0 - str r0, [sp, #0x4] - ldr r0, [sp, #0x40] - add r2, r5, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x44] - str r4, [sp, #0xc] - str r0, [sp, #0x10] - ldr r0, [sp, #0x48] - str r0, [sp, #0x14] - ldr r0, [sp, #0x4c] - str r0, [sp, #0x18] - ldr r0, [sp, #0x50] - str r0, [sp, #0x1c] - add r0, r6, #0x0 - bl FUN_02012150 - add r0, r4, #0x0 - add sp, #0x24 - pop {r4-r7, pc} - - thumb_func_start FUN_020121E8 -FUN_020121E8: ; 0x020121E8 - push {r3-r7, lr} - sub sp, #0x30 - str r3, [sp, #0x8] - ldr r3, [sp, #0x48] - str r3, [sp, #0x48] - mov r3, #0x0 - str r3, [sp, #0x2c] - bl AllocAndReadWholeNarcMemberByIdPair - str r0, [sp, #0x20] - cmp r0, #0x0 - bne _02012204 - bl ErrorHandling -_02012204: - ldr r0, [sp, #0x20] - add r1, sp, #0x2c - bl FUN_020B0088 - cmp r0, #0x0 - bne _02012214 - bl ErrorHandling -_02012214: - ldr r1, [sp, #0x4c] - ldr r0, [sp, #0x8] - add r6, r0, r1 - ldr r0, [sp, #0x2c] - ldrh r0, [r0, #0x2] - cmp r0, r6 - bge _02012226 - bl ErrorHandling -_02012226: - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x48] - add r0, r0, r1 - str r0, [sp, #0x10] - ldr r0, [sp, #0x2c] - ldrh r1, [r0, #0x0] - ldr r0, [sp, #0x10] - cmp r1, r0 - bge _0201223C - bl ErrorHandling -_0201223C: - ldr r0, [sp, #0x2c] - ldr r0, [r0, #0x14] - str r0, [sp, #0x1c] - bl FUN_02008A74 - ldr r0, [sp, #0x54] - str r0, [sp, #0x18] - ldr r0, [sp, #0x2c] - ldrh r0, [r0, #0x2] - lsl r7, r0, #0x2 - ldr r0, [sp, #0x48] - add r1, r0, #0x0 - mul r1, r7 - ldr r0, [sp, #0x8] - str r1, [sp, #0x14] - lsl r1, r0, #0x2 - ldr r0, [sp, #0x14] - str r1, [sp, #0xc] - add r0, r1, r0 - str r0, [sp, #0x28] - mov r0, #0x0 - str r0, [sp, #0x24] - ldr r1, [sp, #0x48] - ldr r0, [sp, #0x10] - cmp r1, r0 - bge _020122AE -_02012270: - ldr r4, [sp, #0x8] - add r0, r4, #0x0 - cmp r0, r6 - bge _0201229C - ldr r0, [sp, #0x14] - lsl r1, r0, #0x3 - ldr r0, [sp, #0xc] - add r5, r0, r1 -_02012280: - str r5, [sp, #0x28] - mov r0, #0x4 - str r0, [sp, #0x0] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x18] - add r2, sp, #0x28 - add r3, sp, #0x24 - str r7, [sp, #0x4] - bl FUN_02012004 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r6 - blt _02012280 -_0201229C: - ldr r0, [sp, #0x14] - add r0, r0, r7 - str r0, [sp, #0x14] - ldr r0, [sp, #0x48] - add r1, r0, #0x1 - ldr r0, [sp, #0x10] - str r1, [sp, #0x48] - cmp r1, r0 - blt _02012270 -_020122AE: - ldr r0, [sp, #0x20] - bl FreeToHeap - add sp, #0x30 - pop {r3-r7, pc} - - thumb_func_start FUN_020122B8 -FUN_020122B8: ; 0x020122B8 - push {r4-r7, lr} - sub sp, #0x14 - add r7, r1, #0x0 - add r5, r2, #0x0 - ldr r2, [sp, #0x2c] - ldr r1, [sp, #0x30] - add r6, r0, #0x0 - mul r1, r2 - add r0, r5, #0x0 - lsl r1, r1, #0x5 - str r3, [sp, #0x10] - bl AllocFromHeap - add r4, r0, #0x0 - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x10] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - add r1, r7, #0x0 - str r0, [sp, #0x4] - ldr r0, [sp, #0x30] - add r2, r5, #0x0 - str r0, [sp, #0x8] - add r0, r6, #0x0 - str r4, [sp, #0xc] - bl FUN_020121E8 - add r0, r4, #0x0 - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_020122F4 -FUN_020122F4: ; 0x020122F4 - push {r3-r7, lr} - sub sp, #0x20 - str r0, [sp, #0x0] - ldr r0, [sp, #0x44] - ldr r1, [sp, #0x38] - str r0, [sp, #0x18] - ldr r0, [sp, #0x48] - str r2, [sp, #0x4] - str r0, [sp, #0x14] - add r0, r2, #0x0 - add r7, r0, r1 - ldr r1, [sp, #0x3c] - add r0, r3, #0x0 - add r0, r0, r1 - add r1, r3, #0x0 - str r3, [sp, #0x8] - ldr r5, [sp, #0x40] - str r0, [sp, #0x10] - cmp r1, r0 - bge _0201236C - add r0, r3, #0x0 - lsl r0, r0, #0x5 - str r0, [sp, #0xc] - add r0, r2, #0x0 - lsl r0, r0, #0x5 - str r0, [sp, #0x1c] -_02012328: - ldr r6, [sp, #0x4] - add r0, r6, #0x0 - cmp r0, r7 - bge _0201235A - ldr r1, [sp, #0x0] - ldr r0, [sp, #0xc] - add r2, r1, #0x0 - mul r2, r0 - ldr r0, [sp, #0x1c] - add r4, r0, r2 -_0201233C: - ldr r1, [r5, #0x0] - ldr r0, [sp, #0x14] - mov r2, #0x20 - add r0, r0, r1 - ldr r1, [sp, #0x18] - add r1, r1, r4 - bl memcpy - ldr r0, [r5, #0x0] - add r6, r6, #0x1 - add r0, #0x20 - str r0, [r5, #0x0] - add r4, #0x20 - cmp r6, r7 - blt _0201233C -_0201235A: - ldr r0, [sp, #0xc] - add r0, #0x20 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r1, r0, #0x1 - ldr r0, [sp, #0x10] - str r1, [sp, #0x8] - cmp r1, r0 - blt _02012328 -_0201236C: - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02012370 -FUN_02012370: ; 0x02012370 - push {r3-r4, lr} - sub sp, #0x14 - add r4, r2, #0x0 - ldr r2, [r4, #0x8] - str r2, [sp, #0x0] - ldr r2, [r4, #0xc] - str r2, [sp, #0x4] - ldr r2, [sp, #0x20] - str r3, [sp, #0x8] - str r2, [sp, #0xc] - ldr r2, [sp, #0x24] - str r2, [sp, #0x10] - ldr r2, [r4, #0x0] - ldr r3, [r4, #0x4] - bl FUN_020122F4 - add sp, #0x14 - pop {r3-r4, pc} - - thumb_func_start FUN_02012394 -FUN_02012394: ; 0x02012394 - push {r4-r7, lr} - sub sp, #0x7c - str r0, [sp, #0xc] - ldr r0, [sp, #0x9c] - mov r12, r3 - add r5, r2, #0x0 - ldr r6, [sp, #0x94] - ldr r7, [sp, #0x98] - ldr r3, _020123FC ; =UNK_020ED3D8 - str r1, [sp, #0x10] - str r0, [sp, #0x9c] - add r2, sp, #0x1c - mov r4, #0xc -_020123AE: - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - sub r4, r4, #0x1 - bne _020123AE - mov r0, #0x0 - str r0, [sp, #0x18] - ldr r0, [sp, #0x90] - ldr r1, [sp, #0x10] - str r0, [sp, #0x0] - str r6, [sp, #0x4] - ldr r0, [sp, #0xc] - add r2, r5, #0x0 - mov r3, r12 - str r7, [sp, #0x8] - bl FUN_020122B8 - str r0, [sp, #0x14] - mov r4, #0x0 - add r5, sp, #0x1c -_020123D4: - ldr r0, [sp, #0x14] - add r1, r7, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x9c] - add r2, r5, #0x0 - str r0, [sp, #0x4] - add r0, r6, #0x0 - add r3, sp, #0x18 - bl FUN_02012370 - add r4, r4, #0x1 - add r5, #0x10 - cmp r4, #0x6 - blt _020123D4 - ldr r0, [sp, #0x14] - bl FreeToHeap - add sp, #0x7c - pop {r4-r7, pc} - nop -_020123FC: .word UNK_020ED3D8 - - thumb_func_start FUN_02012400 -FUN_02012400: ; 0x02012400 - push {r4, lr} - sub sp, #0x10 - ldr r4, [r3, #0x4] - str r4, [sp, #0x0] - ldr r4, [r3, #0x8] - str r4, [sp, #0x4] - ldr r4, [r3, #0xc] - str r4, [sp, #0x8] - ldr r4, [sp, #0x18] - str r4, [sp, #0xc] - ldr r3, [r3, #0x0] - bl FUN_02012394 - add sp, #0x10 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02012420 -FUN_02012420: ; 0x02012420 - push {r4-r7, lr} - sub sp, #0x14 - ldr r4, _02012448 ; =UNK_020ED3B8 - add r5, r3, #0x0 - add r3, sp, #0x4 - add r7, r0, #0x0 - mov r12, r1 - add r6, r3, #0x0 - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - add r0, r7, #0x0 - mov r1, r12 - add r3, r6, #0x0 - str r5, [sp, #0x0] - bl FUN_02012400 - add sp, #0x14 - pop {r4-r7, pc} - .balign 4 -_02012448: .word UNK_020ED3B8 - - thumb_func_start FUN_0201244C -FUN_0201244C: ; 0x0201244C - push {r3-r7, lr} - add r6, r1, #0x0 - mov r1, #0x32 - add r7, r2, #0x0 - add r5, r0, #0x0 - add r0, r7, #0x0 - lsl r1, r1, #0x6 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - add r3, r4, #0x0 - bl FUN_02012420 - add r0, r4, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_02012470 -FUN_02012470: ; 0x02012470 - push {r3-r7, lr} - add r7, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - add r0, r7, #0x0 - mov r1, #0x20 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - bl AllocAndReadWholeNarcMemberByIdPair - add r1, sp, #0x0 - add r5, r0, #0x0 - bl FUN_020B0138 - cmp r0, #0x1 - beq _0201249C - bl ErrorHandling -_0201249C: - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - ldr r0, [r0, #0xc] - mov r2, #0x20 - bl MIi_CpuCopy16 - add r0, r5, #0x0 - bl FreeToHeap - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020124B4 -FUN_020124B4: ; 0x020124B4 - push {r4-r7, lr} - sub sp, #0x8c - str r0, [sp, #0x1c] - ldr r0, [sp, #0xac] - mov r12, r3 - add r5, r2, #0x0 - ldr r6, [sp, #0xa4] - ldr r7, [sp, #0xa8] - ldr r3, _0201252C ; =UNK_020ED438 - str r1, [sp, #0x20] - str r0, [sp, #0xac] - add r2, sp, #0x2c - mov r4, #0xc -_020124CE: - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - sub r4, r4, #0x1 - bne _020124CE - mov r0, #0x0 - str r0, [sp, #0x28] - ldr r0, [sp, #0xa0] - ldr r1, [sp, #0x20] - str r0, [sp, #0x0] - str r6, [sp, #0x4] - ldr r0, [sp, #0xb0] - str r7, [sp, #0x8] - str r0, [sp, #0xc] - ldr r0, [sp, #0xb4] - add r2, r5, #0x0 - str r0, [sp, #0x10] - ldr r0, [sp, #0xb8] - mov r3, r12 - str r0, [sp, #0x14] - ldr r0, [sp, #0xbc] - str r0, [sp, #0x18] - ldr r0, [sp, #0x1c] - bl FUN_0201219C - str r0, [sp, #0x24] - mov r4, #0x0 - add r5, sp, #0x2c -_02012504: - ldr r0, [sp, #0x24] - add r1, r7, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0xac] - add r2, r5, #0x0 - str r0, [sp, #0x4] - add r0, r6, #0x0 - add r3, sp, #0x28 - bl FUN_02012370 - add r4, r4, #0x1 - add r5, #0x10 - cmp r4, #0x6 - blt _02012504 - ldr r0, [sp, #0x24] - bl FreeToHeap - add sp, #0x8c - pop {r4-r7, pc} - nop -_0201252C: .word UNK_020ED438 - - thumb_func_start FUN_02012530 -FUN_02012530: ; 0x02012530 - push {r4, lr} - sub sp, #0x20 - ldr r4, [r3, #0x4] - str r4, [sp, #0x0] - ldr r4, [r3, #0x8] - str r4, [sp, #0x4] - ldr r4, [r3, #0xc] - str r4, [sp, #0x8] - ldr r4, [sp, #0x28] - str r4, [sp, #0xc] - ldr r4, [sp, #0x2c] - str r4, [sp, #0x10] - ldr r4, [sp, #0x30] - str r4, [sp, #0x14] - ldr r4, [sp, #0x34] - str r4, [sp, #0x18] - ldr r4, [sp, #0x38] - str r4, [sp, #0x1c] - ldr r3, [r3, #0x0] - bl FUN_020124B4 - add sp, #0x20 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02012560 -FUN_02012560: ; 0x02012560 - push {r4-r7, lr} - sub sp, #0x24 - ldr r4, _02012598 ; =UNK_020ED3C8 - add r5, r3, #0x0 - add r3, sp, #0x14 - add r7, r0, #0x0 - mov r12, r1 - add r6, r3, #0x0 - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r4!, {r0-r1} - stmia r3!, {r0-r1} - ldr r0, [sp, #0x38] - str r5, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x3c] - mov r1, r12 - str r0, [sp, #0x8] - ldr r0, [sp, #0x40] - add r3, r6, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x44] - str r0, [sp, #0x10] - add r0, r7, #0x0 - bl FUN_02012530 - add sp, #0x24 - pop {r4-r7, pc} - .balign 4 -_02012598: .word UNK_020ED3C8 - - thumb_func_start GF_InitRTCWork -GF_InitRTCWork: ; 0x0201259C - push {r3, lr} - bl RTC_Init - ldr r3, _020125CC ; =sGFRTCWork - mov r0, #0x0 - add r2, r3, #0x0 - add r1, r0, #0x0 - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - ldr r1, _020125D0 ; =sGFRTCWork - str r0, [r1, #0x0] - str r0, [r1, #0x4] - str r0, [r1, #0x8] - add r0, r3, #0x0 - bl GF_RTC_GetDateTime - pop {r3, pc} - .balign 4 -_020125CC: .word sGFRTCWork -_020125D0: .word sGFRTCWork - - thumb_func_start GF_RTC_UpdateOnFrame -GF_RTC_UpdateOnFrame: ; 0x020125D4 - push {r3, lr} - ldr r0, _020125F4 ; =sGFRTCWork - ldr r1, [r0, #0x4] - cmp r1, #0x0 - bne _020125F2 - ldr r1, [r0, #0x8] - add r1, r1, #0x1 - str r1, [r0, #0x8] - cmp r1, #0xa - ble _020125F2 - mov r1, #0x0 - str r1, [r0, #0x8] - ldr r0, _020125F8 ; =sGFRTCWork - bl GF_RTC_GetDateTime -_020125F2: - pop {r3, pc} - .balign 4 -_020125F4: .word sGFRTCWork -_020125F8: .word sGFRTCWork - - thumb_func_start GF_RTC_GetDateTime_Callback -GF_RTC_GetDateTime_Callback: ; 0x020125FC - push {r4, lr} - add r4, r1, #0x0 - str r0, [r4, #0xc] - cmp r0, #0x0 - beq _0201260A - bl ErrorHandling -_0201260A: - add r3, r4, #0x0 - mov r0, #0x1 - add r2, r4, #0x0 - add r3, #0x2c - str r0, [r4, #0x0] - ldmia r3!, {r0-r1} - add r2, #0x10 - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - add r3, r4, #0x0 - add r3, #0x3c - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - pop {r4, pc} - - thumb_func_start GF_RTC_GetDateTime -GF_RTC_GetDateTime: ; 0x02012634 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1 - str r0, [r4, #0x4] - add r0, r4, #0x0 - add r1, r4, #0x0 - ldr r2, _02012658 ; =GF_RTC_GetDateTime_Callback - add r0, #0x2c - add r1, #0x3c - add r3, r4, #0x0 - bl RTC_GetDateTimeAsync - str r0, [r4, #0xc] - cmp r0, #0x0 - beq _02012656 - bl ErrorHandling -_02012656: - pop {r4, pc} - .balign 4 -_02012658: .word GF_RTC_GetDateTime_Callback - - thumb_func_start GF_RTC_CopyDateTime -GF_RTC_CopyDateTime: ; 0x0201265C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _02012684 ; =sGFRTCWork - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _0201266E - bl ErrorHandling -_0201266E: - ldr r2, _02012688 ; =sGFRTCWork + 16 - ldmia r2!, {r0-r1} - stmia r5!, {r0-r1} - ldmia r2!, {r0-r1} - ldr r2, _0201268C ; =sGFRTCWork + 32 - stmia r5!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 -_02012684: .word sGFRTCWork -_02012688: .word sGFRTCWork + 16 -_0201268C: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_CopyTime -GF_RTC_CopyTime: ; 0x02012690 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020126AC ; =sGFRTCWork - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _020126A0 - bl ErrorHandling -_020126A0: - ldr r2, _020126B0 ; =sGFRTCWork + 32 - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_020126AC: .word sGFRTCWork -_020126B0: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_CopyDate -GF_RTC_CopyDate: ; 0x020126B4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020126D0 ; =sGFRTCWork - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _020126C4 - bl ErrorHandling -_020126C4: - ldr r2, _020126D4 ; =sGFRTCWork + 16 - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - pop {r4, pc} - .balign 4 -_020126D0: .word sGFRTCWork -_020126D4: .word sGFRTCWork + 16 - - thumb_func_start GF_RTC_TimeToSec -GF_RTC_TimeToSec: ; 0x020126D8 - push {r3-r4} - ldr r4, _020126F8 ; =sGFRTCWork + 32 - mov r0, #0x3c - ldr r1, [r4, #0x4] - ldr r3, [r4, #0x8] - add r2, r1, #0x0 - mul r2, r0 - mov r0, #0xe1 - ldr r1, [r4, #0x0] - lsl r0, r0, #0x4 - mul r0, r1 - add r0, r2, r0 - add r0, r3, r0 - pop {r3-r4} - bx lr - nop -_020126F8: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_DateTimeToSec -GF_RTC_DateTimeToSec: ; 0x020126FC - ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond - ldr r0, _02012708 ; =sGFRTCWork + 16 - ldr r1, _0201270C ; =sGFRTCWork + 32 - bx r3 - .balign 4 -_02012704: .word RTC_ConvertDateTimeToSecond -_02012708: .word sGFRTCWork + 16 -_0201270C: .word sGFRTCWork + 32 - - thumb_func_start FUN_02012710 -FUN_02012710: ; 0x02012710 - push {r4-r6, lr} - sub sp, #0x10 - add r5, r0, #0x0 - ldr r2, [r5, #0x4] - ldr r0, _02012778 ; =sGF_DaysPerMonth - 2 - lsl r1, r2, #0x1 - ldrh r0, [r0, r1] - ldr r3, [r5, #0x8] - add r4, r3, r0 - cmp r2, #0x3 - blo _02012752 - ldr r6, [r5, #0x0] - mov r0, #0x1e - lsr r2, r6, #0x1f - lsl r1, r6, #0x1e - sub r1, r1, r2 - ror r1, r0 - add r0, r2, r1 - bne _02012742 - add r0, r6, #0x0 - mov r1, #0x64 - bl _s32_div_f - cmp r1, #0x0 - bne _02012750 -_02012742: - mov r1, #0x19 - add r0, r6, #0x0 - lsl r1, r1, #0x4 - bl _s32_div_f - cmp r1, #0x0 - bne _02012752 -_02012750: - add r4, r4, #0x1 -_02012752: - add r6, r5, #0x0 - add r3, sp, #0x0 - add r2, r3, #0x0 - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - add r0, r2, #0x0 - bl RTC_ConvertDateToDay - add r0, r5, #0x0 - bl RTC_ConvertDateToDay - add r0, r4, #0x0 - add sp, #0x10 - pop {r4-r6, pc} - .balign 4 -_02012778: .word sGF_DaysPerMonth - 2 - - thumb_func_start IsNighttime -IsNighttime: ; 0x0201277C - push {r3, lr} - bl GF_RTC_GetTimeOfDay - cmp r0, #0x3 - beq _0201278A - cmp r0, #0x4 - bne _0201278E -_0201278A: - mov r0, #0x1 - pop {r3, pc} -_0201278E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start GF_RTC_GetTimeOfDay -GF_RTC_GetTimeOfDay: ; 0x02012794 - push {lr} - sub sp, #0xc - add r0, sp, #0x0 - bl GF_RTC_CopyTime - ldr r0, [sp, #0x0] - bl GF_RTC_GetTimeOfDayByHour - add sp, #0xc - pop {pc} - - thumb_func_start GF_RTC_GetTimeOfDayByHour -GF_RTC_GetTimeOfDayByHour: ; 0x020127A8 - push {r4, lr} - add r4, r0, #0x0 - bmi _020127B2 - cmp r4, #0x18 - blt _020127B6 -_020127B2: - bl ErrorHandling -_020127B6: - ldr r0, _020127BC ; =sTimeOfDayByHour - ldrb r0, [r0, r4] - pop {r4, pc} - .balign 4 -_020127BC: .word sTimeOfDayByHour - - thumb_func_start FUN_020127C0 -FUN_020127C0: ; 0x020127C0 - push {r4-r7, lr} - sub sp, #0x24 - add r6, r3, #0x0 - ldr r3, _0201282C ; =sMaxDate - add r4, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r2, sp, #0x14 - ldmia r3!, {r0-r1} - str r2, [sp, #0x0] - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r3, _02012830 ; =sMaxTime - add r2, sp, #0x8 - ldmia r3!, {r0-r1} - str r2, [sp, #0x4] - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - ldr r1, [sp, #0x4] - str r0, [r2, #0x0] - ldr r0, [sp, #0x0] - bl RTC_ConvertDateTimeToSecond - add r2, r1, #0x0 - add r3, r0, #0x0 - mov r1, #0x0 - ldr r0, _02012834 ; =0xBC19137F - eor r1, r2 - eor r0, r3 - orr r0, r1 - beq _02012804 - bl ErrorHandling -_02012804: - sub r0, r4, r5 - mov r12, r7 - mov r0, r12 - sbc r0, r6 - bge _02012818 - sub r0, r5, r4 - sbc r6, r7 - add sp, #0x24 - add r1, r6, #0x0 - pop {r4-r7, pc} -_02012818: - ldr r0, _02012834 ; =0xBC19137F - mov r1, #0x0 - sub r0, r0, r4 - sbc r1, r7 - add r0, r5, r0 - adc r6, r1 - add r1, r6, #0x0 - add sp, #0x24 - pop {r4-r7, pc} - nop -_0201282C: .word sMaxDate -_02012830: .word sMaxTime -_02012834: .word 0xBC19137F - - thumb_func_start ListMenuItems_ctor -ListMenuItems_ctor: ; 0x02012838 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x1 - add r0, r4, #0x0 - lsl r1, r1, #0x3 - bl AllocFromHeap - cmp r0, #0x0 - beq _0201286E - mov r2, #0x0 - cmp r5, #0x0 - bls _02012862 - add r3, r0, #0x0 - add r1, r2, #0x0 -_02012856: - str r1, [r3, #0x0] - str r1, [r3, #0x4] - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, r5 - blo _02012856 -_02012862: - mov r1, #0x0 - lsl r2, r2, #0x3 - mvn r1, r1 - str r1, [r0, r2] - add r1, r0, r2 - str r4, [r1, #0x4] -_0201286E: - pop {r3-r5, pc} - - thumb_func_start ListMenuItems_dtor -ListMenuItems_dtor: ; 0x02012870 - push {r4, lr} - add r4, r0, #0x0 - bl ListMenuItems_DestroyMenuStrings - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start ListMenuItems_AppendFromMsgData -ListMenuItems_AppendFromMsgData: ; 0x02012880 - push {r3-r7, lr} - add r6, r1, #0x0 - add r1, sp, #0x0 - add r7, r2, #0x0 - add r5, r3, #0x0 - bl ListMenuItems_NewItem - add r4, r0, #0x0 - beq _0201289E - add r0, r6, #0x0 - add r1, r7, #0x0 - bl NewString_ReadMsgData - str r0, [r4, #0x0] - str r5, [r4, #0x4] -_0201289E: - pop {r3-r7, pc} - - thumb_func_start ListMenuItems_AddItem -ListMenuItems_AddItem: ; 0x020128A0 - push {r3-r6, lr} - sub sp, #0x4 - add r6, r1, #0x0 - add r1, sp, #0x0 - add r5, r2, #0x0 - bl ListMenuItems_NewItem - add r4, r0, #0x0 - beq _020128BE - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl StringDup - str r0, [r4, #0x0] - str r5, [r4, #0x4] -_020128BE: - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start ListMenuItems_CopyItem -ListMenuItems_CopyItem: ; 0x020128C4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r1, #0x0 - add r1, sp, #0x0 - bl ListMenuItems_NewItem - cmp r0, #0x0 - beq _020128DC - ldr r1, [r4, #0x0] - str r1, [r0, #0x0] - ldr r1, [r4, #0x4] - str r1, [r0, #0x4] -_020128DC: - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start ListMenuItems_NewItem -ListMenuItems_NewItem: ; 0x020128E0 - push {r4, lr} - ldr r3, [r0, #0x0] - cmp r3, #0x0 - beq _02012900 - mov r2, #0x0 - mvn r2, r2 -_020128EC: - cmp r3, r2 - bne _020128F8 - bl ErrorHandling - mov r0, #0x0 - pop {r4, pc} -_020128F8: - add r0, #0x8 - ldr r3, [r0, #0x0] - cmp r3, #0x0 - bne _020128EC -_02012900: - mov r2, #0x0 - mvn r2, r2 - add r4, r0, #0x0 - cmp r3, r2 - beq _02012912 -_0201290A: - add r0, #0x8 - ldr r3, [r0, #0x0] - cmp r3, r2 - bne _0201290A -_02012912: - ldr r0, [r0, #0x4] - str r0, [r1, #0x0] - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ListMenuItems_DestroyMenuStrings -ListMenuItems_DestroyMenuStrings: ; 0x0201291C - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0x0 - ldr r1, [r5, #0x0] - mvn r0, r0 - cmp r1, r0 - beq _02012942 - mov r4, #0x0 - add r6, r0, #0x0 -_0201292E: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _02012942 - bl String_dtor - str r4, [r5, #0x0] - add r5, #0x8 - ldr r0, [r5, #0x0] - cmp r0, r6 - bne _0201292E -_02012942: - pop {r4-r6, pc} - - thumb_func_start FUN_02012944 -FUN_02012944: ; 0x02012944 - push {r3-r5, lr} - add r5, r1, #0x0 - mov r1, #0xc - add r4, r2, #0x0 - bl AllocFromHeap - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - strb r1, [r0, #0x4] - strb r1, [r0, #0x5] - strb r1, [r0, #0x6] - strb r1, [r0, #0x7] - strb r1, [r0, #0x8] - strb r1, [r0, #0x9] - strb r1, [r0, #0xa] - strb r1, [r0, #0xb] - mov r1, #0x1 - strb r1, [r0, #0x9] - str r5, [r0, #0x0] - str r4, [r0, #0x4] - pop {r3-r5, pc} - - thumb_func_start FUN_02012974 -FUN_02012974: ; 0x02012974 - push {r4, lr} - add r4, r0, #0x0 - bne _0201297E - bl ErrorHandling -_0201297E: - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02012988 -FUN_02012988: ; 0x02012988 - push {r4, lr} - add r4, r0, #0x0 - bne _02012992 - bl ErrorHandling -_02012992: - ldrb r0, [r4, #0x8] - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0201299C -FUN_0201299C: ; 0x0201299C - push {r4, lr} - add r4, r0, #0x0 - bne _020129A6 - bl ErrorHandling -_020129A6: - ldrb r1, [r4, #0x8] - mov r0, #0x1 - eor r0, r1 - lsl r0, r0, #0x2 - ldr r0, [r4, r0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020129B4 -FUN_020129B4: ; 0x020129B4 - cmp r0, #0x0 - beq _020129C6 - ldrb r1, [r0, #0x9] - cmp r1, #0x0 - beq _020129C6 - ldrb r2, [r0, #0x8] - mov r1, #0x1 - eor r1, r2 - strb r1, [r0, #0x8] -_020129C6: - bx lr - - thumb_func_start FUN_020129C8 -FUN_020129C8: ; 0x020129C8 - push {r3, lr} - mov r0, #0x0 - bl MI_StopDma - mov r0, #0x0 - bl MI_WaitDma - pop {r3, pc} - - thumb_func_start FUN_020129D8 -FUN_020129D8: ; 0x020129D8 - push {r4-r6, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r4, r2, #0x0 - cmp r3, #0x1 - bne _020129F2 - mov r0, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - add r3, r4, #0x0 - bl MI_HBlankDmaCopy32 - pop {r4-r6, pc} -_020129F2: - mov r0, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - add r3, r4, #0x0 - bl MI_HBlankDmaCopy16 - pop {r4-r6, pc} - - thumb_func_start FUN_02012A00 -FUN_02012A00: ; 0x02012A00 - push {r3-r5, lr} - ldr r1, _02012A2C ; =0x0000079C - add r5, r0, #0x0 - bl AllocFromHeap - ldr r2, _02012A2C ; =0x0000079C - mov r1, #0x0 - add r4, r0, #0x0 - bl memset - mov r2, #0x3 - lsl r2, r2, #0x8 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r4, r2 - bl FUN_02012944 - mov r1, #0x6 - lsl r1, r1, #0x8 - str r0, [r4, r1] - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02012A2C: .word 0x0000079C - - thumb_func_start FUN_02012A30 -FUN_02012A30: ; 0x02012A30 - push {r3-r7, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r5, #0x0 - bne _02012A42 - bl ErrorHandling -_02012A42: - ldr r0, _02012AB0 ; =0x00000604 - ldr r0, [r5, r0] - cmp r0, #0x0 - beq _02012A4E - bl ErrorHandling -_02012A4E: - ldr r0, _02012AB4 ; =0x0000078C - mov r2, #0x0 - strb r4, [r5, r0] - add r1, r0, #0x1 - strb r6, [r5, r1] - add r1, r0, #0x0 - add r1, #0xc - strh r2, [r5, r1] - add r2, sp, #0x8 - mov r1, #0x14 - ldrsh r2, [r2, r1] - add r1, r0, #0x0 - add r1, #0xe - strh r2, [r5, r1] - add r1, r0, #0x4 - ldr r2, [sp, #0x20] - add r0, #0x8 - str r2, [r5, r1] - ldr r1, [sp, #0x24] - ldr r3, [sp, #0x18] - str r1, [r5, r0] - ldr r0, _02012AB8 ; =0x0000060C - mov r1, #0xc0 - add r0, r5, r0 - add r2, r7, #0x0 - bl FUN_02012B88 - ldr r0, _02012ABC ; =FUN_02012BE4 - ldr r2, [sp, #0x28] - add r1, r5, #0x0 - bl FUN_0200CA44 - ldr r1, _02012AB0 ; =0x00000604 - mov r2, #0x3 - str r0, [r5, r1] - ldr r0, _02012AC0 ; =0x00000794 - add r1, r5, #0x0 - ldr r0, [r5, r0] - lsl r2, r2, #0x8 - bl MIi_CpuClear32 - ldr r0, _02012AC0 ; =0x00000794 - mov r2, #0x3 - lsl r2, r2, #0x8 - ldr r0, [r5, r0] - add r1, r5, r2 - bl MIi_CpuClear32 - pop {r3-r7, pc} - .balign 4 -_02012AB0: .word 0x00000604 -_02012AB4: .word 0x0000078C -_02012AB8: .word 0x0000060C -_02012ABC: .word FUN_02012BE4 -_02012AC0: .word 0x00000794 - - thumb_func_start FUN_02012AC4 -FUN_02012AC4: ; 0x02012AC4 - push {r4, lr} - add r4, r0, #0x0 - bne _02012ACE - bl ErrorHandling -_02012ACE: - ldr r0, _02012AF8 ; =0x00000604 - ldr r0, [r4, r0] - cmp r0, #0x0 - beq _02012AF4 - bl FUN_0200CAB4 - ldr r0, _02012AF8 ; =0x00000604 - mov r1, #0x0 - str r1, [r4, r0] - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_02012988 - ldr r1, _02012AFC ; =0x00000794 - mov r2, #0x3 - ldr r1, [r4, r1] - lsl r2, r2, #0x8 - bl memset -_02012AF4: - pop {r4, pc} - nop -_02012AF8: .word 0x00000604 -_02012AFC: .word 0x00000794 - - thumb_func_start FUN_02012B00 -FUN_02012B00: ; 0x02012B00 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02012AC4 - bl FUN_02012C90 - mov r0, #0x6 - lsl r0, r0, #0x8 - ldr r0, [r4, r0] - bl FUN_02012974 - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02012B20 -FUN_02012B20: ; 0x02012B20 - mov r1, #0x6 - lsl r1, r1, #0x8 - ldr r3, _02012B2C ; =FUN_02012988 - ldr r0, [r0, r1] - bx r3 - nop -_02012B2C: .word FUN_02012988 - - thumb_func_start FUN_02012B30 -FUN_02012B30: ; 0x02012B30 - push {r4, lr} - add r4, r0, #0x0 - beq _02012B5E - ldr r0, _02012B60 ; =0x00000604 - ldr r1, [r4, r0] - cmp r1, #0x0 - beq _02012B5E - sub r0, r0, #0x4 - ldr r0, [r4, r0] - bl FUN_020129B4 - mov r0, #0x6 - lsl r0, r0, #0x8 - ldr r0, [r4, r0] - bl FUN_02012988 - add r1, r0, #0x0 - ldr r0, _02012B64 ; =0x00000794 - mov r2, #0x3 - ldr r0, [r4, r0] - lsl r2, r2, #0x8 - bl MIi_CpuClear32 -_02012B5E: - pop {r4, pc} - .balign 4 -_02012B60: .word 0x00000604 -_02012B64: .word 0x00000794 - - thumb_func_start FUN_02012B68 -FUN_02012B68: ; 0x02012B68 - push {r4, lr} - add r4, r0, #0x0 - beq _02012B80 - ldr r0, _02012B84 ; =0x00000604 - ldr r0, [r4, r0] - cmp r0, #0x0 - beq _02012B80 - bl FUN_02012C90 - add r0, r4, #0x0 - bl FUN_02012C98 -_02012B80: - pop {r4, pc} - nop -_02012B84: .word 0x00000604 - - thumb_func_start FUN_02012B88 -FUN_02012B88: ; 0x02012B88 - push {r4-r7, lr} - sub sp, #0xc - mov r4, #0x0 - add r7, r1, #0x0 - add r5, r0, #0x0 - add r6, r4, #0x0 - str r2, [sp, #0x0] - cmp r7, #0x0 - bls _02012BD6 - asr r0, r3, #0x1f - str r3, [sp, #0x4] - str r0, [sp, #0x8] -_02012BA0: - asr r0, r4, #0x4 - lsl r1, r0, #0x2 - ldr r0, _02012BDC ; =UNK_020FFA38 - ldr r2, [sp, #0x4] - ldrsh r0, [r0, r1] - ldr r3, [sp, #0x8] - asr r1, r0, #0x1f - bl _ll_mul - mov r2, #0x2 - lsl r2, r2, #0xa - add r0, r0, r2 - ldr r2, _02012BE0 ; =0x00000000 - adc r1, r2 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - asr r0, r0, #0xc - strh r0, [r5, #0x0] - ldr r0, [sp, #0x0] - add r6, r6, #0x1 - add r0, r4, r0 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r5, r5, #0x2 - cmp r6, r7 - blo _02012BA0 -_02012BD6: - add sp, #0xc - pop {r4-r7, pc} - nop -_02012BDC: .word UNK_020FFA38 -_02012BE0: .word 0x00000000 - - thumb_func_start FUN_02012BE4 -FUN_02012BE4: ; 0x02012BE4 - push {r3-r7, lr} - mov r0, #0x6 - add r6, r1, #0x0 - lsl r0, r0, #0x8 - ldr r0, [r6, r0] - bl FUN_02012988 - add r5, r0, #0x0 - ldr r0, _02012C80 ; =0x00000798 - mov r1, #0x64 - ldrsh r0, [r6, r0] - bl _s32_div_f - lsl r0, r0, #0x18 - lsr r3, r0, #0x18 - ldr r0, _02012C84 ; =0x0000078C - ldrb r4, [r6, r0] - add r0, r0, #0x1 - ldrb r0, [r6, r0] - cmp r4, r0 - bgt _02012C4C - lsl r0, r4, #0x2 - add r5, r5, r0 -_02012C12: - ldr r2, [r5, #0x0] - lsl r0, r2, #0x10 - asr r7, r0, #0x10 - lsl r0, r3, #0x1 - add r1, r6, r0 - ldr r0, _02012C88 ; =0x0000060C - ldrsh r0, [r1, r0] - add r0, r7, r0 - lsl r0, r0, #0x10 - asr r1, r0, #0x10 - lsr r0, r2, #0x10 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r1, r1, #0x10 - lsl r0, r0, #0x10 - lsr r1, r1, #0x10 - orr r0, r1 - stmia r5!, {r0} - add r0, r3, #0x1 - mov r1, #0xc0 - bl _s32_div_f - lsl r0, r1, #0x18 - lsr r3, r0, #0x18 - ldr r0, _02012C8C ; =0x0000078D - add r4, r4, #0x1 - ldrb r0, [r6, r0] - cmp r4, r0 - ble _02012C12 -_02012C4C: - ldr r1, _02012C80 ; =0x00000798 - add r0, r1, #0x2 - ldrsh r2, [r6, r1] - ldrsh r0, [r6, r0] - add r4, r6, r1 - add r0, r2, r0 - strh r0, [r4, #0x0] - ldrsh r0, [r6, r1] - mov r1, #0x4b - lsl r1, r1, #0x8 - cmp r0, r1 - blt _02012C70 - mov r0, #0x0 - ldrsh r0, [r4, r0] - bl _s32_div_f - strh r1, [r4, #0x0] - pop {r3-r7, pc} -_02012C70: - cmp r0, #0x0 - bge _02012C7C - mov r0, #0x0 - ldrsh r0, [r4, r0] - add r0, r0, r1 - strh r0, [r4, #0x0] -_02012C7C: - pop {r3-r7, pc} - nop -_02012C80: .word 0x00000798 -_02012C84: .word 0x0000078C -_02012C88: .word 0x0000060C -_02012C8C: .word 0x0000078D - - thumb_func_start FUN_02012C90 -FUN_02012C90: ; 0x02012C90 - ldr r3, _02012C94 ; =FUN_020129C8 - bx r3 - .balign 4 -_02012C94: .word FUN_020129C8 - - thumb_func_start FUN_02012C98 -FUN_02012C98: ; 0x02012C98 - push {r3-r5, lr} - add r4, r0, #0x0 - bne _02012CA2 - bl ErrorHandling -_02012CA2: - mov r0, #0x6 - lsl r0, r0, #0x8 - ldr r0, [r4, r0] - bl FUN_0201299C - mov r1, #0x3 - lsl r1, r1, #0x8 - add r5, r0, #0x0 - bl DC_FlushRange - mov r1, #0x79 - lsl r1, r1, #0x4 - ldr r1, [r4, r1] - add r0, r5, #0x0 - mov r2, #0x4 - mov r3, #0x1 - bl FUN_020129D8 - pop {r3-r5, pc} diff --git a/arm9/asm/unk_02012004.s b/arm9/asm/unk_02012004.s new file mode 100644 index 000000000..042302c64 --- /dev/null +++ b/arm9/asm/unk_02012004.s @@ -0,0 +1,787 @@ + .include "asm/macros.inc" + .include "global.inc" + + .rodata + + .global UNK_020ED3B0 +UNK_020ED3B0: ; 0x020ED3B0 + .word 0x00000147 + .word 0x000001EF + + .global UNK_020ED3B8 +UNK_020ED3B8: ; 0x020ED3B8 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + + .global UNK_020ED3C8 +UNK_020ED3C8: ; 0x020ED3C8 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + + .global UNK_020ED3D8 +UNK_020ED3D8: ; 0x020ED3D8 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .global UNK_020ED438 +UNK_020ED438: ; 0x020ED438 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + .text + + thumb_func_start FUN_02012004 +FUN_02012004: ; 0x02012004 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r6, [sp, #0x20] + str r1, [sp, #0x4] + add r5, r2, #0x0 + add r4, r3, #0x0 + str r0, [sp, #0x24] + mov r7, #0x0 +_02012018: + ldr r1, [r4, #0x0] + ldr r0, [sp, #0x4] + ldr r2, [r5, #0x0] + add r0, r0, r1 + ldr r1, [sp, #0x0] + add r1, r1, r2 + add r2, r6, #0x0 + bl memcpy + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x24] + add r7, r7, #0x1 + add r0, r1, r0 + str r0, [r5, #0x0] + ldr r0, [r4, #0x0] + add r0, r0, r6 + str r0, [r4, #0x0] + cmp r7, #0x8 + blt _02012018 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02012044 +FUN_02012044: ; 0x02012044 + push {r4-r6, lr} + add r5, r3, #0x0 + bl AllocAndReadWholeNarcMemberByIdPair + add r4, r0, #0x0 + bne _02012054 + bl ErrorHandling +_02012054: + add r0, r4, #0x0 + add r1, r5, #0x0 + bl FUN_020B0088 + add r6, r0, #0x0 + cmp r5, #0x0 + bne _02012066 + bl ErrorHandling +_02012066: + cmp r6, #0x0 + bne _0201206E + bl ErrorHandling +_0201206E: + add r0, r4, #0x0 + bl FreeToHeap + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02012078 +FUN_02012078: ; 0x02012078 + push {r4-r7, lr} + sub sp, #0x2c + ldr r4, [sp, #0x40] + str r0, [sp, #0x8] + add r6, r0, r2 + ldrh r0, [r4, #0x2] + str r1, [sp, #0xc] + add r5, r3, #0x0 + cmp r0, r6 + bge _02012090 + bl ErrorHandling +_02012090: + ldr r0, [sp, #0xc] + ldrh r1, [r4, #0x0] + add r0, r0, r5 + str r0, [sp, #0x14] + cmp r1, r0 + bge _020120A0 + bl ErrorHandling +_020120A0: + ldr r0, [r4, #0x14] + str r0, [sp, #0x20] + ldr r0, [sp, #0x44] + str r0, [sp, #0x1c] + ldrh r0, [r4, #0x2] + lsl r7, r0, #0x2 + ldr r0, [sp, #0xc] + add r1, r0, #0x0 + mul r1, r7 + ldr r0, [sp, #0x8] + str r1, [sp, #0x18] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x18] + str r1, [sp, #0x10] + add r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x0 + str r0, [sp, #0x24] + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x14] + cmp r1, r0 + bge _0201210A +_020120CC: + ldr r4, [sp, #0x8] + add r0, r4, #0x0 + cmp r0, r6 + bge _020120F8 + ldr r0, [sp, #0x18] + lsl r1, r0, #0x3 + ldr r0, [sp, #0x10] + add r5, r0, r1 +_020120DC: + str r5, [sp, #0x28] + mov r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x1c] + add r2, sp, #0x28 + add r3, sp, #0x24 + str r7, [sp, #0x4] + bl FUN_02012004 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _020120DC +_020120F8: + ldr r0, [sp, #0x18] + add r0, r0, r7 + str r0, [sp, #0x18] + ldr r0, [sp, #0xc] + add r1, r0, #0x1 + ldr r0, [sp, #0x14] + str r1, [sp, #0xc] + cmp r1, r0 + blt _020120CC +_0201210A: + add sp, #0x2c + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02012110 +FUN_02012110: ; 0x02012110 + push {r4-r5} + sub sp, #0x8 + ldr r2, _02012148 ; =UNK_020ED3B0 + add r1, sp, #0x0 + ldr r3, [r2, #0x0] + ldr r2, [r2, #0x4] + str r3, [sp, #0x0] + str r2, [sp, #0x4] + ldr r2, _0201214C ; =0x000001EF + mov r5, #0x0 + add r3, r2, #0x0 +_02012126: + ldr r4, [r1, #0x0] + cmp r4, r3 + beq _02012140 + cmp r4, r0 + bne _02012138 + add sp, #0x8 + mov r0, #0x1 + pop {r4-r5} + bx lr +_02012138: + add r5, r5, #0x1 + add r1, r1, #0x4 + cmp r5, r2 + blt _02012126 +_02012140: + mov r0, #0x0 + add sp, #0x8 + pop {r4-r5} + bx lr + .balign 4 +_02012148: .word UNK_020ED3B0 +_0201214C: .word 0x000001EF + + thumb_func_start FUN_02012150 +FUN_02012150: ; 0x02012150 + push {r3-r4, lr} + sub sp, #0xc + add r4, r3, #0x0 + mov r3, #0x0 + str r3, [sp, #0x8] + add r3, sp, #0x8 + bl FUN_02012044 + ldr r0, [sp, #0x8] + ldr r0, [r0, #0x14] + bl FUN_02008A74 + ldr r0, [sp, #0x34] + bl FUN_02012110 + ldr r1, [sp, #0x30] + cmp r1, #0x2 + bne _02012184 + cmp r0, #0x1 + bne _02012184 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x28] + ldr r0, [r0, #0x14] + ldr r2, [sp, #0x2c] + bl FUN_02008904 +_02012184: + ldr r0, [sp, #0x8] + ldr r1, [sp, #0x18] + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x1c] + str r0, [sp, #0x4] + ldr r3, [sp, #0x20] + add r0, r4, #0x0 + bl FUN_02012078 + add sp, #0xc + pop {r3-r4, pc} + + thumb_func_start FUN_0201219C +FUN_0201219C: ; 0x0201219C + push {r4-r7, lr} + sub sp, #0x24 + add r7, r1, #0x0 + add r5, r2, #0x0 + ldr r2, [sp, #0x3c] + ldr r1, [sp, #0x40] + add r6, r0, #0x0 + mul r1, r2 + add r0, r5, #0x0 + lsl r1, r1, #0x5 + str r3, [sp, #0x20] + bl AllocFromHeap + add r4, r0, #0x0 + ldr r0, [sp, #0x38] + ldr r3, [sp, #0x20] + str r0, [sp, #0x0] + ldr r0, [sp, #0x3c] + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x40] + add r2, r5, #0x0 + str r0, [sp, #0x8] + ldr r0, [sp, #0x44] + str r4, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x48] + str r0, [sp, #0x14] + ldr r0, [sp, #0x4c] + str r0, [sp, #0x18] + ldr r0, [sp, #0x50] + str r0, [sp, #0x1c] + add r0, r6, #0x0 + bl FUN_02012150 + add r0, r4, #0x0 + add sp, #0x24 + pop {r4-r7, pc} + + thumb_func_start FUN_020121E8 +FUN_020121E8: ; 0x020121E8 + push {r3-r7, lr} + sub sp, #0x30 + str r3, [sp, #0x8] + ldr r3, [sp, #0x48] + str r3, [sp, #0x48] + mov r3, #0x0 + str r3, [sp, #0x2c] + bl AllocAndReadWholeNarcMemberByIdPair + str r0, [sp, #0x20] + cmp r0, #0x0 + bne _02012204 + bl ErrorHandling +_02012204: + ldr r0, [sp, #0x20] + add r1, sp, #0x2c + bl FUN_020B0088 + cmp r0, #0x0 + bne _02012214 + bl ErrorHandling +_02012214: + ldr r1, [sp, #0x4c] + ldr r0, [sp, #0x8] + add r6, r0, r1 + ldr r0, [sp, #0x2c] + ldrh r0, [r0, #0x2] + cmp r0, r6 + bge _02012226 + bl ErrorHandling +_02012226: + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x48] + add r0, r0, r1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + ldrh r1, [r0, #0x0] + ldr r0, [sp, #0x10] + cmp r1, r0 + bge _0201223C + bl ErrorHandling +_0201223C: + ldr r0, [sp, #0x2c] + ldr r0, [r0, #0x14] + str r0, [sp, #0x1c] + bl FUN_02008A74 + ldr r0, [sp, #0x54] + str r0, [sp, #0x18] + ldr r0, [sp, #0x2c] + ldrh r0, [r0, #0x2] + lsl r7, r0, #0x2 + ldr r0, [sp, #0x48] + add r1, r0, #0x0 + mul r1, r7 + ldr r0, [sp, #0x8] + str r1, [sp, #0x14] + lsl r1, r0, #0x2 + ldr r0, [sp, #0x14] + str r1, [sp, #0xc] + add r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x0 + str r0, [sp, #0x24] + ldr r1, [sp, #0x48] + ldr r0, [sp, #0x10] + cmp r1, r0 + bge _020122AE +_02012270: + ldr r4, [sp, #0x8] + add r0, r4, #0x0 + cmp r0, r6 + bge _0201229C + ldr r0, [sp, #0x14] + lsl r1, r0, #0x3 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_02012280: + str r5, [sp, #0x28] + mov r0, #0x4 + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r2, sp, #0x28 + add r3, sp, #0x24 + str r7, [sp, #0x4] + bl FUN_02012004 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, r6 + blt _02012280 +_0201229C: + ldr r0, [sp, #0x14] + add r0, r0, r7 + str r0, [sp, #0x14] + ldr r0, [sp, #0x48] + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + str r1, [sp, #0x48] + cmp r1, r0 + blt _02012270 +_020122AE: + ldr r0, [sp, #0x20] + bl FreeToHeap + add sp, #0x30 + pop {r3-r7, pc} + + thumb_func_start FUN_020122B8 +FUN_020122B8: ; 0x020122B8 + push {r4-r7, lr} + sub sp, #0x14 + add r7, r1, #0x0 + add r5, r2, #0x0 + ldr r2, [sp, #0x2c] + ldr r1, [sp, #0x30] + add r6, r0, #0x0 + mul r1, r2 + add r0, r5, #0x0 + lsl r1, r1, #0x5 + str r3, [sp, #0x10] + bl AllocFromHeap + add r4, r0, #0x0 + ldr r0, [sp, #0x28] + ldr r3, [sp, #0x10] + str r0, [sp, #0x0] + ldr r0, [sp, #0x2c] + add r1, r7, #0x0 + str r0, [sp, #0x4] + ldr r0, [sp, #0x30] + add r2, r5, #0x0 + str r0, [sp, #0x8] + add r0, r6, #0x0 + str r4, [sp, #0xc] + bl FUN_020121E8 + add r0, r4, #0x0 + add sp, #0x14 + pop {r4-r7, pc} + + thumb_func_start FUN_020122F4 +FUN_020122F4: ; 0x020122F4 + push {r3-r7, lr} + sub sp, #0x20 + str r0, [sp, #0x0] + ldr r0, [sp, #0x44] + ldr r1, [sp, #0x38] + str r0, [sp, #0x18] + ldr r0, [sp, #0x48] + str r2, [sp, #0x4] + str r0, [sp, #0x14] + add r0, r2, #0x0 + add r7, r0, r1 + ldr r1, [sp, #0x3c] + add r0, r3, #0x0 + add r0, r0, r1 + add r1, r3, #0x0 + str r3, [sp, #0x8] + ldr r5, [sp, #0x40] + str r0, [sp, #0x10] + cmp r1, r0 + bge _0201236C + add r0, r3, #0x0 + lsl r0, r0, #0x5 + str r0, [sp, #0xc] + add r0, r2, #0x0 + lsl r0, r0, #0x5 + str r0, [sp, #0x1c] +_02012328: + ldr r6, [sp, #0x4] + add r0, r6, #0x0 + cmp r0, r7 + bge _0201235A + ldr r1, [sp, #0x0] + ldr r0, [sp, #0xc] + add r2, r1, #0x0 + mul r2, r0 + ldr r0, [sp, #0x1c] + add r4, r0, r2 +_0201233C: + ldr r1, [r5, #0x0] + ldr r0, [sp, #0x14] + mov r2, #0x20 + add r0, r0, r1 + ldr r1, [sp, #0x18] + add r1, r1, r4 + bl memcpy + ldr r0, [r5, #0x0] + add r6, r6, #0x1 + add r0, #0x20 + str r0, [r5, #0x0] + add r4, #0x20 + cmp r6, r7 + blt _0201233C +_0201235A: + ldr r0, [sp, #0xc] + add r0, #0x20 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r1, r0, #0x1 + ldr r0, [sp, #0x10] + str r1, [sp, #0x8] + cmp r1, r0 + blt _02012328 +_0201236C: + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start FUN_02012370 +FUN_02012370: ; 0x02012370 + push {r3-r4, lr} + sub sp, #0x14 + add r4, r2, #0x0 + ldr r2, [r4, #0x8] + str r2, [sp, #0x0] + ldr r2, [r4, #0xc] + str r2, [sp, #0x4] + ldr r2, [sp, #0x20] + str r3, [sp, #0x8] + str r2, [sp, #0xc] + ldr r2, [sp, #0x24] + str r2, [sp, #0x10] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x4] + bl FUN_020122F4 + add sp, #0x14 + pop {r3-r4, pc} + + thumb_func_start FUN_02012394 +FUN_02012394: ; 0x02012394 + push {r4-r7, lr} + sub sp, #0x7c + str r0, [sp, #0xc] + ldr r0, [sp, #0x9c] + mov r12, r3 + add r5, r2, #0x0 + ldr r6, [sp, #0x94] + ldr r7, [sp, #0x98] + ldr r3, _020123FC ; =UNK_020ED3D8 + str r1, [sp, #0x10] + str r0, [sp, #0x9c] + add r2, sp, #0x1c + mov r4, #0xc +_020123AE: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r4, r4, #0x1 + bne _020123AE + mov r0, #0x0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x90] + ldr r1, [sp, #0x10] + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0xc] + add r2, r5, #0x0 + mov r3, r12 + str r7, [sp, #0x8] + bl FUN_020122B8 + str r0, [sp, #0x14] + mov r4, #0x0 + add r5, sp, #0x1c +_020123D4: + ldr r0, [sp, #0x14] + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x9c] + add r2, r5, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r3, sp, #0x18 + bl FUN_02012370 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0x6 + blt _020123D4 + ldr r0, [sp, #0x14] + bl FreeToHeap + add sp, #0x7c + pop {r4-r7, pc} + nop +_020123FC: .word UNK_020ED3D8 + + thumb_func_start FUN_02012400 +FUN_02012400: ; 0x02012400 + push {r4, lr} + sub sp, #0x10 + ldr r4, [r3, #0x4] + str r4, [sp, #0x0] + ldr r4, [r3, #0x8] + str r4, [sp, #0x4] + ldr r4, [r3, #0xc] + str r4, [sp, #0x8] + ldr r4, [sp, #0x18] + str r4, [sp, #0xc] + ldr r3, [r3, #0x0] + bl FUN_02012394 + add sp, #0x10 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02012420 +FUN_02012420: ; 0x02012420 + push {r4-r7, lr} + sub sp, #0x14 + ldr r4, _02012448 ; =UNK_020ED3B8 + add r5, r3, #0x0 + add r3, sp, #0x4 + add r7, r0, #0x0 + mov r12, r1 + add r6, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + add r0, r7, #0x0 + mov r1, r12 + add r3, r6, #0x0 + str r5, [sp, #0x0] + bl FUN_02012400 + add sp, #0x14 + pop {r4-r7, pc} + .balign 4 +_02012448: .word UNK_020ED3B8 + + thumb_func_start FUN_0201244C +FUN_0201244C: ; 0x0201244C + push {r3-r7, lr} + add r6, r1, #0x0 + mov r1, #0x32 + add r7, r2, #0x0 + add r5, r0, #0x0 + add r0, r7, #0x0 + lsl r1, r1, #0x6 + bl AllocFromHeap + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + add r3, r4, #0x0 + bl FUN_02012420 + add r0, r4, #0x0 + pop {r3-r7, pc} + + thumb_func_start FUN_02012470 +FUN_02012470: ; 0x02012470 + push {r3-r7, lr} + add r7, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + add r0, r7, #0x0 + mov r1, #0x20 + bl AllocFromHeap + add r4, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + bl AllocAndReadWholeNarcMemberByIdPair + add r1, sp, #0x0 + add r5, r0, #0x0 + bl FUN_020B0138 + cmp r0, #0x1 + beq _0201249C + bl ErrorHandling +_0201249C: + ldr r0, [sp, #0x0] + add r1, r4, #0x0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + bl MIi_CpuCopy16 + add r0, r5, #0x0 + bl FreeToHeap + add r0, r4, #0x0 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020124B4 +FUN_020124B4: ; 0x020124B4 + push {r4-r7, lr} + sub sp, #0x8c + str r0, [sp, #0x1c] + ldr r0, [sp, #0xac] + mov r12, r3 + add r5, r2, #0x0 + ldr r6, [sp, #0xa4] + ldr r7, [sp, #0xa8] + ldr r3, _0201252C ; =UNK_020ED438 + str r1, [sp, #0x20] + str r0, [sp, #0xac] + add r2, sp, #0x2c + mov r4, #0xc +_020124CE: + ldmia r3!, {r0-r1} + stmia r2!, {r0-r1} + sub r4, r4, #0x1 + bne _020124CE + mov r0, #0x0 + str r0, [sp, #0x28] + ldr r0, [sp, #0xa0] + ldr r1, [sp, #0x20] + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r0, [sp, #0xb0] + str r7, [sp, #0x8] + str r0, [sp, #0xc] + ldr r0, [sp, #0xb4] + add r2, r5, #0x0 + str r0, [sp, #0x10] + ldr r0, [sp, #0xb8] + mov r3, r12 + str r0, [sp, #0x14] + ldr r0, [sp, #0xbc] + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + bl FUN_0201219C + str r0, [sp, #0x24] + mov r4, #0x0 + add r5, sp, #0x2c +_02012504: + ldr r0, [sp, #0x24] + add r1, r7, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0xac] + add r2, r5, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + add r3, sp, #0x28 + bl FUN_02012370 + add r4, r4, #0x1 + add r5, #0x10 + cmp r4, #0x6 + blt _02012504 + ldr r0, [sp, #0x24] + bl FreeToHeap + add sp, #0x8c + pop {r4-r7, pc} + nop +_0201252C: .word UNK_020ED438 + + thumb_func_start FUN_02012530 +FUN_02012530: ; 0x02012530 + push {r4, lr} + sub sp, #0x20 + ldr r4, [r3, #0x4] + str r4, [sp, #0x0] + ldr r4, [r3, #0x8] + str r4, [sp, #0x4] + ldr r4, [r3, #0xc] + str r4, [sp, #0x8] + ldr r4, [sp, #0x28] + str r4, [sp, #0xc] + ldr r4, [sp, #0x2c] + str r4, [sp, #0x10] + ldr r4, [sp, #0x30] + str r4, [sp, #0x14] + ldr r4, [sp, #0x34] + str r4, [sp, #0x18] + ldr r4, [sp, #0x38] + str r4, [sp, #0x1c] + ldr r3, [r3, #0x0] + bl FUN_020124B4 + add sp, #0x20 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02012560 +FUN_02012560: ; 0x02012560 + push {r4-r7, lr} + sub sp, #0x24 + ldr r4, _02012598 ; =UNK_020ED3C8 + add r5, r3, #0x0 + add r3, sp, #0x14 + add r7, r0, #0x0 + mov r12, r1 + add r6, r3, #0x0 + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldmia r4!, {r0-r1} + stmia r3!, {r0-r1} + ldr r0, [sp, #0x38] + str r5, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x3c] + mov r1, r12 + str r0, [sp, #0x8] + ldr r0, [sp, #0x40] + add r3, r6, #0x0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x44] + str r0, [sp, #0x10] + add r0, r7, #0x0 + bl FUN_02012530 + add sp, #0x24 + pop {r4-r7, pc} + .balign 4 +_02012598: .word UNK_020ED3C8 diff --git a/arm9/asm/unk_02012944.s b/arm9/asm/unk_02012944.s new file mode 100644 index 000000000..03ccc1ea6 --- /dev/null +++ b/arm9/asm/unk_02012944.s @@ -0,0 +1,471 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02012944 +FUN_02012944: ; 0x02012944 + push {r3-r5, lr} + add r5, r1, #0x0 + mov r1, #0xc + add r4, r2, #0x0 + bl AllocFromHeap + mov r1, #0x0 + strb r1, [r0, #0x0] + strb r1, [r0, #0x1] + strb r1, [r0, #0x2] + strb r1, [r0, #0x3] + strb r1, [r0, #0x4] + strb r1, [r0, #0x5] + strb r1, [r0, #0x6] + strb r1, [r0, #0x7] + strb r1, [r0, #0x8] + strb r1, [r0, #0x9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + mov r1, #0x1 + strb r1, [r0, #0x9] + str r5, [r0, #0x0] + str r4, [r0, #0x4] + pop {r3-r5, pc} + + thumb_func_start FUN_02012974 +FUN_02012974: ; 0x02012974 + push {r4, lr} + add r4, r0, #0x0 + bne _0201297E + bl ErrorHandling +_0201297E: + add r0, r4, #0x0 + bl FreeToHeap + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02012988 +FUN_02012988: ; 0x02012988 + push {r4, lr} + add r4, r0, #0x0 + bne _02012992 + bl ErrorHandling +_02012992: + ldrb r0, [r4, #0x8] + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0201299C +FUN_0201299C: ; 0x0201299C + push {r4, lr} + add r4, r0, #0x0 + bne _020129A6 + bl ErrorHandling +_020129A6: + ldrb r1, [r4, #0x8] + mov r0, #0x1 + eor r0, r1 + lsl r0, r0, #0x2 + ldr r0, [r4, r0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020129B4 +FUN_020129B4: ; 0x020129B4 + cmp r0, #0x0 + beq _020129C6 + ldrb r1, [r0, #0x9] + cmp r1, #0x0 + beq _020129C6 + ldrb r2, [r0, #0x8] + mov r1, #0x1 + eor r1, r2 + strb r1, [r0, #0x8] +_020129C6: + bx lr + + thumb_func_start FUN_020129C8 +FUN_020129C8: ; 0x020129C8 + push {r3, lr} + mov r0, #0x0 + bl MI_StopDma + mov r0, #0x0 + bl MI_WaitDma + pop {r3, pc} + + thumb_func_start FUN_020129D8 +FUN_020129D8: ; 0x020129D8 + push {r4-r6, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + cmp r3, #0x1 + bne _020129F2 + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r3, r4, #0x0 + bl MI_HBlankDmaCopy32 + pop {r4-r6, pc} +_020129F2: + mov r0, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + add r3, r4, #0x0 + bl MI_HBlankDmaCopy16 + pop {r4-r6, pc} + + thumb_func_start FUN_02012A00 +FUN_02012A00: ; 0x02012A00 + push {r3-r5, lr} + ldr r1, _02012A2C ; =0x0000079C + add r5, r0, #0x0 + bl AllocFromHeap + ldr r2, _02012A2C ; =0x0000079C + mov r1, #0x0 + add r4, r0, #0x0 + bl memset + mov r2, #0x3 + lsl r2, r2, #0x8 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r4, r2 + bl FUN_02012944 + mov r1, #0x6 + lsl r1, r1, #0x8 + str r0, [r4, r1] + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02012A2C: .word 0x0000079C + + thumb_func_start FUN_02012A30 +FUN_02012A30: ; 0x02012A30 + push {r3-r7, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + add r6, r2, #0x0 + add r7, r3, #0x0 + cmp r5, #0x0 + bne _02012A42 + bl ErrorHandling +_02012A42: + ldr r0, _02012AB0 ; =0x00000604 + ldr r0, [r5, r0] + cmp r0, #0x0 + beq _02012A4E + bl ErrorHandling +_02012A4E: + ldr r0, _02012AB4 ; =0x0000078C + mov r2, #0x0 + strb r4, [r5, r0] + add r1, r0, #0x1 + strb r6, [r5, r1] + add r1, r0, #0x0 + add r1, #0xc + strh r2, [r5, r1] + add r2, sp, #0x8 + mov r1, #0x14 + ldrsh r2, [r2, r1] + add r1, r0, #0x0 + add r1, #0xe + strh r2, [r5, r1] + add r1, r0, #0x4 + ldr r2, [sp, #0x20] + add r0, #0x8 + str r2, [r5, r1] + ldr r1, [sp, #0x24] + ldr r3, [sp, #0x18] + str r1, [r5, r0] + ldr r0, _02012AB8 ; =0x0000060C + mov r1, #0xc0 + add r0, r5, r0 + add r2, r7, #0x0 + bl FUN_02012B88 + ldr r0, _02012ABC ; =FUN_02012BE4 + ldr r2, [sp, #0x28] + add r1, r5, #0x0 + bl FUN_0200CA44 + ldr r1, _02012AB0 ; =0x00000604 + mov r2, #0x3 + str r0, [r5, r1] + ldr r0, _02012AC0 ; =0x00000794 + add r1, r5, #0x0 + ldr r0, [r5, r0] + lsl r2, r2, #0x8 + bl MIi_CpuClear32 + ldr r0, _02012AC0 ; =0x00000794 + mov r2, #0x3 + lsl r2, r2, #0x8 + ldr r0, [r5, r0] + add r1, r5, r2 + bl MIi_CpuClear32 + pop {r3-r7, pc} + .balign 4 +_02012AB0: .word 0x00000604 +_02012AB4: .word 0x0000078C +_02012AB8: .word 0x0000060C +_02012ABC: .word FUN_02012BE4 +_02012AC0: .word 0x00000794 + + thumb_func_start FUN_02012AC4 +FUN_02012AC4: ; 0x02012AC4 + push {r4, lr} + add r4, r0, #0x0 + bne _02012ACE + bl ErrorHandling +_02012ACE: + ldr r0, _02012AF8 ; =0x00000604 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02012AF4 + bl FUN_0200CAB4 + ldr r0, _02012AF8 ; =0x00000604 + mov r1, #0x0 + str r1, [r4, r0] + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_02012988 + ldr r1, _02012AFC ; =0x00000794 + mov r2, #0x3 + ldr r1, [r4, r1] + lsl r2, r2, #0x8 + bl memset +_02012AF4: + pop {r4, pc} + nop +_02012AF8: .word 0x00000604 +_02012AFC: .word 0x00000794 + + thumb_func_start FUN_02012B00 +FUN_02012B00: ; 0x02012B00 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02012AC4 + bl FUN_02012C90 + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl FUN_02012974 + add r0, r4, #0x0 + bl FreeToHeap + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02012B20 +FUN_02012B20: ; 0x02012B20 + mov r1, #0x6 + lsl r1, r1, #0x8 + ldr r3, _02012B2C ; =FUN_02012988 + ldr r0, [r0, r1] + bx r3 + nop +_02012B2C: .word FUN_02012988 + + thumb_func_start FUN_02012B30 +FUN_02012B30: ; 0x02012B30 + push {r4, lr} + add r4, r0, #0x0 + beq _02012B5E + ldr r0, _02012B60 ; =0x00000604 + ldr r1, [r4, r0] + cmp r1, #0x0 + beq _02012B5E + sub r0, r0, #0x4 + ldr r0, [r4, r0] + bl FUN_020129B4 + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl FUN_02012988 + add r1, r0, #0x0 + ldr r0, _02012B64 ; =0x00000794 + mov r2, #0x3 + ldr r0, [r4, r0] + lsl r2, r2, #0x8 + bl MIi_CpuClear32 +_02012B5E: + pop {r4, pc} + .balign 4 +_02012B60: .word 0x00000604 +_02012B64: .word 0x00000794 + + thumb_func_start FUN_02012B68 +FUN_02012B68: ; 0x02012B68 + push {r4, lr} + add r4, r0, #0x0 + beq _02012B80 + ldr r0, _02012B84 ; =0x00000604 + ldr r0, [r4, r0] + cmp r0, #0x0 + beq _02012B80 + bl FUN_02012C90 + add r0, r4, #0x0 + bl FUN_02012C98 +_02012B80: + pop {r4, pc} + nop +_02012B84: .word 0x00000604 + + thumb_func_start FUN_02012B88 +FUN_02012B88: ; 0x02012B88 + push {r4-r7, lr} + sub sp, #0xc + mov r4, #0x0 + add r7, r1, #0x0 + add r5, r0, #0x0 + add r6, r4, #0x0 + str r2, [sp, #0x0] + cmp r7, #0x0 + bls _02012BD6 + asr r0, r3, #0x1f + str r3, [sp, #0x4] + str r0, [sp, #0x8] +_02012BA0: + asr r0, r4, #0x4 + lsl r1, r0, #0x2 + ldr r0, _02012BDC ; =UNK_020FFA38 + ldr r2, [sp, #0x4] + ldrsh r0, [r0, r1] + ldr r3, [sp, #0x8] + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #0x2 + lsl r2, r2, #0xa + add r0, r0, r2 + ldr r2, _02012BE0 ; =0x00000000 + adc r1, r2 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + asr r0, r0, #0xc + strh r0, [r5, #0x0] + ldr r0, [sp, #0x0] + add r6, r6, #0x1 + add r0, r4, r0 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r5, r5, #0x2 + cmp r6, r7 + blo _02012BA0 +_02012BD6: + add sp, #0xc + pop {r4-r7, pc} + nop +_02012BDC: .word UNK_020FFA38 +_02012BE0: .word 0x00000000 + + thumb_func_start FUN_02012BE4 +FUN_02012BE4: ; 0x02012BE4 + push {r3-r7, lr} + mov r0, #0x6 + add r6, r1, #0x0 + lsl r0, r0, #0x8 + ldr r0, [r6, r0] + bl FUN_02012988 + add r5, r0, #0x0 + ldr r0, _02012C80 ; =0x00000798 + mov r1, #0x64 + ldrsh r0, [r6, r0] + bl _s32_div_f + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + ldr r0, _02012C84 ; =0x0000078C + ldrb r4, [r6, r0] + add r0, r0, #0x1 + ldrb r0, [r6, r0] + cmp r4, r0 + bgt _02012C4C + lsl r0, r4, #0x2 + add r5, r5, r0 +_02012C12: + ldr r2, [r5, #0x0] + lsl r0, r2, #0x10 + asr r7, r0, #0x10 + lsl r0, r3, #0x1 + add r1, r6, r0 + ldr r0, _02012C88 ; =0x0000060C + ldrsh r0, [r1, r0] + add r0, r7, r0 + lsl r0, r0, #0x10 + asr r1, r0, #0x10 + lsr r0, r2, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + lsr r1, r1, #0x10 + orr r0, r1 + stmia r5!, {r0} + add r0, r3, #0x1 + mov r1, #0xc0 + bl _s32_div_f + lsl r0, r1, #0x18 + lsr r3, r0, #0x18 + ldr r0, _02012C8C ; =0x0000078D + add r4, r4, #0x1 + ldrb r0, [r6, r0] + cmp r4, r0 + ble _02012C12 +_02012C4C: + ldr r1, _02012C80 ; =0x00000798 + add r0, r1, #0x2 + ldrsh r2, [r6, r1] + ldrsh r0, [r6, r0] + add r4, r6, r1 + add r0, r2, r0 + strh r0, [r4, #0x0] + ldrsh r0, [r6, r1] + mov r1, #0x4b + lsl r1, r1, #0x8 + cmp r0, r1 + blt _02012C70 + mov r0, #0x0 + ldrsh r0, [r4, r0] + bl _s32_div_f + strh r1, [r4, #0x0] + pop {r3-r7, pc} +_02012C70: + cmp r0, #0x0 + bge _02012C7C + mov r0, #0x0 + ldrsh r0, [r4, r0] + add r0, r0, r1 + strh r0, [r4, #0x0] +_02012C7C: + pop {r3-r7, pc} + nop +_02012C80: .word 0x00000798 +_02012C84: .word 0x0000078C +_02012C88: .word 0x0000060C +_02012C8C: .word 0x0000078D + + thumb_func_start FUN_02012C90 +FUN_02012C90: ; 0x02012C90 + ldr r3, _02012C94 ; =FUN_020129C8 + bx r3 + .balign 4 +_02012C94: .word FUN_020129C8 + + thumb_func_start FUN_02012C98 +FUN_02012C98: ; 0x02012C98 + push {r3-r5, lr} + add r4, r0, #0x0 + bne _02012CA2 + bl ErrorHandling +_02012CA2: + mov r0, #0x6 + lsl r0, r0, #0x8 + ldr r0, [r4, r0] + bl FUN_0201299C + mov r1, #0x3 + lsl r1, r1, #0x8 + add r5, r0, #0x0 + bl DC_FlushRange + mov r1, #0x79 + lsl r1, r1, #0x4 + ldr r1, [r4, r1] + add r0, r5, #0x0 + mov r2, #0x4 + mov r3, #0x1 + bl FUN_020129D8 + pop {r3-r5, pc} From e14ce23516daf20a5fcd9ca6ca53f30d33c4ef24 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 18:11:00 -0400 Subject: [PATCH 090/134] Decompile list_menu_items --- arm9/asm/list_menu_items.s | 162 --------------------------------- arm9/src/error_message_reset.c | 2 +- arm9/src/list_menu.c | 22 ++--- arm9/src/list_menu_items.c | 93 +++++++++++++++++++ arm9/src/scrcmd.c | 6 +- arm9/src/text.c | 16 ++-- arm9/src/text_02054590.c | 4 +- include/list_menu.h | 7 +- include/list_menu_items.h | 12 +++ include/text.h | 14 ++- include/text_02054590.h | 5 +- 11 files changed, 144 insertions(+), 199 deletions(-) delete mode 100644 arm9/asm/list_menu_items.s create mode 100644 arm9/src/list_menu_items.c create mode 100644 include/list_menu_items.h diff --git a/arm9/asm/list_menu_items.s b/arm9/asm/list_menu_items.s deleted file mode 100644 index eecacb092..000000000 --- a/arm9/asm/list_menu_items.s +++ /dev/null @@ -1,162 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start ListMenuItems_ctor -ListMenuItems_ctor: ; 0x02012838 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r1, r5, #0x1 - add r0, r4, #0x0 - lsl r1, r1, #0x3 - bl AllocFromHeap - cmp r0, #0x0 - beq _0201286E - mov r2, #0x0 - cmp r5, #0x0 - bls _02012862 - add r3, r0, #0x0 - add r1, r2, #0x0 -_02012856: - str r1, [r3, #0x0] - str r1, [r3, #0x4] - add r2, r2, #0x1 - add r3, #0x8 - cmp r2, r5 - blo _02012856 -_02012862: - mov r1, #0x0 - lsl r2, r2, #0x3 - mvn r1, r1 - str r1, [r0, r2] - add r1, r0, r2 - str r4, [r1, #0x4] -_0201286E: - pop {r3-r5, pc} - - thumb_func_start ListMenuItems_dtor -ListMenuItems_dtor: ; 0x02012870 - push {r4, lr} - add r4, r0, #0x0 - bl ListMenuItems_DestroyMenuStrings - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start ListMenuItems_AppendFromMsgData -ListMenuItems_AppendFromMsgData: ; 0x02012880 - push {r3-r7, lr} - add r6, r1, #0x0 - add r1, sp, #0x0 - add r7, r2, #0x0 - add r5, r3, #0x0 - bl ListMenuItems_NewItem - add r4, r0, #0x0 - beq _0201289E - add r0, r6, #0x0 - add r1, r7, #0x0 - bl NewString_ReadMsgData - str r0, [r4, #0x0] - str r5, [r4, #0x4] -_0201289E: - pop {r3-r7, pc} - - thumb_func_start ListMenuItems_AddItem -ListMenuItems_AddItem: ; 0x020128A0 - push {r3-r6, lr} - sub sp, #0x4 - add r6, r1, #0x0 - add r1, sp, #0x0 - add r5, r2, #0x0 - bl ListMenuItems_NewItem - add r4, r0, #0x0 - beq _020128BE - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl StringDup - str r0, [r4, #0x0] - str r5, [r4, #0x4] -_020128BE: - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start ListMenuItems_CopyItem -ListMenuItems_CopyItem: ; 0x020128C4 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r1, #0x0 - add r1, sp, #0x0 - bl ListMenuItems_NewItem - cmp r0, #0x0 - beq _020128DC - ldr r1, [r4, #0x0] - str r1, [r0, #0x0] - ldr r1, [r4, #0x4] - str r1, [r0, #0x4] -_020128DC: - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start ListMenuItems_NewItem -ListMenuItems_NewItem: ; 0x020128E0 - push {r4, lr} - ldr r3, [r0, #0x0] - cmp r3, #0x0 - beq _02012900 - mov r2, #0x0 - mvn r2, r2 -_020128EC: - cmp r3, r2 - bne _020128F8 - bl ErrorHandling - mov r0, #0x0 - pop {r4, pc} -_020128F8: - add r0, #0x8 - ldr r3, [r0, #0x0] - cmp r3, #0x0 - bne _020128EC -_02012900: - mov r2, #0x0 - mvn r2, r2 - add r4, r0, #0x0 - cmp r3, r2 - beq _02012912 -_0201290A: - add r0, #0x8 - ldr r3, [r0, #0x0] - cmp r3, r2 - bne _0201290A -_02012912: - ldr r0, [r0, #0x4] - str r0, [r1, #0x0] - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start ListMenuItems_DestroyMenuStrings -ListMenuItems_DestroyMenuStrings: ; 0x0201291C - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0x0 - ldr r1, [r5, #0x0] - mvn r0, r0 - cmp r1, r0 - beq _02012942 - mov r4, #0x0 - add r6, r0, #0x0 -_0201292E: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _02012942 - bl String_dtor - str r4, [r5, #0x0] - add r5, #0x8 - ldr r0, [r5, #0x0] - cmp r0, r6 - bne _0201292E -_02012942: - pop {r4-r6, pc} diff --git a/arm9/src/error_message_reset.c b/arm9/src/error_message_reset.c index 426ba876d..80c7ada89 100644 --- a/arm9/src/error_message_reset.c +++ b/arm9/src/error_message_reset.c @@ -102,7 +102,7 @@ THUMB_FUNC void PrintErrorMessageAndReset() ReadMsgDataIntoString(msg_data, 3, str); - AddTextPrinterParameterized(&buf, 0, (const u16 *)str, 0, 0, 0, NULL); // wtf + AddTextPrinterParameterized(&buf, 0, str, 0, 0, 0, NULL); String_dtor(str); GX_BothDispOn(); diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index 5ae5a5b4d..c54677a9a 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -60,7 +60,7 @@ THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list) list->unk_33 = 0; if (gMain.newKeys & REG_PAD_KEYINPUT_A_MASK) { - return list->template.items[list->cursorPos + list->itemsAbove].index; + return list->template.items[list->cursorPos + list->itemsAbove].value; } else if (gMain.newKeys & REG_PAD_KEYINPUT_B_MASK) { return LIST_CANCEL; @@ -192,7 +192,7 @@ THUMB_FUNC u8 ListMenuGetUnk33(struct ListMenu * list) THUMB_FUNC s32 ListMenuGetValueByArrayId(struct ListMenu * list, s32 index) { - return list->template.items[index].index; + return list->template.items[index].value; } THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) @@ -314,7 +314,7 @@ THUMB_FUNC void ListMenuGetItemStr(struct ListMenu * list, struct ListMenuItem * list->template.items = items; } -THUMB_FUNC void ListMenuPrint(struct ListMenu * list, const u16 * str, u8 x, u8 y) +THUMB_FUNC void ListMenuPrint(struct ListMenu * list, struct String * str, u8 x, u8 y) { if (str != NULL) { @@ -337,13 +337,13 @@ THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 for (i = 0; i < count; i++) { - if (list->template.items[startIndex].index != LIST_HEADER) + if (list->template.items[startIndex].value != LIST_HEADER) x = list->template.item_X; else x = list->template.header_X; y = (yOffset + i) * yMultiplier + list->template.upText_Y; if (list->template.itemPrintFunc != NULL) - list->template.itemPrintFunc(list, list->template.items[startIndex].index, y); + list->template.itemPrintFunc(list, list->template.items[startIndex].value, y); ListMenuPrint(list, list->template.items[startIndex].text, x, y); startIndex++; } @@ -409,7 +409,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis while (itemsAbove != 0) { itemsAbove--; - if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + if (list->template.items[cursorPos + itemsAbove].value != LIST_HEADER) { list->itemsAbove = itemsAbove; return 1; @@ -422,7 +422,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis while (itemsAbove > newRow) { itemsAbove--; - if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + if (list->template.items[cursorPos + itemsAbove].value != LIST_HEADER) { list->itemsAbove = itemsAbove; return 1; @@ -444,7 +444,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis while (itemsAbove < list->template.maxShowed - 1) { itemsAbove++; - if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + if (list->template.items[cursorPos + itemsAbove].value != LIST_HEADER) { list->itemsAbove = itemsAbove; return 1; @@ -457,7 +457,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis while (itemsAbove < newRow) { itemsAbove++; - if (list->template.items[cursorPos + itemsAbove].index != LIST_HEADER) + if (list->template.items[cursorPos + itemsAbove].value != LIST_HEADER) { list->itemsAbove = itemsAbove; return 1; @@ -529,7 +529,7 @@ THUMB_FUNC BOOL ListMenuChangeSelection(struct ListMenu * list, u8 updateCursorA break; cursorCount++; } - while (list->template.items[list->cursorPos + list->itemsAbove].index == LIST_HEADER); + while (list->template.items[list->cursorPos + list->itemsAbove].value == LIST_HEADER); } if (updateCursorAndCallCallback) @@ -562,7 +562,7 @@ THUMB_FUNC void ListMenuCallSelectionChangedCallback(struct ListMenu * list, u8 { if (list->template.moveCursorFunc != NULL) { - list->template.moveCursorFunc(list, list->template.items[list->cursorPos + list->itemsAbove].index, onInit); + list->template.moveCursorFunc(list, list->template.items[list->cursorPos + list->itemsAbove].value, onInit); } } diff --git a/arm9/src/list_menu_items.c b/arm9/src/list_menu_items.c new file mode 100644 index 000000000..7e7b36d2c --- /dev/null +++ b/arm9/src/list_menu_items.c @@ -0,0 +1,93 @@ +#include "global.h" +#include "list_menu_items.h" +#include "msgdata.h" +#include "heap.h" + +void ListMenuItems_DestroyMenuStrings(struct ListMenuItem * items); +struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, s32 * idx_p); + +THUMB_FUNC struct ListMenuItem * ListMenuItems_ctor(u32 count, u32 heap_id) +{ + s32 i; + struct ListMenuItem * ret = AllocFromHeap(heap_id, (count + 1) * sizeof(struct ListMenuItem)); + if (ret != NULL) + { + for (i = 0; i < count; i++) + { + ret[i].text = NULL; + ret[i].value = 0; + } + ret[i].text = (struct String *)-1u; + ret[i].value = heap_id; + } + return ret; +} + +THUMB_FUNC void ListMenuItems_dtor(struct ListMenuItem * items) +{ + ListMenuItems_DestroyMenuStrings(items); + FreeToHeap(items); +} + +THUMB_FUNC void ListMenuItems_AppendFromMsgData(struct ListMenuItem * items, struct MsgData * msgData, u32 msgNo, s32 value) +{ + s32 heap_id; + struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); + if (newItem != NULL) + { + newItem->text = NewString_ReadMsgData(msgData, msgNo); + newItem->value = value; + } +} + +THUMB_FUNC void ListMenuItems_AddItem(struct ListMenuItem * items, struct String * str, s32 value) +{ + s32 heap_id; + struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); + if (newItem != NULL) + { + newItem->text = StringDup(str, heap_id); + newItem->value = value; + } +} + +THUMB_FUNC void ListMenuItems_CopyItem(struct ListMenuItem * items, struct ListMenuItem * src) +{ + s32 heap_id; + struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); + if (newItem != NULL) + { + newItem->text = src->text; + newItem->value = src->value; + } +} + +THUMB_FUNC struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, s32 * heap_id_p) +{ + struct ListMenuItem * ret; + for (; items->text != NULL; items++) + { + if (items->text == (struct String *)-1u) + { + GF_ASSERT(0); + return NULL; + } + } + ret = items; + for (; items->text != (struct String *)-1u; items++) + ; + *heap_id_p = items->value; + return ret; +} + +THUMB_FUNC void ListMenuItems_DestroyMenuStrings(struct ListMenuItem * items) +{ + s32 i; + for (i = 0; items[i].text != (struct String *)-1u; i++) + { + if (items[i].text == NULL) + break; + String_dtor(items[i].text); + items[i].text = NULL; + } +} diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 00ccd34d7..5503f5f30 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -34,9 +34,9 @@ extern u32 FUN_02058510(u32 param0, u32 param1); extern void MOD05_021E8128(u32 param0, u8 type, u16 map); extern void MOD05_021E8130(u32 param0, u32 param1); extern void MOD05_021E8158(struct UnkSavStruct80 *unk80); -extern u32 MOD05_021E8140(u32 param0); +extern struct Window * MOD05_021E8140(u32 param0); extern BOOL MOD05_021E8148(u32 param0); -extern u8 FUN_02054658(u32 param0, struct String *str, struct Options *opt, u32 param3); +extern u8 FUN_02054658(struct Window * param0, struct String *str, struct Options *opt, u32 param3); extern void MOD05_021E8144(u32 param0); extern void FUN_0200CB00(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); extern u32 Std_CreateYesNoMenu(u32 param0, u8 **param1, u32 param2, u32 param3, u32 param4); @@ -893,7 +893,7 @@ THUMB_FUNC BOOL ScrCmd_CreateMessageBox(struct ScriptContext* ctx) MOD05_021E8158(unk80); ReadMsgDataIntoString(ctx->msgData, msg, *unk1); StringExpandPlaceholders(*unk3, *unk2, *unk1); - AddTextPrinterParameterized(MOD05_021E8140(unk80->unk60), 1, (u16 *)*unk2, 0, 0, 0, NULL); + AddTextPrinterParameterized(MOD05_021E8140(unk80->unk60), 1, *unk2, 0, 0, 0, NULL); return TRUE; } diff --git a/arm9/src/text.c b/arm9/src/text.c index b21acf88b..83d2612b3 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -95,12 +95,12 @@ THUMB_FUNC void FUN_0201BD7C(u32 param0) FUN_0201BCFC(param0); } -THUMB_FUNC u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, struct String *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; printerTemplate.window = window; - printerTemplate.currentChar = str; + printerTemplate.currentChar.wrapped = str; printerTemplate.fontId = fontId; printerTemplate.x = (u8)x; printerTemplate.y = (u8)y; @@ -118,12 +118,12 @@ THUMB_FUNC u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, co return AddTextPrinter(&printerTemplate, speed, callback); } -THUMB_FUNC u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, struct String *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; printerTemplate.window = window; - printerTemplate.currentChar = str; + printerTemplate.currentChar.wrapped = str; printerTemplate.fontId = fontId; printerTemplate.x = (u8)x; printerTemplate.y = (u8)y; @@ -141,12 +141,12 @@ THUMB_FUNC u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, c return AddTextPrinter(&printerTemplate, speed, callback); } -THUMB_FUNC u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)) +THUMB_FUNC u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, struct String *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)) { struct TextPrinterTemplate printerTemplate; printerTemplate.window = window; - printerTemplate.currentChar = str; + printerTemplate.currentChar.wrapped = str; printerTemplate.fontId = (u8)fontId; printerTemplate.x = (u8)x; printerTemplate.y = (u8)y; @@ -184,13 +184,13 @@ THUMB_FUNC u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 s } printer->printerTemplate = *printerTemplate; - printer->printerTemplate.currentChar = String_c_str((struct String *)printer->printerTemplate.currentChar); //TODO clean up + printer->printerTemplate.currentChar.raw = String_c_str(printer->printerTemplate.currentChar.wrapped); printer->callback = callback; UNK_021C570C = 0; FUN_0201C1A8(printer); if (speed != 0xff && speed != 0) { - printer->textSpeedBottom += 0xff; + printer->textSpeedBottom--; printer->textSpeedTop = 1; printer->minLetterSpacing = FUN_0201BCC8(RunTextPrinter, printer, 1); return printer->minLetterSpacing; diff --git a/arm9/src/text_02054590.c b/arm9/src/text_02054590.c index e2765c6fa..b7c4f91c6 100644 --- a/arm9/src/text_02054590.c +++ b/arm9/src/text_02054590.c @@ -53,7 +53,7 @@ THUMB_FUNC void FUN_0205464C(struct Window *param0) FillWindowPixelBuffer(param0, 15); } -THUMB_FUNC u16 FUN_02054658(struct Window * window, const u16 *str, struct Options *options, u8 param3) +THUMB_FUNC u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3) { FUN_02002B60(param3); FUN_02002B7C(0); @@ -61,7 +61,7 @@ THUMB_FUNC u16 FUN_02054658(struct Window * window, const u16 *str, struct Optio return AddTextPrinterParameterized(window, 1, str, 0, 0, (u32)Options_GetTextFrameDelay(options), NULL); } -THUMB_FUNC u16 DrawFieldMessage(struct Window * window, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5) +THUMB_FUNC u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5) { FUN_02002B60(a4); FUN_02002B7C(a5); diff --git a/include/list_menu.h b/include/list_menu.h index 3f60c6f27..c01bf0700 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_LIST_MENU_H #include "list_menu_cursor.h" +#include "list_menu_items.h" #define LIST_HEADER -3 #define LIST_CANCEL -2 @@ -13,12 +14,6 @@ struct ListMenu; -struct ListMenuItem -{ - const u16 * text; - s32 index; -}; - // TODO: Document remaining fields. // A lot of these are named based on similar fields in gen 3. diff --git a/include/list_menu_items.h b/include/list_menu_items.h new file mode 100644 index 000000000..a102c4497 --- /dev/null +++ b/include/list_menu_items.h @@ -0,0 +1,12 @@ +#ifndef POKEDIAMOND_LIST_MENU_ITEMS_H +#define POKEDIAMOND_LIST_MENU_ITEMS_H + +#include "string16.h" + +struct ListMenuItem +{ + struct String * text; + s32 value; +}; + +#endif // POKEDIAMOND_LIST_MENU_ITEMS_H diff --git a/include/text.h b/include/text.h index 57185a057..514e8ba7e 100644 --- a/include/text.h +++ b/include/text.h @@ -16,9 +16,15 @@ #define CHAR_8 0x00AA #define CHAR_9 0x00AB +union StrbufForPrint +{ + struct String * wrapped; + const u16 * raw; +}; + struct TextPrinterTemplate { - const u16* currentChar; // 0 + union StrbufForPrint currentChar; // 0 struct Window * window; // 4 u8 padding[1]; // 8 u8 fontId; // 9 @@ -76,9 +82,9 @@ BOOL FUN_0201BD44(u32 param0); void FUN_0201BD5C(void); u8 FUN_0201BD70(u32 param0); void FUN_0201BD7C(u32 param0); -u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); -u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)); -u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, const u16 *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized(struct Window * window, u8 fontId, struct String *str, u32 x, u32 y, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized2(struct Window * window, u8 fontId, struct String *str, u32 x, u32 y, u32 speed, u32 colors, u8 (*callback)(struct TextPrinterTemplate *, u16)); +u16 AddTextPrinterParameterized3(struct Window * window, u32 fontId, struct String *str, u32 x, u32 y, u32 speed, u32 colors, u32 letterSpacing, u32 lineSpacing, u8 (*callback)(struct TextPrinterTemplate *, u16)); u16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u32 speed, u8 (*callback)(struct TextPrinterTemplate *, u16)); void RunTextPrinter(u32 param0, struct TextPrinter *printer); u32 RenderFont(struct TextPrinter *printer); diff --git a/include/text_02054590.h b/include/text_02054590.h index b1ee055a3..32dca79a8 100644 --- a/include/text_02054590.h +++ b/include/text_02054590.h @@ -4,13 +4,14 @@ #include "global.h" #include "options.h" #include "window.h" +#include "string16.h" void FUN_02054590(u32 param0, u32 param1); void FUN_020545B8(u32 param0, u32 param1, u32 param2); void FUN_02054608(struct Window *param0, struct Options *options); void FUN_0205464C(struct Window *param0); -u16 FUN_02054658(struct Window * window, const u16 *str, struct Options *options, u8 param3); -u16 DrawFieldMessage(struct Window * window, const u16 *str, u8 fontId, u32 speed, u8 a4, u32 a5); +u16 FUN_02054658(struct Window * window, struct String *str, struct Options *options, u8 param3); +u16 DrawFieldMessage(struct Window * window, struct String *str, u8 fontId, u32 speed, u8 a4, u32 a5); u8 FUN_020546C8(u32 param0); void FUN_020546E0(u32 param0, u32 param1, u32 param2, u32 param3); void FUN_02054744(struct Window *param0, u32 param1, u32 param2); From 6d1fe6e7fdb5eae0dec5ec463ddf1fac0c1316e2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 18:30:51 -0400 Subject: [PATCH 091/134] Don't use martmists host for github --- .github/workflows/build.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 74303ad60..af5b3cfdb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: run: | sudo apt update sudo ACCEPT_EULA=Y apt -y --fix-missing --allow-downgrades upgrade - sudo apt -y --allow-downgrades install g++-8-multilib linux-libc-dev binutils-arm-none-eabi + sudo apt -y --allow-downgrades install g++-8-multilib linux-libc-dev binutils-arm-none-eabi p7zip-full sudo dpkg --add-architecture i386 wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport @@ -31,14 +31,14 @@ jobs: run: | mkdir -p ~/download cd ~/download - wget http://private.martmists.com/mwccarm.zip - wget http://private.martmists.com/nitro.tar.gz + wget https://cdn.discordapp.com/attachments/698589325620936736/845499146982129684/mwccarm.zip + wget https://cdn.discordapp.com/attachments/698589325620936736/722822401963851797/NitroSDK-3_2-060901.7z unzip mwccarm.zip mv mwccarm $GITHUB_WORKSPACE/tools - tar xzf nitro.tar.gz - mv tools/bin $GITHUB_WORKSPACE/tools - mv include/nitro/specfiles/ARM7-TS.lcf.template $GITHUB_WORKSPACE/arm7 - mv include/nitro/specfiles/ARM9-TS.lcf.template $GITHUB_WORKSPACE/arm9 + 7z x NitroSDK-3_2-060901.7z + mv NitroSDK-3_2-060901/tools/bin $GITHUB_WORKSPACE/tools + mv NitroSDK-3_2-060901/include/nitro/specfiles/ARM7-TS.lcf.template $GITHUB_WORKSPACE/arm7 + mv NitroSDK-3_2-060901/include/nitro/specfiles/ARM9-TS.lcf.template $GITHUB_WORKSPACE/arm9 working-directory: ~ - name: Build Diamond run: make diamond From 0d0f5b70b03e271d05cd30ccacddd55d75c4e530 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 19:10:56 -0400 Subject: [PATCH 092/134] Silence compiler warnings --- arm9/lib/src/RTC_internal.c | 2 +- arm9/src/game_init.c | 2 +- arm9/src/list_menu.c | 54 ++++++++++++++++++------------------- arm9/src/list_menu_items.c | 13 +++++---- arm9/src/main.c | 2 +- arm9/src/text.c | 4 +-- arm9/src/unk_02022504.c | 2 +- arm9/src/unk_02025484.c | 4 +-- include/list_menu.h | 15 +++++++++++ include/list_menu_items.h | 9 +++++++ include/scrcmd.h | 1 + include/unk_02022504.h | 2 +- include/unk_02025484.h | 2 +- 13 files changed, 68 insertions(+), 44 deletions(-) diff --git a/arm9/lib/src/RTC_internal.c b/arm9/lib/src/RTC_internal.c index c7a5f2aa7..e3a132abf 100644 --- a/arm9/lib/src/RTC_internal.c +++ b/arm9/lib/src/RTC_internal.c @@ -27,5 +27,5 @@ ARM_FUNC BOOL RTCi_WriteRawStatus2Async(void) ARM_FUNC static BOOL RtcSendPxiCommand(u8 command) { s32 data = command << 8 & 0x7f00; - return PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, data, FALSE) >= 0; + return PXI_SendWordByFifo(PXI_FIFO_TAG_RTC, (u32)data, FALSE) >= 0; } diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index f52a66590..12d18629d 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -141,7 +141,7 @@ void FUN_02015FC8(void) { csum++; } - FUN_020166C8((u32 *)UNK_020EDB10, 4, 92, (int)csum); + FUN_020166C8((u32 *)UNK_020EDB10, 4, 92, csum); } void InitSystemForTheGame(void) diff --git a/arm9/src/list_menu.c b/arm9/src/list_menu.c index c54677a9a..033d06f9b 100644 --- a/arm9/src/list_menu.c +++ b/arm9/src/list_menu.c @@ -86,23 +86,23 @@ THUMB_FUNC s32 ListMenu_ProcessInput(struct ListMenu * list) rightButton = FALSE; break; case LIST_MULTIPLE_SCROLL_DPAD: - leftButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_LEFT_MASK; - rightButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_RIGHT_MASK; + leftButton = (u16)(gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_LEFT_MASK); + rightButton = (u16)(gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_RIGHT_MASK); break; case LIST_MULTIPLE_SCROLL_L_R: - leftButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_L_MASK; - rightButton = gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_R_MASK; + leftButton = (u16)(gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_L_MASK); + rightButton = (u16)(gMain.newAndRepeatedKeys & REG_PAD_KEYINPUT_R_MASK); break; } if (leftButton) { - if (!ListMenuChangeSelection(list, TRUE, list->template.maxShowed, FALSE)) + if (!ListMenuChangeSelection(list, TRUE, (u8)list->template.maxShowed, FALSE)) list->unk_33 = 3; return LIST_NOTHING_CHOSEN; } else if (rightButton) { - if (!ListMenuChangeSelection(list, TRUE, list->template.maxShowed, TRUE)) + if (!ListMenuChangeSelection(list, TRUE, (u8)list->template.maxShowed, TRUE)) list->unk_33 = 4; return LIST_NOTHING_CHOSEN; } @@ -142,11 +142,11 @@ THUMB_FUNC s32 ListMenuTestInputInternal(struct ListMenu * list, const struct Li if (input == REG_PAD_KEYINPUT_UP_MASK) { - ListMenuChangeSelection(list, updateFlag, 1, FALSE); + ListMenuChangeSelection(list, (u8)updateFlag, 1, FALSE); } else if (input == REG_PAD_KEYINPUT_DOWN_MASK) { - ListMenuChangeSelection(list, updateFlag, 1, TRUE); + ListMenuChangeSelection(list, (u8)updateFlag, 1, TRUE); } if (newCursorPos != NULL) { @@ -174,7 +174,7 @@ THUMB_FUNC void ListMenuOverrideSetColors(struct ListMenu * list, u8 cursorPal, THUMB_FUNC void ListMenuGetCurrentItemArrayId(struct ListMenu * list, u16 * index_p) { - *index_p = list->cursorPos + list->itemsAbove; + *index_p = (u16)(list->cursorPos + list->itemsAbove); } THUMB_FUNC void ListMenuGetScrollAndRow(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p) @@ -218,7 +218,7 @@ THUMB_FUNC s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr) case 8: return (s32)list->template.upText_Y; case 9: - return GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + return GetFontAttribute((u8)list->template.fontId, 1) + list->template.itemVerticalPadding; case 10: return (s32)list->template.cursorPal; case 11: @@ -333,7 +333,7 @@ THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 { s32 i; u8 x, y; - u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 yMultiplier = (u8)(GetFontAttribute((u8)list->template.fontId, 1) + list->template.itemVerticalPadding); for (i = 0; i < count; i++) { @@ -341,7 +341,7 @@ THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 x = list->template.item_X; else x = list->template.header_X; - y = (yOffset + i) * yMultiplier + list->template.upText_Y; + y = (u8)((yOffset + i) * yMultiplier + list->template.upText_Y); if (list->template.itemPrintFunc != NULL) list->template.itemPrintFunc(list, list->template.items[startIndex].value, y); ListMenuPrint(list, list->template.items[startIndex].text, x, y); @@ -351,9 +351,9 @@ THUMB_FUNC void ListMenuPrintEntries(struct ListMenu * list, u16 startIndex, u16 THUMB_FUNC void ListMenuDrawCursor(struct ListMenu * list) { - u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 yMultiplier = (u8)(GetFontAttribute((u8)list->template.fontId, 1) + list->template.itemVerticalPadding); u8 x = list->template.cursor_X; - u8 y = list->itemsAbove * yMultiplier + list->template.upText_Y; + u8 y = (u8)(list->itemsAbove * yMultiplier + list->template.upText_Y); switch (list->template.cursorKind) { case 0: @@ -371,13 +371,13 @@ THUMB_FUNC void ListMenuErasePrintedCursor(struct ListMenu * list, u16 itemsAbov switch (list->template.cursorKind) { case 0: - u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 yMultiplier = (u8)(GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding); u8 width = 8; u8 height = 16; FillWindowPixelRect(list->template.window, list->template.fillValue, list->template.cursor_X, - itemsAbove * yMultiplier + list->template.upText_Y, + (u16)(itemsAbove * yMultiplier + list->template.upText_Y), width, height); break; @@ -402,7 +402,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis if (list->template.maxShowed == 1) newRow = 0; else - newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1; + newRow = (u16)(list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1); if (cursorPos == 0) { @@ -429,7 +429,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis } } list->itemsAbove = newRow; - list->cursorPos = cursorPos - 1; + list->cursorPos = (u16)(cursorPos - 1); } } else @@ -437,7 +437,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis if (list->template.maxShowed == 1) newRow = 0; else - newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)); + newRow = (u16)((list->template.maxShowed / 2) + (list->template.maxShowed % 2)); if (cursorPos == list->template.totalItems - list->template.maxShowed) { @@ -464,7 +464,7 @@ THUMB_FUNC u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *lis } } list->itemsAbove = newRow; - list->cursorPos = cursorPos + 1; + list->cursorPos = (u16)(cursorPos + 1); } } return 2; @@ -479,33 +479,33 @@ THUMB_FUNC void ListMenuScroll(struct ListMenu * list, u8 count, u8 movingDown) } else { - u8 yMultiplier = GetFontAttribute(list->template.fontId, 1) + list->template.itemVerticalPadding; + u8 yMultiplier = (u8)(GetFontAttribute((u8)list->template.fontId, 1) + list->template.itemVerticalPadding); if (!movingDown) { u16 y, width, height; - ScrollWindow(list->template.window, 1, count * yMultiplier, (list->template.fillValue << 4) | list->template.fillValue); + ScrollWindow(list->template.window, 1, (u8)(count * yMultiplier), (u8)((list->template.fillValue << 4) | list->template.fillValue)); ListMenuPrintEntries(list, list->cursorPos, 0, count); - y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y; + y = (u16)((list->template.maxShowed * yMultiplier) + list->template.upText_Y); width = GetWindowWidth(list->template.window); height = GetWindowHeight(list->template.window); FillWindowPixelRect(list->template.window, list->template.fillValue, - 0, y, width * 8, height * 8 - y); + 0, y, (u16)(width * 8), (u16)(height * 8 - y)); } else { u32 width; - ScrollWindow(list->template.window, 0, count * yMultiplier, (list->template.fillValue << 4) | list->template.fillValue); - ListMenuPrintEntries(list, list->cursorPos + (list->template.maxShowed - count), list->template.maxShowed - count, count); + ScrollWindow(list->template.window, 0, (u8)(count * yMultiplier), (u8)((list->template.fillValue << 4) | list->template.fillValue)); + ListMenuPrintEntries(list, (u16)(list->cursorPos + (list->template.maxShowed - count)), (u16)(list->template.maxShowed - count), count); width = GetWindowWidth(list->template.window); FillWindowPixelRect(list->template.window, list->template.fillValue, - 0, 0, width * 8, list->template.upText_Y); + 0, 0, (u16)(width * 8), list->template.upText_Y); } } } diff --git a/arm9/src/list_menu_items.c b/arm9/src/list_menu_items.c index 7e7b36d2c..3aa5b0a0f 100644 --- a/arm9/src/list_menu_items.c +++ b/arm9/src/list_menu_items.c @@ -4,7 +4,6 @@ #include "heap.h" void ListMenuItems_DestroyMenuStrings(struct ListMenuItem * items); -struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, s32 * idx_p); THUMB_FUNC struct ListMenuItem * ListMenuItems_ctor(u32 count, u32 heap_id) { @@ -18,7 +17,7 @@ THUMB_FUNC struct ListMenuItem * ListMenuItems_ctor(u32 count, u32 heap_id) ret[i].value = 0; } ret[i].text = (struct String *)-1u; - ret[i].value = heap_id; + ret[i].value = (s32)heap_id; } return ret; } @@ -31,7 +30,7 @@ THUMB_FUNC void ListMenuItems_dtor(struct ListMenuItem * items) THUMB_FUNC void ListMenuItems_AppendFromMsgData(struct ListMenuItem * items, struct MsgData * msgData, u32 msgNo, s32 value) { - s32 heap_id; + u32 heap_id; struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); if (newItem != NULL) { @@ -42,7 +41,7 @@ THUMB_FUNC void ListMenuItems_AppendFromMsgData(struct ListMenuItem * items, str THUMB_FUNC void ListMenuItems_AddItem(struct ListMenuItem * items, struct String * str, s32 value) { - s32 heap_id; + u32 heap_id; struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); if (newItem != NULL) { @@ -53,7 +52,7 @@ THUMB_FUNC void ListMenuItems_AddItem(struct ListMenuItem * items, struct String THUMB_FUNC void ListMenuItems_CopyItem(struct ListMenuItem * items, struct ListMenuItem * src) { - s32 heap_id; + u32 heap_id; struct ListMenuItem * newItem = ListMenuItems_SeekEnd(items, &heap_id); if (newItem != NULL) { @@ -62,7 +61,7 @@ THUMB_FUNC void ListMenuItems_CopyItem(struct ListMenuItem * items, struct ListM } } -THUMB_FUNC struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, s32 * heap_id_p) +THUMB_FUNC struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, u32 * heap_id_p) { struct ListMenuItem * ret; for (; items->text != NULL; items++) @@ -76,7 +75,7 @@ THUMB_FUNC struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * ite ret = items; for (; items->text != (struct String *)-1u; items++) ; - *heap_id_p = items->value; + *heap_id_p = (u32)items->value; return ret; } diff --git a/arm9/src/main.c b/arm9/src/main.c index 4879cb4cb..c05fa1f32 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -24,7 +24,7 @@ FS_EXTERN_OVERLAY(MODULE_63); s32 UNK_02016FA4; PMBackLightSwitch gBacklightTop; -struct UnkStruct_02016FA8 UNK_02016FA8;; +struct UnkStruct_02016FA8 UNK_02016FA8; extern void InitSystemForTheGame(void); extern void InitGraphicMemory(void); diff --git a/arm9/src/text.c b/arm9/src/text.c index 83d2612b3..5078f229d 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -9,7 +9,7 @@ const struct FontInfo *gFonts = NULL; u16 UNK_021C5734[0x100]; -u32 UNK_021C5714[8]; +BOOL UNK_021C5714[8]; u16 UNK_021C570E; u16 UNK_021C5710; u16 UNK_021C5712; @@ -345,7 +345,7 @@ THUMB_FUNC void FUN_0201C1EC(struct TextPrinter *printer, u32 param1, u32 param2 printer->Unk2C = FUN_0201C1B0(); } u16 * r6 = printer->Unk2C + param3 * 24 * 8; - u16 r2 = (GetWindowWidth(window) - 3) * 8; + u16 r2 = (u16)((GetWindowWidth(window) - 3) * 8); BlitBitmapRectToWindow(window, r6, 0, 0, 24, 32, r2, 0, 24, 32); } diff --git a/arm9/src/unk_02022504.c b/arm9/src/unk_02022504.c index 0267a87cd..7f50815b5 100644 --- a/arm9/src/unk_02022504.c +++ b/arm9/src/unk_02022504.c @@ -26,7 +26,7 @@ THUMB_FUNC u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p) return ReadSaveFileFromFlash(sav2, heap_id, 0, ret_p); } -THUMB_FUNC s32 *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data) +THUMB_FUNC s32 SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data) { return WriteSaveFileToFlash(sav2, 0, data); } diff --git a/arm9/src/unk_02025484.c b/arm9/src/unk_02025484.c index 733ac23a4..96da04c90 100644 --- a/arm9/src/unk_02025484.c +++ b/arm9/src/unk_02025484.c @@ -3,14 +3,14 @@ #include "error_handling.h" #include "unk_02025484.h" -THUMB_FUNC void FUN_02025484(struct unk_2025484 *r0, u32 r1) +THUMB_FUNC void FUN_02025484(struct unk_2025484 *r0) { MI_CpuFill8(r0, 0, sizeof(struct unk_2025484)); } THUMB_FUNC u32 *FUN_02025490(struct unk_2025484 *r0, u32 r1) { - FUN_02025484(r0, r1); + FUN_02025484(r0); r0->unk0 = r1; return &r0->unk4; } diff --git a/include/list_menu.h b/include/list_menu.h index c01bf0700..a02e12733 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -69,5 +69,20 @@ struct ListMenu * ListMenuInit(const struct ListMenuTemplate * template, u16 cur s32 ListMenu_ProcessInput(struct ListMenu * list); void DestroyListMenu(struct ListMenu * list, u16 * cursorPos, u16 * itemsAbove); void RedrawListMenu(struct ListMenu * list); +s32 ListMenuTestInputInternal(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 updateFlag, u16 input, u16 *newCursorPos, u16 *newItemsAbove); +s32 ListMenuTestInput(struct ListMenu * list, const struct ListMenuTemplate * template, u16 cursorPos, u16 itemsAbove, u16 input, u16 *newCursorPos, u16 *newItemsAbove); +void ListMenuOverrideSetColors(struct ListMenu * list, u8 cursorPal, u8 fillValue, u8 cursorShadowPal); +void ListMenuGetCurrentItemArrayId(struct ListMenu * list, u16 * index_p); +void ListMenuGetScrollAndRow(struct ListMenu * list, u16 * cursorPos_p, u16 * itemsAbove_p); +u8 ListMenuGetUnk33(struct ListMenu * list); +s32 ListMenuGetValueByArrayId(struct ListMenu * list, s32 index); +s32 ListMenuGetTemplateField(struct ListMenu * list, u32 attr); +void ListMenuSetTemplateField(struct ListMenu * list, u32 attr, s32 value); +void ListMenuGetItemStr(struct ListMenu * list, struct ListMenuItem * items); +void ListMenuPrint(struct ListMenu * list, struct String * str, u8 x, u8 y); +void ListMenuErasePrintedCursor(struct ListMenu * list, u16 itemsAbove); +u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, u8 movingDown); +void ListMenuScroll(struct ListMenu * list, u8 count, u8 movingDown); +void ListMenuCopyToVram(struct ListMenu * list); #endif // POKEDIAMOND_LIST_MENU_H diff --git a/include/list_menu_items.h b/include/list_menu_items.h index a102c4497..ec96d4803 100644 --- a/include/list_menu_items.h +++ b/include/list_menu_items.h @@ -2,6 +2,7 @@ #define POKEDIAMOND_LIST_MENU_ITEMS_H #include "string16.h" +#include "msgdata.h" struct ListMenuItem { @@ -9,4 +10,12 @@ struct ListMenuItem s32 value; }; +struct ListMenuItem * ListMenuItems_ctor(u32 count, u32 heap_id); +void ListMenuItems_dtor(struct ListMenuItem * items); +void ListMenuItems_AppendFromMsgData(struct ListMenuItem * items, struct MsgData * msgData, u32 msgNo, s32 value); +void ListMenuItems_AddItem(struct ListMenuItem * items, struct String * str, s32 value); +void ListMenuItems_CopyItem(struct ListMenuItem * items, struct ListMenuItem * src); +struct ListMenuItem * ListMenuItems_SeekEnd(struct ListMenuItem * items, u32 * heap_id_p); +void ListMenuItems_DestroyMenuStrings(struct ListMenuItem * items); + #endif // POKEDIAMOND_LIST_MENU_ITEMS_H diff --git a/include/scrcmd.h b/include/scrcmd.h index 226bbb8c7..a1906e2d7 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -161,6 +161,7 @@ BOOL ScrCmd_Unk0054(struct ScriptContext *ctx); BOOL FUN_02041464(struct ScriptContext *ctx); BOOL ScrCmd_Unk0055(struct ScriptContext* ctx); BOOL ScrCmd_Unk0056(struct ScriptContext* ctx); +BOOL ScrCmd_Unk0057(struct ScriptContext* ctx); BOOL ScrCmd_Unk0058(struct ScriptContext* ctx); BOOL ScrCmd_Unk0049(struct ScriptContext* ctx); BOOL ScrCmd_Unk004A(struct ScriptContext* ctx); diff --git a/include/unk_02022504.h b/include/unk_02022504.h index aa541f85a..62e4def1c 100644 --- a/include/unk_02022504.h +++ b/include/unk_02022504.h @@ -9,6 +9,6 @@ struct PCStorage *GetStoragePCPointer(struct SaveBlock2 *sav2); void *FUN_0202251C(struct SaveBlock2 *sav2); void *FUN_02022528(struct SaveBlock2 *sav2); u8 *LoadHallOfFame(struct SaveBlock2 *sav2, u32 heap_id, int *ret_p); -s32 *SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data); +s32 SaveHallOfFame(struct SaveBlock2 *sav2, u8 *data); #endif //POKEDIAMOND_UNK_02022504_H diff --git a/include/unk_02025484.h b/include/unk_02025484.h index 0412dda16..d2feccb30 100644 --- a/include/unk_02025484.h +++ b/include/unk_02025484.h @@ -9,7 +9,7 @@ struct unk_2025484 u8 padding[0x1C]; }; -void FUN_02025484(struct unk_2025484 *r0, u32 r1); +void FUN_02025484(struct unk_2025484 *r0); u32 *FUN_02025490(struct unk_2025484 *r0, u32 r1); u32 *FUN_020254A0(struct unk_2025484 *r0, u32 r1); u32 FUN_020254B4(struct unk_2025484 *r0); From de4dba08bb3788f70164f53839618e63576aef77 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 22 May 2021 20:34:27 -0400 Subject: [PATCH 093/134] Split libnns, 1 --- arm9/arm9.lsf | 6 + arm9/asm/NNS_FND_allocator.s | 61 ++ arm9/asm/NNS_FND_expheap.s | 569 +++++++++++++++++ arm9/asm/NNS_FND_frameheap.s | 234 +++++++ arm9/asm/NNS_FND_heapcommon.s | 109 ++++ arm9/asm/NNS_FND_list.s | 163 +++++ arm9/asm/unk_020ADA84.s | 1107 +-------------------------------- 7 files changed, 1144 insertions(+), 1105 deletions(-) create mode 100644 arm9/asm/NNS_FND_allocator.s create mode 100644 arm9/asm/NNS_FND_expheap.s create mode 100644 arm9/asm/NNS_FND_frameheap.s create mode 100644 arm9/asm/NNS_FND_heapcommon.s create mode 100644 arm9/asm/NNS_FND_list.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 0be7bc5ab..933128bf8 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -356,6 +356,12 @@ Static arm9 Object WCM_util.o Object WIFI_stubsmd5_dummy.o Object libVCT.o + ### Nitro System SDK ### + Object NNS_FND_list.o + Object NNS_FND_heapcommon.o + Object NNS_FND_expheap.o + Object NNS_FND_frameheap.o + Object NNS_FND_allocator.o Object unk_020ADA84.o Object sndlib.o ### Nitro SDK ### diff --git a/arm9/asm/NNS_FND_allocator.s b/arm9/asm/NNS_FND_allocator.s new file mode 100644 index 000000000..e93809af3 --- /dev/null +++ b/arm9/asm/NNS_FND_allocator.s @@ -0,0 +1,61 @@ + .include "asm/macros.inc" + .include "global.inc" + + .rodata + + .global UNK_020FF7CC +UNK_020FF7CC: ; 0x020FF7CC + .word FUN_020AE894 + .word FUN_020AE884 + + .text + + arm_func_start FUN_020AE82C +FUN_020AE82C: ; 0x020AE82C + ldr ip, _020AE848 ; =UNK_020FF7CC + mov r3, #0x0 + str r12, [r0, #0x0] + str r1, [r0, #0x4] + str r2, [r0, #0x8] + str r3, [r0, #0xc] + bx lr + .balign 4 +_020AE848: .word UNK_020FF7CC + + arm_func_start FUN_020AE84C +FUN_020AE84C: ; 0x020AE84C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + ldr r2, [r2, #0x4] + blx r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE868 +FUN_020AE868: ; 0x020AE868 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + ldr r2, [r2, #0x0] + blx r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE884 +FUN_020AE884: ; 0x020AE884 + ldr ip, _020AE890 ; =FUN_020ADDF0 + ldr r0, [r0, #0x4] + bx r12 + .balign 4 +_020AE890: .word FUN_020ADDF0 + + arm_func_start FUN_020AE894 +FUN_020AE894: ; 0x020AE894 + ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx + mov r2, r0 + ldr r0, [r2, #0x4] + ldr r2, [r2, #0x8] + bx r12 + .balign 4 +_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx diff --git a/arm9/asm/NNS_FND_expheap.s b/arm9/asm/NNS_FND_expheap.s new file mode 100644 index 000000000..c30c6e88f --- /dev/null +++ b/arm9/asm/NNS_FND_expheap.s @@ -0,0 +1,569 @@ + .include "asm/macros.inc" + .include "global.inc" + + .extern FUN_020ADCA4 + .extern FUN_020ADC8C + + .text + + arm_func_start FUN_020ADDC0 +FUN_020ADDC0: ; 0x020ADDC0 + ldr r0, [r0, #-0xc] + bx lr + + arm_func_start FUN_020ADDC8 +FUN_020ADDC8: ; 0x020ADDC8 + ldr r2, [r0, #0x24] + mov r0, #0x0 + cmp r2, #0x0 + bxeq lr +_020ADDD8: + ldr r1, [r2, #0x4] + ldr r2, [r2, #0xc] + add r0, r0, r1 + cmp r2, #0x0 + bne _020ADDD8 + bx lr + + arm_func_start FUN_020ADDF0 +FUN_020ADDF0: ; 0x020ADDF0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + sub r4, r1, #0x10 + add r5, r0, #0x24 + add r0, sp, #0x0 + mov r1, r4 + bl FUN_020AE528 + mov r1, r4 + add r0, r5, #0x8 + bl FUN_020AE500 + add r1, sp, #0x0 + mov r0, r5 + bl FUN_020AE02C + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020ADE2C +FUN_020ADE2C: ; 0x020ADE2C + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x10 + mov r4, r1 + mov r10, r2 + sub r6, r4, #0x10 + add r1, r10, #0x3 + mov r5, r0 + ldr r8, [r6, #0x4] + bic r10, r1, #0x3 + cmp r10, r8 + add r7, r5, #0x24 + addeq sp, sp, #0x10 + moveq r0, r10 + ldmeqia sp!, {r4-r10,pc} + cmp r10, r8 + bls _020ADF60 + ldr r9, [r7, #0x0] + add r0, r6, #0x10 + cmp r9, #0x0 + add r0, r8, r0 + beq _020ADE94 +_020ADE80: + cmp r9, r0 + beq _020ADE94 + ldr r9, [r9, #0xc] + cmp r9, #0x0 + bne _020ADE80 +_020ADE94: + cmp r9, #0x0 + beq _020ADEB0 + ldr r0, [r9, #0x4] + add r1, r8, #0x10 + add r0, r1, r0 + cmp r10, r0 + bls _020ADEBC +_020ADEB0: + add sp, sp, #0x10 + mov r0, #0x0 + ldmia sp!, {r4-r10,pc} +_020ADEBC: + add r0, sp, #0x0 + mov r1, r9 + bl FUN_020AE528 + mov r0, r7 + mov r1, r9 + bl FUN_020AE500 + ldr r2, [sp, #0x4] + add r3, r10, r4 + ldr r9, [sp, #0x0] + sub r1, r2, r3 + str r3, [sp, #0x0] + cmp r1, #0x10 + strcc r2, [sp, #0x0] + mov r8, r0 + ldr r0, [sp, #0x0] + sub r0, r0, r4 + str r0, [r6, #0x4] + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r0, r1, r0 + cmp r0, #0x10 + blo _020ADF30 + ldr r1, _020ADF9C ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r8 + bl FUN_020AE4D0 +_020ADF30: + ldr r0, [r5, #0x20] + ldr r1, [sp, #0x0] + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + sub r2, r1, r9 + ands r0, r0, #0x1 + beq _020ADF90 + mov r1, r9 + mov r0, #0x0 + bl MIi_CpuClear32 + b _020ADF90 +_020ADF60: + add r0, r10, r4 + str r0, [sp, #0x8] + ldr r1, [r6, #0x4] + add r0, r6, #0x10 + add r0, r1, r0 + str r0, [sp, #0xc] + add r1, sp, #0x8 + mov r0, r7 + str r10, [r6, #0x4] + bl FUN_020AE02C + cmp r0, #0x0 + streq r8, [r6, #0x4] +_020ADF90: + ldr r0, [r6, #0x4] + add sp, sp, #0x10 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020ADF9C: .word 0x00004652 + + arm_func_start tempName_NNS_FndAllocFromExpHeapEx +tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + moveq r1, #0x1 + add r1, r1, #0x3 + cmp r2, #0x0 + bic r1, r1, #0x3 + blt _020ADFCC + bl FUN_020AE1D8 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADFCC: + rsb r2, r2, #0x0 + bl FUN_020AE11C + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start thunk_FUN_020adc8c +thunk_FUN_020adc8c: ; 0x020ADFDC + ldr ip, _020ADFE4 ; =FUN_020ADC8C + bx r12 + .balign 4 +_020ADFE4: .word FUN_020ADC8C + + arm_func_start tempName_NNS_FndCreateExpHeapEx +tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r1, r1, r0 + add r0, r0, #0x3 + bic r1, r1, #0x3 + bic r0, r0, #0x3 + cmp r0, r1 + bhi _020AE014 + sub r3, r1, r0 + cmp r3, #0x4c + bhs _020AE020 +_020AE014: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020AE020: + bl FUN_020AE420 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE02C +FUN_020AE02C: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r1 + ldr r2, [r5, #0x0] + ldr r1, [r5, #0x4] + mov r6, r0 + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [r6, #0x0] + mov r4, #0x0 + cmp r1, #0x0 + beq _020AE0A0 + ldr r0, [r5, #0x0] +_020AE060: + cmp r1, r0 + movcc r4, r1 + blo _020AE094 + ldr r0, [r5, #0x4] + cmp r1, r0 + bne _020AE0A0 + ldr r2, [r1, #0x4] + add r0, r1, #0x10 + add r2, r2, r0 + mov r0, r6 + str r2, [sp, #0x4] + bl FUN_020AE500 + b _020AE0A0 +_020AE094: + ldr r1, [r1, #0xc] + cmp r1, #0x0 + bne _020AE060 +_020AE0A0: + cmp r4, #0x0 + beq _020AE0D4 + ldr r2, [r4, #0x4] + add r1, r4, #0x10 + ldr r0, [r5, #0x0] + add r1, r2, r1 + cmp r1, r0 + bne _020AE0D4 + mov r0, r6 + mov r1, r4 + str r4, [sp, #0x0] + bl FUN_020AE500 + mov r4, r0 +_020AE0D4: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r0, r1, r0 + cmp r0, #0x10 + addcc sp, sp, #0x8 + movcc r0, #0x0 + ldmccia sp!, {r4-r6,pc} + ldr r1, _020AE118 ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r6 + mov r2, r4 + bl FUN_020AE4D0 + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AE118: .word 0x00004652 + + arm_func_start FUN_020AE11C +FUN_020AE11C: ; 0x020AE11C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + add r0, r0, #0x24 + ldrh r4, [r0, #0x12] + mov r3, r1 + mvn lr, #0x0 + and r1, r4, #0x1 + mov r1, r1, lsl #0x10 + movs r1, r1, lsr #0x10 + moveq r5, #0x1 + mov r1, #0x0 + ldr r4, [r0, #0x4] + movne r5, #0x0 + mov r12, r1 + cmp r4, #0x0 + beq _020AE1B0 + sub r2, r2, #0x1 + mvn r2, r2 +_020AE164: + ldr r8, [r4, #0x4] + add r9, r4, #0x10 + add r6, r8, r9 + sub r6, r6, r3 + and r7, r2, r6 + subs r6, r7, r9 + bmi _020AE1A4 + cmp lr, r8 + bls _020AE1A4 + mov r1, r4 + mov lr, r8 + mov r12, r7 + cmp r5, #0x0 + bne _020AE1B0 + cmp r8, r3 + beq _020AE1B0 +_020AE1A4: + ldr r4, [r4, #0x8] + cmp r4, #0x0 + bne _020AE164 +_020AE1B0: + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + mov r4, #0x1 + mov r2, r12 + str r4, [sp, #0x0] + bl FUN_020AE298 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + + arm_func_start FUN_020AE1D8 +FUN_020AE1D8: ; 0x020AE1D8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + add r0, r0, #0x24 + ldrh r4, [r0, #0x12] + mov r3, r1 + ldr r5, [r0, #0x0] + and r1, r4, #0x1 + mov r1, r1, lsl #0x10 + movs r1, r1, lsr #0x10 + moveq r6, #0x1 + mov r1, #0x0 + movne r6, #0x0 + mov lr, r1 + cmp r5, #0x0 + mvn r4, #0x0 + beq _020AE270 + sub r12, r2, #0x1 + mvn r2, r12 +_020AE220: + add r8, r5, #0x10 + add r7, r12, r8 + and r9, r2, r7 + sub r7, r9, r8 + ldr r8, [r5, #0x4] + add r7, r3, r7 + cmp r8, r7 + blo _020AE264 + cmp r4, r8 + bls _020AE264 + mov r1, r5 + mov r4, r8 + mov lr, r9 + cmp r6, #0x0 + bne _020AE270 + cmp r8, r3 + beq _020AE270 +_020AE264: + ldr r5, [r5, #0xc] + cmp r5, #0x0 + bne _020AE220 +_020AE270: + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + mov r4, #0x0 + mov r2, lr + str r4, [sp, #0x0] + bl FUN_020AE298 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + + arm_func_start FUN_020AE298 +FUN_020AE298: ; 0x020AE298 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x18 + mov r7, r0 + add r0, sp, #0x0 + mov r8, r1 + mov r6, r2 + mov r5, r3 + bl FUN_020AE528 + ldr r3, [sp, #0x4] + sub r4, r6, #0x10 + add r2, r5, r6 + mov r0, r7 + mov r1, r8 + str r4, [sp, #0x4] + str r3, [sp, #0xc] + str r2, [sp, #0x8] + bl FUN_020AE500 + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x4] + mov r5, r0 + sub r0, r1, r2 + cmp r0, #0x10 + strcc r2, [sp, #0x4] + blo _020AE318 + ldr r1, _020AE418 ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r5 + bl FUN_020AE4D0 + mov r5, r0 +_020AE318: + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x8] + sub r0, r1, r0 + cmp r0, #0x10 + strcc r1, [sp, #0x8] + blo _020AE34C + ldr r1, _020AE418 ; =0x00004652 + add r0, sp, #0x8 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r5 + bl FUN_020AE4D0 +_020AE34C: + ldr r0, [r7, #-0x4] + ldr r1, [sp, #0x4] + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + ldr r2, [sp, #0x8] + mov r0, r0, lsr #0x10 + sub r2, r2, r1 + ands r0, r0, #0x1 + beq _020AE378 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE378: + ldr r2, [sp, #0x8] + ldr r1, _020AE41C ; =0x00005544 + add r0, sp, #0x10 + str r4, [sp, #0x10] + str r2, [sp, #0x14] + bl FUN_020AE4A0 + mov r1, r0 + ldrh r3, [r1, #0x2] + ldrh r2, [sp, #0x30] + add r0, r7, #0x8 + bic r3, r3, #0x8000 + strh r3, [r1, #0x2] + ldrh r3, [r1, #0x2] + and r2, r2, #0x1 + orr r2, r3, r2, lsl #0xf + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + ldr r3, [sp, #0x4] + bic r2, r2, #0x7f00 + strh r2, [r1, #0x2] + sub r2, r1, r3 + mov r2, r2, lsl #0x10 + mov r2, r2, lsr #0x10 + ldrh r3, [r1, #0x2] + and r2, r2, #0x7f + orr r2, r3, r2, lsl #0x8 + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + ldrh r3, [r7, #0x10] + bic r2, r2, #0xff + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + and r3, r3, #0xff + orr r2, r2, r3 + strh r2, [r1, #0x2] + ldr r2, [r7, #0xc] + bl FUN_020AE4D0 + mov r0, r6 + add sp, sp, #0x18 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020AE418: .word 0x00004652 +_020AE41C: .word 0x00005544 + + arm_func_start FUN_020AE420 +FUN_020AE420: ; 0x020AE420 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + mov r3, r1 + add r4, r5, #0x24 + str r2, [sp, #0x0] + ldr r1, _020AE498 ; =0x45585048 + add r2, r4, #0x14 + bl FUN_020ADCA4 + mov r0, #0x0 + strh r0, [r4, #0x10] + strh r0, [r4, #0x12] + ldrh r2, [r4, #0x12] + ldr r1, _020AE49C ; =0x00004652 + add r0, sp, #0x4 + bic r2, r2, #0x1 + strh r2, [r4, #0x12] + ldr r2, [r5, #0x18] + str r2, [sp, #0x4] + ldr r2, [r5, #0x1c] + str r2, [sp, #0x8] + bl FUN_020AE4A0 + str r0, [r5, #0x24] + str r0, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] + mov r0, r5 + str r1, [r4, #0xc] + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AE498: .word 0x45585048 +_020AE49C: .word 0x00004652 + + arm_func_start FUN_020AE4A0 +FUN_020AE4A0: ; 0x020AE4A0 + ldr r3, [r0, #0x0] + mov r2, #0x0 + strh r1, [r3, #0x0] + strh r2, [r3, #0x2] + ldr r1, [r0, #0x4] + add r0, r3, #0x10 + sub r0, r1, r0 + str r0, [r3, #0x4] + str r2, [r3, #0x8] + mov r0, r3 + str r2, [r3, #0xc] + bx lr + + arm_func_start FUN_020AE4D0 +FUN_020AE4D0: ; 0x020AE4D0 + str r2, [r1, #0x8] + cmp r2, #0x0 + ldrne r3, [r2, #0xc] + strne r1, [r2, #0xc] + ldreq r3, [r0, #0x0] + streq r1, [r0, #0x0] + str r3, [r1, #0xc] + cmp r3, #0x0 + strne r1, [r3, #0x8] + streq r1, [r0, #0x4] + mov r0, r1 + bx lr + + arm_func_start FUN_020AE500 +FUN_020AE500: ; 0x020AE500 + ldr r2, [r1, #0x8] + ldr r1, [r1, #0xc] + cmp r2, #0x0 + strne r1, [r2, #0xc] + streq r1, [r0, #0x0] + cmp r1, #0x0 + strne r2, [r1, #0x8] + streq r2, [r0, #0x4] + mov r0, r2 + bx lr + + arm_func_start FUN_020AE528 +FUN_020AE528: ; 0x020AE528 + ldrh r2, [r1, #0x2] + add r3, r1, #0x10 + mov r2, r2, asr #0x8 + and r2, r2, #0x7f + mov r2, r2, lsl #0x10 + sub r2, r1, r2, lsr #0x10 + str r2, [r0, #0x0] + ldr r1, [r1, #0x4] + add r1, r1, r3 + str r1, [r0, #0x4] + bx lr diff --git a/arm9/asm/NNS_FND_frameheap.s b/arm9/asm/NNS_FND_frameheap.s new file mode 100644 index 000000000..4dc662d77 --- /dev/null +++ b/arm9/asm/NNS_FND_frameheap.s @@ -0,0 +1,234 @@ + .include "asm/macros.inc" + .include "global.inc" + + .extern FUN_020ADCA4 + .extern FUN_020ADC8C + + .text + + arm_func_start FUN_020AE554 +FUN_020AE554: ; 0x020AE554 + add r2, r0, #0x24 + cmp r1, #0x0 + ldr r3, [r2, #0x8] + beq _020AE584 + cmp r3, #0x0 + beq _020AE584 +_020AE56C: + ldr r0, [r3, #0x0] + cmp r0, r1 + beq _020AE584 + ldr r3, [r3, #0xc] + cmp r3, #0x0 + bne _020AE56C +_020AE584: + cmp r3, #0x0 + moveq r0, #0x0 + bxeq lr + ldr r1, [r3, #0x4] + mov r0, #0x1 + str r1, [r2, #0x0] + ldr r1, [r3, #0x8] + str r1, [r2, #0x4] + ldr r1, [r3, #0xc] + str r1, [r2, #0x8] + bx lr + + arm_func_start FUN_020AE5B0 +FUN_020AE5B0: ; 0x020AE5B0 + stmdb sp!, {r4-r6,lr} + add r4, r0, #0x24 + ldr r5, [r0, #0x24] + mov r6, r1 + mov r0, r4 + mov r1, #0x10 + mov r2, #0x4 + bl FUN_020AE77C + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + str r6, [r0, #0x0] + str r5, [r0, #0x4] + ldr r1, [r4, #0x4] + str r1, [r0, #0x8] + ldr r1, [r4, #0x8] + str r1, [r0, #0xc] + str r0, [r4, #0x8] + mov r0, #0x1 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020AE600 +FUN_020AE600: ; 0x020AE600 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + ands r1, r4, #0x1 + beq _020AE61C + bl FUN_020AE6F8 +_020AE61C: + ands r0, r4, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + mov r0, r5 + bl FUN_020AE6C8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020AE638 +FUN_020AE638: ; 0x020AE638 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + moveq r1, #0x1 + add r1, r1, #0x3 + add r0, r0, #0x24 + cmp r2, #0x0 + bic r1, r1, #0x3 + blt _020AE668 + bl FUN_020AE77C + add sp, sp, #0x4 + ldmia sp!, {pc} +_020AE668: + rsb r2, r2, #0x0 + bl FUN_020AE710 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start thunk_FUN_020adc8c_2 +thunk_FUN_020adc8c_2: ; 0x020AE678 + ldr ip, _020AE680 ; =FUN_020ADC8C + bx r12 + .balign 4 +_020AE680: .word FUN_020ADC8C + + arm_func_start FUN_020AE684 +FUN_020AE684: ; 0x020AE684 + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r1, r1, r0 + add r0, r0, #0x3 + bic r1, r1, #0x3 + bic r0, r0, #0x3 + cmp r0, r1 + bhi _020AE6B0 + sub r3, r1, r0 + cmp r3, #0x30 + bhs _020AE6BC +_020AE6B0: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020AE6BC: + bl FUN_020AE7E0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE6C8 +FUN_020AE6C8: ; 0x020AE6C8 + add r2, r0, #0x24 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + beq _020AE6EC +_020AE6D8: + ldr r1, [r0, #0x1c] + str r1, [r3, #0x8] + ldr r3, [r3, #0xc] + cmp r3, #0x0 + bne _020AE6D8 +_020AE6EC: + ldr r0, [r0, #0x1c] + str r0, [r2, #0x4] + bx lr + + arm_func_start FUN_020AE6F8 +FUN_020AE6F8: ; 0x020AE6F8 + ldr r1, [r0, #0x18] + add r2, r0, #0x24 + str r1, [r0, #0x24] + mov r0, #0x0 + str r0, [r2, #0x8] + bx lr + + arm_func_start FUN_020AE710 +FUN_020AE710: ; 0x020AE710 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r3, [r5, #0x4] + sub r0, r2, #0x1 + mvn r2, r0 + sub r1, r3, r1 + ldr r0, [r5, #0x0] + and r4, r2, r1 + cmp r4, r0 + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {r4-r5,pc} + ldr r0, [r5, #-0x4] + sub r2, r3, r4 + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + ands r0, r0, #0x1 + beq _020AE76C + mov r1, r4 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE76C: + mov r0, r4 + str r4, [r5, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020AE77C +FUN_020AE77C: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x0] + sub r2, r2, #0x1 + mvn r3, r2 + add r2, r2, r0 + and r5, r3, r2 + ldr r2, [r6, #0x4] + add r4, r1, r5 + cmp r4, r2 + movhi r0, #0x0 + ldmhiia sp!, {r4-r6,pc} + ldr r1, [r6, #-0x4] + sub r2, r4, r0 + and r1, r1, #0xff + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + ands r1, r1, #0x1 + beq _020AE7D4 + mov r1, r0 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE7D4: + mov r0, r5 + str r4, [r6, #0x0] + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020AE7E0 +FUN_020AE7E0: ; 0x020AE7E0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r3, r1 + add r4, r5, #0x24 + str r2, [sp, #0x0] + ldr r1, _020AE828 ; =0x46524D48 + add r2, r4, #0xc + bl FUN_020ADCA4 + ldr r0, [r5, #0x18] + mov r1, #0x0 + str r0, [r5, #0x24] + ldr r2, [r5, #0x1c] + mov r0, r5 + str r2, [r4, #0x4] + str r1, [r4, #0x8] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AE828: .word 0x46524D48 diff --git a/arm9/asm/NNS_FND_heapcommon.s b/arm9/asm/NNS_FND_heapcommon.s new file mode 100644 index 000000000..196d12b03 --- /dev/null +++ b/arm9/asm/NNS_FND_heapcommon.s @@ -0,0 +1,109 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + .global UNK_021CCD38 +UNK_021CCD38: ; 0x021CCD38 + .space 0x4 + + .global UNK_021CCD3C +UNK_021CCD3C: ; 0x021CCD3C + .space 0xc + + .text + + arm_func_start FUN_020ADC8C +FUN_020ADC8C: ; 0x020ADC8C + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020ADD30 + mov r1, r4 + bl FUN_020ADAB0 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020ADCA4 +FUN_020ADCA4: + stmdb sp!, {r4,lr} + mov r4, r0 + str r1, [r4, #0x0] + str r2, [r4, #0x18] + str r3, [r4, #0x1c] + mov r0, #0x0 + str r0, [r4, #0x20] + ldr r1, [r4, #0x20] + ldrh r0, [sp, #0x8] + bic r1, r1, #0xff + str r1, [r4, #0x20] + ldr r1, [r4, #0x20] + and r0, r0, #0xff + orr r2, r1, r0 + add r0, r4, #0xc + mov r1, #0x4 + str r2, [r4, #0x20] + bl FUN_020ADC74 + ldr r0, _020ADD28 ; =UNK_021CCD38 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020ADD14 + ldr r0, _020ADD2C ; =UNK_021CCD3C + mov r1, #0x4 + bl FUN_020ADC74 + ldr r0, _020ADD28 ; =UNK_021CCD38 + mov r1, #0x1 + str r1, [r0, #0x0] +_020ADD14: + mov r0, r4 + bl FUN_020ADD30 + mov r1, r4 + bl FUN_020ADBE8 + ldmia sp!, {r4,pc} + .balign 4 +_020ADD28: .word UNK_021CCD38 +_020ADD2C: .word UNK_021CCD3C + + arm_func_start FUN_020ADD30 +FUN_020ADD30: ; 0x020ADD30 + stmdb sp!, {r4,lr} + ldr r4, _020ADD54 ; =UNK_021CCD3C + mov r1, r0 + mov r0, r4 + bl FUN_020ADD58 + cmp r0, #0x0 + addne r4, r0, #0xc + mov r0, r4 + ldmia sp!, {r4,pc} + .balign 4 +_020ADD54: .word UNK_021CCD3C + + arm_func_start FUN_020ADD58 +FUN_020ADD58: + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r1, #0x0 + mov r6, r0 + bl FUN_020ADA98 + movs r4, r0 + beq _020ADDB8 +_020ADD74: + ldr r0, [r4, #0x18] + cmp r0, r5 + bhi _020ADDA4 + ldr r0, [r4, #0x1c] + cmp r5, r0 + bhs _020ADDA4 + mov r1, r5 + add r0, r4, #0xc + bl FUN_020ADD58 + cmp r0, #0x0 + moveq r0, r4 + ldmia sp!, {r4-r6,pc} +_020ADDA4: + mov r0, r6 + mov r1, r4 + bl FUN_020ADA98 + movs r4, r0 + bne _020ADD74 +_020ADDB8: + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} diff --git a/arm9/asm/NNS_FND_list.s b/arm9/asm/NNS_FND_list.s new file mode 100644 index 000000000..9f9ff1e01 --- /dev/null +++ b/arm9/asm/NNS_FND_list.s @@ -0,0 +1,163 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start FUN_020ADA84 +FUN_020ADA84: ; 0x020ADA84 + cmp r1, #0x0 + ldreq r0, [r0, #0x4] + ldrneh r0, [r0, #0xa] + ldrne r0, [r1, r0] + bx lr + + arm_func_start FUN_020ADA98 +FUN_020ADA98: ; 0x020ADA98 + cmp r1, #0x0 + ldreq r0, [r0, #0x0] + ldrneh r0, [r0, #0xa] + addne r0, r1, r0 + ldrne r0, [r0, #0x4] + bx lr + + arm_func_start FUN_020ADAB0 +FUN_020ADAB0: ; 0x020ADAB0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r12, [r0, #0xa] + ldr r3, [r1, r12] + add lr, r1, r12 + cmp r3, #0x0 + ldreq r1, [lr, #0x4] + streq r1, [r0, #0x0] + ldrne r2, [lr, #0x4] + addne r1, r3, r12 + strne r2, [r1, #0x4] + ldr r3, [lr, #0x4] + cmp r3, #0x0 + ldreq r1, [lr, #0x0] + streq r1, [r0, #0x4] + ldrneh r1, [r0, #0xa] + ldrne r2, [lr, #0x0] + strne r2, [r3, r1] + mov r1, #0x0 + str r1, [lr, #0x0] + str r1, [lr, #0x4] + ldrh r1, [r0, #0x8] + sub r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADB18 +FUN_020ADB18: ; 0x020ADB18 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + bne _020ADB38 + mov r1, r2 + bl FUN_020ADBE8 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADB38: + ldr r3, [r0, #0x0] + cmp r1, r3 + bne _020ADB54 + mov r1, r2 + bl FUN_020ADB8C + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADB54: + ldrh lr, [r0, #0xa] + ldr r3, [r1, lr] + add r12, r2, lr + str r3, [r2, lr] + str r1, [r12, #0x4] + add r3, r3, lr + str r2, [r3, #0x4] + ldrh r3, [r0, #0xa] + str r2, [r1, r3] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADB8C +FUN_020ADB8C: ; 0x020ADB8C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _020ADBAC + bl FUN_020ADC48 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADBAC: + ldrh r3, [r0, #0xa] + mov r2, #0x0 + str r2, [r1, r3] + ldr r2, [r0, #0x0] + add r3, r1, r3 + str r2, [r3, #0x4] + ldrh r2, [r0, #0xa] + ldr r3, [r0, #0x0] + str r1, [r3, r2] + str r1, [r0, #0x0] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADBE8 +FUN_020ADBE8: ; 0x020ADBE8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _020ADC08 + bl FUN_020ADC48 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADC08: + ldrh r12, [r0, #0xa] + ldr r3, [r0, #0x4] + mov r2, #0x0 + str r3, [r1, r12] + add r3, r1, r12 + str r2, [r3, #0x4] + ldrh r2, [r0, #0xa] + ldr r3, [r0, #0x4] + add r2, r3, r2 + str r1, [r2, #0x4] + str r1, [r0, #0x4] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADC48 +FUN_020ADC48: ; 0x020ADC48 + ldrh r3, [r0, #0xa] + mov r2, #0x0 + add r12, r1, r3 + str r2, [r12, #0x4] + str r2, [r1, r3] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + bx lr + + arm_func_start FUN_020ADC74 +FUN_020ADC74: ; 0x020ADC74 + mov r2, #0x0 + str r2, [r0, #0x0] + str r2, [r0, #0x4] + strh r2, [r0, #0x8] + strh r1, [r0, #0xa] + bx lr + diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s index 29fddc4a2..7a31a3de8 100644 --- a/arm9/asm/unk_020ADA84.s +++ b/arm9/asm/unk_020ADA84.s @@ -3,14 +3,11 @@ .extern SNDi_DecibelTable .extern GXi_DmaId + .extern FUN_020ADCA4 + .extern FUN_020ADC8C .section .rodata - .global UNK_020FF7CC -UNK_020FF7CC: ; 0x020FF7CC - .word FUN_020AE894 - .word FUN_020AE884 - .global UNK_020FF7D4 UNK_020FF7D4: ; 0x020FF7D4 .word FUN_020AF2B4 @@ -1466,14 +1463,6 @@ UNK_021067F0: ; 0x021067F0 .section .bss - .global UNK_021CCD38 -UNK_021CCD38: ; 0x021CCD38 - .space 0x4 - - .global UNK_021CCD3C -UNK_021CCD3C: ; 0x021CCD3C - .space 0xc - .global UNK_021CCD48 UNK_021CCD48: ; 0x021CCD48 .space 0x4 @@ -1752,1098 +1741,6 @@ UNK_021D1C88: ; 0x021D1C88 .text - arm_func_start FUN_020ADA84 -FUN_020ADA84: ; 0x020ADA84 - cmp r1, #0x0 - ldreq r0, [r0, #0x4] - ldrneh r0, [r0, #0xa] - ldrne r0, [r1, r0] - bx lr - - arm_func_start FUN_020ADA98 -FUN_020ADA98: ; 0x020ADA98 - cmp r1, #0x0 - ldreq r0, [r0, #0x0] - ldrneh r0, [r0, #0xa] - addne r0, r1, r0 - ldrne r0, [r0, #0x4] - bx lr - - arm_func_start FUN_020ADAB0 -FUN_020ADAB0: ; 0x020ADAB0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r12, [r0, #0xa] - ldr r3, [r1, r12] - add lr, r1, r12 - cmp r3, #0x0 - ldreq r1, [lr, #0x4] - streq r1, [r0, #0x0] - ldrne r2, [lr, #0x4] - addne r1, r3, r12 - strne r2, [r1, #0x4] - ldr r3, [lr, #0x4] - cmp r3, #0x0 - ldreq r1, [lr, #0x0] - streq r1, [r0, #0x4] - ldrneh r1, [r0, #0xa] - ldrne r2, [lr, #0x0] - strne r2, [r3, r1] - mov r1, #0x0 - str r1, [lr, #0x0] - str r1, [lr, #0x4] - ldrh r1, [r0, #0x8] - sub r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADB18 -FUN_020ADB18: ; 0x020ADB18 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - bne _020ADB38 - mov r1, r2 - bl FUN_020ADBE8 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADB38: - ldr r3, [r0, #0x0] - cmp r1, r3 - bne _020ADB54 - mov r1, r2 - bl FUN_020ADB8C - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADB54: - ldrh lr, [r0, #0xa] - ldr r3, [r1, lr] - add r12, r2, lr - str r3, [r2, lr] - str r1, [r12, #0x4] - add r3, r3, lr - str r2, [r3, #0x4] - ldrh r3, [r0, #0xa] - str r2, [r1, r3] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADB8C -FUN_020ADB8C: ; 0x020ADB8C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _020ADBAC - bl FUN_020ADC48 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADBAC: - ldrh r3, [r0, #0xa] - mov r2, #0x0 - str r2, [r1, r3] - ldr r2, [r0, #0x0] - add r3, r1, r3 - str r2, [r3, #0x4] - ldrh r2, [r0, #0xa] - ldr r3, [r0, #0x0] - str r1, [r3, r2] - str r1, [r0, #0x0] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADBE8 -FUN_020ADBE8: ; 0x020ADBE8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _020ADC08 - bl FUN_020ADC48 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADC08: - ldrh r12, [r0, #0xa] - ldr r3, [r0, #0x4] - mov r2, #0x0 - str r3, [r1, r12] - add r3, r1, r12 - str r2, [r3, #0x4] - ldrh r2, [r0, #0xa] - ldr r3, [r0, #0x4] - add r2, r3, r2 - str r1, [r2, #0x4] - str r1, [r0, #0x4] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADC48 -FUN_020ADC48: ; 0x020ADC48 - ldrh r3, [r0, #0xa] - mov r2, #0x0 - add r12, r1, r3 - str r2, [r12, #0x4] - str r2, [r1, r3] - str r1, [r0, #0x0] - str r1, [r0, #0x4] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - bx lr - - arm_func_start FUN_020ADC74 -FUN_020ADC74: ; 0x020ADC74 - mov r2, #0x0 - str r2, [r0, #0x0] - str r2, [r0, #0x4] - strh r2, [r0, #0x8] - strh r1, [r0, #0xa] - bx lr - - arm_func_start FUN_020ADC8C -FUN_020ADC8C: ; 0x020ADC8C - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020ADD30 - mov r1, r4 - bl FUN_020ADAB0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020ADCA4 -FUN_020ADCA4: - stmdb sp!, {r4,lr} - mov r4, r0 - str r1, [r4, #0x0] - str r2, [r4, #0x18] - str r3, [r4, #0x1c] - mov r0, #0x0 - str r0, [r4, #0x20] - ldr r1, [r4, #0x20] - ldrh r0, [sp, #0x8] - bic r1, r1, #0xff - str r1, [r4, #0x20] - ldr r1, [r4, #0x20] - and r0, r0, #0xff - orr r2, r1, r0 - add r0, r4, #0xc - mov r1, #0x4 - str r2, [r4, #0x20] - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =UNK_021CCD38 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020ADD14 - ldr r0, _020ADD2C ; =UNK_021CCD3C - mov r1, #0x4 - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =UNK_021CCD38 - mov r1, #0x1 - str r1, [r0, #0x0] -_020ADD14: - mov r0, r4 - bl FUN_020ADD30 - mov r1, r4 - bl FUN_020ADBE8 - ldmia sp!, {r4,pc} - .balign 4 -_020ADD28: .word UNK_021CCD38 -_020ADD2C: .word UNK_021CCD3C - - arm_func_start FUN_020ADD30 -FUN_020ADD30: ; 0x020ADD30 - stmdb sp!, {r4,lr} - ldr r4, _020ADD54 ; =UNK_021CCD3C - mov r1, r0 - mov r0, r4 - bl FUN_020ADD58 - cmp r0, #0x0 - addne r4, r0, #0xc - mov r0, r4 - ldmia sp!, {r4,pc} - .balign 4 -_020ADD54: .word UNK_021CCD3C - - arm_func_start FUN_020ADD58 -FUN_020ADD58: - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r1, #0x0 - mov r6, r0 - bl FUN_020ADA98 - movs r4, r0 - beq _020ADDB8 -_020ADD74: - ldr r0, [r4, #0x18] - cmp r0, r5 - bhi _020ADDA4 - ldr r0, [r4, #0x1c] - cmp r5, r0 - bhs _020ADDA4 - mov r1, r5 - add r0, r4, #0xc - bl FUN_020ADD58 - cmp r0, #0x0 - moveq r0, r4 - ldmia sp!, {r4-r6,pc} -_020ADDA4: - mov r0, r6 - mov r1, r4 - bl FUN_020ADA98 - movs r4, r0 - bne _020ADD74 -_020ADDB8: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020ADDC0 -FUN_020ADDC0: ; 0x020ADDC0 - ldr r0, [r0, #-0xc] - bx lr - - arm_func_start FUN_020ADDC8 -FUN_020ADDC8: ; 0x020ADDC8 - ldr r2, [r0, #0x24] - mov r0, #0x0 - cmp r2, #0x0 - bxeq lr -_020ADDD8: - ldr r1, [r2, #0x4] - ldr r2, [r2, #0xc] - add r0, r0, r1 - cmp r2, #0x0 - bne _020ADDD8 - bx lr - - arm_func_start FUN_020ADDF0 -FUN_020ADDF0: ; 0x020ADDF0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - sub r4, r1, #0x10 - add r5, r0, #0x24 - add r0, sp, #0x0 - mov r1, r4 - bl FUN_020AE528 - mov r1, r4 - add r0, r5, #0x8 - bl FUN_020AE500 - add r1, sp, #0x0 - mov r0, r5 - bl FUN_020AE02C - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020ADE2C -FUN_020ADE2C: ; 0x020ADE2C - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x10 - mov r4, r1 - mov r10, r2 - sub r6, r4, #0x10 - add r1, r10, #0x3 - mov r5, r0 - ldr r8, [r6, #0x4] - bic r10, r1, #0x3 - cmp r10, r8 - add r7, r5, #0x24 - addeq sp, sp, #0x10 - moveq r0, r10 - ldmeqia sp!, {r4-r10,pc} - cmp r10, r8 - bls _020ADF60 - ldr r9, [r7, #0x0] - add r0, r6, #0x10 - cmp r9, #0x0 - add r0, r8, r0 - beq _020ADE94 -_020ADE80: - cmp r9, r0 - beq _020ADE94 - ldr r9, [r9, #0xc] - cmp r9, #0x0 - bne _020ADE80 -_020ADE94: - cmp r9, #0x0 - beq _020ADEB0 - ldr r0, [r9, #0x4] - add r1, r8, #0x10 - add r0, r1, r0 - cmp r10, r0 - bls _020ADEBC -_020ADEB0: - add sp, sp, #0x10 - mov r0, #0x0 - ldmia sp!, {r4-r10,pc} -_020ADEBC: - add r0, sp, #0x0 - mov r1, r9 - bl FUN_020AE528 - mov r0, r7 - mov r1, r9 - bl FUN_020AE500 - ldr r2, [sp, #0x4] - add r3, r10, r4 - ldr r9, [sp, #0x0] - sub r1, r2, r3 - str r3, [sp, #0x0] - cmp r1, #0x10 - strcc r2, [sp, #0x0] - mov r8, r0 - ldr r0, [sp, #0x0] - sub r0, r0, r4 - str r0, [r6, #0x4] - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r0, r1, r0 - cmp r0, #0x10 - blo _020ADF30 - ldr r1, _020ADF9C ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r8 - bl FUN_020AE4D0 -_020ADF30: - ldr r0, [r5, #0x20] - ldr r1, [sp, #0x0] - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - sub r2, r1, r9 - ands r0, r0, #0x1 - beq _020ADF90 - mov r1, r9 - mov r0, #0x0 - bl MIi_CpuClear32 - b _020ADF90 -_020ADF60: - add r0, r10, r4 - str r0, [sp, #0x8] - ldr r1, [r6, #0x4] - add r0, r6, #0x10 - add r0, r1, r0 - str r0, [sp, #0xc] - add r1, sp, #0x8 - mov r0, r7 - str r10, [r6, #0x4] - bl FUN_020AE02C - cmp r0, #0x0 - streq r8, [r6, #0x4] -_020ADF90: - ldr r0, [r6, #0x4] - add sp, sp, #0x10 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020ADF9C: .word 0x00004652 - - arm_func_start tempName_NNS_FndAllocFromExpHeapEx -tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - moveq r1, #0x1 - add r1, r1, #0x3 - cmp r2, #0x0 - bic r1, r1, #0x3 - blt _020ADFCC - bl FUN_020AE1D8 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADFCC: - rsb r2, r2, #0x0 - bl FUN_020AE11C - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start thunk_FUN_020adc8c -thunk_FUN_020adc8c: ; 0x020ADFDC - ldr ip, _020ADFE4 ; =FUN_020ADC8C - bx r12 - .balign 4 -_020ADFE4: .word FUN_020ADC8C - - arm_func_start tempName_NNS_FndCreateExpHeapEx -tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r1, r1, r0 - add r0, r0, #0x3 - bic r1, r1, #0x3 - bic r0, r0, #0x3 - cmp r0, r1 - bhi _020AE014 - sub r3, r1, r0 - cmp r3, #0x4c - bhs _020AE020 -_020AE014: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AE020: - bl FUN_020AE420 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE02C -FUN_020AE02C: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r1 - ldr r2, [r5, #0x0] - ldr r1, [r5, #0x4] - mov r6, r0 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [r6, #0x0] - mov r4, #0x0 - cmp r1, #0x0 - beq _020AE0A0 - ldr r0, [r5, #0x0] -_020AE060: - cmp r1, r0 - movcc r4, r1 - blo _020AE094 - ldr r0, [r5, #0x4] - cmp r1, r0 - bne _020AE0A0 - ldr r2, [r1, #0x4] - add r0, r1, #0x10 - add r2, r2, r0 - mov r0, r6 - str r2, [sp, #0x4] - bl FUN_020AE500 - b _020AE0A0 -_020AE094: - ldr r1, [r1, #0xc] - cmp r1, #0x0 - bne _020AE060 -_020AE0A0: - cmp r4, #0x0 - beq _020AE0D4 - ldr r2, [r4, #0x4] - add r1, r4, #0x10 - ldr r0, [r5, #0x0] - add r1, r2, r1 - cmp r1, r0 - bne _020AE0D4 - mov r0, r6 - mov r1, r4 - str r4, [sp, #0x0] - bl FUN_020AE500 - mov r4, r0 -_020AE0D4: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r0, r1, r0 - cmp r0, #0x10 - addcc sp, sp, #0x8 - movcc r0, #0x0 - ldmccia sp!, {r4-r6,pc} - ldr r1, _020AE118 ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r6 - mov r2, r4 - bl FUN_020AE4D0 - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AE118: .word 0x00004652 - - arm_func_start FUN_020AE11C -FUN_020AE11C: ; 0x020AE11C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - add r0, r0, #0x24 - ldrh r4, [r0, #0x12] - mov r3, r1 - mvn lr, #0x0 - and r1, r4, #0x1 - mov r1, r1, lsl #0x10 - movs r1, r1, lsr #0x10 - moveq r5, #0x1 - mov r1, #0x0 - ldr r4, [r0, #0x4] - movne r5, #0x0 - mov r12, r1 - cmp r4, #0x0 - beq _020AE1B0 - sub r2, r2, #0x1 - mvn r2, r2 -_020AE164: - ldr r8, [r4, #0x4] - add r9, r4, #0x10 - add r6, r8, r9 - sub r6, r6, r3 - and r7, r2, r6 - subs r6, r7, r9 - bmi _020AE1A4 - cmp lr, r8 - bls _020AE1A4 - mov r1, r4 - mov lr, r8 - mov r12, r7 - cmp r5, #0x0 - bne _020AE1B0 - cmp r8, r3 - beq _020AE1B0 -_020AE1A4: - ldr r4, [r4, #0x8] - cmp r4, #0x0 - bne _020AE164 -_020AE1B0: - cmp r1, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - mov r4, #0x1 - mov r2, r12 - str r4, [sp, #0x0] - bl FUN_020AE298 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - - arm_func_start FUN_020AE1D8 -FUN_020AE1D8: ; 0x020AE1D8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - add r0, r0, #0x24 - ldrh r4, [r0, #0x12] - mov r3, r1 - ldr r5, [r0, #0x0] - and r1, r4, #0x1 - mov r1, r1, lsl #0x10 - movs r1, r1, lsr #0x10 - moveq r6, #0x1 - mov r1, #0x0 - movne r6, #0x0 - mov lr, r1 - cmp r5, #0x0 - mvn r4, #0x0 - beq _020AE270 - sub r12, r2, #0x1 - mvn r2, r12 -_020AE220: - add r8, r5, #0x10 - add r7, r12, r8 - and r9, r2, r7 - sub r7, r9, r8 - ldr r8, [r5, #0x4] - add r7, r3, r7 - cmp r8, r7 - blo _020AE264 - cmp r4, r8 - bls _020AE264 - mov r1, r5 - mov r4, r8 - mov lr, r9 - cmp r6, #0x0 - bne _020AE270 - cmp r8, r3 - beq _020AE270 -_020AE264: - ldr r5, [r5, #0xc] - cmp r5, #0x0 - bne _020AE220 -_020AE270: - cmp r1, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - mov r4, #0x0 - mov r2, lr - str r4, [sp, #0x0] - bl FUN_020AE298 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - - arm_func_start FUN_020AE298 -FUN_020AE298: ; 0x020AE298 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x18 - mov r7, r0 - add r0, sp, #0x0 - mov r8, r1 - mov r6, r2 - mov r5, r3 - bl FUN_020AE528 - ldr r3, [sp, #0x4] - sub r4, r6, #0x10 - add r2, r5, r6 - mov r0, r7 - mov r1, r8 - str r4, [sp, #0x4] - str r3, [sp, #0xc] - str r2, [sp, #0x8] - bl FUN_020AE500 - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x4] - mov r5, r0 - sub r0, r1, r2 - cmp r0, #0x10 - strcc r2, [sp, #0x4] - blo _020AE318 - ldr r1, _020AE418 ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r5 - bl FUN_020AE4D0 - mov r5, r0 -_020AE318: - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x8] - sub r0, r1, r0 - cmp r0, #0x10 - strcc r1, [sp, #0x8] - blo _020AE34C - ldr r1, _020AE418 ; =0x00004652 - add r0, sp, #0x8 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r5 - bl FUN_020AE4D0 -_020AE34C: - ldr r0, [r7, #-0x4] - ldr r1, [sp, #0x4] - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - ldr r2, [sp, #0x8] - mov r0, r0, lsr #0x10 - sub r2, r2, r1 - ands r0, r0, #0x1 - beq _020AE378 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE378: - ldr r2, [sp, #0x8] - ldr r1, _020AE41C ; =0x00005544 - add r0, sp, #0x10 - str r4, [sp, #0x10] - str r2, [sp, #0x14] - bl FUN_020AE4A0 - mov r1, r0 - ldrh r3, [r1, #0x2] - ldrh r2, [sp, #0x30] - add r0, r7, #0x8 - bic r3, r3, #0x8000 - strh r3, [r1, #0x2] - ldrh r3, [r1, #0x2] - and r2, r2, #0x1 - orr r2, r3, r2, lsl #0xf - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - ldr r3, [sp, #0x4] - bic r2, r2, #0x7f00 - strh r2, [r1, #0x2] - sub r2, r1, r3 - mov r2, r2, lsl #0x10 - mov r2, r2, lsr #0x10 - ldrh r3, [r1, #0x2] - and r2, r2, #0x7f - orr r2, r3, r2, lsl #0x8 - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - ldrh r3, [r7, #0x10] - bic r2, r2, #0xff - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - and r3, r3, #0xff - orr r2, r2, r3 - strh r2, [r1, #0x2] - ldr r2, [r7, #0xc] - bl FUN_020AE4D0 - mov r0, r6 - add sp, sp, #0x18 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020AE418: .word 0x00004652 -_020AE41C: .word 0x00005544 - - arm_func_start FUN_020AE420 -FUN_020AE420: ; 0x020AE420 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r3, r1 - add r4, r5, #0x24 - str r2, [sp, #0x0] - ldr r1, _020AE498 ; =0x45585048 - add r2, r4, #0x14 - bl FUN_020ADCA4 - mov r0, #0x0 - strh r0, [r4, #0x10] - strh r0, [r4, #0x12] - ldrh r2, [r4, #0x12] - ldr r1, _020AE49C ; =0x00004652 - add r0, sp, #0x4 - bic r2, r2, #0x1 - strh r2, [r4, #0x12] - ldr r2, [r5, #0x18] - str r2, [sp, #0x4] - ldr r2, [r5, #0x1c] - str r2, [sp, #0x8] - bl FUN_020AE4A0 - str r0, [r5, #0x24] - str r0, [r4, #0x4] - mov r1, #0x0 - str r1, [r4, #0x8] - mov r0, r5 - str r1, [r4, #0xc] - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AE498: .word 0x45585048 -_020AE49C: .word 0x00004652 - - arm_func_start FUN_020AE4A0 -FUN_020AE4A0: ; 0x020AE4A0 - ldr r3, [r0, #0x0] - mov r2, #0x0 - strh r1, [r3, #0x0] - strh r2, [r3, #0x2] - ldr r1, [r0, #0x4] - add r0, r3, #0x10 - sub r0, r1, r0 - str r0, [r3, #0x4] - str r2, [r3, #0x8] - mov r0, r3 - str r2, [r3, #0xc] - bx lr - - arm_func_start FUN_020AE4D0 -FUN_020AE4D0: ; 0x020AE4D0 - str r2, [r1, #0x8] - cmp r2, #0x0 - ldrne r3, [r2, #0xc] - strne r1, [r2, #0xc] - ldreq r3, [r0, #0x0] - streq r1, [r0, #0x0] - str r3, [r1, #0xc] - cmp r3, #0x0 - strne r1, [r3, #0x8] - streq r1, [r0, #0x4] - mov r0, r1 - bx lr - - arm_func_start FUN_020AE500 -FUN_020AE500: ; 0x020AE500 - ldr r2, [r1, #0x8] - ldr r1, [r1, #0xc] - cmp r2, #0x0 - strne r1, [r2, #0xc] - streq r1, [r0, #0x0] - cmp r1, #0x0 - strne r2, [r1, #0x8] - streq r2, [r0, #0x4] - mov r0, r2 - bx lr - - arm_func_start FUN_020AE528 -FUN_020AE528: ; 0x020AE528 - ldrh r2, [r1, #0x2] - add r3, r1, #0x10 - mov r2, r2, asr #0x8 - and r2, r2, #0x7f - mov r2, r2, lsl #0x10 - sub r2, r1, r2, lsr #0x10 - str r2, [r0, #0x0] - ldr r1, [r1, #0x4] - add r1, r1, r3 - str r1, [r0, #0x4] - bx lr - - arm_func_start FUN_020AE554 -FUN_020AE554: ; 0x020AE554 - add r2, r0, #0x24 - cmp r1, #0x0 - ldr r3, [r2, #0x8] - beq _020AE584 - cmp r3, #0x0 - beq _020AE584 -_020AE56C: - ldr r0, [r3, #0x0] - cmp r0, r1 - beq _020AE584 - ldr r3, [r3, #0xc] - cmp r3, #0x0 - bne _020AE56C -_020AE584: - cmp r3, #0x0 - moveq r0, #0x0 - bxeq lr - ldr r1, [r3, #0x4] - mov r0, #0x1 - str r1, [r2, #0x0] - ldr r1, [r3, #0x8] - str r1, [r2, #0x4] - ldr r1, [r3, #0xc] - str r1, [r2, #0x8] - bx lr - - arm_func_start FUN_020AE5B0 -FUN_020AE5B0: ; 0x020AE5B0 - stmdb sp!, {r4-r6,lr} - add r4, r0, #0x24 - ldr r5, [r0, #0x24] - mov r6, r1 - mov r0, r4 - mov r1, #0x10 - mov r2, #0x4 - bl FUN_020AE77C - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - str r6, [r0, #0x0] - str r5, [r0, #0x4] - ldr r1, [r4, #0x4] - str r1, [r0, #0x8] - ldr r1, [r4, #0x8] - str r1, [r0, #0xc] - str r0, [r4, #0x8] - mov r0, #0x1 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020AE600 -FUN_020AE600: ; 0x020AE600 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - ands r1, r4, #0x1 - beq _020AE61C - bl FUN_020AE6F8 -_020AE61C: - ands r0, r4, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - mov r0, r5 - bl FUN_020AE6C8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020AE638 -FUN_020AE638: ; 0x020AE638 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - moveq r1, #0x1 - add r1, r1, #0x3 - add r0, r0, #0x24 - cmp r2, #0x0 - bic r1, r1, #0x3 - blt _020AE668 - bl FUN_020AE77C - add sp, sp, #0x4 - ldmia sp!, {pc} -_020AE668: - rsb r2, r2, #0x0 - bl FUN_020AE710 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start thunk_FUN_020adc8c_2 -thunk_FUN_020adc8c_2: ; 0x020AE678 - ldr ip, _020AE680 ; =FUN_020ADC8C - bx r12 - .balign 4 -_020AE680: .word FUN_020ADC8C - - arm_func_start FUN_020AE684 -FUN_020AE684: ; 0x020AE684 - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r1, r1, r0 - add r0, r0, #0x3 - bic r1, r1, #0x3 - bic r0, r0, #0x3 - cmp r0, r1 - bhi _020AE6B0 - sub r3, r1, r0 - cmp r3, #0x30 - bhs _020AE6BC -_020AE6B0: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AE6BC: - bl FUN_020AE7E0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE6C8 -FUN_020AE6C8: ; 0x020AE6C8 - add r2, r0, #0x24 - ldr r3, [r2, #0x8] - cmp r3, #0x0 - beq _020AE6EC -_020AE6D8: - ldr r1, [r0, #0x1c] - str r1, [r3, #0x8] - ldr r3, [r3, #0xc] - cmp r3, #0x0 - bne _020AE6D8 -_020AE6EC: - ldr r0, [r0, #0x1c] - str r0, [r2, #0x4] - bx lr - - arm_func_start FUN_020AE6F8 -FUN_020AE6F8: ; 0x020AE6F8 - ldr r1, [r0, #0x18] - add r2, r0, #0x24 - str r1, [r0, #0x24] - mov r0, #0x0 - str r0, [r2, #0x8] - bx lr - - arm_func_start FUN_020AE710 -FUN_020AE710: ; 0x020AE710 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r3, [r5, #0x4] - sub r0, r2, #0x1 - mvn r2, r0 - sub r1, r3, r1 - ldr r0, [r5, #0x0] - and r4, r2, r1 - cmp r4, r0 - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {r4-r5,pc} - ldr r0, [r5, #-0x4] - sub r2, r3, r4 - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - ands r0, r0, #0x1 - beq _020AE76C - mov r1, r4 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE76C: - mov r0, r4 - str r4, [r5, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020AE77C -FUN_020AE77C: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r0, [r6, #0x0] - sub r2, r2, #0x1 - mvn r3, r2 - add r2, r2, r0 - and r5, r3, r2 - ldr r2, [r6, #0x4] - add r4, r1, r5 - cmp r4, r2 - movhi r0, #0x0 - ldmhiia sp!, {r4-r6,pc} - ldr r1, [r6, #-0x4] - sub r2, r4, r0 - and r1, r1, #0xff - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - ands r1, r1, #0x1 - beq _020AE7D4 - mov r1, r0 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE7D4: - mov r0, r5 - str r4, [r6, #0x0] - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020AE7E0 -FUN_020AE7E0: ; 0x020AE7E0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r3, r1 - add r4, r5, #0x24 - str r2, [sp, #0x0] - ldr r1, _020AE828 ; =0x46524D48 - add r2, r4, #0xc - bl FUN_020ADCA4 - ldr r0, [r5, #0x18] - mov r1, #0x0 - str r0, [r5, #0x24] - ldr r2, [r5, #0x1c] - mov r0, r5 - str r2, [r4, #0x4] - str r1, [r4, #0x8] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AE828: .word 0x46524D48 - - arm_func_start FUN_020AE82C -FUN_020AE82C: ; 0x020AE82C - ldr ip, _020AE848 ; =UNK_020FF7CC - mov r3, #0x0 - str r12, [r0, #0x0] - str r1, [r0, #0x4] - str r2, [r0, #0x8] - str r3, [r0, #0xc] - bx lr - .balign 4 -_020AE848: .word UNK_020FF7CC - - arm_func_start FUN_020AE84C -FUN_020AE84C: ; 0x020AE84C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - ldr r2, [r2, #0x4] - blx r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE868 -FUN_020AE868: ; 0x020AE868 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - ldr r2, [r2, #0x0] - blx r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE884 -FUN_020AE884: ; 0x020AE884 - ldr ip, _020AE890 ; =FUN_020ADDF0 - ldr r0, [r0, #0x4] - bx r12 - .balign 4 -_020AE890: .word FUN_020ADDF0 - - arm_func_start FUN_020AE894 -FUN_020AE894: ; 0x020AE894 - ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx - mov r2, r0 - ldr r0, [r2, #0x4] - ldr r2, [r2, #0x8] - bx r12 - .balign 4 -_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx - arm_func_start FUN_020AE8AC FUN_020AE8AC: ; 0x020AE8AC mvn r0, #0x0 From 452a77b6be0a8ecaab453eed4a9031b7b19b3815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Sun, 23 May 2021 09:17:30 +0200 Subject: [PATCH 094/134] decompile unk_0200BA78.s --- arm9/asm/unk_0200BA78.s | 86 ----------------------------------------- arm9/src/unk_0200BA78.c | 36 +++++++++++++++++ include/unk_0200BA78.h | 19 +++++++++ 3 files changed, 55 insertions(+), 86 deletions(-) delete mode 100644 arm9/asm/unk_0200BA78.s create mode 100644 arm9/src/unk_0200BA78.c create mode 100644 include/unk_0200BA78.h diff --git a/arm9/asm/unk_0200BA78.s b/arm9/asm/unk_0200BA78.s deleted file mode 100644 index fccd5c4cb..000000000 --- a/arm9/asm/unk_0200BA78.s +++ /dev/null @@ -1,86 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0200BA78 -FUN_0200BA78: ; 0x0200BA78 - push {r3-r6, lr} - sub sp, #0xc - add r4, r2, #0x0 - ldr r2, [sp, #0x2c] - add r6, r3, #0x0 - str r2, [sp, #0x0] - ldr r2, [sp, #0x24] - ldr r3, [sp, #0x28] - add r5, r0, #0x0 - bl FUN_0200B9A8 - ldr r0, [sp, #0x24] - ldr r3, [sp, #0x20] - str r0, [sp, #0x0] - ldr r0, [sp, #0x28] - add r1, r4, #0x0 - add r0, #0x10 - str r0, [sp, #0x4] - ldr r0, [sp, #0x2c] - add r2, r6, #0x0 - str r0, [sp, #0x8] - add r0, r5, #0x0 - bl FUN_0200B9EC - add sp, #0xc - pop {r3-r6, pc} - - thumb_func_start FUN_0200BAAC -FUN_0200BAAC: ; 0x0200BAAC - push {r3-r7, lr} - add r7, r0, #0x0 - add r4, r2, #0x0 - ldr r2, [r7, #0x28] - ldr r6, [sp, #0x18] - lsl r0, r2, #0x4 - orr r0, r2 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #0x0] - add r0, r7, #0x0 - add r2, r3, #0x0 - add r0, #0x8 - add r3, r4, #0x0 - bl ConvertUIntToDecimalString - ldrh r1, [r7, #0x8] - ldr r0, _0200BB10 ; =0x0000FFFF - cmp r1, r0 - beq _0200BB0C - add r4, r7, #0x0 - mov r5, #0x0 -_0200BAD8: - ldrh r2, [r4, #0x8] - cmp r2, #0xa2 - blo _0200BAF6 - cmp r2, #0xab - bhi _0200BAF6 - ldr r0, [r7, #0x4] - sub r2, #0xa2 - ldr r1, [r0, #0x14] - lsl r0, r2, #0x5 - add r0, r1, r0 - add r1, r6, r5 - mov r2, #0x20 - bl MIi_CpuCopy32 - b _0200BB00 -_0200BAF6: - ldr r1, [sp, #0x0] - add r0, r6, r5 - mov r2, #0x20 - bl MI_CpuFill8 -_0200BB00: - add r4, r4, #0x2 - ldrh r1, [r4, #0x8] - ldr r0, _0200BB10 ; =0x0000FFFF - add r5, #0x20 - cmp r1, r0 - bne _0200BAD8 -_0200BB0C: - pop {r3-r7, pc} - nop -_0200BB10: .word 0x0000FFFF diff --git a/arm9/src/unk_0200BA78.c b/arm9/src/unk_0200BA78.c new file mode 100644 index 000000000..d98b5374a --- /dev/null +++ b/arm9/src/unk_0200BA78.c @@ -0,0 +1,36 @@ +#include "global.h" +#include "unk_0200BA78.h" +#include "script_buffers.h" + +THUMB_FUNC void FUN_0200BA78(struct UnkStruct_0200B870 *param0, + int param1, + u32 value, + u32 n, + enum PrintingMode mode, + struct Window *window, + int x, + int y) +{ + FUN_0200B9A8(param0, param1, window, x, y); + FUN_0200B9EC(param0, value, n, mode, window, x + 16, y); +} + +THUMB_FUNC void FUN_0200BAAC( + struct UnkStruct_0200B870 *param0, u32 value, u32 n, enum PrintingMode mode, void *dest) +{ + u8 st0 = (u8)((param0->unk_28 << 4) | param0->unk_28); + ConvertUIntToDecimalString(param0->data, value, mode, n); + + for (int i = 0; param0->data[i] != 0xffff; i++) + { + if (param0->data[i] >= 0xa2 && param0->data[i] <= 0xab) + { + MIi_CpuCopy32( + ¶m0->unk_4->unk_14[(param0->data[i] - 0xa2) << 5], dest + i * 0x20, 0x20); + } + else + { + MI_CpuFill8(dest + i * 0x20, st0, 0x20); + } + } +} diff --git a/include/unk_0200BA78.h b/include/unk_0200BA78.h new file mode 100644 index 000000000..2efe233e9 --- /dev/null +++ b/include/unk_0200BA78.h @@ -0,0 +1,19 @@ +#ifndef POKEDIAMOND_UNK_0200BA78_H +#define POKEDIAMOND_UNK_0200BA78_H + +#include "global.h" +#include "script_buffers.h" + +void FUN_0200BA78(struct UnkStruct_0200B870 *param0, + int param1, + u32 value, + u32 n, + enum PrintingMode mode, + struct Window *window, + int x, + int y); + +void FUN_0200BAAC( + struct UnkStruct_0200B870 *param0, u32 value, u32 n, enum PrintingMode mode, void *dest); + +#endif // POKEDIAMOND_UNK_0200BA78_H From de8a5e2c14aa91d95c30f77944f266b1e1a0ff0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 07:16:39 -0400 Subject: [PATCH 095/134] Split FX_sincos --- arm9/arm9.lsf | 1 + arm9/asm/NNS_FND_allocator.s | 1 + arm9/asm/unk_02006D98.s | 10 +- arm9/asm/unk_0200E850.s | 10 +- arm9/asm/unk_02011744.s | 2 +- arm9/asm/unk_02012944.s | 4 +- arm9/asm/unk_02013CD4.s | 6 +- arm9/asm/unk_02014BF4.s | 30 +- arm9/asm/unk_0201C7A0.s | 14 +- arm9/asm/unk_0201E7D8.s | 38 +- arm9/asm/unk_0201F06C.s | 6 +- arm9/asm/unk_02053750.s | 10 +- arm9/asm/unk_0208AC14.s | 44 +- arm9/asm/unk_020ADA84.s | 1133 +------ arm9/global.inc | 2 +- arm9/lib/src/FX_sincos.c | 4105 ++++++++++++++++++++++++ arm9/modules/05/asm/mod05_021E3444.s | 10 +- arm9/modules/05/asm/module_05.s | 20 +- arm9/modules/08/asm/module_08.s | 28 +- arm9/modules/16/asm/module_16.s | 10 +- arm9/modules/17/asm/module_17.s | 4 +- arm9/modules/18/asm/module_18.s | 22 +- arm9/modules/20/asm/module_20.s | 6 +- arm9/modules/64/asm/module_64.s | 12 +- arm9/modules/69/asm/module_69.s | 14 +- arm9/modules/73/asm/module_73.s | 14 +- arm9/modules/77/asm/module_77.s | 16 +- arm9/modules/81/asm/module_81.s | 16 +- arm9/modules/84/asm/module_84_thumb1.s | 8 +- arm9/src/math_util.c | 6 +- 30 files changed, 4340 insertions(+), 1262 deletions(-) create mode 100644 arm9/lib/src/FX_sincos.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 933128bf8..581d58e7b 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -371,6 +371,7 @@ Static arm9 Object FX_mtx44.o Object FX_cp.o Object FX_vec.o + Object FX_sincos.o Object FX_atan.o Object FX.o Object GX.o diff --git a/arm9/asm/NNS_FND_allocator.s b/arm9/asm/NNS_FND_allocator.s index e93809af3..f6e773448 100644 --- a/arm9/asm/NNS_FND_allocator.s +++ b/arm9/asm/NNS_FND_allocator.s @@ -3,6 +3,7 @@ .rodata + ; static const in function .global UNK_020FF7CC UNK_020FF7CC: ; 0x020FF7CC .word FUN_020AE894 diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 0e1ff9303..c1e95596f 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -2,7 +2,7 @@ .include "global.inc" .extern UNK_020ECD4C - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .section .rodata @@ -349,7 +349,7 @@ _02006F7E: ldrh r0, [r4, #0x38] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _02007268 ; =UNK_020FFA38 + ldr r0, _02007268 ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 @@ -358,7 +358,7 @@ _02006F7E: ldrh r0, [r4, #0x3a] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _02007268 ; =UNK_020FFA38 + ldr r0, _02007268 ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 @@ -367,7 +367,7 @@ _02006F7E: ldrh r0, [r4, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _02007268 ; =UNK_020FFA38 + ldr r0, _02007268 ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 @@ -689,7 +689,7 @@ _02007258: .word 0x000002E3 _0200725C: .word 0x04000454 _02007260: .word 0x040004AC _02007264: .word 0x04000470 -_02007268: .word UNK_020FFA38 +_02007268: .word FX_SinCosTable_ _0200726C: .word 0x040004C0 _02007270: .word 0x00004210 _02007274: .word 0x040004A4 diff --git a/arm9/asm/unk_0200E850.s b/arm9/asm/unk_0200E850.s index 15526585e..f42d0a24d 100644 --- a/arm9/asm/unk_0200E850.s +++ b/arm9/asm/unk_0200E850.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .section .rodata @@ -1353,7 +1353,7 @@ FUN_0200F0B4: ; 0x0200F0B4 asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 - ldr r2, _0200F0C8 ; =UNK_020FFA38 + ldr r2, _0200F0C8 ; =FX_SinCosTable_ add r1, r1, #0x1 lsl r1, r1, #0x1 ldr r3, _0200F0CC ; =FX_Div @@ -1361,7 +1361,7 @@ FUN_0200F0B4: ; 0x0200F0B4 ldrsh r1, [r2, r1] bx r3 .balign 4 -_0200F0C8: .word UNK_020FFA38 +_0200F0C8: .word FX_SinCosTable_ _0200F0CC: .word FX_Div thumb_func_start FUN_0200F0D0 @@ -4153,7 +4153,7 @@ FUN_020105A0: ; 0x020105A0 ldr r2, [r4, #0xc] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _02010680 ; =UNK_020FFA38 + ldr r0, _02010680 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -4249,7 +4249,7 @@ _02010634: add sp, #0x110 pop {r4-r7, pc} .balign 4 -_02010680: .word UNK_020FFA38 +_02010680: .word FX_SinCosTable_ _02010684: .word 0x0000FFFF thumb_func_start FUN_02010688 diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index 40ddf1abc..fc5c7b329 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .section .rodata diff --git a/arm9/asm/unk_02012944.s b/arm9/asm/unk_02012944.s index 03ccc1ea6..1c1f2ab29 100644 --- a/arm9/asm/unk_02012944.s +++ b/arm9/asm/unk_02012944.s @@ -323,7 +323,7 @@ FUN_02012B88: ; 0x02012B88 _02012BA0: asr r0, r4, #0x4 lsl r1, r0, #0x2 - ldr r0, _02012BDC ; =UNK_020FFA38 + ldr r0, _02012BDC ; =FX_SinCosTable_ ldr r2, [sp, #0x4] ldrsh r0, [r0, r1] ldr r3, [sp, #0x8] @@ -351,7 +351,7 @@ _02012BD6: add sp, #0xc pop {r4-r7, pc} nop -_02012BDC: .word UNK_020FFA38 +_02012BDC: .word FX_SinCosTable_ _02012BE0: .word 0x00000000 thumb_func_start FUN_02012BE4 diff --git a/arm9/asm/unk_02013CD4.s b/arm9/asm/unk_02013CD4.s index 7f278032f..f4fc4db42 100644 --- a/arm9/asm/unk_02013CD4.s +++ b/arm9/asm/unk_02013CD4.s @@ -2,7 +2,7 @@ .include "global.inc" .extern UNK_021064C0 - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .extern UNK_021064B8 .extern UNK_021064C4 .extern UNK_021064BC @@ -741,7 +741,7 @@ _02014172: str r1, [r3, #0x0] str r2, [r3, #0x0] ldr r0, [r5, #0x18] - ldr r1, _0201420C ; =UNK_020FFA38 + ldr r1, _0201420C ; =FX_SinCosTable_ asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r0, r2, #0x1 @@ -793,7 +793,7 @@ _020141FC: .word 0x7FFF8000 _02014200: .word 0x00004210 _02014204: .word 0x040004AC _02014208: .word 0x04000470 -_0201420C: .word UNK_020FFA38 +_0201420C: .word FX_SinCosTable_ _02014210: .word 0x0400046C _02014214: .word 0x04000448 diff --git a/arm9/asm/unk_02014BF4.s b/arm9/asm/unk_02014BF4.s index 20e8fa45e..a8205c887 100644 --- a/arm9/asm/unk_02014BF4.s +++ b/arm9/asm/unk_02014BF4.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .section .rodata @@ -1311,7 +1311,7 @@ FUN_0201551C: ; 0x0201551C ldr r2, [sp, #0x4] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _0201554C ; =UNK_020FFA38 + ldr r0, _0201554C ; =FX_SinCosTable_ ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc @@ -1323,7 +1323,7 @@ FUN_0201551C: ; 0x0201551C add sp, #0xc pop {r3-r4, pc} nop -_0201554C: .word UNK_020FFA38 +_0201554C: .word FX_SinCosTable_ thumb_func_start FUN_02015550 FUN_02015550: ; 0x02015550 @@ -1340,7 +1340,7 @@ FUN_02015550: ; 0x02015550 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 - ldr r1, _02015584 ; =UNK_020FFA38 + ldr r1, _02015584 ; =FX_SinCosTable_ ldrsh r1, [r1, r2] mul r1, r0 add r0, sp, #0x0 @@ -1352,7 +1352,7 @@ FUN_02015550: ; 0x02015550 add sp, #0xc pop {r3-r4, pc} nop -_02015584: .word UNK_020FFA38 +_02015584: .word FX_SinCosTable_ thumb_func_start FUN_02015588 FUN_02015588: ; 0x02015588 @@ -2032,7 +2032,7 @@ _02015A5C: ; jump table (using 16-bit offset) _02015A64: asr r0, r1, #0x4 lsl r1, r0, #0x2 - ldr r0, _02015AE8 ; =UNK_020FFA38 + ldr r0, _02015AE8 ; =FX_SinCosTable_ ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 @@ -2045,7 +2045,7 @@ _02015A78: lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 - ldr r1, _02015AE8 ; =UNK_020FFA38 + ldr r1, _02015AE8 ; =FX_SinCosTable_ ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 @@ -2056,7 +2056,7 @@ _02015A78: _02015A90: asr r0, r1, #0x4 lsl r1, r0, #0x2 - ldr r0, _02015AE8 ; =UNK_020FFA38 + ldr r0, _02015AE8 ; =FX_SinCosTable_ ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 @@ -2070,7 +2070,7 @@ _02015AA6: lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 - ldr r1, _02015AE8 ; =UNK_020FFA38 + ldr r1, _02015AE8 ; =FX_SinCosTable_ ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 @@ -2101,7 +2101,7 @@ _02015AC4: _02015AE6: pop {r4, pc} .balign 4 -_02015AE8: .word UNK_020FFA38 +_02015AE8: .word FX_SinCosTable_ thumb_func_start FUN_02015AEC FUN_02015AEC: ; 0x02015AEC @@ -2135,7 +2135,7 @@ _02015B1A: ; jump table (using 16-bit offset) _02015B22: asr r0, r1, #0x4 lsl r1, r0, #0x2 - ldr r0, _02015BA8 ; =UNK_020FFA38 + ldr r0, _02015BA8 ; =FX_SinCosTable_ ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 @@ -2148,7 +2148,7 @@ _02015B36: lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 - ldr r1, _02015BA8 ; =UNK_020FFA38 + ldr r1, _02015BA8 ; =FX_SinCosTable_ ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 @@ -2159,7 +2159,7 @@ _02015B36: _02015B4E: asr r0, r1, #0x4 lsl r1, r0, #0x2 - ldr r0, _02015BA8 ; =UNK_020FFA38 + ldr r0, _02015BA8 ; =FX_SinCosTable_ ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 @@ -2173,7 +2173,7 @@ _02015B64: lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 - ldr r1, _02015BA8 ; =UNK_020FFA38 + ldr r1, _02015BA8 ; =FX_SinCosTable_ ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 @@ -2204,7 +2204,7 @@ _02015B82: _02015BA4: pop {r4, pc} nop -_02015BA8: .word UNK_020FFA38 +_02015BA8: .word FX_SinCosTable_ thumb_func_start FUN_02015BAC FUN_02015BAC: ; 0x02015BAC diff --git a/arm9/asm/unk_0201C7A0.s b/arm9/asm/unk_0201C7A0.s index 0a43b49fd..aa8bfe838 100644 --- a/arm9/asm/unk_0201C7A0.s +++ b/arm9/asm/unk_0201C7A0.s @@ -2,7 +2,7 @@ .include "global.inc" .extern gSineTable - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .text @@ -401,7 +401,7 @@ FUN_0201CAA8: ; 0x0201CAA8 sub sp, #0x24 add r4, r1, #0x0 ldr r1, [r4, #0x0] - ldr r3, _0201CB1C ; =UNK_020FFA38 + ldr r3, _0201CB1C ; =FX_SinCosTable_ lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #0x4 @@ -414,7 +414,7 @@ FUN_0201CAA8: ; 0x0201CAA8 add r5, r0, #0x0 bl MTX_RotX33_ ldr r0, [r4, #0x4] - ldr r3, _0201CB1C ; =UNK_020FFA38 + ldr r3, _0201CB1C ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 @@ -431,7 +431,7 @@ FUN_0201CAA8: ; 0x0201CAA8 add r2, r5, #0x0 bl MTX_Concat33 ldr r0, [r4, #0x8] - ldr r3, _0201CB1C ; =UNK_020FFA38 + ldr r3, _0201CB1C ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 @@ -450,7 +450,7 @@ FUN_0201CAA8: ; 0x0201CAA8 add sp, #0x24 pop {r4-r5, pc} nop -_0201CB1C: .word UNK_020FFA38 +_0201CB1C: .word FX_SinCosTable_ thumb_func_start FUN_0201CB20 FUN_0201CB20: ; 0x0201CB20 @@ -504,7 +504,7 @@ FUN_0201CB7C: ; 0x0201CB7C lsl r2, r0, #0x1 add r6, r1, #0x0 lsl r0, r2, #0x1 - ldr r1, _0201CBE8 ; =UNK_020FFA38 + ldr r1, _0201CBE8 ; =FX_SinCosTable_ add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r1, r0] @@ -550,4 +550,4 @@ FUN_0201CB7C: ; 0x0201CB7C str r1, [r5, #0x0] pop {r3-r7, pc} .balign 4 -_0201CBE8: .word UNK_020FFA38 +_0201CBE8: .word FX_SinCosTable_ diff --git a/arm9/asm/unk_0201E7D8.s b/arm9/asm/unk_0201E7D8.s index a70f909d1..4f183c7e3 100644 --- a/arm9/asm/unk_0201E7D8.s +++ b/arm9/asm/unk_0201E7D8.s @@ -4,7 +4,7 @@ .extern UNK_021CED98 .extern UNK_021CEF64 .extern UNK_021CED20 - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .extern UNK_021CEF58 .extern UNK_021CEF70 .extern UNK_021CED64 @@ -32,7 +32,7 @@ FUN_0201E7D8: ; 0x0201E7D8 ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _0201E8B4 ; =UNK_020FFA38 + ldr r0, _0201E8B4 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -46,7 +46,7 @@ FUN_0201E7D8: ; 0x0201E7D8 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 - ldr r2, _0201E8B4 ; =UNK_020FFA38 + ldr r2, _0201E8B4 ; =FX_SinCosTable_ lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc @@ -69,7 +69,7 @@ FUN_0201E7D8: ; 0x0201E7D8 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 - ldr r0, _0201E8B4 ; =UNK_020FFA38 + ldr r0, _0201E8B4 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -86,7 +86,7 @@ FUN_0201E7D8: ; 0x0201E7D8 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 - ldr r2, _0201E8B4 ; =UNK_020FFA38 + ldr r2, _0201E8B4 ; =FX_SinCosTable_ orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f @@ -106,7 +106,7 @@ FUN_0201E7D8: ; 0x0201E7D8 str r1, [r5, #0x1c] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _0201E8B4 ; =UNK_020FFA38 + ldr r0, _0201E8B4 ; =FX_SinCosTable_ ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f @@ -129,7 +129,7 @@ FUN_0201E7D8: ; 0x0201E7D8 bl VEC_Add pop {r3-r5, pc} nop -_0201E8B4: .word UNK_020FFA38 +_0201E8B4: .word FX_SinCosTable_ thumb_func_start FUN_0201E8B8 FUN_0201E8B8: ; 0x0201E8B8 @@ -140,7 +140,7 @@ FUN_0201E8B8: ; 0x0201E8B8 ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _0201E998 ; =UNK_020FFA38 + ldr r0, _0201E998 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -154,7 +154,7 @@ FUN_0201E8B8: ; 0x0201E8B8 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 - ldr r2, _0201E998 ; =UNK_020FFA38 + ldr r2, _0201E998 ; =FX_SinCosTable_ lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc @@ -178,7 +178,7 @@ FUN_0201E8B8: ; 0x0201E8B8 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 - ldr r0, _0201E998 ; =UNK_020FFA38 + ldr r0, _0201E998 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -195,7 +195,7 @@ FUN_0201E8B8: ; 0x0201E8B8 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 - ldr r2, _0201E998 ; =UNK_020FFA38 + ldr r2, _0201E998 ; =FX_SinCosTable_ orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f @@ -216,7 +216,7 @@ FUN_0201E8B8: ; 0x0201E8B8 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _0201E998 ; =UNK_020FFA38 + ldr r0, _0201E998 ; =FX_SinCosTable_ ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f @@ -240,7 +240,7 @@ FUN_0201E8B8: ; 0x0201E8B8 bl VEC_Add pop {r3-r5, pc} .balign 4 -_0201E998: .word UNK_020FFA38 +_0201E998: .word FX_SinCosTable_ thumb_func_start FUN_0201E99C FUN_0201E99C: ; 0x0201E99C @@ -249,7 +249,7 @@ FUN_0201E99C: ; 0x0201E99C strh r0, [r2, #0x0] asr r0, r0, #0x4 lsl r3, r0, #0x1 - ldr r2, _0201E9E0 ; =UNK_020FFA38 + ldr r2, _0201E9E0 ; =FX_SinCosTable_ lsl r0, r3, #0x1 ldrsh r0, [r2, r0] str r0, [r1, #0x0] @@ -278,7 +278,7 @@ FUN_0201E99C: ; 0x0201E99C str r2, [r1, #0x64] bx lr nop -_0201E9E0: .word UNK_020FFA38 +_0201E9E0: .word FX_SinCosTable_ _0201E9E4: .word 0x00001555 thumb_func_start FUN_0201E9E8 @@ -973,7 +973,7 @@ FUN_0201EEF0: ; 0x0201EEF0 ldr r3, _0201EF24 ; =FUN_0201EE2C asr r0, r0, #0x4 lsl r2, r0, #0x2 - ldr r0, _0201EF28 ; =UNK_020FFA38 + ldr r0, _0201EF28 ; =FX_SinCosTable_ ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 @@ -991,7 +991,7 @@ FUN_0201EEF0: ; 0x0201EEF0 bx r3 nop _0201EF24: .word FUN_0201EE2C -_0201EF28: .word UNK_020FFA38 +_0201EF28: .word FX_SinCosTable_ thumb_func_start FUN_0201EF2C FUN_0201EF2C: ; 0x0201EF2C @@ -1008,7 +1008,7 @@ FUN_0201EF2C: ; 0x0201EF2C ldrh r0, [r0, #0x0] asr r0, r0, #0x4 lsl r2, r0, #0x2 - ldr r0, _0201EF6C ; =UNK_020FFA38 + ldr r0, _0201EF6C ; =FX_SinCosTable_ ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 @@ -1026,7 +1026,7 @@ FUN_0201EF2C: ; 0x0201EF2C bx r3 nop _0201EF68: .word FUN_0201EE2C -_0201EF6C: .word UNK_020FFA38 +_0201EF6C: .word FX_SinCosTable_ thumb_func_start FUN_0201EF70 FUN_0201EF70: ; 0x0201EF70 diff --git a/arm9/asm/unk_0201F06C.s b/arm9/asm/unk_0201F06C.s index e48364ec9..c032ba646 100644 --- a/arm9/asm/unk_0201F06C.s +++ b/arm9/asm/unk_0201F06C.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .extern UNK_021064C0 .extern UNK_021064B8 .extern UNK_021064BC @@ -3171,7 +3171,7 @@ _0202068E: ldr r2, [r4, #0x20] bl FUN_020B28B4 ldrh r0, [r4, #0x24] - ldr r2, _02020770 ; =UNK_020FFA38 + ldr r2, _02020770 ; =FX_SinCosTable_ asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 @@ -3262,7 +3262,7 @@ _02020764: add sp, #0xc pop {r3-r6, pc} .balign 4 -_02020770: .word UNK_020FFA38 +_02020770: .word FX_SinCosTable_ thumb_func_start FUN_02020774 FUN_02020774: ; 0x02020774 diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 4724c3080..0cf428b23 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .section .rodata .global UNK_020F5C04 @@ -1320,7 +1320,7 @@ FUN_020540E8: ; 0x020540E8 ldr r1, [sp, #0x4] asr r0, r0, #0x4 lsl r5, r0, #0x2 - ldr r0, _02054164 ; =UNK_020FFA38 + ldr r0, _02054164 ; =FX_SinCosTable_ ldrsh r5, [r0, r5] asr r0, r5, #0x1f lsr r6, r5, #0x10 @@ -1363,7 +1363,7 @@ _0205415E: add sp, #0xc pop {r3-r6, pc} .balign 4 -_02054164: .word UNK_020FFA38 +_02054164: .word FX_SinCosTable_ thumb_func_start FUN_02054168 FUN_02054168: ; 0x02054168 @@ -1801,7 +1801,7 @@ _0205447E: ldr r6, [sp, #0x4] asr r0, r0, #0x4 lsl r1, r0, #0x2 - ldr r0, _02054500 ; =UNK_020FFA38 + ldr r0, _02054500 ; =FX_SinCosTable_ ldrsh r0, [r0, r1] asr r3, r0, #0x1f lsr r1, r0, #0xf @@ -1851,7 +1851,7 @@ _020544F8: add sp, #0xc pop {r4-r7, pc} nop -_02054500: .word UNK_020FFA38 +_02054500: .word FX_SinCosTable_ _02054504: .word 0x00000666 thumb_func_start FUN_02054508 diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s index 4d334a195..058f8c32f 100644 --- a/arm9/asm/unk_0208AC14.s +++ b/arm9/asm/unk_0208AC14.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_020FFA38 + .extern FX_SinCosTable_ .extern UNK_021064B8 .extern UNK_021064C0 @@ -1823,7 +1823,7 @@ FUN_0208C4F4: ; 0x0208C4F4 ldr r0, [r5, #0x40] ldrh r1, [r4, #0x20] ldr r0, [r0, #0x20] - ldr r6, _0208C954 ; =UNK_020FFA38 + ldr r6, _0208C954 ; =FX_SinCosTable_ ldr r0, [r0, #0x14] mov r1, r1, asr #0x4 ldrh r0, [r0, #0x0] @@ -2087,7 +2087,7 @@ _0208C8BC: bx lr .balign 4 _0208C950: .word 0x040004A4 -_0208C954: .word UNK_020FFA38 +_0208C954: .word FX_SinCosTable_ _0208C958: .word UNK_02106160 _0208C95C: .word 0x00000CCD _0208C960: .word 0xFFFFF333 @@ -2125,7 +2125,7 @@ FUN_0208C974: ; 0x0208C974 ldr r0, [r5, #0x40] ldrh r1, [r4, #0x20] ldr r0, [r0, #0x20] - ldr r6, _0208CDD0 ; =UNK_020FFA38 + ldr r6, _0208CDD0 ; =FX_SinCosTable_ ldr r0, [r0, #0x0] mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 @@ -2388,7 +2388,7 @@ _0208CD38: bx lr .balign 4 _0208CDCC: .word 0x040004A4 -_0208CDD0: .word UNK_020FFA38 +_0208CDD0: .word FX_SinCosTable_ _0208CDD4: .word UNK_02106160 _0208CDD8: .word 0x00000CCD _0208CDDC: .word 0xFFFFF333 @@ -2426,7 +2426,7 @@ FUN_0208CDF0: ; 0x0208CDF0 ldr r0, [r5, #0x40] ldrh r1, [r4, #0x20] ldr r0, [r0, #0x20] - ldr r6, _0208D128 ; =UNK_020FFA38 + ldr r6, _0208D128 ; =FX_SinCosTable_ ldr r0, [r0, #0x14] mov r1, r1, asr #0x4 ldrh r0, [r0, #0x0] @@ -2612,7 +2612,7 @@ _0208D090: bx lr .balign 4 _0208D124: .word 0x040004A4 -_0208D128: .word UNK_020FFA38 +_0208D128: .word FX_SinCosTable_ _0208D12C: .word UNK_02106160 _0208D130: .word 0x04000454 _0208D134: .word 0x04000470 @@ -2648,7 +2648,7 @@ FUN_0208D140: ; 0x0208D140 ldr r0, [r5, #0x40] ldrh r1, [r4, #0x20] ldr r0, [r0, #0x20] - ldr r6, _0208D478 ; =UNK_020FFA38 + ldr r6, _0208D478 ; =FX_SinCosTable_ ldr r0, [r0, #0x0] mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 @@ -2834,7 +2834,7 @@ _0208D3E0: bx lr .balign 4 _0208D474: .word 0x040004A4 -_0208D478: .word UNK_020FFA38 +_0208D478: .word FX_SinCosTable_ _0208D47C: .word UNK_02106160 _0208D480: .word 0x04000454 _0208D484: .word 0x04000470 @@ -3854,7 +3854,7 @@ _0208E39C: str r3, [sp, #0x8] bl MTX_MultVec43 ldrh r0, [r6, #0x20] - ldr r2, _0208E69C ; =UNK_020FFA38 + ldr r2, _0208E69C ; =FX_SinCosTable_ mov r9, #0x0 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 @@ -3935,7 +3935,7 @@ _0208E4BC: str r3, [sp, #0x8] bl MTX_MultVec43 ldrh r0, [r6, #0x20] - ldr r2, _0208E69C ; =UNK_020FFA38 + ldr r2, _0208E69C ; =FX_SinCosTable_ mov lr, #0x0 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 @@ -4029,7 +4029,7 @@ _0208E620: bx lr .balign 4 _0208E698: .word 0x040004A4 -_0208E69C: .word UNK_020FFA38 +_0208E69C: .word FX_SinCosTable_ _0208E6A0: .word 0x04000454 _0208E6A4: .word 0x04000470 _0208E6A8: .word 0x04000480 @@ -4139,7 +4139,7 @@ _0208E7E0: str r3, [sp, #0x8] bl MTX_MultVec43 ldrh r0, [r8, #0x20] - ldr r2, _0208EAE8 ; =UNK_020FFA38 + ldr r2, _0208EAE8 ; =FX_SinCosTable_ ldr r12, [sp, #0x0] mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 @@ -4220,7 +4220,7 @@ _0208E90C: str r3, [sp, #0x8] bl MTX_MultVec43 ldrh r0, [r8, #0x20] - ldr r2, _0208EAE8 ; =UNK_020FFA38 + ldr r2, _0208EAE8 ; =FX_SinCosTable_ mov r8, #0x0 mov r0, r0, asr #0x4 mov r3, r0, lsl #0x1 @@ -4313,7 +4313,7 @@ _0208EA70: bx lr .balign 4 _0208EAE4: .word 0x040004A4 -_0208EAE8: .word UNK_020FFA38 +_0208EAE8: .word FX_SinCosTable_ _0208EAEC: .word 0x04000454 _0208EAF0: .word 0x04000470 _0208EAF4: .word 0x04000480 @@ -4846,12 +4846,12 @@ _0208F294: add r1, r1, #0x10000 mov r2, r0, lsl #0x1 str r1, [sp, #0x18] - ldr r0, _0208FD98 ; =UNK_020FFA38 + ldr r0, _0208FD98 ; =FX_SinCosTable_ mov r1, r2, lsl #0x1 ldrsh r0, [r0, r1] add r1, r2, #0x1 mov r2, r1, lsl #0x1 - ldr r1, _0208FD98 ; =UNK_020FFA38 + ldr r1, _0208FD98 ; =FX_SinCosTable_ ldrsh r3, [r1, r2] ldr r2, [r9, #0x5c] mov r1, #0x800 @@ -5562,7 +5562,7 @@ _0208FD88: .word 0x00000FFF _0208FD8C: .word UNK_021C8C5C _0208FD90: .word 0x5EEDF715 _0208FD94: .word 0x1B0CB173 -_0208FD98: .word UNK_020FFA38 +_0208FD98: .word FX_SinCosTable_ _0208FD9C: .word 0x00000003 _0208FDA0: .word 0xAAAAAAAB _0208FDA4: .word 0x0000FFFF @@ -6265,7 +6265,7 @@ FUN_02090780: ; 0x02090780 b _02090838 _020907AC: ldrh r1, [r0, #0x0] - ldr r3, _02090854 ; =UNK_020FFA38 + ldr r3, _02090854 ; =FX_SinCosTable_ add r0, sp, #0x0 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 @@ -6278,7 +6278,7 @@ _020907AC: b _02090838 _020907DC: ldrh r1, [r0, #0x0] - ldr r3, _02090854 ; =UNK_020FFA38 + ldr r3, _02090854 ; =FX_SinCosTable_ add r0, sp, #0x0 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 @@ -6291,7 +6291,7 @@ _020907DC: b _02090838 _0209080C: ldrh r1, [r0, #0x0] - ldr r3, _02090854 ; =UNK_020FFA38 + ldr r3, _02090854 ; =FX_SinCosTable_ add r0, sp, #0x0 mov r1, r1, asr #0x4 mov r2, r1, lsl #0x1 @@ -6310,7 +6310,7 @@ _02090838: ldmia sp!, {r4,lr} bx lr .balign 4 -_02090854: .word UNK_020FFA38 +_02090854: .word FX_SinCosTable_ arm_func_start FUN_02090858 FUN_02090858: ; 0x02090858 diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s index 7a31a3de8..f06eeff0d 100644 --- a/arm9/asm/unk_020ADA84.s +++ b/arm9/asm/unk_020ADA84.s @@ -8,6 +8,7 @@ .section .rodata + ; static const in function .global UNK_020FF7D4 UNK_020FF7D4: ; 0x020FF7D4 .word FUN_020AF2B4 @@ -47,6 +48,7 @@ UNK_020FF7D4: ; 0x020FF7D4 .word GXS_LoadOAM_2 .word GXS_LoadOBJ_2 + ; const initializer .global UNK_020FF864 UNK_020FF864: ; 0x020FF864 .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 @@ -63,14 +65,17 @@ UNK_020FF8AC: ; 0x020FF8AC .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 + ; static const in function .global UNK_020FF8C4 UNK_020FF8C4: ; 0x020FF8C4 .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 + ; static const in function .global UNK_020FF8D0 UNK_020FF8D0: ; 0x020FF8D0 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + ; static const in function .global UNK_020FF8D8 UNK_020FF8D8: ; 0x020FF8D8 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 @@ -93,11 +98,13 @@ UNK_020FF958: ; 0x020FF958 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + ; static const in function .global UNK_020FF970 UNK_020FF970: ; 0x020FF970 .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01 .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03 + ; static const in function .global UNK_020FF990 UNK_020FF990: ; 0x020FF990 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 @@ -105,1073 +112,37 @@ UNK_020FF990: ; 0x020FF990 .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0 + ; static const in function .global UNK_020FF9D0 UNK_020FF9D0: ; 0x020FF9D0 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F + ; static const in function .global UNK_020FF9F0 UNK_020FF9F0: ; 0x020FF9F0 - .byte 0x04 - - .global UNK_020FF9F1 -UNK_020FF9F1: ; 0x020FF9F1 - .byte 0x05 - - .global UNK_020FF9F2 -UNK_020FF9F2: ; 0x020FF9F2 - .byte 0x07 - - .global UNK_020FF9F3 -UNK_020FF9F3: ; 0x020FF9F3 - .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06 - .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03 - .byte 0x04 + .byte 0x04, 0x05, 0x07, 0x08 + .byte 0x03, 0x05, 0x06, 0x08 + .byte 0x03, 0x04, 0x06, 0x07 + .byte 0x01, 0x02, 0x07, 0x08 + .byte 0x00, 0x02, 0x06, 0x08 + .byte 0x00, 0x01, 0x06, 0x07 + .byte 0x01, 0x02, 0x04, 0x05 + .byte 0x00, 0x02, 0x03, 0x05 + .byte 0x00, 0x01, 0x03, 0x04 + ; static const in function .global UNK_020FFA14 UNK_020FFA14: ; 0x020FFA14 - .byte 0x04 - - .global UNK_020FFA15 -UNK_020FFA15: ; 0x020FFA15 - .byte 0x05 - - .global UNK_020FFA16 -UNK_020FFA16: ; 0x020FFA16 - .byte 0x07 - - .global UNK_020FFA17 -UNK_020FFA17: ; 0x020FFA17 - .byte 0x08, 0x03, 0x05, 0x06, 0x08, 0x03, 0x04, 0x06, 0x07, 0x01, 0x02, 0x07, 0x08, 0x00, 0x02, 0x06 - .byte 0x08, 0x00, 0x01, 0x06, 0x07, 0x01, 0x02, 0x04, 0x05, 0x00, 0x02, 0x03, 0x05, 0x00, 0x01, 0x03 - .byte 0x04 - - .global UNK_020FFA38 -UNK_020FFA38: ; 0x020FFA38 - .byte 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10, - .byte 0x19, 0x00, 0x00, 0x10, 0x1F, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10, - .byte 0x32, 0x00, 0x00, 0x10, 0x39, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x45, 0x00, 0xFF, 0x0F, - .byte 0x4B, 0x00, 0xFF, 0x0F, 0x52, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F, - .byte 0x65, 0x00, 0xFF, 0x0F, 0x6B, 0x00, 0xFF, 0x0F, 0x71, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F, - .byte 0x7E, 0x00, 0xFE, 0x0F, 0x84, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x90, 0x00, 0xFD, 0x0F, - .byte 0x97, 0x00, 0xFD, 0x0F, 0x9D, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0xAA, 0x00, 0xFC, 0x0F, - .byte 0xB0, 0x00, 0xFC, 0x0F, 0xB6, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xC3, 0x00, 0xFB, 0x0F, - .byte 0xC9, 0x00, 0xFB, 0x0F, 0xCF, 0x00, 0xFB, 0x0F, 0xD6, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F, - .byte 0xE2, 0x00, 0xFA, 0x0F, 0xE8, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F, - .byte 0xFB, 0x00, 0xF8, 0x0F, 0x01, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x0E, 0x01, 0xF7, 0x0F, - .byte 0x14, 0x01, 0xF7, 0x0F, 0x1B, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x27, 0x01, 0xF5, 0x0F, - .byte 0x2D, 0x01, 0xF5, 0x0F, 0x34, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x40, 0x01, 0xF3, 0x0F, - .byte 0x46, 0x01, 0xF3, 0x0F, 0x4D, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x59, 0x01, 0xF1, 0x0F, - .byte 0x5F, 0x01, 0xF1, 0x0F, 0x66, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x72, 0x01, 0xEF, 0x0F, - .byte 0x78, 0x01, 0xEF, 0x0F, 0x7F, 0x01, 0xEE, 0x0F, 0x85, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F, - .byte 0x91, 0x01, 0xEC, 0x0F, 0x98, 0x01, 0xEC, 0x0F, 0x9E, 0x01, 0xEB, 0x0F, 0xA4, 0x01, 0xEA, 0x0F, - .byte 0xAA, 0x01, 0xEA, 0x0F, 0xB1, 0x01, 0xE9, 0x0F, 0xB7, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F, - .byte 0xC3, 0x01, 0xE7, 0x0F, 0xCA, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xD6, 0x01, 0xE5, 0x0F, - .byte 0xDC, 0x01, 0xE4, 0x0F, 0xE3, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xEF, 0x01, 0xE2, 0x0F, - .byte 0xF5, 0x01, 0xE1, 0x0F, 0xFC, 0x01, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0x08, 0x02, 0xDF, 0x0F, - .byte 0x0E, 0x02, 0xDE, 0x0F, 0x15, 0x02, 0xDD, 0x0F, 0x1B, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F, - .byte 0x27, 0x02, 0xDB, 0x0F, 0x2D, 0x02, 0xDA, 0x0F, 0x34, 0x02, 0xD9, 0x0F, 0x3A, 0x02, 0xD8, 0x0F, - .byte 0x40, 0x02, 0xD7, 0x0F, 0x46, 0x02, 0xD6, 0x0F, 0x4D, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F, - .byte 0x59, 0x02, 0xD4, 0x0F, 0x5F, 0x02, 0xD3, 0x0F, 0x65, 0x02, 0xD2, 0x0F, 0x6C, 0x02, 0xD1, 0x0F, - .byte 0x72, 0x02, 0xD0, 0x0F, 0x78, 0x02, 0xCF, 0x0F, 0x7E, 0x02, 0xCE, 0x0F, 0x84, 0x02, 0xCD, 0x0F, - .byte 0x8B, 0x02, 0xCC, 0x0F, 0x91, 0x02, 0xCB, 0x0F, 0x97, 0x02, 0xCA, 0x0F, 0x9D, 0x02, 0xC9, 0x0F, - .byte 0xA3, 0x02, 0xC8, 0x0F, 0xAA, 0x02, 0xC7, 0x0F, 0xB0, 0x02, 0xC6, 0x0F, 0xB6, 0x02, 0xC5, 0x0F, - .byte 0xBC, 0x02, 0xC4, 0x0F, 0xC2, 0x02, 0xC3, 0x0F, 0xC9, 0x02, 0xC2, 0x0F, 0xCF, 0x02, 0xC0, 0x0F, - .byte 0xD5, 0x02, 0xBF, 0x0F, 0xDB, 0x02, 0xBE, 0x0F, 0xE1, 0x02, 0xBD, 0x0F, 0xE8, 0x02, 0xBC, 0x0F, - .byte 0xEE, 0x02, 0xBB, 0x0F, 0xF4, 0x02, 0xBA, 0x0F, 0xFA, 0x02, 0xB8, 0x0F, 0x00, 0x03, 0xB7, 0x0F, - .byte 0x06, 0x03, 0xB6, 0x0F, 0x0D, 0x03, 0xB5, 0x0F, 0x13, 0x03, 0xB4, 0x0F, 0x19, 0x03, 0xB3, 0x0F, - .byte 0x1F, 0x03, 0xB1, 0x0F, 0x25, 0x03, 0xB0, 0x0F, 0x2B, 0x03, 0xAF, 0x0F, 0x32, 0x03, 0xAE, 0x0F, - .byte 0x38, 0x03, 0xAC, 0x0F, 0x3E, 0x03, 0xAB, 0x0F, 0x44, 0x03, 0xAA, 0x0F, 0x4A, 0x03, 0xA8, 0x0F, - .byte 0x50, 0x03, 0xA7, 0x0F, 0x56, 0x03, 0xA6, 0x0F, 0x5D, 0x03, 0xA5, 0x0F, 0x63, 0x03, 0xA3, 0x0F, - .byte 0x69, 0x03, 0xA2, 0x0F, 0x6F, 0x03, 0xA1, 0x0F, 0x75, 0x03, 0x9F, 0x0F, 0x7B, 0x03, 0x9E, 0x0F, - .byte 0x81, 0x03, 0x9C, 0x0F, 0x88, 0x03, 0x9B, 0x0F, 0x8E, 0x03, 0x9A, 0x0F, 0x94, 0x03, 0x98, 0x0F, - .byte 0x9A, 0x03, 0x97, 0x0F, 0xA0, 0x03, 0x95, 0x0F, 0xA6, 0x03, 0x94, 0x0F, 0xAC, 0x03, 0x93, 0x0F, - .byte 0xB2, 0x03, 0x91, 0x0F, 0xB9, 0x03, 0x90, 0x0F, 0xBF, 0x03, 0x8E, 0x0F, 0xC5, 0x03, 0x8D, 0x0F, - .byte 0xCB, 0x03, 0x8B, 0x0F, 0xD1, 0x03, 0x8A, 0x0F, 0xD7, 0x03, 0x88, 0x0F, 0xDD, 0x03, 0x87, 0x0F, - .byte 0xE3, 0x03, 0x85, 0x0F, 0xE9, 0x03, 0x84, 0x0F, 0xEF, 0x03, 0x82, 0x0F, 0xF6, 0x03, 0x81, 0x0F, - .byte 0xFC, 0x03, 0x7F, 0x0F, 0x02, 0x04, 0x7D, 0x0F, 0x08, 0x04, 0x7C, 0x0F, 0x0E, 0x04, 0x7A, 0x0F, - .byte 0x14, 0x04, 0x79, 0x0F, 0x1A, 0x04, 0x77, 0x0F, 0x20, 0x04, 0x76, 0x0F, 0x26, 0x04, 0x74, 0x0F, - .byte 0x2C, 0x04, 0x72, 0x0F, 0x32, 0x04, 0x71, 0x0F, 0x38, 0x04, 0x6F, 0x0F, 0x3E, 0x04, 0x6D, 0x0F, - .byte 0x44, 0x04, 0x6C, 0x0F, 0x4B, 0x04, 0x6A, 0x0F, 0x51, 0x04, 0x68, 0x0F, 0x57, 0x04, 0x67, 0x0F, - .byte 0x5D, 0x04, 0x65, 0x0F, 0x63, 0x04, 0x63, 0x0F, 0x69, 0x04, 0x61, 0x0F, 0x6F, 0x04, 0x60, 0x0F, - .byte 0x75, 0x04, 0x5E, 0x0F, 0x7B, 0x04, 0x5C, 0x0F, 0x81, 0x04, 0x5A, 0x0F, 0x87, 0x04, 0x59, 0x0F, - .byte 0x8D, 0x04, 0x57, 0x0F, 0x93, 0x04, 0x55, 0x0F, 0x99, 0x04, 0x53, 0x0F, 0x9F, 0x04, 0x51, 0x0F, - .byte 0xA5, 0x04, 0x50, 0x0F, 0xAB, 0x04, 0x4E, 0x0F, 0xB1, 0x04, 0x4C, 0x0F, 0xB7, 0x04, 0x4A, 0x0F, - .byte 0xBD, 0x04, 0x48, 0x0F, 0xC3, 0x04, 0x46, 0x0F, 0xC9, 0x04, 0x45, 0x0F, 0xCF, 0x04, 0x43, 0x0F, - .byte 0xD5, 0x04, 0x41, 0x0F, 0xDB, 0x04, 0x3F, 0x0F, 0xE1, 0x04, 0x3D, 0x0F, 0xE7, 0x04, 0x3B, 0x0F, - .byte 0xED, 0x04, 0x39, 0x0F, 0xF3, 0x04, 0x37, 0x0F, 0xF9, 0x04, 0x35, 0x0F, 0xFF, 0x04, 0x33, 0x0F, - .byte 0x05, 0x05, 0x31, 0x0F, 0x0B, 0x05, 0x2F, 0x0F, 0x11, 0x05, 0x2D, 0x0F, 0x17, 0x05, 0x2B, 0x0F, - .byte 0x1D, 0x05, 0x29, 0x0F, 0x23, 0x05, 0x27, 0x0F, 0x29, 0x05, 0x25, 0x0F, 0x2F, 0x05, 0x23, 0x0F, - .byte 0x34, 0x05, 0x21, 0x0F, 0x3A, 0x05, 0x1F, 0x0F, 0x40, 0x05, 0x1D, 0x0F, 0x46, 0x05, 0x1B, 0x0F, - .byte 0x4C, 0x05, 0x19, 0x0F, 0x52, 0x05, 0x17, 0x0F, 0x58, 0x05, 0x15, 0x0F, 0x5E, 0x05, 0x13, 0x0F, - .byte 0x64, 0x05, 0x11, 0x0F, 0x6A, 0x05, 0x0E, 0x0F, 0x70, 0x05, 0x0C, 0x0F, 0x76, 0x05, 0x0A, 0x0F, - .byte 0x7C, 0x05, 0x08, 0x0F, 0x81, 0x05, 0x06, 0x0F, 0x87, 0x05, 0x04, 0x0F, 0x8D, 0x05, 0x02, 0x0F, - .byte 0x93, 0x05, 0xFF, 0x0E, 0x99, 0x05, 0xFD, 0x0E, 0x9F, 0x05, 0xFB, 0x0E, 0xA5, 0x05, 0xF9, 0x0E, - .byte 0xAB, 0x05, 0xF7, 0x0E, 0xB1, 0x05, 0xF4, 0x0E, 0xB6, 0x05, 0xF2, 0x0E, 0xBC, 0x05, 0xF0, 0x0E, - .byte 0xC2, 0x05, 0xEE, 0x0E, 0xC8, 0x05, 0xEB, 0x0E, 0xCE, 0x05, 0xE9, 0x0E, 0xD4, 0x05, 0xE7, 0x0E, - .byte 0xDA, 0x05, 0xE4, 0x0E, 0xDF, 0x05, 0xE2, 0x0E, 0xE5, 0x05, 0xE0, 0x0E, 0xEB, 0x05, 0xDD, 0x0E, - .byte 0xF1, 0x05, 0xDB, 0x0E, 0xF7, 0x05, 0xD9, 0x0E, 0xFD, 0x05, 0xD6, 0x0E, 0x02, 0x06, 0xD4, 0x0E, - .byte 0x08, 0x06, 0xD2, 0x0E, 0x0E, 0x06, 0xCF, 0x0E, 0x14, 0x06, 0xCD, 0x0E, 0x1A, 0x06, 0xCB, 0x0E, - .byte 0x1F, 0x06, 0xC8, 0x0E, 0x25, 0x06, 0xC6, 0x0E, 0x2B, 0x06, 0xC3, 0x0E, 0x31, 0x06, 0xC1, 0x0E, - .byte 0x37, 0x06, 0xBF, 0x0E, 0x3C, 0x06, 0xBC, 0x0E, 0x42, 0x06, 0xBA, 0x0E, 0x48, 0x06, 0xB7, 0x0E, - .byte 0x4E, 0x06, 0xB5, 0x0E, 0x54, 0x06, 0xB2, 0x0E, 0x59, 0x06, 0xB0, 0x0E, 0x5F, 0x06, 0xAD, 0x0E, - .byte 0x65, 0x06, 0xAB, 0x0E, 0x6B, 0x06, 0xA8, 0x0E, 0x70, 0x06, 0xA6, 0x0E, 0x76, 0x06, 0xA3, 0x0E, - .byte 0x7C, 0x06, 0xA1, 0x0E, 0x82, 0x06, 0x9E, 0x0E, 0x87, 0x06, 0x9B, 0x0E, 0x8D, 0x06, 0x99, 0x0E, - .byte 0x93, 0x06, 0x96, 0x0E, 0x99, 0x06, 0x94, 0x0E, 0x9E, 0x06, 0x91, 0x0E, 0xA4, 0x06, 0x8F, 0x0E, - .byte 0xAA, 0x06, 0x8C, 0x0E, 0xAF, 0x06, 0x89, 0x0E, 0xB5, 0x06, 0x87, 0x0E, 0xBB, 0x06, 0x84, 0x0E, - .byte 0xC1, 0x06, 0x81, 0x0E, 0xC6, 0x06, 0x7F, 0x0E, 0xCC, 0x06, 0x7C, 0x0E, 0xD2, 0x06, 0x79, 0x0E, - .byte 0xD7, 0x06, 0x77, 0x0E, 0xDD, 0x06, 0x74, 0x0E, 0xE3, 0x06, 0x71, 0x0E, 0xE8, 0x06, 0x6F, 0x0E, - .byte 0xEE, 0x06, 0x6C, 0x0E, 0xF4, 0x06, 0x69, 0x0E, 0xF9, 0x06, 0x66, 0x0E, 0xFF, 0x06, 0x64, 0x0E, - .byte 0x05, 0x07, 0x61, 0x0E, 0x0A, 0x07, 0x5E, 0x0E, 0x10, 0x07, 0x5B, 0x0E, 0x15, 0x07, 0x59, 0x0E, - .byte 0x1B, 0x07, 0x56, 0x0E, 0x21, 0x07, 0x53, 0x0E, 0x26, 0x07, 0x50, 0x0E, 0x2C, 0x07, 0x4D, 0x0E, - .byte 0x32, 0x07, 0x4B, 0x0E, 0x37, 0x07, 0x48, 0x0E, 0x3D, 0x07, 0x45, 0x0E, 0x42, 0x07, 0x42, 0x0E, - .byte 0x48, 0x07, 0x3F, 0x0E, 0x4E, 0x07, 0x3C, 0x0E, 0x53, 0x07, 0x3A, 0x0E, 0x59, 0x07, 0x37, 0x0E, - .byte 0x5E, 0x07, 0x34, 0x0E, 0x64, 0x07, 0x31, 0x0E, 0x6A, 0x07, 0x2E, 0x0E, 0x6F, 0x07, 0x2B, 0x0E, - .byte 0x75, 0x07, 0x28, 0x0E, 0x7A, 0x07, 0x25, 0x0E, 0x80, 0x07, 0x22, 0x0E, 0x85, 0x07, 0x1F, 0x0E, - .byte 0x8B, 0x07, 0x1C, 0x0E, 0x90, 0x07, 0x19, 0x0E, 0x96, 0x07, 0x16, 0x0E, 0x9B, 0x07, 0x13, 0x0E, - .byte 0xA1, 0x07, 0x10, 0x0E, 0xA6, 0x07, 0x0D, 0x0E, 0xAC, 0x07, 0x0A, 0x0E, 0xB2, 0x07, 0x07, 0x0E, - .byte 0xB7, 0x07, 0x04, 0x0E, 0xBD, 0x07, 0x01, 0x0E, 0xC2, 0x07, 0xFE, 0x0D, 0xC8, 0x07, 0xFB, 0x0D, - .byte 0xCD, 0x07, 0xF8, 0x0D, 0xD2, 0x07, 0xF5, 0x0D, 0xD8, 0x07, 0xF2, 0x0D, 0xDD, 0x07, 0xEF, 0x0D, - .byte 0xE3, 0x07, 0xEC, 0x0D, 0xE8, 0x07, 0xE9, 0x0D, 0xEE, 0x07, 0xE6, 0x0D, 0xF3, 0x07, 0xE3, 0x0D, - .byte 0xF9, 0x07, 0xDF, 0x0D, 0xFE, 0x07, 0xDC, 0x0D, 0x04, 0x08, 0xD9, 0x0D, 0x09, 0x08, 0xD6, 0x0D, - .byte 0x0E, 0x08, 0xD3, 0x0D, 0x14, 0x08, 0xD0, 0x0D, 0x19, 0x08, 0xCC, 0x0D, 0x1F, 0x08, 0xC9, 0x0D, - .byte 0x24, 0x08, 0xC6, 0x0D, 0x2A, 0x08, 0xC3, 0x0D, 0x2F, 0x08, 0xC0, 0x0D, 0x34, 0x08, 0xBC, 0x0D, - .byte 0x3A, 0x08, 0xB9, 0x0D, 0x3F, 0x08, 0xB6, 0x0D, 0x45, 0x08, 0xB3, 0x0D, 0x4A, 0x08, 0xB0, 0x0D, - .byte 0x4F, 0x08, 0xAC, 0x0D, 0x55, 0x08, 0xA9, 0x0D, 0x5A, 0x08, 0xA6, 0x0D, 0x5F, 0x08, 0xA2, 0x0D, - .byte 0x65, 0x08, 0x9F, 0x0D, 0x6A, 0x08, 0x9C, 0x0D, 0x6F, 0x08, 0x99, 0x0D, 0x75, 0x08, 0x95, 0x0D, - .byte 0x7A, 0x08, 0x92, 0x0D, 0x7F, 0x08, 0x8F, 0x0D, 0x85, 0x08, 0x8B, 0x0D, 0x8A, 0x08, 0x88, 0x0D, - .byte 0x8F, 0x08, 0x85, 0x0D, 0x95, 0x08, 0x81, 0x0D, 0x9A, 0x08, 0x7E, 0x0D, 0x9F, 0x08, 0x7A, 0x0D, - .byte 0xA5, 0x08, 0x77, 0x0D, 0xAA, 0x08, 0x74, 0x0D, 0xAF, 0x08, 0x70, 0x0D, 0xB4, 0x08, 0x6D, 0x0D, - .byte 0xBA, 0x08, 0x69, 0x0D, 0xBF, 0x08, 0x66, 0x0D, 0xC4, 0x08, 0x62, 0x0D, 0xC9, 0x08, 0x5F, 0x0D, - .byte 0xCF, 0x08, 0x5C, 0x0D, 0xD4, 0x08, 0x58, 0x0D, 0xD9, 0x08, 0x55, 0x0D, 0xDE, 0x08, 0x51, 0x0D, - .byte 0xE4, 0x08, 0x4E, 0x0D, 0xE9, 0x08, 0x4A, 0x0D, 0xEE, 0x08, 0x47, 0x0D, 0xF3, 0x08, 0x43, 0x0D, - .byte 0xF8, 0x08, 0x40, 0x0D, 0xFE, 0x08, 0x3C, 0x0D, 0x03, 0x09, 0x39, 0x0D, 0x08, 0x09, 0x35, 0x0D, - .byte 0x0D, 0x09, 0x32, 0x0D, 0x12, 0x09, 0x2E, 0x0D, 0x18, 0x09, 0x2A, 0x0D, 0x1D, 0x09, 0x27, 0x0D, - .byte 0x22, 0x09, 0x23, 0x0D, 0x27, 0x09, 0x20, 0x0D, 0x2C, 0x09, 0x1C, 0x0D, 0x31, 0x09, 0x18, 0x0D, - .byte 0x37, 0x09, 0x15, 0x0D, 0x3C, 0x09, 0x11, 0x0D, 0x41, 0x09, 0x0E, 0x0D, 0x46, 0x09, 0x0A, 0x0D, - .byte 0x4B, 0x09, 0x06, 0x0D, 0x50, 0x09, 0x03, 0x0D, 0x55, 0x09, 0xFF, 0x0C, 0x5A, 0x09, 0xFB, 0x0C, - .byte 0x5F, 0x09, 0xF8, 0x0C, 0x65, 0x09, 0xF4, 0x0C, 0x6A, 0x09, 0xF0, 0x0C, 0x6F, 0x09, 0xED, 0x0C, - .byte 0x74, 0x09, 0xE9, 0x0C, 0x79, 0x09, 0xE5, 0x0C, 0x7E, 0x09, 0xE1, 0x0C, 0x83, 0x09, 0xDE, 0x0C, - .byte 0x88, 0x09, 0xDA, 0x0C, 0x8D, 0x09, 0xD6, 0x0C, 0x92, 0x09, 0xD2, 0x0C, 0x97, 0x09, 0xCF, 0x0C, - .byte 0x9C, 0x09, 0xCB, 0x0C, 0xA1, 0x09, 0xC7, 0x0C, 0xA6, 0x09, 0xC3, 0x0C, 0xAB, 0x09, 0xC0, 0x0C, - .byte 0xB0, 0x09, 0xBC, 0x0C, 0xB5, 0x09, 0xB8, 0x0C, 0xBA, 0x09, 0xB4, 0x0C, 0xBF, 0x09, 0xB0, 0x0C, - .byte 0xC4, 0x09, 0xAC, 0x0C, 0xC9, 0x09, 0xA9, 0x0C, 0xCE, 0x09, 0xA5, 0x0C, 0xD3, 0x09, 0xA1, 0x0C, - .byte 0xD8, 0x09, 0x9D, 0x0C, 0xDD, 0x09, 0x99, 0x0C, 0xE2, 0x09, 0x95, 0x0C, 0xE7, 0x09, 0x91, 0x0C, - .byte 0xEC, 0x09, 0x8E, 0x0C, 0xF1, 0x09, 0x8A, 0x0C, 0xF6, 0x09, 0x86, 0x0C, 0xFB, 0x09, 0x82, 0x0C, - .byte 0xFF, 0x09, 0x7E, 0x0C, 0x04, 0x0A, 0x7A, 0x0C, 0x09, 0x0A, 0x76, 0x0C, 0x0E, 0x0A, 0x72, 0x0C, - .byte 0x13, 0x0A, 0x6E, 0x0C, 0x18, 0x0A, 0x6A, 0x0C, 0x1D, 0x0A, 0x66, 0x0C, 0x22, 0x0A, 0x62, 0x0C, - .byte 0x26, 0x0A, 0x5E, 0x0C, 0x2B, 0x0A, 0x5A, 0x0C, 0x30, 0x0A, 0x56, 0x0C, 0x35, 0x0A, 0x52, 0x0C, - .byte 0x3A, 0x0A, 0x4E, 0x0C, 0x3F, 0x0A, 0x4A, 0x0C, 0x44, 0x0A, 0x46, 0x0C, 0x48, 0x0A, 0x42, 0x0C, - .byte 0x4D, 0x0A, 0x3E, 0x0C, 0x52, 0x0A, 0x3A, 0x0C, 0x57, 0x0A, 0x36, 0x0C, 0x5C, 0x0A, 0x32, 0x0C, - .byte 0x60, 0x0A, 0x2E, 0x0C, 0x65, 0x0A, 0x2A, 0x0C, 0x6A, 0x0A, 0x26, 0x0C, 0x6F, 0x0A, 0x22, 0x0C, - .byte 0x73, 0x0A, 0x1E, 0x0C, 0x78, 0x0A, 0x19, 0x0C, 0x7D, 0x0A, 0x15, 0x0C, 0x82, 0x0A, 0x11, 0x0C, - .byte 0x86, 0x0A, 0x0D, 0x0C, 0x8B, 0x0A, 0x09, 0x0C, 0x90, 0x0A, 0x05, 0x0C, 0x95, 0x0A, 0x01, 0x0C, - .byte 0x99, 0x0A, 0xFC, 0x0B, 0x9E, 0x0A, 0xF8, 0x0B, 0xA3, 0x0A, 0xF4, 0x0B, 0xA7, 0x0A, 0xF0, 0x0B, - .byte 0xAC, 0x0A, 0xEC, 0x0B, 0xB1, 0x0A, 0xE8, 0x0B, 0xB5, 0x0A, 0xE3, 0x0B, 0xBA, 0x0A, 0xDF, 0x0B, - .byte 0xBF, 0x0A, 0xDB, 0x0B, 0xC3, 0x0A, 0xD7, 0x0B, 0xC8, 0x0A, 0xD2, 0x0B, 0xCD, 0x0A, 0xCE, 0x0B, - .byte 0xD1, 0x0A, 0xCA, 0x0B, 0xD6, 0x0A, 0xC6, 0x0B, 0xDB, 0x0A, 0xC1, 0x0B, 0xDF, 0x0A, 0xBD, 0x0B, - .byte 0xE4, 0x0A, 0xB9, 0x0B, 0xE8, 0x0A, 0xB5, 0x0B, 0xED, 0x0A, 0xB0, 0x0B, 0xF2, 0x0A, 0xAC, 0x0B, - .byte 0xF6, 0x0A, 0xA8, 0x0B, 0xFB, 0x0A, 0xA3, 0x0B, 0xFF, 0x0A, 0x9F, 0x0B, 0x04, 0x0B, 0x9B, 0x0B, - .byte 0x08, 0x0B, 0x97, 0x0B, 0x0D, 0x0B, 0x92, 0x0B, 0x11, 0x0B, 0x8E, 0x0B, 0x16, 0x0B, 0x89, 0x0B, - .byte 0x1B, 0x0B, 0x85, 0x0B, 0x1F, 0x0B, 0x81, 0x0B, 0x24, 0x0B, 0x7C, 0x0B, 0x28, 0x0B, 0x78, 0x0B, - .byte 0x2D, 0x0B, 0x74, 0x0B, 0x31, 0x0B, 0x6F, 0x0B, 0x36, 0x0B, 0x6B, 0x0B, 0x3A, 0x0B, 0x66, 0x0B, - .byte 0x3E, 0x0B, 0x62, 0x0B, 0x43, 0x0B, 0x5E, 0x0B, 0x47, 0x0B, 0x59, 0x0B, 0x4C, 0x0B, 0x55, 0x0B, - .byte 0x50, 0x0B, 0x50, 0x0B, 0x55, 0x0B, 0x4C, 0x0B, 0x59, 0x0B, 0x47, 0x0B, 0x5E, 0x0B, 0x43, 0x0B, - .byte 0x62, 0x0B, 0x3E, 0x0B, 0x66, 0x0B, 0x3A, 0x0B, 0x6B, 0x0B, 0x36, 0x0B, 0x6F, 0x0B, 0x31, 0x0B, - .byte 0x74, 0x0B, 0x2D, 0x0B, 0x78, 0x0B, 0x28, 0x0B, 0x7C, 0x0B, 0x24, 0x0B, 0x81, 0x0B, 0x1F, 0x0B, - .byte 0x85, 0x0B, 0x1B, 0x0B, 0x89, 0x0B, 0x16, 0x0B, 0x8E, 0x0B, 0x11, 0x0B, 0x92, 0x0B, 0x0D, 0x0B, - .byte 0x97, 0x0B, 0x08, 0x0B, 0x9B, 0x0B, 0x04, 0x0B, 0x9F, 0x0B, 0xFF, 0x0A, 0xA3, 0x0B, 0xFB, 0x0A, - .byte 0xA8, 0x0B, 0xF6, 0x0A, 0xAC, 0x0B, 0xF2, 0x0A, 0xB0, 0x0B, 0xED, 0x0A, 0xB5, 0x0B, 0xE8, 0x0A, - .byte 0xB9, 0x0B, 0xE4, 0x0A, 0xBD, 0x0B, 0xDF, 0x0A, 0xC1, 0x0B, 0xDB, 0x0A, 0xC6, 0x0B, 0xD6, 0x0A, - .byte 0xCA, 0x0B, 0xD1, 0x0A, 0xCE, 0x0B, 0xCD, 0x0A, 0xD2, 0x0B, 0xC8, 0x0A, 0xD7, 0x0B, 0xC3, 0x0A, - .byte 0xDB, 0x0B, 0xBF, 0x0A, 0xDF, 0x0B, 0xBA, 0x0A, 0xE3, 0x0B, 0xB5, 0x0A, 0xE8, 0x0B, 0xB1, 0x0A, - .byte 0xEC, 0x0B, 0xAC, 0x0A, 0xF0, 0x0B, 0xA7, 0x0A, 0xF4, 0x0B, 0xA3, 0x0A, 0xF8, 0x0B, 0x9E, 0x0A, - .byte 0xFC, 0x0B, 0x99, 0x0A, 0x01, 0x0C, 0x95, 0x0A, 0x05, 0x0C, 0x90, 0x0A, 0x09, 0x0C, 0x8B, 0x0A, - .byte 0x0D, 0x0C, 0x86, 0x0A, 0x11, 0x0C, 0x82, 0x0A, 0x15, 0x0C, 0x7D, 0x0A, 0x19, 0x0C, 0x78, 0x0A, - .byte 0x1E, 0x0C, 0x73, 0x0A, 0x22, 0x0C, 0x6F, 0x0A, 0x26, 0x0C, 0x6A, 0x0A, 0x2A, 0x0C, 0x65, 0x0A, - .byte 0x2E, 0x0C, 0x60, 0x0A, 0x32, 0x0C, 0x5C, 0x0A, 0x36, 0x0C, 0x57, 0x0A, 0x3A, 0x0C, 0x52, 0x0A, - .byte 0x3E, 0x0C, 0x4D, 0x0A, 0x42, 0x0C, 0x48, 0x0A, 0x46, 0x0C, 0x44, 0x0A, 0x4A, 0x0C, 0x3F, 0x0A, - .byte 0x4E, 0x0C, 0x3A, 0x0A, 0x52, 0x0C, 0x35, 0x0A, 0x56, 0x0C, 0x30, 0x0A, 0x5A, 0x0C, 0x2B, 0x0A, - .byte 0x5E, 0x0C, 0x26, 0x0A, 0x62, 0x0C, 0x22, 0x0A, 0x66, 0x0C, 0x1D, 0x0A, 0x6A, 0x0C, 0x18, 0x0A, - .byte 0x6E, 0x0C, 0x13, 0x0A, 0x72, 0x0C, 0x0E, 0x0A, 0x76, 0x0C, 0x09, 0x0A, 0x7A, 0x0C, 0x04, 0x0A, - .byte 0x7E, 0x0C, 0xFF, 0x09, 0x82, 0x0C, 0xFB, 0x09, 0x86, 0x0C, 0xF6, 0x09, 0x8A, 0x0C, 0xF1, 0x09, - .byte 0x8E, 0x0C, 0xEC, 0x09, 0x91, 0x0C, 0xE7, 0x09, 0x95, 0x0C, 0xE2, 0x09, 0x99, 0x0C, 0xDD, 0x09, - .byte 0x9D, 0x0C, 0xD8, 0x09, 0xA1, 0x0C, 0xD3, 0x09, 0xA5, 0x0C, 0xCE, 0x09, 0xA9, 0x0C, 0xC9, 0x09, - .byte 0xAC, 0x0C, 0xC4, 0x09, 0xB0, 0x0C, 0xBF, 0x09, 0xB4, 0x0C, 0xBA, 0x09, 0xB8, 0x0C, 0xB5, 0x09, - .byte 0xBC, 0x0C, 0xB0, 0x09, 0xC0, 0x0C, 0xAB, 0x09, 0xC3, 0x0C, 0xA6, 0x09, 0xC7, 0x0C, 0xA1, 0x09, - .byte 0xCB, 0x0C, 0x9C, 0x09, 0xCF, 0x0C, 0x97, 0x09, 0xD2, 0x0C, 0x92, 0x09, 0xD6, 0x0C, 0x8D, 0x09, - .byte 0xDA, 0x0C, 0x88, 0x09, 0xDE, 0x0C, 0x83, 0x09, 0xE1, 0x0C, 0x7E, 0x09, 0xE5, 0x0C, 0x79, 0x09, - .byte 0xE9, 0x0C, 0x74, 0x09, 0xED, 0x0C, 0x6F, 0x09, 0xF0, 0x0C, 0x6A, 0x09, 0xF4, 0x0C, 0x65, 0x09, - .byte 0xF8, 0x0C, 0x5F, 0x09, 0xFB, 0x0C, 0x5A, 0x09, 0xFF, 0x0C, 0x55, 0x09, 0x03, 0x0D, 0x50, 0x09, - .byte 0x06, 0x0D, 0x4B, 0x09, 0x0A, 0x0D, 0x46, 0x09, 0x0E, 0x0D, 0x41, 0x09, 0x11, 0x0D, 0x3C, 0x09, - .byte 0x15, 0x0D, 0x37, 0x09, 0x18, 0x0D, 0x31, 0x09, 0x1C, 0x0D, 0x2C, 0x09, 0x20, 0x0D, 0x27, 0x09, - .byte 0x23, 0x0D, 0x22, 0x09, 0x27, 0x0D, 0x1D, 0x09, 0x2A, 0x0D, 0x18, 0x09, 0x2E, 0x0D, 0x12, 0x09, - .byte 0x32, 0x0D, 0x0D, 0x09, 0x35, 0x0D, 0x08, 0x09, 0x39, 0x0D, 0x03, 0x09, 0x3C, 0x0D, 0xFE, 0x08, - .byte 0x40, 0x0D, 0xF8, 0x08, 0x43, 0x0D, 0xF3, 0x08, 0x47, 0x0D, 0xEE, 0x08, 0x4A, 0x0D, 0xE9, 0x08, - .byte 0x4E, 0x0D, 0xE4, 0x08, 0x51, 0x0D, 0xDE, 0x08, 0x55, 0x0D, 0xD9, 0x08, 0x58, 0x0D, 0xD4, 0x08, - .byte 0x5C, 0x0D, 0xCF, 0x08, 0x5F, 0x0D, 0xC9, 0x08, 0x62, 0x0D, 0xC4, 0x08, 0x66, 0x0D, 0xBF, 0x08, - .byte 0x69, 0x0D, 0xBA, 0x08, 0x6D, 0x0D, 0xB4, 0x08, 0x70, 0x0D, 0xAF, 0x08, 0x74, 0x0D, 0xAA, 0x08, - .byte 0x77, 0x0D, 0xA5, 0x08, 0x7A, 0x0D, 0x9F, 0x08, 0x7E, 0x0D, 0x9A, 0x08, 0x81, 0x0D, 0x95, 0x08, - .byte 0x85, 0x0D, 0x8F, 0x08, 0x88, 0x0D, 0x8A, 0x08, 0x8B, 0x0D, 0x85, 0x08, 0x8F, 0x0D, 0x7F, 0x08, - .byte 0x92, 0x0D, 0x7A, 0x08, 0x95, 0x0D, 0x75, 0x08, 0x99, 0x0D, 0x6F, 0x08, 0x9C, 0x0D, 0x6A, 0x08, - .byte 0x9F, 0x0D, 0x65, 0x08, 0xA2, 0x0D, 0x5F, 0x08, 0xA6, 0x0D, 0x5A, 0x08, 0xA9, 0x0D, 0x55, 0x08, - .byte 0xAC, 0x0D, 0x4F, 0x08, 0xB0, 0x0D, 0x4A, 0x08, 0xB3, 0x0D, 0x45, 0x08, 0xB6, 0x0D, 0x3F, 0x08, - .byte 0xB9, 0x0D, 0x3A, 0x08, 0xBC, 0x0D, 0x34, 0x08, 0xC0, 0x0D, 0x2F, 0x08, 0xC3, 0x0D, 0x2A, 0x08, - .byte 0xC6, 0x0D, 0x24, 0x08, 0xC9, 0x0D, 0x1F, 0x08, 0xCC, 0x0D, 0x19, 0x08, 0xD0, 0x0D, 0x14, 0x08, - .byte 0xD3, 0x0D, 0x0E, 0x08, 0xD6, 0x0D, 0x09, 0x08, 0xD9, 0x0D, 0x04, 0x08, 0xDC, 0x0D, 0xFE, 0x07, - .byte 0xDF, 0x0D, 0xF9, 0x07, 0xE3, 0x0D, 0xF3, 0x07, 0xE6, 0x0D, 0xEE, 0x07, 0xE9, 0x0D, 0xE8, 0x07, - .byte 0xEC, 0x0D, 0xE3, 0x07, 0xEF, 0x0D, 0xDD, 0x07, 0xF2, 0x0D, 0xD8, 0x07, 0xF5, 0x0D, 0xD2, 0x07, - .byte 0xF8, 0x0D, 0xCD, 0x07, 0xFB, 0x0D, 0xC8, 0x07, 0xFE, 0x0D, 0xC2, 0x07, 0x01, 0x0E, 0xBD, 0x07, - .byte 0x04, 0x0E, 0xB7, 0x07, 0x07, 0x0E, 0xB2, 0x07, 0x0A, 0x0E, 0xAC, 0x07, 0x0D, 0x0E, 0xA6, 0x07, - .byte 0x10, 0x0E, 0xA1, 0x07, 0x13, 0x0E, 0x9B, 0x07, 0x16, 0x0E, 0x96, 0x07, 0x19, 0x0E, 0x90, 0x07, - .byte 0x1C, 0x0E, 0x8B, 0x07, 0x1F, 0x0E, 0x85, 0x07, 0x22, 0x0E, 0x80, 0x07, 0x25, 0x0E, 0x7A, 0x07, - .byte 0x28, 0x0E, 0x75, 0x07, 0x2B, 0x0E, 0x6F, 0x07, 0x2E, 0x0E, 0x6A, 0x07, 0x31, 0x0E, 0x64, 0x07, - .byte 0x34, 0x0E, 0x5E, 0x07, 0x37, 0x0E, 0x59, 0x07, 0x3A, 0x0E, 0x53, 0x07, 0x3C, 0x0E, 0x4E, 0x07, - .byte 0x3F, 0x0E, 0x48, 0x07, 0x42, 0x0E, 0x42, 0x07, 0x45, 0x0E, 0x3D, 0x07, 0x48, 0x0E, 0x37, 0x07, - .byte 0x4B, 0x0E, 0x32, 0x07, 0x4D, 0x0E, 0x2C, 0x07, 0x50, 0x0E, 0x26, 0x07, 0x53, 0x0E, 0x21, 0x07, - .byte 0x56, 0x0E, 0x1B, 0x07, 0x59, 0x0E, 0x15, 0x07, 0x5B, 0x0E, 0x10, 0x07, 0x5E, 0x0E, 0x0A, 0x07, - .byte 0x61, 0x0E, 0x05, 0x07, 0x64, 0x0E, 0xFF, 0x06, 0x66, 0x0E, 0xF9, 0x06, 0x69, 0x0E, 0xF4, 0x06, - .byte 0x6C, 0x0E, 0xEE, 0x06, 0x6F, 0x0E, 0xE8, 0x06, 0x71, 0x0E, 0xE3, 0x06, 0x74, 0x0E, 0xDD, 0x06, - .byte 0x77, 0x0E, 0xD7, 0x06, 0x79, 0x0E, 0xD2, 0x06, 0x7C, 0x0E, 0xCC, 0x06, 0x7F, 0x0E, 0xC6, 0x06, - .byte 0x81, 0x0E, 0xC1, 0x06, 0x84, 0x0E, 0xBB, 0x06, 0x87, 0x0E, 0xB5, 0x06, 0x89, 0x0E, 0xAF, 0x06, - .byte 0x8C, 0x0E, 0xAA, 0x06, 0x8F, 0x0E, 0xA4, 0x06, 0x91, 0x0E, 0x9E, 0x06, 0x94, 0x0E, 0x99, 0x06, - .byte 0x96, 0x0E, 0x93, 0x06, 0x99, 0x0E, 0x8D, 0x06, 0x9B, 0x0E, 0x87, 0x06, 0x9E, 0x0E, 0x82, 0x06, - .byte 0xA1, 0x0E, 0x7C, 0x06, 0xA3, 0x0E, 0x76, 0x06, 0xA6, 0x0E, 0x70, 0x06, 0xA8, 0x0E, 0x6B, 0x06, - .byte 0xAB, 0x0E, 0x65, 0x06, 0xAD, 0x0E, 0x5F, 0x06, 0xB0, 0x0E, 0x59, 0x06, 0xB2, 0x0E, 0x54, 0x06, - .byte 0xB5, 0x0E, 0x4E, 0x06, 0xB7, 0x0E, 0x48, 0x06, 0xBA, 0x0E, 0x42, 0x06, 0xBC, 0x0E, 0x3C, 0x06, - .byte 0xBF, 0x0E, 0x37, 0x06, 0xC1, 0x0E, 0x31, 0x06, 0xC3, 0x0E, 0x2B, 0x06, 0xC6, 0x0E, 0x25, 0x06, - .byte 0xC8, 0x0E, 0x1F, 0x06, 0xCB, 0x0E, 0x1A, 0x06, 0xCD, 0x0E, 0x14, 0x06, 0xCF, 0x0E, 0x0E, 0x06, - .byte 0xD2, 0x0E, 0x08, 0x06, 0xD4, 0x0E, 0x02, 0x06, 0xD6, 0x0E, 0xFD, 0x05, 0xD9, 0x0E, 0xF7, 0x05, - .byte 0xDB, 0x0E, 0xF1, 0x05, 0xDD, 0x0E, 0xEB, 0x05, 0xE0, 0x0E, 0xE5, 0x05, 0xE2, 0x0E, 0xDF, 0x05, - .byte 0xE4, 0x0E, 0xDA, 0x05, 0xE7, 0x0E, 0xD4, 0x05, 0xE9, 0x0E, 0xCE, 0x05, 0xEB, 0x0E, 0xC8, 0x05, - .byte 0xEE, 0x0E, 0xC2, 0x05, 0xF0, 0x0E, 0xBC, 0x05, 0xF2, 0x0E, 0xB6, 0x05, 0xF4, 0x0E, 0xB1, 0x05, - .byte 0xF7, 0x0E, 0xAB, 0x05, 0xF9, 0x0E, 0xA5, 0x05, 0xFB, 0x0E, 0x9F, 0x05, 0xFD, 0x0E, 0x99, 0x05, - .byte 0xFF, 0x0E, 0x93, 0x05, 0x02, 0x0F, 0x8D, 0x05, 0x04, 0x0F, 0x87, 0x05, 0x06, 0x0F, 0x81, 0x05, - .byte 0x08, 0x0F, 0x7C, 0x05, 0x0A, 0x0F, 0x76, 0x05, 0x0C, 0x0F, 0x70, 0x05, 0x0E, 0x0F, 0x6A, 0x05, - .byte 0x11, 0x0F, 0x64, 0x05, 0x13, 0x0F, 0x5E, 0x05, 0x15, 0x0F, 0x58, 0x05, 0x17, 0x0F, 0x52, 0x05, - .byte 0x19, 0x0F, 0x4C, 0x05, 0x1B, 0x0F, 0x46, 0x05, 0x1D, 0x0F, 0x40, 0x05, 0x1F, 0x0F, 0x3A, 0x05, - .byte 0x21, 0x0F, 0x34, 0x05, 0x23, 0x0F, 0x2F, 0x05, 0x25, 0x0F, 0x29, 0x05, 0x27, 0x0F, 0x23, 0x05, - .byte 0x29, 0x0F, 0x1D, 0x05, 0x2B, 0x0F, 0x17, 0x05, 0x2D, 0x0F, 0x11, 0x05, 0x2F, 0x0F, 0x0B, 0x05, - .byte 0x31, 0x0F, 0x05, 0x05, 0x33, 0x0F, 0xFF, 0x04, 0x35, 0x0F, 0xF9, 0x04, 0x37, 0x0F, 0xF3, 0x04, - .byte 0x39, 0x0F, 0xED, 0x04, 0x3B, 0x0F, 0xE7, 0x04, 0x3D, 0x0F, 0xE1, 0x04, 0x3F, 0x0F, 0xDB, 0x04, - .byte 0x41, 0x0F, 0xD5, 0x04, 0x43, 0x0F, 0xCF, 0x04, 0x45, 0x0F, 0xC9, 0x04, 0x46, 0x0F, 0xC3, 0x04, - .byte 0x48, 0x0F, 0xBD, 0x04, 0x4A, 0x0F, 0xB7, 0x04, 0x4C, 0x0F, 0xB1, 0x04, 0x4E, 0x0F, 0xAB, 0x04, - .byte 0x50, 0x0F, 0xA5, 0x04, 0x51, 0x0F, 0x9F, 0x04, 0x53, 0x0F, 0x99, 0x04, 0x55, 0x0F, 0x93, 0x04, - .byte 0x57, 0x0F, 0x8D, 0x04, 0x59, 0x0F, 0x87, 0x04, 0x5A, 0x0F, 0x81, 0x04, 0x5C, 0x0F, 0x7B, 0x04, - .byte 0x5E, 0x0F, 0x75, 0x04, 0x60, 0x0F, 0x6F, 0x04, 0x61, 0x0F, 0x69, 0x04, 0x63, 0x0F, 0x63, 0x04, - .byte 0x65, 0x0F, 0x5D, 0x04, 0x67, 0x0F, 0x57, 0x04, 0x68, 0x0F, 0x51, 0x04, 0x6A, 0x0F, 0x4B, 0x04, - .byte 0x6C, 0x0F, 0x44, 0x04, 0x6D, 0x0F, 0x3E, 0x04, 0x6F, 0x0F, 0x38, 0x04, 0x71, 0x0F, 0x32, 0x04, - .byte 0x72, 0x0F, 0x2C, 0x04, 0x74, 0x0F, 0x26, 0x04, 0x76, 0x0F, 0x20, 0x04, 0x77, 0x0F, 0x1A, 0x04, - .byte 0x79, 0x0F, 0x14, 0x04, 0x7A, 0x0F, 0x0E, 0x04, 0x7C, 0x0F, 0x08, 0x04, 0x7D, 0x0F, 0x02, 0x04, - .byte 0x7F, 0x0F, 0xFC, 0x03, 0x81, 0x0F, 0xF6, 0x03, 0x82, 0x0F, 0xEF, 0x03, 0x84, 0x0F, 0xE9, 0x03, - .byte 0x85, 0x0F, 0xE3, 0x03, 0x87, 0x0F, 0xDD, 0x03, 0x88, 0x0F, 0xD7, 0x03, 0x8A, 0x0F, 0xD1, 0x03, - .byte 0x8B, 0x0F, 0xCB, 0x03, 0x8D, 0x0F, 0xC5, 0x03, 0x8E, 0x0F, 0xBF, 0x03, 0x90, 0x0F, 0xB9, 0x03, - .byte 0x91, 0x0F, 0xB2, 0x03, 0x93, 0x0F, 0xAC, 0x03, 0x94, 0x0F, 0xA6, 0x03, 0x95, 0x0F, 0xA0, 0x03, - .byte 0x97, 0x0F, 0x9A, 0x03, 0x98, 0x0F, 0x94, 0x03, 0x9A, 0x0F, 0x8E, 0x03, 0x9B, 0x0F, 0x88, 0x03, - .byte 0x9C, 0x0F, 0x81, 0x03, 0x9E, 0x0F, 0x7B, 0x03, 0x9F, 0x0F, 0x75, 0x03, 0xA1, 0x0F, 0x6F, 0x03, - .byte 0xA2, 0x0F, 0x69, 0x03, 0xA3, 0x0F, 0x63, 0x03, 0xA5, 0x0F, 0x5D, 0x03, 0xA6, 0x0F, 0x56, 0x03, - .byte 0xA7, 0x0F, 0x50, 0x03, 0xA8, 0x0F, 0x4A, 0x03, 0xAA, 0x0F, 0x44, 0x03, 0xAB, 0x0F, 0x3E, 0x03, - .byte 0xAC, 0x0F, 0x38, 0x03, 0xAE, 0x0F, 0x32, 0x03, 0xAF, 0x0F, 0x2B, 0x03, 0xB0, 0x0F, 0x25, 0x03, - .byte 0xB1, 0x0F, 0x1F, 0x03, 0xB3, 0x0F, 0x19, 0x03, 0xB4, 0x0F, 0x13, 0x03, 0xB5, 0x0F, 0x0D, 0x03, - .byte 0xB6, 0x0F, 0x06, 0x03, 0xB7, 0x0F, 0x00, 0x03, 0xB8, 0x0F, 0xFA, 0x02, 0xBA, 0x0F, 0xF4, 0x02, - .byte 0xBB, 0x0F, 0xEE, 0x02, 0xBC, 0x0F, 0xE8, 0x02, 0xBD, 0x0F, 0xE1, 0x02, 0xBE, 0x0F, 0xDB, 0x02, - .byte 0xBF, 0x0F, 0xD5, 0x02, 0xC0, 0x0F, 0xCF, 0x02, 0xC2, 0x0F, 0xC9, 0x02, 0xC3, 0x0F, 0xC2, 0x02, - .byte 0xC4, 0x0F, 0xBC, 0x02, 0xC5, 0x0F, 0xB6, 0x02, 0xC6, 0x0F, 0xB0, 0x02, 0xC7, 0x0F, 0xAA, 0x02, - .byte 0xC8, 0x0F, 0xA3, 0x02, 0xC9, 0x0F, 0x9D, 0x02, 0xCA, 0x0F, 0x97, 0x02, 0xCB, 0x0F, 0x91, 0x02, - .byte 0xCC, 0x0F, 0x8B, 0x02, 0xCD, 0x0F, 0x84, 0x02, 0xCE, 0x0F, 0x7E, 0x02, 0xCF, 0x0F, 0x78, 0x02, - .byte 0xD0, 0x0F, 0x72, 0x02, 0xD1, 0x0F, 0x6C, 0x02, 0xD2, 0x0F, 0x65, 0x02, 0xD3, 0x0F, 0x5F, 0x02, - .byte 0xD4, 0x0F, 0x59, 0x02, 0xD5, 0x0F, 0x53, 0x02, 0xD5, 0x0F, 0x4D, 0x02, 0xD6, 0x0F, 0x46, 0x02, - .byte 0xD7, 0x0F, 0x40, 0x02, 0xD8, 0x0F, 0x3A, 0x02, 0xD9, 0x0F, 0x34, 0x02, 0xDA, 0x0F, 0x2D, 0x02, - .byte 0xDB, 0x0F, 0x27, 0x02, 0xDC, 0x0F, 0x21, 0x02, 0xDC, 0x0F, 0x1B, 0x02, 0xDD, 0x0F, 0x15, 0x02, - .byte 0xDE, 0x0F, 0x0E, 0x02, 0xDF, 0x0F, 0x08, 0x02, 0xE0, 0x0F, 0x02, 0x02, 0xE0, 0x0F, 0xFC, 0x01, - .byte 0xE1, 0x0F, 0xF5, 0x01, 0xE2, 0x0F, 0xEF, 0x01, 0xE3, 0x0F, 0xE9, 0x01, 0xE3, 0x0F, 0xE3, 0x01, - .byte 0xE4, 0x0F, 0xDC, 0x01, 0xE5, 0x0F, 0xD6, 0x01, 0xE6, 0x0F, 0xD0, 0x01, 0xE6, 0x0F, 0xCA, 0x01, - .byte 0xE7, 0x0F, 0xC3, 0x01, 0xE8, 0x0F, 0xBD, 0x01, 0xE8, 0x0F, 0xB7, 0x01, 0xE9, 0x0F, 0xB1, 0x01, - .byte 0xEA, 0x0F, 0xAA, 0x01, 0xEA, 0x0F, 0xA4, 0x01, 0xEB, 0x0F, 0x9E, 0x01, 0xEC, 0x0F, 0x98, 0x01, - .byte 0xEC, 0x0F, 0x91, 0x01, 0xED, 0x0F, 0x8B, 0x01, 0xED, 0x0F, 0x85, 0x01, 0xEE, 0x0F, 0x7F, 0x01, - .byte 0xEF, 0x0F, 0x78, 0x01, 0xEF, 0x0F, 0x72, 0x01, 0xF0, 0x0F, 0x6C, 0x01, 0xF0, 0x0F, 0x66, 0x01, - .byte 0xF1, 0x0F, 0x5F, 0x01, 0xF1, 0x0F, 0x59, 0x01, 0xF2, 0x0F, 0x53, 0x01, 0xF2, 0x0F, 0x4D, 0x01, - .byte 0xF3, 0x0F, 0x46, 0x01, 0xF3, 0x0F, 0x40, 0x01, 0xF4, 0x0F, 0x3A, 0x01, 0xF4, 0x0F, 0x34, 0x01, - .byte 0xF5, 0x0F, 0x2D, 0x01, 0xF5, 0x0F, 0x27, 0x01, 0xF6, 0x0F, 0x21, 0x01, 0xF6, 0x0F, 0x1B, 0x01, - .byte 0xF7, 0x0F, 0x14, 0x01, 0xF7, 0x0F, 0x0E, 0x01, 0xF8, 0x0F, 0x08, 0x01, 0xF8, 0x0F, 0x01, 0x01, - .byte 0xF8, 0x0F, 0xFB, 0x00, 0xF9, 0x0F, 0xF5, 0x00, 0xF9, 0x0F, 0xEF, 0x00, 0xF9, 0x0F, 0xE8, 0x00, - .byte 0xFA, 0x0F, 0xE2, 0x00, 0xFA, 0x0F, 0xDC, 0x00, 0xFA, 0x0F, 0xD6, 0x00, 0xFB, 0x0F, 0xCF, 0x00, - .byte 0xFB, 0x0F, 0xC9, 0x00, 0xFB, 0x0F, 0xC3, 0x00, 0xFC, 0x0F, 0xBC, 0x00, 0xFC, 0x0F, 0xB6, 0x00, - .byte 0xFC, 0x0F, 0xB0, 0x00, 0xFC, 0x0F, 0xAA, 0x00, 0xFD, 0x0F, 0xA3, 0x00, 0xFD, 0x0F, 0x9D, 0x00, - .byte 0xFD, 0x0F, 0x97, 0x00, 0xFD, 0x0F, 0x90, 0x00, 0xFE, 0x0F, 0x8A, 0x00, 0xFE, 0x0F, 0x84, 0x00, - .byte 0xFE, 0x0F, 0x7E, 0x00, 0xFE, 0x0F, 0x77, 0x00, 0xFE, 0x0F, 0x71, 0x00, 0xFF, 0x0F, 0x6B, 0x00, - .byte 0xFF, 0x0F, 0x65, 0x00, 0xFF, 0x0F, 0x5E, 0x00, 0xFF, 0x0F, 0x58, 0x00, 0xFF, 0x0F, 0x52, 0x00, - .byte 0xFF, 0x0F, 0x4B, 0x00, 0xFF, 0x0F, 0x45, 0x00, 0x00, 0x10, 0x3F, 0x00, 0x00, 0x10, 0x39, 0x00, - .byte 0x00, 0x10, 0x32, 0x00, 0x00, 0x10, 0x2C, 0x00, 0x00, 0x10, 0x26, 0x00, 0x00, 0x10, 0x1F, 0x00, - .byte 0x00, 0x10, 0x19, 0x00, 0x00, 0x10, 0x13, 0x00, 0x00, 0x10, 0x0D, 0x00, 0x00, 0x10, 0x06, 0x00, - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xED, 0xFF, - .byte 0x00, 0x10, 0xE7, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xD4, 0xFF, - .byte 0x00, 0x10, 0xCE, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10, 0xC1, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF, - .byte 0xFF, 0x0F, 0xB5, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF, - .byte 0xFF, 0x0F, 0x9B, 0xFF, 0xFF, 0x0F, 0x95, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x89, 0xFF, - .byte 0xFE, 0x0F, 0x82, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F, 0x76, 0xFF, 0xFD, 0x0F, 0x70, 0xFF, - .byte 0xFD, 0x0F, 0x69, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F, 0x5D, 0xFF, 0xFC, 0x0F, 0x56, 0xFF, - .byte 0xFC, 0x0F, 0x50, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F, 0x44, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF, - .byte 0xFB, 0x0F, 0x37, 0xFF, 0xFB, 0x0F, 0x31, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x24, 0xFF, - .byte 0xFA, 0x0F, 0x1E, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x0B, 0xFF, - .byte 0xF8, 0x0F, 0x05, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F, 0xF8, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE, - .byte 0xF7, 0x0F, 0xEC, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F, 0xDF, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE, - .byte 0xF5, 0x0F, 0xD3, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F, 0xC6, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE, - .byte 0xF3, 0x0F, 0xBA, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F, 0xAD, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE, - .byte 0xF1, 0x0F, 0xA1, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F, 0x94, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE, - .byte 0xEF, 0x0F, 0x88, 0xFE, 0xEE, 0x0F, 0x81, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x75, 0xFE, - .byte 0xEC, 0x0F, 0x6F, 0xFE, 0xEC, 0x0F, 0x68, 0xFE, 0xEB, 0x0F, 0x62, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE, - .byte 0xEA, 0x0F, 0x56, 0xFE, 0xE9, 0x0F, 0x4F, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x43, 0xFE, - .byte 0xE7, 0x0F, 0x3D, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F, 0x30, 0xFE, 0xE5, 0x0F, 0x2A, 0xFE, - .byte 0xE4, 0x0F, 0x24, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F, 0x17, 0xFE, 0xE2, 0x0F, 0x11, 0xFE, - .byte 0xE1, 0x0F, 0x0B, 0xFE, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F, 0xFE, 0xFD, 0xDF, 0x0F, 0xF8, 0xFD, - .byte 0xDE, 0x0F, 0xF2, 0xFD, 0xDD, 0x0F, 0xEB, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xDF, 0xFD, - .byte 0xDB, 0x0F, 0xD9, 0xFD, 0xDA, 0x0F, 0xD3, 0xFD, 0xD9, 0x0F, 0xCC, 0xFD, 0xD8, 0x0F, 0xC6, 0xFD, - .byte 0xD7, 0x0F, 0xC0, 0xFD, 0xD6, 0x0F, 0xBA, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xAD, 0xFD, - .byte 0xD4, 0x0F, 0xA7, 0xFD, 0xD3, 0x0F, 0xA1, 0xFD, 0xD2, 0x0F, 0x9B, 0xFD, 0xD1, 0x0F, 0x94, 0xFD, - .byte 0xD0, 0x0F, 0x8E, 0xFD, 0xCF, 0x0F, 0x88, 0xFD, 0xCE, 0x0F, 0x82, 0xFD, 0xCD, 0x0F, 0x7C, 0xFD, - .byte 0xCC, 0x0F, 0x75, 0xFD, 0xCB, 0x0F, 0x6F, 0xFD, 0xCA, 0x0F, 0x69, 0xFD, 0xC9, 0x0F, 0x63, 0xFD, - .byte 0xC8, 0x0F, 0x5D, 0xFD, 0xC7, 0x0F, 0x56, 0xFD, 0xC6, 0x0F, 0x50, 0xFD, 0xC5, 0x0F, 0x4A, 0xFD, - .byte 0xC4, 0x0F, 0x44, 0xFD, 0xC3, 0x0F, 0x3E, 0xFD, 0xC2, 0x0F, 0x37, 0xFD, 0xC0, 0x0F, 0x31, 0xFD, - .byte 0xBF, 0x0F, 0x2B, 0xFD, 0xBE, 0x0F, 0x25, 0xFD, 0xBD, 0x0F, 0x1F, 0xFD, 0xBC, 0x0F, 0x18, 0xFD, - .byte 0xBB, 0x0F, 0x12, 0xFD, 0xBA, 0x0F, 0x0C, 0xFD, 0xB8, 0x0F, 0x06, 0xFD, 0xB7, 0x0F, 0x00, 0xFD, - .byte 0xB6, 0x0F, 0xFA, 0xFC, 0xB5, 0x0F, 0xF3, 0xFC, 0xB4, 0x0F, 0xED, 0xFC, 0xB3, 0x0F, 0xE7, 0xFC, - .byte 0xB1, 0x0F, 0xE1, 0xFC, 0xB0, 0x0F, 0xDB, 0xFC, 0xAF, 0x0F, 0xD5, 0xFC, 0xAE, 0x0F, 0xCE, 0xFC, - .byte 0xAC, 0x0F, 0xC8, 0xFC, 0xAB, 0x0F, 0xC2, 0xFC, 0xAA, 0x0F, 0xBC, 0xFC, 0xA8, 0x0F, 0xB6, 0xFC, - .byte 0xA7, 0x0F, 0xB0, 0xFC, 0xA6, 0x0F, 0xAA, 0xFC, 0xA5, 0x0F, 0xA3, 0xFC, 0xA3, 0x0F, 0x9D, 0xFC, - .byte 0xA2, 0x0F, 0x97, 0xFC, 0xA1, 0x0F, 0x91, 0xFC, 0x9F, 0x0F, 0x8B, 0xFC, 0x9E, 0x0F, 0x85, 0xFC, - .byte 0x9C, 0x0F, 0x7F, 0xFC, 0x9B, 0x0F, 0x78, 0xFC, 0x9A, 0x0F, 0x72, 0xFC, 0x98, 0x0F, 0x6C, 0xFC, - .byte 0x97, 0x0F, 0x66, 0xFC, 0x95, 0x0F, 0x60, 0xFC, 0x94, 0x0F, 0x5A, 0xFC, 0x93, 0x0F, 0x54, 0xFC, - .byte 0x91, 0x0F, 0x4E, 0xFC, 0x90, 0x0F, 0x47, 0xFC, 0x8E, 0x0F, 0x41, 0xFC, 0x8D, 0x0F, 0x3B, 0xFC, - .byte 0x8B, 0x0F, 0x35, 0xFC, 0x8A, 0x0F, 0x2F, 0xFC, 0x88, 0x0F, 0x29, 0xFC, 0x87, 0x0F, 0x23, 0xFC, - .byte 0x85, 0x0F, 0x1D, 0xFC, 0x84, 0x0F, 0x17, 0xFC, 0x82, 0x0F, 0x11, 0xFC, 0x81, 0x0F, 0x0A, 0xFC, - .byte 0x7F, 0x0F, 0x04, 0xFC, 0x7D, 0x0F, 0xFE, 0xFB, 0x7C, 0x0F, 0xF8, 0xFB, 0x7A, 0x0F, 0xF2, 0xFB, - .byte 0x79, 0x0F, 0xEC, 0xFB, 0x77, 0x0F, 0xE6, 0xFB, 0x76, 0x0F, 0xE0, 0xFB, 0x74, 0x0F, 0xDA, 0xFB, - .byte 0x72, 0x0F, 0xD4, 0xFB, 0x71, 0x0F, 0xCE, 0xFB, 0x6F, 0x0F, 0xC8, 0xFB, 0x6D, 0x0F, 0xC2, 0xFB, - .byte 0x6C, 0x0F, 0xBC, 0xFB, 0x6A, 0x0F, 0xB5, 0xFB, 0x68, 0x0F, 0xAF, 0xFB, 0x67, 0x0F, 0xA9, 0xFB, - .byte 0x65, 0x0F, 0xA3, 0xFB, 0x63, 0x0F, 0x9D, 0xFB, 0x61, 0x0F, 0x97, 0xFB, 0x60, 0x0F, 0x91, 0xFB, - .byte 0x5E, 0x0F, 0x8B, 0xFB, 0x5C, 0x0F, 0x85, 0xFB, 0x5A, 0x0F, 0x7F, 0xFB, 0x59, 0x0F, 0x79, 0xFB, - .byte 0x57, 0x0F, 0x73, 0xFB, 0x55, 0x0F, 0x6D, 0xFB, 0x53, 0x0F, 0x67, 0xFB, 0x51, 0x0F, 0x61, 0xFB, - .byte 0x50, 0x0F, 0x5B, 0xFB, 0x4E, 0x0F, 0x55, 0xFB, 0x4C, 0x0F, 0x4F, 0xFB, 0x4A, 0x0F, 0x49, 0xFB, - .byte 0x48, 0x0F, 0x43, 0xFB, 0x46, 0x0F, 0x3D, 0xFB, 0x45, 0x0F, 0x37, 0xFB, 0x43, 0x0F, 0x31, 0xFB, - .byte 0x41, 0x0F, 0x2B, 0xFB, 0x3F, 0x0F, 0x25, 0xFB, 0x3D, 0x0F, 0x1F, 0xFB, 0x3B, 0x0F, 0x19, 0xFB, - .byte 0x39, 0x0F, 0x13, 0xFB, 0x37, 0x0F, 0x0D, 0xFB, 0x35, 0x0F, 0x07, 0xFB, 0x33, 0x0F, 0x01, 0xFB, - .byte 0x31, 0x0F, 0xFB, 0xFA, 0x2F, 0x0F, 0xF5, 0xFA, 0x2D, 0x0F, 0xEF, 0xFA, 0x2B, 0x0F, 0xE9, 0xFA, - .byte 0x29, 0x0F, 0xE3, 0xFA, 0x27, 0x0F, 0xDD, 0xFA, 0x25, 0x0F, 0xD7, 0xFA, 0x23, 0x0F, 0xD1, 0xFA, - .byte 0x21, 0x0F, 0xCC, 0xFA, 0x1F, 0x0F, 0xC6, 0xFA, 0x1D, 0x0F, 0xC0, 0xFA, 0x1B, 0x0F, 0xBA, 0xFA, - .byte 0x19, 0x0F, 0xB4, 0xFA, 0x17, 0x0F, 0xAE, 0xFA, 0x15, 0x0F, 0xA8, 0xFA, 0x13, 0x0F, 0xA2, 0xFA, - .byte 0x11, 0x0F, 0x9C, 0xFA, 0x0E, 0x0F, 0x96, 0xFA, 0x0C, 0x0F, 0x90, 0xFA, 0x0A, 0x0F, 0x8A, 0xFA, - .byte 0x08, 0x0F, 0x84, 0xFA, 0x06, 0x0F, 0x7F, 0xFA, 0x04, 0x0F, 0x79, 0xFA, 0x02, 0x0F, 0x73, 0xFA, - .byte 0xFF, 0x0E, 0x6D, 0xFA, 0xFD, 0x0E, 0x67, 0xFA, 0xFB, 0x0E, 0x61, 0xFA, 0xF9, 0x0E, 0x5B, 0xFA, - .byte 0xF7, 0x0E, 0x55, 0xFA, 0xF4, 0x0E, 0x4F, 0xFA, 0xF2, 0x0E, 0x4A, 0xFA, 0xF0, 0x0E, 0x44, 0xFA, - .byte 0xEE, 0x0E, 0x3E, 0xFA, 0xEB, 0x0E, 0x38, 0xFA, 0xE9, 0x0E, 0x32, 0xFA, 0xE7, 0x0E, 0x2C, 0xFA, - .byte 0xE4, 0x0E, 0x26, 0xFA, 0xE2, 0x0E, 0x21, 0xFA, 0xE0, 0x0E, 0x1B, 0xFA, 0xDD, 0x0E, 0x15, 0xFA, - .byte 0xDB, 0x0E, 0x0F, 0xFA, 0xD9, 0x0E, 0x09, 0xFA, 0xD6, 0x0E, 0x03, 0xFA, 0xD4, 0x0E, 0xFE, 0xF9, - .byte 0xD2, 0x0E, 0xF8, 0xF9, 0xCF, 0x0E, 0xF2, 0xF9, 0xCD, 0x0E, 0xEC, 0xF9, 0xCB, 0x0E, 0xE6, 0xF9, - .byte 0xC8, 0x0E, 0xE1, 0xF9, 0xC6, 0x0E, 0xDB, 0xF9, 0xC3, 0x0E, 0xD5, 0xF9, 0xC1, 0x0E, 0xCF, 0xF9, - .byte 0xBF, 0x0E, 0xC9, 0xF9, 0xBC, 0x0E, 0xC4, 0xF9, 0xBA, 0x0E, 0xBE, 0xF9, 0xB7, 0x0E, 0xB8, 0xF9, - .byte 0xB5, 0x0E, 0xB2, 0xF9, 0xB2, 0x0E, 0xAC, 0xF9, 0xB0, 0x0E, 0xA7, 0xF9, 0xAD, 0x0E, 0xA1, 0xF9, - .byte 0xAB, 0x0E, 0x9B, 0xF9, 0xA8, 0x0E, 0x95, 0xF9, 0xA6, 0x0E, 0x90, 0xF9, 0xA3, 0x0E, 0x8A, 0xF9, - .byte 0xA1, 0x0E, 0x84, 0xF9, 0x9E, 0x0E, 0x7E, 0xF9, 0x9B, 0x0E, 0x79, 0xF9, 0x99, 0x0E, 0x73, 0xF9, - .byte 0x96, 0x0E, 0x6D, 0xF9, 0x94, 0x0E, 0x67, 0xF9, 0x91, 0x0E, 0x62, 0xF9, 0x8F, 0x0E, 0x5C, 0xF9, - .byte 0x8C, 0x0E, 0x56, 0xF9, 0x89, 0x0E, 0x51, 0xF9, 0x87, 0x0E, 0x4B, 0xF9, 0x84, 0x0E, 0x45, 0xF9, - .byte 0x81, 0x0E, 0x3F, 0xF9, 0x7F, 0x0E, 0x3A, 0xF9, 0x7C, 0x0E, 0x34, 0xF9, 0x79, 0x0E, 0x2E, 0xF9, - .byte 0x77, 0x0E, 0x29, 0xF9, 0x74, 0x0E, 0x23, 0xF9, 0x71, 0x0E, 0x1D, 0xF9, 0x6F, 0x0E, 0x18, 0xF9, - .byte 0x6C, 0x0E, 0x12, 0xF9, 0x69, 0x0E, 0x0C, 0xF9, 0x66, 0x0E, 0x07, 0xF9, 0x64, 0x0E, 0x01, 0xF9, - .byte 0x61, 0x0E, 0xFB, 0xF8, 0x5E, 0x0E, 0xF6, 0xF8, 0x5B, 0x0E, 0xF0, 0xF8, 0x59, 0x0E, 0xEB, 0xF8, - .byte 0x56, 0x0E, 0xE5, 0xF8, 0x53, 0x0E, 0xDF, 0xF8, 0x50, 0x0E, 0xDA, 0xF8, 0x4D, 0x0E, 0xD4, 0xF8, - .byte 0x4B, 0x0E, 0xCE, 0xF8, 0x48, 0x0E, 0xC9, 0xF8, 0x45, 0x0E, 0xC3, 0xF8, 0x42, 0x0E, 0xBE, 0xF8, - .byte 0x3F, 0x0E, 0xB8, 0xF8, 0x3C, 0x0E, 0xB2, 0xF8, 0x3A, 0x0E, 0xAD, 0xF8, 0x37, 0x0E, 0xA7, 0xF8, - .byte 0x34, 0x0E, 0xA2, 0xF8, 0x31, 0x0E, 0x9C, 0xF8, 0x2E, 0x0E, 0x96, 0xF8, 0x2B, 0x0E, 0x91, 0xF8, - .byte 0x28, 0x0E, 0x8B, 0xF8, 0x25, 0x0E, 0x86, 0xF8, 0x22, 0x0E, 0x80, 0xF8, 0x1F, 0x0E, 0x7B, 0xF8, - .byte 0x1C, 0x0E, 0x75, 0xF8, 0x19, 0x0E, 0x70, 0xF8, 0x16, 0x0E, 0x6A, 0xF8, 0x13, 0x0E, 0x65, 0xF8, - .byte 0x10, 0x0E, 0x5F, 0xF8, 0x0D, 0x0E, 0x5A, 0xF8, 0x0A, 0x0E, 0x54, 0xF8, 0x07, 0x0E, 0x4E, 0xF8, - .byte 0x04, 0x0E, 0x49, 0xF8, 0x01, 0x0E, 0x43, 0xF8, 0xFE, 0x0D, 0x3E, 0xF8, 0xFB, 0x0D, 0x38, 0xF8, - .byte 0xF8, 0x0D, 0x33, 0xF8, 0xF5, 0x0D, 0x2E, 0xF8, 0xF2, 0x0D, 0x28, 0xF8, 0xEF, 0x0D, 0x23, 0xF8, - .byte 0xEC, 0x0D, 0x1D, 0xF8, 0xE9, 0x0D, 0x18, 0xF8, 0xE6, 0x0D, 0x12, 0xF8, 0xE3, 0x0D, 0x0D, 0xF8, - .byte 0xDF, 0x0D, 0x07, 0xF8, 0xDC, 0x0D, 0x02, 0xF8, 0xD9, 0x0D, 0xFC, 0xF7, 0xD6, 0x0D, 0xF7, 0xF7, - .byte 0xD3, 0x0D, 0xF2, 0xF7, 0xD0, 0x0D, 0xEC, 0xF7, 0xCC, 0x0D, 0xE7, 0xF7, 0xC9, 0x0D, 0xE1, 0xF7, - .byte 0xC6, 0x0D, 0xDC, 0xF7, 0xC3, 0x0D, 0xD6, 0xF7, 0xC0, 0x0D, 0xD1, 0xF7, 0xBC, 0x0D, 0xCC, 0xF7, - .byte 0xB9, 0x0D, 0xC6, 0xF7, 0xB6, 0x0D, 0xC1, 0xF7, 0xB3, 0x0D, 0xBB, 0xF7, 0xB0, 0x0D, 0xB6, 0xF7, - .byte 0xAC, 0x0D, 0xB1, 0xF7, 0xA9, 0x0D, 0xAB, 0xF7, 0xA6, 0x0D, 0xA6, 0xF7, 0xA2, 0x0D, 0xA1, 0xF7, - .byte 0x9F, 0x0D, 0x9B, 0xF7, 0x9C, 0x0D, 0x96, 0xF7, 0x99, 0x0D, 0x91, 0xF7, 0x95, 0x0D, 0x8B, 0xF7, - .byte 0x92, 0x0D, 0x86, 0xF7, 0x8F, 0x0D, 0x81, 0xF7, 0x8B, 0x0D, 0x7B, 0xF7, 0x88, 0x0D, 0x76, 0xF7, - .byte 0x85, 0x0D, 0x71, 0xF7, 0x81, 0x0D, 0x6B, 0xF7, 0x7E, 0x0D, 0x66, 0xF7, 0x7A, 0x0D, 0x61, 0xF7, - .byte 0x77, 0x0D, 0x5B, 0xF7, 0x74, 0x0D, 0x56, 0xF7, 0x70, 0x0D, 0x51, 0xF7, 0x6D, 0x0D, 0x4C, 0xF7, - .byte 0x69, 0x0D, 0x46, 0xF7, 0x66, 0x0D, 0x41, 0xF7, 0x62, 0x0D, 0x3C, 0xF7, 0x5F, 0x0D, 0x37, 0xF7, - .byte 0x5C, 0x0D, 0x31, 0xF7, 0x58, 0x0D, 0x2C, 0xF7, 0x55, 0x0D, 0x27, 0xF7, 0x51, 0x0D, 0x22, 0xF7, - .byte 0x4E, 0x0D, 0x1C, 0xF7, 0x4A, 0x0D, 0x17, 0xF7, 0x47, 0x0D, 0x12, 0xF7, 0x43, 0x0D, 0x0D, 0xF7, - .byte 0x40, 0x0D, 0x08, 0xF7, 0x3C, 0x0D, 0x02, 0xF7, 0x39, 0x0D, 0xFD, 0xF6, 0x35, 0x0D, 0xF8, 0xF6, - .byte 0x32, 0x0D, 0xF3, 0xF6, 0x2E, 0x0D, 0xEE, 0xF6, 0x2A, 0x0D, 0xE8, 0xF6, 0x27, 0x0D, 0xE3, 0xF6, - .byte 0x23, 0x0D, 0xDE, 0xF6, 0x20, 0x0D, 0xD9, 0xF6, 0x1C, 0x0D, 0xD4, 0xF6, 0x18, 0x0D, 0xCF, 0xF6, - .byte 0x15, 0x0D, 0xC9, 0xF6, 0x11, 0x0D, 0xC4, 0xF6, 0x0E, 0x0D, 0xBF, 0xF6, 0x0A, 0x0D, 0xBA, 0xF6, - .byte 0x06, 0x0D, 0xB5, 0xF6, 0x03, 0x0D, 0xB0, 0xF6, 0xFF, 0x0C, 0xAB, 0xF6, 0xFB, 0x0C, 0xA6, 0xF6, - .byte 0xF8, 0x0C, 0xA1, 0xF6, 0xF4, 0x0C, 0x9B, 0xF6, 0xF0, 0x0C, 0x96, 0xF6, 0xED, 0x0C, 0x91, 0xF6, - .byte 0xE9, 0x0C, 0x8C, 0xF6, 0xE5, 0x0C, 0x87, 0xF6, 0xE1, 0x0C, 0x82, 0xF6, 0xDE, 0x0C, 0x7D, 0xF6, - .byte 0xDA, 0x0C, 0x78, 0xF6, 0xD6, 0x0C, 0x73, 0xF6, 0xD2, 0x0C, 0x6E, 0xF6, 0xCF, 0x0C, 0x69, 0xF6, - .byte 0xCB, 0x0C, 0x64, 0xF6, 0xC7, 0x0C, 0x5F, 0xF6, 0xC3, 0x0C, 0x5A, 0xF6, 0xC0, 0x0C, 0x55, 0xF6, - .byte 0xBC, 0x0C, 0x50, 0xF6, 0xB8, 0x0C, 0x4B, 0xF6, 0xB4, 0x0C, 0x46, 0xF6, 0xB0, 0x0C, 0x41, 0xF6, - .byte 0xAC, 0x0C, 0x3C, 0xF6, 0xA9, 0x0C, 0x37, 0xF6, 0xA5, 0x0C, 0x32, 0xF6, 0xA1, 0x0C, 0x2D, 0xF6, - .byte 0x9D, 0x0C, 0x28, 0xF6, 0x99, 0x0C, 0x23, 0xF6, 0x95, 0x0C, 0x1E, 0xF6, 0x91, 0x0C, 0x19, 0xF6, - .byte 0x8E, 0x0C, 0x14, 0xF6, 0x8A, 0x0C, 0x0F, 0xF6, 0x86, 0x0C, 0x0A, 0xF6, 0x82, 0x0C, 0x05, 0xF6, - .byte 0x7E, 0x0C, 0x01, 0xF6, 0x7A, 0x0C, 0xFC, 0xF5, 0x76, 0x0C, 0xF7, 0xF5, 0x72, 0x0C, 0xF2, 0xF5, - .byte 0x6E, 0x0C, 0xED, 0xF5, 0x6A, 0x0C, 0xE8, 0xF5, 0x66, 0x0C, 0xE3, 0xF5, 0x62, 0x0C, 0xDE, 0xF5, - .byte 0x5E, 0x0C, 0xDA, 0xF5, 0x5A, 0x0C, 0xD5, 0xF5, 0x56, 0x0C, 0xD0, 0xF5, 0x52, 0x0C, 0xCB, 0xF5, - .byte 0x4E, 0x0C, 0xC6, 0xF5, 0x4A, 0x0C, 0xC1, 0xF5, 0x46, 0x0C, 0xBC, 0xF5, 0x42, 0x0C, 0xB8, 0xF5, - .byte 0x3E, 0x0C, 0xB3, 0xF5, 0x3A, 0x0C, 0xAE, 0xF5, 0x36, 0x0C, 0xA9, 0xF5, 0x32, 0x0C, 0xA4, 0xF5, - .byte 0x2E, 0x0C, 0xA0, 0xF5, 0x2A, 0x0C, 0x9B, 0xF5, 0x26, 0x0C, 0x96, 0xF5, 0x22, 0x0C, 0x91, 0xF5, - .byte 0x1E, 0x0C, 0x8D, 0xF5, 0x19, 0x0C, 0x88, 0xF5, 0x15, 0x0C, 0x83, 0xF5, 0x11, 0x0C, 0x7E, 0xF5, - .byte 0x0D, 0x0C, 0x7A, 0xF5, 0x09, 0x0C, 0x75, 0xF5, 0x05, 0x0C, 0x70, 0xF5, 0x01, 0x0C, 0x6B, 0xF5, - .byte 0xFC, 0x0B, 0x67, 0xF5, 0xF8, 0x0B, 0x62, 0xF5, 0xF4, 0x0B, 0x5D, 0xF5, 0xF0, 0x0B, 0x59, 0xF5, - .byte 0xEC, 0x0B, 0x54, 0xF5, 0xE8, 0x0B, 0x4F, 0xF5, 0xE3, 0x0B, 0x4B, 0xF5, 0xDF, 0x0B, 0x46, 0xF5, - .byte 0xDB, 0x0B, 0x41, 0xF5, 0xD7, 0x0B, 0x3D, 0xF5, 0xD2, 0x0B, 0x38, 0xF5, 0xCE, 0x0B, 0x33, 0xF5, - .byte 0xCA, 0x0B, 0x2F, 0xF5, 0xC6, 0x0B, 0x2A, 0xF5, 0xC1, 0x0B, 0x25, 0xF5, 0xBD, 0x0B, 0x21, 0xF5, - .byte 0xB9, 0x0B, 0x1C, 0xF5, 0xB5, 0x0B, 0x18, 0xF5, 0xB0, 0x0B, 0x13, 0xF5, 0xAC, 0x0B, 0x0E, 0xF5, - .byte 0xA8, 0x0B, 0x0A, 0xF5, 0xA3, 0x0B, 0x05, 0xF5, 0x9F, 0x0B, 0x01, 0xF5, 0x9B, 0x0B, 0xFC, 0xF4, - .byte 0x97, 0x0B, 0xF8, 0xF4, 0x92, 0x0B, 0xF3, 0xF4, 0x8E, 0x0B, 0xEF, 0xF4, 0x89, 0x0B, 0xEA, 0xF4, - .byte 0x85, 0x0B, 0xE5, 0xF4, 0x81, 0x0B, 0xE1, 0xF4, 0x7C, 0x0B, 0xDC, 0xF4, 0x78, 0x0B, 0xD8, 0xF4, - .byte 0x74, 0x0B, 0xD3, 0xF4, 0x6F, 0x0B, 0xCF, 0xF4, 0x6B, 0x0B, 0xCA, 0xF4, 0x66, 0x0B, 0xC6, 0xF4, - .byte 0x62, 0x0B, 0xC2, 0xF4, 0x5E, 0x0B, 0xBD, 0xF4, 0x59, 0x0B, 0xB9, 0xF4, 0x55, 0x0B, 0xB4, 0xF4, - .byte 0x50, 0x0B, 0xB0, 0xF4, 0x4C, 0x0B, 0xAB, 0xF4, 0x47, 0x0B, 0xA7, 0xF4, 0x43, 0x0B, 0xA2, 0xF4, - .byte 0x3E, 0x0B, 0x9E, 0xF4, 0x3A, 0x0B, 0x9A, 0xF4, 0x36, 0x0B, 0x95, 0xF4, 0x31, 0x0B, 0x91, 0xF4, - .byte 0x2D, 0x0B, 0x8C, 0xF4, 0x28, 0x0B, 0x88, 0xF4, 0x24, 0x0B, 0x84, 0xF4, 0x1F, 0x0B, 0x7F, 0xF4, - .byte 0x1B, 0x0B, 0x7B, 0xF4, 0x16, 0x0B, 0x77, 0xF4, 0x11, 0x0B, 0x72, 0xF4, 0x0D, 0x0B, 0x6E, 0xF4, - .byte 0x08, 0x0B, 0x69, 0xF4, 0x04, 0x0B, 0x65, 0xF4, 0xFF, 0x0A, 0x61, 0xF4, 0xFB, 0x0A, 0x5D, 0xF4, - .byte 0xF6, 0x0A, 0x58, 0xF4, 0xF2, 0x0A, 0x54, 0xF4, 0xED, 0x0A, 0x50, 0xF4, 0xE8, 0x0A, 0x4B, 0xF4, - .byte 0xE4, 0x0A, 0x47, 0xF4, 0xDF, 0x0A, 0x43, 0xF4, 0xDB, 0x0A, 0x3F, 0xF4, 0xD6, 0x0A, 0x3A, 0xF4, - .byte 0xD1, 0x0A, 0x36, 0xF4, 0xCD, 0x0A, 0x32, 0xF4, 0xC8, 0x0A, 0x2E, 0xF4, 0xC3, 0x0A, 0x29, 0xF4, - .byte 0xBF, 0x0A, 0x25, 0xF4, 0xBA, 0x0A, 0x21, 0xF4, 0xB5, 0x0A, 0x1D, 0xF4, 0xB1, 0x0A, 0x18, 0xF4, - .byte 0xAC, 0x0A, 0x14, 0xF4, 0xA7, 0x0A, 0x10, 0xF4, 0xA3, 0x0A, 0x0C, 0xF4, 0x9E, 0x0A, 0x08, 0xF4, - .byte 0x99, 0x0A, 0x04, 0xF4, 0x95, 0x0A, 0xFF, 0xF3, 0x90, 0x0A, 0xFB, 0xF3, 0x8B, 0x0A, 0xF7, 0xF3, - .byte 0x86, 0x0A, 0xF3, 0xF3, 0x82, 0x0A, 0xEF, 0xF3, 0x7D, 0x0A, 0xEB, 0xF3, 0x78, 0x0A, 0xE7, 0xF3, - .byte 0x73, 0x0A, 0xE2, 0xF3, 0x6F, 0x0A, 0xDE, 0xF3, 0x6A, 0x0A, 0xDA, 0xF3, 0x65, 0x0A, 0xD6, 0xF3, - .byte 0x60, 0x0A, 0xD2, 0xF3, 0x5C, 0x0A, 0xCE, 0xF3, 0x57, 0x0A, 0xCA, 0xF3, 0x52, 0x0A, 0xC6, 0xF3, - .byte 0x4D, 0x0A, 0xC2, 0xF3, 0x48, 0x0A, 0xBE, 0xF3, 0x44, 0x0A, 0xBA, 0xF3, 0x3F, 0x0A, 0xB6, 0xF3, - .byte 0x3A, 0x0A, 0xB2, 0xF3, 0x35, 0x0A, 0xAE, 0xF3, 0x30, 0x0A, 0xAA, 0xF3, 0x2B, 0x0A, 0xA6, 0xF3, - .byte 0x26, 0x0A, 0xA2, 0xF3, 0x22, 0x0A, 0x9E, 0xF3, 0x1D, 0x0A, 0x9A, 0xF3, 0x18, 0x0A, 0x96, 0xF3, - .byte 0x13, 0x0A, 0x92, 0xF3, 0x0E, 0x0A, 0x8E, 0xF3, 0x09, 0x0A, 0x8A, 0xF3, 0x04, 0x0A, 0x86, 0xF3, - .byte 0xFF, 0x09, 0x82, 0xF3, 0xFB, 0x09, 0x7E, 0xF3, 0xF6, 0x09, 0x7A, 0xF3, 0xF1, 0x09, 0x76, 0xF3, - .byte 0xEC, 0x09, 0x72, 0xF3, 0xE7, 0x09, 0x6F, 0xF3, 0xE2, 0x09, 0x6B, 0xF3, 0xDD, 0x09, 0x67, 0xF3, - .byte 0xD8, 0x09, 0x63, 0xF3, 0xD3, 0x09, 0x5F, 0xF3, 0xCE, 0x09, 0x5B, 0xF3, 0xC9, 0x09, 0x57, 0xF3, - .byte 0xC4, 0x09, 0x54, 0xF3, 0xBF, 0x09, 0x50, 0xF3, 0xBA, 0x09, 0x4C, 0xF3, 0xB5, 0x09, 0x48, 0xF3, - .byte 0xB0, 0x09, 0x44, 0xF3, 0xAB, 0x09, 0x40, 0xF3, 0xA6, 0x09, 0x3D, 0xF3, 0xA1, 0x09, 0x39, 0xF3, - .byte 0x9C, 0x09, 0x35, 0xF3, 0x97, 0x09, 0x31, 0xF3, 0x92, 0x09, 0x2E, 0xF3, 0x8D, 0x09, 0x2A, 0xF3, - .byte 0x88, 0x09, 0x26, 0xF3, 0x83, 0x09, 0x22, 0xF3, 0x7E, 0x09, 0x1F, 0xF3, 0x79, 0x09, 0x1B, 0xF3, - .byte 0x74, 0x09, 0x17, 0xF3, 0x6F, 0x09, 0x13, 0xF3, 0x6A, 0x09, 0x10, 0xF3, 0x65, 0x09, 0x0C, 0xF3, - .byte 0x5F, 0x09, 0x08, 0xF3, 0x5A, 0x09, 0x05, 0xF3, 0x55, 0x09, 0x01, 0xF3, 0x50, 0x09, 0xFD, 0xF2, - .byte 0x4B, 0x09, 0xFA, 0xF2, 0x46, 0x09, 0xF6, 0xF2, 0x41, 0x09, 0xF2, 0xF2, 0x3C, 0x09, 0xEF, 0xF2, - .byte 0x37, 0x09, 0xEB, 0xF2, 0x31, 0x09, 0xE8, 0xF2, 0x2C, 0x09, 0xE4, 0xF2, 0x27, 0x09, 0xE0, 0xF2, - .byte 0x22, 0x09, 0xDD, 0xF2, 0x1D, 0x09, 0xD9, 0xF2, 0x18, 0x09, 0xD6, 0xF2, 0x12, 0x09, 0xD2, 0xF2, - .byte 0x0D, 0x09, 0xCE, 0xF2, 0x08, 0x09, 0xCB, 0xF2, 0x03, 0x09, 0xC7, 0xF2, 0xFE, 0x08, 0xC4, 0xF2, - .byte 0xF8, 0x08, 0xC0, 0xF2, 0xF3, 0x08, 0xBD, 0xF2, 0xEE, 0x08, 0xB9, 0xF2, 0xE9, 0x08, 0xB6, 0xF2, - .byte 0xE4, 0x08, 0xB2, 0xF2, 0xDE, 0x08, 0xAF, 0xF2, 0xD9, 0x08, 0xAB, 0xF2, 0xD4, 0x08, 0xA8, 0xF2, - .byte 0xCF, 0x08, 0xA4, 0xF2, 0xC9, 0x08, 0xA1, 0xF2, 0xC4, 0x08, 0x9E, 0xF2, 0xBF, 0x08, 0x9A, 0xF2, - .byte 0xBA, 0x08, 0x97, 0xF2, 0xB4, 0x08, 0x93, 0xF2, 0xAF, 0x08, 0x90, 0xF2, 0xAA, 0x08, 0x8C, 0xF2, - .byte 0xA5, 0x08, 0x89, 0xF2, 0x9F, 0x08, 0x86, 0xF2, 0x9A, 0x08, 0x82, 0xF2, 0x95, 0x08, 0x7F, 0xF2, - .byte 0x8F, 0x08, 0x7B, 0xF2, 0x8A, 0x08, 0x78, 0xF2, 0x85, 0x08, 0x75, 0xF2, 0x7F, 0x08, 0x71, 0xF2, - .byte 0x7A, 0x08, 0x6E, 0xF2, 0x75, 0x08, 0x6B, 0xF2, 0x6F, 0x08, 0x67, 0xF2, 0x6A, 0x08, 0x64, 0xF2, - .byte 0x65, 0x08, 0x61, 0xF2, 0x5F, 0x08, 0x5E, 0xF2, 0x5A, 0x08, 0x5A, 0xF2, 0x55, 0x08, 0x57, 0xF2, - .byte 0x4F, 0x08, 0x54, 0xF2, 0x4A, 0x08, 0x50, 0xF2, 0x45, 0x08, 0x4D, 0xF2, 0x3F, 0x08, 0x4A, 0xF2, - .byte 0x3A, 0x08, 0x47, 0xF2, 0x34, 0x08, 0x44, 0xF2, 0x2F, 0x08, 0x40, 0xF2, 0x2A, 0x08, 0x3D, 0xF2, - .byte 0x24, 0x08, 0x3A, 0xF2, 0x1F, 0x08, 0x37, 0xF2, 0x19, 0x08, 0x34, 0xF2, 0x14, 0x08, 0x30, 0xF2, - .byte 0x0E, 0x08, 0x2D, 0xF2, 0x09, 0x08, 0x2A, 0xF2, 0x04, 0x08, 0x27, 0xF2, 0xFE, 0x07, 0x24, 0xF2, - .byte 0xF9, 0x07, 0x21, 0xF2, 0xF3, 0x07, 0x1D, 0xF2, 0xEE, 0x07, 0x1A, 0xF2, 0xE8, 0x07, 0x17, 0xF2, - .byte 0xE3, 0x07, 0x14, 0xF2, 0xDD, 0x07, 0x11, 0xF2, 0xD8, 0x07, 0x0E, 0xF2, 0xD2, 0x07, 0x0B, 0xF2, - .byte 0xCD, 0x07, 0x08, 0xF2, 0xC8, 0x07, 0x05, 0xF2, 0xC2, 0x07, 0x02, 0xF2, 0xBD, 0x07, 0xFF, 0xF1, - .byte 0xB7, 0x07, 0xFC, 0xF1, 0xB2, 0x07, 0xF9, 0xF1, 0xAC, 0x07, 0xF6, 0xF1, 0xA6, 0x07, 0xF3, 0xF1, - .byte 0xA1, 0x07, 0xF0, 0xF1, 0x9B, 0x07, 0xED, 0xF1, 0x96, 0x07, 0xEA, 0xF1, 0x90, 0x07, 0xE7, 0xF1, - .byte 0x8B, 0x07, 0xE4, 0xF1, 0x85, 0x07, 0xE1, 0xF1, 0x80, 0x07, 0xDE, 0xF1, 0x7A, 0x07, 0xDB, 0xF1, - .byte 0x75, 0x07, 0xD8, 0xF1, 0x6F, 0x07, 0xD5, 0xF1, 0x6A, 0x07, 0xD2, 0xF1, 0x64, 0x07, 0xCF, 0xF1, - .byte 0x5E, 0x07, 0xCC, 0xF1, 0x59, 0x07, 0xC9, 0xF1, 0x53, 0x07, 0xC6, 0xF1, 0x4E, 0x07, 0xC4, 0xF1, - .byte 0x48, 0x07, 0xC1, 0xF1, 0x42, 0x07, 0xBE, 0xF1, 0x3D, 0x07, 0xBB, 0xF1, 0x37, 0x07, 0xB8, 0xF1, - .byte 0x32, 0x07, 0xB5, 0xF1, 0x2C, 0x07, 0xB3, 0xF1, 0x26, 0x07, 0xB0, 0xF1, 0x21, 0x07, 0xAD, 0xF1, - .byte 0x1B, 0x07, 0xAA, 0xF1, 0x15, 0x07, 0xA7, 0xF1, 0x10, 0x07, 0xA5, 0xF1, 0x0A, 0x07, 0xA2, 0xF1, - .byte 0x05, 0x07, 0x9F, 0xF1, 0xFF, 0x06, 0x9C, 0xF1, 0xF9, 0x06, 0x9A, 0xF1, 0xF4, 0x06, 0x97, 0xF1, - .byte 0xEE, 0x06, 0x94, 0xF1, 0xE8, 0x06, 0x91, 0xF1, 0xE3, 0x06, 0x8F, 0xF1, 0xDD, 0x06, 0x8C, 0xF1, - .byte 0xD7, 0x06, 0x89, 0xF1, 0xD2, 0x06, 0x87, 0xF1, 0xCC, 0x06, 0x84, 0xF1, 0xC6, 0x06, 0x81, 0xF1, - .byte 0xC1, 0x06, 0x7F, 0xF1, 0xBB, 0x06, 0x7C, 0xF1, 0xB5, 0x06, 0x79, 0xF1, 0xAF, 0x06, 0x77, 0xF1, - .byte 0xAA, 0x06, 0x74, 0xF1, 0xA4, 0x06, 0x71, 0xF1, 0x9E, 0x06, 0x6F, 0xF1, 0x99, 0x06, 0x6C, 0xF1, - .byte 0x93, 0x06, 0x6A, 0xF1, 0x8D, 0x06, 0x67, 0xF1, 0x87, 0x06, 0x65, 0xF1, 0x82, 0x06, 0x62, 0xF1, - .byte 0x7C, 0x06, 0x5F, 0xF1, 0x76, 0x06, 0x5D, 0xF1, 0x70, 0x06, 0x5A, 0xF1, 0x6B, 0x06, 0x58, 0xF1, - .byte 0x65, 0x06, 0x55, 0xF1, 0x5F, 0x06, 0x53, 0xF1, 0x59, 0x06, 0x50, 0xF1, 0x54, 0x06, 0x4E, 0xF1, - .byte 0x4E, 0x06, 0x4B, 0xF1, 0x48, 0x06, 0x49, 0xF1, 0x42, 0x06, 0x46, 0xF1, 0x3C, 0x06, 0x44, 0xF1, - .byte 0x37, 0x06, 0x41, 0xF1, 0x31, 0x06, 0x3F, 0xF1, 0x2B, 0x06, 0x3D, 0xF1, 0x25, 0x06, 0x3A, 0xF1, - .byte 0x1F, 0x06, 0x38, 0xF1, 0x1A, 0x06, 0x35, 0xF1, 0x14, 0x06, 0x33, 0xF1, 0x0E, 0x06, 0x31, 0xF1, - .byte 0x08, 0x06, 0x2E, 0xF1, 0x02, 0x06, 0x2C, 0xF1, 0xFD, 0x05, 0x2A, 0xF1, 0xF7, 0x05, 0x27, 0xF1, - .byte 0xF1, 0x05, 0x25, 0xF1, 0xEB, 0x05, 0x23, 0xF1, 0xE5, 0x05, 0x20, 0xF1, 0xDF, 0x05, 0x1E, 0xF1, - .byte 0xDA, 0x05, 0x1C, 0xF1, 0xD4, 0x05, 0x19, 0xF1, 0xCE, 0x05, 0x17, 0xF1, 0xC8, 0x05, 0x15, 0xF1, - .byte 0xC2, 0x05, 0x12, 0xF1, 0xBC, 0x05, 0x10, 0xF1, 0xB6, 0x05, 0x0E, 0xF1, 0xB1, 0x05, 0x0C, 0xF1, - .byte 0xAB, 0x05, 0x09, 0xF1, 0xA5, 0x05, 0x07, 0xF1, 0x9F, 0x05, 0x05, 0xF1, 0x99, 0x05, 0x03, 0xF1, - .byte 0x93, 0x05, 0x01, 0xF1, 0x8D, 0x05, 0xFE, 0xF0, 0x87, 0x05, 0xFC, 0xF0, 0x81, 0x05, 0xFA, 0xF0, - .byte 0x7C, 0x05, 0xF8, 0xF0, 0x76, 0x05, 0xF6, 0xF0, 0x70, 0x05, 0xF4, 0xF0, 0x6A, 0x05, 0xF2, 0xF0, - .byte 0x64, 0x05, 0xEF, 0xF0, 0x5E, 0x05, 0xED, 0xF0, 0x58, 0x05, 0xEB, 0xF0, 0x52, 0x05, 0xE9, 0xF0, - .byte 0x4C, 0x05, 0xE7, 0xF0, 0x46, 0x05, 0xE5, 0xF0, 0x40, 0x05, 0xE3, 0xF0, 0x3A, 0x05, 0xE1, 0xF0, - .byte 0x34, 0x05, 0xDF, 0xF0, 0x2F, 0x05, 0xDD, 0xF0, 0x29, 0x05, 0xDB, 0xF0, 0x23, 0x05, 0xD9, 0xF0, - .byte 0x1D, 0x05, 0xD7, 0xF0, 0x17, 0x05, 0xD5, 0xF0, 0x11, 0x05, 0xD3, 0xF0, 0x0B, 0x05, 0xD1, 0xF0, - .byte 0x05, 0x05, 0xCF, 0xF0, 0xFF, 0x04, 0xCD, 0xF0, 0xF9, 0x04, 0xCB, 0xF0, 0xF3, 0x04, 0xC9, 0xF0, - .byte 0xED, 0x04, 0xC7, 0xF0, 0xE7, 0x04, 0xC5, 0xF0, 0xE1, 0x04, 0xC3, 0xF0, 0xDB, 0x04, 0xC1, 0xF0, - .byte 0xD5, 0x04, 0xBF, 0xF0, 0xCF, 0x04, 0xBD, 0xF0, 0xC9, 0x04, 0xBB, 0xF0, 0xC3, 0x04, 0xBA, 0xF0, - .byte 0xBD, 0x04, 0xB8, 0xF0, 0xB7, 0x04, 0xB6, 0xF0, 0xB1, 0x04, 0xB4, 0xF0, 0xAB, 0x04, 0xB2, 0xF0, - .byte 0xA5, 0x04, 0xB0, 0xF0, 0x9F, 0x04, 0xAF, 0xF0, 0x99, 0x04, 0xAD, 0xF0, 0x93, 0x04, 0xAB, 0xF0, - .byte 0x8D, 0x04, 0xA9, 0xF0, 0x87, 0x04, 0xA7, 0xF0, 0x81, 0x04, 0xA6, 0xF0, 0x7B, 0x04, 0xA4, 0xF0, - .byte 0x75, 0x04, 0xA2, 0xF0, 0x6F, 0x04, 0xA0, 0xF0, 0x69, 0x04, 0x9F, 0xF0, 0x63, 0x04, 0x9D, 0xF0, - .byte 0x5D, 0x04, 0x9B, 0xF0, 0x57, 0x04, 0x99, 0xF0, 0x51, 0x04, 0x98, 0xF0, 0x4B, 0x04, 0x96, 0xF0, - .byte 0x44, 0x04, 0x94, 0xF0, 0x3E, 0x04, 0x93, 0xF0, 0x38, 0x04, 0x91, 0xF0, 0x32, 0x04, 0x8F, 0xF0, - .byte 0x2C, 0x04, 0x8E, 0xF0, 0x26, 0x04, 0x8C, 0xF0, 0x20, 0x04, 0x8A, 0xF0, 0x1A, 0x04, 0x89, 0xF0, - .byte 0x14, 0x04, 0x87, 0xF0, 0x0E, 0x04, 0x86, 0xF0, 0x08, 0x04, 0x84, 0xF0, 0x02, 0x04, 0x83, 0xF0, - .byte 0xFC, 0x03, 0x81, 0xF0, 0xF6, 0x03, 0x7F, 0xF0, 0xEF, 0x03, 0x7E, 0xF0, 0xE9, 0x03, 0x7C, 0xF0, - .byte 0xE3, 0x03, 0x7B, 0xF0, 0xDD, 0x03, 0x79, 0xF0, 0xD7, 0x03, 0x78, 0xF0, 0xD1, 0x03, 0x76, 0xF0, - .byte 0xCB, 0x03, 0x75, 0xF0, 0xC5, 0x03, 0x73, 0xF0, 0xBF, 0x03, 0x72, 0xF0, 0xB9, 0x03, 0x70, 0xF0, - .byte 0xB2, 0x03, 0x6F, 0xF0, 0xAC, 0x03, 0x6D, 0xF0, 0xA6, 0x03, 0x6C, 0xF0, 0xA0, 0x03, 0x6B, 0xF0, - .byte 0x9A, 0x03, 0x69, 0xF0, 0x94, 0x03, 0x68, 0xF0, 0x8E, 0x03, 0x66, 0xF0, 0x88, 0x03, 0x65, 0xF0, - .byte 0x81, 0x03, 0x64, 0xF0, 0x7B, 0x03, 0x62, 0xF0, 0x75, 0x03, 0x61, 0xF0, 0x6F, 0x03, 0x5F, 0xF0, - .byte 0x69, 0x03, 0x5E, 0xF0, 0x63, 0x03, 0x5D, 0xF0, 0x5D, 0x03, 0x5B, 0xF0, 0x56, 0x03, 0x5A, 0xF0, - .byte 0x50, 0x03, 0x59, 0xF0, 0x4A, 0x03, 0x58, 0xF0, 0x44, 0x03, 0x56, 0xF0, 0x3E, 0x03, 0x55, 0xF0, - .byte 0x38, 0x03, 0x54, 0xF0, 0x32, 0x03, 0x52, 0xF0, 0x2B, 0x03, 0x51, 0xF0, 0x25, 0x03, 0x50, 0xF0, - .byte 0x1F, 0x03, 0x4F, 0xF0, 0x19, 0x03, 0x4D, 0xF0, 0x13, 0x03, 0x4C, 0xF0, 0x0D, 0x03, 0x4B, 0xF0, - .byte 0x06, 0x03, 0x4A, 0xF0, 0x00, 0x03, 0x49, 0xF0, 0xFA, 0x02, 0x48, 0xF0, 0xF4, 0x02, 0x46, 0xF0, - .byte 0xEE, 0x02, 0x45, 0xF0, 0xE8, 0x02, 0x44, 0xF0, 0xE1, 0x02, 0x43, 0xF0, 0xDB, 0x02, 0x42, 0xF0, - .byte 0xD5, 0x02, 0x41, 0xF0, 0xCF, 0x02, 0x40, 0xF0, 0xC9, 0x02, 0x3E, 0xF0, 0xC2, 0x02, 0x3D, 0xF0, - .byte 0xBC, 0x02, 0x3C, 0xF0, 0xB6, 0x02, 0x3B, 0xF0, 0xB0, 0x02, 0x3A, 0xF0, 0xAA, 0x02, 0x39, 0xF0, - .byte 0xA3, 0x02, 0x38, 0xF0, 0x9D, 0x02, 0x37, 0xF0, 0x97, 0x02, 0x36, 0xF0, 0x91, 0x02, 0x35, 0xF0, - .byte 0x8B, 0x02, 0x34, 0xF0, 0x84, 0x02, 0x33, 0xF0, 0x7E, 0x02, 0x32, 0xF0, 0x78, 0x02, 0x31, 0xF0, - .byte 0x72, 0x02, 0x30, 0xF0, 0x6C, 0x02, 0x2F, 0xF0, 0x65, 0x02, 0x2E, 0xF0, 0x5F, 0x02, 0x2D, 0xF0, - .byte 0x59, 0x02, 0x2C, 0xF0, 0x53, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x46, 0x02, 0x2A, 0xF0, - .byte 0x40, 0x02, 0x29, 0xF0, 0x3A, 0x02, 0x28, 0xF0, 0x34, 0x02, 0x27, 0xF0, 0x2D, 0x02, 0x26, 0xF0, - .byte 0x27, 0x02, 0x25, 0xF0, 0x21, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x15, 0x02, 0x23, 0xF0, - .byte 0x0E, 0x02, 0x22, 0xF0, 0x08, 0x02, 0x21, 0xF0, 0x02, 0x02, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0, - .byte 0xF5, 0x01, 0x1F, 0xF0, 0xEF, 0x01, 0x1E, 0xF0, 0xE9, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0, - .byte 0xDC, 0x01, 0x1C, 0xF0, 0xD6, 0x01, 0x1B, 0xF0, 0xD0, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0, - .byte 0xC3, 0x01, 0x19, 0xF0, 0xBD, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xB1, 0x01, 0x17, 0xF0, - .byte 0xAA, 0x01, 0x16, 0xF0, 0xA4, 0x01, 0x16, 0xF0, 0x9E, 0x01, 0x15, 0xF0, 0x98, 0x01, 0x14, 0xF0, - .byte 0x91, 0x01, 0x14, 0xF0, 0x8B, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x7F, 0x01, 0x12, 0xF0, - .byte 0x78, 0x01, 0x11, 0xF0, 0x72, 0x01, 0x11, 0xF0, 0x6C, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0, - .byte 0x5F, 0x01, 0x0F, 0xF0, 0x59, 0x01, 0x0F, 0xF0, 0x53, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0, - .byte 0x46, 0x01, 0x0D, 0xF0, 0x40, 0x01, 0x0D, 0xF0, 0x3A, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0, - .byte 0x2D, 0x01, 0x0B, 0xF0, 0x27, 0x01, 0x0B, 0xF0, 0x21, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0, - .byte 0x14, 0x01, 0x09, 0xF0, 0x0E, 0x01, 0x09, 0xF0, 0x08, 0x01, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0, - .byte 0xFB, 0x00, 0x08, 0xF0, 0xF5, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0, - .byte 0xE2, 0x00, 0x06, 0xF0, 0xDC, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xCF, 0x00, 0x05, 0xF0, - .byte 0xC9, 0x00, 0x05, 0xF0, 0xC3, 0x00, 0x05, 0xF0, 0xBC, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0, - .byte 0xB0, 0x00, 0x04, 0xF0, 0xAA, 0x00, 0x04, 0xF0, 0xA3, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0, - .byte 0x97, 0x00, 0x03, 0xF0, 0x90, 0x00, 0x03, 0xF0, 0x8A, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0, - .byte 0x7E, 0x00, 0x02, 0xF0, 0x77, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x6B, 0x00, 0x01, 0xF0, - .byte 0x65, 0x00, 0x01, 0xF0, 0x5E, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0, - .byte 0x4B, 0x00, 0x01, 0xF0, 0x45, 0x00, 0x01, 0xF0, 0x3F, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0, - .byte 0x32, 0x00, 0x00, 0xF0, 0x2C, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, - .byte 0x19, 0x00, 0x00, 0xF0, 0x13, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0, - .byte 0x00, 0x00, 0x00, 0xF0, 0xFA, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0, - .byte 0xE7, 0xFF, 0x00, 0xF0, 0xE1, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0, - .byte 0xCE, 0xFF, 0x00, 0xF0, 0xC7, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xBB, 0xFF, 0x01, 0xF0, - .byte 0xB5, 0xFF, 0x01, 0xF0, 0xAE, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0, - .byte 0x9B, 0xFF, 0x01, 0xF0, 0x95, 0xFF, 0x01, 0xF0, 0x8F, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0, - .byte 0x82, 0xFF, 0x02, 0xF0, 0x7C, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x70, 0xFF, 0x03, 0xF0, - .byte 0x69, 0xFF, 0x03, 0xF0, 0x63, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x56, 0xFF, 0x04, 0xF0, - .byte 0x50, 0xFF, 0x04, 0xF0, 0x4A, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x3D, 0xFF, 0x05, 0xF0, - .byte 0x37, 0xFF, 0x05, 0xF0, 0x31, 0xFF, 0x05, 0xF0, 0x2A, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0, - .byte 0x1E, 0xFF, 0x06, 0xF0, 0x18, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0, - .byte 0x05, 0xFF, 0x08, 0xF0, 0xFF, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xF2, 0xFE, 0x09, 0xF0, - .byte 0xEC, 0xFE, 0x09, 0xF0, 0xE5, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xD9, 0xFE, 0x0B, 0xF0, - .byte 0xD3, 0xFE, 0x0B, 0xF0, 0xCC, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xC0, 0xFE, 0x0D, 0xF0, - .byte 0xBA, 0xFE, 0x0D, 0xF0, 0xB3, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xA7, 0xFE, 0x0F, 0xF0, - .byte 0xA1, 0xFE, 0x0F, 0xF0, 0x9A, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x8E, 0xFE, 0x11, 0xF0, - .byte 0x88, 0xFE, 0x11, 0xF0, 0x81, 0xFE, 0x12, 0xF0, 0x7B, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0, - .byte 0x6F, 0xFE, 0x14, 0xF0, 0x68, 0xFE, 0x14, 0xF0, 0x62, 0xFE, 0x15, 0xF0, 0x5C, 0xFE, 0x16, 0xF0, - .byte 0x56, 0xFE, 0x16, 0xF0, 0x4F, 0xFE, 0x17, 0xF0, 0x49, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0, - .byte 0x3D, 0xFE, 0x19, 0xF0, 0x36, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x2A, 0xFE, 0x1B, 0xF0, - .byte 0x24, 0xFE, 0x1C, 0xF0, 0x1D, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x11, 0xFE, 0x1E, 0xF0, - .byte 0x0B, 0xFE, 0x1F, 0xF0, 0x04, 0xFE, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0xF8, 0xFD, 0x21, 0xF0, - .byte 0xF2, 0xFD, 0x22, 0xF0, 0xEB, 0xFD, 0x23, 0xF0, 0xE5, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0, - .byte 0xD9, 0xFD, 0x25, 0xF0, 0xD3, 0xFD, 0x26, 0xF0, 0xCC, 0xFD, 0x27, 0xF0, 0xC6, 0xFD, 0x28, 0xF0, - .byte 0xC0, 0xFD, 0x29, 0xF0, 0xBA, 0xFD, 0x2A, 0xF0, 0xB3, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0, - .byte 0xA7, 0xFD, 0x2C, 0xF0, 0xA1, 0xFD, 0x2D, 0xF0, 0x9B, 0xFD, 0x2E, 0xF0, 0x94, 0xFD, 0x2F, 0xF0, - .byte 0x8E, 0xFD, 0x30, 0xF0, 0x88, 0xFD, 0x31, 0xF0, 0x82, 0xFD, 0x32, 0xF0, 0x7C, 0xFD, 0x33, 0xF0, - .byte 0x75, 0xFD, 0x34, 0xF0, 0x6F, 0xFD, 0x35, 0xF0, 0x69, 0xFD, 0x36, 0xF0, 0x63, 0xFD, 0x37, 0xF0, - .byte 0x5D, 0xFD, 0x38, 0xF0, 0x56, 0xFD, 0x39, 0xF0, 0x50, 0xFD, 0x3A, 0xF0, 0x4A, 0xFD, 0x3B, 0xF0, - .byte 0x44, 0xFD, 0x3C, 0xF0, 0x3E, 0xFD, 0x3D, 0xF0, 0x37, 0xFD, 0x3E, 0xF0, 0x31, 0xFD, 0x40, 0xF0, - .byte 0x2B, 0xFD, 0x41, 0xF0, 0x25, 0xFD, 0x42, 0xF0, 0x1F, 0xFD, 0x43, 0xF0, 0x18, 0xFD, 0x44, 0xF0, - .byte 0x12, 0xFD, 0x45, 0xF0, 0x0C, 0xFD, 0x46, 0xF0, 0x06, 0xFD, 0x48, 0xF0, 0x00, 0xFD, 0x49, 0xF0, - .byte 0xFA, 0xFC, 0x4A, 0xF0, 0xF3, 0xFC, 0x4B, 0xF0, 0xED, 0xFC, 0x4C, 0xF0, 0xE7, 0xFC, 0x4D, 0xF0, - .byte 0xE1, 0xFC, 0x4F, 0xF0, 0xDB, 0xFC, 0x50, 0xF0, 0xD5, 0xFC, 0x51, 0xF0, 0xCE, 0xFC, 0x52, 0xF0, - .byte 0xC8, 0xFC, 0x54, 0xF0, 0xC2, 0xFC, 0x55, 0xF0, 0xBC, 0xFC, 0x56, 0xF0, 0xB6, 0xFC, 0x58, 0xF0, - .byte 0xB0, 0xFC, 0x59, 0xF0, 0xAA, 0xFC, 0x5A, 0xF0, 0xA3, 0xFC, 0x5B, 0xF0, 0x9D, 0xFC, 0x5D, 0xF0, - .byte 0x97, 0xFC, 0x5E, 0xF0, 0x91, 0xFC, 0x5F, 0xF0, 0x8B, 0xFC, 0x61, 0xF0, 0x85, 0xFC, 0x62, 0xF0, - .byte 0x7F, 0xFC, 0x64, 0xF0, 0x78, 0xFC, 0x65, 0xF0, 0x72, 0xFC, 0x66, 0xF0, 0x6C, 0xFC, 0x68, 0xF0, - .byte 0x66, 0xFC, 0x69, 0xF0, 0x60, 0xFC, 0x6B, 0xF0, 0x5A, 0xFC, 0x6C, 0xF0, 0x54, 0xFC, 0x6D, 0xF0, - .byte 0x4E, 0xFC, 0x6F, 0xF0, 0x47, 0xFC, 0x70, 0xF0, 0x41, 0xFC, 0x72, 0xF0, 0x3B, 0xFC, 0x73, 0xF0, - .byte 0x35, 0xFC, 0x75, 0xF0, 0x2F, 0xFC, 0x76, 0xF0, 0x29, 0xFC, 0x78, 0xF0, 0x23, 0xFC, 0x79, 0xF0, - .byte 0x1D, 0xFC, 0x7B, 0xF0, 0x17, 0xFC, 0x7C, 0xF0, 0x11, 0xFC, 0x7E, 0xF0, 0x0A, 0xFC, 0x7F, 0xF0, - .byte 0x04, 0xFC, 0x81, 0xF0, 0xFE, 0xFB, 0x83, 0xF0, 0xF8, 0xFB, 0x84, 0xF0, 0xF2, 0xFB, 0x86, 0xF0, - .byte 0xEC, 0xFB, 0x87, 0xF0, 0xE6, 0xFB, 0x89, 0xF0, 0xE0, 0xFB, 0x8A, 0xF0, 0xDA, 0xFB, 0x8C, 0xF0, - .byte 0xD4, 0xFB, 0x8E, 0xF0, 0xCE, 0xFB, 0x8F, 0xF0, 0xC8, 0xFB, 0x91, 0xF0, 0xC2, 0xFB, 0x93, 0xF0, - .byte 0xBC, 0xFB, 0x94, 0xF0, 0xB5, 0xFB, 0x96, 0xF0, 0xAF, 0xFB, 0x98, 0xF0, 0xA9, 0xFB, 0x99, 0xF0, - .byte 0xA3, 0xFB, 0x9B, 0xF0, 0x9D, 0xFB, 0x9D, 0xF0, 0x97, 0xFB, 0x9F, 0xF0, 0x91, 0xFB, 0xA0, 0xF0, - .byte 0x8B, 0xFB, 0xA2, 0xF0, 0x85, 0xFB, 0xA4, 0xF0, 0x7F, 0xFB, 0xA6, 0xF0, 0x79, 0xFB, 0xA7, 0xF0, - .byte 0x73, 0xFB, 0xA9, 0xF0, 0x6D, 0xFB, 0xAB, 0xF0, 0x67, 0xFB, 0xAD, 0xF0, 0x61, 0xFB, 0xAF, 0xF0, - .byte 0x5B, 0xFB, 0xB0, 0xF0, 0x55, 0xFB, 0xB2, 0xF0, 0x4F, 0xFB, 0xB4, 0xF0, 0x49, 0xFB, 0xB6, 0xF0, - .byte 0x43, 0xFB, 0xB8, 0xF0, 0x3D, 0xFB, 0xBA, 0xF0, 0x37, 0xFB, 0xBB, 0xF0, 0x31, 0xFB, 0xBD, 0xF0, - .byte 0x2B, 0xFB, 0xBF, 0xF0, 0x25, 0xFB, 0xC1, 0xF0, 0x1F, 0xFB, 0xC3, 0xF0, 0x19, 0xFB, 0xC5, 0xF0, - .byte 0x13, 0xFB, 0xC7, 0xF0, 0x0D, 0xFB, 0xC9, 0xF0, 0x07, 0xFB, 0xCB, 0xF0, 0x01, 0xFB, 0xCD, 0xF0, - .byte 0xFB, 0xFA, 0xCF, 0xF0, 0xF5, 0xFA, 0xD1, 0xF0, 0xEF, 0xFA, 0xD3, 0xF0, 0xE9, 0xFA, 0xD5, 0xF0, - .byte 0xE3, 0xFA, 0xD7, 0xF0, 0xDD, 0xFA, 0xD9, 0xF0, 0xD7, 0xFA, 0xDB, 0xF0, 0xD1, 0xFA, 0xDD, 0xF0, - .byte 0xCC, 0xFA, 0xDF, 0xF0, 0xC6, 0xFA, 0xE1, 0xF0, 0xC0, 0xFA, 0xE3, 0xF0, 0xBA, 0xFA, 0xE5, 0xF0, - .byte 0xB4, 0xFA, 0xE7, 0xF0, 0xAE, 0xFA, 0xE9, 0xF0, 0xA8, 0xFA, 0xEB, 0xF0, 0xA2, 0xFA, 0xED, 0xF0, - .byte 0x9C, 0xFA, 0xEF, 0xF0, 0x96, 0xFA, 0xF2, 0xF0, 0x90, 0xFA, 0xF4, 0xF0, 0x8A, 0xFA, 0xF6, 0xF0, - .byte 0x84, 0xFA, 0xF8, 0xF0, 0x7F, 0xFA, 0xFA, 0xF0, 0x79, 0xFA, 0xFC, 0xF0, 0x73, 0xFA, 0xFE, 0xF0, - .byte 0x6D, 0xFA, 0x01, 0xF1, 0x67, 0xFA, 0x03, 0xF1, 0x61, 0xFA, 0x05, 0xF1, 0x5B, 0xFA, 0x07, 0xF1, - .byte 0x55, 0xFA, 0x09, 0xF1, 0x4F, 0xFA, 0x0C, 0xF1, 0x4A, 0xFA, 0x0E, 0xF1, 0x44, 0xFA, 0x10, 0xF1, - .byte 0x3E, 0xFA, 0x12, 0xF1, 0x38, 0xFA, 0x15, 0xF1, 0x32, 0xFA, 0x17, 0xF1, 0x2C, 0xFA, 0x19, 0xF1, - .byte 0x26, 0xFA, 0x1C, 0xF1, 0x21, 0xFA, 0x1E, 0xF1, 0x1B, 0xFA, 0x20, 0xF1, 0x15, 0xFA, 0x23, 0xF1, - .byte 0x0F, 0xFA, 0x25, 0xF1, 0x09, 0xFA, 0x27, 0xF1, 0x03, 0xFA, 0x2A, 0xF1, 0xFE, 0xF9, 0x2C, 0xF1, - .byte 0xF8, 0xF9, 0x2E, 0xF1, 0xF2, 0xF9, 0x31, 0xF1, 0xEC, 0xF9, 0x33, 0xF1, 0xE6, 0xF9, 0x35, 0xF1, - .byte 0xE1, 0xF9, 0x38, 0xF1, 0xDB, 0xF9, 0x3A, 0xF1, 0xD5, 0xF9, 0x3D, 0xF1, 0xCF, 0xF9, 0x3F, 0xF1, - .byte 0xC9, 0xF9, 0x41, 0xF1, 0xC4, 0xF9, 0x44, 0xF1, 0xBE, 0xF9, 0x46, 0xF1, 0xB8, 0xF9, 0x49, 0xF1, - .byte 0xB2, 0xF9, 0x4B, 0xF1, 0xAC, 0xF9, 0x4E, 0xF1, 0xA7, 0xF9, 0x50, 0xF1, 0xA1, 0xF9, 0x53, 0xF1, - .byte 0x9B, 0xF9, 0x55, 0xF1, 0x95, 0xF9, 0x58, 0xF1, 0x90, 0xF9, 0x5A, 0xF1, 0x8A, 0xF9, 0x5D, 0xF1, - .byte 0x84, 0xF9, 0x5F, 0xF1, 0x7E, 0xF9, 0x62, 0xF1, 0x79, 0xF9, 0x65, 0xF1, 0x73, 0xF9, 0x67, 0xF1, - .byte 0x6D, 0xF9, 0x6A, 0xF1, 0x67, 0xF9, 0x6C, 0xF1, 0x62, 0xF9, 0x6F, 0xF1, 0x5C, 0xF9, 0x71, 0xF1, - .byte 0x56, 0xF9, 0x74, 0xF1, 0x51, 0xF9, 0x77, 0xF1, 0x4B, 0xF9, 0x79, 0xF1, 0x45, 0xF9, 0x7C, 0xF1, - .byte 0x3F, 0xF9, 0x7F, 0xF1, 0x3A, 0xF9, 0x81, 0xF1, 0x34, 0xF9, 0x84, 0xF1, 0x2E, 0xF9, 0x87, 0xF1, - .byte 0x29, 0xF9, 0x89, 0xF1, 0x23, 0xF9, 0x8C, 0xF1, 0x1D, 0xF9, 0x8F, 0xF1, 0x18, 0xF9, 0x91, 0xF1, - .byte 0x12, 0xF9, 0x94, 0xF1, 0x0C, 0xF9, 0x97, 0xF1, 0x07, 0xF9, 0x9A, 0xF1, 0x01, 0xF9, 0x9C, 0xF1, - .byte 0xFB, 0xF8, 0x9F, 0xF1, 0xF6, 0xF8, 0xA2, 0xF1, 0xF0, 0xF8, 0xA5, 0xF1, 0xEB, 0xF8, 0xA7, 0xF1, - .byte 0xE5, 0xF8, 0xAA, 0xF1, 0xDF, 0xF8, 0xAD, 0xF1, 0xDA, 0xF8, 0xB0, 0xF1, 0xD4, 0xF8, 0xB3, 0xF1, - .byte 0xCE, 0xF8, 0xB5, 0xF1, 0xC9, 0xF8, 0xB8, 0xF1, 0xC3, 0xF8, 0xBB, 0xF1, 0xBE, 0xF8, 0xBE, 0xF1, - .byte 0xB8, 0xF8, 0xC1, 0xF1, 0xB2, 0xF8, 0xC4, 0xF1, 0xAD, 0xF8, 0xC6, 0xF1, 0xA7, 0xF8, 0xC9, 0xF1, - .byte 0xA2, 0xF8, 0xCC, 0xF1, 0x9C, 0xF8, 0xCF, 0xF1, 0x96, 0xF8, 0xD2, 0xF1, 0x91, 0xF8, 0xD5, 0xF1, - .byte 0x8B, 0xF8, 0xD8, 0xF1, 0x86, 0xF8, 0xDB, 0xF1, 0x80, 0xF8, 0xDE, 0xF1, 0x7B, 0xF8, 0xE1, 0xF1, - .byte 0x75, 0xF8, 0xE4, 0xF1, 0x70, 0xF8, 0xE7, 0xF1, 0x6A, 0xF8, 0xEA, 0xF1, 0x65, 0xF8, 0xED, 0xF1, - .byte 0x5F, 0xF8, 0xF0, 0xF1, 0x5A, 0xF8, 0xF3, 0xF1, 0x54, 0xF8, 0xF6, 0xF1, 0x4E, 0xF8, 0xF9, 0xF1, - .byte 0x49, 0xF8, 0xFC, 0xF1, 0x43, 0xF8, 0xFF, 0xF1, 0x3E, 0xF8, 0x02, 0xF2, 0x38, 0xF8, 0x05, 0xF2, - .byte 0x33, 0xF8, 0x08, 0xF2, 0x2E, 0xF8, 0x0B, 0xF2, 0x28, 0xF8, 0x0E, 0xF2, 0x23, 0xF8, 0x11, 0xF2, - .byte 0x1D, 0xF8, 0x14, 0xF2, 0x18, 0xF8, 0x17, 0xF2, 0x12, 0xF8, 0x1A, 0xF2, 0x0D, 0xF8, 0x1D, 0xF2, - .byte 0x07, 0xF8, 0x21, 0xF2, 0x02, 0xF8, 0x24, 0xF2, 0xFC, 0xF7, 0x27, 0xF2, 0xF7, 0xF7, 0x2A, 0xF2, - .byte 0xF2, 0xF7, 0x2D, 0xF2, 0xEC, 0xF7, 0x30, 0xF2, 0xE7, 0xF7, 0x34, 0xF2, 0xE1, 0xF7, 0x37, 0xF2, - .byte 0xDC, 0xF7, 0x3A, 0xF2, 0xD6, 0xF7, 0x3D, 0xF2, 0xD1, 0xF7, 0x40, 0xF2, 0xCC, 0xF7, 0x44, 0xF2, - .byte 0xC6, 0xF7, 0x47, 0xF2, 0xC1, 0xF7, 0x4A, 0xF2, 0xBB, 0xF7, 0x4D, 0xF2, 0xB6, 0xF7, 0x50, 0xF2, - .byte 0xB1, 0xF7, 0x54, 0xF2, 0xAB, 0xF7, 0x57, 0xF2, 0xA6, 0xF7, 0x5A, 0xF2, 0xA1, 0xF7, 0x5E, 0xF2, - .byte 0x9B, 0xF7, 0x61, 0xF2, 0x96, 0xF7, 0x64, 0xF2, 0x91, 0xF7, 0x67, 0xF2, 0x8B, 0xF7, 0x6B, 0xF2, - .byte 0x86, 0xF7, 0x6E, 0xF2, 0x81, 0xF7, 0x71, 0xF2, 0x7B, 0xF7, 0x75, 0xF2, 0x76, 0xF7, 0x78, 0xF2, - .byte 0x71, 0xF7, 0x7B, 0xF2, 0x6B, 0xF7, 0x7F, 0xF2, 0x66, 0xF7, 0x82, 0xF2, 0x61, 0xF7, 0x86, 0xF2, - .byte 0x5B, 0xF7, 0x89, 0xF2, 0x56, 0xF7, 0x8C, 0xF2, 0x51, 0xF7, 0x90, 0xF2, 0x4C, 0xF7, 0x93, 0xF2, - .byte 0x46, 0xF7, 0x97, 0xF2, 0x41, 0xF7, 0x9A, 0xF2, 0x3C, 0xF7, 0x9E, 0xF2, 0x37, 0xF7, 0xA1, 0xF2, - .byte 0x31, 0xF7, 0xA4, 0xF2, 0x2C, 0xF7, 0xA8, 0xF2, 0x27, 0xF7, 0xAB, 0xF2, 0x22, 0xF7, 0xAF, 0xF2, - .byte 0x1C, 0xF7, 0xB2, 0xF2, 0x17, 0xF7, 0xB6, 0xF2, 0x12, 0xF7, 0xB9, 0xF2, 0x0D, 0xF7, 0xBD, 0xF2, - .byte 0x08, 0xF7, 0xC0, 0xF2, 0x02, 0xF7, 0xC4, 0xF2, 0xFD, 0xF6, 0xC7, 0xF2, 0xF8, 0xF6, 0xCB, 0xF2, - .byte 0xF3, 0xF6, 0xCE, 0xF2, 0xEE, 0xF6, 0xD2, 0xF2, 0xE8, 0xF6, 0xD6, 0xF2, 0xE3, 0xF6, 0xD9, 0xF2, - .byte 0xDE, 0xF6, 0xDD, 0xF2, 0xD9, 0xF6, 0xE0, 0xF2, 0xD4, 0xF6, 0xE4, 0xF2, 0xCF, 0xF6, 0xE8, 0xF2, - .byte 0xC9, 0xF6, 0xEB, 0xF2, 0xC4, 0xF6, 0xEF, 0xF2, 0xBF, 0xF6, 0xF2, 0xF2, 0xBA, 0xF6, 0xF6, 0xF2, - .byte 0xB5, 0xF6, 0xFA, 0xF2, 0xB0, 0xF6, 0xFD, 0xF2, 0xAB, 0xF6, 0x01, 0xF3, 0xA6, 0xF6, 0x05, 0xF3, - .byte 0xA1, 0xF6, 0x08, 0xF3, 0x9B, 0xF6, 0x0C, 0xF3, 0x96, 0xF6, 0x10, 0xF3, 0x91, 0xF6, 0x13, 0xF3, - .byte 0x8C, 0xF6, 0x17, 0xF3, 0x87, 0xF6, 0x1B, 0xF3, 0x82, 0xF6, 0x1F, 0xF3, 0x7D, 0xF6, 0x22, 0xF3, - .byte 0x78, 0xF6, 0x26, 0xF3, 0x73, 0xF6, 0x2A, 0xF3, 0x6E, 0xF6, 0x2E, 0xF3, 0x69, 0xF6, 0x31, 0xF3, - .byte 0x64, 0xF6, 0x35, 0xF3, 0x5F, 0xF6, 0x39, 0xF3, 0x5A, 0xF6, 0x3D, 0xF3, 0x55, 0xF6, 0x40, 0xF3, - .byte 0x50, 0xF6, 0x44, 0xF3, 0x4B, 0xF6, 0x48, 0xF3, 0x46, 0xF6, 0x4C, 0xF3, 0x41, 0xF6, 0x50, 0xF3, - .byte 0x3C, 0xF6, 0x54, 0xF3, 0x37, 0xF6, 0x57, 0xF3, 0x32, 0xF6, 0x5B, 0xF3, 0x2D, 0xF6, 0x5F, 0xF3, - .byte 0x28, 0xF6, 0x63, 0xF3, 0x23, 0xF6, 0x67, 0xF3, 0x1E, 0xF6, 0x6B, 0xF3, 0x19, 0xF6, 0x6F, 0xF3, - .byte 0x14, 0xF6, 0x72, 0xF3, 0x0F, 0xF6, 0x76, 0xF3, 0x0A, 0xF6, 0x7A, 0xF3, 0x05, 0xF6, 0x7E, 0xF3, - .byte 0x01, 0xF6, 0x82, 0xF3, 0xFC, 0xF5, 0x86, 0xF3, 0xF7, 0xF5, 0x8A, 0xF3, 0xF2, 0xF5, 0x8E, 0xF3, - .byte 0xED, 0xF5, 0x92, 0xF3, 0xE8, 0xF5, 0x96, 0xF3, 0xE3, 0xF5, 0x9A, 0xF3, 0xDE, 0xF5, 0x9E, 0xF3, - .byte 0xDA, 0xF5, 0xA2, 0xF3, 0xD5, 0xF5, 0xA6, 0xF3, 0xD0, 0xF5, 0xAA, 0xF3, 0xCB, 0xF5, 0xAE, 0xF3, - .byte 0xC6, 0xF5, 0xB2, 0xF3, 0xC1, 0xF5, 0xB6, 0xF3, 0xBC, 0xF5, 0xBA, 0xF3, 0xB8, 0xF5, 0xBE, 0xF3, - .byte 0xB3, 0xF5, 0xC2, 0xF3, 0xAE, 0xF5, 0xC6, 0xF3, 0xA9, 0xF5, 0xCA, 0xF3, 0xA4, 0xF5, 0xCE, 0xF3, - .byte 0xA0, 0xF5, 0xD2, 0xF3, 0x9B, 0xF5, 0xD6, 0xF3, 0x96, 0xF5, 0xDA, 0xF3, 0x91, 0xF5, 0xDE, 0xF3, - .byte 0x8D, 0xF5, 0xE2, 0xF3, 0x88, 0xF5, 0xE7, 0xF3, 0x83, 0xF5, 0xEB, 0xF3, 0x7E, 0xF5, 0xEF, 0xF3, - .byte 0x7A, 0xF5, 0xF3, 0xF3, 0x75, 0xF5, 0xF7, 0xF3, 0x70, 0xF5, 0xFB, 0xF3, 0x6B, 0xF5, 0xFF, 0xF3, - .byte 0x67, 0xF5, 0x04, 0xF4, 0x62, 0xF5, 0x08, 0xF4, 0x5D, 0xF5, 0x0C, 0xF4, 0x59, 0xF5, 0x10, 0xF4, - .byte 0x54, 0xF5, 0x14, 0xF4, 0x4F, 0xF5, 0x18, 0xF4, 0x4B, 0xF5, 0x1D, 0xF4, 0x46, 0xF5, 0x21, 0xF4, - .byte 0x41, 0xF5, 0x25, 0xF4, 0x3D, 0xF5, 0x29, 0xF4, 0x38, 0xF5, 0x2E, 0xF4, 0x33, 0xF5, 0x32, 0xF4, - .byte 0x2F, 0xF5, 0x36, 0xF4, 0x2A, 0xF5, 0x3A, 0xF4, 0x25, 0xF5, 0x3F, 0xF4, 0x21, 0xF5, 0x43, 0xF4, - .byte 0x1C, 0xF5, 0x47, 0xF4, 0x18, 0xF5, 0x4B, 0xF4, 0x13, 0xF5, 0x50, 0xF4, 0x0E, 0xF5, 0x54, 0xF4, - .byte 0x0A, 0xF5, 0x58, 0xF4, 0x05, 0xF5, 0x5D, 0xF4, 0x01, 0xF5, 0x61, 0xF4, 0xFC, 0xF4, 0x65, 0xF4, - .byte 0xF8, 0xF4, 0x69, 0xF4, 0xF3, 0xF4, 0x6E, 0xF4, 0xEF, 0xF4, 0x72, 0xF4, 0xEA, 0xF4, 0x77, 0xF4, - .byte 0xE5, 0xF4, 0x7B, 0xF4, 0xE1, 0xF4, 0x7F, 0xF4, 0xDC, 0xF4, 0x84, 0xF4, 0xD8, 0xF4, 0x88, 0xF4, - .byte 0xD3, 0xF4, 0x8C, 0xF4, 0xCF, 0xF4, 0x91, 0xF4, 0xCA, 0xF4, 0x95, 0xF4, 0xC6, 0xF4, 0x9A, 0xF4, - .byte 0xC2, 0xF4, 0x9E, 0xF4, 0xBD, 0xF4, 0xA2, 0xF4, 0xB9, 0xF4, 0xA7, 0xF4, 0xB4, 0xF4, 0xAB, 0xF4, - .byte 0xB0, 0xF4, 0xB0, 0xF4, 0xAB, 0xF4, 0xB4, 0xF4, 0xA7, 0xF4, 0xB9, 0xF4, 0xA2, 0xF4, 0xBD, 0xF4, - .byte 0x9E, 0xF4, 0xC2, 0xF4, 0x9A, 0xF4, 0xC6, 0xF4, 0x95, 0xF4, 0xCA, 0xF4, 0x91, 0xF4, 0xCF, 0xF4, - .byte 0x8C, 0xF4, 0xD3, 0xF4, 0x88, 0xF4, 0xD8, 0xF4, 0x84, 0xF4, 0xDC, 0xF4, 0x7F, 0xF4, 0xE1, 0xF4, - .byte 0x7B, 0xF4, 0xE5, 0xF4, 0x77, 0xF4, 0xEA, 0xF4, 0x72, 0xF4, 0xEF, 0xF4, 0x6E, 0xF4, 0xF3, 0xF4, - .byte 0x69, 0xF4, 0xF8, 0xF4, 0x65, 0xF4, 0xFC, 0xF4, 0x61, 0xF4, 0x01, 0xF5, 0x5D, 0xF4, 0x05, 0xF5, - .byte 0x58, 0xF4, 0x0A, 0xF5, 0x54, 0xF4, 0x0E, 0xF5, 0x50, 0xF4, 0x13, 0xF5, 0x4B, 0xF4, 0x18, 0xF5, - .byte 0x47, 0xF4, 0x1C, 0xF5, 0x43, 0xF4, 0x21, 0xF5, 0x3F, 0xF4, 0x25, 0xF5, 0x3A, 0xF4, 0x2A, 0xF5, - .byte 0x36, 0xF4, 0x2F, 0xF5, 0x32, 0xF4, 0x33, 0xF5, 0x2E, 0xF4, 0x38, 0xF5, 0x29, 0xF4, 0x3D, 0xF5, - .byte 0x25, 0xF4, 0x41, 0xF5, 0x21, 0xF4, 0x46, 0xF5, 0x1D, 0xF4, 0x4B, 0xF5, 0x18, 0xF4, 0x4F, 0xF5, - .byte 0x14, 0xF4, 0x54, 0xF5, 0x10, 0xF4, 0x59, 0xF5, 0x0C, 0xF4, 0x5D, 0xF5, 0x08, 0xF4, 0x62, 0xF5, - .byte 0x04, 0xF4, 0x67, 0xF5, 0xFF, 0xF3, 0x6B, 0xF5, 0xFB, 0xF3, 0x70, 0xF5, 0xF7, 0xF3, 0x75, 0xF5, - .byte 0xF3, 0xF3, 0x7A, 0xF5, 0xEF, 0xF3, 0x7E, 0xF5, 0xEB, 0xF3, 0x83, 0xF5, 0xE7, 0xF3, 0x88, 0xF5, - .byte 0xE2, 0xF3, 0x8D, 0xF5, 0xDE, 0xF3, 0x91, 0xF5, 0xDA, 0xF3, 0x96, 0xF5, 0xD6, 0xF3, 0x9B, 0xF5, - .byte 0xD2, 0xF3, 0xA0, 0xF5, 0xCE, 0xF3, 0xA4, 0xF5, 0xCA, 0xF3, 0xA9, 0xF5, 0xC6, 0xF3, 0xAE, 0xF5, - .byte 0xC2, 0xF3, 0xB3, 0xF5, 0xBE, 0xF3, 0xB8, 0xF5, 0xBA, 0xF3, 0xBC, 0xF5, 0xB6, 0xF3, 0xC1, 0xF5, - .byte 0xB2, 0xF3, 0xC6, 0xF5, 0xAE, 0xF3, 0xCB, 0xF5, 0xAA, 0xF3, 0xD0, 0xF5, 0xA6, 0xF3, 0xD5, 0xF5, - .byte 0xA2, 0xF3, 0xDA, 0xF5, 0x9E, 0xF3, 0xDE, 0xF5, 0x9A, 0xF3, 0xE3, 0xF5, 0x96, 0xF3, 0xE8, 0xF5, - .byte 0x92, 0xF3, 0xED, 0xF5, 0x8E, 0xF3, 0xF2, 0xF5, 0x8A, 0xF3, 0xF7, 0xF5, 0x86, 0xF3, 0xFC, 0xF5, - .byte 0x82, 0xF3, 0x01, 0xF6, 0x7E, 0xF3, 0x05, 0xF6, 0x7A, 0xF3, 0x0A, 0xF6, 0x76, 0xF3, 0x0F, 0xF6, - .byte 0x72, 0xF3, 0x14, 0xF6, 0x6F, 0xF3, 0x19, 0xF6, 0x6B, 0xF3, 0x1E, 0xF6, 0x67, 0xF3, 0x23, 0xF6, - .byte 0x63, 0xF3, 0x28, 0xF6, 0x5F, 0xF3, 0x2D, 0xF6, 0x5B, 0xF3, 0x32, 0xF6, 0x57, 0xF3, 0x37, 0xF6, - .byte 0x54, 0xF3, 0x3C, 0xF6, 0x50, 0xF3, 0x41, 0xF6, 0x4C, 0xF3, 0x46, 0xF6, 0x48, 0xF3, 0x4B, 0xF6, - .byte 0x44, 0xF3, 0x50, 0xF6, 0x40, 0xF3, 0x55, 0xF6, 0x3D, 0xF3, 0x5A, 0xF6, 0x39, 0xF3, 0x5F, 0xF6, - .byte 0x35, 0xF3, 0x64, 0xF6, 0x31, 0xF3, 0x69, 0xF6, 0x2E, 0xF3, 0x6E, 0xF6, 0x2A, 0xF3, 0x73, 0xF6, - .byte 0x26, 0xF3, 0x78, 0xF6, 0x22, 0xF3, 0x7D, 0xF6, 0x1F, 0xF3, 0x82, 0xF6, 0x1B, 0xF3, 0x87, 0xF6, - .byte 0x17, 0xF3, 0x8C, 0xF6, 0x13, 0xF3, 0x91, 0xF6, 0x10, 0xF3, 0x96, 0xF6, 0x0C, 0xF3, 0x9B, 0xF6, - .byte 0x08, 0xF3, 0xA1, 0xF6, 0x05, 0xF3, 0xA6, 0xF6, 0x01, 0xF3, 0xAB, 0xF6, 0xFD, 0xF2, 0xB0, 0xF6, - .byte 0xFA, 0xF2, 0xB5, 0xF6, 0xF6, 0xF2, 0xBA, 0xF6, 0xF2, 0xF2, 0xBF, 0xF6, 0xEF, 0xF2, 0xC4, 0xF6, - .byte 0xEB, 0xF2, 0xC9, 0xF6, 0xE8, 0xF2, 0xCF, 0xF6, 0xE4, 0xF2, 0xD4, 0xF6, 0xE0, 0xF2, 0xD9, 0xF6, - .byte 0xDD, 0xF2, 0xDE, 0xF6, 0xD9, 0xF2, 0xE3, 0xF6, 0xD6, 0xF2, 0xE8, 0xF6, 0xD2, 0xF2, 0xEE, 0xF6, - .byte 0xCE, 0xF2, 0xF3, 0xF6, 0xCB, 0xF2, 0xF8, 0xF6, 0xC7, 0xF2, 0xFD, 0xF6, 0xC4, 0xF2, 0x02, 0xF7, - .byte 0xC0, 0xF2, 0x08, 0xF7, 0xBD, 0xF2, 0x0D, 0xF7, 0xB9, 0xF2, 0x12, 0xF7, 0xB6, 0xF2, 0x17, 0xF7, - .byte 0xB2, 0xF2, 0x1C, 0xF7, 0xAF, 0xF2, 0x22, 0xF7, 0xAB, 0xF2, 0x27, 0xF7, 0xA8, 0xF2, 0x2C, 0xF7, - .byte 0xA4, 0xF2, 0x31, 0xF7, 0xA1, 0xF2, 0x37, 0xF7, 0x9E, 0xF2, 0x3C, 0xF7, 0x9A, 0xF2, 0x41, 0xF7, - .byte 0x97, 0xF2, 0x46, 0xF7, 0x93, 0xF2, 0x4C, 0xF7, 0x90, 0xF2, 0x51, 0xF7, 0x8C, 0xF2, 0x56, 0xF7, - .byte 0x89, 0xF2, 0x5B, 0xF7, 0x86, 0xF2, 0x61, 0xF7, 0x82, 0xF2, 0x66, 0xF7, 0x7F, 0xF2, 0x6B, 0xF7, - .byte 0x7B, 0xF2, 0x71, 0xF7, 0x78, 0xF2, 0x76, 0xF7, 0x75, 0xF2, 0x7B, 0xF7, 0x71, 0xF2, 0x81, 0xF7, - .byte 0x6E, 0xF2, 0x86, 0xF7, 0x6B, 0xF2, 0x8B, 0xF7, 0x67, 0xF2, 0x91, 0xF7, 0x64, 0xF2, 0x96, 0xF7, - .byte 0x61, 0xF2, 0x9B, 0xF7, 0x5E, 0xF2, 0xA1, 0xF7, 0x5A, 0xF2, 0xA6, 0xF7, 0x57, 0xF2, 0xAB, 0xF7, - .byte 0x54, 0xF2, 0xB1, 0xF7, 0x50, 0xF2, 0xB6, 0xF7, 0x4D, 0xF2, 0xBB, 0xF7, 0x4A, 0xF2, 0xC1, 0xF7, - .byte 0x47, 0xF2, 0xC6, 0xF7, 0x44, 0xF2, 0xCC, 0xF7, 0x40, 0xF2, 0xD1, 0xF7, 0x3D, 0xF2, 0xD6, 0xF7, - .byte 0x3A, 0xF2, 0xDC, 0xF7, 0x37, 0xF2, 0xE1, 0xF7, 0x34, 0xF2, 0xE7, 0xF7, 0x30, 0xF2, 0xEC, 0xF7, - .byte 0x2D, 0xF2, 0xF2, 0xF7, 0x2A, 0xF2, 0xF7, 0xF7, 0x27, 0xF2, 0xFC, 0xF7, 0x24, 0xF2, 0x02, 0xF8, - .byte 0x21, 0xF2, 0x07, 0xF8, 0x1D, 0xF2, 0x0D, 0xF8, 0x1A, 0xF2, 0x12, 0xF8, 0x17, 0xF2, 0x18, 0xF8, - .byte 0x14, 0xF2, 0x1D, 0xF8, 0x11, 0xF2, 0x23, 0xF8, 0x0E, 0xF2, 0x28, 0xF8, 0x0B, 0xF2, 0x2E, 0xF8, - .byte 0x08, 0xF2, 0x33, 0xF8, 0x05, 0xF2, 0x38, 0xF8, 0x02, 0xF2, 0x3E, 0xF8, 0xFF, 0xF1, 0x43, 0xF8, - .byte 0xFC, 0xF1, 0x49, 0xF8, 0xF9, 0xF1, 0x4E, 0xF8, 0xF6, 0xF1, 0x54, 0xF8, 0xF3, 0xF1, 0x5A, 0xF8, - .byte 0xF0, 0xF1, 0x5F, 0xF8, 0xED, 0xF1, 0x65, 0xF8, 0xEA, 0xF1, 0x6A, 0xF8, 0xE7, 0xF1, 0x70, 0xF8, - .byte 0xE4, 0xF1, 0x75, 0xF8, 0xE1, 0xF1, 0x7B, 0xF8, 0xDE, 0xF1, 0x80, 0xF8, 0xDB, 0xF1, 0x86, 0xF8, - .byte 0xD8, 0xF1, 0x8B, 0xF8, 0xD5, 0xF1, 0x91, 0xF8, 0xD2, 0xF1, 0x96, 0xF8, 0xCF, 0xF1, 0x9C, 0xF8, - .byte 0xCC, 0xF1, 0xA2, 0xF8, 0xC9, 0xF1, 0xA7, 0xF8, 0xC6, 0xF1, 0xAD, 0xF8, 0xC4, 0xF1, 0xB2, 0xF8, - .byte 0xC1, 0xF1, 0xB8, 0xF8, 0xBE, 0xF1, 0xBE, 0xF8, 0xBB, 0xF1, 0xC3, 0xF8, 0xB8, 0xF1, 0xC9, 0xF8, - .byte 0xB5, 0xF1, 0xCE, 0xF8, 0xB3, 0xF1, 0xD4, 0xF8, 0xB0, 0xF1, 0xDA, 0xF8, 0xAD, 0xF1, 0xDF, 0xF8, - .byte 0xAA, 0xF1, 0xE5, 0xF8, 0xA7, 0xF1, 0xEB, 0xF8, 0xA5, 0xF1, 0xF0, 0xF8, 0xA2, 0xF1, 0xF6, 0xF8, - .byte 0x9F, 0xF1, 0xFB, 0xF8, 0x9C, 0xF1, 0x01, 0xF9, 0x9A, 0xF1, 0x07, 0xF9, 0x97, 0xF1, 0x0C, 0xF9, - .byte 0x94, 0xF1, 0x12, 0xF9, 0x91, 0xF1, 0x18, 0xF9, 0x8F, 0xF1, 0x1D, 0xF9, 0x8C, 0xF1, 0x23, 0xF9, - .byte 0x89, 0xF1, 0x29, 0xF9, 0x87, 0xF1, 0x2E, 0xF9, 0x84, 0xF1, 0x34, 0xF9, 0x81, 0xF1, 0x3A, 0xF9, - .byte 0x7F, 0xF1, 0x3F, 0xF9, 0x7C, 0xF1, 0x45, 0xF9, 0x79, 0xF1, 0x4B, 0xF9, 0x77, 0xF1, 0x51, 0xF9, - .byte 0x74, 0xF1, 0x56, 0xF9, 0x71, 0xF1, 0x5C, 0xF9, 0x6F, 0xF1, 0x62, 0xF9, 0x6C, 0xF1, 0x67, 0xF9, - .byte 0x6A, 0xF1, 0x6D, 0xF9, 0x67, 0xF1, 0x73, 0xF9, 0x65, 0xF1, 0x79, 0xF9, 0x62, 0xF1, 0x7E, 0xF9, - .byte 0x5F, 0xF1, 0x84, 0xF9, 0x5D, 0xF1, 0x8A, 0xF9, 0x5A, 0xF1, 0x90, 0xF9, 0x58, 0xF1, 0x95, 0xF9, - .byte 0x55, 0xF1, 0x9B, 0xF9, 0x53, 0xF1, 0xA1, 0xF9, 0x50, 0xF1, 0xA7, 0xF9, 0x4E, 0xF1, 0xAC, 0xF9, - .byte 0x4B, 0xF1, 0xB2, 0xF9, 0x49, 0xF1, 0xB8, 0xF9, 0x46, 0xF1, 0xBE, 0xF9, 0x44, 0xF1, 0xC4, 0xF9, - .byte 0x41, 0xF1, 0xC9, 0xF9, 0x3F, 0xF1, 0xCF, 0xF9, 0x3D, 0xF1, 0xD5, 0xF9, 0x3A, 0xF1, 0xDB, 0xF9, - .byte 0x38, 0xF1, 0xE1, 0xF9, 0x35, 0xF1, 0xE6, 0xF9, 0x33, 0xF1, 0xEC, 0xF9, 0x31, 0xF1, 0xF2, 0xF9, - .byte 0x2E, 0xF1, 0xF8, 0xF9, 0x2C, 0xF1, 0xFE, 0xF9, 0x2A, 0xF1, 0x03, 0xFA, 0x27, 0xF1, 0x09, 0xFA, - .byte 0x25, 0xF1, 0x0F, 0xFA, 0x23, 0xF1, 0x15, 0xFA, 0x20, 0xF1, 0x1B, 0xFA, 0x1E, 0xF1, 0x21, 0xFA, - .byte 0x1C, 0xF1, 0x26, 0xFA, 0x19, 0xF1, 0x2C, 0xFA, 0x17, 0xF1, 0x32, 0xFA, 0x15, 0xF1, 0x38, 0xFA, - .byte 0x12, 0xF1, 0x3E, 0xFA, 0x10, 0xF1, 0x44, 0xFA, 0x0E, 0xF1, 0x4A, 0xFA, 0x0C, 0xF1, 0x4F, 0xFA, - .byte 0x09, 0xF1, 0x55, 0xFA, 0x07, 0xF1, 0x5B, 0xFA, 0x05, 0xF1, 0x61, 0xFA, 0x03, 0xF1, 0x67, 0xFA, - .byte 0x01, 0xF1, 0x6D, 0xFA, 0xFE, 0xF0, 0x73, 0xFA, 0xFC, 0xF0, 0x79, 0xFA, 0xFA, 0xF0, 0x7F, 0xFA, - .byte 0xF8, 0xF0, 0x84, 0xFA, 0xF6, 0xF0, 0x8A, 0xFA, 0xF4, 0xF0, 0x90, 0xFA, 0xF2, 0xF0, 0x96, 0xFA, - .byte 0xEF, 0xF0, 0x9C, 0xFA, 0xED, 0xF0, 0xA2, 0xFA, 0xEB, 0xF0, 0xA8, 0xFA, 0xE9, 0xF0, 0xAE, 0xFA, - .byte 0xE7, 0xF0, 0xB4, 0xFA, 0xE5, 0xF0, 0xBA, 0xFA, 0xE3, 0xF0, 0xC0, 0xFA, 0xE1, 0xF0, 0xC6, 0xFA, - .byte 0xDF, 0xF0, 0xCC, 0xFA, 0xDD, 0xF0, 0xD1, 0xFA, 0xDB, 0xF0, 0xD7, 0xFA, 0xD9, 0xF0, 0xDD, 0xFA, - .byte 0xD7, 0xF0, 0xE3, 0xFA, 0xD5, 0xF0, 0xE9, 0xFA, 0xD3, 0xF0, 0xEF, 0xFA, 0xD1, 0xF0, 0xF5, 0xFA, - .byte 0xCF, 0xF0, 0xFB, 0xFA, 0xCD, 0xF0, 0x01, 0xFB, 0xCB, 0xF0, 0x07, 0xFB, 0xC9, 0xF0, 0x0D, 0xFB, - .byte 0xC7, 0xF0, 0x13, 0xFB, 0xC5, 0xF0, 0x19, 0xFB, 0xC3, 0xF0, 0x1F, 0xFB, 0xC1, 0xF0, 0x25, 0xFB, - .byte 0xBF, 0xF0, 0x2B, 0xFB, 0xBD, 0xF0, 0x31, 0xFB, 0xBB, 0xF0, 0x37, 0xFB, 0xBA, 0xF0, 0x3D, 0xFB, - .byte 0xB8, 0xF0, 0x43, 0xFB, 0xB6, 0xF0, 0x49, 0xFB, 0xB4, 0xF0, 0x4F, 0xFB, 0xB2, 0xF0, 0x55, 0xFB, - .byte 0xB0, 0xF0, 0x5B, 0xFB, 0xAF, 0xF0, 0x61, 0xFB, 0xAD, 0xF0, 0x67, 0xFB, 0xAB, 0xF0, 0x6D, 0xFB, - .byte 0xA9, 0xF0, 0x73, 0xFB, 0xA7, 0xF0, 0x79, 0xFB, 0xA6, 0xF0, 0x7F, 0xFB, 0xA4, 0xF0, 0x85, 0xFB, - .byte 0xA2, 0xF0, 0x8B, 0xFB, 0xA0, 0xF0, 0x91, 0xFB, 0x9F, 0xF0, 0x97, 0xFB, 0x9D, 0xF0, 0x9D, 0xFB, - .byte 0x9B, 0xF0, 0xA3, 0xFB, 0x99, 0xF0, 0xA9, 0xFB, 0x98, 0xF0, 0xAF, 0xFB, 0x96, 0xF0, 0xB5, 0xFB, - .byte 0x94, 0xF0, 0xBC, 0xFB, 0x93, 0xF0, 0xC2, 0xFB, 0x91, 0xF0, 0xC8, 0xFB, 0x8F, 0xF0, 0xCE, 0xFB, - .byte 0x8E, 0xF0, 0xD4, 0xFB, 0x8C, 0xF0, 0xDA, 0xFB, 0x8A, 0xF0, 0xE0, 0xFB, 0x89, 0xF0, 0xE6, 0xFB, - .byte 0x87, 0xF0, 0xEC, 0xFB, 0x86, 0xF0, 0xF2, 0xFB, 0x84, 0xF0, 0xF8, 0xFB, 0x83, 0xF0, 0xFE, 0xFB, - .byte 0x81, 0xF0, 0x04, 0xFC, 0x7F, 0xF0, 0x0A, 0xFC, 0x7E, 0xF0, 0x11, 0xFC, 0x7C, 0xF0, 0x17, 0xFC, - .byte 0x7B, 0xF0, 0x1D, 0xFC, 0x79, 0xF0, 0x23, 0xFC, 0x78, 0xF0, 0x29, 0xFC, 0x76, 0xF0, 0x2F, 0xFC, - .byte 0x75, 0xF0, 0x35, 0xFC, 0x73, 0xF0, 0x3B, 0xFC, 0x72, 0xF0, 0x41, 0xFC, 0x70, 0xF0, 0x47, 0xFC, - .byte 0x6F, 0xF0, 0x4E, 0xFC, 0x6D, 0xF0, 0x54, 0xFC, 0x6C, 0xF0, 0x5A, 0xFC, 0x6B, 0xF0, 0x60, 0xFC, - .byte 0x69, 0xF0, 0x66, 0xFC, 0x68, 0xF0, 0x6C, 0xFC, 0x66, 0xF0, 0x72, 0xFC, 0x65, 0xF0, 0x78, 0xFC, - .byte 0x64, 0xF0, 0x7F, 0xFC, 0x62, 0xF0, 0x85, 0xFC, 0x61, 0xF0, 0x8B, 0xFC, 0x5F, 0xF0, 0x91, 0xFC, - .byte 0x5E, 0xF0, 0x97, 0xFC, 0x5D, 0xF0, 0x9D, 0xFC, 0x5B, 0xF0, 0xA3, 0xFC, 0x5A, 0xF0, 0xAA, 0xFC, - .byte 0x59, 0xF0, 0xB0, 0xFC, 0x58, 0xF0, 0xB6, 0xFC, 0x56, 0xF0, 0xBC, 0xFC, 0x55, 0xF0, 0xC2, 0xFC, - .byte 0x54, 0xF0, 0xC8, 0xFC, 0x52, 0xF0, 0xCE, 0xFC, 0x51, 0xF0, 0xD5, 0xFC, 0x50, 0xF0, 0xDB, 0xFC, - .byte 0x4F, 0xF0, 0xE1, 0xFC, 0x4D, 0xF0, 0xE7, 0xFC, 0x4C, 0xF0, 0xED, 0xFC, 0x4B, 0xF0, 0xF3, 0xFC, - .byte 0x4A, 0xF0, 0xFA, 0xFC, 0x49, 0xF0, 0x00, 0xFD, 0x48, 0xF0, 0x06, 0xFD, 0x46, 0xF0, 0x0C, 0xFD, - .byte 0x45, 0xF0, 0x12, 0xFD, 0x44, 0xF0, 0x18, 0xFD, 0x43, 0xF0, 0x1F, 0xFD, 0x42, 0xF0, 0x25, 0xFD, - .byte 0x41, 0xF0, 0x2B, 0xFD, 0x40, 0xF0, 0x31, 0xFD, 0x3E, 0xF0, 0x37, 0xFD, 0x3D, 0xF0, 0x3E, 0xFD, - .byte 0x3C, 0xF0, 0x44, 0xFD, 0x3B, 0xF0, 0x4A, 0xFD, 0x3A, 0xF0, 0x50, 0xFD, 0x39, 0xF0, 0x56, 0xFD, - .byte 0x38, 0xF0, 0x5D, 0xFD, 0x37, 0xF0, 0x63, 0xFD, 0x36, 0xF0, 0x69, 0xFD, 0x35, 0xF0, 0x6F, 0xFD, - .byte 0x34, 0xF0, 0x75, 0xFD, 0x33, 0xF0, 0x7C, 0xFD, 0x32, 0xF0, 0x82, 0xFD, 0x31, 0xF0, 0x88, 0xFD, - .byte 0x30, 0xF0, 0x8E, 0xFD, 0x2F, 0xF0, 0x94, 0xFD, 0x2E, 0xF0, 0x9B, 0xFD, 0x2D, 0xF0, 0xA1, 0xFD, - .byte 0x2C, 0xF0, 0xA7, 0xFD, 0x2B, 0xF0, 0xAD, 0xFD, 0x2B, 0xF0, 0xB3, 0xFD, 0x2A, 0xF0, 0xBA, 0xFD, - .byte 0x29, 0xF0, 0xC0, 0xFD, 0x28, 0xF0, 0xC6, 0xFD, 0x27, 0xF0, 0xCC, 0xFD, 0x26, 0xF0, 0xD3, 0xFD, - .byte 0x25, 0xF0, 0xD9, 0xFD, 0x24, 0xF0, 0xDF, 0xFD, 0x24, 0xF0, 0xE5, 0xFD, 0x23, 0xF0, 0xEB, 0xFD, - .byte 0x22, 0xF0, 0xF2, 0xFD, 0x21, 0xF0, 0xF8, 0xFD, 0x20, 0xF0, 0xFE, 0xFD, 0x20, 0xF0, 0x04, 0xFE, - .byte 0x1F, 0xF0, 0x0B, 0xFE, 0x1E, 0xF0, 0x11, 0xFE, 0x1D, 0xF0, 0x17, 0xFE, 0x1D, 0xF0, 0x1D, 0xFE, - .byte 0x1C, 0xF0, 0x24, 0xFE, 0x1B, 0xF0, 0x2A, 0xFE, 0x1A, 0xF0, 0x30, 0xFE, 0x1A, 0xF0, 0x36, 0xFE, - .byte 0x19, 0xF0, 0x3D, 0xFE, 0x18, 0xF0, 0x43, 0xFE, 0x18, 0xF0, 0x49, 0xFE, 0x17, 0xF0, 0x4F, 0xFE, - .byte 0x16, 0xF0, 0x56, 0xFE, 0x16, 0xF0, 0x5C, 0xFE, 0x15, 0xF0, 0x62, 0xFE, 0x14, 0xF0, 0x68, 0xFE, - .byte 0x14, 0xF0, 0x6F, 0xFE, 0x13, 0xF0, 0x75, 0xFE, 0x13, 0xF0, 0x7B, 0xFE, 0x12, 0xF0, 0x81, 0xFE, - .byte 0x11, 0xF0, 0x88, 0xFE, 0x11, 0xF0, 0x8E, 0xFE, 0x10, 0xF0, 0x94, 0xFE, 0x10, 0xF0, 0x9A, 0xFE, - .byte 0x0F, 0xF0, 0xA1, 0xFE, 0x0F, 0xF0, 0xA7, 0xFE, 0x0E, 0xF0, 0xAD, 0xFE, 0x0E, 0xF0, 0xB3, 0xFE, - .byte 0x0D, 0xF0, 0xBA, 0xFE, 0x0D, 0xF0, 0xC0, 0xFE, 0x0C, 0xF0, 0xC6, 0xFE, 0x0C, 0xF0, 0xCC, 0xFE, - .byte 0x0B, 0xF0, 0xD3, 0xFE, 0x0B, 0xF0, 0xD9, 0xFE, 0x0A, 0xF0, 0xDF, 0xFE, 0x0A, 0xF0, 0xE5, 0xFE, - .byte 0x09, 0xF0, 0xEC, 0xFE, 0x09, 0xF0, 0xF2, 0xFE, 0x08, 0xF0, 0xF8, 0xFE, 0x08, 0xF0, 0xFF, 0xFE, - .byte 0x08, 0xF0, 0x05, 0xFF, 0x07, 0xF0, 0x0B, 0xFF, 0x07, 0xF0, 0x11, 0xFF, 0x07, 0xF0, 0x18, 0xFF, - .byte 0x06, 0xF0, 0x1E, 0xFF, 0x06, 0xF0, 0x24, 0xFF, 0x06, 0xF0, 0x2A, 0xFF, 0x05, 0xF0, 0x31, 0xFF, - .byte 0x05, 0xF0, 0x37, 0xFF, 0x05, 0xF0, 0x3D, 0xFF, 0x04, 0xF0, 0x44, 0xFF, 0x04, 0xF0, 0x4A, 0xFF, - .byte 0x04, 0xF0, 0x50, 0xFF, 0x04, 0xF0, 0x56, 0xFF, 0x03, 0xF0, 0x5D, 0xFF, 0x03, 0xF0, 0x63, 0xFF, - .byte 0x03, 0xF0, 0x69, 0xFF, 0x03, 0xF0, 0x70, 0xFF, 0x02, 0xF0, 0x76, 0xFF, 0x02, 0xF0, 0x7C, 0xFF, - .byte 0x02, 0xF0, 0x82, 0xFF, 0x02, 0xF0, 0x89, 0xFF, 0x02, 0xF0, 0x8F, 0xFF, 0x01, 0xF0, 0x95, 0xFF, - .byte 0x01, 0xF0, 0x9B, 0xFF, 0x01, 0xF0, 0xA2, 0xFF, 0x01, 0xF0, 0xA8, 0xFF, 0x01, 0xF0, 0xAE, 0xFF, - .byte 0x01, 0xF0, 0xB5, 0xFF, 0x01, 0xF0, 0xBB, 0xFF, 0x00, 0xF0, 0xC1, 0xFF, 0x00, 0xF0, 0xC7, 0xFF, - .byte 0x00, 0xF0, 0xCE, 0xFF, 0x00, 0xF0, 0xD4, 0xFF, 0x00, 0xF0, 0xDA, 0xFF, 0x00, 0xF0, 0xE1, 0xFF, - .byte 0x00, 0xF0, 0xE7, 0xFF, 0x00, 0xF0, 0xED, 0xFF, 0x00, 0xF0, 0xF3, 0xFF, 0x00, 0xF0, 0xFA, 0xFF, - .byte 0x00, 0xF0, 0x00, 0x00, 0x00, 0xF0, 0x06, 0x00, 0x00, 0xF0, 0x0D, 0x00, 0x00, 0xF0, 0x13, 0x00, - .byte 0x00, 0xF0, 0x19, 0x00, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0xF0, 0x26, 0x00, 0x00, 0xF0, 0x2C, 0x00, - .byte 0x00, 0xF0, 0x32, 0x00, 0x00, 0xF0, 0x39, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x01, 0xF0, 0x45, 0x00, - .byte 0x01, 0xF0, 0x4B, 0x00, 0x01, 0xF0, 0x52, 0x00, 0x01, 0xF0, 0x58, 0x00, 0x01, 0xF0, 0x5E, 0x00, - .byte 0x01, 0xF0, 0x65, 0x00, 0x01, 0xF0, 0x6B, 0x00, 0x02, 0xF0, 0x71, 0x00, 0x02, 0xF0, 0x77, 0x00, - .byte 0x02, 0xF0, 0x7E, 0x00, 0x02, 0xF0, 0x84, 0x00, 0x02, 0xF0, 0x8A, 0x00, 0x03, 0xF0, 0x90, 0x00, - .byte 0x03, 0xF0, 0x97, 0x00, 0x03, 0xF0, 0x9D, 0x00, 0x03, 0xF0, 0xA3, 0x00, 0x04, 0xF0, 0xAA, 0x00, - .byte 0x04, 0xF0, 0xB0, 0x00, 0x04, 0xF0, 0xB6, 0x00, 0x04, 0xF0, 0xBC, 0x00, 0x05, 0xF0, 0xC3, 0x00, - .byte 0x05, 0xF0, 0xC9, 0x00, 0x05, 0xF0, 0xCF, 0x00, 0x06, 0xF0, 0xD6, 0x00, 0x06, 0xF0, 0xDC, 0x00, - .byte 0x06, 0xF0, 0xE2, 0x00, 0x07, 0xF0, 0xE8, 0x00, 0x07, 0xF0, 0xEF, 0x00, 0x07, 0xF0, 0xF5, 0x00, - .byte 0x08, 0xF0, 0xFB, 0x00, 0x08, 0xF0, 0x01, 0x01, 0x08, 0xF0, 0x08, 0x01, 0x09, 0xF0, 0x0E, 0x01, - .byte 0x09, 0xF0, 0x14, 0x01, 0x0A, 0xF0, 0x1B, 0x01, 0x0A, 0xF0, 0x21, 0x01, 0x0B, 0xF0, 0x27, 0x01, - .byte 0x0B, 0xF0, 0x2D, 0x01, 0x0C, 0xF0, 0x34, 0x01, 0x0C, 0xF0, 0x3A, 0x01, 0x0D, 0xF0, 0x40, 0x01, - .byte 0x0D, 0xF0, 0x46, 0x01, 0x0E, 0xF0, 0x4D, 0x01, 0x0E, 0xF0, 0x53, 0x01, 0x0F, 0xF0, 0x59, 0x01, - .byte 0x0F, 0xF0, 0x5F, 0x01, 0x10, 0xF0, 0x66, 0x01, 0x10, 0xF0, 0x6C, 0x01, 0x11, 0xF0, 0x72, 0x01, - .byte 0x11, 0xF0, 0x78, 0x01, 0x12, 0xF0, 0x7F, 0x01, 0x13, 0xF0, 0x85, 0x01, 0x13, 0xF0, 0x8B, 0x01, - .byte 0x14, 0xF0, 0x91, 0x01, 0x14, 0xF0, 0x98, 0x01, 0x15, 0xF0, 0x9E, 0x01, 0x16, 0xF0, 0xA4, 0x01, - .byte 0x16, 0xF0, 0xAA, 0x01, 0x17, 0xF0, 0xB1, 0x01, 0x18, 0xF0, 0xB7, 0x01, 0x18, 0xF0, 0xBD, 0x01, - .byte 0x19, 0xF0, 0xC3, 0x01, 0x1A, 0xF0, 0xCA, 0x01, 0x1A, 0xF0, 0xD0, 0x01, 0x1B, 0xF0, 0xD6, 0x01, - .byte 0x1C, 0xF0, 0xDC, 0x01, 0x1D, 0xF0, 0xE3, 0x01, 0x1D, 0xF0, 0xE9, 0x01, 0x1E, 0xF0, 0xEF, 0x01, - .byte 0x1F, 0xF0, 0xF5, 0x01, 0x20, 0xF0, 0xFC, 0x01, 0x20, 0xF0, 0x02, 0x02, 0x21, 0xF0, 0x08, 0x02, - .byte 0x22, 0xF0, 0x0E, 0x02, 0x23, 0xF0, 0x15, 0x02, 0x24, 0xF0, 0x1B, 0x02, 0x24, 0xF0, 0x21, 0x02, - .byte 0x25, 0xF0, 0x27, 0x02, 0x26, 0xF0, 0x2D, 0x02, 0x27, 0xF0, 0x34, 0x02, 0x28, 0xF0, 0x3A, 0x02, - .byte 0x29, 0xF0, 0x40, 0x02, 0x2A, 0xF0, 0x46, 0x02, 0x2B, 0xF0, 0x4D, 0x02, 0x2B, 0xF0, 0x53, 0x02, - .byte 0x2C, 0xF0, 0x59, 0x02, 0x2D, 0xF0, 0x5F, 0x02, 0x2E, 0xF0, 0x65, 0x02, 0x2F, 0xF0, 0x6C, 0x02, - .byte 0x30, 0xF0, 0x72, 0x02, 0x31, 0xF0, 0x78, 0x02, 0x32, 0xF0, 0x7E, 0x02, 0x33, 0xF0, 0x84, 0x02, - .byte 0x34, 0xF0, 0x8B, 0x02, 0x35, 0xF0, 0x91, 0x02, 0x36, 0xF0, 0x97, 0x02, 0x37, 0xF0, 0x9D, 0x02, - .byte 0x38, 0xF0, 0xA3, 0x02, 0x39, 0xF0, 0xAA, 0x02, 0x3A, 0xF0, 0xB0, 0x02, 0x3B, 0xF0, 0xB6, 0x02, - .byte 0x3C, 0xF0, 0xBC, 0x02, 0x3D, 0xF0, 0xC2, 0x02, 0x3E, 0xF0, 0xC9, 0x02, 0x40, 0xF0, 0xCF, 0x02, - .byte 0x41, 0xF0, 0xD5, 0x02, 0x42, 0xF0, 0xDB, 0x02, 0x43, 0xF0, 0xE1, 0x02, 0x44, 0xF0, 0xE8, 0x02, - .byte 0x45, 0xF0, 0xEE, 0x02, 0x46, 0xF0, 0xF4, 0x02, 0x48, 0xF0, 0xFA, 0x02, 0x49, 0xF0, 0x00, 0x03, - .byte 0x4A, 0xF0, 0x06, 0x03, 0x4B, 0xF0, 0x0D, 0x03, 0x4C, 0xF0, 0x13, 0x03, 0x4D, 0xF0, 0x19, 0x03, - .byte 0x4F, 0xF0, 0x1F, 0x03, 0x50, 0xF0, 0x25, 0x03, 0x51, 0xF0, 0x2B, 0x03, 0x52, 0xF0, 0x32, 0x03, - .byte 0x54, 0xF0, 0x38, 0x03, 0x55, 0xF0, 0x3E, 0x03, 0x56, 0xF0, 0x44, 0x03, 0x58, 0xF0, 0x4A, 0x03, - .byte 0x59, 0xF0, 0x50, 0x03, 0x5A, 0xF0, 0x56, 0x03, 0x5B, 0xF0, 0x5D, 0x03, 0x5D, 0xF0, 0x63, 0x03, - .byte 0x5E, 0xF0, 0x69, 0x03, 0x5F, 0xF0, 0x6F, 0x03, 0x61, 0xF0, 0x75, 0x03, 0x62, 0xF0, 0x7B, 0x03, - .byte 0x64, 0xF0, 0x81, 0x03, 0x65, 0xF0, 0x88, 0x03, 0x66, 0xF0, 0x8E, 0x03, 0x68, 0xF0, 0x94, 0x03, - .byte 0x69, 0xF0, 0x9A, 0x03, 0x6B, 0xF0, 0xA0, 0x03, 0x6C, 0xF0, 0xA6, 0x03, 0x6D, 0xF0, 0xAC, 0x03, - .byte 0x6F, 0xF0, 0xB2, 0x03, 0x70, 0xF0, 0xB9, 0x03, 0x72, 0xF0, 0xBF, 0x03, 0x73, 0xF0, 0xC5, 0x03, - .byte 0x75, 0xF0, 0xCB, 0x03, 0x76, 0xF0, 0xD1, 0x03, 0x78, 0xF0, 0xD7, 0x03, 0x79, 0xF0, 0xDD, 0x03, - .byte 0x7B, 0xF0, 0xE3, 0x03, 0x7C, 0xF0, 0xE9, 0x03, 0x7E, 0xF0, 0xEF, 0x03, 0x7F, 0xF0, 0xF6, 0x03, - .byte 0x81, 0xF0, 0xFC, 0x03, 0x83, 0xF0, 0x02, 0x04, 0x84, 0xF0, 0x08, 0x04, 0x86, 0xF0, 0x0E, 0x04, - .byte 0x87, 0xF0, 0x14, 0x04, 0x89, 0xF0, 0x1A, 0x04, 0x8A, 0xF0, 0x20, 0x04, 0x8C, 0xF0, 0x26, 0x04, - .byte 0x8E, 0xF0, 0x2C, 0x04, 0x8F, 0xF0, 0x32, 0x04, 0x91, 0xF0, 0x38, 0x04, 0x93, 0xF0, 0x3E, 0x04, - .byte 0x94, 0xF0, 0x44, 0x04, 0x96, 0xF0, 0x4B, 0x04, 0x98, 0xF0, 0x51, 0x04, 0x99, 0xF0, 0x57, 0x04, - .byte 0x9B, 0xF0, 0x5D, 0x04, 0x9D, 0xF0, 0x63, 0x04, 0x9F, 0xF0, 0x69, 0x04, 0xA0, 0xF0, 0x6F, 0x04, - .byte 0xA2, 0xF0, 0x75, 0x04, 0xA4, 0xF0, 0x7B, 0x04, 0xA6, 0xF0, 0x81, 0x04, 0xA7, 0xF0, 0x87, 0x04, - .byte 0xA9, 0xF0, 0x8D, 0x04, 0xAB, 0xF0, 0x93, 0x04, 0xAD, 0xF0, 0x99, 0x04, 0xAF, 0xF0, 0x9F, 0x04, - .byte 0xB0, 0xF0, 0xA5, 0x04, 0xB2, 0xF0, 0xAB, 0x04, 0xB4, 0xF0, 0xB1, 0x04, 0xB6, 0xF0, 0xB7, 0x04, - .byte 0xB8, 0xF0, 0xBD, 0x04, 0xBA, 0xF0, 0xC3, 0x04, 0xBB, 0xF0, 0xC9, 0x04, 0xBD, 0xF0, 0xCF, 0x04, - .byte 0xBF, 0xF0, 0xD5, 0x04, 0xC1, 0xF0, 0xDB, 0x04, 0xC3, 0xF0, 0xE1, 0x04, 0xC5, 0xF0, 0xE7, 0x04, - .byte 0xC7, 0xF0, 0xED, 0x04, 0xC9, 0xF0, 0xF3, 0x04, 0xCB, 0xF0, 0xF9, 0x04, 0xCD, 0xF0, 0xFF, 0x04, - .byte 0xCF, 0xF0, 0x05, 0x05, 0xD1, 0xF0, 0x0B, 0x05, 0xD3, 0xF0, 0x11, 0x05, 0xD5, 0xF0, 0x17, 0x05, - .byte 0xD7, 0xF0, 0x1D, 0x05, 0xD9, 0xF0, 0x23, 0x05, 0xDB, 0xF0, 0x29, 0x05, 0xDD, 0xF0, 0x2F, 0x05, - .byte 0xDF, 0xF0, 0x34, 0x05, 0xE1, 0xF0, 0x3A, 0x05, 0xE3, 0xF0, 0x40, 0x05, 0xE5, 0xF0, 0x46, 0x05, - .byte 0xE7, 0xF0, 0x4C, 0x05, 0xE9, 0xF0, 0x52, 0x05, 0xEB, 0xF0, 0x58, 0x05, 0xED, 0xF0, 0x5E, 0x05, - .byte 0xEF, 0xF0, 0x64, 0x05, 0xF2, 0xF0, 0x6A, 0x05, 0xF4, 0xF0, 0x70, 0x05, 0xF6, 0xF0, 0x76, 0x05, - .byte 0xF8, 0xF0, 0x7C, 0x05, 0xFA, 0xF0, 0x81, 0x05, 0xFC, 0xF0, 0x87, 0x05, 0xFE, 0xF0, 0x8D, 0x05, - .byte 0x01, 0xF1, 0x93, 0x05, 0x03, 0xF1, 0x99, 0x05, 0x05, 0xF1, 0x9F, 0x05, 0x07, 0xF1, 0xA5, 0x05, - .byte 0x09, 0xF1, 0xAB, 0x05, 0x0C, 0xF1, 0xB1, 0x05, 0x0E, 0xF1, 0xB6, 0x05, 0x10, 0xF1, 0xBC, 0x05, - .byte 0x12, 0xF1, 0xC2, 0x05, 0x15, 0xF1, 0xC8, 0x05, 0x17, 0xF1, 0xCE, 0x05, 0x19, 0xF1, 0xD4, 0x05, - .byte 0x1C, 0xF1, 0xDA, 0x05, 0x1E, 0xF1, 0xDF, 0x05, 0x20, 0xF1, 0xE5, 0x05, 0x23, 0xF1, 0xEB, 0x05, - .byte 0x25, 0xF1, 0xF1, 0x05, 0x27, 0xF1, 0xF7, 0x05, 0x2A, 0xF1, 0xFD, 0x05, 0x2C, 0xF1, 0x02, 0x06, - .byte 0x2E, 0xF1, 0x08, 0x06, 0x31, 0xF1, 0x0E, 0x06, 0x33, 0xF1, 0x14, 0x06, 0x35, 0xF1, 0x1A, 0x06, - .byte 0x38, 0xF1, 0x1F, 0x06, 0x3A, 0xF1, 0x25, 0x06, 0x3D, 0xF1, 0x2B, 0x06, 0x3F, 0xF1, 0x31, 0x06, - .byte 0x41, 0xF1, 0x37, 0x06, 0x44, 0xF1, 0x3C, 0x06, 0x46, 0xF1, 0x42, 0x06, 0x49, 0xF1, 0x48, 0x06, - .byte 0x4B, 0xF1, 0x4E, 0x06, 0x4E, 0xF1, 0x54, 0x06, 0x50, 0xF1, 0x59, 0x06, 0x53, 0xF1, 0x5F, 0x06, - .byte 0x55, 0xF1, 0x65, 0x06, 0x58, 0xF1, 0x6B, 0x06, 0x5A, 0xF1, 0x70, 0x06, 0x5D, 0xF1, 0x76, 0x06, - .byte 0x5F, 0xF1, 0x7C, 0x06, 0x62, 0xF1, 0x82, 0x06, 0x65, 0xF1, 0x87, 0x06, 0x67, 0xF1, 0x8D, 0x06, - .byte 0x6A, 0xF1, 0x93, 0x06, 0x6C, 0xF1, 0x99, 0x06, 0x6F, 0xF1, 0x9E, 0x06, 0x71, 0xF1, 0xA4, 0x06, - .byte 0x74, 0xF1, 0xAA, 0x06, 0x77, 0xF1, 0xAF, 0x06, 0x79, 0xF1, 0xB5, 0x06, 0x7C, 0xF1, 0xBB, 0x06, - .byte 0x7F, 0xF1, 0xC1, 0x06, 0x81, 0xF1, 0xC6, 0x06, 0x84, 0xF1, 0xCC, 0x06, 0x87, 0xF1, 0xD2, 0x06, - .byte 0x89, 0xF1, 0xD7, 0x06, 0x8C, 0xF1, 0xDD, 0x06, 0x8F, 0xF1, 0xE3, 0x06, 0x91, 0xF1, 0xE8, 0x06, - .byte 0x94, 0xF1, 0xEE, 0x06, 0x97, 0xF1, 0xF4, 0x06, 0x9A, 0xF1, 0xF9, 0x06, 0x9C, 0xF1, 0xFF, 0x06, - .byte 0x9F, 0xF1, 0x05, 0x07, 0xA2, 0xF1, 0x0A, 0x07, 0xA5, 0xF1, 0x10, 0x07, 0xA7, 0xF1, 0x15, 0x07, - .byte 0xAA, 0xF1, 0x1B, 0x07, 0xAD, 0xF1, 0x21, 0x07, 0xB0, 0xF1, 0x26, 0x07, 0xB3, 0xF1, 0x2C, 0x07, - .byte 0xB5, 0xF1, 0x32, 0x07, 0xB8, 0xF1, 0x37, 0x07, 0xBB, 0xF1, 0x3D, 0x07, 0xBE, 0xF1, 0x42, 0x07, - .byte 0xC1, 0xF1, 0x48, 0x07, 0xC4, 0xF1, 0x4E, 0x07, 0xC6, 0xF1, 0x53, 0x07, 0xC9, 0xF1, 0x59, 0x07, - .byte 0xCC, 0xF1, 0x5E, 0x07, 0xCF, 0xF1, 0x64, 0x07, 0xD2, 0xF1, 0x6A, 0x07, 0xD5, 0xF1, 0x6F, 0x07, - .byte 0xD8, 0xF1, 0x75, 0x07, 0xDB, 0xF1, 0x7A, 0x07, 0xDE, 0xF1, 0x80, 0x07, 0xE1, 0xF1, 0x85, 0x07, - .byte 0xE4, 0xF1, 0x8B, 0x07, 0xE7, 0xF1, 0x90, 0x07, 0xEA, 0xF1, 0x96, 0x07, 0xED, 0xF1, 0x9B, 0x07, - .byte 0xF0, 0xF1, 0xA1, 0x07, 0xF3, 0xF1, 0xA6, 0x07, 0xF6, 0xF1, 0xAC, 0x07, 0xF9, 0xF1, 0xB2, 0x07, - .byte 0xFC, 0xF1, 0xB7, 0x07, 0xFF, 0xF1, 0xBD, 0x07, 0x02, 0xF2, 0xC2, 0x07, 0x05, 0xF2, 0xC8, 0x07, - .byte 0x08, 0xF2, 0xCD, 0x07, 0x0B, 0xF2, 0xD2, 0x07, 0x0E, 0xF2, 0xD8, 0x07, 0x11, 0xF2, 0xDD, 0x07, - .byte 0x14, 0xF2, 0xE3, 0x07, 0x17, 0xF2, 0xE8, 0x07, 0x1A, 0xF2, 0xEE, 0x07, 0x1D, 0xF2, 0xF3, 0x07, - .byte 0x21, 0xF2, 0xF9, 0x07, 0x24, 0xF2, 0xFE, 0x07, 0x27, 0xF2, 0x04, 0x08, 0x2A, 0xF2, 0x09, 0x08, - .byte 0x2D, 0xF2, 0x0E, 0x08, 0x30, 0xF2, 0x14, 0x08, 0x34, 0xF2, 0x19, 0x08, 0x37, 0xF2, 0x1F, 0x08, - .byte 0x3A, 0xF2, 0x24, 0x08, 0x3D, 0xF2, 0x2A, 0x08, 0x40, 0xF2, 0x2F, 0x08, 0x44, 0xF2, 0x34, 0x08, - .byte 0x47, 0xF2, 0x3A, 0x08, 0x4A, 0xF2, 0x3F, 0x08, 0x4D, 0xF2, 0x45, 0x08, 0x50, 0xF2, 0x4A, 0x08, - .byte 0x54, 0xF2, 0x4F, 0x08, 0x57, 0xF2, 0x55, 0x08, 0x5A, 0xF2, 0x5A, 0x08, 0x5E, 0xF2, 0x5F, 0x08, - .byte 0x61, 0xF2, 0x65, 0x08, 0x64, 0xF2, 0x6A, 0x08, 0x67, 0xF2, 0x6F, 0x08, 0x6B, 0xF2, 0x75, 0x08, - .byte 0x6E, 0xF2, 0x7A, 0x08, 0x71, 0xF2, 0x7F, 0x08, 0x75, 0xF2, 0x85, 0x08, 0x78, 0xF2, 0x8A, 0x08, - .byte 0x7B, 0xF2, 0x8F, 0x08, 0x7F, 0xF2, 0x95, 0x08, 0x82, 0xF2, 0x9A, 0x08, 0x86, 0xF2, 0x9F, 0x08, - .byte 0x89, 0xF2, 0xA5, 0x08, 0x8C, 0xF2, 0xAA, 0x08, 0x90, 0xF2, 0xAF, 0x08, 0x93, 0xF2, 0xB4, 0x08, - .byte 0x97, 0xF2, 0xBA, 0x08, 0x9A, 0xF2, 0xBF, 0x08, 0x9E, 0xF2, 0xC4, 0x08, 0xA1, 0xF2, 0xC9, 0x08, - .byte 0xA4, 0xF2, 0xCF, 0x08, 0xA8, 0xF2, 0xD4, 0x08, 0xAB, 0xF2, 0xD9, 0x08, 0xAF, 0xF2, 0xDE, 0x08, - .byte 0xB2, 0xF2, 0xE4, 0x08, 0xB6, 0xF2, 0xE9, 0x08, 0xB9, 0xF2, 0xEE, 0x08, 0xBD, 0xF2, 0xF3, 0x08, - .byte 0xC0, 0xF2, 0xF8, 0x08, 0xC4, 0xF2, 0xFE, 0x08, 0xC7, 0xF2, 0x03, 0x09, 0xCB, 0xF2, 0x08, 0x09, - .byte 0xCE, 0xF2, 0x0D, 0x09, 0xD2, 0xF2, 0x12, 0x09, 0xD6, 0xF2, 0x18, 0x09, 0xD9, 0xF2, 0x1D, 0x09, - .byte 0xDD, 0xF2, 0x22, 0x09, 0xE0, 0xF2, 0x27, 0x09, 0xE4, 0xF2, 0x2C, 0x09, 0xE8, 0xF2, 0x31, 0x09, - .byte 0xEB, 0xF2, 0x37, 0x09, 0xEF, 0xF2, 0x3C, 0x09, 0xF2, 0xF2, 0x41, 0x09, 0xF6, 0xF2, 0x46, 0x09, - .byte 0xFA, 0xF2, 0x4B, 0x09, 0xFD, 0xF2, 0x50, 0x09, 0x01, 0xF3, 0x55, 0x09, 0x05, 0xF3, 0x5A, 0x09, - .byte 0x08, 0xF3, 0x5F, 0x09, 0x0C, 0xF3, 0x65, 0x09, 0x10, 0xF3, 0x6A, 0x09, 0x13, 0xF3, 0x6F, 0x09, - .byte 0x17, 0xF3, 0x74, 0x09, 0x1B, 0xF3, 0x79, 0x09, 0x1F, 0xF3, 0x7E, 0x09, 0x22, 0xF3, 0x83, 0x09, - .byte 0x26, 0xF3, 0x88, 0x09, 0x2A, 0xF3, 0x8D, 0x09, 0x2E, 0xF3, 0x92, 0x09, 0x31, 0xF3, 0x97, 0x09, - .byte 0x35, 0xF3, 0x9C, 0x09, 0x39, 0xF3, 0xA1, 0x09, 0x3D, 0xF3, 0xA6, 0x09, 0x40, 0xF3, 0xAB, 0x09, - .byte 0x44, 0xF3, 0xB0, 0x09, 0x48, 0xF3, 0xB5, 0x09, 0x4C, 0xF3, 0xBA, 0x09, 0x50, 0xF3, 0xBF, 0x09, - .byte 0x54, 0xF3, 0xC4, 0x09, 0x57, 0xF3, 0xC9, 0x09, 0x5B, 0xF3, 0xCE, 0x09, 0x5F, 0xF3, 0xD3, 0x09, - .byte 0x63, 0xF3, 0xD8, 0x09, 0x67, 0xF3, 0xDD, 0x09, 0x6B, 0xF3, 0xE2, 0x09, 0x6F, 0xF3, 0xE7, 0x09, - .byte 0x72, 0xF3, 0xEC, 0x09, 0x76, 0xF3, 0xF1, 0x09, 0x7A, 0xF3, 0xF6, 0x09, 0x7E, 0xF3, 0xFB, 0x09, - .byte 0x82, 0xF3, 0xFF, 0x09, 0x86, 0xF3, 0x04, 0x0A, 0x8A, 0xF3, 0x09, 0x0A, 0x8E, 0xF3, 0x0E, 0x0A, - .byte 0x92, 0xF3, 0x13, 0x0A, 0x96, 0xF3, 0x18, 0x0A, 0x9A, 0xF3, 0x1D, 0x0A, 0x9E, 0xF3, 0x22, 0x0A, - .byte 0xA2, 0xF3, 0x26, 0x0A, 0xA6, 0xF3, 0x2B, 0x0A, 0xAA, 0xF3, 0x30, 0x0A, 0xAE, 0xF3, 0x35, 0x0A, - .byte 0xB2, 0xF3, 0x3A, 0x0A, 0xB6, 0xF3, 0x3F, 0x0A, 0xBA, 0xF3, 0x44, 0x0A, 0xBE, 0xF3, 0x48, 0x0A, - .byte 0xC2, 0xF3, 0x4D, 0x0A, 0xC6, 0xF3, 0x52, 0x0A, 0xCA, 0xF3, 0x57, 0x0A, 0xCE, 0xF3, 0x5C, 0x0A, - .byte 0xD2, 0xF3, 0x60, 0x0A, 0xD6, 0xF3, 0x65, 0x0A, 0xDA, 0xF3, 0x6A, 0x0A, 0xDE, 0xF3, 0x6F, 0x0A, - .byte 0xE2, 0xF3, 0x73, 0x0A, 0xE7, 0xF3, 0x78, 0x0A, 0xEB, 0xF3, 0x7D, 0x0A, 0xEF, 0xF3, 0x82, 0x0A, - .byte 0xF3, 0xF3, 0x86, 0x0A, 0xF7, 0xF3, 0x8B, 0x0A, 0xFB, 0xF3, 0x90, 0x0A, 0xFF, 0xF3, 0x95, 0x0A, - .byte 0x04, 0xF4, 0x99, 0x0A, 0x08, 0xF4, 0x9E, 0x0A, 0x0C, 0xF4, 0xA3, 0x0A, 0x10, 0xF4, 0xA7, 0x0A, - .byte 0x14, 0xF4, 0xAC, 0x0A, 0x18, 0xF4, 0xB1, 0x0A, 0x1D, 0xF4, 0xB5, 0x0A, 0x21, 0xF4, 0xBA, 0x0A, - .byte 0x25, 0xF4, 0xBF, 0x0A, 0x29, 0xF4, 0xC3, 0x0A, 0x2E, 0xF4, 0xC8, 0x0A, 0x32, 0xF4, 0xCD, 0x0A, - .byte 0x36, 0xF4, 0xD1, 0x0A, 0x3A, 0xF4, 0xD6, 0x0A, 0x3F, 0xF4, 0xDB, 0x0A, 0x43, 0xF4, 0xDF, 0x0A, - .byte 0x47, 0xF4, 0xE4, 0x0A, 0x4B, 0xF4, 0xE8, 0x0A, 0x50, 0xF4, 0xED, 0x0A, 0x54, 0xF4, 0xF2, 0x0A, - .byte 0x58, 0xF4, 0xF6, 0x0A, 0x5D, 0xF4, 0xFB, 0x0A, 0x61, 0xF4, 0xFF, 0x0A, 0x65, 0xF4, 0x04, 0x0B, - .byte 0x69, 0xF4, 0x08, 0x0B, 0x6E, 0xF4, 0x0D, 0x0B, 0x72, 0xF4, 0x11, 0x0B, 0x77, 0xF4, 0x16, 0x0B, - .byte 0x7B, 0xF4, 0x1B, 0x0B, 0x7F, 0xF4, 0x1F, 0x0B, 0x84, 0xF4, 0x24, 0x0B, 0x88, 0xF4, 0x28, 0x0B, - .byte 0x8C, 0xF4, 0x2D, 0x0B, 0x91, 0xF4, 0x31, 0x0B, 0x95, 0xF4, 0x36, 0x0B, 0x9A, 0xF4, 0x3A, 0x0B, - .byte 0x9E, 0xF4, 0x3E, 0x0B, 0xA2, 0xF4, 0x43, 0x0B, 0xA7, 0xF4, 0x47, 0x0B, 0xAB, 0xF4, 0x4C, 0x0B, - .byte 0xB0, 0xF4, 0x50, 0x0B, 0xB4, 0xF4, 0x55, 0x0B, 0xB9, 0xF4, 0x59, 0x0B, 0xBD, 0xF4, 0x5E, 0x0B, - .byte 0xC2, 0xF4, 0x62, 0x0B, 0xC6, 0xF4, 0x66, 0x0B, 0xCA, 0xF4, 0x6B, 0x0B, 0xCF, 0xF4, 0x6F, 0x0B, - .byte 0xD3, 0xF4, 0x74, 0x0B, 0xD8, 0xF4, 0x78, 0x0B, 0xDC, 0xF4, 0x7C, 0x0B, 0xE1, 0xF4, 0x81, 0x0B, - .byte 0xE5, 0xF4, 0x85, 0x0B, 0xEA, 0xF4, 0x89, 0x0B, 0xEF, 0xF4, 0x8E, 0x0B, 0xF3, 0xF4, 0x92, 0x0B, - .byte 0xF8, 0xF4, 0x97, 0x0B, 0xFC, 0xF4, 0x9B, 0x0B, 0x01, 0xF5, 0x9F, 0x0B, 0x05, 0xF5, 0xA3, 0x0B, - .byte 0x0A, 0xF5, 0xA8, 0x0B, 0x0E, 0xF5, 0xAC, 0x0B, 0x13, 0xF5, 0xB0, 0x0B, 0x18, 0xF5, 0xB5, 0x0B, - .byte 0x1C, 0xF5, 0xB9, 0x0B, 0x21, 0xF5, 0xBD, 0x0B, 0x25, 0xF5, 0xC1, 0x0B, 0x2A, 0xF5, 0xC6, 0x0B, - .byte 0x2F, 0xF5, 0xCA, 0x0B, 0x33, 0xF5, 0xCE, 0x0B, 0x38, 0xF5, 0xD2, 0x0B, 0x3D, 0xF5, 0xD7, 0x0B, - .byte 0x41, 0xF5, 0xDB, 0x0B, 0x46, 0xF5, 0xDF, 0x0B, 0x4B, 0xF5, 0xE3, 0x0B, 0x4F, 0xF5, 0xE8, 0x0B, - .byte 0x54, 0xF5, 0xEC, 0x0B, 0x59, 0xF5, 0xF0, 0x0B, 0x5D, 0xF5, 0xF4, 0x0B, 0x62, 0xF5, 0xF8, 0x0B, - .byte 0x67, 0xF5, 0xFC, 0x0B, 0x6B, 0xF5, 0x01, 0x0C, 0x70, 0xF5, 0x05, 0x0C, 0x75, 0xF5, 0x09, 0x0C, - .byte 0x7A, 0xF5, 0x0D, 0x0C, 0x7E, 0xF5, 0x11, 0x0C, 0x83, 0xF5, 0x15, 0x0C, 0x88, 0xF5, 0x19, 0x0C, - .byte 0x8D, 0xF5, 0x1E, 0x0C, 0x91, 0xF5, 0x22, 0x0C, 0x96, 0xF5, 0x26, 0x0C, 0x9B, 0xF5, 0x2A, 0x0C, - .byte 0xA0, 0xF5, 0x2E, 0x0C, 0xA4, 0xF5, 0x32, 0x0C, 0xA9, 0xF5, 0x36, 0x0C, 0xAE, 0xF5, 0x3A, 0x0C, - .byte 0xB3, 0xF5, 0x3E, 0x0C, 0xB8, 0xF5, 0x42, 0x0C, 0xBC, 0xF5, 0x46, 0x0C, 0xC1, 0xF5, 0x4A, 0x0C, - .byte 0xC6, 0xF5, 0x4E, 0x0C, 0xCB, 0xF5, 0x52, 0x0C, 0xD0, 0xF5, 0x56, 0x0C, 0xD5, 0xF5, 0x5A, 0x0C, - .byte 0xDA, 0xF5, 0x5E, 0x0C, 0xDE, 0xF5, 0x62, 0x0C, 0xE3, 0xF5, 0x66, 0x0C, 0xE8, 0xF5, 0x6A, 0x0C, - .byte 0xED, 0xF5, 0x6E, 0x0C, 0xF2, 0xF5, 0x72, 0x0C, 0xF7, 0xF5, 0x76, 0x0C, 0xFC, 0xF5, 0x7A, 0x0C, - .byte 0x01, 0xF6, 0x7E, 0x0C, 0x05, 0xF6, 0x82, 0x0C, 0x0A, 0xF6, 0x86, 0x0C, 0x0F, 0xF6, 0x8A, 0x0C, - .byte 0x14, 0xF6, 0x8E, 0x0C, 0x19, 0xF6, 0x91, 0x0C, 0x1E, 0xF6, 0x95, 0x0C, 0x23, 0xF6, 0x99, 0x0C, - .byte 0x28, 0xF6, 0x9D, 0x0C, 0x2D, 0xF6, 0xA1, 0x0C, 0x32, 0xF6, 0xA5, 0x0C, 0x37, 0xF6, 0xA9, 0x0C, - .byte 0x3C, 0xF6, 0xAC, 0x0C, 0x41, 0xF6, 0xB0, 0x0C, 0x46, 0xF6, 0xB4, 0x0C, 0x4B, 0xF6, 0xB8, 0x0C, - .byte 0x50, 0xF6, 0xBC, 0x0C, 0x55, 0xF6, 0xC0, 0x0C, 0x5A, 0xF6, 0xC3, 0x0C, 0x5F, 0xF6, 0xC7, 0x0C, - .byte 0x64, 0xF6, 0xCB, 0x0C, 0x69, 0xF6, 0xCF, 0x0C, 0x6E, 0xF6, 0xD2, 0x0C, 0x73, 0xF6, 0xD6, 0x0C, - .byte 0x78, 0xF6, 0xDA, 0x0C, 0x7D, 0xF6, 0xDE, 0x0C, 0x82, 0xF6, 0xE1, 0x0C, 0x87, 0xF6, 0xE5, 0x0C, - .byte 0x8C, 0xF6, 0xE9, 0x0C, 0x91, 0xF6, 0xED, 0x0C, 0x96, 0xF6, 0xF0, 0x0C, 0x9B, 0xF6, 0xF4, 0x0C, - .byte 0xA1, 0xF6, 0xF8, 0x0C, 0xA6, 0xF6, 0xFB, 0x0C, 0xAB, 0xF6, 0xFF, 0x0C, 0xB0, 0xF6, 0x03, 0x0D, - .byte 0xB5, 0xF6, 0x06, 0x0D, 0xBA, 0xF6, 0x0A, 0x0D, 0xBF, 0xF6, 0x0E, 0x0D, 0xC4, 0xF6, 0x11, 0x0D, - .byte 0xC9, 0xF6, 0x15, 0x0D, 0xCF, 0xF6, 0x18, 0x0D, 0xD4, 0xF6, 0x1C, 0x0D, 0xD9, 0xF6, 0x20, 0x0D, - .byte 0xDE, 0xF6, 0x23, 0x0D, 0xE3, 0xF6, 0x27, 0x0D, 0xE8, 0xF6, 0x2A, 0x0D, 0xEE, 0xF6, 0x2E, 0x0D, - .byte 0xF3, 0xF6, 0x32, 0x0D, 0xF8, 0xF6, 0x35, 0x0D, 0xFD, 0xF6, 0x39, 0x0D, 0x02, 0xF7, 0x3C, 0x0D, - .byte 0x08, 0xF7, 0x40, 0x0D, 0x0D, 0xF7, 0x43, 0x0D, 0x12, 0xF7, 0x47, 0x0D, 0x17, 0xF7, 0x4A, 0x0D, - .byte 0x1C, 0xF7, 0x4E, 0x0D, 0x22, 0xF7, 0x51, 0x0D, 0x27, 0xF7, 0x55, 0x0D, 0x2C, 0xF7, 0x58, 0x0D, - .byte 0x31, 0xF7, 0x5C, 0x0D, 0x37, 0xF7, 0x5F, 0x0D, 0x3C, 0xF7, 0x62, 0x0D, 0x41, 0xF7, 0x66, 0x0D, - .byte 0x46, 0xF7, 0x69, 0x0D, 0x4C, 0xF7, 0x6D, 0x0D, 0x51, 0xF7, 0x70, 0x0D, 0x56, 0xF7, 0x74, 0x0D, - .byte 0x5B, 0xF7, 0x77, 0x0D, 0x61, 0xF7, 0x7A, 0x0D, 0x66, 0xF7, 0x7E, 0x0D, 0x6B, 0xF7, 0x81, 0x0D, - .byte 0x71, 0xF7, 0x85, 0x0D, 0x76, 0xF7, 0x88, 0x0D, 0x7B, 0xF7, 0x8B, 0x0D, 0x81, 0xF7, 0x8F, 0x0D, - .byte 0x86, 0xF7, 0x92, 0x0D, 0x8B, 0xF7, 0x95, 0x0D, 0x91, 0xF7, 0x99, 0x0D, 0x96, 0xF7, 0x9C, 0x0D, - .byte 0x9B, 0xF7, 0x9F, 0x0D, 0xA1, 0xF7, 0xA2, 0x0D, 0xA6, 0xF7, 0xA6, 0x0D, 0xAB, 0xF7, 0xA9, 0x0D, - .byte 0xB1, 0xF7, 0xAC, 0x0D, 0xB6, 0xF7, 0xB0, 0x0D, 0xBB, 0xF7, 0xB3, 0x0D, 0xC1, 0xF7, 0xB6, 0x0D, - .byte 0xC6, 0xF7, 0xB9, 0x0D, 0xCC, 0xF7, 0xBC, 0x0D, 0xD1, 0xF7, 0xC0, 0x0D, 0xD6, 0xF7, 0xC3, 0x0D, - .byte 0xDC, 0xF7, 0xC6, 0x0D, 0xE1, 0xF7, 0xC9, 0x0D, 0xE7, 0xF7, 0xCC, 0x0D, 0xEC, 0xF7, 0xD0, 0x0D, - .byte 0xF2, 0xF7, 0xD3, 0x0D, 0xF7, 0xF7, 0xD6, 0x0D, 0xFC, 0xF7, 0xD9, 0x0D, 0x02, 0xF8, 0xDC, 0x0D, - .byte 0x07, 0xF8, 0xDF, 0x0D, 0x0D, 0xF8, 0xE3, 0x0D, 0x12, 0xF8, 0xE6, 0x0D, 0x18, 0xF8, 0xE9, 0x0D, - .byte 0x1D, 0xF8, 0xEC, 0x0D, 0x23, 0xF8, 0xEF, 0x0D, 0x28, 0xF8, 0xF2, 0x0D, 0x2E, 0xF8, 0xF5, 0x0D, - .byte 0x33, 0xF8, 0xF8, 0x0D, 0x38, 0xF8, 0xFB, 0x0D, 0x3E, 0xF8, 0xFE, 0x0D, 0x43, 0xF8, 0x01, 0x0E, - .byte 0x49, 0xF8, 0x04, 0x0E, 0x4E, 0xF8, 0x07, 0x0E, 0x54, 0xF8, 0x0A, 0x0E, 0x5A, 0xF8, 0x0D, 0x0E, - .byte 0x5F, 0xF8, 0x10, 0x0E, 0x65, 0xF8, 0x13, 0x0E, 0x6A, 0xF8, 0x16, 0x0E, 0x70, 0xF8, 0x19, 0x0E, - .byte 0x75, 0xF8, 0x1C, 0x0E, 0x7B, 0xF8, 0x1F, 0x0E, 0x80, 0xF8, 0x22, 0x0E, 0x86, 0xF8, 0x25, 0x0E, - .byte 0x8B, 0xF8, 0x28, 0x0E, 0x91, 0xF8, 0x2B, 0x0E, 0x96, 0xF8, 0x2E, 0x0E, 0x9C, 0xF8, 0x31, 0x0E, - .byte 0xA2, 0xF8, 0x34, 0x0E, 0xA7, 0xF8, 0x37, 0x0E, 0xAD, 0xF8, 0x3A, 0x0E, 0xB2, 0xF8, 0x3C, 0x0E, - .byte 0xB8, 0xF8, 0x3F, 0x0E, 0xBE, 0xF8, 0x42, 0x0E, 0xC3, 0xF8, 0x45, 0x0E, 0xC9, 0xF8, 0x48, 0x0E, - .byte 0xCE, 0xF8, 0x4B, 0x0E, 0xD4, 0xF8, 0x4D, 0x0E, 0xDA, 0xF8, 0x50, 0x0E, 0xDF, 0xF8, 0x53, 0x0E, - .byte 0xE5, 0xF8, 0x56, 0x0E, 0xEB, 0xF8, 0x59, 0x0E, 0xF0, 0xF8, 0x5B, 0x0E, 0xF6, 0xF8, 0x5E, 0x0E, - .byte 0xFB, 0xF8, 0x61, 0x0E, 0x01, 0xF9, 0x64, 0x0E, 0x07, 0xF9, 0x66, 0x0E, 0x0C, 0xF9, 0x69, 0x0E, - .byte 0x12, 0xF9, 0x6C, 0x0E, 0x18, 0xF9, 0x6F, 0x0E, 0x1D, 0xF9, 0x71, 0x0E, 0x23, 0xF9, 0x74, 0x0E, - .byte 0x29, 0xF9, 0x77, 0x0E, 0x2E, 0xF9, 0x79, 0x0E, 0x34, 0xF9, 0x7C, 0x0E, 0x3A, 0xF9, 0x7F, 0x0E, - .byte 0x3F, 0xF9, 0x81, 0x0E, 0x45, 0xF9, 0x84, 0x0E, 0x4B, 0xF9, 0x87, 0x0E, 0x51, 0xF9, 0x89, 0x0E, - .byte 0x56, 0xF9, 0x8C, 0x0E, 0x5C, 0xF9, 0x8F, 0x0E, 0x62, 0xF9, 0x91, 0x0E, 0x67, 0xF9, 0x94, 0x0E, - .byte 0x6D, 0xF9, 0x96, 0x0E, 0x73, 0xF9, 0x99, 0x0E, 0x79, 0xF9, 0x9B, 0x0E, 0x7E, 0xF9, 0x9E, 0x0E, - .byte 0x84, 0xF9, 0xA1, 0x0E, 0x8A, 0xF9, 0xA3, 0x0E, 0x90, 0xF9, 0xA6, 0x0E, 0x95, 0xF9, 0xA8, 0x0E, - .byte 0x9B, 0xF9, 0xAB, 0x0E, 0xA1, 0xF9, 0xAD, 0x0E, 0xA7, 0xF9, 0xB0, 0x0E, 0xAC, 0xF9, 0xB2, 0x0E, - .byte 0xB2, 0xF9, 0xB5, 0x0E, 0xB8, 0xF9, 0xB7, 0x0E, 0xBE, 0xF9, 0xBA, 0x0E, 0xC4, 0xF9, 0xBC, 0x0E, - .byte 0xC9, 0xF9, 0xBF, 0x0E, 0xCF, 0xF9, 0xC1, 0x0E, 0xD5, 0xF9, 0xC3, 0x0E, 0xDB, 0xF9, 0xC6, 0x0E, - .byte 0xE1, 0xF9, 0xC8, 0x0E, 0xE6, 0xF9, 0xCB, 0x0E, 0xEC, 0xF9, 0xCD, 0x0E, 0xF2, 0xF9, 0xCF, 0x0E, - .byte 0xF8, 0xF9, 0xD2, 0x0E, 0xFE, 0xF9, 0xD4, 0x0E, 0x03, 0xFA, 0xD6, 0x0E, 0x09, 0xFA, 0xD9, 0x0E, - .byte 0x0F, 0xFA, 0xDB, 0x0E, 0x15, 0xFA, 0xDD, 0x0E, 0x1B, 0xFA, 0xE0, 0x0E, 0x21, 0xFA, 0xE2, 0x0E, - .byte 0x26, 0xFA, 0xE4, 0x0E, 0x2C, 0xFA, 0xE7, 0x0E, 0x32, 0xFA, 0xE9, 0x0E, 0x38, 0xFA, 0xEB, 0x0E, - .byte 0x3E, 0xFA, 0xEE, 0x0E, 0x44, 0xFA, 0xF0, 0x0E, 0x4A, 0xFA, 0xF2, 0x0E, 0x4F, 0xFA, 0xF4, 0x0E, - .byte 0x55, 0xFA, 0xF7, 0x0E, 0x5B, 0xFA, 0xF9, 0x0E, 0x61, 0xFA, 0xFB, 0x0E, 0x67, 0xFA, 0xFD, 0x0E, - .byte 0x6D, 0xFA, 0xFF, 0x0E, 0x73, 0xFA, 0x02, 0x0F, 0x79, 0xFA, 0x04, 0x0F, 0x7F, 0xFA, 0x06, 0x0F, - .byte 0x84, 0xFA, 0x08, 0x0F, 0x8A, 0xFA, 0x0A, 0x0F, 0x90, 0xFA, 0x0C, 0x0F, 0x96, 0xFA, 0x0E, 0x0F, - .byte 0x9C, 0xFA, 0x11, 0x0F, 0xA2, 0xFA, 0x13, 0x0F, 0xA8, 0xFA, 0x15, 0x0F, 0xAE, 0xFA, 0x17, 0x0F, - .byte 0xB4, 0xFA, 0x19, 0x0F, 0xBA, 0xFA, 0x1B, 0x0F, 0xC0, 0xFA, 0x1D, 0x0F, 0xC6, 0xFA, 0x1F, 0x0F, - .byte 0xCC, 0xFA, 0x21, 0x0F, 0xD1, 0xFA, 0x23, 0x0F, 0xD7, 0xFA, 0x25, 0x0F, 0xDD, 0xFA, 0x27, 0x0F, - .byte 0xE3, 0xFA, 0x29, 0x0F, 0xE9, 0xFA, 0x2B, 0x0F, 0xEF, 0xFA, 0x2D, 0x0F, 0xF5, 0xFA, 0x2F, 0x0F, - .byte 0xFB, 0xFA, 0x31, 0x0F, 0x01, 0xFB, 0x33, 0x0F, 0x07, 0xFB, 0x35, 0x0F, 0x0D, 0xFB, 0x37, 0x0F, - .byte 0x13, 0xFB, 0x39, 0x0F, 0x19, 0xFB, 0x3B, 0x0F, 0x1F, 0xFB, 0x3D, 0x0F, 0x25, 0xFB, 0x3F, 0x0F, - .byte 0x2B, 0xFB, 0x41, 0x0F, 0x31, 0xFB, 0x43, 0x0F, 0x37, 0xFB, 0x45, 0x0F, 0x3D, 0xFB, 0x46, 0x0F, - .byte 0x43, 0xFB, 0x48, 0x0F, 0x49, 0xFB, 0x4A, 0x0F, 0x4F, 0xFB, 0x4C, 0x0F, 0x55, 0xFB, 0x4E, 0x0F, - .byte 0x5B, 0xFB, 0x50, 0x0F, 0x61, 0xFB, 0x51, 0x0F, 0x67, 0xFB, 0x53, 0x0F, 0x6D, 0xFB, 0x55, 0x0F, - .byte 0x73, 0xFB, 0x57, 0x0F, 0x79, 0xFB, 0x59, 0x0F, 0x7F, 0xFB, 0x5A, 0x0F, 0x85, 0xFB, 0x5C, 0x0F, - .byte 0x8B, 0xFB, 0x5E, 0x0F, 0x91, 0xFB, 0x60, 0x0F, 0x97, 0xFB, 0x61, 0x0F, 0x9D, 0xFB, 0x63, 0x0F, - .byte 0xA3, 0xFB, 0x65, 0x0F, 0xA9, 0xFB, 0x67, 0x0F, 0xAF, 0xFB, 0x68, 0x0F, 0xB5, 0xFB, 0x6A, 0x0F, - .byte 0xBC, 0xFB, 0x6C, 0x0F, 0xC2, 0xFB, 0x6D, 0x0F, 0xC8, 0xFB, 0x6F, 0x0F, 0xCE, 0xFB, 0x71, 0x0F, - .byte 0xD4, 0xFB, 0x72, 0x0F, 0xDA, 0xFB, 0x74, 0x0F, 0xE0, 0xFB, 0x76, 0x0F, 0xE6, 0xFB, 0x77, 0x0F, - .byte 0xEC, 0xFB, 0x79, 0x0F, 0xF2, 0xFB, 0x7A, 0x0F, 0xF8, 0xFB, 0x7C, 0x0F, 0xFE, 0xFB, 0x7D, 0x0F, - .byte 0x04, 0xFC, 0x7F, 0x0F, 0x0A, 0xFC, 0x81, 0x0F, 0x11, 0xFC, 0x82, 0x0F, 0x17, 0xFC, 0x84, 0x0F, - .byte 0x1D, 0xFC, 0x85, 0x0F, 0x23, 0xFC, 0x87, 0x0F, 0x29, 0xFC, 0x88, 0x0F, 0x2F, 0xFC, 0x8A, 0x0F, - .byte 0x35, 0xFC, 0x8B, 0x0F, 0x3B, 0xFC, 0x8D, 0x0F, 0x41, 0xFC, 0x8E, 0x0F, 0x47, 0xFC, 0x90, 0x0F, - .byte 0x4E, 0xFC, 0x91, 0x0F, 0x54, 0xFC, 0x93, 0x0F, 0x5A, 0xFC, 0x94, 0x0F, 0x60, 0xFC, 0x95, 0x0F, - .byte 0x66, 0xFC, 0x97, 0x0F, 0x6C, 0xFC, 0x98, 0x0F, 0x72, 0xFC, 0x9A, 0x0F, 0x78, 0xFC, 0x9B, 0x0F, - .byte 0x7F, 0xFC, 0x9C, 0x0F, 0x85, 0xFC, 0x9E, 0x0F, 0x8B, 0xFC, 0x9F, 0x0F, 0x91, 0xFC, 0xA1, 0x0F, - .byte 0x97, 0xFC, 0xA2, 0x0F, 0x9D, 0xFC, 0xA3, 0x0F, 0xA3, 0xFC, 0xA5, 0x0F, 0xAA, 0xFC, 0xA6, 0x0F, - .byte 0xB0, 0xFC, 0xA7, 0x0F, 0xB6, 0xFC, 0xA8, 0x0F, 0xBC, 0xFC, 0xAA, 0x0F, 0xC2, 0xFC, 0xAB, 0x0F, - .byte 0xC8, 0xFC, 0xAC, 0x0F, 0xCE, 0xFC, 0xAE, 0x0F, 0xD5, 0xFC, 0xAF, 0x0F, 0xDB, 0xFC, 0xB0, 0x0F, - .byte 0xE1, 0xFC, 0xB1, 0x0F, 0xE7, 0xFC, 0xB3, 0x0F, 0xED, 0xFC, 0xB4, 0x0F, 0xF3, 0xFC, 0xB5, 0x0F, - .byte 0xFA, 0xFC, 0xB6, 0x0F, 0x00, 0xFD, 0xB7, 0x0F, 0x06, 0xFD, 0xB8, 0x0F, 0x0C, 0xFD, 0xBA, 0x0F, - .byte 0x12, 0xFD, 0xBB, 0x0F, 0x18, 0xFD, 0xBC, 0x0F, 0x1F, 0xFD, 0xBD, 0x0F, 0x25, 0xFD, 0xBE, 0x0F, - .byte 0x2B, 0xFD, 0xBF, 0x0F, 0x31, 0xFD, 0xC0, 0x0F, 0x37, 0xFD, 0xC2, 0x0F, 0x3E, 0xFD, 0xC3, 0x0F, - .byte 0x44, 0xFD, 0xC4, 0x0F, 0x4A, 0xFD, 0xC5, 0x0F, 0x50, 0xFD, 0xC6, 0x0F, 0x56, 0xFD, 0xC7, 0x0F, - .byte 0x5D, 0xFD, 0xC8, 0x0F, 0x63, 0xFD, 0xC9, 0x0F, 0x69, 0xFD, 0xCA, 0x0F, 0x6F, 0xFD, 0xCB, 0x0F, - .byte 0x75, 0xFD, 0xCC, 0x0F, 0x7C, 0xFD, 0xCD, 0x0F, 0x82, 0xFD, 0xCE, 0x0F, 0x88, 0xFD, 0xCF, 0x0F, - .byte 0x8E, 0xFD, 0xD0, 0x0F, 0x94, 0xFD, 0xD1, 0x0F, 0x9B, 0xFD, 0xD2, 0x0F, 0xA1, 0xFD, 0xD3, 0x0F, - .byte 0xA7, 0xFD, 0xD4, 0x0F, 0xAD, 0xFD, 0xD5, 0x0F, 0xB3, 0xFD, 0xD5, 0x0F, 0xBA, 0xFD, 0xD6, 0x0F, - .byte 0xC0, 0xFD, 0xD7, 0x0F, 0xC6, 0xFD, 0xD8, 0x0F, 0xCC, 0xFD, 0xD9, 0x0F, 0xD3, 0xFD, 0xDA, 0x0F, - .byte 0xD9, 0xFD, 0xDB, 0x0F, 0xDF, 0xFD, 0xDC, 0x0F, 0xE5, 0xFD, 0xDC, 0x0F, 0xEB, 0xFD, 0xDD, 0x0F, - .byte 0xF2, 0xFD, 0xDE, 0x0F, 0xF8, 0xFD, 0xDF, 0x0F, 0xFE, 0xFD, 0xE0, 0x0F, 0x04, 0xFE, 0xE0, 0x0F, - .byte 0x0B, 0xFE, 0xE1, 0x0F, 0x11, 0xFE, 0xE2, 0x0F, 0x17, 0xFE, 0xE3, 0x0F, 0x1D, 0xFE, 0xE3, 0x0F, - .byte 0x24, 0xFE, 0xE4, 0x0F, 0x2A, 0xFE, 0xE5, 0x0F, 0x30, 0xFE, 0xE6, 0x0F, 0x36, 0xFE, 0xE6, 0x0F, - .byte 0x3D, 0xFE, 0xE7, 0x0F, 0x43, 0xFE, 0xE8, 0x0F, 0x49, 0xFE, 0xE8, 0x0F, 0x4F, 0xFE, 0xE9, 0x0F, - .byte 0x56, 0xFE, 0xEA, 0x0F, 0x5C, 0xFE, 0xEA, 0x0F, 0x62, 0xFE, 0xEB, 0x0F, 0x68, 0xFE, 0xEC, 0x0F, - .byte 0x6F, 0xFE, 0xEC, 0x0F, 0x75, 0xFE, 0xED, 0x0F, 0x7B, 0xFE, 0xED, 0x0F, 0x81, 0xFE, 0xEE, 0x0F, - .byte 0x88, 0xFE, 0xEF, 0x0F, 0x8E, 0xFE, 0xEF, 0x0F, 0x94, 0xFE, 0xF0, 0x0F, 0x9A, 0xFE, 0xF0, 0x0F, - .byte 0xA1, 0xFE, 0xF1, 0x0F, 0xA7, 0xFE, 0xF1, 0x0F, 0xAD, 0xFE, 0xF2, 0x0F, 0xB3, 0xFE, 0xF2, 0x0F, - .byte 0xBA, 0xFE, 0xF3, 0x0F, 0xC0, 0xFE, 0xF3, 0x0F, 0xC6, 0xFE, 0xF4, 0x0F, 0xCC, 0xFE, 0xF4, 0x0F, - .byte 0xD3, 0xFE, 0xF5, 0x0F, 0xD9, 0xFE, 0xF5, 0x0F, 0xDF, 0xFE, 0xF6, 0x0F, 0xE5, 0xFE, 0xF6, 0x0F, - .byte 0xEC, 0xFE, 0xF7, 0x0F, 0xF2, 0xFE, 0xF7, 0x0F, 0xF8, 0xFE, 0xF8, 0x0F, 0xFF, 0xFE, 0xF8, 0x0F, - .byte 0x05, 0xFF, 0xF8, 0x0F, 0x0B, 0xFF, 0xF9, 0x0F, 0x11, 0xFF, 0xF9, 0x0F, 0x18, 0xFF, 0xF9, 0x0F, - .byte 0x1E, 0xFF, 0xFA, 0x0F, 0x24, 0xFF, 0xFA, 0x0F, 0x2A, 0xFF, 0xFA, 0x0F, 0x31, 0xFF, 0xFB, 0x0F, - .byte 0x37, 0xFF, 0xFB, 0x0F, 0x3D, 0xFF, 0xFB, 0x0F, 0x44, 0xFF, 0xFC, 0x0F, 0x4A, 0xFF, 0xFC, 0x0F, - .byte 0x50, 0xFF, 0xFC, 0x0F, 0x56, 0xFF, 0xFC, 0x0F, 0x5D, 0xFF, 0xFD, 0x0F, 0x63, 0xFF, 0xFD, 0x0F, - .byte 0x69, 0xFF, 0xFD, 0x0F, 0x70, 0xFF, 0xFD, 0x0F, 0x76, 0xFF, 0xFE, 0x0F, 0x7C, 0xFF, 0xFE, 0x0F, - .byte 0x82, 0xFF, 0xFE, 0x0F, 0x89, 0xFF, 0xFE, 0x0F, 0x8F, 0xFF, 0xFE, 0x0F, 0x95, 0xFF, 0xFF, 0x0F, - .byte 0x9B, 0xFF, 0xFF, 0x0F, 0xA2, 0xFF, 0xFF, 0x0F, 0xA8, 0xFF, 0xFF, 0x0F, 0xAE, 0xFF, 0xFF, 0x0F, - .byte 0xB5, 0xFF, 0xFF, 0x0F, 0xBB, 0xFF, 0xFF, 0x0F, 0xC1, 0xFF, 0x00, 0x10, 0xC7, 0xFF, 0x00, 0x10, - .byte 0xCE, 0xFF, 0x00, 0x10, 0xD4, 0xFF, 0x00, 0x10, 0xDA, 0xFF, 0x00, 0x10, 0xE1, 0xFF, 0x00, 0x10, - .byte 0xE7, 0xFF, 0x00, 0x10, 0xED, 0xFF, 0x00, 0x10, 0xF3, 0xFF, 0x00, 0x10, 0xFA, 0xFF, 0x00, 0x10 + .byte 0x04, 0x05, 0x07, 0x08 + .byte 0x03, 0x05, 0x06, 0x08 + .byte 0x03, 0x04, 0x06, 0x07 + .byte 0x01, 0x02, 0x07, 0x08 + .byte 0x00, 0x02, 0x06, 0x08 + .byte 0x00, 0x01, 0x06, 0x07 + .byte 0x01, 0x02, 0x04, 0x05 + .byte 0x00, 0x02, 0x03, 0x05 + .byte 0x00, 0x01, 0x03, 0x04 .section .data @@ -7080,7 +6051,7 @@ _020B2E0C: ands r0, r0, #0x4 beq _020B2E40 ldrh r0, [r4, #0x54] - ldr r2, _020B2E74 ; =UNK_020FFA38 + ldr r2, _020B2E74 ; =FX_SinCosTable_ mov r0, r0, asr #0x4 mov r1, r0, lsl #0x1 add r0, r1, #0x1 @@ -7105,7 +6076,7 @@ _020B2E5C: ldmia sp!, {r4-r6,pc} .balign 4 _020B2E70: .word UNK_021CDD6C -_020B2E74: .word UNK_020FFA38 +_020B2E74: .word FX_SinCosTable_ arm_func_start FUN_020B2E78 FUN_020B2E78: ; 0x020B2E78 @@ -7570,7 +6541,7 @@ _020B34E4: ands r0, r0, #0x4 beq _020B3518 ldrh r0, [r5, #0x1c] - ldr r2, _020B3550 ; =UNK_020FFA38 + ldr r2, _020B3550 ; =FX_SinCosTable_ mov r0, r0, asr #0x4 mov r1, r0, lsl #0x1 add r0, r1, #0x1 @@ -7596,7 +6567,7 @@ _020B3534: ldmia sp!, {r4-r7,pc} .balign 4 _020B354C: .word UNK_021CDD6C -_020B3550: .word UNK_020FFA38 +_020B3550: .word FX_SinCosTable_ arm_func_start FUN_020B3554 FUN_020B3554: @@ -7654,7 +6625,7 @@ _020B3610: ands r0, r0, #0x4 beq _020B3644 ldrh r0, [r5, #0x48] - ldr r2, _020B36BC ; =UNK_020FFA38 + ldr r2, _020B36BC ; =FX_SinCosTable_ mov r0, r0, asr #0x4 mov r1, r0, lsl #0x1 add r0, r1, #0x1 @@ -7698,7 +6669,7 @@ _020B36A4: .balign 4 _020B36B4: .word UNK_02106574 _020B36B8: .word UNK_021CDD6C -_020B36BC: .word UNK_020FFA38 +_020B36BC: .word FX_SinCosTable_ arm_func_start FUN_020B36C0 FUN_020B36C0: ; 0x020B36C0 @@ -15354,7 +14325,7 @@ _020BA188: moveq r2, #0x1000 str r2, [r1, #0x28] ldr r0, _020BA3B4 ; =UNK_020FF9F0 - ldr r1, _020BA3B8 ; =UNK_020FF9F1 + ldr r1, _020BA3B8 ; =UNK_020FF9F0 + 1 ldrb r0, [r0, r11, lsl #0x2] add r2, r6, r0, lsl #0x2 ldr r0, [sp, #0x0] @@ -15368,7 +14339,7 @@ _020BA188: ldrne r0, [sp, #0x4] rsbne r0, r0, #0x0 strne r0, [sp, #0x4] - ldr r0, _020BA3BC ; =UNK_020FF9F2 + ldr r0, _020BA3BC ; =UNK_020FF9F0 + 2 ldrb r0, [r0, r11, lsl #0x2] add r1, r6, r0, lsl #0x2 ldr r0, [sp, #0x4] @@ -15378,7 +14349,7 @@ _020BA188: ldrne r0, [sp, #0x0] rsbne r0, r0, #0x0 strne r0, [sp, #0x0] - ldr r0, _020BA3C0 ; =UNK_020FF9F3 + ldr r0, _020BA3C0 ; =UNK_020FF9F0 + 3 ldrb r0, [r0, r11, lsl #0x2] add r1, r6, r0, lsl #0x2 ldr r0, [sp, #0x0] @@ -15480,9 +14451,9 @@ _020BA3A0: ldmia sp!, {r4-r11,pc} .balign 4 _020BA3B4: .word UNK_020FF9F0 -_020BA3B8: .word UNK_020FF9F1 -_020BA3BC: .word UNK_020FF9F2 -_020BA3C0: .word UNK_020FF9F3 +_020BA3B8: .word UNK_020FF9F0 + 1 +_020BA3BC: .word UNK_020FF9F0 + 2 +_020BA3C0: .word UNK_020FF9F0 + 3 arm_func_start FUN_020BA3C4 FUN_020BA3C4: ; 0x020BA3C4 @@ -17977,20 +16948,20 @@ FUN_020BC500: moveq lr, #0x1000 str lr, [r0, r1, lsl #0x2] ldr r4, _020BC688 ; =UNK_020FFA14 - ldr lr, _020BC68C ; =UNK_020FFA15 + ldr lr, _020BC68C ; =UNK_020FFA14 + 1 ldrb r4, [r4, r1, lsl #0x2] str r12, [r0, r4, lsl #0x2] ldrb lr, [lr, r1, lsl #0x2] str r3, [r0, lr, lsl #0x2] ldrsh lr, [r2, #0x0] ands lr, lr, #0x20 - ldr lr, _020BC690 ; =UNK_020FFA16 + ldr lr, _020BC690 ; =UNK_020FFA14 + 2 rsbne r3, r3, #0x0 ldrb lr, [lr, r1, lsl #0x2] str r3, [r0, lr, lsl #0x2] ldrsh r2, [r2, #0x0] ands r2, r2, #0x40 - ldr r2, _020BC694 ; =UNK_020FFA17 + ldr r2, _020BC694 ; =UNK_020FFA14 + 3 rsbne r12, r12, #0x0 ldrb r1, [r2, r1, lsl #0x2] str r12, [r0, r1, lsl #0x2] @@ -18041,9 +17012,9 @@ _020BC5E0: .balign 4 _020BC684: .word 0x00007FFF _020BC688: .word UNK_020FFA14 -_020BC68C: .word UNK_020FFA15 -_020BC690: .word UNK_020FFA16 -_020BC694: .word UNK_020FFA17 +_020BC68C: .word UNK_020FFA14 + 1 +_020BC690: .word UNK_020FFA14 + 2 +_020BC694: .word UNK_020FFA14 + 3 arm_func_start FUN_020BC698 FUN_020BC698: ; 0x020BC698 @@ -19324,7 +18295,7 @@ FUN_020BD850: ; 0x020BD850 ldr r0, _020BD994 ; =UNK_020FFA14 str r2, [r1, #0x28] ldrb r1, [r0, r5, lsl #0x2] - ldr r0, _020BD998 ; =UNK_020FFA15 + ldr r0, _020BD998 ; =UNK_020FFA14 + 1 add r1, r8, r1, lsl #0x2 str r7, [r1, #0x28] ldrb r0, [r0, r5, lsl #0x2] @@ -19332,14 +18303,14 @@ FUN_020BD850: ; 0x020BD850 str r6, [r0, #0x28] ldrh r0, [r4, #0x0] ands r0, r0, #0x200 - ldr r0, _020BD99C ; =UNK_020FFA16 + ldr r0, _020BD99C ; =UNK_020FFA14 + 2 rsbne r6, r6, #0x0 ldrb r0, [r0, r5, lsl #0x2] add r0, r8, r0, lsl #0x2 str r6, [r0, #0x28] ldrh r0, [r4, #0x0] ands r0, r0, #0x400 - ldr r0, _020BD9A0 ; =UNK_020FFA17 + ldr r0, _020BD9A0 ; =UNK_020FFA14 + 3 rsbne r7, r7, #0x0 ldrb r0, [r0, r5, lsl #0x2] add r0, r8, r0, lsl #0x2 @@ -19373,9 +18344,9 @@ _020BD980: .balign 4 _020BD990: .word UNK_021CEF7C _020BD994: .word UNK_020FFA14 -_020BD998: .word UNK_020FFA15 -_020BD99C: .word UNK_020FFA16 -_020BD9A0: .word UNK_020FFA17 +_020BD998: .word UNK_020FFA14 + 1 +_020BD99C: .word UNK_020FFA14 + 2 +_020BD9A0: .word UNK_020FFA14 + 3 arm_func_start FUN_020BD9A4 FUN_020BD9A4: ; 0x020BD9A4 diff --git a/arm9/global.inc b/arm9/global.inc index b3f4dcbb1..8e5bd6fb3 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8236,7 +8236,7 @@ .extern Unk_02106A04 .extern UNK_020FF368 .extern UNK_020FF3D4 -.extern UNK_020FFA38 +.extern FX_SinCosTable_ .extern UNK_02105BB8 .extern UNK_021064BC .extern UNK_021064C4 diff --git a/arm9/lib/src/FX_sincos.c b/arm9/lib/src/FX_sincos.c new file mode 100644 index 000000000..89c8fc78e --- /dev/null +++ b/arm9/lib/src/FX_sincos.c @@ -0,0 +1,4105 @@ +#include "global.h" +#include "fx.h" + +/* + * [2 * idx + 0] <- sin(idx * 2pi / 4096) + * [2 * idx + 1] <- cos(idx * 2pi / 4096) + */ +const fx16 FX_SinCosTable_[4096 * 2] = { + FX16_CONST(0.0), FX16_CONST(1.0), + FX16_CONST(0.0015339801862847655), FX16_CONST(0.9999988234517019), + FX16_CONST(0.003067956762965976), FX16_CONST(0.9999952938095762), + FX16_CONST(0.0046019261204485705), FX16_CONST(0.9999894110819284), + FX16_CONST(0.006135884649154475), FX16_CONST(0.9999811752826011), + FX16_CONST(0.007669828739531097), FX16_CONST(0.9999705864309741), + FX16_CONST(0.00920375478205982), FX16_CONST(0.9999576445519639), + FX16_CONST(0.01073765916726449), FX16_CONST(0.9999423496760239), + FX16_CONST(0.012271538285719925), FX16_CONST(0.9999247018391445), + FX16_CONST(0.01380538852806039), FX16_CONST(0.9999047010828529), + FX16_CONST(0.0153392062849881), FX16_CONST(0.9998823474542126), + FX16_CONST(0.01687298794728171), FX16_CONST(0.9998576410058239), + FX16_CONST(0.01840672990580482), FX16_CONST(0.9998305817958234), + FX16_CONST(0.01994042855151444), FX16_CONST(0.9998011698878843), + FX16_CONST(0.021474080275469508), FX16_CONST(0.9997694053512153), + FX16_CONST(0.02300768146883937), FX16_CONST(0.9997352882605617), + FX16_CONST(0.024541228522912288), FX16_CONST(0.9996988186962042), + FX16_CONST(0.0260747178291039), FX16_CONST(0.9996599967439592), + FX16_CONST(0.02760814577896574), FX16_CONST(0.9996188224951786), + FX16_CONST(0.029141508764193722), FX16_CONST(0.9995752960467492), + FX16_CONST(0.030674803176636626), FX16_CONST(0.9995294175010931), + FX16_CONST(0.032208025408304586), FX16_CONST(0.999481186966167), + FX16_CONST(0.03374117185137758), FX16_CONST(0.9994306045554617), + FX16_CONST(0.03527423889821395), FX16_CONST(0.9993776703880028), + FX16_CONST(0.03680722294135883), FX16_CONST(0.9993223845883495), + FX16_CONST(0.038340120373552694), FX16_CONST(0.9992647472865944), + FX16_CONST(0.03987292758773981), FX16_CONST(0.9992047586183639), + FX16_CONST(0.04140564097707674), FX16_CONST(0.9991424187248169), + FX16_CONST(0.04293825693494082), FX16_CONST(0.9990777277526454), + FX16_CONST(0.04447077185493867), FX16_CONST(0.9990106858540734), + FX16_CONST(0.04600318213091462), FX16_CONST(0.9989412931868569), + FX16_CONST(0.0475354841569593), FX16_CONST(0.9988695499142836), + FX16_CONST(0.049067674327418015), FX16_CONST(0.9987954562051724), + FX16_CONST(0.05059974903689928), FX16_CONST(0.9987190122338729), + FX16_CONST(0.052131704680283324), FX16_CONST(0.9986402181802653), + FX16_CONST(0.05366353765273052), FX16_CONST(0.9985590742297593), + FX16_CONST(0.055195244349689934), FX16_CONST(0.9984755805732948), + FX16_CONST(0.05672682116690775), FX16_CONST(0.9983897374073402), + FX16_CONST(0.05825826450043575), FX16_CONST(0.9983015449338929), + FX16_CONST(0.05978957074663987), FX16_CONST(0.9982110033604782), + FX16_CONST(0.06132073630220858), FX16_CONST(0.9981181129001492), + FX16_CONST(0.0628517575641614), FX16_CONST(0.9980228737714862), + FX16_CONST(0.06438263092985747), FX16_CONST(0.997925286198596), + FX16_CONST(0.0659133527970038), FX16_CONST(0.9978253504111116), + FX16_CONST(0.06744391956366405), FX16_CONST(0.9977230666441916), + FX16_CONST(0.06897432762826675), FX16_CONST(0.9976184351385196), + FX16_CONST(0.07050457338961386), FX16_CONST(0.9975114561403035), + FX16_CONST(0.07203465324688933), FX16_CONST(0.9974021299012753), + FX16_CONST(0.07356456359966743), FX16_CONST(0.9972904566786902), + FX16_CONST(0.0750943008479213), FX16_CONST(0.9971764367353262), + FX16_CONST(0.07662386139203149), FX16_CONST(0.997060070339483), + FX16_CONST(0.07815324163279423), FX16_CONST(0.9969413577649822), + FX16_CONST(0.07968243797143013), FX16_CONST(0.9968202992911657), + FX16_CONST(0.08121144680959244), FX16_CONST(0.9966968952028961), + FX16_CONST(0.08274026454937569), FX16_CONST(0.9965711457905548), + FX16_CONST(0.08426888759332407), FX16_CONST(0.9964430513500426), + FX16_CONST(0.0857973123444399), FX16_CONST(0.996312612182778), + FX16_CONST(0.08732553520619206), FX16_CONST(0.996179828595697), + FX16_CONST(0.0888535525825246), FX16_CONST(0.996044700901252), + FX16_CONST(0.09038136087786498), FX16_CONST(0.9959072294174117), + FX16_CONST(0.09190895649713272), FX16_CONST(0.9957674144676598), + FX16_CONST(0.09343633584574779), FX16_CONST(0.9956252563809943), + FX16_CONST(0.09496349532963899), FX16_CONST(0.9954807554919269), + FX16_CONST(0.09649043135525259), FX16_CONST(0.9953339121404823), + FX16_CONST(0.0980171403295606), FX16_CONST(0.9951847266721969), + FX16_CONST(0.09954361866006932), FX16_CONST(0.9950331994381186), + FX16_CONST(0.10106986275482782), FX16_CONST(0.9948793307948056), + FX16_CONST(0.10259586902243628), FX16_CONST(0.9947231211043257), + FX16_CONST(0.10412163387205459), FX16_CONST(0.9945645707342554), + FX16_CONST(0.10564715371341062), FX16_CONST(0.9944036800576791), + FX16_CONST(0.10717242495680884), FX16_CONST(0.9942404494531879), + FX16_CONST(0.10869744401313872), FX16_CONST(0.9940748793048794), + FX16_CONST(0.11022220729388306), FX16_CONST(0.9939069700023561), + FX16_CONST(0.11174671121112659), FX16_CONST(0.9937367219407246), + FX16_CONST(0.11327095217756435), FX16_CONST(0.9935641355205953), + FX16_CONST(0.11479492660651008), FX16_CONST(0.9933892111480807), + FX16_CONST(0.11631863091190475), FX16_CONST(0.9932119492347945), + FX16_CONST(0.11784206150832498), FX16_CONST(0.9930323501978514), + FX16_CONST(0.11936521481099135), FX16_CONST(0.9928504144598651), + FX16_CONST(0.12088808723577708), FX16_CONST(0.992666142448948), + FX16_CONST(0.1224106751992162), FX16_CONST(0.99247953459871), + FX16_CONST(0.12393297511851216), FX16_CONST(0.9922905913482574), + FX16_CONST(0.12545498341154623), FX16_CONST(0.9920993131421918), + FX16_CONST(0.12697669649688587), FX16_CONST(0.9919057004306093), + FX16_CONST(0.12849811079379317), FX16_CONST(0.9917097536690995), + FX16_CONST(0.13001922272223335), FX16_CONST(0.9915114733187439), + FX16_CONST(0.13154002870288312), FX16_CONST(0.9913108598461154), + FX16_CONST(0.13306052515713906), FX16_CONST(0.9911079137232769), + FX16_CONST(0.13458070850712617), FX16_CONST(0.99090263542778), + FX16_CONST(0.1361005751757062), FX16_CONST(0.9906950254426646), + FX16_CONST(0.13762012158648604), FX16_CONST(0.9904850842564571), + FX16_CONST(0.1391393441638262), FX16_CONST(0.9902728123631691), + FX16_CONST(0.1406582393328492), FX16_CONST(0.9900582102622971), + FX16_CONST(0.14217680351944803), FX16_CONST(0.9898412784588205), + FX16_CONST(0.14369503315029447), FX16_CONST(0.9896220174632009), + FX16_CONST(0.14521292465284746), FX16_CONST(0.9894004277913804), + FX16_CONST(0.14673047445536175), FX16_CONST(0.989176509964781), + FX16_CONST(0.14824767898689603), FX16_CONST(0.988950264510303), + FX16_CONST(0.1497645346773215), FX16_CONST(0.9887216919603238), + FX16_CONST(0.15128103795733022), FX16_CONST(0.9884907928526966), + FX16_CONST(0.15279718525844344), FX16_CONST(0.9882575677307495), + FX16_CONST(0.1543129730130201), FX16_CONST(0.9880220171432835), + FX16_CONST(0.15582839765426523), FX16_CONST(0.9877841416445722), + FX16_CONST(0.15734345561623825), FX16_CONST(0.9875439417943592), + FX16_CONST(0.15885814333386145), FX16_CONST(0.9873014181578584), + FX16_CONST(0.16037245724292828), FX16_CONST(0.987056571305751), + FX16_CONST(0.16188639378011183), FX16_CONST(0.9868094018141855), + FX16_CONST(0.16339994938297323), FX16_CONST(0.9865599102647754), + FX16_CONST(0.1649131204899699), FX16_CONST(0.9863080972445987), + FX16_CONST(0.1664259035404641), FX16_CONST(0.9860539633461954), + FX16_CONST(0.16793829497473117), FX16_CONST(0.9857975091675675), + FX16_CONST(0.16945029123396796), FX16_CONST(0.9855387353121761), + FX16_CONST(0.17096188876030122), FX16_CONST(0.9852776423889412), + FX16_CONST(0.17247308399679595), FX16_CONST(0.9850142310122398), + FX16_CONST(0.17398387338746382), FX16_CONST(0.9847485018019042), + FX16_CONST(0.17549425337727143), FX16_CONST(0.9844804553832209), + FX16_CONST(0.17700422041214875), FX16_CONST(0.984210092386929), + FX16_CONST(0.1785137709389975), FX16_CONST(0.9839374134492189), + FX16_CONST(0.18002290140569951), FX16_CONST(0.9836624192117303), + FX16_CONST(0.18153160826112497), FX16_CONST(0.9833851103215512), + FX16_CONST(0.18303988795514095), FX16_CONST(0.9831054874312163), + FX16_CONST(0.18454773693861962), FX16_CONST(0.9828235511987052), + FX16_CONST(0.18605515166344663), FX16_CONST(0.9825393022874412), + FX16_CONST(0.1875621285825296), FX16_CONST(0.9822527413662894), + FX16_CONST(0.1890686641498062), FX16_CONST(0.9819638691095552), + FX16_CONST(0.19057475482025274), FX16_CONST(0.9816726861969831), + FX16_CONST(0.19208039704989244), FX16_CONST(0.9813791933137546), + FX16_CONST(0.1935855872958036), FX16_CONST(0.9810833911504867), + FX16_CONST(0.19509032201612825), FX16_CONST(0.9807852804032304), + FX16_CONST(0.19659459767008022), FX16_CONST(0.9804848617734694), + FX16_CONST(0.19809841071795356), FX16_CONST(0.9801821359681174), + FX16_CONST(0.19960175762113097), FX16_CONST(0.9798771036995176), + FX16_CONST(0.2011046348420919), FX16_CONST(0.9795697656854405), + FX16_CONST(0.20260703884442113), FX16_CONST(0.979260122649082), + FX16_CONST(0.20410896609281687), FX16_CONST(0.9789481753190622), + FX16_CONST(0.20561041305309924), FX16_CONST(0.9786339244294232), + FX16_CONST(0.20711137619221856), FX16_CONST(0.9783173707196277), + FX16_CONST(0.20861185197826349), FX16_CONST(0.9779985149345571), + FX16_CONST(0.2101118368804696), FX16_CONST(0.9776773578245099), + FX16_CONST(0.21161132736922755), FX16_CONST(0.9773539001452), + FX16_CONST(0.21311031991609136), FX16_CONST(0.9770281426577544), + FX16_CONST(0.21460881099378676), FX16_CONST(0.9767000861287118), + FX16_CONST(0.21610679707621952), FX16_CONST(0.9763697313300211), + FX16_CONST(0.21760427463848364), FX16_CONST(0.976037079039039), + FX16_CONST(0.2191012401568698), FX16_CONST(0.9757021300385286), + FX16_CONST(0.2205976901088735), FX16_CONST(0.975364885116657), + FX16_CONST(0.2220936209732035), FX16_CONST(0.9750253450669941), + FX16_CONST(0.22358902922979), FX16_CONST(0.9746835106885107), + FX16_CONST(0.22508391135979283), FX16_CONST(0.9743393827855759), + FX16_CONST(0.22657826384561), FX16_CONST(0.9739929621679558), + FX16_CONST(0.22807208317088573), FX16_CONST(0.973644249650812), + FX16_CONST(0.22956536582051887), FX16_CONST(0.9732932460546982), + FX16_CONST(0.2310581082806711), FX16_CONST(0.9729399522055602), + FX16_CONST(0.23255030703877524), FX16_CONST(0.9725843689347322), + FX16_CONST(0.23404195858354343), FX16_CONST(0.9722264970789363), + FX16_CONST(0.2355330594049755), FX16_CONST(0.9718663374802794), + FX16_CONST(0.2370236059943672), FX16_CONST(0.9715038909862518), + FX16_CONST(0.23851359484431842), FX16_CONST(0.9711391584497251), + FX16_CONST(0.2400030224487415), FX16_CONST(0.9707721407289504), + FX16_CONST(0.24149188530286933), FX16_CONST(0.9704028386875555), + FX16_CONST(0.24298017990326387), FX16_CONST(0.970031253194544), + FX16_CONST(0.24446790274782415), FX16_CONST(0.9696573851242924), + FX16_CONST(0.2459550503357946), FX16_CONST(0.9692812353565485), + FX16_CONST(0.24744161916777327), FX16_CONST(0.9689028047764289), + FX16_CONST(0.24892760574572015), FX16_CONST(0.9685220942744174), + FX16_CONST(0.2504130065729652), FX16_CONST(0.9681391047463624), + FX16_CONST(0.25189781815421697), FX16_CONST(0.9677538370934755), + FX16_CONST(0.25338203699557016), FX16_CONST(0.9673662922223285), + FX16_CONST(0.25486565960451457), FX16_CONST(0.9669764710448521), + FX16_CONST(0.2563486824899429), FX16_CONST(0.9665843744783331), + FX16_CONST(0.257831102162159), FX16_CONST(0.9661900034454125), + FX16_CONST(0.25931291513288623), FX16_CONST(0.9657933588740837), + FX16_CONST(0.2607941179152755), FX16_CONST(0.9653944416976894), + FX16_CONST(0.2622747070239136), FX16_CONST(0.9649932528549203), + FX16_CONST(0.26375467897483135), FX16_CONST(0.9645897932898128), + FX16_CONST(0.2652340302855118), FX16_CONST(0.9641840639517458), + FX16_CONST(0.26671275747489837), FX16_CONST(0.9637760657954398), + FX16_CONST(0.2681908570634032), FX16_CONST(0.963365799780954), + FX16_CONST(0.2696683255729151), FX16_CONST(0.9629532668736839), + FX16_CONST(0.271145159526808), FX16_CONST(0.9625384680443592), + FX16_CONST(0.272621355449949), FX16_CONST(0.9621214042690416), + FX16_CONST(0.2740969098687064), FX16_CONST(0.9617020765291225), + FX16_CONST(0.27557181931095814), FX16_CONST(0.9612804858113206), + FX16_CONST(0.2770460803060999), FX16_CONST(0.9608566331076797), + FX16_CONST(0.27851968938505306), FX16_CONST(0.9604305194155658), + FX16_CONST(0.2799926430802732), FX16_CONST(0.960002145737666), + FX16_CONST(0.28146493792575794), FX16_CONST(0.9595715130819845), + FX16_CONST(0.2829365704570554), FX16_CONST(0.9591386224618419), + FX16_CONST(0.2844075372112719), FX16_CONST(0.9587034748958716), + FX16_CONST(0.2858778347270806), FX16_CONST(0.9582660714080177), + FX16_CONST(0.2873474595447295), FX16_CONST(0.9578264130275329), + FX16_CONST(0.2888164082060495), FX16_CONST(0.9573845007889759), + FX16_CONST(0.29028467725446233), FX16_CONST(0.9569403357322088), + FX16_CONST(0.29175226323498926), FX16_CONST(0.9564939189023951), + FX16_CONST(0.29321916269425863), FX16_CONST(0.9560452513499964), + FX16_CONST(0.2946853721805143), FX16_CONST(0.9555943341307711), + FX16_CONST(0.2961508882436238), FX16_CONST(0.9551411683057708), + FX16_CONST(0.2976157074350862), FX16_CONST(0.9546857549413383), + FX16_CONST(0.2990798263080405), FX16_CONST(0.9542280951091057), + FX16_CONST(0.30054324141727345), FX16_CONST(0.9537681898859903), + FX16_CONST(0.3020059493192281), FX16_CONST(0.9533060403541939), + FX16_CONST(0.3034679465720113), FX16_CONST(0.9528416476011987), + FX16_CONST(0.3049292297354024), FX16_CONST(0.9523750127197659), + FX16_CONST(0.3063897953708609), FX16_CONST(0.9519061368079323), + FX16_CONST(0.30784964004153487), FX16_CONST(0.9514350209690083), + FX16_CONST(0.3093087603122687), FX16_CONST(0.9509616663115751), + FX16_CONST(0.3107671527496115), FX16_CONST(0.9504860739494817), + FX16_CONST(0.3122248139218249), FX16_CONST(0.950008245001843), + FX16_CONST(0.3136817403988915), FX16_CONST(0.9495281805930367), + FX16_CONST(0.31513792875252244), FX16_CONST(0.9490458818527006), + FX16_CONST(0.31659337555616585), FX16_CONST(0.9485613499157303), + FX16_CONST(0.31804807738501495), FX16_CONST(0.9480745859222762), + FX16_CONST(0.3195020308160157), FX16_CONST(0.9475855910177411), + FX16_CONST(0.3209552324278752), FX16_CONST(0.9470943663527772), + FX16_CONST(0.32240767880106985), FX16_CONST(0.9466009130832835), + FX16_CONST(0.32385936651785285), FX16_CONST(0.9461052323704034), + FX16_CONST(0.3253102921622629), FX16_CONST(0.9456073253805213), + FX16_CONST(0.32676045232013173), FX16_CONST(0.9451071932852606), + FX16_CONST(0.3282098435790925), FX16_CONST(0.9446048372614803), + FX16_CONST(0.3296584625285875), FX16_CONST(0.9441002584912727), + FX16_CONST(0.33110630575987643), FX16_CONST(0.9435934581619604), + FX16_CONST(0.3325533698660442), FX16_CONST(0.9430844374660935), + FX16_CONST(0.3339996514420094), FX16_CONST(0.9425731976014469), + FX16_CONST(0.3354451470845316), FX16_CONST(0.9420597397710173), + FX16_CONST(0.33688985339222005), FX16_CONST(0.9415440651830208), + FX16_CONST(0.3383337669655411), FX16_CONST(0.9410261750508893), + FX16_CONST(0.33977688440682685), FX16_CONST(0.9405060705932683), + FX16_CONST(0.34121920232028236), FX16_CONST(0.939983753034014), + FX16_CONST(0.3426607173119944), FX16_CONST(0.9394592236021899), + FX16_CONST(0.3441014259899388), FX16_CONST(0.9389324835320646), + FX16_CONST(0.3455413249639891), FX16_CONST(0.9384035340631081), + FX16_CONST(0.3469804108459237), FX16_CONST(0.9378723764399899), + FX16_CONST(0.34841868024943456), FX16_CONST(0.937339011912575), + FX16_CONST(0.3498561297901349), FX16_CONST(0.9368034417359216), + FX16_CONST(0.3512927560855671), FX16_CONST(0.9362656671702783), + FX16_CONST(0.3527285557552107), FX16_CONST(0.9357256894810804), + FX16_CONST(0.35416352542049034), FX16_CONST(0.9351835099389476), + FX16_CONST(0.35559766170478385), FX16_CONST(0.9346391298196808), + FX16_CONST(0.35703096123343), FX16_CONST(0.9340925504042589), + FX16_CONST(0.35846342063373654), FX16_CONST(0.9335437729788362), + FX16_CONST(0.3598950365349881), FX16_CONST(0.932992798834739), + FX16_CONST(0.3613258055684543), FX16_CONST(0.9324396292684624), + FX16_CONST(0.3627557243673972), FX16_CONST(0.9318842655816681), + FX16_CONST(0.3641847895670799), FX16_CONST(0.9313267090811804), + FX16_CONST(0.36561299780477385), FX16_CONST(0.9307669610789837), + FX16_CONST(0.3670403457197672), FX16_CONST(0.9302050228922191), + FX16_CONST(0.3684668299533723), FX16_CONST(0.9296408958431812), + FX16_CONST(0.3698924471489341), FX16_CONST(0.9290745812593159), + FX16_CONST(0.37131719395183754), FX16_CONST(0.9285060804732156), + FX16_CONST(0.37274106700951576), FX16_CONST(0.9279353948226179), + FX16_CONST(0.37416406297145793), FX16_CONST(0.9273625256504011), + FX16_CONST(0.3755861784892172), FX16_CONST(0.9267874743045817), + FX16_CONST(0.37700741021641826), FX16_CONST(0.9262102421383114), + FX16_CONST(0.37842775480876556), FX16_CONST(0.9256308305098727), + FX16_CONST(0.37984720892405116), FX16_CONST(0.9250492407826776), + FX16_CONST(0.3812657692221624), FX16_CONST(0.9244654743252626), + FX16_CONST(0.3826834323650898), FX16_CONST(0.9238795325112867), + FX16_CONST(0.38410019501693504), FX16_CONST(0.9232914167195276), + FX16_CONST(0.38551605384391885), FX16_CONST(0.9227011283338786), + FX16_CONST(0.3869310055143886), FX16_CONST(0.9221086687433452), + FX16_CONST(0.38834504669882625), FX16_CONST(0.9215140393420419), + FX16_CONST(0.3897581740698564), FX16_CONST(0.9209172415291894), + FX16_CONST(0.39117038430225387), FX16_CONST(0.9203182767091106), + FX16_CONST(0.39258167407295147), FX16_CONST(0.9197171462912274), + FX16_CONST(0.3939920400610481), FX16_CONST(0.9191138516900578), + FX16_CONST(0.39540147894781635), FX16_CONST(0.9185083943252123), + FX16_CONST(0.3968099874167103), FX16_CONST(0.9179007756213905), + FX16_CONST(0.39821756215337356), FX16_CONST(0.9172909970083779), + FX16_CONST(0.3996241998456468), FX16_CONST(0.9166790599210427), + FX16_CONST(0.4010298971835756), FX16_CONST(0.9160649657993317), + FX16_CONST(0.40243465085941843), FX16_CONST(0.9154487160882678), + FX16_CONST(0.4038384575676541), FX16_CONST(0.9148303122379462), + FX16_CONST(0.40524131400498986), FX16_CONST(0.9142097557035307), + FX16_CONST(0.40664321687036903), FX16_CONST(0.9135870479452508), + FX16_CONST(0.4080441628649787), FX16_CONST(0.9129621904283982), + FX16_CONST(0.4094441486922576), FX16_CONST(0.9123351846233227), + FX16_CONST(0.4108431710579039), FX16_CONST(0.9117060320054299), + FX16_CONST(0.4122412266698829), FX16_CONST(0.9110747340551764), + FX16_CONST(0.4136383122384345), FX16_CONST(0.9104412922580672), + FX16_CONST(0.41503442447608163), FX16_CONST(0.9098057081046522), + FX16_CONST(0.41642956009763715), FX16_CONST(0.9091679830905224), + FX16_CONST(0.41782371582021227), FX16_CONST(0.9085281187163061), + FX16_CONST(0.4192168883632239), FX16_CONST(0.9078861164876663), + FX16_CONST(0.4206090744484025), FX16_CONST(0.9072419779152958), + FX16_CONST(0.4220002707997997), FX16_CONST(0.9065957045149153), + FX16_CONST(0.42339047414379605), FX16_CONST(0.9059472978072685), + FX16_CONST(0.4247796812091088), FX16_CONST(0.9052967593181188), + FX16_CONST(0.4261678887267996), FX16_CONST(0.9046440905782462), + FX16_CONST(0.4275550934302821), FX16_CONST(0.9039892931234433), + FX16_CONST(0.4289412920553295), FX16_CONST(0.9033323684945118), + FX16_CONST(0.4303264813400826), FX16_CONST(0.9026733182372588), + FX16_CONST(0.43171065802505726), FX16_CONST(0.9020121439024932), + FX16_CONST(0.43309381885315196), FX16_CONST(0.901348847046022), + FX16_CONST(0.43447596056965565), FX16_CONST(0.9006834292286469), + FX16_CONST(0.4358570799222555), FX16_CONST(0.9000158920161602), + FX16_CONST(0.4372371736610441), FX16_CONST(0.8993462369793416), + FX16_CONST(0.43861623853852766), FX16_CONST(0.8986744656939538), + FX16_CONST(0.43999427130963326), FX16_CONST(0.8980005797407399), + FX16_CONST(0.44137126873171667), FX16_CONST(0.8973245807054183), + FX16_CONST(0.44274722756457), FX16_CONST(0.8966464701786802), + FX16_CONST(0.4441221445704292), FX16_CONST(0.8959662497561852), + FX16_CONST(0.44549601651398174), FX16_CONST(0.8952839210385576), + FX16_CONST(0.44686884016237416), FX16_CONST(0.8945994856313827), + FX16_CONST(0.4482406122852199), FX16_CONST(0.8939129451452033), + FX16_CONST(0.44961132965460654), FX16_CONST(0.8932243011955153), + FX16_CONST(0.45098098904510386), FX16_CONST(0.8925335554027646), + FX16_CONST(0.4523495872337709), FX16_CONST(0.8918407093923427), + FX16_CONST(0.45371712100016387), FX16_CONST(0.8911457647945832), + FX16_CONST(0.45508358712634384), FX16_CONST(0.8904487232447579), + FX16_CONST(0.4564489823968839), FX16_CONST(0.8897495863830728), + FX16_CONST(0.4578133035988772), FX16_CONST(0.8890483558546646), + FX16_CONST(0.4591765475219441), FX16_CONST(0.8883450333095964), + FX16_CONST(0.46053871095824), FX16_CONST(0.8876396204028539), + FX16_CONST(0.46189979070246273), FX16_CONST(0.8869321187943422), + FX16_CONST(0.46325978355186015), FX16_CONST(0.8862225301488806), + FX16_CONST(0.4646186863062378), FX16_CONST(0.8855108561362), + FX16_CONST(0.4659764957679662), FX16_CONST(0.8847970984309378), + FX16_CONST(0.4673332087419884), FX16_CONST(0.884081258712635), + FX16_CONST(0.4686888220358279), FX16_CONST(0.8833633386657316), + FX16_CONST(0.4700433324595956), FX16_CONST(0.8826433399795628), + FX16_CONST(0.47139673682599764), FX16_CONST(0.881921264348355), + FX16_CONST(0.4727490319503428), FX16_CONST(0.8811971134712221), + FX16_CONST(0.47410021465054997), FX16_CONST(0.8804708890521608), + FX16_CONST(0.47545028174715587), FX16_CONST(0.8797425928000474), + FX16_CONST(0.4767992300633221), FX16_CONST(0.8790122264286335), + FX16_CONST(0.478147056424843), FX16_CONST(0.8782797916565416), + FX16_CONST(0.47949375766015295), FX16_CONST(0.8775452902072614), + FX16_CONST(0.48083933060033396), FX16_CONST(0.8768087238091457), + FX16_CONST(0.4821837720791227), FX16_CONST(0.8760700941954066), + FX16_CONST(0.4835270789329187), FX16_CONST(0.8753294031041109), + FX16_CONST(0.48486924800079106), FX16_CONST(0.8745866522781761), + FX16_CONST(0.4862102761244864), FX16_CONST(0.8738418434653669), + FX16_CONST(0.487550160148436), FX16_CONST(0.8730949784182901), + FX16_CONST(0.48888889691976317), FX16_CONST(0.8723460588943915), + FX16_CONST(0.49022648328829116), FX16_CONST(0.871595086655951), + FX16_CONST(0.4915629161065499), FX16_CONST(0.870842063470079), + FX16_CONST(0.49289819222978404), FX16_CONST(0.8700869911087115), + FX16_CONST(0.4942323085159597), FX16_CONST(0.8693298713486068), + FX16_CONST(0.49556526182577254), FX16_CONST(0.8685707059713409), + FX16_CONST(0.49689704902265447), FX16_CONST(0.8678094967633033), + FX16_CONST(0.4982276669727818), FX16_CONST(0.8670462455156926), + FX16_CONST(0.49955711254508184), FX16_CONST(0.866280954024513), + FX16_CONST(0.5008853826112407), FX16_CONST(0.8655136240905691), + FX16_CONST(0.5022124740457108), FX16_CONST(0.8647442575194624), + FX16_CONST(0.5035383837257176), FX16_CONST(0.8639728561215867), + FX16_CONST(0.5048631085312676), FX16_CONST(0.8631994217121242), + FX16_CONST(0.5061866453451552), FX16_CONST(0.8624239561110405), + FX16_CONST(0.5075089910529709), FX16_CONST(0.8616464611430813), + FX16_CONST(0.508830142543107), FX16_CONST(0.8608669386377673), + FX16_CONST(0.5101500967067668), FX16_CONST(0.8600853904293901), + FX16_CONST(0.5114688504379703), FX16_CONST(0.8593018183570085), + FX16_CONST(0.512786400633563), FX16_CONST(0.8585162242644427), + FX16_CONST(0.5141027441932217), FX16_CONST(0.8577286100002721), + FX16_CONST(0.5154178780194629), FX16_CONST(0.8569389774178288), + FX16_CONST(0.5167317990176499), FX16_CONST(0.8561473283751945), + FX16_CONST(0.5180445040959993), FX16_CONST(0.855353664735196), + FX16_CONST(0.5193559901655896), FX16_CONST(0.8545579883654005), + FX16_CONST(0.5206662541403672), FX16_CONST(0.8537603011381114), + FX16_CONST(0.5219752929371544), FX16_CONST(0.8529606049303636), + FX16_CONST(0.5232831034756564), FX16_CONST(0.8521589016239198), + FX16_CONST(0.524589682678469), FX16_CONST(0.8513551931052652), + FX16_CONST(0.5258950274710846), FX16_CONST(0.8505494812656035), + FX16_CONST(0.5271991347819013), FX16_CONST(0.8497417680008525), + FX16_CONST(0.5285020015422285), FX16_CONST(0.8489320552116396), + FX16_CONST(0.5298036246862946), FX16_CONST(0.8481203448032972), + FX16_CONST(0.531104001151255), FX16_CONST(0.8473066386858583), + FX16_CONST(0.5324031278771979), FX16_CONST(0.8464909387740521), + FX16_CONST(0.533701001807153), FX16_CONST(0.8456732469872991), + FX16_CONST(0.5349976198870972), FX16_CONST(0.8448535652497071), + FX16_CONST(0.5362929790659632), FX16_CONST(0.8440318954900664), + FX16_CONST(0.5375870762956454), FX16_CONST(0.8432082396418454), + FX16_CONST(0.5388799085310084), FX16_CONST(0.8423825996431858), + FX16_CONST(0.5401714727298929), FX16_CONST(0.8415549774368984), + FX16_CONST(0.5414617658531234), FX16_CONST(0.8407253749704581), + FX16_CONST(0.5427507848645159), FX16_CONST(0.8398937941959995), + FX16_CONST(0.5440385267308838), FX16_CONST(0.8390602370703127), + FX16_CONST(0.5453249884220465), FX16_CONST(0.8382247055548381), + FX16_CONST(0.5466101669108349), FX16_CONST(0.8373872016156619), + FX16_CONST(0.5478940591731002), FX16_CONST(0.836547727223512), + FX16_CONST(0.5491766621877197), FX16_CONST(0.8357062843537526), + FX16_CONST(0.5504579729366048), FX16_CONST(0.83486287498638), + FX16_CONST(0.5517379884047073), FX16_CONST(0.8340175011060181), + FX16_CONST(0.5530167055800275), FX16_CONST(0.8331701647019132), + FX16_CONST(0.55429412145362), FX16_CONST(0.8323208677679297), + FX16_CONST(0.5555702330196022), FX16_CONST(0.8314696123025452), + FX16_CONST(0.5568450372751601), FX16_CONST(0.8306164003088463), + FX16_CONST(0.5581185312205561), FX16_CONST(0.829761233794523), + FX16_CONST(0.5593907118591361), FX16_CONST(0.8289041147718649), + FX16_CONST(0.560661576197336), FX16_CONST(0.8280450452577558), + FX16_CONST(0.5619311212446894), FX16_CONST(0.8271840272736691), + FX16_CONST(0.5631993440138341), FX16_CONST(0.8263210628456635), + FX16_CONST(0.5644662415205194), FX16_CONST(0.8254561540043776), + FX16_CONST(0.5657318107836131), FX16_CONST(0.8245893027850253), + FX16_CONST(0.5669960488251087), FX16_CONST(0.8237205112273914), + FX16_CONST(0.5682589526701315), FX16_CONST(0.8228497813758264), + FX16_CONST(0.5695205193469471), FX16_CONST(0.8219771152792416), + FX16_CONST(0.5707807458869673), FX16_CONST(0.8211025149911046), + FX16_CONST(0.572039629324757), FX16_CONST(0.8202259825694347), + FX16_CONST(0.5732971666980422), FX16_CONST(0.819347520076797), + FX16_CONST(0.5745533550477158), FX16_CONST(0.8184671295802987), + FX16_CONST(0.5758081914178453), FX16_CONST(0.8175848131515837), + FX16_CONST(0.5770616728556794), FX16_CONST(0.8167005728668278), + FX16_CONST(0.5783137964116556), FX16_CONST(0.8158144108067338), + FX16_CONST(0.5795645591394056), FX16_CONST(0.8149263290565266), + FX16_CONST(0.5808139580957645), FX16_CONST(0.8140363297059484), + FX16_CONST(0.5820619903407754), FX16_CONST(0.8131444148492536), + FX16_CONST(0.5833086529376983), FX16_CONST(0.812250586585204), + FX16_CONST(0.5845539429530153), FX16_CONST(0.8113548470170637), + FX16_CONST(0.5857978574564389), FX16_CONST(0.8104571982525948), + FX16_CONST(0.587040393520918), FX16_CONST(0.8095576424040513), + FX16_CONST(0.5882815482226452), FX16_CONST(0.808656181588175), + FX16_CONST(0.5895213186410639), FX16_CONST(0.8077528179261904), + FX16_CONST(0.5907597018588742), FX16_CONST(0.8068475535437993), + FX16_CONST(0.591996694962041), FX16_CONST(0.8059403905711763), + FX16_CONST(0.5932322950397998), FX16_CONST(0.8050313311429637), + FX16_CONST(0.5944664991846644), FX16_CONST(0.8041203773982657), + FX16_CONST(0.5956993044924334), FX16_CONST(0.8032075314806449), + FX16_CONST(0.5969307080621964), FX16_CONST(0.8022927955381157), + FX16_CONST(0.5981607069963424), FX16_CONST(0.8013761717231402), + FX16_CONST(0.5993892984005645), FX16_CONST(0.8004576621926228), + FX16_CONST(0.600616479383869), FX16_CONST(0.799537269107905), + FX16_CONST(0.60184224705858), FX16_CONST(0.7986149946347609), + FX16_CONST(0.6030665985403482), FX16_CONST(0.7976908409433912), + FX16_CONST(0.604289530948156), FX16_CONST(0.7967648102084188), + FX16_CONST(0.6055110414043255), FX16_CONST(0.7958369046088836), + FX16_CONST(0.6067311270345245), FX16_CONST(0.794907126328237), + FX16_CONST(0.6079497849677736), FX16_CONST(0.7939754775543372), + FX16_CONST(0.6091670123364532), FX16_CONST(0.7930419604794436), + FX16_CONST(0.6103828062763095), FX16_CONST(0.7921065773002124), + FX16_CONST(0.6115971639264619), FX16_CONST(0.7911693302176902), + FX16_CONST(0.6128100824294097), FX16_CONST(0.79023022143731), + FX16_CONST(0.6140215589310385), FX16_CONST(0.7892892531688857), + FX16_CONST(0.6152315905806268), FX16_CONST(0.7883464276266062), + FX16_CONST(0.6164401745308536), FX16_CONST(0.7874017470290314), + FX16_CONST(0.6176473079378039), FX16_CONST(0.7864552135990858), + FX16_CONST(0.6188529879609763), FX16_CONST(0.7855068295640539), + FX16_CONST(0.6200572117632891), FX16_CONST(0.7845565971555752), + FX16_CONST(0.6212599765110876), FX16_CONST(0.7836045186096382), + FX16_CONST(0.62246127937415), FX16_CONST(0.7826505961665757), + FX16_CONST(0.6236611175256945), FX16_CONST(0.7816948320710594), + FX16_CONST(0.6248594881423863), FX16_CONST(0.7807372285720945), + FX16_CONST(0.6260563884043435), FX16_CONST(0.7797777879230146), + FX16_CONST(0.6272518154951441), FX16_CONST(0.778816512381476), + FX16_CONST(0.6284457666018327), FX16_CONST(0.7778534042094531), + FX16_CONST(0.629638238914927), FX16_CONST(0.7768884656732324), + FX16_CONST(0.6308292296284245), FX16_CONST(0.7759216990434077), + FX16_CONST(0.6320187359398091), FX16_CONST(0.7749531065948739), + FX16_CONST(0.6332067550500572), FX16_CONST(0.7739826906068229), + FX16_CONST(0.6343932841636455), FX16_CONST(0.773010453362737), + FX16_CONST(0.6355783204885561), FX16_CONST(0.7720363971503845), + FX16_CONST(0.6367618612362842), FX16_CONST(0.7710605242618138), + FX16_CONST(0.637943903621844), FX16_CONST(0.7700828369933479), + FX16_CONST(0.6391244448637757), FX16_CONST(0.7691033376455797), + FX16_CONST(0.6403034821841517), FX16_CONST(0.7681220285233654), + FX16_CONST(0.641481012808583), FX16_CONST(0.7671389119358204), + FX16_CONST(0.6426570339662269), FX16_CONST(0.7661539901963129), + FX16_CONST(0.6438315428897914), FX16_CONST(0.765167265622459), + FX16_CONST(0.6450045368155439), FX16_CONST(0.7641787405361167), + FX16_CONST(0.6461760129833163), FX16_CONST(0.7631884172633814), + FX16_CONST(0.6473459686365121), FX16_CONST(0.762196298134579), + FX16_CONST(0.6485144010221124), FX16_CONST(0.7612023854842618), + FX16_CONST(0.6496813073906832), FX16_CONST(0.7602066816512024), + FX16_CONST(0.6508466849963809), FX16_CONST(0.759209188978388), + FX16_CONST(0.6520105310969595), FX16_CONST(0.7582099098130153), + FX16_CONST(0.6531728429537768), FX16_CONST(0.7572088465064846), + FX16_CONST(0.6543336178318004), FX16_CONST(0.7562060014143945), + FX16_CONST(0.6554928529996153), FX16_CONST(0.7552013768965365), + FX16_CONST(0.6566505457294289), FX16_CONST(0.7541949753168892), + FX16_CONST(0.6578066932970786), FX16_CONST(0.7531867990436125), + FX16_CONST(0.6589612929820373), FX16_CONST(0.7521768504490427), + FX16_CONST(0.6601143420674205), FX16_CONST(0.7511651319096864), + FX16_CONST(0.6612658378399923), FX16_CONST(0.7501516458062151), + FX16_CONST(0.6624157775901718), FX16_CONST(0.7491363945234594), + FX16_CONST(0.6635641586120398), FX16_CONST(0.7481193804504036), + FX16_CONST(0.6647109782033448), FX16_CONST(0.7471006059801801), + FX16_CONST(0.6658562336655097), FX16_CONST(0.7460800735100638), + FX16_CONST(0.6669999223036375), FX16_CONST(0.745057785441466), + FX16_CONST(0.6681420414265185), FX16_CONST(0.7440337441799293), + FX16_CONST(0.669282588346636), FX16_CONST(0.7430079521351217), + FX16_CONST(0.6704215603801731), FX16_CONST(0.7419804117208311), + FX16_CONST(0.6715589548470183), FX16_CONST(0.7409511253549592), + FX16_CONST(0.6726947690707729), FX16_CONST(0.7399200954595162), + FX16_CONST(0.673829000378756), FX16_CONST(0.7388873244606151), + FX16_CONST(0.6749616461020119), FX16_CONST(0.737852814788466), + FX16_CONST(0.6760927035753159), FX16_CONST(0.7368165688773698), + FX16_CONST(0.6772221701371803), FX16_CONST(0.7357785891657136), + FX16_CONST(0.6783500431298615), FX16_CONST(0.7347388780959635), + FX16_CONST(0.679476319899365), FX16_CONST(0.7336974381146603), + FX16_CONST(0.680600997795453), FX16_CONST(0.7326542716724128), + FX16_CONST(0.6817240741716497), FX16_CONST(0.7316093812238926), + FX16_CONST(0.6828455463852481), FX16_CONST(0.7305627692278276), + FX16_CONST(0.6839654117973154), FX16_CONST(0.729514438146997), + FX16_CONST(0.6850836677727004), FX16_CONST(0.7284643904482252), + FX16_CONST(0.6862003116800386), FX16_CONST(0.7274126286023758), + FX16_CONST(0.687315340891759), FX16_CONST(0.726359155084346), + FX16_CONST(0.6884287527840904), FX16_CONST(0.7253039723730608), + FX16_CONST(0.6895405447370668), FX16_CONST(0.724247082951467), + FX16_CONST(0.6906507141345346), FX16_CONST(0.7231884893065275), + FX16_CONST(0.6917592583641577), FX16_CONST(0.7221281939292153), + FX16_CONST(0.6928661748174246), FX16_CONST(0.7210661993145081), + FX16_CONST(0.6939714608896539), FX16_CONST(0.7200025079613817), + FX16_CONST(0.6950751139800009), FX16_CONST(0.7189371223728045), + FX16_CONST(0.696177131491463), FX16_CONST(0.7178700450557317), + FX16_CONST(0.6972775108308865), FX16_CONST(0.7168012785210995), + FX16_CONST(0.6983762494089728), FX16_CONST(0.7157308252838187), + FX16_CONST(0.6994733446402838), FX16_CONST(0.7146586878627691), + FX16_CONST(0.7005687939432483), FX16_CONST(0.7135848687807935), + FX16_CONST(0.7016625947401685), FX16_CONST(0.7125093705646924), + FX16_CONST(0.7027547444572253), FX16_CONST(0.7114321957452164), + FX16_CONST(0.7038452405244849), FX16_CONST(0.7103533468570624), + FX16_CONST(0.7049340803759049), FX16_CONST(0.7092728264388657), + FX16_CONST(0.7060212614493397), FX16_CONST(0.7081906370331954), + FX16_CONST(0.7071067811865476), FX16_CONST(0.7071067811865476), + FX16_CONST(0.7081906370331954), FX16_CONST(0.7060212614493397), + FX16_CONST(0.7092728264388657), FX16_CONST(0.704934080375905), + FX16_CONST(0.7103533468570624), FX16_CONST(0.7038452405244849), + FX16_CONST(0.7114321957452164), FX16_CONST(0.7027547444572253), + FX16_CONST(0.7125093705646923), FX16_CONST(0.7016625947401685), + FX16_CONST(0.7135848687807935), FX16_CONST(0.7005687939432484), + FX16_CONST(0.7146586878627691), FX16_CONST(0.6994733446402838), + FX16_CONST(0.7157308252838186), FX16_CONST(0.6983762494089729), + FX16_CONST(0.7168012785210994), FX16_CONST(0.6972775108308866), + FX16_CONST(0.7178700450557317), FX16_CONST(0.696177131491463), + FX16_CONST(0.7189371223728044), FX16_CONST(0.6950751139800009), + FX16_CONST(0.7200025079613817), FX16_CONST(0.693971460889654), + FX16_CONST(0.7210661993145081), FX16_CONST(0.6928661748174247), + FX16_CONST(0.7221281939292153), FX16_CONST(0.6917592583641577), + FX16_CONST(0.7231884893065273), FX16_CONST(0.6906507141345346), + FX16_CONST(0.7242470829514669), FX16_CONST(0.6895405447370669), + FX16_CONST(0.7253039723730608), FX16_CONST(0.6884287527840904), + FX16_CONST(0.726359155084346), FX16_CONST(0.687315340891759), + FX16_CONST(0.7274126286023758), FX16_CONST(0.6862003116800386), + FX16_CONST(0.7284643904482252), FX16_CONST(0.6850836677727004), + FX16_CONST(0.7295144381469969), FX16_CONST(0.6839654117973155), + FX16_CONST(0.7305627692278276), FX16_CONST(0.6828455463852481), + FX16_CONST(0.7316093812238926), FX16_CONST(0.6817240741716498), + FX16_CONST(0.7326542716724128), FX16_CONST(0.680600997795453), + FX16_CONST(0.7336974381146603), FX16_CONST(0.679476319899365), + FX16_CONST(0.7347388780959635), FX16_CONST(0.6783500431298615), + FX16_CONST(0.7357785891657135), FX16_CONST(0.6772221701371804), + FX16_CONST(0.7368165688773698), FX16_CONST(0.676092703575316), + FX16_CONST(0.737852814788466), FX16_CONST(0.674961646102012), + FX16_CONST(0.7388873244606151), FX16_CONST(0.6738290003787561), + FX16_CONST(0.7399200954595161), FX16_CONST(0.672694769070773), + FX16_CONST(0.7409511253549591), FX16_CONST(0.6715589548470183), + FX16_CONST(0.741980411720831), FX16_CONST(0.6704215603801731), + FX16_CONST(0.7430079521351217), FX16_CONST(0.669282588346636), + FX16_CONST(0.7440337441799293), FX16_CONST(0.6681420414265186), + FX16_CONST(0.745057785441466), FX16_CONST(0.6669999223036375), + FX16_CONST(0.7460800735100637), FX16_CONST(0.6658562336655097), + FX16_CONST(0.7471006059801801), FX16_CONST(0.6647109782033449), + FX16_CONST(0.7481193804504035), FX16_CONST(0.6635641586120399), + FX16_CONST(0.7491363945234593), FX16_CONST(0.6624157775901718), + FX16_CONST(0.750151645806215), FX16_CONST(0.6612658378399923), + FX16_CONST(0.7511651319096864), FX16_CONST(0.6601143420674205), + FX16_CONST(0.7521768504490427), FX16_CONST(0.6589612929820373), + FX16_CONST(0.7531867990436125), FX16_CONST(0.6578066932970787), + FX16_CONST(0.7541949753168892), FX16_CONST(0.656650545729429), + FX16_CONST(0.7552013768965365), FX16_CONST(0.6554928529996155), + FX16_CONST(0.7562060014143945), FX16_CONST(0.6543336178318006), + FX16_CONST(0.7572088465064846), FX16_CONST(0.6531728429537769), + FX16_CONST(0.7582099098130153), FX16_CONST(0.6520105310969595), + FX16_CONST(0.759209188978388), FX16_CONST(0.650846684996381), + FX16_CONST(0.7602066816512024), FX16_CONST(0.6496813073906832), + FX16_CONST(0.7612023854842618), FX16_CONST(0.6485144010221126), + FX16_CONST(0.7621962981345789), FX16_CONST(0.6473459686365121), + FX16_CONST(0.7631884172633813), FX16_CONST(0.6461760129833164), + FX16_CONST(0.7641787405361167), FX16_CONST(0.645004536815544), + FX16_CONST(0.765167265622459), FX16_CONST(0.6438315428897915), + FX16_CONST(0.7661539901963128), FX16_CONST(0.6426570339662269), + FX16_CONST(0.7671389119358204), FX16_CONST(0.6414810128085832), + FX16_CONST(0.7681220285233653), FX16_CONST(0.6403034821841517), + FX16_CONST(0.7691033376455796), FX16_CONST(0.6391244448637757), + FX16_CONST(0.7700828369933479), FX16_CONST(0.6379439036218442), + FX16_CONST(0.7710605242618138), FX16_CONST(0.6367618612362842), + FX16_CONST(0.7720363971503844), FX16_CONST(0.6355783204885562), + FX16_CONST(0.7730104533627369), FX16_CONST(0.6343932841636455), + FX16_CONST(0.7739826906068228), FX16_CONST(0.6332067550500572), + FX16_CONST(0.7749531065948738), FX16_CONST(0.6320187359398091), + FX16_CONST(0.7759216990434076), FX16_CONST(0.6308292296284246), + FX16_CONST(0.7768884656732324), FX16_CONST(0.6296382389149271), + FX16_CONST(0.777853404209453), FX16_CONST(0.6284457666018327), + FX16_CONST(0.7788165123814759), FX16_CONST(0.6272518154951442), + FX16_CONST(0.7797777879230144), FX16_CONST(0.6260563884043435), + FX16_CONST(0.7807372285720945), FX16_CONST(0.6248594881423865), + FX16_CONST(0.7816948320710594), FX16_CONST(0.6236611175256946), + FX16_CONST(0.7826505961665757), FX16_CONST(0.6224612793741501), + FX16_CONST(0.7836045186096382), FX16_CONST(0.6212599765110877), + FX16_CONST(0.7845565971555752), FX16_CONST(0.6200572117632892), + FX16_CONST(0.7855068295640539), FX16_CONST(0.6188529879609763), + FX16_CONST(0.7864552135990858), FX16_CONST(0.617647307937804), + FX16_CONST(0.7874017470290313), FX16_CONST(0.6164401745308536), + FX16_CONST(0.7883464276266062), FX16_CONST(0.6152315905806268), + FX16_CONST(0.7892892531688857), FX16_CONST(0.6140215589310385), + FX16_CONST(0.79023022143731), FX16_CONST(0.6128100824294097), + FX16_CONST(0.7911693302176901), FX16_CONST(0.611597163926462), + FX16_CONST(0.7921065773002123), FX16_CONST(0.6103828062763095), + FX16_CONST(0.7930419604794436), FX16_CONST(0.6091670123364532), + FX16_CONST(0.7939754775543372), FX16_CONST(0.6079497849677737), + FX16_CONST(0.794907126328237), FX16_CONST(0.6067311270345245), + FX16_CONST(0.7958369046088835), FX16_CONST(0.6055110414043255), + FX16_CONST(0.7967648102084187), FX16_CONST(0.6042895309481561), + FX16_CONST(0.797690840943391), FX16_CONST(0.6030665985403483), + FX16_CONST(0.7986149946347608), FX16_CONST(0.60184224705858), + FX16_CONST(0.799537269107905), FX16_CONST(0.600616479383869), + FX16_CONST(0.8004576621926227), FX16_CONST(0.5993892984005645), + FX16_CONST(0.8013761717231401), FX16_CONST(0.5981607069963424), + FX16_CONST(0.8022927955381157), FX16_CONST(0.5969307080621965), + FX16_CONST(0.8032075314806448), FX16_CONST(0.5956993044924335), + FX16_CONST(0.8041203773982657), FX16_CONST(0.5944664991846645), + FX16_CONST(0.8050313311429637), FX16_CONST(0.5932322950397998), + FX16_CONST(0.8059403905711763), FX16_CONST(0.591996694962041), + FX16_CONST(0.8068475535437992), FX16_CONST(0.5907597018588743), + FX16_CONST(0.8077528179261902), FX16_CONST(0.5895213186410639), + FX16_CONST(0.808656181588175), FX16_CONST(0.5882815482226453), + FX16_CONST(0.8095576424040513), FX16_CONST(0.5870403935209181), + FX16_CONST(0.8104571982525948), FX16_CONST(0.5857978574564389), + FX16_CONST(0.8113548470170637), FX16_CONST(0.5845539429530153), + FX16_CONST(0.8122505865852039), FX16_CONST(0.5833086529376983), + FX16_CONST(0.8131444148492536), FX16_CONST(0.5820619903407755), + FX16_CONST(0.8140363297059483), FX16_CONST(0.5808139580957645), + FX16_CONST(0.8149263290565266), FX16_CONST(0.5795645591394057), + FX16_CONST(0.8158144108067338), FX16_CONST(0.5783137964116556), + FX16_CONST(0.8167005728668278), FX16_CONST(0.5770616728556796), + FX16_CONST(0.8175848131515837), FX16_CONST(0.5758081914178453), + FX16_CONST(0.8184671295802987), FX16_CONST(0.5745533550477158), + FX16_CONST(0.8193475200767969), FX16_CONST(0.5732971666980423), + FX16_CONST(0.8202259825694347), FX16_CONST(0.572039629324757), + FX16_CONST(0.8211025149911046), FX16_CONST(0.5707807458869674), + FX16_CONST(0.8219771152792416), FX16_CONST(0.5695205193469473), + FX16_CONST(0.8228497813758263), FX16_CONST(0.5682589526701315), + FX16_CONST(0.8237205112273913), FX16_CONST(0.5669960488251087), + FX16_CONST(0.8245893027850253), FX16_CONST(0.5657318107836132), + FX16_CONST(0.8254561540043774), FX16_CONST(0.5644662415205195), + FX16_CONST(0.8263210628456635), FX16_CONST(0.5631993440138341), + FX16_CONST(0.8271840272736691), FX16_CONST(0.5619311212446895), + FX16_CONST(0.8280450452577558), FX16_CONST(0.560661576197336), + FX16_CONST(0.8289041147718649), FX16_CONST(0.5593907118591361), + FX16_CONST(0.829761233794523), FX16_CONST(0.5581185312205561), + FX16_CONST(0.8306164003088462), FX16_CONST(0.5568450372751601), + FX16_CONST(0.8314696123025452), FX16_CONST(0.5555702330196023), + FX16_CONST(0.8323208677679297), FX16_CONST(0.5542941214536201), + FX16_CONST(0.8331701647019132), FX16_CONST(0.5530167055800276), + FX16_CONST(0.8340175011060181), FX16_CONST(0.5517379884047074), + FX16_CONST(0.83486287498638), FX16_CONST(0.5504579729366048), + FX16_CONST(0.8357062843537526), FX16_CONST(0.5491766621877198), + FX16_CONST(0.8365477272235119), FX16_CONST(0.5478940591731002), + FX16_CONST(0.8373872016156619), FX16_CONST(0.5466101669108349), + FX16_CONST(0.838224705554838), FX16_CONST(0.5453249884220465), + FX16_CONST(0.8390602370703126), FX16_CONST(0.5440385267308839), + FX16_CONST(0.8398937941959994), FX16_CONST(0.542750784864516), + FX16_CONST(0.840725374970458), FX16_CONST(0.5414617658531236), + FX16_CONST(0.8415549774368983), FX16_CONST(0.540171472729893), + FX16_CONST(0.8423825996431858), FX16_CONST(0.5388799085310084), + FX16_CONST(0.8432082396418454), FX16_CONST(0.5375870762956455), + FX16_CONST(0.8440318954900664), FX16_CONST(0.5362929790659632), + FX16_CONST(0.844853565249707), FX16_CONST(0.5349976198870973), + FX16_CONST(0.8456732469872991), FX16_CONST(0.533701001807153), + FX16_CONST(0.8464909387740521), FX16_CONST(0.532403127877198), + FX16_CONST(0.8473066386858583), FX16_CONST(0.531104001151255), + FX16_CONST(0.8481203448032971), FX16_CONST(0.5298036246862948), + FX16_CONST(0.8489320552116396), FX16_CONST(0.5285020015422285), + FX16_CONST(0.8497417680008524), FX16_CONST(0.5271991347819014), + FX16_CONST(0.8505494812656034), FX16_CONST(0.5258950274710847), + FX16_CONST(0.8513551931052652), FX16_CONST(0.5245896826784688), + FX16_CONST(0.8521589016239198), FX16_CONST(0.5232831034756564), + FX16_CONST(0.8529606049303636), FX16_CONST(0.5219752929371544), + FX16_CONST(0.8537603011381113), FX16_CONST(0.5206662541403673), + FX16_CONST(0.8545579883654005), FX16_CONST(0.5193559901655895), + FX16_CONST(0.855353664735196), FX16_CONST(0.5180445040959993), + FX16_CONST(0.8561473283751945), FX16_CONST(0.51673179901765), + FX16_CONST(0.8569389774178287), FX16_CONST(0.5154178780194631), + FX16_CONST(0.8577286100002721), FX16_CONST(0.5141027441932217), + FX16_CONST(0.8585162242644427), FX16_CONST(0.5127864006335631), + FX16_CONST(0.8593018183570084), FX16_CONST(0.5114688504379705), + FX16_CONST(0.8600853904293903), FX16_CONST(0.5101500967067667), + FX16_CONST(0.8608669386377673), FX16_CONST(0.508830142543107), + FX16_CONST(0.8616464611430813), FX16_CONST(0.5075089910529709), + FX16_CONST(0.8624239561110405), FX16_CONST(0.5061866453451553), + FX16_CONST(0.8631994217121242), FX16_CONST(0.5048631085312675), + FX16_CONST(0.8639728561215867), FX16_CONST(0.5035383837257176), + FX16_CONST(0.8647442575194624), FX16_CONST(0.5022124740457109), + FX16_CONST(0.865513624090569), FX16_CONST(0.5008853826112409), + FX16_CONST(0.866280954024513), FX16_CONST(0.49955711254508184), + FX16_CONST(0.8670462455156926), FX16_CONST(0.49822766697278187), + FX16_CONST(0.8678094967633032), FX16_CONST(0.49689704902265464), + FX16_CONST(0.8685707059713409), FX16_CONST(0.4955652618257725), + FX16_CONST(0.8693298713486067), FX16_CONST(0.49423230851595973), + FX16_CONST(0.8700869911087113), FX16_CONST(0.4928981922297841), + FX16_CONST(0.8708420634700789), FX16_CONST(0.49156291610655006), + FX16_CONST(0.8715950866559511), FX16_CONST(0.4902264832882911), + FX16_CONST(0.8723460588943914), FX16_CONST(0.4888888969197632), + FX16_CONST(0.8730949784182901), FX16_CONST(0.48755016014843605), + FX16_CONST(0.8738418434653668), FX16_CONST(0.48621027612448653), + FX16_CONST(0.8745866522781761), FX16_CONST(0.4848692480007911), + FX16_CONST(0.8753294031041108), FX16_CONST(0.48352707893291874), + FX16_CONST(0.8760700941954066), FX16_CONST(0.48218377207912283), + FX16_CONST(0.8768087238091458), FX16_CONST(0.4808393306003339), + FX16_CONST(0.8775452902072612), FX16_CONST(0.479493757660153), + FX16_CONST(0.8782797916565415), FX16_CONST(0.4781470564248431), + FX16_CONST(0.8790122264286334), FX16_CONST(0.47679923006332225), + FX16_CONST(0.8797425928000474), FX16_CONST(0.47545028174715587), + FX16_CONST(0.8804708890521608), FX16_CONST(0.47410021465055), + FX16_CONST(0.881197113471222), FX16_CONST(0.4727490319503429), + FX16_CONST(0.8819212643483549), FX16_CONST(0.4713967368259978), + FX16_CONST(0.8826433399795628), FX16_CONST(0.4700433324595956), + FX16_CONST(0.8833633386657316), FX16_CONST(0.46868882203582796), + FX16_CONST(0.884081258712635), FX16_CONST(0.4673332087419885), + FX16_CONST(0.8847970984309378), FX16_CONST(0.4659764957679661), + FX16_CONST(0.8855108561362), FX16_CONST(0.4646186863062378), + FX16_CONST(0.8862225301488806), FX16_CONST(0.46325978355186026), + FX16_CONST(0.8869321187943421), FX16_CONST(0.46189979070246284), + FX16_CONST(0.8876396204028539), FX16_CONST(0.46053871095824), + FX16_CONST(0.8883450333095964), FX16_CONST(0.45917654752194415), + FX16_CONST(0.8890483558546646), FX16_CONST(0.4578133035988773), + FX16_CONST(0.8897495863830729), FX16_CONST(0.45644898239688386), + FX16_CONST(0.8904487232447579), FX16_CONST(0.45508358712634384), + FX16_CONST(0.8911457647945832), FX16_CONST(0.4537171210001639), + FX16_CONST(0.8918407093923427), FX16_CONST(0.452349587233771), + FX16_CONST(0.8925335554027647), FX16_CONST(0.4509809890451038), + FX16_CONST(0.8932243011955153), FX16_CONST(0.4496113296546066), + FX16_CONST(0.8939129451452033), FX16_CONST(0.44824061228522), + FX16_CONST(0.8945994856313826), FX16_CONST(0.4468688401623743), + FX16_CONST(0.8952839210385576), FX16_CONST(0.44549601651398174), + FX16_CONST(0.8959662497561851), FX16_CONST(0.44412214457042926), + FX16_CONST(0.8966464701786802), FX16_CONST(0.44274722756457013), + FX16_CONST(0.8973245807054183), FX16_CONST(0.4413712687317166), + FX16_CONST(0.8980005797407399), FX16_CONST(0.43999427130963326), + FX16_CONST(0.8986744656939538), FX16_CONST(0.4386162385385277), + FX16_CONST(0.8993462369793415), FX16_CONST(0.4372371736610442), + FX16_CONST(0.9000158920161603), FX16_CONST(0.4358570799222555), + FX16_CONST(0.9006834292286469), FX16_CONST(0.4344759605696557), + FX16_CONST(0.901348847046022), FX16_CONST(0.433093818853152), + FX16_CONST(0.9020121439024931), FX16_CONST(0.43171065802505737), + FX16_CONST(0.9026733182372588), FX16_CONST(0.4303264813400826), + FX16_CONST(0.9033323684945118), FX16_CONST(0.42894129205532955), + FX16_CONST(0.9039892931234433), FX16_CONST(0.4275550934302822), + FX16_CONST(0.9046440905782462), FX16_CONST(0.4261678887267996), + FX16_CONST(0.9052967593181188), FX16_CONST(0.4247796812091088), + FX16_CONST(0.9059472978072685), FX16_CONST(0.4233904741437961), + FX16_CONST(0.9065957045149153), FX16_CONST(0.4220002707997998), + FX16_CONST(0.9072419779152959), FX16_CONST(0.4206090744484025), + FX16_CONST(0.9078861164876663), FX16_CONST(0.41921688836322396), + FX16_CONST(0.9085281187163061), FX16_CONST(0.4178237158202124), + FX16_CONST(0.9091679830905223), FX16_CONST(0.4164295600976373), + FX16_CONST(0.9098057081046522), FX16_CONST(0.41503442447608163), + FX16_CONST(0.9104412922580671), FX16_CONST(0.41363831223843456), + FX16_CONST(0.9110747340551762), FX16_CONST(0.412241226669883), + FX16_CONST(0.9117060320054299), FX16_CONST(0.4108431710579039), + FX16_CONST(0.9123351846233227), FX16_CONST(0.40944414869225765), + FX16_CONST(0.9129621904283981), FX16_CONST(0.40804416286497874), + FX16_CONST(0.9135870479452508), FX16_CONST(0.40664321687036914), + FX16_CONST(0.9142097557035307), FX16_CONST(0.40524131400498986), + FX16_CONST(0.9148303122379461), FX16_CONST(0.40383845756765413), + FX16_CONST(0.9154487160882678), FX16_CONST(0.40243465085941854), + FX16_CONST(0.9160649657993316), FX16_CONST(0.4010298971835758), + FX16_CONST(0.9166790599210427), FX16_CONST(0.3996241998456468), + FX16_CONST(0.9172909970083779), FX16_CONST(0.3982175621533736), + FX16_CONST(0.9179007756213904), FX16_CONST(0.3968099874167104), + FX16_CONST(0.9185083943252123), FX16_CONST(0.3954014789478163), + FX16_CONST(0.9191138516900578), FX16_CONST(0.3939920400610481), + FX16_CONST(0.9197171462912274), FX16_CONST(0.3925816740729515), + FX16_CONST(0.9203182767091105), FX16_CONST(0.391170384302254), + FX16_CONST(0.9209172415291894), FX16_CONST(0.3897581740698564), + FX16_CONST(0.9215140393420419), FX16_CONST(0.3883450466988263), + FX16_CONST(0.9221086687433451), FX16_CONST(0.3869310055143887), + FX16_CONST(0.9227011283338785), FX16_CONST(0.385516053843919), + FX16_CONST(0.9232914167195276), FX16_CONST(0.38410019501693504), + FX16_CONST(0.9238795325112867), FX16_CONST(0.38268343236508984), + FX16_CONST(0.9244654743252626), FX16_CONST(0.3812657692221625), + FX16_CONST(0.9250492407826776), FX16_CONST(0.3798472089240511), + FX16_CONST(0.9256308305098727), FX16_CONST(0.3784277548087656), + FX16_CONST(0.9262102421383113), FX16_CONST(0.3770074102164183), + FX16_CONST(0.9267874743045817), FX16_CONST(0.3755861784892173), + FX16_CONST(0.9273625256504011), FX16_CONST(0.374164062971458), + FX16_CONST(0.9279353948226179), FX16_CONST(0.3727410670095158), + FX16_CONST(0.9285060804732156), FX16_CONST(0.3713171939518376), + FX16_CONST(0.9290745812593157), FX16_CONST(0.36989244714893427), + FX16_CONST(0.9296408958431812), FX16_CONST(0.3684668299533723), + FX16_CONST(0.9302050228922191), FX16_CONST(0.36704034571976724), + FX16_CONST(0.9307669610789837), FX16_CONST(0.36561299780477396), + FX16_CONST(0.9313267090811804), FX16_CONST(0.36418478956707984), + FX16_CONST(0.9318842655816681), FX16_CONST(0.3627557243673972), + FX16_CONST(0.9324396292684624), FX16_CONST(0.36132580556845434), + FX16_CONST(0.9329927988347388), FX16_CONST(0.3598950365349883), + FX16_CONST(0.9335437729788362), FX16_CONST(0.35846342063373654), + FX16_CONST(0.9340925504042589), FX16_CONST(0.35703096123343003), + FX16_CONST(0.9346391298196808), FX16_CONST(0.35559766170478396), + FX16_CONST(0.9351835099389475), FX16_CONST(0.3541635254204905), + FX16_CONST(0.9357256894810804), FX16_CONST(0.3527285557552107), + FX16_CONST(0.9362656671702783), FX16_CONST(0.35129275608556715), + FX16_CONST(0.9368034417359216), FX16_CONST(0.34985612979013503), + FX16_CONST(0.937339011912575), FX16_CONST(0.3484186802494345), + FX16_CONST(0.9378723764399899), FX16_CONST(0.3469804108459237), + FX16_CONST(0.9384035340631081), FX16_CONST(0.34554132496398915), + FX16_CONST(0.9389324835320645), FX16_CONST(0.344101425989939), + FX16_CONST(0.9394592236021899), FX16_CONST(0.3426607173119944), + FX16_CONST(0.9399837530340139), FX16_CONST(0.3412192023202824), + FX16_CONST(0.9405060705932683), FX16_CONST(0.33977688440682696), + FX16_CONST(0.9410261750508893), FX16_CONST(0.3383337669655413), + FX16_CONST(0.9415440651830208), FX16_CONST(0.33688985339222005), + FX16_CONST(0.9420597397710173), FX16_CONST(0.33544514708453166), + FX16_CONST(0.9425731976014469), FX16_CONST(0.3339996514420095), + FX16_CONST(0.9430844374660935), FX16_CONST(0.3325533698660442), + FX16_CONST(0.9435934581619604), FX16_CONST(0.33110630575987643), + FX16_CONST(0.9441002584912727), FX16_CONST(0.32965846252858755), + FX16_CONST(0.9446048372614803), FX16_CONST(0.32820984357909266), + FX16_CONST(0.9451071932852606), FX16_CONST(0.3267604523201318), + FX16_CONST(0.9456073253805213), FX16_CONST(0.325310292162263), + FX16_CONST(0.9461052323704033), FX16_CONST(0.32385936651785296), + FX16_CONST(0.9466009130832835), FX16_CONST(0.32240767880107), + FX16_CONST(0.9470943663527772), FX16_CONST(0.3209552324278752), + FX16_CONST(0.9475855910177411), FX16_CONST(0.31950203081601575), + FX16_CONST(0.9480745859222762), FX16_CONST(0.31804807738501506), + FX16_CONST(0.9485613499157303), FX16_CONST(0.31659337555616585), + FX16_CONST(0.9490458818527006), FX16_CONST(0.31513792875252244), + FX16_CONST(0.9495281805930367), FX16_CONST(0.3136817403988916), + FX16_CONST(0.950008245001843), FX16_CONST(0.31222481392182505), + FX16_CONST(0.9504860739494817), FX16_CONST(0.3107671527496115), + FX16_CONST(0.9509616663115751), FX16_CONST(0.3093087603122688), + FX16_CONST(0.9514350209690083), FX16_CONST(0.307849640041535), + FX16_CONST(0.9519061368079322), FX16_CONST(0.3063897953708611), + FX16_CONST(0.9523750127197659), FX16_CONST(0.30492922973540243), + FX16_CONST(0.9528416476011987), FX16_CONST(0.30346794657201137), + FX16_CONST(0.9533060403541938), FX16_CONST(0.3020059493192282), + FX16_CONST(0.9537681898859903), FX16_CONST(0.3005432414172734), + FX16_CONST(0.9542280951091057), FX16_CONST(0.2990798263080405), + FX16_CONST(0.9546857549413383), FX16_CONST(0.2976157074350863), + FX16_CONST(0.9551411683057707), FX16_CONST(0.29615088824362396), + FX16_CONST(0.9555943341307711), FX16_CONST(0.2946853721805143), + FX16_CONST(0.9560452513499964), FX16_CONST(0.2932191626942587), + FX16_CONST(0.956493918902395), FX16_CONST(0.2917522632349894), + FX16_CONST(0.9569403357322089), FX16_CONST(0.29028467725446233), + FX16_CONST(0.9573845007889759), FX16_CONST(0.2888164082060495), + FX16_CONST(0.9578264130275329), FX16_CONST(0.28734745954472957), + FX16_CONST(0.9582660714080177), FX16_CONST(0.2858778347270807), + FX16_CONST(0.9587034748958716), FX16_CONST(0.2844075372112718), + FX16_CONST(0.9591386224618419), FX16_CONST(0.2829365704570554), + FX16_CONST(0.9595715130819845), FX16_CONST(0.28146493792575805), + FX16_CONST(0.9600021457376658), FX16_CONST(0.2799926430802734), + FX16_CONST(0.9604305194155658), FX16_CONST(0.27851968938505306), + FX16_CONST(0.9608566331076797), FX16_CONST(0.27704608030609995), + FX16_CONST(0.9612804858113206), FX16_CONST(0.27557181931095825), + FX16_CONST(0.9617020765291225), FX16_CONST(0.27409690986870633), + FX16_CONST(0.9621214042690416), FX16_CONST(0.272621355449949), + FX16_CONST(0.9625384680443592), FX16_CONST(0.27114515952680807), + FX16_CONST(0.9629532668736839), FX16_CONST(0.2696683255729152), + FX16_CONST(0.963365799780954), FX16_CONST(0.2681908570634032), + FX16_CONST(0.9637760657954398), FX16_CONST(0.2667127574748984), + FX16_CONST(0.9641840639517457), FX16_CONST(0.2652340302855119), + FX16_CONST(0.9645897932898126), FX16_CONST(0.2637546789748315), + FX16_CONST(0.9649932528549203), FX16_CONST(0.2622747070239136), + FX16_CONST(0.9653944416976894), FX16_CONST(0.26079411791527557), + FX16_CONST(0.9657933588740836), FX16_CONST(0.25931291513288635), + FX16_CONST(0.9661900034454126), FX16_CONST(0.25783110216215893), + FX16_CONST(0.9665843744783331), FX16_CONST(0.2563486824899429), + FX16_CONST(0.9669764710448521), FX16_CONST(0.2548656596045146), + FX16_CONST(0.9673662922223285), FX16_CONST(0.25338203699557027), + FX16_CONST(0.9677538370934755), FX16_CONST(0.2518978181542169), + FX16_CONST(0.9681391047463624), FX16_CONST(0.2504130065729653), + FX16_CONST(0.9685220942744173), FX16_CONST(0.24892760574572026), + FX16_CONST(0.9689028047764289), FX16_CONST(0.24744161916777344), + FX16_CONST(0.9692812353565485), FX16_CONST(0.2459550503357946), + FX16_CONST(0.9696573851242924), FX16_CONST(0.2444679027478242), + FX16_CONST(0.970031253194544), FX16_CONST(0.24298017990326398), + FX16_CONST(0.9704028386875555), FX16_CONST(0.2414918853028693), + FX16_CONST(0.9707721407289504), FX16_CONST(0.2400030224487415), + FX16_CONST(0.9711391584497251), FX16_CONST(0.2385135948443185), + FX16_CONST(0.9715038909862518), FX16_CONST(0.23702360599436734), + FX16_CONST(0.9718663374802794), FX16_CONST(0.23553305940497546), + FX16_CONST(0.9722264970789363), FX16_CONST(0.23404195858354346), + FX16_CONST(0.9725843689347322), FX16_CONST(0.23255030703877533), + FX16_CONST(0.9729399522055601), FX16_CONST(0.23105810828067128), + FX16_CONST(0.9732932460546982), FX16_CONST(0.22956536582051887), + FX16_CONST(0.9736442496508119), FX16_CONST(0.2280720831708858), + FX16_CONST(0.9739929621679558), FX16_CONST(0.2265782638456101), + FX16_CONST(0.9743393827855759), FX16_CONST(0.22508391135979278), + FX16_CONST(0.9746835106885107), FX16_CONST(0.22358902922979002), + FX16_CONST(0.9750253450669941), FX16_CONST(0.2220936209732036), + FX16_CONST(0.9753648851166569), FX16_CONST(0.22059769010887365), + FX16_CONST(0.9757021300385286), FX16_CONST(0.21910124015686977), + FX16_CONST(0.976037079039039), FX16_CONST(0.21760427463848367), + FX16_CONST(0.9763697313300211), FX16_CONST(0.2161067970762196), + FX16_CONST(0.9767000861287118), FX16_CONST(0.21460881099378692), + FX16_CONST(0.9770281426577544), FX16_CONST(0.21311031991609136), + FX16_CONST(0.9773539001452), FX16_CONST(0.2116113273692276), + FX16_CONST(0.9776773578245099), FX16_CONST(0.21011183688046972), + FX16_CONST(0.9779985149345571), FX16_CONST(0.20861185197826346), + FX16_CONST(0.9783173707196277), FX16_CONST(0.20711137619221856), + FX16_CONST(0.9786339244294231), FX16_CONST(0.20561041305309932), + FX16_CONST(0.9789481753190622), FX16_CONST(0.204108966092817), + FX16_CONST(0.979260122649082), FX16_CONST(0.2026070388444211), + FX16_CONST(0.9795697656854405), FX16_CONST(0.20110463484209196), + FX16_CONST(0.9798771036995176), FX16_CONST(0.19960175762113105), + FX16_CONST(0.9801821359681173), FX16_CONST(0.19809841071795373), + FX16_CONST(0.9804848617734694), FX16_CONST(0.19659459767008022), + FX16_CONST(0.9807852804032304), FX16_CONST(0.19509032201612833), + FX16_CONST(0.9810833911504866), FX16_CONST(0.19358558729580375), + FX16_CONST(0.9813791933137546), FX16_CONST(0.19208039704989238), + FX16_CONST(0.9816726861969831), FX16_CONST(0.1905747548202528), + FX16_CONST(0.9819638691095552), FX16_CONST(0.18906866414980628), + FX16_CONST(0.9822527413662894), FX16_CONST(0.18756212858252974), + FX16_CONST(0.9825393022874412), FX16_CONST(0.18605515166344663), + FX16_CONST(0.9828235511987052), FX16_CONST(0.18454773693861964), + FX16_CONST(0.9831054874312163), FX16_CONST(0.18303988795514106), + FX16_CONST(0.9833851103215512), FX16_CONST(0.18153160826112513), + FX16_CONST(0.9836624192117303), FX16_CONST(0.18002290140569951), + FX16_CONST(0.9839374134492189), FX16_CONST(0.1785137709389976), + FX16_CONST(0.984210092386929), FX16_CONST(0.17700422041214886), + FX16_CONST(0.9844804553832209), FX16_CONST(0.1754942533772714), + FX16_CONST(0.9847485018019042), FX16_CONST(0.17398387338746385), + FX16_CONST(0.9850142310122398), FX16_CONST(0.17247308399679603), + FX16_CONST(0.9852776423889412), FX16_CONST(0.17096188876030136), + FX16_CONST(0.9855387353121761), FX16_CONST(0.16945029123396793), + FX16_CONST(0.9857975091675674), FX16_CONST(0.16793829497473123), + FX16_CONST(0.9860539633461954), FX16_CONST(0.16642590354046422), + FX16_CONST(0.9863080972445987), FX16_CONST(0.1649131204899701), + FX16_CONST(0.9865599102647754), FX16_CONST(0.16339994938297323), + FX16_CONST(0.9868094018141854), FX16_CONST(0.16188639378011188), + FX16_CONST(0.987056571305751), FX16_CONST(0.1603724572429284), + FX16_CONST(0.9873014181578584), FX16_CONST(0.1588581433338614), + FX16_CONST(0.9875439417943592), FX16_CONST(0.15734345561623828), + FX16_CONST(0.9877841416445722), FX16_CONST(0.15582839765426532), + FX16_CONST(0.9880220171432835), FX16_CONST(0.15431297301302024), + FX16_CONST(0.9882575677307495), FX16_CONST(0.1527971852584434), + FX16_CONST(0.9884907928526966), FX16_CONST(0.15128103795733025), + FX16_CONST(0.9887216919603238), FX16_CONST(0.14976453467732162), + FX16_CONST(0.988950264510303), FX16_CONST(0.1482476789868962), + FX16_CONST(0.989176509964781), FX16_CONST(0.14673047445536175), + FX16_CONST(0.9894004277913804), FX16_CONST(0.14521292465284752), + FX16_CONST(0.9896220174632008), FX16_CONST(0.14369503315029458), + FX16_CONST(0.9898412784588205), FX16_CONST(0.142176803519448), + FX16_CONST(0.9900582102622971), FX16_CONST(0.14065823933284924), + FX16_CONST(0.9902728123631691), FX16_CONST(0.13913934416382628), + FX16_CONST(0.990485084256457), FX16_CONST(0.13762012158648618), + FX16_CONST(0.9906950254426646), FX16_CONST(0.1361005751757062), + FX16_CONST(0.99090263542778), FX16_CONST(0.13458070850712622), + FX16_CONST(0.9911079137232768), FX16_CONST(0.13306052515713918), + FX16_CONST(0.9913108598461154), FX16_CONST(0.13154002870288328), + FX16_CONST(0.9915114733187439), FX16_CONST(0.13001922272223335), + FX16_CONST(0.9917097536690995), FX16_CONST(0.12849811079379322), + FX16_CONST(0.9919057004306093), FX16_CONST(0.12697669649688598), + FX16_CONST(0.9920993131421918), FX16_CONST(0.1254549834115462), + FX16_CONST(0.9922905913482574), FX16_CONST(0.1239329751185122), + FX16_CONST(0.99247953459871), FX16_CONST(0.12241067519921628), + FX16_CONST(0.992666142448948), FX16_CONST(0.12088808723577722), + FX16_CONST(0.9928504144598651), FX16_CONST(0.11936521481099135), + FX16_CONST(0.9930323501978514), FX16_CONST(0.11784206150832502), + FX16_CONST(0.9932119492347945), FX16_CONST(0.11631863091190488), + FX16_CONST(0.9933892111480807), FX16_CONST(0.11479492660651025), + FX16_CONST(0.9935641355205953), FX16_CONST(0.11327095217756436), + FX16_CONST(0.9937367219407246), FX16_CONST(0.11174671121112666), + FX16_CONST(0.9939069700023561), FX16_CONST(0.11022220729388318), + FX16_CONST(0.9940748793048794), FX16_CONST(0.10869744401313867), + FX16_CONST(0.9942404494531879), FX16_CONST(0.10717242495680887), + FX16_CONST(0.9944036800576791), FX16_CONST(0.1056471537134107), + FX16_CONST(0.9945645707342554), FX16_CONST(0.10412163387205473), + FX16_CONST(0.9947231211043257), FX16_CONST(0.10259586902243628), + FX16_CONST(0.9948793307948056), FX16_CONST(0.10106986275482788), + FX16_CONST(0.9950331994381186), FX16_CONST(0.09954361866006944), + FX16_CONST(0.9951847266721968), FX16_CONST(0.09801714032956077), + FX16_CONST(0.9953339121404823), FX16_CONST(0.0964904313552526), + FX16_CONST(0.9954807554919269), FX16_CONST(0.09496349532963906), + FX16_CONST(0.9956252563809943), FX16_CONST(0.09343633584574791), + FX16_CONST(0.9957674144676598), FX16_CONST(0.0919089564971327), + FX16_CONST(0.9959072294174117), FX16_CONST(0.09038136087786501), + FX16_CONST(0.996044700901252), FX16_CONST(0.08885355258252468), + FX16_CONST(0.9961798285956969), FX16_CONST(0.08732553520619223), + FX16_CONST(0.996312612182778), FX16_CONST(0.08579731234443988), + FX16_CONST(0.9964430513500426), FX16_CONST(0.08426888759332413), + FX16_CONST(0.9965711457905548), FX16_CONST(0.0827402645493758), + FX16_CONST(0.9966968952028961), FX16_CONST(0.08121144680959239), + FX16_CONST(0.9968202992911657), FX16_CONST(0.07968243797143013), + FX16_CONST(0.9969413577649822), FX16_CONST(0.07815324163279432), + FX16_CONST(0.997060070339483), FX16_CONST(0.07662386139203162), + FX16_CONST(0.9971764367353262), FX16_CONST(0.07509430084792129), + FX16_CONST(0.9972904566786902), FX16_CONST(0.07356456359966745), + FX16_CONST(0.9974021299012753), FX16_CONST(0.07203465324688942), + FX16_CONST(0.9975114561403035), FX16_CONST(0.07050457338961401), + FX16_CONST(0.9976184351385196), FX16_CONST(0.06897432762826673), + FX16_CONST(0.9977230666441916), FX16_CONST(0.0674439195636641), + FX16_CONST(0.9978253504111116), FX16_CONST(0.06591335279700393), + FX16_CONST(0.997925286198596), FX16_CONST(0.06438263092985741), + FX16_CONST(0.9980228737714862), FX16_CONST(0.06285175756416142), + FX16_CONST(0.9981181129001492), FX16_CONST(0.06132073630220865), + FX16_CONST(0.9982110033604782), FX16_CONST(0.05978957074664001), + FX16_CONST(0.9983015449338929), FX16_CONST(0.05825826450043573), + FX16_CONST(0.9983897374073402), FX16_CONST(0.05672682116690778), + FX16_CONST(0.9984755805732948), FX16_CONST(0.05519524434969003), + FX16_CONST(0.9985590742297593), FX16_CONST(0.05366353765273068), + FX16_CONST(0.9986402181802653), FX16_CONST(0.05213170468028332), + FX16_CONST(0.9987190122338729), FX16_CONST(0.05059974903689934), + FX16_CONST(0.9987954562051724), FX16_CONST(0.049067674327418126), + FX16_CONST(0.9988695499142836), FX16_CONST(0.04753548415695926), + FX16_CONST(0.9989412931868569), FX16_CONST(0.046003182130914644), + FX16_CONST(0.9990106858540734), FX16_CONST(0.044470771854938744), + FX16_CONST(0.9990777277526454), FX16_CONST(0.04293825693494096), + FX16_CONST(0.9991424187248169), FX16_CONST(0.04140564097707671), + FX16_CONST(0.9992047586183639), FX16_CONST(0.039872927587739845), + FX16_CONST(0.9992647472865944), FX16_CONST(0.03834012037355279), + FX16_CONST(0.9993223845883495), FX16_CONST(0.03680722294135899), + FX16_CONST(0.9993776703880028), FX16_CONST(0.03527423889821395), + FX16_CONST(0.9994306045554617), FX16_CONST(0.03374117185137764), + FX16_CONST(0.999481186966167), FX16_CONST(0.032208025408304704), + FX16_CONST(0.9995294175010931), FX16_CONST(0.03067480317663658), + FX16_CONST(0.9995752960467492), FX16_CONST(0.02914150876419374), + FX16_CONST(0.9996188224951786), FX16_CONST(0.02760814577896582), + FX16_CONST(0.9996599967439592), FX16_CONST(0.02607471782910404), + FX16_CONST(0.9996988186962042), FX16_CONST(0.024541228522912264), + FX16_CONST(0.9997352882605617), FX16_CONST(0.02300768146883941), + FX16_CONST(0.9997694053512153), FX16_CONST(0.021474080275469605), + FX16_CONST(0.9998011698878843), FX16_CONST(0.019940428551514598), + FX16_CONST(0.9998305817958234), FX16_CONST(0.01840672990580482), + FX16_CONST(0.9998576410058239), FX16_CONST(0.016872987947281773), + FX16_CONST(0.9998823474542126), FX16_CONST(0.01533920628498822), + FX16_CONST(0.9999047010828529), FX16_CONST(0.013805388528060349), + FX16_CONST(0.9999247018391445), FX16_CONST(0.012271538285719944), + FX16_CONST(0.9999423496760239), FX16_CONST(0.010737659167264572), + FX16_CONST(0.9999576445519639), FX16_CONST(0.00920375478205996), + FX16_CONST(0.9999705864309741), FX16_CONST(0.007669828739531077), + FX16_CONST(0.9999811752826011), FX16_CONST(0.006135884649154515), + FX16_CONST(0.9999894110819284), FX16_CONST(0.004601926120448672), + FX16_CONST(0.9999952938095762), FX16_CONST(0.003067956762966138), + FX16_CONST(0.9999988234517019), FX16_CONST(0.0015339801862847662), + FX16_CONST(1.0), FX16_CONST(6.123233995736766e-17), + FX16_CONST(0.9999988234517019), FX16_CONST(-0.0015339801862846436), + FX16_CONST(0.9999952938095762), FX16_CONST(-0.0030679567629660156), + FX16_CONST(0.9999894110819284), FX16_CONST(-0.00460192612044855), + FX16_CONST(0.9999811752826011), FX16_CONST(-0.006135884649154393), + FX16_CONST(0.9999705864309741), FX16_CONST(-0.007669828739530955), + FX16_CONST(0.9999576445519639), FX16_CONST(-0.009203754782059837), + FX16_CONST(0.9999423496760239), FX16_CONST(-0.010737659167264449), + FX16_CONST(0.9999247018391445), FX16_CONST(-0.012271538285719823), + FX16_CONST(0.9999047010828529), FX16_CONST(-0.013805388528060226), + FX16_CONST(0.9998823474542126), FX16_CONST(-0.015339206284988098), + FX16_CONST(0.9998576410058239), FX16_CONST(-0.01687298794728165), + FX16_CONST(0.9998305817958234), FX16_CONST(-0.018406729905804695), + FX16_CONST(0.9998011698878843), FX16_CONST(-0.019940428551514476), + FX16_CONST(0.9997694053512153), FX16_CONST(-0.021474080275469484), + FX16_CONST(0.9997352882605617), FX16_CONST(-0.02300768146883929), + FX16_CONST(0.9996988186962042), FX16_CONST(-0.024541228522912142), + FX16_CONST(0.9996599967439592), FX16_CONST(-0.026074717829103915), + FX16_CONST(0.9996188224951786), FX16_CONST(-0.027608145778965698), + FX16_CONST(0.9995752960467492), FX16_CONST(-0.029141508764193618), + FX16_CONST(0.9995294175010931), FX16_CONST(-0.03067480317663646), + FX16_CONST(0.999481186966167), FX16_CONST(-0.03220802540830458), + FX16_CONST(0.9994306045554617), FX16_CONST(-0.03374117185137752), + FX16_CONST(0.9993776703880028), FX16_CONST(-0.03527423889821382), + FX16_CONST(0.9993223845883495), FX16_CONST(-0.036807222941358866), + FX16_CONST(0.9992647472865944), FX16_CONST(-0.038340120373552666), + FX16_CONST(0.9992047586183639), FX16_CONST(-0.03987292758773973), + FX16_CONST(0.9991424187248169), FX16_CONST(-0.041405640977076594), + FX16_CONST(0.9990777277526454), FX16_CONST(-0.042938256934940834), + FX16_CONST(0.9990106858540734), FX16_CONST(-0.04447077185493862), + FX16_CONST(0.9989412931868569), FX16_CONST(-0.04600318213091452), + FX16_CONST(0.9988695499142836), FX16_CONST(-0.047535484156959136), + FX16_CONST(0.9987954562051724), FX16_CONST(-0.04906767432741801), + FX16_CONST(0.9987190122338729), FX16_CONST(-0.05059974903689921), + FX16_CONST(0.9986402181802653), FX16_CONST(-0.05213170468028319), + FX16_CONST(0.9985590742297593), FX16_CONST(-0.053663537652730554), + FX16_CONST(0.9984755805732948), FX16_CONST(-0.05519524434968991), + FX16_CONST(0.9983897374073402), FX16_CONST(-0.05672682116690766), + FX16_CONST(0.9983015449338929), FX16_CONST(-0.05825826450043561), + FX16_CONST(0.9982110033604782), FX16_CONST(-0.05978957074663988), + FX16_CONST(0.9981181129001492), FX16_CONST(-0.06132073630220853), + FX16_CONST(0.9980228737714862), FX16_CONST(-0.06285175756416131), + FX16_CONST(0.997925286198596), FX16_CONST(-0.06438263092985728), + FX16_CONST(0.9978253504111116), FX16_CONST(-0.0659133527970038), + FX16_CONST(0.9977230666441916), FX16_CONST(-0.06744391956366398), + FX16_CONST(0.9976184351385196), FX16_CONST(-0.06897432762826661), + FX16_CONST(0.9975114561403035), FX16_CONST(-0.0705045733896139), + FX16_CONST(0.9974021299012753), FX16_CONST(-0.07203465324688929), + FX16_CONST(0.9972904566786902), FX16_CONST(-0.07356456359966733), + FX16_CONST(0.9971764367353262), FX16_CONST(-0.07509430084792117), + FX16_CONST(0.997060070339483), FX16_CONST(-0.0766238613920315), + FX16_CONST(0.9969413577649822), FX16_CONST(-0.07815324163279419), + FX16_CONST(0.9968202992911658), FX16_CONST(-0.07968243797143001), + FX16_CONST(0.9966968952028961), FX16_CONST(-0.08121144680959226), + FX16_CONST(0.9965711457905548), FX16_CONST(-0.08274026454937568), + FX16_CONST(0.9964430513500426), FX16_CONST(-0.084268887593324), + FX16_CONST(0.996312612182778), FX16_CONST(-0.08579731234443976), + FX16_CONST(0.9961798285956969), FX16_CONST(-0.0873255352061921), + FX16_CONST(0.996044700901252), FX16_CONST(-0.08885355258252456), + FX16_CONST(0.9959072294174117), FX16_CONST(-0.09038136087786489), + FX16_CONST(0.9957674144676598), FX16_CONST(-0.09190895649713257), + FX16_CONST(0.9956252563809943), FX16_CONST(-0.09343633584574779), + FX16_CONST(0.9954807554919269), FX16_CONST(-0.09496349532963895), + FX16_CONST(0.9953339121404823), FX16_CONST(-0.09649043135525248), + FX16_CONST(0.9951847266721969), FX16_CONST(-0.09801714032956065), + FX16_CONST(0.9950331994381186), FX16_CONST(-0.09954361866006932), + FX16_CONST(0.9948793307948056), FX16_CONST(-0.10106986275482775), + FX16_CONST(0.9947231211043257), FX16_CONST(-0.10259586902243616), + FX16_CONST(0.9945645707342554), FX16_CONST(-0.1041216338720546), + FX16_CONST(0.9944036800576791), FX16_CONST(-0.10564715371341057), + FX16_CONST(0.9942404494531879), FX16_CONST(-0.10717242495680876), + FX16_CONST(0.9940748793048795), FX16_CONST(-0.10869744401313856), + FX16_CONST(0.9939069700023561), FX16_CONST(-0.11022220729388306), + FX16_CONST(0.9937367219407246), FX16_CONST(-0.11174671121112655), + FX16_CONST(0.9935641355205953), FX16_CONST(-0.11327095217756424), + FX16_CONST(0.9933892111480807), FX16_CONST(-0.11479492660651013), + FX16_CONST(0.9932119492347945), FX16_CONST(-0.11631863091190475), + FX16_CONST(0.9930323501978514), FX16_CONST(-0.1178420615083249), + FX16_CONST(0.9928504144598651), FX16_CONST(-0.11936521481099123), + FX16_CONST(0.992666142448948), FX16_CONST(-0.1208880872357771), + FX16_CONST(0.99247953459871), FX16_CONST(-0.12241067519921615), + FX16_CONST(0.9922905913482574), FX16_CONST(-0.12393297511851208), + FX16_CONST(0.9920993131421918), FX16_CONST(-0.12545498341154607), + FX16_CONST(0.9919057004306093), FX16_CONST(-0.12697669649688587), + FX16_CONST(0.9917097536690995), FX16_CONST(-0.1284981107937931), + FX16_CONST(0.991511473318744), FX16_CONST(-0.13001922272223324), + FX16_CONST(0.9913108598461154), FX16_CONST(-0.13154002870288314), + FX16_CONST(0.9911079137232769), FX16_CONST(-0.13306052515713904), + FX16_CONST(0.99090263542778), FX16_CONST(-0.1345807085071261), + FX16_CONST(0.9906950254426646), FX16_CONST(-0.13610057517570606), + FX16_CONST(0.990485084256457), FX16_CONST(-0.13762012158648607), + FX16_CONST(0.9902728123631691), FX16_CONST(-0.13913934416382617), + FX16_CONST(0.9900582102622971), FX16_CONST(-0.14065823933284913), + FX16_CONST(0.9898412784588205), FX16_CONST(-0.1421768035194479), + FX16_CONST(0.9896220174632009), FX16_CONST(-0.14369503315029444), + FX16_CONST(0.9894004277913804), FX16_CONST(-0.1452129246528474), + FX16_CONST(0.989176509964781), FX16_CONST(-0.14673047445536164), + FX16_CONST(0.988950264510303), FX16_CONST(-0.1482476789868961), + FX16_CONST(0.9887216919603238), FX16_CONST(-0.1497645346773215), + FX16_CONST(0.9884907928526967), FX16_CONST(-0.15128103795733014), + FX16_CONST(0.9882575677307495), FX16_CONST(-0.1527971852584433), + FX16_CONST(0.9880220171432835), FX16_CONST(-0.15431297301302013), + FX16_CONST(0.9877841416445722), FX16_CONST(-0.1558283976542652), + FX16_CONST(0.9875439417943593), FX16_CONST(-0.15734345561623816), + FX16_CONST(0.9873014181578584), FX16_CONST(-0.15885814333386128), + FX16_CONST(0.987056571305751), FX16_CONST(-0.16037245724292826), + FX16_CONST(0.9868094018141855), FX16_CONST(-0.16188639378011177), + FX16_CONST(0.9865599102647755), FX16_CONST(-0.16339994938297311), + FX16_CONST(0.9863080972445987), FX16_CONST(-0.16491312048996995), + FX16_CONST(0.9860539633461954), FX16_CONST(-0.1664259035404641), + FX16_CONST(0.9857975091675675), FX16_CONST(-0.1679382949747311), + FX16_CONST(0.9855387353121761), FX16_CONST(-0.16945029123396782), + FX16_CONST(0.9852776423889412), FX16_CONST(-0.17096188876030124), + FX16_CONST(0.9850142310122398), FX16_CONST(-0.17247308399679592), + FX16_CONST(0.9847485018019042), FX16_CONST(-0.1739838733874637), + FX16_CONST(0.9844804553832209), FX16_CONST(-0.17549425337727126), + FX16_CONST(0.984210092386929), FX16_CONST(-0.17700422041214875), + FX16_CONST(0.9839374134492189), FX16_CONST(-0.17851377093899745), + FX16_CONST(0.9836624192117303), FX16_CONST(-0.1800229014056994), + FX16_CONST(0.9833851103215512), FX16_CONST(-0.18153160826112502), + FX16_CONST(0.9831054874312163), FX16_CONST(-0.18303988795514092), + FX16_CONST(0.9828235511987053), FX16_CONST(-0.18454773693861953), + FX16_CONST(0.9825393022874412), FX16_CONST(-0.1860551516634465), + FX16_CONST(0.9822527413662894), FX16_CONST(-0.1875621285825296), + FX16_CONST(0.9819638691095552), FX16_CONST(-0.18906866414980616), + FX16_CONST(0.9816726861969831), FX16_CONST(-0.19057475482025266), + FX16_CONST(0.9813791933137546), FX16_CONST(-0.19208039704989227), + FX16_CONST(0.9810833911504867), FX16_CONST(-0.1935855872958036), + FX16_CONST(0.9807852804032304), FX16_CONST(-0.1950903220161282), + FX16_CONST(0.9804848617734694), FX16_CONST(-0.1965945976700801), + FX16_CONST(0.9801821359681174), FX16_CONST(-0.19809841071795362), + FX16_CONST(0.9798771036995176), FX16_CONST(-0.19960175762113094), + FX16_CONST(0.9795697656854405), FX16_CONST(-0.20110463484209182), + FX16_CONST(0.9792601226490821), FX16_CONST(-0.20260703884442097), + FX16_CONST(0.9789481753190622), FX16_CONST(-0.2041089660928169), + FX16_CONST(0.9786339244294232), FX16_CONST(-0.2056104130530992), + FX16_CONST(0.9783173707196277), FX16_CONST(-0.20711137619221845), + FX16_CONST(0.9779985149345571), FX16_CONST(-0.20861185197826332), + FX16_CONST(0.9776773578245099), FX16_CONST(-0.2101118368804696), + FX16_CONST(0.9773539001452001), FX16_CONST(-0.2116113273692275), + FX16_CONST(0.9770281426577544), FX16_CONST(-0.21311031991609125), + FX16_CONST(0.9767000861287118), FX16_CONST(-0.2146088109937868), + FX16_CONST(0.9763697313300211), FX16_CONST(-0.2161067970762195), + FX16_CONST(0.9760370790390391), FX16_CONST(-0.21760427463848356), + FX16_CONST(0.9757021300385286), FX16_CONST(-0.21910124015686966), + FX16_CONST(0.975364885116657), FX16_CONST(-0.22059769010887353), + FX16_CONST(0.9750253450669941), FX16_CONST(-0.22209362097320348), + FX16_CONST(0.9746835106885107), FX16_CONST(-0.22358902922978988), + FX16_CONST(0.9743393827855759), FX16_CONST(-0.22508391135979267), + FX16_CONST(0.9739929621679558), FX16_CONST(-0.22657826384560997), + FX16_CONST(0.973644249650812), FX16_CONST(-0.22807208317088568), + FX16_CONST(0.9732932460546982), FX16_CONST(-0.22956536582051876), + FX16_CONST(0.9729399522055602), FX16_CONST(-0.23105810828067114), + FX16_CONST(0.9725843689347322), FX16_CONST(-0.23255030703877522), + FX16_CONST(0.9722264970789364), FX16_CONST(-0.23404195858354332), + FX16_CONST(0.9718663374802794), FX16_CONST(-0.23553305940497535), + FX16_CONST(0.9715038909862518), FX16_CONST(-0.23702360599436723), + FX16_CONST(0.9711391584497251), FX16_CONST(-0.2385135948443184), + FX16_CONST(0.9707721407289504), FX16_CONST(-0.2400030224487414), + FX16_CONST(0.9704028386875555), FX16_CONST(-0.24149188530286916), + FX16_CONST(0.970031253194544), FX16_CONST(-0.24298017990326387), + FX16_CONST(0.9696573851242924), FX16_CONST(-0.2444679027478241), + FX16_CONST(0.9692812353565485), FX16_CONST(-0.24595505033579448), + FX16_CONST(0.9689028047764289), FX16_CONST(-0.24744161916777332), + FX16_CONST(0.9685220942744174), FX16_CONST(-0.24892760574572012), + FX16_CONST(0.9681391047463624), FX16_CONST(-0.25041300657296517), + FX16_CONST(0.9677538370934755), FX16_CONST(-0.2518978181542168), + FX16_CONST(0.9673662922223285), FX16_CONST(-0.25338203699557016), + FX16_CONST(0.9669764710448521), FX16_CONST(-0.2548656596045145), + FX16_CONST(0.9665843744783331), FX16_CONST(-0.25634868248994275), + FX16_CONST(0.9661900034454126), FX16_CONST(-0.2578311021621588), + FX16_CONST(0.9657933588740837), FX16_CONST(-0.25931291513288623), + FX16_CONST(0.9653944416976894), FX16_CONST(-0.26079411791527546), + FX16_CONST(0.9649932528549204), FX16_CONST(-0.2622747070239135), + FX16_CONST(0.9645897932898128), FX16_CONST(-0.2637546789748314), + FX16_CONST(0.9641840639517458), FX16_CONST(-0.2652340302855118), + FX16_CONST(0.9637760657954398), FX16_CONST(-0.2667127574748983), + FX16_CONST(0.963365799780954), FX16_CONST(-0.268190857063403), + FX16_CONST(0.9629532668736839), FX16_CONST(-0.2696683255729151), + FX16_CONST(0.9625384680443592), FX16_CONST(-0.27114515952680796), + FX16_CONST(0.9621214042690416), FX16_CONST(-0.27262135544994887), + FX16_CONST(0.9617020765291225), FX16_CONST(-0.2740969098687062), + FX16_CONST(0.9612804858113206), FX16_CONST(-0.27557181931095814), + FX16_CONST(0.9608566331076797), FX16_CONST(-0.27704608030609984), + FX16_CONST(0.9604305194155659), FX16_CONST(-0.27851968938505295), + FX16_CONST(0.9600021457376658), FX16_CONST(-0.2799926430802733), + FX16_CONST(0.9595715130819845), FX16_CONST(-0.28146493792575794), + FX16_CONST(0.959138622461842), FX16_CONST(-0.2829365704570553), + FX16_CONST(0.9587034748958716), FX16_CONST(-0.2844075372112717), + FX16_CONST(0.9582660714080177), FX16_CONST(-0.2858778347270806), + FX16_CONST(0.9578264130275329), FX16_CONST(-0.28734745954472946), + FX16_CONST(0.957384500788976), FX16_CONST(-0.28881640820604937), + FX16_CONST(0.9569403357322089), FX16_CONST(-0.29028467725446216), + FX16_CONST(0.9564939189023951), FX16_CONST(-0.29175226323498926), + FX16_CONST(0.9560452513499965), FX16_CONST(-0.2932191626942586), + FX16_CONST(0.9555943341307711), FX16_CONST(-0.2946853721805142), + FX16_CONST(0.9551411683057707), FX16_CONST(-0.29615088824362384), + FX16_CONST(0.9546857549413383), FX16_CONST(-0.2976157074350862), + FX16_CONST(0.9542280951091057), FX16_CONST(-0.29907982630804036), + FX16_CONST(0.9537681898859903), FX16_CONST(-0.3005432414172733), + FX16_CONST(0.9533060403541939), FX16_CONST(-0.3020059493192281), + FX16_CONST(0.9528416476011987), FX16_CONST(-0.30346794657201126), + FX16_CONST(0.9523750127197659), FX16_CONST(-0.30492922973540226), + FX16_CONST(0.9519061368079323), FX16_CONST(-0.306389795370861), + FX16_CONST(0.9514350209690083), FX16_CONST(-0.30784964004153487), + FX16_CONST(0.9509616663115751), FX16_CONST(-0.3093087603122686), + FX16_CONST(0.9504860739494818), FX16_CONST(-0.31076715274961136), + FX16_CONST(0.950008245001843), FX16_CONST(-0.31222481392182494), + FX16_CONST(0.9495281805930367), FX16_CONST(-0.3136817403988914), + FX16_CONST(0.9490458818527006), FX16_CONST(-0.31513792875252233), + FX16_CONST(0.9485613499157304), FX16_CONST(-0.31659337555616573), + FX16_CONST(0.9480745859222762), FX16_CONST(-0.31804807738501495), + FX16_CONST(0.9475855910177412), FX16_CONST(-0.31950203081601564), + FX16_CONST(0.9470943663527772), FX16_CONST(-0.3209552324278751), + FX16_CONST(0.9466009130832835), FX16_CONST(-0.32240767880106985), + FX16_CONST(0.9461052323704034), FX16_CONST(-0.32385936651785285), + FX16_CONST(0.9456073253805214), FX16_CONST(-0.32531029216226287), + FX16_CONST(0.9451071932852606), FX16_CONST(-0.3267604523201316), + FX16_CONST(0.9446048372614803), FX16_CONST(-0.32820984357909255), + FX16_CONST(0.9441002584912727), FX16_CONST(-0.32965846252858744), + FX16_CONST(0.9435934581619604), FX16_CONST(-0.3311063057598763), + FX16_CONST(0.9430844374660935), FX16_CONST(-0.33255336986604406), + FX16_CONST(0.9425731976014469), FX16_CONST(-0.3339996514420094), + FX16_CONST(0.9420597397710174), FX16_CONST(-0.33544514708453155), + FX16_CONST(0.9415440651830208), FX16_CONST(-0.33688985339221994), + FX16_CONST(0.9410261750508893), FX16_CONST(-0.3383337669655412), + FX16_CONST(0.9405060705932683), FX16_CONST(-0.33977688440682685), + FX16_CONST(0.939983753034014), FX16_CONST(-0.3412192023202823), + FX16_CONST(0.9394592236021899), FX16_CONST(-0.34266071731199427), + FX16_CONST(0.9389324835320645), FX16_CONST(-0.34410142598993887), + FX16_CONST(0.9384035340631082), FX16_CONST(-0.34554132496398904), + FX16_CONST(0.9378723764399899), FX16_CONST(-0.34698041084592357), + FX16_CONST(0.937339011912575), FX16_CONST(-0.3484186802494344), + FX16_CONST(0.9368034417359216), FX16_CONST(-0.3498561297901349), + FX16_CONST(0.9362656671702783), FX16_CONST(-0.35129275608556704), + FX16_CONST(0.9357256894810804), FX16_CONST(-0.3527285557552106), + FX16_CONST(0.9351835099389476), FX16_CONST(-0.3541635254204904), + FX16_CONST(0.9346391298196808), FX16_CONST(-0.35559766170478385), + FX16_CONST(0.934092550404259), FX16_CONST(-0.3570309612334299), + FX16_CONST(0.9335437729788363), FX16_CONST(-0.35846342063373643), + FX16_CONST(0.9329927988347388), FX16_CONST(-0.35989503653498817), + FX16_CONST(0.9324396292684624), FX16_CONST(-0.36132580556845423), + FX16_CONST(0.9318842655816681), FX16_CONST(-0.3627557243673971), + FX16_CONST(0.9313267090811805), FX16_CONST(-0.3641847895670797), + FX16_CONST(0.9307669610789837), FX16_CONST(-0.36561299780477385), + FX16_CONST(0.9302050228922191), FX16_CONST(-0.3670403457197671), + FX16_CONST(0.9296408958431813), FX16_CONST(-0.3684668299533722), + FX16_CONST(0.9290745812593157), FX16_CONST(-0.36989244714893416), + FX16_CONST(0.9285060804732156), FX16_CONST(-0.3713171939518375), + FX16_CONST(0.9279353948226179), FX16_CONST(-0.3727410670095157), + FX16_CONST(0.9273625256504011), FX16_CONST(-0.3741640629714579), + FX16_CONST(0.9267874743045817), FX16_CONST(-0.3755861784892172), + FX16_CONST(0.9262102421383114), FX16_CONST(-0.3770074102164182), + FX16_CONST(0.9256308305098728), FX16_CONST(-0.37842775480876545), + FX16_CONST(0.9250492407826777), FX16_CONST(-0.379847208924051), + FX16_CONST(0.9244654743252626), FX16_CONST(-0.3812657692221624), + FX16_CONST(0.9238795325112867), FX16_CONST(-0.3826834323650897), + FX16_CONST(0.9232914167195277), FX16_CONST(-0.38410019501693493), + FX16_CONST(0.9227011283338785), FX16_CONST(-0.3855160538439189), + FX16_CONST(0.9221086687433452), FX16_CONST(-0.3869310055143886), + FX16_CONST(0.921514039342042), FX16_CONST(-0.3883450466988262), + FX16_CONST(0.9209172415291895), FX16_CONST(-0.3897581740698563), + FX16_CONST(0.9203182767091106), FX16_CONST(-0.39117038430225387), + FX16_CONST(0.9197171462912274), FX16_CONST(-0.3925816740729514), + FX16_CONST(0.9191138516900578), FX16_CONST(-0.393992040061048), + FX16_CONST(0.9185083943252123), FX16_CONST(-0.3954014789478162), + FX16_CONST(0.9179007756213905), FX16_CONST(-0.3968099874167103), + FX16_CONST(0.917290997008378), FX16_CONST(-0.3982175621533735), + FX16_CONST(0.9166790599210427), FX16_CONST(-0.3996241998456467), + FX16_CONST(0.9160649657993317), FX16_CONST(-0.4010298971835757), + FX16_CONST(0.9154487160882678), FX16_CONST(-0.40243465085941843), + FX16_CONST(0.9148303122379462), FX16_CONST(-0.403838457567654), + FX16_CONST(0.9142097557035307), FX16_CONST(-0.40524131400498975), + FX16_CONST(0.9135870479452508), FX16_CONST(-0.40664321687036903), + FX16_CONST(0.9129621904283982), FX16_CONST(-0.40804416286497863), + FX16_CONST(0.9123351846233229), FX16_CONST(-0.40944414869225754), + FX16_CONST(0.9117060320054299), FX16_CONST(-0.4108431710579038), + FX16_CONST(0.9110747340551764), FX16_CONST(-0.4122412266698829), + FX16_CONST(0.9104412922580672), FX16_CONST(-0.4136383122384345), + FX16_CONST(0.9098057081046523), FX16_CONST(-0.4150344244760815), + FX16_CONST(0.9091679830905225), FX16_CONST(-0.416429560097637), + FX16_CONST(0.9085281187163061), FX16_CONST(-0.41782371582021227), + FX16_CONST(0.9078861164876662), FX16_CONST(-0.41921688836322407), + FX16_CONST(0.9072419779152959), FX16_CONST(-0.4206090744484024), + FX16_CONST(0.9065957045149153), FX16_CONST(-0.4220002707997997), + FX16_CONST(0.9059472978072686), FX16_CONST(-0.42339047414379577), + FX16_CONST(0.9052967593181188), FX16_CONST(-0.4247796812091087), + FX16_CONST(0.9046440905782461), FX16_CONST(-0.42616788872679967), + FX16_CONST(0.9039892931234434), FX16_CONST(-0.42755509343028186), + FX16_CONST(0.9033323684945118), FX16_CONST(-0.42894129205532944), + FX16_CONST(0.9026733182372587), FX16_CONST(-0.4303264813400827), + FX16_CONST(0.9020121439024933), FX16_CONST(-0.4317106580250571), + FX16_CONST(0.901348847046022), FX16_CONST(-0.4330938188531519), + FX16_CONST(0.9006834292286469), FX16_CONST(-0.4344759605696558), + FX16_CONST(0.9000158920161603), FX16_CONST(-0.43585707992225536), + FX16_CONST(0.8993462369793416), FX16_CONST(-0.4372371736610441), + FX16_CONST(0.8986744656939539), FX16_CONST(-0.4386162385385274), + FX16_CONST(0.8980005797407399), FX16_CONST(-0.43999427130963314), + FX16_CONST(0.8973245807054183), FX16_CONST(-0.4413712687317167), + FX16_CONST(0.8966464701786803), FX16_CONST(-0.4427472275645698), + FX16_CONST(0.8959662497561852), FX16_CONST(-0.44412214457042914), + FX16_CONST(0.8952839210385575), FX16_CONST(-0.4454960165139818), + FX16_CONST(0.8945994856313828), FX16_CONST(-0.446868840162374), + FX16_CONST(0.8939129451452033), FX16_CONST(-0.4482406122852199), + FX16_CONST(0.8932243011955152), FX16_CONST(-0.4496113296546067), + FX16_CONST(0.8925335554027647), FX16_CONST(-0.4509809890451037), + FX16_CONST(0.8918407093923427), FX16_CONST(-0.4523495872337709), + FX16_CONST(0.8911457647945834), FX16_CONST(-0.4537171210001636), + FX16_CONST(0.890448723244758), FX16_CONST(-0.4550835871263437), + FX16_CONST(0.8897495863830728), FX16_CONST(-0.456448982396884), + FX16_CONST(0.8890483558546647), FX16_CONST(-0.457813303598877), + FX16_CONST(0.8883450333095964), FX16_CONST(-0.45917654752194403), + FX16_CONST(0.8876396204028539), FX16_CONST(-0.46053871095824006), + FX16_CONST(0.8869321187943423), FX16_CONST(-0.46189979070246256), + FX16_CONST(0.8862225301488806), FX16_CONST(-0.46325978355186015), + FX16_CONST(0.8855108561361998), FX16_CONST(-0.4646186863062379), + FX16_CONST(0.8847970984309379), FX16_CONST(-0.465976495767966), + FX16_CONST(0.884081258712635), FX16_CONST(-0.4673332087419884), + FX16_CONST(0.8833633386657317), FX16_CONST(-0.4686888220358277), + FX16_CONST(0.8826433399795628), FX16_CONST(-0.4700433324595955), + FX16_CONST(0.881921264348355), FX16_CONST(-0.4713967368259977), + FX16_CONST(0.8811971134712222), FX16_CONST(-0.47274903195034257), + FX16_CONST(0.8804708890521609), FX16_CONST(-0.4741002146505499), + FX16_CONST(0.8797425928000474), FX16_CONST(-0.4754502817471559), + FX16_CONST(0.8790122264286335), FX16_CONST(-0.4767992300633219), + FX16_CONST(0.8782797916565416), FX16_CONST(-0.478147056424843), + FX16_CONST(0.8775452902072612), FX16_CONST(-0.4794937576601531), + FX16_CONST(0.8768087238091458), FX16_CONST(-0.4808393306003338), + FX16_CONST(0.8760700941954066), FX16_CONST(-0.4821837720791227), + FX16_CONST(0.875329403104111), FX16_CONST(-0.48352707893291846), + FX16_CONST(0.8745866522781762), FX16_CONST(-0.484869248000791), + FX16_CONST(0.8738418434653668), FX16_CONST(-0.4862102761244864), + FX16_CONST(0.8730949784182902), FX16_CONST(-0.4875501601484357), + FX16_CONST(0.8723460588943915), FX16_CONST(-0.4888888969197631), + FX16_CONST(0.871595086655951), FX16_CONST(-0.4902264832882912), + FX16_CONST(0.870842063470079), FX16_CONST(-0.49156291610654973), + FX16_CONST(0.8700869911087115), FX16_CONST(-0.492898192229784), + FX16_CONST(0.8693298713486067), FX16_CONST(-0.49423230851595984), + FX16_CONST(0.868570705971341), FX16_CONST(-0.4955652618257724), + FX16_CONST(0.8678094967633032), FX16_CONST(-0.4968970490226545), + FX16_CONST(0.8670462455156928), FX16_CONST(-0.4982276669727816), + FX16_CONST(0.8662809540245131), FX16_CONST(-0.4995571125450818), + FX16_CONST(0.8655136240905691), FX16_CONST(-0.5008853826112408), + FX16_CONST(0.8647442575194625), FX16_CONST(-0.5022124740457106), + FX16_CONST(0.8639728561215868), FX16_CONST(-0.5035383837257175), + FX16_CONST(0.8631994217121242), FX16_CONST(-0.5048631085312676), + FX16_CONST(0.8624239561110406), FX16_CONST(-0.5061866453451551), + FX16_CONST(0.8616464611430814), FX16_CONST(-0.5075089910529708), + FX16_CONST(0.8608669386377672), FX16_CONST(-0.5088301425431071), + FX16_CONST(0.8600853904293903), FX16_CONST(-0.5101500967067666), + FX16_CONST(0.8593018183570085), FX16_CONST(-0.5114688504379704), + FX16_CONST(0.858516224264443), FX16_CONST(-0.5127864006335627), + FX16_CONST(0.8577286100002721), FX16_CONST(-0.5141027441932216), + FX16_CONST(0.8569389774178287), FX16_CONST(-0.515417878019463), + FX16_CONST(0.8561473283751946), FX16_CONST(-0.5167317990176497), + FX16_CONST(0.855353664735196), FX16_CONST(-0.5180445040959992), + FX16_CONST(0.8545579883654005), FX16_CONST(-0.5193559901655896), + FX16_CONST(0.8537603011381115), FX16_CONST(-0.5206662541403669), + FX16_CONST(0.8529606049303637), FX16_CONST(-0.5219752929371543), + FX16_CONST(0.8521589016239197), FX16_CONST(-0.5232831034756565), + FX16_CONST(0.8513551931052652), FX16_CONST(-0.5245896826784687), + FX16_CONST(0.8505494812656035), FX16_CONST(-0.5258950274710846), + FX16_CONST(0.8497417680008527), FX16_CONST(-0.5271991347819011), + FX16_CONST(0.8489320552116397), FX16_CONST(-0.5285020015422284), + FX16_CONST(0.8481203448032972), FX16_CONST(-0.5298036246862947), + FX16_CONST(0.8473066386858585), FX16_CONST(-0.5311040011512548), + FX16_CONST(0.8464909387740521), FX16_CONST(-0.5324031278771979), + FX16_CONST(0.8456732469872991), FX16_CONST(-0.533701001807153), + FX16_CONST(0.8448535652497072), FX16_CONST(-0.534997619887097), + FX16_CONST(0.8440318954900664), FX16_CONST(-0.5362929790659631), + FX16_CONST(0.8432082396418453), FX16_CONST(-0.5375870762956456), + FX16_CONST(0.842382599643186), FX16_CONST(-0.5388799085310083), + FX16_CONST(0.8415549774368984), FX16_CONST(-0.5401714727298929), + FX16_CONST(0.8407253749704582), FX16_CONST(-0.5414617658531232), + FX16_CONST(0.8398937941959995), FX16_CONST(-0.5427507848645158), + FX16_CONST(0.8390602370703127), FX16_CONST(-0.5440385267308839), + FX16_CONST(0.8382247055548382), FX16_CONST(-0.5453249884220462), + FX16_CONST(0.8373872016156619), FX16_CONST(-0.5466101669108347), + FX16_CONST(0.836547727223512), FX16_CONST(-0.5478940591731002), + FX16_CONST(0.8357062843537527), FX16_CONST(-0.5491766621877195), + FX16_CONST(0.8348628749863801), FX16_CONST(-0.5504579729366047), + FX16_CONST(0.834017501106018), FX16_CONST(-0.5517379884047074), + FX16_CONST(0.8331701647019133), FX16_CONST(-0.5530167055800274), + FX16_CONST(0.8323208677679297), FX16_CONST(-0.5542941214536201), + FX16_CONST(0.8314696123025453), FX16_CONST(-0.555570233019602), + FX16_CONST(0.8306164003088463), FX16_CONST(-0.55684503727516), + FX16_CONST(0.829761233794523), FX16_CONST(-0.5581185312205561), + FX16_CONST(0.8289041147718651), FX16_CONST(-0.5593907118591358), + FX16_CONST(0.8280450452577558), FX16_CONST(-0.5606615761973359), + FX16_CONST(0.827184027273669), FX16_CONST(-0.5619311212446895), + FX16_CONST(0.8263210628456636), FX16_CONST(-0.5631993440138339), + FX16_CONST(0.8254561540043776), FX16_CONST(-0.5644662415205194), + FX16_CONST(0.8245893027850252), FX16_CONST(-0.5657318107836132), + FX16_CONST(0.8237205112273915), FX16_CONST(-0.5669960488251085), + FX16_CONST(0.8228497813758263), FX16_CONST(-0.5682589526701315), + FX16_CONST(0.8219771152792414), FX16_CONST(-0.5695205193469473), + FX16_CONST(0.8211025149911048), FX16_CONST(-0.5707807458869671), + FX16_CONST(0.8202259825694347), FX16_CONST(-0.572039629324757), + FX16_CONST(0.8193475200767971), FX16_CONST(-0.573297166698042), + FX16_CONST(0.8184671295802988), FX16_CONST(-0.5745533550477158), + FX16_CONST(0.8175848131515837), FX16_CONST(-0.5758081914178453), + FX16_CONST(0.816700572866828), FX16_CONST(-0.5770616728556793), + FX16_CONST(0.8158144108067338), FX16_CONST(-0.5783137964116555), + FX16_CONST(0.8149263290565265), FX16_CONST(-0.5795645591394059), + FX16_CONST(0.8140363297059485), FX16_CONST(-0.5808139580957644), + FX16_CONST(0.8131444148492536), FX16_CONST(-0.5820619903407755), + FX16_CONST(0.8122505865852039), FX16_CONST(-0.5833086529376984), + FX16_CONST(0.8113548470170638), FX16_CONST(-0.5845539429530152), + FX16_CONST(0.8104571982525948), FX16_CONST(-0.5857978574564389), + FX16_CONST(0.8095576424040515), FX16_CONST(-0.5870403935209177), + FX16_CONST(0.8086561815881751), FX16_CONST(-0.5882815482226452), + FX16_CONST(0.8077528179261904), FX16_CONST(-0.5895213186410639), + FX16_CONST(0.8068475535437994), FX16_CONST(-0.590759701858874), + FX16_CONST(0.8059403905711764), FX16_CONST(-0.5919966949620409), + FX16_CONST(0.8050313311429635), FX16_CONST(-0.5932322950397999), + FX16_CONST(0.8041203773982658), FX16_CONST(-0.5944664991846643), + FX16_CONST(0.8032075314806449), FX16_CONST(-0.5956993044924334), + FX16_CONST(0.8022927955381156), FX16_CONST(-0.5969307080621966), + FX16_CONST(0.8013761717231402), FX16_CONST(-0.5981607069963422), + FX16_CONST(0.8004576621926228), FX16_CONST(-0.5993892984005645), + FX16_CONST(0.7995372691079052), FX16_CONST(-0.6006164793838688), + FX16_CONST(0.7986149946347609), FX16_CONST(-0.60184224705858), + FX16_CONST(0.797690840943391), FX16_CONST(-0.6030665985403483), + FX16_CONST(0.7967648102084189), FX16_CONST(-0.6042895309481559), + FX16_CONST(0.7958369046088836), FX16_CONST(-0.6055110414043254), + FX16_CONST(0.7949071263282369), FX16_CONST(-0.6067311270345246), + FX16_CONST(0.7939754775543373), FX16_CONST(-0.6079497849677735), + FX16_CONST(0.7930419604794436), FX16_CONST(-0.6091670123364532), + FX16_CONST(0.7921065773002123), FX16_CONST(-0.6103828062763096), + FX16_CONST(0.7911693302176903), FX16_CONST(-0.6115971639264618), + FX16_CONST(0.79023022143731), FX16_CONST(-0.6128100824294097), + FX16_CONST(0.7892892531688859), FX16_CONST(-0.6140215589310382), + FX16_CONST(0.7883464276266063), FX16_CONST(-0.6152315905806267), + FX16_CONST(0.7874017470290313), FX16_CONST(-0.6164401745308536), + FX16_CONST(0.7864552135990859), FX16_CONST(-0.6176473079378038), + FX16_CONST(0.785506829564054), FX16_CONST(-0.6188529879609762), + FX16_CONST(0.7845565971555751), FX16_CONST(-0.6200572117632892), + FX16_CONST(0.7836045186096383), FX16_CONST(-0.6212599765110874), + FX16_CONST(0.7826505961665757), FX16_CONST(-0.62246127937415), + FX16_CONST(0.7816948320710593), FX16_CONST(-0.6236611175256946), + FX16_CONST(0.7807372285720946), FX16_CONST(-0.6248594881423862), + FX16_CONST(0.7797777879230144), FX16_CONST(-0.6260563884043435), + FX16_CONST(0.7788165123814761), FX16_CONST(-0.6272518154951439), + FX16_CONST(0.7778534042094531), FX16_CONST(-0.6284457666018326), + FX16_CONST(0.7768884656732324), FX16_CONST(-0.6296382389149271), + FX16_CONST(0.7759216990434078), FX16_CONST(-0.6308292296284244), + FX16_CONST(0.7749531065948739), FX16_CONST(-0.632018735939809), + FX16_CONST(0.7739826906068228), FX16_CONST(-0.6332067550500573), + FX16_CONST(0.7730104533627371), FX16_CONST(-0.6343932841636454), + FX16_CONST(0.7720363971503845), FX16_CONST(-0.6355783204885561), + FX16_CONST(0.7710605242618137), FX16_CONST(-0.6367618612362843), + FX16_CONST(0.7700828369933481), FX16_CONST(-0.6379439036218439), + FX16_CONST(0.7691033376455796), FX16_CONST(-0.6391244448637757), + FX16_CONST(0.7681220285233655), FX16_CONST(-0.6403034821841515), + FX16_CONST(0.7671389119358204), FX16_CONST(-0.641481012808583), + FX16_CONST(0.7661539901963128), FX16_CONST(-0.6426570339662269), + FX16_CONST(0.7651672656224591), FX16_CONST(-0.6438315428897913), + FX16_CONST(0.7641787405361168), FX16_CONST(-0.6450045368155439), + FX16_CONST(0.7631884172633812), FX16_CONST(-0.6461760129833164), + FX16_CONST(0.762196298134579), FX16_CONST(-0.647345968636512), + FX16_CONST(0.7612023854842619), FX16_CONST(-0.6485144010221124), + FX16_CONST(0.7602066816512023), FX16_CONST(-0.6496813073906833), + FX16_CONST(0.7592091889783881), FX16_CONST(-0.6508466849963808), + FX16_CONST(0.7582099098130153), FX16_CONST(-0.6520105310969595), + FX16_CONST(0.7572088465064847), FX16_CONST(-0.6531728429537765), + FX16_CONST(0.7562060014143945), FX16_CONST(-0.6543336178318004), + FX16_CONST(0.7552013768965364), FX16_CONST(-0.6554928529996155), + FX16_CONST(0.7541949753168893), FX16_CONST(-0.6566505457294288), + FX16_CONST(0.7531867990436125), FX16_CONST(-0.6578066932970785), + FX16_CONST(0.7521768504490427), FX16_CONST(-0.6589612929820374), + FX16_CONST(0.7511651319096866), FX16_CONST(-0.6601143420674204), + FX16_CONST(0.7501516458062151), FX16_CONST(-0.6612658378399922), + FX16_CONST(0.7491363945234593), FX16_CONST(-0.6624157775901719), + FX16_CONST(0.7481193804504037), FX16_CONST(-0.6635641586120397), + FX16_CONST(0.7471006059801801), FX16_CONST(-0.6647109782033449), + FX16_CONST(0.746080073510064), FX16_CONST(-0.6658562336655095), + FX16_CONST(0.7450577854414661), FX16_CONST(-0.6669999223036374), + FX16_CONST(0.7440337441799292), FX16_CONST(-0.6681420414265186), + FX16_CONST(0.7430079521351218), FX16_CONST(-0.6692825883466359), + FX16_CONST(0.7419804117208311), FX16_CONST(-0.6704215603801731), + FX16_CONST(0.740951125354959), FX16_CONST(-0.6715589548470184), + FX16_CONST(0.7399200954595163), FX16_CONST(-0.6726947690707727), + FX16_CONST(0.7388873244606152), FX16_CONST(-0.673829000378756), + FX16_CONST(0.7378528147884659), FX16_CONST(-0.674961646102012), + FX16_CONST(0.73681656887737), FX16_CONST(-0.6760927035753158), + FX16_CONST(0.7357785891657136), FX16_CONST(-0.6772221701371804), + FX16_CONST(0.7347388780959637), FX16_CONST(-0.6783500431298612), + FX16_CONST(0.7336974381146604), FX16_CONST(-0.679476319899365), + FX16_CONST(0.7326542716724128), FX16_CONST(-0.680600997795453), + FX16_CONST(0.7316093812238927), FX16_CONST(-0.6817240741716496), + FX16_CONST(0.7305627692278276), FX16_CONST(-0.682845546385248), + FX16_CONST(0.729514438146997), FX16_CONST(-0.6839654117973155), + FX16_CONST(0.7284643904482253), FX16_CONST(-0.6850836677727002), + FX16_CONST(0.7274126286023758), FX16_CONST(-0.6862003116800386), + FX16_CONST(0.7263591550843459), FX16_CONST(-0.6873153408917592), + FX16_CONST(0.7253039723730609), FX16_CONST(-0.6884287527840903), + FX16_CONST(0.7242470829514669), FX16_CONST(-0.6895405447370669), + FX16_CONST(0.7231884893065276), FX16_CONST(-0.6906507141345344), + FX16_CONST(0.7221281939292155), FX16_CONST(-0.6917592583641576), + FX16_CONST(0.7210661993145081), FX16_CONST(-0.6928661748174247), + FX16_CONST(0.7200025079613818), FX16_CONST(-0.6939714608896538), + FX16_CONST(0.7189371223728045), FX16_CONST(-0.6950751139800008), + FX16_CONST(0.7178700450557317), FX16_CONST(-0.696177131491463), + FX16_CONST(0.7168012785210996), FX16_CONST(-0.6972775108308864), + FX16_CONST(0.7157308252838187), FX16_CONST(-0.6983762494089728), + FX16_CONST(0.714658687862769), FX16_CONST(-0.6994733446402839), + FX16_CONST(0.7135848687807936), FX16_CONST(-0.7005687939432482), + FX16_CONST(0.7125093705646923), FX16_CONST(-0.7016625947401685), + FX16_CONST(0.7114321957452167), FX16_CONST(-0.7027547444572251), + FX16_CONST(0.7103533468570624), FX16_CONST(-0.7038452405244848), + FX16_CONST(0.7092728264388656), FX16_CONST(-0.7049340803759049), + FX16_CONST(0.7081906370331955), FX16_CONST(-0.7060212614493396), + FX16_CONST(0.7071067811865476), FX16_CONST(-0.7071067811865475), + FX16_CONST(0.7060212614493397), FX16_CONST(-0.7081906370331954), + FX16_CONST(0.7049340803759051), FX16_CONST(-0.7092728264388655), + FX16_CONST(0.703845240524485), FX16_CONST(-0.7103533468570623), + FX16_CONST(0.7027547444572252), FX16_CONST(-0.7114321957452165), + FX16_CONST(0.7016625947401687), FX16_CONST(-0.7125093705646922), + FX16_CONST(0.7005687939432483), FX16_CONST(-0.7135848687807935), + FX16_CONST(0.699473344640284), FX16_CONST(-0.7146586878627689), + FX16_CONST(0.6983762494089729), FX16_CONST(-0.7157308252838186), + FX16_CONST(0.6972775108308865), FX16_CONST(-0.7168012785210995), + FX16_CONST(0.6961771314914631), FX16_CONST(-0.7178700450557316), + FX16_CONST(0.6950751139800009), FX16_CONST(-0.7189371223728044), + FX16_CONST(0.6939714608896539), FX16_CONST(-0.7200025079613817), + FX16_CONST(0.6928661748174249), FX16_CONST(-0.7210661993145079), + FX16_CONST(0.6917592583641579), FX16_CONST(-0.7221281939292152), + FX16_CONST(0.6906507141345346), FX16_CONST(-0.7231884893065275), + FX16_CONST(0.689540544737067), FX16_CONST(-0.7242470829514668), + FX16_CONST(0.6884287527840904), FX16_CONST(-0.7253039723730608), + FX16_CONST(0.6873153408917593), FX16_CONST(-0.7263591550843458), + FX16_CONST(0.6862003116800387), FX16_CONST(-0.7274126286023757), + FX16_CONST(0.6850836677727004), FX16_CONST(-0.7284643904482252), + FX16_CONST(0.6839654117973156), FX16_CONST(-0.7295144381469968), + FX16_CONST(0.6828455463852481), FX16_CONST(-0.7305627692278275), + FX16_CONST(0.6817240741716497), FX16_CONST(-0.7316093812238926), + FX16_CONST(0.6806009977954532), FX16_CONST(-0.7326542716724127), + FX16_CONST(0.6794763198993651), FX16_CONST(-0.7336974381146603), + FX16_CONST(0.6783500431298614), FX16_CONST(-0.7347388780959635), + FX16_CONST(0.6772221701371806), FX16_CONST(-0.7357785891657134), + FX16_CONST(0.6760927035753159), FX16_CONST(-0.7368165688773698), + FX16_CONST(0.6749616461020123), FX16_CONST(-0.7378528147884658), + FX16_CONST(0.6738290003787561), FX16_CONST(-0.7388873244606151), + FX16_CONST(0.6726947690707729), FX16_CONST(-0.7399200954595162), + FX16_CONST(0.6715589548470186), FX16_CONST(-0.7409511253549589), + FX16_CONST(0.6704215603801732), FX16_CONST(-0.741980411720831), + FX16_CONST(0.669282588346636), FX16_CONST(-0.7430079521351217), + FX16_CONST(0.6681420414265187), FX16_CONST(-0.7440337441799291), + FX16_CONST(0.6669999223036376), FX16_CONST(-0.745057785441466), + FX16_CONST(0.6658562336655096), FX16_CONST(-0.7460800735100638), + FX16_CONST(0.664710978203345), FX16_CONST(-0.74710060598018), + FX16_CONST(0.6635641586120398), FX16_CONST(-0.7481193804504036), + FX16_CONST(0.662415777590172), FX16_CONST(-0.7491363945234591), + FX16_CONST(0.6612658378399923), FX16_CONST(-0.750151645806215), + FX16_CONST(0.6601143420674205), FX16_CONST(-0.7511651319096864), + FX16_CONST(0.6589612929820375), FX16_CONST(-0.7521768504490425), + FX16_CONST(0.6578066932970787), FX16_CONST(-0.7531867990436124), + FX16_CONST(0.656650545729429), FX16_CONST(-0.7541949753168892), + FX16_CONST(0.6554928529996156), FX16_CONST(-0.7552013768965364), + FX16_CONST(0.6543336178318006), FX16_CONST(-0.7562060014143945), + FX16_CONST(0.6531728429537766), FX16_CONST(-0.7572088465064847), + FX16_CONST(0.6520105310969597), FX16_CONST(-0.7582099098130152), + FX16_CONST(0.650846684996381), FX16_CONST(-0.759209188978388), + FX16_CONST(0.6496813073906834), FX16_CONST(-0.7602066816512022), + FX16_CONST(0.6485144010221126), FX16_CONST(-0.7612023854842617), + FX16_CONST(0.6473459686365121), FX16_CONST(-0.7621962981345789), + FX16_CONST(0.6461760129833166), FX16_CONST(-0.7631884172633812), + FX16_CONST(0.645004536815544), FX16_CONST(-0.7641787405361167), + FX16_CONST(0.6438315428897914), FX16_CONST(-0.765167265622459), + FX16_CONST(0.6426570339662271), FX16_CONST(-0.7661539901963128), + FX16_CONST(0.6414810128085832), FX16_CONST(-0.7671389119358204), + FX16_CONST(0.6403034821841516), FX16_CONST(-0.7681220285233654), + FX16_CONST(0.6391244448637758), FX16_CONST(-0.7691033376455795), + FX16_CONST(0.637943903621844), FX16_CONST(-0.7700828369933479), + FX16_CONST(0.6367618612362844), FX16_CONST(-0.7710605242618136), + FX16_CONST(0.6355783204885562), FX16_CONST(-0.7720363971503844), + FX16_CONST(0.6343932841636455), FX16_CONST(-0.773010453362737), + FX16_CONST(0.6332067550500574), FX16_CONST(-0.7739826906068227), + FX16_CONST(0.6320187359398091), FX16_CONST(-0.7749531065948738), + FX16_CONST(0.6308292296284245), FX16_CONST(-0.7759216990434077), + FX16_CONST(0.6296382389149272), FX16_CONST(-0.7768884656732323), + FX16_CONST(0.6284457666018327), FX16_CONST(-0.777853404209453), + FX16_CONST(0.6272518154951441), FX16_CONST(-0.778816512381476), + FX16_CONST(0.6260563884043436), FX16_CONST(-0.7797777879230143), + FX16_CONST(0.6248594881423863), FX16_CONST(-0.7807372285720945), + FX16_CONST(0.6236611175256949), FX16_CONST(-0.7816948320710593), + FX16_CONST(0.6224612793741501), FX16_CONST(-0.7826505961665756), + FX16_CONST(0.6212599765110876), FX16_CONST(-0.7836045186096382), + FX16_CONST(0.6200572117632894), FX16_CONST(-0.784556597155575), + FX16_CONST(0.6188529879609764), FX16_CONST(-0.7855068295640539), + FX16_CONST(0.6176473079378039), FX16_CONST(-0.7864552135990858), + FX16_CONST(0.6164401745308538), FX16_CONST(-0.7874017470290312), + FX16_CONST(0.6152315905806269), FX16_CONST(-0.7883464276266062), + FX16_CONST(0.6140215589310384), FX16_CONST(-0.7892892531688858), + FX16_CONST(0.6128100824294098), FX16_CONST(-0.7902302214373099), + FX16_CONST(0.6115971639264619), FX16_CONST(-0.7911693302176902), + FX16_CONST(0.6103828062763097), FX16_CONST(-0.7921065773002122), + FX16_CONST(0.6091670123364533), FX16_CONST(-0.7930419604794436), + FX16_CONST(0.6079497849677736), FX16_CONST(-0.7939754775543372), + FX16_CONST(0.6067311270345247), FX16_CONST(-0.7949071263282368), + FX16_CONST(0.6055110414043257), FX16_CONST(-0.7958369046088835), + FX16_CONST(0.604289530948156), FX16_CONST(-0.7967648102084187), + FX16_CONST(0.6030665985403484), FX16_CONST(-0.7976908409433909), + FX16_CONST(0.6018422470585801), FX16_CONST(-0.7986149946347608), + FX16_CONST(0.6006164793838689), FX16_CONST(-0.7995372691079051), + FX16_CONST(0.5993892984005647), FX16_CONST(-0.8004576621926226), + FX16_CONST(0.5981607069963424), FX16_CONST(-0.8013761717231402), + FX16_CONST(0.5969307080621967), FX16_CONST(-0.8022927955381155), + FX16_CONST(0.5956993044924335), FX16_CONST(-0.8032075314806448), + FX16_CONST(0.5944664991846644), FX16_CONST(-0.8041203773982657), + FX16_CONST(0.5932322950398), FX16_CONST(-0.8050313311429634), + FX16_CONST(0.591996694962041), FX16_CONST(-0.8059403905711763), + FX16_CONST(0.5907597018588742), FX16_CONST(-0.8068475535437993), + FX16_CONST(0.589521318641064), FX16_CONST(-0.8077528179261902), + FX16_CONST(0.5882815482226453), FX16_CONST(-0.808656181588175), + FX16_CONST(0.5870403935209179), FX16_CONST(-0.8095576424040514), + FX16_CONST(0.585797857456439), FX16_CONST(-0.8104571982525947), + FX16_CONST(0.5845539429530153), FX16_CONST(-0.8113548470170637), + FX16_CONST(0.5833086529376985), FX16_CONST(-0.8122505865852038), + FX16_CONST(0.5820619903407757), FX16_CONST(-0.8131444148492535), + FX16_CONST(0.5808139580957645), FX16_CONST(-0.8140363297059484), + FX16_CONST(0.579564559139406), FX16_CONST(-0.8149263290565264), + FX16_CONST(0.5783137964116557), FX16_CONST(-0.8158144108067338), + FX16_CONST(0.5770616728556794), FX16_CONST(-0.8167005728668278), + FX16_CONST(0.5758081914178454), FX16_CONST(-0.8175848131515836), + FX16_CONST(0.5745533550477159), FX16_CONST(-0.8184671295802987), + FX16_CONST(0.5732971666980421), FX16_CONST(-0.819347520076797), + FX16_CONST(0.5720396293247573), FX16_CONST(-0.8202259825694346), + FX16_CONST(0.5707807458869673), FX16_CONST(-0.8211025149911046), + FX16_CONST(0.5695205193469475), FX16_CONST(-0.8219771152792413), + FX16_CONST(0.5682589526701317), FX16_CONST(-0.8228497813758262), + FX16_CONST(0.5669960488251087), FX16_CONST(-0.8237205112273914), + FX16_CONST(0.5657318107836135), FX16_CONST(-0.8245893027850251), + FX16_CONST(0.5644662415205195), FX16_CONST(-0.8254561540043774), + FX16_CONST(0.5631993440138341), FX16_CONST(-0.8263210628456635), + FX16_CONST(0.5619311212446896), FX16_CONST(-0.827184027273669), + FX16_CONST(0.5606615761973361), FX16_CONST(-0.8280450452577557), + FX16_CONST(0.559390711859136), FX16_CONST(-0.828904114771865), + FX16_CONST(0.5581185312205563), FX16_CONST(-0.8297612337945229), + FX16_CONST(0.5568450372751601), FX16_CONST(-0.8306164003088462), + FX16_CONST(0.5555702330196022), FX16_CONST(-0.8314696123025453), + FX16_CONST(0.5542941214536202), FX16_CONST(-0.8323208677679296), + FX16_CONST(0.5530167055800275), FX16_CONST(-0.8331701647019132), + FX16_CONST(0.5517379884047077), FX16_CONST(-0.8340175011060179), + FX16_CONST(0.5504579729366049), FX16_CONST(-0.83486287498638), + FX16_CONST(0.5491766621877197), FX16_CONST(-0.8357062843537526), + FX16_CONST(0.5478940591731004), FX16_CONST(-0.8365477272235119), + FX16_CONST(0.546610166910835), FX16_CONST(-0.8373872016156618), + FX16_CONST(0.5453249884220464), FX16_CONST(-0.8382247055548381), + FX16_CONST(0.544038526730884), FX16_CONST(-0.8390602370703126), + FX16_CONST(0.5427507848645159), FX16_CONST(-0.8398937941959995), + FX16_CONST(0.5414617658531233), FX16_CONST(-0.8407253749704581), + FX16_CONST(0.540171472729893), FX16_CONST(-0.8415549774368983), + FX16_CONST(0.5388799085310084), FX16_CONST(-0.8423825996431858), + FX16_CONST(0.5375870762956457), FX16_CONST(-0.8432082396418453), + FX16_CONST(0.5362929790659633), FX16_CONST(-0.8440318954900664), + FX16_CONST(0.5349976198870972), FX16_CONST(-0.8448535652497071), + FX16_CONST(0.5337010018071532), FX16_CONST(-0.845673246987299), + FX16_CONST(0.532403127877198), FX16_CONST(-0.846490938774052), + FX16_CONST(0.5311040011512549), FX16_CONST(-0.8473066386858584), + FX16_CONST(0.5298036246862948), FX16_CONST(-0.8481203448032971), + FX16_CONST(0.5285020015422285), FX16_CONST(-0.8489320552116396), + FX16_CONST(0.5271991347819013), FX16_CONST(-0.8497417680008525), + FX16_CONST(0.5258950274710849), FX16_CONST(-0.8505494812656034), + FX16_CONST(0.524589682678469), FX16_CONST(-0.8513551931052652), + FX16_CONST(0.5232831034756567), FX16_CONST(-0.8521589016239196), + FX16_CONST(0.5219752929371544), FX16_CONST(-0.8529606049303636), + FX16_CONST(0.5206662541403672), FX16_CONST(-0.8537603011381114), + FX16_CONST(0.5193559901655898), FX16_CONST(-0.8545579883654004), + FX16_CONST(0.5180445040959994), FX16_CONST(-0.8553536647351959), + FX16_CONST(0.5167317990176498), FX16_CONST(-0.8561473283751945), + FX16_CONST(0.5154178780194631), FX16_CONST(-0.8569389774178287), + FX16_CONST(0.5141027441932218), FX16_CONST(-0.857728610000272), + FX16_CONST(0.512786400633563), FX16_CONST(-0.8585162242644429), + FX16_CONST(0.5114688504379705), FX16_CONST(-0.8593018183570084), + FX16_CONST(0.5101500967067668), FX16_CONST(-0.8600853904293901), + FX16_CONST(0.5088301425431073), FX16_CONST(-0.8608669386377672), + FX16_CONST(0.507508991052971), FX16_CONST(-0.8616464611430813), + FX16_CONST(0.5061866453451552), FX16_CONST(-0.8624239561110405), + FX16_CONST(0.5048631085312677), FX16_CONST(-0.863199421712124), + FX16_CONST(0.5035383837257176), FX16_CONST(-0.8639728561215867), + FX16_CONST(0.5022124740457107), FX16_CONST(-0.8647442575194624), + FX16_CONST(0.5008853826112409), FX16_CONST(-0.865513624090569), + FX16_CONST(0.4995571125450819), FX16_CONST(-0.866280954024513), + FX16_CONST(0.49822766697278176), FX16_CONST(-0.8670462455156926), + FX16_CONST(0.4968970490226547), FX16_CONST(-0.8678094967633032), + FX16_CONST(0.49556526182577254), FX16_CONST(-0.8685707059713409), + FX16_CONST(0.49423230851596), FX16_CONST(-0.8693298713486066), + FX16_CONST(0.49289819222978415), FX16_CONST(-0.8700869911087113), + FX16_CONST(0.4915629161065499), FX16_CONST(-0.8708420634700789), + FX16_CONST(0.4902264832882914), FX16_CONST(-0.8715950866559509), + FX16_CONST(0.4888888969197632), FX16_CONST(-0.8723460588943914), + FX16_CONST(0.4875501601484359), FX16_CONST(-0.8730949784182901), + FX16_CONST(0.4862102761244866), FX16_CONST(-0.8738418434653668), + FX16_CONST(0.4848692480007911), FX16_CONST(-0.8745866522781761), + FX16_CONST(0.48352707893291863), FX16_CONST(-0.8753294031041109), + FX16_CONST(0.4821837720791229), FX16_CONST(-0.8760700941954065), + FX16_CONST(0.48083933060033396), FX16_CONST(-0.8768087238091457), + FX16_CONST(0.4794937576601533), FX16_CONST(-0.8775452902072611), + FX16_CONST(0.4781470564248432), FX16_CONST(-0.8782797916565415), + FX16_CONST(0.4767992300633221), FX16_CONST(-0.8790122264286335), + FX16_CONST(0.4754502817471561), FX16_CONST(-0.8797425928000473), + FX16_CONST(0.4741002146505501), FX16_CONST(-0.8804708890521608), + FX16_CONST(0.47274903195034274), FX16_CONST(-0.8811971134712221), + FX16_CONST(0.4713967368259978), FX16_CONST(-0.8819212643483549), + FX16_CONST(0.4700433324595957), FX16_CONST(-0.8826433399795628), + FX16_CONST(0.46868882203582785), FX16_CONST(-0.8833633386657317), + FX16_CONST(0.4673332087419886), FX16_CONST(-0.8840812587126349), + FX16_CONST(0.4659764957679662), FX16_CONST(-0.8847970984309378), + FX16_CONST(0.4646186863062381), FX16_CONST(-0.8855108561361998), + FX16_CONST(0.4632597835518603), FX16_CONST(-0.8862225301488805), + FX16_CONST(0.46189979070246273), FX16_CONST(-0.8869321187943422), + FX16_CONST(0.4605387109582402), FX16_CONST(-0.8876396204028538), + FX16_CONST(0.4591765475219442), FX16_CONST(-0.8883450333095962), + FX16_CONST(0.4578133035988772), FX16_CONST(-0.8890483558546646), + FX16_CONST(0.45644898239688414), FX16_CONST(-0.8897495863830727), + FX16_CONST(0.4550835871263439), FX16_CONST(-0.8904487232447579), + FX16_CONST(0.45371712100016376), FX16_CONST(-0.8911457647945833), + FX16_CONST(0.45234958723377106), FX16_CONST(-0.8918407093923426), + FX16_CONST(0.45098098904510386), FX16_CONST(-0.8925335554027646), + FX16_CONST(0.4496113296546069), FX16_CONST(-0.8932243011955152), + FX16_CONST(0.44824061228522005), FX16_CONST(-0.8939129451452031), + FX16_CONST(0.44686884016237416), FX16_CONST(-0.8945994856313827), + FX16_CONST(0.44549601651398196), FX16_CONST(-0.8952839210385574), + FX16_CONST(0.4441221445704293), FX16_CONST(-0.8959662497561851), + FX16_CONST(0.44274722756456997), FX16_CONST(-0.8966464701786803), + FX16_CONST(0.4413712687317169), FX16_CONST(-0.8973245807054182), + FX16_CONST(0.4399942713096333), FX16_CONST(-0.8980005797407398), + FX16_CONST(0.43861623853852755), FX16_CONST(-0.8986744656939539), + FX16_CONST(0.43723717366104425), FX16_CONST(-0.8993462369793415), + FX16_CONST(0.43585707992225553), FX16_CONST(-0.9000158920161602), + FX16_CONST(0.434475960569656), FX16_CONST(-0.9006834292286467), + FX16_CONST(0.43309381885315207), FX16_CONST(-0.9013488470460219), + FX16_CONST(0.43171065802505726), FX16_CONST(-0.9020121439024932), + FX16_CONST(0.4303264813400829), FX16_CONST(-0.9026733182372587), + FX16_CONST(0.4289412920553296), FX16_CONST(-0.9033323684945118), + FX16_CONST(0.42755509343028203), FX16_CONST(-0.9039892931234433), + FX16_CONST(0.42616788872679984), FX16_CONST(-0.9046440905782461), + FX16_CONST(0.42477968120910886), FX16_CONST(-0.9052967593181187), + FX16_CONST(0.42339047414379594), FX16_CONST(-0.9059472978072685), + FX16_CONST(0.42200027079979985), FX16_CONST(-0.9065957045149153), + FX16_CONST(0.42060907444840256), FX16_CONST(-0.9072419779152958), + FX16_CONST(0.41921688836322424), FX16_CONST(-0.907886116487666), + FX16_CONST(0.41782371582021244), FX16_CONST(-0.9085281187163061), + FX16_CONST(0.41642956009763715), FX16_CONST(-0.9091679830905224), + FX16_CONST(0.41503442447608185), FX16_CONST(-0.9098057081046521), + FX16_CONST(0.41363831223843467), FX16_CONST(-0.9104412922580671), + FX16_CONST(0.41224122666988283), FX16_CONST(-0.9110747340551764), + FX16_CONST(0.41084317105790413), FX16_CONST(-0.9117060320054298), + FX16_CONST(0.4094441486922577), FX16_CONST(-0.9123351846233227), + FX16_CONST(0.4080441628649786), FX16_CONST(-0.9129621904283982), + FX16_CONST(0.4066432168703692), FX16_CONST(-0.9135870479452507), + FX16_CONST(0.4052413140049899), FX16_CONST(-0.9142097557035307), + FX16_CONST(0.4038384575676544), FX16_CONST(-0.914830312237946), + FX16_CONST(0.4024346508594186), FX16_CONST(-0.9154487160882677), + FX16_CONST(0.4010298971835756), FX16_CONST(-0.9160649657993317), + FX16_CONST(0.39962419984564707), FX16_CONST(-0.9166790599210426), + FX16_CONST(0.39821756215337367), FX16_CONST(-0.9172909970083779), + FX16_CONST(0.39680998741671025), FX16_CONST(-0.9179007756213905), + FX16_CONST(0.3954014789478165), FX16_CONST(-0.9185083943252121), + FX16_CONST(0.39399204006104815), FX16_CONST(-0.9191138516900578), + FX16_CONST(0.3925816740729514), FX16_CONST(-0.9197171462912274), + FX16_CONST(0.39117038430225404), FX16_CONST(-0.9203182767091105), + FX16_CONST(0.38975817406985647), FX16_CONST(-0.9209172415291894), + FX16_CONST(0.3883450466988266), FX16_CONST(-0.9215140393420418), + FX16_CONST(0.38693100551438875), FX16_CONST(-0.9221086687433451), + FX16_CONST(0.38551605384391885), FX16_CONST(-0.9227011283338786), + FX16_CONST(0.3841001950169353), FX16_CONST(-0.9232914167195275), + FX16_CONST(0.3826834323650899), FX16_CONST(-0.9238795325112867), + FX16_CONST(0.3812657692221623), FX16_CONST(-0.9244654743252626), + FX16_CONST(0.3798472089240514), FX16_CONST(-0.9250492407826775), + FX16_CONST(0.37842775480876567), FX16_CONST(-0.9256308305098727), + FX16_CONST(0.37700741021641815), FX16_CONST(-0.9262102421383114), + FX16_CONST(0.3755861784892174), FX16_CONST(-0.9267874743045817), + FX16_CONST(0.37416406297145804), FX16_CONST(-0.9273625256504011), + FX16_CONST(0.3727410670095161), FX16_CONST(-0.9279353948226178), + FX16_CONST(0.3713171939518377), FX16_CONST(-0.9285060804732155), + FX16_CONST(0.3698924471489341), FX16_CONST(-0.9290745812593159), + FX16_CONST(0.3684668299533726), FX16_CONST(-0.9296408958431812), + FX16_CONST(0.3670403457197673), FX16_CONST(-0.9302050228922191), + FX16_CONST(0.3656129978047738), FX16_CONST(-0.9307669610789837), + FX16_CONST(0.3641847895670801), FX16_CONST(-0.9313267090811803), + FX16_CONST(0.3627557243673973), FX16_CONST(-0.931884265581668), + FX16_CONST(0.3613258055684542), FX16_CONST(-0.9324396292684625), + FX16_CONST(0.35989503653498833), FX16_CONST(-0.9329927988347388), + FX16_CONST(0.3584634206337366), FX16_CONST(-0.9335437729788362), + FX16_CONST(0.3570309612334303), FX16_CONST(-0.9340925504042588), + FX16_CONST(0.355597661704784), FX16_CONST(-0.9346391298196807), + FX16_CONST(0.3541635254204904), FX16_CONST(-0.9351835099389476), + FX16_CONST(0.35272855575521095), FX16_CONST(-0.9357256894810803), + FX16_CONST(0.3512927560855672), FX16_CONST(-0.9362656671702783), + FX16_CONST(0.34985612979013486), FX16_CONST(-0.9368034417359217), + FX16_CONST(0.3484186802494348), FX16_CONST(-0.9373390119125748), + FX16_CONST(0.34698041084592374), FX16_CONST(-0.9378723764399898), + FX16_CONST(0.345541324963989), FX16_CONST(-0.9384035340631082), + FX16_CONST(0.34410142598993904), FX16_CONST(-0.9389324835320645), + FX16_CONST(0.34266071731199443), FX16_CONST(-0.9394592236021899), + FX16_CONST(0.3412192023202827), FX16_CONST(-0.9399837530340138), + FX16_CONST(0.339776884406827), FX16_CONST(-0.9405060705932683), + FX16_CONST(0.3383337669655412), FX16_CONST(-0.9410261750508893), + FX16_CONST(0.33688985339222033), FX16_CONST(-0.9415440651830207), + FX16_CONST(0.3354451470845317), FX16_CONST(-0.9420597397710173), + FX16_CONST(0.3339996514420094), FX16_CONST(-0.9425731976014469), + FX16_CONST(0.33255336986604445), FX16_CONST(-0.9430844374660934), + FX16_CONST(0.3311063057598765), FX16_CONST(-0.9435934581619604), + FX16_CONST(0.32965846252858744), FX16_CONST(-0.9441002584912727), + FX16_CONST(0.3282098435790927), FX16_CONST(-0.9446048372614801), + FX16_CONST(0.32676045232013184), FX16_CONST(-0.9451071932852606), + FX16_CONST(0.32531029216226326), FX16_CONST(-0.9456073253805212), + FX16_CONST(0.323859366517853), FX16_CONST(-0.9461052323704033), + FX16_CONST(0.32240767880106985), FX16_CONST(-0.9466009130832835), + FX16_CONST(0.3209552324278755), FX16_CONST(-0.9470943663527771), + FX16_CONST(0.3195020308160158), FX16_CONST(-0.9475855910177411), + FX16_CONST(0.3180480773850149), FX16_CONST(-0.9480745859222762), + FX16_CONST(0.31659337555616607), FX16_CONST(-0.9485613499157303), + FX16_CONST(0.3151379287525225), FX16_CONST(-0.9490458818527006), + FX16_CONST(0.3136817403988914), FX16_CONST(-0.9495281805930367), + FX16_CONST(0.3122248139218251), FX16_CONST(-0.950008245001843), + FX16_CONST(0.31076715274961153), FX16_CONST(-0.9504860739494817), + FX16_CONST(0.309308760312269), FX16_CONST(-0.950961666311575), + FX16_CONST(0.30784964004153503), FX16_CONST(-0.9514350209690083), + FX16_CONST(0.3063897953708609), FX16_CONST(-0.9519061368079323), + FX16_CONST(0.30492922973540265), FX16_CONST(-0.9523750127197658), + FX16_CONST(0.3034679465720114), FX16_CONST(-0.9528416476011986), + FX16_CONST(0.30200594931922803), FX16_CONST(-0.9533060403541939), + FX16_CONST(0.3005432414172737), FX16_CONST(-0.9537681898859902), + FX16_CONST(0.29907982630804053), FX16_CONST(-0.9542280951091056), + FX16_CONST(0.29761570743508614), FX16_CONST(-0.9546857549413383), + FX16_CONST(0.296150888243624), FX16_CONST(-0.9551411683057707), + FX16_CONST(0.2946853721805144), FX16_CONST(-0.9555943341307711), + FX16_CONST(0.29321916269425896), FX16_CONST(-0.9560452513499963), + FX16_CONST(0.29175226323498943), FX16_CONST(-0.956493918902395), + FX16_CONST(0.2902846772544624), FX16_CONST(-0.9569403357322088), + FX16_CONST(0.28881640820604976), FX16_CONST(-0.9573845007889759), + FX16_CONST(0.2873474595447296), FX16_CONST(-0.9578264130275329), + FX16_CONST(0.28587783472708056), FX16_CONST(-0.9582660714080177), + FX16_CONST(0.2844075372112721), FX16_CONST(-0.9587034748958715), + FX16_CONST(0.28293657045705545), FX16_CONST(-0.9591386224618419), + FX16_CONST(0.2814649379257579), FX16_CONST(-0.9595715130819845), + FX16_CONST(0.27999264308027344), FX16_CONST(-0.9600021457376658), + FX16_CONST(0.27851968938505317), FX16_CONST(-0.9604305194155658), + FX16_CONST(0.27704608030610023), FX16_CONST(-0.9608566331076795), + FX16_CONST(0.2755718193109583), FX16_CONST(-0.9612804858113206), + FX16_CONST(0.2740969098687064), FX16_CONST(-0.9617020765291225), + FX16_CONST(0.27262135544994925), FX16_CONST(-0.9621214042690415), + FX16_CONST(0.2711451595268081), FX16_CONST(-0.9625384680443592), + FX16_CONST(0.2696683255729151), FX16_CONST(-0.9629532668736839), + FX16_CONST(0.2681908570634034), FX16_CONST(-0.9633657997809539), + FX16_CONST(0.2667127574748985), FX16_CONST(-0.9637760657954398), + FX16_CONST(0.26523403028551173), FX16_CONST(-0.9641840639517458), + FX16_CONST(0.26375467897483157), FX16_CONST(-0.9645897932898126), + FX16_CONST(0.2622747070239137), FX16_CONST(-0.9649932528549203), + FX16_CONST(0.26079411791527585), FX16_CONST(-0.9653944416976893), + FX16_CONST(0.2593129151328864), FX16_CONST(-0.9657933588740836), + FX16_CONST(0.257831102162159), FX16_CONST(-0.9661900034454125), + FX16_CONST(0.2563486824899432), FX16_CONST(-0.966584374478333), + FX16_CONST(0.2548656596045147), FX16_CONST(-0.9669764710448521), + FX16_CONST(0.2533820369955701), FX16_CONST(-0.9673662922223285), + FX16_CONST(0.2518978181542172), FX16_CONST(-0.9677538370934754), + FX16_CONST(0.25041300657296534), FX16_CONST(-0.9681391047463623), + FX16_CONST(0.2489276057457201), FX16_CONST(-0.9685220942744174), + FX16_CONST(0.2474416191677735), FX16_CONST(-0.9689028047764289), + FX16_CONST(0.24595505033579465), FX16_CONST(-0.9692812353565484), + FX16_CONST(0.24446790274782448), FX16_CONST(-0.9696573851242923), + FX16_CONST(0.24298017990326407), FX16_CONST(-0.970031253194544), + FX16_CONST(0.24149188530286936), FX16_CONST(-0.9704028386875555), + FX16_CONST(0.24000302244874178), FX16_CONST(-0.9707721407289502), + FX16_CONST(0.23851359484431855), FX16_CONST(-0.9711391584497251), + FX16_CONST(0.23702360599436717), FX16_CONST(-0.9715038909862518), + FX16_CONST(0.23553305940497574), FX16_CONST(-0.9718663374802793), + FX16_CONST(0.2340419585835435), FX16_CONST(-0.9722264970789363), + FX16_CONST(0.23255030703877516), FX16_CONST(-0.9725843689347322), + FX16_CONST(0.23105810828067133), FX16_CONST(-0.9729399522055601), + FX16_CONST(0.22956536582051892), FX16_CONST(-0.9732932460546982), + FX16_CONST(0.22807208317088606), FX16_CONST(-0.9736442496508119), + FX16_CONST(0.22657826384561017), FX16_CONST(-0.9739929621679558), + FX16_CONST(0.22508391135979283), FX16_CONST(-0.9743393827855759), + FX16_CONST(0.2235890292297903), FX16_CONST(-0.9746835106885107), + FX16_CONST(0.22209362097320365), FX16_CONST(-0.9750253450669941), + FX16_CONST(0.2205976901088735), FX16_CONST(-0.975364885116657), + FX16_CONST(0.21910124015687005), FX16_CONST(-0.9757021300385285), + FX16_CONST(0.21760427463848372), FX16_CONST(-0.976037079039039), + FX16_CONST(0.21610679707621944), FX16_CONST(-0.9763697313300211), + FX16_CONST(0.21460881099378698), FX16_CONST(-0.9767000861287117), + FX16_CONST(0.21311031991609142), FX16_CONST(-0.9770281426577544), + FX16_CONST(0.2116113273692279), FX16_CONST(-0.9773539001452), + FX16_CONST(0.2101118368804698), FX16_CONST(-0.9776773578245099), + FX16_CONST(0.2086118519782635), FX16_CONST(-0.9779985149345571), + FX16_CONST(0.20711137619221884), FX16_CONST(-0.9783173707196275), + FX16_CONST(0.20561041305309938), FX16_CONST(-0.9786339244294231), + FX16_CONST(0.20410896609281684), FX16_CONST(-0.9789481753190622), + FX16_CONST(0.20260703884442138), FX16_CONST(-0.979260122649082), + FX16_CONST(0.201104634842092), FX16_CONST(-0.9795697656854405), + FX16_CONST(0.19960175762113092), FX16_CONST(-0.9798771036995176), + FX16_CONST(0.1980984107179538), FX16_CONST(-0.9801821359681173), + FX16_CONST(0.19659459767008028), FX16_CONST(-0.9804848617734694), + FX16_CONST(0.1950903220161286), FX16_CONST(-0.9807852804032304), + FX16_CONST(0.1935855872958038), FX16_CONST(-0.9810833911504866), + FX16_CONST(0.19208039704989247), FX16_CONST(-0.9813791933137546), + FX16_CONST(0.19057475482025307), FX16_CONST(-0.9816726861969831), + FX16_CONST(0.18906866414980636), FX16_CONST(-0.9819638691095552), + FX16_CONST(0.18756212858252957), FX16_CONST(-0.9822527413662894), + FX16_CONST(0.1860551516634469), FX16_CONST(-0.9825393022874412), + FX16_CONST(0.1845477369386197), FX16_CONST(-0.9828235511987052), + FX16_CONST(0.1830398879551409), FX16_CONST(-0.9831054874312163), + FX16_CONST(0.18153160826112522), FX16_CONST(-0.9833851103215512), + FX16_CONST(0.18002290140569957), FX16_CONST(-0.9836624192117303), + FX16_CONST(0.17851377093899742), FX16_CONST(-0.9839374134492189), + FX16_CONST(0.17700422041214894), FX16_CONST(-0.984210092386929), + FX16_CONST(0.17549425337727145), FX16_CONST(-0.9844804553832209), + FX16_CONST(0.17398387338746413), FX16_CONST(-0.9847485018019042), + FX16_CONST(0.17247308399679612), FX16_CONST(-0.9850142310122398), + FX16_CONST(0.17096188876030122), FX16_CONST(-0.9852776423889412), + FX16_CONST(0.1694502912339682), FX16_CONST(-0.9855387353121761), + FX16_CONST(0.16793829497473128), FX16_CONST(-0.9857975091675674), + FX16_CONST(0.16642590354046405), FX16_CONST(-0.9860539633461954), + FX16_CONST(0.16491312048997014), FX16_CONST(-0.9863080972445986), + FX16_CONST(0.16339994938297328), FX16_CONST(-0.9865599102647754), + FX16_CONST(0.16188639378011174), FX16_CONST(-0.9868094018141855), + FX16_CONST(0.16037245724292845), FX16_CONST(-0.987056571305751), + FX16_CONST(0.15885814333386147), FX16_CONST(-0.9873014181578584), + FX16_CONST(0.15734345561623855), FX16_CONST(-0.9875439417943592), + FX16_CONST(0.15582839765426537), FX16_CONST(-0.9877841416445722), + FX16_CONST(0.15431297301302008), FX16_CONST(-0.9880220171432835), + FX16_CONST(0.15279718525844369), FX16_CONST(-0.9882575677307495), + FX16_CONST(0.1512810379573303), FX16_CONST(-0.9884907928526966), + FX16_CONST(0.14976453467732145), FX16_CONST(-0.9887216919603238), + FX16_CONST(0.14824767898689625), FX16_CONST(-0.988950264510303), + FX16_CONST(0.1467304744553618), FX16_CONST(-0.989176509964781), + FX16_CONST(0.14521292465284735), FX16_CONST(-0.9894004277913804), + FX16_CONST(0.14369503315029464), FX16_CONST(-0.9896220174632008), + FX16_CONST(0.1421768035194481), FX16_CONST(-0.9898412784588205), + FX16_CONST(0.14065823933284954), FX16_CONST(-0.990058210262297), + FX16_CONST(0.13913934416382634), FX16_CONST(-0.9902728123631691), + FX16_CONST(0.13762012158648604), FX16_CONST(-0.9904850842564571), + FX16_CONST(0.13610057517570648), FX16_CONST(-0.9906950254426646), + FX16_CONST(0.13458070850712628), FX16_CONST(-0.99090263542778), + FX16_CONST(0.133060525157139), FX16_CONST(-0.9911079137232769), + FX16_CONST(0.13154002870288334), FX16_CONST(-0.9913108598461154), + FX16_CONST(0.13001922272223343), FX16_CONST(-0.9915114733187439), + FX16_CONST(0.12849811079379309), FX16_CONST(-0.9917097536690995), + FX16_CONST(0.12697669649688606), FX16_CONST(-0.9919057004306093), + FX16_CONST(0.12545498341154626), FX16_CONST(-0.9920993131421918), + FX16_CONST(0.12393297511851248), FX16_CONST(-0.9922905913482573), + FX16_CONST(0.12241067519921635), FX16_CONST(-0.99247953459871), + FX16_CONST(0.12088808723577706), FX16_CONST(-0.992666142448948), + FX16_CONST(0.11936521481099163), FX16_CONST(-0.9928504144598651), + FX16_CONST(0.11784206150832509), FX16_CONST(-0.9930323501978514), + FX16_CONST(0.11631863091190471), FX16_CONST(-0.9932119492347945), + FX16_CONST(0.1147949266065103), FX16_CONST(-0.9933892111480807), + FX16_CONST(0.11327095217756442), FX16_CONST(-0.9935641355205953), + FX16_CONST(0.1117467112111265), FX16_CONST(-0.9937367219407246), + FX16_CONST(0.11022220729388324), FX16_CONST(-0.9939069700023561), + FX16_CONST(0.10869744401313874), FX16_CONST(-0.9940748793048794), + FX16_CONST(0.10717242495680916), FX16_CONST(-0.9942404494531879), + FX16_CONST(0.10564715371341075), FX16_CONST(-0.9944036800576791), + FX16_CONST(0.10412163387205457), FX16_CONST(-0.9945645707342554), + FX16_CONST(0.10259586902243656), FX16_CONST(-0.9947231211043257), + FX16_CONST(0.10106986275482793), FX16_CONST(-0.9948793307948056), + FX16_CONST(0.09954361866006928), FX16_CONST(-0.9950331994381186), + FX16_CONST(0.09801714032956083), FX16_CONST(-0.9951847266721968), + FX16_CONST(0.09649043135525266), FX16_CONST(-0.9953339121404823), + FX16_CONST(0.09496349532963891), FX16_CONST(-0.9954807554919269), + FX16_CONST(0.09343633584574797), FX16_CONST(-0.9956252563809943), + FX16_CONST(0.09190895649713275), FX16_CONST(-0.9957674144676598), + FX16_CONST(0.09038136087786529), FX16_CONST(-0.9959072294174117), + FX16_CONST(0.08885355258252475), FX16_CONST(-0.996044700901252), + FX16_CONST(0.08732553520619206), FX16_CONST(-0.996179828595697), + FX16_CONST(0.08579731234444016), FX16_CONST(-0.996312612182778), + FX16_CONST(0.08426888759332418), FX16_CONST(-0.9964430513500426), + FX16_CONST(0.08274026454937564), FX16_CONST(-0.9965711457905548), + FX16_CONST(0.08121144680959266), FX16_CONST(-0.9966968952028961), + FX16_CONST(0.0796824379714302), FX16_CONST(-0.9968202992911657), + FX16_CONST(0.07815324163279415), FX16_CONST(-0.9969413577649822), + FX16_CONST(0.07662386139203169), FX16_CONST(-0.997060070339483), + FX16_CONST(0.07509430084792135), FX16_CONST(-0.9971764367353261), + FX16_CONST(0.07356456359966773), FX16_CONST(-0.9972904566786902), + FX16_CONST(0.07203465324688947), FX16_CONST(-0.9974021299012753), + FX16_CONST(0.07050457338961386), FX16_CONST(-0.9975114561403035), + FX16_CONST(0.06897432762826702), FX16_CONST(-0.9976184351385196), + FX16_CONST(0.06744391956366418), FX16_CONST(-0.9977230666441916), + FX16_CONST(0.06591335279700376), FX16_CONST(-0.9978253504111116), + FX16_CONST(0.0643826309298577), FX16_CONST(-0.997925286198596), + FX16_CONST(0.06285175756416149), FX16_CONST(-0.9980228737714862), + FX16_CONST(0.06132073630220849), FX16_CONST(-0.9981181129001492), + FX16_CONST(0.05978957074664007), FX16_CONST(-0.9982110033604782), + FX16_CONST(0.058258264500435794), FX16_CONST(-0.9983015449338929), + FX16_CONST(0.05672682116690807), FX16_CONST(-0.9983897374073402), + FX16_CONST(0.055195244349690094), FX16_CONST(-0.9984755805732948), + FX16_CONST(0.05366353765273052), FX16_CONST(-0.9985590742297593), + FX16_CONST(0.052131704680283594), FX16_CONST(-0.9986402181802652), + FX16_CONST(0.05059974903689939), FX16_CONST(-0.9987190122338729), + FX16_CONST(0.049067674327417966), FX16_CONST(-0.9987954562051724), + FX16_CONST(0.04753548415695954), FX16_CONST(-0.9988695499142836), + FX16_CONST(0.046003182130914706), FX16_CONST(-0.9989412931868569), + FX16_CONST(0.044470771854938584), FX16_CONST(-0.9990106858540734), + FX16_CONST(0.04293825693494102), FX16_CONST(-0.9990777277526454), + FX16_CONST(0.041405640977076774), FX16_CONST(-0.9991424187248169), + FX16_CONST(0.03987292758774013), FX16_CONST(-0.9992047586183639), + FX16_CONST(0.038340120373552854), FX16_CONST(-0.9992647472865944), + FX16_CONST(0.03680722294135883), FX16_CONST(-0.9993223845883495), + FX16_CONST(0.03527423889821423), FX16_CONST(-0.9993776703880028), + FX16_CONST(0.033741171851377705), FX16_CONST(-0.9994306045554617), + FX16_CONST(0.032208025408304544), FX16_CONST(-0.999481186966167), + FX16_CONST(0.030674803176636865), FX16_CONST(-0.9995294175010931), + FX16_CONST(0.029141508764193802), FX16_CONST(-0.9995752960467492), + FX16_CONST(0.02760814577896566), FX16_CONST(-0.9996188224951786), + FX16_CONST(0.0260747178291041), FX16_CONST(-0.9996599967439592), + FX16_CONST(0.024541228522912326), FX16_CONST(-0.9996988186962042), + FX16_CONST(0.023007681468839695), FX16_CONST(-0.9997352882605617), + FX16_CONST(0.021474080275469667), FX16_CONST(-0.9997694053512153), + FX16_CONST(0.019940428551514438), FX16_CONST(-0.9998011698878843), + FX16_CONST(0.0184067299058051), FX16_CONST(-0.9998305817958234), + FX16_CONST(0.016872987947281835), FX16_CONST(-0.9998576410058239), + FX16_CONST(0.01533920628498806), FX16_CONST(-0.9998823474542126), + FX16_CONST(0.013805388528060632), FX16_CONST(-0.9999047010828528), + FX16_CONST(0.012271538285720007), FX16_CONST(-0.9999247018391445), + FX16_CONST(0.01073765916726441), FX16_CONST(-0.9999423496760239), + FX16_CONST(0.00920375478206002), FX16_CONST(-0.9999576445519639), + FX16_CONST(0.007669828739531138), FX16_CONST(-0.9999705864309741), + FX16_CONST(0.006135884649154799), FX16_CONST(-0.9999811752826011), + FX16_CONST(0.004601926120448733), FX16_CONST(-0.9999894110819284), + FX16_CONST(0.003067956762965977), FX16_CONST(-0.9999952938095762), + FX16_CONST(0.0015339801862850493), FX16_CONST(-0.9999988234517019), + FX16_CONST(1.2246467991473532e-16), FX16_CONST(-1.0), + FX16_CONST(-0.0015339801862848043), FX16_CONST(-0.9999988234517019), + FX16_CONST(-0.0030679567629657324), FX16_CONST(-0.9999952938095762), + FX16_CONST(-0.004601926120448488), FX16_CONST(-0.9999894110819284), + FX16_CONST(-0.006135884649154554), FX16_CONST(-0.9999811752826011), + FX16_CONST(-0.007669828739530893), FX16_CONST(-0.9999705864309741), + FX16_CONST(-0.009203754782059776), FX16_CONST(-0.9999576445519639), + FX16_CONST(-0.010737659167264166), FX16_CONST(-0.9999423496760239), + FX16_CONST(-0.012271538285719762), FX16_CONST(-0.9999247018391445), + FX16_CONST(-0.013805388528060387), FX16_CONST(-0.9999047010828529), + FX16_CONST(-0.015339206284987816), FX16_CONST(-0.9998823474542126), + FX16_CONST(-0.01687298794728159), FX16_CONST(-0.9998576410058239), + FX16_CONST(-0.01840672990580486), FX16_CONST(-0.9998305817958234), + FX16_CONST(-0.01994042855151419), FX16_CONST(-0.9998011698878843), + FX16_CONST(-0.02147408027546942), FX16_CONST(-0.9997694053512153), + FX16_CONST(-0.02300768146883945), FX16_CONST(-0.9997352882605617), + FX16_CONST(-0.02454122852291208), FX16_CONST(-0.9996988186962042), + FX16_CONST(-0.026074717829103856), FX16_CONST(-0.9996599967439592), + FX16_CONST(-0.027608145778965414), FX16_CONST(-0.9996188224951786), + FX16_CONST(-0.029141508764193556), FX16_CONST(-0.9995752960467492), + FX16_CONST(-0.03067480317663662), FX16_CONST(-0.9995294175010931), + FX16_CONST(-0.032208025408304294), FX16_CONST(-0.999481186966167), + FX16_CONST(-0.033741171851377455), FX16_CONST(-0.9994306045554617), + FX16_CONST(-0.03527423889821398), FX16_CONST(-0.9993776703880028), + FX16_CONST(-0.03680722294135858), FX16_CONST(-0.9993223845883495), + FX16_CONST(-0.03834012037355261), FX16_CONST(-0.9992647472865944), + FX16_CONST(-0.03987292758773989), FX16_CONST(-0.9992047586183639), + FX16_CONST(-0.04140564097707653), FX16_CONST(-0.9991424187248169), + FX16_CONST(-0.04293825693494078), FX16_CONST(-0.9990777277526454), + FX16_CONST(-0.044470771854938335), FX16_CONST(-0.9990106858540734), + FX16_CONST(-0.046003182130914456), FX16_CONST(-0.9989412931868569), + FX16_CONST(-0.047535484156959296), FX16_CONST(-0.9988695499142836), + FX16_CONST(-0.049067674327417724), FX16_CONST(-0.9987954562051724), + FX16_CONST(-0.05059974903689915), FX16_CONST(-0.9987190122338729), + FX16_CONST(-0.05213170468028335), FX16_CONST(-0.9986402181802653), + FX16_CONST(-0.05366353765273028), FX16_CONST(-0.9985590742297593), + FX16_CONST(-0.05519524434968985), FX16_CONST(-0.9984755805732948), + FX16_CONST(-0.05672682116690782), FX16_CONST(-0.9983897374073402), + FX16_CONST(-0.05825826450043555), FX16_CONST(-0.9983015449338929), + FX16_CONST(-0.05978957074663983), FX16_CONST(-0.9982110033604782), + FX16_CONST(-0.061320736302208245), FX16_CONST(-0.9981181129001492), + FX16_CONST(-0.06285175756416124), FX16_CONST(-0.9980228737714862), + FX16_CONST(-0.06438263092985745), FX16_CONST(-0.997925286198596), + FX16_CONST(-0.06591335279700353), FX16_CONST(-0.9978253504111116), + FX16_CONST(-0.06744391956366393), FX16_CONST(-0.9977230666441916), + FX16_CONST(-0.06897432762826677), FX16_CONST(-0.9976184351385196), + FX16_CONST(-0.0705045733896136), FX16_CONST(-0.9975114561403035), + FX16_CONST(-0.07203465324688924), FX16_CONST(-0.9974021299012753), + FX16_CONST(-0.0735645635996675), FX16_CONST(-0.9972904566786902), + FX16_CONST(-0.0750943008479211), FX16_CONST(-0.9971764367353262), + FX16_CONST(-0.07662386139203144), FX16_CONST(-0.997060070339483), + FX16_CONST(-0.0781532416327939), FX16_CONST(-0.9969413577649822), + FX16_CONST(-0.07968243797142995), FX16_CONST(-0.9968202992911658), + FX16_CONST(-0.08121144680959243), FX16_CONST(-0.9966968952028961), + FX16_CONST(-0.0827402645493754), FX16_CONST(-0.9965711457905548), + FX16_CONST(-0.08426888759332393), FX16_CONST(-0.9964430513500426), + FX16_CONST(-0.08579731234443992), FX16_CONST(-0.996312612182778), + FX16_CONST(-0.08732553520619181), FX16_CONST(-0.996179828595697), + FX16_CONST(-0.0888535525825245), FX16_CONST(-0.996044700901252), + FX16_CONST(-0.09038136087786505), FX16_CONST(-0.9959072294174117), + FX16_CONST(-0.09190895649713252), FX16_CONST(-0.9957674144676598), + FX16_CONST(-0.09343633584574773), FX16_CONST(-0.9956252563809943), + FX16_CONST(-0.09496349532963866), FX16_CONST(-0.9954807554919269), + FX16_CONST(-0.09649043135525241), FX16_CONST(-0.9953339121404823), + FX16_CONST(-0.09801714032956059), FX16_CONST(-0.9951847266721969), + FX16_CONST(-0.09954361866006904), FX16_CONST(-0.9950331994381186), + FX16_CONST(-0.10106986275482768), FX16_CONST(-0.9948793307948056), + FX16_CONST(-0.10259586902243631), FX16_CONST(-0.9947231211043257), + FX16_CONST(-0.10412163387205432), FX16_CONST(-0.9945645707342555), + FX16_CONST(-0.10564715371341052), FX16_CONST(-0.9944036800576791), + FX16_CONST(-0.10717242495680891), FX16_CONST(-0.9942404494531879), + FX16_CONST(-0.1086974440131385), FX16_CONST(-0.9940748793048795), + FX16_CONST(-0.110222207293883), FX16_CONST(-0.9939069700023561), + FX16_CONST(-0.11174671121112625), FX16_CONST(-0.9937367219407247), + FX16_CONST(-0.11327095217756417), FX16_CONST(-0.9935641355205953), + FX16_CONST(-0.11479492660651007), FX16_CONST(-0.9933892111480807), + FX16_CONST(-0.11631863091190447), FX16_CONST(-0.9932119492347946), + FX16_CONST(-0.11784206150832484), FX16_CONST(-0.9930323501978514), + FX16_CONST(-0.11936521481099138), FX16_CONST(-0.9928504144598651), + FX16_CONST(-0.12088808723577682), FX16_CONST(-0.992666142448948), + FX16_CONST(-0.1224106751992161), FX16_CONST(-0.99247953459871), + FX16_CONST(-0.12393297511851223), FX16_CONST(-0.9922905913482574), + FX16_CONST(-0.125454983411546), FX16_CONST(-0.9920993131421918), + FX16_CONST(-0.1269766964968858), FX16_CONST(-0.9919057004306093), + FX16_CONST(-0.12849811079379284), FX16_CONST(-0.9917097536690995), + FX16_CONST(-0.13001922272223318), FX16_CONST(-0.991511473318744), + FX16_CONST(-0.1315400287028831), FX16_CONST(-0.9913108598461154), + FX16_CONST(-0.13306052515713876), FX16_CONST(-0.9911079137232769), + FX16_CONST(-0.13458070850712606), FX16_CONST(-0.99090263542778), + FX16_CONST(-0.13610057517570623), FX16_CONST(-0.9906950254426646), + FX16_CONST(-0.1376201215864858), FX16_CONST(-0.9904850842564571), + FX16_CONST(-0.13913934416382612), FX16_CONST(-0.9902728123631691), + FX16_CONST(-0.1406582393328493), FX16_CONST(-0.9900582102622971), + FX16_CONST(-0.14217680351944784), FX16_CONST(-0.9898412784588205), + FX16_CONST(-0.1436950331502944), FX16_CONST(-0.9896220174632009), + FX16_CONST(-0.14521292465284713), FX16_CONST(-0.9894004277913804), + FX16_CONST(-0.14673047445536158), FX16_CONST(-0.989176509964781), + FX16_CONST(-0.14824767898689603), FX16_CONST(-0.988950264510303), + FX16_CONST(-0.1497645346773212), FX16_CONST(-0.9887216919603238), + FX16_CONST(-0.15128103795733008), FX16_CONST(-0.9884907928526967), + FX16_CONST(-0.15279718525844344), FX16_CONST(-0.9882575677307495), + FX16_CONST(-0.15431297301301983), FX16_CONST(-0.9880220171432836), + FX16_CONST(-0.15582839765426512), FX16_CONST(-0.9877841416445722), + FX16_CONST(-0.1573434556162383), FX16_CONST(-0.9875439417943592), + FX16_CONST(-0.15885814333386122), FX16_CONST(-0.9873014181578584), + FX16_CONST(-0.1603724572429282), FX16_CONST(-0.987056571305751), + FX16_CONST(-0.1618863937801115), FX16_CONST(-0.9868094018141855), + FX16_CONST(-0.16339994938297306), FX16_CONST(-0.9865599102647755), + FX16_CONST(-0.1649131204899699), FX16_CONST(-0.9863080972445987), + FX16_CONST(-0.16642590354046383), FX16_CONST(-0.9860539633461954), + FX16_CONST(-0.16793829497473103), FX16_CONST(-0.9857975091675675), + FX16_CONST(-0.169450291233968), FX16_CONST(-0.9855387353121761), + FX16_CONST(-0.17096188876030097), FX16_CONST(-0.9852776423889413), + FX16_CONST(-0.17247308399679587), FX16_CONST(-0.9850142310122398), + FX16_CONST(-0.17398387338746388), FX16_CONST(-0.9847485018019042), + FX16_CONST(-0.1754942533772712), FX16_CONST(-0.9844804553832209), + FX16_CONST(-0.1770042204121487), FX16_CONST(-0.9842100923869291), + FX16_CONST(-0.17851377093899717), FX16_CONST(-0.9839374134492189), + FX16_CONST(-0.18002290140569935), FX16_CONST(-0.9836624192117303), + FX16_CONST(-0.18153160826112497), FX16_CONST(-0.9833851103215512), + FX16_CONST(-0.18303988795514065), FX16_CONST(-0.9831054874312164), + FX16_CONST(-0.18454773693861948), FX16_CONST(-0.9828235511987053), + FX16_CONST(-0.18605515166344666), FX16_CONST(-0.9825393022874412), + FX16_CONST(-0.18756212858252932), FX16_CONST(-0.9822527413662895), + FX16_CONST(-0.1890686641498061), FX16_CONST(-0.9819638691095552), + FX16_CONST(-0.19057475482025282), FX16_CONST(-0.9816726861969831), + FX16_CONST(-0.19208039704989222), FX16_CONST(-0.9813791933137547), + FX16_CONST(-0.19358558729580355), FX16_CONST(-0.9810833911504867), + FX16_CONST(-0.19509032201612836), FX16_CONST(-0.9807852804032304), + FX16_CONST(-0.19659459767008003), FX16_CONST(-0.9804848617734694), + FX16_CONST(-0.19809841071795356), FX16_CONST(-0.9801821359681174), + FX16_CONST(-0.19960175762113067), FX16_CONST(-0.9798771036995177), + FX16_CONST(-0.20110463484209176), FX16_CONST(-0.9795697656854405), + FX16_CONST(-0.20260703884442113), FX16_CONST(-0.979260122649082), + FX16_CONST(-0.20410896609281662), FX16_CONST(-0.9789481753190622), + FX16_CONST(-0.20561041305309916), FX16_CONST(-0.9786339244294232), + FX16_CONST(-0.2071113761922186), FX16_CONST(-0.9783173707196277), + FX16_CONST(-0.20861185197826326), FX16_CONST(-0.9779985149345571), + FX16_CONST(-0.21011183688046955), FX16_CONST(-0.97767735782451), + FX16_CONST(-0.21161132736922766), FX16_CONST(-0.9773539001452), + FX16_CONST(-0.2131103199160912), FX16_CONST(-0.9770281426577544), + FX16_CONST(-0.21460881099378673), FX16_CONST(-0.9767000861287118), + FX16_CONST(-0.21610679707621921), FX16_CONST(-0.9763697313300213), + FX16_CONST(-0.21760427463848347), FX16_CONST(-0.9760370790390391), + FX16_CONST(-0.2191012401568698), FX16_CONST(-0.9757021300385286), + FX16_CONST(-0.22059769010887326), FX16_CONST(-0.975364885116657), + FX16_CONST(-0.22209362097320343), FX16_CONST(-0.9750253450669941), + FX16_CONST(-0.22358902922979004), FX16_CONST(-0.9746835106885107), + FX16_CONST(-0.2250839113597926), FX16_CONST(-0.9743393827855759), + FX16_CONST(-0.22657826384560992), FX16_CONST(-0.973992962167956), + FX16_CONST(-0.22807208317088581), FX16_CONST(-0.9736442496508119), + FX16_CONST(-0.2295653658205187), FX16_CONST(-0.9732932460546982), + FX16_CONST(-0.23105810828067108), FX16_CONST(-0.9729399522055602), + FX16_CONST(-0.23255030703877494), FX16_CONST(-0.9725843689347323), + FX16_CONST(-0.23404195858354326), FX16_CONST(-0.9722264970789364), + FX16_CONST(-0.23553305940497551), FX16_CONST(-0.9718663374802794), + FX16_CONST(-0.23702360599436695), FX16_CONST(-0.9715038909862519), + FX16_CONST(-0.2385135948443183), FX16_CONST(-0.9711391584497252), + FX16_CONST(-0.24000302244874153), FX16_CONST(-0.9707721407289502), + FX16_CONST(-0.2414918853028691), FX16_CONST(-0.9704028386875555), + FX16_CONST(-0.24298017990326382), FX16_CONST(-0.970031253194544), + FX16_CONST(-0.24446790274782426), FX16_CONST(-0.9696573851242924), + FX16_CONST(-0.24595505033579443), FX16_CONST(-0.9692812353565485), + FX16_CONST(-0.24744161916777327), FX16_CONST(-0.9689028047764289), + FX16_CONST(-0.24892760574571987), FX16_CONST(-0.9685220942744174), + FX16_CONST(-0.2504130065729651), FX16_CONST(-0.9681391047463624), + FX16_CONST(-0.25189781815421697), FX16_CONST(-0.9677538370934755), + FX16_CONST(-0.2533820369955699), FX16_CONST(-0.9673662922223286), + FX16_CONST(-0.25486565960451446), FX16_CONST(-0.9669764710448522), + FX16_CONST(-0.2563486824899429), FX16_CONST(-0.9665843744783331), + FX16_CONST(-0.25783110216215877), FX16_CONST(-0.9661900034454126), + FX16_CONST(-0.2593129151328862), FX16_CONST(-0.9657933588740837), + FX16_CONST(-0.2607941179152756), FX16_CONST(-0.9653944416976894), + FX16_CONST(-0.2622747070239134), FX16_CONST(-0.9649932528549204), + FX16_CONST(-0.26375467897483135), FX16_CONST(-0.9645897932898128), + FX16_CONST(-0.2652340302855115), FX16_CONST(-0.9641840639517458), + FX16_CONST(-0.26671275747489825), FX16_CONST(-0.96377606579544), + FX16_CONST(-0.2681908570634032), FX16_CONST(-0.963365799780954), + FX16_CONST(-0.2696683255729148), FX16_CONST(-0.962953266873684), + FX16_CONST(-0.2711451595268079), FX16_CONST(-0.9625384680443592), + FX16_CONST(-0.27262135544994903), FX16_CONST(-0.9621214042690416), + FX16_CONST(-0.27409690986870616), FX16_CONST(-0.9617020765291227), + FX16_CONST(-0.2755718193109581), FX16_CONST(-0.9612804858113206), + FX16_CONST(-0.2770460803061), FX16_CONST(-0.9608566331076795), + FX16_CONST(-0.2785196893850529), FX16_CONST(-0.9604305194155659), + FX16_CONST(-0.2799926430802732), FX16_CONST(-0.960002145737666), + FX16_CONST(-0.28146493792575766), FX16_CONST(-0.9595715130819846), + FX16_CONST(-0.28293657045705517), FX16_CONST(-0.959138622461842), + FX16_CONST(-0.2844075372112718), FX16_CONST(-0.9587034748958716), + FX16_CONST(-0.28587783472708034), FX16_CONST(-0.9582660714080178), + FX16_CONST(-0.2873474595447294), FX16_CONST(-0.9578264130275329), + FX16_CONST(-0.28881640820604954), FX16_CONST(-0.9573845007889759), + FX16_CONST(-0.2902846772544621), FX16_CONST(-0.9569403357322089), + FX16_CONST(-0.2917522632349892), FX16_CONST(-0.9564939189023951), + FX16_CONST(-0.29321916269425874), FX16_CONST(-0.9560452513499964), + FX16_CONST(-0.29468537218051416), FX16_CONST(-0.9555943341307711), + FX16_CONST(-0.2961508882436238), FX16_CONST(-0.9551411683057708), + FX16_CONST(-0.2976157074350859), FX16_CONST(-0.9546857549413384), + FX16_CONST(-0.2990798263080403), FX16_CONST(-0.9542280951091057), + FX16_CONST(-0.30054324141727345), FX16_CONST(-0.9537681898859903), + FX16_CONST(-0.3020059493192278), FX16_CONST(-0.953306040354194), + FX16_CONST(-0.3034679465720112), FX16_CONST(-0.9528416476011987), + FX16_CONST(-0.30492922973540243), FX16_CONST(-0.9523750127197659), + FX16_CONST(-0.3063897953708607), FX16_CONST(-0.9519061368079323), + FX16_CONST(-0.3078496400415348), FX16_CONST(-0.9514350209690083), + FX16_CONST(-0.3093087603122688), FX16_CONST(-0.9509616663115751), + FX16_CONST(-0.3107671527496113), FX16_CONST(-0.9504860739494818), + FX16_CONST(-0.3122248139218249), FX16_CONST(-0.950008245001843), + FX16_CONST(-0.3136817403988912), FX16_CONST(-0.9495281805930368), + FX16_CONST(-0.3151379287525222), FX16_CONST(-0.9490458818527007), + FX16_CONST(-0.31659337555616585), FX16_CONST(-0.9485613499157303), + FX16_CONST(-0.31804807738501467), FX16_CONST(-0.9480745859222763), + FX16_CONST(-0.3195020308160156), FX16_CONST(-0.9475855910177412), + FX16_CONST(-0.32095523242787527), FX16_CONST(-0.9470943663527772), + FX16_CONST(-0.32240767880106963), FX16_CONST(-0.9466009130832836), + FX16_CONST(-0.3238593665178528), FX16_CONST(-0.9461052323704034), + FX16_CONST(-0.325310292162263), FX16_CONST(-0.9456073253805213), + FX16_CONST(-0.32676045232013157), FX16_CONST(-0.9451071932852606), + FX16_CONST(-0.3282098435790925), FX16_CONST(-0.9446048372614803), + FX16_CONST(-0.3296584625285872), FX16_CONST(-0.9441002584912728), + FX16_CONST(-0.33110630575987626), FX16_CONST(-0.9435934581619604), + FX16_CONST(-0.3325533698660442), FX16_CONST(-0.9430844374660935), + FX16_CONST(-0.3339996514420091), FX16_CONST(-0.942573197601447), + FX16_CONST(-0.3354451470845315), FX16_CONST(-0.9420597397710174), + FX16_CONST(-0.3368898533922201), FX16_CONST(-0.9415440651830208), + FX16_CONST(-0.3383337669655409), FX16_CONST(-0.9410261750508894), + FX16_CONST(-0.3397768844068268), FX16_CONST(-0.9405060705932684), + FX16_CONST(-0.34121920232028247), FX16_CONST(-0.9399837530340139), + FX16_CONST(-0.3426607173119942), FX16_CONST(-0.93945922360219), + FX16_CONST(-0.3441014259899388), FX16_CONST(-0.9389324835320646), + FX16_CONST(-0.34554132496398876), FX16_CONST(-0.9384035340631083), + FX16_CONST(-0.3469804108459235), FX16_CONST(-0.9378723764399899), + FX16_CONST(-0.34841868024943456), FX16_CONST(-0.937339011912575), + FX16_CONST(-0.34985612979013464), FX16_CONST(-0.9368034417359217), + FX16_CONST(-0.351292756085567), FX16_CONST(-0.9362656671702783), + FX16_CONST(-0.3527285557552107), FX16_CONST(-0.9357256894810804), + FX16_CONST(-0.3541635254204901), FX16_CONST(-0.9351835099389477), + FX16_CONST(-0.3555976617047838), FX16_CONST(-0.9346391298196808), + FX16_CONST(-0.3570309612334301), FX16_CONST(-0.9340925504042589), + FX16_CONST(-0.3584634206337364), FX16_CONST(-0.9335437729788363), + FX16_CONST(-0.3598950365349881), FX16_CONST(-0.932992798834739), + FX16_CONST(-0.36132580556845395), FX16_CONST(-0.9324396292684625), + FX16_CONST(-0.36275572436739706), FX16_CONST(-0.9318842655816681), + FX16_CONST(-0.3641847895670799), FX16_CONST(-0.9313267090811804), + FX16_CONST(-0.3656129978047736), FX16_CONST(-0.9307669610789838), + FX16_CONST(-0.36704034571976707), FX16_CONST(-0.9302050228922191), + FX16_CONST(-0.3684668299533724), FX16_CONST(-0.9296408958431812), + FX16_CONST(-0.3698924471489339), FX16_CONST(-0.9290745812593159), + FX16_CONST(-0.37131719395183743), FX16_CONST(-0.9285060804732156), + FX16_CONST(-0.37274106700951587), FX16_CONST(-0.9279353948226178), + FX16_CONST(-0.3741640629714578), FX16_CONST(-0.9273625256504011), + FX16_CONST(-0.37558617848921716), FX16_CONST(-0.9267874743045819), + FX16_CONST(-0.3770074102164179), FX16_CONST(-0.9262102421383115), + FX16_CONST(-0.3784277548087654), FX16_CONST(-0.9256308305098728), + FX16_CONST(-0.37984720892405116), FX16_CONST(-0.9250492407826776), + FX16_CONST(-0.3812657692221621), FX16_CONST(-0.9244654743252627), + FX16_CONST(-0.38268343236508967), FX16_CONST(-0.9238795325112868), + FX16_CONST(-0.3841001950169351), FX16_CONST(-0.9232914167195276), + FX16_CONST(-0.3855160538439186), FX16_CONST(-0.9227011283338786), + FX16_CONST(-0.3869310055143885), FX16_CONST(-0.9221086687433452), + FX16_CONST(-0.38834504669882636), FX16_CONST(-0.9215140393420419), + FX16_CONST(-0.38975817406985624), FX16_CONST(-0.9209172415291895), + FX16_CONST(-0.3911703843022538), FX16_CONST(-0.9203182767091106), + FX16_CONST(-0.3925816740729512), FX16_CONST(-0.9197171462912275), + FX16_CONST(-0.39399204006104793), FX16_CONST(-0.9191138516900578), + FX16_CONST(-0.3954014789478163), FX16_CONST(-0.9185083943252123), + FX16_CONST(-0.39680998741671003), FX16_CONST(-0.9179007756213906), + FX16_CONST(-0.39821756215337345), FX16_CONST(-0.917290997008378), + FX16_CONST(-0.39962419984564684), FX16_CONST(-0.9166790599210427), + FX16_CONST(-0.4010298971835754), FX16_CONST(-0.9160649657993318), + FX16_CONST(-0.4024346508594184), FX16_CONST(-0.9154487160882678), + FX16_CONST(-0.4038384575676542), FX16_CONST(-0.9148303122379461), + FX16_CONST(-0.4052413140049897), FX16_CONST(-0.9142097557035307), + FX16_CONST(-0.406643216870369), FX16_CONST(-0.9135870479452508), + FX16_CONST(-0.40804416286497835), FX16_CONST(-0.9129621904283983), + FX16_CONST(-0.4094441486922574), FX16_CONST(-0.9123351846233229), + FX16_CONST(-0.4108431710579039), FX16_CONST(-0.9117060320054299), + FX16_CONST(-0.4122412266698826), FX16_CONST(-0.9110747340551765), + FX16_CONST(-0.4136383122384344), FX16_CONST(-0.9104412922580672), + FX16_CONST(-0.41503442447608163), FX16_CONST(-0.9098057081046522), + FX16_CONST(-0.41642956009763693), FX16_CONST(-0.9091679830905225), + FX16_CONST(-0.4178237158202122), FX16_CONST(-0.9085281187163061), + FX16_CONST(-0.419216888363224), FX16_CONST(-0.9078861164876662), + FX16_CONST(-0.42060907444840234), FX16_CONST(-0.9072419779152959), + FX16_CONST(-0.4220002707997996), FX16_CONST(-0.9065957045149154), + FX16_CONST(-0.4233904741437957), FX16_CONST(-0.9059472978072686), + FX16_CONST(-0.42477968120910864), FX16_CONST(-0.9052967593181188), + FX16_CONST(-0.4261678887267996), FX16_CONST(-0.9046440905782462), + FX16_CONST(-0.4275550934302818), FX16_CONST(-0.9039892931234434), + FX16_CONST(-0.4289412920553294), FX16_CONST(-0.9033323684945119), + FX16_CONST(-0.43032648134008267), FX16_CONST(-0.9026733182372588), + FX16_CONST(-0.43171065802505704), FX16_CONST(-0.9020121439024933), + FX16_CONST(-0.43309381885315185), FX16_CONST(-0.901348847046022), + FX16_CONST(-0.43447596056965576), FX16_CONST(-0.9006834292286469), + FX16_CONST(-0.4358570799222553), FX16_CONST(-0.9000158920161603), + FX16_CONST(-0.43723717366104403), FX16_CONST(-0.8993462369793416), + FX16_CONST(-0.4386162385385273), FX16_CONST(-0.898674465693954), + FX16_CONST(-0.4399942713096331), FX16_CONST(-0.8980005797407399), + FX16_CONST(-0.44137126873171667), FX16_CONST(-0.8973245807054183), + FX16_CONST(-0.44274722756456975), FX16_CONST(-0.8966464701786804), + FX16_CONST(-0.4441221445704291), FX16_CONST(-0.8959662497561852), + FX16_CONST(-0.44549601651398174), FX16_CONST(-0.8952839210385575), + FX16_CONST(-0.44686884016237394), FX16_CONST(-0.8945994856313828), + FX16_CONST(-0.44824061228521983), FX16_CONST(-0.8939129451452033), + FX16_CONST(-0.44961132965460665), FX16_CONST(-0.8932243011955153), + FX16_CONST(-0.45098098904510364), FX16_CONST(-0.8925335554027647), + FX16_CONST(-0.45234958723377083), FX16_CONST(-0.8918407093923427), + FX16_CONST(-0.45371712100016354), FX16_CONST(-0.8911457647945834), + FX16_CONST(-0.45508358712634367), FX16_CONST(-0.890448723244758), + FX16_CONST(-0.4564489823968839), FX16_CONST(-0.8897495863830728), + FX16_CONST(-0.45781330359887695), FX16_CONST(-0.8890483558546647), + FX16_CONST(-0.459176547521944), FX16_CONST(-0.8883450333095964), + FX16_CONST(-0.46053871095824006), FX16_CONST(-0.8876396204028539), + FX16_CONST(-0.4618997907024625), FX16_CONST(-0.8869321187943423), + FX16_CONST(-0.4632597835518601), FX16_CONST(-0.8862225301488806), + FX16_CONST(-0.46461868630623787), FX16_CONST(-0.8855108561362), + FX16_CONST(-0.46597649576796596), FX16_CONST(-0.8847970984309379), + FX16_CONST(-0.46733320874198836), FX16_CONST(-0.884081258712635), + FX16_CONST(-0.4686888220358276), FX16_CONST(-0.8833633386657318), + FX16_CONST(-0.47004333245959545), FX16_CONST(-0.8826433399795629), + FX16_CONST(-0.47139673682599764), FX16_CONST(-0.881921264348355), + FX16_CONST(-0.4727490319503425), FX16_CONST(-0.8811971134712222), + FX16_CONST(-0.47410021465054986), FX16_CONST(-0.8804708890521609), + FX16_CONST(-0.47545028174715587), FX16_CONST(-0.8797425928000474), + FX16_CONST(-0.47679923006332187), FX16_CONST(-0.8790122264286336), + FX16_CONST(-0.47814705642484295), FX16_CONST(-0.8782797916565416), + FX16_CONST(-0.47949375766015306), FX16_CONST(-0.8775452902072612), + FX16_CONST(-0.48083933060033374), FX16_CONST(-0.8768087238091458), + FX16_CONST(-0.48218377207912266), FX16_CONST(-0.8760700941954066), + FX16_CONST(-0.4835270789329184), FX16_CONST(-0.875329403104111), + FX16_CONST(-0.48486924800079095), FX16_CONST(-0.8745866522781762), + FX16_CONST(-0.48621027612448636), FX16_CONST(-0.8738418434653669), + FX16_CONST(-0.48755016014843566), FX16_CONST(-0.8730949784182902), + FX16_CONST(-0.48888889691976306), FX16_CONST(-0.8723460588943915), + FX16_CONST(-0.49022648328829116), FX16_CONST(-0.8715950866559511), + FX16_CONST(-0.4915629161065497), FX16_CONST(-0.8708420634700791), + FX16_CONST(-0.4928981922297839), FX16_CONST(-0.8700869911087115), + FX16_CONST(-0.4942323085159598), FX16_CONST(-0.8693298713486067), + FX16_CONST(-0.4955652618257723), FX16_CONST(-0.868570705971341), + FX16_CONST(-0.49689704902265447), FX16_CONST(-0.8678094967633033), + FX16_CONST(-0.49822766697278154), FX16_CONST(-0.8670462455156929), + FX16_CONST(-0.4995571125450817), FX16_CONST(-0.8662809540245131), + FX16_CONST(-0.5008853826112407), FX16_CONST(-0.8655136240905691), + FX16_CONST(-0.5022124740457106), FX16_CONST(-0.8647442575194625), + FX16_CONST(-0.5035383837257175), FX16_CONST(-0.8639728561215868), + FX16_CONST(-0.5048631085312676), FX16_CONST(-0.8631994217121242), + FX16_CONST(-0.506186645345155), FX16_CONST(-0.8624239561110407), + FX16_CONST(-0.5075089910529708), FX16_CONST(-0.8616464611430814), + FX16_CONST(-0.5088301425431071), FX16_CONST(-0.8608669386377673), + FX16_CONST(-0.5101500967067666), FX16_CONST(-0.8600853904293903), + FX16_CONST(-0.5114688504379703), FX16_CONST(-0.8593018183570085), + FX16_CONST(-0.5127864006335627), FX16_CONST(-0.858516224264443), + FX16_CONST(-0.5141027441932216), FX16_CONST(-0.8577286100002721), + FX16_CONST(-0.5154178780194629), FX16_CONST(-0.8569389774178288), + FX16_CONST(-0.5167317990176497), FX16_CONST(-0.8561473283751947), + FX16_CONST(-0.5180445040959992), FX16_CONST(-0.8553536647351961), + FX16_CONST(-0.5193559901655895), FX16_CONST(-0.8545579883654005), + FX16_CONST(-0.5206662541403669), FX16_CONST(-0.8537603011381115), + FX16_CONST(-0.5219752929371543), FX16_CONST(-0.8529606049303637), + FX16_CONST(-0.5232831034756564), FX16_CONST(-0.8521589016239198), + FX16_CONST(-0.5245896826784687), FX16_CONST(-0.8513551931052653), + FX16_CONST(-0.5258950274710846), FX16_CONST(-0.8505494812656035), + FX16_CONST(-0.5271991347819011), FX16_CONST(-0.8497417680008527), + FX16_CONST(-0.5285020015422283), FX16_CONST(-0.8489320552116397), + FX16_CONST(-0.5298036246862946), FX16_CONST(-0.8481203448032972), + FX16_CONST(-0.5311040011512547), FX16_CONST(-0.8473066386858585), + FX16_CONST(-0.5324031278771978), FX16_CONST(-0.8464909387740521), + FX16_CONST(-0.533701001807153), FX16_CONST(-0.8456732469872991), + FX16_CONST(-0.5349976198870969), FX16_CONST(-0.8448535652497072), + FX16_CONST(-0.5362929790659631), FX16_CONST(-0.8440318954900665), + FX16_CONST(-0.5375870762956455), FX16_CONST(-0.8432082396418454), + FX16_CONST(-0.5388799085310082), FX16_CONST(-0.842382599643186), + FX16_CONST(-0.5401714727298929), FX16_CONST(-0.8415549774368984), + FX16_CONST(-0.5414617658531232), FX16_CONST(-0.8407253749704582), + FX16_CONST(-0.5427507848645158), FX16_CONST(-0.8398937941959996), + FX16_CONST(-0.5440385267308838), FX16_CONST(-0.8390602370703127), + FX16_CONST(-0.5453249884220461), FX16_CONST(-0.8382247055548382), + FX16_CONST(-0.5466101669108347), FX16_CONST(-0.837387201615662), + FX16_CONST(-0.5478940591731002), FX16_CONST(-0.836547727223512), + FX16_CONST(-0.5491766621877194), FX16_CONST(-0.8357062843537527), + FX16_CONST(-0.5504579729366047), FX16_CONST(-0.8348628749863801), + FX16_CONST(-0.5517379884047074), FX16_CONST(-0.8340175011060181), + FX16_CONST(-0.5530167055800274), FX16_CONST(-0.8331701647019133), + FX16_CONST(-0.55429412145362), FX16_CONST(-0.8323208677679297), + FX16_CONST(-0.555570233019602), FX16_CONST(-0.8314696123025455), + FX16_CONST(-0.5568450372751599), FX16_CONST(-0.8306164003088464), + FX16_CONST(-0.5581185312205561), FX16_CONST(-0.829761233794523), + FX16_CONST(-0.5593907118591358), FX16_CONST(-0.8289041147718651), + FX16_CONST(-0.5606615761973359), FX16_CONST(-0.8280450452577559), + FX16_CONST(-0.5619311212446894), FX16_CONST(-0.8271840272736691), + FX16_CONST(-0.5631993440138339), FX16_CONST(-0.8263210628456636), + FX16_CONST(-0.5644662415205194), FX16_CONST(-0.8254561540043776), + FX16_CONST(-0.5657318107836132), FX16_CONST(-0.8245893027850253), + FX16_CONST(-0.5669960488251085), FX16_CONST(-0.8237205112273915), + FX16_CONST(-0.5682589526701315), FX16_CONST(-0.8228497813758264), + FX16_CONST(-0.5695205193469473), FX16_CONST(-0.8219771152792416), + FX16_CONST(-0.5707807458869671), FX16_CONST(-0.8211025149911048), + FX16_CONST(-0.572039629324757), FX16_CONST(-0.8202259825694347), + FX16_CONST(-0.573297166698042), FX16_CONST(-0.8193475200767971), + FX16_CONST(-0.5745533550477157), FX16_CONST(-0.8184671295802988), + FX16_CONST(-0.5758081914178453), FX16_CONST(-0.8175848131515837), + FX16_CONST(-0.5770616728556793), FX16_CONST(-0.816700572866828), + FX16_CONST(-0.5783137964116555), FX16_CONST(-0.8158144108067339), + FX16_CONST(-0.5795645591394057), FX16_CONST(-0.8149263290565266), + FX16_CONST(-0.5808139580957643), FX16_CONST(-0.8140363297059485), + FX16_CONST(-0.5820619903407754), FX16_CONST(-0.8131444148492536), + FX16_CONST(-0.5833086529376983), FX16_CONST(-0.8122505865852039), + FX16_CONST(-0.5845539429530151), FX16_CONST(-0.8113548470170638), + FX16_CONST(-0.5857978574564389), FX16_CONST(-0.8104571982525949), + FX16_CONST(-0.5870403935209177), FX16_CONST(-0.8095576424040515), + FX16_CONST(-0.5882815482226451), FX16_CONST(-0.8086561815881751), + FX16_CONST(-0.5895213186410639), FX16_CONST(-0.8077528179261904), + FX16_CONST(-0.5907597018588739), FX16_CONST(-0.8068475535437994), + FX16_CONST(-0.5919966949620409), FX16_CONST(-0.8059403905711764), + FX16_CONST(-0.5932322950397998), FX16_CONST(-0.8050313311429635), + FX16_CONST(-0.5944664991846642), FX16_CONST(-0.8041203773982659), + FX16_CONST(-0.5956993044924332), FX16_CONST(-0.8032075314806449), + FX16_CONST(-0.5969307080621965), FX16_CONST(-0.8022927955381157), + FX16_CONST(-0.5981607069963422), FX16_CONST(-0.8013761717231404), + FX16_CONST(-0.5993892984005645), FX16_CONST(-0.8004576621926228), + FX16_CONST(-0.6006164793838686), FX16_CONST(-0.7995372691079052), + FX16_CONST(-0.6018422470585799), FX16_CONST(-0.7986149946347609), + FX16_CONST(-0.6030665985403482), FX16_CONST(-0.7976908409433912), + FX16_CONST(-0.6042895309481559), FX16_CONST(-0.7967648102084189), + FX16_CONST(-0.6055110414043254), FX16_CONST(-0.7958369046088836), + FX16_CONST(-0.6067311270345245), FX16_CONST(-0.794907126328237), + FX16_CONST(-0.6079497849677735), FX16_CONST(-0.7939754775543373), + FX16_CONST(-0.6091670123364531), FX16_CONST(-0.7930419604794438), + FX16_CONST(-0.6103828062763095), FX16_CONST(-0.7921065773002123), + FX16_CONST(-0.6115971639264618), FX16_CONST(-0.7911693302176903), + FX16_CONST(-0.6128100824294097), FX16_CONST(-0.79023022143731), + FX16_CONST(-0.6140215589310382), FX16_CONST(-0.7892892531688859), + FX16_CONST(-0.6152315905806267), FX16_CONST(-0.7883464276266063), + FX16_CONST(-0.6164401745308536), FX16_CONST(-0.7874017470290314), + FX16_CONST(-0.6176473079378038), FX16_CONST(-0.7864552135990859), + FX16_CONST(-0.6188529879609762), FX16_CONST(-0.785506829564054), + FX16_CONST(-0.6200572117632892), FX16_CONST(-0.7845565971555752), + FX16_CONST(-0.6212599765110874), FX16_CONST(-0.7836045186096384), + FX16_CONST(-0.6224612793741499), FX16_CONST(-0.7826505961665758), + FX16_CONST(-0.6236611175256946), FX16_CONST(-0.7816948320710594), + FX16_CONST(-0.6248594881423862), FX16_CONST(-0.7807372285720946), + FX16_CONST(-0.6260563884043435), FX16_CONST(-0.7797777879230146), + FX16_CONST(-0.6272518154951439), FX16_CONST(-0.7788165123814762), + FX16_CONST(-0.6284457666018326), FX16_CONST(-0.7778534042094533), + FX16_CONST(-0.629638238914927), FX16_CONST(-0.7768884656732324), + FX16_CONST(-0.6308292296284242), FX16_CONST(-0.7759216990434078), + FX16_CONST(-0.632018735939809), FX16_CONST(-0.7749531065948739), + FX16_CONST(-0.6332067550500573), FX16_CONST(-0.7739826906068228), + FX16_CONST(-0.6343932841636453), FX16_CONST(-0.7730104533627371), + FX16_CONST(-0.6355783204885561), FX16_CONST(-0.7720363971503845), + FX16_CONST(-0.6367618612362843), FX16_CONST(-0.7710605242618137), + FX16_CONST(-0.6379439036218439), FX16_CONST(-0.7700828369933481), + FX16_CONST(-0.6391244448637757), FX16_CONST(-0.7691033376455797), + FX16_CONST(-0.6403034821841515), FX16_CONST(-0.7681220285233656), + FX16_CONST(-0.641481012808583), FX16_CONST(-0.7671389119358205), + FX16_CONST(-0.6426570339662269), FX16_CONST(-0.7661539901963129), + FX16_CONST(-0.6438315428897913), FX16_CONST(-0.7651672656224591), + FX16_CONST(-0.6450045368155438), FX16_CONST(-0.7641787405361168), + FX16_CONST(-0.6461760129833164), FX16_CONST(-0.7631884172633813), + FX16_CONST(-0.6473459686365118), FX16_CONST(-0.7621962981345791), + FX16_CONST(-0.6485144010221123), FX16_CONST(-0.7612023854842619), + FX16_CONST(-0.6496813073906832), FX16_CONST(-0.7602066816512024), + FX16_CONST(-0.6508466849963808), FX16_CONST(-0.7592091889783882), + FX16_CONST(-0.6520105310969595), FX16_CONST(-0.7582099098130154), + FX16_CONST(-0.6531728429537765), FX16_CONST(-0.7572088465064848), + FX16_CONST(-0.6543336178318003), FX16_CONST(-0.7562060014143946), + FX16_CONST(-0.6554928529996153), FX16_CONST(-0.7552013768965365), + FX16_CONST(-0.6566505457294288), FX16_CONST(-0.7541949753168894), + FX16_CONST(-0.6578066932970785), FX16_CONST(-0.7531867990436125), + FX16_CONST(-0.6589612929820373), FX16_CONST(-0.7521768504490427), + FX16_CONST(-0.6601143420674203), FX16_CONST(-0.7511651319096866), + FX16_CONST(-0.6612658378399922), FX16_CONST(-0.7501516458062151), + FX16_CONST(-0.6624157775901718), FX16_CONST(-0.7491363945234593), + FX16_CONST(-0.6635641586120397), FX16_CONST(-0.7481193804504037), + FX16_CONST(-0.6647109782033448), FX16_CONST(-0.7471006059801802), + FX16_CONST(-0.6658562336655094), FX16_CONST(-0.746080073510064), + FX16_CONST(-0.6669999223036374), FX16_CONST(-0.7450577854414661), + FX16_CONST(-0.6681420414265185), FX16_CONST(-0.7440337441799293), + FX16_CONST(-0.6692825883466358), FX16_CONST(-0.7430079521351219), + FX16_CONST(-0.670421560380173), FX16_CONST(-0.7419804117208311), + FX16_CONST(-0.6715589548470184), FX16_CONST(-0.7409511253549591), + FX16_CONST(-0.6726947690707727), FX16_CONST(-0.7399200954595163), + FX16_CONST(-0.6738290003787559), FX16_CONST(-0.7388873244606152), + FX16_CONST(-0.674961646102012), FX16_CONST(-0.737852814788466), + FX16_CONST(-0.6760927035753158), FX16_CONST(-0.73681656887737), + FX16_CONST(-0.6772221701371803), FX16_CONST(-0.7357785891657136), + FX16_CONST(-0.6783500431298612), FX16_CONST(-0.7347388780959637), + FX16_CONST(-0.6794763198993649), FX16_CONST(-0.7336974381146604), + FX16_CONST(-0.680600997795453), FX16_CONST(-0.7326542716724128), + FX16_CONST(-0.6817240741716496), FX16_CONST(-0.7316093812238927), + FX16_CONST(-0.682845546385248), FX16_CONST(-0.7305627692278277), + FX16_CONST(-0.6839654117973154), FX16_CONST(-0.729514438146997), + FX16_CONST(-0.6850836677727001), FX16_CONST(-0.7284643904482254), + FX16_CONST(-0.6862003116800385), FX16_CONST(-0.7274126286023759), + FX16_CONST(-0.6873153408917592), FX16_CONST(-0.7263591550843459), + FX16_CONST(-0.6884287527840903), FX16_CONST(-0.7253039723730609), + FX16_CONST(-0.6895405447370668), FX16_CONST(-0.724247082951467), + FX16_CONST(-0.6906507141345344), FX16_CONST(-0.7231884893065277), + FX16_CONST(-0.6917592583641576), FX16_CONST(-0.7221281939292155), + FX16_CONST(-0.6928661748174246), FX16_CONST(-0.7210661993145081), + FX16_CONST(-0.6939714608896538), FX16_CONST(-0.7200025079613819), + FX16_CONST(-0.6950751139800008), FX16_CONST(-0.7189371223728045), + FX16_CONST(-0.696177131491463), FX16_CONST(-0.7178700450557317), + FX16_CONST(-0.6972775108308864), FX16_CONST(-0.7168012785210996), + FX16_CONST(-0.6983762494089728), FX16_CONST(-0.7157308252838187), + FX16_CONST(-0.6994733446402839), FX16_CONST(-0.714658687862769), + FX16_CONST(-0.7005687939432482), FX16_CONST(-0.7135848687807937), + FX16_CONST(-0.7016625947401685), FX16_CONST(-0.7125093705646924), + FX16_CONST(-0.7027547444572251), FX16_CONST(-0.7114321957452167), + FX16_CONST(-0.7038452405244848), FX16_CONST(-0.7103533468570625), + FX16_CONST(-0.7049340803759049), FX16_CONST(-0.7092728264388657), + FX16_CONST(-0.7060212614493395), FX16_CONST(-0.7081906370331955), + FX16_CONST(-0.7071067811865475), FX16_CONST(-0.7071067811865477), + FX16_CONST(-0.7081906370331953), FX16_CONST(-0.7060212614493397), + FX16_CONST(-0.7092728264388655), FX16_CONST(-0.7049340803759051), + FX16_CONST(-0.7103533468570623), FX16_CONST(-0.703845240524485), + FX16_CONST(-0.7114321957452164), FX16_CONST(-0.7027547444572253), + FX16_CONST(-0.7125093705646922), FX16_CONST(-0.7016625947401687), + FX16_CONST(-0.7135848687807935), FX16_CONST(-0.7005687939432484), + FX16_CONST(-0.7146586878627688), FX16_CONST(-0.6994733446402841), + FX16_CONST(-0.7157308252838185), FX16_CONST(-0.698376249408973), + FX16_CONST(-0.7168012785210994), FX16_CONST(-0.6972775108308866), + FX16_CONST(-0.7178700450557315), FX16_CONST(-0.6961771314914632), + FX16_CONST(-0.7189371223728044), FX16_CONST(-0.695075113980001), + FX16_CONST(-0.7200025079613817), FX16_CONST(-0.693971460889654), + FX16_CONST(-0.7210661993145079), FX16_CONST(-0.6928661748174249), + FX16_CONST(-0.7221281939292152), FX16_CONST(-0.6917592583641579), + FX16_CONST(-0.7231884893065275), FX16_CONST(-0.6906507141345346), + FX16_CONST(-0.7242470829514668), FX16_CONST(-0.689540544737067), + FX16_CONST(-0.7253039723730607), FX16_CONST(-0.6884287527840905), + FX16_CONST(-0.7263591550843458), FX16_CONST(-0.6873153408917594), + FX16_CONST(-0.7274126286023757), FX16_CONST(-0.6862003116800387), + FX16_CONST(-0.7284643904482252), FX16_CONST(-0.6850836677727004), + FX16_CONST(-0.7295144381469968), FX16_CONST(-0.6839654117973156), + FX16_CONST(-0.7305627692278275), FX16_CONST(-0.6828455463852482), + FX16_CONST(-0.7316093812238925), FX16_CONST(-0.6817240741716498), + FX16_CONST(-0.7326542716724127), FX16_CONST(-0.6806009977954532), + FX16_CONST(-0.7336974381146601), FX16_CONST(-0.6794763198993651), + FX16_CONST(-0.7347388780959635), FX16_CONST(-0.6783500431298615), + FX16_CONST(-0.7357785891657134), FX16_CONST(-0.6772221701371806), + FX16_CONST(-0.7368165688773698), FX16_CONST(-0.676092703575316), + FX16_CONST(-0.7378528147884658), FX16_CONST(-0.6749616461020123), + FX16_CONST(-0.738887324460615), FX16_CONST(-0.6738290003787561), + FX16_CONST(-0.7399200954595161), FX16_CONST(-0.672694769070773), + FX16_CONST(-0.7409511253549589), FX16_CONST(-0.6715589548470187), + FX16_CONST(-0.741980411720831), FX16_CONST(-0.6704215603801732), + FX16_CONST(-0.7430079521351217), FX16_CONST(-0.669282588346636), + FX16_CONST(-0.7440337441799291), FX16_CONST(-0.6681420414265187), + FX16_CONST(-0.7450577854414658), FX16_CONST(-0.6669999223036376), + FX16_CONST(-0.7460800735100638), FX16_CONST(-0.6658562336655096), + FX16_CONST(-0.7471006059801799), FX16_CONST(-0.664710978203345), + FX16_CONST(-0.7481193804504035), FX16_CONST(-0.6635641586120399), + FX16_CONST(-0.749136394523459), FX16_CONST(-0.662415777590172), + FX16_CONST(-0.750151645806215), FX16_CONST(-0.6612658378399924), + FX16_CONST(-0.7511651319096864), FX16_CONST(-0.6601143420674205), + FX16_CONST(-0.7521768504490425), FX16_CONST(-0.6589612929820375), + FX16_CONST(-0.7531867990436124), FX16_CONST(-0.6578066932970787), + FX16_CONST(-0.7541949753168892), FX16_CONST(-0.656650545729429), + FX16_CONST(-0.7552013768965363), FX16_CONST(-0.6554928529996156), + FX16_CONST(-0.7562060014143944), FX16_CONST(-0.6543336178318007), + FX16_CONST(-0.7572088465064842), FX16_CONST(-0.6531728429537771), + FX16_CONST(-0.7582099098130151), FX16_CONST(-0.6520105310969597), + FX16_CONST(-0.759209188978388), FX16_CONST(-0.650846684996381), + FX16_CONST(-0.7602066816512024), FX16_CONST(-0.6496813073906831), + FX16_CONST(-0.761202385484262), FX16_CONST(-0.6485144010221122), + FX16_CONST(-0.7621962981345786), FX16_CONST(-0.6473459686365125), + FX16_CONST(-0.763188417263381), FX16_CONST(-0.6461760129833166), + FX16_CONST(-0.7641787405361166), FX16_CONST(-0.6450045368155441), + FX16_CONST(-0.765167265622459), FX16_CONST(-0.6438315428897915), + FX16_CONST(-0.766153990196313), FX16_CONST(-0.6426570339662268), + FX16_CONST(-0.7671389119358201), FX16_CONST(-0.6414810128085836), + FX16_CONST(-0.7681220285233652), FX16_CONST(-0.640303482184152), + FX16_CONST(-0.7691033376455795), FX16_CONST(-0.639124444863776), + FX16_CONST(-0.7700828369933479), FX16_CONST(-0.6379439036218442), + FX16_CONST(-0.7710605242618138), FX16_CONST(-0.6367618612362842), + FX16_CONST(-0.7720363971503846), FX16_CONST(-0.635578320488556), + FX16_CONST(-0.7730104533627367), FX16_CONST(-0.6343932841636459), + FX16_CONST(-0.7739826906068226), FX16_CONST(-0.6332067550500575), + FX16_CONST(-0.7749531065948738), FX16_CONST(-0.6320187359398092), + FX16_CONST(-0.7759216990434076), FX16_CONST(-0.6308292296284246), + FX16_CONST(-0.7768884656732326), FX16_CONST(-0.6296382389149269), + FX16_CONST(-0.7778534042094527), FX16_CONST(-0.6284457666018332), + FX16_CONST(-0.7788165123814756), FX16_CONST(-0.6272518154951444), + FX16_CONST(-0.7797777879230143), FX16_CONST(-0.6260563884043437), + FX16_CONST(-0.7807372285720944), FX16_CONST(-0.6248594881423865), + FX16_CONST(-0.7816948320710595), FX16_CONST(-0.6236611175256945), + FX16_CONST(-0.7826505961665758), FX16_CONST(-0.6224612793741497), + FX16_CONST(-0.7836045186096379), FX16_CONST(-0.621259976511088), + FX16_CONST(-0.784556597155575), FX16_CONST(-0.6200572117632894), + FX16_CONST(-0.7855068295640538), FX16_CONST(-0.6188529879609764), + FX16_CONST(-0.7864552135990858), FX16_CONST(-0.617647307937804), + FX16_CONST(-0.7874017470290315), FX16_CONST(-0.6164401745308535), + FX16_CONST(-0.7883464276266059), FX16_CONST(-0.6152315905806273), + FX16_CONST(-0.7892892531688854), FX16_CONST(-0.6140215589310387), + FX16_CONST(-0.7902302214373099), FX16_CONST(-0.6128100824294099), + FX16_CONST(-0.7911693302176901), FX16_CONST(-0.611597163926462), + FX16_CONST(-0.7921065773002124), FX16_CONST(-0.6103828062763094), + FX16_CONST(-0.7930419604794439), FX16_CONST(-0.609167012336453), + FX16_CONST(-0.7939754775543368), FX16_CONST(-0.6079497849677741), + FX16_CONST(-0.7949071263282368), FX16_CONST(-0.6067311270345248), + FX16_CONST(-0.7958369046088835), FX16_CONST(-0.6055110414043257), + FX16_CONST(-0.7967648102084187), FX16_CONST(-0.6042895309481561), + FX16_CONST(-0.7976908409433912), FX16_CONST(-0.603066598540348), + FX16_CONST(-0.7986149946347605), FX16_CONST(-0.6018422470585805), + FX16_CONST(-0.7995372691079048), FX16_CONST(-0.6006164793838693), + FX16_CONST(-0.8004576621926226), FX16_CONST(-0.5993892984005648), + FX16_CONST(-0.8013761717231401), FX16_CONST(-0.5981607069963424), + FX16_CONST(-0.8022927955381157), FX16_CONST(-0.5969307080621964), + FX16_CONST(-0.803207531480645), FX16_CONST(-0.5956993044924331), + FX16_CONST(-0.8041203773982655), FX16_CONST(-0.5944664991846649), + FX16_CONST(-0.8050313311429634), FX16_CONST(-0.5932322950398001), + FX16_CONST(-0.8059403905711762), FX16_CONST(-0.5919966949620411), + FX16_CONST(-0.8068475535437992), FX16_CONST(-0.5907597018588743), + FX16_CONST(-0.8077528179261905), FX16_CONST(-0.5895213186410638), + FX16_CONST(-0.8086561815881746), FX16_CONST(-0.5882815482226458), + FX16_CONST(-0.809557642404051), FX16_CONST(-0.5870403935209183), + FX16_CONST(-0.8104571982525947), FX16_CONST(-0.5857978574564391), + FX16_CONST(-0.8113548470170637), FX16_CONST(-0.5845539429530153), + FX16_CONST(-0.812250586585204), FX16_CONST(-0.5833086529376983), + FX16_CONST(-0.8131444148492537), FX16_CONST(-0.5820619903407753), + FX16_CONST(-0.8140363297059481), FX16_CONST(-0.580813958095765), + FX16_CONST(-0.8149263290565264), FX16_CONST(-0.579564559139406), + FX16_CONST(-0.8158144108067337), FX16_CONST(-0.5783137964116557), + FX16_CONST(-0.8167005728668278), FX16_CONST(-0.5770616728556796), + FX16_CONST(-0.8175848131515838), FX16_CONST(-0.5758081914178452), + FX16_CONST(-0.8184671295802983), FX16_CONST(-0.5745533550477163), + FX16_CONST(-0.8193475200767967), FX16_CONST(-0.5732971666980425), + FX16_CONST(-0.8202259825694345), FX16_CONST(-0.5720396293247573), + FX16_CONST(-0.8211025149911046), FX16_CONST(-0.5707807458869674), + FX16_CONST(-0.8219771152792416), FX16_CONST(-0.5695205193469471), + FX16_CONST(-0.8228497813758264), FX16_CONST(-0.5682589526701314), + FX16_CONST(-0.8237205112273911), FX16_CONST(-0.566996048825109), + FX16_CONST(-0.8245893027850251), FX16_CONST(-0.5657318107836135), + FX16_CONST(-0.8254561540043774), FX16_CONST(-0.5644662415205196), + FX16_CONST(-0.8263210628456634), FX16_CONST(-0.5631993440138341), + FX16_CONST(-0.8271840272736692), FX16_CONST(-0.5619311212446892), + FX16_CONST(-0.8280450452577555), FX16_CONST(-0.5606615761973365), + FX16_CONST(-0.8289041147718647), FX16_CONST(-0.5593907118591365), + FX16_CONST(-0.8297612337945229), FX16_CONST(-0.5581185312205563), + FX16_CONST(-0.8306164003088462), FX16_CONST(-0.5568450372751601), + FX16_CONST(-0.8314696123025452), FX16_CONST(-0.5555702330196022), + FX16_CONST(-0.8323208677679298), FX16_CONST(-0.5542941214536199), + FX16_CONST(-0.8331701647019129), FX16_CONST(-0.5530167055800279), + FX16_CONST(-0.8340175011060179), FX16_CONST(-0.5517379884047077), + FX16_CONST(-0.8348628749863799), FX16_CONST(-0.5504579729366049), + FX16_CONST(-0.8357062843537526), FX16_CONST(-0.5491766621877198), + FX16_CONST(-0.8365477272235121), FX16_CONST(-0.5478940591731001), + FX16_CONST(-0.8373872016156616), FX16_CONST(-0.5466101669108354), + FX16_CONST(-0.8382247055548379), FX16_CONST(-0.5453249884220468), + FX16_CONST(-0.8390602370703125), FX16_CONST(-0.5440385267308842), + FX16_CONST(-0.8398937941959994), FX16_CONST(-0.542750784864516), + FX16_CONST(-0.8407253749704581), FX16_CONST(-0.5414617658531234), + FX16_CONST(-0.8415549774368986), FX16_CONST(-0.5401714727298927), + FX16_CONST(-0.8423825996431856), FX16_CONST(-0.5388799085310089), + FX16_CONST(-0.8432082396418452), FX16_CONST(-0.5375870762956457), + FX16_CONST(-0.8440318954900663), FX16_CONST(-0.5362929790659633), + FX16_CONST(-0.8448535652497071), FX16_CONST(-0.5349976198870973), + FX16_CONST(-0.8456732469872992), FX16_CONST(-0.5337010018071529), + FX16_CONST(-0.8464909387740518), FX16_CONST(-0.5324031278771985), + FX16_CONST(-0.8473066386858581), FX16_CONST(-0.5311040011512553), + FX16_CONST(-0.8481203448032971), FX16_CONST(-0.5298036246862949), + FX16_CONST(-0.8489320552116396), FX16_CONST(-0.5285020015422286), + FX16_CONST(-0.8497417680008525), FX16_CONST(-0.5271991347819013), + FX16_CONST(-0.8505494812656036), FX16_CONST(-0.5258950274710845), + FX16_CONST(-0.8513551931052649), FX16_CONST(-0.5245896826784693), + FX16_CONST(-0.8521589016239196), FX16_CONST(-0.5232831034756568), + FX16_CONST(-0.8529606049303635), FX16_CONST(-0.5219752929371545), + FX16_CONST(-0.8537603011381114), FX16_CONST(-0.5206662541403672), + FX16_CONST(-0.8545579883654005), FX16_CONST(-0.5193559901655894), + FX16_CONST(-0.8553536647351957), FX16_CONST(-0.5180445040959999), + FX16_CONST(-0.8561473283751942), FX16_CONST(-0.5167317990176502), + FX16_CONST(-0.8569389774178287), FX16_CONST(-0.5154178780194633), + FX16_CONST(-0.857728610000272), FX16_CONST(-0.5141027441932218), + FX16_CONST(-0.8585162242644429), FX16_CONST(-0.512786400633563), + FX16_CONST(-0.8593018183570085), FX16_CONST(-0.5114688504379702), + FX16_CONST(-0.8600853904293899), FX16_CONST(-0.5101500967067673), + FX16_CONST(-0.8608669386377671), FX16_CONST(-0.5088301425431073), + FX16_CONST(-0.8616464611430812), FX16_CONST(-0.507508991052971), + FX16_CONST(-0.8624239561110405), FX16_CONST(-0.5061866453451553), + FX16_CONST(-0.8631994217121243), FX16_CONST(-0.5048631085312674), + FX16_CONST(-0.8639728561215865), FX16_CONST(-0.503538383725718), + FX16_CONST(-0.8647442575194622), FX16_CONST(-0.5022124740457111), + FX16_CONST(-0.865513624090569), FX16_CONST(-0.500885382611241), + FX16_CONST(-0.8662809540245129), FX16_CONST(-0.49955711254508195), + FX16_CONST(-0.8670462455156926), FX16_CONST(-0.4982276669727818), + FX16_CONST(-0.8678094967633033), FX16_CONST(-0.49689704902265436), + FX16_CONST(-0.8685707059713407), FX16_CONST(-0.495565261825773), + FX16_CONST(-0.8693298713486066), FX16_CONST(-0.49423230851596), + FX16_CONST(-0.8700869911087113), FX16_CONST(-0.4928981922297842), + FX16_CONST(-0.8708420634700789), FX16_CONST(-0.49156291610654995), + FX16_CONST(-0.8715950866559511), FX16_CONST(-0.49022648328829105), + FX16_CONST(-0.8723460588943912), FX16_CONST(-0.48888889691976367), + FX16_CONST(-0.8730949784182899), FX16_CONST(-0.48755016014843633), + FX16_CONST(-0.8738418434653666), FX16_CONST(-0.48621027612448664), + FX16_CONST(-0.8745866522781761), FX16_CONST(-0.4848692480007912), + FX16_CONST(-0.8753294031041109), FX16_CONST(-0.4835270789329187), + FX16_CONST(-0.8760700941954067), FX16_CONST(-0.48218377207912255), + FX16_CONST(-0.8768087238091454), FX16_CONST(-0.4808393306003344), + FX16_CONST(-0.8775452902072611), FX16_CONST(-0.47949375766015334), + FX16_CONST(-0.8782797916565415), FX16_CONST(-0.47814705642484323), + FX16_CONST(-0.8790122264286334), FX16_CONST(-0.47679923006332214), + FX16_CONST(-0.8797425928000475), FX16_CONST(-0.47545028174715576), + FX16_CONST(-0.8804708890521605), FX16_CONST(-0.4741002146505505), + FX16_CONST(-0.8811971134712219), FX16_CONST(-0.4727490319503432), + FX16_CONST(-0.8819212643483549), FX16_CONST(-0.47139673682599786), + FX16_CONST(-0.8826433399795628), FX16_CONST(-0.47004333245959573), + FX16_CONST(-0.8833633386657316), FX16_CONST(-0.4686888220358279), + FX16_CONST(-0.8840812587126351), FX16_CONST(-0.46733320874198825), + FX16_CONST(-0.8847970984309376), FX16_CONST(-0.4659764957679666), + FX16_CONST(-0.8855108561361997), FX16_CONST(-0.46461868630623815), + FX16_CONST(-0.8862225301488805), FX16_CONST(-0.46325978355186037), + FX16_CONST(-0.8869321187943422), FX16_CONST(-0.4618997907024628), + FX16_CONST(-0.887639620402854), FX16_CONST(-0.4605387109582399), + FX16_CONST(-0.888345033309596), FX16_CONST(-0.45917654752194464), + FX16_CONST(-0.8890483558546644), FX16_CONST(-0.4578133035988776), + FX16_CONST(-0.8897495863830727), FX16_CONST(-0.4564489823968842), + FX16_CONST(-0.8904487232447579), FX16_CONST(-0.45508358712634395), + FX16_CONST(-0.8911457647945833), FX16_CONST(-0.4537171210001638), + FX16_CONST(-0.8918407093923428), FX16_CONST(-0.45234958723377067), + FX16_CONST(-0.8925335554027644), FX16_CONST(-0.4509809890451043), + FX16_CONST(-0.8932243011955152), FX16_CONST(-0.44961132965460693), + FX16_CONST(-0.8939129451452031), FX16_CONST(-0.4482406122852201), + FX16_CONST(-0.8945994856313827), FX16_CONST(-0.4468688401623742), + FX16_CONST(-0.8952839210385576), FX16_CONST(-0.44549601651398163), + FX16_CONST(-0.8959662497561849), FX16_CONST(-0.44412214457042976), + FX16_CONST(-0.89664647017868), FX16_CONST(-0.4427472275645704), + FX16_CONST(-0.8973245807054182), FX16_CONST(-0.44137126873171695), + FX16_CONST(-0.8980005797407398), FX16_CONST(-0.43999427130963337), + FX16_CONST(-0.8986744656939538), FX16_CONST(-0.4386162385385276), + FX16_CONST(-0.8993462369793417), FX16_CONST(-0.4372371736610439), + FX16_CONST(-0.90001589201616), FX16_CONST(-0.435857079922256), + FX16_CONST(-0.9006834292286467), FX16_CONST(-0.43447596056965604), + FX16_CONST(-0.9013488470460219), FX16_CONST(-0.4330938188531521), + FX16_CONST(-0.9020121439024932), FX16_CONST(-0.4317106580250573), + FX16_CONST(-0.9026733182372588), FX16_CONST(-0.4303264813400825), + FX16_CONST(-0.9033323684945116), FX16_CONST(-0.42894129205533005), + FX16_CONST(-0.9039892931234431), FX16_CONST(-0.4275550934302825), + FX16_CONST(-0.9046440905782461), FX16_CONST(-0.4261678887267999), + FX16_CONST(-0.9052967593181187), FX16_CONST(-0.4247796812091089), + FX16_CONST(-0.9059472978072685), FX16_CONST(-0.423390474143796), + FX16_CONST(-0.9065957045149154), FX16_CONST(-0.4220002707997995), + FX16_CONST(-0.9072419779152956), FX16_CONST(-0.420609074448403), + FX16_CONST(-0.907886116487666), FX16_CONST(-0.4192168883632243), + FX16_CONST(-0.908528118716306), FX16_CONST(-0.4178237158202125), + FX16_CONST(-0.9091679830905224), FX16_CONST(-0.4164295600976372), + FX16_CONST(-0.9098057081046523), FX16_CONST(-0.4150344244760815), + FX16_CONST(-0.9104412922580669), FX16_CONST(-0.4136383122384351), + FX16_CONST(-0.9110747340551761), FX16_CONST(-0.4122412266698833), + FX16_CONST(-0.9117060320054298), FX16_CONST(-0.4108431710579042), + FX16_CONST(-0.9123351846233227), FX16_CONST(-0.40944414869225776), + FX16_CONST(-0.9129621904283982), FX16_CONST(-0.40804416286497863), + FX16_CONST(-0.9135870479452509), FX16_CONST(-0.40664321687036886), + FX16_CONST(-0.9142097557035305), FX16_CONST(-0.40524131400499036), + FX16_CONST(-0.914830312237946), FX16_CONST(-0.40383845756765446), + FX16_CONST(-0.9154487160882677), FX16_CONST(-0.40243465085941865), + FX16_CONST(-0.9160649657993317), FX16_CONST(-0.4010298971835757), + FX16_CONST(-0.9166790599210427), FX16_CONST(-0.39962419984564673), + FX16_CONST(-0.9172909970083777), FX16_CONST(-0.39821756215337417), + FX16_CONST(-0.9179007756213903), FX16_CONST(-0.39680998741671075), + FX16_CONST(-0.9185083943252121), FX16_CONST(-0.3954014789478166), + FX16_CONST(-0.9191138516900577), FX16_CONST(-0.3939920400610482), + FX16_CONST(-0.9197171462912274), FX16_CONST(-0.39258167407295147), + FX16_CONST(-0.9203182767091106), FX16_CONST(-0.3911703843022537), + FX16_CONST(-0.9209172415291893), FX16_CONST(-0.38975817406985697), + FX16_CONST(-0.9215140393420418), FX16_CONST(-0.38834504669882663), + FX16_CONST(-0.9221086687433451), FX16_CONST(-0.3869310055143888), + FX16_CONST(-0.9227011283338785), FX16_CONST(-0.3855160538439189), + FX16_CONST(-0.9232914167195276), FX16_CONST(-0.38410019501693493), + FX16_CONST(-0.9238795325112865), FX16_CONST(-0.38268343236509034), + FX16_CONST(-0.9244654743252625), FX16_CONST(-0.38126576922216276), + FX16_CONST(-0.9250492407826775), FX16_CONST(-0.37984720892405144), + FX16_CONST(-0.9256308305098727), FX16_CONST(-0.3784277548087657), + FX16_CONST(-0.9262102421383114), FX16_CONST(-0.3770074102164182), + FX16_CONST(-0.9267874743045819), FX16_CONST(-0.37558617848921705), + FX16_CONST(-0.9273625256504009), FX16_CONST(-0.3741640629714585), + FX16_CONST(-0.9279353948226177), FX16_CONST(-0.37274106700951615), + FX16_CONST(-0.9285060804732155), FX16_CONST(-0.37131719395183777), + FX16_CONST(-0.9290745812593157), FX16_CONST(-0.36989244714893416), + FX16_CONST(-0.9296408958431813), FX16_CONST(-0.3684668299533722), + FX16_CONST(-0.9302050228922192), FX16_CONST(-0.36704034571976696), + FX16_CONST(-0.9307669610789836), FX16_CONST(-0.3656129978047743), + FX16_CONST(-0.9313267090811803), FX16_CONST(-0.36418478956708017), + FX16_CONST(-0.931884265581668), FX16_CONST(-0.36275572436739734), + FX16_CONST(-0.9324396292684624), FX16_CONST(-0.36132580556845423), + FX16_CONST(-0.932992798834739), FX16_CONST(-0.35989503653498794), + FX16_CONST(-0.933543772978836), FX16_CONST(-0.35846342063373704), + FX16_CONST(-0.9340925504042588), FX16_CONST(-0.35703096123343037), + FX16_CONST(-0.9346391298196807), FX16_CONST(-0.3555976617047841), + FX16_CONST(-0.9351835099389476), FX16_CONST(-0.35416352542049045), + FX16_CONST(-0.9357256894810804), FX16_CONST(-0.3527285557552106), + FX16_CONST(-0.9362656671702784), FX16_CONST(-0.35129275608556687), + FX16_CONST(-0.9368034417359214), FX16_CONST(-0.34985612979013536), + FX16_CONST(-0.9373390119125748), FX16_CONST(-0.34841868024943484), + FX16_CONST(-0.9378723764399898), FX16_CONST(-0.3469804108459238), + FX16_CONST(-0.9384035340631082), FX16_CONST(-0.34554132496398904), + FX16_CONST(-0.9389324835320646), FX16_CONST(-0.34410142598993865), + FX16_CONST(-0.9394592236021897), FX16_CONST(-0.3426607173119949), + FX16_CONST(-0.9399837530340138), FX16_CONST(-0.34121920232028274), + FX16_CONST(-0.9405060705932683), FX16_CONST(-0.3397768844068271), + FX16_CONST(-0.9410261750508893), FX16_CONST(-0.33833376696554124), + FX16_CONST(-0.9415440651830208), FX16_CONST(-0.33688985339221994), + FX16_CONST(-0.9420597397710174), FX16_CONST(-0.3354451470845314), + FX16_CONST(-0.9425731976014468), FX16_CONST(-0.3339996514420098), + FX16_CONST(-0.9430844374660934), FX16_CONST(-0.3325533698660445), + FX16_CONST(-0.9435934581619603), FX16_CONST(-0.33110630575987654), + FX16_CONST(-0.9441002584912727), FX16_CONST(-0.3296584625285875), + FX16_CONST(-0.9446048372614804), FX16_CONST(-0.32820984357909233), + FX16_CONST(-0.9451071932852604), FX16_CONST(-0.3267604523201323), + FX16_CONST(-0.9456073253805212), FX16_CONST(-0.3253102921622633), + FX16_CONST(-0.9461052323704033), FX16_CONST(-0.3238593665178531), + FX16_CONST(-0.9466009130832835), FX16_CONST(-0.3224076788010699), + FX16_CONST(-0.9470943663527772), FX16_CONST(-0.32095523242787516), + FX16_CONST(-0.9475855910177412), FX16_CONST(-0.3195020308160154), + FX16_CONST(-0.9480745859222761), FX16_CONST(-0.3180480773850154), + FX16_CONST(-0.9485613499157302), FX16_CONST(-0.3165933755561662), + FX16_CONST(-0.9490458818527006), FX16_CONST(-0.31513792875252256), + FX16_CONST(-0.9495281805930367), FX16_CONST(-0.31368174039889146), + FX16_CONST(-0.9500082450018431), FX16_CONST(-0.3122248139218248), + FX16_CONST(-0.9504860739494816), FX16_CONST(-0.31076715274961203), + FX16_CONST(-0.950961666311575), FX16_CONST(-0.30930876031226906), + FX16_CONST(-0.9514350209690083), FX16_CONST(-0.3078496400415351), + FX16_CONST(-0.9519061368079323), FX16_CONST(-0.306389795370861), + FX16_CONST(-0.9523750127197659), FX16_CONST(-0.3049292297354023), + FX16_CONST(-0.9528416476011987), FX16_CONST(-0.30346794657201104), + FX16_CONST(-0.9533060403541936), FX16_CONST(-0.30200594931922853), + FX16_CONST(-0.9537681898859902), FX16_CONST(-0.30054324141727373), + FX16_CONST(-0.9542280951091056), FX16_CONST(-0.2990798263080406), + FX16_CONST(-0.9546857549413383), FX16_CONST(-0.2976157074350862), + FX16_CONST(-0.9551411683057708), FX16_CONST(-0.2961508882436237), + FX16_CONST(-0.9555943341307709), FX16_CONST(-0.2946853721805149), + FX16_CONST(-0.9560452513499963), FX16_CONST(-0.293219162694259), + FX16_CONST(-0.956493918902395), FX16_CONST(-0.2917522632349895), + FX16_CONST(-0.9569403357322088), FX16_CONST(-0.29028467725446244), + FX16_CONST(-0.957384500788976), FX16_CONST(-0.28881640820604937), + FX16_CONST(-0.957826413027533), FX16_CONST(-0.2873474595447293), + FX16_CONST(-0.9582660714080176), FX16_CONST(-0.28587783472708106), + FX16_CONST(-0.9587034748958715), FX16_CONST(-0.28440753721127215), + FX16_CONST(-0.9591386224618419), FX16_CONST(-0.2829365704570555), + FX16_CONST(-0.9595715130819845), FX16_CONST(-0.28146493792575794), + FX16_CONST(-0.960002145737666), FX16_CONST(-0.27999264308027305), + FX16_CONST(-0.9604305194155657), FX16_CONST(-0.2785196893850536), + FX16_CONST(-0.9608566331076795), FX16_CONST(-0.2770460803061003), + FX16_CONST(-0.9612804858113205), FX16_CONST(-0.27557181931095837), + FX16_CONST(-0.9617020765291225), FX16_CONST(-0.27409690986870644), + FX16_CONST(-0.9621214042690416), FX16_CONST(-0.27262135544994887), + FX16_CONST(-0.9625384680443593), FX16_CONST(-0.2711451595268078), + FX16_CONST(-0.9629532668736838), FX16_CONST(-0.26966832557291553), + FX16_CONST(-0.9633657997809539), FX16_CONST(-0.2681908570634035), + FX16_CONST(-0.9637760657954398), FX16_CONST(-0.26671275747489853), + FX16_CONST(-0.9641840639517458), FX16_CONST(-0.2652340302855118), + FX16_CONST(-0.9645897932898128), FX16_CONST(-0.26375467897483124), + FX16_CONST(-0.9649932528549202), FX16_CONST(-0.26227470702391414), + FX16_CONST(-0.9653944416976893), FX16_CONST(-0.2607941179152759), + FX16_CONST(-0.9657933588740836), FX16_CONST(-0.25931291513288646), + FX16_CONST(-0.9661900034454125), FX16_CONST(-0.25783110216215904), + FX16_CONST(-0.9665843744783331), FX16_CONST(-0.2563486824899428), + FX16_CONST(-0.9669764710448522), FX16_CONST(-0.25486565960451435), + FX16_CONST(-0.9673662922223284), FX16_CONST(-0.2533820369955706), + FX16_CONST(-0.9677538370934754), FX16_CONST(-0.25189781815421725), + FX16_CONST(-0.9681391047463623), FX16_CONST(-0.2504130065729654), + FX16_CONST(-0.9685220942744173), FX16_CONST(-0.24892760574572015), + FX16_CONST(-0.9689028047764289), FX16_CONST(-0.24744161916777313), + FX16_CONST(-0.9692812353565483), FX16_CONST(-0.24595505033579515), + FX16_CONST(-0.9696573851242923), FX16_CONST(-0.24446790274782454), + FX16_CONST(-0.970031253194544), FX16_CONST(-0.24298017990326412), + FX16_CONST(-0.9704028386875555), FX16_CONST(-0.2414918853028694), + FX16_CONST(-0.9707721407289504), FX16_CONST(-0.2400030224487414), + FX16_CONST(-0.9711391584497252), FX16_CONST(-0.2385135948443182), + FX16_CONST(-0.9715038909862517), FX16_CONST(-0.23702360599436767), + FX16_CONST(-0.9718663374802793), FX16_CONST(-0.2355330594049758), + FX16_CONST(-0.9722264970789363), FX16_CONST(-0.23404195858354357), + FX16_CONST(-0.9725843689347322), FX16_CONST(-0.23255030703877522), + FX16_CONST(-0.9729399522055602), FX16_CONST(-0.23105810828067094), + FX16_CONST(-0.9732932460546981), FX16_CONST(-0.22956536582051942), + FX16_CONST(-0.9736442496508119), FX16_CONST(-0.22807208317088612), + FX16_CONST(-0.9739929621679558), FX16_CONST(-0.22657826384561022), + FX16_CONST(-0.9743393827855759), FX16_CONST(-0.22508391135979292), + FX16_CONST(-0.9746835106885107), FX16_CONST(-0.2235890292297899), + FX16_CONST(-0.9750253450669942), FX16_CONST(-0.2220936209732033), + FX16_CONST(-0.9753648851166569), FX16_CONST(-0.22059769010887398), + FX16_CONST(-0.9757021300385285), FX16_CONST(-0.2191012401568701), + FX16_CONST(-0.976037079039039), FX16_CONST(-0.21760427463848378), + FX16_CONST(-0.9763697313300211), FX16_CONST(-0.2161067970762195), + FX16_CONST(-0.9767000861287118), FX16_CONST(-0.2146088109937866), + FX16_CONST(-0.9770281426577543), FX16_CONST(-0.21311031991609192), + FX16_CONST(-0.9773539001452), FX16_CONST(-0.21161132736922797), + FX16_CONST(-0.9776773578245099), FX16_CONST(-0.21011183688046986), + FX16_CONST(-0.977998514934557), FX16_CONST(-0.20861185197826357), + FX16_CONST(-0.9783173707196277), FX16_CONST(-0.20711137619221848), + FX16_CONST(-0.9786339244294232), FX16_CONST(-0.20561041305309902), + FX16_CONST(-0.9789481753190621), FX16_CONST(-0.20410896609281734), + FX16_CONST(-0.979260122649082), FX16_CONST(-0.20260703884442144), + FX16_CONST(-0.9795697656854405), FX16_CONST(-0.20110463484209207), + FX16_CONST(-0.9798771036995176), FX16_CONST(-0.19960175762113097), + FX16_CONST(-0.9801821359681174), FX16_CONST(-0.19809841071795342), + FX16_CONST(-0.9804848617734693), FX16_CONST(-0.19659459767008078), + FX16_CONST(-0.9807852804032303), FX16_CONST(-0.19509032201612866), + FX16_CONST(-0.9810833911504866), FX16_CONST(-0.19358558729580386), + FX16_CONST(-0.9813791933137546), FX16_CONST(-0.19208039704989252), + FX16_CONST(-0.9816726861969831), FX16_CONST(-0.19057475482025268), + FX16_CONST(-0.9819638691095554), FX16_CONST(-0.18906866414980597), + FX16_CONST(-0.9822527413662894), FX16_CONST(-0.18756212858253007), + FX16_CONST(-0.9825393022874412), FX16_CONST(-0.18605515166344697), + FX16_CONST(-0.9828235511987052), FX16_CONST(-0.18454773693861978), + FX16_CONST(-0.9831054874312163), FX16_CONST(-0.18303988795514095), + FX16_CONST(-0.9833851103215513), FX16_CONST(-0.18153160826112483), + FX16_CONST(-0.9836624192117301), FX16_CONST(-0.18002290140570007), + FX16_CONST(-0.9839374134492188), FX16_CONST(-0.17851377093899792), + FX16_CONST(-0.984210092386929), FX16_CONST(-0.177004220412149), + FX16_CONST(-0.9844804553832209), FX16_CONST(-0.1754942533772715), + FX16_CONST(-0.9847485018019042), FX16_CONST(-0.17398387338746374), + FX16_CONST(-0.9850142310122398), FX16_CONST(-0.17247308399679573), + FX16_CONST(-0.9852776423889411), FX16_CONST(-0.1709618887603017), + FX16_CONST(-0.9855387353121761), FX16_CONST(-0.1694502912339683), + FX16_CONST(-0.9857975091675674), FX16_CONST(-0.16793829497473134), + FX16_CONST(-0.9860539633461954), FX16_CONST(-0.1664259035404641), + FX16_CONST(-0.9863080972445987), FX16_CONST(-0.16491312048996976), + FX16_CONST(-0.9865599102647754), FX16_CONST(-0.16339994938297378), + FX16_CONST(-0.9868094018141854), FX16_CONST(-0.16188639378011224), + FX16_CONST(-0.987056571305751), FX16_CONST(-0.1603724572429285), + FX16_CONST(-0.9873014181578583), FX16_CONST(-0.15885814333386153), + FX16_CONST(-0.9875439417943593), FX16_CONST(-0.1573434556162382), + FX16_CONST(-0.9877841416445722), FX16_CONST(-0.15582839765426498), + FX16_CONST(-0.9880220171432835), FX16_CONST(-0.15431297301302058), + FX16_CONST(-0.9882575677307495), FX16_CONST(-0.15279718525844374), + FX16_CONST(-0.9884907928526966), FX16_CONST(-0.15128103795733036), + FX16_CONST(-0.9887216919603238), FX16_CONST(-0.1497645346773215), + FX16_CONST(-0.988950264510303), FX16_CONST(-0.1482476789868959), + FX16_CONST(-0.9891765099647809), FX16_CONST(-0.1467304744553623), + FX16_CONST(-0.9894004277913803), FX16_CONST(-0.14521292465284785), + FX16_CONST(-0.9896220174632008), FX16_CONST(-0.1436950331502947), + FX16_CONST(-0.9898412784588205), FX16_CONST(-0.14217680351944814), + FX16_CONST(-0.9900582102622971), FX16_CONST(-0.14065823933284916), + FX16_CONST(-0.9902728123631691), FX16_CONST(-0.13913934416382598), + FX16_CONST(-0.990485084256457), FX16_CONST(-0.13762012158648654), + FX16_CONST(-0.9906950254426646), FX16_CONST(-0.13610057517570653), + FX16_CONST(-0.99090263542778), FX16_CONST(-0.13458070850712636), + FX16_CONST(-0.9911079137232769), FX16_CONST(-0.13306052515713906), + FX16_CONST(-0.9913108598461154), FX16_CONST(-0.13154002870288295), + FX16_CONST(-0.9915114733187439), FX16_CONST(-0.13001922272223393), + FX16_CONST(-0.9917097536690995), FX16_CONST(-0.12849811079379359), + FX16_CONST(-0.9919057004306093), FX16_CONST(-0.12697669649688612), + FX16_CONST(-0.9920993131421918), FX16_CONST(-0.12545498341154632), + FX16_CONST(-0.9922905913482574), FX16_CONST(-0.12393297511851209), + FX16_CONST(-0.9924795345987101), FX16_CONST(-0.12241067519921596), + FX16_CONST(-0.9926661424489479), FX16_CONST(-0.12088808723577757), + FX16_CONST(-0.9928504144598651), FX16_CONST(-0.11936521481099169), + FX16_CONST(-0.9930323501978514), FX16_CONST(-0.11784206150832514), + FX16_CONST(-0.9932119492347945), FX16_CONST(-0.11631863091190477), + FX16_CONST(-0.9933892111480807), FX16_CONST(-0.11479492660650993), + FX16_CONST(-0.9935641355205953), FX16_CONST(-0.11327095217756492), + FX16_CONST(-0.9937367219407246), FX16_CONST(-0.111746711211127), + FX16_CONST(-0.9939069700023561), FX16_CONST(-0.11022220729388331), + FX16_CONST(-0.9940748793048794), FX16_CONST(-0.1086974440131388), + FX16_CONST(-0.9942404494531879), FX16_CONST(-0.10717242495680877), + FX16_CONST(-0.9944036800576791), FX16_CONST(-0.10564715371341038), + FX16_CONST(-0.9945645707342554), FX16_CONST(-0.10412163387205507), + FX16_CONST(-0.9947231211043257), FX16_CONST(-0.10259586902243661), + FX16_CONST(-0.9948793307948056), FX16_CONST(-0.10106986275482799), + FX16_CONST(-0.9950331994381186), FX16_CONST(-0.09954361866006935), + FX16_CONST(-0.9951847266721969), FX16_CONST(-0.09801714032956045), + FX16_CONST(-0.9953339121404822), FX16_CONST(-0.09649043135525316), + FX16_CONST(-0.9954807554919269), FX16_CONST(-0.09496349532963941), + FX16_CONST(-0.9956252563809943), FX16_CONST(-0.09343633584574804), + FX16_CONST(-0.9957674144676598), FX16_CONST(-0.09190895649713282), + FX16_CONST(-0.9959072294174117), FX16_CONST(-0.09038136087786491), + FX16_CONST(-0.996044700901252), FX16_CONST(-0.08885355258252436), + FX16_CONST(-0.9961798285956969), FX16_CONST(-0.08732553520619256), + FX16_CONST(-0.996312612182778), FX16_CONST(-0.08579731234444023), + FX16_CONST(-0.9964430513500426), FX16_CONST(-0.08426888759332424), + FX16_CONST(-0.9965711457905548), FX16_CONST(-0.0827402645493757), + FX16_CONST(-0.9966968952028961), FX16_CONST(-0.08121144680959229), + FX16_CONST(-0.9968202992911657), FX16_CONST(-0.0796824379714307), + FX16_CONST(-0.996941357764982), FX16_CONST(-0.07815324163279465), + FX16_CONST(-0.997060070339483), FX16_CONST(-0.07662386139203174), + FX16_CONST(-0.9971764367353261), FX16_CONST(-0.0750943008479214), + FX16_CONST(-0.9972904566786902), FX16_CONST(-0.07356456359966736), + FX16_CONST(-0.9974021299012753), FX16_CONST(-0.0720346532468891), + FX16_CONST(-0.9975114561403035), FX16_CONST(-0.07050457338961436), + FX16_CONST(-0.9976184351385196), FX16_CONST(-0.06897432762826708), + FX16_CONST(-0.9977230666441916), FX16_CONST(-0.06744391956366423), + FX16_CONST(-0.9978253504111116), FX16_CONST(-0.06591335279700383), + FX16_CONST(-0.997925286198596), FX16_CONST(-0.06438263092985731), + FX16_CONST(-0.9980228737714861), FX16_CONST(-0.06285175756416199), + FX16_CONST(-0.9981181129001492), FX16_CONST(-0.061320736302208995), + FX16_CONST(-0.9982110033604782), FX16_CONST(-0.05978957074664013), + FX16_CONST(-0.9983015449338928), FX16_CONST(-0.058258264500435857), + FX16_CONST(-0.9983897374073402), FX16_CONST(-0.056726821166907686), + FX16_CONST(-0.9984755805732948), FX16_CONST(-0.05519524434968971), + FX16_CONST(-0.9985590742297593), FX16_CONST(-0.053663537652731026), + FX16_CONST(-0.9986402181802652), FX16_CONST(-0.05213170468028366), + FX16_CONST(-0.9987190122338729), FX16_CONST(-0.050599749036899455), + FX16_CONST(-0.9987954562051724), FX16_CONST(-0.04906767432741803), + FX16_CONST(-0.9988695499142836), FX16_CONST(-0.04753548415695916), + FX16_CONST(-0.9989412931868569), FX16_CONST(-0.046003182130915206), + FX16_CONST(-0.9990106858540733), FX16_CONST(-0.044470771854939084), + FX16_CONST(-0.9990777277526454), FX16_CONST(-0.042938256934941084), + FX16_CONST(-0.9991424187248169), FX16_CONST(-0.04140564097707684), + FX16_CONST(-0.9992047586183639), FX16_CONST(-0.03987292758773975), + FX16_CONST(-0.9992647472865944), FX16_CONST(-0.03834012037355247), + FX16_CONST(-0.9993223845883494), FX16_CONST(-0.03680722294135933), + FX16_CONST(-0.9993776703880028), FX16_CONST(-0.035274238898214294), + FX16_CONST(-0.9994306045554617), FX16_CONST(-0.03374117185137776), + FX16_CONST(-0.999481186966167), FX16_CONST(-0.0322080254083046), + FX16_CONST(-0.9995294175010931), FX16_CONST(-0.030674803176636484), + FX16_CONST(-0.9995752960467492), FX16_CONST(-0.02914150876419431), + FX16_CONST(-0.9996188224951786), FX16_CONST(-0.027608145778966163), + FX16_CONST(-0.9996599967439592), FX16_CONST(-0.02607471782910416), + FX16_CONST(-0.9996988186962042), FX16_CONST(-0.02454122852291239), + FX16_CONST(-0.9997352882605617), FX16_CONST(-0.02300768146883931), + FX16_CONST(-0.9997694053512153), FX16_CONST(-0.021474080275469286), + FX16_CONST(-0.9998011698878843), FX16_CONST(-0.019940428551514944), + FX16_CONST(-0.9998305817958234), FX16_CONST(-0.018406729905805164), + FX16_CONST(-0.9998576410058239), FX16_CONST(-0.016872987947281894), + FX16_CONST(-0.9998823474542126), FX16_CONST(-0.015339206284988121), + FX16_CONST(-0.9999047010828529), FX16_CONST(-0.01380538852806025), + FX16_CONST(-0.9999247018391445), FX16_CONST(-0.012271538285720512), + FX16_CONST(-0.9999423496760239), FX16_CONST(-0.010737659167264916), + FX16_CONST(-0.9999576445519639), FX16_CONST(-0.009203754782060083), + FX16_CONST(-0.9999705864309741), FX16_CONST(-0.007669828739531199), + FX16_CONST(-0.9999811752826011), FX16_CONST(-0.006135884649154416), + FX16_CONST(-0.9999894110819284), FX16_CONST(-0.00460192612044835), + FX16_CONST(-0.9999952938095762), FX16_CONST(-0.0030679567629664827), + FX16_CONST(-0.9999988234517019), FX16_CONST(-0.0015339801862851105), + FX16_CONST(-1.0), FX16_CONST(-1.8369701987210297e-16), + FX16_CONST(-0.9999988234517019), FX16_CONST(0.0015339801862847432), + FX16_CONST(-0.9999952938095762), FX16_CONST(0.003067956762966115), + FX16_CONST(-0.9999894110819284), FX16_CONST(0.004601926120447982), + FX16_CONST(-0.9999811752826011), FX16_CONST(0.0061358846491540485), + FX16_CONST(-0.9999705864309741), FX16_CONST(0.007669828739530832), + FX16_CONST(-0.9999576445519639), FX16_CONST(0.009203754782059715), + FX16_CONST(-0.9999423496760239), FX16_CONST(0.010737659167264548), + FX16_CONST(-0.9999247018391445), FX16_CONST(0.012271538285720144), + FX16_CONST(-0.9999047010828529), FX16_CONST(0.013805388528059882), + FX16_CONST(-0.9998823474542126), FX16_CONST(0.015339206284987753), + FX16_CONST(-0.9998576410058239), FX16_CONST(0.016872987947281527), + FX16_CONST(-0.9998305817958234), FX16_CONST(0.018406729905804796), + FX16_CONST(-0.9998011698878843), FX16_CONST(0.019940428551514577), + FX16_CONST(-0.9997694053512153), FX16_CONST(0.021474080275468918), + FX16_CONST(-0.9997352882605617), FX16_CONST(0.023007681468838945), + FX16_CONST(-0.9996988186962042), FX16_CONST(0.02454122852291202), + FX16_CONST(-0.9996599967439592), FX16_CONST(0.026074717829103793), + FX16_CONST(-0.9996188224951786), FX16_CONST(0.027608145778965795), + FX16_CONST(-0.9995752960467492), FX16_CONST(0.02914150876419394), + FX16_CONST(-0.9995294175010931), FX16_CONST(0.030674803176636116), + FX16_CONST(-0.999481186966167), FX16_CONST(0.03220802540830423), + FX16_CONST(-0.9994306045554617), FX16_CONST(0.0337411718513774), + FX16_CONST(-0.9993776703880028), FX16_CONST(0.035274238898213926), + FX16_CONST(-0.9993223845883495), FX16_CONST(0.036807222941358964), + FX16_CONST(-0.9992647472865945), FX16_CONST(0.038340120373552104), + FX16_CONST(-0.9992047586183639), FX16_CONST(0.03987292758773938), + FX16_CONST(-0.9991424187248169), FX16_CONST(0.04140564097707647), + FX16_CONST(-0.9990777277526454), FX16_CONST(0.042938256934940716), + FX16_CONST(-0.9990106858540734), FX16_CONST(0.044470771854938716), + FX16_CONST(-0.9989412931868569), FX16_CONST(0.046003182130914845), + FX16_CONST(-0.9988695499142836), FX16_CONST(0.04753548415695879), + FX16_CONST(-0.9987954562051724), FX16_CONST(0.04906767432741766), + FX16_CONST(-0.9987190122338729), FX16_CONST(0.05059974903689909), + FX16_CONST(-0.9986402181802653), FX16_CONST(0.05213170468028329), + FX16_CONST(-0.9985590742297593), FX16_CONST(0.05366353765273066), + FX16_CONST(-0.9984755805732948), FX16_CONST(0.055195244349689344), + FX16_CONST(-0.9983897374073402), FX16_CONST(0.05672682116690732), + FX16_CONST(-0.9983015449338929), FX16_CONST(0.05825826450043549), + FX16_CONST(-0.9982110033604782), FX16_CONST(0.059789570746639764), + FX16_CONST(-0.9981181129001492), FX16_CONST(0.06132073630220863), + FX16_CONST(-0.9980228737714862), FX16_CONST(0.06285175756416163), + FX16_CONST(-0.997925286198596), FX16_CONST(0.06438263092985695), + FX16_CONST(-0.9978253504111116), FX16_CONST(0.06591335279700346), + FX16_CONST(-0.9977230666441916), FX16_CONST(0.06744391956366387), + FX16_CONST(-0.9976184351385196), FX16_CONST(0.06897432762826672), + FX16_CONST(-0.9975114561403035), FX16_CONST(0.070504573389614), + FX16_CONST(-0.9974021299012753), FX16_CONST(0.07203465324688872), + FX16_CONST(-0.9972904566786902), FX16_CONST(0.07356456359966698), + FX16_CONST(-0.9971764367353262), FX16_CONST(0.07509430084792104), + FX16_CONST(-0.997060070339483), FX16_CONST(0.07662386139203138), + FX16_CONST(-0.9969413577649822), FX16_CONST(0.07815324163279429), + FX16_CONST(-0.9968202992911657), FX16_CONST(0.07968243797143033), + FX16_CONST(-0.9966968952028961), FX16_CONST(0.08121144680959191), + FX16_CONST(-0.9965711457905548), FX16_CONST(0.08274026454937533), + FX16_CONST(-0.9964430513500426), FX16_CONST(0.08426888759332388), + FX16_CONST(-0.996312612182778), FX16_CONST(0.08579731234443985), + FX16_CONST(-0.9961798285956969), FX16_CONST(0.0873255352061922), + FX16_CONST(-0.9960447009012521), FX16_CONST(0.088853552582524), + FX16_CONST(-0.9959072294174117), FX16_CONST(0.09038136087786454), + FX16_CONST(-0.9957674144676598), FX16_CONST(0.09190895649713245), + FX16_CONST(-0.9956252563809943), FX16_CONST(0.09343633584574766), + FX16_CONST(-0.9954807554919269), FX16_CONST(0.09496349532963905), + FX16_CONST(-0.9953339121404823), FX16_CONST(0.0964904313552528), + FX16_CONST(-0.9951847266721969), FX16_CONST(0.09801714032956009), + FX16_CONST(-0.9950331994381186), FX16_CONST(0.09954361866006897), + FX16_CONST(-0.9948793307948056), FX16_CONST(0.10106986275482763), + FX16_CONST(-0.9947231211043257), FX16_CONST(0.10259586902243625), + FX16_CONST(-0.9945645707342554), FX16_CONST(0.1041216338720547), + FX16_CONST(-0.9944036800576791), FX16_CONST(0.10564715371341002), + FX16_CONST(-0.994240449453188), FX16_CONST(0.10717242495680841), + FX16_CONST(-0.9940748793048795), FX16_CONST(0.10869744401313844), + FX16_CONST(-0.9939069700023561), FX16_CONST(0.11022220729388293), + FX16_CONST(-0.9937367219407246), FX16_CONST(0.11174671121112664), + FX16_CONST(-0.9935641355205953), FX16_CONST(0.11327095217756455), + FX16_CONST(-0.9933892111480808), FX16_CONST(0.11479492660650957), + FX16_CONST(-0.9932119492347946), FX16_CONST(0.1163186309119044), + FX16_CONST(-0.9930323501978514), FX16_CONST(0.11784206150832478), + FX16_CONST(-0.9928504144598651), FX16_CONST(0.11936521481099133), + FX16_CONST(-0.992666142448948), FX16_CONST(0.1208880872357772), + FX16_CONST(-0.9924795345987101), FX16_CONST(0.1224106751992156), + FX16_CONST(-0.9922905913482574), FX16_CONST(0.12393297511851173), + FX16_CONST(-0.9920993131421918), FX16_CONST(0.12545498341154596), + FX16_CONST(-0.9919057004306093), FX16_CONST(0.12697669649688575), + FX16_CONST(-0.9917097536690995), FX16_CONST(0.12849811079379322), + FX16_CONST(-0.9915114733187439), FX16_CONST(0.13001922272223354), + FX16_CONST(-0.9913108598461154), FX16_CONST(0.1315400287028826), + FX16_CONST(-0.9911079137232769), FX16_CONST(0.1330605251571387), + FX16_CONST(-0.99090263542778), FX16_CONST(0.13458070850712597), + FX16_CONST(-0.9906950254426646), FX16_CONST(0.13610057517570617), + FX16_CONST(-0.990485084256457), FX16_CONST(0.13762012158648618), + FX16_CONST(-0.9902728123631692), FX16_CONST(0.13913934416382562), + FX16_CONST(-0.9900582102622971), FX16_CONST(0.1406582393328488), + FX16_CONST(-0.9898412784588205), FX16_CONST(0.14217680351944778), + FX16_CONST(-0.9896220174632009), FX16_CONST(0.14369503315029433), + FX16_CONST(-0.9894004277913804), FX16_CONST(0.1452129246528475), + FX16_CONST(-0.9891765099647809), FX16_CONST(0.14673047445536194), + FX16_CONST(-0.9889502645103031), FX16_CONST(0.14824767898689553), + FX16_CONST(-0.9887216919603238), FX16_CONST(0.14976453467732115), + FX16_CONST(-0.9884907928526967), FX16_CONST(0.15128103795733), + FX16_CONST(-0.9882575677307495), FX16_CONST(0.15279718525844338), + FX16_CONST(-0.9880220171432835), FX16_CONST(0.15431297301302022), + FX16_CONST(-0.9877841416445723), FX16_CONST(0.15582839765426462), + FX16_CONST(-0.9875439417943593), FX16_CONST(0.1573434556162378), + FX16_CONST(-0.9873014181578584), FX16_CONST(0.15885814333386117), + FX16_CONST(-0.9870565713057511), FX16_CONST(0.16037245724292815), + FX16_CONST(-0.9868094018141854), FX16_CONST(0.16188639378011188), + FX16_CONST(-0.9865599102647754), FX16_CONST(0.16339994938297342), + FX16_CONST(-0.9863080972445988), FX16_CONST(0.1649131204899694), + FX16_CONST(-0.9860539633461955), FX16_CONST(0.16642590354046374), + FX16_CONST(-0.9857975091675675), FX16_CONST(0.16793829497473098), + FX16_CONST(-0.9855387353121761), FX16_CONST(0.16945029123396793), + FX16_CONST(-0.9852776423889412), FX16_CONST(0.17096188876030133), + FX16_CONST(-0.98501423101224), FX16_CONST(0.17247308399679537), + FX16_CONST(-0.9847485018019043), FX16_CONST(0.17398387338746338), + FX16_CONST(-0.9844804553832209), FX16_CONST(0.17549425337727115), + FX16_CONST(-0.9842100923869291), FX16_CONST(0.17700422041214864), + FX16_CONST(-0.9839374134492189), FX16_CONST(0.17851377093899756), + FX16_CONST(-0.9836624192117303), FX16_CONST(0.1800229014056997), + FX16_CONST(-0.9833851103215513), FX16_CONST(0.18153160826112447), + FX16_CONST(-0.9831054874312164), FX16_CONST(0.1830398879551406), + FX16_CONST(-0.9828235511987053), FX16_CONST(0.1845477369386194), + FX16_CONST(-0.9825393022874412), FX16_CONST(0.1860551516634466), + FX16_CONST(-0.9822527413662894), FX16_CONST(0.1875621285825297), + FX16_CONST(-0.9819638691095554), FX16_CONST(0.1890686641498056), + FX16_CONST(-0.9816726861969832), FX16_CONST(0.19057475482025232), + FX16_CONST(-0.9813791933137547), FX16_CONST(0.19208039704989216), + FX16_CONST(-0.9810833911504867), FX16_CONST(0.1935855872958035), + FX16_CONST(-0.9807852804032304), FX16_CONST(0.1950903220161283), + FX16_CONST(-0.9804848617734693), FX16_CONST(0.19659459767008042), + FX16_CONST(-0.9801821359681175), FX16_CONST(0.19809841071795306), + FX16_CONST(-0.9798771036995177), FX16_CONST(0.1996017576211306), + FX16_CONST(-0.9795697656854406), FX16_CONST(0.2011046348420917), + FX16_CONST(-0.979260122649082), FX16_CONST(0.20260703884442108), + FX16_CONST(-0.9789481753190622), FX16_CONST(0.20410896609281698), + FX16_CONST(-0.9786339244294233), FX16_CONST(0.20561041305309866), + FX16_CONST(-0.9783173707196278), FX16_CONST(0.20711137619221812), + FX16_CONST(-0.9779985149345571), FX16_CONST(0.2086118519782632), + FX16_CONST(-0.97767735782451), FX16_CONST(0.2101118368804695), + FX16_CONST(-0.9773539001452), FX16_CONST(0.2116113273692276), + FX16_CONST(-0.9770281426577543), FX16_CONST(0.21311031991609156), + FX16_CONST(-0.976700086128712), FX16_CONST(0.21460881099378626), + FX16_CONST(-0.9763697313300213), FX16_CONST(0.21610679707621913), + FX16_CONST(-0.9760370790390391), FX16_CONST(0.21760427463848342), + FX16_CONST(-0.9757021300385286), FX16_CONST(0.21910124015686974), + FX16_CONST(-0.975364885116657), FX16_CONST(0.22059769010887362), + FX16_CONST(-0.9750253450669942), FX16_CONST(0.22209362097320293), + FX16_CONST(-0.9746835106885108), FX16_CONST(0.22358902922978954), + FX16_CONST(-0.974339382785576), FX16_CONST(0.22508391135979255), + FX16_CONST(-0.973992962167956), FX16_CONST(0.22657826384560986), + FX16_CONST(-0.9736442496508119), FX16_CONST(0.22807208317088576), + FX16_CONST(-0.9732932460546981), FX16_CONST(0.22956536582051906), + FX16_CONST(-0.9729399522055603), FX16_CONST(0.23105810828067058), + FX16_CONST(-0.9725843689347323), FX16_CONST(0.23255030703877488), + FX16_CONST(-0.9722264970789364), FX16_CONST(0.2340419585835432), + FX16_CONST(-0.9718663374802794), FX16_CONST(0.23553305940497546), + FX16_CONST(-0.9715038909862518), FX16_CONST(0.2370236059943673), + FX16_CONST(-0.9711391584497253), FX16_CONST(0.23851359484431783), + FX16_CONST(-0.9707721407289505), FX16_CONST(0.24000302244874103), + FX16_CONST(-0.9704028386875555), FX16_CONST(0.24149188530286905), + FX16_CONST(-0.970031253194544), FX16_CONST(0.24298017990326376), + FX16_CONST(-0.9696573851242924), FX16_CONST(0.24446790274782418), + FX16_CONST(-0.9692812353565484), FX16_CONST(0.2459550503357948), + FX16_CONST(-0.968902804776429), FX16_CONST(0.24744161916777277), + FX16_CONST(-0.9685220942744174), FX16_CONST(0.2489276057457198), + FX16_CONST(-0.9681391047463624), FX16_CONST(0.25041300657296506), + FX16_CONST(-0.9677538370934755), FX16_CONST(0.2518978181542169), + FX16_CONST(-0.9673662922223285), FX16_CONST(0.25338203699557027), + FX16_CONST(-0.9669764710448523), FX16_CONST(0.25486565960451396), + FX16_CONST(-0.9665843744783332), FX16_CONST(0.25634868248994247), + FX16_CONST(-0.9661900034454126), FX16_CONST(0.2578311021621587), + FX16_CONST(-0.9657933588740837), FX16_CONST(0.2593129151328861), + FX16_CONST(-0.9653944416976894), FX16_CONST(0.2607941179152755), + FX16_CONST(-0.9649932528549203), FX16_CONST(0.2622747070239138), + FX16_CONST(-0.9645897932898129), FX16_CONST(0.26375467897483085), + FX16_CONST(-0.9641840639517459), FX16_CONST(0.26523403028551146), + FX16_CONST(-0.96377606579544), FX16_CONST(0.2667127574748982), + FX16_CONST(-0.963365799780954), FX16_CONST(0.2681908570634031), + FX16_CONST(-0.9629532668736839), FX16_CONST(0.2696683255729152), + FX16_CONST(-0.9625384680443594), FX16_CONST(0.2711451595268074), + FX16_CONST(-0.9621214042690417), FX16_CONST(0.27262135544994853), + FX16_CONST(-0.9617020765291227), FX16_CONST(0.2740969098687061), + FX16_CONST(-0.9612804858113206), FX16_CONST(0.27557181931095803), + FX16_CONST(-0.9608566331076797), FX16_CONST(0.27704608030609995), + FX16_CONST(-0.9604305194155658), FX16_CONST(0.2785196893850533), + FX16_CONST(-0.9600021457376661), FX16_CONST(0.2799926430802727), + FX16_CONST(-0.9595715130819846), FX16_CONST(0.2814649379257576), + FX16_CONST(-0.959138622461842), FX16_CONST(0.2829365704570551), + FX16_CONST(-0.9587034748958716), FX16_CONST(0.28440753721127177), + FX16_CONST(-0.9582660714080177), FX16_CONST(0.28587783472708067), + FX16_CONST(-0.957826413027533), FX16_CONST(0.2873474595447289), + FX16_CONST(-0.9573845007889761), FX16_CONST(0.28881640820604904), + FX16_CONST(-0.9569403357322089), FX16_CONST(0.29028467725446205), + FX16_CONST(-0.9564939189023951), FX16_CONST(0.29175226323498915), + FX16_CONST(-0.9560452513499964), FX16_CONST(0.2932191626942587), + FX16_CONST(-0.955594334130771), FX16_CONST(0.2946853721805145), + FX16_CONST(-0.9551411683057709), FX16_CONST(0.2961508882436233), + FX16_CONST(-0.9546857549413384), FX16_CONST(0.29761570743508586), + FX16_CONST(-0.9542280951091057), FX16_CONST(0.29907982630804025), + FX16_CONST(-0.9537681898859903), FX16_CONST(0.3005432414172734), + FX16_CONST(-0.9533060403541939), FX16_CONST(0.30200594931922814), + FX16_CONST(-0.9528416476011988), FX16_CONST(0.3034679465720107), + FX16_CONST(-0.952375012719766), FX16_CONST(0.304929229735402), + FX16_CONST(-0.9519061368079325), FX16_CONST(0.30638979537086064), + FX16_CONST(-0.9514350209690084), FX16_CONST(0.30784964004153476), + FX16_CONST(-0.9509616663115751), FX16_CONST(0.3093087603122687), + FX16_CONST(-0.9504860739494817), FX16_CONST(0.31076715274961164), + FX16_CONST(-0.9500082450018432), FX16_CONST(0.3122248139218244), + FX16_CONST(-0.9495281805930368), FX16_CONST(0.31368174039889113), + FX16_CONST(-0.9490458818527007), FX16_CONST(0.31513792875252217), + FX16_CONST(-0.9485613499157303), FX16_CONST(0.3165933755561658), + FX16_CONST(-0.9480745859222762), FX16_CONST(0.318048077385015), + FX16_CONST(-0.9475855910177413), FX16_CONST(0.3195020308160151), + FX16_CONST(-0.9470943663527773), FX16_CONST(0.32095523242787477), + FX16_CONST(-0.9466009130832836), FX16_CONST(0.3224076788010696), + FX16_CONST(-0.9461052323704034), FX16_CONST(0.32385936651785274), + FX16_CONST(-0.9456073253805213), FX16_CONST(0.3253102921622629), + FX16_CONST(-0.9451071932852605), FX16_CONST(0.32676045232013196), + FX16_CONST(-0.9446048372614805), FX16_CONST(0.328209843579092), + FX16_CONST(-0.9441002584912728), FX16_CONST(0.32965846252858716), + FX16_CONST(-0.9435934581619604), FX16_CONST(0.3311063057598762), + FX16_CONST(-0.9430844374660935), FX16_CONST(0.33255336986604417), + FX16_CONST(-0.9425731976014469), FX16_CONST(0.3339996514420095), + FX16_CONST(-0.9420597397710175), FX16_CONST(0.33544514708453105), + FX16_CONST(-0.9415440651830209), FX16_CONST(0.3368898533922196), + FX16_CONST(-0.9410261750508894), FX16_CONST(0.33833376696554085), + FX16_CONST(-0.9405060705932684), FX16_CONST(0.33977688440682674), + FX16_CONST(-0.9399837530340139), FX16_CONST(0.3412192023202824), + FX16_CONST(-0.9394592236021898), FX16_CONST(0.34266071731199454), + FX16_CONST(-0.9389324835320647), FX16_CONST(0.3441014259899383), + FX16_CONST(-0.9384035340631083), FX16_CONST(0.3455413249639887), + FX16_CONST(-0.9378723764399899), FX16_CONST(0.34698041084592346), + FX16_CONST(-0.937339011912575), FX16_CONST(0.3484186802494345), + FX16_CONST(-0.9368034417359216), FX16_CONST(0.34985612979013503), + FX16_CONST(-0.9362656671702785), FX16_CONST(0.35129275608556654), + FX16_CONST(-0.9357256894810805), FX16_CONST(0.3527285557552103), + FX16_CONST(-0.9351835099389477), FX16_CONST(0.35416352542049007), + FX16_CONST(-0.9346391298196808), FX16_CONST(0.35559766170478374), + FX16_CONST(-0.9340925504042589), FX16_CONST(0.35703096123343003), + FX16_CONST(-0.9335437729788362), FX16_CONST(0.3584634206337367), + FX16_CONST(-0.9329927988347391), FX16_CONST(0.3598950365349876), + FX16_CONST(-0.9324396292684626), FX16_CONST(0.3613258055684539), + FX16_CONST(-0.9318842655816681), FX16_CONST(0.362755724367397), + FX16_CONST(-0.9313267090811805), FX16_CONST(0.36418478956707984), + FX16_CONST(-0.9307669610789837), FX16_CONST(0.36561299780477396), + FX16_CONST(-0.9302050228922193), FX16_CONST(0.36704034571976657), + FX16_CONST(-0.9296408958431814), FX16_CONST(0.3684668299533719), + FX16_CONST(-0.9290745812593159), FX16_CONST(0.3698924471489338), + FX16_CONST(-0.9285060804732156), FX16_CONST(0.3713171939518374), + FX16_CONST(-0.9279353948226179), FX16_CONST(0.3727410670095158), + FX16_CONST(-0.927362525650401), FX16_CONST(0.37416406297145816), + FX16_CONST(-0.926787474304582), FX16_CONST(0.3755861784892167), + FX16_CONST(-0.9262102421383115), FX16_CONST(0.37700741021641787), + FX16_CONST(-0.9256308305098728), FX16_CONST(0.37842775480876534), + FX16_CONST(-0.9250492407826776), FX16_CONST(0.3798472089240511), + FX16_CONST(-0.9244654743252626), FX16_CONST(0.38126576922216243), + FX16_CONST(-0.9238795325112866), FX16_CONST(0.38268343236509), + FX16_CONST(-0.9232914167195279), FX16_CONST(0.3841001950169346), + FX16_CONST(-0.9227011283338787), FX16_CONST(0.38551605384391857), + FX16_CONST(-0.9221086687433452), FX16_CONST(0.38693100551438847), + FX16_CONST(-0.9215140393420419), FX16_CONST(0.3883450466988263), + FX16_CONST(-0.9209172415291894), FX16_CONST(0.38975817406985663), + FX16_CONST(-0.9203182767091108), FX16_CONST(0.39117038430225337), + FX16_CONST(-0.9197171462912275), FX16_CONST(0.39258167407295114), + FX16_CONST(-0.9191138516900579), FX16_CONST(0.3939920400610479), + FX16_CONST(-0.9185083943252123), FX16_CONST(0.39540147894781624), + FX16_CONST(-0.9179007756213904), FX16_CONST(0.3968099874167104), + FX16_CONST(-0.9172909970083778), FX16_CONST(0.39821756215337384), + FX16_CONST(-0.9166790599210428), FX16_CONST(0.3996241998456464), + FX16_CONST(-0.9160649657993318), FX16_CONST(0.40102989718357535), + FX16_CONST(-0.9154487160882678), FX16_CONST(0.4024346508594183), + FX16_CONST(-0.9148303122379462), FX16_CONST(0.40383845756765413), + FX16_CONST(-0.9142097557035306), FX16_CONST(0.40524131400499), + FX16_CONST(-0.913587047945251), FX16_CONST(0.4066432168703685), + FX16_CONST(-0.9129621904283983), FX16_CONST(0.4080441628649783), + FX16_CONST(-0.9123351846233229), FX16_CONST(0.40944414869225737), + FX16_CONST(-0.9117060320054299), FX16_CONST(0.41084317105790386), + FX16_CONST(-0.9110747340551762), FX16_CONST(0.41224122666988294), + FX16_CONST(-0.9104412922580671), FX16_CONST(0.4136383122384348), + FX16_CONST(-0.9098057081046524), FX16_CONST(0.4150344244760812), + FX16_CONST(-0.9091679830905225), FX16_CONST(0.4164295600976369), + FX16_CONST(-0.9085281187163062), FX16_CONST(0.41782371582021216), + FX16_CONST(-0.9078861164876663), FX16_CONST(0.41921688836322396), + FX16_CONST(-0.9072419779152958), FX16_CONST(0.4206090744484027), + FX16_CONST(-0.9065957045149156), FX16_CONST(0.4220002707997992), + FX16_CONST(-0.9059472978072687), FX16_CONST(0.42339047414379566), + FX16_CONST(-0.9052967593181189), FX16_CONST(0.4247796812091086), + FX16_CONST(-0.9046440905782462), FX16_CONST(0.42616788872679956), + FX16_CONST(-0.9039892931234433), FX16_CONST(0.42755509343028214), + FX16_CONST(-0.9033323684945117), FX16_CONST(0.4289412920553297), + FX16_CONST(-0.902673318237259), FX16_CONST(0.43032648134008217), + FX16_CONST(-0.9020121439024933), FX16_CONST(0.431710658025057), + FX16_CONST(-0.9013488470460221), FX16_CONST(0.4330938188531518), + FX16_CONST(-0.9006834292286469), FX16_CONST(0.4344759605696557), + FX16_CONST(-0.9000158920161602), FX16_CONST(0.43585707992225564), + FX16_CONST(-0.8993462369793418), FX16_CONST(0.4372371736610436), + FX16_CONST(-0.898674465693954), FX16_CONST(0.43861623853852727), + FX16_CONST(-0.89800057974074), FX16_CONST(0.43999427130963303), + FX16_CONST(-0.8973245807054183), FX16_CONST(0.4413712687317166), + FX16_CONST(-0.8966464701786802), FX16_CONST(0.4427472275645701), + FX16_CONST(-0.895966249756185), FX16_CONST(0.4441221445704294), + FX16_CONST(-0.8952839210385577), FX16_CONST(0.4454960165139813), + FX16_CONST(-0.8945994856313828), FX16_CONST(0.4468688401623739), + FX16_CONST(-0.8939129451452034), FX16_CONST(0.4482406122852198), + FX16_CONST(-0.8932243011955153), FX16_CONST(0.4496113296546066), + FX16_CONST(-0.8925335554027646), FX16_CONST(0.45098098904510403), + FX16_CONST(-0.891840709392343), FX16_CONST(0.4523495872337704), + FX16_CONST(-0.8911457647945834), FX16_CONST(0.4537171210001635), + FX16_CONST(-0.890448723244758), FX16_CONST(0.4550835871263436), + FX16_CONST(-0.8897495863830729), FX16_CONST(0.45644898239688386), + FX16_CONST(-0.8890483558546646), FX16_CONST(0.4578133035988773), + FX16_CONST(-0.8883450333095962), FX16_CONST(0.45917654752194437), + FX16_CONST(-0.8876396204028542), FX16_CONST(0.46053871095823956), + FX16_CONST(-0.8869321187943423), FX16_CONST(0.46189979070246245), + FX16_CONST(-0.8862225301488807), FX16_CONST(0.46325978355186004), + FX16_CONST(-0.8855108561362), FX16_CONST(0.4646186863062378), + FX16_CONST(-0.8847970984309377), FX16_CONST(0.4659764957679663), + FX16_CONST(-0.8840812587126353), FX16_CONST(0.4673332087419879), + FX16_CONST(-0.8833633386657318), FX16_CONST(0.46868882203582757), + FX16_CONST(-0.8826433399795629), FX16_CONST(0.4700433324595954), + FX16_CONST(-0.881921264348355), FX16_CONST(0.4713967368259976), + FX16_CONST(-0.881197113471222), FX16_CONST(0.47274903195034285), + FX16_CONST(-0.8804708890521606), FX16_CONST(0.4741002146505502), + FX16_CONST(-0.8797425928000476), FX16_CONST(0.4754502817471554), + FX16_CONST(-0.8790122264286336), FX16_CONST(0.4767992300633218), + FX16_CONST(-0.8782797916565416), FX16_CONST(0.4781470564248429), + FX16_CONST(-0.8775452902072612), FX16_CONST(0.479493757660153), + FX16_CONST(-0.8768087238091457), FX16_CONST(0.48083933060033407), + FX16_CONST(-0.8760700941954069), FX16_CONST(0.4821837720791222), + FX16_CONST(-0.875329403104111), FX16_CONST(0.48352707893291835), + FX16_CONST(-0.8745866522781762), FX16_CONST(0.4848692480007909), + FX16_CONST(-0.8738418434653669), FX16_CONST(0.4862102761244863), + FX16_CONST(-0.8730949784182901), FX16_CONST(0.487550160148436), + FX16_CONST(-0.8723460588943914), FX16_CONST(0.4888888969197634), + FX16_CONST(-0.8715950866559513), FX16_CONST(0.4902264832882907), + FX16_CONST(-0.8708420634700791), FX16_CONST(0.4915629161065497), + FX16_CONST(-0.8700869911087115), FX16_CONST(0.49289819222978387), + FX16_CONST(-0.8693298713486067), FX16_CONST(0.49423230851595973), + FX16_CONST(-0.8685707059713408), FX16_CONST(0.49556526182577265), + FX16_CONST(-0.8678094967633035), FX16_CONST(0.496897049022654), + FX16_CONST(-0.8670462455156929), FX16_CONST(0.4982276669727815), + FX16_CONST(-0.8662809540245131), FX16_CONST(0.49955711254508167), + FX16_CONST(-0.8655136240905691), FX16_CONST(0.5008853826112407), + FX16_CONST(-0.8647442575194624), FX16_CONST(0.5022124740457108), + FX16_CONST(-0.8639728561215866), FX16_CONST(0.5035383837257178), + FX16_CONST(-0.8631994217121244), FX16_CONST(0.5048631085312671), + FX16_CONST(-0.8624239561110407), FX16_CONST(0.506186645345155), + FX16_CONST(-0.8616464611430814), FX16_CONST(0.5075089910529706), + FX16_CONST(-0.8608669386377673), FX16_CONST(0.508830142543107), + FX16_CONST(-0.8600853904293901), FX16_CONST(0.5101500967067669), + FX16_CONST(-0.8593018183570087), FX16_CONST(0.5114688504379699), + FX16_CONST(-0.858516224264443), FX16_CONST(0.5127864006335626), + FX16_CONST(-0.8577286100002722), FX16_CONST(0.5141027441932216), + FX16_CONST(-0.8569389774178288), FX16_CONST(0.5154178780194629), + FX16_CONST(-0.8561473283751945), FX16_CONST(0.5167317990176499), + FX16_CONST(-0.8553536647351959), FX16_CONST(0.5180445040959996), + FX16_CONST(-0.8545579883654008), FX16_CONST(0.5193559901655892), + FX16_CONST(-0.8537603011381115), FX16_CONST(0.5206662541403668), + FX16_CONST(-0.8529606049303637), FX16_CONST(0.5219752929371542), + FX16_CONST(-0.8521589016239198), FX16_CONST(0.5232831034756564), + FX16_CONST(-0.8513551931052651), FX16_CONST(0.5245896826784691), + FX16_CONST(-0.8505494812656038), FX16_CONST(0.5258950274710842), + FX16_CONST(-0.8497417680008528), FX16_CONST(0.527199134781901), + FX16_CONST(-0.8489320552116397), FX16_CONST(0.5285020015422283), + FX16_CONST(-0.8481203448032973), FX16_CONST(0.5298036246862946), + FX16_CONST(-0.8473066386858583), FX16_CONST(0.531104001151255), + FX16_CONST(-0.8464909387740519), FX16_CONST(0.5324031278771981), + FX16_CONST(-0.8456732469872993), FX16_CONST(0.5337010018071525), + FX16_CONST(-0.8448535652497072), FX16_CONST(0.5349976198870969), + FX16_CONST(-0.8440318954900665), FX16_CONST(0.536292979065963), + FX16_CONST(-0.8432082396418454), FX16_CONST(0.5375870762956455), + FX16_CONST(-0.8423825996431858), FX16_CONST(0.5388799085310085), + FX16_CONST(-0.8415549774368988), FX16_CONST(0.5401714727298924), + FX16_CONST(-0.8407253749704583), FX16_CONST(0.5414617658531231), + FX16_CONST(-0.8398937941959996), FX16_CONST(0.5427507848645157), + FX16_CONST(-0.8390602370703127), FX16_CONST(0.5440385267308838), + FX16_CONST(-0.838224705554838), FX16_CONST(0.5453249884220465), + FX16_CONST(-0.8373872016156618), FX16_CONST(0.5466101669108351), + FX16_CONST(-0.8365477272235122), FX16_CONST(0.5478940591730997), + FX16_CONST(-0.8357062843537528), FX16_CONST(0.5491766621877194), + FX16_CONST(-0.8348628749863801), FX16_CONST(0.5504579729366046), + FX16_CONST(-0.8340175011060181), FX16_CONST(0.5517379884047073), + FX16_CONST(-0.8331701647019131), FX16_CONST(0.5530167055800277), + FX16_CONST(-0.83232086776793), FX16_CONST(0.5542941214536197), + FX16_CONST(-0.8314696123025455), FX16_CONST(0.5555702330196018), + FX16_CONST(-0.8306164003088464), FX16_CONST(0.5568450372751599), + FX16_CONST(-0.8297612337945232), FX16_CONST(0.558118531220556), + FX16_CONST(-0.8289041147718649), FX16_CONST(0.5593907118591361), + FX16_CONST(-0.8280450452577557), FX16_CONST(0.5606615761973361), + FX16_CONST(-0.8271840272736694), FX16_CONST(0.561931121244689), + FX16_CONST(-0.8263210628456636), FX16_CONST(0.5631993440138339), + FX16_CONST(-0.8254561540043777), FX16_CONST(0.5644662415205193), + FX16_CONST(-0.8245893027850253), FX16_CONST(0.5657318107836131), + FX16_CONST(-0.8237205112273913), FX16_CONST(0.5669960488251088), + FX16_CONST(-0.8228497813758266), FX16_CONST(0.568258952670131), + FX16_CONST(-0.8219771152792418), FX16_CONST(0.5695205193469468), + FX16_CONST(-0.8211025149911049), FX16_CONST(0.570780745886967), + FX16_CONST(-0.8202259825694347), FX16_CONST(0.5720396293247569), + FX16_CONST(-0.8193475200767969), FX16_CONST(0.5732971666980422), + FX16_CONST(-0.8184671295802985), FX16_CONST(0.574553355047716), + FX16_CONST(-0.8175848131515839), FX16_CONST(0.5758081914178449), + FX16_CONST(-0.816700572866828), FX16_CONST(0.5770616728556792), + FX16_CONST(-0.8158144108067339), FX16_CONST(0.5783137964116554), + FX16_CONST(-0.8149263290565266), FX16_CONST(0.5795645591394057), + FX16_CONST(-0.8140363297059483), FX16_CONST(0.5808139580957646), + FX16_CONST(-0.8131444148492539), FX16_CONST(0.5820619903407751), + FX16_CONST(-0.8122505865852042), FX16_CONST(0.583308652937698), + FX16_CONST(-0.811354847017064), FX16_CONST(0.5845539429530151), + FX16_CONST(-0.8104571982525949), FX16_CONST(0.5857978574564388), + FX16_CONST(-0.8095576424040513), FX16_CONST(0.5870403935209181), + FX16_CONST(-0.8086561815881749), FX16_CONST(0.5882815482226454), + FX16_CONST(-0.8077528179261906), FX16_CONST(0.5895213186410635), + FX16_CONST(-0.8068475535437994), FX16_CONST(0.5907597018588739), + FX16_CONST(-0.8059403905711764), FX16_CONST(0.5919966949620408), + FX16_CONST(-0.8050313311429637), FX16_CONST(0.5932322950397998), + FX16_CONST(-0.8041203773982657), FX16_CONST(0.5944664991846645), + FX16_CONST(-0.8032075314806453), FX16_CONST(0.5956993044924328), + FX16_CONST(-0.8022927955381159), FX16_CONST(0.5969307080621962), + FX16_CONST(-0.8013761717231404), FX16_CONST(0.598160706996342), + FX16_CONST(-0.8004576621926228), FX16_CONST(0.5993892984005644), + FX16_CONST(-0.799537269107905), FX16_CONST(0.600616479383869), + FX16_CONST(-0.7986149946347607), FX16_CONST(0.6018422470585802), + FX16_CONST(-0.7976908409433914), FX16_CONST(0.6030665985403478), + FX16_CONST(-0.7967648102084189), FX16_CONST(0.6042895309481557), + FX16_CONST(-0.7958369046088837), FX16_CONST(0.6055110414043253), + FX16_CONST(-0.794907126328237), FX16_CONST(0.6067311270345245), + FX16_CONST(-0.7939754775543371), FX16_CONST(0.6079497849677737), + FX16_CONST(-0.7930419604794441), FX16_CONST(0.6091670123364527), + FX16_CONST(-0.7921065773002126), FX16_CONST(0.6103828062763091), + FX16_CONST(-0.7911693302176903), FX16_CONST(0.6115971639264617), + FX16_CONST(-0.7902302214373101), FX16_CONST(0.6128100824294096), + FX16_CONST(-0.7892892531688857), FX16_CONST(0.6140215589310385), + FX16_CONST(-0.7883464276266061), FX16_CONST(0.615231590580627), + FX16_CONST(-0.7874017470290317), FX16_CONST(0.6164401745308532), + FX16_CONST(-0.786455213599086), FX16_CONST(0.6176473079378036), + FX16_CONST(-0.785506829564054), FX16_CONST(0.6188529879609762), + FX16_CONST(-0.7845565971555752), FX16_CONST(0.6200572117632892), + FX16_CONST(-0.7836045186096382), FX16_CONST(0.6212599765110877), + FX16_CONST(-0.7826505961665761), FX16_CONST(0.6224612793741495), + FX16_CONST(-0.7816948320710597), FX16_CONST(0.6236611175256942), + FX16_CONST(-0.7807372285720947), FX16_CONST(0.6248594881423861), + FX16_CONST(-0.7797777879230146), FX16_CONST(0.6260563884043434), + FX16_CONST(-0.7788165123814759), FX16_CONST(0.6272518154951442), + FX16_CONST(-0.7778534042094529), FX16_CONST(0.6284457666018328), + FX16_CONST(-0.7768884656732328), FX16_CONST(0.6296382389149267), + FX16_CONST(-0.7759216990434078), FX16_CONST(0.6308292296284242), + FX16_CONST(-0.774953106594874), FX16_CONST(0.6320187359398088), + FX16_CONST(-0.7739826906068228), FX16_CONST(0.6332067550500572), + FX16_CONST(-0.7730104533627369), FX16_CONST(0.6343932841636456), + FX16_CONST(-0.7720363971503849), FX16_CONST(0.6355783204885557), + FX16_CONST(-0.771060524261814), FX16_CONST(0.6367618612362839), + FX16_CONST(-0.7700828369933481), FX16_CONST(0.6379439036218438), + FX16_CONST(-0.7691033376455797), FX16_CONST(0.6391244448637756), + FX16_CONST(-0.7681220285233654), FX16_CONST(0.6403034821841517), + FX16_CONST(-0.7671389119358203), FX16_CONST(0.6414810128085833), + FX16_CONST(-0.7661539901963133), FX16_CONST(0.6426570339662265), + FX16_CONST(-0.7651672656224592), FX16_CONST(0.6438315428897912), + FX16_CONST(-0.7641787405361168), FX16_CONST(0.6450045368155438), + FX16_CONST(-0.7631884172633813), FX16_CONST(0.6461760129833163), + FX16_CONST(-0.7621962981345789), FX16_CONST(0.6473459686365122), + FX16_CONST(-0.7612023854842622), FX16_CONST(0.648514401022112), + FX16_CONST(-0.7602066816512026), FX16_CONST(0.6496813073906829), + FX16_CONST(-0.7592091889783882), FX16_CONST(0.6508466849963808), + FX16_CONST(-0.7582099098130154), FX16_CONST(0.6520105310969595), + FX16_CONST(-0.7572088465064846), FX16_CONST(0.6531728429537768), + FX16_CONST(-0.7562060014143943), FX16_CONST(0.6543336178318007), + FX16_CONST(-0.7552013768965369), FX16_CONST(0.655492852999615), + FX16_CONST(-0.7541949753168894), FX16_CONST(0.6566505457294287), + FX16_CONST(-0.7531867990436126), FX16_CONST(0.6578066932970785), + FX16_CONST(-0.7521768504490427), FX16_CONST(0.6589612929820373), + FX16_CONST(-0.7511651319096864), FX16_CONST(0.6601143420674206), + FX16_CONST(-0.7501516458062154), FX16_CONST(0.6612658378399917), + FX16_CONST(-0.7491363945234596), FX16_CONST(0.6624157775901715), + FX16_CONST(-0.7481193804504037), FX16_CONST(0.6635641586120395), + FX16_CONST(-0.7471006059801802), FX16_CONST(0.6647109782033448), + FX16_CONST(-0.7460800735100638), FX16_CONST(0.6658562336655097), + FX16_CONST(-0.7450577854414658), FX16_CONST(0.6669999223036377), + FX16_CONST(-0.7440337441799296), FX16_CONST(0.6681420414265181), + FX16_CONST(-0.7430079521351219), FX16_CONST(0.6692825883466358), + FX16_CONST(-0.7419804117208312), FX16_CONST(0.670421560380173), + FX16_CONST(-0.7409511253549591), FX16_CONST(0.6715589548470183), + FX16_CONST(-0.7399200954595161), FX16_CONST(0.672694769070773), + FX16_CONST(-0.7388873244606156), FX16_CONST(0.6738290003787556), + FX16_CONST(-0.7378528147884663), FX16_CONST(0.6749616461020117), + FX16_CONST(-0.7368165688773701), FX16_CONST(0.6760927035753157), + FX16_CONST(-0.7357785891657136), FX16_CONST(0.6772221701371803), + FX16_CONST(-0.7347388780959634), FX16_CONST(0.6783500431298615), + FX16_CONST(-0.7336974381146601), FX16_CONST(0.6794763198993652), + FX16_CONST(-0.7326542716724131), FX16_CONST(0.6806009977954527), + FX16_CONST(-0.7316093812238929), FX16_CONST(0.6817240741716495), + FX16_CONST(-0.7305627692278277), FX16_CONST(0.6828455463852479), + FX16_CONST(-0.729514438146997), FX16_CONST(0.6839654117973154), + FX16_CONST(-0.7284643904482251), FX16_CONST(0.6850836677727005), + FX16_CONST(-0.7274126286023762), FX16_CONST(0.6862003116800381), + FX16_CONST(-0.7263591550843463), FX16_CONST(0.6873153408917587), + FX16_CONST(-0.725303972373061), FX16_CONST(0.6884287527840902), + FX16_CONST(-0.724247082951467), FX16_CONST(0.6895405447370668), + FX16_CONST(-0.7231884893065273), FX16_CONST(0.6906507141345346), + FX16_CONST(-0.7221281939292151), FX16_CONST(0.6917592583641579), + FX16_CONST(-0.7210661993145084), FX16_CONST(0.6928661748174243), + FX16_CONST(-0.7200025079613819), FX16_CONST(0.6939714608896537), + FX16_CONST(-0.7189371223728046), FX16_CONST(0.6950751139800007), + FX16_CONST(-0.7178700450557318), FX16_CONST(0.6961771314914629), + FX16_CONST(-0.7168012785210994), FX16_CONST(0.6972775108308866), + FX16_CONST(-0.715730825283819), FX16_CONST(0.6983762494089724), + FX16_CONST(-0.7146586878627694), FX16_CONST(0.6994733446402834), + FX16_CONST(-0.7135848687807937), FX16_CONST(0.7005687939432481), + FX16_CONST(-0.7125093705646924), FX16_CONST(0.7016625947401685), + FX16_CONST(-0.7114321957452164), FX16_CONST(0.7027547444572253), + FX16_CONST(-0.7103533468570622), FX16_CONST(0.703845240524485), + FX16_CONST(-0.709272826438866), FX16_CONST(0.7049340803759045), + FX16_CONST(-0.7081906370331956), FX16_CONST(0.7060212614493395), + FX16_CONST(-0.7071067811865477), FX16_CONST(0.7071067811865474), + FX16_CONST(-0.7060212614493399), FX16_CONST(0.7081906370331953), + FX16_CONST(-0.7049340803759048), FX16_CONST(0.7092728264388657), + FX16_CONST(-0.7038452405244854), FX16_CONST(0.7103533468570619), + FX16_CONST(-0.7027547444572256), FX16_CONST(0.7114321957452161), + FX16_CONST(-0.7016625947401687), FX16_CONST(0.7125093705646921), + FX16_CONST(-0.7005687939432484), FX16_CONST(0.7135848687807935), + FX16_CONST(-0.6994733446402838), FX16_CONST(0.7146586878627691), + FX16_CONST(-0.6983762494089727), FX16_CONST(0.7157308252838188), + FX16_CONST(-0.697277510830887), FX16_CONST(0.7168012785210991), + FX16_CONST(-0.6961771314914632), FX16_CONST(0.7178700450557315), + FX16_CONST(-0.695075113980001), FX16_CONST(0.7189371223728043), + FX16_CONST(-0.693971460889654), FX16_CONST(0.7200025079613817), + FX16_CONST(-0.6928661748174246), FX16_CONST(0.7210661993145082), + FX16_CONST(-0.6917592583641582), FX16_CONST(0.7221281939292149), + FX16_CONST(-0.6906507141345349), FX16_CONST(0.7231884893065271), + FX16_CONST(-0.6895405447370672), FX16_CONST(0.7242470829514667), + FX16_CONST(-0.6884287527840905), FX16_CONST(0.7253039723730607), + FX16_CONST(-0.687315340891759), FX16_CONST(0.726359155084346), + FX16_CONST(-0.6862003116800385), FX16_CONST(0.7274126286023759), + FX16_CONST(-0.6850836677727008), FX16_CONST(0.7284643904482249), + FX16_CONST(-0.6839654117973157), FX16_CONST(0.7295144381469967), + FX16_CONST(-0.6828455463852482), FX16_CONST(0.7305627692278274), + FX16_CONST(-0.6817240741716498), FX16_CONST(0.7316093812238925), + FX16_CONST(-0.680600997795453), FX16_CONST(0.7326542716724129), + FX16_CONST(-0.6794763198993655), FX16_CONST(0.7336974381146598), + FX16_CONST(-0.6783500431298618), FX16_CONST(0.7347388780959632), + FX16_CONST(-0.6772221701371807), FX16_CONST(0.7357785891657133), + FX16_CONST(-0.676092703575316), FX16_CONST(0.7368165688773698), + FX16_CONST(-0.674961646102012), FX16_CONST(0.737852814788466), + FX16_CONST(-0.6738290003787559), FX16_CONST(0.7388873244606152), + FX16_CONST(-0.6726947690707733), FX16_CONST(0.7399200954595158), + FX16_CONST(-0.6715589548470187), FX16_CONST(0.7409511253549589), + FX16_CONST(-0.6704215603801733), FX16_CONST(0.7419804117208308), + FX16_CONST(-0.6692825883466361), FX16_CONST(0.7430079521351216), + FX16_CONST(-0.6681420414265185), FX16_CONST(0.7440337441799294), + FX16_CONST(-0.666999922303638), FX16_CONST(0.7450577854414656), + FX16_CONST(-0.6658562336655101), FX16_CONST(0.7460800735100634), + FX16_CONST(-0.6647109782033451), FX16_CONST(0.7471006059801799), + FX16_CONST(-0.6635641586120399), FX16_CONST(0.7481193804504035), + FX16_CONST(-0.6624157775901718), FX16_CONST(0.7491363945234594), + FX16_CONST(-0.661265837839992), FX16_CONST(0.7501516458062152), + FX16_CONST(-0.6601143420674209), FX16_CONST(0.751165131909686), + FX16_CONST(-0.6589612929820376), FX16_CONST(0.7521768504490425), + FX16_CONST(-0.6578066932970789), FX16_CONST(0.7531867990436123), + FX16_CONST(-0.656650545729429), FX16_CONST(0.7541949753168892), + FX16_CONST(-0.6554928529996153), FX16_CONST(0.7552013768965365), + FX16_CONST(-0.654333617831801), FX16_CONST(0.7562060014143941), + FX16_CONST(-0.6531728429537771), FX16_CONST(0.7572088465064842), + FX16_CONST(-0.6520105310969597), FX16_CONST(0.7582099098130151), + FX16_CONST(-0.650846684996381), FX16_CONST(0.759209188978388), + FX16_CONST(-0.6496813073906832), FX16_CONST(0.7602066816512024), + FX16_CONST(-0.6485144010221123), FX16_CONST(0.7612023854842619), + FX16_CONST(-0.6473459686365125), FX16_CONST(0.7621962981345786), + FX16_CONST(-0.6461760129833166), FX16_CONST(0.763188417263381), + FX16_CONST(-0.6450045368155441), FX16_CONST(0.7641787405361166), + FX16_CONST(-0.6438315428897915), FX16_CONST(0.7651672656224588), + FX16_CONST(-0.6426570339662268), FX16_CONST(0.7661539901963129), + FX16_CONST(-0.6414810128085836), FX16_CONST(0.76713891193582), + FX16_CONST(-0.640303482184152), FX16_CONST(0.7681220285233651), + FX16_CONST(-0.639124444863776), FX16_CONST(0.7691033376455795), + FX16_CONST(-0.6379439036218442), FX16_CONST(0.7700828369933479), + FX16_CONST(-0.6367618612362842), FX16_CONST(0.7710605242618138), + FX16_CONST(-0.635578320488556), FX16_CONST(0.7720363971503846), + FX16_CONST(-0.6343932841636459), FX16_CONST(0.7730104533627365), + FX16_CONST(-0.6332067550500575), FX16_CONST(0.7739826906068226), + FX16_CONST(-0.6320187359398092), FX16_CONST(0.7749531065948737), + FX16_CONST(-0.6308292296284246), FX16_CONST(0.7759216990434076), + FX16_CONST(-0.629638238914927), FX16_CONST(0.7768884656732326), + FX16_CONST(-0.6284457666018332), FX16_CONST(0.7778534042094527), + FX16_CONST(-0.6272518154951445), FX16_CONST(0.7788165123814756), + FX16_CONST(-0.6260563884043437), FX16_CONST(0.7797777879230143), + FX16_CONST(-0.6248594881423865), FX16_CONST(0.7807372285720944), + FX16_CONST(-0.6236611175256945), FX16_CONST(0.7816948320710594), + FX16_CONST(-0.6224612793741499), FX16_CONST(0.7826505961665758), + FX16_CONST(-0.621259976511088), FX16_CONST(0.7836045186096379), + FX16_CONST(-0.6200572117632894), FX16_CONST(0.784556597155575), + FX16_CONST(-0.6188529879609765), FX16_CONST(0.7855068295640538), + FX16_CONST(-0.617647307937804), FX16_CONST(0.7864552135990857), + FX16_CONST(-0.6164401745308535), FX16_CONST(0.7874017470290314), + FX16_CONST(-0.6152315905806274), FX16_CONST(0.7883464276266059), + FX16_CONST(-0.6140215589310388), FX16_CONST(0.7892892531688854), + FX16_CONST(-0.6128100824294099), FX16_CONST(0.7902302214373098), + FX16_CONST(-0.611597163926462), FX16_CONST(0.7911693302176901), + FX16_CONST(-0.6103828062763095), FX16_CONST(0.7921065773002124), + FX16_CONST(-0.6091670123364531), FX16_CONST(0.7930419604794438), + FX16_CONST(-0.6079497849677741), FX16_CONST(0.7939754775543368), + FX16_CONST(-0.6067311270345248), FX16_CONST(0.7949071263282368), + FX16_CONST(-0.6055110414043257), FX16_CONST(0.7958369046088833), + FX16_CONST(-0.6042895309481561), FX16_CONST(0.7967648102084187), + FX16_CONST(-0.6030665985403482), FX16_CONST(0.7976908409433912), + FX16_CONST(-0.6018422470585806), FX16_CONST(0.7986149946347605), + FX16_CONST(-0.6006164793838693), FX16_CONST(0.7995372691079048), + FX16_CONST(-0.5993892984005648), FX16_CONST(0.8004576621926226), + FX16_CONST(-0.5981607069963424), FX16_CONST(0.8013761717231401), + FX16_CONST(-0.5969307080621965), FX16_CONST(0.8022927955381157), + FX16_CONST(-0.5956993044924332), FX16_CONST(0.803207531480645), + FX16_CONST(-0.5944664991846649), FX16_CONST(0.8041203773982655), + FX16_CONST(-0.5932322950398001), FX16_CONST(0.8050313311429633), + FX16_CONST(-0.5919966949620411), FX16_CONST(0.8059403905711762), + FX16_CONST(-0.5907597018588743), FX16_CONST(0.8068475535437992), + FX16_CONST(-0.5895213186410638), FX16_CONST(0.8077528179261904), + FX16_CONST(-0.5882815482226458), FX16_CONST(0.8086561815881746), + FX16_CONST(-0.5870403935209184), FX16_CONST(0.8095576424040509), + FX16_CONST(-0.5857978574564391), FX16_CONST(0.8104571982525945), + FX16_CONST(-0.5845539429530154), FX16_CONST(0.8113548470170636), + FX16_CONST(-0.5833086529376983), FX16_CONST(0.8122505865852039), + FX16_CONST(-0.5820619903407754), FX16_CONST(0.8131444148492536), + FX16_CONST(-0.580813958095765), FX16_CONST(0.8140363297059481), + FX16_CONST(-0.5795645591394061), FX16_CONST(0.8149263290565264), + FX16_CONST(-0.5783137964116558), FX16_CONST(0.8158144108067337), + FX16_CONST(-0.5770616728556796), FX16_CONST(0.8167005728668277), + FX16_CONST(-0.5758081914178452), FX16_CONST(0.8175848131515837), + FX16_CONST(-0.5745533550477163), FX16_CONST(0.8184671295802983), + FX16_CONST(-0.5732971666980426), FX16_CONST(0.8193475200767967), + FX16_CONST(-0.5720396293247574), FX16_CONST(0.8202259825694345), + FX16_CONST(-0.5707807458869674), FX16_CONST(0.8211025149911046), + FX16_CONST(-0.5695205193469471), FX16_CONST(0.8219771152792416), + FX16_CONST(-0.5682589526701314), FX16_CONST(0.8228497813758264), + FX16_CONST(-0.5669960488251091), FX16_CONST(0.8237205112273911), + FX16_CONST(-0.5657318107836136), FX16_CONST(0.8245893027850251), + FX16_CONST(-0.5644662415205196), FX16_CONST(0.8254561540043773), + FX16_CONST(-0.5631993440138342), FX16_CONST(0.8263210628456634), + FX16_CONST(-0.5619311212446894), FX16_CONST(0.8271840272736691), + FX16_CONST(-0.5606615761973366), FX16_CONST(0.8280450452577554), + FX16_CONST(-0.5593907118591365), FX16_CONST(0.8289041147718647), + FX16_CONST(-0.5581185312205563), FX16_CONST(0.8297612337945228), + FX16_CONST(-0.5568450372751602), FX16_CONST(0.8306164003088462), + FX16_CONST(-0.5555702330196022), FX16_CONST(0.8314696123025452), + FX16_CONST(-0.55429412145362), FX16_CONST(0.8323208677679297), + FX16_CONST(-0.553016705580028), FX16_CONST(0.8331701647019129), + FX16_CONST(-0.5517379884047078), FX16_CONST(0.8340175011060179), + FX16_CONST(-0.550457972936605), FX16_CONST(0.8348628749863799), + FX16_CONST(-0.5491766621877198), FX16_CONST(0.8357062843537525), + FX16_CONST(-0.5478940591731001), FX16_CONST(0.836547727223512), + FX16_CONST(-0.5466101669108354), FX16_CONST(0.8373872016156616), + FX16_CONST(-0.5453249884220468), FX16_CONST(0.8382247055548377), + FX16_CONST(-0.5440385267308842), FX16_CONST(0.8390602370703125), + FX16_CONST(-0.542750784864516), FX16_CONST(0.8398937941959994), + FX16_CONST(-0.5414617658531234), FX16_CONST(0.8407253749704581), + FX16_CONST(-0.5401714727298927), FX16_CONST(0.8415549774368986), + FX16_CONST(-0.5388799085310089), FX16_CONST(0.8423825996431855), + FX16_CONST(-0.5375870762956458), FX16_CONST(0.8432082396418452), + FX16_CONST(-0.5362929790659634), FX16_CONST(0.8440318954900663), + FX16_CONST(-0.5349976198870973), FX16_CONST(0.844853565249707), + FX16_CONST(-0.5337010018071529), FX16_CONST(0.8456732469872991), + FX16_CONST(-0.5324031278771986), FX16_CONST(0.8464909387740517), + FX16_CONST(-0.5311040011512553), FX16_CONST(0.8473066386858581), + FX16_CONST(-0.5298036246862949), FX16_CONST(0.8481203448032971), + FX16_CONST(-0.5285020015422286), FX16_CONST(0.8489320552116395), + FX16_CONST(-0.5271991347819014), FX16_CONST(0.8497417680008524), + FX16_CONST(-0.5258950274710845), FX16_CONST(0.8505494812656035), + FX16_CONST(-0.5245896826784694), FX16_CONST(0.8513551931052649), + FX16_CONST(-0.5232831034756568), FX16_CONST(0.8521589016239196), + FX16_CONST(-0.5219752929371545), FX16_CONST(0.8529606049303635), + FX16_CONST(-0.5206662541403673), FX16_CONST(0.8537603011381113), + FX16_CONST(-0.5193559901655895), FX16_CONST(0.8545579883654005), + FX16_CONST(-0.5180445040959999), FX16_CONST(0.8553536647351957), + FX16_CONST(-0.5167317990176503), FX16_CONST(0.8561473283751942), + FX16_CONST(-0.5154178780194633), FX16_CONST(0.8569389774178285), + FX16_CONST(-0.5141027441932219), FX16_CONST(0.857728610000272), + FX16_CONST(-0.512786400633563), FX16_CONST(0.8585162242644427), + FX16_CONST(-0.5114688504379703), FX16_CONST(0.8593018183570085), + FX16_CONST(-0.5101500967067673), FX16_CONST(0.8600853904293899), + FX16_CONST(-0.5088301425431074), FX16_CONST(0.8608669386377671), + FX16_CONST(-0.5075089910529711), FX16_CONST(0.8616464611430812), + FX16_CONST(-0.5061866453451553), FX16_CONST(0.8624239561110405), + FX16_CONST(-0.5048631085312675), FX16_CONST(0.8631994217121242), + FX16_CONST(-0.5035383837257181), FX16_CONST(0.8639728561215864), + FX16_CONST(-0.5022124740457112), FX16_CONST(0.8647442575194622), + FX16_CONST(-0.500885382611241), FX16_CONST(0.8655136240905689), + FX16_CONST(-0.499557112545082), FX16_CONST(0.8662809540245129), + FX16_CONST(-0.49822766697278187), FX16_CONST(0.8670462455156926), + FX16_CONST(-0.4968970490226544), FX16_CONST(0.8678094967633033), + FX16_CONST(-0.49556526182577304), FX16_CONST(0.8685707059713406), + FX16_CONST(-0.49423230851596006), FX16_CONST(0.8693298713486066), + FX16_CONST(-0.49289819222978426), FX16_CONST(0.8700869911087113), + FX16_CONST(-0.49156291610655), FX16_CONST(0.8708420634700789), + FX16_CONST(-0.4902264832882911), FX16_CONST(0.8715950866559511), + FX16_CONST(-0.4888888969197637), FX16_CONST(0.8723460588943912), + FX16_CONST(-0.4875501601484364), FX16_CONST(0.8730949784182899), + FX16_CONST(-0.4862102761244867), FX16_CONST(0.8738418434653666), + FX16_CONST(-0.48486924800079123), FX16_CONST(0.874586652278176), + FX16_CONST(-0.48352707893291874), FX16_CONST(0.8753294031041108), + FX16_CONST(-0.4821837720791226), FX16_CONST(0.8760700941954067), + FX16_CONST(-0.48083933060033446), FX16_CONST(0.8768087238091454), + FX16_CONST(-0.4794937576601534), FX16_CONST(0.8775452902072611), + FX16_CONST(-0.4781470564248433), FX16_CONST(0.8782797916565414), + FX16_CONST(-0.4767992300633222), FX16_CONST(0.8790122264286334), + FX16_CONST(-0.4754502817471558), FX16_CONST(0.8797425928000475), + FX16_CONST(-0.4741002146505506), FX16_CONST(0.8804708890521604), + FX16_CONST(-0.47274903195034323), FX16_CONST(0.8811971134712218), + FX16_CONST(-0.4713967368259979), FX16_CONST(0.8819212643483548), + FX16_CONST(-0.4700433324595958), FX16_CONST(0.8826433399795627), + FX16_CONST(-0.46868882203582796), FX16_CONST(0.8833633386657316), + FX16_CONST(-0.4673332087419883), FX16_CONST(0.8840812587126351), + FX16_CONST(-0.4659764957679667), FX16_CONST(0.8847970984309375), + FX16_CONST(-0.4646186863062382), FX16_CONST(0.8855108561361997), + FX16_CONST(-0.4632597835518604), FX16_CONST(0.8862225301488805), + FX16_CONST(-0.46189979070246284), FX16_CONST(0.8869321187943421), + FX16_CONST(-0.46053871095823995), FX16_CONST(0.8876396204028539), + FX16_CONST(-0.4591765475219447), FX16_CONST(0.888345033309596), + FX16_CONST(-0.4578133035988777), FX16_CONST(0.8890483558546644), + FX16_CONST(-0.45644898239688425), FX16_CONST(0.8897495863830727), + FX16_CONST(-0.455083587126344), FX16_CONST(0.8904487232447578), + FX16_CONST(-0.45371712100016387), FX16_CONST(0.8911457647945832), + FX16_CONST(-0.4523495872337707), FX16_CONST(0.8918407093923428), + FX16_CONST(-0.45098098904510436), FX16_CONST(0.8925335554027644), + FX16_CONST(-0.449611329654607), FX16_CONST(0.8932243011955151), + FX16_CONST(-0.44824061228522016), FX16_CONST(0.8939129451452031), + FX16_CONST(-0.44686884016237427), FX16_CONST(0.8945994856313826), + FX16_CONST(-0.4454960165139817), FX16_CONST(0.8952839210385576), + FX16_CONST(-0.4441221445704298), FX16_CONST(0.8959662497561849), + FX16_CONST(-0.44274722756457047), FX16_CONST(0.8966464701786799), + FX16_CONST(-0.441371268731717), FX16_CONST(0.8973245807054181), + FX16_CONST(-0.4399942713096334), FX16_CONST(0.8980005797407398), + FX16_CONST(-0.43861623853852766), FX16_CONST(0.8986744656939538), + FX16_CONST(-0.437237173661044), FX16_CONST(0.8993462369793416), + FX16_CONST(-0.43585707992225603), FX16_CONST(0.90001589201616), + FX16_CONST(-0.4344759605696561), FX16_CONST(0.9006834292286467), + FX16_CONST(-0.4330938188531522), FX16_CONST(0.9013488470460219), + FX16_CONST(-0.43171065802505737), FX16_CONST(0.9020121439024932), + FX16_CONST(-0.43032648134008256), FX16_CONST(0.9026733182372588), + FX16_CONST(-0.4289412920553301), FX16_CONST(0.9033323684945116), + FX16_CONST(-0.42755509343028253), FX16_CONST(0.9039892931234431), + FX16_CONST(-0.42616788872679995), FX16_CONST(0.904644090578246), + FX16_CONST(-0.42477968120910903), FX16_CONST(0.9052967593181187), + FX16_CONST(-0.42339047414379605), FX16_CONST(0.9059472978072685), + FX16_CONST(-0.42200027079979957), FX16_CONST(0.9065957045149154), + FX16_CONST(-0.42060907444840306), FX16_CONST(0.9072419779152956), + FX16_CONST(-0.41921688836322435), FX16_CONST(0.907886116487666), + FX16_CONST(-0.41782371582021255), FX16_CONST(0.908528118716306), + FX16_CONST(-0.41642956009763726), FX16_CONST(0.9091679830905224), + FX16_CONST(-0.4150344244760816), FX16_CONST(0.9098057081046522), + FX16_CONST(-0.41363831223843517), FX16_CONST(0.9104412922580669), + FX16_CONST(-0.41224122666988333), FX16_CONST(0.9110747340551761), + FX16_CONST(-0.41084317105790424), FX16_CONST(0.9117060320054297), + FX16_CONST(-0.40944414869225776), FX16_CONST(0.9123351846233226), + FX16_CONST(-0.4080441628649787), FX16_CONST(0.9129621904283981), + FX16_CONST(-0.40664321687036886), FX16_CONST(0.9135870479452509), + FX16_CONST(-0.4052413140049904), FX16_CONST(0.9142097557035305), + FX16_CONST(-0.4038384575676545), FX16_CONST(0.914830312237946), + FX16_CONST(-0.4024346508594187), FX16_CONST(0.9154487160882677), + FX16_CONST(-0.40102989718357573), FX16_CONST(0.9160649657993316), + FX16_CONST(-0.3996241998456468), FX16_CONST(0.9166790599210427), + FX16_CONST(-0.3982175621533742), FX16_CONST(0.9172909970083777), + FX16_CONST(-0.3968099874167108), FX16_CONST(0.9179007756213903), + FX16_CONST(-0.39540147894781663), FX16_CONST(0.918508394325212), + FX16_CONST(-0.39399204006104827), FX16_CONST(0.9191138516900577), + FX16_CONST(-0.3925816740729515), FX16_CONST(0.9197171462912274), + FX16_CONST(-0.39117038430225376), FX16_CONST(0.9203182767091106), + FX16_CONST(-0.389758174069857), FX16_CONST(0.9209172415291892), + FX16_CONST(-0.3883450466988267), FX16_CONST(0.9215140393420418), + FX16_CONST(-0.38693100551438886), FX16_CONST(0.9221086687433451), + FX16_CONST(-0.38551605384391896), FX16_CONST(0.9227011283338785), + FX16_CONST(-0.384100195016935), FX16_CONST(0.9232914167195276), + FX16_CONST(-0.3826834323650904), FX16_CONST(0.9238795325112865), + FX16_CONST(-0.3812657692221628), FX16_CONST(0.9244654743252624), + FX16_CONST(-0.3798472089240515), FX16_CONST(0.9250492407826775), + FX16_CONST(-0.3784277548087658), FX16_CONST(0.9256308305098727), + FX16_CONST(-0.37700741021641826), FX16_CONST(0.9262102421383114), + FX16_CONST(-0.3755861784892171), FX16_CONST(0.9267874743045819), + FX16_CONST(-0.37416406297145854), FX16_CONST(0.9273625256504009), + FX16_CONST(-0.3727410670095162), FX16_CONST(0.9279353948226177), + FX16_CONST(-0.3713171939518378), FX16_CONST(0.9285060804732155), + FX16_CONST(-0.3698924471489342), FX16_CONST(0.9290745812593157), + FX16_CONST(-0.36846682995337227), FX16_CONST(0.9296408958431813), + FX16_CONST(-0.367040345719767), FX16_CONST(0.9302050228922192), + FX16_CONST(-0.36561299780477435), FX16_CONST(0.9307669610789835), + FX16_CONST(-0.3641847895670802), FX16_CONST(0.9313267090811803), + FX16_CONST(-0.3627557243673974), FX16_CONST(0.931884265581668), + FX16_CONST(-0.3613258055684543), FX16_CONST(0.9324396292684624), + FX16_CONST(-0.359895036534988), FX16_CONST(0.932992798834739), + FX16_CONST(-0.3584634206337371), FX16_CONST(0.933543772978836), + FX16_CONST(-0.3570309612334304), FX16_CONST(0.9340925504042588), + FX16_CONST(-0.35559766170478413), FX16_CONST(0.9346391298196807), + FX16_CONST(-0.3541635254204905), FX16_CONST(0.9351835099389475), + FX16_CONST(-0.35272855575521067), FX16_CONST(0.9357256894810804), + FX16_CONST(-0.3512927560855669), FX16_CONST(0.9362656671702784), + FX16_CONST(-0.3498561297901354), FX16_CONST(0.9368034417359214), + FX16_CONST(-0.3484186802494349), FX16_CONST(0.9373390119125748), + FX16_CONST(-0.34698041084592385), FX16_CONST(0.9378723764399898), + FX16_CONST(-0.3455413249639891), FX16_CONST(0.9384035340631081), + FX16_CONST(-0.34410142598993876), FX16_CONST(0.9389324835320646), + FX16_CONST(-0.34266071731199493), FX16_CONST(0.9394592236021897), + FX16_CONST(-0.3412192023202828), FX16_CONST(0.9399837530340138), + FX16_CONST(-0.33977688440682713), FX16_CONST(0.9405060705932682), + FX16_CONST(-0.3383337669655413), FX16_CONST(0.9410261750508893), + FX16_CONST(-0.33688985339222), FX16_CONST(0.9415440651830208), + FX16_CONST(-0.33544514708453144), FX16_CONST(0.9420597397710174), + FX16_CONST(-0.3339996514420099), FX16_CONST(0.9425731976014468), + FX16_CONST(-0.33255336986604456), FX16_CONST(0.9430844374660934), + FX16_CONST(-0.3311063057598766), FX16_CONST(0.9435934581619603), + FX16_CONST(-0.32965846252858755), FX16_CONST(0.9441002584912727), + FX16_CONST(-0.3282098435790924), FX16_CONST(0.9446048372614803), + FX16_CONST(-0.32676045232013234), FX16_CONST(0.9451071932852604), + FX16_CONST(-0.32531029216226337), FX16_CONST(0.9456073253805212), + FX16_CONST(-0.32385936651785313), FX16_CONST(0.9461052323704033), + FX16_CONST(-0.32240767880106996), FX16_CONST(0.9466009130832835), + FX16_CONST(-0.3209552324278752), FX16_CONST(0.9470943663527772), + FX16_CONST(-0.31950203081601547), FX16_CONST(0.9475855910177412), + FX16_CONST(-0.31804807738501545), FX16_CONST(0.9480745859222761), + FX16_CONST(-0.31659337555616623), FX16_CONST(0.9485613499157302), + FX16_CONST(-0.3151379287525226), FX16_CONST(0.9490458818527006), + FX16_CONST(-0.3136817403988915), FX16_CONST(0.9495281805930367), + FX16_CONST(-0.31222481392182483), FX16_CONST(0.9500082450018431), + FX16_CONST(-0.3107671527496121), FX16_CONST(0.9504860739494815), + FX16_CONST(-0.30930876031226917), FX16_CONST(0.950961666311575), + FX16_CONST(-0.30784964004153514), FX16_CONST(0.9514350209690082), + FX16_CONST(-0.3063897953708611), FX16_CONST(0.9519061368079322), + FX16_CONST(-0.3049292297354024), FX16_CONST(0.9523750127197659), + FX16_CONST(-0.3034679465720111), FX16_CONST(0.9528416476011987), + FX16_CONST(-0.3020059493192286), FX16_CONST(0.9533060403541936), + FX16_CONST(-0.3005432414172738), FX16_CONST(0.9537681898859902), + FX16_CONST(-0.29907982630804064), FX16_CONST(0.9542280951091056), + FX16_CONST(-0.29761570743508625), FX16_CONST(0.9546857549413383), + FX16_CONST(-0.29615088824362373), FX16_CONST(0.9551411683057708), + FX16_CONST(-0.29468537218051494), FX16_CONST(0.9555943341307709), + FX16_CONST(-0.2932191626942591), FX16_CONST(0.9560452513499963), + FX16_CONST(-0.29175226323498954), FX16_CONST(0.956493918902395), + FX16_CONST(-0.2902846772544625), FX16_CONST(0.9569403357322088), + FX16_CONST(-0.2888164082060494), FX16_CONST(0.957384500788976), + FX16_CONST(-0.28734745954472934), FX16_CONST(0.9578264130275329), + FX16_CONST(-0.2858778347270811), FX16_CONST(0.9582660714080176), + FX16_CONST(-0.2844075372112722), FX16_CONST(0.9587034748958715), + FX16_CONST(-0.28293657045705556), FX16_CONST(0.9591386224618419), + FX16_CONST(-0.28146493792575805), FX16_CONST(0.9595715130819845), + FX16_CONST(-0.2799926430802731), FX16_CONST(0.960002145737666), + FX16_CONST(-0.27851968938505367), FX16_CONST(0.9604305194155657), + FX16_CONST(-0.27704608030610034), FX16_CONST(0.9608566331076795), + FX16_CONST(-0.2755718193109584), FX16_CONST(0.9612804858113205), + FX16_CONST(-0.2740969098687065), FX16_CONST(0.9617020765291225), + FX16_CONST(-0.2726213554499489), FX16_CONST(0.9621214042690416), + FX16_CONST(-0.27114515952680784), FX16_CONST(0.9625384680443592), + FX16_CONST(-0.2696683255729156), FX16_CONST(0.9629532668736838), + FX16_CONST(-0.26819085706340356), FX16_CONST(0.9633657997809539), + FX16_CONST(-0.2667127574748986), FX16_CONST(0.9637760657954398), + FX16_CONST(-0.26523403028551185), FX16_CONST(0.9641840639517458), + FX16_CONST(-0.2637546789748313), FX16_CONST(0.9645897932898128), + FX16_CONST(-0.2622747070239142), FX16_CONST(0.9649932528549202), + FX16_CONST(-0.26079411791527596), FX16_CONST(0.9653944416976893), + FX16_CONST(-0.2593129151328865), FX16_CONST(0.9657933588740836), + FX16_CONST(-0.25783110216215915), FX16_CONST(0.9661900034454125), + FX16_CONST(-0.25634868248994286), FX16_CONST(0.9665843744783331), + FX16_CONST(-0.2548656596045144), FX16_CONST(0.9669764710448522), + FX16_CONST(-0.25338203699557066), FX16_CONST(0.9673662922223284), + FX16_CONST(-0.2518978181542173), FX16_CONST(0.9677538370934754), + FX16_CONST(-0.25041300657296545), FX16_CONST(0.9681391047463623), + FX16_CONST(-0.2489276057457202), FX16_CONST(0.9685220942744173), + FX16_CONST(-0.24744161916777319), FX16_CONST(0.9689028047764289), + FX16_CONST(-0.2459550503357952), FX16_CONST(0.9692812353565483), + FX16_CONST(-0.2444679027478246), FX16_CONST(0.9696573851242923), + FX16_CONST(-0.24298017990326418), FX16_CONST(0.970031253194544), + FX16_CONST(-0.24149188530286947), FX16_CONST(0.9704028386875554), + FX16_CONST(-0.24000302244874144), FX16_CONST(0.9707721407289504), + FX16_CONST(-0.23851359484431825), FX16_CONST(0.9711391584497252), + FX16_CONST(-0.23702360599436773), FX16_CONST(0.9715038909862517), + FX16_CONST(-0.23553305940497588), FX16_CONST(0.9718663374802793), + FX16_CONST(-0.23404195858354362), FX16_CONST(0.9722264970789363), + FX16_CONST(-0.2325503070387753), FX16_CONST(0.9725843689347322), + FX16_CONST(-0.231058108280671), FX16_CONST(0.9729399522055602), + FX16_CONST(-0.22956536582051948), FX16_CONST(0.9732932460546981), + FX16_CONST(-0.22807208317088618), FX16_CONST(0.9736442496508119), + FX16_CONST(-0.22657826384561028), FX16_CONST(0.9739929621679558), + FX16_CONST(-0.22508391135979297), FX16_CONST(0.9743393827855759), + FX16_CONST(-0.22358902922978996), FX16_CONST(0.9746835106885107), + FX16_CONST(-0.22209362097320334), FX16_CONST(0.9750253450669942), + FX16_CONST(-0.22059769010887406), FX16_CONST(0.9753648851166569), + FX16_CONST(-0.21910124015687016), FX16_CONST(0.9757021300385285), + FX16_CONST(-0.21760427463848384), FX16_CONST(0.976037079039039), + FX16_CONST(-0.21610679707621955), FX16_CONST(0.9763697313300211), + FX16_CONST(-0.21460881099378668), FX16_CONST(0.9767000861287118), + FX16_CONST(-0.21311031991609197), FX16_CONST(0.9770281426577542), + FX16_CONST(-0.21161132736922802), FX16_CONST(0.9773539001452), + FX16_CONST(-0.21011183688046992), FX16_CONST(0.9776773578245099), + FX16_CONST(-0.20861185197826362), FX16_CONST(0.977998514934557), + FX16_CONST(-0.20711137619221853), FX16_CONST(0.9783173707196277), + FX16_CONST(-0.20561041305309907), FX16_CONST(0.9786339244294232), + FX16_CONST(-0.2041089660928174), FX16_CONST(0.9789481753190621), + FX16_CONST(-0.2026070388444215), FX16_CONST(0.979260122649082), + FX16_CONST(-0.20110463484209212), FX16_CONST(0.9795697656854405), + FX16_CONST(-0.19960175762113103), FX16_CONST(0.9798771036995176), + FX16_CONST(-0.19809841071795348), FX16_CONST(0.9801821359681174), + FX16_CONST(-0.19659459767008083), FX16_CONST(0.9804848617734693), + FX16_CONST(-0.19509032201612872), FX16_CONST(0.9807852804032303), + FX16_CONST(-0.1935855872958039), FX16_CONST(0.9810833911504866), + FX16_CONST(-0.19208039704989258), FX16_CONST(0.9813791933137546), + FX16_CONST(-0.19057475482025274), FX16_CONST(0.9816726861969831), + FX16_CONST(-0.18906866414980603), FX16_CONST(0.9819638691095554), + FX16_CONST(-0.18756212858253013), FX16_CONST(0.9822527413662893), + FX16_CONST(-0.18605515166344702), FX16_CONST(0.9825393022874411), + FX16_CONST(-0.18454773693861984), FX16_CONST(0.9828235511987052), + FX16_CONST(-0.183039887955141), FX16_CONST(0.9831054874312163), + FX16_CONST(-0.18153160826112488), FX16_CONST(0.9833851103215512), + FX16_CONST(-0.18002290140570013), FX16_CONST(0.9836624192117301), + FX16_CONST(-0.17851377093899798), FX16_CONST(0.9839374134492188), + FX16_CONST(-0.17700422041214905), FX16_CONST(0.984210092386929), + FX16_CONST(-0.17549425337727156), FX16_CONST(0.9844804553832209), + FX16_CONST(-0.1739838733874638), FX16_CONST(0.9847485018019042), + FX16_CONST(-0.17247308399679578), FX16_CONST(0.9850142310122398), + FX16_CONST(-0.17096188876030177), FX16_CONST(0.9852776423889411), + FX16_CONST(-0.16945029123396835), FX16_CONST(0.985538735312176), + FX16_CONST(-0.1679382949747314), FX16_CONST(0.9857975091675674), + FX16_CONST(-0.1664259035404642), FX16_CONST(0.9860539633461954), + FX16_CONST(-0.1649131204899698), FX16_CONST(0.9863080972445987), + FX16_CONST(-0.16339994938297386), FX16_CONST(0.9865599102647753), + FX16_CONST(-0.1618863937801123), FX16_CONST(0.9868094018141854), + FX16_CONST(-0.16037245724292856), FX16_CONST(0.987056571305751), + FX16_CONST(-0.15885814333386158), FX16_CONST(0.9873014181578583), + FX16_CONST(-0.15734345561623825), FX16_CONST(0.9875439417943592), + FX16_CONST(-0.15582839765426507), FX16_CONST(0.9877841416445722), + FX16_CONST(-0.15431297301302063), FX16_CONST(0.9880220171432835), + FX16_CONST(-0.1527971852584438), FX16_CONST(0.9882575677307495), + FX16_CONST(-0.15128103795733044), FX16_CONST(0.9884907928526966), + FX16_CONST(-0.1497645346773216), FX16_CONST(0.9887216919603238), + FX16_CONST(-0.14824767898689595), FX16_CONST(0.988950264510303), + FX16_CONST(-0.1467304744553624), FX16_CONST(0.9891765099647809), + FX16_CONST(-0.14521292465284794), FX16_CONST(0.9894004277913803), + FX16_CONST(-0.14369503315029475), FX16_CONST(0.9896220174632008), + FX16_CONST(-0.1421768035194482), FX16_CONST(0.9898412784588205), + FX16_CONST(-0.1406582393328492), FX16_CONST(0.9900582102622971), + FX16_CONST(-0.13913934416382603), FX16_CONST(0.9902728123631691), + FX16_CONST(-0.1376201215864866), FX16_CONST(0.990485084256457), + FX16_CONST(-0.1361005751757066), FX16_CONST(0.9906950254426646), + FX16_CONST(-0.13458070850712642), FX16_CONST(0.99090263542778), + FX16_CONST(-0.13306052515713912), FX16_CONST(0.9911079137232768), + FX16_CONST(-0.131540028702883), FX16_CONST(0.9913108598461154), + FX16_CONST(-0.13001922272223398), FX16_CONST(0.9915114733187439), + FX16_CONST(-0.12849811079379364), FX16_CONST(0.9917097536690994), + FX16_CONST(-0.12697669649688617), FX16_CONST(0.9919057004306093), + FX16_CONST(-0.12545498341154637), FX16_CONST(0.9920993131421917), + FX16_CONST(-0.12393297511851216), FX16_CONST(0.9922905913482574), + FX16_CONST(-0.12241067519921603), FX16_CONST(0.99247953459871), + FX16_CONST(-0.12088808723577762), FX16_CONST(0.9926661424489479), + FX16_CONST(-0.11936521481099176), FX16_CONST(0.992850414459865), + FX16_CONST(-0.1178420615083252), FX16_CONST(0.9930323501978514), + FX16_CONST(-0.11631863091190484), FX16_CONST(0.9932119492347945), + FX16_CONST(-0.11479492660650999), FX16_CONST(0.9933892111480807), + FX16_CONST(-0.11327095217756497), FX16_CONST(0.9935641355205953), + FX16_CONST(-0.11174671121112706), FX16_CONST(0.9937367219407246), + FX16_CONST(-0.11022220729388336), FX16_CONST(0.9939069700023561), + FX16_CONST(-0.10869744401313887), FX16_CONST(0.9940748793048794), + FX16_CONST(-0.10717242495680884), FX16_CONST(0.9942404494531879), + FX16_CONST(-0.10564715371341044), FX16_CONST(0.9944036800576791), + FX16_CONST(-0.10412163387205513), FX16_CONST(0.9945645707342554), + FX16_CONST(-0.10259586902243668), FX16_CONST(0.9947231211043257), + FX16_CONST(-0.10106986275482806), FX16_CONST(0.9948793307948056), + FX16_CONST(-0.0995436186600694), FX16_CONST(0.9950331994381186), + FX16_CONST(-0.0980171403295605), FX16_CONST(0.9951847266721969), + FX16_CONST(-0.09649043135525323), FX16_CONST(0.9953339121404822), + FX16_CONST(-0.09496349532963948), FX16_CONST(0.9954807554919269), + FX16_CONST(-0.09343633584574809), FX16_CONST(0.9956252563809943), + FX16_CONST(-0.09190895649713288), FX16_CONST(0.9957674144676598), + FX16_CONST(-0.09038136087786497), FX16_CONST(0.9959072294174117), + FX16_CONST(-0.08885355258252442), FX16_CONST(0.996044700901252), + FX16_CONST(-0.08732553520619263), FX16_CONST(0.9961798285956969), + FX16_CONST(-0.08579731234444028), FX16_CONST(0.996312612182778), + FX16_CONST(-0.08426888759332431), FX16_CONST(0.9964430513500426), + FX16_CONST(-0.08274026454937576), FX16_CONST(0.9965711457905548), + FX16_CONST(-0.08121144680959234), FX16_CONST(0.9966968952028961), + FX16_CONST(-0.07968243797143075), FX16_CONST(0.9968202992911657), + FX16_CONST(-0.07815324163279472), FX16_CONST(0.996941357764982), + FX16_CONST(-0.07662386139203181), FX16_CONST(0.997060070339483), + FX16_CONST(-0.07509430084792147), FX16_CONST(0.9971764367353261), + FX16_CONST(-0.07356456359966741), FX16_CONST(0.9972904566786902), + FX16_CONST(-0.07203465324688915), FX16_CONST(0.9974021299012753), + FX16_CONST(-0.07050457338961442), FX16_CONST(0.9975114561403035), + FX16_CONST(-0.06897432762826713), FX16_CONST(0.9976184351385196), + FX16_CONST(-0.06744391956366429), FX16_CONST(0.9977230666441916), + FX16_CONST(-0.06591335279700389), FX16_CONST(0.9978253504111116), + FX16_CONST(-0.06438263092985737), FX16_CONST(0.997925286198596), + FX16_CONST(-0.06285175756416206), FX16_CONST(0.9980228737714861), + FX16_CONST(-0.06132073630220906), FX16_CONST(0.9981181129001492), + FX16_CONST(-0.05978957074664019), FX16_CONST(0.9982110033604782), + FX16_CONST(-0.05825826450043591), FX16_CONST(0.9983015449338928), + FX16_CONST(-0.05672682116690774), FX16_CONST(0.9983897374073402), + FX16_CONST(-0.055195244349689775), FX16_CONST(0.9984755805732948), + FX16_CONST(-0.05366353765273108), FX16_CONST(0.9985590742297593), + FX16_CONST(-0.05213170468028372), FX16_CONST(0.9986402181802652), + FX16_CONST(-0.05059974903689952), FX16_CONST(0.9987190122338729), + FX16_CONST(-0.04906767432741809), FX16_CONST(0.9987954562051724), + FX16_CONST(-0.04753548415695922), FX16_CONST(0.9988695499142836), + FX16_CONST(-0.04600318213091527), FX16_CONST(0.9989412931868569), + FX16_CONST(-0.044470771854939146), FX16_CONST(0.9990106858540733), + FX16_CONST(-0.04293825693494114), FX16_CONST(0.9990777277526454), + FX16_CONST(-0.0414056409770769), FX16_CONST(0.9991424187248169), + FX16_CONST(-0.03987292758773981), FX16_CONST(0.9992047586183639), + FX16_CONST(-0.038340120373552534), FX16_CONST(0.9992647472865944), + FX16_CONST(-0.036807222941359394), FX16_CONST(0.9993223845883494), + FX16_CONST(-0.03527423889821435), FX16_CONST(0.9993776703880028), + FX16_CONST(-0.03374117185137782), FX16_CONST(0.9994306045554617), + FX16_CONST(-0.03220802540830466), FX16_CONST(0.999481186966167), + FX16_CONST(-0.030674803176636543), FX16_CONST(0.9995294175010931), + FX16_CONST(-0.029141508764194368), FX16_CONST(0.9995752960467492), + FX16_CONST(-0.027608145778966225), FX16_CONST(0.9996188224951786), + FX16_CONST(-0.02607471782910422), FX16_CONST(0.9996599967439592), + FX16_CONST(-0.024541228522912448), FX16_CONST(0.9996988186962042), + FX16_CONST(-0.023007681468839372), FX16_CONST(0.9997352882605617), + FX16_CONST(-0.021474080275469345), FX16_CONST(0.9997694053512153), + FX16_CONST(-0.019940428551515003), FX16_CONST(0.9998011698878843), + FX16_CONST(-0.018406729905805226), FX16_CONST(0.9998305817958234), + FX16_CONST(-0.016872987947281957), FX16_CONST(0.9998576410058239), + FX16_CONST(-0.015339206284988182), FX16_CONST(0.9998823474542126), + FX16_CONST(-0.01380538852806031), FX16_CONST(0.9999047010828529), + FX16_CONST(-0.012271538285720572), FX16_CONST(0.9999247018391445), + FX16_CONST(-0.010737659167264976), FX16_CONST(0.9999423496760239), + FX16_CONST(-0.009203754782060144), FX16_CONST(0.9999576445519639), + FX16_CONST(-0.007669828739531261), FX16_CONST(0.9999705864309741), + FX16_CONST(-0.006135884649154477), FX16_CONST(0.9999811752826011), + FX16_CONST(-0.004601926120448411), FX16_CONST(0.9999894110819284), + FX16_CONST(-0.003067956762966544), FX16_CONST(0.9999952938095762), + FX16_CONST(-0.0015339801862851719), FX16_CONST(0.9999988234517019) +}; diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index ea709996f..c8dbfb165 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1232,7 +1232,7 @@ MOD05_021E3DA0: ; 0x021E3DA0 bl MTX_Identity22_ add r0, sp, #8 ldrh r0, [r0, #0x14] - ldr r3, _021E3E0C ; =UNK_020FFA38 + ldr r3, _021E3E0C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1271,7 +1271,7 @@ MOD05_021E3DA0: ; 0x021E3DA0 bl FUN_0200CA98 pop {r3, r4, r5, r6, r7, pc} nop -_021E3E0C: .word UNK_020FFA38 +_021E3E0C: .word FX_SinCosTable_ _021E3E10: .word MOD05_021E3D70 thumb_func_start MOD05_021E3E14 @@ -2286,7 +2286,7 @@ MOD05_021E45A0: ; 0x021E45A0 add r4, r1, #0 lsl r1, r0, #1 lsl r0, r1, #1 - ldr r2, _021E4680 ; =UNK_020FFA38 + ldr r2, _021E4680 ; =FX_SinCosTable_ add r1, r1, #1 lsl r1, r1, #1 ldrsh r0, [r2, r0] @@ -2297,7 +2297,7 @@ MOD05_021E45A0: ; 0x021E45A0 asr r0, r4, #4 lsl r1, r0, #1 lsl r0, r1, #1 - ldr r2, _021E4680 ; =UNK_020FFA38 + ldr r2, _021E4680 ; =FX_SinCosTable_ add r1, r1, #1 lsl r1, r1, #1 ldrsh r0, [r2, r0] @@ -2389,7 +2389,7 @@ _021E464C: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021E4680: .word UNK_020FFA38 +_021E4680: .word FX_SinCosTable_ _021E4684: .word 0x00000000 thumb_func_start MOD05_021E4688 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 13563cc24..fd20ac806 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -15780,7 +15780,7 @@ _021F03A8: asr r0, r1, #4 lsl r3, r0, #1 lsl r1, r3, #1 - ldr r2, _021F0438 ; =UNK_020FFA38 + ldr r2, _021F0438 ; =FX_SinCosTable_ add r3, r3, #1 lsl r3, r3, #1 ldrsh r1, [r2, r1] @@ -15794,7 +15794,7 @@ _021F03A8: asr r0, r5, #4 lsl r2, r0, #1 lsl r1, r2, #1 - ldr r3, _021F0438 ; =UNK_020FFA38 + ldr r3, _021F0438 ; =FX_SinCosTable_ add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] @@ -15839,7 +15839,7 @@ _021F03A8: pop {r4, r5, r6, r7, pc} nop _021F0434: .word UNK05_021F8B6C -_021F0438: .word UNK_020FFA38 +_021F0438: .word FX_SinCosTable_ thumb_func_start MOD05_021F043C MOD05_021F043C: ; 0x021F043C @@ -15866,7 +15866,7 @@ MOD05_021F0454: ; 0x021F0454 bl FUN_0201F008 strh r0, [r5] ldrh r0, [r5] - ldr r2, _021F04F0 ; =UNK_020FFA38 + ldr r2, _021F04F0 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r1, r0, #1 lsl r0, r1, #1 @@ -15909,7 +15909,7 @@ MOD05_021F0454: ; 0x021F0454 str r0, [r5, #0x1c] add r0, sp, #0 ldrh r0, [r0] - ldr r3, _021F04F0 ; =UNK_020FFA38 + ldr r3, _021F04F0 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -15924,7 +15924,7 @@ MOD05_021F0454: ; 0x021F0454 add sp, #0x2c pop {r4, r5, pc} nop -_021F04F0: .word UNK_020FFA38 +_021F04F0: .word FX_SinCosTable_ _021F04F4: .word UNK05_021F8B78 thumb_func_start MOD05_021F04F8 @@ -26373,7 +26373,7 @@ MOD05_021F5430: ; 0x021F5430 add r0, r4, #0 add r0, #0x70 ldrh r0, [r0] - ldr r3, _021F54C8 ; =UNK_020FFA38 + ldr r3, _021F54C8 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -26390,7 +26390,7 @@ MOD05_021F5430: ; 0x021F5430 add r0, r4, #0 add r0, #0x74 ldrh r0, [r0] - ldr r3, _021F54C8 ; =UNK_020FFA38 + ldr r3, _021F54C8 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -26407,7 +26407,7 @@ MOD05_021F5430: ; 0x021F5430 add r0, r4, #0 add r0, #0x72 ldrh r0, [r0] - ldr r3, _021F54C8 ; =UNK_020FFA38 + ldr r3, _021F54C8 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -26432,7 +26432,7 @@ _021F54C4: add sp, #0x48 pop {r4, pc} .balign 4, 0 -_021F54C8: .word UNK_020FFA38 +_021F54C8: .word FX_SinCosTable_ thumb_func_start MOD05_021F54CC MOD05_021F54CC: ; 0x021F54CC diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index b6af83a94..8004f1a48 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -12792,7 +12792,7 @@ _02217DA2: ldr r2, [r4, #0xc] asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _02217E2C ; =UNK_020FFA38 + ldr r0, _02217E2C ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -12813,7 +12813,7 @@ _02217DA2: lsl r0, r0, #1 add r0, r0, #1 lsl r1, r0, #1 - ldr r0, _02217E2C ; =UNK_020FFA38 + ldr r0, _02217E2C ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -12834,7 +12834,7 @@ _02217E26: mov r0, #0 pop {r4, pc} nop -_02217E2C: .word UNK_020FFA38 +_02217E2C: .word FX_SinCosTable_ thumb_func_start MOD08_02217E30 MOD08_02217E30: ; 0x02217E30 @@ -13221,7 +13221,7 @@ _022180CE: lsl r0, r0, #1 add r0, r0, #1 lsl r1, r0, #1 - ldr r0, _0221811C ; =UNK_020FFA38 + ldr r0, _0221811C ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -13242,7 +13242,7 @@ _02218116: mov r0, #0 pop {r4, pc} nop -_0221811C: .word UNK_020FFA38 +_0221811C: .word FX_SinCosTable_ thumb_func_start MOD08_02218120 MOD08_02218120: ; 0x02218120 @@ -38351,7 +38351,7 @@ _02224CA6: mul r0, r1 asr r0, r0, #4 lsl r0, r0, #2 - ldr r1, _02224D70 ; =UNK_020FFA38 + ldr r1, _02224D70 ; =FX_SinCosTable_ str r0, [sp, #0x18] add r1, r1, r0 mov r0, #2 @@ -38371,7 +38371,7 @@ _02224CA6: lsl r0, r1, #4 asr r6, r0, #0x10 mov r2, #3 - ldr r1, _02224D70 ; =UNK_020FFA38 + ldr r1, _02224D70 ; =FX_SinCosTable_ ldr r0, [sp, #0x18] lsl r2, r2, #0x10 ldrsh r0, [r1, r0] @@ -38437,7 +38437,7 @@ _02224D50: pop {r3, r4, r5, r6, r7, pc} nop _02224D6C: .word 0x00001555 -_02224D70: .word UNK_020FFA38 +_02224D70: .word FX_SinCosTable_ _02224D74: .word 0x00000000 _02224D78: .word MOD08_02224AF4 @@ -39693,7 +39693,7 @@ _022257C6: lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _0222586C ; =UNK_020FFA38 + ldr r0, _0222586C ; =FX_SinCosTable_ ldr r3, [r6, #0x14] ldrsh r0, [r0, r1] lsl r2, r2, #0xc @@ -39762,7 +39762,7 @@ _02225852: add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop -_0222586C: .word UNK_020FFA38 +_0222586C: .word FX_SinCosTable_ _02225870: .word 0x00000132 _02225874: .word 0x00000000 _02225878: .word 0x00003FFF @@ -40033,7 +40033,7 @@ MOD08_02225A70: ; 0x02225A70 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _02225B30 ; =UNK_020FFA38 + ldr r0, _02225B30 ; =FX_SinCosTable_ lsl r2, r2, #0xc ldrsh r0, [r0, r1] mov r3, #0 @@ -40096,7 +40096,7 @@ _02225B2A: add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 -_02225B30: .word UNK_020FFA38 +_02225B30: .word FX_SinCosTable_ _02225B34: .word 0x00000000 _02225B38: .word 0x45800000 @@ -40407,7 +40407,7 @@ _02225D8C: lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _02225E0C ; =UNK_020FFA38 + ldr r0, _02225E0C ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -40459,7 +40459,7 @@ _02225E02: pop {r4, r5, r6, r7, pc} nop _02225E08: .word 0x00000199 -_02225E0C: .word UNK_020FFA38 +_02225E0C: .word FX_SinCosTable_ _02225E10: .word 0x00000000 thumb_func_start MOD08_02225E14 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index adc8e5c22..e5c8bf914 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -29023,7 +29023,7 @@ _021E4ACE: lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _021E4B10 ; =UNK_020FFA38 + ldr r0, _021E4B10 ; =FX_SinCosTable_ mov r2, #3 ldrsh r0, [r0, r1] lsl r2, r2, #0x10 @@ -29044,7 +29044,7 @@ _021E4ACE: pop {r3, pc} .align 2, 0 _021E4B0C: .word 0x00007FFF -_021E4B10: .word UNK_020FFA38 +_021E4B10: .word FX_SinCosTable_ thumb_func_end MOD16_021E4AC0 thumb_func_start MOD16_021E4B14 @@ -49298,7 +49298,7 @@ MOD16_021EE2A4: ; 0x021EE2A4 lsl r4, r0, #1 add r0, r4, #1 lsl r1, r0, #1 - ldr r0, _021EE354 ; =UNK_020FFA38 + ldr r0, _021EE354 ; =FX_SinCosTable_ mov r3, #0 ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -49312,7 +49312,7 @@ MOD16_021EE2A4: ; 0x021EE2A4 lsr r5, r2, #0xc orr r5, r0 mov r2, #0xe - ldr r0, _021EE354 ; =UNK_020FFA38 + ldr r0, _021EE354 ; =FX_SinCosTable_ lsl r1, r4, #1 ldrsh r0, [r0, r1] lsl r2, r2, #0xe @@ -49364,7 +49364,7 @@ MOD16_021EE2A4: ; 0x021EE2A4 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_021EE354: .word UNK_020FFA38 +_021EE354: .word FX_SinCosTable_ thumb_func_end MOD16_021EE2A4 thumb_func_start MOD16_021EE358 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index b96d5a988..5d834cfae 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -1055,7 +1055,7 @@ MOD17_021D7C28: ; 0x021D7C28 mov r0, #0 str r0, [r1] ldr r0, [sp] - ldr r1, _021D7CB4 ; =UNK_020FFA38 + ldr r1, _021D7CB4 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r0, r2, #1 @@ -1101,7 +1101,7 @@ _021D7CA0: nop _021D7CAC: .word 0x04000454 _021D7CB0: .word 0x04000470 -_021D7CB4: .word UNK_020FFA38 +_021D7CB4: .word FX_SinCosTable_ _021D7CB8: .word 0x0400046C _021D7CBC: .word 0x04000448 thumb_func_end MOD17_021D7C28 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index dccb0b7d6..86075a843 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -17178,7 +17178,7 @@ _02241A30: lsl r2, r2, #0xa asr r0, r0, #4 lsl r6, r0, #1 - ldr r0, _02241AAC ; =UNK_020FFA38 + ldr r0, _02241AAC ; =FX_SinCosTable_ lsl r1, r6, #1 ldrsh r0, [r0, r1] mov r3, #0 @@ -17194,7 +17194,7 @@ _02241A30: orr r4, r0 add r0, r6, #1 lsl r1, r0, #1 - ldr r0, _02241AAC ; =UNK_020FFA38 + ldr r0, _02241AAC ; =FX_SinCosTable_ mov r2, #0xa ldrsh r0, [r0, r1] lsl r2, r2, #0xa @@ -17233,7 +17233,7 @@ _02241AA8: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 -_02241AAC: .word UNK_020FFA38 +_02241AAC: .word FX_SinCosTable_ _02241AB0: .word MOD18_022513A0 thumb_func_end MOD18_02241A04 @@ -17478,7 +17478,7 @@ _02241C70: ldr r2, [sp] asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _02241D34 ; =UNK_020FFA38 + ldr r0, _02241D34 ; =FX_SinCosTable_ asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f @@ -17504,7 +17504,7 @@ _02241C70: lsl r0, r0, #1 add r0, r0, #1 lsl r1, r0, #1 - ldr r0, _02241D34 ; =UNK_020FFA38 + ldr r0, _02241D34 ; =FX_SinCosTable_ ldrsh r0, [r0, r1] asr r1, r0, #0x1f bl _ll_mul @@ -17561,7 +17561,7 @@ _02241D24: .word MOD18_02241AB4 _02241D28: .word MOD18_022513A0 _02241D2C: .word 0x00000B3B _02241D30: .word 0x00000000 -_02241D34: .word UNK_020FFA38 +_02241D34: .word FX_SinCosTable_ thumb_func_end MOD18_02241AD0 thumb_func_start MOD18_02241D38 @@ -18343,7 +18343,7 @@ MOD18_02242320: ; 0x02242320 ldrh r0, [r2, r1] asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _022423AC ; =UNK_020FFA38 + ldr r0, _022423AC ; =FX_SinCosTable_ ldrsh r1, [r0, r1] mov r0, #1 lsl r0, r0, #0xc @@ -18373,7 +18373,7 @@ _022423A4: pop {r4, r5, pc} .align 2, 0 _022423A8: .word MOD18_022513A0 -_022423AC: .word UNK_020FFA38 +_022423AC: .word FX_SinCosTable_ thumb_func_end MOD18_02242320 thumb_func_start MOD18_022423B0 @@ -18529,7 +18529,7 @@ _022424D4: ldrh r0, [r4, #0x1c] asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _02242594 ; =UNK_020FFA38 + ldr r0, _02242594 ; =FX_SinCosTable_ ldrsh r1, [r0, r1] ldr r0, [r5, #0x48] sub r0, r0, r1 @@ -18538,7 +18538,7 @@ _022424D4: ldr r0, [r5, #0x44] asr r1, r1, #4 lsl r2, r1, #2 - ldr r1, _02242594 ; =UNK_020FFA38 + ldr r1, _02242594 ; =FX_SinCosTable_ add r2, r1, r2 mov r1, #2 ldrsh r1, [r2, r1] @@ -18616,7 +18616,7 @@ _02242584: .word 0x00000000 _02242588: .word MOD18_022500C0 _0224258C: .word 0x00000626 _02242590: .word MOD18_022513A0 -_02242594: .word UNK_020FFA38 +_02242594: .word FX_SinCosTable_ _02242598: .word 0x0000FFFF thumb_func_end MOD18_022423B0 diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index ee93d3173..317de1aa3 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -3404,7 +3404,7 @@ _02253CEE: add r0, #0x8c ldrh r2, [r6, #0x10] ldrh r0, [r0] - ldr r1, _02253E58 ; =UNK_020FFA38 + ldr r1, _02253E58 ; =FX_SinCosTable_ add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 @@ -3425,7 +3425,7 @@ _02253D20: beq _02253D3E asr r0, r0, #4 lsl r3, r0, #2 - ldr r1, _02253E58 ; =UNK_020FFA38 + ldr r1, _02253E58 ; =FX_SinCosTable_ ldr r0, [r4, #0x6c] add r2, r1, r3 ldrsh r1, [r1, r3] @@ -3574,7 +3574,7 @@ _02253E52: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop -_02253E58: .word UNK_020FFA38 +_02253E58: .word FX_SinCosTable_ _02253E5C: .word 0xDFFFFFFF _02253E60: .word 0xFFFFF3FF _02253E64: .word 0xFFFF0FFF diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index ce90e9658..41a37952d 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -1149,7 +1149,7 @@ MOD64_021D7E34: ; 0x021D7E34 add r0, r4, #0 add r0, #0x90 ldrh r0, [r0] - ldr r3, _021D7ECC ; =UNK_020FFA38 + ldr r3, _021D7ECC ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1166,7 +1166,7 @@ MOD64_021D7E34: ; 0x021D7E34 add r0, r4, #0 add r0, #0x92 ldrh r0, [r0] - ldr r3, _021D7ECC ; =UNK_020FFA38 + ldr r3, _021D7ECC ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1183,7 +1183,7 @@ MOD64_021D7E34: ; 0x021D7E34 add r0, r4, #0 add r0, #0x94 ldrh r0, [r0] - ldr r3, _021D7ECC ; =UNK_020FFA38 + ldr r3, _021D7ECC ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1211,7 +1211,7 @@ _021D7EC8: add sp, #0x48 pop {r4, pc} .align 2, 0 -_021D7ECC: .word UNK_020FFA38 +_021D7ECC: .word FX_SinCosTable_ thumb_func_end MOD64_021D7E34 thumb_func_start MOD64_021D7ED0 @@ -2795,7 +2795,7 @@ MOD64_021D8A90: ; 0x021D8A90 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _021D8ADC ; =UNK_020FFA38 + ldr r0, _021D8ADC ; =FX_SinCosTable_ ldr r2, [r4, #4] ldrsh r0, [r0, r1] asr r3, r2, #0x1f @@ -2818,7 +2818,7 @@ MOD64_021D8A90: ; 0x021D8A90 pop {r4, pc} nop _021D8AD8: .word 0x0000FFFF -_021D8ADC: .word UNK_020FFA38 +_021D8ADC: .word FX_SinCosTable_ thumb_func_end MOD64_021D8A90 thumb_func_start MOD64_021D8AE0 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index d88f4eb8e..ca1a771aa 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -3795,10 +3795,10 @@ _0222F408: mov r1, #1 bl G3B_LightVector ldrh r0, [r4, #0x28] - ldr r3, _0222F62C ; =UNK_020FFA38 + ldr r3, _0222F62C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _0222F62C ; =UNK_020FFA38 + ldr r0, _0222F62C ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r1, [r3, r1] mov r3, #2 @@ -3810,10 +3810,10 @@ _0222F408: add r1, r5, #0 bl MTX_Concat44 ldrh r0, [r4, #0x2a] - ldr r3, _0222F62C ; =UNK_020FFA38 + ldr r3, _0222F62C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _0222F62C ; =UNK_020FFA38 + ldr r0, _0222F62C ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r1, [r3, r1] mov r3, #2 @@ -3825,10 +3825,10 @@ _0222F408: add r1, r5, #0 bl MTX_Concat44 ldrh r0, [r4, #0x2c] - ldr r3, _0222F62C ; =UNK_020FFA38 + ldr r3, _0222F62C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r1, r0, #2 - ldr r0, _0222F62C ; =UNK_020FFA38 + ldr r0, _0222F62C ; =FX_SinCosTable_ add r2, r0, r1 ldrsh r1, [r3, r1] mov r3, #2 @@ -3950,7 +3950,7 @@ _0222F61C: .word 0x0000019A _0222F620: .word 0x00002D6B _0222F624: .word 0x00000FFF _0222F628: .word 0xFFFFF001 -_0222F62C: .word UNK_020FFA38 +_0222F62C: .word FX_SinCosTable_ _0222F630: .word 0x00007FFF _0222F634: .word 0x00008D1C _0222F638: .word 0x0000151C diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index 4a086c519..bfb0199d8 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -6738,7 +6738,7 @@ _021DA906: str r0, [sp, #0x6c] asr r0, r0, #0x1f lsl r3, r2, #1 - ldr r1, _021DAAA0 ; =UNK_020FFA38 + ldr r1, _021DAAA0 ; =FX_SinCosTable_ str r0, [sp, #0x70] ldr r0, [sp, #0xa8] ldrsh r6, [r1, r3] @@ -6904,7 +6904,7 @@ _021DA906: pop {r3, r4, r5, r6, r7, pc} nop _021DAA9C: .word MOD73_021DBE7C -_021DAAA0: .word UNK_020FFA38 +_021DAAA0: .word FX_SinCosTable_ _021DAAA4: .word 0x0000019A thumb_func_end MOD73_021DA8BC @@ -7130,7 +7130,7 @@ _021DABFC: lsl r4, r0, #1 add r0, r4, #1 lsl r1, r0, #1 - ldr r0, _021DAC98 ; =UNK_020FFA38 + ldr r0, _021DAC98 ; =FX_SinCosTable_ add r2, r6, #0 ldrsh r0, [r0, r1] add r3, r7, #0 @@ -7146,7 +7146,7 @@ _021DABFC: lsr r0, r0, #0xc orr r0, r1 str r0, [sp] - ldr r0, _021DAC98 ; =UNK_020FFA38 + ldr r0, _021DAC98 ; =FX_SinCosTable_ lsl r1, r4, #1 ldrsh r0, [r0, r1] add r2, r6, #0 @@ -7177,7 +7177,7 @@ _021DAC94: add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 -_021DAC98: .word UNK_020FFA38 +_021DAC98: .word FX_SinCosTable_ thumb_func_end MOD73_021DABD0 thumb_func_start MOD73_021DAC9C @@ -7706,7 +7706,7 @@ MOD73_021DB020: ; 0x021DB020 asr r0, r0, #4 lsl r1, r0, #1 add r0, r1, #1 - ldr r7, _021DB124 ; =UNK_020FFA38 + ldr r7, _021DB124 ; =FX_SinCosTable_ lsl r0, r0, #1 ldrsh r3, [r7, r0] asr r6, r3, #0x1f @@ -7819,7 +7819,7 @@ _021DB112: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop -_021DB124: .word UNK_020FFA38 +_021DB124: .word FX_SinCosTable_ _021DB128: .word 0x00000000 thumb_func_end MOD73_021DB020 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index 4dce464f0..cafcb158c 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -2567,7 +2567,7 @@ MOD77_021D8A30: ; 0x021D8A30 sub sp, #0x24 add r4, r1, #0 ldr r1, [r4, #4] - ldr r3, _021D8AA4 ; =UNK_020FFA38 + ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #4 @@ -2580,7 +2580,7 @@ MOD77_021D8A30: ; 0x021D8A30 add r5, r0, #0 bl MTX_RotY33_ ldr r0, [r4] - ldr r3, _021D8AA4 ; =UNK_020FFA38 + ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 @@ -2597,7 +2597,7 @@ MOD77_021D8A30: ; 0x021D8A30 add r2, r5, #0 bl MTX_Concat33 ldr r0, [r4, #8] - ldr r3, _021D8AA4 ; =UNK_020FFA38 + ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 @@ -2616,7 +2616,7 @@ MOD77_021D8A30: ; 0x021D8A30 add sp, #0x24 pop {r4, r5, pc} nop -_021D8AA4: .word UNK_020FFA38 +_021D8AA4: .word FX_SinCosTable_ thumb_func_end MOD77_021D8A30 thumb_func_start MOD77_021D8AA8 @@ -2625,7 +2625,7 @@ MOD77_021D8AA8: ; 0x021D8AA8 sub sp, #0x24 add r4, r1, #0 ldr r1, [r4] - ldr r3, _021D8B1C ; =UNK_020FFA38 + ldr r3, _021D8B1C ; =FX_SinCosTable_ lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #4 @@ -2638,7 +2638,7 @@ MOD77_021D8AA8: ; 0x021D8AA8 add r5, r0, #0 bl MTX_RotY33_ ldr r0, [r4, #4] - ldr r3, _021D8B1C ; =UNK_020FFA38 + ldr r3, _021D8B1C ; =FX_SinCosTable_ neg r0, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 @@ -2656,7 +2656,7 @@ MOD77_021D8AA8: ; 0x021D8AA8 add r2, r5, #0 bl MTX_Concat33 ldr r0, [r4, #8] - ldr r3, _021D8B1C ; =UNK_020FFA38 + ldr r3, _021D8B1C ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 @@ -2675,7 +2675,7 @@ MOD77_021D8AA8: ; 0x021D8AA8 add sp, #0x24 pop {r4, r5, pc} .align 2, 0 -_021D8B1C: .word UNK_020FFA38 +_021D8B1C: .word FX_SinCosTable_ thumb_func_end MOD77_021D8AA8 thumb_func_start MOD77_021D8B20 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 63312258e..8ea0a1a63 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -1520,7 +1520,7 @@ MOD81_02238988: ; 0x02238988 add r0, r4, #0 add r0, #0x80 ldrh r0, [r0] - ldr r3, _02238A34 ; =UNK_020FFA38 + ldr r3, _02238A34 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1537,7 +1537,7 @@ MOD81_02238988: ; 0x02238988 add r0, r4, #0 add r0, #0x82 ldrh r0, [r0] - ldr r3, _02238A34 ; =UNK_020FFA38 + ldr r3, _02238A34 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1554,7 +1554,7 @@ MOD81_02238988: ; 0x02238988 add r0, r4, #0 add r0, #0x84 ldrh r0, [r0] - ldr r3, _02238A34 ; =UNK_020FFA38 + ldr r3, _02238A34 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1591,7 +1591,7 @@ _02238A20: add sp, #0x50 pop {r4, pc} .align 2, 0 -_02238A34: .word UNK_020FFA38 +_02238A34: .word FX_SinCosTable_ thumb_func_end MOD81_02238988 thumb_func_start MOD81_02238A38 @@ -1806,7 +1806,7 @@ MOD81_02238B8C: ; 0x02238B8C add r0, r4, #0 add r0, #0x80 ldrh r0, [r0] - ldr r3, _02238C3C ; =UNK_020FFA38 + ldr r3, _02238C3C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1823,7 +1823,7 @@ MOD81_02238B8C: ; 0x02238B8C add r0, r4, #0 add r0, #0x82 ldrh r0, [r0] - ldr r3, _02238C3C ; =UNK_020FFA38 + ldr r3, _02238C3C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1840,7 +1840,7 @@ MOD81_02238B8C: ; 0x02238B8C add r0, r4, #0 add r0, #0x84 ldrh r0, [r0] - ldr r3, _02238C3C ; =UNK_020FFA38 + ldr r3, _02238C3C ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1876,7 +1876,7 @@ MOD81_02238B8C: ; 0x02238B8C add sp, #0x4c pop {r3, r4, pc} .align 2, 0 -_02238C3C: .word UNK_020FFA38 +_02238C3C: .word FX_SinCosTable_ thumb_func_end MOD81_02238B8C thumb_func_start MOD81_02238C40 diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index 53dfe036e..ae3f7c4a7 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -1010,7 +1010,7 @@ MOD84_021D7CFC: ; 0x021D7CFC add r0, r4, #0 add r0, #0x94 ldrh r0, [r0] - ldr r3, _021D7DF0 ; =UNK_020FFA38 + ldr r3, _021D7DF0 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1027,7 +1027,7 @@ MOD84_021D7CFC: ; 0x021D7CFC add r0, r4, #0 add r0, #0x96 ldrh r0, [r0] - ldr r3, _021D7DF0 ; =UNK_020FFA38 + ldr r3, _021D7DF0 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1044,7 +1044,7 @@ MOD84_021D7CFC: ; 0x021D7CFC add r0, r4, #0 add r0, #0x98 ldrh r0, [r0] - ldr r3, _021D7DF0 ; =UNK_020FFA38 + ldr r3, _021D7DF0 ; =FX_SinCosTable_ asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 @@ -1105,7 +1105,7 @@ _021D7DBA: add sp, #0x4c pop {r3, r4, pc} nop -_021D7DF0: .word UNK_020FFA38 +_021D7DF0: .word FX_SinCosTable_ thumb_func_end MOD84_021D7CFC thumb_func_start MOD84_021D7DF4 diff --git a/arm9/src/math_util.c b/arm9/src/math_util.c index 4ecee59c3..ac3b77f0b 100644 --- a/arm9/src/math_util.c +++ b/arm9/src/math_util.c @@ -1,7 +1,7 @@ #include "global.h" #include "math_util.h" -extern const s16 UNK_020FFA38[]; // temporary until further notice +extern const s16 FX_SinCosTable_[]; // temporary until further notice /* * Constant tables @@ -697,8 +697,8 @@ THUMB_FUNC void MTX22_2DAffine(struct Mtx22 * mtx, u16 radians, fx32 x, fx32 y, radians = (u16)((u32)(radians * 65535) / 360); // shut up the compiler MTX_Rot22_(mtx, - UNK_020FFA38[((radians >> 4) * 2)], // TODO: macros - UNK_020FFA38[((radians >> 4) * 2) + 1]); // TODO: macros + FX_SinCosTable_[((radians >> 4) * 2)], // TODO: macros + FX_SinCosTable_[((radians >> 4) * 2) + 1]); // TODO: macros MTX_ScaleApply22(mtx, mtx, x, y); } From d4eb3c403ca992d1e5614375e67a4a1f3a6962ae Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 08:14:46 -0400 Subject: [PATCH 096/134] Remove superfluous global labels --- arm9/asm/unk_020ADA84.s | 6 ------ 1 file changed, 6 deletions(-) diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s index f06eeff0d..7aacee03b 100644 --- a/arm9/asm/unk_020ADA84.s +++ b/arm9/asm/unk_020ADA84.s @@ -12201,9 +12201,6 @@ _020B838C: .word UNK_021CEE18 arm_func_start FUN_020B8390 FUN_020B8390: ; 0x020B8390 orr r0, r0, r1, lsl #0x4 - - arm_func_start FUN_020B8394 -FUN_020B8394: ; 0x020B8394 ldr r1, [sp, #0x4] orr r0, r0, r2, lsl #0x6 orr r0, r1, r0 @@ -19260,9 +19257,6 @@ FUN_020BE62C: ; 0x020BE62C orrne r1, r1, #0x1 strne r1, [r0, #0x0] bne _020BE658 - - arm_func_start FUN_020BE640 -FUN_020BE640: ; 0x020BE640 ldr r2, [r1, #0x0] str r2, [r0, #0x4] ldr r2, [r1, #0x4] From 466b024d6c4fca0f17a39547096c014654a1d051 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 08:19:24 -0400 Subject: [PATCH 097/134] Add arm_func_end to unk_020ADA84.s --- arm9/asm/unk_020ADA84.s | 434 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 434 insertions(+) diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s index 7aacee03b..b4d467ae9 100644 --- a/arm9/asm/unk_020ADA84.s +++ b/arm9/asm/unk_020ADA84.s @@ -716,21 +716,25 @@ UNK_021D1C88: ; 0x021D1C88 FUN_020AE8AC: ; 0x020AE8AC mvn r0, #0x0 bx lr + arm_func_end FUN_020AE8AC arm_func_start FUN_020AE8B4 FUN_020AE8B4: ; 0x020AE8B4 mov r0, #0x0 bx lr + arm_func_end FUN_020AE8B4 arm_func_start FUN_020AE8BC FUN_020AE8BC: ; 0x020AE8BC mvn r0, #0x0 bx lr + arm_func_end FUN_020AE8BC arm_func_start FUN_020AE8C4 FUN_020AE8C4: ; 0x020AE8C4 mov r0, #0x0 bx lr + arm_func_end FUN_020AE8C4 arm_func_start FUN_020AE8CC FUN_020AE8CC: ; 0x020AE8CC @@ -755,6 +759,7 @@ _020AE8E4: ldmia sp!, {pc} .balign 4 _020AE914: .word UNK_021064E4 + arm_func_end FUN_020AE8CC arm_func_start FUN_020AE918 FUN_020AE918: ; 0x020AE918 @@ -779,11 +784,13 @@ _020AE930: ldmia sp!, {pc} .balign 4 _020AE960: .word UNK_021064E4 + arm_func_end FUN_020AE918 arm_func_start FUN_020AE964 FUN_020AE964: ; 0x020AE964 mov r0, #0x0 bx lr + arm_func_end FUN_020AE964 arm_func_start FUN_020AE96C FUN_020AE96C: ; 0x020AE96C @@ -896,6 +903,7 @@ _020AEAE4: .word UNK_021064FC _020AEAE8: .word UNK_021064C8 _020AEAEC: .word UNK_021064D0 _020AEAF0: .word 0x0000FFFF + arm_func_end FUN_020AE96C arm_func_start FUN_020AEAF4 FUN_020AEAF4: @@ -932,6 +940,7 @@ _020AEB2C: .balign 4 _020AEB68: .word UNK_021CCD48 _020AEB6C: .word UNK_021064E4 + arm_func_end FUN_020AEAF4 arm_func_start FUN_020AEB70 FUN_020AEB70: ; 0x020AEB70 @@ -978,6 +987,7 @@ _020AEC00: .word FUN_020AE96C _020AEC04: .word UNK_021064B8 _020AEC08: .word FUN_020AE964 _020AEC0C: .word UNK_021064BC + arm_func_end FUN_020AEB70 arm_func_start FUN_020AEC10 FUN_020AEC10: ; 0x020AEC10 @@ -1002,6 +1012,7 @@ FUN_020AEC10: ; 0x020AEC10 .balign 4 _020AEC58: .word UNK_021064E4 _020AEC5C: .word UNK_021064D0 + arm_func_end FUN_020AEC10 arm_func_start FUN_020AEC60 FUN_020AEC60: @@ -1013,6 +1024,7 @@ FUN_020AEC60: bx lr .balign 4 _020AEC78: .word UNK_021CCD4C + arm_func_end FUN_020AEC60 arm_func_start FUN_020AEC7C FUN_020AEC7C: ; 0x020AEC7C @@ -1024,6 +1036,7 @@ FUN_020AEC7C: ; 0x020AEC7C bx lr .balign 4 _020AEC94: .word UNK_021CCD4C + arm_func_end FUN_020AEC7C arm_func_start FUN_020AEC98 FUN_020AEC98: ; 0x020AEC98 @@ -1035,11 +1048,13 @@ FUN_020AEC98: ; 0x020AEC98 bx lr .balign 4 _020AECB0: .word UNK_021CCD4C + arm_func_end FUN_020AEC98 arm_func_start FUN_020AECB4 FUN_020AECB4: ; 0x020AECB4 mov r0, #0x0 bx lr + arm_func_end FUN_020AECB4 arm_func_start FUN_020AECBC FUN_020AECBC: ; 0x020AECBC @@ -1128,6 +1143,7 @@ _020AEDCC: _020AEDE8: .word 0x0007FFF8 _020AEDEC: .word UNK_021CCD4C _020AEDF0: .word 0x0000FFFF + arm_func_end FUN_020AECBC arm_func_start FUN_020AEDF4 FUN_020AEDF4: ; 0x020AEDF4 @@ -1151,6 +1167,7 @@ _020AEE30: .word FUN_020AECBC _020AEE34: .word UNK_021064C0 _020AEE38: .word FUN_020AECB4 _020AEE3C: .word UNK_021064C4 + arm_func_end FUN_020AEDF4 arm_func_start FUN_020AEE40 FUN_020AEE40: ; 0x020AEE40 @@ -1185,6 +1202,7 @@ FUN_020AEE40: ; 0x020AEE40 ldmia sp!, {r4-r9,pc} .balign 4 _020AEEB4: .word UNK_021CCD58 + arm_func_end FUN_020AEE40 arm_func_start FUN_020AEEB8 FUN_020AEEB8: ; 0x020AEEB8 @@ -1215,6 +1233,7 @@ _020AEEE0: ldmia sp!, {r4-r6,pc} .balign 4 _020AEF18: .word UNK_021CCD58 + arm_func_end FUN_020AEEB8 arm_func_start FUN_020AEF1C FUN_020AEF1C: ; 0x020AEF1C @@ -1227,6 +1246,7 @@ FUN_020AEF1C: ; 0x020AEF1C .balign 4 _020AEF34: .word UNK_021CCD58 _020AEF38: .word FUN_020AEFD4 + arm_func_end FUN_020AEF1C arm_func_start FUN_020AEF3C FUN_020AEF3C: @@ -1245,6 +1265,7 @@ FUN_020AEF3C: sub r1, r1, #0x1 strh r1, [r4, #0xc] ldmia sp!, {r4,pc} + arm_func_end FUN_020AEF3C arm_func_start FUN_020AEF78 FUN_020AEF78: ; 0x020AEF78 @@ -1252,6 +1273,7 @@ FUN_020AEF78: ; 0x020AEF78 ldr r0, [r0, #0x0] add r0, r0, r1, lsl #0x4 bx lr + arm_func_end FUN_020AEF78 arm_func_start FUN_020AEF88 FUN_020AEF88: ; 0x020AEF88 @@ -1259,6 +1281,7 @@ FUN_020AEF88: ; 0x020AEF88 ldr r0, [r0, #0x0] add r0, r0, r1, lsl #0x4 bx lr + arm_func_end FUN_020AEF88 arm_func_start FUN_020AEF98 FUN_020AEF98: ; 0x020AEF98 @@ -1277,6 +1300,7 @@ FUN_020AEF98: ; 0x020AEF98 add r1, r1, #0x1 strh r1, [r4, #0xc] ldmia sp!, {r4,pc} + arm_func_end FUN_020AEF98 arm_func_start FUN_020AEFD4 FUN_020AEFD4: ; 0x020AEFD4 @@ -1287,6 +1311,7 @@ FUN_020AEFD4: ; 0x020AEFD4 strh r2, [r0, #0xc] str r2, [r0, #0x10] bx lr + arm_func_end FUN_020AEFD4 arm_func_start FUN_020AEFF0 FUN_020AEFF0: ; 0x020AEFF0 @@ -1307,6 +1332,7 @@ FUN_020AEFF0: ; 0x020AEFF0 ldmia sp!, {r4-r5,pc} .balign 4 _020AF02C: .word UNK_020FF7D4 + arm_func_end FUN_020AEFF0 arm_func_start GXS_LoadOBJ_2 GXS_LoadOBJ_2: @@ -1314,6 +1340,7 @@ GXS_LoadOBJ_2: bx r12 .balign 4 _020AF038: .word GXS_LoadOBJ + arm_func_end GXS_LoadOBJ_2 arm_func_start GXS_LoadOAM_2 GXS_LoadOAM_2: ; 0x020AF03C @@ -1321,6 +1348,7 @@ GXS_LoadOAM_2: ; 0x020AF03C bx r12 .balign 4 _020AF044: .word GXS_LoadOAM + arm_func_end GXS_LoadOAM_2 arm_func_start FUN_020AF048 FUN_020AF048: ; 0x020AF048 @@ -1335,6 +1363,7 @@ FUN_020AF048: ; 0x020AF048 bl GXS_LoadBGExtPltt bl GXS_EndLoadBGExtPltt ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF048 arm_func_start FUN_020AF074 FUN_020AF074: ; 0x020AF074 @@ -1349,6 +1378,7 @@ FUN_020AF074: ; 0x020AF074 bl GXS_LoadOBJExtPltt bl GXS_EndLoadOBJExtPltt ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF074 arm_func_start GXS_LoadBGPltt_2 GXS_LoadBGPltt_2: ; 0x020AF0A0 @@ -1356,6 +1386,7 @@ GXS_LoadBGPltt_2: ; 0x020AF0A0 bx r12 .balign 4 _020AF0A8: .word GXS_LoadBGPltt + arm_func_end GXS_LoadBGPltt_2 arm_func_start GXS_LoadOBJPltt_2 GXS_LoadOBJPltt_2: ; 0x020AF0AC @@ -1363,6 +1394,7 @@ GXS_LoadOBJPltt_2: ; 0x020AF0AC bx r12 .balign 4 _020AF0B4: .word GXS_LoadOBJPltt + arm_func_end GXS_LoadOBJPltt_2 arm_func_start GXS_LoadBG3Scr_3 GXS_LoadBG3Scr_3: ; 0x020AF0B8 @@ -1370,6 +1402,7 @@ GXS_LoadBG3Scr_3: ; 0x020AF0B8 bx r12 .balign 4 _020AF0C0: .word GXS_LoadBG3Scr + arm_func_end GXS_LoadBG3Scr_3 arm_func_start GXS_LoadBG2Scr_3 GXS_LoadBG2Scr_3: ; 0x020AF0C4 @@ -1377,6 +1410,7 @@ GXS_LoadBG2Scr_3: ; 0x020AF0C4 bx r12 .balign 4 _020AF0CC: .word GXS_LoadBG2Scr + arm_func_end GXS_LoadBG2Scr_3 arm_func_start GXS_LoadBG3Scr_2 GXS_LoadBG3Scr_2: ; 0x020AF0D0 @@ -1384,6 +1418,7 @@ GXS_LoadBG3Scr_2: ; 0x020AF0D0 bx r12 .balign 4 _020AF0D8: .word GXS_LoadBG3Scr + arm_func_end GXS_LoadBG3Scr_2 arm_func_start GXS_LoadBG2Scr_2 GXS_LoadBG2Scr_2: ; 0x020AF0DC @@ -1391,6 +1426,7 @@ GXS_LoadBG2Scr_2: ; 0x020AF0DC bx r12 .balign 4 _020AF0E4: .word GXS_LoadBG2Scr + arm_func_end GXS_LoadBG2Scr_2 arm_func_start GXS_LoadBG1Scr_2 GXS_LoadBG1Scr_2: ; 0x020AF0E8 @@ -1398,6 +1434,7 @@ GXS_LoadBG1Scr_2: ; 0x020AF0E8 bx r12 .balign 4 _020AF0F0: .word GXS_LoadBG1Scr + arm_func_end GXS_LoadBG1Scr_2 arm_func_start GXS_LoadBG0Scr_2 GXS_LoadBG0Scr_2: ; 0x020AF0F4 @@ -1405,6 +1442,7 @@ GXS_LoadBG0Scr_2: ; 0x020AF0F4 bx r12 .balign 4 _020AF0FC: .word GXS_LoadBG0Scr + arm_func_end GXS_LoadBG0Scr_2 arm_func_start GXS_LoadBG3Char_2 GXS_LoadBG3Char_2: ; 0x020AF100 @@ -1412,6 +1450,7 @@ GXS_LoadBG3Char_2: ; 0x020AF100 bx r12 .balign 4 _020AF108: .word GXS_LoadBG3Char + arm_func_end GXS_LoadBG3Char_2 arm_func_start GXS_LoadBG2Char_2 GXS_LoadBG2Char_2: ; 0x020AF10C @@ -1419,6 +1458,7 @@ GXS_LoadBG2Char_2: ; 0x020AF10C bx r12 .balign 4 _020AF114: .word GXS_LoadBG2Char + arm_func_end GXS_LoadBG2Char_2 arm_func_start GXS_LoadBG1Char_2 GXS_LoadBG1Char_2: ; 0x020AF118 @@ -1426,6 +1466,7 @@ GXS_LoadBG1Char_2: ; 0x020AF118 bx r12 .balign 4 _020AF120: .word GXS_LoadBG1Char + arm_func_end GXS_LoadBG1Char_2 arm_func_start GXS_LoadBG0Char_2 GXS_LoadBG0Char_2: ; 0x020AF124 @@ -1433,6 +1474,7 @@ GXS_LoadBG0Char_2: ; 0x020AF124 bx r12 .balign 4 _020AF12C: .word GXS_LoadBG0Char + arm_func_end GXS_LoadBG0Char_2 arm_func_start GX_LoadOBJ_2 GX_LoadOBJ_2: ; 0x020AF130 @@ -1440,6 +1482,7 @@ GX_LoadOBJ_2: ; 0x020AF130 bx r12 .balign 4 _020AF138: .word GX_LoadOBJ + arm_func_end GX_LoadOBJ_2 arm_func_start GX_LoadOAM_2 GX_LoadOAM_2: ; 0x020AF13C @@ -1447,6 +1490,7 @@ GX_LoadOAM_2: ; 0x020AF13C bx r12 .balign 4 _020AF144: .word GX_LoadOAM + arm_func_end GX_LoadOAM_2 arm_func_start FUN_020AF148 FUN_020AF148: ; 0x020AF148 @@ -1461,6 +1505,7 @@ FUN_020AF148: ; 0x020AF148 bl GX_LoadBGExtPltt bl GX_EndLoadBGExtPltt ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF148 arm_func_start FUN_020AF174 FUN_020AF174: ; 0x020AF174 @@ -1475,6 +1520,7 @@ FUN_020AF174: ; 0x020AF174 bl GX_LoadOBJExtPltt bl GX_EndLoadOBJExtPltt ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF174 arm_func_start GX_LoadBGPltt_2 GX_LoadBGPltt_2: ; 0x020AF1A0 @@ -1482,6 +1528,7 @@ GX_LoadBGPltt_2: ; 0x020AF1A0 bx r12 .balign 4 _020AF1A8: .word GX_LoadBGPltt + arm_func_end GX_LoadBGPltt_2 arm_func_start GX_LoadOBJPltt_2 GX_LoadOBJPltt_2: ; 0x020AF1AC @@ -1489,6 +1536,7 @@ GX_LoadOBJPltt_2: ; 0x020AF1AC bx r12 .balign 4 _020AF1B4: .word GX_LoadOBJPltt + arm_func_end GX_LoadOBJPltt_2 arm_func_start GX_LoadBG3Scr_3 GX_LoadBG3Scr_3: ; 0x020AF1B8 @@ -1496,6 +1544,7 @@ GX_LoadBG3Scr_3: ; 0x020AF1B8 bx r12 .balign 4 _020AF1C0: .word GX_LoadBG3Scr + arm_func_end GX_LoadBG3Scr_3 arm_func_start GX_LoadBG2Scr_3 GX_LoadBG2Scr_3: ; 0x020AF1C4 @@ -1503,6 +1552,7 @@ GX_LoadBG2Scr_3: ; 0x020AF1C4 bx r12 .balign 4 _020AF1CC: .word GX_LoadBG2Scr + arm_func_end GX_LoadBG2Scr_3 arm_func_start GX_LoadBG3Scr_2 GX_LoadBG3Scr_2: ; 0x020AF1D0 @@ -1510,6 +1560,7 @@ GX_LoadBG3Scr_2: ; 0x020AF1D0 bx r12 .balign 4 _020AF1D8: .word GX_LoadBG3Scr + arm_func_end GX_LoadBG3Scr_2 arm_func_start GX_LoadBG2Scr_2 GX_LoadBG2Scr_2: ; 0x020AF1DC @@ -1517,6 +1568,7 @@ GX_LoadBG2Scr_2: ; 0x020AF1DC bx r12 .balign 4 _020AF1E4: .word GX_LoadBG2Scr + arm_func_end GX_LoadBG2Scr_2 arm_func_start GX_LoadBG1Scr_2 GX_LoadBG1Scr_2: ; 0x020AF1E8 @@ -1524,6 +1576,7 @@ GX_LoadBG1Scr_2: ; 0x020AF1E8 bx r12 .balign 4 _020AF1F0: .word GX_LoadBG1Scr + arm_func_end GX_LoadBG1Scr_2 arm_func_start GX_LoadBG0Scr_2 GX_LoadBG0Scr_2: ; 0x020AF1F4 @@ -1531,6 +1584,7 @@ GX_LoadBG0Scr_2: ; 0x020AF1F4 bx r12 .balign 4 _020AF1FC: .word GX_LoadBG0Scr + arm_func_end GX_LoadBG0Scr_2 arm_func_start GX_LoadBG3Char_2 GX_LoadBG3Char_2: ; 0x020AF200 @@ -1538,6 +1592,7 @@ GX_LoadBG3Char_2: ; 0x020AF200 bx r12 .balign 4 _020AF208: .word GX_LoadBG3Char + arm_func_end GX_LoadBG3Char_2 arm_func_start GX_LoadBG2Char_2 GX_LoadBG2Char_2: ; 0x020AF20C @@ -1545,6 +1600,7 @@ GX_LoadBG2Char_2: ; 0x020AF20C bx r12 .balign 4 _020AF214: .word GX_LoadBG2Char + arm_func_end GX_LoadBG2Char_2 arm_func_start GX_LoadBG1Char_2 GX_LoadBG1Char_2: ; 0x020AF218 @@ -1552,6 +1608,7 @@ GX_LoadBG1Char_2: ; 0x020AF218 bx r12 .balign 4 _020AF220: .word GX_LoadBG1Char + arm_func_end GX_LoadBG1Char_2 arm_func_start GX_LoadBG0Char_2 GX_LoadBG0Char_2: ; 0x020AF224 @@ -1559,6 +1616,7 @@ GX_LoadBG0Char_2: ; 0x020AF224 bx r12 .balign 4 _020AF22C: .word GX_LoadBG0Char + arm_func_end GX_LoadBG0Char_2 arm_func_start FUN_020AF230 FUN_020AF230: ; 0x020AF230 @@ -1573,6 +1631,7 @@ FUN_020AF230: ; 0x020AF230 bl GX_EndLoadClearImage add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AF230 arm_func_start FUN_020AF25C FUN_020AF25C: ; 0x020AF25C @@ -1587,6 +1646,7 @@ FUN_020AF25C: ; 0x020AF25C bl GX_EndLoadClearImage add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AF25C arm_func_start FUN_020AF288 FUN_020AF288: ; 0x020AF288 @@ -1601,6 +1661,7 @@ FUN_020AF288: ; 0x020AF288 bl GX_LoadTexPltt bl GX_EndLoadTexPltt ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF288 arm_func_start FUN_020AF2B4 FUN_020AF2B4: ; 0x020AF2B4 @@ -1615,6 +1676,7 @@ FUN_020AF2B4: ; 0x020AF2B4 bl GX_LoadTex bl GX_EndLoadTex ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF2B4 arm_func_start FUN_020AF2E0 FUN_020AF2E0: ; 0x020AF2E0 @@ -1623,6 +1685,7 @@ FUN_020AF2E0: ; 0x020AF2E0 moveq r0, #0x1 movne r0, #0x0 bx lr + arm_func_end FUN_020AF2E0 arm_func_start FUN_020AF2F4 FUN_020AF2F4: ; 0x020AF2F4 @@ -1632,6 +1695,7 @@ FUN_020AF2F4: ; 0x020AF2F4 moveq r0, #0x1 movne r0, #0x0 bx lr + arm_func_end FUN_020AF2F4 arm_func_start FUN_020AF30C FUN_020AF30C: ; 0x020AF30C @@ -1645,6 +1709,7 @@ FUN_020AF30C: ; 0x020AF30C mov r0, r0, lsr #0x10 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AF30C arm_func_start FUN_020AF334 FUN_020AF334: @@ -1737,6 +1802,7 @@ _020AF418: mov r0, #0x1 add sp, sp, #0x10 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF334 arm_func_start FUN_020AF488 FUN_020AF488: @@ -1825,6 +1891,7 @@ _020AF5B8: mov r0, #0x0 str r0, [r2, #0x0] ldmia sp!, {r4-r10,pc} + arm_func_end FUN_020AF488 arm_func_start FUN_020AF5C4 FUN_020AF5C4: @@ -1835,6 +1902,7 @@ FUN_020AF5C4: bl FUN_020AF488 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AF5C4 arm_func_start FUN_020AF5E0 FUN_020AF5E0: ; 0x020AF5E0 @@ -1866,6 +1934,7 @@ _020AF640: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AF5E0 arm_func_start FUN_020AF64C FUN_020AF64C: ; 0x020AF64C @@ -1890,12 +1959,14 @@ _020AF684: add r1, r0, r1, lsl #0x4 str r2, [r1, #-0x4] ldmia sp!, {r4,pc} + arm_func_end FUN_020AF64C arm_func_start FUN_020AF698 FUN_020AF698: ; 0x020AF698 mov r1, #0x0 str r1, [r0, #0x0] bx lr + arm_func_end FUN_020AF698 arm_func_start FUN_020AF6A4 FUN_020AF6A4: ; 0x020AF6A4 @@ -2034,6 +2105,7 @@ _020AF884: .word UNK_020FF864 _020AF888: .word UNK_021CCD6C _020AF88C: .word UNK_021CCD70 _020AF890: .word UNK_021CCD74 + arm_func_end FUN_020AF6A4 arm_func_start FUN_020AF894 FUN_020AF894: ; 0x020AF894 @@ -2075,6 +2147,7 @@ _020AF90C: .word 0x0000FFFF _020AF910: .word UNK_021CCD70 _020AF914: .word UNK_021CCD74 _020AF918: .word UNK_021CCD6C + arm_func_end FUN_020AF894 arm_func_start FUN_020AF91C FUN_020AF91C: ; 0x020AF91C @@ -2123,6 +2196,7 @@ _020AF9B4: .word UNK_021CCD70 _020AF9B8: .word UNK_021CCD74 _020AF9BC: .word UNK_021CCD6C _020AF9C0: .word 0x0000FFFF + arm_func_end FUN_020AF91C arm_func_start FUN_020AF9C4 FUN_020AF9C4: ; 0x020AF9C4 @@ -2152,11 +2226,13 @@ _020AFA18: .word FUN_020AF91C _020AFA1C: .word UNK_021064B8 _020AFA20: .word FUN_020AF894 _020AFA24: .word UNK_021064BC + arm_func_end FUN_020AF9C4 arm_func_start FUN_020AFA28 FUN_020AFA28: ; 0x020AFA28 mov r0, r0, lsl #0x4 bx lr + arm_func_end FUN_020AFA28 arm_func_start FUN_020AFA30 FUN_020AFA30: @@ -2181,6 +2257,7 @@ FUN_020AFA30: .balign 4 _020AFA78: .word UNK_021CCD88 _020AFA7C: .word UNK_021CCD8C + arm_func_end FUN_020AFA30 arm_func_start FUN_020AFA80 FUN_020AFA80: ; 0x020AFA80 @@ -2206,6 +2283,7 @@ FUN_020AFA80: ; 0x020AFA80 _020AFAC8: .word 0x0000FFFF _020AFACC: .word UNK_021CCD88 _020AFAD0: .word UNK_021CCD8C + arm_func_end FUN_020AFA80 arm_func_start FUN_020AFAD4 FUN_020AFAD4: ; 0x020AFAD4 @@ -2265,6 +2343,7 @@ _020AFB98: .word 0x0007FFF8 _020AFB9C: .word UNK_021CCD88 _020AFBA0: .word UNK_021CCD8C _020AFBA4: .word 0x0000FFFF + arm_func_end FUN_020AFAD4 arm_func_start FUN_020AFBA8 FUN_020AFBA8: ; 0x020AFBA8 @@ -2290,11 +2369,13 @@ _020AFBEC: .word FUN_020AFAD4 _020AFBF0: .word UNK_021064C0 _020AFBF4: .word FUN_020AFA80 _020AFBF8: .word UNK_021064C4 + arm_func_end FUN_020AFBA8 arm_func_start FUN_020AFBFC FUN_020AFBFC: ; 0x020AFBFC mov r0, r0, lsl #0x4 bx lr + arm_func_end FUN_020AFBFC arm_func_start FUN_020AFC04 FUN_020AFC04: ; 0x020AFC04 @@ -2304,6 +2385,7 @@ FUN_020AFC04: ; 0x020AFC04 addhi r0, r0, r1, lsl #0x4 movls r0, #0x0 bx lr + arm_func_end FUN_020AFC04 arm_func_start FUN_020AFC1C FUN_020AFC1C: ; 0x020AFC1C @@ -2405,6 +2487,7 @@ _020AFD6C: blo _020AFD14 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020AFC1C arm_func_start thunk_FUN_020afda0 thunk_FUN_020afda0: ; 0x020AFD88 @@ -2412,6 +2495,7 @@ thunk_FUN_020afda0: ; 0x020AFD88 bx r12 .balign 4 _020AFD90: .word FUN_020AFDA0 + arm_func_end thunk_FUN_020afda0 arm_func_start thunk_FUN_020afda0_2 thunk_FUN_020afda0_2: ; 0x020AFD94 @@ -2419,6 +2503,7 @@ thunk_FUN_020afda0_2: ; 0x020AFD94 bx r12 .balign 4 _020AFD9C: .word FUN_020AFDA0 + arm_func_end thunk_FUN_020afda0_2 arm_func_start FUN_020AFDA0 FUN_020AFDA0: ; 0x020AFDA0 @@ -2441,6 +2526,7 @@ FUN_020AFDA0: ; 0x020AFDA0 ldmia sp!, {r4-r5,pc} .balign 4 _020AFDE4: .word 0x41424E4B + arm_func_end FUN_020AFDA0 arm_func_start FUN_020AFDE8 FUN_020AFDE8: ; 0x020AFDE8 @@ -2488,6 +2574,7 @@ _020AFE6C: ldr r0, [r5, #0x14] bl FUN_020AFF00 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AFDE8 arm_func_start FUN_020AFE8C FUN_020AFE8C: ; 0x020AFE8C @@ -2502,6 +2589,7 @@ FUN_020AFE8C: ; 0x020AFE8C ldreq r0, [r0, #0x4] addeq r0, r0, r1, lsl #0x3 bx lr + arm_func_end FUN_020AFE8C arm_func_start FUN_020AFEB8 FUN_020AFEB8: ; 0x020AFEB8 @@ -2524,6 +2612,7 @@ FUN_020AFEB8: ; 0x020AFEB8 ldmia sp!, {r4-r5,pc} .balign 4 _020AFEFC: .word 0x4345424B + arm_func_end FUN_020AFEB8 arm_func_start FUN_020AFF00 FUN_020AFF00: ; 0x020AFF00 @@ -2532,6 +2621,7 @@ FUN_020AFF00: ; 0x020AFF00 bx r12 .balign 4 _020AFF0C: .word FUN_020B01B0 + arm_func_end FUN_020AFF00 arm_func_start FUN_020AFF10 FUN_020AFF10: ; 0x020AFF10 @@ -2544,6 +2634,7 @@ FUN_020AFF10: ; 0x020AFF10 ldreq r0, [r0, #0x4] addeq r0, r0, r1, lsl #0x3 bx lr + arm_func_end FUN_020AFF10 arm_func_start FUN_020AFF34 FUN_020AFF34: ; 0x020AFF34 @@ -2553,6 +2644,7 @@ FUN_020AFF34: ; 0x020AFF34 addcc r0, r0, r1, lsl #0x3 movcs r0, #0x0 bx lr + arm_func_end FUN_020AFF34 arm_func_start FUN_020AFF4C FUN_020AFF4C: ; 0x020AFF4C @@ -2589,6 +2681,7 @@ _020AFFA8: ldr r0, [r0, #0x10] bl FUN_020AFFC8 ldmia sp!, {r4,pc} + arm_func_end FUN_020AFF4C arm_func_start FUN_020AFFC8 FUN_020AFFC8: ; 0x020AFFC8 @@ -2597,6 +2690,7 @@ FUN_020AFFC8: ; 0x020AFFC8 bx r12 .balign 4 _020AFFD4: .word FUN_020B01B0 + arm_func_end FUN_020AFFC8 arm_func_start FUN_020AFFD8 FUN_020AFFD8: ; 0x020AFFD8 @@ -2619,6 +2713,7 @@ FUN_020AFFD8: ; 0x020AFFD8 ldmia sp!, {r4-r5,pc} .balign 4 _020B001C: .word 0x4D43424B + arm_func_end FUN_020AFFD8 arm_func_start FUN_020B0020 FUN_020B0020: ; 0x020B0020 @@ -2626,6 +2721,7 @@ FUN_020B0020: ; 0x020B0020 add r1, r1, r0 str r1, [r0, #0x14] bx lr + arm_func_end FUN_020B0020 arm_func_start FUN_020B0030 FUN_020B0030: ; 0x020B0030 @@ -2648,6 +2744,7 @@ FUN_020B0030: ; 0x020B0030 ldmia sp!, {r4-r5,pc} .balign 4 _020B0074: .word 0x43484152 + arm_func_end FUN_020B0030 arm_func_start FUN_020B0078 FUN_020B0078: ; 0x020B0078 @@ -2655,6 +2752,7 @@ FUN_020B0078: ; 0x020B0078 add r1, r1, r0 str r1, [r0, #0x14] bx lr + arm_func_end FUN_020B0078 arm_func_start FUN_020B0088 FUN_020B0088: ; 0x020B0088 @@ -2677,6 +2775,7 @@ FUN_020B0088: ; 0x020B0088 ldmia sp!, {r4-r5,pc} .balign 4 _020B00CC: .word 0x43484152 + arm_func_end FUN_020B0088 arm_func_start FUN_020B00D0 FUN_020B00D0: ; 0x020B00D0 @@ -2684,6 +2783,7 @@ FUN_020B00D0: ; 0x020B00D0 add r1, r1, r0 str r1, [r0, #0xc] bx lr + arm_func_end FUN_020B00D0 arm_func_start FUN_020B00E0 FUN_020B00E0: ; 0x020B00E0 @@ -2691,6 +2791,7 @@ FUN_020B00E0: ; 0x020B00E0 add r1, r1, r0 str r1, [r0, #0x4] bx lr + arm_func_end FUN_020B00E0 arm_func_start FUN_020B00F0 FUN_020B00F0: ; 0x020B00F0 @@ -2713,6 +2814,7 @@ FUN_020B00F0: ; 0x020B00F0 ldmia sp!, {r4-r5,pc} .balign 4 _020B0134: .word 0x50434D50 + arm_func_end FUN_020B00F0 arm_func_start FUN_020B0138 FUN_020B0138: ; 0x020B0138 @@ -2735,6 +2837,7 @@ FUN_020B0138: ; 0x020B0138 ldmia sp!, {r4-r5,pc} .balign 4 _020B017C: .word 0x504C5454 + arm_func_end FUN_020B0138 arm_func_start FUN_020B0180 FUN_020B0180: ; 0x020B0180 @@ -2751,6 +2854,7 @@ FUN_020B0180: ; 0x020B0180 ldmia sp!, {r4,pc} .balign 4 _020B01AC: .word 0x5343524E + arm_func_end FUN_020B0180 arm_func_start FUN_020B01B0 FUN_020B01B0: ; 0x020B01B0 @@ -2773,6 +2877,7 @@ _020B01CC: cmp r12, r2 blo _020B01CC bx lr + arm_func_end FUN_020B01B0 arm_func_start FUN_020B01F8 FUN_020B01F8: @@ -2800,6 +2905,7 @@ _020B0244: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020B01F8 arm_func_start FUN_020B0250 FUN_020B0250: ; 0x020B0250 @@ -2834,6 +2940,7 @@ FUN_020B0250: ; 0x020B0250 .balign 4 _020B02C0: .word 0x04000470 _020B02C4: .word 0x0400046C + arm_func_end FUN_020B0250 arm_func_start FUN_020B02C8 FUN_020B02C8: ; 0x020B02C8 @@ -2868,6 +2975,7 @@ _020B0330: .word 0xBFFF0000 _020B0334: .word 0x04000580 _020B0338: .word 0x0400044C _020B033C: .word 0x04000440 + arm_func_end FUN_020B02C8 arm_func_start FUN_020B0340 FUN_020B0340: ; 0x020B0340 @@ -2922,6 +3030,7 @@ _020B03F8: .word 0x04000488 _020B03FC: .word 0x0400048C _020B0400: .word 0x10001000 _020B0404: .word 0x04000504 + arm_func_end FUN_020B0340 arm_func_start FUN_020B0408 FUN_020B0408: @@ -2939,6 +3048,7 @@ _020B0428: _020B0430: mov r0, #0x0 bx lr + arm_func_end FUN_020B0408 arm_func_start FUN_020B0438 FUN_020B0438: ; 0x020B0438 @@ -2947,6 +3057,7 @@ FUN_020B0438: ; 0x020B0438 bx r12 .balign 4 _020B0444: .word FUN_020B0448 + arm_func_end FUN_020B0438 arm_func_start FUN_020B0448 FUN_020B0448: ; 0x020B0448 @@ -2977,6 +3088,7 @@ _020B0494: bx r12 .balign 4 _020B04A4: .word FUN_020B0534 + arm_func_end FUN_020B0448 arm_func_start FUN_020B04A8 FUN_020B04A8: ; 0x020B04A8 @@ -2986,6 +3098,7 @@ FUN_020B04A8: ; 0x020B04A8 str r1, [r0, #0x8] strh r1, [r0, #0xc] bx lr + arm_func_end FUN_020B04A8 arm_func_start FUN_020B04C0 FUN_020B04C0: ; 0x020B04C0 @@ -3004,6 +3117,7 @@ FUN_020B04C0: ; 0x020B04C0 str r1, [r4, #0x14] str r1, [r4, #0x18] ldmia sp!, {r4,pc} + arm_func_end FUN_020B04C0 arm_func_start FUN_020B04FC FUN_020B04FC: ; 0x020B04FC @@ -3014,6 +3128,7 @@ FUN_020B04FC: ; 0x020B04FC mov r0, r0, lsl #0xd mov r0, r0, lsr #0x10 bx lr + arm_func_end FUN_020B04FC arm_func_start FUN_020B0518 FUN_020B0518: @@ -3024,6 +3139,7 @@ FUN_020B0518: movne r1, #0x0 strne r1, [r4, #0xc] ldmia sp!, {r4,pc} + arm_func_end FUN_020B0518 arm_func_start FUN_020B0534 FUN_020B0534: @@ -3143,12 +3259,14 @@ _020B06D0: bne _020B058C mov r0, r7 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B0534 arm_func_start FUN_020B06E0 FUN_020B06E0: ; 0x020B06E0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bx lr + arm_func_end FUN_020B06E0 arm_func_start FUN_020B06EC FUN_020B06EC: @@ -3161,6 +3279,7 @@ FUN_020B06EC: movcc r0, #0x1 movcs r0, #0x0 bx lr + arm_func_end FUN_020B06EC arm_func_start FUN_020B0710 FUN_020B0710: ; 0x020B0710 @@ -3243,6 +3362,7 @@ _020B0800: cmp r2, r1 strcc r1, [r4, #0x0] ldmia sp!, {r4,pc} + arm_func_end FUN_020B0710 arm_func_start FUN_020B0830 FUN_020B0830: ; 0x020B0830 @@ -3263,6 +3383,7 @@ _020B0854: movne r0, r0, lsr #0x10 moveq r0, #0x0 bx lr + arm_func_end FUN_020B0830 arm_func_start FUN_020B0870 FUN_020B0870: ; 0x020B0870 @@ -3272,6 +3393,7 @@ FUN_020B0870: ; 0x020B0870 mov r0, r4 bl FUN_020B0888 ldmia sp!, {r4,pc} + arm_func_end FUN_020B0870 arm_func_start FUN_020B0888 FUN_020B0888: ; 0x020B0888 @@ -3357,6 +3479,7 @@ _020B0998: .balign 4 _020B09AC: .word UNK_021CCDA0 _020B09B0: .word GXi_DmaId + arm_func_end FUN_020B0888 arm_func_start FUN_020B09B4 FUN_020B09B4: ; 0x020B09B4 @@ -3495,6 +3618,7 @@ _020B0B40: .balign 4 _020B0BA8: .word UNK_021CCDA0 _020B0BAC: .word UNK_0210655C + arm_func_end FUN_020B09B4 arm_func_start FUN_020B0BB0 FUN_020B0BB0: ; 0x020B0BB0 @@ -3551,6 +3675,7 @@ _020B0BDC: .balign 4 _020B0C74: .word 0x0000FFFE _020B0C78: .word UNK_021CCDA0 + arm_func_end FUN_020B0BB0 arm_func_start FUN_020B0C7C FUN_020B0C7C: ; 0x020B0C7C @@ -3613,6 +3738,7 @@ _020B0D48: .balign 4 _020B0D50: .word UNK_021CCDA0 _020B0D54: .word 0x0000FFFE + arm_func_end FUN_020B0C7C arm_func_start FUN_020B0D58 FUN_020B0D58: ; 0x020B0D58 @@ -3676,6 +3802,7 @@ _020B0E24: ldmia sp!, {r4-r5,pc} .balign 4 _020B0E30: .word UNK_021CCDA0 + arm_func_end FUN_020B0D58 arm_func_start FUN_020B0E34 FUN_020B0E34: ; 0x020B0E34 @@ -3790,6 +3917,7 @@ _020B0F98: _020B0FB4: .word UNK_021CCDA0 _020B0FB8: .word 0x0000FFFF _020B0FBC: .word UNK_021CCD9C + arm_func_end FUN_020B0E34 arm_func_start FUN_020B0FC0 FUN_020B0FC0: ; 0x020B0FC0 @@ -3844,6 +3972,7 @@ _020B1078: .word UNK_021CD820 _020B107C: .word UNK_021CD2A0 _020B1080: .word UNK_021CD7E0 _020B1084: .word UNK_021CDD20 + arm_func_end FUN_020B0FC0 arm_func_start FUN_020B1088 FUN_020B1088: ; 0x020B1088 @@ -3852,6 +3981,7 @@ FUN_020B1088: ; 0x020B1088 bx r12 .balign 4 _020B1094: .word MIi_CpuCopy16 + arm_func_end FUN_020B1088 arm_func_start FUN_020B1098 FUN_020B1098: ; 0x020B1098 @@ -3862,22 +3992,26 @@ FUN_020B1098: ; 0x020B1098 .balign 4 _020B10A8: .word 0x07000400 _020B10AC: .word MIi_CpuCopy16 + arm_func_end FUN_020B1098 arm_func_start FUN_020B10B0 FUN_020B10B0: ; 0x020B10B0 mov r1, r1, lsl #0x1 ldrh r0, [r0, r1] bx lr + arm_func_end FUN_020B10B0 arm_func_start FUN_020B10BC FUN_020B10BC: ; 0x020B10BC ldr r0, [r0, r1, lsl #0x2] bx lr + arm_func_end FUN_020B10BC arm_func_start FUN_020B10C4 FUN_020B10C4: str r2, [r0, r1, lsl #0x2] bx lr + arm_func_end FUN_020B10C4 arm_func_start FUN_020B10CC FUN_020B10CC: @@ -3889,6 +4023,7 @@ _020B10D4: cmp r2, #0x3 blt _020B10D4 bx lr + arm_func_end FUN_020B10CC arm_func_start FUN_020B10E8 FUN_020B10E8: ; 0x020B10E8 @@ -3986,6 +4121,7 @@ _020B1210: bl FUN_020B19D0 add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B10E8 arm_func_start FUN_020B1240 FUN_020B1240: ; 0x020B1240 @@ -4059,6 +4195,7 @@ _020B1318: bl FUN_020B19D0 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B1240 arm_func_start FUN_020B1340 FUN_020B1340: ; 0x020B1340 @@ -4210,6 +4347,7 @@ _020B14E8: .balign 4 _020B1520: .word 0xFFCFFFEF _020B1524: .word 0x04001000 + arm_func_end FUN_020B1340 arm_func_start FUN_020B1528 FUN_020B1528: ; 0x020B1528 @@ -4387,6 +4525,7 @@ _020B1728: .balign 4 _020B1760: .word 0xFFCFFFEF _020B1764: .word 0x04001000 + arm_func_end FUN_020B1528 arm_func_start FUN_020B1768 FUN_020B1768: ; 0x020B1768 @@ -4564,6 +4703,7 @@ _020B1968: .balign 4 _020B19A0: .word 0xFFCFFFEF _020B19A4: .word 0x04001000 + arm_func_end FUN_020B1768 arm_func_start FUN_020B19A8 FUN_020B19A8: @@ -4574,18 +4714,21 @@ FUN_020B19A8: movne r0, #0x1 moveq r0, #0x0 bx lr + arm_func_end FUN_020B19A8 arm_func_start FUN_020B19C4 FUN_020B19C4: ; 0x020B19C4 add r0, r0, r1, lsl #0x2 ldr r0, [r0, #0x8] bx lr + arm_func_end FUN_020B19C4 arm_func_start FUN_020B19D0 FUN_020B19D0: ; 0x020B19D0 add r0, r0, r1, lsl #0x2 str r2, [r0, #0x8] bx lr + arm_func_end FUN_020B19D0 arm_func_start FUN_020B19DC FUN_020B19DC: ; 0x020B19DC @@ -4598,6 +4741,7 @@ _020B19E4: cmp r3, #0x3 blt _020B19E4 bx lr + arm_func_end FUN_020B19DC arm_func_start FUN_020B19FC FUN_020B19FC: @@ -4607,16 +4751,19 @@ FUN_020B19FC: movne r0, #0x1 moveq r0, #0x0 bx lr + arm_func_end FUN_020B19FC arm_func_start FUN_020B1A14 FUN_020B1A14: ; 0x020B1A14 ldr r0, [r0, r1, lsl #0x2] bx lr + arm_func_end FUN_020B1A14 arm_func_start FUN_020B1A1C FUN_020B1A1C: ; 0x020B1A1C str r2, [r0, r1, lsl #0x2] bx lr + arm_func_end FUN_020B1A1C arm_func_start FUN_020B1A24 FUN_020B1A24: ; 0x020B1A24 @@ -4628,6 +4775,7 @@ _020B1A2C: cmp r2, #0x3 blt _020B1A2C bx lr + arm_func_end FUN_020B1A24 arm_func_start FUN_020B1A40 FUN_020B1A40: ; 0x020B1A40 @@ -4641,6 +4789,7 @@ FUN_020B1A40: ; 0x020B1A40 str r0, [r4, #0x4] str r0, [r4, #0x8] ldmia sp!, {r4,pc} + arm_func_end FUN_020B1A40 arm_func_start FUN_020B1A68 FUN_020B1A68: @@ -4649,6 +4798,7 @@ FUN_020B1A68: bx r12 .balign 4 _020B1A74: .word FUN_020B1A40 + arm_func_end FUN_020B1A68 arm_func_start FUN_020B1A78 FUN_020B1A78: ; 0x020B1A78 @@ -4660,6 +4810,7 @@ FUN_020B1A78: ; 0x020B1A78 streq r1, [r0, #0x4] streq r2, [r0, #0x8] bx lr + arm_func_end FUN_020B1A78 arm_func_start FUN_020B1A98 FUN_020B1A98: ; 0x020B1A98 @@ -4670,6 +4821,7 @@ FUN_020B1A98: ; 0x020B1A98 streqh r2, [r0, #0x12] streqh r1, [r0, #0x10] bx lr + arm_func_end FUN_020B1A98 arm_func_start FUN_020B1AB4 FUN_020B1AB4: ; 0x020B1AB4 @@ -4681,6 +4833,7 @@ FUN_020B1AB4: ; 0x020B1AB4 streqh r1, [r0, #0xc] streqh r2, [r0, #0xe] bx lr + arm_func_end FUN_020B1AB4 arm_func_start FUN_020B1AD4 FUN_020B1AD4: ; 0x020B1AD4 @@ -4694,6 +4847,7 @@ FUN_020B1AD4: ; 0x020B1AD4 bx r12 .balign 4 _020B1AF4: .word FUN_020B1A68 + arm_func_end FUN_020B1AD4 arm_func_start FUN_020B1AF8 FUN_020B1AF8: ; 0x020B1AF8 @@ -4943,6 +5097,7 @@ _020B1E94: .word UNK_020FF894 _020B1E98: .word 0xC1FFFCFF _020B1E9C: .word 0x000001FF _020B1EA0: .word 0xFE00FF00 + arm_func_end FUN_020B1AF8 arm_func_start FUN_020B1EA4 FUN_020B1EA4: ; 0x020B1EA4 @@ -4954,6 +5109,7 @@ FUN_020B1EA4: ; 0x020B1EA4 mov r0, r4 bl FUN_020B1FC4 ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EA4 arm_func_start FUN_020B1EC4 FUN_020B1EC4: ; 0x020B1EC4 @@ -4965,6 +5121,7 @@ FUN_020B1EC4: ; 0x020B1EC4 mov r0, r4 bl FUN_020B1FC4 ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EC4 arm_func_start FUN_020B1EE4 FUN_020B1EE4: ; 0x020B1EE4 @@ -4974,6 +5131,7 @@ FUN_020B1EE4: ; 0x020B1EE4 mov r0, r4 bl FUN_020B1FC4 ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EE4 arm_func_start FUN_020B1EFC FUN_020B1EFC: ; 0x020B1EFC @@ -5010,6 +5168,7 @@ FUN_020B1EFC: ; 0x020B1EFC bl FUN_020B1EE4 add sp, sp, #0x14 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B1EFC arm_func_start FUN_020B1F80 FUN_020B1F80: ; 0x020B1F80 @@ -5030,6 +5189,7 @@ FUN_020B1F80: ; 0x020B1F80 bl FUN_020B1EE4 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B1F80 arm_func_start FUN_020B1FC4 FUN_020B1FC4: ; 0x020B1FC4 @@ -5100,6 +5260,7 @@ _020B2068: bl FUN_020B4400 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B1FC4 arm_func_start FUN_020B20C8 FUN_020B20C8: ; 0x020B20C8 @@ -5156,6 +5317,7 @@ _020B215C: strh r1, [r0, #0x2c] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B20C8 arm_func_start FUN_020B2194 FUN_020B2194: ; 0x020B2194 @@ -5207,6 +5369,7 @@ _020B2234: bl FUN_020B24E0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B2194 arm_func_start FUN_020B224C FUN_020B224C: ; 0x020B224C @@ -5269,6 +5432,7 @@ _020B2318: bl FUN_020B232C add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B224C arm_func_start FUN_020B232C FUN_020B232C: ; 0x020B232C @@ -5318,6 +5482,7 @@ _020B23A8: cmp r5, r1 blo _020B23A8 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B232C arm_func_start FUN_020B23D8 FUN_020B23D8: ; 0x020B23D8 @@ -5344,6 +5509,7 @@ _020B23F4: _020B2424: mov r0, r4 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B23D8 arm_func_start FUN_020B242C FUN_020B242C: ; 0x020B242C @@ -5394,6 +5560,7 @@ _020B24C8: bl FUN_020B24E0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B242C arm_func_start FUN_020B24E0 FUN_020B24E0: ; 0x020B24E0 @@ -5579,6 +5746,7 @@ _020B2740: blo _020B267C add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B24E0 arm_func_start thunk_FUN_020b5040 thunk_FUN_020b5040: ; 0x020B2780 @@ -5586,11 +5754,13 @@ thunk_FUN_020b5040: ; 0x020B2780 bx r12 .balign 4 _020B2788: .word FUN_020B5040 + arm_func_end thunk_FUN_020b5040 arm_func_start FUN_020B278C FUN_020B278C: ldr r0, [r0, #0x78] bx lr + arm_func_end FUN_020B278C arm_func_start FUN_020B2794 FUN_020B2794: ; 0x020B2794 @@ -5672,6 +5842,7 @@ _020B28A4: .word UNK_02106570 _020B28A8: .word 0x0000FFFE _020B28AC: .word UNK_021CDDF4 _020B28B0: .word UNK_021CDD64 + arm_func_end FUN_020B2794 arm_func_start FUN_020B28B4 FUN_020B28B4: ; 0x020B28B4 @@ -5766,6 +5937,7 @@ _020B29F8: .word UNK_02106570 _020B29FC: .word 0x0000FFFE _020B2A00: .word UNK_021CDDF4 _020B2A04: .word UNK_021CDD64 + arm_func_end FUN_020B28B4 arm_func_start FUN_020B2A08 FUN_020B2A08: ; 0x020B2A08 @@ -5835,6 +6007,7 @@ _020B2AF8: .word UNK_021CDF08 _020B2AFC: .word UNK_021CDD74 _020B2B00: .word UNK_021CDEF4 _020B2B04: .word UNK_021CE1F4 + arm_func_end FUN_020B2A08 arm_func_start FUN_020B2B08 FUN_020B2B08: ; 0x020B2B08 @@ -5859,6 +6032,7 @@ FUN_020B2B08: ; 0x020B2B08 _020B2B4C: .word UNK_021CDD70 _020B2B50: .word UNK_02106570 _020B2B54: .word 0x0000FFFE + arm_func_end FUN_020B2B08 arm_func_start FUN_020B2B58 FUN_020B2B58: ; 0x020B2B58 @@ -6014,6 +6188,7 @@ _020B2D8C: .word UNK_021CDEF4 _020B2D90: .word UNK_021CE1F4 _020B2D94: .word UNK_021CDDF4 _020B2D98: .word UNK_021CDDF8 + arm_func_end FUN_020B2B58 arm_func_start FUN_020B2D9C FUN_020B2D9C: ; 0x020B2D9C @@ -6077,6 +6252,7 @@ _020B2E5C: .balign 4 _020B2E70: .word UNK_021CDD6C _020B2E74: .word FX_SinCosTable_ + arm_func_end FUN_020B2D9C arm_func_start FUN_020B2E78 FUN_020B2E78: ; 0x020B2E78 @@ -6286,6 +6462,7 @@ _020B3148: .balign 4 _020B3174: .word UNK_021CE8F4 _020B3178: .word UNK_021CDD6C + arm_func_end FUN_020B2E78 arm_func_start FUN_020B317C FUN_020B317C: ; 0x020B317C @@ -6320,6 +6497,7 @@ _020B31E0: ldmia sp!, {r4-r5,pc} .balign 4 _020B31EC: .word UNK_021CDD6C + arm_func_end FUN_020B317C arm_func_start FUN_020B31F0 FUN_020B31F0: ; 0x020B31F0 @@ -6357,6 +6535,7 @@ _020B324C: _020B3260: .word 0x04000448 _020B3264: .word UNK_021CDD6C _020B3268: .word UNK_021CDD68 + arm_func_end FUN_020B31F0 arm_func_start FUN_020B326C FUN_020B326C: ; 0x020B326C @@ -6413,6 +6592,7 @@ _020B3324: .word UNK_021CDD64 _020B3328: .word UNK_021CDDF4 _020B332C: .word 0x04000444 _020B3330: .word 0x04000454 + arm_func_end FUN_020B326C arm_func_start FUN_020B3334 FUN_020B3334: ; 0x020B3334 @@ -6440,6 +6620,7 @@ _020B3380: .word FUN_020B3EE0 _020B3384: .word FUN_020B3E48 _020B3388: .word FUN_020B3C40 _020B338C: .word FUN_020B3B90 + arm_func_end FUN_020B3334 arm_func_start FUN_020B3390 FUN_020B3390: ; 0x020B3390 @@ -6447,6 +6628,7 @@ FUN_020B3390: ; 0x020B3390 str r2, [r1, #0x30] str r1, [r0, #0x70] bx lr + arm_func_end FUN_020B3390 arm_func_start FUN_020B33A0 FUN_020B33A0: ; 0x020B33A0 @@ -6505,6 +6687,7 @@ _020B3464: .word UNK_021CDD60 _020B3468: .word UNK_021CDD64 _020B346C: .word UNK_021CDDF4 _020B3470: .word UNK_021CDD68 + arm_func_end FUN_020B33A0 arm_func_start FUN_020B3474 FUN_020B3474: ; 0x020B3474 @@ -6568,6 +6751,7 @@ _020B3534: .balign 4 _020B354C: .word UNK_021CDD6C _020B3550: .word FX_SinCosTable_ + arm_func_end FUN_020B3474 arm_func_start FUN_020B3554 FUN_020B3554: @@ -6670,6 +6854,7 @@ _020B36A4: _020B36B4: .word UNK_02106574 _020B36B8: .word UNK_021CDD6C _020B36BC: .word FX_SinCosTable_ + arm_func_end FUN_020B3554 arm_func_start FUN_020B36C0 FUN_020B36C0: ; 0x020B36C0 @@ -7005,6 +7190,7 @@ _020B3B80: .word UNK_021CDF08 _020B3B84: .word UNK_02106578 _020B3B88: .word UNK_02106574 _020B3B8C: .word UNK_021CDD74 + arm_func_end FUN_020B36C0 arm_func_start FUN_020B3B90 FUN_020B3B90: ; 0x020B3B90 @@ -7054,6 +7240,7 @@ _020B3C30: .word UNK_021CDEF4 _020B3C34: .word UNK_021CDF04 _020B3C38: .word UNK_021CDF08 _020B3C3C: .word UNK_02106578 + arm_func_end FUN_020B3B90 arm_func_start FUN_020B3C40 FUN_020B3C40: ; 0x020B3C40 @@ -7195,6 +7382,7 @@ _020B3E38: .word UNK_021CDEF4 _020B3E3C: .word UNK_021CDF04 _020B3E40: .word UNK_021CDF08 _020B3E44: .word UNK_02106578 + arm_func_end FUN_020B3C40 arm_func_start FUN_020B3E48 FUN_020B3E48: ; 0x020B3E48 @@ -7238,6 +7426,7 @@ _020B3ED0: .word UNK_021CDEF4 _020B3ED4: .word UNK_021CDF04 _020B3ED8: .word UNK_021CDF08 _020B3EDC: .word UNK_02106578 + arm_func_end FUN_020B3E48 arm_func_start FUN_020B3EE0 FUN_020B3EE0: ; 0x020B3EE0 @@ -7321,6 +7510,7 @@ _020B4000: .word UNK_021CDEF4 _020B4004: .word UNK_021CDF04 _020B4008: .word UNK_021CDF08 _020B400C: .word UNK_02106578 + arm_func_end FUN_020B3EE0 arm_func_start FUN_020B4010 FUN_020B4010: @@ -7418,6 +7608,7 @@ _020B4168: .word UNK_021CE1F4 _020B416C: .word UNK_021CDF04 _020B4170: .word UNK_021CDF08 _020B4174: .word UNK_02106578 + arm_func_end FUN_020B4010 arm_func_start FUN_020B4178 FUN_020B4178: ; 0x020B4178 @@ -7473,6 +7664,7 @@ _020B422C: .word UNK_021CDF08 _020B4230: .word UNK_021CDEF4 _020B4234: .word UNK_021CE1F4 _020B4238: .word UNK_021CDD74 + arm_func_end FUN_020B4178 arm_func_start FUN_020B423C FUN_020B423C: ; 0x020B423C @@ -7547,6 +7739,7 @@ FUN_020B423C: ; 0x020B423C stmeqia r12, {r0-r1} add sp, sp, #0x1c ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B423C arm_func_start FUN_020B4358 FUN_020B4358: ; 0x020B4358 @@ -7570,6 +7763,7 @@ FUN_020B4358: ; 0x020B4358 ldmia sp!, {r4,pc} .balign 4 _020B43A0: .word UNK_021CED04 + arm_func_end FUN_020B4358 arm_func_start FUN_020B43A4 FUN_020B43A4: ; 0x020B43A4 @@ -7599,6 +7793,7 @@ _020B43F0: .balign 4 _020B43F8: .word UNK_021CED00 _020B43FC: .word UNK_021CED04 + arm_func_end FUN_020B43A4 arm_func_start FUN_020B4400 FUN_020B4400: ; 0x020B4400 @@ -7613,6 +7808,7 @@ FUN_020B4400: ; 0x020B4400 str r4, [r0, #0x2c] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B4400 arm_func_start FUN_020B442C FUN_020B442C: ; 0x020B442C @@ -7702,6 +7898,7 @@ _020B4558: .word UNK_021CED00 _020B455C: .word UNK_021CED04 _020B4560: .word UNK_020FF8C4 _020B4564: .word UNK_021CECFC + arm_func_end FUN_020B442C arm_func_start FUN_020B4568 FUN_020B4568: ; 0x020B4568 @@ -7741,6 +7938,7 @@ _020B45A0: _020B45E4: .word UNK_021CECFC _020B45E8: .word UNK_021CED00 _020B45EC: .word UNK_021CED04 + arm_func_end FUN_020B4568 arm_func_start FUN_020B45F0 FUN_020B45F0: ; 0x020B45F0 @@ -7791,6 +7989,7 @@ _020B4670: ldmia sp!, {r4-r7,pc} .balign 4 _020B4698: .word UNK_021CED04 + arm_func_end FUN_020B45F0 arm_func_start FUN_020B469C FUN_020B469C: ; 0x020B469C @@ -7801,6 +8000,7 @@ FUN_020B469C: ; 0x020B469C bx lr .balign 4 _020B46B0: .word UNK_021CED04 + arm_func_end FUN_020B469C arm_func_start FUN_020B46B4 FUN_020B46B4: ; 0x020B46B4 @@ -7973,6 +8173,7 @@ _020B4938: .word 0x04000490 _020B493C: .word 0x00010040 _020B4940: .word 0x04000504 _020B4944: .word UNK_02106590 + arm_func_end FUN_020B46B4 arm_func_start FUN_020B4948 FUN_020B4948: @@ -7981,6 +8182,7 @@ FUN_020B4948: bx lr .balign 4 _020B4954: .word UNK_02106590 + arm_func_end FUN_020B4948 arm_func_start FUN_020B4958 FUN_020B4958: @@ -7989,6 +8191,7 @@ FUN_020B4958: bx lr .balign 4 _020B4964: .word UNK_02106590 + arm_func_end FUN_020B4958 arm_func_start FUN_020B4968 FUN_020B4968: ; 0x020B4968 @@ -7998,6 +8201,7 @@ FUN_020B4968: ; 0x020B4968 bx lr .balign 4 _020B4978: .word UNK_021CED10 + arm_func_end FUN_020B4968 arm_func_start FUN_020B497C FUN_020B497C: @@ -8006,6 +8210,7 @@ FUN_020B497C: bx lr .balign 4 _020B4988: .word UNK_021CED08 + arm_func_end FUN_020B497C arm_func_start FUN_020B498C FUN_020B498C: ; 0x020B498C @@ -8168,6 +8373,7 @@ _020B4BE4: .word UNK_020FF928 _020B4BE8: .word UNK_021CED0C _020B4BEC: .word UNK_020FF8D0 _020B4BF0: .word 0x040004AC + arm_func_end FUN_020B498C arm_func_start FUN_020B4BF4 FUN_020B4BF4: ; 0x020B4BF4 @@ -8236,6 +8442,7 @@ _020B4CB8: ldmia sp!, {r4-r6,pc} .balign 4 _020B4CD8: .word UNK_021CED14 + arm_func_end FUN_020B4BF4 arm_func_start FUN_020B4CDC FUN_020B4CDC: @@ -8294,6 +8501,7 @@ _020B4D74: ldmia sp!, {r4-r5,pc} .balign 4 _020B4D9C: .word UNK_021CED14 + arm_func_end FUN_020B4CDC arm_func_start FUN_020B4DA0 FUN_020B4DA0: ; 0x020B4DA0 @@ -8327,6 +8535,7 @@ _020B4DF0: _020B4E00: .word UNK_021CED14 _020B4E04: .word 0x04000440 _020B4E08: .word 0x04000448 + arm_func_end FUN_020B4DA0 arm_func_start FUN_020B4E0C FUN_020B4E0C: ; 0x020B4E0C @@ -8410,6 +8619,7 @@ _020B4F28: .word UNK_021CED14 _020B4F2C: .word 0x04000440 _020B4F30: .word 0x04000444 _020B4F34: .word 0x04000470 + arm_func_end FUN_020B4E0C arm_func_start FUN_020B4F38 FUN_020B4F38: ; 0x020B4F38 @@ -8428,6 +8638,7 @@ FUN_020B4F38: ; 0x020B4F38 biceq r1, r1, #0x2 streq r1, [r0, #0x24] bx lr + arm_func_end FUN_020B4F38 arm_func_start FUN_020B4F74 FUN_020B4F74: @@ -8436,6 +8647,7 @@ FUN_020B4F74: movne r0, #0x1 moveq r0, #0x0 bx lr + arm_func_end FUN_020B4F74 arm_func_start FUN_020B4F88 FUN_020B4F88: @@ -8444,16 +8656,19 @@ FUN_020B4F88: movne r0, #0x1 moveq r0, #0x0 bx lr + arm_func_end FUN_020B4F88 arm_func_start FUN_020B4F9C FUN_020B4F9C: ; 0x020B4F9C str r1, [r0, #0x0] bx lr + arm_func_end FUN_020B4F9C arm_func_start FUN_020B4FA4 FUN_020B4FA4: ; 0x020B4FA4 str r1, [r0, #0x34] bx lr + arm_func_end FUN_020B4FA4 arm_func_start FUN_020B4FAC FUN_020B4FAC: ; 0x020B4FAC @@ -8464,6 +8679,7 @@ FUN_020B4FAC: ; 0x020B4FAC bx lr .balign 4 _020B4FC0: .word UNK_021CED14 + arm_func_end FUN_020B4FAC arm_func_start FUN_020B4FC4 FUN_020B4FC4: ; 0x020B4FC4 @@ -8494,23 +8710,27 @@ FUN_020B4FC4: ; 0x020B4FC4 bx lr .balign 4 _020B5028: .word UNK_021CED14 + arm_func_end FUN_020B4FC4 arm_func_start FUN_020B502C FUN_020B502C: ; 0x020B502C str r1, [r0, #0x4] bx lr + arm_func_end FUN_020B502C arm_func_start FUN_020B5034 FUN_020B5034: ; 0x020B5034 str r1, [r0, #0x1c] str r2, [r0, #0x20] bx lr + arm_func_end FUN_020B5034 arm_func_start FUN_020B5040 FUN_020B5040: ; 0x020B5040 str r1, [r0, #0x8] str r2, [r0, #0xc] bx lr + arm_func_end FUN_020B5040 arm_func_start FUN_020B504C FUN_020B504C: ; 0x020B504C @@ -8531,6 +8751,7 @@ FUN_020B504C: ; 0x020B504C str r0, [r4, #0x30] str r1, [r4, #0x28] ldmia sp!, {r4,pc} + arm_func_end FUN_020B504C arm_func_start FUN_020B5090 FUN_020B5090: ; 0x020B5090 @@ -8590,6 +8811,7 @@ _020B513C: ldmia sp!, {r4-r10,pc} .balign 4 _020B5158: .word UNK_021CED14 + arm_func_end FUN_020B5090 arm_func_start FUN_020B515C FUN_020B515C: ; 0x020B515C @@ -8749,6 +8971,7 @@ _020B53A4: .word UNK_021CED14 _020B53A8: .word 0xC000C000 _020B53AC: .word UNK_020FF8AC _020B53B0: .word UNK_020FF894 + arm_func_end FUN_020B515C arm_func_start FUN_020B53B4 FUN_020B53B4: ; 0x020B53B4 @@ -9032,6 +9255,7 @@ _020B57C8: .word UNK_020FF8AC _020B57CC: .word 0xFE00FFFF _020B57D0: .word 0x000001FF _020B57D4: .word UNK_020FF894 + arm_func_end FUN_020B53B4 arm_func_start FUN_020B57D8 FUN_020B57D8: ; 0x020B57D8 @@ -9226,6 +9450,7 @@ _020B5AAC: .word UNK_021CED14 _020B5AB0: .word 0xC1FFFCFF _020B5AB4: .word 0x000001FF _020B5AB8: .word 0xFE00FF00 + arm_func_end FUN_020B57D8 arm_func_start FUN_020B5ABC FUN_020B5ABC: ; 0x020B5ABC @@ -9269,6 +9494,7 @@ _020B5B24: str r1, [r5, #0x4] add sp, sp, #0xc ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B5ABC arm_func_start FUN_020B5B54 FUN_020B5B54: ; 0x020B5B54 @@ -9303,6 +9529,7 @@ _020B5BAC: sub r0, r0, r5 add sp, sp, #0x10 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B5B54 arm_func_start FUN_020B5BC8 FUN_020B5BC8: @@ -9358,6 +9585,7 @@ _020B5C70: ldmia sp!, {r4-r10,pc} .balign 4 _020B5C84: .word 0x0000FFFF + arm_func_end FUN_020B5BC8 arm_func_start FUN_020B5C88 FUN_020B5C88: ; 0x020B5C88 @@ -9387,6 +9615,7 @@ _020B5CD8: add r0, r3, #0x4 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020B5C88 arm_func_start FUN_020B5CE4 FUN_020B5CE4: ; 0x020B5CE4 @@ -9416,6 +9645,7 @@ _020B5D2C: ldmia sp!, {pc} .balign 4 _020B5D38: .word 0x0000FFFF + arm_func_end FUN_020B5CE4 arm_func_start FUN_020B5D3C FUN_020B5D3C: ; 0x020B5D3C @@ -9436,6 +9666,7 @@ FUN_020B5D3C: ; 0x020B5D3C ldmia sp!, {r4,pc} .balign 4 _020B5D78: .word FUN_020B7718 + arm_func_end FUN_020B5D3C arm_func_start FUN_020B5D7C FUN_020B5D7C: ; 0x020B5D7C @@ -9499,6 +9730,7 @@ _020B5E40: ldmia sp!, {pc} .balign 4 _020B5E4C: .word 0x0000FFFF + arm_func_end FUN_020B5D7C arm_func_start FUN_020B5E50 FUN_020B5E50: ; 0x020B5E50 @@ -9714,6 +9946,7 @@ _020B6170: .word UNK_020FF970 _020B6174: .word 0x000001FF _020B6178: .word 0xFE00FF00 _020B617C: .word 0x3FFF3FFF + arm_func_end FUN_020B5E50 arm_func_start FUN_020B6180 FUN_020B6180: ; 0x020B6180 @@ -9740,6 +9973,7 @@ FUN_020B6180: ; 0x020B6180 add r0, lr, r0, lsr #0x2 mla r0, r1, r0, r12 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B6180 arm_func_start FUN_020B61DC FUN_020B61DC: ; 0x020B61DC @@ -9771,6 +10005,7 @@ _020B622C: add r0, r0, lr blt _020B6204 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B61DC arm_func_start FUN_020B6240 FUN_020B6240: ; 0x020B6240 @@ -9824,6 +10059,7 @@ _020B62E4: blt _020B62A0 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B6240 arm_func_start FUN_020B62F8 FUN_020B62F8: ; 0x020B62F8 @@ -9864,6 +10100,7 @@ _020B6378: .word UNK_020FF970 _020B637C: .word FUN_020B6908 _020B6380: .word FUN_020B68AC _020B6384: .word FUN_020B64C0 + arm_func_end FUN_020B62F8 arm_func_start FUN_020B6388 FUN_020B6388: ; 0x020B6388 @@ -9885,6 +10122,7 @@ FUN_020B6388: ; 0x020B6388 _020B63C0: .word FUN_020B6B10 _020B63C4: .word FUN_020B68AC _020B63C8: .word FUN_020B66D4 + arm_func_end FUN_020B6388 arm_func_start FUN_020B63CC FUN_020B63CC: ; 0x020B63CC @@ -9936,6 +10174,7 @@ FUN_020B63CC: ; 0x020B63CC ldmia sp!, {r4-r8,pc} .balign 4 _020B6484: .word 0x0000FFFF + arm_func_end FUN_020B63CC arm_func_start FUN_020B6488 FUN_020B6488: ; 0x020B6488 @@ -9953,6 +10192,7 @@ FUN_020B6488: ; 0x020B6488 str r2, [r0, #0x1c] str r1, [r0, #0x10] bx lr + arm_func_end FUN_020B6488 arm_func_start FUN_020B64C0 FUN_020B64C0: ; 0x020B64C0 @@ -10093,6 +10333,7 @@ _020B66B0: blt _020B65E4 add sp, sp, #0x54 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B64C0 arm_func_start FUN_020B66D4 FUN_020B66D4: ; 0x020B66D4 @@ -10218,6 +10459,7 @@ _020B687C: blt _020B67E0 add sp, sp, #0x3c ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B66D4 arm_func_start FUN_020B68AC FUN_020B68AC: ; 0x020B68AC @@ -10244,6 +10486,7 @@ FUN_020B68AC: ; 0x020B68AC bl MIi_CpuClearFast add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020B68AC arm_func_start FUN_020B6908 FUN_020B6908: ; 0x020B6908 @@ -10380,6 +10623,7 @@ _020B6AEC: bgt _020B6A90 add sp, sp, #0x4c ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6908 arm_func_start FUN_020B6B10 FUN_020B6B10: ; 0x020B6B10 @@ -10489,6 +10733,7 @@ _020B6C90: bgt _020B6C60 add sp, sp, #0x2c ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6B10 arm_func_start FUN_020B6CAC FUN_020B6CAC: ; 0x020B6CAC @@ -10655,6 +10900,7 @@ _020B6EE8: blo _020B6E58 add sp, sp, #0x34 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6CAC arm_func_start FUN_020B6F18 FUN_020B6F18: ; 0x020B6F18 @@ -10739,6 +10985,7 @@ _020B701C: cmp r5, r4 blo _020B701C ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B6F18 arm_func_start FUN_020B704C FUN_020B704C: ; 0x020B704C @@ -10750,6 +10997,7 @@ FUN_020B704C: ; 0x020B704C bx lr .balign 4 _020B7064: .word UNK_020FF990 + arm_func_end FUN_020B704C arm_func_start FUN_020B7068 FUN_020B7068: ; 0x020B7068 @@ -10821,6 +11069,7 @@ _020B7118: ldmia sp!, {r4-r11,pc} .balign 4 _020B7164: .word UNK_020FF970 + arm_func_end FUN_020B7068 arm_func_start FUN_020B7168 FUN_020B7168: ; 0x020B7168 @@ -10870,6 +11119,7 @@ _020B71E4: bl FUN_020B72C4 add sp, sp, #0xc ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B7168 arm_func_start FUN_020B7218 FUN_020B7218: ; 0x020B7218 @@ -10918,6 +11168,7 @@ _020B7298: bl FUN_020B72C4 add sp, sp, #0x18 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B7218 arm_func_start FUN_020B72C4 FUN_020B72C4: ; 0x020B72C4 @@ -10987,6 +11238,7 @@ _020B7388: bne _020B732C add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B72C4 arm_func_start FUN_020B73C0 FUN_020B73C0: ; 0x020B73C0 @@ -11034,6 +11286,7 @@ _020B743C: str r1, [r0, #0x0] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B73C0 arm_func_start FUN_020B7468 FUN_020B7468: ; 0x020B7468 @@ -11104,6 +11357,7 @@ _020B7548: .word 0x46494E46 _020B754C: .word 0x43574448 _020B7550: .word 0x434D4150 _020B7554: .word 0x43474C50 + arm_func_end FUN_020B7468 arm_func_start FUN_020B7558 FUN_020B7558: ; 0x020B7558 @@ -11208,6 +11462,7 @@ _020B76A0: .balign 4 _020B76A8: .word 0x4E465452 _020B76AC: .word 0x46494E46 + arm_func_end FUN_020B7558 arm_func_start FUN_020B76B0 FUN_020B76B0: @@ -11238,6 +11493,7 @@ _020B7704: and r0, r5, r1, asr r0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B76B0 arm_func_start FUN_020B7718 FUN_020B7718: ; 0x020B7718 @@ -11246,6 +11502,7 @@ FUN_020B7718: ; 0x020B7718 str r1, [r0, #0x0] mov r0, r2 bx lr + arm_func_end FUN_020B7718 arm_func_start FUN_020B772C FUN_020B772C: ; 0x020B772C @@ -11275,6 +11532,7 @@ _020B7750: blo _020B7750 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B772C arm_func_start FUN_020B7790 FUN_020B7790: ; 0x020B7790 @@ -11311,6 +11569,7 @@ _020B7800: mov r0, r5 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B7790 arm_func_start FUN_020B780C FUN_020B780C: ; 0x020B780C @@ -11337,6 +11596,7 @@ _020B782C: cmp r1, r0 blo _020B782C bx lr + arm_func_end FUN_020B780C arm_func_start FUN_020B7864 FUN_020B7864: ; 0x020B7864 @@ -11387,6 +11647,7 @@ _020B78F4: _020B7908: mov r0, r6 ldmia sp!, {r4-r10,pc} + arm_func_end FUN_020B7864 arm_func_start FUN_020B7910 FUN_020B7910: @@ -11429,6 +11690,7 @@ _020B7994: orr r0, r0, #0x1 strb r0, [r1, #0x3] ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B7910 arm_func_start FUN_020B79A4 FUN_020B79A4: ; 0x020B79A4 @@ -11458,6 +11720,7 @@ _020B79F0: cmp r4, r0 blo _020B79C8 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B79A4 arm_func_start FUN_020B7A04 FUN_020B7A04: ; 0x020B7A04 @@ -11510,6 +11773,7 @@ _020B7AAC: mov r0, r11 add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B7A04 arm_func_start FUN_020B7AB8 FUN_020B7AB8: ; 0x020B7AB8 @@ -11550,6 +11814,7 @@ _020B7B28: ldmia sp!, {r4-r7,pc} .balign 4 _020B7B3C: .word 0xC00F0000 + arm_func_end FUN_020B7AB8 arm_func_start FUN_020B7B40 FUN_020B7B40: @@ -11628,6 +11893,7 @@ _020B7C3C: .balign 4 _020B7C50: .word 0x0000FFFF _020B7C54: .word 0x000007FF + arm_func_end FUN_020B7B40 arm_func_start FUN_020B7C58 FUN_020B7C58: ; 0x020B7C58 @@ -11639,6 +11905,7 @@ FUN_020B7C58: ; 0x020B7C58 str r1, [r0, #0x2c] mov r0, r2 bx lr + arm_func_end FUN_020B7C58 arm_func_start FUN_020B7C78 FUN_020B7C78: ; 0x020B7C78 @@ -11669,17 +11936,20 @@ _020B7C90: ldmia sp!, {r4-r5,pc} .balign 4 _020B7CD8: .word 0x0000FFFF + arm_func_end FUN_020B7C78 arm_func_start FUN_020B7CDC FUN_020B7CDC: ; 0x020B7CDC str r1, [r0, #0x2c] bx lr + arm_func_end FUN_020B7CDC arm_func_start FUN_020B7CE4 FUN_020B7CE4: ; 0x020B7CE4 ldrh r0, [r0, #0x30] mov r0, r0, lsl #0x3 bx lr + arm_func_end FUN_020B7CE4 arm_func_start FUN_020B7CF0 FUN_020B7CF0: ; 0x020B7CF0 @@ -11697,6 +11967,7 @@ FUN_020B7CF0: ; 0x020B7CF0 str r1, [r2, #0x0] str r3, [r0, #0x18] bx lr + arm_func_end FUN_020B7CF0 arm_func_start FUN_020B7D28 FUN_020B7D28: ; 0x020B7D28 @@ -11757,6 +12028,7 @@ _020B7DDC: .balign 4 _020B7DF4: .word 0x0000FFFF _020B7DF8: .word 0x0001FFFF + arm_func_end FUN_020B7D28 arm_func_start FUN_020B7DFC FUN_020B7DFC: ; 0x020B7DFC @@ -11765,18 +12037,21 @@ FUN_020B7DFC: ; 0x020B7DFC cmp r2, #0x0 strne r2, [r0, #0x18] bx lr + arm_func_end FUN_020B7DFC arm_func_start FUN_020B7E10 FUN_020B7E10: ; 0x020B7E10 ldrh r0, [r0, #0x1c] mov r0, r0, lsl #0x3 bx lr + arm_func_end FUN_020B7E10 arm_func_start FUN_020B7E1C FUN_020B7E1C: ; 0x020B7E1C ldrh r0, [r0, #0xc] mov r0, r0, lsl #0x3 bx lr + arm_func_end FUN_020B7E1C arm_func_start FUN_020B7E28 FUN_020B7E28: ; 0x020B7E28 @@ -11805,6 +12080,7 @@ _020B7E74: str r0, [r5, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7E28 arm_func_start FUN_020B7E88 FUN_020B7E88: @@ -11841,6 +12117,7 @@ _020B7EE4: _020B7EF4: mov r0, #0x0 bx lr + arm_func_end FUN_020B7E88 arm_func_start FUN_020B7EFC FUN_020B7EFC: ; 0x020B7EFC @@ -11882,6 +12159,7 @@ _020B7F6C: bl FUN_020B7FF8 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7EFC arm_func_start FUN_020B7F88 FUN_020B7F88: ; 0x020B7F88 @@ -11916,6 +12194,7 @@ _020B7FE4: bne _020B7FA4 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7F88 arm_func_start FUN_020B7FF8 FUN_020B7FF8: ; 0x020B7FF8 @@ -11975,6 +12254,7 @@ _020B809C: _020B80AC: str r1, [r12, #0x10] bx lr + arm_func_end FUN_020B7FF8 arm_func_start FUN_020B80B4 FUN_020B80B4: ; 0x020B80B4 @@ -12002,6 +12282,7 @@ FUN_020B80B4: ; 0x020B80B4 _020B8104: .word UNK_021065B4 _020B8108: .word UNK_021065B0 _020B810C: .word UNK_021065AC + arm_func_end FUN_020B80B4 arm_func_start FUN_020B8110 FUN_020B8110: ; 0x020B8110 @@ -12048,6 +12329,7 @@ _020B8190: _020B81A4: .word UNK_02106594 _020B81A8: .word UNK_021065B8 _020B81AC: .word UNK_021065BC + arm_func_end FUN_020B8110 arm_func_start FUN_020B81B0 FUN_020B81B0: ; 0x020B81B0 @@ -12074,6 +12356,7 @@ _020B81E4: _020B81F8: mov r0, #0x0 bx lr + arm_func_end FUN_020B81B0 arm_func_start FUN_020B8200 FUN_020B8200: ; 0x020B8200 @@ -12103,6 +12386,7 @@ FUN_020B8200: ; 0x020B8200 bx lr .balign 4 _020B8260: .word UNK_021CED18 + arm_func_end FUN_020B8200 arm_func_start FUN_020B8264 FUN_020B8264: ; 0x020B8264 @@ -12124,6 +12408,7 @@ _020B8290: .balign 4 _020B829C: .word UNK_021CED18 _020B82A0: .word UNK_021CEE78 + arm_func_end FUN_020B8264 arm_func_start FUN_020B82A4 FUN_020B82A4: ; 0x020B82A4 @@ -12145,6 +12430,7 @@ _020B82D0: .balign 4 _020B82DC: .word UNK_021CED18 _020B82E0: .word UNK_021CEE48 + arm_func_end FUN_020B82A4 arm_func_start FUN_020B82E4 FUN_020B82E4: ; 0x020B82E4 @@ -12173,6 +12459,7 @@ _020B8334: .word UNK_021CED64 _020B8338: .word UNK_021CEE48 _020B833C: .word UNK_021CED18 _020B8340: .word UNK_021CEE78 + arm_func_end FUN_020B82E4 arm_func_start FUN_020B8344 FUN_020B8344: ; 0x020B8344 @@ -12197,6 +12484,7 @@ _020B8378: _020B8384: .word UNK_021CED18 _020B8388: .word UNK_021CED64 _020B838C: .word UNK_021CEE18 + arm_func_end FUN_020B8344 arm_func_start FUN_020B8390 FUN_020B8390: ; 0x020B8390 @@ -12212,6 +12500,7 @@ FUN_020B8390: ; 0x020B8390 bx lr .balign 4 _020B83B8: .word UNK_021CED18 + arm_func_end FUN_020B8390 arm_func_start FUN_020B83BC FUN_020B83BC: ; 0x020B83BC @@ -12225,6 +12514,7 @@ FUN_020B83BC: ; 0x020B83BC bx lr .balign 4 _020B83DC: .word UNK_021CED18 + arm_func_end FUN_020B83BC arm_func_start FUN_020B83E0 FUN_020B83E0: ; 0x020B83E0 @@ -12238,6 +12528,7 @@ FUN_020B83E0: ; 0x020B83E0 bx lr .balign 4 _020B8400: .word UNK_021CED18 + arm_func_end FUN_020B83E0 arm_func_start FUN_020B8404 FUN_020B8404: ; 0x020B8404 @@ -12247,6 +12538,7 @@ FUN_020B8404: ; 0x020B8404 bx lr .balign 4 _020B8414: .word UNK_021CEDC0 + arm_func_end FUN_020B8404 arm_func_start FUN_020B8418 FUN_020B8418: ; 0x020B8418 @@ -12264,6 +12556,7 @@ FUN_020B8418: ; 0x020B8418 .balign 4 _020B8444: .word 0x000003FF _020B8448: .word UNK_021CED98 + arm_func_end FUN_020B8418 arm_func_start FUN_020B844C FUN_020B844C: ; 0x020B844C @@ -12278,6 +12571,7 @@ FUN_020B844C: ; 0x020B844C .balign 4 _020B846C: .word UNK_021CEE04 _020B8470: .word UNK_021CED18 + arm_func_end FUN_020B844C arm_func_start FUN_020B8474 FUN_020B8474: ; 0x020B8474 @@ -12292,6 +12586,7 @@ FUN_020B8474: ; 0x020B8474 .balign 4 _020B8494: .word UNK_021CEDF8 _020B8498: .word UNK_021CED18 + arm_func_end FUN_020B8474 arm_func_start FUN_020B849C FUN_020B849C: ; 0x020B849C @@ -12311,6 +12606,7 @@ FUN_020B849C: ; 0x020B849C ldmia sp!, {pc} .balign 4 _020B84D4: .word UNK_021CED18 + arm_func_end FUN_020B849C arm_func_start FUN_020B84D8 FUN_020B84D8: ; 0x020B84D8 @@ -12405,6 +12701,7 @@ _020B8630: .word 0x00007FFF _020B8634: .word 0x800003E0 _020B8638: .word 0xC0007C00 _020B863C: .word UNK_021CEDD4 + arm_func_end FUN_020B84D8 arm_func_start FUN_020B8640 FUN_020B8640: ; 0x020B8640 @@ -12438,6 +12735,7 @@ _020B869C: bne _020B8664 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B8640 arm_func_start FUN_020B86B0 FUN_020B86B0: ; 0x020B86B0 @@ -12636,6 +12934,7 @@ _020B8948: mov r0, #0x1 add sp, sp, #0x5c ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B86B0 arm_func_start FUN_020B8998 FUN_020B8998: @@ -12668,6 +12967,7 @@ _020B89C8: add r1, r3, r1, asr #0xc str r1, [r0, #0x8] bx lr + arm_func_end FUN_020B8998 arm_func_start FUN_020B8A08 FUN_020B8A08: ; 0x020B8A08 @@ -12695,6 +12995,7 @@ _020B8A4C: bne _020B8A24 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B8A08 arm_func_start FUN_020B8A60 FUN_020B8A60: ; 0x020B8A60 @@ -12941,6 +13242,7 @@ _020B8DE0: .word 0x04000440 _020B8DE4: .word 0x04000444 _020B8DE8: .word 0x04000454 _020B8DEC: .word 0x04000448 + arm_func_end FUN_020B8A60 arm_func_start FUN_020B8DF0 FUN_020B8DF0: ; 0x020B8DF0 @@ -13157,6 +13459,7 @@ _020B9100: .word UNK_0210663C _020B9104: .word UNK_021CED18 _020B9108: .word UNK_021CED64 _020B910C: .word UNK_021CEDD4 + arm_func_end FUN_020B8DF0 arm_func_start FUN_020B9110 FUN_020B9110: ; 0x020B9110 @@ -13187,6 +13490,7 @@ _020B9164: str r0, [r4, #0x0] add sp, sp, #0x10 ldmia sp!, {r4,pc} + arm_func_end FUN_020B9110 arm_func_start FUN_020B9178 FUN_020B9178: ; 0x020B9178 @@ -13250,6 +13554,7 @@ _020B9248: add r0, r0, #0x9 str r0, [r5, #0x0] ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B9178 arm_func_start FUN_020B9258 FUN_020B9258: ; 0x020B9258 @@ -13673,6 +13978,7 @@ _020B98B4: .word 0x04000454 _020B98B8: .word UNK_021D0380 _020B98BC: .word 0x04000450 _020B98C0: .word UNK_021D03C0 + arm_func_end FUN_020B9258 arm_func_start FUN_020B98C4 FUN_020B98C4: ; 0x020B98C4 @@ -13926,6 +14232,7 @@ _020B9C44: .word 0x00171012 _020B9C48: .word UNK_021066EC _020B9C4C: .word 0x00001B19 _020B9C50: .word UNK_021066E8 + arm_func_end FUN_020B98C4 arm_func_start FUN_020B9C54 FUN_020B9C54: ; 0x020B9C54 @@ -14152,6 +14459,7 @@ _020B9F74: .word UNK_021066A4 _020B9F78: .word 0x00001B19 _020B9F7C: .word UNK_021066AC _020B9F80: .word UNK_021066A0 + arm_func_end FUN_020B9C54 arm_func_start FUN_020B9F84 FUN_020B9F84: ; 0x020B9F84 @@ -14451,6 +14759,7 @@ _020BA3B4: .word UNK_020FF9F0 _020BA3B8: .word UNK_020FF9F0 + 1 _020BA3BC: .word UNK_020FF9F0 + 2 _020BA3C0: .word UNK_020FF9F0 + 3 + arm_func_end FUN_020B9F84 arm_func_start FUN_020BA3C4 FUN_020BA3C4: ; 0x020BA3C4 @@ -14485,6 +14794,7 @@ _020BA420: ldmia sp!, {r4-r5,pc} .balign 4 _020BA434: .word UNK_02106650 + arm_func_end FUN_020BA3C4 arm_func_start FUN_020BA438 FUN_020BA438: ; 0x020BA438 @@ -14545,6 +14855,7 @@ _020BA4E8: ldr r1, [r6, #0x20] blx r1 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BA438 arm_func_start FUN_020BA50C FUN_020BA50C: ; 0x020BA50C @@ -14583,6 +14894,7 @@ _020BA578: ldmia sp!, {r4-r6,pc} .balign 4 _020BA588: .word UNK_02106640 + arm_func_end FUN_020BA50C arm_func_start FUN_020BA58C FUN_020BA58C: ; 0x020BA58C @@ -14884,6 +15196,7 @@ _020BA9DC: .word UNK_021CED18 _020BA9E0: .word UNK_020FF9D0 _020BA9E4: .word 0x00293130 _020BA9E8: .word 0x00002B2A + arm_func_end FUN_020BA58C arm_func_start FUN_020BA9EC FUN_020BA9EC: ; 0x020BA9EC @@ -14944,6 +15257,7 @@ _020BAAAC: str r0, [r5, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BA9EC arm_func_start FUN_020BAAC0 FUN_020BAAC0: ; 0x020BAAC0 @@ -15053,6 +15367,7 @@ _020BAC38: add r0, r0, #0x3 str r0, [r6, #0x0] ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BAAC0 arm_func_start FUN_020BAC48 FUN_020BAC48: ; 0x020BAC48 @@ -15067,6 +15382,7 @@ _020BAC60: orr r0, r0, #0x20 str r0, [r4, #0x8] ldmia sp!, {r4,pc} + arm_func_end FUN_020BAC48 arm_func_start FUN_020BAC70 FUN_020BAC70: ; 0x020BAC70 @@ -15081,6 +15397,7 @@ _020BAC88: add r0, r0, #0x1 str r0, [r4, #0x0] ldmia sp!, {r4,pc} + arm_func_end FUN_020BAC70 arm_func_start FUN_020BAC98 FUN_020BAC98: ; 0x020BAC98 @@ -15145,6 +15462,7 @@ _020BAD4C: ldmia sp!, {r4,pc} .balign 4 _020BAD70: .word UNK_021CEF7C + arm_func_end FUN_020BAC98 arm_func_start FUN_020BAD74 FUN_020BAD74: @@ -15179,6 +15497,7 @@ _020BADD0: bne _020BAD90 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BAD74 arm_func_start FUN_020BADE4 FUN_020BADE4: ; 0x020BADE4 @@ -15283,6 +15602,7 @@ _020BAF44: _020BAF60: .word UNK_02106614 _020BAF64: .word UNK_02106608 _020BAF68: .word UNK_02106620 + arm_func_end FUN_020BADE4 arm_func_start FUN_020BAF6C FUN_020BAF6C: @@ -15307,6 +15627,7 @@ _020BAF7C: ldmia sp!, {r4-r6,pc} .balign 4 _020BAFB4: .word UNK_02106730 + arm_func_end FUN_020BAF6C arm_func_start FUN_020BAFB8 FUN_020BAFB8: ; 0x020BAFB8 @@ -15445,6 +15766,7 @@ _020BB150: _020BB1B4: .word 0x00293130 _020BB1B8: .word 0x00002B2A _020BB1BC: .word UNK_02106620 + arm_func_end FUN_020BAFB8 arm_func_start FUN_020BB1C0 FUN_020BB1C0: @@ -15513,6 +15835,7 @@ _020BB28C: _020BB2A4: .word UNK_021D1C80 _020BB2A8: .word UNK_021D1C84 _020BB2AC: .word 0x04000400 + arm_func_end FUN_020BB1C0 arm_func_start FUN_020BB2B0 FUN_020BB2B0: ; 0x020BB2B0 @@ -15568,12 +15891,14 @@ _020BB360: .word GXi_DmaId _020BB364: .word UNK_021D1C88 _020BB368: .word UNK_021D1C84 _020BB36C: .word FUN_020BB370 + arm_func_end FUN_020BB2B0 arm_func_start FUN_020BB370 FUN_020BB370: ; 0x020BB370 mov r1, #0x0 str r1, [r0, #0x0] bx lr + arm_func_end FUN_020BB370 arm_func_start FUN_020BB37C FUN_020BB37C: ; 0x020BB37C @@ -15585,6 +15910,7 @@ _020BB380: bx lr .balign 4 _020BB390: .word UNK_021D1C84 + arm_func_end FUN_020BB37C arm_func_start FUN_020BB394 FUN_020BB394: ; 0x020BB394 @@ -15619,6 +15945,7 @@ _020BB3B0: _020BB3FC: .word UNK_021D1C84 _020BB400: .word UNK_021D1C80 _020BB404: .word 0x04000400 + arm_func_end FUN_020BB394 arm_func_start FUN_020BB408 FUN_020BB408: ; 0x020BB408 @@ -15726,6 +16053,7 @@ _020BB534: .balign 4 _020BB594: .word UNK_021CED20 _020BB598: .word UNK_021CED64 + arm_func_end FUN_020BB408 arm_func_start FUN_020BB59C FUN_020BB59C: ; 0x020BB59C @@ -15896,6 +16224,7 @@ _020BB7E4: .word UNK_021064B8 _020BB7E8: .word UNK_021064C0 _020BB7EC: .word UNK_021064C4 _020BB7F0: .word UNK_021064BC + arm_func_end FUN_020BB59C arm_func_start FUN_020BB7F4 FUN_020BB7F4: ; 0x020BB7F4 @@ -15912,6 +16241,7 @@ FUN_020BB7F4: ; 0x020BB7F4 ldmia sp!, {pc} .balign 4 _020BB820: .word 0x04000600 + arm_func_end FUN_020BB7F4 arm_func_start FUN_020BB824 FUN_020BB824: ; 0x020BB824 @@ -15960,6 +16290,7 @@ _020BB8B4: .word 0x04000440 _020BB8B8: .word 0x04000444 _020BB8BC: .word 0x04000454 _020BB8C0: .word 0x04000448 + arm_func_end FUN_020BB824 arm_func_start thunk_FUN_020ae84c thunk_FUN_020ae84c: ; 0x020BB8C4 @@ -15967,6 +16298,7 @@ thunk_FUN_020ae84c: ; 0x020BB8C4 bx r12 .balign 4 _020BB8CC: .word FUN_020AE84C + arm_func_end thunk_FUN_020ae84c arm_func_start FUN_020BB8D0 FUN_020BB8D0: ; 0x020BB8D0 @@ -15979,6 +16311,7 @@ FUN_020BB8D0: ; 0x020BB8D0 mov r0, r4 bl FUN_020AE868 ldmia sp!, {r4,pc} + arm_func_end FUN_020BB8D0 arm_func_start FUN_020BB8F4 FUN_020BB8F4: ; 0x020BB8F4 @@ -15999,6 +16332,7 @@ _020BB910: cmp r4, r0 blo _020BB910 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB8F4 arm_func_start FUN_020BB934 FUN_020BB934: ; 0x020BB934 @@ -16019,6 +16353,7 @@ _020BB950: cmp r4, r0 blo _020BB950 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB934 arm_func_start FUN_020BB974 FUN_020BB974: ; 0x020BB974 @@ -16039,6 +16374,7 @@ _020BB990: cmp r4, r0 blo _020BB990 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB974 arm_func_start FUN_020BB9B4 FUN_020BB9B4: ; 0x020BB9B4 @@ -16059,6 +16395,7 @@ _020BB9D0: cmp r4, r0 blo _020BB9D0 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB9B4 arm_func_start FUN_020BB9F4 FUN_020BB9F4: ; 0x020BB9F4 @@ -16079,6 +16416,7 @@ _020BBA10: cmp r4, r0 blo _020BBA10 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB9F4 arm_func_start FUN_020BBA34 FUN_020BBA34: ; 0x020BBA34 @@ -16099,6 +16437,7 @@ _020BBA50: cmp r4, r0 blo _020BBA50 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBA34 arm_func_start FUN_020BBA74 FUN_020BBA74: ; 0x020BBA74 @@ -16119,6 +16458,7 @@ _020BBA90: cmp r4, r0 blo _020BBA90 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBA74 arm_func_start FUN_020BBAB4 FUN_020BBAB4: ; 0x020BBAB4 @@ -16139,6 +16479,7 @@ _020BBAD0: cmp r4, r0 blo _020BBAD0 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBAB4 arm_func_start FUN_020BBAF4 FUN_020BBAF4: ; 0x020BBAF4 @@ -16159,6 +16500,7 @@ _020BBB10: cmp r4, r0 blo _020BBB10 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBAF4 arm_func_start FUN_020BBB34 FUN_020BBB34: ; 0x020BBB34 @@ -16179,6 +16521,7 @@ _020BBB50: cmp r4, r0 blo _020BBB50 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBB34 arm_func_start FUN_020BBB74 FUN_020BBB74: ; 0x020BBB74 @@ -16199,6 +16542,7 @@ _020BBB90: cmp r4, r0 blo _020BBB90 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBB74 arm_func_start FUN_020BBBB4 FUN_020BBBB4: ; 0x020BBBB4 @@ -16219,6 +16563,7 @@ _020BBBD0: cmp r4, r0 blo _020BBBD0 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBBB4 arm_func_start FUN_020BBBF4 FUN_020BBBF4: ; 0x020BBBF4 @@ -16239,6 +16584,7 @@ _020BBC10: cmp r4, r0 blo _020BBC10 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBBF4 arm_func_start FUN_020BBC34 FUN_020BBC34: ; 0x020BBC34 @@ -16259,6 +16605,7 @@ _020BBC50: cmp r4, r0 blo _020BBC50 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBC34 arm_func_start FUN_020BBC74 FUN_020BBC74: ; 0x020BBC74 @@ -16279,6 +16626,7 @@ FUN_020BBC74: ; 0x020BBC74 biceq r0, r0, #0x800 streq r0, [r1, #0xc] bx lr + arm_func_end FUN_020BBC74 arm_func_start FUN_020BBCB8 FUN_020BBCB8: ; 0x020BBCB8 @@ -16299,6 +16647,7 @@ FUN_020BBCB8: ; 0x020BBCB8 biceq r0, r0, #0x1000 streq r0, [r1, #0xc] bx lr + arm_func_end FUN_020BBCB8 arm_func_start FUN_020BBCFC FUN_020BBCFC: ; 0x020BBCFC @@ -16319,6 +16668,7 @@ FUN_020BBCFC: ; 0x020BBCFC biceq r0, r0, #0x2000 streq r0, [r1, #0xc] bx lr + arm_func_end FUN_020BBCFC arm_func_start FUN_020BBD40 FUN_020BBD40: ; 0x020BBD40 @@ -16339,6 +16689,7 @@ FUN_020BBD40: ; 0x020BBD40 biceq r0, r0, #0x4000 streq r0, [r1, #0xc] bx lr + arm_func_end FUN_020BBD40 arm_func_start FUN_020BBD84 FUN_020BBD84: ; 0x020BBD84 @@ -16359,6 +16710,7 @@ FUN_020BBD84: ; 0x020BBD84 biceq r0, r0, #0x8000 streq r0, [r1, #0xc] bx lr + arm_func_end FUN_020BBD84 arm_func_start FUN_020BBDC8 FUN_020BBDC8: ; 0x020BBDC8 @@ -16379,6 +16731,7 @@ FUN_020BBDC8: ; 0x020BBDC8 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BBDC8 arm_func_start FUN_020BBE0C FUN_020BBE0C: ; 0x020BBE0C @@ -16399,6 +16752,7 @@ FUN_020BBE0C: ; 0x020BBE0C str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BBE0C arm_func_start FUN_020BBE50 FUN_020BBE50: ; 0x020BBE50 @@ -16419,6 +16773,7 @@ FUN_020BBE50: ; 0x020BBE50 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BBE50 arm_func_start FUN_020BBE94 FUN_020BBE94: ; 0x020BBE94 @@ -16439,6 +16794,7 @@ FUN_020BBE94: ; 0x020BBE94 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BBE94 arm_func_start FUN_020BBED8 FUN_020BBED8: ; 0x020BBED8 @@ -16459,6 +16815,7 @@ FUN_020BBED8: ; 0x020BBED8 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BBED8 arm_func_start FUN_020BBF1C FUN_020BBF1C: ; 0x020BBF1C @@ -16480,6 +16837,7 @@ FUN_020BBF1C: ; 0x020BBF1C ldmia sp!, {r4,pc} .balign 4 _020BBF5C: .word 0x8000FFFF + arm_func_end FUN_020BBF1C arm_func_start FUN_020BBF60 FUN_020BBF60: ; 0x020BBF60 @@ -16500,6 +16858,7 @@ FUN_020BBF60: ; 0x020BBF60 orr r0, r0, r2 str r0, [r3, #0x8] ldmia sp!, {r4,pc} + arm_func_end FUN_020BBF60 arm_func_start FUN_020BBFA4 FUN_020BBFA4: ; 0x020BBFA4 @@ -16521,6 +16880,7 @@ FUN_020BBFA4: ; 0x020BBFA4 ldmia sp!, {r4,pc} .balign 4 _020BBFE4: .word 0x8000FFFF + arm_func_end FUN_020BBFA4 arm_func_start FUN_020BBFE8 FUN_020BBFE8: ; 0x020BBFE8 @@ -16541,6 +16901,7 @@ FUN_020BBFE8: ; 0x020BBFE8 orr r0, r0, r2 str r0, [r3, #0x4] ldmia sp!, {r4,pc} + arm_func_end FUN_020BBFE8 arm_func_start FUN_020BC02C FUN_020BC02C: ; 0x020BC02C @@ -16571,6 +16932,7 @@ _020BC050: cmp lr, r4 blo _020BC050 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BC02C arm_func_start FUN_020BC094 FUN_020BC094: ; 0x020BC094 @@ -16601,6 +16963,7 @@ _020BC0B8: cmp lr, r4 blo _020BC0B8 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BC094 arm_func_start FUN_020BC0FC FUN_020BC0FC: ; 0x020BC0FC @@ -16622,6 +16985,7 @@ _020BC12C: bx lr .balign 4 _020BC138: .word 0x30585442 + arm_func_end FUN_020BC0FC arm_func_start FUN_020BC13C FUN_020BC13C: @@ -16629,6 +16993,7 @@ FUN_020BC13C: ldr r1, [r0, r1] add r0, r0, r1 bx lr + arm_func_end FUN_020BC13C arm_func_start FUN_020BC14C FUN_020BC14C: @@ -16723,6 +17088,7 @@ _020BC294: mvn r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BC14C arm_func_start FUN_020BC2A0 FUN_020BC2A0: ; 0x020BC2A0 @@ -16824,6 +17190,7 @@ _020BC404: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BC2A0 arm_func_start FUN_020BC410 FUN_020BC410: ; 0x020BC410 @@ -16834,6 +17201,7 @@ FUN_020BC410: ; 0x020BC410 add r0, r0, #0x4 mla r0, r2, r1, r0 bx lr + arm_func_end FUN_020BC410 arm_func_start FUN_020BC42C FUN_020BC42C: ; 0x020BC42C @@ -16874,6 +17242,7 @@ _020BC49C: add r0, r3, r2, lsl #0x2 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BC42C arm_func_start FUN_020BC4A8 FUN_020BC4A8: ; 0x020BC4A8 @@ -16881,6 +17250,7 @@ FUN_020BC4A8: ; 0x020BC4A8 add r0, r0, r2 add r0, r0, r1, lsl #0x4 bx lr + arm_func_end FUN_020BC4A8 arm_func_start FUN_020BC4B8 FUN_020BC4B8: ; 0x020BC4B8 @@ -16888,6 +17258,7 @@ FUN_020BC4B8: ; 0x020BC4B8 add r0, r0, r2 add r0, r0, r1, lsl #0x4 bx lr + arm_func_end FUN_020BC4B8 arm_func_start FUN_020BC4C8 FUN_020BC4C8: ; 0x020BC4C8 @@ -16905,6 +17276,7 @@ FUN_020BC4C8: ; 0x020BC4C8 addne r0, r12, r0 moveq r0, #0x0 bx lr + arm_func_end FUN_020BC4C8 arm_func_start FUN_020BC500 FUN_020BC500: @@ -17012,6 +17384,7 @@ _020BC688: .word UNK_020FFA14 _020BC68C: .word UNK_020FFA14 + 1 _020BC690: .word UNK_020FFA14 + 2 _020BC694: .word UNK_020FFA14 + 3 + arm_func_end FUN_020BC500 arm_func_start FUN_020BC698 FUN_020BC698: ; 0x020BC698 @@ -17230,6 +17603,7 @@ _020BC9C4: .word 0x1FFF0000 _020BC9C8: .word 0x00001FFF _020BC9CC: .word 0x00003FFF _020BC9D0: .word 0x00000FFF + arm_func_end FUN_020BC698 arm_func_start FUN_020BC9D4 FUN_020BC9D4: ; 0x020BC9D4 @@ -17494,6 +17868,7 @@ _020BCD40: ldmia sp!, {r4-r9,pc} .balign 4 _020BCDC0: .word 0x1FFF0000 + arm_func_end FUN_020BC9D4 arm_func_start FUN_020BCDC4 FUN_020BCDC4: ; 0x020BCDC4 @@ -17613,6 +17988,7 @@ _020BCF60: .word 0x1FFF0000 _020BCF64: .word 0x00001FFF _020BCF68: .word 0x00003FFF _020BCF6C: .word 0x00000FFF + arm_func_end FUN_020BCDC4 arm_func_start FUN_020BCF70 FUN_020BCF70: ; 0x020BCF70 @@ -17759,6 +18135,7 @@ _020BD150: ldmia sp!, {r4-r5,pc} .balign 4 _020BD184: .word 0x1FFF0000 + arm_func_end FUN_020BCF70 arm_func_start FUN_020BD188 FUN_020BD188: ; 0x020BD188 @@ -17861,6 +18238,7 @@ _020BD2E8: .word 0x00000FFF _020BD2EC: .word 0x1FFF0000 _020BD2F0: .word 0x00001FFF _020BD2F4: .word 0x00003FFF + arm_func_end FUN_020BD188 arm_func_start FUN_020BD2F8 FUN_020BD2F8: ; 0x020BD2F8 @@ -17967,6 +18345,7 @@ _020BD44C: ldmia sp!, {pc} .balign 4 _020BD46C: .word 0x1FFF0000 + arm_func_end FUN_020BD2F8 arm_func_start FUN_020BD470 FUN_020BD470: ; 0x020BD470 @@ -18253,6 +18632,7 @@ _020BD814: .balign 4 _020BD848: .word 0x00000FFF _020BD84C: .word UNK_021CEF7C + arm_func_end FUN_020BD470 arm_func_start FUN_020BD850 FUN_020BD850: ; 0x020BD850 @@ -18344,6 +18724,7 @@ _020BD994: .word UNK_020FFA14 _020BD998: .word UNK_020FFA14 + 1 _020BD99C: .word UNK_020FFA14 + 2 _020BD9A0: .word UNK_020FFA14 + 3 + arm_func_end FUN_020BD850 arm_func_start FUN_020BD9A4 FUN_020BD9A4: ; 0x020BD9A4 @@ -18374,6 +18755,7 @@ _020BD9F8: ldmia sp!, {r4,pc} .balign 4 _020BDA04: .word UNK_021CEF7C + arm_func_end FUN_020BD9A4 arm_func_start FUN_020BDA08 FUN_020BDA08: ; 0x020BDA08 @@ -18404,6 +18786,7 @@ FUN_020BDA08: ; 0x020BDA08 bx lr .balign 4 _020BDA6C: .word UNK_021CEF7C + arm_func_end FUN_020BDA08 arm_func_start FUN_020BDA70 FUN_020BDA70: ; 0x020BDA70 @@ -18425,6 +18808,7 @@ _020BDAA0: bl FUN_020BD470 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BDA70 arm_func_start FUN_020BDAB4 FUN_020BDAB4: ; 0x020BDAB4 @@ -18465,6 +18849,7 @@ _020BDB08: ldmia sp!, {r4-r5,pc} .balign 4 _020BDB3C: .word UNK_0210659C + arm_func_end FUN_020BDAB4 arm_func_start FUN_020BDB40 FUN_020BDB40: ; 0x020BDB40 @@ -18519,6 +18904,7 @@ FUN_020BDB40: ; 0x020BDB40 orr r0, r1, r0, lsl #0x10 str r0, [r8, #0xc] ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020BDB40 arm_func_start FUN_020BDC0C FUN_020BDC0C: ; 0x020BDC0C @@ -18567,6 +18953,7 @@ _020BDC6C: ldmia sp!, {r4-r9,pc} .balign 4 _020BDCB4: .word UNK_021065A8 + arm_func_end FUN_020BDC0C arm_func_start FUN_020BDCB8 FUN_020BDCB8: ; 0x020BDCB8 @@ -18636,6 +19023,7 @@ _020BDD9C: .balign 4 _020BDDA4: .word 0x0000FFFF _020BDDA8: .word 0x1FFF0000 + arm_func_end FUN_020BDCB8 arm_func_start FUN_020BDDAC FUN_020BDDAC: ; 0x020BDDAC @@ -18744,6 +19132,7 @@ _020BDEE0: _020BDF2C: .word 0x0000FFFF _020BDF30: .word 0x1FFF0000 _020BDF34: .word 0x00007C1F + arm_func_end FUN_020BDDAC arm_func_start FUN_020BDF38 FUN_020BDF38: ; 0x020BDF38 @@ -18766,6 +19155,7 @@ FUN_020BDF38: ; 0x020BDF38 orr r0, r0, #0x8 str r0, [r4, #0x0] ldmia sp!, {r4,pc} + arm_func_end FUN_020BDF38 arm_func_start FUN_020BDF84 FUN_020BDF84: ; 0x020BDF84 @@ -18814,6 +19204,7 @@ _020BDFE4: ldmia sp!, {r4-r9,pc} .balign 4 _020BE02C: .word UNK_021065A0 + arm_func_end FUN_020BDF84 arm_func_start FUN_020BE030 FUN_020BE030: ; 0x020BE030 @@ -18884,6 +19275,7 @@ _020BE120: str r4, [r6, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020BE030 arm_func_start FUN_020BE12C FUN_020BE12C: ; 0x020BE12C @@ -18961,6 +19353,7 @@ _020BE200: bx lr .balign 4 _020BE234: .word 0x0000FFFF + arm_func_end FUN_020BE12C arm_func_start FUN_020BE238 FUN_020BE238: @@ -19034,6 +19427,7 @@ _020BE304: bx lr .balign 4 _020BE330: .word 0x0000FFFF + arm_func_end FUN_020BE238 arm_func_start FUN_020BE334 FUN_020BE334: ; 0x020BE334 @@ -19069,6 +19463,7 @@ FUN_020BE334: ; 0x020BE334 bl FUN_020BE3B4 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BE334 arm_func_start FUN_020BE3B4 FUN_020BE3B4: ; 0x020BE3B4 @@ -19093,6 +19488,7 @@ FUN_020BE3B4: ; 0x020BE3B4 str r0, [r4, #0x14] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BE3B4 arm_func_start FUN_020BE408 FUN_020BE408: ; 0x020BE408 @@ -19157,6 +19553,7 @@ _020BE4E0: .word 0x0000FFFF _020BE4E4: .word 0xC00F0000 _020BE4E8: .word 0x000007FF _020BE4EC: .word 0x003FF800 + arm_func_end FUN_020BE408 arm_func_start FUN_020BE4F0 FUN_020BE4F0: ; 0x020BE4F0 @@ -19206,6 +19603,7 @@ _020BE554: ldmia sp!, {r4-r9,pc} .balign 4 _020BE59C: .word UNK_021065A4 + arm_func_end FUN_020BE4F0 arm_func_start FUN_020BE5A0 FUN_020BE5A0: ; 0x020BE5A0 @@ -19225,6 +19623,7 @@ FUN_020BE5A0: ; 0x020BE5A0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BE5A0 arm_func_start FUN_020BE5E0 FUN_020BE5E0: ; 0x020BE5E0 @@ -19249,6 +19648,7 @@ _020BE608: bx lr .balign 4 _020BE628: .word UNK_02106598 + arm_func_end FUN_020BE5E0 arm_func_start FUN_020BE62C FUN_020BE62C: ; 0x020BE62C @@ -19268,6 +19668,7 @@ _020BE658: orr r1, r1, #0x18 str r1, [r0, #0x0] bx lr + arm_func_end FUN_020BE62C arm_func_start FUN_020BE668 FUN_020BE668: ; 0x020BE668 @@ -19305,6 +19706,7 @@ _020BE6C4: mov r2, #0x3 bl FUN_020BB1C0 ldmia sp!, {r4,pc} + arm_func_end FUN_020BE668 arm_func_start FUN_020BE6E4 FUN_020BE6E4: ; 0x020BE6E4 @@ -19393,6 +19795,7 @@ _020BE804: _020BE820: .word 0x00101610 _020BE824: .word 0x00101810 _020BE828: .word UNK_021067B0 + arm_func_end FUN_020BE6E4 arm_func_start FUN_020BE82C FUN_020BE82C: ; 0x020BE82C @@ -19405,6 +19808,7 @@ FUN_020BE82C: ; 0x020BE82C str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr + arm_func_end FUN_020BE82C arm_func_start FUN_020BE850 FUN_020BE850: ; 0x020BE850 @@ -19425,6 +19829,7 @@ FUN_020BE850: ; 0x020BE850 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr + arm_func_end FUN_020BE850 arm_func_start FUN_020BE894 FUN_020BE894: ; 0x020BE894 @@ -19476,6 +19881,7 @@ FUN_020BE894: ; 0x020BE894 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BE894 arm_func_start FUN_020BE954 FUN_020BE954: ; 0x020BE954 @@ -19537,6 +19943,7 @@ FUN_020BE954: ; 0x020BE954 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BE954 arm_func_start FUN_020BEA3C FUN_020BEA3C: ; 0x020BEA3C @@ -19558,6 +19965,7 @@ FUN_020BEA3C: ; 0x020BEA3C str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr + arm_func_end FUN_020BEA3C arm_func_start FUN_020BEA84 FUN_020BEA84: ; 0x020BEA84 @@ -19592,6 +20000,7 @@ FUN_020BEA84: ; 0x020BEA84 str r1, [r0, #0x34] str r2, [r0, #0x10] ldmia sp!, {r4,pc} + arm_func_end FUN_020BEA84 arm_func_start FUN_020BEB00 FUN_020BEB00: ; 0x020BEB00 @@ -19649,6 +20058,7 @@ FUN_020BEB00: ; 0x020BEB00 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BEB00 arm_func_start FUN_020BEBD8 FUN_020BEBD8: ; 0x020BEBD8 @@ -19721,6 +20131,7 @@ FUN_020BEBD8: ; 0x020BEBD8 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BEBD8 arm_func_start FUN_020BECEC FUN_020BECEC: ; 0x020BECEC @@ -19812,6 +20223,7 @@ _020BEE2C: .word UNK_021CEF7C _020BEE30: .word UNK_021CFD8C _020BEE34: .word UNK_021CFD90 _020BEE38: .word UNK_021CFD94 + arm_func_end FUN_020BECEC arm_func_start FUN_020BEE3C FUN_020BEE3C: ; 0x020BEE3C @@ -19873,6 +20285,7 @@ _020BEEE8: bl FUN_020BB1C0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BEE3C arm_func_start FUN_020BEF10 FUN_020BEF10: ; 0x020BEF10 @@ -19995,6 +20408,7 @@ _020BF0B0: .balign 4 _020BF0CC: .word 0x00101710 _020BF0D0: .word 0x00101910 + arm_func_end FUN_020BEF10 arm_func_start FUN_020BF0D4 FUN_020BF0D4: ; 0x020BF0D4 @@ -20140,6 +20554,7 @@ _020BF2EC: .word UNK_021CFD88 _020BF2F0: .word UNK_021CFD8C _020BF2F4: .word UNK_021CFD90 _020BF2F8: .word UNK_021CFD94 + arm_func_end FUN_020BF0D4 arm_func_start FUN_020BF2FC FUN_020BF2FC: ; 0x020BF2FC @@ -20225,6 +20640,7 @@ _020BF404: bl FUN_020BB1C0 add sp, sp, #0x10 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BF2FC arm_func_start FUN_020BF42C FUN_020BF42C: ; 0x020BF42C @@ -20313,6 +20729,7 @@ _020BF54C: _020BF568: .word 0x00101610 _020BF56C: .word 0x00101810 _020BF570: .word UNK_021067D0 + arm_func_end FUN_020BF42C arm_func_start FUN_020BF574 FUN_020BF574: ; 0x020BF574 @@ -20325,6 +20742,7 @@ FUN_020BF574: ; 0x020BF574 str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr + arm_func_end FUN_020BF574 arm_func_start FUN_020BF598 FUN_020BF598: ; 0x020BF598 @@ -20348,6 +20766,7 @@ FUN_020BF598: ; 0x020BF598 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr + arm_func_end FUN_020BF598 arm_func_start FUN_020BF5E8 FUN_020BF5E8: ; 0x020BF5E8 @@ -20407,6 +20826,7 @@ FUN_020BF5E8: ; 0x020BF5E8 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BF5E8 arm_func_start FUN_020BF6C8 FUN_020BF6C8: ; 0x020BF6C8 @@ -20474,6 +20894,7 @@ FUN_020BF6C8: ; 0x020BF6C8 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BF6C8 arm_func_start FUN_020BF7C8 FUN_020BF7C8: ; 0x020BF7C8 @@ -20495,6 +20916,7 @@ FUN_020BF7C8: ; 0x020BF7C8 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr + arm_func_end FUN_020BF7C8 arm_func_start FUN_020BF810 FUN_020BF810: ; 0x020BF810 @@ -20531,6 +20953,7 @@ FUN_020BF810: ; 0x020BF810 str r1, [r0, #0x34] str r3, [r0, #0x10] ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BF810 arm_func_start FUN_020BF894 FUN_020BF894: ; 0x020BF894 @@ -20595,6 +21018,7 @@ FUN_020BF894: ; 0x020BF894 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BF894 arm_func_start FUN_020BF988 FUN_020BF988: ; 0x020BF988 @@ -20667,6 +21091,7 @@ FUN_020BF988: ; 0x020BF988 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BF988 arm_func_start FUN_020BFA9C FUN_020BFA9C: ; 0x020BFA9C @@ -20772,6 +21197,7 @@ _020BFC00: _020BFC1C: .word 0x00101610 _020BFC20: .word 0x00101810 _020BFC24: .word UNK_021067F0 + arm_func_end FUN_020BFA9C arm_func_start FUN_020BFC28 FUN_020BFC28: ; 0x020BFC28 @@ -20784,6 +21210,7 @@ FUN_020BFC28: ; 0x020BFC28 str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr + arm_func_end FUN_020BFC28 arm_func_start FUN_020BFC4C FUN_020BFC4C: ; 0x020BFC4C @@ -20803,6 +21230,7 @@ FUN_020BFC4C: ; 0x020BFC4C str r1, [r0, #0x34] str r3, [r0, #0x10] bx lr + arm_func_end FUN_020BFC4C arm_func_start FUN_020BFC8C FUN_020BFC8C: ; 0x020BFC8C @@ -20849,6 +21277,7 @@ FUN_020BFC8C: ; 0x020BFC8C str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BFC8C arm_func_start FUN_020BFD38 FUN_020BFD38: ; 0x020BFD38 @@ -20905,6 +21334,7 @@ FUN_020BFD38: ; 0x020BFD38 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BFD38 arm_func_start FUN_020BFE0C FUN_020BFE0C: ; 0x020BFE0C @@ -20931,6 +21361,7 @@ FUN_020BFE0C: ; 0x020BFE0C str lr, [r0, #0x10] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020BFE0C arm_func_start FUN_020BFE68 FUN_020BFE68: ; 0x020BFE68 @@ -20967,6 +21398,7 @@ FUN_020BFE68: ; 0x020BFE68 str r1, [r0, #0x34] str r2, [r0, #0x10] ldmia sp!, {r4,pc} + arm_func_end FUN_020BFE68 arm_func_start FUN_020BFEEC FUN_020BFEEC: ; 0x020BFEEC @@ -21028,6 +21460,7 @@ FUN_020BFEEC: ; 0x020BFEEC str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BFEEC arm_func_start FUN_020BFFD4 FUN_020BFFD4: ; 0x020BFFD4 @@ -21118,3 +21551,4 @@ FUN_020BFFD4: ; 0x020BFFD4 str r0, [r7, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BFFD4 \ No newline at end of file From 335cfe43c3a5bdf40aa815e2af3076302491a0bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 08:22:47 -0400 Subject: [PATCH 098/134] Add arm_func_end to already-split libnnsfnd files --- arm9/asm/NNS_FND_allocator.s | 5 +++++ arm9/asm/NNS_FND_expheap.s | 16 ++++++++++++++++ arm9/asm/NNS_FND_frameheap.s | 11 +++++++++++ arm9/asm/NNS_FND_heapcommon.s | 4 ++++ arm9/asm/NNS_FND_list.s | 9 ++++++++- 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/arm9/asm/NNS_FND_allocator.s b/arm9/asm/NNS_FND_allocator.s index f6e773448..404b19830 100644 --- a/arm9/asm/NNS_FND_allocator.s +++ b/arm9/asm/NNS_FND_allocator.s @@ -22,6 +22,7 @@ FUN_020AE82C: ; 0x020AE82C bx lr .balign 4 _020AE848: .word UNK_020FF7CC + arm_func_end FUN_020AE82C arm_func_start FUN_020AE84C FUN_020AE84C: ; 0x020AE84C @@ -32,6 +33,7 @@ FUN_020AE84C: ; 0x020AE84C blx r2 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AE84C arm_func_start FUN_020AE868 FUN_020AE868: ; 0x020AE868 @@ -42,6 +44,7 @@ FUN_020AE868: ; 0x020AE868 blx r2 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AE868 arm_func_start FUN_020AE884 FUN_020AE884: ; 0x020AE884 @@ -50,6 +53,7 @@ FUN_020AE884: ; 0x020AE884 bx r12 .balign 4 _020AE890: .word FUN_020ADDF0 + arm_func_end FUN_020AE884 arm_func_start FUN_020AE894 FUN_020AE894: ; 0x020AE894 @@ -60,3 +64,4 @@ FUN_020AE894: ; 0x020AE894 bx r12 .balign 4 _020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx + arm_func_end FUN_020AE894 diff --git a/arm9/asm/NNS_FND_expheap.s b/arm9/asm/NNS_FND_expheap.s index c30c6e88f..cb42f116b 100644 --- a/arm9/asm/NNS_FND_expheap.s +++ b/arm9/asm/NNS_FND_expheap.s @@ -10,6 +10,7 @@ FUN_020ADDC0: ; 0x020ADDC0 ldr r0, [r0, #-0xc] bx lr + arm_func_end FUN_020ADDC0 arm_func_start FUN_020ADDC8 FUN_020ADDC8: ; 0x020ADDC8 @@ -24,6 +25,7 @@ _020ADDD8: cmp r2, #0x0 bne _020ADDD8 bx lr + arm_func_end FUN_020ADDC8 arm_func_start FUN_020ADDF0 FUN_020ADDF0: ; 0x020ADDF0 @@ -42,6 +44,7 @@ FUN_020ADDF0: ; 0x020ADDF0 bl FUN_020AE02C add sp, sp, #0xc ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020ADDF0 arm_func_start FUN_020ADE2C FUN_020ADE2C: ; 0x020ADE2C @@ -146,6 +149,7 @@ _020ADF90: ldmia sp!, {r4-r10,pc} .balign 4 _020ADF9C: .word 0x00004652 + arm_func_end FUN_020ADE2C arm_func_start tempName_NNS_FndAllocFromExpHeapEx tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 @@ -165,6 +169,7 @@ _020ADFCC: bl FUN_020AE11C add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end tempName_NNS_FndAllocFromExpHeapEx arm_func_start thunk_FUN_020adc8c thunk_FUN_020adc8c: ; 0x020ADFDC @@ -172,6 +177,7 @@ thunk_FUN_020adc8c: ; 0x020ADFDC bx r12 .balign 4 _020ADFE4: .word FUN_020ADC8C + arm_func_end thunk_FUN_020adc8c arm_func_start tempName_NNS_FndCreateExpHeapEx tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 @@ -194,6 +200,7 @@ _020AE020: bl FUN_020AE420 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end tempName_NNS_FndCreateExpHeapEx arm_func_start FUN_020AE02C FUN_020AE02C: @@ -262,6 +269,7 @@ _020AE0D4: ldmia sp!, {r4-r6,pc} .balign 4 _020AE118: .word 0x00004652 + arm_func_end FUN_020AE02C arm_func_start FUN_020AE11C FUN_020AE11C: ; 0x020AE11C @@ -315,6 +323,7 @@ _020AE1B0: bl FUN_020AE298 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020AE11C arm_func_start FUN_020AE1D8 FUN_020AE1D8: ; 0x020AE1D8 @@ -369,6 +378,7 @@ _020AE270: bl FUN_020AE298 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020AE1D8 arm_func_start FUN_020AE298 FUN_020AE298: ; 0x020AE298 @@ -474,6 +484,7 @@ _020AE378: .balign 4 _020AE418: .word 0x00004652 _020AE41C: .word 0x00005544 + arm_func_end FUN_020AE298 arm_func_start FUN_020AE420 FUN_020AE420: ; 0x020AE420 @@ -510,6 +521,7 @@ FUN_020AE420: ; 0x020AE420 .balign 4 _020AE498: .word 0x45585048 _020AE49C: .word 0x00004652 + arm_func_end FUN_020AE420 arm_func_start FUN_020AE4A0 FUN_020AE4A0: ; 0x020AE4A0 @@ -525,6 +537,7 @@ FUN_020AE4A0: ; 0x020AE4A0 mov r0, r3 str r2, [r3, #0xc] bx lr + arm_func_end FUN_020AE4A0 arm_func_start FUN_020AE4D0 FUN_020AE4D0: ; 0x020AE4D0 @@ -540,6 +553,7 @@ FUN_020AE4D0: ; 0x020AE4D0 streq r1, [r0, #0x4] mov r0, r1 bx lr + arm_func_end FUN_020AE4D0 arm_func_start FUN_020AE500 FUN_020AE500: ; 0x020AE500 @@ -553,6 +567,7 @@ FUN_020AE500: ; 0x020AE500 streq r2, [r0, #0x4] mov r0, r2 bx lr + arm_func_end FUN_020AE500 arm_func_start FUN_020AE528 FUN_020AE528: ; 0x020AE528 @@ -567,3 +582,4 @@ FUN_020AE528: ; 0x020AE528 add r1, r1, r3 str r1, [r0, #0x4] bx lr + arm_func_end FUN_020AE528 diff --git a/arm9/asm/NNS_FND_frameheap.s b/arm9/asm/NNS_FND_frameheap.s index 4dc662d77..078180b57 100644 --- a/arm9/asm/NNS_FND_frameheap.s +++ b/arm9/asm/NNS_FND_frameheap.s @@ -33,6 +33,7 @@ _020AE584: ldr r1, [r3, #0xc] str r1, [r2, #0x8] bx lr + arm_func_end FUN_020AE554 arm_func_start FUN_020AE5B0 FUN_020AE5B0: ; 0x020AE5B0 @@ -56,6 +57,7 @@ FUN_020AE5B0: ; 0x020AE5B0 str r0, [r4, #0x8] mov r0, #0x1 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AE5B0 arm_func_start FUN_020AE600 FUN_020AE600: ; 0x020AE600 @@ -74,6 +76,7 @@ _020AE61C: bl FUN_020AE6C8 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AE600 arm_func_start FUN_020AE638 FUN_020AE638: ; 0x020AE638 @@ -94,6 +97,7 @@ _020AE668: bl FUN_020AE710 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AE638 arm_func_start thunk_FUN_020adc8c_2 thunk_FUN_020adc8c_2: ; 0x020AE678 @@ -101,6 +105,7 @@ thunk_FUN_020adc8c_2: ; 0x020AE678 bx r12 .balign 4 _020AE680: .word FUN_020ADC8C + arm_func_end thunk_FUN_020adc8c_2 arm_func_start FUN_020AE684 FUN_020AE684: ; 0x020AE684 @@ -123,6 +128,7 @@ _020AE6BC: bl FUN_020AE7E0 add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020AE684 arm_func_start FUN_020AE6C8 FUN_020AE6C8: ; 0x020AE6C8 @@ -140,6 +146,7 @@ _020AE6EC: ldr r0, [r0, #0x1c] str r0, [r2, #0x4] bx lr + arm_func_end FUN_020AE6C8 arm_func_start FUN_020AE6F8 FUN_020AE6F8: ; 0x020AE6F8 @@ -149,6 +156,7 @@ FUN_020AE6F8: ; 0x020AE6F8 mov r0, #0x0 str r0, [r2, #0x8] bx lr + arm_func_end FUN_020AE6F8 arm_func_start FUN_020AE710 FUN_020AE710: ; 0x020AE710 @@ -180,6 +188,7 @@ _020AE76C: str r4, [r5, #0x4] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AE710 arm_func_start FUN_020AE77C FUN_020AE77C: @@ -209,6 +218,7 @@ _020AE7D4: mov r0, r5 str r4, [r6, #0x0] ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AE77C arm_func_start FUN_020AE7E0 FUN_020AE7E0: ; 0x020AE7E0 @@ -232,3 +242,4 @@ FUN_020AE7E0: ; 0x020AE7E0 ldmia sp!, {r4-r5,pc} .balign 4 _020AE828: .word 0x46524D48 + arm_func_end FUN_020AE7E0 diff --git a/arm9/asm/NNS_FND_heapcommon.s b/arm9/asm/NNS_FND_heapcommon.s index 196d12b03..0aa405122 100644 --- a/arm9/asm/NNS_FND_heapcommon.s +++ b/arm9/asm/NNS_FND_heapcommon.s @@ -21,6 +21,7 @@ FUN_020ADC8C: ; 0x020ADC8C mov r1, r4 bl FUN_020ADAB0 ldmia sp!, {r4,pc} + arm_func_end FUN_020ADC8C arm_func_start FUN_020ADCA4 FUN_020ADCA4: @@ -61,6 +62,7 @@ _020ADD14: .balign 4 _020ADD28: .word UNK_021CCD38 _020ADD2C: .word UNK_021CCD3C + arm_func_end FUN_020ADCA4 arm_func_start FUN_020ADD30 FUN_020ADD30: ; 0x020ADD30 @@ -75,6 +77,7 @@ FUN_020ADD30: ; 0x020ADD30 ldmia sp!, {r4,pc} .balign 4 _020ADD54: .word UNK_021CCD3C + arm_func_end FUN_020ADD30 arm_func_start FUN_020ADD58 FUN_020ADD58: @@ -107,3 +110,4 @@ _020ADDA4: _020ADDB8: mov r0, #0x0 ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020ADD58 diff --git a/arm9/asm/NNS_FND_list.s b/arm9/asm/NNS_FND_list.s index 9f9ff1e01..b88b21590 100644 --- a/arm9/asm/NNS_FND_list.s +++ b/arm9/asm/NNS_FND_list.s @@ -10,6 +10,7 @@ FUN_020ADA84: ; 0x020ADA84 ldrneh r0, [r0, #0xa] ldrne r0, [r1, r0] bx lr + arm_func_end FUN_020ADA84 arm_func_start FUN_020ADA98 FUN_020ADA98: ; 0x020ADA98 @@ -19,6 +20,7 @@ FUN_020ADA98: ; 0x020ADA98 addne r0, r1, r0 ldrne r0, [r0, #0x4] bx lr + arm_func_end FUN_020ADA98 arm_func_start FUN_020ADAB0 FUN_020ADAB0: ; 0x020ADAB0 @@ -48,6 +50,7 @@ FUN_020ADAB0: ; 0x020ADAB0 strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020ADAB0 arm_func_start FUN_020ADB18 FUN_020ADB18: ; 0x020ADB18 @@ -82,6 +85,7 @@ _020ADB54: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020ADB18 arm_func_start FUN_020ADB8C FUN_020ADB8C: ; 0x020ADB8C @@ -109,6 +113,7 @@ _020ADBAC: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020ADB8C arm_func_start FUN_020ADBE8 FUN_020ADBE8: ; 0x020ADBE8 @@ -137,6 +142,7 @@ _020ADC08: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} + arm_func_end FUN_020ADBE8 arm_func_start FUN_020ADC48 FUN_020ADC48: ; 0x020ADC48 @@ -151,6 +157,7 @@ FUN_020ADC48: ; 0x020ADC48 add r1, r1, #0x1 strh r1, [r0, #0x8] bx lr + arm_func_end FUN_020ADC48 arm_func_start FUN_020ADC74 FUN_020ADC74: ; 0x020ADC74 @@ -160,4 +167,4 @@ FUN_020ADC74: ; 0x020ADC74 strh r2, [r0, #0x8] strh r1, [r0, #0xa] bx lr - + arm_func_end FUN_020ADC74 From d73b12d8fb7b7b386cafe98976373c8b7d50dc3d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 13:28:56 -0400 Subject: [PATCH 099/134] Add missing address comments in unk_020ADA84.s --- arm9/asm/unk_020ADA84.s | 78 ++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s index b4d467ae9..21bde8521 100644 --- a/arm9/asm/unk_020ADA84.s +++ b/arm9/asm/unk_020ADA84.s @@ -906,7 +906,7 @@ _020AEAF0: .word 0x0000FFFF arm_func_end FUN_020AE96C arm_func_start FUN_020AEAF4 -FUN_020AEAF4: +FUN_020AEAF4: ; 0x020AEAF4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldr r0, _020AEB68 ; =UNK_021CCD48 @@ -1015,7 +1015,7 @@ _020AEC5C: .word UNK_021064D0 arm_func_end FUN_020AEC10 arm_func_start FUN_020AEC60 -FUN_020AEC60: +FUN_020AEC60: ; 0x020AEC60 ldr r0, _020AEC78 ; =UNK_021CCD4C mov r2, #0x0 ldr r1, [r0, #0x8] @@ -1249,7 +1249,7 @@ _020AEF38: .word FUN_020AEFD4 arm_func_end FUN_020AEF1C arm_func_start FUN_020AEF3C -FUN_020AEF3C: +FUN_020AEF3C: ; 0x020AEF3C stmdb sp!, {r4,lr} mov r4, r0 bl FUN_020AF2E0 @@ -1712,7 +1712,7 @@ FUN_020AF30C: ; 0x020AF30C arm_func_end FUN_020AF30C arm_func_start FUN_020AF334 -FUN_020AF334: +FUN_020AF334: ; 0x020AF334 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x10 add r3, r2, r3 @@ -1805,7 +1805,7 @@ _020AF418: arm_func_end FUN_020AF334 arm_func_start FUN_020AF488 -FUN_020AF488: +FUN_020AF488: ; 0x020AF488 stmdb sp!, {r4-r10,lr} ldr r4, [r0, #0x0] ldr r9, [sp, #0x20] @@ -1894,7 +1894,7 @@ _020AF5B8: arm_func_end FUN_020AF488 arm_func_start FUN_020AF5C4 -FUN_020AF5C4: +FUN_020AF5C4: ; 0x020AF5C4 stmdb sp!, {lr} sub sp, sp, #0x4 mov r12, #0x0 @@ -2235,7 +2235,7 @@ FUN_020AFA28: ; 0x020AFA28 arm_func_end FUN_020AFA28 arm_func_start FUN_020AFA30 -FUN_020AFA30: +FUN_020AFA30: ; 0x020AFA30 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r0, _020AFA78 ; =UNK_021CCD88 @@ -2880,7 +2880,7 @@ _020B01CC: arm_func_end FUN_020B01B0 arm_func_start FUN_020B01F8 -FUN_020B01F8: +FUN_020B01F8: ; 0x020B01F8 stmdb sp!, {lr} sub sp, sp, #0x4 ldrh r2, [r0, #0xc] @@ -3033,7 +3033,7 @@ _020B0404: .word 0x04000504 arm_func_end FUN_020B0340 arm_func_start FUN_020B0408 -FUN_020B0408: +FUN_020B0408: ; 0x020B0408 ldr r1, [r0, #0x14] cmp r1, #0x0 ldreq r0, [r0, #0x18] @@ -3131,7 +3131,7 @@ FUN_020B04FC: ; 0x020B04FC arm_func_end FUN_020B04FC arm_func_start FUN_020B0518 -FUN_020B0518: +FUN_020B0518: ; 0x020B0518 stmdb sp!, {r4,lr} mov r4, r0 bl FUN_020B06EC @@ -3142,7 +3142,7 @@ FUN_020B0518: arm_func_end FUN_020B0518 arm_func_start FUN_020B0534 -FUN_020B0534: +FUN_020B0534: ; 0x020B0534 stmdb sp!, {r4-r8,lr} mov r8, r0 ldr r0, [r8, #0x8] @@ -3269,7 +3269,7 @@ FUN_020B06E0: ; 0x020B06E0 arm_func_end FUN_020B06E0 arm_func_start FUN_020B06EC -FUN_020B06EC: +FUN_020B06EC: ; 0x020B06EC ldr r3, [r0, #0x18] ldrh r2, [r3, #0x0] cmp r1, r2 @@ -4008,13 +4008,13 @@ FUN_020B10BC: ; 0x020B10BC arm_func_end FUN_020B10BC arm_func_start FUN_020B10C4 -FUN_020B10C4: +FUN_020B10C4: ; 0x020B10C4 str r2, [r0, r1, lsl #0x2] bx lr arm_func_end FUN_020B10C4 arm_func_start FUN_020B10CC -FUN_020B10CC: +FUN_020B10CC: ; 0x020B10CC mov r2, #0x0 mvn r1, #0x0 _020B10D4: @@ -4706,7 +4706,7 @@ _020B19A4: .word 0x04001000 arm_func_end FUN_020B1768 arm_func_start FUN_020B19A8 -FUN_020B19A8: +FUN_020B19A8: ; 0x020B19A8 add r0, r0, r1, lsl #0x2 ldr r1, [r0, #0x8] mvn r0, #0x0 @@ -4744,7 +4744,7 @@ _020B19E4: arm_func_end FUN_020B19DC arm_func_start FUN_020B19FC -FUN_020B19FC: +FUN_020B19FC: ; 0x020B19FC ldr r1, [r0, r1, lsl #0x2] mvn r0, #0x0 cmp r1, r0 @@ -4792,7 +4792,7 @@ FUN_020B1A40: ; 0x020B1A40 arm_func_end FUN_020B1A40 arm_func_start FUN_020B1A68 -FUN_020B1A68: +FUN_020B1A68: ; 0x020B1A68 ldr ip, _020B1A74 ; =FUN_020B1A40 str r1, [r0, #0x0] bx r12 @@ -5757,7 +5757,7 @@ _020B2788: .word FUN_020B5040 arm_func_end thunk_FUN_020b5040 arm_func_start FUN_020B278C -FUN_020B278C: +FUN_020B278C: ; 0x020B278C ldr r0, [r0, #0x78] bx lr arm_func_end FUN_020B278C @@ -6754,7 +6754,7 @@ _020B3550: .word FX_SinCosTable_ arm_func_end FUN_020B3474 arm_func_start FUN_020B3554 -FUN_020B3554: +FUN_020B3554: ; 0x020B3554 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -7513,7 +7513,7 @@ _020B400C: .word UNK_02106578 arm_func_end FUN_020B3EE0 arm_func_start FUN_020B4010 -FUN_020B4010: +FUN_020B4010: ; 0x020B4010 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldr r0, _020B4154 ; =UNK_021CDD70 @@ -8176,7 +8176,7 @@ _020B4944: .word UNK_02106590 arm_func_end FUN_020B46B4 arm_func_start FUN_020B4948 -FUN_020B4948: +FUN_020B4948: ; 0x020B4948 ldr r0, _020B4954 ; =UNK_02106590 ldr r0, [r0, #0x0] bx lr @@ -8185,7 +8185,7 @@ _020B4954: .word UNK_02106590 arm_func_end FUN_020B4948 arm_func_start FUN_020B4958 -FUN_020B4958: +FUN_020B4958: ; 0x020B4958 ldr r1, _020B4964 ; =UNK_02106590 str r0, [r1, #0x0] bx lr @@ -8204,7 +8204,7 @@ _020B4978: .word UNK_021CED10 arm_func_end FUN_020B4968 arm_func_start FUN_020B497C -FUN_020B497C: +FUN_020B497C: ; 0x020B497C ldr r1, _020B4988 ; =UNK_021CED08 str r0, [r1, #0x0] bx lr @@ -8445,7 +8445,7 @@ _020B4CD8: .word UNK_021CED14 arm_func_end FUN_020B4BF4 arm_func_start FUN_020B4CDC -FUN_020B4CDC: +FUN_020B4CDC: ; 0x020B4CDC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldr r1, _020B4D9C ; =UNK_021CED14 @@ -8641,7 +8641,7 @@ FUN_020B4F38: ; 0x020B4F38 arm_func_end FUN_020B4F38 arm_func_start FUN_020B4F74 -FUN_020B4F74: +FUN_020B4F74: ; 0x020B4F74 ldr r0, [r0, #0x24] ands r0, r0, #0x2 movne r0, #0x1 @@ -8650,7 +8650,7 @@ FUN_020B4F74: arm_func_end FUN_020B4F74 arm_func_start FUN_020B4F88 -FUN_020B4F88: +FUN_020B4F88: ; 0x020B4F88 ldr r0, [r0, #0x24] ands r0, r0, #0x1 movne r0, #0x1 @@ -9532,7 +9532,7 @@ _020B5BAC: arm_func_end FUN_020B5B54 arm_func_start FUN_020B5BC8 -FUN_020B5BC8: +FUN_020B5BC8: ; 0x020B5BC8 stmdb sp!, {r4-r10,lr} sub sp, sp, #0x8 mov r8, r0 @@ -11465,7 +11465,7 @@ _020B76AC: .word 0x46494E46 arm_func_end FUN_020B7558 arm_func_start FUN_020B76B0 -FUN_020B76B0: +FUN_020B76B0: ; 0x020B76B0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldrsb r2, [r0, #0x4] @@ -11650,7 +11650,7 @@ _020B7908: arm_func_end FUN_020B7864 arm_func_start FUN_020B7910 -FUN_020B7910: +FUN_020B7910: ; 0x020B7910 stmdb sp!, {r4-r6,lr} ldrh r5, [r1, #0x0] ldr r2, [r2, #0x2c] @@ -11817,7 +11817,7 @@ _020B7B3C: .word 0xC00F0000 arm_func_end FUN_020B7AB8 arm_func_start FUN_020B7B40 -FUN_020B7B40: +FUN_020B7B40: ; 0x020B7B40 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r11, r1 @@ -12083,7 +12083,7 @@ _020B7E74: arm_func_end FUN_020B7E28 arm_func_start FUN_020B7E88 -FUN_020B7E88: +FUN_020B7E88: ; 0x020B7E88 ldr r2, [r0, #0x0] cmp r2, #0x0 moveq r0, #0x0 @@ -12937,7 +12937,7 @@ _020B8948: arm_func_end FUN_020B86B0 arm_func_start FUN_020B8998 -FUN_020B8998: +FUN_020B8998: ; 0x020B8998 cmp r3, #0x0 beq _020B89C8 ldr r1, [r0, #0x0] @@ -15465,7 +15465,7 @@ _020BAD70: .word UNK_021CEF7C arm_func_end FUN_020BAC98 arm_func_start FUN_020BAD74 -FUN_020BAD74: +FUN_020BAD74: ; 0x020BAD74 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -15605,7 +15605,7 @@ _020BAF68: .word UNK_02106620 arm_func_end FUN_020BADE4 arm_func_start FUN_020BAF6C -FUN_020BAF6C: +FUN_020BAF6C: ; 0x020BAF6C stmdb sp!, {r4-r6,lr} mov r5, r0 ldr r6, _020BAFB4 ; =UNK_02106730 @@ -15769,7 +15769,7 @@ _020BB1BC: .word UNK_02106620 arm_func_end FUN_020BAFB8 arm_func_start FUN_020BB1C0 -FUN_020BB1C0: +FUN_020BB1C0: ; 0x020BB1C0 stmdb sp!, {r4-r6,lr} ldr r3, _020BB2A4 ; =UNK_021D1C80 mov r6, r0 @@ -16988,7 +16988,7 @@ _020BC138: .word 0x30585442 arm_func_end FUN_020BC0FC arm_func_start FUN_020BC13C -FUN_020BC13C: +FUN_020BC13C: ; 0x020BC13C ldrh r1, [r0, #0xc] ldr r1, [r0, r1] add r0, r0, r1 @@ -16996,7 +16996,7 @@ FUN_020BC13C: arm_func_end FUN_020BC13C arm_func_start FUN_020BC14C -FUN_020BC14C: +FUN_020BC14C: ; 0x020BC14C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldrb r2, [r0, #0x1] @@ -17279,7 +17279,7 @@ FUN_020BC4C8: ; 0x020BC4C8 arm_func_end FUN_020BC4C8 arm_func_start FUN_020BC500 -FUN_020BC500: +FUN_020BC500: ; 0x020BC500 stmdb sp!, {r4,lr} ands r4, r3, #0x8000 beq _020BC5E0 @@ -19356,7 +19356,7 @@ _020BE234: .word 0x0000FFFF arm_func_end FUN_020BE12C arm_func_start FUN_020BE238 -FUN_020BE238: +FUN_020BE238: ; 0x020BE238 ands r12, r1, #0x20000000 movne r0, r2 bxne lr From 0313fd88500d74f9200bdecc637ba99d8daddc7a Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 23 May 2021 13:39:07 -0500 Subject: [PATCH 100/134] decomp 020337E8 --- arm9/asm/unk_020337E8.s | 74 ----------------------------------------- arm9/src/unk_020337E8.c | 50 ++++++++++++++++++++++++++++ arm9/src/unk_0205FA2C.c | 2 +- include/unk_020337E8.h | 25 ++++++++++++++ 4 files changed, 76 insertions(+), 75 deletions(-) delete mode 100644 arm9/asm/unk_020337E8.s create mode 100644 arm9/src/unk_020337E8.c create mode 100644 include/unk_020337E8.h diff --git a/arm9/asm/unk_020337E8.s b/arm9/asm/unk_020337E8.s deleted file mode 100644 index 99f778f27..000000000 --- a/arm9/asm/unk_020337E8.s +++ /dev/null @@ -1,74 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_020337E8 -FUN_020337E8: ; 0x020337E8 - push {r3-r5, lr} - mov r1, #0x72 - lsl r1, r1, #0x4 - bl AllocFromHeap - add r4, r0, #0x0 - add r0, #0x1f - mov r1, #0x1f - bic r0, r1 - bl DWC_Init - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FreeToHeap - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0203380C -FUN_0203380C: ; 0x0203380C - push {r4, lr} - bl FUN_02028228 - add r4, r0, #0x0 - bl DWC_CheckUserData - cmp r0, #0x0 - bne _0203382A - ldr r1, _0203382C ; =0x4144414A - add r0, r4, #0x0 - bl DWC_CreateUserData - add r0, r4, #0x0 - bl DWC_ClearDirtyFlag -_0203382A: - pop {r4, pc} - .balign 4 -_0203382C: .word 0x4144414A - - thumb_func_start FUN_02033830 -FUN_02033830: ; 0x02033830 - push {r3-r4, lr} - sub sp, #0xc - bl FUN_02028228 - add r4, r0, #0x0 - add r1, sp, #0x0 - bl DWC_CreateExchangeToken - add r0, r4, #0x0 - add r1, sp, #0x0 - bl DWC_GetGsProfileId - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0203384C -FUN_0203384C: ; 0x0203384C - push {r4, lr} - bl FUN_020286EC - bl FUN_02028228 - add r4, r0, #0x0 - bl DWC_CheckHasProfile - cmp r0, #0x0 - beq _0203386E - add r0, r4, #0x0 - bl DWC_CheckValidConsole - cmp r0, #0x0 - beq _0203386E - mov r0, #0x1 - pop {r4, pc} -_0203386E: - mov r0, #0x0 - pop {r4, pc} - .balign 4 diff --git a/arm9/src/unk_020337E8.c b/arm9/src/unk_020337E8.c new file mode 100644 index 000000000..2f3c7c8f9 --- /dev/null +++ b/arm9/src/unk_020337E8.c @@ -0,0 +1,50 @@ +#include "unk_020337E8.h" +#include "heap.h" + +extern struct DWC_Struct *FUN_020286EC(struct SaveBlock2 *sav2); +extern struct DWC_Struct *FUN_02028228(struct DWC_Struct *); + +// DWC_init +extern int DWC_Init(int); + +// DWC_account +extern void DWC_CreateExchangeToken(struct DWC_Struct *, struct DWC_token *); +extern void DWC_CreateUserData(struct DWC_Struct *, int); +extern void DWC_ClearDirtyFlag(struct DWC_Struct *); +extern BOOL DWC_CheckHasProfile(struct DWC_Struct *); +extern BOOL DWC_CheckValidConsole(struct DWC_Struct *); +extern BOOL DWC_CheckUserData(struct DWC_Struct *); +extern int DWC_GetGsProfileId(struct DWC_Struct *, struct DWC_token *); + +THUMB_FUNC int FUN_020337E8(u32 heap_id) +{ + u32 ret = (u32)AllocFromHeap(heap_id, 0x720); + int ret1 = DWC_Init((ret + 0x1F) & ~0x1F); + FreeToHeap((void*)ret); + return ret1; +} + +THUMB_FUNC void FUN_0203380C(struct DWC_Struct *dwc) +{ + struct DWC_Struct * dwc1 = FUN_02028228(dwc); + if(!DWC_CheckUserData(dwc1)) + { + DWC_CreateUserData(dwc1, 0x4144414A); + DWC_ClearDirtyFlag(dwc1); + } +} + +THUMB_FUNC int FUN_02033830(struct DWC_Struct *dwc) +{ + struct DWC_token token; + + struct DWC_Struct * dwc1 = FUN_02028228(dwc); + DWC_CreateExchangeToken(dwc1, &token); + return DWC_GetGsProfileId(dwc1, &token); +} + +THUMB_FUNC BOOL FUN_0203384C(struct SaveBlock2 *sav2) +{ + struct DWC_Struct * dwc = FUN_02028228(FUN_020286EC(sav2)); + return (DWC_CheckHasProfile(dwc) && DWC_CheckValidConsole(dwc)); +} diff --git a/arm9/src/unk_0205FA2C.c b/arm9/src/unk_0205FA2C.c index 9aa4460f8..cabd756e8 100644 --- a/arm9/src/unk_0205FA2C.c +++ b/arm9/src/unk_0205FA2C.c @@ -1,11 +1,11 @@ #include "unk_0205FA2C.h" +#include "unk_020337E8.h" extern void *UNK_020F96DC; extern void *UNK_020FA6E8; extern u32 FUN_02079C70(struct SaveBlock2 *sav2); extern void FUN_0207B000(struct UnkPlayerStruct2_0205FA2C *ptr, const u8 param1[12]); extern void FUN_0207C2A4(struct UnkPlayerStruct2_0205FA2C *ptr, struct PlayerData *player_data); -extern u32 FUN_0203384C(struct SaveBlock2 *sav2); extern u32 *FUN_02038790(struct UnkSavStruct80 *param0, u16 param1, u16 param2); extern u16 *GetVarPointer(struct UnkSavStruct80 *arg, u16); extern u16 MOD06_02244660(struct UnkSavStruct80 *param0, u8 *param1); diff --git a/include/unk_020337E8.h b/include/unk_020337E8.h new file mode 100644 index 000000000..0a1addf90 --- /dev/null +++ b/include/unk_020337E8.h @@ -0,0 +1,25 @@ +#ifndef POKEDIAMOND_UNK_020337E8_H +#define POKEDIAMOND_UNK_020337E8_H + +#include "global.h" +#include "save_block_2.h" + +// Dummy struct until DWC_account +struct DWC_Struct +{ + int unk0; +}; + +struct DWC_token +{ + // size: 0xC + u8 fill0[0xC]; +}; + +int FUN_020337E8(u32 heap_id); +void FUN_0203380C(struct DWC_Struct *); +int FUN_02033830(struct DWC_Struct *); +BOOL FUN_0203384C(struct SaveBlock2 *); + + +#endif // POKEDIAMOND_UNK_020337E8_H From 5bc62e95bf1ea5d2416118d688b1e938f978d497 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 14:50:49 -0400 Subject: [PATCH 101/134] Split libnns --- arm9/arm9.lsf | 71 +- arm9/asm/NNS_G2D_g2d_animation.s | 348 + arm9/asm/NNS_G2D_g2d_cellanimati.s | 425 + arm9/asm/NNS_G2D_g2d_celltransfe.s | 298 + arm9/asm/NNS_G2D_g2d_charcanvas.s | 1379 ++ arm9/asm/NNS_G2D_g2d_font.s | 292 + arm9/asm/NNS_G2D_g2d_image.s | 797 + arm9/asm/NNS_G2D_g2d_load.s | 58 + arm9/asm/NNS_G2D_g2d_multicellan.s | 498 + arm9/asm/NNS_G2D_g2d_nan_load.s | 161 + arm9/asm/NNS_G2D_g2d_ncg_load.s | 71 + arm9/asm/NNS_G2D_g2d_ncl_load.s | 71 + arm9/asm/NNS_G2D_g2d_nft_load.s | 183 + arm9/asm/NNS_G2D_g2d_nmc_load.s | 88 + arm9/asm/NNS_G2D_g2d_nob_load.s | 118 + arm9/asm/NNS_G2D_g2d_node.s | 20 + arm9/asm/NNS_G2D_g2d_nsc_load.s | 23 + arm9/asm/NNS_G2D_g2d_oam.s | 724 + arm9/asm/NNS_G2D_g2d_oamsoftware.s | 436 + arm9/asm/NNS_G2D_g2d_palettetabl.s | 13 + arm9/asm/NNS_G2D_g2d_renderer.s | 2043 +++ arm9/asm/NNS_G2D_g2d_renderercor.s | 1117 ++ arm9/asm/NNS_G2D_g2d_softsprite.s | 133 + arm9/asm/NNS_G2D_g2d_srtcontrol.s | 68 + arm9/asm/NNS_G2D_g2d_textcanvas.s | 226 + arm9/asm/NNS_G2D_g2di_bitreader.s | 37 + arm9/asm/NNS_G2D_g2di_mtx32.s | 81 + arm9/asm/NNS_G2D_g2di_splitchar.s | 15 + arm9/asm/NNS_G3D_1mat1shp.s | 145 + arm9/asm/NNS_G3D_3dsmax.s | 479 + arm9/asm/NNS_G3D_anm.s | 371 + arm9/asm/NNS_G3D_basic.s | 65 + arm9/asm/NNS_G3D_cgtool.s | 27 + arm9/asm/NNS_G3D_gecom.s | 206 + arm9/asm/NNS_G3D_glbstate.s | 436 + arm9/asm/NNS_G3D_kernel.s | 885 ++ arm9/asm/NNS_G3D_maya.s | 609 + arm9/asm/NNS_G3D_mem.s | 28 + arm9/asm/NNS_G3D_model.s | 687 + arm9/asm/NNS_G3D_nsbca.s | 1606 ++ arm9/asm/NNS_G3D_nsbma.s | 292 + arm9/asm/NNS_G3D_nsbta.s | 305 + arm9/asm/NNS_G3D_nsbtp.s | 185 + arm9/asm/NNS_G3D_nsbva.s | 52 + arm9/asm/NNS_G3D_res_struct_acce.s | 327 + arm9/asm/NNS_G3D_sbc.s | 2861 ++++ arm9/asm/NNS_G3D_si3d.s | 363 + arm9/asm/NNS_G3D_util.s | 354 + arm9/asm/NNS_G3D_xsi.s | 487 + arm9/asm/NNS_GFD_gfd_frameplttvr.s | 173 + arm9/asm/NNS_GFD_gfd_frametexvra.s | 344 + arm9/asm/NNS_GFD_gfd_linkedlistp.s | 165 + arm9/asm/NNS_GFD_gfd_linkedlistt.s | 302 + arm9/asm/NNS_GFD_gfd_plttvramman.s | 31 + arm9/asm/NNS_GFD_gfd_texvramman.s | 31 + arm9/asm/NNS_GFD_gfd_vramtransfe.s | 643 + arm9/asm/NNS_GFD_gfdi_linkedlist.s | 268 + arm9/asm/NNS_SND_capture.s | 699 + arm9/asm/NNS_SND_fader.s | 68 + arm9/asm/NNS_SND_heap.s | 293 + arm9/asm/NNS_SND_main.s | 136 + arm9/asm/NNS_SND_player.s | 940 ++ arm9/asm/NNS_SND_resource_mgr.s | 140 + arm9/asm/NNS_SND_seqdata.s | 25 + arm9/asm/NNS_SND_sndarc.s | 546 + arm9/asm/NNS_SND_sndarc_loader.s | 898 ++ arm9/asm/NNS_SND_sndarc_player.s | 268 + arm9/asm/NNS_SND_sndarc_stream.s | 280 + arm9/asm/NNS_SND_stream.s | 474 + arm9/asm/NNS_SND_waveout.s | 250 + arm9/asm/sndlib.s | 4758 ------ arm9/asm/unk_020ADA84.s | 21554 --------------------------- arm9/global.inc | 157 + 73 files changed, 27693 insertions(+), 26314 deletions(-) create mode 100644 arm9/asm/NNS_G2D_g2d_animation.s create mode 100644 arm9/asm/NNS_G2D_g2d_cellanimati.s create mode 100644 arm9/asm/NNS_G2D_g2d_celltransfe.s create mode 100644 arm9/asm/NNS_G2D_g2d_charcanvas.s create mode 100644 arm9/asm/NNS_G2D_g2d_font.s create mode 100644 arm9/asm/NNS_G2D_g2d_image.s create mode 100644 arm9/asm/NNS_G2D_g2d_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_multicellan.s create mode 100644 arm9/asm/NNS_G2D_g2d_nan_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_ncg_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_ncl_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_nft_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_nmc_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_nob_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_node.s create mode 100644 arm9/asm/NNS_G2D_g2d_nsc_load.s create mode 100644 arm9/asm/NNS_G2D_g2d_oam.s create mode 100644 arm9/asm/NNS_G2D_g2d_oamsoftware.s create mode 100644 arm9/asm/NNS_G2D_g2d_palettetabl.s create mode 100644 arm9/asm/NNS_G2D_g2d_renderer.s create mode 100644 arm9/asm/NNS_G2D_g2d_renderercor.s create mode 100644 arm9/asm/NNS_G2D_g2d_softsprite.s create mode 100644 arm9/asm/NNS_G2D_g2d_srtcontrol.s create mode 100644 arm9/asm/NNS_G2D_g2d_textcanvas.s create mode 100644 arm9/asm/NNS_G2D_g2di_bitreader.s create mode 100644 arm9/asm/NNS_G2D_g2di_mtx32.s create mode 100644 arm9/asm/NNS_G2D_g2di_splitchar.s create mode 100644 arm9/asm/NNS_G3D_1mat1shp.s create mode 100644 arm9/asm/NNS_G3D_3dsmax.s create mode 100644 arm9/asm/NNS_G3D_anm.s create mode 100644 arm9/asm/NNS_G3D_basic.s create mode 100644 arm9/asm/NNS_G3D_cgtool.s create mode 100644 arm9/asm/NNS_G3D_gecom.s create mode 100644 arm9/asm/NNS_G3D_glbstate.s create mode 100644 arm9/asm/NNS_G3D_kernel.s create mode 100644 arm9/asm/NNS_G3D_maya.s create mode 100644 arm9/asm/NNS_G3D_mem.s create mode 100644 arm9/asm/NNS_G3D_model.s create mode 100644 arm9/asm/NNS_G3D_nsbca.s create mode 100644 arm9/asm/NNS_G3D_nsbma.s create mode 100644 arm9/asm/NNS_G3D_nsbta.s create mode 100644 arm9/asm/NNS_G3D_nsbtp.s create mode 100644 arm9/asm/NNS_G3D_nsbva.s create mode 100644 arm9/asm/NNS_G3D_res_struct_acce.s create mode 100644 arm9/asm/NNS_G3D_sbc.s create mode 100644 arm9/asm/NNS_G3D_si3d.s create mode 100644 arm9/asm/NNS_G3D_util.s create mode 100644 arm9/asm/NNS_G3D_xsi.s create mode 100644 arm9/asm/NNS_GFD_gfd_frameplttvr.s create mode 100644 arm9/asm/NNS_GFD_gfd_frametexvra.s create mode 100644 arm9/asm/NNS_GFD_gfd_linkedlistp.s create mode 100644 arm9/asm/NNS_GFD_gfd_linkedlistt.s create mode 100644 arm9/asm/NNS_GFD_gfd_plttvramman.s create mode 100644 arm9/asm/NNS_GFD_gfd_texvramman.s create mode 100644 arm9/asm/NNS_GFD_gfd_vramtransfe.s create mode 100644 arm9/asm/NNS_GFD_gfdi_linkedlist.s create mode 100644 arm9/asm/NNS_SND_capture.s create mode 100644 arm9/asm/NNS_SND_fader.s create mode 100644 arm9/asm/NNS_SND_heap.s create mode 100644 arm9/asm/NNS_SND_main.s create mode 100644 arm9/asm/NNS_SND_player.s create mode 100644 arm9/asm/NNS_SND_resource_mgr.s create mode 100644 arm9/asm/NNS_SND_seqdata.s create mode 100644 arm9/asm/NNS_SND_sndarc.s create mode 100644 arm9/asm/NNS_SND_sndarc_loader.s create mode 100644 arm9/asm/NNS_SND_sndarc_player.s create mode 100644 arm9/asm/NNS_SND_sndarc_stream.s create mode 100644 arm9/asm/NNS_SND_stream.s create mode 100644 arm9/asm/NNS_SND_waveout.s delete mode 100644 arm9/asm/sndlib.s delete mode 100644 arm9/asm/unk_020ADA84.s diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 581d58e7b..5d1426c31 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -362,8 +362,75 @@ Static arm9 Object NNS_FND_expheap.o Object NNS_FND_frameheap.o Object NNS_FND_allocator.o - Object unk_020ADA84.o - Object sndlib.o + Object NNS_GFD_gfd_texvramman.o + Object NNS_GFD_gfd_plttvramman.o + Object NNS_GFD_gfd_frametexvra.o + Object NNS_GFD_gfd_frameplttvr.o + Object NNS_GFD_gfd_vramtransfe.o + Object NNS_GFD_gfdi_linkedlist.o + Object NNS_GFD_gfd_linkedlistt.o + Object NNS_GFD_gfd_linkedlistp.o + Object NNS_G2D_g2d_nan_load.o + Object NNS_G2D_g2d_nob_load.o + Object NNS_G2D_g2d_nmc_load.o + Object NNS_G2D_g2d_ncg_load.o + Object NNS_G2D_g2d_ncl_load.o + Object NNS_G2D_g2d_nsc_load.o + Object NNS_G2D_g2d_load.o + Object NNS_G2D_g2d_softsprite.o + Object NNS_G2D_g2d_animation.o + Object NNS_G2D_g2d_oam.o + Object NNS_G2D_g2d_palettetabl.o + Object NNS_G2D_g2d_image.o + Object NNS_G2D_g2d_srtcontrol.o + Object NNS_G2D_g2d_node.o + Object NNS_G2D_g2d_cellanimati.o + Object NNS_G2D_g2d_multicellan.o + Object NNS_G2D_g2d_renderer.o + Object NNS_G2D_g2di_mtx32.o + Object NNS_G2D_g2d_celltransfe.o + Object NNS_G2D_g2d_oamsoftware.o + Object NNS_G2D_g2d_renderercor.o + Object NNS_G2D_g2d_font.o + Object NNS_G2D_g2d_charcanvas.o + Object NNS_G2D_g2d_textcanvas.o + Object NNS_G2D_g2d_nft_load.o + Object NNS_G2D_g2di_bitreader.o + Object NNS_G2D_g2di_splitchar.o + Object NNS_G3D_kernel.o + Object NNS_G3D_glbstate.o + Object NNS_G3D_anm.o + Object NNS_G3D_cgtool.o + Object NNS_G3D_sbc.o + Object NNS_G3D_1mat1shp.o + Object NNS_G3D_gecom.o + Object NNS_G3D_util.o + Object NNS_G3D_mem.o + Object NNS_G3D_model.o + Object NNS_G3D_res_struct_acce.o + Object NNS_G3D_nsbca.o + Object NNS_G3D_nsbma.o + Object NNS_G3D_nsbta.o + Object NNS_G3D_nsbtp.o + Object NNS_G3D_nsbva.o + Object NNS_G3D_basic.o + Object NNS_G3D_maya.o + Object NNS_G3D_si3d.o + Object NNS_G3D_3dsmax.o + Object NNS_G3D_xsi.o + Object NNS_SND_main.o + Object NNS_SND_resource_mgr.o + Object NNS_SND_waveout.o + Object NNS_SND_player.o + Object NNS_SND_stream.o + Object NNS_SND_capture.o + Object NNS_SND_sndarc.o + Object NNS_SND_heap.o + Object NNS_SND_sndarc_loader.o + Object NNS_SND_sndarc_player.o + Object NNS_SND_sndarc_stream.o + Object NNS_SND_seqdata.o + Object NNS_SND_fader.o ### Nitro SDK ### Object FX_mtx22.o Object FX_mtx33.o diff --git a/arm9/asm/NNS_G2D_g2d_animation.s b/arm9/asm/NNS_G2D_g2d_animation.s new file mode 100644 index 000000000..60fcde4c9 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_animation.s @@ -0,0 +1,348 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B0408 +FUN_020B0408: ; 0x020B0408 + ldr r1, [r0, #0x14] + cmp r1, #0x0 + ldreq r0, [r0, #0x18] + ldreq r1, [r0, #0x8] + cmp r1, #0x2 + beq _020B0428 + cmp r1, #0x4 + bne _020B0430 +_020B0428: + mov r0, #0x1 + bx lr +_020B0430: + mov r0, #0x0 + bx lr + arm_func_end FUN_020B0408 + + ; NNS_G2dBindAnimCtrl + arm_func_start FUN_020B0438 +FUN_020B0438: ; 0x020B0438 + ldr ip, _020B0444 ; =FUN_020B0448 + str r1, [r0, #0x18] + bx r12 + .balign 4 +_020B0444: .word FUN_020B0448 + arm_func_end FUN_020B0438 + + ; NNS_G2dResetAnimCtrlState + arm_func_start FUN_020B0448 +FUN_020B0448: ; 0x020B0448 + ldr r1, [r0, #0x10] + cmp r1, #0x0 + movgt r2, #0x1 + ldr r1, [r0, #0x4] + movle r2, #0x0 + eors r1, r2, r1 + beq _020B047C + ldr r2, [r0, #0x18] + ldrh r1, [r2, #0x2] + ldr r2, [r2, #0xc] + add r1, r2, r1, lsl #0x3 + str r1, [r0, #0x0] + b _020B0494 +_020B047C: + ldr r2, [r0, #0x18] + ldrh r1, [r2, #0x0] + ldr r2, [r2, #0xc] + add r1, r2, r1, lsl #0x3 + sub r1, r1, #0x8 + str r1, [r0, #0x0] +_020B0494: + ldr ip, _020B04A4 ; =FUN_020B0534 + mov r1, #0x0 + str r1, [r0, #0xc] + bx r12 + .balign 4 +_020B04A4: .word FUN_020B0534 + arm_func_end FUN_020B0448 + + ; _end + arm_func_start FUN_020B04A8 +FUN_020B04A8: ; 0x020B04A8 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] + str r1, [r0, #0x8] + strh r1, [r0, #0xc] + bx lr + arm_func_end FUN_020B04A8 + + ; _end + arm_func_start FUN_020B04C0 +FUN_020B04C0: ; 0x020B04C0 + stmdb sp!, {r4,lr} + mov r4, r0 + add r0, r4, #0x1c + bl FUN_020B04A8 + mov r1, #0x0 + str r1, [r4, #0x0] + str r1, [r4, #0x4] + mov r0, #0x1 + str r0, [r4, #0x8] + str r1, [r4, #0xc] + mov r0, #0x1000 + str r0, [r4, #0x10] + str r1, [r4, #0x14] + str r1, [r4, #0x18] + ldmia sp!, {r4,pc} + arm_func_end FUN_020B04C0 + + ; _end + arm_func_start FUN_020B04FC +FUN_020B04FC: ; 0x020B04FC + ldr r1, [r0, #0x18] + ldr r2, [r0, #0x0] + ldr r0, [r1, #0xc] + sub r0, r2, r0 + mov r0, r0, lsl #0xd + mov r0, r0, lsr #0x10 + bx lr + arm_func_end FUN_020B04FC + + ; _end + arm_func_start FUN_020B0518 +FUN_020B0518: ; 0x020B0518 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020B06EC + cmp r0, #0x0 + movne r1, #0x0 + strne r1, [r4, #0xc] + ldmia sp!, {r4,pc} + arm_func_end FUN_020B0518 + + ; _end + arm_func_start FUN_020B0534 +FUN_020B0534: ; 0x020B0534 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r0, [r8, #0x8] + mov r7, #0x0 + cmp r0, #0x1 + movne r0, r7 + ldmneia sp!, {r4-r8,pc} + ldr r2, [r8, #0x10] + mov r0, #0x800 + smull r3, r1, r2, r1 + adds r0, r3, r0 + adc r1, r1, r7 + mov r0, r0, lsr #0xc + orr r0, r0, r1, lsl #0x14 + bl abs + ldr r1, [r8, #0xc] + add r6, r8, #0xc + add r0, r1, r0 + str r0, [r8, #0xc] + mov r4, r7 + mov r5, #0x1 + b _020B06A8 +_020B058C: + ldr r0, [r8, #0x0] + ldr r1, [r6, #0x0] + ldrh r0, [r0, #0x4] + mov r7, r5 + sub r0, r1, r0, lsl #0xc + str r0, [r6, #0x0] + ldr r0, [r8, #0x10] + cmp r0, #0x0 + movgt r1, r5 + ldr r0, [r8, #0x4] + movle r1, r4 + eors r0, r1, r0 + ldrne r0, [r8, #0x0] + addne r0, r0, #0x8 + strne r0, [r8, #0x0] + ldreq r0, [r8, #0x0] + subeq r0, r0, #0x8 + streq r0, [r8, #0x0] + ldr r1, [r8, #0x10] + ldr r0, [r8, #0x0] + cmp r1, #0x0 + movgt r2, r5 + ldr r1, [r8, #0x4] + movle r2, r4 + eors r1, r2, r1 + beq _020B0614 + ldr r2, [r8, #0x18] + ldrh r1, [r2, #0x0] + ldr r2, [r2, #0xc] + add r1, r2, r1, lsl #0x3 + cmp r0, r1 + movcs r0, r5 + movcc r0, r4 + b _020B0634 +_020B0614: + ldr r2, [r8, #0x18] + ldrh r1, [r2, #0x2] + ldr r2, [r2, #0xc] + add r1, r2, r1, lsl #0x3 + sub r1, r1, #0x8 + cmp r0, r1 + movls r0, r5 + movhi r0, r4 +_020B0634: + cmp r0, #0x0 + beq _020B0644 + mov r0, r8 + bl FUN_020B0710 +_020B0644: + ldr r0, [r8, #0x1c] + cmp r0, #0x0 + beq _020B06A8 + ldr r0, [r8, #0x18] + ldr r2, [r8, #0x1c] + ldr r1, [r8, #0x0] + ldr r0, [r0, #0xc] + cmp r2, #0x2 + sub r0, r1, r0 + mov r0, r0, lsl #0xd + mov r1, r0, lsr #0x10 + beq _020B0680 + cmp r2, #0x3 + beq _020B069C + b _020B06A8 +_020B0680: + ldrh r0, [r8, #0x28] + cmp r1, r0 + bne _020B06A8 + ldr r0, [r8, #0x20] + ldr r2, [r8, #0x24] + blx r2 + b _020B06A8 +_020B069C: + ldr r0, [r8, #0x20] + ldr r2, [r8, #0x24] + blx r2 +_020B06A8: + ldr r0, [r8, #0x8] + cmp r0, #0x0 + beq _020B06CC + ldr r0, [r8, #0x0] + ldr r1, [r8, #0xc] + ldrh r0, [r0, #0x4] + cmp r1, r0, lsl #0xc + movge r0, r5 + bge _020B06D0 +_020B06CC: + mov r0, r4 +_020B06D0: + cmp r0, #0x0 + bne _020B058C + mov r0, r7 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B0534 + + ; _end + arm_func_start FUN_020B06E0 +FUN_020B06E0: ; 0x020B06E0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + bx lr + arm_func_end FUN_020B06E0 + + ; _end + arm_func_start FUN_020B06EC +FUN_020B06EC: ; 0x020B06EC + ldr r3, [r0, #0x18] + ldrh r2, [r3, #0x0] + cmp r1, r2 + ldrcc r2, [r3, #0xc] + addcc r1, r2, r1, lsl #0x3 + strcc r1, [r0, #0x0] + movcc r0, #0x1 + movcs r0, #0x0 + bx lr + arm_func_end FUN_020B06EC + + ; _end + arm_func_start FUN_020B0710 +FUN_020B0710: ; 0x020B0710 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + ldreq r0, [r4, #0x18] + ldreq r0, [r0, #0x8] + cmp r0, #0x3 + beq _020B0738 + cmp r0, #0x4 + bne _020B07B4 +_020B0738: + ldr r0, [r4, #0x4] + eor r0, r0, #0x1 + str r0, [r4, #0x4] + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x0] + ldrh r0, [r1, #0x2] + ldr r1, [r1, #0xc] + add r0, r1, r0, lsl #0x3 + sub r0, r0, #0x8 + cmp r2, r0 + bhi _020B0800 + ldr r0, [r4, #0x1c] + cmp r0, #0x1 + bne _020B0780 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x24] + blx r2 +_020B0780: + ldr r0, [r4, #0x14] + cmp r0, #0x0 + ldreq r0, [r4, #0x18] + ldreq r0, [r0, #0x8] + cmp r0, #0x2 + beq _020B07A8 + cmp r0, #0x4 + movne r0, #0x0 + strne r0, [r4, #0x8] + bne _020B0800 +_020B07A8: + mov r0, r4 + bl FUN_020B0448 + b _020B0800 +_020B07B4: + ldr r0, [r4, #0x1c] + cmp r0, #0x1 + bne _020B07D0 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x24] + blx r2 +_020B07D0: + ldr r0, [r4, #0x14] + cmp r0, #0x0 + ldreq r0, [r4, #0x18] + ldreq r0, [r0, #0x8] + cmp r0, #0x2 + beq _020B07F8 + cmp r0, #0x4 + movne r0, #0x0 + strne r0, [r4, #0x8] + bne _020B0800 +_020B07F8: + mov r0, r4 + bl FUN_020B0448 +_020B0800: + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x0] + ldrh r0, [r1, #0x0] + ldr r1, [r1, #0xc] + add r0, r1, r0, lsl #0x3 + sub r0, r0, #0x8 + cmp r2, r0 + strhi r0, [r4, #0x0] + ldmhiia sp!, {r4,pc} + cmp r2, r1 + strcc r1, [r4, #0x0] + ldmia sp!, {r4,pc} + arm_func_end FUN_020B0710 + diff --git a/arm9/asm/NNS_G2D_g2d_cellanimati.s b/arm9/asm/NNS_G2D_g2d_cellanimati.s new file mode 100644 index 000000000..91d32786a --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_cellanimati.s @@ -0,0 +1,425 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G2dMakeCellToOams + arm_func_start FUN_020B1AF8 +FUN_020B1AF8: ; 0x020B1AF8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + ldrh r5, [r2, #0x0] + ldr r4, [sp, #0x60] + ldr r10, [sp, #0x58] + str r4, [sp, #0x60] + cmp r1, r5 + movcs r1, r5 + mov r4, #0x0 + cmp r1, #0x0 + str r4, [sp, #0x0] + bls _020B1E7C + ldrh r4, [sp, #0x5c] + mov r4, r4, lsl #0x19 + str r4, [sp, #0x4] + ldr r4, [sp, #0x0] + str r4, [sp, #0x14] + mov r4, #0x100 + str r4, [sp, #0xc] + mov r4, #0x300 + str r4, [sp, #0x8] + mov r4, #0x1 + str r4, [sp, #0x10] +_020B1B54: + ldr r5, [sp, #0x0] + mov r6, #0x6 + mul r6, r5, r6 + ldr r8, [r2, #0x4] + ldr r4, [sp, #0x0] + add r7, r0, r5, lsl #0x3 + ldrh r5, [r8, r6] + mov r4, r4, lsl #0x3 + add r9, r8, r6 + strh r5, [r0, r4] + ldrh r4, [r9, #0x2] + cmp r3, #0x0 + strh r4, [r7, #0x2] + ldrh r4, [r9, #0x4] + strh r4, [r7, #0x4] + bne _020B1B9C + cmp r10, #0x0 + beq _020B1E60 +_020B1B9C: + ldr r5, [r7, #0x0] + ldr r4, _020B1E88 ; =0x01FF0000 + and r4, r5, r4 + mov r4, r4, lsr #0x10 + mov r4, r4, lsl #0x10 + mov r4, r4, asr #0x10 + cmp r4, #0xff + orrgt r4, r4, #0xff00 + movgt r4, r4, lsl #0x10 + movgt r4, r4, asr #0x10 + mov r4, r4, lsl #0xc + str r4, [sp, #0x20] + ldr r4, [r7, #0x0] + and r4, r4, #0xff + mov r4, r4, lsl #0x10 + mov r4, r4, asr #0x10 + cmp r4, #0x7f + orrgt r4, r4, #0xff00 + movgt r4, r4, lsl #0x10 + movgt r4, r4, asr #0x10 + mov r4, r4, lsl #0xc + str r4, [sp, #0x24] + cmp r3, #0x0 + beq _020B1E00 + ldr r5, [r7, #0x0] + and r6, r5, #0x300 + cmp r6, #0x100 + beq _020B1C1C + cmp r6, #0x300 + beq _020B1C1C + and r4, r5, #0x30000000 + orr r6, r6, r4 +_020B1C1C: + cmp r6, #0x300 + bne _020B1C70 + ldr r4, _020B1E8C ; =0xC000C000 + ldr r8, _020B1E90 ; =UNK_020FF8AC + and r5, r5, r4 + and r4, r5, #0xc000 + mov r6, r4, asr #0xe + and r4, r5, #0xc0000000 + mov r4, r4, lsr #0x1e + mov r4, r4, lsl #0x1 + add r8, r8, r6, lsl #0x3 + ldrh r9, [r4, r8] + ldr r8, _020B1E94 ; =UNK_020FF894 + ldr r5, [sp, #0x20] + add r6, r8, r6, lsl #0x3 + add r5, r5, r9, lsl #0xb + str r5, [sp, #0x20] + ldrh r4, [r4, r6] + ldr r5, [sp, #0x24] + add r4, r5, r4, lsl #0xb + str r4, [sp, #0x24] +_020B1C70: + ldr r4, [sp, #0x60] + ldr r5, [r3, #0x8] + cmp r4, #0x0 + ldrne r8, [sp, #0x8] + add r4, sp, #0x20 + ldreq r8, [sp, #0xc] + mov r6, r4 + cmp r8, #0x300 + ldreq r9, [sp, #0x10] + mov r12, #0x1000 + ldrne r9, [sp, #0x14] + cmp r4, r4 + ldr r4, [sp, #0x24] + addeq r6, sp, #0x28 + smull r11, r4, r5, r4 + adds r5, r11, r12 + adc r11, r4, #0x0 + ldr r4, [r3, #0x0] + ldr lr, [sp, #0x20] + smlal r5, r11, r4, lr + mov r4, r5, lsr #0xc + orr r4, r4, r11, lsl #0x14 + str r4, [r6, #0x0] + ldr r4, [r3, #0xc] + ldr r5, [sp, #0x24] + ldr lr, [r3, #0x4] + smull r11, r5, r4, r5 + adds r11, r11, r12 + adc r4, r5, #0x0 + add r5, sp, #0x28 + cmp r6, r5 + ldr r5, [sp, #0x20] + smlal r11, r4, lr, r5 + mov r5, r11, lsr #0xc + orr r5, r5, r4, lsl #0x14 + str r5, [r6, #0x4] + ldreq r5, [sp, #0x28] + ldreq r4, [sp, #0x2c] + streq r5, [sp, #0x20] + streq r4, [sp, #0x24] + cmp r8, #0x100 + beq _020B1D38 + cmp r8, #0x300 + beq _020B1D38 + ldr r5, [r7, #0x0] + ldr r4, _020B1E98 ; =0xC1FFFCFF + and r4, r5, r4 + orr r4, r4, r8 + str r4, [r7, #0x0] + b _020B1D54 +_020B1D38: + ldr r5, [r7, #0x0] + ldr r4, _020B1E98 ; =0xC1FFFCFF + and r4, r5, r4 + orr r5, r4, r8 + ldr r4, [sp, #0x4] + orr r4, r4, r5 + str r4, [r7, #0x0] +_020B1D54: + ldr r6, [r7, #0x0] + ldr r5, _020B1E8C ; =0xC000C000 + cmp r9, #0x0 + and r8, r6, r5 + and r5, r8, #0xc000 + mov r6, r5, asr #0xe + and r5, r8, #0xc0000000 + ldr r8, _020B1E90 ; =UNK_020FF8AC + mov r5, r5, lsr #0x1e + mov r5, r5, lsl #0x1 + add r8, r8, r6, lsl #0x3 + ldrh r9, [r5, r8] + ldr r8, _020B1E94 ; =UNK_020FF894 + ldr r4, [sp, #0x20] + add r6, r8, r6, lsl #0x3 + mov r11, r9, asr #0x1 + ldrh r5, [r5, r6] + mov r8, r11, lsl #0xc + ldr r6, [r3, #0x0] + rsb r12, r8, #0x0 + mov r9, r5, asr #0x1 + mla r12, r6, r11, r12 + ldr r5, [r3, #0x8] + mla r6, r5, r9, r12 + add r6, r4, r6 + str r6, [sp, #0x20] + ldr r12, [r3, #0x4] + mov r5, r9, lsl #0xc + str r12, [sp, #0x1c] + ldr r12, [r3, #0xc] + rsb lr, r5, #0x0 + str r12, [sp, #0x18] + ldr r12, [sp, #0x1c] + ldr r4, [sp, #0x24] + mla r11, r12, r11, lr + ldr r12, [sp, #0x18] + subne r6, r6, r8 + mla r9, r12, r9, r11 + add r4, r4, r9 + str r4, [sp, #0x24] + subne r4, r4, r5 + strne r6, [sp, #0x20] + strne r4, [sp, #0x24] +_020B1E00: + cmp r10, #0x0 + beq _020B1E28 + ldr r6, [sp, #0x20] + ldr r4, [r10, #0x0] + ldr r5, [sp, #0x24] + add r4, r6, r4 + str r4, [sp, #0x20] + ldr r4, [r10, #0x4] + add r4, r5, r4 + str r4, [sp, #0x24] +_020B1E28: + ldr r4, [sp, #0x20] + ldr r6, [r7, #0x0] + add r5, r4, #0x800 + ldr r4, _020B1E9C ; =0x000001FF + and r4, r4, r5, asr #0xc + ldr r5, _020B1EA0 ; =0xFE00FF00 + and r6, r6, r5 + ldr r5, [sp, #0x24] + add r5, r5, #0x800 + mov r5, r5, asr #0xc + and r5, r5, #0xff + orr r5, r6, r5 + orr r4, r5, r4, lsl #0x10 + str r4, [r7, #0x0] +_020B1E60: + ldr r4, [sp, #0x0] + add r4, r4, #0x1 + mov r4, r4, lsl #0x10 + mov r4, r4, lsr #0x10 + str r4, [sp, #0x0] + cmp r4, r1 + blo _020B1B54 +_020B1E7C: + mov r0, r1 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B1E88: .word 0x01FF0000 +_020B1E8C: .word 0xC000C000 +_020B1E90: .word UNK_020FF8AC +_020B1E94: .word UNK_020FF894 +_020B1E98: .word 0xC1FFFCFF +_020B1E9C: .word 0x000001FF +_020B1EA0: .word 0xFE00FF00 + arm_func_end FUN_020B1AF8 + + ; _end + arm_func_start FUN_020B1EA4 +FUN_020B1EA4: ; 0x020B1EA4 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020B0518 + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + mov r0, r4 + bl FUN_020B1FC4 + ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EA4 + + ; _end + arm_func_start FUN_020B1EC4 +FUN_020B1EC4: ; 0x020B1EC4 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020B0534 + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + mov r0, r4 + bl FUN_020B1FC4 + ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EC4 + + ; _end + arm_func_start FUN_020B1EE4 +FUN_020B1EE4: ; 0x020B1EE4 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020B0438 + mov r0, r4 + bl FUN_020B1FC4 + ldmia sp!, {r4,pc} + arm_func_end FUN_020B1EE4 + + ; _end + arm_func_start FUN_020B1EFC +FUN_020B1EFC: ; 0x020B1EFC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov r4, r2 + ldr r2, [r4, #0xc] + mov r5, r1 + ldr r1, [r2, #0x0] + ldr r2, [sp, #0x34] + str r1, [sp, #0x0] + ldr r1, [sp, #0x38] + str r2, [sp, #0x4] + mov r6, r3 + mov r7, r0 + ldr r12, [sp, #0x3c] + str r1, [sp, #0x8] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x2c] + ldr r3, [sp, #0x30] + mov r0, r6 + str r12, [sp, #0xc] + bl FUN_020B45F0 + str r6, [r7, #0x34] + str r4, [r7, #0x30] + add r0, r7, #0x38 + mov r1, #0x1 + str r6, [r7, #0x34] + bl FUN_020B1A68 + mov r0, r7 + bl FUN_020B04C0 + mov r0, r7 + mov r1, r5 + bl FUN_020B1EE4 + add sp, sp, #0x14 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B1EFC + + ; _end + arm_func_start FUN_020B1F80 +FUN_020B1F80: ; 0x020B1F80 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + str r2, [r5, #0x30] + mvn r2, #0x0 + add r0, r5, #0x38 + mov r1, #0x1 + str r2, [r5, #0x34] + bl FUN_020B1A68 + mov r0, r5 + bl FUN_020B04C0 + mov r0, r5 + mov r1, r4 + bl FUN_020B1EE4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B1F80 + + ; _end + arm_func_start FUN_020B1FC4 +FUN_020B1FC4: ; 0x020B1FC4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r1, [r5, #0x0] + ldrh r1, [r1, #0x4] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + bl FUN_020B06E0 + mov r4, r0 + ldr r7, [r5, #0x30] + ldrh r1, [r4, #0x0] + mov r0, r7 + bl FUN_020AFE8C + str r0, [r5, #0x2c] + ldr r1, [r5, #0x18] + add r0, r5, #0x38 + ldr r2, [r1, #0x4] + mov r1, #0x1 + and r6, r2, #0xff + bl FUN_020B1A68 + cmp r6, #0x0 + beq _020B2068 + cmp r6, #0x2 + bne _020B203C + ldrsh r1, [r4, #0x4] + ldrsh r2, [r4, #0x6] + add r0, r5, #0x38 + bl FUN_020B1AB4 + b _020B2068 +_020B203C: + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r5, #0x38 + bl FUN_020B1A78 + ldrh r1, [r4, #0x2] + add r0, r5, #0x38 + bl FUN_020B1A98 + ldrsh r1, [r4, #0xc] + ldrsh r2, [r4, #0xe] + add r0, r5, #0x38 + bl FUN_020B1AB4 +_020B2068: + ldr r2, [r7, #0xc] + cmp r2, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + ldr r1, [r5, #0x34] + mvn r0, #0x0 + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + ldrh r1, [r4, #0x0] + ldr r2, [r2, #0x4] + ldr r0, [r5, #0x34] + add r3, r2, r1, lsl #0x3 + ldr r1, [r2, r1, lsl #0x3] + ldr r2, [r3, #0x4] + bl FUN_020B4400 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B1FC4 + diff --git a/arm9/asm/NNS_G2D_g2d_celltransfe.s b/arm9/asm/NNS_G2D_g2d_celltransfe.s new file mode 100644 index 000000000..f7c8cec69 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_celltransfe.s @@ -0,0 +1,298 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; cvtTbl$7926 + .global UNK_020FF8C4 +UNK_020FF8C4: ; 0x020FF8C4 + .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 + + ; static const in function + .section .bss + + ; s_pTaskRegisterFunc + .global UNK_021CECFC +UNK_021CECFC: ; 0x021CECFC + .space 0x4 + + ; s_numCellState + .global UNK_021CED00 +UNK_021CED00: ; 0x021CED00 + .space 0x4 + + ; s_pCellStateArray + .global UNK_021CED04 +UNK_021CED04: ; 0x021CED04 + .space 0x4 + + .section .text + + ; NNS_G2dFreeCellTransferStateHandle + arm_func_start FUN_020B4358 +FUN_020B4358: ; 0x020B4358 + stmdb sp!, {r4,lr} + ldr r2, _020B43A0 ; =UNK_021CED04 + mov r1, #0x30 + ldr r2, [r2, #0x0] + mla r4, r0, r1, r2 + mov r0, r4 + bl FUN_020B10CC + mov r0, #0x0 + str r0, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + str r0, [r4, #0x24] + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + ldmia sp!, {r4,pc} + .balign 4 +_020B43A0: .word UNK_021CED04 + arm_func_end FUN_020B4358 + + ; NNS_G2dGetNewCellTransferStateHandle + arm_func_start FUN_020B43A4 +FUN_020B43A4: ; 0x020B43A4 + ldr r1, _020B43F8 ; =UNK_021CED00 + mov r0, #0x0 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + bls _020B43F0 + ldr r1, _020B43FC ; =UNK_021CED04 + ldr r2, [r1, #0x0] + mov r12, r2 +_020B43C4: + ldr r1, [r12, #0x1c] + cmp r1, #0x1 + movne r1, #0x30 + mlane r1, r0, r1, r2 + movne r2, #0x1 + strne r2, [r1, #0x1c] + bxne lr + add r0, r0, #0x1 + cmp r0, r3 + add r12, r12, #0x30 + blo _020B43C4 +_020B43F0: + mvn r0, #0x0 + bx lr + .balign 4 +_020B43F8: .word UNK_021CED00 +_020B43FC: .word UNK_021CED04 + arm_func_end FUN_020B43A4 + + ; _end + arm_func_start FUN_020B4400 +FUN_020B4400: ; 0x020B4400 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + mov r4, r2 + bl FUN_020B469C + mvn r1, #0x0 + str r1, [r0, #0x24] + str r5, [r0, #0x28] + str r4, [r0, #0x2c] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B4400 + + ; NNS_G2dUpdateCellTransferStateManager + arm_func_start FUN_020B442C +FUN_020B442C: ; 0x020B442C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r0, _020B4558 ; =UNK_021CED00 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addls sp, sp, #0x14 + ldmlsia sp!, {r4-r11,pc} + ldr r0, [sp, #0x0] + mov r5, #0x1 + str r0, [sp, #0x4] + mov r11, r0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] +_020B4468: + ldr r0, _020B455C ; =UNK_021CED04 + ldr r1, [r0, #0x0] + ldr r0, [sp, #0x4] + add r8, r1, r0 + ldr r0, [r8, #0x1c] + cmp r0, #0x0 + beq _020B4528 + ldr r9, [sp, #0x8] + mov r0, r9 + cmp r0, #0x3 + bge _020B4520 + add r4, r8, #0x24 +_020B4498: + mov r6, r5, lsl r9 + mov r1, r11 + ldr r0, [r8, #0x24] + ands r0, r0, r6 + beq _020B44B8 + ldr r0, [r8, #0x20] + ands r0, r0, r6 + movne r1, r5 +_020B44B8: + cmp r1, #0x0 + beq _020B4514 + ldr r0, _020B4560 ; =UNK_020FF8C4 + cmp r9, #0x0 + ldr r7, [r0, r9, lsl #0x2] + ldreq r10, [r8, #0x14] + mov r0, r8 + mov r1, r9 + ldrne r10, [r8, #0x10] + bl FUN_020B10BC + mov r1, r0 + mov r0, r7 + ldr r7, _020B4564 ; =UNK_021CECFC + ldr r2, [r8, #0x28] + ldr r3, [r8, #0x2c] + ldr r7, [r7, #0x0] + add r2, r10, r2 + blx r7 + cmp r0, #0x0 + ldrne r1, [r4, #0x0] + mvnne r0, r6 + andne r0, r1, r0 + strne r0, [r4, #0x0] +_020B4514: + add r9, r9, #0x1 + cmp r9, #0x3 + blt _020B4498 +_020B4520: + ldr r0, [sp, #0xc] + str r0, [r8, #0x20] +_020B4528: + ldr r0, _020B4558 ; =UNK_021CED00 + ldr r1, [r0, #0x0] + ldr r0, [sp, #0x0] + add r0, r0, #0x1 + str r0, [sp, #0x0] + cmp r0, r1 + ldr r0, [sp, #0x4] + add r0, r0, #0x30 + str r0, [sp, #0x4] + blo _020B4468 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B4558: .word UNK_021CED00 +_020B455C: .word UNK_021CED04 +_020B4560: .word UNK_020FF8C4 +_020B4564: .word UNK_021CECFC + arm_func_end FUN_020B442C + + ; NNS_G2dInitCellTransferStateManager + arm_func_start FUN_020B4568 +FUN_020B4568: ; 0x020B4568 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr ip, _020B45E4 ; =UNK_021CECFC + movs r6, r1 + ldr r1, _020B45E8 ; =UNK_021CED00 + ldr r3, _020B45EC ; =UNK_021CED04 + mov r7, r0 + str r2, [r12, #0x0] + mov r5, #0x0 + addeq sp, sp, #0x4 + str r7, [r3, #0x0] + str r6, [r1, #0x0] + ldmeqia sp!, {r4-r7,pc} + mov r4, r5 +_020B45A0: + mov r0, r7 + bl FUN_020B10CC + str r4, [r7, #0xc] + str r4, [r7, #0x10] + str r4, [r7, #0x14] + str r4, [r7, #0x18] + str r4, [r7, #0x1c] + str r4, [r7, #0x20] + str r4, [r7, #0x24] + str r4, [r7, #0x28] + add r5, r5, #0x1 + str r4, [r7, #0x2c] + cmp r5, r6 + add r7, r7, #0x30 + blo _020B45A0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B45E4: .word UNK_021CECFC +_020B45E8: .word UNK_021CED00 +_020B45EC: .word UNK_021CED04 + arm_func_end FUN_020B4568 + + ; NNSi_G2dInitCellTransferState + arm_func_start FUN_020B45F0 +FUN_020B45F0: ; 0x020B45F0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr ip, _020B4698 ; =UNK_021CED04 + mov r4, #0x30 + ldr r12, [r12, #0x0] + mov r7, r1 + mla r4, r0, r4, r12 + mov r0, r4 + mov r6, r2 + mov r5, r3 + bl FUN_020B10CC + mvn r0, #0x0 + cmp r7, r0 + beq _020B4638 + mov r0, r4 + mov r2, r7 + mov r1, #0x0 + bl FUN_020B10C4 +_020B4638: + mvn r0, #0x0 + cmp r6, r0 + beq _020B4654 + mov r0, r4 + mov r2, r6 + mov r1, #0x1 + bl FUN_020B10C4 +_020B4654: + mvn r0, #0x0 + cmp r5, r0 + beq _020B4670 + mov r0, r4 + mov r2, r5 + mov r1, #0x2 + bl FUN_020B10C4 +_020B4670: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x1c] + str r1, [r4, #0xc] + ldr r1, [sp, #0x20] + str r0, [r4, #0x10] + ldr r0, [sp, #0x24] + str r1, [r4, #0x14] + str r0, [r4, #0x18] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B4698: .word UNK_021CED04 + arm_func_end FUN_020B45F0 + + ; NNSi_G2dGetCellTransferState + arm_func_start FUN_020B469C +FUN_020B469C: ; 0x020B469C + ldr r2, _020B46B0 ; =UNK_021CED04 + mov r1, #0x30 + ldr r2, [r2, #0x0] + mla r0, r1, r0, r2 + bx lr + .balign 4 +_020B46B0: .word UNK_021CED04 + arm_func_end FUN_020B469C + diff --git a/arm9/asm/NNS_G2D_g2d_charcanvas.s b/arm9/asm/NNS_G2D_g2d_charcanvas.s new file mode 100644 index 000000000..b21235e85 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_charcanvas.s @@ -0,0 +1,1379 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; objs$8221 + .global UNK_020FF970 +UNK_020FF970: ; 0x020FF970 + .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01 + .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03 + + ; static const in function + ; shape$8277 + .global UNK_020FF990 +UNK_020FF990: ; 0x020FF990 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0 + + ; static const in function + .section .text + + ; NNS_G2dArrangeOBJ1D + arm_func_start FUN_020B5E50 +FUN_020B5E50: ; 0x020B5E50 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x3c + mov r7, r0 + mov r0, r1 + cmp r0, #0x8 + ldr r0, [sp, #0x60] + str r1, [sp, #0x10] + str r0, [sp, #0x60] + ldr r0, [sp, #0x6c] + str r2, [sp, #0x14] + str r0, [sp, #0x6c] + ldrlt r0, [sp, #0x10] + mov r11, r3 + ldr r6, [sp, #0x64] + ldr r5, [sp, #0x68] + movge r2, #0x3 + clzlt r0, r0 + rsblt r2, r0, #0x1f + ldr r0, [sp, #0x14] + cmp r0, #0x8 + ldrlt r0, [sp, #0x14] + movge r1, #0x3 + clzlt r0, r0 + rsblt r1, r0, #0x1f + ldr r0, _020B6170 ; =UNK_020FF970 + mvn r3, #0x0 + add r1, r0, r1, lsl #0x3 + add r0, r1, r2, lsl #0x1 + ldrb r4, [r1, r2, lsl #0x1] + ldrb r1, [r0, #0x1] + ldr r2, [sp, #0x14] + cmp r6, #0x0 + str r1, [sp, #0x18] + ldr r1, [sp, #0x10] + and r1, r1, r3, lsl r4 + str r1, [sp, #0x1c] + ldr r1, [sp, #0x18] + and r1, r2, r3, lsl r1 + str r1, [sp, #0x20] + moveq r1, #0x1 + streq r1, [sp, #0x24] + movne r1, #0x2 + strne r1, [sp, #0x24] + mov r1, #0x0 + str r1, [sp, #0x28] + bl FUN_020B704C + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + mov r10, r1, asr r4 + ldr r1, [sp, #0x18] + mov r1, r2, asr r1 + str r1, [sp, #0x2c] + ldr r1, [sp, #0x24] + mov r2, r1, lsl r4 + ldr r1, [sp, #0x18] + mov r2, r2, lsl r1 + ldr r1, [sp, #0x6c] + mov r9, r2, asr r1 + mov r1, #0x0 + str r1, [sp, #0x30] + str r1, [sp, #0x34] + b _020B5FE8 +_020B5F48: + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x18] + ldr r8, [sp, #0x34] + mov r2, r2, lsl r1 + ldr r1, [sp, #0x60] + add lr, r1, r2, lsl #0x3 + b _020B5FD4 +_020B5F64: + mov r1, r8, lsl r4 + add r2, r11, r1, lsl #0x3 + ldr r1, _020B6174 ; =0x000001FF + ldr r3, [r7, #0x0] + and r12, r2, r1 + ldr r1, _020B6178 ; =0xFE00FF00 + and r2, lr, #0xff + and r1, r3, r1 + orr r1, r1, r2 + orr r1, r1, r12, lsl #0x10 + str r1, [r7, #0x0] + ldr r3, [r7, #0x0] + ldr r1, _020B617C ; =0x3FFF3FFF + mov r2, #0x400 + and r1, r3, r1 + orr r1, r1, r0 + str r1, [r7, #0x0] + rsb r1, r2, #0x0 + ldrh r2, [r7, #0x4] + add r8, r8, #0x1 + and r1, r2, r1 + orr r1, r1, r5 + strh r1, [r7, #0x4] + ldr r1, [r7, #0x0] + add r5, r5, r9 + bic r1, r1, #0x2000 + orr r1, r1, r6, lsl #0xd + str r1, [r7], #0x8 +_020B5FD4: + cmp r8, r10 + blt _020B5F64 + ldr r1, [sp, #0x30] + add r1, r1, #0x1 + str r1, [sp, #0x30] +_020B5FE8: + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x2c] + cmp r2, r1 + blt _020B5F48 + ldr r0, [sp, #0x28] + mla r0, r10, r1, r0 + str r0, [sp, #0x28] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x10] + cmp r1, r0 + bhs _020B6078 + ldr r0, [sp, #0x60] + ldr r1, [sp, #0x10] + str r0, [sp, #0x0] + ldr r0, [sp, #0x1c] + str r6, [sp, #0x4] + sub r4, r1, r0 + ldr r1, [sp, #0x6c] + str r5, [sp, #0x8] + str r1, [sp, #0xc] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + add r3, r11, r1, lsl #0x3 + mov r0, r7 + mov r1, r4 + bl FUN_020B5E50 + ldr r1, [sp, #0x24] + add r7, r7, r0, lsl #0x3 + mul r2, r1, r4 + ldr r1, [sp, #0x20] + mul r2, r1, r2 + ldr r1, [sp, #0x6c] + add r5, r5, r2, lsr r1 + ldr r1, [sp, #0x28] + add r0, r1, r0 + str r0, [sp, #0x28] +_020B6078: + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x14] + cmp r1, r0 + bhs _020B60F0 + ldr r1, [sp, #0x60] + ldr r0, [sp, #0x20] + mov r3, r11 + add r0, r1, r0, lsl #0x3 + str r0, [sp, #0x0] + str r6, [sp, #0x4] + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x20] + str r5, [sp, #0x8] + sub r4, r1, r0 + ldr r1, [sp, #0x6c] + mov r0, r7 + str r1, [sp, #0xc] + ldr r1, [sp, #0x1c] + mov r2, r4 + bl FUN_020B5E50 + ldr r2, [sp, #0x24] + ldr r1, [sp, #0x1c] + add r7, r7, r0, lsl #0x3 + mul r1, r2, r1 + mul r2, r4, r1 + ldr r1, [sp, #0x6c] + add r5, r5, r2, lsr r1 + ldr r1, [sp, #0x28] + add r0, r1, r0 + str r0, [sp, #0x28] +_020B60F0: + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x10] + cmp r1, r0 + bhs _020B6164 + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x14] + cmp r1, r0 + bhs _020B6164 + ldr r1, [sp, #0x60] + ldr r0, [sp, #0x20] + ldr r2, [sp, #0x10] + add r0, r1, r0, lsl #0x3 + ldr r1, [sp, #0x1c] + ldr r3, [sp, #0x14] + str r0, [sp, #0x0] + sub r1, r2, r1 + ldr r2, [sp, #0x20] + str r6, [sp, #0x4] + sub r2, r3, r2 + ldr r3, [sp, #0x1c] + ldr r4, [sp, #0x6c] + str r5, [sp, #0x8] + mov r0, r7 + add r3, r11, r3, lsl #0x3 + str r4, [sp, #0xc] + bl FUN_020B5E50 + ldr r1, [sp, #0x28] + add r0, r1, r0 + str r0, [sp, #0x28] +_020B6164: + ldr r0, [sp, #0x28] + add sp, sp, #0x3c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B6170: .word UNK_020FF970 +_020B6174: .word 0x000001FF +_020B6178: .word 0xFE00FF00 +_020B617C: .word 0x3FFF3FFF + arm_func_end FUN_020B5E50 + + ; _end + arm_func_start FUN_020B6180 +FUN_020B6180: ; 0x020B6180 + stmdb sp!, {r4-r6,lr} + mov r3, r0, lsr #0x3 + mov r6, r1, lsr #0x3 + mul r12, r3, r6 + and r2, r0, #0x4 + and lr, r0, #0x2 + and r0, r0, #0x1 + add r4, r0, lr, lsr #0x1 + mov r5, r2, lsr #0x2 + and r0, r1, #0x4 + add lr, r12, #0x0 + add r12, r5, r4, lsl #0x1 + mla r12, r6, r12, lr + and lr, r1, #0x2 + and r1, r1, #0x1 + add lr, r1, lr, lsr #0x1 + mov r1, r0, lsr #0x2 + add r1, r1, lr, lsl #0x1 + mla r12, r3, r1, r12 + add r1, r4, r2, lsr #0x2 + add r0, lr, r0, lsr #0x2 + mla r0, r1, r0, r12 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B6180 + + ; _end + arm_func_start FUN_020B61DC +FUN_020B61DC: ; 0x020B61DC + stmdb sp!, {r4-r8,lr} + ldr r12, [sp, #0x1c] + ldr r8, [sp, #0x18] + mov r12, r12, lsl #0x1c + mov r4, r12, lsr #0x10 + mov r6, #0x0 + cmp r2, #0x0 + ldmleia sp!, {r4-r8,pc} + mov lr, r3, lsl #0x1 + mov r12, r6 +_020B6204: + mov r5, r0 + mov r7, r12 + cmp r1, #0x0 + ble _020B622C +_020B6214: + orr r3, r4, r8 + add r7, r7, #0x1 + cmp r7, r1 + add r8, r8, #0x1 + strh r3, [r5], #0x2 + blt _020B6214 +_020B622C: + add r6, r6, #0x1 + cmp r6, r2 + add r0, r0, lr + blt _020B6204 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B61DC + + ; _end + arm_func_start FUN_020B6240 +FUN_020B6240: ; 0x020B6240 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + ldr r5, [sp, #0x24] + ldr lr, [sp, #0x20] + cmp r5, #0x20 + ldr r12, [sp, #0x28] + bgt _020B6280 + mla r4, r5, lr, r3 + ldr lr, [sp, #0x2c] + str r12, [sp, #0x0] + mov r3, r5 + add r0, r0, r4, lsl #0x1 + str lr, [sp, #0x4] + bl FUN_020B61DC + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} +_020B6280: + ldr r4, [sp, #0x2c] + add r7, lr, r2 + mov r2, r4, lsl #0x1c + cmp lr, r7 + add r8, r3, r1 + mov r4, r2, lsr #0x10 + addge sp, sp, #0x8 + ldmgeia sp!, {r4-r8,pc} +_020B62A0: + cmp lr, #0x20 + movlt r1, lr + addge r1, lr, #0x20 + mov r6, r3 + cmp r3, r8 + add r5, r0, r1, lsl #0x6 + bge _020B62E4 +_020B62BC: + cmp r6, #0x20 + movlt r1, r6 + addge r1, r6, #0x3e0 + orr r2, r4, r12 + mov r1, r1, lsl #0x1 + add r6, r6, #0x1 + strh r2, [r5, r1] + cmp r6, r8 + add r12, r12, #0x1 + blt _020B62BC +_020B62E4: + add lr, lr, #0x1 + cmp lr, r7 + blt _020B62A0 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B6240 + + ; NNS_G2dCharCanvasInitForOBJ1D + arm_func_start FUN_020B62F8 +FUN_020B62F8: ; 0x020B62F8 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x18 + cmp r2, #0x8 + movlt r4, r2 + movge r12, #0x3 + clzlt r4, r4 + rsblt r12, r4, #0x1f + cmp r3, #0x8 + movlt r4, r3 + movge r6, #0x3 + clzlt r4, r4 + rsblt r6, r4, #0x1f + ldr r4, _020B6378 ; =UNK_020FF970 + ldr r5, [sp, #0x28] + add r4, r4, r6, lsl #0x3 + ldrb r6, [r4, r12, lsl #0x1] + add r12, r4, r12, lsl #0x1 + ldr r4, _020B637C ; =FUN_020B6908 + strb r6, [sp, #0x14] + ldrb r6, [r12, #0x1] + ldr lr, _020B6380 ; =FUN_020B68AC + ldr ip, _020B6384 ; =FUN_020B64C0 + strb r6, [sp, #0x15] + str r5, [sp, #0x0] + str r4, [sp, #0x4] + str lr, [sp, #0x8] + str r12, [sp, #0xc] + ldr r12, [sp, #0x14] + str r12, [sp, #0x10] + bl FUN_020B6488 + add sp, sp, #0x18 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B6378: .word UNK_020FF970 +_020B637C: .word FUN_020B6908 +_020B6380: .word FUN_020B68AC +_020B6384: .word FUN_020B64C0 + arm_func_end FUN_020B62F8 + + ; NNS_G2dCharCanvasInitForBG + arm_func_start FUN_020B6388 +FUN_020B6388: ; 0x020B6388 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr lr, [sp, #0x18] + ldr ip, _020B63C0 ; =FUN_020B6B10 + str lr, [sp, #0x0] + ldr lr, _020B63C4 ; =FUN_020B68AC + str r12, [sp, #0x4] + ldr ip, _020B63C8 ; =FUN_020B66D4 + str lr, [sp, #0x8] + str r12, [sp, #0xc] + str r2, [sp, #0x10] + bl FUN_020B6488 + add sp, sp, #0x14 + ldmia sp!, {pc} + .balign 4 +_020B63C0: .word FUN_020B6B10 +_020B63C4: .word FUN_020B68AC +_020B63C8: .word FUN_020B66D4 + arm_func_end FUN_020B6388 + + ; NNS_G2dCharCanvasDrawChar + arm_func_start FUN_020B63CC +FUN_020B63CC: ; 0x020B63CC + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + mov r7, r1 + ldrh r1, [sp, #0x2c] + mov r8, r0 + mov r0, r7 + mov r6, r2 + mov r5, r3 + bl FUN_020B5CE4 + ldr r1, _020B6484 ; =0x0000FFFF + mov r4, r0 + cmp r4, r1 + ldreq r0, [r7, #0x0] + ldreqh r4, [r0, #0x2] + mov r0, r7 + mov r1, r4 + bl FUN_020B5C88 + str r0, [sp, #0x8] + ldr r0, [r7, #0x0] + ldr r2, [sp, #0x28] + ldr r0, [r0, #0x8] + add r1, sp, #0x8 + ldrh r3, [r0, #0x2] + add r12, r0, #0x8 + mov r0, r8 + mla r3, r4, r3, r12 + str r3, [sp, #0xc] + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [sp, #0x8] + ldr r4, [r8, #0x14] + ldrsb r2, [r1, #0x0] + mov r1, r7 + mov r3, r5 + add r2, r6, r2 + blx r4 + ldrh r0, [r7, #0x8] + cmp r0, #0x0 + ldrne r0, [sp, #0x8] + ldrnesb r1, [r0, #0x0] + ldrneb r0, [r0, #0x1] + addne r0, r1, r0 + ldreq r0, [sp, #0x8] + ldreqsb r0, [r0, #0x2] + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020B6484: .word 0x0000FFFF + arm_func_end FUN_020B63CC + + ; _end + arm_func_start FUN_020B6488 +FUN_020B6488: ; 0x020B6488 + str r2, [r0, #0x4] + ldr r2, [sp, #0x0] + str r3, [r0, #0x8] + strb r2, [r0, #0xc] + ldr r2, [sp, #0x4] + str r1, [r0, #0x0] + ldr r1, [sp, #0x8] + str r2, [r0, #0x14] + ldr r2, [sp, #0xc] + str r1, [r0, #0x18] + ldr r1, [sp, #0x10] + str r2, [r0, #0x1c] + str r1, [r0, #0x10] + bx lr + arm_func_end FUN_020B6488 + + ; _end + arm_func_start FUN_020B64C0 +FUN_020B64C0: ; 0x020B64C0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x54 + ldrb r4, [r0, #0xc] + mov r10, r2 + str r1, [sp, #0xc] + str r4, [sp, #0x44] + ldr r1, [sp, #0x44] + ldr r4, [sp, #0x78] + cmp r1, #0x4 + add r1, r10, r4 + str r1, [sp, #0x1c] + ldr r2, [sp, #0x7c] + mov r1, r3 + add r1, r1, r2 + str r1, [sp, #0x20] + ldrne r1, [sp, #0xc] + str r3, [sp, #0x10] + orrne r1, r1, r1, lsl #0x8 + orrne r1, r1, r1, lsl #0x10 + strne r1, [sp, #0xc] + bne _020B6528 + ldr r1, [sp, #0xc] + orr r1, r1, r1, lsl #0x4 + orr r1, r1, r1, lsl #0x8 + orr r1, r1, r1, lsl #0x10 + str r1, [sp, #0xc] +_020B6528: + bic r1, r10, #0x7 + str r1, [sp, #0x30] + ldr r1, [sp, #0x10] + ldr r2, [r0, #0x10] + bic r1, r1, #0x7 + str r1, [sp, #0x14] + ldr r1, [sp, #0x44] + str r2, [sp, #0x4c] + mov r3, r1, lsl #0x6 + mov r2, r3, asr #0x2 + ldr r1, [sp, #0x20] + add r3, r3, r2, lsr #0x1d + ldr r2, [sp, #0x1c] + add r6, r1, #0x7 + add r2, r2, #0x7 + bic r5, r2, #0x7 + bic r2, r6, #0x7 + ldr r1, [sp, #0x30] + str r2, [sp, #0x24] + mov r2, r3, asr #0x3 + str r2, [sp, #0x48] + mov r4, r1, asr #0x2 + ldr r2, [sp, #0x30] + ldr r1, [sp, #0x14] + add r2, r2, r4, lsr #0x1d + mov r2, r2, asr #0x3 + str r2, [sp, #0x2c] + ldr r2, [sp, #0x14] + mov r1, r1, asr #0x2 + add r1, r2, r1, lsr #0x1d + mov r6, r1, asr #0x3 + ldr r1, [sp, #0x24] + cmp r2, r1 + ldr r1, [r0, #0x4] + str r1, [sp, #0x40] + ldr r1, [r0, #0x8] + ldr r0, [r0, #0x0] + str r1, [sp, #0x3c] + str r0, [sp, #0x28] + ldrb r0, [sp, #0x4c] + str r0, [sp, #0x38] + ldrb r0, [sp, #0x4d] + str r0, [sp, #0x34] + addge sp, sp, #0x54 + ldmgeia sp!, {r4-r11,pc} + mov r4, #0x0 + mov r11, #0x8 +_020B65E4: + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x10] + ldr r7, [sp, #0x2c] + cmp r1, r0 + movlt r1, r0 + ldrlt r0, [sp, #0x14] + sublt r9, r1, r0 + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x14] + movge r9, r4 + sub r0, r1, r0 + cmp r0, #0x8 + movgt r0, r11 + sub r0, r0, r9 + str r0, [sp, #0x18] + ldr r0, [sp, #0x30] + cmp r0, r5 + mov r8, r0 + bge _020B66B0 +_020B6630: + ldr r0, [sp, #0x38] + ldr r2, [sp, #0x40] + str r0, [sp, #0x0] + ldr r0, [sp, #0x34] + ldr r3, [sp, #0x3c] + str r0, [sp, #0x4] + mov r0, r7 + mov r1, r6 + bl FUN_020B7068 + ldr r2, [sp, #0x1c] + cmp r8, r10 + sublt r1, r10, r8 + sub r2, r2, r8 + movge r1, r4 + cmp r2, #0x8 + movgt r2, r11 + sub r3, r2, r1 + ldr r2, [sp, #0x18] + ldr r12, [sp, #0x48] + str r2, [sp, #0x0] + ldr r2, [sp, #0xc] + str r2, [sp, #0x4] + ldr r2, [sp, #0x44] + str r2, [sp, #0x8] + ldr r2, [sp, #0x28] + mla r0, r12, r0, r2 + mov r2, r9 + bl FUN_020B6F18 + add r8, r8, #0x8 + add r7, r7, #0x1 + cmp r8, r5 + blt _020B6630 +_020B66B0: + ldr r0, [sp, #0x14] + add r6, r6, #0x1 + add r1, r0, #0x8 + ldr r0, [sp, #0x24] + str r1, [sp, #0x14] + cmp r1, r0 + blt _020B65E4 + add sp, sp, #0x54 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B64C0 + + ; _end + arm_func_start FUN_020B66D4 +FUN_020B66D4: ; 0x020B66D4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x3c + ldrb r4, [r0, #0xc] + mov r10, r2 + str r1, [sp, #0xc] + str r4, [sp, #0x2c] + ldr r1, [sp, #0x2c] + ldr r4, [sp, #0x60] + cmp r1, #0x4 + add r1, r10, r4 + str r1, [sp, #0x18] + ldr r2, [sp, #0x64] + mov r1, r3 + add r1, r1, r2 + str r1, [sp, #0x1c] + ldrne r1, [sp, #0xc] + str r3, [sp, #0x10] + orrne r1, r1, r1, lsl #0x8 + orrne r1, r1, r1, lsl #0x10 + strne r1, [sp, #0xc] + bne _020B673C + ldr r1, [sp, #0xc] + orr r1, r1, r1, lsl #0x4 + orr r1, r1, r1, lsl #0x8 + orr r1, r1, r1, lsl #0x10 + str r1, [sp, #0xc] +_020B673C: + ldr r1, [sp, #0x10] + bic r1, r1, #0x7 + mov r2, r1, asr #0x2 + str r1, [sp, #0x14] + add r1, r1, r2, lsr #0x1d + ldr r2, [r0, #0x10] + mov r3, r1, asr #0x3 + mul r1, r3, r2 + bic r3, r10, #0x7 + str r3, [sp, #0x28] + ldr r3, [sp, #0x2c] + mov r6, r3, lsl #0x6 + ldr r3, [sp, #0x28] + mov r4, r6, asr #0x2 + mov r5, r3, asr #0x2 + add r5, r3, r5, lsr #0x1d + add r4, r6, r4, lsr #0x1d + mov r3, r4, asr #0x3 + str r3, [sp, #0x30] + ldr r3, [sp, #0x1c] + add r1, r1, r5, asr #0x3 + add r4, r3, #0x7 + ldr r3, [r0, #0x0] + ldr r0, [sp, #0x18] + add r5, r0, #0x7 + ldr r0, [sp, #0x30] + bic r7, r5, #0x7 + mla r1, r0, r1, r3 + bic r0, r4, #0x7 + str r0, [sp, #0x20] + ldr r0, [sp, #0x30] + str r1, [sp, #0x24] + mul r0, r2, r0 + str r0, [sp, #0x34] + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x20] + cmp r1, r0 + addge sp, sp, #0x3c + ldmgeia sp!, {r4-r11,pc} + mov r5, #0x0 + mov r4, #0x8 +_020B67E0: + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x10] + ldr r6, [sp, #0x24] + cmp r1, r0 + movlt r1, r0 + ldrlt r0, [sp, #0x14] + sublt r9, r1, r0 + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x14] + movge r9, r5 + sub r0, r1, r0 + cmp r0, #0x8 + movgt r0, r4 + sub r11, r0, r9 + ldr r0, [sp, #0x28] + cmp r0, r7 + mov r8, r0 + bge _020B687C +_020B6828: + ldr r0, [sp, #0x18] + cmp r8, r10 + sublt r1, r10, r8 + sub r0, r0, r8 + movge r1, r5 + cmp r0, #0x8 + movgt r0, r4 + sub r3, r0, r1 + ldr r0, [sp, #0xc] + str r11, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [sp, #0x2c] + mov r2, r9 + str r0, [sp, #0x8] + mov r0, r6 + bl FUN_020B6F18 + ldr r0, [sp, #0x30] + add r8, r8, #0x8 + add r6, r6, r0 + cmp r8, r7 + blt _020B6828 +_020B687C: + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x34] + add r0, r1, r0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x14] + add r1, r0, #0x8 + ldr r0, [sp, #0x20] + str r1, [sp, #0x14] + cmp r1, r0 + blt _020B67E0 + add sp, sp, #0x3c + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B66D4 + + ; _end + arm_func_start FUN_020B68AC +FUN_020B68AC: ; 0x020B68AC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r0 + ldrb r2, [r3, #0xc] + ldr r12, [r3, #0x4] + cmp r2, #0x4 + orreq r0, r1, r1, lsl #0x4 + orreq r0, r0, r0, lsl #0x8 + orreq r1, r0, r0, lsl #0x10 + orrne r0, r1, r1, lsl #0x8 + orrne r1, r0, r0, lsl #0x10 + ldr r0, [r3, #0x8] + mov r2, r2, lsl #0x6 + mul lr, r12, r0 + mov r0, r2, asr #0x2 + add r0, r2, r0, lsr #0x1d + mov r2, r0, asr #0x3 + mov r0, r1 + mul r2, lr, r2 + ldr r1, [r3, #0x0] + bl MIi_CpuClearFast + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020B68AC + + ; _end + arm_func_start FUN_020B6908 +FUN_020B6908: ; 0x020B6908 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4c + ldr r7, [sp, #0x74] + ldrb r5, [r0, #0xc] + ldr r6, [r1, #0x0] + ldr r4, [r7, #0x0] + ldr r9, [r6, #0x8] + mov r8, r5, lsl #0x6 + ldrb r4, [r4, #0x1] + mov r5, r8, asr #0x2 + add r5, r8, r5, lsr #0x1d + ldrb r9, [r9, #0x1] + ldr r8, [r0, #0x4] + ldr r6, [r0, #0x8] + str r2, [sp, #0x8] + str r3, [sp, #0xc] + cmp r4, #0x0 + mov r5, r5, asr #0x3 + addeq sp, sp, #0x4c + ldmeqia sp!, {r4-r11,pc} + adds r3, r2, r4 + addmi sp, sp, #0x4c + ldmmiia sp!, {r4-r11,pc} + ldr r2, [sp, #0xc] + adds r2, r2, r9 + addmi sp, sp, #0x4c + ldmmiia sp!, {r4-r11,pc} + ldr r10, [sp, #0x8] + add r3, r3, #0x7 + cmp r10, #0x0 + movle r10, #0x0 + strle r10, [sp, #0x10] + movgt r10, r10, lsr #0x3 + strgt r10, [sp, #0x10] + ldr r10, [sp, #0xc] + add r2, r2, #0x7 + cmp r10, #0x0 + movle r10, #0x0 + mov r11, r2, lsr #0x3 + mov r3, r3, lsr #0x3 + movgt r10, r10, lsr #0x3 + cmp r3, r8 + movcs r3, r8 + cmp r11, r6 + ldr r2, [sp, #0x10] + movcs r11, r6 + subs r8, r3, r2 + addmi sp, sp, #0x4c + sub r3, r11, r10 + ldmmiia sp!, {r4-r11,pc} + cmp r3, #0x0 + addlt sp, sp, #0x4c + ldmltia sp!, {r4-r11,pc} + ldr r2, [sp, #0x8] + ldr r6, [r0, #0x0] + cmp r2, #0x0 + andge r2, r2, #0x7 + strge r2, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r11, [sp, #0x8] + cmp r2, #0x0 + andge r2, r2, #0x7 + strge r2, [sp, #0xc] + sub r8, r11, r8, lsl #0x3 + ldr r11, [sp, #0xc] + ldr r2, [sp, #0x70] + sub r3, r11, r3, lsl #0x3 + str r3, [sp, #0x14] + ldr r3, [r7, #0x4] + sub r2, r2, #0x1 + str r3, [sp, #0x28] + str r2, [sp, #0x48] + str r9, [sp, #0x38] + str r4, [sp, #0x34] + ldr r4, [r1, #0x0] + ldr r2, [sp, #0x14] + mov r3, r11 + cmp r3, r2 + ldr r2, [r4, #0x8] + ldrb r3, [r2, #0x6] + str r3, [sp, #0x40] + ldrb r2, [r0, #0xc] + str r2, [sp, #0x44] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x8] + ldrb r1, [r1, #0x0] + mul r1, r3, r1 + str r1, [sp, #0x3c] + ldr r1, [r0, #0x10] + str r1, [sp, #0x20] + ldr r1, [r0, #0x4] + ldr r0, [r0, #0x8] + ldrb r11, [sp, #0x20] + ldrb r4, [sp, #0x21] + str r1, [sp, #0x1c] + str r0, [sp, #0x18] + addle sp, sp, #0x4c + ldmleia sp!, {r4-r11,pc} +_020B6A90: + ldr r0, [sp, #0xc] + ldr r7, [sp, #0x10] + str r0, [sp, #0x30] + ldr r0, [sp, #0x8] + cmp r0, r8 + mov r9, r0 + ble _020B6AEC +_020B6AAC: + ldr r2, [sp, #0x1c] + str r11, [sp, #0x0] + ldr r3, [sp, #0x18] + mov r0, r7 + mov r1, r10 + str r4, [sp, #0x4] + bl FUN_020B7068 + mla r1, r0, r5, r6 + add r0, sp, #0x24 + str r9, [sp, #0x2c] + str r1, [sp, #0x24] + bl FUN_020B6CAC + sub r9, r9, #0x8 + add r7, r7, #0x1 + cmp r9, r8 + bgt _020B6AAC +_020B6AEC: + ldr r0, [sp, #0xc] + add r10, r10, #0x1 + sub r1, r0, #0x8 + ldr r0, [sp, #0x14] + str r1, [sp, #0xc] + cmp r1, r0 + bgt _020B6A90 + add sp, sp, #0x4c + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6908 + + ; _end + arm_func_start FUN_020B6B10 +FUN_020B6B10: ; 0x020B6B10 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x2c + ldr r4, [sp, #0x54] + ldrb r5, [r0, #0xc] + str r4, [sp, #0x54] + ldr r4, [r4, #0x0] + ldr r6, [r1, #0x0] + mov r7, r5, lsl #0x6 + ldrb r4, [r4, #0x1] + mov r5, r7, asr #0x2 + add r5, r7, r5, lsr #0x1d + cmp r4, #0x0 + ldr r6, [r6, #0x8] + mov r9, r3 + ldr r8, [r0, #0x4] + ldr r7, [r0, #0x8] + mov r10, r2 + mov r5, r5, asr #0x3 + addeq sp, sp, #0x2c + ldr lr, [r0, #0x0] + ldrb r3, [r6, #0x1] + ldmeqia sp!, {r4-r11,pc} + adds r6, r10, r4 + addmi sp, sp, #0x2c + ldmmiia sp!, {r4-r11,pc} + adds r2, r9, r3 + addmi sp, sp, #0x2c + ldmmiia sp!, {r4-r11,pc} + cmp r10, #0x0 + movle r11, #0x0 + add r6, r6, #0x7 + movgt r11, r10, lsr #0x3 + cmp r9, #0x0 + movle r12, #0x0 + add r2, r2, #0x7 + mov r6, r6, lsr #0x3 + movgt r12, r9, lsr #0x3 + cmp r6, r8 + movcs r6, r8 + mov r2, r2, lsr #0x3 + cmp r2, r7 + movcs r2, r7 + subs r7, r6, r11 + addmi sp, sp, #0x2c + sub r2, r2, r12 + ldmmiia sp!, {r4-r11,pc} + cmp r2, #0x0 + addlt sp, sp, #0x2c + ldmltia sp!, {r4-r11,pc} + ldr r6, [r0, #0x10] + cmp r10, #0x0 + sub r8, r6, r7 + mul r8, r5, r8 + mla r11, r6, r12, r11 + andge r10, r10, #0x7 + str r8, [sp, #0x0] + ldr r8, [sp, #0x54] + mla r6, r5, r11, lr + ldr r12, [r8, #0x4] + ldr r11, [sp, #0x50] + cmp r9, #0x0 + sub r8, r11, #0x1 + andge r9, r9, #0x7 + sub r11, r9, r2, lsl #0x3 + str r12, [sp, #0x8] + str r4, [sp, #0x14] + str r8, [sp, #0x28] + str r3, [sp, #0x18] + ldr r3, [r1, #0x0] + cmp r9, r11 + ldr r2, [r3, #0x8] + sub r7, r10, r7, lsl #0x3 + ldrb r2, [r2, #0x6] + str r2, [sp, #0x20] + ldrb r0, [r0, #0xc] + str r0, [sp, #0x24] + ldr r0, [r1, #0x0] + ldr r0, [r0, #0x8] + ldrb r0, [r0, #0x0] + mul r0, r2, r0 + str r0, [sp, #0x1c] + addle sp, sp, #0x2c + ldmleia sp!, {r4-r11,pc} + add r4, sp, #0x4 +_020B6C60: + mov r8, r10 + str r9, [sp, #0x10] + cmp r10, r7 + ble _020B6C90 +_020B6C70: + mov r0, r4 + str r6, [sp, #0x4] + str r8, [sp, #0xc] + bl FUN_020B6CAC + sub r8, r8, #0x8 + cmp r8, r7 + add r6, r6, r5 + bgt _020B6C70 +_020B6C90: + ldr r0, [sp, #0x0] + sub r9, r9, #0x8 + cmp r9, r11 + add r6, r6, r0 + bgt _020B6C60 + add sp, sp, #0x2c + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6B10 + + ; _end + arm_func_start FUN_020B6CAC +FUN_020B6CAC: ; 0x020B6CAC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + ldr r5, [r0, #0x8] + ldr r4, [r0, #0xc] + cmp r5, #0x0 + strge r5, [sp, #0x0] + movlt r1, #0x0 + strlt r1, [sp, #0x0] + ldr r1, [r0, #0x10] + cmp r4, #0x0 + add r10, r5, r1 + ldr r1, [r0, #0x14] + movge r2, r4 + movlt r2, #0x0 + cmp r10, #0x8 + add r3, r4, r1 + movge r10, #0x8 + cmp r3, #0x8 + movge r3, #0x8 + cmp r4, #0x0 + movgt r4, #0x0 + cmp r5, #0x0 + ldr r8, [r0, #0x20] + movgt r5, #0x0 + rsb r1, r4, #0x0 + mul r7, r10, r8 + ldr r6, [r0, #0x1c] + rsb r4, r5, #0x0 + mul r9, r6, r4 + ldr r4, [r0, #0x18] + mov r10, r7 + str r4, [sp, #0x8] + ldr r4, [sp, #0x0] + cmp r8, #0x4 + mul r5, r4, r8 + ldr r4, [sp, #0x8] + str r5, [sp, #0x0] + mla r11, r1, r4, r9 + ldr r1, [r0, #0x4] + str r1, [sp, #0x4] + bne _020B6E24 + ldr r1, [r0, #0x0] + ldr r7, [r0, #0x24] + add r0, r1, r2, lsl #0x2 + str r0, [sp, #0xc] + add r0, r1, r3, lsl #0x2 + ldr r1, [sp, #0xc] + str r0, [sp, #0x10] + cmp r1, r0 + addcs sp, sp, #0x34 + ldmcsia sp!, {r4-r11,pc} + mov r0, #0x0 + add r9, sp, #0x24 + mov r4, #0xf + str r0, [sp, #0x1c] +_020B6D88: + ldr r0, [sp, #0xc] + mov r1, r11, lsr #0x1f + ldr r5, [r0, #0x0] + ldr r0, [sp, #0x4] + rsb r2, r1, r11, lsl #0x1d + add r0, r0, r11, lsr #0x3 + str r0, [sp, #0x24] + ldr r0, [sp, #0x1c] + add r1, r1, r2, ror #0x1d + strb r0, [sp, #0x28] + strb r0, [sp, #0x29] + mov r0, r9 + bl FUN_020B76B0 + ldr r8, [sp, #0x0] + mov r0, r8 + cmp r0, r10 + bhs _020B6DF8 +_020B6DCC: + mov r0, r9 + mov r1, r6 + bl FUN_020B76B0 + cmp r0, #0x0 + mvnne r1, r4, lsl r8 + addne r0, r7, r0 + andne r1, r5, r1 + orrne r5, r1, r0, lsl r8 + add r8, r8, #0x4 + cmp r8, r10 + blo _020B6DCC +_020B6DF8: + ldr r0, [sp, #0xc] + add r1, r0, #0x4 + str r5, [r0, #0x0] + ldr r0, [sp, #0x10] + str r1, [sp, #0xc] + cmp r1, r0 + ldr r0, [sp, #0x8] + add r11, r11, r0 + blo _020B6D88 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} +_020B6E24: + ldr r1, [r0, #0x0] + ldr r9, [r0, #0x24] + add r0, r1, r2, lsl #0x3 + str r0, [sp, #0x14] + add r0, r1, r3, lsl #0x3 + ldr r1, [sp, #0x14] + str r0, [sp, #0x18] + cmp r1, r0 + addcs sp, sp, #0x34 + ldmcsia sp!, {r4-r11,pc} + mov r0, #0x0 + mov r4, #0xff + str r0, [sp, #0x20] +_020B6E58: + mov r1, r11, lsr #0x1f + rsb r0, r1, r11, lsl #0x1d + add r1, r1, r0, ror #0x1d + ldr r0, [sp, #0x14] + ldr r8, [r0, #0x0] + ldr r7, [r0, #0x4] + ldr r0, [sp, #0x4] + add r0, r0, r11, lsr #0x3 + str r0, [sp, #0x2c] + ldr r0, [sp, #0x20] + strb r0, [sp, #0x30] + strb r0, [sp, #0x31] + add r0, sp, #0x2c + bl FUN_020B76B0 + ldr r0, [sp, #0x0] + cmp r0, r10 + mov r5, r0 + bhs _020B6EE8 +_020B6EA0: + add r0, sp, #0x2c + mov r1, r6 + bl FUN_020B76B0 + cmp r0, #0x0 + beq _020B6EDC + cmp r5, #0x20 + mvncc r1, r4, lsl r5 + addcc r0, r9, r0 + andcc r1, r8, r1 + orrcc r8, r1, r0, lsl r5 + subcs r2, r5, #0x20 + mvncs r1, r4, lsl r2 + addcs r0, r9, r0 + andcs r1, r7, r1 + orrcs r7, r1, r0, lsl r2 +_020B6EDC: + add r5, r5, #0x8 + cmp r5, r10 + blo _020B6EA0 +_020B6EE8: + ldr r0, [sp, #0x14] + str r8, [r0, #0x0] + add r1, r0, #0x8 + str r7, [r0, #0x4] + ldr r0, [sp, #0x18] + str r1, [sp, #0x14] + cmp r1, r0 + ldr r0, [sp, #0x8] + add r11, r11, r0 + blo _020B6E58 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B6CAC + + ; _end + arm_func_start FUN_020B6F18 +FUN_020B6F18: ; 0x020B6F18 + stmdb sp!, {r4-r6,lr} + mov lr, r0 + cmp r3, #0x8 + ldr r0, [sp, #0x14] + bne _020B6F4C + ldr r4, [sp, #0x10] + cmp r4, #0x8 + bne _020B6F4C + ldr r2, [sp, #0x18] + mov r1, lr + mov r2, r2, lsl #0x3 + bl MIi_CpuClearFast + ldmia sp!, {r4-r6,pc} +_020B6F4C: + ldr r4, [sp, #0x18] + cmp r4, #0x4 + bne _020B6FAC + mov r5, r1, lsl #0x2 + add r4, r5, r3, lsl #0x2 + mvn r3, #0x0 + rsb r4, r4, #0x20 + mov r3, r3, lsr r5 + add r1, r4, r1, lsl #0x2 + mov r3, r3, lsl r1 + ldr r1, [sp, #0x10] + add r5, lr, r2, lsl #0x2 + add r2, r5, r1, lsl #0x2 + and r6, r0, r3, lsr r4 + cmp r5, r2 + mvn r1, r3, lsr r4 + ldmcsia sp!, {r4-r6,pc} +_020B6F90: + ldr r0, [r5, #0x0] + and r0, r0, r1 + orr r0, r6, r0 + str r0, [r5], #0x4 + cmp r5, r2 + blo _020B6F90 + ldmia sp!, {r4-r6,pc} +_020B6FAC: + mov r12, r1, lsl #0x3 + add r1, r12, r3, lsl #0x3 + rsb r1, r1, #0x40 + mvn r3, #0x0 + cmp r1, #0x20 + mov r5, r3, lsr r12 + subcs r4, r1, #0x20 + addcs r3, r12, r4 + movcs r3, r5, lsl r3 + movcs r3, r3, lsr r4 + movcc r3, r5, lsl r12 + mvn r4, #0x0 + add r5, lr, r2, lsl #0x3 + cmp r12, #0x20 + mov r4, r4, lsl r1 + subcs r12, r12, #0x20 + addcs r1, r12, r1 + movcs r1, r4, lsr r1 + movcs r6, r1, lsl r12 + movcc r6, r4, lsr r1 + ldr r1, [sp, #0x10] + and lr, r0, r3 + add r4, r5, r1, lsl #0x3 + cmp r5, r4 + and r12, r0, r6 + mvn r2, r3 + mvn r1, r6 + ldmcsia sp!, {r4-r6,pc} +_020B701C: + ldr r0, [r5, #0x0] + and r0, r0, r2 + orr r0, lr, r0 + str r0, [r5, #0x0] + ldr r0, [r5, #0x4] + and r0, r0, r1 + orr r0, r12, r0 + str r0, [r5, #0x4] + add r5, r5, #0x8 + cmp r5, r4 + blo _020B701C + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B6F18 + + ; OBJSizeToShape + arm_func_start FUN_020B704C +FUN_020B704C: ; 0x020B704C + ldrb r3, [r0, #0x1] + ldr r2, _020B7064 ; =UNK_020FF990 + ldrb r1, [r0, #0x0] + add r0, r2, r3, lsl #0x4 + ldr r0, [r0, r1, lsl #0x2] + bx lr + .balign 4 +_020B7064: .word UNK_020FF990 + arm_func_end FUN_020B704C + + ; GetCharIndex1D + arm_func_start FUN_020B7068 +FUN_020B7068: ; 0x020B7068 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr fp, _020B7164 ; =UNK_020FF970 + mov r9, #0x0 + mov r10, #0x3 + mvn r7, #0x0 +_020B7080: + ldr r4, [sp, #0x2c] + ldr r6, [sp, #0x28] + and r12, r3, r7, lsl r4 + cmp r12, r1 + mov r8, r7, lsl r6 + mov r5, r7, lsl r4 + and lr, r2, r7, lsl r6 + bhi _020B70D0 + mla r9, r2, r12, r9 + cmp lr, r0 + movhi r2, lr + subhi r1, r1, r12 + subhi r3, r3, r12 + bhi _020B7118 + sub r3, r3, r12 + mla r9, lr, r3, r9 + sub r0, r0, lr + sub r1, r1, r12 + sub r2, r2, lr + b _020B7118 +_020B70D0: + cmp lr, r0 + mlals r9, lr, r12, r9 + mvn r3, r5 + movls r3, r12 + subls r0, r0, lr + subls r2, r2, lr + bls _020B7118 + and r2, r1, r5 + mla r5, lr, r2, r9 + and r2, r0, r8 + and r1, r1, r3 + add r2, r5, r2, lsl r4 + mvn r3, r8 + add r1, r2, r1, lsl r6 + and r0, r0, r3 + add sp, sp, #0x4 + add r0, r1, r0 + ldmia sp!, {r4-r11,pc} +_020B7118: + cmp r2, #0x8 + movlt r4, r2 + movge r5, r10 + clzlt r4, r4 + rsblt r5, r4, #0x1f + cmp r3, #0x8 + movge r4, r10 + movlt r4, r3 + clzlt r4, r4 + rsblt r4, r4, #0x1f + add r4, r11, r4, lsl #0x3 + add r6, r4, r5, lsl #0x1 + ldrb r5, [r4, r5, lsl #0x1] + ldrb r4, [r6, #0x1] + str r5, [sp, #0x28] + str r4, [sp, #0x2c] + b _020B7080 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B7164: .word UNK_020FF970 + arm_func_end FUN_020B7068 + diff --git a/arm9/asm/NNS_G2D_g2d_font.s b/arm9/asm/NNS_G2D_g2d_font.s new file mode 100644 index 000000000..acb0abe81 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_font.s @@ -0,0 +1,292 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B5ABC +FUN_020B5ABC: ; 0x020B5ABC + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc + add r5, sp, #0x0 + mov r4, #0x0 + str r4, [r5, #0x0] + str r4, [r5, #0x4] + mov r8, r2 + ldr r2, [sp, #0x28] + mov r5, r0 + mov r9, r1 + mov r4, r3 + cmp r2, #0x0 + mov r7, #0x1 + beq _020B5B24 + add r6, sp, #0x28 +_020B5AF8: + mov r0, r9 + mov r1, r8 + mov r3, r6 + bl FUN_020B5BC8 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x28] + cmp r0, r1 + strgt r0, [sp, #0x0] + add r7, r7, #0x1 + cmp r2, #0x0 + bne _020B5AF8 +_020B5B24: + ldr r0, [r9, #0x0] + sub r2, r7, #0x1 + ldrsb r1, [r0, #0x1] + ldr r0, [sp, #0x0] + add r1, r4, r1 + mul r1, r2, r1 + sub r1, r1, r4 + str r1, [sp, #0x4] + str r0, [r5, #0x0] + str r1, [r5, #0x4] + add sp, sp, #0xc + ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B5ABC + + ; _end + arm_func_start FUN_020B5B54 +FUN_020B5B54: ; 0x020B5B54 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + str r2, [sp, #0x0] + add r3, sp, #0x4 + mov r2, #0x0 + str r2, [r3, #0x0] + mov r8, r0 + str r2, [r3, #0x4] + ldr r7, [r8, #0x4] + add r0, sp, #0x0 + mov r5, r1 + mov r4, #0x1 + blx r7 + cmp r0, #0x0 + beq _020B5BAC + add r6, sp, #0x0 +_020B5B94: + cmp r0, #0xa + mov r0, r6 + addeq r4, r4, #0x1 + blx r7 + cmp r0, #0x0 + bne _020B5B94 +_020B5BAC: + ldr r0, [r8, #0x0] + ldrsb r0, [r0, #0x1] + add r0, r5, r0 + mul r0, r4, r0 + sub r0, r0, r5 + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B5B54 + + ; NNSi_G2dFontGetStringWidth + arm_func_start FUN_020B5BC8 +FUN_020B5BC8: ; 0x020B5BC8 + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x8 + mov r8, r0 + str r2, [sp, #0x0] + ldr r4, [r8, #0x4] + add r0, sp, #0x0 + mov r7, r1 + mov r6, r3 + mov r5, #0x0 + blx r4 + movs r1, r0 + beq _020B5C58 + ldr sb, _020B5C84 ; =0x0000FFFF + add r10, sp, #0x0 +_020B5C00: + cmp r1, #0xa + beq _020B5C58 + mov r0, r8 + bl FUN_020B5CE4 + mov r1, r0 + cmp r1, r9 + ldreq r0, [r8, #0x0] + ldreqh r1, [r0, #0x2] + mov r0, r8 + bl FUN_020B5C88 + ldrh r1, [r8, #0x8] + cmp r1, #0x0 + ldrnesb r1, [r0, #0x0] + ldrneb r0, [r0, #0x1] + addne r0, r1, r0 + ldreqsb r0, [r0, #0x2] + add r1, r7, r0 + mov r0, r10 + add r5, r5, r1 + blx r4 + movs r1, r0 + bne _020B5C00 +_020B5C58: + cmp r6, #0x0 + beq _020B5C70 + cmp r1, #0xa + ldreq r0, [sp, #0x0] + movne r0, #0x0 + str r0, [r6, #0x0] +_020B5C70: + cmp r5, #0x0 + subgt r5, r5, r7 + mov r0, r5 + add sp, sp, #0x8 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020B5C84: .word 0x0000FFFF + arm_func_end FUN_020B5BC8 + + ; _end + arm_func_start FUN_020B5C88 +FUN_020B5C88: ; 0x020B5C88 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x0] + ldr lr, [r3, #0xc] + cmp lr, #0x0 + beq _020B5CD8 +_020B5CA0: + ldrh r12, [lr, #0x0] + cmp r12, r1 + bhi _020B5CCC + ldrh r2, [lr, #0x2] + cmp r1, r2 + ldrlsh r2, [r0, #0xa] + addls r3, lr, #0x8 + subls r0, r1, r12 + mlals r0, r2, r0, r3 + addls sp, sp, #0x4 + ldmlsia sp!, {pc} +_020B5CCC: + ldr lr, [lr, #0x4] + cmp lr, #0x0 + bne _020B5CA0 +_020B5CD8: + add r0, r3, #0x4 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020B5C88 + + ; NNS_G2dFontFindGlyphIndex + arm_func_start FUN_020B5CE4 +FUN_020B5CE4: ; 0x020B5CE4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _020B5D2C +_020B5CFC: + ldrh r2, [r0, #0x0] + cmp r2, r1 + bhi _020B5D20 + ldrh r2, [r0, #0x2] + cmp r1, r2 + bhi _020B5D20 + bl FUN_020B5D7C + add sp, sp, #0x4 + ldmia sp!, {pc} +_020B5D20: + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _020B5CFC +_020B5D2C: + ldr r0, _020B5D38 ; =0x0000FFFF + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B5D38: .word 0x0000FFFF + arm_func_end FUN_020B5CE4 + + ; NNS_G2dFontInitUTF16 + arm_func_start FUN_020B5D3C +FUN_020B5D3C: ; 0x020B5D3C + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, r1 + mov r1, r4 + bl FUN_020B7558 + sub r0, r0, #0x1 + strh r0, [r4, #0x8] + ldrh r0, [r4, #0x8] + cmp r0, #0x0 + movne r1, #0x2 + moveq r1, #0x3 + ldr r0, _020B5D78 ; =FUN_020B7718 + strh r1, [r4, #0xa] + str r0, [r4, #0x4] + ldmia sp!, {r4,pc} + .balign 4 +_020B5D78: .word FUN_020B7718 + arm_func_end FUN_020B5D3C + + ; GetGlyphIndex + arm_func_start FUN_020B5D7C +FUN_020B5D7C: ; 0x020B5D7C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r3, [r0, #0x4] + ldr r2, _020B5E4C ; =0x0000FFFF + cmp r3, #0x0 + beq _020B5DA8 + cmp r3, #0x1 + beq _020B5DC4 + cmp r3, #0x2 + beq _020B5DD8 + b _020B5E40 +_020B5DA8: + ldrh r2, [r0, #0x0] + ldrh r3, [r0, #0xc] + sub r0, r1, r2 + add r0, r3, r0 + mov r0, r0, lsl #0x10 + mov r2, r0, lsr #0x10 + b _020B5E40 +_020B5DC4: + ldrh r2, [r0, #0x0] + sub r1, r1, r2 + add r0, r0, r1, lsl #0x1 + ldrh r2, [r0, #0xc] + b _020B5E40 +_020B5DD8: + ldrh r3, [r0, #0xc] + add r0, r0, #0xc + add r0, r0, #0x2 + sub r3, r3, #0x1 + add lr, r0, r3, lsl #0x2 + cmp r0, lr + bhi _020B5E40 +_020B5DF4: + sub r12, lr, r0 + mov r3, r12, asr #0x1 + add r3, r12, r3, lsr #0x1e + mov r3, r3, asr #0x2 + add r3, r3, r3, lsr #0x1f + mov r12, r3, asr #0x1 + mov r3, r12, lsl #0x2 + ldrh r3, [r0, r3] + add r12, r0, r12, lsl #0x2 + cmp r3, r1 + addcc r0, r12, #0x4 + blo _020B5E38 + cmp r1, r3 + subcc lr, r12, #0x4 + blo _020B5E38 + ldrh r2, [r12, #0x2] + b _020B5E40 +_020B5E38: + cmp r0, lr + bls _020B5DF4 +_020B5E40: + mov r0, r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B5E4C: .word 0x0000FFFF + arm_func_end FUN_020B5D7C + diff --git a/arm9/asm/NNS_G2D_g2d_image.s b/arm9/asm/NNS_G2D_g2d_image.s new file mode 100644 index 000000000..208994cc2 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_image.s @@ -0,0 +1,797 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B10BC +FUN_020B10BC: ; 0x020B10BC + ldr r0, [r0, r1, lsl #0x2] + bx lr + arm_func_end FUN_020B10BC + + ; _end + arm_func_start FUN_020B10C4 +FUN_020B10C4: ; 0x020B10C4 + str r2, [r0, r1, lsl #0x2] + bx lr + arm_func_end FUN_020B10C4 + + ; _end + arm_func_start FUN_020B10CC +FUN_020B10CC: ; 0x020B10CC + mov r2, #0x0 + mvn r1, #0x0 +_020B10D4: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x3 + blt _020B10D4 + bx lr + arm_func_end FUN_020B10CC + + ; _end + arm_func_start FUN_020B10E8 +FUN_020B10E8: ; 0x020B10E8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r10, r0 + ldr r0, [r10, #0x0] + mov r9, r1 + cmp r0, #0x3 + ldr r0, [sp, #0x28] + moveq r7, #0x20 + str r0, [sp, #0x28] + ldrh r0, [r9, #0x0] + movne r7, #0x200 + mov r11, r2 + mov r8, r3 + str r0, [sp, #0x0] + mov r6, #0x0 + cmp r0, #0x0 + bls _020B1210 +_020B112C: + ldr r1, [r9, #0x4] + mov r0, r6, lsl #0x1 + ldrh r2, [r1, r0] + ldr r0, [r10, #0xc] + ldr r1, [r10, #0x8] + mla r5, r7, r2, r11 + mla r4, r7, r6, r0 + bl DC_FlushRange + cmp r8, #0x0 + beq _020B11E0 + cmp r8, #0x1 + beq _020B1168 + cmp r8, #0x2 + beq _020B11A4 + b _020B11F8 +_020B1168: + ldr r0, [r10, #0x4] + cmp r0, #0x0 + beq _020B1190 + bl GX_BeginLoadOBJExtPltt + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl GX_LoadOBJExtPltt + bl GX_EndLoadOBJExtPltt + b _020B11F8 +_020B1190: + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl GX_LoadOBJPltt + b _020B11F8 +_020B11A4: + ldr r0, [r10, #0x4] + cmp r0, #0x0 + beq _020B11CC + bl GXS_BeginLoadOBJExtPltt + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl GXS_LoadOBJExtPltt + bl GXS_EndLoadOBJExtPltt + b _020B11F8 +_020B11CC: + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl GXS_LoadOBJPltt + b _020B11F8 +_020B11E0: + bl GX_BeginLoadTexPltt + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl GX_LoadTexPltt + bl GX_EndLoadTexPltt +_020B11F8: + add r0, r6, #0x1 + mov r0, r0, lsl #0x10 + mov r6, r0, lsr #0x10 + ldr r0, [sp, #0x0] + cmp r6, r0 + blo _020B112C +_020B1210: + ldr r0, [sp, #0x28] + ldr r2, [r10, #0x0] + mov r1, r0 + str r2, [r1, #0x0] + ldr r4, [r10, #0x4] + mov r3, r0 + mov r1, r8 + mov r2, r11 + str r4, [r3, #0x4] + bl FUN_020B19D0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B10E8 + + ; _end + arm_func_start FUN_020B1240 +FUN_020B1240: ; 0x020B1240 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + ldr r5, [r9, #0xc] + ldr r4, [r9, #0x8] + mov r8, r1 + mov r7, r2 + mov r0, r5 + mov r1, r4 + mov r6, r3 + bl DC_FlushRange + cmp r7, #0x0 + beq _020B1300 + cmp r7, #0x1 + beq _020B1288 + cmp r7, #0x2 + beq _020B12C4 + b _020B1318 +_020B1288: + ldr r0, [r9, #0x4] + cmp r0, #0x0 + beq _020B12B0 + bl GX_BeginLoadOBJExtPltt + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl GX_LoadOBJExtPltt + bl GX_EndLoadOBJExtPltt + b _020B1318 +_020B12B0: + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl GX_LoadOBJPltt + b _020B1318 +_020B12C4: + ldr r0, [r9, #0x4] + cmp r0, #0x0 + beq _020B12EC + bl GXS_BeginLoadOBJExtPltt + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl GXS_LoadOBJExtPltt + bl GXS_EndLoadOBJExtPltt + b _020B1318 +_020B12EC: + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl GXS_LoadOBJPltt + b _020B1318 +_020B1300: + bl GX_BeginLoadTexPltt + mov r0, r5 + mov r1, r8 + mov r2, r4 + bl GX_LoadTexPltt + bl GX_EndLoadTexPltt +_020B1318: + ldr r1, [r9, #0x0] + mov r0, r6 + str r1, [r6, #0x0] + ldr r3, [r9, #0x4] + mov r1, r7 + mov r2, r8 + str r3, [r6, #0x4] + bl FUN_020B19D0 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B1240 + + ; NNS_G2dLoadImageVramTransfer + arm_func_start FUN_020B1340 +FUN_020B1340: ; 0x020B1340 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + ldr r0, [r7, #0x14] + ldr r1, [r7, #0x10] + mov r5, r2 + mov r4, r3 + bl DC_FlushRange + cmp r5, #0x0 + ldr r0, [r7, #0x8] + beq _020B13B8 + cmp r5, #0x1 + beq _020B1384 + cmp r5, #0x2 + beq _020B13A0 + b _020B13B8 +_020B1384: + mov r3, #0x4000000 + ldr r2, [r3, #0x0] + ldr r1, _020B1520 ; =0xFFCFFFEF + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] + b _020B13B8 +_020B13A0: + ldr r3, _020B1524 ; =0x04001000 + ldr r1, _020B1520 ; =0xFFCFFFEF + ldr r2, [r3, #0x0] + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] +_020B13B8: + ldr r0, [r7, #0x8] + cmp r0, #0x0 + bne _020B14D8 + ldrh r0, [r7, #0x2] + cmp r0, #0x10 + bgt _020B1408 + cmp r0, #0x10 + bge _020B1434 + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B1444 + ; Jump table + b _020B1444 ; case 0 + b _020B1414 ; case 1 + b _020B141C ; case 2 + b _020B1444 ; case 3 + b _020B1424 ; case 4 + b _020B1444 ; case 5 + b _020B1444 ; case 6 + b _020B1444 ; case 7 + b _020B142C ; case 8 +_020B1408: + cmp r0, #0x20 + beq _020B143C + b _020B1444 +_020B1414: + mov r0, #0x0 + b _020B1448 +_020B141C: + mov r0, #0x1 + b _020B1448 +_020B1424: + mov r0, #0x2 + b _020B1448 +_020B142C: + mov r0, #0x3 + b _020B1448 +_020B1434: + mov r0, #0x4 + b _020B1448 +_020B143C: + mov r0, #0x5 + b _020B1448 +_020B1444: + mov r0, #0x0 +_020B1448: + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + cmp r0, #0x10 + bgt _020B1490 + cmp r0, #0x10 + bge _020B14BC + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B14CC + ; Jump table + b _020B14CC ; case 0 + b _020B149C ; case 1 + b _020B14A4 ; case 2 + b _020B14CC ; case 3 + b _020B14AC ; case 4 + b _020B14CC ; case 5 + b _020B14CC ; case 6 + b _020B14CC ; case 7 + b _020B14B4 ; case 8 +_020B1490: + cmp r0, #0x20 + beq _020B14C4 + b _020B14CC +_020B149C: + mov r0, #0x0 + b _020B14D0 +_020B14A4: + mov r0, #0x1 + b _020B14D0 +_020B14AC: + mov r0, #0x2 + b _020B14D0 +_020B14B4: + mov r0, #0x3 + b _020B14D0 +_020B14BC: + mov r0, #0x4 + b _020B14D0 +_020B14C4: + mov r0, #0x5 + b _020B14D0 +_020B14CC: + mov r0, #0x0 +_020B14D0: + str r0, [r4, #0x10] + b _020B14E8 +_020B14D8: + ldrh r0, [r7, #0x2] + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + str r0, [r4, #0x10] +_020B14E8: + ldr r1, [r7, #0x4] + mov r0, #0x0 + str r1, [r4, #0x14] + str r0, [r4, #0x18] + mov r0, #0x1 + str r0, [r4, #0x1c] + ldr r3, [r7, #0x8] + mov r0, r4 + mov r1, r5 + mov r2, r6 + str r3, [r4, #0x20] + bl FUN_020B1A1C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B1520: .word 0xFFCFFFEF +_020B1524: .word 0x04001000 + arm_func_end FUN_020B1340 + + ; NNS_G2dLoadImage2DMapping + arm_func_start FUN_020B1528 +FUN_020B1528: ; 0x020B1528 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + movs r5, r2 + mov r6, r1 + mov r4, r3 + ldr r0, [r7, #0x8] + beq _020B1590 + cmp r5, #0x1 + beq _020B155C + cmp r5, #0x2 + beq _020B1578 + b _020B1590 +_020B155C: + mov r3, #0x4000000 + ldr r2, [r3, #0x0] + ldr r1, _020B1760 ; =0xFFCFFFEF + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] + b _020B1590 +_020B1578: + ldr r3, _020B1764 ; =0x04001000 + ldr r1, _020B1760 ; =0xFFCFFFEF + ldr r2, [r3, #0x0] + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] +_020B1590: + ldr r0, [r7, #0x14] + ldr r1, [r7, #0x10] + bl DC_FlushRange + cmp r5, #0x0 + beq _020B15B8 + cmp r5, #0x1 + beq _020B15D4 + cmp r5, #0x2 + beq _020B15E8 + b _020B15F8 +_020B15B8: + bl GX_BeginLoadTex + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GX_LoadTex + bl GX_EndLoadTex + b _020B15F8 +_020B15D4: + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GX_LoadOBJ + b _020B15F8 +_020B15E8: + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GXS_LoadOBJ +_020B15F8: + ldr r0, [r7, #0x8] + cmp r0, #0x0 + bne _020B1718 + ldrh r0, [r7, #0x2] + cmp r0, #0x10 + bgt _020B1648 + cmp r0, #0x10 + bge _020B1674 + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B1684 + ; Jump table + b _020B1684 ; case 0 + b _020B1654 ; case 1 + b _020B165C ; case 2 + b _020B1684 ; case 3 + b _020B1664 ; case 4 + b _020B1684 ; case 5 + b _020B1684 ; case 6 + b _020B1684 ; case 7 + b _020B166C ; case 8 +_020B1648: + cmp r0, #0x20 + beq _020B167C + b _020B1684 +_020B1654: + mov r0, #0x0 + b _020B1688 +_020B165C: + mov r0, #0x1 + b _020B1688 +_020B1664: + mov r0, #0x2 + b _020B1688 +_020B166C: + mov r0, #0x3 + b _020B1688 +_020B1674: + mov r0, #0x4 + b _020B1688 +_020B167C: + mov r0, #0x5 + b _020B1688 +_020B1684: + mov r0, #0x0 +_020B1688: + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + cmp r0, #0x10 + bgt _020B16D0 + cmp r0, #0x10 + bge _020B16FC + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B170C + ; Jump table + b _020B170C ; case 0 + b _020B16DC ; case 1 + b _020B16E4 ; case 2 + b _020B170C ; case 3 + b _020B16EC ; case 4 + b _020B170C ; case 5 + b _020B170C ; case 6 + b _020B170C ; case 7 + b _020B16F4 ; case 8 +_020B16D0: + cmp r0, #0x20 + beq _020B1704 + b _020B170C +_020B16DC: + mov r0, #0x0 + b _020B1710 +_020B16E4: + mov r0, #0x1 + b _020B1710 +_020B16EC: + mov r0, #0x2 + b _020B1710 +_020B16F4: + mov r0, #0x3 + b _020B1710 +_020B16FC: + mov r0, #0x4 + b _020B1710 +_020B1704: + mov r0, #0x5 + b _020B1710 +_020B170C: + mov r0, #0x0 +_020B1710: + str r0, [r4, #0x10] + b _020B1728 +_020B1718: + ldrh r0, [r7, #0x2] + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + str r0, [r4, #0x10] +_020B1728: + ldr r1, [r7, #0x4] + mov r0, #0x0 + str r1, [r4, #0x14] + str r0, [r4, #0x18] + mov r0, #0x1 + str r0, [r4, #0x1c] + ldr r3, [r7, #0x8] + mov r0, r4 + mov r1, r5 + mov r2, r6 + str r3, [r4, #0x20] + bl FUN_020B1A1C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B1760: .word 0xFFCFFFEF +_020B1764: .word 0x04001000 + arm_func_end FUN_020B1528 + + ; NNS_G2dLoadImage1DMapping + arm_func_start FUN_020B1768 +FUN_020B1768: ; 0x020B1768 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + movs r5, r2 + mov r6, r1 + mov r4, r3 + ldr r0, [r7, #0x8] + beq _020B17D0 + cmp r5, #0x1 + beq _020B179C + cmp r5, #0x2 + beq _020B17B8 + b _020B17D0 +_020B179C: + mov r3, #0x4000000 + ldr r2, [r3, #0x0] + ldr r1, _020B19A0 ; =0xFFCFFFEF + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] + b _020B17D0 +_020B17B8: + ldr r3, _020B19A4 ; =0x04001000 + ldr r1, _020B19A0 ; =0xFFCFFFEF + ldr r2, [r3, #0x0] + and r1, r2, r1 + orr r0, r1, r0 + str r0, [r3, #0x0] +_020B17D0: + ldr r0, [r7, #0x14] + ldr r1, [r7, #0x10] + bl DC_FlushRange + cmp r5, #0x0 + beq _020B17F8 + cmp r5, #0x1 + beq _020B1814 + cmp r5, #0x2 + beq _020B1828 + b _020B1838 +_020B17F8: + bl GX_BeginLoadTex + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GX_LoadTex + bl GX_EndLoadTex + b _020B1838 +_020B1814: + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GX_LoadOBJ + b _020B1838 +_020B1828: + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x10] + mov r1, r6 + bl GXS_LoadOBJ +_020B1838: + ldr r0, [r7, #0x8] + cmp r0, #0x0 + bne _020B1958 + ldrh r0, [r7, #0x2] + cmp r0, #0x10 + bgt _020B1888 + cmp r0, #0x10 + bge _020B18B4 + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B18C4 + ; Jump table + b _020B18C4 ; case 0 + b _020B1894 ; case 1 + b _020B189C ; case 2 + b _020B18C4 ; case 3 + b _020B18A4 ; case 4 + b _020B18C4 ; case 5 + b _020B18C4 ; case 6 + b _020B18C4 ; case 7 + b _020B18AC ; case 8 +_020B1888: + cmp r0, #0x20 + beq _020B18BC + b _020B18C4 +_020B1894: + mov r0, #0x0 + b _020B18C8 +_020B189C: + mov r0, #0x1 + b _020B18C8 +_020B18A4: + mov r0, #0x2 + b _020B18C8 +_020B18AC: + mov r0, #0x3 + b _020B18C8 +_020B18B4: + mov r0, #0x4 + b _020B18C8 +_020B18BC: + mov r0, #0x5 + b _020B18C8 +_020B18C4: + mov r0, #0x0 +_020B18C8: + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + cmp r0, #0x10 + bgt _020B1910 + cmp r0, #0x10 + bge _020B193C + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020B194C + ; Jump table + b _020B194C ; case 0 + b _020B191C ; case 1 + b _020B1924 ; case 2 + b _020B194C ; case 3 + b _020B192C ; case 4 + b _020B194C ; case 5 + b _020B194C ; case 6 + b _020B194C ; case 7 + b _020B1934 ; case 8 +_020B1910: + cmp r0, #0x20 + beq _020B1944 + b _020B194C +_020B191C: + mov r0, #0x0 + b _020B1950 +_020B1924: + mov r0, #0x1 + b _020B1950 +_020B192C: + mov r0, #0x2 + b _020B1950 +_020B1934: + mov r0, #0x3 + b _020B1950 +_020B193C: + mov r0, #0x4 + b _020B1950 +_020B1944: + mov r0, #0x5 + b _020B1950 +_020B194C: + mov r0, #0x0 +_020B1950: + str r0, [r4, #0x10] + b _020B1968 +_020B1958: + ldrh r0, [r7, #0x2] + str r0, [r4, #0xc] + ldrh r0, [r7, #0x0] + str r0, [r4, #0x10] +_020B1968: + ldr r1, [r7, #0x4] + mov r0, #0x0 + str r1, [r4, #0x14] + str r0, [r4, #0x18] + mov r0, #0x1 + str r0, [r4, #0x1c] + ldr r3, [r7, #0x8] + mov r0, r4 + mov r1, r5 + mov r2, r6 + str r3, [r4, #0x20] + bl FUN_020B1A1C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B19A0: .word 0xFFCFFFEF +_020B19A4: .word 0x04001000 + arm_func_end FUN_020B1768 + + ; _end + arm_func_start FUN_020B19A8 +FUN_020B19A8: ; 0x020B19A8 + add r0, r0, r1, lsl #0x2 + ldr r1, [r0, #0x8] + mvn r0, #0x0 + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020B19A8 + + ; _end + arm_func_start FUN_020B19C4 +FUN_020B19C4: ; 0x020B19C4 + add r0, r0, r1, lsl #0x2 + ldr r0, [r0, #0x8] + bx lr + arm_func_end FUN_020B19C4 + + ; _end + arm_func_start FUN_020B19D0 +FUN_020B19D0: ; 0x020B19D0 + add r0, r0, r1, lsl #0x2 + str r2, [r0, #0x8] + bx lr + arm_func_end FUN_020B19D0 + + ; _end + arm_func_start FUN_020B19DC +FUN_020B19DC: ; 0x020B19DC + mov r3, #0x0 + mvn r2, #0x0 +_020B19E4: + add r1, r0, r3, lsl #0x2 + add r3, r3, #0x1 + str r2, [r1, #0x8] + cmp r3, #0x3 + blt _020B19E4 + bx lr + arm_func_end FUN_020B19DC + + ; _end + arm_func_start FUN_020B19FC +FUN_020B19FC: ; 0x020B19FC + ldr r1, [r0, r1, lsl #0x2] + mvn r0, #0x0 + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020B19FC + + ; _end + arm_func_start FUN_020B1A14 +FUN_020B1A14: ; 0x020B1A14 + ldr r0, [r0, r1, lsl #0x2] + bx lr + arm_func_end FUN_020B1A14 + + ; _end + arm_func_start FUN_020B1A1C +FUN_020B1A1C: ; 0x020B1A1C + str r2, [r0, r1, lsl #0x2] + bx lr + arm_func_end FUN_020B1A1C + + ; _end + arm_func_start FUN_020B1A24 +FUN_020B1A24: ; 0x020B1A24 + mov r2, #0x0 + mvn r1, #0x0 +_020B1A2C: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x3 + blt _020B1A2C + bx lr + arm_func_end FUN_020B1A24 + diff --git a/arm9/asm/NNS_G2D_g2d_load.s b/arm9/asm/NNS_G2D_g2d_load.s new file mode 100644 index 000000000..ea06ed9c9 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_load.s @@ -0,0 +1,58 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B01B0 +FUN_020B01B0: ; 0x020B01B0 + ldr r1, [r0, #0x4] + mov r12, #0x0 + add r1, r1, r0 + str r1, [r0, #0x4] + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + bxls lr +_020B01CC: + ldr r3, [r0, #0x4] + add r1, r12, #0x1 + ldr r2, [r3, r12, lsl #0x2] + mov r1, r1, lsl #0x10 + add r2, r0, r2 + str r2, [r3, r12, lsl #0x2] + ldrh r2, [r0, #0x0] + mov r12, r1, lsr #0x10 + cmp r12, r2 + blo _020B01CC + bx lr + arm_func_end FUN_020B01B0 + + ; _end + arm_func_start FUN_020B01F8 +FUN_020B01F8: ; 0x020B01F8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r2, [r0, #0xc] + ldrh r12, [r0, #0xe] + mov lr, #0x0 + add r0, r0, r2 + cmp r12, #0x0 + bls _020B0244 +_020B0218: + ldr r2, [r0, #0x0] + cmp r2, r1 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + add r2, lr, #0x1 + mov r2, r2, lsl #0x10 + ldr r3, [r0, #0x4] + mov lr, r2, lsr #0x10 + cmp lr, r12 + add r0, r0, r3 + blo _020B0218 +_020B0244: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020B01F8 + diff --git a/arm9/asm/NNS_G2D_g2d_multicellan.s b/arm9/asm/NNS_G2D_g2d_multicellan.s new file mode 100644 index 000000000..c6aaf3e6a --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_multicellan.s @@ -0,0 +1,498 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B20C8 +FUN_020B20C8: ; 0x020B20C8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r6, #0x0 + str r6, [r0, #0x38] + ldr r7, [sp, #0x30] + str r6, [r0, #0x30] + mov r10, r1 + str r7, [r0, #0x34] + str r0, [sp, #0x0] + movs r8, r3 + mov r9, r2 + str r10, [r0, #0x3c] + ldr r11, [sp, #0x34] + beq _020B215C + mov r0, #0x1 + str r6, [sp, #0x8] + str r0, [sp, #0x4] +_020B210C: + mov r0, #0x28 + mul r4, r6, r0 + ldr r1, [sp, #0x4] + add r0, r10, r4 + bl FUN_020B1AD4 + mov r0, #0x54 + mla r5, r6, r0, r9 + ldr r1, [sp, #0x8] + mov r0, r7 + str r5, [r10, r4] + bl FUN_020AFC04 + mov r1, r0 + mov r0, r5 + mov r2, r11 + bl FUN_020B1F80 + add r0, r6, #0x1 + mov r0, r0, lsl #0x10 + mov r6, r0, lsr #0x10 + cmp r6, r8 + blo _020B210C +_020B215C: + ldr r0, [sp, #0x0] + bl FUN_020B04C0 + ldr r0, [sp, #0x0] + ldr r3, [sp, #0x38] + ldr r2, [sp, #0x0] + add r0, r0, #0x44 + mov r1, #0x1 + str r3, [r2, #0x40] + bl FUN_020B1A68 + ldr r0, [sp, #0x0] + mov r1, #0x0 + strh r1, [r0, #0x2c] + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B20C8 + + ; _end + arm_func_start FUN_020B2194 +FUN_020B2194: ; 0x020B2194 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + bl FUN_020B0518 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + mov r0, r7 + bl FUN_020B06E0 + mov r4, r0 + ldrh r1, [r4, #0x0] + ldr r0, [r7, #0x40] + bl FUN_020AFF34 + ldr r1, [r7, #0x18] + mov r6, r0 + ldr r1, [r1, #0x4] + add r0, r7, #0x44 + and r5, r1, #0xff + mov r1, #0x1 + bl FUN_020B1A68 + cmp r5, #0x0 + beq _020B2234 + cmp r5, #0x2 + bne _020B2208 + ldrsh r1, [r4, #0x4] + ldrsh r2, [r4, #0x6] + add r0, r7, #0x44 + bl FUN_020B1AB4 + b _020B2234 +_020B2208: + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r7, #0x44 + bl FUN_020B1A78 + ldrh r1, [r4, #0x2] + add r0, r7, #0x44 + bl FUN_020B1A98 + ldrsh r1, [r4, #0xc] + ldrsh r2, [r4, #0xe] + add r0, r7, #0x44 + bl FUN_020B1AB4 +_020B2234: + ldrh r2, [r7, #0x2c] + mov r1, r6 + add r0, r7, #0x30 + bl FUN_020B24E0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B2194 + + ; _end + arm_func_start FUN_020B224C +FUN_020B224C: ; 0x020B224C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r2, [r4, #0x0] + mov r6, r1 + ldrh r5, [r2, #0x4] + bl FUN_020B0534 + cmp r0, #0x0 + beq _020B2318 + ldrh r1, [r4, #0x2c] + mov r0, r4 + add r1, r1, r5 + strh r1, [r4, #0x2c] + bl FUN_020B06E0 + mov r5, r0 + ldrh r1, [r5, #0x0] + ldr r0, [r4, #0x40] + bl FUN_020AFF34 + ldr r1, [r4, #0x18] + mov r7, r0 + ldr r1, [r1, #0x4] + add r0, r4, #0x44 + and r6, r1, #0xff + mov r1, #0x1 + bl FUN_020B1A68 + cmp r6, #0x0 + beq _020B2300 + cmp r6, #0x2 + bne _020B22D4 + ldrsh r1, [r5, #0x4] + ldrsh r2, [r5, #0x6] + add r0, r4, #0x44 + bl FUN_020B1AB4 + b _020B2300 +_020B22D4: + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r0, r4, #0x44 + bl FUN_020B1A78 + ldrh r1, [r5, #0x2] + add r0, r4, #0x44 + bl FUN_020B1A98 + ldrsh r1, [r5, #0xc] + ldrsh r2, [r5, #0xe] + add r0, r4, #0x44 + bl FUN_020B1AB4 +_020B2300: + ldrh r2, [r4, #0x2c] + mov r1, r7 + add r0, r4, #0x30 + bl FUN_020B24E0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} +_020B2318: + mov r1, r6 + add r0, r4, #0x30 + bl FUN_020B232C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B224C + + ; _end + arm_func_start FUN_020B232C +FUN_020B232C: ; 0x020B232C + stmdb sp!, {r4-r8,lr} + mov r7, r0 + ldr r0, [r7, #0x8] + mov r6, r1 + cmp r0, #0x1 + bne _020B238C + ldr r0, [r7, #0x0] + ldr r4, [r7, #0xc] + ldrh r0, [r0, #0x2] + mov r5, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r8,pc} + mov r8, #0x58 +_020B2360: + mla r0, r5, r8, r4 + mov r1, r6 + bl FUN_020B1EC4 + ldr r1, [r7, #0x0] + add r0, r5, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r1, #0x2] + mov r5, r0, lsr #0x10 + cmp r5, r1 + blo _020B2360 + ldmia sp!, {r4-r8,pc} +_020B238C: + ldr r0, [r7, #0x0] + ldr r4, [r7, #0xc] + ldrh r0, [r0, #0x0] + mov r5, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r8,pc} + mov r8, #0x28 +_020B23A8: + mul r0, r5, r8 + ldr r0, [r4, r0] + mov r1, r6 + bl FUN_020B1EC4 + ldr r1, [r7, #0x0] + add r0, r5, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r1, #0x0] + mov r5, r0, lsr #0x10 + cmp r5, r1 + blo _020B23A8 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B232C + + ; _end + arm_func_start FUN_020B23D8 +FUN_020B23D8: ; 0x020B23D8 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldrh r0, [r5, #0x0] + mov r4, #0x0 + mov r6, r4 + cmp r0, #0x0 + bls _020B2424 +_020B23F4: + mov r0, r5 + mov r1, r6 + bl FUN_020AFF34 + ldrh r0, [r0, #0x0] + ldrh r1, [r5, #0x0] + cmp r0, r4 + movhi r4, r0 + add r0, r6, #0x1 + mov r0, r0, lsl #0x10 + mov r6, r0, lsr #0x10 + cmp r6, r1 + blo _020B23F4 +_020B2424: + mov r0, r4 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B23D8 + + ; _end + arm_func_start FUN_020B242C +FUN_020B242C: ; 0x020B242C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + bl FUN_020B0438 + mov r1, #0x0 + mov r0, r7 + strh r1, [r7, #0x2c] + bl FUN_020B06E0 + mov r4, r0 + ldrh r1, [r4, #0x0] + ldr r0, [r7, #0x40] + bl FUN_020AFF34 + ldr r1, [r7, #0x18] + mov r6, r0 + ldr r1, [r1, #0x4] + add r0, r7, #0x44 + and r5, r1, #0xff + mov r1, #0x1 + bl FUN_020B1A68 + cmp r5, #0x0 + beq _020B24C8 + cmp r5, #0x2 + bne _020B249C + ldrsh r1, [r4, #0x4] + ldrsh r2, [r4, #0x6] + add r0, r7, #0x44 + bl FUN_020B1AB4 + b _020B24C8 +_020B249C: + ldr r1, [r4, #0x4] + ldr r2, [r4, #0x8] + add r0, r7, #0x44 + bl FUN_020B1A78 + ldrh r1, [r4, #0x2] + add r0, r7, #0x44 + bl FUN_020B1A98 + ldrsh r1, [r4, #0xc] + ldrsh r2, [r4, #0xe] + add r0, r7, #0x44 + bl FUN_020B1AB4 +_020B24C8: + ldrh r2, [r7, #0x2c] + mov r1, r6 + add r0, r7, #0x30 + bl FUN_020B24E0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B242C + + ; _end + arm_func_start FUN_020B24E0 +FUN_020B24E0: ; 0x020B24E0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r10, r1 + str r0, [sp, #0x0] + str r10, [r0, #0x0] + ldr r0, [r0, #0x8] + mov r9, r2 + cmp r0, #0x1 + bne _020B2654 + ldrh r1, [r10, #0x2] + ldr r0, [sp, #0x0] + mov r4, #0x0 + ldr r8, [r0, #0xc] + cmp r1, #0x0 + bls _020B2544 + mov r3, r4 + mov r0, #0x58 +_020B2524: + mla r1, r4, r0, r8 + str r3, [r1, #0x54] + add r1, r4, #0x1 + mov r1, r1, lsl #0x10 + ldrh r2, [r10, #0x2] + mov r4, r1, lsr #0x10 + cmp r4, r2 + blo _020B2524 +_020B2544: + ldrh r0, [r10, #0x0] + mov r5, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x14 + ldmlsia sp!, {r4-r11,pc} + str r5, [sp, #0x4] + mov r11, #0x1 +_020B2560: + ldr r0, [r10, #0x4] + mov r1, #0x58 + add r7, r0, r5, lsl #0x3 + ldrh r0, [r7, #0x6] + and r0, r0, #0xff00 + mov r0, r0, lsl #0x8 + mov r0, r0, lsr #0x10 + mla r6, r0, r1, r8 + ldr r0, [r6, #0x54] + cmp r0, #0x0 + bne _020B2634 + ldr r0, [sp, #0x0] + ldrh r1, [r7, #0x0] + ldr r0, [r0, #0x4] + bl FUN_020AFC04 + mov r4, r0 + mov r0, r6 + mov r1, r4 + bl FUN_020B1EE4 + str r11, [r6, #0x8] + ldrh r0, [r7, #0x6] + and r0, r0, #0xf + cmp r0, #0x1 + bne _020B2630 + ldrh r1, [r4, #0x0] + ldr r7, [sp, #0x4] + mov r3, r7 + cmp r1, #0x0 + bls _020B25F0 + ldr r2, [r4, #0xc] +_020B25D8: + add r0, r2, r3, lsl #0x3 + ldrh r0, [r0, #0x4] + add r3, r3, #0x1 + cmp r3, r1 + add r7, r7, r0 + blo _020B25D8 +_020B25F0: + mov r0, r6 + bl FUN_020B0408 + cmp r0, #0x0 + beq _020B261C + mov r0, r9 + mov r1, r7 + bl _u32_div_f + mov r0, r6 + mov r1, r1, lsl #0xc + bl FUN_020B1EC4 + b _020B2630 +_020B261C: + cmp r9, r7 + movcc r7, r9 + mov r0, r6 + mov r1, r7, lsl #0xc + bl FUN_020B1EC4 +_020B2630: + str r11, [r6, #0x54] +_020B2634: + add r0, r5, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r10, #0x0] + mov r5, r0, lsr #0x10 + cmp r5, r1 + blo _020B2560 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} +_020B2654: + ldrh r1, [r10, #0x0] + ldr r0, [sp, #0x0] + mov r4, #0x0 + cmp r1, #0x0 + ldr r11, [r0, #0xc] + addls sp, sp, #0x14 + ldmlsia sp!, {r4-r11,pc} + mov r0, #0x1 + str r4, [sp, #0xc] + str r0, [sp, #0x8] +_020B267C: + mov r0, #0x28 + mul r2, r4, r0 + ldr r3, [r10, #0x4] + mov r0, r4, lsl #0x3 + ldrh r1, [r3, r0] + ldr r0, [sp, #0x0] + ldr r6, [r11, r2] + ldr r0, [r0, #0x4] + add r7, r3, r4, lsl #0x3 + bl FUN_020AFC04 + mov r5, r0 + mov r0, r6 + mov r1, r5 + bl FUN_020B1EE4 + ldr r0, [sp, #0x8] + str r0, [r6, #0x8] + ldrh r0, [r7, #0x6] + and r0, r0, #0xf + cmp r0, #0x1 + bne _020B2740 + ldrh r1, [r5, #0x0] + ldr r8, [sp, #0xc] + mov r0, r8 + cmp r1, #0x0 + bls _020B2700 + ldr r3, [r5, #0xc] +_020B26E4: + add r1, r3, r0, lsl #0x3 + ldrh r2, [r1, #0x4] + add r0, r0, #0x1 + ldrh r1, [r5, #0x0] + add r8, r8, r2 + cmp r0, r1 + blo _020B26E4 +_020B2700: + mov r0, r6 + bl FUN_020B0408 + cmp r0, #0x0 + beq _020B272C + mov r0, r9 + mov r1, r8 + bl _u32_div_f + mov r0, r6 + mov r1, r1, lsl #0xc + bl FUN_020B1EC4 + b _020B2740 +_020B272C: + cmp r9, r8 + movcc r8, r9 + mov r0, r6 + mov r1, r8, lsl #0xc + bl FUN_020B1EC4 +_020B2740: + mov r0, #0x28 + mla r3, r4, r0, r11 + ldr r0, [sp, #0x8] + str r0, [r3, #0x8] + ldrsh r1, [r7, #0x2] + ldrsh r2, [r7, #0x4] + add r0, r3, #0xc + bl FUN_020B1AB4 + add r0, r4, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r10, #0x0] + mov r4, r0, lsr #0x10 + cmp r4, r1 + blo _020B267C + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B24E0 + diff --git a/arm9/asm/NNS_G2D_g2d_nan_load.s b/arm9/asm/NNS_G2D_g2d_nan_load.s new file mode 100644 index 000000000..4137e8aeb --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_nan_load.s @@ -0,0 +1,161 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020AFC04 +FUN_020AFC04: ; 0x020AFC04 + ldrh r2, [r0, #0x0] + cmp r2, r1 + ldrhi r0, [r0, #0x4] + addhi r0, r0, r1, lsl #0x4 + movls r0, #0x0 + bx lr + arm_func_end FUN_020AFC04 + + ; _end + arm_func_start FUN_020AFC1C +FUN_020AFC1C: ; 0x020AFC1C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r1, [r0, #0x4] + mov r6, #0x0 + add r1, r1, r0 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, r0 + str r1, [r0, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, r0 + str r1, [r0, #0xc] + ldrh r1, [r0, #0x0] + ldr r4, [r0, #0x4] + ldr lr, [r0, #0x8] + cmp r1, #0x0 + ldr r12, [r0, #0xc] + bls _020AFCCC + mov r1, r6 +_020AFC68: + add r2, r4, r6, lsl #0x4 + ldr r5, [r2, #0xc] + mov r3, r6, lsl #0x4 + add r5, lr, r5 + str r5, [r2, #0xc] + ldrh r7, [r4, r3] + mov r5, r1 + cmp r7, #0x0 + bls _020AFCB4 +_020AFC8C: + ldr r9, [r2, #0xc] + add r7, r5, #0x1 + ldr r8, [r9, r5, lsl #0x3] + mov r7, r7, lsl #0x10 + add r8, r12, r8 + str r8, [r9, r5, lsl #0x3] + ldrh r8, [r4, r3] + mov r5, r7, lsr #0x10 + cmp r5, r8 + blo _020AFC8C +_020AFCB4: + add r2, r6, #0x1 + mov r2, r2, lsl #0x10 + ldrh r3, [r0, #0x0] + mov r6, r2, lsr #0x10 + cmp r6, r3 + blo _020AFC68 +_020AFCCC: + ldr r1, [r0, #0x14] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,pc} + add r1, r1, r0 + str r1, [r0, #0x14] + ldr r1, [r0, #0x14] + mov r12, #0x0 + add r2, r1, #0x8 + ldr r0, [r2, #0x4] + add r0, r0, r2 + str r0, [r2, #0x4] + ldrh r0, [r1, #0x8] + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r9,pc} + mov r0, r12 + mov r6, r12 +_020AFD14: + ldr r5, [r2, #0x4] + mov r3, r6 + add r1, r5, r0 + ldr r4, [r1, #0x4] + add r4, r4, r2 + str r4, [r1, #0x4] + ldr r4, [r1, #0x8] + add r4, r4, r2 + str r4, [r1, #0x8] + ldrh r4, [r5, r0] + cmp r4, #0x0 + bls _020AFD6C + mov r7, r6 +_020AFD48: + ldr r5, [r1, #0x8] + add r3, r3, #0x1 + ldr r4, [r5, r7] + add r4, r4, r2 + str r4, [r5, r7] + ldrh r4, [r1, #0x0] + add r7, r7, #0x4 + cmp r3, r4 + blo _020AFD48 +_020AFD6C: + ldrh r1, [r2, #0x0] + add r12, r12, #0x1 + add r0, r0, #0xc + cmp r12, r1 + blo _020AFD14 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020AFC1C + + ; NNS_G2dGetUnpackedMCAnimBank + arm_func_start thunk_FUN_020afda0 +thunk_FUN_020afda0: ; 0x020AFD88 + ldr ip, _020AFD90 ; =FUN_020AFDA0 + bx r12 + .balign 4 +_020AFD90: .word FUN_020AFDA0 + arm_func_end thunk_FUN_020afda0 + + ; NNS_G2dGetUnpackedAnimBank + arm_func_start thunk_FUN_020afda0_2 +thunk_FUN_020afda0_2: ; 0x020AFD94 + ldr ip, _020AFD9C ; =FUN_020AFDA0 + bx r12 + .balign 4 +_020AFD9C: .word FUN_020AFDA0 + arm_func_end thunk_FUN_020afda0_2 + + ; GetUnpackedAnimBankImpl_ + arm_func_start FUN_020AFDA0 +FUN_020AFDA0: ; 0x020AFDA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020AFDE4 ; =0x41424E4B + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020AFC1C + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AFDE4: .word 0x41424E4B + arm_func_end FUN_020AFDA0 + diff --git a/arm9/asm/NNS_G2D_g2d_ncg_load.s b/arm9/asm/NNS_G2D_g2d_ncg_load.s new file mode 100644 index 000000000..78956dde9 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_ncg_load.s @@ -0,0 +1,71 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B0020 +FUN_020B0020: ; 0x020B0020 + ldr r1, [r0, #0x14] + add r1, r1, r0 + str r1, [r0, #0x14] + bx lr + arm_func_end FUN_020B0020 + + ; NNS_G2dGetUnpackedBGCharacterData + arm_func_start FUN_020B0030 +FUN_020B0030: ; 0x020B0030 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020B0074 ; =0x43484152 + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020B0020 + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B0074: .word 0x43484152 + arm_func_end FUN_020B0030 + + ; _end + arm_func_start FUN_020B0078 +FUN_020B0078: ; 0x020B0078 + ldr r1, [r0, #0x14] + add r1, r1, r0 + str r1, [r0, #0x14] + bx lr + arm_func_end FUN_020B0078 + + ; NNS_G2dGetUnpackedCharacterData + arm_func_start FUN_020B0088 +FUN_020B0088: ; 0x020B0088 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020B00CC ; =0x43484152 + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020B0078 + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B00CC: .word 0x43484152 + arm_func_end FUN_020B0088 + diff --git a/arm9/asm/NNS_G2D_g2d_ncl_load.s b/arm9/asm/NNS_G2D_g2d_ncl_load.s new file mode 100644 index 000000000..ecaa454b1 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_ncl_load.s @@ -0,0 +1,71 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B00D0 +FUN_020B00D0: ; 0x020B00D0 + ldr r1, [r0, #0xc] + add r1, r1, r0 + str r1, [r0, #0xc] + bx lr + arm_func_end FUN_020B00D0 + + ; _end + arm_func_start FUN_020B00E0 +FUN_020B00E0: ; 0x020B00E0 + ldr r1, [r0, #0x4] + add r1, r1, r0 + str r1, [r0, #0x4] + bx lr + arm_func_end FUN_020B00E0 + + ; NNS_G2dGetUnpackedPaletteCompressInfo + arm_func_start FUN_020B00F0 +FUN_020B00F0: ; 0x020B00F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020B0134 ; =0x50434D50 + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020B00E0 + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B0134: .word 0x50434D50 + arm_func_end FUN_020B00F0 + + ; NNS_G2dGetUnpackedPaletteData + arm_func_start FUN_020B0138 +FUN_020B0138: ; 0x020B0138 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020B017C ; =0x504C5454 + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020B00D0 + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B017C: .word 0x504C5454 + arm_func_end FUN_020B0138 + diff --git a/arm9/asm/NNS_G2D_g2d_nft_load.s b/arm9/asm/NNS_G2D_g2d_nft_load.s new file mode 100644 index 000000000..1bd9a1bf8 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_nft_load.s @@ -0,0 +1,183 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNSi_G2dUnpackNFT + arm_func_start FUN_020B7468 +FUN_020B7468: ; 0x020B7468 + stmdb sp!, {r4-r6,lr} + ldrh r2, [r0, #0xc] + ldrh r3, [r0, #0xe] + mov r1, #0x0 + add r2, r0, r2 + cmp r3, #0x0 + ldmleia sp!, {r4-r6,pc} + ldr r3, _020B7548 ; =0x46494E46 + ldr ip, _020B754C ; =0x43574448 + ldr r4, _020B7550 ; =0x434D4150 + ldr lr, _020B7554 ; =0x43474C50 +_020B7494: + ldr r5, [r2, #0x0] + cmp r5, r4 + bhi _020B74B0 + cmp r5, r4 + bhs _020B7518 + cmp r5, lr + b _020B752C +_020B74B0: + cmp r5, r12 + bhi _020B74C4 + cmp r5, r12 + beq _020B7500 + b _020B752C +_020B74C4: + cmp r5, r3 + bne _020B752C + add r6, r2, #0x8 + ldr r5, [r6, #0x8] + add r5, r5, r0 + str r5, [r6, #0x8] + ldr r5, [r6, #0xc] + cmp r5, #0x0 + addne r5, r5, r0 + strne r5, [r6, #0xc] + ldr r5, [r6, #0x10] + cmp r5, #0x0 + addne r5, r5, r0 + strne r5, [r6, #0x10] + b _020B752C +_020B7500: + add r6, r2, #0x8 + ldr r5, [r6, #0x4] + cmp r5, #0x0 + addne r5, r5, r0 + strne r5, [r6, #0x4] + b _020B752C +_020B7518: + add r6, r2, #0x8 + ldr r5, [r6, #0x8] + cmp r5, #0x0 + addne r5, r5, r0 + strne r5, [r6, #0x8] +_020B752C: + ldrh r5, [r0, #0xe] + ldr r6, [r2, #0x4] + add r1, r1, #0x1 + cmp r1, r5 + add r2, r2, r6 + blt _020B7494 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B7548: .word 0x46494E46 +_020B754C: .word 0x43574448 +_020B7550: .word 0x434D4150 +_020B7554: .word 0x43474C50 + arm_func_end FUN_020B7468 + + ; NNSi_G2dGetUnpackedFont + arm_func_start FUN_020B7558 +FUN_020B7558: ; 0x020B7558 + stmdb sp!, {r4-r6,lr} + movs r6, r0 + mov r5, r1 + beq _020B75C8 + cmp r6, #0x0 + beq _020B7584 + ldr r1, [r6, #0x0] + ldr r0, _020B76A8 ; =0x4E465452 + cmp r1, r0 + moveq r0, #0x1 + beq _020B7588 +_020B7584: + mov r0, #0x0 +_020B7588: + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B75CC + cmp r6, #0x0 + beq _020B75B4 + ldrh r0, [r6, #0x6] + cmp r0, #0x100 + movcs r0, #0x1 + bhs _020B75B8 +_020B75B4: + mov r0, #0x0 +_020B75B8: + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + b _020B75CC +_020B75C8: + mov r0, #0x0 +_020B75CC: + cmp r0, #0x0 + movne r4, #0x0 + bne _020B7654 + cmp r6, #0x0 + beq _020B7640 + cmp r6, #0x0 + beq _020B75FC + ldr r1, [r6, #0x0] + ldr r0, _020B76A8 ; =0x4E465452 + cmp r1, r0 + moveq r0, #0x1 + beq _020B7600 +_020B75FC: + mov r0, #0x0 +_020B7600: + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B7644 + cmp r6, #0x0 + beq _020B762C + ldrh r0, [r6, #0x6] + cmp r0, #0x1 + movcs r0, #0x1 + bhs _020B7630 +_020B762C: + mov r0, #0x0 +_020B7630: + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + b _020B7644 +_020B7640: + mov r0, #0x0 +_020B7644: + cmp r0, #0x0 + movne r4, #0x1 + bne _020B7654 + bl OS_Terminate +_020B7654: + mov r0, r6 + bl FUN_020B7468 + ldr r1, _020B76AC ; =0x46494E46 + mov r0, r6 + bl FUN_020B01F8 + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r6,pc} + add r0, r0, #0x8 + str r0, [r5, #0x0] + cmp r4, #0x0 + beq _020B76A0 + ldr r2, [r5, #0x0] + mov r1, #0x0 + ldrsb r0, [r2, #0x6] + strb r0, [r2, #0x7] + ldr r0, [r5, #0x0] + strb r1, [r0, #0x6] +_020B76A0: + add r0, r4, #0x1 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B76A8: .word 0x4E465452 +_020B76AC: .word 0x46494E46 + arm_func_end FUN_020B7558 + diff --git a/arm9/asm/NNS_G2D_g2d_nmc_load.s b/arm9/asm/NNS_G2D_g2d_nmc_load.s new file mode 100644 index 000000000..eb13c705e --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_nmc_load.s @@ -0,0 +1,88 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020AFF34 +FUN_020AFF34: ; 0x020AFF34 + ldrh r2, [r0, #0x0] + cmp r1, r2 + ldrcc r0, [r0, #0x4] + addcc r0, r0, r1, lsl #0x3 + movcs r0, #0x0 + bx lr + arm_func_end FUN_020AFF34 + + ; _end + arm_func_start FUN_020AFF4C +FUN_020AFF4C: ; 0x020AFF4C + stmdb sp!, {r4,lr} + ldr r1, [r0, #0x4] + mov r4, #0x0 + add r1, r1, r0 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, r0 + str r1, [r0, #0x8] + ldrh r1, [r0, #0x0] + ldr lr, [r0, #0x4] + cmp r1, #0x0 + bls _020AFFA8 +_020AFF7C: + add r3, lr, r4, lsl #0x3 + ldr r12, [r0, #0x8] + ldr r2, [r3, #0x4] + add r1, r4, #0x1 + add r2, r12, r2 + str r2, [r3, #0x4] + mov r1, r1, lsl #0x10 + ldrh r2, [r0, #0x0] + mov r4, r1, lsr #0x10 + cmp r4, r2 + blo _020AFF7C +_020AFFA8: + ldr r1, [r0, #0x10] + cmp r1, #0x0 + ldmeqia sp!, {r4,pc} + add r1, r1, r0 + str r1, [r0, #0x10] + ldr r0, [r0, #0x10] + bl FUN_020AFFC8 + ldmia sp!, {r4,pc} + arm_func_end FUN_020AFF4C + + ; UnpackExtendedData_ + arm_func_start FUN_020AFFC8 +FUN_020AFFC8: ; 0x020AFFC8 + ldr ip, _020AFFD4 ; =FUN_020B01B0 + add r0, r0, #0x8 + bx r12 + .balign 4 +_020AFFD4: .word FUN_020B01B0 + arm_func_end FUN_020AFFC8 + + ; NNS_G2dGetUnpackedMultiCellBank + arm_func_start FUN_020AFFD8 +FUN_020AFFD8: ; 0x020AFFD8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020B001C ; =0x4D43424B + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020AFF4C + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B001C: .word 0x4D43424B + arm_func_end FUN_020AFFD8 + diff --git a/arm9/asm/NNS_G2D_g2d_nob_load.s b/arm9/asm/NNS_G2D_g2d_nob_load.s new file mode 100644 index 000000000..ddeb473cb --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_nob_load.s @@ -0,0 +1,118 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020AFDE8 +FUN_020AFDE8: ; 0x020AFDE8 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldr r1, [r5, #0x4] + add r1, r1, r5 + str r1, [r5, #0x4] + bl FUN_020AFF10 + ldrh r1, [r5, #0x0] + mov r4, r0 + mov r6, #0x0 + cmp r1, #0x0 + bls _020AFE44 +_020AFE14: + mov r0, r5 + mov r1, r6 + bl FUN_020AFE8C + ldr r2, [r0, #0x4] + add r1, r6, #0x1 + add r2, r2, r4 + str r2, [r0, #0x4] + mov r0, r1, lsl #0x10 + ldrh r1, [r5, #0x0] + mov r6, r0, lsr #0x10 + cmp r6, r1 + blo _020AFE14 +_020AFE44: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + beq _020AFE6C + add r0, r0, r5 + str r0, [r5, #0xc] + ldr r1, [r5, #0xc] + ldr r0, [r1, #0x4] + add r0, r0, r1 + str r0, [r1, #0x4] + str r1, [r5, #0xc] +_020AFE6C: + ldr r0, [r5, #0x14] + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + add r0, r0, r5 + str r0, [r5, #0x14] + ldr r0, [r5, #0x14] + bl FUN_020AFF00 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AFDE8 + + ; _end + arm_func_start FUN_020AFE8C +FUN_020AFE8C: ; 0x020AFE8C + ldrh r2, [r0, #0x0] + cmp r1, r2 + movcs r0, #0x0 + bxcs lr + ldrh r2, [r0, #0x2] + ands r2, r2, #0x1 + ldrne r0, [r0, #0x4] + addne r0, r0, r1, lsl #0x4 + ldreq r0, [r0, #0x4] + addeq r0, r0, r1, lsl #0x3 + bx lr + arm_func_end FUN_020AFE8C + + ; NNS_G2dGetUnpackedCellBank + arm_func_start FUN_020AFEB8 +FUN_020AFEB8: ; 0x020AFEB8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldr r1, _020AFEFC ; =0x4345424B + bl FUN_020B01F8 + movs r4, r0 + moveq r0, #0x0 + addeq sp, sp, #0x4 + streq r0, [r5, #0x0] + ldmeqia sp!, {r4-r5,pc} + add r0, r4, #0x8 + bl FUN_020AFDE8 + add r0, r4, #0x8 + str r0, [r5, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AFEFC: .word 0x4345424B + arm_func_end FUN_020AFEB8 + + ; UnPackExtendedData_ + arm_func_start FUN_020AFF00 +FUN_020AFF00: ; 0x020AFF00 + ldr ip, _020AFF0C ; =FUN_020B01B0 + add r0, r0, #0x8 + bx r12 + .balign 4 +_020AFF0C: .word FUN_020B01B0 + arm_func_end FUN_020AFF00 + + ; _end + arm_func_start FUN_020AFF10 +FUN_020AFF10: ; 0x020AFF10 + ldrh r1, [r0, #0x2] + ands r1, r1, #0x1 + ldrneh r1, [r0, #0x0] + ldrne r0, [r0, #0x4] + addne r0, r0, r1, lsl #0x4 + ldreqh r1, [r0, #0x0] + ldreq r0, [r0, #0x4] + addeq r0, r0, r1, lsl #0x3 + bx lr + arm_func_end FUN_020AFF10 + diff --git a/arm9/asm/NNS_G2D_g2d_node.s b/arm9/asm/NNS_G2D_g2d_node.s new file mode 100644 index 000000000..8e918dda9 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_node.s @@ -0,0 +1,20 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNSi_G2dInitializeNode + arm_func_start FUN_020B1AD4 +FUN_020B1AD4: ; 0x020B1AD4 + mov r2, #0x0 + str r2, [r0, #0x0] + str r1, [r0, #0x4] + mov r1, #0x1 + str r1, [r0, #0x8] + ldr ip, _020B1AF4 ; =FUN_020B1A68 + add r0, r0, #0xc + bx r12 + .balign 4 +_020B1AF4: .word FUN_020B1A68 + arm_func_end FUN_020B1AD4 + diff --git a/arm9/asm/NNS_G2D_g2d_nsc_load.s b/arm9/asm/NNS_G2D_g2d_nsc_load.s new file mode 100644 index 000000000..47f762648 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_nsc_load.s @@ -0,0 +1,23 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G2dGetUnpackedScreenData + arm_func_start FUN_020B0180 +FUN_020B0180: ; 0x020B0180 + stmdb sp!, {r4,lr} + mov r4, r1 + ldr r1, _020B01AC ; =0x5343524E + bl FUN_020B01F8 + cmp r0, #0x0 + addne r0, r0, #0x8 + strne r0, [r4, #0x0] + movne r0, #0x1 + moveq r0, #0x0 + streq r0, [r4, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020B01AC: .word 0x5343524E + arm_func_end FUN_020B0180 + diff --git a/arm9/asm/NNS_G2D_g2d_oam.s b/arm9/asm/NNS_G2D_g2d_oam.s new file mode 100644 index 000000000..9ef72ad06 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_oam.s @@ -0,0 +1,724 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; NNSi_objSizeHTbl + .global UNK_020FF894 +UNK_020FF894: ; 0x020FF894 + .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 + .byte 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 + + ; NNSi_objSizeWTbl + .global UNK_020FF8AC +UNK_020FF8AC: ; 0x020FF8AC + .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 + .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 + + ; static const in function + .section .data + + ; funcTbl$8497 + .global UNK_0210655C +UNK_0210655C: ; 0x0210655C + .word FUN_020B1088 + .word FUN_020B1098 + .word 0 + .word 0 + .word 0 + + .section .bss + + ; numRegisterdInstance_ + .global UNK_021CCD9C +UNK_021CCD9C: ; 0x021CCD9C + .space 0x4 + + ; oamCache_ + .global UNK_021CCDA0 +UNK_021CCDA0: ; 0x021CCDA0 + .space 0x100 + + ; oamCache_ + 0x100 + .global UNK_021CCEA0 +UNK_021CCEA0: ; 0x021CCEA0 + .space 0x400 + + ; oamCache_ + 0x500 + .global UNK_021CD2A0 +UNK_021CD2A0: ; 0x021CD2A0 + .space 0x40 + + ; oamCache_ + 0x540 + .global UNK_021CD2E0 +UNK_021CD2E0: ; 0x021CD2E0 + .space 0x100 + + ; oamCache_ + 0x640 + .global UNK_021CD3E0 +UNK_021CD3E0: ; 0x021CD3E0 + .space 0x400 + + ; oamCache_ + 0xA40 + .global UNK_021CD7E0 +UNK_021CD7E0: ; 0x021CD7E0 + .space 0x40 + + ; oamCache_ + 0xA80 + .global UNK_021CD820 +UNK_021CD820: ; 0x021CD820 + .space 0x100 + + ; oamCache_ + 0xB80 + .global UNK_021CD920 +UNK_021CD920: ; 0x021CD920 + .space 0x400 + + ; oamCache_ + 0xF80 + .global UNK_021CDD20 +UNK_021CDD20: ; 0x021CDD20 + .space 0x40 + + .section .text + + ; _end + arm_func_start FUN_020B0830 +FUN_020B0830: ; 0x020B0830 + ldrh r3, [r0, #0x6] + ldrh r2, [r0, #0x8] + mov r12, #0x0 + add r1, r3, #0x1 + cmp r2, r1 + bgt _020B0854 + ldrh r0, [r0, #0x4] + cmp r0, r3 + movls r12, #0x1 +_020B0854: + cmp r12, #0x0 + subne r0, r3, r2 + addne r0, r0, #0x1 + movne r0, r0, lsl #0x10 + movne r0, r0, lsr #0x10 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020B0830 + + ; _end + arm_func_start FUN_020B0870 +FUN_020B0870: ; 0x020B0870 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020B09B4 + mov r0, r4 + bl FUN_020B0888 + ldmia sp!, {r4,pc} + arm_func_end FUN_020B0870 + + ; NNS_G2dResetOamManagerBuffer + arm_func_start FUN_020B0888 +FUN_020B0888: ; 0x020B0888 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldr r0, [r5, #0x14] + cmp r0, #0x0 + beq _020B0944 + ldrh r2, [r5, #0x6] + ldrh r1, [r5, #0x8] + mov r3, #0x0 + add r0, r2, #0x1 + cmp r1, r0 + bgt _020B08C0 + ldrh r0, [r5, #0x4] + cmp r0, r2 + movls r3, #0x1 +_020B08C0: + cmp r3, #0x0 + moveq r4, #0x0 + beq _020B08E0 + ldrh r0, [r5, #0x4] + sub r0, r2, r0 + add r0, r0, #0x1 + mov r0, r0, lsl #0x10 + mov r4, r0, lsr #0xd +_020B08E0: + ldr r2, [r5, #0x0] + ldr r1, _020B09AC ; =UNK_021CCDA0 + mov r0, #0x540 + mla r1, r2, r0, r1 + ldrh r0, [r5, #0x4] + add r2, r1, #0x100 + mov r1, r4 + add r6, r2, r0, lsl #0x3 + mov r0, r6 + bl DC_InvalidateRange + ldr r0, _020B09B0 ; =GXi_DmaId + mvn r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, r1 + beq _020B0930 + mov r1, r6 + mov r3, r4 + mov r2, #0xc0 + bl MI_DmaFill32 + b _020B0998 +_020B0930: + mov r1, r6 + mov r2, r4 + mov r0, #0xc0 + bl MIi_CpuClear32 + b _020B0998 +_020B0944: + ldr r2, [r5, #0x0] + ldr r1, _020B09AC ; =UNK_021CCDA0 + mov r0, #0x540 + mla r1, r2, r0, r1 + ldrh r2, [r5, #0x4] + ldrh r0, [r5, #0x6] + add r1, r1, #0x100 + add r3, r1, r2, lsl #0x3 + sub r0, r0, r2 + add r0, r0, #0x1 + mov r0, r0, lsl #0x10 + movs r2, r0, lsr #0x10 + mov r0, #0x0 + beq _020B0998 + mov r1, #0xc0 +_020B0980: + add r0, r0, #0x1 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, r2 + strh r1, [r3], #0x8 + blo _020B0980 +_020B0998: + ldrh r0, [r5, #0x4] + strh r0, [r5, #0x8] + ldrh r0, [r5, #0xa] + strh r0, [r5, #0xe] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B09AC: .word UNK_021CCDA0 +_020B09B0: .word GXi_DmaId + arm_func_end FUN_020B0888 + + ; NNS_G2dApplyOamManagerToHW + arm_func_start FUN_020B09B4 +FUN_020B09B4: ; 0x020B09B4 + stmdb sp!, {r4-r10,lr} + mov r7, r0 + ldr r0, [r7, #0x14] + cmp r0, #0x0 + beq _020B0A48 + ldr r5, [r7, #0x0] + ldr r1, _020B0BA8 ; =UNK_021CCDA0 + mov r0, #0x540 + mla r1, r5, r0, r1 + ldrh r2, [r7, #0x4] + ldrh r0, [r7, #0x6] + add r1, r1, #0x100 + add r4, r1, r2, lsl #0x3 + sub r0, r0, r2 + add r0, r0, #0x1 + mov r0, r0, lsl #0x13 + mov r6, r0, lsr #0x10 + mov r2, r2, lsl #0x13 + mov r0, r4 + mov r1, r6 + mov r7, r2, lsr #0x10 + bl DC_FlushRange + cmp r5, #0x0 + beq _020B0A20 + cmp r5, #0x1 + beq _020B0A34 + ldmia sp!, {r4-r10,pc} +_020B0A20: + mov r0, r4 + mov r1, r7 + mov r2, r6 + bl GX_LoadOAM + ldmia sp!, {r4-r10,pc} +_020B0A34: + mov r0, r4 + mov r1, r7 + mov r2, r6 + bl GXS_LoadOAM + ldmia sp!, {r4-r10,pc} +_020B0A48: + ldr r0, [r7, #0x0] + ldr r2, _020B0BA8 ; =UNK_021CCDA0 + mov r1, #0x540 + mla r2, r0, r1, r2 + ldrh r5, [r7, #0x4] + ldrh r1, [r7, #0x6] + ldr r3, _020B0BAC ; =UNK_0210655C + add r4, r2, #0x100 + sub r1, r1, r5 + add r1, r1, #0x1 + mov r1, r1, lsl #0x10 + mov r2, r5, lsl #0x13 + add r6, r4, r5, lsl #0x3 + movs r5, r1, lsr #0x10 + mov r4, r2, lsr #0x10 + ldr r9, [r3, r0, lsl #0x2] + mov r10, #0x0 + beq _020B0AC8 + mov r8, #0x6 +_020B0A94: + mov r0, r6 + mov r1, r4 + mov r2, r8 + blx r9 + add r0, r10, #0x1 + add r2, r4, #0x8 + mov r1, r0, lsl #0x10 + mov r0, r2, lsl #0x10 + mov r10, r1, lsr #0x10 + cmp r10, r5 + mov r4, r0, lsr #0x10 + add r6, r6, #0x8 + blo _020B0A94 +_020B0AC8: + ldrh r2, [r7, #0xc] + ldrh r1, [r7, #0xe] + mov r3, #0x0 + add r0, r2, #0x1 + cmp r1, r0 + bgt _020B0AEC + ldrh r0, [r7, #0xa] + cmp r0, r2 + movls r3, #0x1 +_020B0AEC: + cmp r3, #0x0 + ldmeqia sp!, {r4-r10,pc} + ldr r0, [r7, #0x0] + ldr r2, _020B0BA8 ; =UNK_021CCDA0 + mov r1, #0x540 + mla r2, r0, r1, r2 + ldrh r5, [r7, #0xa] + add r4, r2, #0x100 + ldrh r1, [r7, #0xc] + mov r2, r5, lsl #0x15 + ldr r3, _020B0BAC ; =UNK_0210655C + sub r1, r1, r5 + add r1, r1, #0x1 + mov r1, r1, lsl #0x10 + add r9, r4, r5, lsl #0x5 + ldr r5, [r3, r0, lsl #0x2] + movs r8, r1, lsr #0x10 + mov r7, r2, lsr #0x10 + mov r6, #0x0 + ldmeqia sp!, {r4-r10,pc} + mov r4, #0x2 +_020B0B40: + mov r2, r4 + add r0, r9, #0x6 + add r1, r7, #0x6 + blx r5 + mov r2, r4 + add r0, r9, #0xe + add r1, r7, #0xe + blx r5 + mov r2, r4 + add r0, r9, #0x16 + add r1, r7, #0x16 + blx r5 + add r0, r9, #0x1e + add r1, r7, #0x1e + mov r2, r4 + blx r5 + add r0, r7, #0x20 + mov r0, r0, lsl #0x10 + mov r7, r0, lsr #0x10 + add r9, r9, #0x20 + add r0, r6, #0x1 + mov r0, r0, lsl #0x10 + mov r6, r0, lsr #0x10 + cmp r6, r8 + blo _020B0B40 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020B0BA8: .word UNK_021CCDA0 +_020B0BAC: .word UNK_0210655C + arm_func_end FUN_020B09B4 + + ; NNS_G2dEntryOamManagerAffine + arm_func_start FUN_020B0BB0 +FUN_020B0BB0: ; 0x020B0BB0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r12, [r0, #0xc] + ldrh r3, [r0, #0xe] + mov lr, #0x0 + add r2, r12, #0x1 + cmp r3, r2 + bgt _020B0BDC + ldrh r2, [r0, #0xa] + cmp r2, r12 + movls lr, #0x1 +_020B0BDC: + cmp lr, #0x0 + subne r2, r12, r3 + addne r2, r2, #0x1 + movne r2, r2, lsl #0x10 + movne r2, r2, lsr #0x10 + moveq r2, #0x0 + cmp r2, #0x1 + movcs r2, #0x1 + movcc r2, #0x0 + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldreq r0, _020B0C74 ; =0x0000FFFE + ldmeqia sp!, {pc} + ldr lr, [r0, #0x0] + ldr r3, _020B0C78 ; =UNK_021CCDA0 + mov r2, #0x540 + mla r12, lr, r2, r3 + ldr r3, [r1, #0x0] + ldrh r2, [r0, #0xe] + add r12, r12, #0x100 + mov r3, r3, asr #0x4 + add r12, r12, r2, lsl #0x5 + strh r3, [r12, #0x6] + ldr r3, [r1, #0x4] + mov r3, r3, asr #0x4 + strh r3, [r12, #0xe] + ldr r3, [r1, #0x8] + mov r3, r3, asr #0x4 + strh r3, [r12, #0x16] + ldr r1, [r1, #0xc] + mov r1, r1, asr #0x4 + strh r1, [r12, #0x1e] + ldrh r1, [r0, #0xe] + add r1, r1, #0x1 + strh r1, [r0, #0xe] + mov r0, r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B0C74: .word 0x0000FFFE +_020B0C78: .word UNK_021CCDA0 + arm_func_end FUN_020B0BB0 + + ; NNS_G2dEntryOamManagerOamWithAffineIdx + arm_func_start FUN_020B0C7C +FUN_020B0C7C: ; 0x020B0C7C + stmdb sp!, {r4,lr} + ldrh r12, [r0, #0x6] + ldrh r4, [r0, #0x8] + mov lr, #0x0 + add r3, r12, #0x1 + cmp r4, r3 + bgt _020B0CA4 + ldrh r3, [r0, #0x4] + cmp r3, r12 + movls lr, #0x1 +_020B0CA4: + cmp lr, #0x0 + subne r3, r12, r4 + addne r3, r3, #0x1 + movne r3, r3, lsl #0x10 + movne r3, r3, lsr #0x10 + moveq r3, #0x0 + cmp r3, #0x1 + movcs r3, #0x1 + movcc r3, #0x0 + cmp r3, #0x0 + beq _020B0D48 + ldr r4, [r0, #0x0] + ldr ip, _020B0D50 ; =UNK_021CCDA0 + mov r3, #0x540 + mla r12, r4, r3, r12 + ldrh r3, [r0, #0x8] + add r4, r12, #0x100 + ldrh r12, [r1, #0x0] + mov lr, r3, lsl #0x3 + add r3, r4, r3, lsl #0x3 + strh r12, [r4, lr] + ldrh lr, [r1, #0x2] + ldr ip, _020B0D54 ; =0x0000FFFE + strh lr, [r3, #0x2] + ldrh r1, [r1, #0x4] + cmp r2, r12 + strh r1, [r3, #0x4] + beq _020B0D34 + ldr r1, [r3, #0x0] + mov r12, r1, lsl #0x16 + mov r12, r12, lsr #0x1e + ands r12, r12, #0x1 + bicne r12, r1, #0x3e000000 + andne r1, r2, #0x1f + orrne r1, r12, r1, lsl #0x19 + strne r1, [r3, #0x0] +_020B0D34: + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + mov r0, #0x1 + ldmia sp!, {r4,pc} +_020B0D48: + mov r0, #0x0 + ldmia sp!, {r4,pc} + .balign 4 +_020B0D50: .word UNK_021CCDA0 +_020B0D54: .word 0x0000FFFE + arm_func_end FUN_020B0C7C + + ; NNS_G2dEntryOamManagerOam + arm_func_start FUN_020B0D58 +FUN_020B0D58: ; 0x020B0D58 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldrh lr, [r0, #0x6] + ldrh r12, [r0, #0x8] + mov r4, #0x0 + add r3, lr, #0x1 + cmp r12, r3 + bgt _020B0D84 + ldrh r3, [r0, #0x4] + cmp r3, lr + movls r4, #0x1 +_020B0D84: + cmp r4, #0x0 + subne r3, lr, r12 + addne r3, r3, #0x1 + movne r3, r3, lsl #0x10 + movne r3, r3, lsr #0x10 + moveq r3, #0x0 + cmp r3, r2 + movcs r3, #0x1 + movcc r3, #0x0 + cmp r3, #0x0 + beq _020B0E24 + ldr lr, [r0, #0x0] + ldr ip, _020B0E30 ; =UNK_021CCDA0 + mov r3, #0x540 + mla r12, lr, r3, r12 + ldrh r3, [r0, #0x8] + add r12, r12, #0x100 + cmp r2, #0x0 + add r4, r12, r3, lsl #0x3 + mov r5, #0x0 + ble _020B0E18 + add r3, r0, #0x8 +_020B0DDC: + ldrh lr, [r1, #0x0] + mov r0, r5, lsl #0x3 + add r12, r4, r5, lsl #0x3 + strh lr, [r4, r0] + ldrh r0, [r1, #0x2] + add r5, r5, #0x1 + cmp r5, r2 + strh r0, [r12, #0x2] + ldrh r0, [r1, #0x4] + add r1, r1, #0x8 + strh r0, [r12, #0x4] + ldrh r0, [r3, #0x0] + add r0, r0, #0x1 + strh r0, [r3, #0x0] + blt _020B0DDC +_020B0E18: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,pc} +_020B0E24: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B0E30: .word UNK_021CCDA0 + arm_func_end FUN_020B0D58 + + ; NNS_G2dGetNewOamManagerInstance + arm_func_start FUN_020B0E34 +FUN_020B0E34: ; 0x020B0E34 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r5, [sp, #0x1c] + ldr r6, _020B0FB4 ; =UNK_021CCDA0 + mov r4, #0x540 + mla r4, r5, r4, r6 + mov lr, r1 + sub r1, r2, #0x1 + add r1, lr, r1 + mov r1, r1, lsl #0x10 + mov r12, r1, lsr #0x10 + add r7, r4, lr, lsl #0x1 + add r2, r4, r12, lsl #0x1 + mov r6, r0 + mov r5, r3 + cmp r7, r2 + mov r3, lr, lsl #0x1 + bhi _020B0E9C + ldr r0, _020B0FB8 ; =0x0000FFFF +_020B0E80: + ldrh r1, [r7, #0x0] + cmp r1, r0 + movne r0, #0x0 + bne _020B0EA0 + add r7, r7, #0x2 + cmp r7, r2 + bls _020B0E80 +_020B0E9C: + mov r0, #0x1 +_020B0EA0: + cmp r0, #0x0 + beq _020B0EE0 + ldr r0, _020B0FBC ; =UNK_021CCD9C + sub r2, r12, lr + ldrh r7, [r0, #0x0] + add r1, r4, r3 + mov r2, r2, lsl #0x1 + add r3, r7, #0x1 + strh r3, [r0, #0x0] + strh r7, [r6, #0x10] + strh lr, [r6, #0x4] + strh r12, [r6, #0x6] + strh lr, [r6, #0x8] + ldrh r0, [r6, #0x10] + bl MIi_CpuClear16 + b _020B0EEC +_020B0EE0: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020B0EEC: + ldrh r0, [sp, #0x18] + add r4, r4, #0x500 + cmp r0, #0x0 + bne _020B0F18 + mov r0, #0x20 + strh r0, [r6, #0xa] + mov r0, #0x0 + strh r0, [r6, #0xc] + ldrh r0, [r6, #0xa] + strh r0, [r6, #0xe] + b _020B0F98 +_020B0F18: + sub r0, r0, #0x1 + add r0, r5, r0 + mov r0, r0, lsl #0x10 + mov r12, r0, lsr #0x10 + add r7, r4, r5, lsl #0x1 + add r2, r4, r12, lsl #0x1 + cmp r7, r2 + mov r3, r5, lsl #0x1 + bhi _020B0F5C + ldr r0, _020B0FB8 ; =0x0000FFFF +_020B0F40: + ldrh r1, [r7, #0x0] + cmp r1, r0 + movne r0, #0x0 + bne _020B0F60 + add r7, r7, #0x2 + cmp r7, r2 + bls _020B0F40 +_020B0F5C: + mov r0, #0x1 +_020B0F60: + cmp r0, #0x0 + beq _020B0F8C + strh r5, [r6, #0xa] + strh r12, [r6, #0xc] + strh r5, [r6, #0xe] + ldrh r0, [r6, #0x10] + sub r2, r12, r5 + add r1, r4, r3 + mov r2, r2, lsl #0x1 + bl MIi_CpuClear16 + b _020B0F98 +_020B0F8C: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020B0F98: + mov r1, #0x0 + ldr r0, [sp, #0x1c] + str r1, [r6, #0x14] + str r0, [r6, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B0FB4: .word UNK_021CCDA0 +_020B0FB8: .word 0x0000FFFF +_020B0FBC: .word UNK_021CCD9C + arm_func_end FUN_020B0E34 + + ; NNS_G2dInitOamManagerModule + arm_func_start FUN_020B0FC0 +FUN_020B0FC0: ; 0x020B0FC0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020B1060 ; =UNK_021CCEA0 + mov r0, #0xc0 + mov r2, #0x400 + bl MIi_CpuClear16 + ldr r1, _020B1064 ; =UNK_021CD3E0 + mov r0, #0xc0 + mov r2, #0x400 + bl MIi_CpuClear16 + ldr r1, _020B1068 ; =UNK_021CD920 + mov r0, #0xc0 + mov r2, #0x400 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B1070 ; =UNK_021CCDA0 + mov r2, #0x100 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B1074 ; =UNK_021CD2E0 + mov r2, #0x100 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B1078 ; =UNK_021CD820 + mov r2, #0x100 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B107C ; =UNK_021CD2A0 + mov r2, #0x40 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B1080 ; =UNK_021CD7E0 + mov r2, #0x40 + bl MIi_CpuClear16 + ldr r0, _020B106C ; =0x0000FFFF + ldr r1, _020B1084 ; =UNK_021CDD20 + mov r2, #0x40 + bl MIi_CpuClear16 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B1060: .word UNK_021CCEA0 +_020B1064: .word UNK_021CD3E0 +_020B1068: .word UNK_021CD920 +_020B106C: .word 0x0000FFFF +_020B1070: .word UNK_021CCDA0 +_020B1074: .word UNK_021CD2E0 +_020B1078: .word UNK_021CD820 +_020B107C: .word UNK_021CD2A0 +_020B1080: .word UNK_021CD7E0 +_020B1084: .word UNK_021CDD20 + arm_func_end FUN_020B0FC0 + + ; CpuLoadOAMMain_ + arm_func_start FUN_020B1088 +FUN_020B1088: ; 0x020B1088 + ldr ip, _020B1094 ; =MIi_CpuCopy16 + add r1, r1, #0x7000000 + bx r12 + .balign 4 +_020B1094: .word MIi_CpuCopy16 + arm_func_end FUN_020B1088 + + ; CpuLoadOAMSub_ + arm_func_start FUN_020B1098 +FUN_020B1098: ; 0x020B1098 + ldr r3, _020B10A8 ; =0x07000400 + ldr ip, _020B10AC ; =MIi_CpuCopy16 + add r1, r1, r3 + bx r12 + .balign 4 +_020B10A8: .word 0x07000400 +_020B10AC: .word MIi_CpuCopy16 + arm_func_end FUN_020B1098 + diff --git a/arm9/asm/NNS_G2D_g2d_oamsoftware.s b/arm9/asm/NNS_G2D_g2d_oamsoftware.s new file mode 100644 index 000000000..0929557b7 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_oamsoftware.s @@ -0,0 +1,436 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; pltFmtTbl$8430 + .global UNK_020FF8D0 +UNK_020FF8D0: ; 0x020FF8D0 + .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + + ; static const in function + ; texSize_$8337 + .global UNK_020FF8D8 +UNK_020FF8D8: ; 0x020FF8D8 + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 + + ; gxTexSizeSTbl + .global UNK_020FF8F8 +UNK_020FF8F8: ; 0x020FF8F8 + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + ; gxTexSizeTTbl + .global UNK_020FF928 +UNK_020FF928: ; 0x020FF928 + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + + .section .data + + ; zOffsetStep_ + .global UNK_02106590 +UNK_02106590: ; 0x02106590 + .byte 0x00, 0xF0, 0xFF, 0xFF + + .section .bss + + ; bAutoZOffsetAdd_ + .global UNK_021CED08 +UNK_021CED08: ; 0x021CED08 + .space 0x4 + + ; s_pUVFlipCorrectFunc + .global UNK_021CED0C +UNK_021CED0C: ; 0x021CED0C + .space 0x4 + + ; zOffset_ + .global UNK_021CED10 +UNK_021CED10: ; 0x021CED10 + .space 0x4 + + .section .text + + ; NNS_G2dDrawOneOam3DDirectWithPosFast + arm_func_start FUN_020B46B4 +FUN_020B46B4: ; 0x020B46B4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x1c + add r12, sp, #0x4 + mov r5, r1 + mov r4, r2 + mov r7, r3 + mov r6, r0 + ldr r1, [sp, #0x30] + ldr r2, [sp, #0x34] + ldr r3, [sp, #0x38] + mov r0, r7 + str r12, [sp, #0x0] + bl FUN_020B498C + ldr r2, [r7, #0x0] + and r1, r2, #0x300 + cmp r1, #0x100 + beq _020B4708 + cmp r1, #0x300 + beq _020B4708 + and r0, r2, #0x30000000 + orr r1, r1, r0 +_020B4708: + cmp r1, #0x300 + bne _020B478C + ldr r0, _020B4914 ; =0xC000C000 + ldr r1, _020B4918 ; =UNK_021CED08 + and r0, r2, r0 + and r2, r0, #0xc0000000 + mov r12, r2, lsr #0x1e + and r0, r0, #0xc000 + mov lr, r0, asr #0xe + ldr r3, _020B491C ; =UNK_020FF8AC + ldr r0, [r1, #0x0] + ldr r2, _020B4920 ; =UNK_020FF894 + cmp r0, #0x0 + ldrne r0, _020B4924 ; =UNK_021CED10 + mov r12, r12, lsl #0x1 + add r1, r2, lr, lsl #0x3 + add r3, r3, lr, lsl #0x3 + ldrh r2, [r12, r3] + ldrh r1, [r12, r1] + ldrne r0, [r0, #0x0] + mov r2, r2, asr #0x1 + addne r3, r0, r4, lsl #0xc + mov r1, r1, asr #0x1 + add r0, r5, r1 + add r2, r6, r2 + ldr r1, _020B4928 ; =0x04000470 + mov r2, r2, lsl #0xc + str r2, [r1, #0x0] + mov r0, r0, lsl #0xc + moveq r3, r4, lsl #0xc + str r0, [r1, #0x0] + str r3, [r1, #0x0] + b _020B47C0 +_020B478C: + ldr r0, _020B4918 ; =UNK_021CED08 + ldr r1, _020B4928 ; =0x04000470 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldrne r0, _020B4924 ; =UNK_021CED10 + ldrne r0, [r0, #0x0] + addne r2, r0, r4, lsl #0xc + mov r0, r6, lsl #0xc + str r0, [r1, #0x0] + mov r0, r5, lsl #0xc + moveq r2, r4, lsl #0xc + str r0, [r1, #0x0] + str r2, [r1, #0x0] +_020B47C0: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + ldr r2, _020B492C ; =0x0400046C + mov r0, r0, lsl #0xc + str r0, [r2, #0x0] + mov r0, r1, lsl #0xc + str r0, [r2, #0x0] + mov r1, #0x1000 + str r1, [r2, #0x0] + ldr r0, _020B4930 ; =0x04000500 + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r0, [sp, #0x4] + ldr r1, [sp, #0x10] + mov r0, r0, lsl #0x8 + mov r1, r1, lsl #0x8 + mov r0, r0, asr #0x10 + mov r1, r1, asr #0x10 + mov r0, r0, lsl #0x10 + mov r1, r1, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r1, lsr #0x10 + orr r2, r2, r0, lsl #0x10 + ldr r1, _020B4934 ; =0x04000488 + ldr r0, _020B4938 ; =0x04000490 + str r2, [r1, #0x0] + mov r2, #0x10000 + str r2, [r0, #0x0] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x10] + mov r2, r2, lsl #0x8 + mov r3, r3, lsl #0x8 + mov r2, r2, asr #0x10 + mov r3, r3, asr #0x10 + mov r2, r2, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r4, r2, lsr #0x10 + mov r2, r3, lsr #0x10 + orr r3, r4, r2, lsl #0x10 + ldr r2, _020B493C ; =0x00010040 + str r3, [r1, #0x0] + str r2, [r0, #0x0] + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + mov r2, r2, lsl #0x8 + mov r3, r3, lsl #0x8 + mov r2, r2, asr #0x10 + mov r3, r3, asr #0x10 + mov r2, r2, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r4, r2, lsr #0x10 + mov r2, r3, lsr #0x10 + orr r2, r4, r2, lsl #0x10 + str r2, [r1, #0x0] + mov r2, #0x40 + str r2, [r0, #0x0] + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x8] + mov r2, r2, lsl #0x8 + mov r3, r3, lsl #0x8 + mov r2, r2, asr #0x10 + mov r3, r3, asr #0x10 + mov r2, r2, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r4, r2, lsr #0x10 + mov r2, r3, lsr #0x10 + orr r2, r4, r2, lsl #0x10 + str r2, [r1, #0x0] + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r1, _020B4940 ; =0x04000504 + ldr r0, _020B4918 ; =UNK_021CED08 + str r2, [r1, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r7,pc} + ldr r1, _020B4924 ; =UNK_021CED10 + ldr r0, _020B4944 ; =UNK_02106590 + ldr r2, [r1, #0x0] + ldr r0, [r0, #0x0] + add r0, r2, r0 + str r0, [r1, #0x0] + add sp, sp, #0x1c + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B4914: .word 0xC000C000 +_020B4918: .word UNK_021CED08 +_020B491C: .word UNK_020FF8AC +_020B4920: .word UNK_020FF894 +_020B4924: .word UNK_021CED10 +_020B4928: .word 0x04000470 +_020B492C: .word 0x0400046C +_020B4930: .word 0x04000500 +_020B4934: .word 0x04000488 +_020B4938: .word 0x04000490 +_020B493C: .word 0x00010040 +_020B4940: .word 0x04000504 +_020B4944: .word UNK_02106590 + arm_func_end FUN_020B46B4 + + ; NNSi_G2dGetOamSoftEmuAutoZOffsetStep + arm_func_start FUN_020B4948 +FUN_020B4948: ; 0x020B4948 + ldr r0, _020B4954 ; =UNK_02106590 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020B4954: .word UNK_02106590 + arm_func_end FUN_020B4948 + + ; NNSi_G2dSetOamSoftEmuAutoZOffsetStep + arm_func_start FUN_020B4958 +FUN_020B4958: ; 0x020B4958 + ldr r1, _020B4964 ; =UNK_02106590 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020B4964: .word UNK_02106590 + arm_func_end FUN_020B4958 + + ; NNSi_G2dResetOamSoftEmuAutoZOffset + arm_func_start FUN_020B4968 +FUN_020B4968: ; 0x020B4968 + ldr r0, _020B4978 ; =UNK_021CED10 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020B4978: .word UNK_021CED10 + arm_func_end FUN_020B4968 + + ; NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + arm_func_start FUN_020B497C +FUN_020B497C: ; 0x020B497C + ldr r1, _020B4988 ; =UNK_021CED08 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020B4988: .word UNK_021CED08 + arm_func_end FUN_020B497C + + ; CalcSpriteParams_ + arm_func_start FUN_020B498C +FUN_020B498C: ; 0x020B498C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc + mov r6, r0 + ldr r4, [r6, #0x0] + ldr r0, _020B4BCC ; =0xC000C000 + ldr r5, [r6, #0x4] + and r4, r4, r0 + and r0, r4, #0xc0000000 + and r4, r4, #0xc000 + mov lr, r0, lsr #0x1e + ldr r0, _020B4BD0 ; =UNK_020FF8AC + mov r12, r4, asr #0xe + ldr r8, _020B4BD4 ; =UNK_020FF894 + mov r4, lr, lsl #0x1 + add r0, r0, r12, lsl #0x3 + ldrh r9, [r4, r0] + ldr r0, [sp, #0x28] + mov r5, r5, lsl #0x16 + mov r5, r5, lsr #0x16 + mov r7, r5, lsl #0x10 + str r9, [r0, #0x10] + add r5, r8, r12, lsl #0x3 + ldrh r8, [r4, r5] + mov r5, r1 + mov r4, r3 + str r8, [r0, #0x14] + ldr r1, [r5, #0x14] + mov r7, r7, lsr #0x10 + cmp r1, #0x0 + bne _020B4A74 + ldr r1, [r5, #0x8] + mov r2, r2, lsr #0x3 + orr r1, r2, r1, lsl #0x1a + ldr r2, [r5, #0x0] + orr r1, r1, #0x40000000 + ldr r3, [r5, #0x4] + orr r1, r1, r2, lsl #0x14 + orr r2, r1, r3, lsl #0x17 + ldr r8, [r5, #0x10] + ldr r1, _020B4BD8 ; =0x040004A8 + orr r2, r2, r8, lsl #0x1d + str r2, [r1, #0x0] + ldr r1, [r5, #0x8] + ldr r2, [r5, #0x0] + cmp r1, #0x4 + moveq r1, r7, lsl #0xf + moveq r7, r1, lsr #0x10 + ldr r1, _020B4BDC ; =UNK_020FF8D8 + ldr r1, [r1, r2, lsl #0x2] + sub r1, r1, #0x1 + and r1, r7, r1 + mov r1, r1, lsl #0xf + str r1, [r0, #0x0] + ldr r1, [r5, #0x0] + mov r1, r7, asr r1 + mov r1, r1, lsl #0xf + str r1, [r0, #0x4] + b _020B4AE0 +_020B4A74: + and r1, r1, #0x700000 + mov r1, r1, asr #0x14 + mov r12, r12, lsl #0x10 + add r1, r1, #0x5 + ldr r3, [r5, #0x8] + mov lr, lr, lsl #0x10 + ldr sb, _020B4BE0 ; =UNK_020FF8F8 + mov r12, r12, lsr #0x10 + ldr r8, _020B4BE4 ; =UNK_020FF928 + add r1, r2, r7, lsl r1 + mov r2, r3, lsl #0x1a + orr r3, r2, r1, lsr #0x3 + mov r7, lr, lsr #0x10 + add r2, r9, r12, lsl #0x4 + add r1, r8, r12, lsl #0x4 + ldr r2, [r2, r7, lsl #0x2] + orr r3, r3, #0x40000000 + ldr r1, [r1, r7, lsl #0x2] + orr r2, r3, r2, lsl #0x14 + ldr r3, [r5, #0x10] + orr r2, r2, r1, lsl #0x17 + ldr r1, _020B4BD8 ; =0x040004A8 + orr r2, r2, r3, lsl #0x1d + str r2, [r1, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] +_020B4AE0: + ldr r2, [r0, #0x0] + ldr r1, [r0, #0x10] + add r1, r2, r1, lsl #0xc + str r1, [r0, #0x8] + ldr r2, [r0, #0x4] + ldr r1, [r0, #0x14] + add r1, r2, r1, lsl #0xc + str r1, [r0, #0xc] + ldr r1, [r6, #0x0] + mov r2, r1, lsl #0x2 + mov r1, r1, lsl #0x3 + movs r3, r1, lsr #0x1f + mov r12, r2, lsr #0x1f + ldrne r2, [r0, #0x0] + ldrne r1, [r0, #0x8] + strne r1, [r0, #0x0] + strne r2, [r0, #0x8] + cmp r12, #0x0 + ldrne r2, [r0, #0x4] + ldrne r1, [r0, #0xc] + strne r1, [r0, #0x4] + ldr r1, _020B4BE8 ; =UNK_021CED0C + strne r2, [r0, #0xc] + ldr r7, [r1, #0x0] + cmp r7, #0x0 + beq _020B4B60 + str r3, [sp, #0x0] + add r1, r0, #0x4 + add r2, r0, #0x8 + add r3, r0, #0xc + str r12, [sp, #0x4] + blx r7 +_020B4B60: + ldr r0, [r6, #0x4] + ldr r1, [r6, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x1c + mov r3, r1, lsl #0x12 + ldr r1, [r5, #0xc] + mov r0, r0, lsl #0x10 + ldr r2, _020B4BEC ; =UNK_020FF8D0 + mov r3, r3, lsr #0x1f + cmp r1, #0x0 + mov r0, r0, lsr #0x10 + ldr r1, [r2, r3, lsl #0x2] + movne r0, r0, lsl #0x9 + bne _020B4BA4 + cmp r1, #0x4 + moveq r0, #0x0 + movne r0, r0, lsl #0x5 +_020B4BA4: + cmp r1, #0x2 + moveq r2, #0x1 + movne r2, #0x0 + add r1, r4, r0 + rsb r0, r2, #0x4 + mov r1, r1, lsr r0 + ldr r0, _020B4BF0 ; =0x040004AC + str r1, [r0, #0x0] + add sp, sp, #0xc + ldmia sp!, {r4-r9,pc} + .balign 4 +_020B4BCC: .word 0xC000C000 +_020B4BD0: .word UNK_020FF8AC +_020B4BD4: .word UNK_020FF894 +_020B4BD8: .word 0x040004A8 +_020B4BDC: .word UNK_020FF8D8 +_020B4BE0: .word UNK_020FF8F8 +_020B4BE4: .word UNK_020FF928 +_020B4BE8: .word UNK_021CED0C +_020B4BEC: .word UNK_020FF8D0 +_020B4BF0: .word 0x040004AC + arm_func_end FUN_020B498C + diff --git a/arm9/asm/NNS_G2D_g2d_palettetabl.s b/arm9/asm/NNS_G2D_g2d_palettetabl.s new file mode 100644 index 000000000..bfa000067 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_palettetabl.s @@ -0,0 +1,13 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B10B0 +FUN_020B10B0: ; 0x020B10B0 + mov r1, r1, lsl #0x1 + ldrh r0, [r0, r1] + bx lr + arm_func_end FUN_020B10B0 + diff --git a/arm9/asm/NNS_G2D_g2d_renderer.s b/arm9/asm/NNS_G2D_g2d_renderer.s new file mode 100644 index 000000000..d6213a1b6 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_renderer.s @@ -0,0 +1,2043 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; firstSRTransformedMtxIdx_ + .global UNK_02106570 +UNK_02106570: ; 0x02106570 + .short -2 + + .balign 4, 0 + ; currenVramTransferHandle_ + .global UNK_02106574 +UNK_02106574: ; 0x02106574 + .word -1 + + ; mtxI_ + .global UNK_02106578 +UNK_02106578: ; 0x02106578 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .section .bss + + ; currentMtxCachePos_ + .global UNK_021CDD60 +UNK_021CDD60: ; 0x021CDD60 + .space 0x4 + + ; groupID_ + .global UNK_021CDD64 +UNK_021CDD64: ; 0x021CDD64 + .space 0x4 + + ; bDonotUseSRTransform + .global UNK_021CDD68 +UNK_021CDD68: ; 0x021CDD68 + .space 0x4 + + ; pCurrentInstance_ + .global UNK_021CDD6C +UNK_021CDD6C: ; 0x021CDD6C + .space 0x4 + + ; stackPos_ + .global UNK_021CDD70 +UNK_021CDD70: ; 0x021CDD70 + .space 0x4 + + ; fxZStack_ + .global UNK_021CDD74 +UNK_021CDD74: ; 0x021CDD74 + .space 0x80 + + ; mtxStateStack_ + .global UNK_021CDDF4 +UNK_021CDDF4: ; 0x021CDDF4 + .space 0x4 + + ; mtxStateStack_ + 0x4 + .global UNK_021CDDF8 +UNK_021CDDF8: ; 0x021CDDF8 + .space 0xfc + + ; mtxStack_ + .global UNK_021CDEF4 +UNK_021CDEF4: ; 0x021CDEF4 + .space 0x10 + + ; mtxStack_ + 0x10 + .global UNK_021CDF04 +UNK_021CDF04: ; 0x021CDF04 + .space 0x4 + + ; mtxStack_ + 0x14 + .global UNK_021CDF08 +UNK_021CDF08: ; 0x021CDF08 + .space 0x2ec + + ; mtxStackFor2DHW_ + .global UNK_021CE1F4 +UNK_021CE1F4: ; 0x021CE1F4 + .space 0x300 + + ; mtxCacheBuffer_ + .global UNK_021CE4F4 +UNK_021CE4F4: ; 0x021CE4F4 + .space 0x400 + + ; mcRenderState_ + .global UNK_021CE8F4 +UNK_021CE8F4: ; 0x021CE8F4 + .space 0x4 + + ; mcRenderState_ + 0x4 + .global UNK_021CE8F8 +UNK_021CE8F8: ; 0x021CE8F8 + .space 0x404 + + .section .text + + ; NNS_G2dSetRendererImageProxy + arm_func_start thunk_FUN_020b5040 +thunk_FUN_020b5040: ; 0x020B2780 + ldr ip, _020B2788 ; =FUN_020B5040 + bx r12 + .balign 4 +_020B2788: .word FUN_020B5040 + arm_func_end thunk_FUN_020b5040 + + ; _end + arm_func_start FUN_020B278C +FUN_020B278C: ; 0x020B278C + ldr r0, [r0, #0x78] + bx lr + arm_func_end FUN_020B278C + + ; NNS_G2dRotZ + arm_func_start FUN_020B2794 +FUN_020B2794: ; 0x020B2794 + stmdb sp!, {lr} + sub sp, sp, #0x1c + ldr r2, _020B2894 ; =UNK_021CDD70 + mov lr, #0x0 + ldr r12, [r2, #0x0] + ldr r3, _020B2898 ; =UNK_021CDEF4 + mov r2, #0x18 + str r1, [sp, #0x0] + str r1, [sp, #0xc] + mla r1, r12, r2, r3 + rsb r3, r0, #0x0 + str r0, [sp, #0x4] + add r0, sp, #0x0 + mov r2, r1 + str r3, [sp, #0x8] + str lr, [sp, #0x10] + str lr, [sp, #0x14] + bl FUN_020B423C + ldr r0, _020B2894 ; =UNK_021CDD70 + ldr r1, _020B289C ; =UNK_021CE1F4 + ldr r2, [r0, #0x0] + mov r0, #0x18 + mla r1, r2, r0, r1 + add r0, sp, #0x0 + mov r2, r1 + bl FUN_020B423C + ldr r0, _020B28A0 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020B2824 + ldr r1, _020B28A4 ; =UNK_02106570 + ldr r0, _020B28A8 ; =0x0000FFFE + ldrh r1, [r1, #0x0] + cmp r1, r0 + movne r0, #0x1 + bne _020B2828 +_020B2824: + mov r0, #0x0 +_020B2828: + cmp r0, #0x0 + ldreq r1, _020B2894 ; =UNK_021CDD70 + ldreq r0, _020B28A4 ; =UNK_02106570 + ldreq r1, [r1, #0x0] + streqh r1, [r0, #0x0] + ldr r0, _020B2894 ; =UNK_021CDD70 + ldr r1, _020B28AC ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + add r12, r1, r0, lsr #0xd + ldrh r0, [r12, #0x4] + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020B288C + ; Jump table + b _020B2870 ; case 0 + b _020B288C ; case 1 + b _020B2870 ; case 2 + b _020B2870 ; case 3 +_020B2870: + ldr r0, _020B28B0 ; =UNK_021CDD64 + mov r1, #0x1 + ldrh r3, [r0, #0x0] + add r2, r3, #0x1 + strh r2, [r0, #0x0] + strh r3, [r12, #0x2] + strh r1, [r12, #0x4] +_020B288C: + add sp, sp, #0x1c + ldmia sp!, {pc} + .balign 4 +_020B2894: .word UNK_021CDD70 +_020B2898: .word UNK_021CDEF4 +_020B289C: .word UNK_021CE1F4 +_020B28A0: .word UNK_021CDD68 +_020B28A4: .word UNK_02106570 +_020B28A8: .word 0x0000FFFE +_020B28AC: .word UNK_021CDDF4 +_020B28B0: .word UNK_021CDD64 + arm_func_end FUN_020B2794 + + ; NNS_G2dScale + arm_func_start FUN_020B28B4 +FUN_020B28B4: ; 0x020B28B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x1c + ldr r2, _020B29E8 ; =UNK_021CDD70 + mov r12, #0x0 + ldr r3, [r2, #0x0] + mov r4, r1 + ldr r2, _020B29EC ; =UNK_021CDEF4 + mov r1, #0x18 + mla r1, r3, r1, r2 + mov r5, r0 + add r0, sp, #0x0 + mov r2, r1 + str r5, [sp, #0x0] + str r12, [sp, #0x4] + str r12, [sp, #0x8] + str r4, [sp, #0xc] + str r12, [sp, #0x10] + str r12, [sp, #0x14] + bl FUN_020B423C + mov r0, r5 + bl FX_Inv + mov r1, #0x0 + str r0, [sp, #0x0] + mov r0, r4 + str r1, [sp, #0x4] + str r1, [sp, #0x8] + bl FX_Inv + mov r3, #0x0 + ldr r1, _020B29E8 ; =UNK_021CDD70 + str r0, [sp, #0xc] + ldr r2, [r1, #0x0] + ldr r1, _020B29F0 ; =UNK_021CE1F4 + mov r0, #0x18 + mla r1, r2, r0, r1 + add r0, sp, #0x0 + mov r2, r1 + str r3, [sp, #0x10] + str r3, [sp, #0x14] + bl FUN_020B423C + ldr r0, _020B29F4 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020B2978 + ldr r1, _020B29F8 ; =UNK_02106570 + ldr r0, _020B29FC ; =0x0000FFFE + ldrh r1, [r1, #0x0] + cmp r1, r0 + movne r0, #0x1 + bne _020B297C +_020B2978: + mov r0, #0x0 +_020B297C: + cmp r0, #0x0 + ldreq r1, _020B29E8 ; =UNK_021CDD70 + ldreq r0, _020B29F8 ; =UNK_02106570 + ldreq r1, [r1, #0x0] + streqh r1, [r0, #0x0] + ldr r0, _020B29E8 ; =UNK_021CDD70 + ldr r1, _020B2A00 ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + add r12, r1, r0, lsr #0xd + ldrh r0, [r12, #0x4] + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020B29E0 + ; Jump table + b _020B29C4 ; case 0 + b _020B29E0 ; case 1 + b _020B29C4 ; case 2 + b _020B29C4 ; case 3 +_020B29C4: + ldr r0, _020B2A04 ; =UNK_021CDD64 + mov r1, #0x1 + ldrh r3, [r0, #0x0] + add r2, r3, #0x1 + strh r2, [r0, #0x0] + strh r3, [r12, #0x2] + strh r1, [r12, #0x4] +_020B29E0: + add sp, sp, #0x1c + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B29E8: .word UNK_021CDD70 +_020B29EC: .word UNK_021CDEF4 +_020B29F0: .word UNK_021CE1F4 +_020B29F4: .word UNK_021CDD68 +_020B29F8: .word UNK_02106570 +_020B29FC: .word 0x0000FFFE +_020B2A00: .word UNK_021CDDF4 +_020B2A04: .word UNK_021CDD64 + arm_func_end FUN_020B28B4 + + ; NNS_G2dTranslate + arm_func_start FUN_020B2A08 +FUN_020B2A08: ; 0x020B2A08 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x1c + ldr r3, _020B2AEC ; =UNK_021CDD68 + mov r4, r2 + ldr r2, [r3, #0x0] + cmp r2, #0x0 + beq _020B2A6C + ldr r2, _020B2AF0 ; =UNK_021CDD70 + mov r3, #0x18 + ldr r2, [r2, #0x0] + ldr lr, _020B2AF4 ; =UNK_021CDF04 + mul r5, r2, r3 + ldr r3, [lr, r5] + ldr ip, _020B2AF8 ; =UNK_021CDF08 + add r0, r3, r0 + str r0, [lr, r5] + ldr r0, [r12, r5] + ldr r3, _020B2AFC ; =UNK_021CDD74 + add r0, r0, r1 + str r0, [r12, r5] + ldr r0, [r3, r2, lsl #0x2] + add sp, sp, #0x1c + add r0, r0, r4 + str r0, [r3, r2, lsl #0x2] + ldmia sp!, {r4-r5,pc} +_020B2A6C: + ldr r2, _020B2AF0 ; =UNK_021CDD70 + mov lr, #0x1000 + ldr r12, [r2, #0x0] + ldr r3, _020B2B00 ; =UNK_021CDEF4 + mov r2, #0x18 + str r1, [sp, #0x14] + mla r1, r12, r2, r3 + mov r3, #0x0 + str r0, [sp, #0x10] + add r0, sp, #0x0 + mov r2, r1 + str lr, [sp, #0x0] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str lr, [sp, #0xc] + bl FUN_020B423C + ldr r0, _020B2AF0 ; =UNK_021CDD70 + ldr r1, _020B2B04 ; =UNK_021CE1F4 + ldr r2, [r0, #0x0] + mov r0, #0x18 + mla r1, r2, r0, r1 + add r0, sp, #0x0 + mov r2, r1 + bl FUN_020B423C + ldr r0, _020B2AF0 ; =UNK_021CDD70 + ldr r2, _020B2AFC ; =UNK_021CDD74 + ldr r1, [r0, #0x0] + ldr r0, [r2, r1, lsl #0x2] + add r0, r0, r4 + str r0, [r2, r1, lsl #0x2] + add sp, sp, #0x1c + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B2AEC: .word UNK_021CDD68 +_020B2AF0: .word UNK_021CDD70 +_020B2AF4: .word UNK_021CDF04 +_020B2AF8: .word UNK_021CDF08 +_020B2AFC: .word UNK_021CDD74 +_020B2B00: .word UNK_021CDEF4 +_020B2B04: .word UNK_021CE1F4 + arm_func_end FUN_020B2A08 + + ; NNS_G2dPopMtx + arm_func_start FUN_020B2B08 +FUN_020B2B08: ; 0x020B2B08 + ldr r0, _020B2B4C ; =UNK_021CDD70 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + movle r0, #0x1 + movgt r0, #0x0 + cmp r0, #0x0 + bxne lr + ldr r1, _020B2B4C ; =UNK_021CDD70 + ldr r0, _020B2B50 ; =UNK_02106570 + ldr r3, [r1, #0x0] + ldrh r2, [r0, #0x0] + sub r3, r3, #0x1 + str r3, [r1, #0x0] + cmp r2, r3 + ldrgt r1, _020B2B54 ; =0x0000FFFE + strgth r1, [r0, #0x0] + bx lr + .balign 4 +_020B2B4C: .word UNK_021CDD70 +_020B2B50: .word UNK_02106570 +_020B2B54: .word 0x0000FFFE + arm_func_end FUN_020B2B08 + + ; NNS_G2dPushMtx + arm_func_start FUN_020B2B58 +FUN_020B2B58: ; 0x020B2B58 + stmdb sp!, {r4-r10,lr} + ldr r0, _020B2D74 ; =UNK_021CDD6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x7c] + ands r0, r0, #0x1 + bne _020B2CA4 + ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r1, [r0, #0x0] + mov r0, r1, lsl #0x10 + add r5, r1, #0x1 + cmp r5, #0x20 + mov r4, r0, lsr #0x10 + movlt r0, #0x1 + movge r0, #0x0 + cmp r0, #0x0 + beq _020B2C44 + ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020B2BE4 + ldr r1, _020B2D78 ; =UNK_021CDD70 + mov r0, #0x18 + ldr r3, [r1, #0x0] + ldr r1, _020B2D80 ; =UNK_021CDD74 + mul r8, r3, r0 + ldr r6, _020B2D84 ; =UNK_021CDF04 + mul r7, r5, r0 + ldr r2, [r6, r8] + ldr r0, [r1, r3, lsl #0x2] + ldr r3, _020B2D88 ; =UNK_021CDF08 + str r2, [r6, r7] + ldr r2, [r3, r8] + str r0, [r1, r5, lsl #0x2] + str r2, [r3, r7] + b _020B2C3C +_020B2BE4: + ldr r1, _020B2D78 ; =UNK_021CDD70 + mov r0, #0x18 + ldr r2, [r1, #0x0] + ldr r7, _020B2D80 ; =UNK_021CDD74 + mul lr, r2, r0 + ldr r1, _020B2D8C ; =UNK_021CDEF4 + mul r12, r5, r0 + ldr r8, _020B2D90 ; =UNK_021CE1F4 + add r10, r1, lr + ldr r6, [r7, r2, lsl #0x2] + add r9, r1, r12 + ldmia r10!, {r0-r3} + stmia r9!, {r0-r3} + ldmia r10, {r0-r1} + str r6, [r7, r5, lsl #0x2] + add r7, r8, lr + stmia r9, {r0-r1} + add r6, r8, r12 + ldmia r7!, {r0-r3} + stmia r6!, {r0-r3} + ldmia r7, {r0-r1} + stmia r6, {r0-r1} +_020B2C3C: + ldr r0, _020B2D78 ; =UNK_021CDD70 + str r5, [r0, #0x0] +_020B2C44: + ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r2, _020B2D94 ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + mov r5, r4, lsl #0x3 + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + add r4, r2, r4, lsl #0x3 + mov r6, r3, lsl #0x3 + ldrh r1, [r2, r5] + ldrh r0, [r4, #0x2] + add r3, r2, r3, lsl #0x3 + strh r1, [r2, r6] + strh r0, [r3, #0x2] + ldrh r2, [r4, #0x4] + ldrh r0, [r4, #0x6] + ldr r1, _020B2D98 ; =UNK_021CDDF8 + strh r2, [r3, #0x4] + strh r0, [r3, #0x6] + ldrh r0, [r1, r5] + cmp r0, #0x1 + moveq r0, #0x2 + streqh r0, [r1, r6] + strneh r0, [r1, r6] + ldmia sp!, {r4-r10,pc} +_020B2CA4: + ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, [r0, #0x0] + add r4, r0, #0x1 + cmp r4, #0x20 + movlt r0, #0x1 + movge r0, #0x0 + cmp r0, #0x0 + ldmeqia sp!, {r4-r10,pc} + ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020B2D10 + ldr r1, _020B2D78 ; =UNK_021CDD70 + mov r0, #0x18 + ldr r3, [r1, #0x0] + ldr r1, _020B2D80 ; =UNK_021CDD74 + mul r7, r3, r0 + ldr r5, _020B2D84 ; =UNK_021CDF04 + mul r6, r4, r0 + ldr r2, [r5, r7] + ldr r0, [r1, r3, lsl #0x2] + ldr r3, _020B2D88 ; =UNK_021CDF08 + str r2, [r5, r6] + ldr r2, [r3, r7] + str r0, [r1, r4, lsl #0x2] + str r2, [r3, r6] + b _020B2D68 +_020B2D10: + ldr r1, _020B2D78 ; =UNK_021CDD70 + mov r0, #0x18 + ldr r2, [r1, #0x0] + ldr ip, _020B2D80 ; =UNK_021CDD74 + mul r9, r2, r0 + ldr r1, _020B2D8C ; =UNK_021CDEF4 + mul r8, r4, r0 + ldr lr, _020B2D90 ; =UNK_021CE1F4 + add r6, r1, r9 + ldr r5, [r12, r2, lsl #0x2] + add r7, r1, r8 + ldmia r6!, {r0-r3} + stmia r7!, {r0-r3} + ldmia r6, {r0-r1} + add r6, lr, r9 + stmia r7, {r0-r1} + add lr, lr, r8 + ldmia r6!, {r0-r3} + stmia lr!, {r0-r3} + ldmia r6, {r0-r1} + stmia lr, {r0-r1} + str r5, [r12, r4, lsl #0x2] +_020B2D68: + ldr r0, _020B2D78 ; =UNK_021CDD70 + str r4, [r0, #0x0] + ldmia sp!, {r4-r10,pc} + .balign 4 +_020B2D74: .word UNK_021CDD6C +_020B2D78: .word UNK_021CDD70 +_020B2D7C: .word UNK_021CDD68 +_020B2D80: .word UNK_021CDD74 +_020B2D84: .word UNK_021CDF04 +_020B2D88: .word UNK_021CDF08 +_020B2D8C: .word UNK_021CDEF4 +_020B2D90: .word UNK_021CE1F4 +_020B2D94: .word UNK_021CDDF4 +_020B2D98: .word UNK_021CDDF8 + arm_func_end FUN_020B2B58 + + ; NNS_G2dDrawMultiCellAnimation + arm_func_start FUN_020B2D9C +FUN_020B2D9C: ; 0x020B2D9C + stmdb sp!, {r4-r6,lr} + mov r4, r0 + ldrh r0, [r4, #0x56] + cmp r0, #0x0 + bne _020B2DBC + add r0, r4, #0x30 + bl FUN_020B2E78 + ldmia sp!, {r4-r6,pc} +_020B2DBC: + bl FUN_020B2B58 + ldrh r0, [r4, #0x56] + ands r0, r0, #0x8 + beq _020B2E0C + ldr r0, _020B2E70 ; =UNK_021CDD6C + ldrsh r6, [r4, #0x52] + ldr r0, [r0, #0x0] + ldrsh r5, [r4, #0x50] + bl FUN_020B4F88 + cmp r0, #0x0 + ldr r0, _020B2E70 ; =UNK_021CDD6C + rsbne r5, r5, #0x0 + ldr r0, [r0, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + rsbne r6, r6, #0x0 + mov r0, r5, lsl #0xc + mov r1, r6, lsl #0xc + mov r2, #0x0 + bl FUN_020B2A08 +_020B2E0C: + ldrh r0, [r4, #0x56] + ands r0, r0, #0x4 + beq _020B2E40 + ldrh r0, [r4, #0x54] + ldr r2, _020B2E74 ; =FX_SinCosTable_ + mov r0, r0, asr #0x4 + mov r1, r0, lsl #0x1 + add r0, r1, #0x1 + mov r3, r1, lsl #0x1 + mov r1, r0, lsl #0x1 + ldrsh r0, [r2, r3] + ldrsh r1, [r2, r1] + bl FUN_020B2794 +_020B2E40: + ldrh r0, [r4, #0x56] + ands r0, r0, #0x2 + beq _020B2E5C + ldr r0, [r4, #0x48] + ldr r1, [r4, #0x4c] + mov r2, #0x1000 + bl FUN_020B28B4 +_020B2E5C: + add r0, r4, #0x30 + bl FUN_020B2E78 + mov r0, #0x1 + bl FUN_020B2B08 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B2E70: .word UNK_021CDD6C +_020B2E74: .word FX_SinCosTable_ + arm_func_end FUN_020B2D9C + + ; NNS_G2dDrawMultiCell + arm_func_start FUN_020B2E78 +FUN_020B2E78: ; 0x020B2E78 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r0, [r5, #0x8] + cmp r0, #0x1 + bne _020B309C + ldr r0, [r5, #0x0] + mov r2, #0x0 + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bls _020B2ED0 + ldr r3, _020B3174 ; =UNK_021CE8F4 + mov r4, r2 +_020B2EAC: + add r0, r3, r2, lsl #0x2 + str r4, [r0, #0x4] + ldr r0, [r5, #0x0] + add r2, r2, #0x1 + ldrh r1, [r0, #0x2] + mov r0, r2, lsl #0x10 + mov r2, r0, lsr #0x10 + cmp r2, r1 + blo _020B2EAC +_020B2ED0: + ldr r0, _020B3178 ; =UNK_021CDD6C + mov r6, #0x1 + ldr r1, [r0, #0x0] + ldr r0, _020B3174 ; =UNK_021CE8F4 + str r6, [r0, #0x404] + ldr r0, [r1, #0x80] + cmp r0, #0x0 + beq _020B2FD8 + bl FUN_020B4948 + str r0, [sp, #0x0] + mov r0, r6 + bl FUN_020B497C + ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x80] + bl FUN_020B4958 + ldr r2, [r5, #0x0] + mov r7, #0x0 + ldrh r0, [r2, #0x0] + cmp r0, #0x0 + bls _020B2FC0 + mov r11, r7 +_020B2F28: + ldr r0, [r2, #0x4] + ldr r9, [r5, #0xc] + add r10, r0, r7, lsl #0x3 + ldrh r0, [r10, #0x6] + and r0, r0, #0xff00 + mov r0, r0, lsl #0x8 + mov r8, r0, lsr #0x10 + ldr r0, _020B3174 ; =UNK_021CE8F4 + strh r8, [r0, #0x0] + bl FUN_020B2B58 + ldr r0, _020B3178 ; =UNK_021CDD6C + ldrsh r4, [r10, #0x4] + ldr r0, [r0, #0x0] + ldrsh r10, [r10, #0x2] + bl FUN_020B4F88 + cmp r0, #0x0 + ldr r0, _020B3178 ; =UNK_021CDD6C + rsbne r10, r10, #0x0 + ldr r0, [r0, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + rsbne r4, r4, #0x0 + mov r2, r11 + mov r0, r10, lsl #0xc + mov r1, r4, lsl #0xc + bl FUN_020B2A08 + mov r0, #0x58 + mla r0, r8, r0, r9 + bl FUN_020B3554 + mov r0, r6 + bl FUN_020B2B08 + ldr r2, [r5, #0x0] + add r0, r7, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r2, #0x0] + mov r7, r0, lsr #0x10 + cmp r7, r1 + blo _020B2F28 +_020B2FC0: + mov r0, #0x0 + bl FUN_020B497C + ldr r0, [sp, #0x0] + bl FUN_020B4958 + bl FUN_020B4968 + b _020B3088 +_020B2FD8: + ldr r2, [r5, #0x0] + mov r7, #0x0 + ldrh r0, [r2, #0x0] + cmp r0, #0x0 + bls _020B3088 + str r7, [sp, #0x4] + mov r11, #0x58 +_020B2FF4: + ldr r0, [r2, #0x4] + ldr r9, [r5, #0xc] + add r10, r0, r7, lsl #0x3 + ldrh r0, [r10, #0x6] + and r0, r0, #0xff00 + mov r0, r0, lsl #0x8 + mov r8, r0, lsr #0x10 + ldr r0, _020B3174 ; =UNK_021CE8F4 + strh r8, [r0, #0x0] + bl FUN_020B2B58 + ldr r0, _020B3178 ; =UNK_021CDD6C + ldrsh r4, [r10, #0x4] + ldr r0, [r0, #0x0] + ldrsh r10, [r10, #0x2] + bl FUN_020B4F88 + cmp r0, #0x0 + ldr r0, _020B3178 ; =UNK_021CDD6C + rsbne r10, r10, #0x0 + ldr r0, [r0, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + rsbne r4, r4, #0x0 + ldr r2, [sp, #0x4] + mov r0, r10, lsl #0xc + mov r1, r4, lsl #0xc + bl FUN_020B2A08 + mla r0, r8, r11, r9 + bl FUN_020B3554 + mov r0, r6 + bl FUN_020B2B08 + ldr r2, [r5, #0x0] + add r0, r7, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r2, #0x0] + mov r7, r0, lsr #0x10 + cmp r7, r1 + blo _020B2FF4 +_020B3088: + ldr r0, _020B3174 ; =UNK_021CE8F4 + mov r1, #0x0 + str r1, [r0, #0x404] + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} +_020B309C: + ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r7, [r5, #0xc] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x80] + cmp r0, #0x0 + beq _020B312C + bl FUN_020B4948 + mov r6, r0 + mov r0, #0x1 + bl FUN_020B497C + ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x80] + bl FUN_020B4958 + ldr r0, [r5, #0x0] + mov r4, #0x0 + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + bls _020B3110 + mov r8, #0x28 +_020B30EC: + mla r0, r4, r8, r7 + bl FUN_020B3474 + ldr r1, [r5, #0x0] + add r0, r4, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r1, #0x0] + mov r4, r0, lsr #0x10 + cmp r4, r1 + blo _020B30EC +_020B3110: + mov r0, #0x0 + bl FUN_020B497C + mov r0, r6 + bl FUN_020B4958 + bl FUN_020B4968 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} +_020B312C: + ldr r0, [r5, #0x0] + mov r4, #0x0 + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + addls sp, sp, #0xc + ldmlsia sp!, {r4-r11,pc} + mov r6, #0x28 +_020B3148: + mla r0, r4, r6, r7 + bl FUN_020B3474 + ldr r1, [r5, #0x0] + add r0, r4, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r1, #0x0] + mov r4, r0, lsr #0x10 + cmp r4, r1 + blo _020B3148 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B3174: .word UNK_021CE8F4 +_020B3178: .word UNK_021CDD6C + arm_func_end FUN_020B2E78 + + ; NNS_G2dDrawCellAnimation + arm_func_start FUN_020B317C +FUN_020B317C: ; 0x020B317C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020B31EC ; =UNK_021CDD6C + mov r5, r0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x80] + cmp r1, #0x0 + beq _020B31E0 + bl FUN_020B4948 + mov r4, r0 + mov r0, #0x1 + bl FUN_020B497C + ldr r0, _020B31EC ; =UNK_021CDD6C + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x80] + bl FUN_020B4958 + mov r0, r5 + bl FUN_020B3554 + mov r0, #0x0 + bl FUN_020B497C + mov r0, r4 + bl FUN_020B4958 + bl FUN_020B4968 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020B31E0: + bl FUN_020B3554 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B31EC: .word UNK_021CDD6C + arm_func_end FUN_020B317C + + ; NNS_G2dEndRendering + arm_func_start FUN_020B31F0 +FUN_020B31F0: ; 0x020B31F0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020B3260 ; =0x04000448 + mov r2, #0x1 + ldr r0, _020B3264 ; =UNK_021CDD6C + str r2, [r1, #0x0] + ldr r2, [r0, #0x0] + ldr r3, [r2, #0x7c] + cmp r3, #0x0 + beq _020B324C + ands r0, r3, #0x1 + ldrne r0, _020B3268 ; =UNK_021CDD68 + movne r1, #0x0 + strne r1, [r0, #0x0] + ands r0, r3, #0x2 + beq _020B323C + mov r0, #0x0 + str r0, [r2, #0x74] + bl FUN_020B4DA0 +_020B323C: + ldr r0, _020B3264 ; =UNK_021CDD6C + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x7c] +_020B324C: + ldr r0, _020B3264 ; =UNK_021CDD6C + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B3260: .word 0x04000448 +_020B3264: .word UNK_021CDD6C +_020B3268: .word UNK_021CDD68 + arm_func_end FUN_020B31F0 + + ; NNS_G2dBeginRendering + arm_func_start FUN_020B326C +FUN_020B326C: ; 0x020B326C + stmdb sp!, {r4-r8,lr} + ldr r5, _020B330C ; =UNK_021CDD60 + ldr r3, _020B3310 ; =UNK_021CDD6C + ldrh r6, [r5, #0x0] + ldr r2, _020B3314 ; =UNK_021CDD70 + mov r4, #0x0 + ldr r7, _020B3318 ; =0x0000FFFE + ldr r1, _020B331C ; =UNK_02106570 + str r0, [r3, #0x0] + str r4, [r2, #0x0] + strh r7, [r1, #0x0] + cmp r6, #0x0 + ble _020B32D0 + ldr r8, _020B3320 ; =UNK_021CE4F4 + mvn r7, #0x0 + mov r6, #0x10 +_020B32AC: + mov r0, r7 + mov r2, r6 + add r1, r8, #0x10 + bl MIi_CpuClearFast + ldrh r0, [r5, #0x0] + add r4, r4, #0x1 + add r8, r8, #0x20 + cmp r4, r0 + blt _020B32AC +_020B32D0: + ldr r4, _020B330C ; =UNK_021CDD60 + mov r0, #0x0 + ldr r3, _020B3324 ; =UNK_021CDD64 + ldr r1, _020B3328 ; =UNK_021CDDF4 + mov r2, #0x100 + strh r0, [r4, #0x0] + strh r0, [r3, #0x0] + bl MIi_CpuClearFast + ldr r1, _020B332C ; =0x04000444 + mov r2, #0x0 + ldr r0, _020B3330 ; =0x04000454 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + bl FUN_020B4178 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020B330C: .word UNK_021CDD60 +_020B3310: .word UNK_021CDD6C +_020B3314: .word UNK_021CDD70 +_020B3318: .word 0x0000FFFE +_020B331C: .word UNK_02106570 +_020B3320: .word UNK_021CE4F4 +_020B3324: .word UNK_021CDD64 +_020B3328: .word UNK_021CDDF4 +_020B332C: .word 0x04000444 +_020B3330: .word 0x04000454 + arm_func_end FUN_020B326C + + ; NNS_G2dInitRenderSurface + arm_func_start FUN_020B3334 +FUN_020B3334: ; 0x020B3334 + stmdb sp!, {r4,lr} + mov r4, r0 + mov r1, r4 + mov r0, #0x0 + mov r2, #0x48 + bl MIi_CpuClear16 + mov r0, #0x1 + str r0, [r4, #0x10] + mov r0, #0x3 + ldr r1, _020B3380 ; =FUN_020B3EE0 + str r0, [r4, #0x14] + ldr r0, _020B3384 ; =FUN_020B3E48 + str r1, [r4, #0x18] + ldr r1, _020B3388 ; =FUN_020B3C40 + str r0, [r4, #0x1c] + ldr r0, _020B338C ; =FUN_020B3B90 + str r1, [r4, #0x20] + str r0, [r4, #0x24] + ldmia sp!, {r4,pc} + .balign 4 +_020B3380: .word FUN_020B3EE0 +_020B3384: .word FUN_020B3E48 +_020B3388: .word FUN_020B3C40 +_020B338C: .word FUN_020B3B90 + arm_func_end FUN_020B3334 + + ; _end + arm_func_start FUN_020B3390 +FUN_020B3390: ; 0x020B3390 + ldr r2, [r0, #0x70] + str r2, [r1, #0x30] + str r1, [r0, #0x70] + bx lr + arm_func_end FUN_020B3390 + + ; NNS_G2dInitRenderer + arm_func_start FUN_020B33A0 +FUN_020B33A0: ; 0x020B33A0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl FUN_020B504C + mov r7, #0x0 + str r7, [r4, #0x70] + str r7, [r4, #0x74] + str r7, [r4, #0x78] + str r7, [r4, #0x7c] + str r7, [r4, #0x80] + str r7, [r4, #0x84] + strh r7, [r4, #0x88] + strh r7, [r4, #0x8a] + str r7, [r4, #0x8c] + str r7, [r4, #0x90] + ldr r1, _020B3454 ; =UNK_021CDD70 + strh r7, [r4, #0x94] + ldr r2, _020B3458 ; =0x0000FFFE + ldr r0, _020B345C ; =UNK_02106570 + ldr r6, _020B3460 ; =UNK_021CE4F4 + str r7, [r1, #0x0] + strh r2, [r0, #0x0] + mvn r5, #0x0 + mov r4, #0x10 +_020B3400: + mov r0, r5 + mov r2, r4 + add r1, r6, #0x10 + bl MIi_CpuClearFast + add r7, r7, #0x1 + cmp r7, #0x20 + add r6, r6, #0x20 + blt _020B3400 + ldr ip, _020B3464 ; =UNK_021CDD60 + mov r0, #0x0 + ldr r3, _020B3468 ; =UNK_021CDD64 + ldr r1, _020B346C ; =UNK_021CDDF4 + mov r2, #0x100 + strh r0, [r12, #0x0] + strh r0, [r3, #0x0] + bl MIi_CpuClearFast + ldr r0, _020B3470 ; =UNK_021CDD68 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B3454: .word UNK_021CDD70 +_020B3458: .word 0x0000FFFE +_020B345C: .word UNK_02106570 +_020B3460: .word UNK_021CE4F4 +_020B3464: .word UNK_021CDD60 +_020B3468: .word UNK_021CDD64 +_020B346C: .word UNK_021CDDF4 +_020B3470: .word UNK_021CDD68 + arm_func_end FUN_020B33A0 + + ; DrawNode_ + arm_func_start FUN_020B3474 +FUN_020B3474: ; 0x020B3474 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x8] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + ldr r4, [r5, #0x0] + bl FUN_020B2B58 + ldrh r0, [r5, #0x1e] + ands r0, r0, #0x8 + beq _020B34E4 + ldr r0, _020B354C ; =UNK_021CDD6C + ldrsh r7, [r5, #0x1a] + ldr r0, [r0, #0x0] + ldrsh r6, [r5, #0x18] + bl FUN_020B4F88 + cmp r0, #0x0 + ldr r0, _020B354C ; =UNK_021CDD6C + rsbne r6, r6, #0x0 + ldr r0, [r0, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + rsbne r7, r7, #0x0 + mov r0, r6, lsl #0xc + mov r1, r7, lsl #0xc + mov r2, #0x0 + bl FUN_020B2A08 +_020B34E4: + ldrh r0, [r5, #0x1e] + ands r0, r0, #0x4 + beq _020B3518 + ldrh r0, [r5, #0x1c] + ldr r2, _020B3550 ; =FX_SinCosTable_ + mov r0, r0, asr #0x4 + mov r1, r0, lsl #0x1 + add r0, r1, #0x1 + mov r3, r1, lsl #0x1 + mov r1, r0, lsl #0x1 + ldrsh r0, [r2, r3] + ldrsh r1, [r2, r1] + bl FUN_020B2794 +_020B3518: + ldrh r0, [r5, #0x1e] + ands r0, r0, #0x2 + beq _020B3534 + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x14] + mov r2, #0x1000 + bl FUN_020B28B4 +_020B3534: + mov r0, r4 + bl FUN_020B3554 + mov r0, #0x1 + bl FUN_020B2B08 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B354C: .word UNK_021CDD6C +_020B3550: .word FX_SinCosTable_ + arm_func_end FUN_020B3474 + + ; DrawCellAnimationImpl_ + arm_func_start FUN_020B3554 +FUN_020B3554: ; 0x020B3554 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrh r0, [r5, #0x4a] + ldr r4, [r5, #0x2c] + cmp r0, #0x0 + bne _020B35C0 + ldr r2, [r5, #0x34] + mvn r0, #0x0 + cmp r2, r0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B35B0 + ldr r1, _020B36B4 ; =UNK_02106574 + mov r0, r4 + str r2, [r1, #0x0] + bl FUN_020B36C0 + ldr r0, _020B36B4 ; =UNK_02106574 + mvn r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} +_020B35B0: + mov r0, r4 + bl FUN_020B36C0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} +_020B35C0: + bl FUN_020B2B58 + ldrh r0, [r5, #0x4a] + ands r0, r0, #0x8 + beq _020B3610 + ldr r0, _020B36B8 ; =UNK_021CDD6C + ldrsh r7, [r5, #0x46] + ldr r0, [r0, #0x0] + ldrsh r6, [r5, #0x44] + bl FUN_020B4F88 + cmp r0, #0x0 + ldr r0, _020B36B8 ; =UNK_021CDD6C + rsbne r6, r6, #0x0 + ldr r0, [r0, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + rsbne r7, r7, #0x0 + mov r0, r6, lsl #0xc + mov r1, r7, lsl #0xc + mov r2, #0x0 + bl FUN_020B2A08 +_020B3610: + ldrh r0, [r5, #0x4a] + ands r0, r0, #0x4 + beq _020B3644 + ldrh r0, [r5, #0x48] + ldr r2, _020B36BC ; =FX_SinCosTable_ + mov r0, r0, asr #0x4 + mov r1, r0, lsl #0x1 + add r0, r1, #0x1 + mov r3, r1, lsl #0x1 + mov r1, r0, lsl #0x1 + ldrsh r0, [r2, r3] + ldrsh r1, [r2, r1] + bl FUN_020B2794 +_020B3644: + ldrh r0, [r5, #0x4a] + ands r0, r0, #0x2 + beq _020B3660 + ldr r0, [r5, #0x3c] + ldr r1, [r5, #0x40] + mov r2, #0x1000 + bl FUN_020B28B4 +_020B3660: + ldr r2, [r5, #0x34] + mvn r0, #0x0 + cmp r2, r0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B369C + ldr r1, _020B36B4 ; =UNK_02106574 + mov r0, r4 + str r2, [r1, #0x0] + bl FUN_020B36C0 + ldr r0, _020B36B4 ; =UNK_02106574 + mvn r1, #0x0 + str r1, [r0, #0x0] + b _020B36A4 +_020B369C: + mov r0, r4 + bl FUN_020B36C0 +_020B36A4: + mov r0, #0x1 + bl FUN_020B2B08 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B36B4: .word UNK_02106574 +_020B36B8: .word UNK_021CDD6C +_020B36BC: .word FX_SinCosTable_ + arm_func_end FUN_020B3554 + + ; DrawCellImpl_ + arm_func_start FUN_020B36C0 +FUN_020B36C0: ; 0x020B36C0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r5, _020B3B54 ; =UNK_021CDD6C + mov r10, r0 + ldr r0, [r5, #0x0] + ldr r1, [r0, #0x7c] + str r0, [sp, #0x0] + ldr r9, [r0, #0x70] + ands r0, r1, #0x2 + beq _020B38EC + ldr r0, [r9, #0x14] + cmp r0, #0x0 + beq _020B3840 + ldr r0, _020B3B58 ; =UNK_021CDD68 + mov r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020B3720 + ldr r2, _020B3B5C ; =UNK_02106570 + ldr r0, _020B3B60 ; =0x0000FFFE + ldrh r2, [r2, #0x0] + cmp r2, r0 + movne r0, #0x1 + bne _020B3724 +_020B3720: + mov r0, #0x0 +_020B3724: + cmp r0, #0x0 + beq _020B37AC + ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r1, [r0, #0x404] + cmp r1, #0x0 + beq _020B3788 + ldrh r1, [r0, #0x0] + ldr r0, _020B3B68 ; =UNK_021CE8F8 + ldr r1, [r0, r1, lsl #0x2] + cmp r1, #0x0 + bne _020B37AC + bl FUN_020B4010 + ldr r0, _020B3B6C ; =UNK_021CDD70 + ldr r2, _020B3B70 ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + ldr r1, _020B3B64 ; =UNK_021CE8F4 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0xd + ldrh r3, [r2, r0] + ldr r4, _020B3B74 ; =UNK_021CE4F4 + ldrh r2, [r1, #0x0] + ldr r0, _020B3B68 ; =UNK_021CE8F8 + add r1, r4, r3, lsl #0x5 + str r1, [r0, r2, lsl #0x2] + b _020B37AC +_020B3788: + bl FUN_020B4010 + ldr r0, _020B3B6C ; =UNK_021CDD70 + ldr r1, _020B3B70 ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + ldr r2, _020B3B74 ; =UNK_021CE4F4 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0xd + ldrh r0, [r1, r0] + add r1, r2, r0, lsl #0x5 +_020B37AC: + ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r0, _020B3B6C ; =UNK_021CDD70 + ldreq r3, _020B3B78 ; =UNK_021CDEF4 + ldreq r2, [r0, #0x0] + moveq r0, #0x18 + mlaeq r0, r2, r0, r3 + beq _020B37FC + ldr r2, _020B3B6C ; =UNK_021CDD70 + mov r0, #0x18 + ldr r2, [r2, #0x0] + ldr r3, _020B3B7C ; =UNK_021CDF04 + mul r4, r2, r0 + ldr r2, _020B3B80 ; =UNK_021CDF08 + ldr r3, [r3, r4] + ldr r0, _020B3B84 ; =UNK_02106578 + ldr r2, [r2, r4] + str r3, [r0, #0x10] + str r2, [r0, #0x14] +_020B37FC: + bl FUN_020B4FAC + ldr r1, _020B3B88 ; =UNK_02106574 + mvn r0, #0x0 + ldr r1, [r1, #0x0] + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B3830 + mov r0, r10 + bl FUN_020B4BF4 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} +_020B3830: + mov r0, r10 + bl FUN_020B4CDC + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} +_020B3840: + ldr r0, _020B3B6C ; =UNK_021CDD70 + ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r2, [r0, #0x0] + ldr r0, [sp, #0x0] + ldr r1, [r1, r2, lsl #0x2] + bl FUN_020B4FA4 + ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r0, _020B3B6C ; =UNK_021CDD70 + ldreq r2, _020B3B78 ; =UNK_021CDEF4 + ldreq r1, [r0, #0x0] + moveq r0, #0x18 + mlaeq r0, r1, r0, r2 + beq _020B38A8 + ldr r1, _020B3B6C ; =UNK_021CDD70 + mov r0, #0x18 + ldr r1, [r1, #0x0] + ldr r2, _020B3B7C ; =UNK_021CDF04 + mul r3, r1, r0 + ldr r1, _020B3B80 ; =UNK_021CDF08 + ldr r2, [r2, r3] + ldr r0, _020B3B84 ; =UNK_02106578 + ldr r1, [r1, r3] + str r2, [r0, #0x10] + str r1, [r0, #0x14] +_020B38A8: + bl FUN_020B4FC4 + ldr r1, _020B3B88 ; =UNK_02106574 + mvn r0, #0x0 + ldr r1, [r1, #0x0] + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020B38DC + mov r0, r10 + bl FUN_020B4BF4 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} +_020B38DC: + mov r0, r10 + bl FUN_020B4CDC + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} +_020B38EC: + cmp r9, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r11,pc} + ldr r4, _020B3B6C ; =UNK_021CDD70 + ldr fp, _020B3B78 ; =UNK_021CDEF4 + mov r7, #0x0 + mov r6, #0x1 +_020B3908: + ldr r0, [r9, #0x10] + cmp r0, #0x0 + beq _020B3B40 + ldr r0, [r9, #0x14] + cmp r0, #0x0 + beq _020B3A8C + ldr r8, [r5, #0x0] + mov r1, r9 + str r9, [r8, #0x74] + mov r0, r8 + bl FUN_020B4F9C + ldr r1, [r9, #0x28] + ldr r2, [r9, #0x2c] + mov r0, r8 + bl FUN_020B5034 + mov r0, r8 + bl FUN_020B4E0C + ldr r0, _020B3B58 ; =UNK_021CDD68 + mov r1, r7 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020B3978 + ldr r0, _020B3B5C ; =UNK_02106570 + ldrh r2, [r0, #0x0] + ldr r0, _020B3B60 ; =0x0000FFFE + cmp r2, r0 + movne r0, r6 + bne _020B397C +_020B3978: + mov r0, r7 +_020B397C: + cmp r0, #0x0 + beq _020B3A04 + ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, [r0, #0x404] + cmp r0, #0x0 + beq _020B39E4 + ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldrh r1, [r0, #0x0] + add r0, r0, r1, lsl #0x2 + ldr r1, [r0, #0x4] + cmp r1, #0x0 + bne _020B3A04 + bl FUN_020B4010 + ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r2, [r4, #0x0] + ldrh r1, [r0, #0x0] + mov r0, r2, lsl #0x10 + mov r2, r0, lsr #0xd + ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldrh r3, [r0, r2] + ldr r0, _020B3B64 ; =UNK_021CE8F4 + add r2, r0, r1, lsl #0x2 + ldr r0, _020B3B74 ; =UNK_021CE4F4 + add r1, r0, r3, lsl #0x5 + str r1, [r2, #0x4] + b _020B3A04 +_020B39E4: + bl FUN_020B4010 + ldr r0, [r4, #0x0] + mov r0, r0, lsl #0x10 + mov r1, r0, lsr #0xd + ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldrh r1, [r0, r1] + ldr r0, _020B3B74 ; =UNK_021CE4F4 + add r1, r0, r1, lsl #0x5 +_020B3A04: + ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r2, [r4, #0x0] + moveq r0, #0x18 + mlaeq r0, r2, r0, r11 + beq _020B3A44 + ldr r2, [r4, #0x0] + mov r0, #0x18 + mla r8, r2, r0, r11 + ldr r0, _020B3B84 ; =UNK_02106578 + ldr r3, [r8, #0x10] + mov r2, r0 + str r3, [r2, #0x10] + ldr r3, [r8, #0x14] + str r3, [r2, #0x14] +_020B3A44: + bl FUN_020B4FAC + ldr r0, _020B3B88 ; =UNK_02106574 + ldr r1, [r0, #0x0] + mvn r0, #0x0 + cmp r1, r0 + movne r0, r6 + moveq r0, r7 + cmp r0, #0x0 + beq _020B3A74 + mov r0, r10 + bl FUN_020B4BF4 + b _020B3A7C +_020B3A74: + mov r0, r10 + bl FUN_020B4CDC +_020B3A7C: + ldr r0, [r5, #0x0] + str r7, [r0, #0x74] + bl FUN_020B4DA0 + b _020B3B40 +_020B3A8C: + ldr r8, [r5, #0x0] + mov r1, r9 + mov r0, r8 + str r9, [r8, #0x74] + bl FUN_020B4F9C + mov r0, r8 + bl FUN_020B4E0C + ldr r2, [r4, #0x0] + ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r0, [sp, #0x0] + ldr r1, [r1, r2, lsl #0x2] + bl FUN_020B4FA4 + ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r1, [r4, #0x0] + moveq r0, #0x18 + mlaeq r0, r1, r0, r11 + beq _020B3AFC + ldr r1, [r4, #0x0] + mov r0, #0x18 + mla r3, r1, r0, r11 + ldr r0, _020B3B84 ; =UNK_02106578 + ldr r2, [r3, #0x10] + mov r1, r0 + str r2, [r1, #0x10] + ldr r2, [r3, #0x14] + str r2, [r1, #0x14] +_020B3AFC: + bl FUN_020B4FC4 + ldr r0, _020B3B88 ; =UNK_02106574 + ldr r1, [r0, #0x0] + mvn r0, #0x0 + cmp r1, r0 + movne r0, r6 + moveq r0, r7 + cmp r0, #0x0 + beq _020B3B2C + mov r0, r10 + bl FUN_020B4BF4 + b _020B3B34 +_020B3B2C: + mov r0, r10 + bl FUN_020B4CDC +_020B3B34: + ldr r0, [r5, #0x0] + str r7, [r0, #0x74] + bl FUN_020B4DA0 +_020B3B40: + ldr r9, [r9, #0x30] + cmp r9, #0x0 + bne _020B3908 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B3B54: .word UNK_021CDD6C +_020B3B58: .word UNK_021CDD68 +_020B3B5C: .word UNK_02106570 +_020B3B60: .word 0x0000FFFE +_020B3B64: .word UNK_021CE8F4 +_020B3B68: .word UNK_021CE8F8 +_020B3B6C: .word UNK_021CDD70 +_020B3B70: .word UNK_021CDDF4 +_020B3B74: .word UNK_021CE4F4 +_020B3B78: .word UNK_021CDEF4 +_020B3B7C: .word UNK_021CDF04 +_020B3B80: .word UNK_021CDF08 +_020B3B84: .word UNK_02106578 +_020B3B88: .word UNK_02106574 +_020B3B8C: .word UNK_021CDD74 + arm_func_end FUN_020B36C0 + + ; RndCoreCBFuncAfterOBJ_ + arm_func_start FUN_020B3B90 +FUN_020B3B90: ; 0x020B3B90 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + ldr r0, _020B3C24 ; =UNK_021CDD6C + mov r12, r1 + ldr r0, [r0, #0x0] + mov r3, r2 + ldr r1, [r0, #0x74] + ldr r2, [r1, #0x44] + cmp r2, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,pc} + ldr r2, _020B3C28 ; =UNK_021CDD68 + ldr r2, [r2, #0x0] + cmp r2, #0x0 + ldreq r2, _020B3C2C ; =UNK_021CDD70 + ldreq r4, _020B3C30 ; =UNK_021CDEF4 + ldreq lr, [r2, #0x0] + moveq r2, #0x18 + mlaeq r6, lr, r2, r4 + beq _020B3C0C + ldr lr, _020B3C2C ; =UNK_021CDD70 + mov r2, #0x18 + ldr lr, [lr, #0x0] + ldr r4, _020B3C34 ; =UNK_021CDF04 + mul r5, lr, r2 + ldr r2, _020B3C38 ; =UNK_021CDF08 + ldr r4, [r4, r5] + ldr r6, _020B3C3C ; =UNK_02106578 + ldr r2, [r2, r5] + str r4, [r6, #0x10] + str r2, [r6, #0x14] +_020B3C0C: + str r6, [sp, #0x0] + ldr lr, [r1, #0x44] + mov r2, r12 + blx lr + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B3C24: .word UNK_021CDD6C +_020B3C28: .word UNK_021CDD68 +_020B3C2C: .word UNK_021CDD70 +_020B3C30: .word UNK_021CDEF4 +_020B3C34: .word UNK_021CDF04 +_020B3C38: .word UNK_021CDF08 +_020B3C3C: .word UNK_02106578 + arm_func_end FUN_020B3B90 + + ; RndCoreCBFuncBeforeOBJ_ + arm_func_start FUN_020B3C40 +FUN_020B3C40: ; 0x020B3C40 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + ldr r3, _020B3E2C ; =UNK_021CDD6C + add r4, r0, #0x38 + ldr r0, [r3, #0x0] + mov r6, r1 + mov r5, r2 + bl FUN_020B278C + cmp r0, #0x0 + beq _020B3C90 + ldrh r1, [r4, #0x4] + and r1, r1, #0xf000 + mov r1, r1, lsl #0x4 + mov r1, r1, lsr #0x10 + bl FUN_020B10B0 + ldr r1, [r4, #0x4] + and r0, r0, #0xf + bic r1, r1, #0xf000 + orr r0, r1, r0, lsl #0xc + str r0, [r4, #0x4] +_020B3C90: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x84] + cmp r0, #0x0 + beq _020B3DA4 + ldr r0, [r1, #0x84] + ands r0, r0, #0x1 + beq _020B3CC8 + ldrh r0, [r1, #0x88] + ldr r1, [r4, #0x4] + bic r1, r1, #0xc00 + and r0, r0, #0x3 + orr r0, r1, r0, lsl #0xa + str r0, [r4, #0x4] +_020B3CC8: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x84] + ands r0, r0, #0x2 + beq _020B3CF4 + ldrh r0, [r1, #0x8a] + ldr r1, [r4, #0x4] + bic r1, r1, #0xf000 + and r0, r0, #0xf + orr r0, r1, r0, lsl #0xc + str r0, [r4, #0x4] +_020B3CF4: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x84] + ands r0, r0, #0x10 + beq _020B3D2C + ldr r2, [r4, #0x4] + ldrh r0, [r1, #0x94] + mov r1, r2, lsl #0x10 + bic r2, r2, #0xf000 + add r0, r0, r1, lsr #0x1c + and r0, r0, #0xf + and r0, r0, #0xf + orr r0, r2, r0, lsl #0xc + str r0, [r4, #0x4] +_020B3D2C: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x84] + ands r0, r0, #0x4 + beq _020B3D60 + ldr r0, [r1, #0x90] + cmp r0, #0x0 + ldrne r0, [r4, #0x0] + orrne r0, r0, #0x1000 + strne r0, [r4, #0x0] + ldreq r0, [r4, #0x0] + biceq r0, r0, #0x1000 + streq r0, [r4, #0x0] +_020B3D60: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x84] + ands r0, r0, #0x8 + beq _020B3DA4 + ldr r0, [r4, #0x0] + ldrh r2, [r4, #0x4] + ldr r1, [r1, #0x8c] + bic r0, r0, #0xc00 + orr r0, r0, r1, lsl #0xa + str r0, [r4, #0x0] + ldrh r0, [r4, #0x4] + and r1, r2, #0xf000 + mov r1, r1, asr #0xc + bic r0, r0, #0xf000 + orr r0, r0, r1, lsl #0xc + strh r0, [r4, #0x4] +_020B3DA4: + ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x74] + ldr r2, [r1, #0x40] + cmp r2, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,pc} + ldr r2, _020B3E30 ; =UNK_021CDD68 + ldr r2, [r2, #0x0] + cmp r2, #0x0 + ldreq r2, _020B3E34 ; =UNK_021CDD70 + ldreq r4, _020B3E38 ; =UNK_021CDEF4 + ldreq r3, [r2, #0x0] + moveq r2, #0x18 + mlaeq r4, r3, r2, r4 + beq _020B3E10 + ldr r3, _020B3E34 ; =UNK_021CDD70 + mov r2, #0x18 + ldr r4, [r3, #0x0] + ldr r3, _020B3E3C ; =UNK_021CDF04 + mul r12, r4, r2 + ldr r2, _020B3E40 ; =UNK_021CDF08 + ldr r3, [r3, r12] + ldr r4, _020B3E44 ; =UNK_02106578 + ldr r2, [r2, r12] + str r3, [r4, #0x10] + str r2, [r4, #0x14] +_020B3E10: + str r4, [sp, #0x0] + ldr r4, [r1, #0x40] + mov r2, r6 + mov r3, r5 + blx r4 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B3E2C: .word UNK_021CDD6C +_020B3E30: .word UNK_021CDD68 +_020B3E34: .word UNK_021CDD70 +_020B3E38: .word UNK_021CDEF4 +_020B3E3C: .word UNK_021CDF04 +_020B3E40: .word UNK_021CDF08 +_020B3E44: .word UNK_02106578 + arm_func_end FUN_020B3C40 + + ; RndCoreCBFuncAfterCell_ + arm_func_start FUN_020B3E48 +FUN_020B3E48: ; 0x020B3E48 + stmdb sp!, {r4,lr} + ldr r0, _020B3EC4 ; =UNK_021CDD6C + mov r2, r1 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x74] + ldr r3, [r1, #0x3c] + cmp r3, #0x0 + ldmeqia sp!, {r4,pc} + ldr r3, _020B3EC8 ; =UNK_021CDD68 + ldr r3, [r3, #0x0] + cmp r3, #0x0 + ldreq r3, _020B3ECC ; =UNK_021CDD70 + ldreq lr, _020B3ED0 ; =UNK_021CDEF4 + ldreq r12, [r3, #0x0] + moveq r3, #0x18 + mlaeq r3, r12, r3, lr + beq _020B3EB8 + ldr ip, _020B3ECC ; =UNK_021CDD70 + mov r3, #0x18 + ldr r12, [r12, #0x0] + ldr lr, _020B3ED4 ; =UNK_021CDF04 + mul r4, r12, r3 + ldr ip, _020B3ED8 ; =UNK_021CDF08 + ldr lr, [lr, r4] + ldr r3, _020B3EDC ; =UNK_02106578 + ldr r12, [r12, r4] + str lr, [r3, #0x10] + str r12, [r3, #0x14] +_020B3EB8: + ldr r12, [r1, #0x3c] + blx r12 + ldmia sp!, {r4,pc} + .balign 4 +_020B3EC4: .word UNK_021CDD6C +_020B3EC8: .word UNK_021CDD68 +_020B3ECC: .word UNK_021CDD70 +_020B3ED0: .word UNK_021CDEF4 +_020B3ED4: .word UNK_021CDF04 +_020B3ED8: .word UNK_021CDF08 +_020B3EDC: .word UNK_02106578 + arm_func_end FUN_020B3E48 + + ; RndCoreCBFuncBeforeCell_ + arm_func_start FUN_020B3EE0 +FUN_020B3EE0: ; 0x020B3EE0 + stmdb sp!, {r4-r6,lr} + ldr r2, _020B3FF4 ; =UNK_021CDD6C + mov r6, r0 + ldr r0, [r2, #0x0] + mov r5, r1 + ldr r4, [r0, #0x74] + ldr r0, [r4, #0x34] + cmp r0, #0x0 + beq _020B3F7C + ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r0, _020B3FFC ; =UNK_021CDD70 + ldreq r1, _020B4000 ; =UNK_021CDEF4 + ldreq r2, [r0, #0x0] + moveq r0, #0x18 + mlaeq r1, r2, r0, r1 + beq _020B3F54 + ldr r1, _020B3FFC ; =UNK_021CDD70 + mov r0, #0x18 + ldr r2, [r1, #0x0] + ldr r1, _020B4004 ; =UNK_021CDF04 + mul r3, r2, r0 + ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r2, [r1, r3] + ldr r1, _020B400C ; =UNK_02106578 + ldr r0, [r0, r3] + str r2, [r1, #0x10] + str r0, [r1, #0x14] +_020B3F54: + ldr r3, [r4, #0x34] + mov r0, r5 + mov r2, r4 + blx r3 + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r6, #0x30] + ldmeqia sp!, {r4-r6,pc} + mov r0, #0x1 + str r0, [r6, #0x30] +_020B3F7C: + ldr r0, [r4, #0x38] + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r0, _020B3FFC ; =UNK_021CDD70 + ldreq r2, _020B4000 ; =UNK_021CDEF4 + ldreq r1, [r0, #0x0] + moveq r0, #0x18 + mlaeq r3, r1, r0, r2 + beq _020B3FD8 + ldr r1, _020B3FFC ; =UNK_021CDD70 + mov r0, #0x18 + ldr r2, [r1, #0x0] + ldr r1, _020B4004 ; =UNK_021CDF04 + mul r6, r2, r0 + ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r1, [r1, r6] + ldr r3, _020B400C ; =UNK_02106578 + ldr r0, [r0, r6] + str r1, [r3, #0x10] + str r0, [r3, #0x14] +_020B3FD8: + ldr r0, _020B3FF4 ; =UNK_021CDD6C + ldr r6, [r4, #0x38] + ldr r0, [r0, #0x0] + mov r1, r4 + mov r2, r5 + blx r6 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B3FF4: .word UNK_021CDD6C +_020B3FF8: .word UNK_021CDD68 +_020B3FFC: .word UNK_021CDD70 +_020B4000: .word UNK_021CDEF4 +_020B4004: .word UNK_021CDF04 +_020B4008: .word UNK_021CDF08 +_020B400C: .word UNK_02106578 + arm_func_end FUN_020B3EE0 + + ; NNSi_G2dMCMStoreCurrentMtxToMtxCache + arm_func_start FUN_020B4010 +FUN_020B4010: ; 0x020B4010 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020B4154 ; =UNK_021CDD70 + ldr r1, _020B4158 ; =UNK_021CDDF4 + ldr r0, [r0, #0x0] + mov r2, #0x1 + mov r0, r0, lsl #0x10 + add r3, r1, r0, lsr #0xd + ldrh r0, [r3, #0x4] + cmp r0, #0x1 + beq _020B4044 + cmp r0, #0x2 + movne r2, #0x0 +_020B4044: + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r0, _020B415C ; =UNK_021CDD60 + mov r2, #0x10 + ldrh r4, [r0, #0x0] + cmp r4, #0x1f + addcc r1, r4, #0x1 + strcch r1, [r0, #0x0] + ldr r0, _020B4160 ; =UNK_021CE4F4 + ldrh r5, [r3, #0x2] + add r0, r0, r4, lsl #0x5 + add r1, r0, #0x10 + mvn r0, #0x0 + strh r4, [r3, #0x0] + bl MIi_CpuClearFast + ldr r0, _020B4154 ; =UNK_021CDD70 + ldr r1, _020B4164 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + ldr r2, [r1, #0x0] + mov r1, r0, lsl #0x10 + cmp r2, #0x0 + ldr r3, _020B4158 ; =UNK_021CDDF4 + mov r1, r1, lsr #0xd + ldrh r1, [r3, r1] + ldr r3, _020B4160 ; =UNK_021CE4F4 + moveq r2, #0x18 + add r1, r3, r1, lsl #0x5 + ldreq r3, _020B4168 ; =UNK_021CE1F4 + mlaeq r12, r0, r2, r3 + beq _020B40E4 + mov r2, #0x18 + mul r3, r0, r2 + ldr r2, _020B416C ; =UNK_021CDF04 + ldr r0, _020B4170 ; =UNK_021CDF08 + ldr r2, [r2, r3] + ldr ip, _020B4174 ; =UNK_02106578 + ldr r0, [r0, r3] + str r2, [r12, #0x10] + str r0, [r12, #0x14] +_020B40E4: + ldr r2, [r12, #0x0] + ldr r0, _020B4154 ; =UNK_021CDD70 + str r2, [r1, #0x0] + ldr r2, [r12, #0x4] + str r2, [r1, #0x4] + ldr r2, [r12, #0x8] + str r2, [r1, #0x8] + ldr r2, [r12, #0xc] + str r2, [r1, #0xc] + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + movs lr, r0, lsr #0x10 + addmi sp, sp, #0x4 + ldmmiia sp!, {r4-r5,pc} + ldr r3, _020B4158 ; =UNK_021CDDF4 + mov r0, #0x3 +_020B4124: + add r2, r3, lr, lsl #0x3 + ldrh r1, [r2, #0x2] + mov r12, lr, lsl #0x3 + cmp r5, r1 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} + strh r0, [r2, #0x4] + strh r4, [r3, r12] + subs lr, lr, #0x1 + bpl _020B4124 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B4154: .word UNK_021CDD70 +_020B4158: .word UNK_021CDDF4 +_020B415C: .word UNK_021CDD60 +_020B4160: .word UNK_021CE4F4 +_020B4164: .word UNK_021CDD68 +_020B4168: .word UNK_021CE1F4 +_020B416C: .word UNK_021CDF04 +_020B4170: .word UNK_021CDF08 +_020B4174: .word UNK_02106578 + arm_func_end FUN_020B4010 + + ; NNSi_G2dIdentity + arm_func_start FUN_020B4178 +FUN_020B4178: ; 0x020B4178 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020B4220 ; =UNK_021CDD68 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020B41B8 + ldr r1, _020B4224 ; =UNK_021CDD70 + mov r0, #0x18 + ldr r12, [r1, #0x0] + ldr r1, _020B4228 ; =UNK_021CDF04 + mul r3, r12, r0 + mov r2, #0x0 + ldr r0, _020B422C ; =UNK_021CDF08 + str r2, [r1, r3] + str r2, [r0, r3] + b _020B420C +_020B41B8: + ldr r0, _020B4224 ; =UNK_021CDD70 + mov lr, #0x18 + ldr r1, [r0, #0x0] + ldr r4, _020B4230 ; =UNK_021CDEF4 + mul r3, r1, lr + mov r2, #0x1000 + str r2, [r4, r3] + add r5, r4, r3 + mov r1, #0x0 + str r1, [r5, #0x4] + str r1, [r5, #0x8] + str r2, [r5, #0xc] + str r1, [r5, #0x10] + str r1, [r5, #0x14] + ldr r12, [r0, #0x0] + ldr r4, _020B4234 ; =UNK_021CE1F4 + ldmia r5!, {r0-r3} + mla lr, r12, lr, r4 + stmia lr!, {r0-r3} + ldmia r5, {r0-r1} + stmia lr, {r0-r1} +_020B420C: + ldr r0, _020B4238 ; =UNK_021CDD74 + mov r1, #0x0 + str r1, [r0, r12, lsl #0x2] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B4220: .word UNK_021CDD68 +_020B4224: .word UNK_021CDD70 +_020B4228: .word UNK_021CDF04 +_020B422C: .word UNK_021CDF08 +_020B4230: .word UNK_021CDEF4 +_020B4234: .word UNK_021CE1F4 +_020B4238: .word UNK_021CDD74 + arm_func_end FUN_020B4178 + diff --git a/arm9/asm/NNS_G2D_g2d_renderercor.s b/arm9/asm/NNS_G2D_g2d_renderercor.s new file mode 100644 index 000000000..e1c3be6eb --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_renderercor.s @@ -0,0 +1,1117 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; mtxIdentity_ + .global UNK_020FF958 +UNK_020FF958: ; 0x020FF958 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; static const in function + .section .bss + + ; pTheInstance_ + .global UNK_021CED14 +UNK_021CED14: ; 0x021CED14 + .space 0x4 + + .section .text + + ; NNS_G2dRndCoreDrawCellVramTransfer + arm_func_start FUN_020B4BF4 +FUN_020B4BF4: ; 0x020B4BF4 + stmdb sp!, {r4-r6,lr} + ldr r2, _020B4CD8 ; =UNK_021CED14 + mov r6, r0 + ldr r3, [r2, #0x0] + mov r4, r1 + ldr r5, [r3, #0x0] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r0, #0x1 + str r0, [r3, #0x30] + ldr r3, [r5, #0x18] + cmp r3, #0x0 + beq _020B4C38 + ldr r0, [r2, #0x0] + mov r1, r6 + blx r3 +_020B4C38: + ldr r0, _020B4CD8 ; =UNK_021CED14 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x30] + cmp r0, #0x0 + beq _020B4CB8 + mvn r0, #0x0 + cmp r4, r0 + beq _020B4C7C + mov r0, r4 + ldr r4, [r5, #0x14] + bl FUN_020B469C + mov r3, #0x1 + mvn r1, r3, lsl r4 + ldr r2, [r0, #0x20] + and r1, r2, r1 + orr r1, r1, r3, lsl r4 + str r1, [r0, #0x20] +_020B4C7C: + ldr r0, [r5, #0x14] + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020B4CB8 + ; Jump table + b _020B4C9C ; case 0 + b _020B4CAC ; case 1 + b _020B4CAC ; case 2 + b _020B4CB8 ; case 3 +_020B4C9C: + mov r0, r5 + mov r1, r6 + bl FUN_020B5090 + b _020B4CB8 +_020B4CAC: + mov r0, r5 + mov r1, r6 + bl FUN_020B53B4 +_020B4CB8: + ldr r2, [r5, #0x1c] + cmp r2, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r0, _020B4CD8 ; =UNK_021CED14 + mov r1, r6 + ldr r0, [r0, #0x0] + blx r2 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B4CD8: .word UNK_021CED14 + arm_func_end FUN_020B4BF4 + + ; NNS_G2dRndCoreDrawCell + arm_func_start FUN_020B4CDC +FUN_020B4CDC: ; 0x020B4CDC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020B4D9C ; =UNK_021CED14 + mov r5, r0 + ldr r2, [r1, #0x0] + ldr r4, [r2, #0x0] + ldr r0, [r4, #0x10] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + mov r0, #0x1 + str r0, [r2, #0x30] + ldr r2, [r4, #0x18] + cmp r2, #0x0 + beq _020B4D24 + ldr r0, [r1, #0x0] + mov r1, r5 + blx r2 +_020B4D24: + ldr r0, _020B4D9C ; =UNK_021CED14 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x30] + cmp r0, #0x0 + beq _020B4D74 + ldr r0, [r4, #0x14] + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020B4D74 + ; Jump table + b _020B4D58 ; case 0 + b _020B4D68 ; case 1 + b _020B4D68 ; case 2 + b _020B4D74 ; case 3 +_020B4D58: + mov r0, r4 + mov r1, r5 + bl FUN_020B5090 + b _020B4D74 +_020B4D68: + mov r0, r4 + mov r1, r5 + bl FUN_020B53B4 +_020B4D74: + ldr r2, [r4, #0x1c] + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r0, _020B4D9C ; =UNK_021CED14 + mov r1, r5 + ldr r0, [r0, #0x0] + blx r2 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B4D9C: .word UNK_021CED14 + arm_func_end FUN_020B4CDC + + ; NNS_G2dRndCoreEndRendering + arm_func_start FUN_020B4DA0 +FUN_020B4DA0: ; 0x020B4DA0 + ldr r0, _020B4E00 ; =UNK_021CED14 + ldr r3, [r0, #0x0] + ldr r1, [r3, #0x0] + ldr r1, [r1, #0x14] + cmp r1, #0x0 + bne _020B4DD8 + ldr r2, _020B4E04 ; =0x04000440 + mov r1, #0x0 + ldr r0, _020B4E08 ; =0x04000448 + str r1, [r2, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + str r1, [r2, #0x0] + b _020B4DF0 +_020B4DD8: + mov r2, #0x0 + str r2, [r3, #0x10] + ldr r1, [r0, #0x0] + str r2, [r1, #0x2c] + ldr r0, [r0, #0x0] + str r2, [r0, #0x28] +_020B4DF0: + ldr r0, _020B4E00 ; =UNK_021CED14 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020B4E00: .word UNK_021CED14 +_020B4E04: .word 0x04000440 +_020B4E08: .word 0x04000448 + arm_func_end FUN_020B4DA0 + + ; NNS_G2dRndCoreBeginRendering + arm_func_start FUN_020B4E0C +FUN_020B4E0C: ; 0x020B4E0C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r2, _020B4F28 ; =UNK_021CED14 + mov r4, r0 + str r4, [r2, #0x0] + ldr r0, [r4, #0x0] + ldr r5, [r0, #0x14] + cmp r5, #0x0 + bne _020B4ED8 + ldr lr, _020B4F2C ; =0x04000440 + mov r1, #0x0 + ldr r0, _020B4F30 ; =0x04000444 + str r1, [lr, #0x0] + str r1, [r0, #0x0] + ldr r12, [r4, #0x0] + ldr r0, _020B4F34 ; =0x04000470 + ldr r3, [r12, #0x0] + ldr r12, [r12, #0x4] + rsb r3, r3, #0x0 + str r3, [r0, #0x0] + rsb r3, r12, #0x0 + str r3, [r0, #0x0] + str r1, [r0, #0x0] + mov r0, #0x1 + str r0, [lr, #0x0] + ldr r0, [r2, #0x0] + ldr r5, [r0, #0x8] + mov r0, r5 + bl FUN_020B19FC + cmp r0, #0x0 + moveq r0, #0x0 + beq _020B4E98 + mov r0, r5 + mov r1, #0x0 + bl FUN_020B1A14 +_020B4E98: + ldr r1, _020B4F28 ; =UNK_021CED14 + str r0, [r4, #0x14] + ldr r0, [r1, #0x0] + mov r1, #0x0 + ldr r5, [r0, #0xc] + mov r0, r5 + bl FUN_020B19A8 + cmp r0, #0x0 + moveq r0, #0x0 + beq _020B4ECC + mov r0, r5 + mov r1, #0x0 + bl FUN_020B19C4 +_020B4ECC: + add sp, sp, #0x4 + str r0, [r4, #0x18] + ldmia sp!, {r4-r5,pc} +_020B4ED8: + ldr r4, [r4, #0x8] + mov r1, r5 + mov r0, r4 + bl FUN_020B19FC + cmp r0, #0x0 + moveq r1, #0x0 + beq _020B4F14 + mov r0, r4 + mov r1, r5 + bl FUN_020B1A14 + ldr r1, [r4, #0x20] + and r1, r1, #0x700000 + mov r1, r1, asr #0x14 + add r1, r1, #0x5 + mov r1, r0, lsr r1 +_020B4F14: + ldr r0, _020B4F28 ; =UNK_021CED14 + ldr r0, [r0, #0x0] + str r1, [r0, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B4F28: .word UNK_021CED14 +_020B4F2C: .word 0x04000440 +_020B4F30: .word 0x04000444 +_020B4F34: .word 0x04000470 + arm_func_end FUN_020B4E0C + + ; _end + arm_func_start FUN_020B4F38 +FUN_020B4F38: ; 0x020B4F38 + cmp r1, #0x0 + ldrne r1, [r0, #0x24] + orrne r1, r1, #0x1 + strne r1, [r0, #0x24] + ldreq r1, [r0, #0x24] + biceq r1, r1, #0x1 + streq r1, [r0, #0x24] + cmp r2, #0x0 + ldrne r1, [r0, #0x24] + orrne r1, r1, #0x2 + strne r1, [r0, #0x24] + ldreq r1, [r0, #0x24] + biceq r1, r1, #0x2 + streq r1, [r0, #0x24] + bx lr + arm_func_end FUN_020B4F38 + + ; _end + arm_func_start FUN_020B4F74 +FUN_020B4F74: ; 0x020B4F74 + ldr r0, [r0, #0x24] + ands r0, r0, #0x2 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020B4F74 + + ; _end + arm_func_start FUN_020B4F88 +FUN_020B4F88: ; 0x020B4F88 + ldr r0, [r0, #0x24] + ands r0, r0, #0x1 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020B4F88 + + ; _end + arm_func_start FUN_020B4F9C +FUN_020B4F9C: ; 0x020B4F9C + str r1, [r0, #0x0] + bx lr + arm_func_end FUN_020B4F9C + + ; _end + arm_func_start FUN_020B4FA4 +FUN_020B4FA4: ; 0x020B4FA4 + str r1, [r0, #0x34] + bx lr + arm_func_end FUN_020B4FA4 + + ; NNS_G2dSetRndCoreCurrentMtx2D + arm_func_start FUN_020B4FAC +FUN_020B4FAC: ; 0x020B4FAC + ldr r2, _020B4FC0 ; =UNK_021CED14 + ldr r2, [r2, #0x0] + str r0, [r2, #0x2c] + str r1, [r2, #0x28] + bx lr + .balign 4 +_020B4FC0: .word UNK_021CED14 + arm_func_end FUN_020B4FAC + + ; NNS_G2dSetRndCoreCurrentMtx3D + arm_func_start FUN_020B4FC4 +FUN_020B4FC4: ; 0x020B4FC4 + ldr r1, _020B5028 ; =UNK_021CED14 + mov r3, #0x0 + ldr r12, [r1, #0x0] + mov r1, #0x1000 + str r0, [r12, #0x2c] + ldr r2, [r0, #0x0] + str r2, [r12, #0x40] + ldr r2, [r0, #0x4] + str r2, [r12, #0x44] + str r3, [r12, #0x48] + ldr r2, [r0, #0x8] + str r2, [r12, #0x4c] + ldr r2, [r0, #0xc] + str r2, [r12, #0x50] + str r3, [r12, #0x54] + str r3, [r12, #0x58] + str r3, [r12, #0x5c] + str r1, [r12, #0x60] + ldr r1, [r0, #0x10] + str r1, [r12, #0x64] + ldr r0, [r0, #0x14] + str r0, [r12, #0x68] + ldr r0, [r12, #0x34] + str r0, [r12, #0x6c] + bx lr + .balign 4 +_020B5028: .word UNK_021CED14 + arm_func_end FUN_020B4FC4 + + ; _end + arm_func_start FUN_020B502C +FUN_020B502C: ; 0x020B502C + str r1, [r0, #0x4] + bx lr + arm_func_end FUN_020B502C + + ; _end + arm_func_start FUN_020B5034 +FUN_020B5034: ; 0x020B5034 + str r1, [r0, #0x1c] + str r2, [r0, #0x20] + bx lr + arm_func_end FUN_020B5034 + + ; _end + arm_func_start FUN_020B5040 +FUN_020B5040: ; 0x020B5040 + str r1, [r0, #0x8] + str r2, [r0, #0xc] + bx lr + arm_func_end FUN_020B5040 + + ; _end + arm_func_start FUN_020B504C +FUN_020B504C: ; 0x020B504C + stmdb sp!, {r4,lr} + mov r4, r0 + mov r1, r4 + mov r0, #0x0 + mov r2, #0x70 + bl MIi_CpuClear16 + mov r1, #0x0 + str r1, [r4, #0x0] + mov r0, #0x2 + str r0, [r4, #0x4] + str r1, [r4, #0x8] + str r1, [r4, #0xc] + str r1, [r4, #0x24] + mov r0, #0x1 + str r0, [r4, #0x30] + str r1, [r4, #0x28] + ldmia sp!, {r4,pc} + arm_func_end FUN_020B504C + + ; DrawCellToSurface3D_ + arm_func_start FUN_020B5090 +FUN_020B5090: ; 0x020B5090 + stmdb sp!, {r4-r10,lr} + ldr r5, _020B5158 ; =UNK_021CED14 + mov r9, r1 + ldrh r1, [r9, #0x0] + ldr r2, [r5, #0x0] + mov r10, r0 + add r7, r2, #0x38 + mov r8, #0x0 + cmp r1, #0x0 + ldmlsia sp!, {r4-r10,pc} + mov r6, #0x1 + mov r4, #0x6 +_020B50C0: + mul r1, r8, r4 + ldr r0, [r5, #0x0] + str r6, [r0, #0x30] + ldr r2, [r9, #0x4] + ldrh r0, [r2, r1] + add r1, r2, r1 + strh r0, [r7, #0x0] + ldrh r0, [r1, #0x2] + strh r0, [r7, #0x2] + ldrh r0, [r1, #0x4] + strh r0, [r7, #0x4] + ldr r3, [r10, #0x20] + cmp r3, #0x0 + beq _020B5108 + ldr r0, [r5, #0x0] + mov r1, r9 + mov r2, r8 + blx r3 +_020B5108: + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x30] + cmp r0, #0x0 + beq _020B5120 + mov r0, r7 + bl FUN_020B515C +_020B5120: + ldr r3, [r10, #0x24] + cmp r3, #0x0 + beq _020B513C + ldr r0, [r5, #0x0] + mov r1, r9 + mov r2, r8 + blx r3 +_020B513C: + add r0, r8, #0x1 + mov r0, r0, lsl #0x10 + ldrh r1, [r9, #0x0] + mov r8, r0, lsr #0x10 + cmp r8, r1 + blo _020B50C0 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020B5158: .word UNK_021CED14 + arm_func_end FUN_020B5090 + + ; DrawOamToSurface3D_ + arm_func_start FUN_020B515C +FUN_020B515C: ; 0x020B515C + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + ldr r1, _020B53A4 ; =UNK_021CED14 + mov r7, r0 + ldr r0, [r1, #0x0] + add r0, r0, #0x40 + bl G3_LoadMtx43 + ldr r0, _020B53A4 ; =UNK_021CED14 + ldr r0, [r0, #0x0] + ldr r1, [r0, #0x24] + cmp r1, #0x0 + beq _020B533C + ldr r2, [r7, #0x0] + ldr r1, _020B53A8 ; =0xC000C000 + and r4, r2, r1 + bl FUN_020B4F88 + cmp r0, #0x0 + beq _020B51F4 + ldr r0, [r7, #0x0] + and r2, r4, #0xc000 + mov r0, r0, lsl #0x7 + mov r3, r0, lsr #0x17 + and r1, r4, #0xc0000000 + mov r1, r1, lsr #0x1e + ldr r0, _020B53AC ; =UNK_020FF8AC + mov r2, r2, asr #0xe + mov r1, r1, lsl #0x1 + add r0, r0, r2, lsl #0x3 + cmp r3, #0xff + ldrh r1, [r1, r0] + orrgt r0, r3, #0xff00 + movgt r0, r0, lsl #0x10 + movgt r3, r0, asr #0x10 + add r0, r3, r1 + rsb r0, r0, #0x0 + mov r0, r0, lsl #0x10 + mov r1, r0, lsr #0x10 + b _020B5218 +_020B51F4: + ldr r0, [r7, #0x0] + mov r0, r0, lsl #0x7 + mov r0, r0, lsr #0x17 + cmp r0, #0xff + orrgt r0, r0, #0xff00 + movgt r0, r0, lsl #0x10 + movgt r0, r0, asr #0x10 + mov r0, r0, lsl #0x10 + mov r1, r0, lsr #0x10 +_020B5218: + ldr r0, _020B53A4 ; =UNK_021CED14 + mov r1, r1, lsl #0x10 + ldr r0, [r0, #0x0] + mov r6, r1, asr #0x10 + bl FUN_020B4F74 + cmp r0, #0x0 + beq _020B527C + and r1, r4, #0xc000 + and r0, r4, #0xc0000000 + ldrb r4, [r7, #0x0] + ldr r2, _020B53B0 ; =UNK_020FF894 + mov r0, r0, lsr #0x1e + mov r3, r1, asr #0xe + mov r1, r0, lsl #0x1 + add r0, r2, r3, lsl #0x3 + cmp r4, #0x7f + ldrh r1, [r1, r0] + orrgt r0, r4, #0xff00 + movgt r0, r0, lsl #0x10 + movgt r4, r0, asr #0x10 + add r0, r4, r1 + rsb r0, r0, #0x0 + mov r0, r0, lsl #0x10 + mov r4, r0, lsr #0x10 + b _020B5298 +_020B527C: + ldrb r0, [r7, #0x0] + cmp r0, #0x7f + orrgt r0, r0, #0xff00 + movgt r0, r0, lsl #0x10 + movgt r0, r0, asr #0x10 + mov r0, r0, lsl #0x10 + mov r4, r0, lsr #0x10 +_020B5298: + ldr r0, _020B53A4 ; =UNK_021CED14 + ldr r1, [r7, #0x0] + ldr r0, [r0, #0x0] + mov r5, r1, lsl #0x3 + bl FUN_020B4F88 + ldr r2, [r7, #0x0] + ldr r1, _020B53A4 ; =UNK_021CED14 + eor r5, r0, r5, lsr #0x1f + ldr r0, [r1, #0x0] + mov r8, r2, lsl #0x2 + bl FUN_020B4F74 + ldr r2, [r7, #0x0] + eor r1, r0, r8, lsr #0x1f + bic r0, r2, #0x10000000 + str r0, [r7, #0x0] + ldr r2, [r7, #0x0] + ldr r3, _020B53A4 ; =UNK_021CED14 + orr r2, r2, r5, lsl #0x1c + str r2, [r7, #0x0] + ldr r2, [r7, #0x0] + mov r0, r6 + bic r2, r2, #0x20000000 + str r2, [r7, #0x0] + ldr r5, [r7, #0x0] + mov r2, r4, lsl #0x10 + orr r1, r5, r1, lsl #0x1d + str r1, [r7, #0x0] + ldr r5, [r3, #0x0] + mov r1, r2, asr #0x10 + ldr r4, [r5, #0x8] + mov r3, r7 + add r2, r4, #0xc + str r2, [sp, #0x0] + ldr r4, [r5, #0x14] + mvn r2, #0x0 + str r4, [sp, #0x4] + ldr r4, [r5, #0x18] + str r4, [sp, #0x8] + bl FUN_020B46B4 + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} +_020B533C: + ldr r2, _020B53A4 ; =UNK_021CED14 + ldr r0, [r7, #0x0] + ldr r5, [r2, #0x0] + mov r0, r0, lsl #0x7 + ldr r4, [r5, #0x8] + mov r0, r0, lsr #0x17 + cmp r0, #0xff + orrgt r0, r0, #0xff00 + movgt r0, r0, lsl #0x10 + ldrb r1, [r7, #0x0] + add r4, r4, #0xc + movgt r0, r0, asr #0x10 + str r4, [sp, #0x0] + ldr r4, [r5, #0x14] + cmp r1, #0x7f + orrgt r1, r1, #0xff00 + movgt r1, r1, lsl #0x10 + str r4, [sp, #0x4] + ldr r4, [r5, #0x18] + movgt r1, r1, asr #0x10 + mov r3, r7 + mvn r2, #0x0 + str r4, [sp, #0x8] + bl FUN_020B46B4 + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020B53A4: .word UNK_021CED14 +_020B53A8: .word 0xC000C000 +_020B53AC: .word UNK_020FF8AC +_020B53B0: .word UNK_020FF894 + arm_func_end FUN_020B515C + + ; DrawCellToSurface2D_ + arm_func_start FUN_020B53B4 +FUN_020B53B4: ; 0x020B53B4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x44 + ldr r2, _020B57B0 ; =UNK_021CED14 + mov r10, r0 + ldr r0, [r2, #0x0] + mov r11, r1 + ldr r9, [r0, #0x2c] + ldr r1, _020B57B0 ; =UNK_021CED14 + cmp r9, #0x0 + ldreq sb, _020B57B4 ; =UNK_020FF958 + ldr r3, [r1, #0x0] + ldr r4, [r9, #0x10] + str r4, [sp, #0x18] + ldr r2, [r9, #0x14] + str r2, [sp, #0x1c] + ldr r1, [r10, #0x0] + sub r1, r4, r1 + str r1, [sp, #0x18] + ldr r1, [r10, #0x4] + sub r1, r2, r1 + str r1, [sp, #0x1c] + ldr r2, [r3, #0x24] + ldr r1, [r3, #0x10] + cmp r2, #0x0 + str r1, [sp, #0x4] + bne _020B5430 + ldr r1, [r3, #0x28] + cmp r1, #0x0 + movne r1, #0x1 + strne r1, [sp, #0x0] + bne _020B5438 +_020B5430: + mov r1, #0x0 + str r1, [sp, #0x0] +_020B5438: + ldrh r1, [r11, #0x0] + add r7, r0, #0x38 + mov r8, #0x0 + cmp r1, #0x0 + addls sp, sp, #0x44 + ldmlsia sp!, {r4-r11,pc} + mov r0, #0x1 + ldr r4, _020B57B0 ; =UNK_021CED14 + str r8, [sp, #0x14] + str r0, [sp, #0xc] +_020B5460: + ldr r2, [r4, #0x0] + ldr r0, [sp, #0xc] + mov r1, #0x6 + str r0, [r2, #0x30] + mul r0, r8, r1 + ldr r1, [r11, #0x4] + add r2, r1, r0 + ldrh r0, [r1, r0] + strh r0, [r7, #0x0] + ldrh r0, [r2, #0x2] + strh r0, [r7, #0x2] + ldrh r0, [r2, #0x4] + strh r0, [r7, #0x4] + ldr r3, [r10, #0x20] + cmp r3, #0x0 + beq _020B54B0 + ldr r0, [r4, #0x0] + mov r1, r11 + mov r2, r8 + blx r3 +_020B54B0: + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x30] + cmp r0, #0x0 + beq _020B5790 + ldr r0, [sp, #0x0] + ldr r1, [r7, #0x4] + cmp r0, #0x0 + mov r0, #0x400 + rsb r0, r0, #0x0 + and r2, r1, r0 + ldr r0, [sp, #0x4] + mov r1, r1, lsl #0x16 + add r1, r0, r1, lsr #0x16 + ldr r0, _020B57B8 ; =0x000003FF + and r0, r1, r0 + orr r0, r2, r0 + str r0, [r7, #0x4] + beq _020B5600 + ldr r0, [r10, #0x14] + ldr lr, [r4, #0x0] + sub r1, r0, #0x1 + ldr r0, [r7, #0x0] + ldr r6, [lr, #0x28] + mov r2, r0, lsl #0x2 + mov r2, r2, lsr #0x1f + mov r2, r2, lsl #0x1 + mov r0, r0, lsl #0x3 + orr r5, r2, r0, lsr #0x1f + add r0, r6, r5, lsl #0x2 + add r0, r0, r1, lsl #0x1 + ldrh r1, [r0, #0x10] + ldr r0, _020B57BC ; =0x0000FFFF + str r1, [sp, #0x8] + cmp r1, r0 + bne _020B55CC + cmp r5, #0x0 + bne _020B5558 + ldr r1, [lr, #0x20] + mov r0, r6 + blx r1 + str r0, [sp, #0x8] + b _020B55B4 +_020B5558: + ands r0, r5, #0x1 + add r12, sp, #0x30 + ldmia r6, {r0-r3} + stmia r12, {r0-r3} + beq _020B5584 + ldr r1, [sp, #0x30] + ldr r0, [sp, #0x34] + rsb r1, r1, #0x0 + str r1, [sp, #0x30] + rsb r0, r0, #0x0 + str r0, [sp, #0x34] +_020B5584: + ands r0, r5, #0x2 + beq _020B55A4 + ldr r1, [sp, #0x38] + ldr r0, [sp, #0x3c] + rsb r1, r1, #0x0 + str r1, [sp, #0x38] + rsb r0, r0, #0x0 + str r0, [sp, #0x3c] +_020B55A4: + ldr r1, [lr, #0x20] + add r0, sp, #0x30 + blx r1 + str r0, [sp, #0x8] +_020B55B4: + ldr r1, [r10, #0x14] + add r0, r6, r5, lsl #0x2 + sub r1, r1, #0x1 + add r1, r0, r1, lsl #0x1 + ldr r0, [sp, #0x8] + strh r0, [r1, #0x10] +_020B55CC: + ldr r1, [r9, #0x0] + add r0, sp, #0x20 + str r1, [sp, #0x20] + ldr r2, [r9, #0x4] + mov r1, r7 + str r2, [sp, #0x24] + ldr r3, [r9, #0x8] + add r2, sp, #0x18 + str r3, [sp, #0x28] + ldr r3, [r9, #0xc] + str r3, [sp, #0x2c] + bl FUN_020B57D8 + b _020B5750 +_020B5600: + ldr r0, _020B57C0 ; =0x0000FFFE + str r0, [sp, #0x8] + ldr r0, [r4, #0x0] + ldr r1, [r0, #0x24] + cmp r1, #0x0 + beq _020B5714 + ldr r2, [r7, #0x0] + ldr r1, _020B57C4 ; =0xC000C000 + mov r6, r2, lsl #0x3 + and r5, r2, r1 + bl FUN_020B4F88 + ldr r1, [r7, #0x0] + eor r6, r0, r6, lsr #0x1f + mov r1, r1, lsl #0x2 + ldr r0, [r4, #0x0] + str r1, [sp, #0x10] + bl FUN_020B4F74 + ldr r1, [sp, #0x10] + eor r0, r0, r1, lsr #0x1f + ldr r1, [r7, #0x0] + bic r1, r1, #0x10000000 + str r1, [r7, #0x0] + ldr r1, [r7, #0x0] + orr r1, r1, r6, lsl #0x1c + str r1, [r7, #0x0] + ldr r1, [r7, #0x0] + bic r1, r1, #0x20000000 + str r1, [r7, #0x0] + ldr r1, [r7, #0x0] + orr r0, r1, r0, lsl #0x1d + str r0, [r7, #0x0] + ldr r0, [r4, #0x0] + bl FUN_020B4F88 + cmp r0, #0x0 + beq _020B56D4 + and r1, r5, #0xc000 + mov r2, r1, asr #0xe + ldr r1, _020B57C8 ; =UNK_020FF8AC + and r3, r5, #0xc0000000 + mov r3, r3, lsr #0x1e + add r2, r1, r2, lsl #0x3 + mov r3, r3, lsl #0x1 + ldr r0, [r7, #0x0] + ldr r1, _020B57CC ; =0xFE00FFFF + ldrh r2, [r3, r2] + and r1, r0, r1 + mov r0, r0, lsl #0x7 + add r0, r2, r0, lsr #0x17 + rsb r2, r0, #0x0 + ldr r0, _020B57D0 ; =0x000001FF + and r0, r2, r0 + orr r0, r1, r0, lsl #0x10 + str r0, [r7, #0x0] +_020B56D4: + ldr r0, [r4, #0x0] + bl FUN_020B4F74 + cmp r0, #0x0 + beq _020B5714 + and r1, r5, #0xc000 + mov r3, r1, asr #0xe + and r1, r5, #0xc0000000 + mov r1, r1, lsr #0x1e + mov r2, r1, lsl #0x1 + ldr r1, _020B57D4 ; =UNK_020FF894 + ldrb r0, [r7, #0x0] + add r1, r1, r3, lsl #0x3 + ldrh r1, [r2, r1] + add r0, r0, r1 + rsb r0, r0, #0x0 + strb r0, [r7, #0x0] +_020B5714: + ldr r2, [r7, #0x0] + ldr r0, _020B57CC ; =0xFE00FFFF + ldr r1, [sp, #0x18] + and r0, r2, r0 + mov r2, r2, lsl #0x7 + mov r2, r2, lsr #0x17 + add r2, r2, r1, asr #0xc + ldr r1, _020B57D0 ; =0x000001FF + and r1, r2, r1 + orr r0, r0, r1, lsl #0x10 + str r0, [r7, #0x0] + ldrb r1, [r7, #0x0] + ldr r0, [sp, #0x1c] + add r0, r1, r0, asr #0xc + strb r0, [r7, #0x0] +_020B5750: + ldr r3, [r4, #0x0] + ldr r1, [sp, #0x8] + ldr r2, [sp, #0x14] + ldr r3, [r3, #0x1c] + mov r0, r7 + blx r3 + cmp r0, #0x1 + addne sp, sp, #0x44 + ldmneia sp!, {r4-r11,pc} + ldr r3, [r10, #0x24] + cmp r3, #0x0 + beq _020B5790 + ldr r0, [r4, #0x0] + mov r1, r11 + mov r2, r8 + blx r3 +_020B5790: + add r0, r8, #0x1 + mov r0, r0, lsl #0x10 + mov r8, r0, lsr #0x10 + ldrh r0, [r11, #0x0] + cmp r8, r0 + blo _020B5460 + add sp, sp, #0x44 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B57B0: .word UNK_021CED14 +_020B57B4: .word UNK_020FF958 +_020B57B8: .word 0x000003FF +_020B57BC: .word 0x0000FFFF +_020B57C0: .word 0x0000FFFE +_020B57C4: .word 0xC000C000 +_020B57C8: .word UNK_020FF8AC +_020B57CC: .word 0xFE00FFFF +_020B57D0: .word 0x000001FF +_020B57D4: .word UNK_020FF894 + arm_func_end FUN_020B53B4 + + ; DoAffineTransforme_ + arm_func_start FUN_020B57D8 +FUN_020B57D8: ; 0x020B57D8 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + ldr r4, [r1, #0x0] + ldr r3, _020B5A9C ; =0x01FF0000 + and r3, r4, r3 + mov r3, r3, lsr #0x10 + mov r3, r3, lsl #0x10 + mov r3, r3, asr #0x10 + cmp r3, #0xff + orrgt r3, r3, #0xff00 + movgt r3, r3, lsl #0x10 + movgt r3, r3, asr #0x10 + mov r3, r3, lsl #0xc + str r3, [sp, #0x0] + ldr r3, [r1, #0x0] + and r3, r3, #0xff + mov r3, r3, lsl #0x10 + mov r3, r3, asr #0x10 + cmp r3, #0x7f + orrgt r3, r3, #0xff00 + movgt r3, r3, lsl #0x10 + movgt r3, r3, asr #0x10 + mov r3, r3, lsl #0xc + str r3, [sp, #0x4] + ldr r5, [r1, #0x0] + and r4, r5, #0x300 + cmp r4, #0x100 + beq _020B5858 + cmp r4, #0x300 + beq _020B5858 + and r3, r5, #0x30000000 + orr r4, r4, r3 +_020B5858: + cmp r4, #0x300 + bne _020B58AC + ldr r3, _020B5AA0 ; =0xC000C000 + ldr r4, _020B5AA4 ; =UNK_020FF8AC + and r3, r5, r3 + and r5, r3, #0xc0000000 + and r3, r3, #0xc000 + mov r6, r5, lsr #0x1e + mov r5, r3, asr #0xe + ldr r3, _020B5AA8 ; =UNK_020FF894 + mov r6, r6, lsl #0x1 + add r4, r4, r5, lsl #0x3 + add r3, r3, r5, lsl #0x3 + ldrh r5, [r6, r4] + ldr r7, [sp, #0x0] + ldrh r3, [r6, r3] + ldr r4, [sp, #0x4] + add r5, r7, r5, lsl #0xb + add r3, r4, r3, lsl #0xb + str r5, [sp, #0x0] + str r3, [sp, #0x4] +_020B58AC: + ldr r5, [r0, #0x8] + ldr r4, [sp, #0x4] + add r3, sp, #0x0 + smull r8, r7, r5, r4 + cmp r3, r3 + ldr r6, [r0, #0x0] + mov r4, #0x1000 + addeq r3, sp, #0x8 + adds r8, r8, r4 + ldr r5, [sp, #0x0] + adc r7, r7, #0x0 + smlal r8, r7, r6, r5 + mov r5, r8, lsr #0xc + orr r5, r5, r7, lsl #0x14 + str r5, [r3, #0x0] + ldr r7, [r0, #0xc] + ldr r6, [sp, #0x4] + ldr r5, [r0, #0x4] + smull r8, r6, r7, r6 + adds r7, r8, r4 + ldr r4, [sp, #0x0] + adc r6, r6, #0x0 + smlal r7, r6, r5, r4 + mov r5, r7, lsr #0xc + add r4, sp, #0x8 + orr r5, r5, r6, lsl #0x14 + str r5, [r3, #0x4] + cmp r3, r4 + ldreq r3, [sp, #0xc] + ldreq r4, [sp, #0x8] + streq r3, [sp, #0x4] + ldr r3, _020B5AAC ; =UNK_021CED14 + streq r4, [sp, #0x0] + ldr r3, [r3, #0x0] + ldr r3, [r3, #0x4] + cmp r3, #0x0 + beq _020B597C + cmp r3, #0x2 + moveq r5, #0x300 + movne r5, #0x100 + cmp r5, #0x100 + ldreq r4, [r1, #0x0] + ldreq r3, _020B5AB0 ; =0xC1FFFCFF + andeq r3, r4, r3 + orreq r3, r3, r5 + streq r3, [r1, #0x0] + beq _020B597C + ldr r4, [r1, #0x0] + ldr r3, _020B5AB0 ; =0xC1FFFCFF + and r3, r4, r3 + orr r3, r3, r5 + str r3, [r1, #0x0] +_020B597C: + ldr r6, [r1, #0x0] + and r5, r6, #0x300 + cmp r5, #0x100 + beq _020B599C + cmp r5, #0x300 + beq _020B599C + and r3, r6, #0x30000000 + orr r5, r5, r3 +_020B599C: + ldr r3, _020B5AA0 ; =0xC000C000 + ldr r4, _020B5AA4 ; =UNK_020FF8AC + and r3, r6, r3 + and r6, r3, #0xc0000000 + and r3, r3, #0xc000 + mov lr, r3, asr #0xe + mov r6, r6, lsr #0x1e + mov r3, r6, lsl #0x1 + add r4, r4, lr, lsl #0x3 + ldrh r4, [r3, r4] + ldr r6, [r0, #0x0] + ldr r8, _020B5AA8 ; =UNK_020FF894 + mov r12, r4, asr #0x1 + mov r4, r12, lsl #0xc + rsb r7, r4, #0x0 + mla r7, r6, r12, r7 + add lr, r8, lr, lsl #0x3 + ldrh r3, [r3, lr] + ldr r6, [r0, #0x8] + ldr lr, [sp, #0x0] + mov r3, r3, asr #0x1 + mla r7, r6, r3, r7 + add r6, lr, r7 + str r6, [sp, #0x0] + mov lr, r3, lsl #0xc + ldr r6, [r0, #0x4] + rsb r7, lr, #0x0 + mla r7, r6, r12, r7 + ldr r0, [r0, #0xc] + ldr r6, [sp, #0x4] + mla r3, r0, r3, r7 + add r0, r6, r3 + str r0, [sp, #0x4] + cmp r5, #0x300 + moveq r0, #0x1 + movne r0, #0x0 + cmp r0, #0x0 + beq _020B5A4C + ldr r3, [sp, #0x0] + ldr r0, [sp, #0x4] + sub r3, r3, r4 + sub r0, r0, lr + str r3, [sp, #0x0] + str r0, [sp, #0x4] +_020B5A4C: + ldr r4, [sp, #0x0] + ldr r0, [r2, #0x0] + ldr r3, [sp, #0x4] + add r5, r4, r0 + str r5, [sp, #0x0] + ldr r2, [r2, #0x4] + ldr r0, _020B5AB4 ; =0x000001FF + add r2, r3, r2 + str r2, [sp, #0x4] + mov r3, r2, asr #0xc + ldr r4, [r1, #0x0] + ldr r2, _020B5AB8 ; =0xFE00FF00 + and r3, r3, #0xff + and r2, r4, r2 + and r4, r0, r5, asr #0xc + orr r0, r2, r3 + orr r0, r0, r4, lsl #0x10 + str r0, [r1, #0x0] + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020B5A9C: .word 0x01FF0000 +_020B5AA0: .word 0xC000C000 +_020B5AA4: .word UNK_020FF8AC +_020B5AA8: .word UNK_020FF894 +_020B5AAC: .word UNK_021CED14 +_020B5AB0: .word 0xC1FFFCFF +_020B5AB4: .word 0x000001FF +_020B5AB8: .word 0xFE00FF00 + arm_func_end FUN_020B57D8 + diff --git a/arm9/asm/NNS_G2D_g2d_softsprite.s b/arm9/asm/NNS_G2D_g2d_softsprite.s new file mode 100644 index 000000000..9a22950fd --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_softsprite.s @@ -0,0 +1,133 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G2dDrawSpriteFast + arm_func_start FUN_020B0250 +FUN_020B0250: ; 0x020B0250 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r5, _020B02C0 ; =0x04000470 + mov r0, r0, lsl #0xc + str r0, [r5, #0x0] + mov r4, r1, lsl #0xc + ldr r12, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x1c] + str r4, [r5, #0x0] + mov r4, r2, lsl #0xc + ldr r2, [sp, #0x18] + ldr lr, _020B02C4 ; =0x0400046C + str r4, [r5, #0x0] + mov r4, r3, lsl #0xc + ldr r3, [sp, #0x20] + str r4, [lr, #0x0] + mov r12, r12, lsl #0xc + str r12, [lr, #0x0] + mov r12, #0x1000 + mov r0, r0, lsl #0xc + mov r1, r1, lsl #0xc + mov r2, r2, lsl #0xc + mov r3, r3, lsl #0xc + str r12, [lr, #0x0] + bl FUN_020B0340 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B02C0: .word 0x04000470 +_020B02C4: .word 0x0400046C + arm_func_end FUN_020B0250 + + ; NNS_G2dSetupSoftwareSpriteCamera + arm_func_start FUN_020B02C8 +FUN_020B02C8: ; 0x020B02C8 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r2, _020B0330 ; =0xBFFF0000 + ldr r0, _020B0334 ; =0x04000580 + mov r1, #0x400000 + str r2, [r0, #0x0] + rsb r0, r1, #0x0 + str r0, [sp, #0x0] + str r1, [sp, #0x4] + mov r0, #0x0 + str r1, [sp, #0x8] + mov r1, #0x1 + str r1, [sp, #0xc] + mov r2, r0 + mov r1, #0xc0000 + mov r3, #0x100000 + str r0, [sp, #0x10] + bl G3i_OrthoW_ + ldr r1, _020B0338 ; =0x0400044C + mov r2, #0x0 + ldr r0, _020B033C ; =0x04000440 + str r2, [r1, #0x0] + mov r1, #0x1 + str r1, [r0, #0x0] + add sp, sp, #0x14 + ldmia sp!, {pc} + .balign 4 +_020B0330: .word 0xBFFF0000 +_020B0334: .word 0x04000580 +_020B0338: .word 0x0400044C +_020B033C: .word 0x04000440 + arm_func_end FUN_020B02C8 + + ; DrawOneQuad_ + arm_func_start FUN_020B0340 +FUN_020B0340: ; 0x020B0340 + stmdb sp!, {r4-r6,lr} + mov r3, r3, lsl #0x8 + mov r0, r0, lsl #0x8 + mov r4, r3, asr #0x10 + mov r3, r0, asr #0x10 + mov r0, r4, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r1, r1, lsl #0x8 + mov r1, r1, asr #0x10 + mov r1, r1, lsl #0x10 + mov r2, r2, lsl #0x8 + mov r2, r2, asr #0x10 + mov r2, r2, lsl #0x10 + ldr ip, _020B03F4 ; =0x04000500 + mov lr, #0x1 + mov r6, r0, lsr #0x10 + mov r5, r3, lsr #0x10 + mov r3, r1, lsr #0x10 + mov r1, r2, lsr #0x10 + ldr r4, _020B03F8 ; =0x04000488 + str lr, [r12, #0x0] + orr r0, r5, r6, lsl #0x10 + ldr lr, _020B03FC ; =0x0400048C + str r0, [r4, #0x0] + mov r0, #0x10000000 + str r0, [lr, #0x0] + mov r12, #0x0 + str r12, [lr, #0x0] + orr r2, r3, r6, lsl #0x10 + ldr r0, _020B0400 ; =0x10001000 + str r2, [r4, #0x0] + str r0, [lr, #0x0] + str r12, [lr, #0x0] + orr r0, r3, r1, lsl #0x10 + str r0, [r4, #0x0] + mov r0, #0x1000 + str r0, [lr, #0x0] + str r12, [lr, #0x0] + orr r0, r5, r1, lsl #0x10 + str r0, [r4, #0x0] + str r12, [lr, #0x0] + ldr r0, _020B0404 ; =0x04000504 + str r12, [lr, #0x0] + str r12, [r0, #0x0] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B03F4: .word 0x04000500 +_020B03F8: .word 0x04000488 +_020B03FC: .word 0x0400048C +_020B0400: .word 0x10001000 +_020B0404: .word 0x04000504 + arm_func_end FUN_020B0340 + diff --git a/arm9/asm/NNS_G2D_g2d_srtcontrol.s b/arm9/asm/NNS_G2D_g2d_srtcontrol.s new file mode 100644 index 000000000..01f30a6d5 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_srtcontrol.s @@ -0,0 +1,68 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B1A40 +FUN_020B1A40: ; 0x020B1A40 + stmdb sp!, {r4,lr} + mov r4, r0 + add r1, r4, #0x4 + mov r0, #0x0 + mov r2, #0x18 + bl MIi_CpuClear16 + mov r0, #0x1000 + str r0, [r4, #0x4] + str r0, [r4, #0x8] + ldmia sp!, {r4,pc} + arm_func_end FUN_020B1A40 + + ; NNSi_G2dSrtcInitControl + arm_func_start FUN_020B1A68 +FUN_020B1A68: ; 0x020B1A68 + ldr ip, _020B1A74 ; =FUN_020B1A40 + str r1, [r0, #0x0] + bx r12 + .balign 4 +_020B1A74: .word FUN_020B1A40 + arm_func_end FUN_020B1A68 + + ; _end + arm_func_start FUN_020B1A78 +FUN_020B1A78: ; 0x020B1A78 + ldr r3, [r0, #0x0] + cmp r3, #0x1 + ldreqh r3, [r0, #0x12] + orreq r3, r3, #0x2 + streqh r3, [r0, #0x12] + streq r1, [r0, #0x4] + streq r2, [r0, #0x8] + bx lr + arm_func_end FUN_020B1A78 + + ; _end + arm_func_start FUN_020B1A98 +FUN_020B1A98: ; 0x020B1A98 + ldr r2, [r0, #0x0] + cmp r2, #0x1 + ldreqh r2, [r0, #0x12] + orreq r2, r2, #0x4 + streqh r2, [r0, #0x12] + streqh r1, [r0, #0x10] + bx lr + arm_func_end FUN_020B1A98 + + ; _end + arm_func_start FUN_020B1AB4 +FUN_020B1AB4: ; 0x020B1AB4 + ldr r3, [r0, #0x0] + cmp r3, #0x1 + ldreqh r3, [r0, #0x12] + orreq r3, r3, #0x8 + streqh r3, [r0, #0x12] + streqh r1, [r0, #0xc] + streqh r2, [r0, #0xe] + bx lr + arm_func_end FUN_020B1AB4 + diff --git a/arm9/asm/NNS_G2D_g2d_textcanvas.s b/arm9/asm/NNS_G2D_g2d_textcanvas.s new file mode 100644 index 000000000..7ac3477aa --- /dev/null +++ b/arm9/asm/NNS_G2D_g2d_textcanvas.s @@ -0,0 +1,226 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B7168 +FUN_020B7168: ; 0x020B7168 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + ldr r12, [sp, #0x28] + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + ands r0, r12, #0x100 + beq _020B71AC + ldr r0, [r7, #0x4] + ldr r1, [r7, #0xc] + ldr r2, [sp, #0x2c] + bl FUN_020B5B54 + ldr r1, [sp, #0x20] + sub r0, r1, r0 + add r5, r5, r0 + b _020B71E4 +_020B71AC: + ands r0, r12, #0x80 + beq _020B71E4 + ldr r0, [r7, #0x4] + ldr r1, [r7, #0xc] + ldr r2, [sp, #0x2c] + bl FUN_020B5B54 + ldr r2, [sp, #0x20] + add r1, r0, #0x1 + add r0, r2, #0x1 + add r0, r0, r0, lsr #0x1f + mov r2, r0, asr #0x1 + add r0, r1, r1, lsr #0x1f + sub r0, r2, r0, asr #0x1 + add r5, r5, r0 +_020B71E4: + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x28] + str r1, [sp, #0x0] + ldr r12, [sp, #0x2c] + str r0, [sp, #0x4] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str r12, [sp, #0x8] + bl FUN_020B72C4 + add sp, sp, #0xc + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B7168 + + ; _end + arm_func_start FUN_020B7218 +FUN_020B7218: ; 0x020B7218 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x18 + ldr r4, [sp, #0x34] + mov r8, r0 + str r4, [sp, #0x0] + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x30] + ldr r1, [r8, #0x4] + ldr r2, [r8, #0x8] + ldr r3, [r8, #0xc] + add r0, sp, #0xc + bl FUN_020B5ABC + ands r0, r4, #0x10 + ldrne r0, [sp, #0xc] + addne r0, r0, #0x1 + addne r0, r0, r0, lsr #0x1f + subne r7, r7, r0, asr #0x1 + bne _020B7274 + ands r0, r4, #0x20 + ldrne r0, [sp, #0xc] + subne r7, r7, r0 +_020B7274: + ands r0, r4, #0x2 + ldrne r0, [sp, #0x10] + addne r0, r0, #0x1 + addne r0, r0, r0, lsr #0x1f + subne r6, r6, r0, asr #0x1 + bne _020B7298 + ands r0, r4, #0x4 + ldrne r0, [sp, #0x10] + subne r6, r6, r0 +_020B7298: + str r5, [sp, #0x0] + ldr r0, [sp, #0x34] + str r4, [sp, #0x4] + str r0, [sp, #0x8] + ldr r3, [sp, #0xc] + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl FUN_020B72C4 + add sp, sp, #0x18 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B7218 + + ; _end + arm_func_start FUN_020B72C4 +FUN_020B72C4: ; 0x020B72C4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r4, [r10, #0x4] + ldr r0, [sp, #0x40] + ldr r4, [r4, #0x0] + ldr r5, [r10, #0xc] + ldrsb r4, [r4, #0x1] + cmp r0, #0x0 + mov r9, r1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x38] + mov r8, r2 + str r0, [sp, #0x38] + mov r7, r3 + add r6, r5, r4 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r11,pc} + add r0, r7, #0x1 + ldr r1, [sp, #0x3c] + add r0, r0, r0, lsr #0x1f + mov r0, r0, asr #0x1 + and r5, r1, #0x800 + and r11, r1, #0x400 + str r0, [sp, #0x8] + mov r4, #0x0 +_020B732C: + mov r1, r9 + cmp r5, #0x0 + beq _020B7358 + ldr r0, [r10, #0x4] + ldr r1, [r10, #0x8] + ldr r2, [sp, #0xc] + mov r3, r4 + bl FUN_020B5BC8 + sub r0, r7, r0 + add r1, r9, r0 + b _020B7388 +_020B7358: + cmp r11, #0x0 + beq _020B7388 + ldr r0, [r10, #0x4] + ldr r1, [r10, #0x8] + ldr r2, [sp, #0xc] + mov r3, r4 + bl FUN_020B5BC8 + add r0, r0, #0x1 + add r1, r0, r0, lsr #0x1f + ldr r0, [sp, #0x8] + sub r0, r0, r1, asr #0x1 + add r1, r9, r0 +_020B7388: + ldr r2, [sp, #0xc] + add r3, sp, #0xc + str r2, [sp, #0x0] + str r3, [sp, #0x4] + ldr r3, [sp, #0x38] + mov r0, r10 + mov r2, r8 + bl FUN_020B73C0 + ldr r0, [sp, #0xc] + add r8, r8, r6 + cmp r0, #0x0 + bne _020B732C + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B72C4 + + ; _end + arm_func_start FUN_020B73C0 +FUN_020B73C0: ; 0x020B73C0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r10, r0 + ldr r6, [r10, #0x8] + ldr r5, [r10, #0x4] + ldr r4, [sp, #0x30] + add r0, sp, #0x8 + str r4, [sp, #0x8] + ldr r4, [r5, #0x4] + mov r9, r1 + mov r8, r2 + mov r7, r3 + blx r4 + cmp r0, #0x0 + beq _020B743C + add r11, sp, #0x8 +_020B7400: + cmp r0, #0xa + beq _020B743C + str r7, [sp, #0x0] + str r0, [sp, #0x4] + ldr r0, [r10, #0x0] + mov r1, r5 + mov r2, r9 + mov r3, r8 + bl FUN_020B63CC + add r1, r9, r0 + mov r0, r11 + add r9, r1, r6 + blx r4 + cmp r0, #0x0 + bne _020B7400 +_020B743C: + ldr r1, [sp, #0x34] + cmp r1, #0x0 + addeq sp, sp, #0xc + ldmeqia sp!, {r4-r11,pc} + cmp r0, #0xa + ldreq r1, [sp, #0x8] + ldr r0, [sp, #0x34] + movne r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B73C0 + diff --git a/arm9/asm/NNS_G2D_g2di_bitreader.s b/arm9/asm/NNS_G2D_g2di_bitreader.s new file mode 100644 index 000000000..da8236299 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2di_bitreader.s @@ -0,0 +1,37 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B76B0 +FUN_020B76B0: ; 0x020B76B0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldrsb r2, [r0, #0x4] + ldrb r12, [r0, #0x5] + mov r4, r1 + cmp r2, r4 + subge r1, r2, r4 + movge r5, r12, lsr r1 + strgeb r1, [r0, #0x4] + bge _020B7704 + ldr r3, [r0, #0x0] + sub r1, r4, r2 + add r2, r3, #0x1 + str r2, [r0, #0x0] + ldrb r2, [r3, #0x0] + mov r5, r12, lsl r1 + strb r2, [r0, #0x5] + mov r2, #0x8 + strb r2, [r0, #0x4] + bl FUN_020B76B0 + orr r5, r0, r5 +_020B7704: + rsb r0, r4, #0x8 + mov r1, #0xff + and r0, r5, r1, asr r0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B76B0 + diff --git a/arm9/asm/NNS_G2D_g2di_mtx32.s b/arm9/asm/NNS_G2D_g2di_mtx32.s new file mode 100644 index 000000000..777ed9441 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2di_mtx32.s @@ -0,0 +1,81 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B423C +FUN_020B423C: ; 0x020B423C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x1c + ldr r4, [r0, #0x4] + ldr r3, [r1, #0x8] + mov r12, r2 + smull r6, r5, r4, r3 + ldr r4, [r0, #0x0] + ldr r3, [r1, #0x0] + cmp r12, r1 + smlal r6, r5, r4, r3 + mov r3, r6, lsr #0xc + addeq r2, sp, #0x0 + orr r3, r3, r5, lsl #0x14 + str r3, [r2, #0x0] + ldr r4, [r0, #0x4] + ldr r3, [r1, #0xc] + ldr r5, [r0, #0x0] + smull r7, r6, r4, r3 + ldr r3, [r1, #0x4] + add lr, sp, #0x0 + smlal r7, r6, r5, r3 + mov r3, r7, lsr #0xc + orr r3, r3, r6, lsl #0x14 + str r3, [r2, #0x4] + ldr r4, [r0, #0xc] + ldr r3, [r1, #0x8] + ldr r5, [r0, #0x8] + smull r7, r6, r4, r3 + ldr r3, [r1, #0x0] + cmp r2, lr + smlal r7, r6, r5, r3 + mov r3, r7, lsr #0xc + orr r3, r3, r6, lsl #0x14 + str r3, [r2, #0x8] + ldr r4, [r0, #0xc] + ldr r3, [r1, #0xc] + ldr r5, [r0, #0x8] + smull r7, r6, r4, r3 + ldr r3, [r1, #0x4] + smlal r7, r6, r5, r3 + mov r3, r7, lsr #0xc + orr r3, r3, r6, lsl #0x14 + str r3, [r2, #0xc] + ldr r4, [r0, #0x14] + ldr r3, [r1, #0x8] + ldr r5, [r0, #0x10] + smull r7, r6, r4, r3 + ldr r3, [r1, #0x0] + ldr r4, [r1, #0x10] + smlal r7, r6, r5, r3 + mov r3, r7, lsr #0xc + orr r3, r3, r6, lsl #0x14 + add r3, r4, r3 + str r3, [r2, #0x10] + ldr r4, [r0, #0x14] + ldr r3, [r1, #0xc] + ldr r5, [r0, #0x10] + ldr r0, [r1, #0x4] + smull r6, r3, r4, r3 + smlal r6, r3, r5, r0 + mov r0, r6, lsr #0xc + ldr r1, [r1, #0x14] + orr r0, r0, r3, lsl #0x14 + add r0, r1, r0 + str r0, [r2, #0x14] + ldmeqia lr!, {r0-r3} + stmeqia r12!, {r0-r3} + ldmeqia lr, {r0-r1} + stmeqia r12, {r0-r1} + add sp, sp, #0x1c + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B423C + diff --git a/arm9/asm/NNS_G2D_g2di_splitchar.s b/arm9/asm/NNS_G2D_g2di_splitchar.s new file mode 100644 index 000000000..e96ae08d5 --- /dev/null +++ b/arm9/asm/NNS_G2D_g2di_splitchar.s @@ -0,0 +1,15 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B7718 +FUN_020B7718: ; 0x020B7718 + ldr r1, [r0, #0x0] + ldrh r2, [r1], #0x2 + str r1, [r0, #0x0] + mov r0, r2 + bx lr + arm_func_end FUN_020B7718 + diff --git a/arm9/asm/NNS_G3D_1mat1shp.s b/arm9/asm/NNS_G3D_1mat1shp.s new file mode 100644 index 000000000..34f2e482c --- /dev/null +++ b/arm9/asm/NNS_G3D_1mat1shp.s @@ -0,0 +1,145 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G3dDraw1Mat1Shp + arm_func_start FUN_020BAFB8 +FUN_020BAFB8: ; 0x020BAFB8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x6c + mov r6, r0 + ldr r12, [r6, #0x1c] + mov r4, r1 + mov r5, r2 + mov r7, r3 + cmp r12, #0x1000 + beq _020BAFF8 + add r1, sp, #0x54 + mov r0, #0x1b + mov r2, #0x3 + str r12, [sp, #0x54] + str r12, [sp, #0x58] + str r12, [sp, #0x5c] + bl FUN_020BB1C0 +_020BAFF8: + cmp r7, #0x0 + beq _020BB150 + ldr r0, [r6, #0x8] + add r3, r6, r0 + ldrh r0, [r3, #0xa] + add r2, r3, #0x4 + ldrh r1, [r2, r0] + add r0, r2, r0 + mla r0, r1, r4, r0 + ldr r0, [r0, #0x4] + add r4, r3, r0 + ldr r0, [r4, #0xc] + ands r0, r0, #0x1f0000 + addeq sp, sp, #0x6c + ldmeqia sp!, {r4-r7,pc} + ldr r0, _020BB1B4 ; =0x00293130 + str r0, [sp, #0x0] + ldr r0, [r4, #0x4] + str r0, [sp, #0x4] + ldr r0, [r4, #0x8] + str r0, [sp, #0x8] + ldr r1, [r4, #0xc] + str r1, [sp, #0xc] + ldrh r0, [r4, #0x1e] + ands r0, r0, #0x20 + bicne r0, r1, #0x1f0000 + ldr r1, _020BB1B8 ; =0x00002B2A + strne r0, [sp, #0xc] + str r1, [sp, #0x10] + ldr r2, [r4, #0x14] + ldr r0, [sp, #0x0] + str r2, [sp, #0x14] + ldrh r3, [r4, #0x1c] + add r1, sp, #0x4 + mov r2, #0x6 + str r3, [sp, #0x18] + bl FUN_020BB1C0 + ldrh r0, [r4, #0x1e] + ands r0, r0, #0x1 + beq _020BB150 + ldrb r12, [r6, #0x16] + mov r3, #0x8 + ldr r1, _020BB1BC ; =UNK_02106620 + str r3, [sp, #0x1c] + ldrh r2, [r4, #0x20] + add r0, r4, #0x2c + ldr r1, [r1, r12, lsl #0x2] + strh r2, [sp, #0x48] + ldrh r2, [r4, #0x22] + strh r2, [sp, #0x4a] + ldr r2, [r4, #0x24] + str r2, [sp, #0x4c] + ldr r2, [r4, #0x28] + str r2, [sp, #0x50] + ldrh r2, [r4, #0x1e] + ands r2, r2, #0x2 + orrne r2, r3, #0x1 + strne r2, [sp, #0x1c] + bne _020BB0F8 + ldr r2, [r0, #0x0] + str r2, [sp, #0x34] + ldr r2, [r0, #0x4] + add r0, r0, #0x8 + str r2, [sp, #0x38] +_020BB0F8: + ldrh r2, [r4, #0x1e] + ands r2, r2, #0x4 + ldrne r2, [sp, #0x1c] + orrne r2, r2, #0x2 + strne r2, [sp, #0x1c] + bne _020BB124 + ldrsh r2, [r0, #0x0] + strh r2, [sp, #0x3c] + ldrsh r2, [r0, #0x2] + add r0, r0, #0x4 + strh r2, [sp, #0x3e] +_020BB124: + ldrh r2, [r4, #0x1e] + ands r2, r2, #0x8 + ldreq r2, [r0, #0x0] + streq r2, [sp, #0x40] + ldreq r0, [r0, #0x4] + streq r0, [sp, #0x44] + ldrne r0, [sp, #0x1c] + orrne r0, r0, #0x4 + strne r0, [sp, #0x1c] + add r0, sp, #0x1c + blx r1 +_020BB150: + ldr r0, [r6, #0xc] + add r2, r6, r0 + ldrh r0, [r2, #0x6] + ldrh r1, [r2, r0] + add r0, r2, r0 + mla r0, r1, r5, r0 + ldr r0, [r0, #0x4] + add r2, r2, r0 + ldr r0, [r2, #0x8] + ldr r1, [r2, #0xc] + add r0, r2, r0 + bl FUN_020BB2B0 + ldr r3, [r6, #0x20] + cmp r3, #0x1000 + addeq sp, sp, #0x6c + ldmeqia sp!, {r4-r7,pc} + add r1, sp, #0x60 + mov r0, #0x1b + mov r2, #0x3 + str r3, [sp, #0x60] + str r3, [sp, #0x64] + str r3, [sp, #0x68] + bl FUN_020BB1C0 + add sp, sp, #0x6c + ldmia sp!, {r4-r7,pc} + .balign 4 +_020BB1B4: .word 0x00293130 +_020BB1B8: .word 0x00002B2A +_020BB1BC: .word UNK_02106620 + arm_func_end FUN_020BAFB8 + diff --git a/arm9/asm/NNS_G3D_3dsmax.s b/arm9/asm/NNS_G3D_3dsmax.s new file mode 100644 index 000000000..8037126db --- /dev/null +++ b/arm9/asm/NNS_G3D_3dsmax.s @@ -0,0 +1,479 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; calcTexMtx_ + .global UNK_021067D0 +UNK_021067D0: ; 0x021067D0 + .word FUN_020BF988 + .word FUN_020BF894 + .word FUN_020BF810 + .word FUN_020BF7C8 + .word FUN_020BF6C8 + .word FUN_020BF5E8 + .word FUN_020BF598 + .word FUN_020BF574 + + .section .text + + ; NNSi_G3dSendTexSRT3dsMax + arm_func_start FUN_020BF42C +FUN_020BF42C: ; 0x020BF42C + stmdb sp!, {r4,lr} + sub sp, sp, #0x50 + mov r4, r0 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ands r0, r0, #0x8 + ldrne r0, _020BF568 ; =0x00101610 + mov r3, #0x3 + strne r0, [sp, #0x0] + ldreq r0, _020BF56C ; =0x00101810 + mov r2, #0x2 + streq r0, [sp, #0x0] + mov r0, #0x1000 + str r0, [sp, #0x44] + str r3, [sp, #0x4] + str r2, [sp, #0x48] + str r1, [sp, #0x40] + str r1, [sp, #0x34] + str r1, [sp, #0x30] + str r1, [sp, #0x2c] + str r1, [sp, #0x28] + str r1, [sp, #0x24] + str r1, [sp, #0x20] + str r1, [sp, #0x14] + str r1, [sp, #0x10] + ldr r1, [r4, #0x0] + ldr r0, _020BF570 ; =UNK_021067D0 + and r1, r1, #0x7 + ldr r2, [r0, r1, lsl #0x2] + add r0, sp, #0x8 + mov r1, r4 + blx r2 + ldr r3, [r4, #0x30] + cmp r3, #0x1000 + beq _020BF4FC + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x8] + ldr r2, [r4, #0x30] + ldr r0, [sp, #0x38] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0xc] + ldr r1, [r4, #0x30] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x38] +_020BF4FC: + ldr r3, [r4, #0x34] + cmp r3, #0x1000 + beq _020BF54C + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x18] + ldr r2, [r4, #0x34] + ldr r0, [sp, #0x3c] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0x1c] + ldr r1, [r4, #0x34] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x3c] +_020BF54C: + add r1, sp, #0x0 + ldr r0, [sp, #0x0] + add r1, r1, #0x4 + mov r2, #0x12 + bl FUN_020BB1C0 + add sp, sp, #0x50 + ldmia sp!, {r4,pc} + .balign 4 +_020BF568: .word 0x00101610 +_020BF56C: .word 0x00101810 +_020BF570: .word UNK_021067D0 + arm_func_end FUN_020BF42C + + ; _end + arm_func_start FUN_020BF574 +FUN_020BF574: ; 0x020BF574 + mov r2, #0x1000 + str r2, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x10] + str r2, [r0, #0x14] + str r1, [r0, #0x30] + str r1, [r0, #0x34] + bx lr + arm_func_end FUN_020BF574 + + ; _end + arm_func_start FUN_020BF598 +FUN_020BF598: ; 0x020BF598 + ldr r2, [r1, #0x18] + mov r12, #0x0 + str r2, [r0, #0x0] + ldr r2, [r1, #0x1c] + str r2, [r0, #0x14] + str r12, [r0, #0x4] + ldr r3, [r1, #0x18] + ldrh r2, [r1, #0x2c] + rsb r3, r3, #0x1000 + mul r2, r3, r2 + mov r2, r2, lsl #0x3 + str r2, [r0, #0x30] + ldr r2, [r1, #0x1c] + ldrh r1, [r1, #0x2e] + rsb r2, r2, #0x1000 + mul r1, r2, r1 + mov r1, r1, lsl #0x3 + str r1, [r0, #0x34] + str r12, [r0, #0x10] + bx lr + arm_func_end FUN_020BF598 + + ; _end + arm_func_start FUN_020BF5E8 +FUN_020BF5E8: ; 0x020BF5E8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + ldrsh r4, [r5, #0x22] + rsb r0, r2, #0x0 + rsb r1, r1, #0x0 + mov r0, r0, lsl #0xb + ldrsh r3, [r5, #0x20] + mov r1, r1, lsl #0xb + smull r7, lr, r4, r0 + smull r12, r4, r3, r1 + subs r7, r7, r12 + sbc r3, lr, r4 + mov r4, r7, lsr #0x8 + orr r4, r4, r3, lsl #0x18 + add r2, r4, r2, lsl #0xf + str r2, [r6, #0x30] + ldrsh r2, [r5, #0x22] + ldrsh r3, [r5, #0x20] + ldrh r12, [r5, #0x2e] + smull r4, r1, r2, r1 + smlal r4, r1, r3, r0 + mov r0, r4, lsr #0x8 + orr r0, r0, r1, lsl #0x18 + add r0, r0, r12, lsl #0xf + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + rsb r1, r1, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BF5E8 + + ; _end + arm_func_start FUN_020BF6C8 +FUN_020BF6C8: ; 0x020BF6C8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldrh r2, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + mov r10, r0 + mov r8, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r8 + bl FX_DivAsync + ldrsh r0, [r9, #0x22] + ldr r3, [r9, #0x18] + ldrsh r5, [r9, #0x20] + ldr r4, [r9, #0x1c] + smull r2, r1, r3, r0 + mov r7, r2, lsr #0xc + orr r7, r7, r1, lsl #0x14 + smull r2, r1, r3, r5 + mov r6, r2, lsr #0xc + orr r6, r6, r1, lsl #0x14 + smull r3, r2, r4, r0 + smull r1, r0, r4, r5 + mov r5, r3, lsr #0xc + orr r5, r5, r2, lsl #0x14 + mov r4, r1, lsr #0xc + orr r4, r4, r0, lsl #0x14 + str r7, [r10, #0x0] + str r5, [r10, #0x14] + bl FX_GetDivResult + mov r1, r11 + mul r0, r4, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x4] + mov r0, r8 + bl FX_DivAsync + ldrh r3, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + rsb r0, r3, #0x0 + rsb r1, r1, #0x0 + mov r2, r1, lsl #0xb + mov r11, r0, lsl #0xb + smull r1, r0, r7, r11 + smull r8, r7, r5, r2 + smlal r8, r7, r4, r11 + mov r4, r8, lsr #0x8 + orr r4, r4, r7, lsl #0x18 + smull r5, r2, r6, r2 + subs r1, r1, r5 + sbc r0, r0, r2 + mov r1, r1, lsr #0x8 + orr r1, r1, r0, lsl #0x18 + add r0, r1, r3, lsl #0xf + str r0, [r10, #0x30] + ldrh r0, [r9, #0x2e] + add r0, r4, r0, lsl #0xf + str r0, [r10, #0x34] + bl FX_GetDivResult + rsb r1, r6, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BF6C8 + + ; _end + arm_func_start FUN_020BF7C8 +FUN_020BF7C8: ; 0x020BF7C8 + mov r2, #0x1000 + str r2, [r0, #0x0] + str r2, [r0, #0x14] + mov r12, #0x0 + str r12, [r0, #0x4] + ldr r3, [r1, #0x24] + ldrh r2, [r1, #0x2c] + rsb r3, r3, #0x0 + mul r2, r3, r2 + mov r2, r2, lsl #0x4 + str r2, [r0, #0x30] + ldrh r2, [r1, #0x2e] + ldr r1, [r1, #0x28] + mul r2, r1, r2 + mov r1, r2, lsl #0x4 + str r1, [r0, #0x34] + str r12, [r0, #0x10] + bx lr + arm_func_end FUN_020BF7C8 + + ; _end + arm_func_start FUN_020BF810 +FUN_020BF810: ; 0x020BF810 + stmdb sp!, {r4-r6,lr} + ldr r2, [r1, #0x18] + mov r3, #0x0 + str r2, [r0, #0x0] + ldr r2, [r1, #0x1c] + str r2, [r0, #0x14] + str r3, [r0, #0x4] + ldrh r5, [r1, #0x2c] + ldr r12, [r1, #0x24] + ldrh r2, [r1, #0x2e] + mul lr, r12, r5 + rsb r12, r5, #0x0 + mov r12, r12, lsl #0xb + ldr r4, [r1, #0x18] + sub r12, r12, lr + smull lr, r12, r4, r12 + ldr r6, [r1, #0x28] + mov r4, lr, lsr #0x8 + orr r4, r4, r12, lsl #0x18 + add r4, r4, r5, lsl #0xf + str r4, [r0, #0x30] + mul r4, r6, r2 + rsb r5, r2, #0x0 + ldr r2, [r1, #0x1c] + add r4, r4, r5, lsl #0xb + smull lr, r12, r2, r4 + mov r2, lr, lsr #0x8 + ldrh r1, [r1, #0x2e] + orr r2, r2, r12, lsl #0x18 + add r1, r2, r1, lsl #0xf + str r1, [r0, #0x34] + str r3, [r0, #0x10] + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BF810 + + ; _end + arm_func_start FUN_020BF894 +FUN_020BF894: ; 0x020BF894 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrh r2, [r5, #0x2c] + ldrh r7, [r5, #0x2e] + ldr r1, [r5, #0x28] + ldr r0, [r5, #0x24] + rsb r4, r2, #0x0 + mul r3, r1, r7 + rsb r1, r7, #0x0 + add r1, r3, r1, lsl #0xb + ldrsh r3, [r5, #0x20] + mov r7, r4, lsl #0xb + mul r4, r0, r2 + sub r0, r7, r4 + ldrsh lr, [r5, #0x22] + smull r12, r4, r3, r1 + smull r7, r3, lr, r0 + subs r7, r7, r12 + sbc r3, r3, r4 + mov r4, r7, lsr #0x8 + orr r4, r4, r3, lsl #0x18 + add r2, r4, r2, lsl #0xf + str r2, [r6, #0x30] + ldrsh r2, [r5, #0x22] + ldrsh r3, [r5, #0x20] + ldrh r12, [r5, #0x2e] + smull r4, r1, r2, r1 + smlal r4, r1, r3, r0 + mov r0, r4, lsr #0x8 + orr r0, r0, r1, lsl #0x18 + add r0, r0, r12, lsl #0xf + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + rsb r1, r1, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BF894 + + ; _end + arm_func_start FUN_020BF988 +FUN_020BF988: ; 0x020BF988 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldrh r2, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + mov r10, r0 + mov r8, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r8 + bl FX_DivAsync + ldrsh r0, [r9, #0x22] + ldr r3, [r9, #0x18] + ldrsh r5, [r9, #0x20] + ldr r4, [r9, #0x1c] + smull r2, r1, r3, r0 + mov r7, r2, lsr #0xc + orr r7, r7, r1, lsl #0x14 + smull r2, r1, r3, r5 + mov r6, r2, lsr #0xc + orr r6, r6, r1, lsl #0x14 + smull r3, r2, r4, r0 + smull r1, r0, r4, r5 + mov r5, r3, lsr #0xc + orr r5, r5, r2, lsl #0x14 + mov r4, r1, lsr #0xc + orr r4, r4, r0, lsl #0x14 + str r7, [r10, #0x0] + str r5, [r10, #0x14] + bl FX_GetDivResult + mov r1, r11 + mul r0, r4, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x4] + mov r0, r8 + bl FX_DivAsync + ldrh r1, [r9, #0x2c] + ldrh r8, [r9, #0x2e] + ldr r2, [r9, #0x28] + rsb r0, r1, #0x0 + mul r3, r2, r8 + rsb r2, r8, #0x0 + add r8, r3, r2, lsl #0xb + mov r0, r0, lsl #0xb + smull r3, r2, r5, r8 + smull r8, r5, r6, r8 + ldr r11, [r9, #0x24] + mul r12, r11, r1 + sub r0, r0, r12 + smlal r3, r2, r4, r0 + smull r4, r0, r7, r0 + subs r4, r4, r8 + sbc r0, r0, r5 + mov r4, r4, lsr #0x8 + orr r4, r4, r0, lsl #0x18 + add r0, r4, r1, lsl #0xf + str r0, [r10, #0x30] + ldrh r1, [r9, #0x2e] + mov r0, r3, lsr #0x8 + orr r0, r0, r2, lsl #0x18 + add r0, r0, r1, lsl #0xf + str r0, [r10, #0x34] + bl FX_GetDivResult + rsb r1, r6, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BF988 + diff --git a/arm9/asm/NNS_G3D_anm.s b/arm9/asm/NNS_G3D_anm.s new file mode 100644 index 000000000..ddd94ecd2 --- /dev/null +++ b/arm9/asm/NNS_G3D_anm.s @@ -0,0 +1,371 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; NNS_G3dAnmFmtNum + .global UNK_02106594 +UNK_02106594: ; 0x02106594 + .byte 0x05, 0x00, 0x00, 0x00 + + ; NNS_G3dFuncAnmVisNsBvaDefault + .global UNK_02106598 +UNK_02106598: ; 0x02106598 + .word FUN_020BE5A0 + + ; NNS_G3dFuncAnmJntNsBcaDefault + .global UNK_0210659C +UNK_0210659C: ; 0x0210659C + .word FUN_020BDA70 + + ; NNS_G3dFuncAnmMatNsBtaDefault + .global UNK_021065A0 +UNK_021065A0: ; 0x021065A0 + .word FUN_020BDF38 + + ; NNS_G3dFuncAnmMatNsBtpDefault + .global UNK_021065A4 +UNK_021065A4: ; 0x021065A4 + .word FUN_020BE334 + + ; NNS_G3dFuncAnmMatNsBmaDefault + .global UNK_021065A8 +UNK_021065A8: ; 0x021065A8 + .word FUN_020BDB40 + + ; NNS_G3dFuncBlendVisDefault + .global UNK_021065AC +UNK_021065AC: ; 0x021065AC + .word FUN_020B8640 + + ; NNS_G3dFuncBlendJntDefault + .global UNK_021065B0 +UNK_021065B0: ; 0x021065B0 + .word FUN_020B86B0 + + ; NNS_G3dFuncBlendMatDefault + .global UNK_021065B4 +UNK_021065B4: ; 0x021065B4 + .word FUN_020B8A08 + + ; NNS_G3dAnmObjInitFuncArray + .global UNK_021065B8 +UNK_021065B8: ; 0x021065B8 + .byte 0x4D, 0x00, 0x41, 0x4D + + ; NNS_G3dAnmObjInitFuncArray + 0x4 + .global UNK_021065BC +UNK_021065BC: ; 0x021065BC + .word FUN_020BDC0C + .byte 0x4D, 0x00, 0x50, 0x54 + .word FUN_020BE4F0 + .byte 0x4D, 0x00, 0x41, 0x54 + .word FUN_020BDF84 + .byte 0x56, 0x00, 0x41, 0x56 + .word FUN_020BE5E0 + .byte 0x4A, 0x00, 0x41, 0x43 + .word FUN_020BDAB4 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .section .text + + ; _end + arm_func_start FUN_020B8640 +FUN_020B8640: ; 0x020B8640 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r7, r0 + mov r0, #0x0 + mov r6, r1 + str r0, [r7, #0x0] + add r4, sp, #0x0 + mov r5, r2, lsl #0x1 + mov r8, #0x1 +_020B8664: + add r1, r5, r6 + ldrh r2, [r1, #0x1a] + ands r1, r2, #0x100 + beq _020B869C + ldr r3, [r6, #0xc] + mov r0, r4 + mov r1, r6 + and r2, r2, #0xff + blx r3 + ldr r2, [r7, #0x0] + ldr r1, [sp, #0x0] + mov r0, r8 + orr r1, r2, r1 + str r1, [r7, #0x0] +_020B869C: + ldr r6, [r6, #0x10] + cmp r6, #0x0 + bne _020B8664 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020B8640 + + ; _end + arm_func_start FUN_020B86B0 +FUN_020B86B0: ; 0x020B86B0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x5c + mov r9, r1 + ldr r3, [r9, #0x10] + mov r10, r0 + mov r8, r2 + cmp r3, #0x0 + bne _020B8704 + add r2, r9, r8, lsl #0x1 + ldrh r4, [r2, #0x1a] + and r2, r4, #0x300 + cmp r2, #0x100 + addne sp, sp, #0x5c + movne r0, #0x0 + ldmneia sp!, {r4-r11,pc} + ldr r3, [r9, #0xc] + and r2, r4, #0xff + blx r3 + add sp, sp, #0x5c + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020B8704: + mov r7, #0x0 + mov r3, r7 + mov r4, r9 + mov r2, r8, lsl #0x1 +_020B8714: + add r0, r2, r4 + ldrh r0, [r0, #0x1a] + and r0, r0, #0x300 + cmp r0, #0x100 + ldreq r0, [r4, #0x4] + moveq r1, r4 + ldr r4, [r4, #0x10] + addeq r7, r7, r0 + addeq r3, r3, #0x1 + cmp r4, #0x0 + bne _020B8714 + cmp r7, #0x0 + addeq sp, sp, #0x5c + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,pc} + cmp r3, #0x1 + bne _020B877C + add r0, r1, r8, lsl #0x1 + ldrh r2, [r0, #0x1a] + ldr r3, [r1, #0xc] + mov r0, r10 + and r2, r2, #0xff + blx r3 + add sp, sp, #0x5c + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020B877C: + mov r1, r10 + mov r0, #0x0 + mov r2, #0x58 + bl MIi_CpuClearFast + mvn r0, #0x0 + str r0, [r10, #0x0] + add r5, sp, #0x0 + add r4, sp, #0x4 + add r11, sp, #0x10 +_020B87A0: + add r0, r9, r8, lsl #0x1 + ldrh r2, [r0, #0x1a] + and r0, r2, #0x300 + cmp r0, #0x100 + bne _020B8948 + ldr r0, [r9, #0x4] + cmp r0, #0x0 + ble _020B8948 + ldr r3, [r9, #0xc] + mov r0, r5 + mov r1, r9 + and r2, r2, #0xff + blx r3 + cmp r7, #0x1000 + ldreq r6, [r9, #0x4] + beq _020B87F0 + ldr r0, [r9, #0x4] + mov r1, r7 + bl FX_Div + mov r6, r0 +_020B87F0: + ldr r3, [sp, #0x0] + mov r1, r4 + mov r2, r6 + add r0, r10, #0x4 + and r3, r3, #0x1 + bl FUN_020B8998 + ldr r1, [sp, #0x0] + add r0, r10, #0x10 + and r3, r1, #0x8 + mov r1, r11 + mov r2, r6 + bl FUN_020B8998 + ldr r3, [sp, #0x0] + add r0, r10, #0x1c + add r1, sp, #0x1c + mov r2, r6 + and r3, r3, #0x10 + bl FUN_020B8998 + ldr r0, [sp, #0x0] + ands r0, r0, #0x4 + bne _020B8898 + ldr r0, [sp, #0x4c] + ldr r2, [r10, #0x4c] + smull r1, r0, r6, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + add r0, r2, r1 + str r0, [r10, #0x4c] + ldr r0, [sp, #0x50] + ldr r2, [r10, #0x50] + smull r1, r0, r6, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + add r0, r2, r1 + str r0, [r10, #0x50] + ldr r0, [sp, #0x54] + ldr r2, [r10, #0x54] + smull r1, r0, r6, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + add r0, r2, r1 + str r0, [r10, #0x54] +_020B8898: + ldr r0, [sp, #0x0] + ands r0, r0, #0x2 + bne _020B8920 + ldr r0, [sp, #0x28] + ldr r1, [r10, #0x28] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x28] + ldr r0, [sp, #0x2c] + ldr r1, [r10, #0x2c] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x2c] + ldr r0, [sp, #0x30] + ldr r1, [r10, #0x30] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x30] + ldr r0, [sp, #0x34] + ldr r1, [r10, #0x34] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x34] + ldr r0, [sp, #0x38] + ldr r1, [r10, #0x38] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x38] + ldr r0, [sp, #0x3c] + ldr r1, [r10, #0x3c] + mul r0, r6, r0 + add r0, r1, r0, asr #0xc + str r0, [r10, #0x3c] + b _020B8938 +_020B8920: + ldr r0, [r10, #0x28] + add r0, r0, r6 + str r0, [r10, #0x28] + ldr r0, [r10, #0x38] + add r0, r0, r6 + str r0, [r10, #0x38] +_020B8938: + ldr r1, [r10, #0x0] + ldr r0, [sp, #0x0] + and r0, r1, r0 + str r0, [r10, #0x0] +_020B8948: + ldr r9, [r9, #0x10] + cmp r9, #0x0 + bne _020B87A0 + add r0, r10, #0x28 + add r1, r10, #0x34 + add r2, r10, #0x40 + bl VEC_CrossProduct + add r0, r10, #0x28 + mov r1, r0 + bl VEC_Normalize + add r0, r10, #0x40 + mov r1, r0 + bl VEC_Normalize + add r0, r10, #0x40 + add r1, r10, #0x28 + add r2, r10, #0x34 + bl VEC_CrossProduct + mov r0, #0x1 + add sp, sp, #0x5c + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B86B0 + + ; _end + arm_func_start FUN_020B8998 +FUN_020B8998: ; 0x020B8998 + cmp r3, #0x0 + beq _020B89C8 + ldr r1, [r0, #0x0] + add r1, r1, r2 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r2 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, r2 + str r1, [r0, #0x8] + bx lr +_020B89C8: + ldr r3, [r1, #0x0] + ldr r12, [r0, #0x0] + mul r3, r2, r3 + add r3, r12, r3, asr #0xc + str r3, [r0, #0x0] + ldr r3, [r1, #0x4] + ldr r12, [r0, #0x4] + mul r3, r2, r3 + add r3, r12, r3, asr #0xc + str r3, [r0, #0x4] + ldr r1, [r1, #0x8] + ldr r3, [r0, #0x8] + mul r1, r2, r1 + add r1, r3, r1, asr #0xc + str r1, [r0, #0x8] + bx lr + arm_func_end FUN_020B8998 + + ; _end + arm_func_start FUN_020B8A08 +FUN_020B8A08: ; 0x020B8A08 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r0, #0x0 + mov r4, r2, lsl #0x1 + mov r7, #0x1 +_020B8A24: + add r1, r4, r5 + ldrh r2, [r1, #0x1a] + ands r1, r2, #0x100 + beq _020B8A4C + ldr r3, [r5, #0xc] + mov r0, r6 + mov r1, r5 + and r2, r2, #0xff + blx r3 + mov r0, r7 +_020B8A4C: + ldr r5, [r5, #0x10] + cmp r5, #0x0 + bne _020B8A24 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B8A08 + diff --git a/arm9/asm/NNS_G3D_basic.s b/arm9/asm/NNS_G3D_basic.s new file mode 100644 index 000000000..03950bfcb --- /dev/null +++ b/arm9/asm/NNS_G3D_basic.s @@ -0,0 +1,65 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BE62C +FUN_020BE62C: ; 0x020BE62C + ands r2, r3, #0x4 + ldrne r1, [r0, #0x0] + orrne r1, r1, #0x1 + strne r1, [r0, #0x0] + bne _020BE658 + ldr r2, [r1, #0x0] + str r2, [r0, #0x4] + ldr r2, [r1, #0x4] + str r2, [r0, #0x8] + ldr r1, [r1, #0x8] + str r1, [r0, #0xc] +_020BE658: + ldr r1, [r0, #0x0] + orr r1, r1, #0x18 + str r1, [r0, #0x0] + bx lr + arm_func_end FUN_020BE62C + + ; _end + arm_func_start FUN_020BE668 +FUN_020BE668: ; 0x020BE668 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x0] + ands r0, r1, #0x4 + bne _020BE6AC + ands r0, r1, #0x2 + bne _020BE698 + add r1, r4, #0x28 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + b _020BE6C4 +_020BE698: + add r1, r4, #0x4c + mov r0, #0x1c + mov r2, #0x3 + bl FUN_020BB1C0 + b _020BE6C4 +_020BE6AC: + ands r0, r1, #0x2 + bne _020BE6C4 + add r1, r4, #0x28 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 +_020BE6C4: + ldr r0, [r4, #0x0] + ands r0, r0, #0x1 + ldmneia sp!, {r4,pc} + add r1, r4, #0x4 + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 + ldmia sp!, {r4,pc} + arm_func_end FUN_020BE668 + diff --git a/arm9/asm/NNS_G3D_cgtool.s b/arm9/asm/NNS_G3D_cgtool.s new file mode 100644 index 000000000..9abb20315 --- /dev/null +++ b/arm9/asm/NNS_G3D_cgtool.s @@ -0,0 +1,27 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; NNS_G3dSendJointSRT_FuncArray + .global UNK_02106608 +UNK_02106608: ; 0x02106608 + .word FUN_020BE668 + .word FUN_020BEE3C + .word FUN_020BF2FC + + ; NNS_G3dGetJointScale_FuncArray + .global UNK_02106614 +UNK_02106614: ; 0x02106614 + .word FUN_020BE62C + .word FUN_020BECEC + .word FUN_020BF0D4 + + ; NNS_G3dSendTexSRT_FuncArray + .global UNK_02106620 +UNK_02106620: ; 0x02106620 + .word FUN_020BE6E4 + .word FUN_020BEF10 + .word FUN_020BF42C + .word FUN_020BFA9C + diff --git a/arm9/asm/NNS_G3D_gecom.s b/arm9/asm/NNS_G3D_gecom.s new file mode 100644 index 000000000..56c81114a --- /dev/null +++ b/arm9/asm/NNS_G3D_gecom.s @@ -0,0 +1,206 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; NNS_G3dGeBuffer + .global UNK_021D1C80 +UNK_021D1C80: ; 0x021D1C80 + .space 0x4 + + ; NNS_G3dFlagGXDmaAsync + .global UNK_021D1C84 +UNK_021D1C84: ; 0x021D1C84 + .space 0x4 + + ; NNS_G3dFlagUseFastDma + .global UNK_021D1C88 +UNK_021D1C88: ; 0x021D1C88 + .space 0x4 + + .section .text + + ; NNS_G3dGeBufferOP_N + arm_func_start FUN_020BB1C0 +FUN_020BB1C0: ; 0x020BB1C0 + stmdb sp!, {r4-r6,lr} + ldr r3, _020BB2A4 ; =UNK_021D1C80 + mov r6, r0 + ldr r12, [r3, #0x0] + mov r5, r1 + mov r4, r2 + cmp r12, #0x0 + beq _020BB278 + ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020BB24C + ldr r2, [r12, #0x0] + add r0, r2, #0x1 + add r1, r0, r4 + cmp r1, #0xc0 + bhi _020BB24C + str r0, [r12, #0x0] + ldr r0, [r3, #0x0] + cmp r4, #0x0 + add r0, r0, r2, lsl #0x2 + str r6, [r0, #0x4] + ldmeqia sp!, {r4-r6,pc} + ldr r2, [r3, #0x0] + mov r0, r5 + ldr r1, [r2], #0x4 + add r1, r2, r1, lsl #0x2 + mov r2, r4, lsl #0x2 + bl MIi_CpuCopyFast + ldr r0, _020BB2A4 ; =UNK_021D1C80 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x0] + add r0, r0, r4 + str r0, [r1, #0x0] + ldmia sp!, {r4-r6,pc} +_020BB24C: + ldr r0, [r12, #0x0] + cmp r0, #0x0 + beq _020BB260 + bl FUN_020BB394 + b _020BB28C +_020BB260: + ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020BB28C + bl FUN_020BB37C + b _020BB28C +_020BB278: + ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020BB28C + bl FUN_020BB37C +_020BB28C: + ldr r1, _020BB2AC ; =0x04000400 + mov r0, r5 + mov r2, r4, lsl #0x2 + str r6, [r1, #0x0] + bl MIi_CpuSend32 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020BB2A4: .word UNK_021D1C80 +_020BB2A8: .word UNK_021D1C84 +_020BB2AC: .word 0x04000400 + arm_func_end FUN_020BB1C0 + + ; NNS_G3dGeSendDL + arm_func_start FUN_020BB2B0 +FUN_020BB2B0: ; 0x020BB2B0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + cmp r4, #0x100 + blo _020BB2DC + ldr r1, _020BB360 ; =GXi_DmaId + mvn r0, #0x0 + ldr r1, [r1, #0x0] + cmp r1, r0 + bne _020BB2F8 +_020BB2DC: + mov r2, r4, lsr #0x2 + ldr r0, [r5, #0x0] + add r1, r5, #0x4 + sub r2, r2, #0x1 + bl FUN_020BB1C0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020BB2F8: + bl FUN_020BB394 + ldr r0, _020BB364 ; =UNK_021D1C88 + ldr r1, _020BB368 ; =UNK_021D1C84 + ldr r0, [r0, #0x0] + mov r2, #0x1 + str r2, [r1, #0x0] + cmp r0, #0x0 + beq _020BB33C + ldr r0, _020BB360 ; =GXi_DmaId + str r1, [sp, #0x0] + ldr r0, [r0, #0x0] + ldr r3, _020BB36C ; =FUN_020BB370 + mov r1, r5 + mov r2, r4 + bl MI_SendGXCommandAsyncFast + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020BB33C: + ldr r0, _020BB360 ; =GXi_DmaId + str r1, [sp, #0x0] + ldr r0, [r0, #0x0] + ldr r3, _020BB36C ; =FUN_020BB370 + mov r1, r5 + mov r2, r4 + bl MI_SendGXCommandAsync + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BB360: .word GXi_DmaId +_020BB364: .word UNK_021D1C88 +_020BB368: .word UNK_021D1C84 +_020BB36C: .word FUN_020BB370 + arm_func_end FUN_020BB2B0 + + ; _end + arm_func_start FUN_020BB370 +FUN_020BB370: ; 0x020BB370 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + arm_func_end FUN_020BB370 + + ; NNS_G3dGeWaitSendDL + arm_func_start FUN_020BB37C +FUN_020BB37C: ; 0x020BB37C + ldr r0, _020BB390 ; =UNK_021D1C84 +_020BB380: + ldr r1, [r0, #0x0] + cmp r1, #0x0 + bne _020BB380 + bx lr + .balign 4 +_020BB390: .word UNK_021D1C84 + arm_func_end FUN_020BB37C + + ; NNS_G3dGeFlushBuffer + arm_func_start FUN_020BB394 +FUN_020BB394: ; 0x020BB394 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020BB3FC ; =UNK_021D1C84 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020BB3B0 + bl FUN_020BB37C +_020BB3B0: + ldr r0, _020BB400 ; =UNK_021D1C80 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r2, [r0, #0x0] + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r1, _020BB404 ; =0x04000400 + add r0, r0, #0x4 + mov r2, r2, lsl #0x2 + bl MIi_CpuSend32 + ldr r0, _020BB400 ; =UNK_021D1C80 + mov r1, #0x0 + ldr r0, [r0, #0x0] + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020BB3FC: .word UNK_021D1C84 +_020BB400: .word UNK_021D1C80 +_020BB404: .word 0x04000400 + arm_func_end FUN_020BB394 + diff --git a/arm9/asm/NNS_G3D_glbstate.s b/arm9/asm/NNS_G3D_glbstate.s new file mode 100644 index 000000000..73b6609d4 --- /dev/null +++ b/arm9/asm/NNS_G3D_glbstate.s @@ -0,0 +1,436 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; NNS_G3dGlb + .global UNK_021CED18 +UNK_021CED18: ; 0x021CED18 + .space 0x8 + + ; NNS_G3dGlb + 0x8 + .global UNK_021CED20 +UNK_021CED20: ; 0x021CED20 + .space 0x44 + + ; NNS_G3dGlb + 0x4C + .global UNK_021CED64 +UNK_021CED64: ; 0x021CED64 + .space 0x34 + + ; NNS_G3dGlb + 0x80 + .global UNK_021CED98 +UNK_021CED98: ; 0x021CED98 + .space 0x28 + + ; NNS_G3dGlb + 0xA8 + .global UNK_021CEDC0 +UNK_021CEDC0: ; 0x021CEDC0 + .space 0x14 + + ; NNS_G3dGlb + 0xBC + .global UNK_021CEDD4 +UNK_021CEDD4: ; 0x021CEDD4 + .space 0x24 + + ; NNS_G3dGlb + 0xE0 + .global UNK_021CEDF8 +UNK_021CEDF8: ; 0x021CEDF8 + .space 0xc + + ; NNS_G3dGlb + 0xEC + .global UNK_021CEE04 +UNK_021CEE04: ; 0x021CEE04 + .space 0x14 + + ; NNS_G3dGlb + 0x100 + .global UNK_021CEE18 +UNK_021CEE18: ; 0x021CEE18 + .space 0x30 + + ; NNS_G3dGlb + 0x130 + .global UNK_021CEE48 +UNK_021CEE48: ; 0x021CEE48 + .space 0x30 + + ; NNS_G3dGlb + 0x160 + .global UNK_021CEE78 +UNK_021CEE78: ; 0x021CEE78 + .space 0xe0 + + ; NNS_G3dGlb + 0x240 + .global UNK_021CEF58 +UNK_021CEF58: ; 0x021CEF58 + .space 0xc + + ; NNS_G3dGlb + 0x24C + .global UNK_021CEF64 +UNK_021CEF64: ; 0x021CEF64 + .space 0xc + + ; NNS_G3dGlb + 0x258 + .global UNK_021CEF70 +UNK_021CEF70: ; 0x021CEF70 + .space 0xc + + .section .text + + ; NNS_G3dGlbGetViewPort + arm_func_start FUN_020B8200 +FUN_020B8200: ; 0x020B8200 + cmp r0, #0x0 + ldrne ip, _020B8260 ; =UNK_021CED18 + ldrne r12, [r12, #0xa0] + andne r12, r12, #0xff + strne r12, [r0, #0x0] + cmp r1, #0x0 + ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, [r0, #0xa0] + movne r0, r0, lsr #0x8 + andne r0, r0, #0xff + strne r0, [r1, #0x0] + cmp r2, #0x0 + ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, [r0, #0xa0] + movne r0, r0, lsr #0x10 + andne r0, r0, #0xff + strne r0, [r2, #0x0] + cmp r3, #0x0 + ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, [r0, #0xa0] + movne r0, r0, lsr #0x18 + andne r0, r0, #0xff + strne r0, [r3, #0x0] + bx lr + .balign 4 +_020B8260: .word UNK_021CED18 + arm_func_end FUN_020B8200 + + ; NNS_G3dGlbGetInvWV + arm_func_start FUN_020B8264 +FUN_020B8264: ; 0x020B8264 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020B829C ; =UNK_021CED18 + ldr r0, [r0, #0xfc] + ands r0, r0, #0x80 + bne _020B8290 + bl FUN_020B82E4 + ldr r0, _020B829C ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + orr r1, r1, #0x80 + str r1, [r0, #0xfc] +_020B8290: + ldr r0, _020B82A0 ; =UNK_021CEE78 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B829C: .word UNK_021CED18 +_020B82A0: .word UNK_021CEE78 + arm_func_end FUN_020B8264 + + ; NNS_G3dGlbGetWV + arm_func_start FUN_020B82A4 +FUN_020B82A4: ; 0x020B82A4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020B82DC ; =UNK_021CED18 + ldr r0, [r0, #0xfc] + ands r0, r0, #0x80 + bne _020B82D0 + bl FUN_020B82E4 + ldr r0, _020B82DC ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + orr r1, r1, #0x80 + str r1, [r0, #0xfc] +_020B82D0: + ldr r0, _020B82E0 ; =UNK_021CEE48 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B82DC: .word UNK_021CED18 +_020B82E0: .word UNK_021CEE48 + arm_func_end FUN_020B82A4 + + ; calcSrtCameraMtx_ + arm_func_start FUN_020B82E4 +FUN_020B82E4: ; 0x020B82E4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020B8330 ; =UNK_021CEDD4 + ldr r1, _020B8334 ; =UNK_021CED64 + ldr r2, _020B8338 ; =UNK_021CEE48 + bl MTX_Concat43 + ldr r3, _020B833C ; =UNK_021CED18 + ldr r0, _020B8338 ; =UNK_021CEE48 + ldr r2, [r3, #0xf4] + mov r1, r0 + str r2, [sp, #0x0] + ldr r2, [r3, #0xec] + ldr r3, [r3, #0xf0] + bl MTX_ScaleApply43 + ldr r0, _020B8338 ; =UNK_021CEE48 + ldr r1, _020B8340 ; =UNK_021CEE78 + bl MTX_Inverse43 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B8330: .word UNK_021CEDD4 +_020B8334: .word UNK_021CED64 +_020B8338: .word UNK_021CEE48 +_020B833C: .word UNK_021CED18 +_020B8340: .word UNK_021CEE78 + arm_func_end FUN_020B82E4 + + ; NNS_G3dGlbGetInvV + arm_func_start FUN_020B8344 +FUN_020B8344: ; 0x020B8344 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020B8384 ; =UNK_021CED18 + ldr r0, [r0, #0xfc] + ands r0, r0, #0x8 + bne _020B8378 + ldr r0, _020B8388 ; =UNK_021CED64 + ldr r1, _020B838C ; =UNK_021CEE18 + bl MTX_Inverse43 + ldr r0, _020B8384 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + orr r1, r1, #0x8 + str r1, [r0, #0xfc] +_020B8378: + ldr r0, _020B838C ; =UNK_021CEE18 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B8384: .word UNK_021CED18 +_020B8388: .word UNK_021CED64 +_020B838C: .word UNK_021CEE18 + arm_func_end FUN_020B8344 + + ; NNS_G3dGlbPolygonAttr + arm_func_start FUN_020B8390 +FUN_020B8390: ; 0x020B8390 + orr r0, r0, r1, lsl #0x4 + ldr r1, [sp, #0x4] + orr r0, r0, r2, lsl #0x6 + orr r0, r1, r0 + ldr r2, [sp, #0x0] + orr r1, r0, r3, lsl #0x18 + ldr r0, _020B83B8 ; =UNK_021CED18 + orr r1, r1, r2, lsl #0x10 + str r1, [r0, #0x9c] + bx lr + .balign 4 +_020B83B8: .word UNK_021CED18 + arm_func_end FUN_020B8390 + + ; NNS_G3dGlbMaterialColorSpecEmi + arm_func_start FUN_020B83BC +FUN_020B83BC: ; 0x020B83BC + cmp r2, #0x0 + movne r2, #0x1 + orr r1, r0, r1, lsl #0x10 + moveq r2, #0x0 + ldr r0, _020B83DC ; =UNK_021CED18 + orr r1, r1, r2, lsl #0xf + str r1, [r0, #0x98] + bx lr + .balign 4 +_020B83DC: .word UNK_021CED18 + arm_func_end FUN_020B83BC + + ; NNS_G3dGlbMaterialColorDiffAmb + arm_func_start FUN_020B83E0 +FUN_020B83E0: ; 0x020B83E0 + cmp r2, #0x0 + movne r2, #0x1 + orr r1, r0, r1, lsl #0x10 + moveq r2, #0x0 + ldr r0, _020B8400 ; =UNK_021CED18 + orr r1, r1, r2, lsl #0xf + str r1, [r0, #0x94] + bx lr + .balign 4 +_020B8400: .word UNK_021CED18 + arm_func_end FUN_020B83E0 + + ; NNS_G3dGlbLightColor + arm_func_start FUN_020B8404 +FUN_020B8404: ; 0x020B8404 + ldr r2, _020B8414 ; =UNK_021CEDC0 + orr r1, r1, r0, lsl #0x1e + str r1, [r2, r0, lsl #0x2] + bx lr + .balign 4 +_020B8414: .word UNK_021CEDC0 + arm_func_end FUN_020B8404 + + ; NNS_G3dGlbLightVector + arm_func_start FUN_020B8418 +FUN_020B8418: ; 0x020B8418 + stmdb sp!, {r4,lr} + ldr ip, _020B8444 ; =0x000003FF + ldr lr, _020B8448 ; =UNK_021CED98 + and r4, r12, r1, asr #0x3 + and r1, r12, r2, asr #0x3 + and r2, r12, r3, asr #0x3 + orr r1, r4, r1, lsl #0xa + orr r1, r1, r2, lsl #0x14 + orr r1, r1, r0, lsl #0x1e + str r1, [lr, r0, lsl #0x2] + ldmia sp!, {r4,pc} + .balign 4 +_020B8444: .word 0x000003FF +_020B8448: .word UNK_021CED98 + arm_func_end FUN_020B8418 + + ; NNS_G3dGlbSetBaseScale + arm_func_start FUN_020B844C +FUN_020B844C: ; 0x020B844C + ldr r3, _020B846C ; =UNK_021CEE04 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + ldr r0, _020B8470 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + bic r1, r1, #0xa4 + str r1, [r0, #0xfc] + bx lr + .balign 4 +_020B846C: .word UNK_021CEE04 +_020B8470: .word UNK_021CED18 + arm_func_end FUN_020B844C + + ; NNS_G3dGlbSetBaseTrans + arm_func_start FUN_020B8474 +FUN_020B8474: ; 0x020B8474 + ldr r3, _020B8494 ; =UNK_021CEDF8 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + ldr r0, _020B8498 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + bic r1, r1, #0xa4 + str r1, [r0, #0xfc] + bx lr + .balign 4 +_020B8494: .word UNK_021CEDF8 +_020B8498: .word UNK_021CED18 + arm_func_end FUN_020B8474 + + ; NNS_G3dGlbFlushP + arm_func_start FUN_020B849C +FUN_020B849C: ; 0x020B849C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020B84D4 ; =UNK_021CED18 + mov r2, #0x3e + ldr r0, [r1], #0x4 + bl FUN_020BB1C0 + ldr r0, _020B84D4 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + bic r1, r1, #0x1 + str r1, [r0, #0xfc] + bic r1, r1, #0x2 + str r1, [r0, #0xfc] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020B84D4: .word UNK_021CED18 + arm_func_end FUN_020B849C + + ; NNS_G3dGlbInit + arm_func_start FUN_020B84D8 +FUN_020B84D8: ; 0x020B84D8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r8, _020B85F4 ; =0x17101610 + ldr r1, _020B85F8 ; =UNK_021CED18 + ldr r5, _020B85FC ; =0x32323232 + ldr r4, _020B8600 ; =0x60293130 + ldr r3, _020B8604 ; =0x33333333 + ldr r2, _020B8608 ; =0x002A1B19 + mov r7, #0x0 + mov r6, #0x2 + ldr r0, _020B860C ; =UNK_021CED64 + str r8, [r1, #0x0] + str r7, [r1, #0x4] + str r6, [r1, #0x48] + str r5, [r1, #0x7c] + str r4, [r1, #0x90] + str r3, [r1, #0xa4] + str r2, [r1, #0xb8] + bl MTX_Identity43_ + ldr r0, _020B8610 ; =UNK_021CED20 + bl MTX_Identity44_ + mov r2, r7 + ldr r1, _020B85F8 ; =UNK_021CED18 + ldr r7, _020B8614 ; =0x4210C210 + ldr r0, _020B8618 ; =0x40000200 + ldr lr, _020B861C ; =0x2D8B62D8 + ldr sb, _020B8620 ; =0x800001FF + ldr r8, _020B8624 ; =0xC0080000 + ldr r6, _020B8628 ; =0x001F008F + ldr r5, _020B862C ; =0xBFFF0000 + ldr r4, _020B8630 ; =0x00007FFF + ldr ip, _020B8634 ; =0x800003E0 + ldr r3, _020B8638 ; =0xC0007C00 + str r0, [r1, #0x84] + str lr, [r1, #0x80] + mov lr, #0x4000001f + ldr r0, _020B863C ; =UNK_021CEDD4 + str r9, [r1, #0x88] + str r8, [r1, #0x8c] + str r7, [r1, #0x94] + str r7, [r1, #0x98] + str r6, [r1, #0x9c] + str r5, [r1, #0xa0] + str r4, [r1, #0xa8] + str lr, [r1, #0xac] + str r12, [r1, #0xb0] + str r3, [r1, #0xb4] + str r2, [r1, #0xe0] + str r2, [r1, #0xe4] + str r2, [r1, #0xe8] + bl MTX_Identity33_ + mov r3, #0x1000 + ldr r0, _020B85F8 ; =UNK_021CED18 + mov r2, #0x0 + rsb r1, r3, #0x0 + str r3, [r0, #0xec] + str r3, [r0, #0xf0] + str r3, [r0, #0xf4] + str r2, [r0, #0xf8] + str r2, [r0, #0xfc] + str r2, [r0, #0x248] + str r2, [r0, #0x244] + str r2, [r0, #0x240] + str r2, [r0, #0x254] + str r2, [r0, #0x24c] + str r3, [r0, #0x250] + str r2, [r0, #0x25c] + str r2, [r0, #0x258] + str r1, [r0, #0x260] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020B85F4: .word 0x17101610 +_020B85F8: .word UNK_021CED18 +_020B85FC: .word 0x32323232 +_020B8600: .word 0x60293130 +_020B8604: .word 0x33333333 +_020B8608: .word 0x002A1B19 +_020B860C: .word UNK_021CED64 +_020B8610: .word UNK_021CED20 +_020B8614: .word 0x4210C210 +_020B8618: .word 0x40000200 +_020B861C: .word 0x2D8B62D8 +_020B8620: .word 0x800001FF +_020B8624: .word 0xC0080000 +_020B8628: .word 0x001F008F +_020B862C: .word 0xBFFF0000 +_020B8630: .word 0x00007FFF +_020B8634: .word 0x800003E0 +_020B8638: .word 0xC0007C00 +_020B863C: .word UNK_021CEDD4 + arm_func_end FUN_020B84D8 + diff --git a/arm9/asm/NNS_G3D_kernel.s b/arm9/asm/NNS_G3D_kernel.s new file mode 100644 index 000000000..71052927f --- /dev/null +++ b/arm9/asm/NNS_G3D_kernel.s @@ -0,0 +1,885 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020B772C +FUN_020B772C: ; 0x020B772C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + ldrb r0, [r6, #0x9] + mov r5, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r7,pc} + add r4, r6, #0x8 +_020B7750: + ldrh r0, [r6, #0xe] + ldrh r1, [r4, r0] + add r0, r4, r0 + mla r0, r1, r5, r0 + ldr r0, [r0, #0x4] + add r7, r6, r0 + mov r0, r7 + bl FUN_020B79A4 + mov r0, r7 + bl FUN_020B780C + ldrb r0, [r6, #0x9] + add r5, r5, #0x1 + cmp r5, r0 + blo _020B7750 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020B772C + + ; _end + arm_func_start FUN_020B7790 +FUN_020B7790: ; 0x020B7790 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + ldrb r0, [r8, #0x9] + mov r7, r1 + mov r5, #0x1 + cmp r0, #0x0 + mov r6, #0x0 + bls _020B7800 + add r4, r8, #0x8 +_020B77B8: + ldrh r0, [r8, #0xe] + mov r1, r7 + ldrh r2, [r4, r0] + add r0, r4, r0 + mla r0, r2, r6, r0 + ldr r0, [r0, #0x4] + add r9, r8, r0 + mov r0, r9 + bl FUN_020B7A04 + and r5, r5, r0 + mov r0, r9 + mov r1, r7 + bl FUN_020B7864 + ldrb r1, [r8, #0x9] + add r6, r6, #0x1 + and r5, r5, r0 + cmp r6, r1 + blo _020B77B8 +_020B7800: + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020B7790 + + ; _end + arm_func_start FUN_020B780C +FUN_020B780C: ; 0x020B780C + ldr r2, [r0, #0x8] + mov r1, #0x0 + add r2, r0, r2 + ldrh r0, [r2, #0x2] + add r12, r2, r0 + ldrb r0, [r12, #0x1] + cmp r0, #0x0 + bxls lr +_020B782C: + ldrh r2, [r12, #0x6] + ldrh r0, [r12, r2] + add r2, r12, r2 + add r2, r2, #0x4 + mla r3, r0, r1, r2 + ldrb r0, [r3, #0x3] + add r1, r1, #0x1 + ands r2, r0, #0x1 + bicne r0, r0, #0x1 + strneb r0, [r3, #0x3] + ldrb r0, [r12, #0x1] + cmp r1, r0 + blo _020B782C + bx lr + arm_func_end FUN_020B780C + + ; _end + arm_func_start FUN_020B7864 +FUN_020B7864: ; 0x020B7864 + stmdb sp!, {r4-r10,lr} + ldr r2, [r0, #0x8] + mov r10, r1 + add r9, r0, r2 + ldrh r0, [r9, #0x2] + mov r6, #0x1 + mov r7, #0x0 + add r8, r9, r0 + ldrb r0, [r8, #0x1] + cmp r0, #0x0 + bls _020B7908 + mov r5, r7 + mov r4, r7 +_020B7898: + ldrh r1, [r8, #0x6] + ldrh r0, [r10, #0x34] + add r2, r8, r1 + ldrh r1, [r2, #0x2] + add r0, r10, r0 + add r1, r2, r1 + add r1, r1, r5 + bl FUN_020BC2A0 + movs r3, r0 + beq _020B78F0 + ldrh r1, [r8, #0x6] + ldrh r0, [r8, r1] + add r1, r8, r1 + add r1, r1, #0x4 + mla r1, r0, r7, r1 + ldrb r0, [r1, #0x3] + ands r0, r0, #0x1 + bne _020B78F4 + mov r0, r9 + mov r2, r10 + bl FUN_020B7910 + b _020B78F4 +_020B78F0: + mov r6, r4 +_020B78F4: + ldrb r0, [r8, #0x1] + add r7, r7, #0x1 + add r5, r5, #0x10 + cmp r7, r0 + blo _020B7898 +_020B7908: + mov r0, r6 + ldmia sp!, {r4-r10,pc} + arm_func_end FUN_020B7864 + + ; _end + arm_func_start FUN_020B7910 +FUN_020B7910: ; 0x020B7910 + stmdb sp!, {r4-r6,lr} + ldrh r5, [r1, #0x0] + ldr r2, [r2, #0x2c] + ldrh r4, [r3, #0x2] + mov r2, r2, lsl #0x10 + add r12, r0, r5 + mov r5, r2, lsr #0x10 + ands r2, r4, #0x1 + ldrh r4, [r3, #0x0] + moveq r3, r5, lsl #0xf + moveq r5, r3, lsr #0x10 + moveq r2, r4, lsl #0xf + moveq r4, r2, lsr #0x10 + ldrb r3, [r1, #0x2] + mov r2, #0x0 + cmp r3, #0x0 + bls _020B7994 + add r3, r4, r5 + mov r3, r3, lsl #0x10 + add r6, r0, #0x4 + mov r4, r3, lsr #0x10 +_020B7964: + ldrh r5, [r0, #0xa] + ldrb r3, [r12, r2] + add r2, r2, #0x1 + ldrh lr, [r6, r5] + add r5, r6, r5 + mla r3, lr, r3, r5 + ldr r3, [r3, #0x4] + add r3, r0, r3 + strh r4, [r3, #0x1c] + ldrb r3, [r1, #0x2] + cmp r2, r3 + blo _020B7964 +_020B7994: + ldrb r0, [r1, #0x3] + orr r0, r0, #0x1 + strb r0, [r1, #0x3] + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B7910 + + ; _end + arm_func_start FUN_020B79A4 +FUN_020B79A4: ; 0x020B79A4 + stmdb sp!, {r4-r6,lr} + ldr r2, [r0, #0x8] + mov r4, #0x0 + ldrh r1, [r0, r2] + add r6, r0, r2 + add r5, r6, r1 + ldrb r0, [r5, #0x1] + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020B79C8: + ldrh r1, [r5, #0x6] + ldrh r0, [r5, r1] + add r1, r5, r1 + add r1, r1, #0x4 + mla r1, r0, r4, r1 + ldrb r0, [r1, #0x3] + ands r0, r0, #0x1 + beq _020B79F0 + mov r0, r6 + bl FUN_020B7AB8 +_020B79F0: + ldrb r0, [r5, #0x1] + add r4, r4, #0x1 + cmp r4, r0 + blo _020B79C8 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B79A4 + + ; _end + arm_func_start FUN_020B7A04 +FUN_020B7A04: ; 0x020B7A04 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x8] + mov r10, r1 + ldrh r1, [r0, r2] + add r9, r0, r2 + mov r11, #0x1 + add r8, r9, r1 + ldrb r0, [r8, #0x1] + mov r7, #0x0 + cmp r0, #0x0 + bls _020B7AAC + mov r6, r7 + mov r4, r7 + add r5, r10, #0x3c +_020B7A40: + ldrh r1, [r8, #0x6] + mov r0, r5 + add r2, r8, r1 + ldrh r1, [r2, #0x2] + add r1, r2, r1 + add r1, r1, r6 + bl FUN_020BC2A0 + movs r3, r0 + beq _020B7A94 + ldrh r1, [r8, #0x6] + ldrh r0, [r8, r1] + add r1, r8, r1 + add r1, r1, #0x4 + mla r1, r0, r7, r1 + ldrb r0, [r1, #0x3] + ands r0, r0, #0x1 + bne _020B7A98 + mov r0, r9 + mov r2, r10 + bl FUN_020B7B40 + b _020B7A98 +_020B7A94: + mov r11, r4 +_020B7A98: + ldrb r0, [r8, #0x1] + add r7, r7, #0x1 + add r6, r6, #0x10 + cmp r7, r0 + blo _020B7A40 +_020B7AAC: + mov r0, r11 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020B7A04 + + ; releaseMdlTex_Internal_ + arm_func_start FUN_020B7AB8 +FUN_020B7AB8: ; 0x020B7AB8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldrh r4, [r1, #0x0] + ldrb r2, [r1, #0x2] + mov r3, #0x0 + add r12, r0, r4 + cmp r2, #0x0 + bls _020B7B28 + add r2, r0, #0x4 + mov r5, #0x1000 + ldr lr, _020B7B3C ; =0xC00F0000 +_020B7AE4: + ldrh r7, [r0, #0xa] + ldrb r4, [r12, r3] + add r3, r3, #0x1 + ldrh r6, [r2, r7] + add r7, r2, r7 + mla r4, r6, r4, r7 + ldr r4, [r4, #0x4] + add r6, r0, r4 + ldr r4, [r6, #0x14] + and r4, r4, lr + str r4, [r6, #0x14] + str r5, [r6, #0x24] + ldr r4, [r6, #0x24] + str r4, [r6, #0x28] + ldrb r4, [r1, #0x2] + cmp r3, r4 + blo _020B7AE4 +_020B7B28: + ldrb r0, [r1, #0x3] + bic r0, r0, #0x1 + strb r0, [r1, #0x3] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B7B3C: .word 0xC00F0000 + arm_func_end FUN_020B7AB8 + + ; bindMdlTex_Internal_ + arm_func_start FUN_020B7B40 +FUN_020B7B40: ; 0x020B7B40 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r11, r1 + mov r9, r3 + ldr r1, [r9, #0x0] + mov r10, r0 + and r0, r1, #0x1c000000 + cmp r0, #0x14000000 + ldrh r3, [r11, #0x0] + ldrne r1, [r2, #0x8] + mov r8, #0x0 + add r0, r10, r3 + str r0, [sp, #0x4] + ldrne r0, _020B7C50 ; =0x0000FFFF + andne r0, r1, r0 + strne r0, [sp, #0x0] + ldreq r1, [r2, #0x18] + ldreq r0, _020B7C50 ; =0x0000FFFF + andeq r0, r1, r0 + streq r0, [sp, #0x0] + ldrb r0, [r11, #0x2] + cmp r0, #0x0 + bls _020B7C3C + mov r4, #0x1000 + add r5, r10, #0x4 +_020B7BA4: + ldrh r6, [r10, #0xa] + ldr r0, [sp, #0x4] + ldr r1, [r9, #0x0] + ldrb r2, [r0, r8] + ldrh r3, [r5, r6] + ldr r0, [sp, #0x0] + add r6, r5, r6 + add r0, r1, r0 + mla r1, r3, r2, r6 + ldr r1, [r1, #0x4] + add r6, r10, r1 + ldr r1, [r6, #0x14] + orr r0, r1, r0 + str r0, [r6, #0x14] + ldr r3, [r9, #0x4] + ldr r0, _020B7C54 ; =0x000007FF + ldrh r1, [r6, #0x20] + and r2, r3, r0 + and r7, r0, r3, lsr #0xb + cmp r2, r1 + moveq r0, r4 + beq _020B7C08 + mov r0, r2, lsl #0xc + mov r1, r1, lsl #0xc + bl FX_Div +_020B7C08: + str r0, [r6, #0x24] + ldrh r1, [r6, #0x22] + cmp r7, r1 + moveq r0, r4 + beq _020B7C28 + mov r0, r7, lsl #0xc + mov r1, r1, lsl #0xc + bl FX_Div +_020B7C28: + str r0, [r6, #0x28] + ldrb r0, [r11, #0x2] + add r8, r8, #0x1 + cmp r8, r0 + blo _020B7BA4 +_020B7C3C: + ldrb r0, [r11, #0x3] + orr r0, r0, #0x1 + strb r0, [r11, #0x3] + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B7C50: .word 0x0000FFFF +_020B7C54: .word 0x000007FF + arm_func_end FUN_020B7B40 + + ; _end + arm_func_start FUN_020B7C58 +FUN_020B7C58: ; 0x020B7C58 + ldrh r2, [r0, #0x32] + mov r1, #0x0 + bic r2, r2, #0x1 + strh r2, [r0, #0x32] + ldr r2, [r0, #0x2c] + str r1, [r0, #0x2c] + mov r0, r2 + bx lr + arm_func_end FUN_020B7C58 + + ; NNS_G3dPlttLoad + arm_func_start FUN_020B7C78 +FUN_020B7C78: ; 0x020B7C78 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r4, r1 + mov r5, r0 + beq _020B7C90 + bl GX_BeginLoadTexPltt +_020B7C90: + ldrh r2, [r5, #0x30] + ldr r0, [r5, #0x38] + ldr r3, [r5, #0x2c] + ldr r1, _020B7CD8 ; =0x0000FFFF + add r0, r5, r0 + and r1, r3, r1 + mov r1, r1, lsl #0x3 + mov r2, r2, lsl #0x3 + bl GX_LoadTexPltt + ldrh r0, [r5, #0x32] + cmp r4, #0x0 + addeq sp, sp, #0x4 + orr r0, r0, #0x1 + strh r0, [r5, #0x32] + ldmeqia sp!, {r4-r5,pc} + bl GX_EndLoadTexPltt + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B7CD8: .word 0x0000FFFF + arm_func_end FUN_020B7C78 + + ; _end + arm_func_start FUN_020B7CDC +FUN_020B7CDC: ; 0x020B7CDC + str r1, [r0, #0x2c] + bx lr + arm_func_end FUN_020B7CDC + + ; _end + arm_func_start FUN_020B7CE4 +FUN_020B7CE4: ; 0x020B7CE4 + ldrh r0, [r0, #0x30] + mov r0, r0, lsl #0x3 + bx lr + arm_func_end FUN_020B7CE4 + + ; _end + arm_func_start FUN_020B7CF0 +FUN_020B7CF0: ; 0x020B7CF0 + ldrh r12, [r0, #0x10] + mov r3, #0x0 + bic r12, r12, #0x1 + strh r12, [r0, #0x10] + ldrh r12, [r0, #0x20] + bic r12, r12, #0x1 + strh r12, [r0, #0x20] + ldr r12, [r0, #0x8] + str r12, [r1, #0x0] + str r3, [r0, #0x8] + ldr r1, [r0, #0x18] + str r1, [r2, #0x0] + str r3, [r0, #0x18] + bx lr + arm_func_end FUN_020B7CF0 + + ; NNS_G3dTexLoad + arm_func_start FUN_020B7D28 +FUN_020B7D28: ; 0x020B7D28 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + movs r8, r1 + mov r9, r0 + beq _020B7D40 + bl GX_BeginLoadTex +_020B7D40: + ldrh r0, [r9, #0xc] + movs r2, r0, lsl #0x3 + beq _020B7D74 + ldr r1, [r9, #0x8] + ldr r0, _020B7DF4 ; =0x0000FFFF + ldr r3, [r9, #0x14] + and r1, r1, r0 + add r0, r9, r3 + mov r1, r1, lsl #0x3 + bl GX_LoadTex + ldrh r0, [r9, #0x10] + orr r0, r0, #0x1 + strh r0, [r9, #0x10] +_020B7D74: + ldrh r0, [r9, #0x1c] + movs r7, r0, lsl #0x3 + beq _020B7DDC + ldr r1, [r9, #0x18] + ldr r0, _020B7DF4 ; =0x0000FFFF + ldr r3, [r9, #0x24] + and r4, r1, r0 + mov r5, r4, lsl #0x3 + ldr r6, [r9, #0x28] + mov r1, r5 + mov r2, r7 + add r0, r9, r3 + add r6, r9, r6 + bl GX_LoadTex + ldr r0, _020B7DF8 ; =0x0001FFFF + and r1, r5, #0x40000 + and r0, r0, r4, lsl #0x3 + mov r0, r0, lsr #0x1 + add r2, r0, #0x20000 + mov r0, r6 + add r1, r2, r1, lsr #0x2 + mov r2, r7, lsr #0x1 + bl GX_LoadTex + ldrh r0, [r9, #0x20] + orr r0, r0, #0x1 + strh r0, [r9, #0x20] +_020B7DDC: + cmp r8, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,pc} + bl GX_EndLoadTex + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020B7DF4: .word 0x0000FFFF +_020B7DF8: .word 0x0001FFFF + arm_func_end FUN_020B7D28 + + ; _end + arm_func_start FUN_020B7DFC +FUN_020B7DFC: ; 0x020B7DFC + cmp r1, #0x0 + strne r1, [r0, #0x8] + cmp r2, #0x0 + strne r2, [r0, #0x18] + bx lr + arm_func_end FUN_020B7DFC + + ; _end + arm_func_start FUN_020B7E10 +FUN_020B7E10: ; 0x020B7E10 + ldrh r0, [r0, #0x1c] + mov r0, r0, lsl #0x3 + bx lr + arm_func_end FUN_020B7E10 + + ; _end + arm_func_start FUN_020B7E1C +FUN_020B7E1C: ; 0x020B7E1C + ldrh r0, [r0, #0xc] + mov r0, r0, lsl #0x3 + bx lr + arm_func_end FUN_020B7E1C + + ; _end + arm_func_start FUN_020B7E28 +FUN_020B7E28: ; 0x020B7E28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + add r0, r5, #0x8 + mov r4, r1 + bl FUN_020B7E88 + cmp r0, #0x0 + bne _020B7E74 + mov r1, r4 + add r0, r5, #0x10 + bl FUN_020B7E88 + cmp r0, #0x0 + bne _020B7E74 + mov r1, r4 + add r0, r5, #0x18 + bl FUN_020B7E88 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} +_020B7E74: + ldr r0, [r5, #0x0] + orr r0, r0, #0x10 + str r0, [r5, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7E28 + + ; _end + arm_func_start FUN_020B7E88 +FUN_020B7E88: ; 0x020B7E88 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r2, r1 + bne _020B7EB8 + ldr r3, [r2, #0x10] + mov r2, #0x0 + str r3, [r0, #0x0] + str r2, [r1, #0x10] + mov r0, #0x1 + bx lr +_020B7EB8: + ldr r3, [r2, #0x10] + cmp r3, #0x0 + beq _020B7EF4 +_020B7EC4: + cmp r3, r1 + bne _020B7EE4 + ldr r1, [r3, #0x10] + mov r0, #0x0 + str r1, [r2, #0x10] + str r0, [r3, #0x10] + mov r0, #0x1 + bx lr +_020B7EE4: + mov r2, r3 + ldr r3, [r3, #0x10] + cmp r3, #0x0 + bne _020B7EC4 +_020B7EF4: + mov r0, #0x0 + bx lr + arm_func_end FUN_020B7E88 + + ; _end + arm_func_start FUN_020B7EFC +FUN_020B7EFC: ; 0x020B7EFC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + ldr r2, [r4, #0x8] + mov r5, r0 + ldrb r0, [r2, #0x0] + cmp r0, #0x4a + beq _020B7F50 + cmp r0, #0x4d + beq _020B7F34 + cmp r0, #0x56 + beq _020B7F6C + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020B7F34: + add r0, r5, #0x3c + bl FUN_020B7F88 + mov r1, r4 + add r0, r5, #0x8 + bl FUN_020B7FF8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020B7F50: + add r0, r5, #0x44 + bl FUN_020B7F88 + mov r1, r4 + add r0, r5, #0x10 + bl FUN_020B7FF8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020B7F6C: + add r0, r5, #0x4c + bl FUN_020B7F88 + mov r1, r4 + add r0, r5, #0x18 + bl FUN_020B7FF8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7EFC + + ; _end + arm_func_start FUN_020B7F88 +FUN_020B7F88: ; 0x020B7F88 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + mov r3, #0x1 + mov r4, #0x0 +_020B7FA4: + ldrb r2, [r1, #0x19] + mov r5, r4 + cmp r2, #0x0 + ble _020B7FE4 +_020B7FB4: + add r2, r1, r5, lsl #0x1 + ldrh r2, [r2, #0x1a] + ands r2, r2, #0x100 + movne lr, r5, asr #0x5 + andne r2, r5, #0x1f + ldrne r12, [r0, lr, lsl #0x2] + add r5, r5, #0x1 + orrne r2, r12, r3, lsl r2 + strne r2, [r0, lr, lsl #0x2] + ldrb r2, [r1, #0x19] + cmp r5, r2 + blt _020B7FB4 +_020B7FE4: + ldr r1, [r1, #0x10] + cmp r1, #0x0 + bne _020B7FA4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020B7F88 + + ; _end + arm_func_start FUN_020B7FF8 +FUN_020B7FF8: ; 0x020B7FF8 + ldr r12, [r0, #0x0] + cmp r12, #0x0 + streq r1, [r0, #0x0] + bxeq lr + ldr r3, [r12, #0x10] + cmp r3, #0x0 + bne _020B8058 + ldrb r3, [r12, #0x18] + ldrb r2, [r1, #0x18] + cmp r3, r2 + bls _020B8050 + ldr r2, [r1, #0x10] + mov r3, r1 + cmp r2, #0x0 + beq _020B8044 +_020B8034: + ldr r3, [r3, #0x10] + ldr r2, [r3, #0x10] + cmp r2, #0x0 + bne _020B8034 +_020B8044: + str r12, [r3, #0x10] + str r1, [r0, #0x0] + bx lr +_020B8050: + str r1, [r12, #0x10] + bx lr +_020B8058: + cmp r3, #0x0 + beq _020B80AC + ldrb r2, [r1, #0x18] +_020B8064: + ldrb r0, [r3, #0x18] + cmp r0, r2 + blo _020B809C + ldr r0, [r1, #0x10] + mov r2, r1 + cmp r0, #0x0 + beq _020B8090 +_020B8080: + ldr r2, [r2, #0x10] + ldr r0, [r2, #0x10] + cmp r0, #0x0 + bne _020B8080 +_020B8090: + str r1, [r12, #0x10] + str r3, [r2, #0x10] + bx lr +_020B809C: + mov r12, r3 + ldr r3, [r3, #0x10] + cmp r3, #0x0 + bne _020B8064 +_020B80AC: + str r1, [r12, #0x10] + bx lr + arm_func_end FUN_020B7FF8 + + ; NNS_G3dRenderObjInit + arm_func_start FUN_020B80B4 +FUN_020B80B4: ; 0x020B80B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + mov r1, r5 + mov r0, #0x0 + mov r2, #0x54 + bl MIi_CpuClear32 + ldr r0, _020B8104 ; =UNK_021065B4 + ldr r1, _020B8108 ; =UNK_021065B0 + ldr r2, [r0, #0x0] + ldr r0, _020B810C ; =UNK_021065AC + str r2, [r5, #0xc] + ldr r1, [r1, #0x0] + str r1, [r5, #0x14] + ldr r0, [r0, #0x0] + str r0, [r5, #0x1c] + str r4, [r5, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020B8104: .word UNK_021065B4 +_020B8108: .word UNK_021065B0 +_020B810C: .word UNK_021065AC + arm_func_end FUN_020B80B4 + + ; NNS_G3dAnmObjInit + arm_func_start FUN_020B8110 +FUN_020B8110: ; 0x020B8110 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r12, #0x0 + str r12, [r0, #0x0] + str r1, [r0, #0x8] + str r12, [r0, #0x10] + mov r4, #0x7f + strb r4, [r0, #0x18] + mov r4, #0x1000 + str r4, [r0, #0x4] + ldr lr, _020B81A4 ; =UNK_02106594 + str r3, [r0, #0x14] + ldr r6, [lr, #0x0] + cmp r6, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r7,pc} + ldrb r7, [r1, #0x0] + ldr r4, _020B81A8 ; =UNK_021065B8 +_020B8158: + ldrb r3, [r4, r12, lsl #0x3] + mov r5, r12, lsl #0x3 + cmp r7, r3 + bne _020B8190 + add r3, r4, r5 + ldrh lr, [r1, #0x2] + ldrh r3, [r3, #0x2] + cmp lr, r3 + bne _020B8190 + ldr r3, _020B81AC ; =UNK_021065BC + ldr r3, [r3, r5] + blx r3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} +_020B8190: + add r12, r12, #0x1 + cmp r12, r6 + blo _020B8158 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B81A4: .word UNK_02106594 +_020B81A8: .word UNK_021065B8 +_020B81AC: .word UNK_021065BC + arm_func_end FUN_020B8110 + + ; _end + arm_func_start FUN_020B81B0 +FUN_020B81B0: ; 0x020B81B0 + ldrb r0, [r0, #0x0] + cmp r0, #0x4a + beq _020B81E4 + cmp r0, #0x4d + beq _020B81D0 + cmp r0, #0x56 + beq _020B81E4 + b _020B81F8 +_020B81D0: + ldrb r0, [r1, #0x18] + mov r0, r0, lsl #0x1 + add r0, r0, #0x1c + bic r0, r0, #0x3 + bx lr +_020B81E4: + ldrb r0, [r1, #0x17] + mov r0, r0, lsl #0x1 + add r0, r0, #0x1c + bic r0, r0, #0x3 + bx lr +_020B81F8: + mov r0, #0x0 + bx lr + arm_func_end FUN_020B81B0 + diff --git a/arm9/asm/NNS_G3D_maya.s b/arm9/asm/NNS_G3D_maya.s new file mode 100644 index 000000000..d7d26b5cc --- /dev/null +++ b/arm9/asm/NNS_G3D_maya.s @@ -0,0 +1,609 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; calcTexMtx_ + .global UNK_021067B0 +UNK_021067B0: ; 0x021067B0 + .word FUN_020BEBD8 + .word FUN_020BEB00 + .word FUN_020BEA84 + .word FUN_020BEA3C + .word FUN_020BE954 + .word FUN_020BE894 + .word FUN_020BE850 + .word FUN_020BE82C + + .section .text + + ; NNSi_G3dSendTexSRTMaya + arm_func_start FUN_020BE6E4 +FUN_020BE6E4: ; 0x020BE6E4 + stmdb sp!, {r4,lr} + sub sp, sp, #0x50 + mov r4, r0 + ldr r0, [r4, #0x0] + mov r1, #0x0 + ands r0, r0, #0x8 + ldrne r0, _020BE820 ; =0x00101610 + mov r3, #0x3 + strne r0, [sp, #0x0] + ldreq r0, _020BE824 ; =0x00101810 + mov r2, #0x2 + streq r0, [sp, #0x0] + mov r0, #0x1000 + str r0, [sp, #0x44] + str r3, [sp, #0x4] + str r2, [sp, #0x48] + str r1, [sp, #0x40] + str r1, [sp, #0x34] + str r1, [sp, #0x30] + str r1, [sp, #0x2c] + str r1, [sp, #0x28] + str r1, [sp, #0x24] + str r1, [sp, #0x20] + str r1, [sp, #0x14] + str r1, [sp, #0x10] + ldr r1, [r4, #0x0] + ldr r0, _020BE828 ; =UNK_021067B0 + and r1, r1, #0x7 + ldr r2, [r0, r1, lsl #0x2] + add r0, sp, #0x8 + mov r1, r4 + blx r2 + ldr r3, [r4, #0x30] + cmp r3, #0x1000 + beq _020BE7B4 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x8] + ldr r2, [r4, #0x30] + ldr r0, [sp, #0x38] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0xc] + ldr r1, [r4, #0x30] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x38] +_020BE7B4: + ldr r3, [r4, #0x34] + cmp r3, #0x1000 + beq _020BE804 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x18] + ldr r2, [r4, #0x34] + ldr r0, [sp, #0x3c] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0x1c] + ldr r1, [r4, #0x34] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x3c] +_020BE804: + add r1, sp, #0x0 + ldr r0, [sp, #0x0] + add r1, r1, #0x4 + mov r2, #0x12 + bl FUN_020BB1C0 + add sp, sp, #0x50 + ldmia sp!, {r4,pc} + .balign 4 +_020BE820: .word 0x00101610 +_020BE824: .word 0x00101810 +_020BE828: .word UNK_021067B0 + arm_func_end FUN_020BE6E4 + + ; _end + arm_func_start FUN_020BE82C +FUN_020BE82C: ; 0x020BE82C + mov r2, #0x1000 + str r2, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x10] + str r2, [r0, #0x14] + str r1, [r0, #0x30] + str r1, [r0, #0x34] + bx lr + arm_func_end FUN_020BE82C + + ; _end + arm_func_start FUN_020BE850 +FUN_020BE850: ; 0x020BE850 + ldr r2, [r1, #0x18] + mov r12, #0x0 + str r2, [r0, #0x0] + ldr r2, [r1, #0x1c] + str r2, [r0, #0x14] + str r12, [r0, #0x4] + str r12, [r0, #0x30] + ldr r2, [r1, #0x1c] + ldrh r3, [r1, #0x2e] + mov r1, r2, lsl #0x1 + rsb r1, r1, #0x0 + add r1, r1, #0x2000 + mul r1, r3, r1 + mov r1, r1, lsl #0x3 + str r1, [r0, #0x34] + str r12, [r0, #0x10] + bx lr + arm_func_end FUN_020BE850 + + ; _end + arm_func_start FUN_020BE894 +FUN_020BE894: ; 0x020BE894 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + rsb r2, r2, #0x0 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrsh r1, [r5, #0x20] + ldrsh r0, [r5, #0x22] + ldrh r2, [r5, #0x2c] + add r0, r1, r0 + rsb r0, r0, #0x0 + add r0, r0, #0x1000 + mul r0, r2, r0 + mov r0, r0, lsl #0x3 + str r0, [r6, #0x30] + ldrsh r1, [r5, #0x20] + ldrsh r0, [r5, #0x22] + ldrh r2, [r5, #0x2e] + sub r0, r1, r0 + add r0, r0, #0x1000 + mul r0, r2, r0 + mov r0, r0, lsl #0x3 + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BE894 + + ; _end + arm_func_start FUN_020BE954 +FUN_020BE954: ; 0x020BE954 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldrh r2, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + mov r10, r0 + mov r8, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r8 + bl FX_DivAsync + ldrsh r5, [r9, #0x22] + ldr r3, [r9, #0x18] + ldrsh r0, [r9, #0x20] + ldr r4, [r9, #0x1c] + smull r2, r1, r3, r5 + mov r6, r2, lsr #0xc + orr r6, r6, r1, lsl #0x14 + smull r2, r1, r3, r0 + mov r7, r2, lsr #0xc + orr r7, r7, r1, lsl #0x14 + smull r3, r2, r4, r0 + smull r1, r0, r4, r5 + mov r5, r3, lsr #0xc + orr r5, r5, r2, lsl #0x14 + mov r4, r1, lsr #0xc + orr r4, r4, r0, lsl #0x14 + str r6, [r10, #0x0] + str r4, [r10, #0x14] + bl FX_GetDivResult + mov r1, r11 + rsb r2, r5, #0x0 + mul r0, r2, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x4] + mov r0, r8 + bl FX_DivAsync + sub r1, r5, r4 + add r0, r7, r6 + ldrh r3, [r9, #0x2c] + ldr r2, [r9, #0x18] + sub r0, r2, r0 + mul r0, r3, r0 + mov r0, r0, lsl #0x3 + str r0, [r10, #0x30] + ldrh r2, [r9, #0x2e] + ldr r0, [r9, #0x1c] + sub r0, r1, r0 + add r0, r0, #0x2000 + mul r0, r2, r0 + mov r0, r0, lsl #0x3 + str r0, [r10, #0x34] + bl FX_GetDivResult + mul r0, r7, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BE954 + + ; _end + arm_func_start FUN_020BEA3C +FUN_020BEA3C: ; 0x020BEA3C + mov r2, #0x1000 + str r2, [r0, #0x0] + str r2, [r0, #0x14] + mov r12, #0x0 + str r12, [r0, #0x4] + ldrh r2, [r1, #0x2c] + ldr r3, [r1, #0x24] + mul r2, r3, r2 + rsb r2, r2, #0x0 + mov r2, r2, lsl #0x4 + str r2, [r0, #0x30] + ldrh r2, [r1, #0x2e] + ldr r1, [r1, #0x28] + mul r2, r1, r2 + mov r1, r2, lsl #0x4 + str r1, [r0, #0x34] + str r12, [r0, #0x10] + bx lr + arm_func_end FUN_020BEA3C + + ; _end + arm_func_start FUN_020BEA84 +FUN_020BEA84: ; 0x020BEA84 + stmdb sp!, {r4,lr} + ldr r3, [r1, #0x18] + mov r2, #0x0 + str r3, [r0, #0x0] + ldr r3, [r1, #0x1c] + str r3, [r0, #0x14] + str r2, [r0, #0x4] + ldr r4, [r1, #0x18] + ldr r3, [r1, #0x24] + ldrh lr, [r1, #0x2c] + smull r12, r3, r4, r3 + mov r4, r12, lsr #0x8 + orr r4, r4, r3, lsl #0x18 + rsb r3, r4, #0x0 + mul r3, lr, r3 + str r3, [r0, #0x30] + ldr r4, [r1, #0x1c] + ldr r12, [r1, #0x28] + mov r3, r4, lsl #0x1 + smull lr, r12, r4, r12 + rsb r4, r3, #0x0 + mov r3, lr, lsr #0x8 + ldrh lr, [r1, #0x2e] + add r1, r4, #0x2000 + orr r3, r3, r12, lsl #0x18 + mul r4, lr, r1 + mul r1, lr, r3 + add r1, r1, r4, lsl #0x3 + str r1, [r0, #0x34] + str r2, [r0, #0x10] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BEA84 + + ; _end + arm_func_start FUN_020BEB00 +FUN_020BEB00: ; 0x020BEB00 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + rsb r2, r2, #0x0 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrsh r2, [r5, #0x20] + ldrsh r1, [r5, #0x22] + ldrh r3, [r5, #0x2c] + ldr r0, [r5, #0x24] + add r1, r2, r1 + rsb r1, r1, #0x0 + add r1, r1, #0x1000 + mul r2, r3, r1 + mul r1, r0, r3 + mov r0, r2, lsl #0x3 + sub r0, r0, r1, lsl #0x4 + str r0, [r6, #0x30] + ldrsh r2, [r5, #0x20] + ldrsh r1, [r5, #0x22] + ldrh r3, [r5, #0x2e] + ldr r0, [r5, #0x28] + sub r1, r2, r1 + add r1, r1, #0x1000 + mul r2, r3, r1 + mul r1, r0, r3 + mov r0, r2, lsl #0x3 + add r0, r0, r1, lsl #0x4 + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BEB00 + + ; _end + arm_func_start FUN_020BEBD8 +FUN_020BEBD8: ; 0x020BEBD8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldrh r2, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + mov r10, r0 + mov r8, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r8 + bl FX_DivAsync + ldrsh r5, [r9, #0x22] + ldr r3, [r9, #0x18] + ldrsh r0, [r9, #0x20] + ldr r4, [r9, #0x1c] + smull r2, r1, r3, r5 + mov r6, r2, lsr #0xc + orr r6, r6, r1, lsl #0x14 + smull r2, r1, r3, r0 + mov r7, r2, lsr #0xc + orr r7, r7, r1, lsl #0x14 + smull r3, r2, r4, r0 + smull r1, r0, r4, r5 + mov r5, r3, lsr #0xc + orr r5, r5, r2, lsl #0x14 + mov r4, r1, lsr #0xc + orr r4, r4, r0, lsl #0x14 + str r6, [r10, #0x0] + str r4, [r10, #0x14] + bl FX_GetDivResult + mov r1, r11 + rsb r2, r5, #0x0 + mul r0, r2, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x4] + mov r0, r8 + bl FX_DivAsync + sub r1, r5, r4 + add r2, r7, r6 + ldr r5, [r9, #0x18] + ldrh r0, [r9, #0x2c] + sub r3, r5, r2 + ldr r2, [r9, #0x24] + mul r4, r0, r3 + smull r3, r2, r5, r2 + mov r4, r4, lsl #0x3 + mov r3, r3, lsr #0x8 + orr r3, r3, r2, lsl #0x18 + mul r2, r0, r3 + sub r0, r4, r2 + str r0, [r10, #0x30] + ldr r4, [r9, #0x1c] + ldrh r3, [r9, #0x2e] + sub r0, r1, r4 + add r0, r0, #0x2000 + mul r2, r3, r0 + ldr r0, [r9, #0x28] + smull r1, r0, r4, r0 + mov r1, r1, lsr #0x8 + orr r1, r1, r0, lsl #0x18 + mul r0, r3, r1 + add r0, r0, r2, lsl #0x3 + str r0, [r10, #0x34] + bl FX_GetDivResult + mul r0, r7, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BEBD8 + + ; NNSi_G3dGetJointScaleMaya + arm_func_start FUN_020BECEC +FUN_020BECEC: ; 0x020BECEC + stmdb sp!, {r4-r8,lr} + mov r12, r0 + ands r0, r3, #0x4 + ldrb r3, [r2, #0x3] + beq _020BED40 + ldr r1, [r12, #0x0] + ands r0, r3, #0x2 + orr r0, r1, #0x1 + str r0, [r12, #0x0] + beq _020BEDB8 + ldr r0, _020BEE2C ; =UNK_021CEF7C + ldrb r7, [r2, #0x1] + ldr r0, [r0, #0x0] + mov r1, #0x1 + add r6, r0, #0xc4 + mov r5, r7, lsr #0x5 + ldr r4, [r6, r5, lsl #0x2] + and r0, r7, #0x1f + orr r0, r4, r1, lsl r0 + str r0, [r6, r5, lsl #0x2] + b _020BEDB8 +_020BED40: + ldr r4, [r1, #0x0] + ands r0, r3, #0x2 + str r4, [r12, #0x4] + ldr r0, [r1, #0x4] + str r0, [r12, #0x8] + ldr r0, [r1, #0x8] + str r0, [r12, #0xc] + beq _020BEDB8 + ldr lr, _020BEE2C ; =UNK_021CEF7C + ldrb r0, [r2, #0x1] + ldr r4, [lr, #0x0] + mov lr, #0x18 + add r8, r4, #0xc4 + mov r7, r0, lsr #0x5 + and r4, r0, #0x1f + mov r5, #0x1 + mvn r4, r5, lsl r4 + ldr r6, [r8, r7, lsl #0x2] + mul r5, r0, lr + and r0, r6, r4 + str r0, [r8, r7, lsl #0x2] + ldr r4, [r1, #0xc] + ldr r0, _020BEE30 ; =UNK_021CFD8C + ldr lr, _020BEE34 ; =UNK_021CFD90 + str r4, [r0, r5] + ldr r4, [r1, #0x10] + ldr r0, _020BEE38 ; =UNK_021CFD94 + str r4, [lr, r5] + ldr r1, [r1, #0x14] + str r1, [r0, r5] +_020BEDB8: + ands r0, r3, #0x1 + beq _020BEE1C + ldrb r0, [r2, #0x2] + ldr r2, [r12, #0x0] + ldr r1, _020BEE2C ; =UNK_021CEF7C + orr r2, r2, #0x20 + str r2, [r12, #0x0] + ldr r2, [r1, #0x0] + mov r1, r0, lsr #0x5 + add r1, r2, r1, lsl #0x2 + and r2, r0, #0x1f + mov r3, #0x1 + mov r2, r3, lsl r2 + ldr r1, [r1, #0xc4] + ands r1, r2, r1 + ldrne r0, [r12, #0x0] + orrne r0, r0, #0x8 + strne r0, [r12, #0x0] + bne _020BEE1C + ldr r2, _020BEE30 ; =UNK_021CFD8C + mov r1, #0x18 + mla r1, r0, r1, r2 + add r3, r12, #0x10 + ldmia r1, {r0-r2} + stmia r3, {r0-r2} +_020BEE1C: + ldr r0, [r12, #0x0] + orr r0, r0, #0x10 + str r0, [r12, #0x0] + ldmia sp!, {r4-r8,pc} + .balign 4 +_020BEE2C: .word UNK_021CEF7C +_020BEE30: .word UNK_021CFD8C +_020BEE34: .word UNK_021CFD90 +_020BEE38: .word UNK_021CFD94 + arm_func_end FUN_020BECEC + + ; _end + arm_func_start FUN_020BEE3C +FUN_020BEE3C: ; 0x020BEE3C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r1, [r5, #0x0] + mov r4, #0x0 + ands r0, r1, #0x4 + moveq r4, #0x1 + ands r0, r1, #0x20 + beq _020BEE94 + ands r0, r1, #0x8 + bne _020BEE94 + cmp r4, #0x0 + beq _020BEE84 + add r1, r5, #0x4c + mov r0, #0x1c + mov r2, #0x3 + bl FUN_020BB1C0 + mov r4, #0x0 +_020BEE84: + add r1, r5, #0x10 + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 +_020BEE94: + ldr r0, [r5, #0x0] + ands r0, r0, #0x2 + bne _020BEED0 + cmp r4, #0x0 + beq _020BEEBC + add r1, r5, #0x28 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + b _020BEEE8 +_020BEEBC: + add r1, r5, #0x28 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + b _020BEEE8 +_020BEED0: + cmp r4, #0x0 + beq _020BEEE8 + add r1, r5, #0x4c + mov r0, #0x1c + mov r2, #0x3 + bl FUN_020BB1C0 +_020BEEE8: + ldr r0, [r5, #0x0] + ands r0, r0, #0x1 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} + add r1, r5, #0x4 + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BEE3C + diff --git a/arm9/asm/NNS_G3D_mem.s b/arm9/asm/NNS_G3D_mem.s new file mode 100644 index 000000000..97d2c2241 --- /dev/null +++ b/arm9/asm/NNS_G3D_mem.s @@ -0,0 +1,28 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G3dFreeAnmObj + arm_func_start thunk_FUN_020ae84c +thunk_FUN_020ae84c: ; 0x020BB8C4 + ldr ip, _020BB8CC ; =FUN_020AE84C + bx r12 + .balign 4 +_020BB8CC: .word FUN_020AE84C + arm_func_end thunk_FUN_020ae84c + + ; _end + arm_func_start FUN_020BB8D0 +FUN_020BB8D0: ; 0x020BB8D0 + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, r1 + mov r1, r2 + bl FUN_020B81B0 + mov r1, r0 + mov r0, r4 + bl FUN_020AE868 + ldmia sp!, {r4,pc} + arm_func_end FUN_020BB8D0 + diff --git a/arm9/asm/NNS_G3D_model.s b/arm9/asm/NNS_G3D_model.s new file mode 100644 index 000000000..437290e8a --- /dev/null +++ b/arm9/asm/NNS_G3D_model.s @@ -0,0 +1,687 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BB8F4 +FUN_020BB8F4: ; 0x020BB8F4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BB910: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBC74 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BB910 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB8F4 + + ; _end + arm_func_start FUN_020BB934 +FUN_020BB934: ; 0x020BB934 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BB950: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBCB8 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BB950 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB934 + + ; _end + arm_func_start FUN_020BB974 +FUN_020BB974: ; 0x020BB974 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BB990: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBCFC + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BB990 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB974 + + ; _end + arm_func_start FUN_020BB9B4 +FUN_020BB9B4: ; 0x020BB9B4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BB9D0: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBD40 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BB9D0 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB9B4 + + ; _end + arm_func_start FUN_020BB9F4 +FUN_020BB9F4: ; 0x020BB9F4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBA10: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBD84 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBA10 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BB9F4 + + ; _end + arm_func_start FUN_020BBA34 +FUN_020BBA34: ; 0x020BBA34 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBA50: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBDC8 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBA50 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBA34 + + ; _end + arm_func_start FUN_020BBA74 +FUN_020BBA74: ; 0x020BBA74 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBA90: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBE0C + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBA90 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBA74 + + ; _end + arm_func_start FUN_020BBAB4 +FUN_020BBAB4: ; 0x020BBAB4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBAD0: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBE50 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBAD0 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBAB4 + + ; _end + arm_func_start FUN_020BBAF4 +FUN_020BBAF4: ; 0x020BBAF4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBB10: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBE94 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBB10 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBAF4 + + ; _end + arm_func_start FUN_020BBB34 +FUN_020BBB34: ; 0x020BBB34 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBB50: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBED8 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBB50 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBB34 + + ; _end + arm_func_start FUN_020BBB74 +FUN_020BBB74: ; 0x020BBB74 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBB90: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBF1C + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBB90 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBB74 + + ; _end + arm_func_start FUN_020BBBB4 +FUN_020BBBB4: ; 0x020BBBB4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBBD0: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBF60 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBBD0 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBBB4 + + ; _end + arm_func_start FUN_020BBBF4 +FUN_020BBBF4: ; 0x020BBBF4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBC10: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBFA4 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBC10 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBBF4 + + ; _end + arm_func_start FUN_020BBC34 +FUN_020BBC34: ; 0x020BBC34 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrb r0, [r6, #0x18] + mov r5, r1 + mov r4, #0x0 + cmp r0, #0x0 + ldmlsia sp!, {r4-r6,pc} +_020BBC50: + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_020BBFE8 + ldrb r0, [r6, #0x18] + add r4, r4, #0x1 + cmp r4, r0 + blo _020BBC50 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BBC34 + + ; _end + arm_func_start FUN_020BBC74 +FUN_020BBC74: ; 0x020BBC74 + ldr r3, [r0, #0x8] + cmp r2, #0x0 + add r12, r0, r3 + ldrh r0, [r12, #0xa] + add r3, r12, #0x4 + ldrh r2, [r3, r0] + add r0, r3, r0 + mla r0, r2, r1, r0 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrne r0, [r1, #0xc] + orrne r0, r0, #0x800 + strne r0, [r1, #0xc] + ldreq r0, [r1, #0xc] + biceq r0, r0, #0x800 + streq r0, [r1, #0xc] + bx lr + arm_func_end FUN_020BBC74 + + ; _end + arm_func_start FUN_020BBCB8 +FUN_020BBCB8: ; 0x020BBCB8 + ldr r3, [r0, #0x8] + cmp r2, #0x0 + add r12, r0, r3 + ldrh r0, [r12, #0xa] + add r3, r12, #0x4 + ldrh r2, [r3, r0] + add r0, r3, r0 + mla r0, r2, r1, r0 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrne r0, [r1, #0xc] + orrne r0, r0, #0x1000 + strne r0, [r1, #0xc] + ldreq r0, [r1, #0xc] + biceq r0, r0, #0x1000 + streq r0, [r1, #0xc] + bx lr + arm_func_end FUN_020BBCB8 + + ; _end + arm_func_start FUN_020BBCFC +FUN_020BBCFC: ; 0x020BBCFC + ldr r3, [r0, #0x8] + cmp r2, #0x0 + add r12, r0, r3 + ldrh r0, [r12, #0xa] + add r3, r12, #0x4 + ldrh r2, [r3, r0] + add r0, r3, r0 + mla r0, r2, r1, r0 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrne r0, [r1, #0xc] + orrne r0, r0, #0x2000 + strne r0, [r1, #0xc] + ldreq r0, [r1, #0xc] + biceq r0, r0, #0x2000 + streq r0, [r1, #0xc] + bx lr + arm_func_end FUN_020BBCFC + + ; _end + arm_func_start FUN_020BBD40 +FUN_020BBD40: ; 0x020BBD40 + ldr r3, [r0, #0x8] + cmp r2, #0x0 + add r12, r0, r3 + ldrh r0, [r12, #0xa] + add r3, r12, #0x4 + ldrh r2, [r3, r0] + add r0, r3, r0 + mla r0, r2, r1, r0 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrne r0, [r1, #0xc] + orrne r0, r0, #0x4000 + strne r0, [r1, #0xc] + ldreq r0, [r1, #0xc] + biceq r0, r0, #0x4000 + streq r0, [r1, #0xc] + bx lr + arm_func_end FUN_020BBD40 + + ; _end + arm_func_start FUN_020BBD84 +FUN_020BBD84: ; 0x020BBD84 + ldr r3, [r0, #0x8] + cmp r2, #0x0 + add r12, r0, r3 + ldrh r0, [r12, #0xa] + add r3, r12, #0x4 + ldrh r2, [r3, r0] + add r0, r3, r0 + mla r0, r2, r1, r0 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrne r0, [r1, #0xc] + orrne r0, r0, #0x8000 + strne r0, [r1, #0xc] + ldreq r0, [r1, #0xc] + biceq r0, r0, #0x8000 + streq r0, [r1, #0xc] + bx lr + arm_func_end FUN_020BBD84 + + ; _end + arm_func_start FUN_020BBDC8 +FUN_020BBDC8: ; 0x020BBDC8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x8] + add lr, r0, r3 + ldrh r0, [lr, #0xa] + add r12, lr, #0x4 + ldrh r3, [r12, r0] + add r0, r12, r0 + mla r0, r3, r1, r0 + ldr r0, [r0, #0x4] + add r1, lr, r0 + ldr r0, [r1, #0xc] + bic r0, r0, #0x1f0000 + orr r0, r0, r2, lsl #0x10 + str r0, [r1, #0xc] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BBDC8 + + ; _end + arm_func_start FUN_020BBE0C +FUN_020BBE0C: ; 0x020BBE0C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x8] + add lr, r0, r3 + ldrh r0, [lr, #0xa] + add r12, lr, #0x4 + ldrh r3, [r12, r0] + add r0, r12, r0 + mla r0, r3, r1, r0 + ldr r0, [r0, #0x4] + add r1, lr, r0 + ldr r0, [r1, #0xc] + bic r0, r0, #0x3f000000 + orr r0, r0, r2, lsl #0x18 + str r0, [r1, #0xc] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BBE0C + + ; _end + arm_func_start FUN_020BBE50 +FUN_020BBE50: ; 0x020BBE50 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x8] + add lr, r0, r3 + ldrh r0, [lr, #0xa] + add r12, lr, #0x4 + ldrh r3, [r12, r0] + add r0, r12, r0 + mla r0, r3, r1, r0 + ldr r0, [r0, #0x4] + add r1, lr, r0 + ldr r0, [r1, #0xc] + bic r0, r0, #0xc0 + orr r0, r0, r2, lsl #0x6 + str r0, [r1, #0xc] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BBE50 + + ; _end + arm_func_start FUN_020BBE94 +FUN_020BBE94: ; 0x020BBE94 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x8] + add lr, r0, r3 + ldrh r0, [lr, #0xa] + add r12, lr, #0x4 + ldrh r3, [r12, r0] + add r0, r12, r0 + mla r0, r3, r1, r0 + ldr r0, [r0, #0x4] + add r1, lr, r0 + ldr r0, [r1, #0xc] + bic r0, r0, #0x30 + orr r0, r0, r2, lsl #0x4 + str r0, [r1, #0xc] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BBE94 + + ; _end + arm_func_start FUN_020BBED8 +FUN_020BBED8: ; 0x020BBED8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x8] + add lr, r0, r3 + ldrh r0, [lr, #0xa] + add r12, lr, #0x4 + ldrh r3, [r12, r0] + add r0, r12, r0 + mla r0, r3, r1, r0 + ldr r0, [r0, #0x4] + add r1, lr, r0 + ldr r0, [r1, #0xc] + bic r0, r0, #0xf + orr r0, r0, r2 + str r0, [r1, #0xc] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BBED8 + + ; NNS_G3dMdlSetMdlEmi + arm_func_start FUN_020BBF1C +FUN_020BBF1C: ; 0x020BBF1C + stmdb sp!, {r4,lr} + ldr r12, [r0, #0x8] + ldr r3, _020BBF5C ; =0x8000FFFF + add r4, r0, r12 + ldrh r0, [r4, #0xa] + add lr, r4, #0x4 + ldrh r12, [lr, r0] + add r0, lr, r0 + mla r0, r12, r1, r0 + ldr r0, [r0, #0x4] + add r1, r4, r0 + ldr r0, [r1, #0x8] + and r0, r0, r3 + orr r0, r0, r2, lsl #0x10 + str r0, [r1, #0x8] + ldmia sp!, {r4,pc} + .balign 4 +_020BBF5C: .word 0x8000FFFF + arm_func_end FUN_020BBF1C + + ; _end + arm_func_start FUN_020BBF60 +FUN_020BBF60: ; 0x020BBF60 + stmdb sp!, {r4,lr} + ldr r12, [r0, #0x8] + mov r3, #0x8000 + add r4, r0, r12 + ldrh r12, [r4, #0xa] + add lr, r4, #0x4 + rsb r0, r3, #0x0 + ldrh r3, [lr, r12] + add r12, lr, r12 + mla r1, r3, r1, r12 + ldr r1, [r1, #0x4] + add r3, r4, r1 + ldr r1, [r3, #0x8] + and r0, r1, r0 + orr r0, r0, r2 + str r0, [r3, #0x8] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BBF60 + + ; NNS_G3dMdlSetMdlAmb + arm_func_start FUN_020BBFA4 +FUN_020BBFA4: ; 0x020BBFA4 + stmdb sp!, {r4,lr} + ldr r12, [r0, #0x8] + ldr r3, _020BBFE4 ; =0x8000FFFF + add r4, r0, r12 + ldrh r0, [r4, #0xa] + add lr, r4, #0x4 + ldrh r12, [lr, r0] + add r0, lr, r0 + mla r0, r12, r1, r0 + ldr r0, [r0, #0x4] + add r1, r4, r0 + ldr r0, [r1, #0x4] + and r0, r0, r3 + orr r0, r0, r2, lsl #0x10 + str r0, [r1, #0x4] + ldmia sp!, {r4,pc} + .balign 4 +_020BBFE4: .word 0x8000FFFF + arm_func_end FUN_020BBFA4 + + ; _end + arm_func_start FUN_020BBFE8 +FUN_020BBFE8: ; 0x020BBFE8 + stmdb sp!, {r4,lr} + ldr r12, [r0, #0x8] + mov r3, #0x8000 + add r4, r0, r12 + ldrh r12, [r4, #0xa] + add lr, r4, #0x4 + rsb r0, r3, #0x0 + ldrh r3, [lr, r12] + add r12, lr, r12 + mla r1, r3, r1, r12 + ldr r1, [r1, #0x4] + add r3, r4, r1 + ldr r1, [r3, #0x4] + and r0, r1, r0 + orr r0, r0, r2 + str r0, [r3, #0x4] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BBFE8 + + ; _end + arm_func_start FUN_020BC02C +FUN_020BC02C: ; 0x020BC02C + stmdb sp!, {r4-r6,lr} + ldrb r4, [r0, #0x18] + ldr r3, [r0, #0x8] + mov lr, #0x0 + cmp r4, #0x0 + add r12, r0, r3 + ldmlsia sp!, {r4-r6,pc} + mvn r3, r2 + add r0, r12, #0x4 +_020BC050: + ldrh r5, [r12, #0xa] + cmp r1, #0x0 + ldrh r6, [r0, r5] + add r5, r0, r5 + mla r5, r6, lr, r5 + ldr r5, [r5, #0x4] + add lr, lr, #0x1 + add r6, r12, r5 + ldrne r5, [r6, #0x10] + orrne r5, r5, r2 + strne r5, [r6, #0x10] + ldreq r5, [r6, #0x10] + andeq r5, r5, r3 + streq r5, [r6, #0x10] + cmp lr, r4 + blo _020BC050 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BC02C + + ; _end + arm_func_start FUN_020BC094 +FUN_020BC094: ; 0x020BC094 + stmdb sp!, {r4-r6,lr} + ldrb r4, [r0, #0x18] + ldr r3, [r0, #0x8] + mov lr, #0x0 + cmp r4, #0x0 + add r12, r0, r3 + ldmlsia sp!, {r4-r6,pc} + mvn r3, r2 + add r0, r12, #0x4 +_020BC0B8: + ldrh r5, [r12, #0xa] + cmp r1, #0x0 + ldrh r6, [r0, r5] + add r5, r0, r5 + mla r5, r6, lr, r5 + ldr r5, [r5, #0x4] + add lr, lr, #0x1 + add r6, r12, r5 + ldrneh r5, [r6, #0x1e] + orrne r5, r5, r2 + strneh r5, [r6, #0x1e] + ldreqh r5, [r6, #0x1e] + andeq r5, r5, r3 + streqh r5, [r6, #0x1e] + cmp lr, r4 + blo _020BC0B8 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BC094 + diff --git a/arm9/asm/NNS_G3D_nsbca.s b/arm9/asm/NNS_G3D_nsbca.s new file mode 100644 index 000000000..b88353621 --- /dev/null +++ b/arm9/asm/NNS_G3D_nsbca.s @@ -0,0 +1,1606 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; pivotUtil_ + .global UNK_020FFA14 +UNK_020FFA14: ; 0x020FFA14 + .byte 0x04, 0x05, 0x07, 0x08 + .byte 0x03, 0x05, 0x06, 0x08 + .byte 0x03, 0x04, 0x06, 0x07 + .byte 0x01, 0x02, 0x07, 0x08 + .byte 0x00, 0x02, 0x06, 0x08 + .byte 0x00, 0x01, 0x06, 0x07 + .byte 0x01, 0x02, 0x04, 0x05 + .byte 0x00, 0x02, 0x03, 0x05 + .byte 0x00, 0x01, 0x03, 0x04 + + .section .text + + ; getRotDataByIdx_ + arm_func_start FUN_020BC500 +FUN_020BC500: ; 0x020BC500 + stmdb sp!, {r4,lr} + ands r4, r3, #0x8000 + beq _020BC5E0 + mov r2, #0x0 + str r2, [r0, #0x20] + ldr r4, [r0, #0x20] + ldr r2, _020BC684 ; =0x00007FFF + str r4, [r0, #0x1c] + ldr r4, [r0, #0x1c] + and r3, r3, r2 + str r4, [r0, #0x18] + ldr r4, [r0, #0x18] + mov r2, #0x3 + str r4, [r0, #0x14] + ldr r4, [r0, #0x14] + mul r2, r3, r2 + str r4, [r0, #0x10] + ldr r4, [r0, #0x10] + mov r3, r2, lsl #0x1 + str r4, [r0, #0xc] + ldr r4, [r0, #0xc] + add r2, r1, r2, lsl #0x1 + str r4, [r0, #0x8] + ldr r4, [r0, #0x8] + str r4, [r0, #0x4] + ldr r4, [r0, #0x4] + str r4, [r0, #0x0] + ldrsh r4, [r1, r3] + ldrsh r12, [r2, #0x2] + ldrsh r3, [r2, #0x4] + and r1, r4, #0xf + ands r4, r4, #0x10 + movne lr, #0x1000 + rsbne lr, lr, #0x0 + moveq lr, #0x1000 + str lr, [r0, r1, lsl #0x2] + ldr r4, _020BC688 ; =UNK_020FFA14 + ldr lr, _020BC68C ; =UNK_020FFA14 + 1 + ldrb r4, [r4, r1, lsl #0x2] + str r12, [r0, r4, lsl #0x2] + ldrb lr, [lr, r1, lsl #0x2] + str r3, [r0, lr, lsl #0x2] + ldrsh lr, [r2, #0x0] + ands lr, lr, #0x20 + ldr lr, _020BC690 ; =UNK_020FFA14 + 2 + rsbne r3, r3, #0x0 + ldrb lr, [lr, r1, lsl #0x2] + str r3, [r0, lr, lsl #0x2] + ldrsh r2, [r2, #0x0] + ands r2, r2, #0x40 + ldr r2, _020BC694 ; =UNK_020FFA14 + 3 + rsbne r12, r12, #0x0 + ldrb r1, [r2, r1, lsl #0x2] + str r12, [r0, r1, lsl #0x2] + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020BC5E0: + ldr r1, _020BC684 ; =0x00007FFF + mov r12, #0x5 + and r1, r3, r1 + mul r3, r1, r12 + add r1, r2, r3, lsl #0x1 + ldrsh lr, [r1, #0x8] + mov r12, r3, lsl #0x1 + mov r3, lr, asr #0x3 + str r3, [r0, #0x10] + ldrsh r12, [r2, r12] + and r2, lr, #0x7 + mov r2, r2, lsl #0x10 + mov r3, r12, asr #0x3 + str r3, [r0, #0x0] + ldrsh r3, [r1, #0x2] + and r12, r12, #0x7 + orr lr, r12, r2, asr #0xd + mov r2, r3, asr #0x3 + str r2, [r0, #0x4] + ldrsh r12, [r1, #0x4] + mov r2, lr, lsl #0x10 + and lr, r3, #0x7 + mov r3, r12, asr #0x3 + str r3, [r0, #0x8] + ldrsh r3, [r1, #0x6] + orr r1, lr, r2, asr #0xd + mov r1, r1, lsl #0x10 + and r2, r12, #0x7 + orr r1, r2, r1, asr #0xd + mov r1, r1, lsl #0x10 + and r2, r3, #0x7 + orr r1, r2, r1, asr #0xd + mov r1, r1, lsl #0x10 + mov r1, r1, asr #0x10 + mov r2, r3, asr #0x3 + mov r1, r1, lsl #0x13 + str r2, [r0, #0xc] + mov r1, r1, asr #0x13 + str r1, [r0, #0x14] + mov r0, #0x1 + ldmia sp!, {r4,pc} + .balign 4 +_020BC684: .word 0x00007FFF +_020BC688: .word UNK_020FFA14 +_020BC68C: .word UNK_020FFA14 + 1 +_020BC690: .word UNK_020FFA14 + 2 +_020BC694: .word UNK_020FFA14 + 3 + arm_func_end FUN_020BC500 + + ; getRotDataEx_ + arm_func_start FUN_020BC698 +FUN_020BC698: ; 0x020BC698 + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x48 + ldrh r4, [r3, #0x4] + ldr r5, [r3, #0xc] + ldr r8, [r3, #0x10] + ldr r7, [r2, #0x4] + mov r12, r1, asr #0xc + sub r4, r4, #0x1 + mov r6, r0 + cmp r12, r4 + add r5, r3, r5 + add r4, r3, r8 + add r8, r3, r7 + ldr r7, [r2, #0x0] + bne _020BC780 + ands r0, r7, #0xc0000000 + beq _020BC6F0 + ands r0, r7, #0x40000000 + andne r0, r12, #0x1 + addne r12, r0, r12, lsr #0x1 + andeq r0, r12, #0x3 + addeq r12, r0, r12, lsr #0x2 +_020BC6F0: + ldr r0, [r3, #0x8] + ands r0, r0, #0x2 + movne r7, #0x0 + bne _020BC7F4 + mov r0, r12, lsl #0x1 + ldrh r3, [r8, r0] + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + cmp r0, #0x0 + addeq sp, sp, #0x48 + ldmeqia sp!, {r4-r10,pc} + ldr r9, [r6, #0x14] + ldr r5, [r6, #0x4] + ldr r4, [r6, #0x10] + ldr r2, [r6, #0x8] + mul r1, r5, r9 + mul r0, r2, r4 + sub r0, r1, r0 + ldr r7, [r6, #0xc] + ldr r8, [r6, #0x0] + mov r3, r0, asr #0xc + mul r1, r2, r7 + mul r0, r8, r9 + sub r2, r1, r0 + mul r1, r8, r4 + mul r0, r5, r7 + sub r0, r1, r0 + str r3, [r6, #0x18] + mov r1, r2, asr #0xc + str r1, [r6, #0x1c] + mov r0, r0, asr #0xc + add sp, sp, #0x48 + str r0, [r6, #0x20] + ldmia sp!, {r4-r10,pc} +_020BC780: + ands r0, r7, #0xc0000000 + beq _020BC7F0 + ldr r0, _020BC9C4 ; =0x1FFF0000 + ands r2, r7, #0x40000000 + and r0, r7, r0 + mov r0, r0, lsr #0x10 + beq _020BC7C4 + cmp r12, r0 + movcs r12, r0, lsr #0x1 + addcs r7, r12, #0x1 + bhs _020BC7F4 + ldr r0, _020BC9C8 ; =0x00001FFF + mov r12, r12, lsr #0x1 + add r7, r12, #0x1 + and r10, r1, r0 + mov r9, #0x2 + b _020BC800 +_020BC7C4: + cmp r12, r0 + andcs r0, r12, #0x3 + addcs r12, r0, r12, lsr #0x2 + addcs r7, r12, #0x1 + bhs _020BC7F4 + ldr r0, _020BC9CC ; =0x00003FFF + mov r12, r12, lsr #0x2 + add r7, r12, #0x1 + and r10, r1, r0 + mov r9, #0x4 + b _020BC800 +_020BC7F0: + add r7, r12, #0x1 +_020BC7F4: + ldr r0, _020BC9D0 ; =0x00000FFF + mov r9, #0x1 + and r10, r1, r0 +_020BC800: + mov r0, r12, lsl #0x1 + ldrh r3, [r8, r0] + add r0, sp, #0x0 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + mov r1, r7, lsl #0x1 + ldrh r3, [r8, r1] + orr r7, r0, #0x0 + add r0, sp, #0x24 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + ldr r3, [sp, #0x0] + ldr r1, [sp, #0x24] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0x0] + ldr r3, [sp, #0x4] + ldr r1, [sp, #0x28] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0x4] + ldr r3, [sp, #0x8] + ldr r1, [sp, #0x2c] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0x8] + ldr r3, [sp, #0xc] + ldr r1, [sp, #0x30] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0xc] + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x34] + orr r7, r7, r0 + sub r0, r1, r2 + mul r1, r2, r9 + mul r0, r10, r0 + add r0, r1, r0, asr #0xc + str r0, [r6, #0x10] + ldr r2, [sp, #0x14] + ldr r0, [sp, #0x38] + mul r1, r2, r9 + sub r0, r0, r2 + mul r0, r10, r0 + add r2, r1, r0, asr #0xc + mov r0, r6 + mov r1, r6 + str r2, [r6, #0x14] + bl VEC_Normalize + add r0, r6, #0xc + mov r1, r0 + bl VEC_Normalize + cmp r7, #0x0 + bne _020BC968 + ldr r3, [sp, #0x18] + ldr r1, [sp, #0x3c] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0x18] + ldr r3, [sp, #0x1c] + ldr r1, [sp, #0x40] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r1, r2, r1, asr #0xc + str r1, [r6, #0x1c] + ldr r3, [sp, #0x20] + ldr r1, [sp, #0x44] + mul r2, r3, r9 + sub r1, r1, r3 + mul r1, r10, r1 + add r2, r2, r1, asr #0xc + add r0, r6, #0x18 + mov r1, r0 + str r2, [r6, #0x20] + bl VEC_Normalize + add sp, sp, #0x48 + ldmia sp!, {r4-r10,pc} +_020BC968: + ldr r9, [r6, #0x14] + ldr r5, [r6, #0x4] + ldr r8, [r6, #0x0] + ldr r4, [r6, #0x10] + ldr r2, [r6, #0x8] + ldr r7, [r6, #0xc] + mul r1, r5, r9 + mul r0, r2, r4 + sub r0, r1, r0 + mov r3, r0, asr #0xc + mul r1, r2, r7 + mul r0, r8, r9 + sub r2, r1, r0 + mul r1, r8, r4 + mul r0, r5, r7 + sub r0, r1, r0 + str r3, [r6, #0x18] + mov r1, r2, asr #0xc + str r1, [r6, #0x1c] + mov r0, r0, asr #0xc + str r0, [r6, #0x20] + add sp, sp, #0x48 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020BC9C4: .word 0x1FFF0000 +_020BC9C8: .word 0x00001FFF +_020BC9CC: .word 0x00003FFF +_020BC9D0: .word 0x00000FFF + arm_func_end FUN_020BC698 + + ; getRotData_ + arm_func_start FUN_020BC9D4 +FUN_020BC9D4: ; 0x020BC9D4 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4c + ldr r5, [r3, #0xc] + ldr r4, [r3, #0x10] + ldr r12, [r2, #0x0] + ldr r2, [r2, #0x4] + mov r6, r0 + mov r0, r1, asr #0xc + add r5, r3, r5 + add r4, r3, r4 + add r8, r3, r2 + ands r1, r12, #0xc0000000 + beq _020BCD40 + ldr r1, _020BCDC0 ; =0x1FFF0000 + ands r2, r12, #0x40000000 + and r1, r12, r1 + mov r2, r1, lsr #0x10 + beq _020BCA44 + ands r1, r0, #0x1 + beq _020BCA3C + cmp r0, r2 + movhi r0, r2, lsr #0x1 + addhi r0, r0, #0x1 + bhi _020BCD40 + mov r7, r0, lsr #0x1 + b _020BCBE8 +_020BCA3C: + mov r0, r0, lsr #0x1 + b _020BCD40 +_020BCA44: + ands r1, r0, #0x3 + beq _020BCBE0 + cmp r0, r2 + addhi r0, r1, r2, lsr #0x2 + bhi _020BCD40 + ands r1, r0, #0x1 + beq _020BCBD8 + ands r1, r0, #0x2 + movne r9, r0, lsr #0x2 + addne r0, r9, #0x1 + moveq r0, r0, lsr #0x2 + addeq r9, r0, #0x1 + mov r0, r0, lsl #0x1 + ldrh r3, [r8, r0] + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r7, #0x0 + bl FUN_020BC500 + mov r1, r9, lsl #0x1 + ldrh r3, [r8, r1] + orr r7, r7, r0 + add r0, sp, #0x0 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + ldr r3, [sp, #0x0] + ldr r1, [r6, #0x0] + mov r2, #0x3 + mla r3, r1, r2, r3 + str r3, [r6, #0x0] + ldr r3, [sp, #0x4] + ldr r1, [r6, #0x4] + orr r7, r7, r0 + mla r0, r1, r2, r3 + str r0, [r6, #0x4] + ldr r3, [sp, #0x8] + ldr r1, [r6, #0x8] + mov r0, r6 + mla r3, r1, r2, r3 + str r3, [r6, #0x8] + ldr r4, [sp, #0xc] + ldr r3, [r6, #0xc] + mov r1, r6 + mla r4, r3, r2, r4 + str r4, [r6, #0xc] + ldr r4, [sp, #0x10] + ldr r3, [r6, #0x10] + mla r4, r3, r2, r4 + str r4, [r6, #0x10] + ldr r4, [sp, #0x14] + ldr r3, [r6, #0x14] + mla r2, r3, r2, r4 + str r2, [r6, #0x14] + bl VEC_Normalize + add r0, r6, #0xc + mov r1, r0 + bl VEC_Normalize + cmp r7, #0x0 + bne _020BCB7C + ldr r1, [sp, #0x18] + ldr r0, [r6, #0x18] + mov r2, #0x3 + mla r1, r0, r2, r1 + str r1, [r6, #0x18] + ldr r3, [sp, #0x1c] + ldr r1, [r6, #0x1c] + add r0, r6, #0x18 + mla r3, r1, r2, r3 + str r3, [r6, #0x1c] + ldr r4, [sp, #0x20] + ldr r3, [r6, #0x20] + mov r1, r0 + mla r2, r3, r2, r4 + str r2, [r6, #0x20] + bl VEC_Normalize + add sp, sp, #0x4c + ldmia sp!, {r4-r9,pc} +_020BCB7C: + ldr r12, [r6, #0x14] + ldr r5, [r6, #0x4] + ldr r4, [r6, #0x10] + ldr r2, [r6, #0x8] + mul r1, r5, r12 + mul r0, r2, r4 + sub r0, r1, r0 + ldr r7, [r6, #0xc] + ldr r8, [r6, #0x0] + mov r3, r0, asr #0xc + mul r1, r2, r7 + mul r0, r8, r12 + sub r2, r1, r0 + mul r1, r8, r4 + mul r0, r5, r7 + sub r0, r1, r0 + str r3, [r6, #0x18] + mov r1, r2, asr #0xc + str r1, [r6, #0x1c] + mov r0, r0, asr #0xc + add sp, sp, #0x4c + str r0, [r6, #0x20] + ldmia sp!, {r4-r9,pc} +_020BCBD8: + mov r7, r0, lsr #0x2 + b _020BCBE8 +_020BCBE0: + mov r0, r0, lsr #0x2 + b _020BCD40 +_020BCBE8: + mov r0, r7, lsl #0x1 + ldrh r3, [r8, r0] + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + add r1, r8, r7, lsl #0x1 + ldrh r3, [r1, #0x2] + orr r7, r0, #0x0 + add r0, sp, #0x24 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + ldr r2, [r6, #0x0] + ldr r1, [sp, #0x24] + orr r7, r7, r0 + add r0, r2, r1 + str r0, [r6, #0x0] + ldr r2, [r6, #0x4] + ldr r1, [sp, #0x28] + mov r0, r6 + add r1, r2, r1 + str r1, [r6, #0x4] + ldr r3, [r6, #0x8] + ldr r2, [sp, #0x2c] + mov r1, r6 + add r2, r3, r2 + str r2, [r6, #0x8] + ldr r3, [r6, #0xc] + ldr r2, [sp, #0x30] + add r2, r3, r2 + str r2, [r6, #0xc] + ldr r3, [r6, #0x10] + ldr r2, [sp, #0x34] + add r2, r3, r2 + str r2, [r6, #0x10] + ldr r3, [r6, #0x14] + ldr r2, [sp, #0x38] + add r2, r3, r2 + str r2, [r6, #0x14] + bl VEC_Normalize + add r0, r6, #0xc + mov r1, r0 + bl VEC_Normalize + cmp r7, #0x0 + bne _020BCCE4 + ldr r2, [r6, #0x18] + ldr r1, [sp, #0x3c] + add r0, r6, #0x18 + add r1, r2, r1 + str r1, [r6, #0x18] + ldr r3, [r6, #0x1c] + ldr r2, [sp, #0x40] + mov r1, r0 + add r2, r3, r2 + str r2, [r6, #0x1c] + ldr r3, [r6, #0x20] + ldr r2, [sp, #0x44] + add r2, r3, r2 + str r2, [r6, #0x20] + bl VEC_Normalize + add sp, sp, #0x4c + ldmia sp!, {r4-r9,pc} +_020BCCE4: + ldr r12, [r6, #0x14] + ldr r5, [r6, #0x4] + ldr r4, [r6, #0x10] + ldr r2, [r6, #0x8] + mul r1, r5, r12 + mul r0, r2, r4 + sub r0, r1, r0 + ldr r7, [r6, #0xc] + ldr r8, [r6, #0x0] + mov r3, r0, asr #0xc + mul r1, r2, r7 + mul r0, r8, r12 + sub r2, r1, r0 + mul r1, r8, r4 + mul r0, r5, r7 + sub r0, r1, r0 + str r3, [r6, #0x18] + mov r1, r2, asr #0xc + str r1, [r6, #0x1c] + mov r0, r0, asr #0xc + add sp, sp, #0x4c + str r0, [r6, #0x20] + ldmia sp!, {r4-r9,pc} +_020BCD40: + mov r0, r0, lsl #0x1 + ldrh r3, [r8, r0] + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020BC500 + cmp r0, #0x0 + addeq sp, sp, #0x4c + ldmeqia sp!, {r4-r9,pc} + ldr r12, [r6, #0x14] + ldr r5, [r6, #0x4] + ldr r8, [r6, #0x0] + ldr r4, [r6, #0x10] + ldr r2, [r6, #0x8] + ldr r7, [r6, #0xc] + mul r1, r5, r12 + mul r0, r2, r4 + sub r0, r1, r0 + mov r3, r0, asr #0xc + mul r1, r2, r7 + mul r0, r8, r12 + sub r2, r1, r0 + mul r1, r8, r4 + mul r0, r5, r7 + sub r0, r1, r0 + str r3, [r6, #0x18] + mov r1, r2, asr #0xc + str r1, [r6, #0x1c] + mov r0, r0, asr #0xc + str r0, [r6, #0x20] + add sp, sp, #0x4c + ldmia sp!, {r4-r9,pc} + .balign 4 +_020BCDC0: .word 0x1FFF0000 + arm_func_end FUN_020BC9D4 + + ; getScaleDataEx_ + arm_func_start FUN_020BCDC4 +FUN_020BCDC4: ; 0x020BCDC4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldrh r4, [r3, #0x4] + ldr r6, [r2, #0x4] + mov r5, r1, asr #0xc + sub r4, r4, #0x1 + cmp r5, r4 + add r6, r3, r6 + ldr r2, [r2, #0x0] + bne _020BCE58 + ands r4, r2, #0xc0000000 + beq _020BCE08 + ands r4, r2, #0x40000000 + andne r4, r5, #0x1 + addne r5, r4, r5, lsr #0x1 + andeq r4, r5, #0x3 + addeq r5, r4, r5, lsr #0x2 +_020BCE08: + ldr r3, [r3, #0x8] + ands r3, r3, #0x2 + movne r4, #0x0 + bne _020BCED4 + ands r1, r2, #0x20000000 + ldreq r2, [r6, r5, lsl #0x3] + addeq r1, r6, r5, lsl #0x3 + streq r2, [r0, #0x0] + ldreq r1, [r1, #0x4] + addeq sp, sp, #0x4 + streq r1, [r0, #0x4] + ldmeqia sp!, {r4-r7,pc} + mov r1, r5, lsl #0x2 + ldrsh r2, [r6, r1] + add r1, r6, r5, lsl #0x2 + add sp, sp, #0x4 + str r2, [r0, #0x0] + ldrsh r1, [r1, #0x2] + str r1, [r0, #0x4] + ldmia sp!, {r4-r7,pc} +_020BCE58: + ands r3, r2, #0xc0000000 + beq _020BCED0 + ldr r3, _020BCF60 ; =0x1FFF0000 + ands r4, r2, #0x40000000 + and r3, r2, r3 + mov r3, r3, lsr #0x10 + beq _020BCEA0 + cmp r5, r3 + movcs r5, r3, lsr #0x1 + addcs r4, r5, #0x1 + bhs _020BCED4 + ldr r3, _020BCF64 ; =0x00001FFF + mov r5, r5, lsr #0x1 + add r4, r5, #0x1 + and lr, r1, r3 + mov r12, #0x2 + mov r3, #0x1 + b _020BCEE4 +_020BCEA0: + cmp r5, r3 + andcs r3, r5, #0x3 + addcs r5, r3, r5, lsr #0x2 + addcs r4, r5, #0x1 + bhs _020BCED4 + ldr r3, _020BCF68 ; =0x00003FFF + mov r5, r5, lsr #0x2 + add r4, r5, #0x1 + and lr, r1, r3 + mov r12, #0x4 + mov r3, #0x2 + b _020BCEE4 +_020BCED0: + add r4, r5, #0x1 +_020BCED4: + ldr r3, _020BCF6C ; =0x00000FFF + mov r12, #0x1 + and lr, r1, r3 + mov r3, #0x0 +_020BCEE4: + ands r1, r2, #0x20000000 + beq _020BCF10 + mov r2, r5, lsl #0x2 + add r1, r6, r5, lsl #0x2 + mov r5, r4, lsl #0x2 + add r4, r6, r4, lsl #0x2 + ldrsh r2, [r6, r2] + ldrsh r1, [r1, #0x2] + ldrsh r5, [r6, r5] + ldrsh r4, [r4, #0x2] + b _020BCF28 +_020BCF10: + add r1, r6, r5, lsl #0x3 + add r7, r6, r4, lsl #0x3 + ldr r2, [r6, r5, lsl #0x3] + ldr r1, [r1, #0x4] + ldr r5, [r6, r4, lsl #0x3] + ldr r4, [r7, #0x4] +_020BCF28: + sub r5, r5, r2 + sub r4, r4, r1 + mul r6, r2, r12 + mul r2, lr, r5 + add r2, r6, r2, asr #0xc + mov r5, r2, asr r3 + mul r2, r1, r12 + mul r1, lr, r4 + add r1, r2, r1, asr #0xc + mov r1, r1, asr r3 + str r5, [r0, #0x0] + str r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020BCF60: .word 0x1FFF0000 +_020BCF64: .word 0x00001FFF +_020BCF68: .word 0x00003FFF +_020BCF6C: .word 0x00000FFF + arm_func_end FUN_020BCDC4 + + ; getScaleData_ + arm_func_start FUN_020BCF70 +FUN_020BCF70: ; 0x020BCF70 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r4, [r2, #0x4] + ldr r12, [r2, #0x0] + mov r1, r1, asr #0xc + add r3, r3, r4 + ands r2, r12, #0xc0000000 + beq _020BD0D0 + ldr r2, _020BD184 ; =0x1FFF0000 + ands r4, r12, #0x40000000 + and r2, r12, r2 + mov r4, r2, lsr #0x10 + beq _020BCFCC + ands r2, r1, #0x1 + beq _020BCFC4 + cmp r1, r4 + movhi r1, r4, lsr #0x1 + addhi r1, r1, #0x1 + bhi _020BD0D0 + mov r2, r1, lsr #0x1 + b _020BD110 +_020BCFC4: + mov r1, r1, lsr #0x1 + b _020BD0D0 +_020BCFCC: + ands r2, r1, #0x3 + beq _020BD0CC + cmp r1, r4 + addhi r1, r2, r4, lsr #0x2 + bhi _020BD0D0 + ands r2, r1, #0x1 + beq _020BD0C4 + ands r2, r1, #0x2 + movne r1, r1, lsr #0x2 + addne r2, r1, #0x1 + moveq r2, r1, lsr #0x2 + addeq r1, r2, #0x1 + ands r4, r12, #0x20000000 + beq _020BD04C + mov r5, r2, lsl #0x2 + mov r4, r1, lsl #0x2 + ldrsh r12, [r3, r5] + ldrsh r5, [r3, r4] + add r2, r3, r2, lsl #0x2 + add r4, r12, r12, lsl #0x1 + add r4, r5, r4 + mov r4, r4, asr #0x2 + str r4, [r0, #0x0] + add r1, r3, r1, lsl #0x2 + ldrsh r3, [r2, #0x2] + ldrsh r2, [r1, #0x2] + add sp, sp, #0x4 + add r1, r3, r3, lsl #0x1 + add r1, r2, r1 + mov r1, r1, asr #0x2 + str r1, [r0, #0x4] + ldmia sp!, {r4-r5,pc} +_020BD04C: + ldr r5, [r3, r2, lsl #0x3] + ldr r4, [r3, r1, lsl #0x3] + mov r12, r5, asr #0x1f + mov r12, r12, lsl #0x1 + mov lr, r5, lsl #0x1 + orr r12, r12, r5, lsr #0x1f + adds lr, lr, r5 + adc r12, r12, r5, asr #0x1f + adds lr, lr, r4 + adc r12, r12, r4, asr #0x1f + mov lr, lr, lsr #0x2 + orr lr, lr, r12, lsl #0x1e + str lr, [r0, #0x0] + add r2, r3, r2, lsl #0x3 + ldr r12, [r2, #0x4] + add r1, r3, r1, lsl #0x3 + mov r2, r12, asr #0x1f + mov r2, r2, lsl #0x1 + mov r3, r12, lsl #0x1 + ldr r1, [r1, #0x4] + orr r2, r2, r12, lsr #0x1f + adds r3, r3, r12 + adc r2, r2, r12, asr #0x1f + adds r3, r3, r1 + adc r1, r2, r1, asr #0x1f + mov r2, r3, lsr #0x2 + orr r2, r2, r1, lsl #0x1e + str r2, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020BD0C4: + mov r2, r1, lsr #0x2 + b _020BD110 +_020BD0CC: + mov r1, r1, lsr #0x2 +_020BD0D0: + ands r2, r12, #0x20000000 + ldreq r2, [r3, r1, lsl #0x3] + addeq r1, r3, r1, lsl #0x3 + streq r2, [r0, #0x0] + ldreq r1, [r1, #0x4] + addeq sp, sp, #0x4 + streq r1, [r0, #0x4] + ldmeqia sp!, {r4-r5,pc} + mov r2, r1, lsl #0x2 + ldrsh r2, [r3, r2] + add r1, r3, r1, lsl #0x2 + add sp, sp, #0x4 + str r2, [r0, #0x0] + ldrsh r1, [r1, #0x2] + str r1, [r0, #0x4] + ldmia sp!, {r4-r5,pc} +_020BD110: + ands r1, r12, #0x20000000 + beq _020BD150 + mov r1, r2, lsl #0x2 + add r12, r3, r2, lsl #0x2 + ldrsh r2, [r3, r1] + ldrsh r1, [r12, #0x4] + add sp, sp, #0x4 + add r1, r2, r1 + mov r1, r1, asr #0x1 + str r1, [r0, #0x0] + ldrsh r2, [r12, #0x2] + ldrsh r1, [r12, #0x6] + add r1, r2, r1 + mov r1, r1, asr #0x1 + str r1, [r0, #0x4] + ldmia sp!, {r4-r5,pc} +_020BD150: + add r12, r3, r2, lsl #0x3 + ldr r2, [r3, r2, lsl #0x3] + ldr r1, [r12, #0x8] + add r1, r2, r1 + mov r1, r1, asr #0x1 + str r1, [r0, #0x0] + ldr r2, [r12, #0x4] + ldr r1, [r12, #0xc] + add r1, r2, r1 + mov r1, r1, asr #0x1 + str r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BD184: .word 0x1FFF0000 + arm_func_end FUN_020BCF70 + + ; getTransDataEx_ + arm_func_start FUN_020BD188 +FUN_020BD188: ; 0x020BD188 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldrh r4, [r3, #0x4] + ldr lr, [r2, #0x4] + mov r12, r1, asr #0xc + sub r4, r4, #0x1 + cmp r12, r4 + add r4, r3, lr + ldr lr, [r2, #0x0] + bne _020BD230 + ands r2, lr, #0xc0000000 + beq _020BD1CC + ands r2, lr, #0x40000000 + andne r2, r12, #0x1 + addne r12, r2, r12, lsr #0x1 + andeq r2, r12, #0x3 + addeq r12, r2, r12, lsr #0x2 +_020BD1CC: + ldr r2, [r3, #0x8] + ands r2, r2, #0x2 + beq _020BD210 + ldr r2, _020BD2E8 ; =0x00000FFF + ands r3, lr, #0x20000000 + and r3, r1, r2 + movne r1, r12, lsl #0x1 + ldrnesh r2, [r4, r1] + ldrnesh r1, [r4, #0x0] + add sp, sp, #0x4 + ldreq r2, [r4, r12, lsl #0x2] + ldreq r1, [r4, #0x0] + sub r1, r1, r2 + mul r1, r3, r1 + add r1, r2, r1, asr #0xc + str r1, [r0, #0x0] + ldmia sp!, {r4-r5,pc} +_020BD210: + ands r1, lr, #0x20000000 + movne r1, r12, lsl #0x1 + ldrnesh r1, [r4, r1] + add sp, sp, #0x4 + strne r1, [r0, #0x0] + ldreq r1, [r4, r12, lsl #0x2] + streq r1, [r0, #0x0] + ldmia sp!, {r4-r5,pc} +_020BD230: + ands r2, lr, #0xc0000000 + beq _020BD298 + ldr r2, _020BD2EC ; =0x1FFF0000 + ands r3, lr, #0x40000000 + and r2, lr, r2 + mov r2, r2, lsr #0x10 + beq _020BD270 + cmp r12, r2 + movcs r12, r2, lsr #0x1 + bhs _020BD298 + ldr r2, _020BD2F0 ; =0x00001FFF + mov r12, r12, lsr #0x1 + and r5, r1, r2 + mov r2, #0x2 + mov r1, #0x1 + b _020BD2A8 +_020BD270: + cmp r12, r2 + andcs r2, r12, #0x3 + addcs r12, r2, r12, lsr #0x2 + bhs _020BD298 + ldr r2, _020BD2F4 ; =0x00003FFF + mov r12, r12, lsr #0x2 + and r5, r1, r2 + mov r2, #0x4 + mov r1, #0x2 + b _020BD2A8 +_020BD298: + ldr r3, _020BD2E8 ; =0x00000FFF + mov r2, #0x1 + and r5, r1, r3 + mov r1, #0x0 +_020BD2A8: + ands r3, lr, #0x20000000 + addne r3, r4, r12, lsl #0x1 + movne lr, r12, lsl #0x1 + ldrnesh r12, [r4, lr] + ldrnesh r3, [r3, #0x2] + addeq r3, r4, r12, lsl #0x2 + ldreq r12, [r4, r12, lsl #0x2] + ldreq r3, [r3, #0x4] + mul r4, r12, r2 + sub r3, r3, r12 + mul r2, r5, r3 + add r2, r4, r2, asr #0xc + mov r1, r2, asr r1 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BD2E8: .word 0x00000FFF +_020BD2EC: .word 0x1FFF0000 +_020BD2F0: .word 0x00001FFF +_020BD2F4: .word 0x00003FFF + arm_func_end FUN_020BD188 + + ; getTransData_ + arm_func_start FUN_020BD2F8 +FUN_020BD2F8: ; 0x020BD2F8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r12, [r2, #0x4] + ldr r2, [r2, #0x0] + mov r1, r1, asr #0xc + add r3, r3, r12 + ands r12, r2, #0xc0000000 + beq _020BD44C + ldr ip, _020BD46C ; =0x1FFF0000 + ands lr, r2, #0x40000000 + and r12, r2, r12 + mov lr, r12, lsr #0x10 + beq _020BD354 + ands r12, r1, #0x1 + beq _020BD34C + cmp r1, lr + movhi r1, lr, lsr #0x1 + addhi r1, r1, #0x1 + bhi _020BD44C + mov r12, r1, lsr #0x1 + b _020BD400 +_020BD34C: + mov r1, r1, lsr #0x1 + b _020BD44C +_020BD354: + ands r12, r1, #0x3 + beq _020BD3F8 + cmp r1, lr + addhi r1, r12, lr, lsr #0x2 + bhi _020BD44C + ands r12, r1, #0x1 + beq _020BD3F0 + ands r12, r1, #0x2 + movne lr, r1, lsr #0x2 + addne r12, lr, #0x1 + moveq r12, r1, lsr #0x2 + addeq lr, r12, #0x1 + ands r1, r2, #0x20000000 + beq _020BD3B4 + mov r2, r12, lsl #0x1 + mov r1, lr, lsl #0x1 + ldrsh r12, [r3, r2] + ldrsh r2, [r3, r1] + mov r1, #0x3 + add sp, sp, #0x4 + smlabb r1, r12, r1, r2 + mov r1, r1, asr #0x2 + str r1, [r0, #0x0] + ldmia sp!, {pc} +_020BD3B4: + ldr r12, [r3, r12, lsl #0x2] + ldr r1, [r3, lr, lsl #0x2] + mov r2, r12, asr #0x1f + mov r2, r2, lsl #0x1 + mov r3, r12, lsl #0x1 + orr r2, r2, r12, lsr #0x1f + adds r3, r3, r12 + adc r2, r2, r12, asr #0x1f + adds r3, r3, r1 + adc r1, r2, r1, asr #0x1f + mov r2, r3, lsr #0x2 + orr r2, r2, r1, lsl #0x1e + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} +_020BD3F0: + mov r12, r1, lsr #0x2 + b _020BD400 +_020BD3F8: + mov r1, r1, lsr #0x2 + b _020BD44C +_020BD400: + ands r1, r2, #0x20000000 + beq _020BD42C + mov r2, r12, lsl #0x1 + add r1, r3, r12, lsl #0x1 + ldrsh r2, [r3, r2] + ldrsh r1, [r1, #0x2] + add sp, sp, #0x4 + add r1, r2, r1 + mov r1, r1, asr #0x1 + str r1, [r0, #0x0] + ldmia sp!, {pc} +_020BD42C: + add r1, r3, r12, lsl #0x2 + ldr r2, [r3, r12, lsl #0x2] + ldr r1, [r1, #0x4] + mov r2, r2, asr #0x1 + add r1, r2, r1, asr #0x1 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} +_020BD44C: + ands r2, r2, #0x20000000 + movne r1, r1, lsl #0x1 + ldrnesh r1, [r3, r1] + strne r1, [r0, #0x0] + ldreq r1, [r3, r1, lsl #0x2] + streq r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020BD46C: .word 0x1FFF0000 + arm_func_end FUN_020BD2F8 + + ; getJntSRTAnmResult_ + arm_func_start FUN_020BD470 +FUN_020BD470: ; 0x020BD470 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + mov r9, r0 + add r0, r9, r1, lsl #0x1 + ldrh r0, [r0, #0x14] + mov r7, r3 + mov r8, r2 + ldr r5, [r9, r0] + add r1, r9, r0 + ands r0, r5, #0x1 + movne r0, #0x7 + strne r0, [r7, #0x0] + bne _020BD814 + ldr r0, _020BD848 ; =0x00000FFF + add r4, r1, #0x4 + ands r0, r8, r0 + beq _020BD4C4 + ldr r0, [r9, #0x8] + ands r0, r0, #0x1 + movne r6, #0x1 + bne _020BD4C8 +_020BD4C4: + mov r6, #0x0 +_020BD4C8: + mov r0, #0x0 + str r0, [r7, #0x0] + ands r0, r5, #0x6 + bne _020BD5C0 + ands r0, r5, #0x8 + bne _020BD51C + cmp r6, #0x0 + beq _020BD500 + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x4c + bl FUN_020BD188 + b _020BD514 +_020BD500: + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x4c + bl FUN_020BD2F8 +_020BD514: + add r4, r4, #0x8 + b _020BD524 +_020BD51C: + ldr r0, [r4], #0x4 + str r0, [r7, #0x4c] +_020BD524: + ands r0, r5, #0x10 + bne _020BD568 + cmp r6, #0x0 + beq _020BD54C + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x50 + bl FUN_020BD188 + b _020BD560 +_020BD54C: + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x50 + bl FUN_020BD2F8 +_020BD560: + add r4, r4, #0x8 + b _020BD570 +_020BD568: + ldr r0, [r4], #0x4 + str r0, [r7, #0x50] +_020BD570: + ands r0, r5, #0x20 + bne _020BD5B4 + cmp r6, #0x0 + beq _020BD598 + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x54 + bl FUN_020BD188 + b _020BD5AC +_020BD598: + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x54 + bl FUN_020BD2F8 +_020BD5AC: + add r4, r4, #0x8 + b _020BD5DC +_020BD5B4: + ldr r0, [r4], #0x4 + str r0, [r7, #0x54] + b _020BD5DC +_020BD5C0: + ands r0, r5, #0x2 + ldrne r0, [r7, #0x0] + orrne r0, r0, #0x4 + strne r0, [r7, #0x0] + bne _020BD5DC + mov r0, r7 + bl FUN_020BDA08 +_020BD5DC: + ands r0, r5, #0xc0 + bne _020BD6A8 + ands r0, r5, #0x100 + bne _020BD628 + cmp r6, #0x0 + beq _020BD60C + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x28 + bl FUN_020BC698 + b _020BD620 +_020BD60C: + mov r1, r8 + mov r2, r4 + mov r3, r9 + add r0, r7, #0x28 + bl FUN_020BC9D4 +_020BD620: + add r4, r4, #0x8 + b _020BD6C4 +_020BD628: + ldr r1, [r9, #0xc] + ldr r2, [r9, #0x10] + ldr r3, [r4, #0x0] + add r0, r7, #0x28 + add r1, r9, r1 + add r2, r9, r2 + bl FUN_020BC500 + cmp r0, #0x0 + beq _020BD6A0 + ldr r12, [r7, #0x3c] + ldr r0, [r7, #0x2c] + ldr r3, [r7, #0x28] + ldr r11, [r7, #0x38] + ldr r1, [r7, #0x30] + ldr r2, [r7, #0x34] + mul r10, r0, r12 + mul lr, r1, r11 + sub r10, r10, lr + mov r10, r10, asr #0xc + mul lr, r1, r2 + mul r1, r3, r12 + sub r1, lr, r1 + mul r11, r3, r11 + mul r2, r0, r2 + sub r0, r11, r2 + str r10, [r7, #0x40] + mov r1, r1, asr #0xc + str r1, [r7, #0x44] + mov r0, r0, asr #0xc + str r0, [r7, #0x48] +_020BD6A0: + add r4, r4, #0x4 + b _020BD6C4 +_020BD6A8: + ands r0, r5, #0x40 + ldrne r0, [r7, #0x0] + orrne r0, r0, #0x2 + strne r0, [r7, #0x0] + bne _020BD6C4 + mov r0, r7 + bl FUN_020BD850 +_020BD6C4: + ands r0, r5, #0x600 + bne _020BD7F0 + ands r0, r5, #0x800 + bne _020BD71C + cmp r6, #0x0 + beq _020BD6F4 + add r0, sp, #0x0 + mov r1, r8 + mov r2, r4 + mov r3, r9 + bl FUN_020BCDC4 + b _020BD708 +_020BD6F4: + add r0, sp, #0x0 + mov r1, r8 + mov r2, r4 + mov r3, r9 + bl FUN_020BCF70 +_020BD708: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x4] + str r1, [sp, #0x18] + str r0, [sp, #0x24] + b _020BD72C +_020BD71C: + ldr r0, [r4, #0x0] + str r0, [sp, #0x18] + ldr r0, [r4, #0x4] + str r0, [sp, #0x24] +_020BD72C: + ands r0, r5, #0x1000 + bne _020BD77C + cmp r6, #0x0 + beq _020BD754 + add r0, sp, #0x8 + mov r1, r8 + mov r3, r9 + add r2, r4, #0x8 + bl FUN_020BCDC4 + b _020BD768 +_020BD754: + add r0, sp, #0x8 + mov r1, r8 + mov r3, r9 + add r2, r4, #0x8 + bl FUN_020BCF70 +_020BD768: + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + str r1, [sp, #0x1c] + str r0, [sp, #0x28] + b _020BD78C +_020BD77C: + ldr r0, [r4, #0x8] + str r0, [sp, #0x1c] + ldr r0, [r4, #0xc] + str r0, [sp, #0x28] +_020BD78C: + ands r0, r5, #0x2000 + bne _020BD7DC + cmp r6, #0x0 + beq _020BD7B4 + add r0, sp, #0x10 + mov r1, r8 + mov r3, r9 + add r2, r4, #0x10 + bl FUN_020BCDC4 + b _020BD7C8 +_020BD7B4: + add r0, sp, #0x10 + mov r1, r8 + mov r3, r9 + add r2, r4, #0x10 + bl FUN_020BCF70 +_020BD7C8: + ldr r1, [sp, #0x10] + ldr r0, [sp, #0x14] + str r1, [sp, #0x20] + str r0, [sp, #0x2c] + b _020BD814 +_020BD7DC: + ldr r0, [r4, #0x10] + str r0, [sp, #0x20] + ldr r0, [r4, #0x14] + str r0, [sp, #0x2c] + b _020BD814 +_020BD7F0: + ands r0, r5, #0x200 + ldrne r0, [r7, #0x0] + orrne r0, r0, #0x1 + strne r0, [r7, #0x0] + bne _020BD814 + mov r0, r7 + bl FUN_020BD9A4 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} +_020BD814: + ldr r0, [r7, #0x0] + add r1, sp, #0x18 + ands r0, r0, #0x1 + ldr r0, _020BD84C ; =UNK_021CEF7C + movne r3, #0x4 + ldr r4, [r0, #0x0] + moveq r3, #0x0 + ldr r2, [r4, #0x0] + ldr r4, [r4, #0xe8] + mov r0, r7 + blx r4 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020BD848: .word 0x00000FFF +_020BD84C: .word UNK_021CEF7C + arm_func_end FUN_020BD470 + + ; getMdlRot_ + arm_func_start FUN_020BD850 +FUN_020BD850: ; 0x020BD850 + stmdb sp!, {r4-r8,lr} + ldr r1, _020BD990 ; =UNK_021CEF7C + mov r8, r0 + ldr r0, [r1, #0x0] + ldr r3, [r0, #0xd4] + ldr r0, [r0, #0x0] + ldrh r2, [r3, #0x6] + ldrb r0, [r0, #0x1] + ldrh r1, [r3, r2] + add r2, r3, r2 + mla r0, r1, r0, r2 + ldr r0, [r0, #0x4] + ldrh r2, [r3, r0] + add r4, r3, r0 + add r1, r4, #0x4 + ands r0, r2, #0x1 + addeq r1, r1, #0xc + ands r0, r2, #0x2 + bne _020BD980 + ands r0, r2, #0x8 + beq _020BD934 + and r2, r2, #0xf0 + add r0, r8, #0x28 + mov r5, r2, asr #0x4 + ldrsh r7, [r1, #0x0] + ldrsh r6, [r1, #0x2] + bl MI_Zero36B + ldrh r0, [r4, #0x0] + add r1, r8, r5, lsl #0x2 + ands r0, r0, #0x100 + movne r0, #0x1000 + rsbne r2, r0, #0x0 + moveq r2, #0x1000 + ldr r0, _020BD994 ; =UNK_020FFA14 + str r2, [r1, #0x28] + ldrb r1, [r0, r5, lsl #0x2] + ldr r0, _020BD998 ; =UNK_020FFA14 + 1 + add r1, r8, r1, lsl #0x2 + str r7, [r1, #0x28] + ldrb r0, [r0, r5, lsl #0x2] + add r0, r8, r0, lsl #0x2 + str r6, [r0, #0x28] + ldrh r0, [r4, #0x0] + ands r0, r0, #0x200 + ldr r0, _020BD99C ; =UNK_020FFA14 + 2 + rsbne r6, r6, #0x0 + ldrb r0, [r0, r5, lsl #0x2] + add r0, r8, r0, lsl #0x2 + str r6, [r0, #0x28] + ldrh r0, [r4, #0x0] + ands r0, r0, #0x400 + ldr r0, _020BD9A0 ; =UNK_020FFA14 + 3 + rsbne r7, r7, #0x0 + ldrb r0, [r0, r5, lsl #0x2] + add r0, r8, r0, lsl #0x2 + str r7, [r0, #0x28] + ldmia sp!, {r4-r8,pc} +_020BD934: + ldrsh r0, [r4, #0x2] + str r0, [r8, #0x28] + ldrsh r0, [r1, #0x0] + str r0, [r8, #0x2c] + ldrsh r0, [r1, #0x2] + str r0, [r8, #0x30] + ldrsh r0, [r1, #0x4] + str r0, [r8, #0x34] + ldrsh r0, [r1, #0x6] + str r0, [r8, #0x38] + ldrsh r0, [r1, #0x8] + str r0, [r8, #0x3c] + ldrsh r0, [r1, #0xa] + str r0, [r8, #0x40] + ldrsh r0, [r1, #0xc] + str r0, [r8, #0x44] + ldrsh r0, [r1, #0xe] + str r0, [r8, #0x48] + ldmia sp!, {r4-r8,pc} +_020BD980: + ldr r0, [r8, #0x0] + orr r0, r0, #0x2 + str r0, [r8, #0x0] + ldmia sp!, {r4-r8,pc} + .balign 4 +_020BD990: .word UNK_021CEF7C +_020BD994: .word UNK_020FFA14 +_020BD998: .word UNK_020FFA14 + 1 +_020BD99C: .word UNK_020FFA14 + 2 +_020BD9A0: .word UNK_020FFA14 + 3 + arm_func_end FUN_020BD850 + + ; getMdlScale_ + arm_func_start FUN_020BD9A4 +FUN_020BD9A4: ; 0x020BD9A4 + stmdb sp!, {r4,lr} + ldr r1, _020BDA04 ; =UNK_021CEF7C + ldr r12, [r1, #0x0] + ldr r4, [r12, #0xd4] + ldr r2, [r12, #0x0] + ldrh lr, [r4, #0x6] + ldrb r1, [r2, #0x1] + ldrh r3, [r4, lr] + add lr, r4, lr + mla r1, r3, r1, lr + ldr r1, [r1, #0x4] + ldrh r3, [r4, r1] + add r1, r4, r1 + add r1, r1, #0x4 + ands lr, r3, #0x1 + addeq r1, r1, #0xc + ands lr, r3, #0x2 + bne _020BD9F8 + ands lr, r3, #0x8 + addne r1, r1, #0x4 + addeq r1, r1, #0x10 +_020BD9F8: + ldr r12, [r12, #0xe8] + blx r12 + ldmia sp!, {r4,pc} + .balign 4 +_020BDA04: .word UNK_021CEF7C + arm_func_end FUN_020BD9A4 + + ; getMdlTrans_ + arm_func_start FUN_020BDA08 +FUN_020BDA08: ; 0x020BDA08 + ldr r1, _020BDA6C ; =UNK_021CEF7C + ldr r1, [r1, #0x0] + ldr r12, [r1, #0xd4] + ldr r1, [r1, #0x0] + ldrh r3, [r12, #0x6] + ldrb r1, [r1, #0x1] + ldrh r2, [r12, r3] + add r3, r12, r3 + mla r1, r2, r1, r3 + ldr r2, [r1, #0x4] + ldrh r1, [r12, r2] + add r2, r12, r2 + ands r1, r1, #0x1 + ldrne r1, [r0, #0x0] + orrne r1, r1, #0x4 + strne r1, [r0, #0x0] + bxne lr + ldr r1, [r2, #0x4] + add r2, r2, #0x4 + str r1, [r0, #0x4c] + ldr r1, [r2, #0x4] + str r1, [r0, #0x50] + ldr r1, [r2, #0x8] + str r1, [r0, #0x54] + bx lr + .balign 4 +_020BDA6C: .word UNK_021CEF7C + arm_func_end FUN_020BDA08 + + ; _end + arm_func_start FUN_020BDA70 +FUN_020BDA70: ; 0x020BDA70 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r0 + ldr r0, [r1, #0x8] + ldr r12, [r1, #0x0] + ldrh r1, [r0, #0x4] + mov r1, r1, lsl #0xc + cmp r12, r1 + subge r12, r1, #0x1 + bge _020BDAA0 + cmp r12, #0x0 + movlt r12, #0x0 +_020BDAA0: + mov r1, r2 + mov r2, r12 + bl FUN_020BD470 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BDA70 + + ; NNSi_G3dAnmObjInitNsBca + arm_func_start FUN_020BDAB4 +FUN_020BDAB4: ; 0x020BDAB4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + ldr r0, _020BDB3C ; =UNK_0210659C + str r4, [r5, #0x8] + ldr r0, [r0, #0x0] + add r1, r5, #0x1a + str r0, [r5, #0xc] + ldrb r2, [r2, #0x17] + mov r0, #0x0 + strb r2, [r5, #0x19] + ldrb r2, [r5, #0x19] + mov r2, r2, lsl #0x1 + bl MIi_CpuClear16 + ldrh r0, [r4, #0x6] + add r2, r4, #0x14 + mov r3, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r5,pc} +_020BDB08: + mov r0, r3, lsl #0x1 + ldrh r1, [r2, r0] + add r0, r5, r3, lsl #0x1 + add r3, r3, #0x1 + ldr r1, [r4, r1] + mov r1, r1, lsr #0x18 + orr r1, r1, #0x100 + strh r1, [r0, #0x1a] + ldrh r0, [r4, #0x6] + cmp r3, r0 + blo _020BDB08 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BDB3C: .word UNK_0210659C + arm_func_end FUN_020BDAB4 + diff --git a/arm9/asm/NNS_G3D_nsbma.s b/arm9/asm/NNS_G3D_nsbma.s new file mode 100644 index 000000000..67c92e462 --- /dev/null +++ b/arm9/asm/NNS_G3D_nsbma.s @@ -0,0 +1,292 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BDB40 +FUN_020BDB40: ; 0x020BDB40 + stmdb sp!, {r4-r8,lr} + ldr r7, [r1, #0x8] + mov r2, r2, lsl #0x10 + ldrh r4, [r7, #0xe] + add r5, r7, #0x8 + ldr r6, [r1, #0x0] + ldrh r3, [r5, r4] + mov r1, r2, lsr #0x10 + add r2, r5, r4 + mul r4, r3, r1 + add r3, r2, #0x4 + mov r6, r6, asr #0xc + mov r8, r0 + ldr r1, [r3, r4] + mov r0, r7 + mov r2, r6 + add r5, r3, r4 + bl FUN_020BDDAC + mov r4, r0 + ldr r1, [r5, #0x4] + mov r0, r7 + mov r2, r6 + bl FUN_020BDDAC + ldr r1, [r8, #0x4] + mov r2, r6 + and r1, r1, #0x8000 + orr r1, r1, r4 + orr r0, r1, r0, lsl #0x10 + str r0, [r8, #0x4] + mov r0, r7 + ldr r1, [r5, #0xc] + bl FUN_020BDDAC + mov r4, r0 + mov r0, r7 + ldr r1, [r5, #0x8] + mov r2, r6 + bl FUN_020BDDAC + mov r2, r6 + ldr r1, [r8, #0x8] + and r1, r1, #0x8000 + orr r0, r1, r0 + orr r0, r0, r4, lsl #0x10 + str r0, [r8, #0x8] + mov r0, r7 + ldr r1, [r5, #0x10] + bl FUN_020BDCB8 + ldr r1, [r8, #0xc] + bic r1, r1, #0x1f0000 + orr r0, r1, r0, lsl #0x10 + str r0, [r8, #0xc] + ldmia sp!, {r4-r8,pc} + arm_func_end FUN_020BDB40 + + ; NNSi_G3dAnmObjInitNsBma + arm_func_start FUN_020BDC0C +FUN_020BDC0C: ; 0x020BDC0C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r3, _020BDCB4 ; =UNK_021065A8 + ldr r4, [r2, #0x8] + ldr r3, [r3, #0x0] + mov r9, r0 + str r3, [r9, #0xc] + ldrb r0, [r2, #0x18] + mov r8, r1 + add r4, r2, r4 + strb r0, [r9, #0x19] + ldrb r2, [r9, #0x19] + add r1, r9, #0x1a + mov r0, #0x0 + mov r2, r2, lsl #0x1 + bl MIi_CpuClear16 + ldrb r0, [r8, #0x9] + mov r7, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r9,pc} + mov r6, r7 + add r5, r8, #0x8 + add r4, r4, #0x4 +_020BDC6C: + ldrh r1, [r8, #0xe] + mov r0, r4 + add r2, r5, r1 + ldrh r1, [r2, #0x2] + add r1, r2, r1 + add r1, r1, r6 + bl FUN_020BC14C + cmp r0, #0x0 + orrge r1, r7, #0x100 + addge r0, r9, r0, lsl #0x1 + strgeh r1, [r0, #0x1a] + ldrb r0, [r8, #0x9] + add r7, r7, #0x1 + add r6, r6, #0x10 + cmp r7, r0 + blo _020BDC6C + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020BDCB4: .word UNK_021065A8 + arm_func_end FUN_020BDC0C + + ; GetMatColAnmuAlphaValue_ + arm_func_start FUN_020BDCB8 +FUN_020BDCB8: ; 0x020BDCB8 + ands r3, r1, #0x20000000 + movne r0, r1, lsl #0x10 + movne r0, r0, lsr #0x10 + bxne lr + ldr r3, _020BDDA4 ; =0x0000FFFF + ands r12, r1, #0xc0000000 + and r3, r1, r3 + add r0, r0, r3 + ldreqb r0, [r0, r2] + bxeq lr + ldr r3, _020BDDA8 ; =0x1FFF0000 + ands r12, r1, #0x40000000 + and r1, r1, r3 + mov r3, r1, lsr #0x10 + beq _020BDD30 + ands r1, r2, #0x1 + beq _020BDD28 + cmp r2, r3 + addhi r0, r0, r3, lsr #0x1 + ldrhib r0, [r0, #0x1] + bxhi lr + add r1, r0, r2, lsr #0x1 + ldrb r2, [r0, r2, lsr #0x1] + ldrb r0, [r1, #0x1] + add r0, r2, r0 + mov r0, r0, lsl #0xf + mov r0, r0, lsr #0x10 + bx lr +_020BDD28: + ldrb r0, [r0, r2, lsr #0x1] + bx lr +_020BDD30: + ands r1, r2, #0x3 + beq _020BDD9C + cmp r2, r3 + addhi r0, r0, r3, lsr #0x2 + ldrhib r0, [r1, r0] + bxhi lr + ands r1, r2, #0x1 + beq _020BDD80 + ands r1, r2, #0x2 + movne r1, r2, lsr #0x2 + addne r2, r1, #0x1 + moveq r2, r2, lsr #0x2 + addeq r1, r2, #0x1 + ldrb r2, [r0, r2] + ldrb r1, [r0, r1] + mov r0, #0x3 + mla r0, r2, r0, r1 + mov r0, r0, lsl #0xe + mov r0, r0, lsr #0x10 + bx lr +_020BDD80: + add r1, r0, r2, lsr #0x2 + ldrb r2, [r0, r2, lsr #0x2] + ldrb r0, [r1, #0x1] + add r0, r2, r0 + mov r0, r0, lsl #0xf + mov r0, r0, lsr #0x10 + bx lr +_020BDD9C: + ldrb r0, [r0, r2, lsr #0x2] + bx lr + .balign 4 +_020BDDA4: .word 0x0000FFFF +_020BDDA8: .word 0x1FFF0000 + arm_func_end FUN_020BDCB8 + + ; GetMatColAnmValue_ + arm_func_start FUN_020BDDAC +FUN_020BDDAC: ; 0x020BDDAC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ands r3, r1, #0x20000000 + movne r0, r1, lsl #0x10 + addne sp, sp, #0x4 + movne r0, r0, lsr #0x10 + ldmneia sp!, {pc} + ldr r3, _020BDF2C ; =0x0000FFFF + ands r12, r1, #0xc0000000 + and r3, r1, r3 + add r0, r0, r3 + moveq r1, r2, lsl #0x1 + addeq sp, sp, #0x4 + ldreqh r0, [r0, r1] + ldmeqia sp!, {pc} + ldr r3, _020BDF30 ; =0x1FFF0000 + ands r12, r1, #0x40000000 + and r1, r1, r3 + mov r3, r1, lsr #0x10 + beq _020BDE34 + ands r1, r2, #0x1 + beq _020BDE24 + cmp r2, r3 + bichi r1, r3, #0x1 + addhi r0, r0, r1 + addhi sp, sp, #0x4 + ldrhih r0, [r0, #0x2] + ldmhiia sp!, {pc} + mov r1, r2, lsr #0x1 + b _020BDEE0 +_020BDE24: + bic r1, r2, #0x1 + add sp, sp, #0x4 + ldrh r0, [r0, r1] + ldmia sp!, {pc} +_020BDE34: + ands r1, r2, #0x3 + beq _020BDECC + cmp r2, r3 + movhi r2, r3, lsr #0x2 + movhi r1, r1, lsl #0x1 + addhi r0, r0, r2, lsl #0x1 + addhi sp, sp, #0x4 + ldrhih r0, [r1, r0] + ldmhiia sp!, {pc} + ands r1, r2, #0x1 + beq _020BDEC4 + ands r1, r2, #0x2 + movne r1, r2, lsr #0x2 + addne r2, r1, #0x1 + moveq r2, r2, lsr #0x2 + addeq r1, r2, #0x1 + mov r2, r2, lsl #0x1 + mov r1, r1, lsl #0x1 + ldrh r12, [r0, r2] + ldrh lr, [r0, r1] + ldr r0, _020BDF34 ; =0x00007C1F + and r3, r12, #0x3e0 + and r2, lr, #0x3e0 + mov r1, #0x3 + mla r2, r3, r1, r2 + and r12, r12, r0 + and r3, lr, r0 + mla r1, r12, r1, r3 + mov r2, r2, lsr #0x2 + and r1, r0, r1, lsr #0x2 + and r0, r2, #0x3e0 + orr r0, r1, r0 + mov r0, r0, lsl #0x10 + add sp, sp, #0x4 + mov r0, r0, lsr #0x10 + ldmia sp!, {pc} +_020BDEC4: + mov r1, r2, lsr #0x2 + b _020BDEE0 +_020BDECC: + mov r1, r2, lsr #0x2 + mov r1, r1, lsl #0x1 + add sp, sp, #0x4 + ldrh r0, [r0, r1] + ldmia sp!, {pc} +_020BDEE0: + mov r2, r1, lsl #0x1 + add r1, r0, r1, lsl #0x1 + ldrh r3, [r0, r2] + ldrh r12, [r1, #0x2] + ldr r0, _020BDF34 ; =0x00007C1F + and r2, r3, #0x3e0 + and r1, r12, #0x3e0 + add r1, r2, r1 + mov r1, r1, lsr #0x1 + and r3, r3, r0 + and r2, r12, r0 + add r2, r3, r2 + and r2, r0, r2, lsr #0x1 + and r0, r1, #0x3e0 + orr r0, r2, r0 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020BDF2C: .word 0x0000FFFF +_020BDF30: .word 0x1FFF0000 +_020BDF34: .word 0x00007C1F + arm_func_end FUN_020BDDAC + diff --git a/arm9/asm/NNS_G3D_nsbta.s b/arm9/asm/NNS_G3D_nsbta.s new file mode 100644 index 000000000..85d25dca7 --- /dev/null +++ b/arm9/asm/NNS_G3D_nsbta.s @@ -0,0 +1,305 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BDF38 +FUN_020BDF38: ; 0x020BDF38 + stmdb sp!, {r4,lr} + ldr r12, [r1, #0x0] + mov r4, r0 + mov r2, r2, lsl #0x10 + ldr r0, [r1, #0x8] + mov r1, r2, lsr #0x10 + mov r3, r4 + mov r2, r12, asr #0xc + bl FUN_020BE030 + ldr r0, [r4, #0x10] + bic r0, r0, #0xc0000000 + str r0, [r4, #0x10] + ldr r0, [r4, #0x10] + orr r0, r0, #0x40000000 + str r0, [r4, #0x10] + ldr r0, [r4, #0x0] + orr r0, r0, #0x8 + str r0, [r4, #0x0] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BDF38 + + ; NNSi_G3dAnmObjInitNsBta + arm_func_start FUN_020BDF84 +FUN_020BDF84: ; 0x020BDF84 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r3, _020BE02C ; =UNK_021065A0 + ldr r4, [r2, #0x8] + ldr r3, [r3, #0x0] + mov r9, r0 + str r3, [r9, #0xc] + ldrb r0, [r2, #0x18] + mov r8, r1 + add r4, r2, r4 + strb r0, [r9, #0x19] + ldrb r2, [r9, #0x19] + add r1, r9, #0x1a + mov r0, #0x0 + mov r2, r2, lsl #0x1 + bl MIi_CpuClear16 + ldrb r0, [r8, #0x9] + mov r7, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r9,pc} + mov r6, r7 + add r5, r8, #0x8 + add r4, r4, #0x4 +_020BDFE4: + ldrh r1, [r8, #0xe] + mov r0, r4 + add r2, r5, r1 + ldrh r1, [r2, #0x2] + add r1, r2, r1 + add r1, r1, r6 + bl FUN_020BC14C + cmp r0, #0x0 + orrge r1, r7, #0x100 + addge r0, r9, r0, lsl #0x1 + strgeh r1, [r0, #0x1a] + ldrb r0, [r8, #0x9] + add r7, r7, #0x1 + add r6, r6, #0x10 + cmp r7, r0 + blo _020BDFE4 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020BE02C: .word UNK_021065A0 + arm_func_end FUN_020BDF84 + + ; _end + arm_func_start FUN_020BE030 +FUN_020BE030: ; 0x020BE030 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + ldrh r4, [r8, #0xe] + add r5, r8, #0x8 + mov r6, r3 + ldrh r3, [r5, r4] + add r4, r5, r4 + add r4, r4, #0x4 + mla r5, r3, r1, r4 + mov r7, r2 + ldr r1, [r5, #0x18] + ldr r2, [r5, #0x1c] + mov r3, r7 + ldr r4, [r6, #0x0] + bl FUN_020BE238 + mov r9, r0 + ldr r1, [r5, #0x20] + mov r0, r8 + ldr r2, [r5, #0x24] + mov r3, r7 + bl FUN_020BE238 + cmp r9, #0x0 + bne _020BE09C + cmp r0, #0x0 + orreq r4, r4, #0x4 + beq _020BE0A8 +_020BE09C: + str r9, [r6, #0x24] + str r0, [r6, #0x28] + bic r4, r4, #0x4 +_020BE0A8: + ldr r1, [r5, #0x10] + ldr r2, [r5, #0x14] + mov r0, r8 + mov r3, r7 + bl FUN_020BE12C + cmp r0, #0x10000000 + strneh r0, [r6, #0x20] + movne r0, r0, lsr #0x10 + strneh r0, [r6, #0x22] + orreq r4, r4, #0x2 + ldr r1, [r5, #0x0] + ldr r2, [r5, #0x4] + mov r0, r8 + mov r3, r7 + bicne r4, r4, #0x2 + bl FUN_020BE238 + mov r9, r0 + ldr r1, [r5, #0x8] + ldr r2, [r5, #0xc] + mov r0, r8 + mov r3, r7 + bl FUN_020BE238 + cmp r9, #0x1000 + bne _020BE114 + cmp r0, #0x1000 + orreq r4, r4, #0x1 + beq _020BE120 +_020BE114: + str r9, [r6, #0x18] + str r0, [r6, #0x1c] + bic r4, r4, #0x1 +_020BE120: + str r4, [r6, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + arm_func_end FUN_020BE030 + + ; GetTexSRTAnmSinCosVal_ + arm_func_start FUN_020BE12C +FUN_020BE12C: ; 0x020BE12C + ands r12, r1, #0x20000000 + movne r0, r2 + bxne lr + add r0, r0, r2 + ands r2, r1, #0xc0000000 + beq _020BE1F8 + ldr r2, _020BE234 ; =0x0000FFFF + ands r12, r1, #0x40000000 + and r2, r1, r2 + beq _020BE17C + ands r1, r3, #0x1 + beq _020BE174 + cmp r3, r2 + movhi r1, r2, lsr #0x1 + addhi r3, r1, #0x1 + bhi _020BE1F8 + mov r2, r3, lsr #0x1 + b _020BE200 +_020BE174: + mov r3, r3, lsr #0x1 + b _020BE1F8 +_020BE17C: + ands r1, r3, #0x3 + beq _020BE1F4 + cmp r3, r2 + addhi r3, r1, r2, lsr #0x2 + bhi _020BE1F8 + ands r1, r3, #0x1 + beq _020BE1EC + ands r1, r3, #0x2 + movne r1, r3, lsr #0x2 + addne r2, r1, #0x1 + moveq r2, r3, lsr #0x2 + addeq r1, r2, #0x1 + mov r12, r2, lsl #0x2 + add r3, r0, r2, lsl #0x2 + mov r2, r1, lsl #0x2 + add r1, r0, r1, lsl #0x2 + ldrsh r12, [r0, r12] + ldrsh r2, [r0, r2] + mov r0, #0x3 + ldrsh r3, [r3, #0x2] + ldrsh r1, [r1, #0x2] + mla r2, r12, r0, r2 + mla r1, r3, r0, r1 + ldr r0, _020BE234 ; =0x0000FFFF + mov r1, r1, asr #0x2 + and r0, r0, r2, asr #0x2 + orr r0, r0, r1, lsl #0x10 + bx lr +_020BE1EC: + mov r2, r3, lsr #0x2 + b _020BE200 +_020BE1F4: + mov r3, r3, lsr #0x2 +_020BE1F8: + ldr r0, [r0, r3, lsl #0x2] + bx lr +_020BE200: + add r1, r0, r2, lsl #0x2 + mov r2, r2, lsl #0x2 + ldrsh r12, [r0, r2] + ldrsh r3, [r1, #0x4] + ldrsh r2, [r1, #0x2] + ldrsh r1, [r1, #0x6] + ldr r0, _020BE234 ; =0x0000FFFF + add r3, r12, r3 + add r1, r2, r1 + and r2, r0, r3, asr #0x1 + mov r0, r1, asr #0x1 + orr r0, r2, r0, lsl #0x10 + bx lr + .balign 4 +_020BE234: .word 0x0000FFFF + arm_func_end FUN_020BE12C + + ; GetTexSRTAnmVectorVal_ + arm_func_start FUN_020BE238 +FUN_020BE238: ; 0x020BE238 + ands r12, r1, #0x20000000 + movne r0, r2 + bxne lr + add r0, r0, r2 + ands r2, r1, #0xc0000000 + beq _020BE2F0 + ldr r2, _020BE330 ; =0x0000FFFF + ands r12, r1, #0x40000000 + and r12, r1, r2 + beq _020BE288 + ands r2, r3, #0x1 + beq _020BE280 + cmp r3, r12 + movhi r2, r12, lsr #0x1 + addhi r3, r2, #0x1 + bhi _020BE2F0 + mov r3, r3, lsr #0x1 + b _020BE304 +_020BE280: + mov r3, r3, lsr #0x1 + b _020BE2F0 +_020BE288: + ands r2, r3, #0x3 + beq _020BE2EC + cmp r3, r12 + addhi r3, r2, r12, lsr #0x2 + bhi _020BE2F0 + ands r2, r3, #0x1 + beq _020BE2E4 + ands r2, r3, #0x2 + movne r3, r3, lsr #0x2 + addne r2, r3, #0x1 + moveq r2, r3, lsr #0x2 + addeq r3, r2, #0x1 + ands r1, r1, #0x10000000 + movne r2, r2, lsl #0x1 + movne r1, r3, lsl #0x1 + ldrnesh r2, [r0, r2] + ldrnesh r1, [r0, r1] + ldreq r2, [r0, r2, lsl #0x2] + ldreq r1, [r0, r3, lsl #0x2] + mov r0, #0x3 + mla r0, r2, r0, r1 + mov r0, r0, asr #0x2 + bx lr +_020BE2E4: + mov r3, r3, lsr #0x2 + b _020BE304 +_020BE2EC: + mov r3, r3, lsr #0x2 +_020BE2F0: + ands r1, r1, #0x10000000 + movne r1, r3, lsl #0x1 + ldrnesh r0, [r0, r1] + ldreq r0, [r0, r3, lsl #0x2] + bx lr +_020BE304: + ands r1, r1, #0x10000000 + movne r2, r3, lsl #0x1 + addne r1, r0, r3, lsl #0x1 + ldrnesh r2, [r0, r2] + ldrnesh r0, [r1, #0x2] + addeq r1, r0, r3, lsl #0x2 + ldreq r2, [r0, r3, lsl #0x2] + ldreq r0, [r1, #0x4] + add r0, r2, r0 + mov r0, r0, asr #0x1 + bx lr + .balign 4 +_020BE330: .word 0x0000FFFF + arm_func_end FUN_020BE238 + diff --git a/arm9/asm/NNS_G3D_nsbtp.s b/arm9/asm/NNS_G3D_nsbtp.s new file mode 100644 index 000000000..3701b92eb --- /dev/null +++ b/arm9/asm/NNS_G3D_nsbtp.s @@ -0,0 +1,185 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BE334 +FUN_020BE334: ; 0x020BE334 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldr r3, [r6, #0x0] + ldr r5, [r6, #0x8] + mov r1, r2, lsl #0x10 + mov r2, r3, lsl #0x4 + mov r7, r0 + mov r0, r5 + mov r1, r1, lsr #0x10 + mov r2, r2, lsr #0x10 + bl FUN_020BC42C + mov r4, r0 + ldrb r1, [r4, #0x2] + mov r0, r5 + bl FUN_020BC4B8 + mov r1, r0 + ldr r0, [r6, #0x14] + mov r2, r7 + bl FUN_020BE408 + ldrb r1, [r4, #0x3] + cmp r1, #0xff + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + mov r0, r5 + bl FUN_020BC4A8 + mov r1, r0 + ldr r0, [r6, #0x14] + mov r2, r7 + bl FUN_020BE3B4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BE334 + + ; _end + arm_func_start FUN_020BE3B4 +FUN_020BE3B4: ; 0x020BE3B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrh r0, [r5, #0x34] + mov r4, r2 + add r0, r5, r0 + bl FUN_020BC2A0 + ldr r1, [r5, #0x2c] + ldrh r2, [r0, #0x2] + mov r1, r1, lsl #0x10 + mov r3, r1, lsr #0x10 + ands r1, r2, #0x1 + ldrh r0, [r0, #0x0] + moveq r1, r3, lsl #0xf + moveq r3, r1, lsr #0x10 + moveq r0, r0, lsl #0xf + moveq r0, r0, lsr #0x10 + add r0, r0, r3 + str r0, [r4, #0x14] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BE3B4 + + ; SetTexParamaters_ + arm_func_start FUN_020BE408 +FUN_020BE408: ; 0x020BE408 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + add r0, r5, #0x3c + mov r4, r2 + bl FUN_020BC2A0 + ldr r1, [r0, #0x0] + ldr r3, [r4, #0x10] + and r1, r1, #0x1c000000 + cmp r1, #0x14000000 + ldrne r2, [r5, #0x8] + ldrne r1, _020BE4E0 ; =0x0000FFFF + andne r5, r2, r1 + ldreq r2, [r5, #0x18] + ldreq r1, _020BE4E0 ; =0x0000FFFF + andeq r5, r2, r1 + ldr r1, _020BE4E4 ; =0xC00F0000 + ldr r2, _020BE4E8 ; =0x000007FF + and r1, r3, r1 + str r1, [r4, #0x10] + ldr r1, [r0, #0x0] + ldr r3, [r4, #0x10] + add r1, r1, r5 + orr r1, r3, r1 + str r1, [r4, #0x10] + ldr r3, [r0, #0x4] + ldr r1, _020BE4EC ; =0x003FF800 + and r3, r3, r2 + strh r3, [r4, #0x2c] + ldr r3, [r0, #0x4] + and r1, r3, r1 + mov r1, r1, lsr #0xb + strh r1, [r4, #0x2e] + ldr r3, [r0, #0x4] + ldrh r1, [r4, #0x2c] + and r0, r3, r2 + and r5, r2, r3, lsr #0xb + cmp r0, r1 + moveq r0, #0x1000 + beq _020BE4B4 + mov r0, r0, lsl #0xc + mov r1, r1, lsl #0xc + bl FX_Div +_020BE4B4: + str r0, [r4, #0x30] + ldrh r1, [r4, #0x2e] + cmp r5, r1 + moveq r0, #0x1000 + beq _020BE4D4 + mov r0, r5, lsl #0xc + mov r1, r1, lsl #0xc + bl FX_Div +_020BE4D4: + str r0, [r4, #0x34] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BE4E0: .word 0x0000FFFF +_020BE4E4: .word 0xC00F0000 +_020BE4E8: .word 0x000007FF +_020BE4EC: .word 0x003FF800 + arm_func_end FUN_020BE408 + + ; NNSi_G3dAnmObjInitNsBtp + arm_func_start FUN_020BE4F0 +FUN_020BE4F0: ; 0x020BE4F0 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r3, _020BE59C ; =UNK_021065A4 + ldr r4, [r2, #0x8] + ldr r3, [r3, #0x0] + mov r9, r0 + str r3, [r9, #0xc] + ldrb r0, [r2, #0x18] + mov r8, r1 + add r4, r2, r4 + strb r0, [r9, #0x19] + str r8, [r9, #0x8] + ldrb r2, [r9, #0x19] + add r1, r9, #0x1a + mov r0, #0x0 + mov r2, r2, lsl #0x1 + bl MIi_CpuClear16 + ldrb r0, [r8, #0xd] + mov r7, #0x0 + cmp r0, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r9,pc} + mov r6, r7 + add r5, r8, #0xc + add r4, r4, #0x4 +_020BE554: + ldrh r1, [r8, #0x12] + mov r0, r4 + add r2, r5, r1 + ldrh r1, [r2, #0x2] + add r1, r2, r1 + add r1, r1, r6 + bl FUN_020BC14C + cmp r0, #0x0 + orrge r1, r7, #0x100 + addge r0, r9, r0, lsl #0x1 + strgeh r1, [r0, #0x1a] + ldrb r0, [r8, #0xd] + add r7, r7, #0x1 + add r6, r6, #0x10 + cmp r7, r0 + blo _020BE554 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020BE59C: .word UNK_021065A4 + arm_func_end FUN_020BE4F0 + diff --git a/arm9/asm/NNS_G3D_nsbva.s b/arm9/asm/NNS_G3D_nsbva.s new file mode 100644 index 000000000..8b6755456 --- /dev/null +++ b/arm9/asm/NNS_G3D_nsbva.s @@ -0,0 +1,52 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020BE5A0 +FUN_020BE5A0: ; 0x020BE5A0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr lr, [r1, #0x8] + ldr r3, [r1, #0x0] + ldrh r1, [lr, #0x6] + mov r12, r3, asr #0xc + mov r3, #0x1 + mla r2, r12, r1, r2 + mov r1, r2, lsr #0x5 + add r1, lr, r1, lsl #0x2 + ldr r1, [r1, #0xc] + and r2, r2, #0x1f + and r1, r1, r3, lsl r2 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BE5A0 + + ; NNSi_G3dAnmObjInitNsBva + arm_func_start FUN_020BE5E0 +FUN_020BE5E0: ; 0x020BE5E0 + ldr r3, _020BE628 ; =UNK_02106598 + mov r12, #0x0 + ldr r3, [r3, #0x0] + str r3, [r0, #0xc] + ldrb r2, [r2, #0x17] + strb r2, [r0, #0x19] + str r1, [r0, #0x8] + ldrb r1, [r0, #0x19] + cmp r1, #0x0 + bxls lr +_020BE608: + orr r2, r12, #0x100 + add r1, r0, r12, lsl #0x1 + strh r2, [r1, #0x1a] + ldrb r1, [r0, #0x19] + add r12, r12, #0x1 + cmp r12, r1 + blo _020BE608 + bx lr + .balign 4 +_020BE628: .word UNK_02106598 + arm_func_end FUN_020BE5E0 + diff --git a/arm9/asm/NNS_G3D_res_struct_acce.s b/arm9/asm/NNS_G3D_res_struct_acce.s new file mode 100644 index 000000000..1455f0dc6 --- /dev/null +++ b/arm9/asm/NNS_G3D_res_struct_acce.s @@ -0,0 +1,327 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G3dGetTex + arm_func_start FUN_020BC0FC +FUN_020BC0FC: ; 0x020BC0FC + ldrh r2, [r0, #0xc] + ldrh r1, [r0, #0xe] + add r3, r0, r2 + cmp r1, #0x1 + bne _020BC12C + ldr r2, [r0, #0x0] + ldr r1, _020BC138 ; =0x30585442 + cmp r2, r1 + ldreq r1, [r3, #0x0] + addeq r0, r0, r1 + movne r0, #0x0 + bx lr +_020BC12C: + ldr r1, [r3, #0x4] + add r0, r0, r1 + bx lr + .balign 4 +_020BC138: .word 0x30585442 + arm_func_end FUN_020BC0FC + + ; _end + arm_func_start FUN_020BC13C +FUN_020BC13C: ; 0x020BC13C + ldrh r1, [r0, #0xc] + ldr r1, [r0, r1] + add r0, r0, r1 + bx lr + arm_func_end FUN_020BC13C + + ; _end + arm_func_start FUN_020BC14C +FUN_020BC14C: ; 0x020BC14C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldrb r2, [r0, #0x1] + cmp r2, #0x10 + bhs _020BC1E4 + cmp r2, #0x0 + ldr lr, [r1, #0x0] + ldr r12, [r1, #0x4] + ldr r3, [r1, #0x8] + ldr r2, [r1, #0xc] + mov r4, #0x0 + bls _020BC294 + ldrh r5, [r0, #0x6] + mov r1, r4 + add r6, r0, r5 + ldrh r5, [r6, #0x2] + add r6, r6, r5 +_020BC190: + ldr r5, [r6, r1] + add r7, r6, r1 + cmp r5, lr + bne _020BC1CC + ldr r5, [r7, #0x4] + cmp r5, r12 + bne _020BC1CC + ldr r5, [r7, #0x8] + cmp r5, r3 + bne _020BC1CC + ldr r5, [r7, #0xc] + cmp r5, r2 + addeq sp, sp, #0x4 + moveq r0, r4 + ldmeqia sp!, {r4-r7,pc} +_020BC1CC: + ldrb r5, [r0, #0x1] + add r4, r4, #0x1 + add r1, r1, #0x10 + cmp r4, r5 + blo _020BC190 + b _020BC294 +_020BC1E4: + add r3, r0, #0x8 + ldrb r2, [r3, #0x1] + cmp r2, #0x0 + beq _020BC294 + ldrb r5, [r3, r2, lsl #0x2] + ldrb r4, [r3, #0x0] + add r2, r3, r2, lsl #0x2 + cmp r4, r5 + bls _020BC238 +_020BC208: + mov r4, r5, asr #0x5 + ldr r12, [r1, r4, lsl #0x2] + and r4, r5, #0x1f + mov r4, r12, lsr r4 + and r4, r4, #0x1 + add r4, r2, r4 + ldrb r12, [r4, #0x1] + ldrb r4, [r2, #0x0] + ldrb r5, [r3, r12, lsl #0x2] + add r2, r3, r12, lsl #0x2 + cmp r4, r5 + bhi _020BC208 +_020BC238: + ldrh r4, [r0, #0x6] + ldr r3, [r1, #0x0] + add r12, r0, r4 + ldrh r4, [r12, #0x2] + ldrb r0, [r2, #0x3] + add r4, r12, r4 + ldr r2, [r4, r0, lsl #0x4] + add r4, r4, r0, lsl #0x4 + cmp r2, r3 + bne _020BC294 + ldr r3, [r4, #0x4] + ldr r2, [r1, #0x4] + cmp r3, r2 + bne _020BC294 + ldr r3, [r4, #0x8] + ldr r2, [r1, #0x8] + cmp r3, r2 + bne _020BC294 + ldr r2, [r4, #0xc] + ldr r1, [r1, #0xc] + cmp r2, r1 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} +_020BC294: + mvn r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BC14C + + ; _end + arm_func_start FUN_020BC2A0 +FUN_020BC2A0: ; 0x020BC2A0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldrb r2, [r0, #0x1] + cmp r2, #0x10 + bhs _020BC34C + cmp r2, #0x0 + ldr lr, [r1, #0x0] + ldr r12, [r1, #0x4] + ldr r3, [r1, #0x8] + ldr r2, [r1, #0xc] + mov r4, #0x0 + bls _020BC404 + ldrh r5, [r0, #0x6] + mov r1, r4 + add r6, r0, r5 + ldrh r5, [r6, #0x2] + add r6, r6, r5 +_020BC2E4: + ldr r5, [r6, r1] + add r7, r6, r1 + cmp r5, lr + bne _020BC334 + ldr r5, [r7, #0x4] + cmp r5, r12 + bne _020BC334 + ldr r5, [r7, #0x8] + cmp r5, r3 + bne _020BC334 + ldr r5, [r7, #0xc] + cmp r5, r2 + bne _020BC334 + ldrh r2, [r0, #0x6] + add sp, sp, #0x4 + ldrh r1, [r0, r2] + add r0, r0, r2 + add r0, r0, #0x4 + mla r0, r1, r4, r0 + ldmia sp!, {r4-r7,pc} +_020BC334: + ldrb r5, [r0, #0x1] + add r4, r4, #0x1 + add r1, r1, #0x10 + cmp r4, r5 + blo _020BC2E4 + b _020BC404 +_020BC34C: + add r3, r0, #0x8 + ldrb r2, [r3, #0x1] + cmp r2, #0x0 + beq _020BC404 + ldrb r5, [r3, r2, lsl #0x2] + ldrb r4, [r3, #0x0] + add r2, r3, r2, lsl #0x2 + cmp r4, r5 + bls _020BC3A0 +_020BC370: + mov r4, r5, asr #0x5 + ldr r12, [r1, r4, lsl #0x2] + and r4, r5, #0x1f + mov r4, r12, lsr r4 + and r4, r4, #0x1 + add r4, r2, r4 + ldrb r12, [r4, #0x1] + ldrb r4, [r2, #0x0] + ldrb r5, [r3, r12, lsl #0x2] + add r2, r3, r12, lsl #0x2 + cmp r4, r5 + bhi _020BC370 +_020BC3A0: + ldrh r4, [r0, #0x6] + ldrb r2, [r2, #0x3] + ldr r3, [r1, #0x0] + add r0, r0, r4 + ldrh r4, [r0, #0x2] + add r12, r0, r4 + ldr r4, [r12, r2, lsl #0x4] + add r12, r12, r2, lsl #0x4 + cmp r4, r3 + bne _020BC404 + ldr r4, [r12, #0x4] + ldr r3, [r1, #0x4] + cmp r4, r3 + bne _020BC404 + ldr r4, [r12, #0x8] + ldr r3, [r1, #0x8] + cmp r4, r3 + bne _020BC404 + ldr r3, [r12, #0xc] + ldr r1, [r1, #0xc] + cmp r3, r1 + ldreqh r1, [r0], #0x4 + addeq sp, sp, #0x4 + mlaeq r0, r1, r2, r0 + ldmeqia sp!, {r4-r7,pc} +_020BC404: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BC2A0 + + ; _end + arm_func_start FUN_020BC410 +FUN_020BC410: ; 0x020BC410 + ldrh r3, [r0, #0x12] + add r0, r0, #0xc + ldrh r2, [r0, r3] + add r0, r0, r3 + add r0, r0, #0x4 + mla r0, r2, r1, r0 + bx lr + arm_func_end FUN_020BC410 + + ; _end + arm_func_start FUN_020BC42C +FUN_020BC42C: ; 0x020BC42C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r2 + bl FUN_020BC410 + ldrsh r1, [r0, #0x4] + ldrh r3, [r0, #0x6] + mul r2, r1, r4 + add r3, r5, r3 + mov r2, r2, lsr #0xc + b _020BC45C +_020BC458: + sub r2, r2, #0x1 +_020BC45C: + cmp r2, #0x0 + beq _020BC474 + mov r1, r2, lsl #0x2 + ldrh r1, [r3, r1] + cmp r1, r4 + bhs _020BC458 +_020BC474: + ldrh r1, [r0, #0x0] + b _020BC480 +_020BC47C: + add r2, r2, #0x1 +_020BC480: + add r0, r2, #0x1 + cmp r0, r1 + bhs _020BC49C + add r0, r3, r2, lsl #0x2 + ldrh r0, [r0, #0x4] + cmp r0, r4 + bls _020BC47C +_020BC49C: + add r0, r3, r2, lsl #0x2 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BC42C + + ; _end + arm_func_start FUN_020BC4A8 +FUN_020BC4A8: ; 0x020BC4A8 + ldrh r2, [r0, #0xa] + add r0, r0, r2 + add r0, r0, r1, lsl #0x4 + bx lr + arm_func_end FUN_020BC4A8 + + ; _end + arm_func_start FUN_020BC4B8 +FUN_020BC4B8: ; 0x020BC4B8 + ldrh r2, [r0, #0x8] + add r0, r0, r2 + add r0, r0, r1, lsl #0x4 + bx lr + arm_func_end FUN_020BC4B8 + + ; _end + arm_func_start FUN_020BC4C8 +FUN_020BC4C8: ; 0x020BC4C8 + ldrh r2, [r0, #0xc] + ldr r2, [r0, r2] + add r12, r0, r2 + ldrh r2, [r12, #0xe] + add r3, r12, #0x8 + ldrh r0, [r3, r2] + add r2, r3, r2 + add r2, r2, #0x4 + mul r1, r0, r1 + adds r0, r2, r1 + ldrne r0, [r0, #0x0] + addne r0, r12, r0 + moveq r0, #0x0 + bx lr + arm_func_end FUN_020BC4C8 + diff --git a/arm9/asm/NNS_G3D_sbc.s b/arm9/asm/NNS_G3D_sbc.s new file mode 100644 index 000000000..48ad74701 --- /dev/null +++ b/arm9/asm/NNS_G3D_sbc.s @@ -0,0 +1,2861 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; matColorMask_$8998 + .global UNK_020FF9D0 +UNK_020FF9D0: ; 0x020FF9D0 + .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F + .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F + + ; static const in function + ; pivotUtil_$9100 + .global UNK_020FF9F0 +UNK_020FF9F0: ; 0x020FF9F0 + .byte 0x04, 0x05, 0x07, 0x08 + .byte 0x03, 0x05, 0x06, 0x08 + .byte 0x03, 0x04, 0x06, 0x07 + .byte 0x01, 0x02, 0x07, 0x08 + .byte 0x00, 0x02, 0x06, 0x08 + .byte 0x00, 0x01, 0x06, 0x07 + .byte 0x01, 0x02, 0x04, 0x05 + .byte 0x00, 0x02, 0x03, 0x05 + .byte 0x00, 0x01, 0x03, 0x04 + + ; static const in function + .section .data + + ; cmd$9407 + .global UNK_02106630 +UNK_02106630: ; 0x02106630 + .byte 0x2A, 0x00, 0x00, 0x00 + + ; cmd$9407 + 0x4 + .global UNK_02106634 +UNK_02106634: ; 0x02106634 + .byte 0x00, 0x00, 0x00, 0x00 + + ; cmd$9366 + .global UNK_02106638 +UNK_02106638: ; 0x02106638 + .byte 0x2A, 0x00, 0x00, 0x00 + + ; cmd$9366 + 0x4 + .global UNK_0210663C +UNK_0210663C: ; 0x0210663C + .byte 0x00, 0x00, 0x00, 0x00 + + ; NNS_G3dFuncSbcMatTable + .global UNK_02106640 +UNK_02106640: ; 0x02106640 + .word FUN_020BA58C + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; NNS_G3dFuncSbcShpTable + .global UNK_02106650 +UNK_02106650: ; 0x02106650 + .word FUN_020BA438 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; mtx$9412 + .global UNK_02106660 +UNK_02106660: ; 0x02106660 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 + + ; bbcmd1$9173 + .global UNK_021066A0 +UNK_021066A0: ; 0x021066A0 + .byte 0x12, 0x10, 0x17, 0x1B + + ; bbcmd1$9173 + 0x4 + .global UNK_021066A4 +UNK_021066A4: ; 0x021066A4 + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + ; bbcmd1$9173 + 0xC + .global UNK_021066AC +UNK_021066AC: ; 0x021066AC + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00 + + ; bbcmd1$9173 + 0x30 + .global UNK_021066D0 +UNK_021066D0: ; 0x021066D0 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; bbcmd1$9173 + 0x3C + .global UNK_021066DC +UNK_021066DC: ; 0x021066DC + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; bbcmd1$9234 + .global UNK_021066E8 +UNK_021066E8: ; 0x021066E8 + .byte 0x12, 0x10, 0x17, 0x1B + + ; bbcmd1$9234 + 0x4 + .global UNK_021066EC +UNK_021066EC: ; 0x021066EC + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + + ; bbcmd1$9234 + 0xC + .global UNK_021066F4 +UNK_021066F4: ; 0x021066F4 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x10, 0x00, 0x00 + + ; bbcmd1$9234 + 0x30 + .global UNK_02106718 +UNK_02106718: ; 0x02106718 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; bbcmd1$9234 + 0x3C + .global UNK_02106724 +UNK_02106724: ; 0x02106724 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + ; NNS_G3dFuncSbcTable + .global UNK_02106730 +UNK_02106730: ; 0x02106730 + .word FUN_020BAC70 + .word FUN_020BAC48 + .word FUN_020BAAC0 + .word FUN_020BA9EC + .word FUN_020BA50C + .word FUN_020BA3C4 + .word FUN_020B9F84 + .word FUN_020B9C54 + .word FUN_020B98C4 + .word FUN_020B9258 + .word FUN_020B9178 + .word FUN_020B9110 + .word FUN_020B8DF0 + .word FUN_020B8A60 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .section .bss + + ; NNS_G3dRS + .global UNK_021CEF7C +UNK_021CEF7C: ; 0x021CEF7C + .space 0x4 + + ; NNS_G3dRSOnGlb + .global UNK_021CEF80 +UNK_021CEF80: ; 0x021CEF80 + .space 0xe00 + + ; NNS_G3dRSOnGlb + 0xE00 + .global UNK_021CFD80 +UNK_021CFD80: ; 0x021CFD80 + .space 0x4 + + ; NNS_G3dRSOnGlb + 0xE04 + .global UNK_021CFD84 +UNK_021CFD84: ; 0x021CFD84 + .space 0x4 + + ; NNS_G3dRSOnGlb + 0xE08 + .global UNK_021CFD88 +UNK_021CFD88: ; 0x021CFD88 + .space 0x4 + + ; NNS_G3dRSOnGlb + 0xE0C + .global UNK_021CFD8C +UNK_021CFD8C: ; 0x021CFD8C + .space 0x4 + + ; NNS_G3dRSOnGlb + 0xE10 + .global UNK_021CFD90 +UNK_021CFD90: ; 0x021CFD90 + .space 0x4 + + ; NNS_G3dRSOnGlb + 0xE14 + .global UNK_021CFD94 +UNK_021CFD94: ; 0x021CFD94 + .space 0x2ba + + ; NNS_G3dRSOnGlb + 0x10CE + .global UNK_021D004E +UNK_021D004E: ; 0x021D004E + .space 0x332 + + ; NNS_G3dRSOnGlb + 0x1400 + .global UNK_021D0380 +UNK_021D0380: ; 0x021D0380 + .space 0x40 + + ; NNS_G3dRSOnGlb + 0x1440 + .global UNK_021D03C0 +UNK_021D03C0: ; 0x021D03C0 + .space 0xb42 + + ; NNS_G3dRSOnGlb + 0x1F82 + .global UNK_021D0F02 +UNK_021D0F02: ; 0x021D0F02 + .space 0xd7e + + .section .text + + ; NNSi_G3dFuncSbc_PRJMAP + arm_func_start FUN_020B8A60 +FUN_020B8A60: ; 0x020B8A60 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x80 + mov r5, r0 + ldr r1, [r5, #0x8] + ands r0, r1, #0x200 + bne _020B8DB4 + ands r0, r1, #0x1 + beq _020B8DB4 + add r0, sp, #0x10 + mov r1, #0x0 + bl FUN_020BB824 + mov r0, #0x1e + str r0, [sp, #0x0] + add r1, sp, #0x0 + mov r0, #0x13 + mov r2, #0x1 + bl FUN_020BB1C0 + ldr r2, [r5, #0xb0] + ldr r0, [r2, #0x10] + and r1, r0, #0xc0000000 + cmp r1, #0xc0000000 + beq _020B8AF0 + bic r0, r0, #0xc0000000 + str r0, [r2, #0x10] + ldr r2, [r5, #0xb0] + ldr r3, _020B8DC8 ; =UNK_02106630 + ldr r0, [r2, #0x10] + ldr r1, _020B8DCC ; =UNK_02106634 + orr r0, r0, #0xc0000000 + str r0, [r2, #0x10] + ldr r2, [r5, #0xb0] + ldr r0, [r3, #0x0] + ldr r4, [r2, #0x10] + mov r2, #0x1 + str r4, [r3, #0x4] + bl FUN_020BB1C0 +_020B8AF0: + ldr r0, [r5, #0x40] + cmp r0, #0x0 + ldrneb r4, [r5, #0x99] + moveq r4, #0x0 + cmp r4, #0x1 + bne _020B8B3C + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x40] + blx r1 + ldr r0, [r5, #0x40] + cmp r0, #0x0 + ldrneb r4, [r5, #0x99] + ldr r0, [r5, #0x8] + moveq r4, #0x0 + and r0, r0, #0x40 + b _020B8B40 +_020B8B3C: + mov r0, #0x0 +_020B8B40: + cmp r0, #0x0 + bne _020B8B84 + ldr r0, [r5, #0xb0] + ldr r1, _020B8DD0 ; =UNK_02106660 + ldrh r6, [r0, #0x2e] + ldrh r3, [r0, #0x2c] + mov r0, #0x16 + rsb r2, r6, #0x0 + mov lr, r3, lsl #0xf + mov r12, r2, lsl #0xf + mov r3, r6, lsl #0xf + mov r2, #0x10 + str lr, [r1, #0x0] + str r12, [r1, #0x14] + str lr, [r1, #0x30] + str r3, [r1, #0x34] + bl FUN_020BB1C0 +_020B8B84: + cmp r4, #0x2 + bne _020B8BC0 + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x40] + blx r1 + ldr r0, [r5, #0x40] + cmp r0, #0x0 + ldrneb r4, [r5, #0x99] + ldr r0, [r5, #0x8] + moveq r4, #0x0 + and r0, r0, #0x40 + b _020B8BC4 +_020B8BC0: + mov r0, #0x0 +_020B8BC4: + cmp r0, #0x0 + bne _020B8C28 + ldr r12, [r5, #0xd8] + ldr r0, [r5, #0x0] + ldrh r2, [r12, #0xa] + add r3, r12, #0x4 + ldrb r0, [r0, #0x1] + ldrh r1, [r3, r2] + add r2, r3, r2 + mla r0, r1, r0, r2 + ldr r0, [r0, #0x4] + add r1, r12, r0 + ldrh r2, [r1, #0x1e] + ands r0, r2, #0x2000 + beq _020B8C28 + add r1, r1, #0x2c + ands r0, r2, #0x2 + addeq r1, r1, #0x8 + ands r0, r2, #0x4 + addeq r1, r1, #0x4 + ands r0, r2, #0x8 + addeq r1, r1, #0x8 + mov r0, #0x18 + mov r2, #0x10 + bl FUN_020BB1C0 +_020B8C28: + cmp r4, #0x3 + movne r0, #0x0 + bne _020B8C54 + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x40] + blx r1 + ldr r0, [r5, #0x8] + and r0, r0, #0x40 +_020B8C54: + cmp r0, #0x0 + bne _020B8D84 + ldr r0, _020B8DD4 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + ands r0, r1, #0x1 + beq _020B8CA0 + ldr r1, _020B8DD8 ; =UNK_021CEDF8 + mov r0, #0x1c + mov r2, #0x3 + bl FUN_020BB1C0 + ldr r1, _020B8DDC ; =UNK_021CEDD4 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + add r1, sp, #0x10 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + b _020B8CE0 +_020B8CA0: + ands r0, r1, #0x2 + beq _020B8CBC + add r1, sp, #0x10 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + b _020B8CE0 +_020B8CBC: + bl FUN_020B8344 + mov r1, r0 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + add r1, sp, #0x10 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 +_020B8CE0: + bl FUN_020BB394 + ldr r0, _020B8DE0 ; =0x04000440 + mov r2, #0x0 + ldr r1, _020B8DE4 ; =0x04000444 + str r2, [r0, #0x0] + ldr r0, _020B8DE8 ; =0x04000454 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + add r4, sp, #0x40 +_020B8D04: + mov r0, r4 + bl G3X_GetClipMtx + cmp r0, #0x0 + bne _020B8D04 + ldr r1, _020B8DEC ; =0x04000448 + mov r2, #0x1 + str r2, [r1, #0x0] + ldr r0, _020B8DE0 ; =0x04000440 + mov r2, #0x3 + str r2, [r0, #0x0] + add r1, sp, #0x40 + mov r0, #0x16 + mov r2, #0x10 + bl FUN_020BB1C0 + ldr r1, [sp, #0x70] + ldr r0, [sp, #0x74] + mov r2, r1, asr #0x4 + mov r1, r0, asr #0x4 + mov r0, r2, lsl #0x8 + mov r1, r1, lsl #0x8 + mov r0, r0, asr #0x10 + mov r1, r1, asr #0x10 + mov r0, r0, lsl #0x10 + mov r1, r1, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r1, lsr #0x10 + orr r3, r2, r0, lsl #0x10 + add r1, sp, #0x4 + mov r0, #0x22 + mov r2, #0x1 + str r3, [sp, #0x4] + bl FUN_020BB1C0 +_020B8D84: + mov r3, #0x2 + add r1, sp, #0x8 + mov r0, #0x10 + mov r2, #0x1 + str r3, [sp, #0x8] + bl FUN_020BB1C0 + mov r3, #0x1e + add r1, sp, #0xc + mov r0, #0x14 + mov r2, #0x1 + str r3, [sp, #0xc] + bl FUN_020BB1C0 +_020B8DB4: + ldr r0, [r5, #0x0] + add r0, r0, #0x3 + str r0, [r5, #0x0] + add sp, sp, #0x80 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020B8DC8: .word UNK_02106630 +_020B8DCC: .word UNK_02106634 +_020B8DD0: .word UNK_02106660 +_020B8DD4: .word UNK_021CED18 +_020B8DD8: .word UNK_021CEDF8 +_020B8DDC: .word UNK_021CEDD4 +_020B8DE0: .word 0x04000440 +_020B8DE4: .word 0x04000444 +_020B8DE8: .word 0x04000454 +_020B8DEC: .word 0x04000448 + arm_func_end FUN_020B8A60 + + ; NNSi_G3dFuncSbc_ENVMAP + arm_func_start FUN_020B8DF0 +FUN_020B8DF0: ; 0x020B8DF0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x44 + mov r7, r0 + ldr r1, [r7, #0x8] + ands r0, r1, #0x200 + bne _020B90E8 + ands r0, r1, #0x1 + beq _020B90E8 + ldr r2, [r7, #0xb0] + ldr r0, [r2, #0x10] + and r1, r0, #0xc0000000 + cmp r1, #0x80000000 + beq _020B8E5C + bic r0, r0, #0xc0000000 + str r0, [r2, #0x10] + ldr r2, [r7, #0xb0] + ldr r3, _020B90FC ; =UNK_02106638 + ldr r0, [r2, #0x10] + ldr r1, _020B9100 ; =UNK_0210663C + orr r0, r0, #0x80000000 + str r0, [r2, #0x10] + ldr r2, [r7, #0xb0] + ldr r0, [r3, #0x0] + ldr r4, [r2, #0x10] + mov r2, #0x1 + str r4, [r3, #0x4] + bl FUN_020BB1C0 +_020B8E5C: + mov r0, #0x3 + str r0, [sp, #0x0] + add r1, sp, #0x0 + mov r0, #0x10 + mov r2, #0x1 + bl FUN_020BB1C0 + ldr r0, [r7, #0x3c] + cmp r0, #0x0 + ldrneb r6, [r7, #0x98] + moveq r6, #0x0 + cmp r6, #0x1 + bne _020B8EC0 + ldr r1, [r7, #0x8] + mov r0, r7 + bic r1, r1, #0x40 + str r1, [r7, #0x8] + ldr r1, [r7, #0x3c] + blx r1 + ldr r0, [r7, #0x3c] + cmp r0, #0x0 + ldrneb r6, [r7, #0x98] + ldr r0, [r7, #0x8] + moveq r6, #0x0 + and r0, r0, #0x40 + b _020B8EC4 +_020B8EC0: + mov r0, #0x0 +_020B8EC4: + cmp r0, #0x0 + bne _020B8F3C + ldr r0, [r7, #0xb0] + add r1, sp, #0x38 + ldrh r4, [r0, #0x2e] + ldrh r5, [r0, #0x2c] + mov r3, #0x10000 + rsb r0, r4, #0x0 + mov r12, r0, lsl #0xf + mov lr, r5, lsl #0xf + mov r0, #0x1b + mov r2, #0x3 + str lr, [sp, #0x38] + str r12, [sp, #0x3c] + str r3, [sp, #0x40] + bl FUN_020BB1C0 + mov r0, r5, lsl #0x13 + mov r1, r4, lsl #0x13 + mov r0, r0, asr #0x10 + mov r1, r1, asr #0x10 + mov r0, r0, lsl #0x10 + mov r1, r1, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r1, lsr #0x10 + orr r3, r2, r0, lsl #0x10 + add r1, sp, #0x4 + mov r0, #0x22 + mov r2, #0x1 + str r3, [sp, #0x4] + bl FUN_020BB1C0 +_020B8F3C: + cmp r6, #0x2 + bne _020B8F78 + ldr r1, [r7, #0x8] + mov r0, r7 + bic r1, r1, #0x40 + str r1, [r7, #0x8] + ldr r1, [r7, #0x3c] + blx r1 + ldr r0, [r7, #0x3c] + cmp r0, #0x0 + ldrneb r6, [r7, #0x98] + ldr r0, [r7, #0x8] + moveq r6, #0x0 + and r0, r0, #0x40 + b _020B8F7C +_020B8F78: + mov r0, #0x0 +_020B8F7C: + cmp r0, #0x0 + bne _020B8FE0 + ldr r4, [r7, #0xd8] + ldr r0, [r7, #0x0] + ldrh r2, [r4, #0xa] + add r3, r4, #0x4 + ldrb r0, [r0, #0x1] + ldrh r1, [r3, r2] + add r2, r3, r2 + mla r0, r1, r0, r2 + ldr r0, [r0, #0x4] + add r1, r4, r0 + ldrh r2, [r1, #0x1e] + ands r0, r2, #0x2000 + beq _020B8FE0 + add r1, r1, #0x2c + ands r0, r2, #0x2 + addeq r1, r1, #0x8 + ands r0, r2, #0x4 + addeq r1, r1, #0x4 + ands r0, r2, #0x8 + addeq r1, r1, #0x8 + mov r0, #0x18 + mov r2, #0x10 + bl FUN_020BB1C0 +_020B8FE0: + cmp r6, #0x3 + movne r0, #0x0 + bne _020B900C + ldr r1, [r7, #0x8] + mov r0, r7 + bic r1, r1, #0x40 + str r1, [r7, #0x8] + ldr r1, [r7, #0x3c] + blx r1 + ldr r0, [r7, #0x8] + and r0, r0, #0x40 +_020B900C: + cmp r0, #0x0 + bne _020B90D0 + mov r3, #0x2 + add r1, sp, #0x8 + mov r0, #0x10 + mov r2, #0x1 + str r3, [sp, #0x8] + bl FUN_020BB1C0 + add r1, sp, #0x14 + mov r0, #0x0 + bl FUN_020BB824 + mov r3, #0x3 + add r1, sp, #0xc + mov r0, #0x10 + mov r2, #0x1 + str r3, [sp, #0xc] + bl FUN_020BB1C0 + ldr r0, _020B9104 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + ands r0, r1, #0x1 + beq _020B9094 + ldr r1, _020B9108 ; =UNK_021CED64 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + ldr r1, _020B910C ; =UNK_021CEDD4 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + add r1, sp, #0x14 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + b _020B90D0 +_020B9094: + ands r0, r1, #0x2 + beq _020B90C0 + ldr r1, _020B9108 ; =UNK_021CED64 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + add r1, sp, #0x14 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + b _020B90D0 +_020B90C0: + add r1, sp, #0x14 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 +_020B90D0: + mov r3, #0x2 + add r1, sp, #0x10 + mov r0, #0x10 + mov r2, #0x1 + str r3, [sp, #0x10] + bl FUN_020BB1C0 +_020B90E8: + ldr r0, [r7, #0x0] + add r0, r0, #0x3 + str r0, [r7, #0x0] + add sp, sp, #0x44 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020B90FC: .word UNK_02106638 +_020B9100: .word UNK_0210663C +_020B9104: .word UNK_021CED18 +_020B9108: .word UNK_021CED64 +_020B910C: .word UNK_021CEDD4 + arm_func_end FUN_020B8DF0 + + ; _end + arm_func_start FUN_020B9110 +FUN_020B9110: ; 0x020B9110 + stmdb sp!, {r4,lr} + sub sp, sp, #0x10 + mov r4, r0 + ldr r2, [r4, #0x8] + ands r0, r2, #0x100 + bne _020B9164 + ands r0, r2, #0x200 + bne _020B9164 + cmp r1, #0x0 + ldreq r0, [r4, #0xe0] + add r1, sp, #0x0 + streq r0, [sp, #0x8] + streq r0, [sp, #0x4] + streq r0, [sp, #0x0] + ldrne r0, [r4, #0xe4] + mov r2, #0x3 + strne r0, [sp, #0x8] + strne r0, [sp, #0x4] + strne r0, [sp, #0x0] + mov r0, #0x1b + bl FUN_020BB1C0 +_020B9164: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + add sp, sp, #0x10 + ldmia sp!, {r4,pc} + arm_func_end FUN_020B9110 + + ; _end + arm_func_start FUN_020B9178 +FUN_020B9178: ; 0x020B9178 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldr r0, [r5, #0x34] + cmp r0, #0x0 + ldrneb r4, [r5, #0x96] + moveq r4, #0x0 + cmp r4, #0x1 + bne _020B91CC + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x34] + blx r1 + ldr r0, [r5, #0x34] + cmp r0, #0x0 + ldrneb r4, [r5, #0x96] + ldr r0, [r5, #0x8] + moveq r4, #0x0 + and r1, r0, #0x40 + b _020B91D0 +_020B91CC: + mov r1, #0x0 +_020B91D0: + ldr r0, [r5, #0x8] + ands r0, r0, #0x100 + bne _020B9228 + cmp r1, #0x0 + bne _020B9228 + ldr r0, [r5, #0x0] + ldrb r12, [r0, #0x1] + ldrb r3, [r0, #0x2] + ldrb lr, [r0, #0x3] + ldrb r2, [r0, #0x5] + ldrb r1, [r0, #0x6] + orr r3, r12, r3, lsl #0x8 + ldrb r6, [r0, #0x4] + orr r12, r3, lr, lsl #0x10 + ldrb r3, [r0, #0x7] + orr r1, r2, r1, lsl #0x8 + orr r6, r12, r6, lsl #0x18 + ldrb r2, [r0, #0x8] + orr r1, r1, r3, lsl #0x10 + add r0, r0, r6 + orr r1, r1, r2, lsl #0x18 + bl FUN_020BB2B0 +_020B9228: + cmp r4, #0x3 + bne _020B9248 + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x34] + blx r1 +_020B9248: + ldr r0, [r5, #0x0] + add r0, r0, #0x9 + str r0, [r5, #0x0] + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020B9178 + + ; NNSi_G3dFuncSbc_NODEMIX + arm_func_start FUN_020B9258 +FUN_020B9258: ; 0x020B9258 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x8c + ldr r1, [r0, #0x4] + ldr r4, [r0, #0x0] + ldr r6, [r1, #0x4] + ldrb r2, [r4, #0x2] + ldr r3, [r6, #0x10] + mov r10, #0x0 + str r0, [sp, #0x0] + str r2, [sp, #0x8] + add r3, r6, r3 + add r1, sp, #0x34 + mov r0, r10 + mov r2, #0x54 + mov r9, r10 + str r3, [sp, #0x4] + add r8, r4, #0x3 + bl MIi_CpuClearFast + bl FUN_020BB394 + ldr r0, _020B98AC ; =0x04000440 + mov r7, r10 + str r7, [r0, #0x0] + mov r0, #0x1 + ldr r2, _020B98B0 ; =0x0400044C + ldr r1, _020B98B4 ; =0x04000454 + str r0, [r2, #0x0] + str r0, [sp, #0x10] + str r7, [r1, #0x0] + mov r1, #0x2 + ldr r0, _020B98AC ; =0x04000440 + str r1, [sp, #0x14] + str r1, [r0, #0x0] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bls _020B96CC +_020B92E4: + ldrb r4, [r8, #0x1] + mov r0, #0x64 + ldr r3, _020B98B8 ; =UNK_021D0380 + mul r0, r4, r0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x0] + mov r1, r4, lsr #0x5 + add r0, r0, r1, lsl #0x2 + ldr r1, [sp, #0x10] + and r2, r4, #0x1f + mov r1, r1, lsl r2 + ldr r11, [r0, #0xcc] + ldr r2, [sp, #0xc] + ands r11, r1, r11 + add r6, r3, r2 + bne _020B9358 + ldr r3, [r0, #0xcc] + mov r2, #0x54 + orr r1, r3, r1 + str r1, [r0, #0xcc] + ldr r0, [sp, #0x4] + ldr r1, _020B98BC ; =0x04000450 + mla r0, r4, r2, r0 + ldrb r2, [r8, #0x0] + str r2, [r1, #0x0] + ldr r2, [sp, #0x10] + ldr r1, _020B98AC ; =0x04000440 + str r2, [r1, #0x0] + bl G3_MultMtx43 +_020B9358: + cmp r7, #0x0 + beq _020B9500 + ldr r2, [sp, #0x6c] + ldr r1, [r5, #0x0] + str r2, [sp, #0x18] + ldr r2, [sp, #0x70] + mov r0, r1, asr #0x1f + str r2, [sp, #0x1c] + ldr r2, [sp, #0x74] + ldr r12, [sp, #0x64] + str r2, [sp, #0x20] + ldr r2, [sp, #0x78] + ldr lr, [sp, #0x68] + str r2, [sp, #0x24] + ldr r2, [sp, #0x7c] + str r2, [sp, #0x28] + ldr r2, [sp, #0x80] + str r2, [sp, #0x2c] + ldr r2, [sp, #0x84] + str r2, [sp, #0x30] + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r0, r3, lsr #0xc + orr r0, r0, r2, lsl #0x14 + adds r0, r12, r0 + str r0, [sp, #0x64] + ldr r1, [r5, #0x4] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r0, r3, lsr #0xc + orr r0, r0, r2, lsl #0x14 + adds r0, lr, r0 + str r0, [sp, #0x68] + ldr r1, [r5, #0x8] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x18] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x6c] + ldr r1, [r5, #0xc] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x1c] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x70] + ldr r1, [r5, #0x10] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x20] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x74] + ldr r1, [r5, #0x14] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x24] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x78] + ldr r1, [r5, #0x18] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x28] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x7c] + ldr r1, [r5, #0x1c] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x2c] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x80] + ldr r1, [r5, #0x20] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r1, r3, lsr #0xc + ldr r0, [sp, #0x30] + orr r1, r1, r2, lsl #0x14 + adds r0, r0, r1 + str r0, [sp, #0x84] +_020B9500: + cmp r11, #0x0 + bne _020B9538 +_020B9508: + mov r0, r6 + bl G3X_GetClipMtx + cmp r0, #0x0 + bne _020B9508 + ldr r1, [sp, #0x14] + ldr r0, _020B98AC ; =0x04000440 + str r1, [r0, #0x0] + ldr r0, [sp, #0x4] + mov r1, #0x54 + mla r0, r4, r1, r0 + add r0, r0, #0x30 + bl G3_MultMtx33 +_020B9538: + ldrb r1, [r8, #0x2] + ldr r2, [sp, #0x34] + ldr r0, [r6, #0x0] + mov r10, r1, lsl #0x4 + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x34] + mov r9, r10, asr #0x1f + ldr r2, [sp, #0x38] + ldr r0, [r6, #0x4] + ldr r3, [sp, #0x3c] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x38] + ldr r0, [r6, #0x8] + ldr r2, [sp, #0x40] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r3, r1 + str r0, [sp, #0x3c] + ldr r0, [r6, #0x10] + ldr r3, [sp, #0x44] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x40] + ldr r0, [r6, #0x14] + ldr r2, [sp, #0x48] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r3, r1 + str r0, [sp, #0x44] + ldr r0, [r6, #0x18] + ldr r3, [sp, #0x4c] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x48] + ldr r0, [r6, #0x20] + ldr r2, [sp, #0x50] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r3, r1 + str r0, [sp, #0x4c] + ldr r0, [r6, #0x24] + ldr r3, [sp, #0x54] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x50] + ldr r0, [r6, #0x28] + ldr r2, [sp, #0x58] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r3, r1 + str r0, [sp, #0x54] + ldr r0, [r6, #0x30] + ldr r3, [sp, #0x5c] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x58] + ldr r0, [r6, #0x34] + ldr r2, [sp, #0x60] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r3, r1 + str r0, [sp, #0x5c] + ldr r0, [r6, #0x38] + smull r1, r0, r10, r0 + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + adds r0, r2, r1 + str r0, [sp, #0x60] + cmp r11, #0x0 + ldr r1, _020B98C0 ; =UNK_021D03C0 + ldr r0, [sp, #0xc] + add r5, r1, r0 + add r8, r8, #0x3 + bne _020B96BC +_020B96AC: + mov r0, r5 + bl G3X_GetVectorMtx + cmp r0, #0x0 + bne _020B96AC +_020B96BC: + ldr r0, [sp, #0x8] + add r7, r7, #0x1 + cmp r7, r0 + blo _020B92E4 +_020B96CC: + ldr r1, [r5, #0x0] + ldr r4, [sp, #0x64] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r0, r3, lsr #0xc + orr r0, r0, r2, lsl #0x14 + adds r0, r4, r0 + str r0, [sp, #0x64] + ldr r1, [r5, #0x4] + ldr r4, [sp, #0x68] + mov r0, r1, asr #0x1f + umull r3, r2, r10, r1 + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + mov r0, r3, lsr #0xc + orr r0, r0, r2, lsl #0x14 + adds r0, r4, r0 + str r0, [sp, #0x68] + ldr r1, [r5, #0x8] + ldr r4, [sp, #0x6c] + umull r0, r2, r10, r1 + mov r3, r0, lsr #0xc + mov r0, r1, asr #0x1f + mla r2, r10, r0, r2 + mla r2, r9, r1, r2 + orr r3, r3, r2, lsl #0x14 + adds r0, r4, r3 + str r0, [sp, #0x6c] + ldr r7, [r5, #0xc] + ldr r12, [sp, #0x70] + mov r6, r7, asr #0x1f + umull r11, r8, r10, r7 + mla r8, r10, r6, r8 + mla r8, r9, r7, r8 + mov r6, r11, lsr #0xc + orr r6, r6, r8, lsl #0x14 + adds r6, r12, r6 + str r6, [sp, #0x70] + ldr r7, [r5, #0x10] + ldr r4, [sp, #0x74] + mov r6, r7, asr #0x1f + umull r11, r8, r10, r7 + mla r8, r10, r6, r8 + mla r8, r9, r7, r8 + mov r6, r11, lsr #0xc + orr r6, r6, r8, lsl #0x14 + adds r4, r4, r6 + str r4, [sp, #0x74] + ldr r6, [r5, #0x14] + ldr r3, [sp, #0x78] + mov r4, r6, asr #0x1f + umull r8, r7, r10, r6 + mla r7, r10, r4, r7 + mla r7, r9, r6, r7 + mov r4, r8, lsr #0xc + orr r4, r4, r7, lsl #0x14 + adds r3, r3, r4 + str r3, [sp, #0x78] + ldr r4, [r5, #0x18] + ldr r2, [sp, #0x7c] + mov r3, r4, asr #0x1f + umull r7, r6, r10, r4 + mla r6, r10, r3, r6 + mla r6, r9, r4, r6 + mov r3, r7, lsr #0xc + orr r3, r3, r6, lsl #0x14 + adds r2, r2, r3 + str r2, [sp, #0x7c] + ldr r3, [r5, #0x1c] + ldr r1, [sp, #0x80] + mov r2, r3, asr #0x1f + umull r6, r4, r10, r3 + mla r4, r10, r2, r4 + mla r4, r9, r3, r4 + mov r2, r6, lsr #0xc + orr r2, r2, r4, lsl #0x14 + adds r1, r1, r2 + str r1, [sp, #0x80] + ldr r2, [r5, #0x20] + ldr lr, [sp, #0x84] + mov r1, r2, asr #0x1f + umull r4, r3, r10, r2 + mla r3, r10, r1, r3 + mla r3, r9, r2, r3 + mov r1, r4, lsr #0xc + orr r1, r1, r3, lsl #0x14 + adds r1, lr, r1 + add r0, sp, #0x64 + str r1, [sp, #0x84] + bl G3_LoadMtx43 + ldr r1, _020B98AC ; =0x04000440 + mov r2, #0x1 + add r0, sp, #0x34 + str r2, [r1, #0x0] + bl G3_LoadMtx43 + ldr r3, _020B98AC ; =0x04000440 + mov r0, #0x0 + str r0, [r3, #0x0] + ldr r1, _020B98BC ; =0x04000450 + mov r2, #0x1 + mov r0, #0x2 + str r2, [r1, #0x0] + str r0, [r3, #0x0] + ldr r0, [sp, #0x0] + ldr r1, [r0, #0x0] + ldr r0, _020B98B0 ; =0x0400044C + ldrb r2, [r1, #0x1] + mov r1, #0x3 + str r2, [r0, #0x0] + ldr r0, [sp, #0x0] + ldr r2, [r0, #0x0] + ldrb r0, [r2, #0x2] + add r0, r0, #0x1 + mla r1, r0, r1, r2 + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + add sp, sp, #0x8c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B98AC: .word 0x04000440 +_020B98B0: .word 0x0400044C +_020B98B4: .word 0x04000454 +_020B98B8: .word UNK_021D0380 +_020B98BC: .word 0x04000450 +_020B98C0: .word UNK_021D03C0 + arm_func_end FUN_020B9258 + + ; NNSi_G3dFuncSbc_BBY + arm_func_start FUN_020B98C4 +FUN_020B98C4: ; 0x020B98C4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xcc + mov r10, r0 + ldr r2, [r10, #0x8] + mov r9, r1 + ands r0, r2, #0x200 + mov r7, #0x2 + ldr r6, _020B9C28 ; =UNK_02106718 + ldr fp, _020B9C2C ; =UNK_02106724 + ldr r5, _020B9C30 ; =UNK_021066F4 + beq _020B992C + cmp r9, #0x40 + beq _020B9900 + cmp r9, #0x60 + bne _020B9904 +_020B9900: + add r7, r7, #0x1 +_020B9904: + cmp r9, #0x20 + beq _020B9914 + cmp r9, #0x60 + bne _020B9918 +_020B9914: + add r7, r7, #0x1 +_020B9918: + ldr r0, [r10, #0x0] + add sp, sp, #0xcc + add r0, r0, r7 + str r0, [r10, #0x0] + ldmia sp!, {r4-r11,pc} +_020B992C: + cmp r9, #0x40 + beq _020B993C + cmp r9, #0x60 + bne _020B9974 +_020B993C: + add r7, r7, #0x1 + ands r0, r2, #0x100 + bne _020B9974 + cmp r9, #0x40 + ldreq r0, [r10, #0x0] + add r1, sp, #0x0 + ldreqb r0, [r0, #0x2] + mov r2, #0x1 + streq r0, [sp, #0x0] + ldrne r0, [r10, #0x0] + ldrneb r0, [r0, #0x3] + strne r0, [sp, #0x0] + mov r0, #0x14 + bl FUN_020BB1C0 +_020B9974: + ldr r0, [r10, #0x2c] + cmp r0, #0x0 + ldrneb r8, [r10, #0x94] + moveq r8, #0x0 + cmp r8, #0x1 + bne _020B99C0 + ldr r1, [r10, #0x8] + mov r0, r10 + bic r1, r1, #0x40 + str r1, [r10, #0x8] + ldr r1, [r10, #0x2c] + blx r1 + ldr r0, [r10, #0x2c] + cmp r0, #0x0 + ldrneb r8, [r10, #0x94] + ldr r0, [r10, #0x8] + moveq r8, #0x0 + and r1, r0, #0x40 + b _020B99C4 +_020B99C0: + mov r1, #0x0 +_020B99C4: + ldr r0, [r10, #0x8] + ands r0, r0, #0x100 + bne _020B9BA4 + cmp r1, #0x0 + bne _020B9BA4 + bl FUN_020BB394 + ldr r2, _020B9C34 ; =0x00151110 + ldr r1, _020B9C38 ; =0x04000400 + mov r0, #0x0 + str r2, [r1, #0x0] + str r0, [r1, #0x0] + str r0, [r1, #0x0] + add r4, sp, #0x8 +_020B99F8: + mov r0, r4 + bl G3X_GetClipMtx + cmp r0, #0x0 + bne _020B99F8 + ldr r0, _020B9C3C ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + ands r0, r1, #0x1 + beq _020B9A38 + bl FUN_020B82A4 + add r1, sp, #0x48 + bl MTX_Copy43To44_ + add r0, sp, #0x8 + add r1, sp, #0x48 + mov r2, r0 + bl MTX_Concat44 + b _020B9A5C +_020B9A38: + ands r0, r1, #0x2 + beq _020B9A5C + ldr r0, _020B9C40 ; =UNK_021CED64 + add r1, sp, #0x88 + bl MTX_Copy43To44_ + add r0, sp, #0x8 + add r1, sp, #0x88 + mov r2, r0 + bl MTX_Concat44 +_020B9A5C: + ldr r1, [sp, #0x38] + add r0, sp, #0x8 + str r1, [r6, #0x0] + ldr r1, [sp, #0x3c] + str r1, [r6, #0x4] + ldr r1, [sp, #0x40] + str r1, [r6, #0x8] + bl VEC_Mag + str r0, [r11, #0x0] + add r0, sp, #0x18 + bl VEC_Mag + str r0, [r11, #0x4] + add r0, sp, #0x28 + bl VEC_Mag + str r0, [r11, #0x8] + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + bne _020B9AB0 + ldr r0, [sp, #0x20] + cmp r0, #0x0 + beq _020B9AD4 +_020B9AB0: + add r0, sp, #0x18 + add r1, r5, #0xc + bl VEC_Normalize + ldr r0, [r5, #0x14] + rsb r0, r0, #0x0 + str r0, [r5, #0x1c] + ldr r0, [r5, #0x10] + str r0, [r5, #0x20] + b _020B9AF4 +_020B9AD4: + add r0, sp, #0x28 + add r1, r5, #0x18 + bl VEC_Normalize + ldr r0, [r5, #0x1c] + rsb r0, r0, #0x0 + str r0, [r5, #0x14] + ldr r0, [r5, #0x20] + str r0, [r5, #0x10] +_020B9AF4: + ldr r0, _020B9C3C ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + ands r0, r1, #0x1 + beq _020B9B48 + ldr r3, _020B9C44 ; =0x00171012 + ldr r1, _020B9C38 ; =0x04000400 + ldr r0, _020B9C48 ; =UNK_021066EC + mov r2, #0x8 + str r3, [r1, #0x0] + bl MIi_CpuSend32 + bl FUN_020B8264 + ldr r1, _020B9C38 ; =0x04000400 + mov r2, #0x30 + bl MIi_CpuSend32 + ldr r2, _020B9C4C ; =0x00001B19 + ldr r1, _020B9C38 ; =0x04000400 + ldr r0, _020B9C30 ; =UNK_021066F4 + str r2, [r1, #0x0] + mov r2, #0x3c + bl MIi_CpuSend32 + b _020B9BA4 +_020B9B48: + ands r0, r1, #0x2 + beq _020B9B94 + ldr r3, _020B9C44 ; =0x00171012 + ldr r1, _020B9C38 ; =0x04000400 + ldr r0, _020B9C48 ; =UNK_021066EC + mov r2, #0x8 + str r3, [r1, #0x0] + bl MIi_CpuSend32 + bl FUN_020B8344 + ldr r1, _020B9C38 ; =0x04000400 + mov r2, #0x30 + bl MIi_CpuSend32 + ldr r2, _020B9C4C ; =0x00001B19 + ldr r1, _020B9C38 ; =0x04000400 + ldr r0, _020B9C30 ; =UNK_021066F4 + str r2, [r1, #0x0] + mov r2, #0x3c + bl MIi_CpuSend32 + b _020B9BA4 +_020B9B94: + ldr r0, _020B9C50 ; =UNK_021066E8 + ldr r1, _020B9C38 ; =0x04000400 + mov r2, #0x48 + bl MIi_CpuSend32 +_020B9BA4: + cmp r8, #0x3 + movne r0, #0x0 + bne _020B9BD0 + ldr r1, [r10, #0x8] + mov r0, r10 + bic r1, r1, #0x40 + str r1, [r10, #0x8] + ldr r1, [r10, #0x2c] + blx r1 + ldr r0, [r10, #0x8] + and r0, r0, #0x40 +_020B9BD0: + cmp r9, #0x20 + beq _020B9BE0 + cmp r9, #0x60 + bne _020B9C14 +_020B9BE0: + cmp r0, #0x0 + add r7, r7, #0x1 + bne _020B9C14 + ldr r0, [r10, #0x8] + ands r0, r0, #0x100 + bne _020B9C14 + ldr r0, [r10, #0x0] + add r1, sp, #0x4 + ldrb r3, [r0, #0x2] + mov r0, #0x13 + mov r2, #0x1 + str r3, [sp, #0x4] + bl FUN_020BB1C0 +_020B9C14: + ldr r0, [r10, #0x0] + add r0, r0, r7 + str r0, [r10, #0x0] + add sp, sp, #0xcc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020B9C28: .word UNK_02106718 +_020B9C2C: .word UNK_02106724 +_020B9C30: .word UNK_021066F4 +_020B9C34: .word 0x00151110 +_020B9C38: .word 0x04000400 +_020B9C3C: .word UNK_021CED18 +_020B9C40: .word UNK_021CED64 +_020B9C44: .word 0x00171012 +_020B9C48: .word UNK_021066EC +_020B9C4C: .word 0x00001B19 +_020B9C50: .word UNK_021066E8 + arm_func_end FUN_020B98C4 + + ; NNSi_G3dFuncSbc_BB + arm_func_start FUN_020B9C54 +FUN_020B9C54: ; 0x020B9C54 + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0xc8 + mov r9, r0 + ldr r2, [r9, #0x8] + mov r8, r1 + ands r0, r2, #0x200 + mov r6, #0x2 + ldr r5, _020B9F58 ; =UNK_021066D0 + ldr r4, _020B9F5C ; =UNK_021066DC + beq _020B9CB8 + cmp r8, #0x40 + beq _020B9C8C + cmp r8, #0x60 + bne _020B9C90 +_020B9C8C: + add r6, r6, #0x1 +_020B9C90: + cmp r8, #0x20 + beq _020B9CA0 + cmp r8, #0x60 + bne _020B9CA4 +_020B9CA0: + add r6, r6, #0x1 +_020B9CA4: + ldr r0, [r9, #0x0] + add sp, sp, #0xc8 + add r0, r0, r6 + str r0, [r9, #0x0] + ldmia sp!, {r4-r10,pc} +_020B9CB8: + cmp r8, #0x40 + beq _020B9CC8 + cmp r8, #0x60 + bne _020B9D00 +_020B9CC8: + add r6, r6, #0x1 + ands r0, r2, #0x100 + bne _020B9D00 + cmp r8, #0x40 + ldreq r0, [r9, #0x0] + add r1, sp, #0x0 + ldreqb r0, [r0, #0x2] + mov r2, #0x1 + streq r0, [sp, #0x0] + ldrne r0, [r9, #0x0] + ldrneb r0, [r0, #0x3] + strne r0, [sp, #0x0] + mov r0, #0x14 + bl FUN_020BB1C0 +_020B9D00: + ldr r0, [r9, #0x28] + cmp r0, #0x0 + ldrneb r7, [r9, #0x93] + moveq r7, #0x0 + cmp r7, #0x1 + bne _020B9D4C + ldr r1, [r9, #0x8] + mov r0, r9 + bic r1, r1, #0x40 + str r1, [r9, #0x8] + ldr r1, [r9, #0x28] + blx r1 + ldr r0, [r9, #0x28] + cmp r0, #0x0 + ldrneb r7, [r9, #0x93] + ldr r0, [r9, #0x8] + moveq r7, #0x0 + and r1, r0, #0x40 + b _020B9D50 +_020B9D4C: + mov r1, #0x0 +_020B9D50: + ldr r0, [r9, #0x8] + ands r0, r0, #0x100 + bne _020B9ED4 + cmp r1, #0x0 + bne _020B9ED4 + bl FUN_020BB394 + ldr r2, _020B9F60 ; =0x00151110 + ldr r1, _020B9F64 ; =0x04000400 + mov r0, #0x0 + str r2, [r1, #0x0] + str r0, [r1, #0x0] + str r0, [r1, #0x0] + add r10, sp, #0x8 +_020B9D84: + mov r0, r10 + bl G3X_GetClipMtx + cmp r0, #0x0 + bne _020B9D84 + ldr r0, _020B9F68 ; =UNK_021CED18 + ldr r1, [r0, #0xfc] + ands r0, r1, #0x1 + beq _020B9DC4 + bl FUN_020B82A4 + add r1, sp, #0x48 + bl MTX_Copy43To44_ + add r0, sp, #0x8 + add r1, sp, #0x48 + mov r2, r0 + bl MTX_Concat44 + b _020B9DE8 +_020B9DC4: + ands r0, r1, #0x2 + beq _020B9DE8 + ldr r0, _020B9F6C ; =UNK_021CED64 + add r1, sp, #0x88 + bl MTX_Copy43To44_ + add r0, sp, #0x8 + add r1, sp, #0x88 + mov r2, r0 + bl MTX_Concat44 +_020B9DE8: + ldr r1, [sp, #0x38] + add r0, sp, #0x8 + str r1, [r5, #0x0] + ldr r1, [sp, #0x3c] + str r1, [r5, #0x4] + ldr r1, [sp, #0x40] + str r1, [r5, #0x8] + bl VEC_Mag + str r0, [r4, #0x0] + add r0, sp, #0x18 + bl VEC_Mag + str r0, [r4, #0x4] + add r0, sp, #0x28 + bl VEC_Mag + ldr r1, _020B9F68 ; =UNK_021CED18 + str r0, [r4, #0x8] + ldr r1, [r1, #0xfc] + ands r0, r1, #0x1 + beq _020B9E78 + ldr r3, _020B9F70 ; =0x00171012 + ldr r1, _020B9F64 ; =0x04000400 + ldr r0, _020B9F74 ; =UNK_021066A4 + mov r2, #0x8 + str r3, [r1, #0x0] + bl MIi_CpuSend32 + bl FUN_020B8264 + ldr r1, _020B9F64 ; =0x04000400 + mov r2, #0x30 + bl MIi_CpuSend32 + ldr r2, _020B9F78 ; =0x00001B19 + ldr r1, _020B9F64 ; =0x04000400 + ldr r0, _020B9F7C ; =UNK_021066AC + str r2, [r1, #0x0] + mov r2, #0x3c + bl MIi_CpuSend32 + b _020B9ED4 +_020B9E78: + ands r0, r1, #0x2 + beq _020B9EC4 + ldr r3, _020B9F70 ; =0x00171012 + ldr r1, _020B9F64 ; =0x04000400 + ldr r0, _020B9F74 ; =UNK_021066A4 + mov r2, #0x8 + str r3, [r1, #0x0] + bl MIi_CpuSend32 + bl FUN_020B8344 + ldr r1, _020B9F64 ; =0x04000400 + mov r2, #0x30 + bl MIi_CpuSend32 + ldr r2, _020B9F78 ; =0x00001B19 + ldr r1, _020B9F64 ; =0x04000400 + ldr r0, _020B9F7C ; =UNK_021066AC + str r2, [r1, #0x0] + mov r2, #0x3c + bl MIi_CpuSend32 + b _020B9ED4 +_020B9EC4: + ldr r0, _020B9F80 ; =UNK_021066A0 + ldr r1, _020B9F64 ; =0x04000400 + mov r2, #0x48 + bl MIi_CpuSend32 +_020B9ED4: + cmp r7, #0x3 + movne r0, #0x0 + bne _020B9F00 + ldr r1, [r9, #0x8] + mov r0, r9 + bic r1, r1, #0x40 + str r1, [r9, #0x8] + ldr r1, [r9, #0x28] + blx r1 + ldr r0, [r9, #0x8] + and r0, r0, #0x40 +_020B9F00: + cmp r8, #0x20 + beq _020B9F10 + cmp r8, #0x60 + bne _020B9F44 +_020B9F10: + cmp r0, #0x0 + add r6, r6, #0x1 + bne _020B9F44 + ldr r0, [r9, #0x8] + ands r0, r0, #0x100 + bne _020B9F44 + ldr r0, [r9, #0x0] + add r1, sp, #0x4 + ldrb r3, [r0, #0x2] + mov r0, #0x13 + mov r2, #0x1 + str r3, [sp, #0x4] + bl FUN_020BB1C0 +_020B9F44: + ldr r0, [r9, #0x0] + add r0, r0, r6 + str r0, [r9, #0x0] + add sp, sp, #0xc8 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020B9F58: .word UNK_021066D0 +_020B9F5C: .word UNK_021066DC +_020B9F60: .word 0x00151110 +_020B9F64: .word 0x04000400 +_020B9F68: .word UNK_021CED18 +_020B9F6C: .word UNK_021CED64 +_020B9F70: .word 0x00171012 +_020B9F74: .word UNK_021066A4 +_020B9F78: .word 0x00001B19 +_020B9F7C: .word UNK_021066AC +_020B9F80: .word UNK_021066A0 + arm_func_end FUN_020B9C54 + + ; NNSi_G3dFuncSbc_NODEDESC + arm_func_start FUN_020B9F84 +FUN_020B9F84: ; 0x020B9F84 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r0, [r10, #0x0] + mov r9, r1 + ldrb r4, [r0, #0x1] + mov r7, #0x4 + strb r4, [r10, #0xae] + ldr r0, [r10, #0x8] + orr r0, r0, #0x10 + str r0, [r10, #0x8] + ldr r1, [r10, #0x8] + ands r0, r1, #0x400 + beq _020BA01C + cmp r9, #0x40 + beq _020B9FCC + cmp r9, #0x60 + bne _020B9FD0 +_020B9FCC: + add r7, r7, #0x1 +_020B9FD0: + cmp r9, #0x20 + beq _020B9FE0 + cmp r9, #0x60 + bne _020BA008 +_020B9FE0: + add r7, r7, #0x1 + ands r0, r1, #0x100 + bne _020BA008 + ldr r0, [r10, #0x0] + add r1, sp, #0x8 + ldrb r3, [r0, #0x4] + mov r0, #0x14 + mov r2, #0x1 + str r3, [sp, #0x8] + bl FUN_020BB1C0 +_020BA008: + ldr r0, [r10, #0x0] + add sp, sp, #0x14 + add r0, r0, r7 + str r0, [r10, #0x0] + ldmia sp!, {r4-r11,pc} +_020BA01C: + cmp r9, #0x40 + beq _020BA02C + cmp r9, #0x60 + bne _020BA068 +_020BA02C: + cmp r9, #0x40 + ldreq r0, [r10, #0x0] + add r7, r7, #0x1 + ldreqb r0, [r0, #0x4] + streq r0, [sp, #0xc] + ldrne r0, [r10, #0x0] + ldrneb r0, [r0, #0x5] + strne r0, [sp, #0xc] + ldr r0, [r10, #0x8] + ands r0, r0, #0x100 + bne _020BA068 + add r1, sp, #0xc + mov r0, #0x14 + mov r2, #0x1 + bl FUN_020BB1C0 +_020BA068: + add r0, r10, #0x12c + str r0, [r10, #0xb4] + ldr r0, [r10, #0x24] + cmp r0, #0x0 + ldrneb r8, [r10, #0x92] + moveq r8, #0x0 + cmp r8, #0x1 + bne _020BA0BC + ldr r1, [r10, #0x8] + mov r0, r10 + bic r1, r1, #0x40 + str r1, [r10, #0x8] + ldr r1, [r10, #0x24] + blx r1 + ldr r0, [r10, #0x24] + cmp r0, #0x0 + ldrneb r8, [r10, #0x92] + ldr r0, [r10, #0x8] + moveq r8, #0x0 + and r0, r0, #0x40 + b _020BA0C0 +_020BA0BC: + mov r0, #0x0 +_020BA0C0: + cmp r0, #0x0 + bne _020BA2CC + ldr r0, [r10, #0x4] + ldr r1, [r0, #0x34] + cmp r1, #0x0 + beq _020BA0F4 + mov r0, #0x58 + mla r6, r4, r0, r1 + ldr r0, [r10, #0x8] + ands r0, r0, #0x80 + moveq r0, #0x1 + movne r0, #0x0 + b _020BA0FC +_020BA0F4: + add r6, r10, #0x12c + mov r0, #0x0 +_020BA0FC: + cmp r0, #0x0 + bne _020BA2C8 + mov r0, #0x0 + str r0, [r6, #0x0] + ldr r0, [r10, #0x4] + ldr r1, [r0, #0x10] + cmp r1, #0x0 + beq _020BA134 + ldr r3, [r0, #0x14] + mov r0, r6 + mov r2, r4 + blx r3 + cmp r0, #0x0 + bne _020BA2C8 +_020BA134: + ldr r2, [r10, #0xd4] + ldrh r0, [r2, #0x6] + ldrh r1, [r2, r0] + add r0, r2, r0 + mla r0, r1, r4, r0 + ldr r1, [r0, #0x4] + ldrh r0, [r2, r1] + add r4, r2, r1 + add r5, r4, #0x4 + ands r0, r0, #0x1 + ldrne r0, [r6, #0x0] + orrne r0, r0, #0x4 + strne r0, [r6, #0x0] + bne _020BA188 + ldr r0, [r5, #0x0] + str r0, [r6, #0x4c] + ldr r0, [r5, #0x4] + str r0, [r6, #0x50] + ldr r0, [r5, #0x8] + add r5, r5, #0xc + str r0, [r6, #0x54] +_020BA188: + ldrh r1, [r4, #0x0] + ands r0, r1, #0x2 + ldrne r0, [r6, #0x0] + orrne r0, r0, #0x2 + strne r0, [r6, #0x0] + bne _020BA2B0 + ands r0, r1, #0x8 + beq _020BA264 + and r1, r1, #0xf0 + mov r11, r1, asr #0x4 + ldrsh r1, [r5, #0x0] + add r0, r6, #0x28 + str r1, [sp, #0x0] + ldrsh r1, [r5, #0x2] + str r1, [sp, #0x4] + bl MI_Zero36B + ldrh r0, [r4, #0x0] + add r1, r6, r11, lsl #0x2 + add r5, r5, #0x4 + ands r0, r0, #0x100 + movne r0, #0x1000 + rsbne r2, r0, #0x0 + moveq r2, #0x1000 + str r2, [r1, #0x28] + ldr r0, _020BA3B4 ; =UNK_020FF9F0 + ldr r1, _020BA3B8 ; =UNK_020FF9F0 + 1 + ldrb r0, [r0, r11, lsl #0x2] + add r2, r6, r0, lsl #0x2 + ldr r0, [sp, #0x0] + str r0, [r2, #0x28] + ldrb r0, [r1, r11, lsl #0x2] + add r1, r6, r0, lsl #0x2 + ldr r0, [sp, #0x4] + str r0, [r1, #0x28] + ldrh r0, [r4, #0x0] + ands r0, r0, #0x200 + ldrne r0, [sp, #0x4] + rsbne r0, r0, #0x0 + strne r0, [sp, #0x4] + ldr r0, _020BA3BC ; =UNK_020FF9F0 + 2 + ldrb r0, [r0, r11, lsl #0x2] + add r1, r6, r0, lsl #0x2 + ldr r0, [sp, #0x4] + str r0, [r1, #0x28] + ldrh r0, [r4, #0x0] + ands r0, r0, #0x400 + ldrne r0, [sp, #0x0] + rsbne r0, r0, #0x0 + strne r0, [sp, #0x0] + ldr r0, _020BA3C0 ; =UNK_020FF9F0 + 3 + ldrb r0, [r0, r11, lsl #0x2] + add r1, r6, r0, lsl #0x2 + ldr r0, [sp, #0x0] + str r0, [r1, #0x28] + b _020BA2B0 +_020BA264: + ldrsh r0, [r4, #0x2] + str r0, [r6, #0x28] + ldrsh r0, [r5, #0x0] + str r0, [r6, #0x2c] + ldrsh r0, [r5, #0x2] + str r0, [r6, #0x30] + ldrsh r0, [r5, #0x4] + str r0, [r6, #0x34] + ldrsh r0, [r5, #0x6] + str r0, [r6, #0x38] + ldrsh r0, [r5, #0x8] + str r0, [r6, #0x3c] + ldrsh r0, [r5, #0xa] + str r0, [r6, #0x40] + ldrsh r0, [r5, #0xc] + str r0, [r6, #0x44] + ldrsh r0, [r5, #0xe] + add r5, r5, #0x10 + str r0, [r6, #0x48] +_020BA2B0: + ldrh r3, [r4, #0x0] + ldr r2, [r10, #0x0] + ldr r4, [r10, #0xe8] + mov r0, r6 + mov r1, r5 + blx r4 +_020BA2C8: + str r6, [r10, #0xb4] +_020BA2CC: + cmp r8, #0x2 + bne _020BA308 + ldr r1, [r10, #0x8] + mov r0, r10 + bic r1, r1, #0x40 + str r1, [r10, #0x8] + ldr r1, [r10, #0x24] + blx r1 + ldr r0, [r10, #0x24] + cmp r0, #0x0 + ldrneb r8, [r10, #0x92] + ldr r0, [r10, #0x8] + moveq r8, #0x0 + and r0, r0, #0x40 + b _020BA30C +_020BA308: + mov r0, #0x0 +_020BA30C: + cmp r0, #0x0 + bne _020BA32C + ldr r0, [r10, #0x8] + ands r0, r0, #0x100 + bne _020BA32C + ldr r0, [r10, #0xb4] + ldr r1, [r10, #0xec] + blx r1 +_020BA32C: + mov r0, #0x0 + str r0, [r10, #0xb4] + cmp r8, #0x3 + bne _020BA35C + ldr r1, [r10, #0x8] + mov r0, r10 + bic r1, r1, #0x40 + str r1, [r10, #0x8] + ldr r1, [r10, #0x24] + blx r1 + ldr r0, [r10, #0x8] + and r0, r0, #0x40 +_020BA35C: + cmp r9, #0x20 + beq _020BA36C + cmp r9, #0x60 + bne _020BA3A0 +_020BA36C: + cmp r0, #0x0 + add r7, r7, #0x1 + bne _020BA3A0 + ldr r0, [r10, #0x8] + ands r0, r0, #0x100 + bne _020BA3A0 + ldr r0, [r10, #0x0] + add r1, sp, #0x10 + ldrb r3, [r0, #0x4] + mov r0, #0x13 + mov r2, #0x1 + str r3, [sp, #0x10] + bl FUN_020BB1C0 +_020BA3A0: + ldr r0, [r10, #0x0] + add r0, r0, r7 + str r0, [r10, #0x0] + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020BA3B4: .word UNK_020FF9F0 +_020BA3B8: .word UNK_020FF9F0 + 1 +_020BA3BC: .word UNK_020FF9F0 + 2 +_020BA3C0: .word UNK_020FF9F0 + 3 + arm_func_end FUN_020B9F84 + + ; NNSi_G3dFuncSbc_SHP + arm_func_start FUN_020BA3C4 +FUN_020BA3C4: ; 0x020BA3C4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r3, [r4, #0x8] + ands r2, r3, #0x200 + bne _020BA420 + ands r2, r3, #0x1 + beq _020BA420 + ands r2, r3, #0x2 + bne _020BA420 + ldr r5, [r4, #0xdc] + ldr r3, [r4, #0x0] + ldrh r2, [r5, #0x6] + ldrb r3, [r3, #0x1] + ldr ip, _020BA434 ; =UNK_02106650 + ldrh lr, [r5, r2] + add r2, r5, r2 + mla r2, lr, r3, r2 + ldr r2, [r2, #0x4] + ldrh lr, [r5, r2] + add r2, r5, r2 + ldr r12, [r12, lr, lsl #0x2] + blx r12 +_020BA420: + ldr r0, [r4, #0x0] + add r0, r0, #0x2 + str r0, [r4, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BA434: .word UNK_02106650 + arm_func_end FUN_020BA3C4 + + ; _end + arm_func_start FUN_020BA438 +FUN_020BA438: ; 0x020BA438 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x20] + mov r5, r2 + cmp r0, #0x0 + ldrneb r4, [r6, #0x91] + moveq r4, #0x0 + cmp r4, #0x1 + bne _020BA490 + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x20] + blx r1 + ldr r0, [r6, #0x20] + cmp r0, #0x0 + ldrneb r4, [r6, #0x91] + ldr r0, [r6, #0x8] + moveq r4, #0x0 + and r0, r0, #0x40 + b _020BA494 +_020BA490: + mov r0, #0x0 +_020BA494: + cmp r0, #0x0 + bne _020BA4B8 + ldr r0, [r6, #0x8] + ands r0, r0, #0x100 + bne _020BA4B8 + ldr r0, [r5, #0x8] + ldr r1, [r5, #0xc] + add r0, r5, r0 + bl FUN_020BB2B0 +_020BA4B8: + cmp r4, #0x2 + bne _020BA4E8 + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x20] + blx r1 + ldr r0, [r6, #0x20] + cmp r0, #0x0 + ldrneb r4, [r6, #0x91] + moveq r4, #0x0 +_020BA4E8: + cmp r4, #0x3 + ldmneia sp!, {r4-r6,pc} + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x20] + blx r1 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BA438 + + ; NNSi_G3dFuncSbc_MAT + arm_func_start FUN_020BA50C +FUN_020BA50C: ; 0x020BA50C + stmdb sp!, {r4-r6,lr} + mov r4, r0 + ldr r5, [r4, #0x8] + ands r0, r5, #0x200 + bne _020BA578 + ldr r2, [r4, #0x0] + ands r0, r5, #0x1 + ldrb r3, [r2, #0x1] + bne _020BA544 + ands r0, r5, #0x8 + beq _020BA544 + ldrb r0, [r4, #0xad] + cmp r3, r0 + beq _020BA578 +_020BA544: + ldr r6, [r4, #0xd8] + ldr ip, _020BA588 ; =UNK_02106640 + ldrh r2, [r6, #0xa] + add r5, r6, #0x4 + mov r0, r4 + ldrh lr, [r5, r2] + add r2, r5, r2 + mla r2, lr, r3, r2 + ldr r2, [r2, #0x4] + ldrh lr, [r6, r2] + add r2, r6, r2 + ldr r12, [r12, lr, lsl #0x2] + blx r12 +_020BA578: + ldr r0, [r4, #0x0] + add r0, r0, #0x2 + str r0, [r4, #0x0] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020BA588: .word UNK_02106640 + arm_func_end FUN_020BA50C + + ; NNSi_G3dFuncSbc_MAT_InternalDefault + arm_func_start FUN_020BA58C +FUN_020BA58C: ; 0x020BA58C + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x20 + mov r8, r0 + mov r6, r3 + strb r6, [r8, #0xad] + ldr r3, [r8, #0x8] + add r0, r8, #0xf4 + orr r3, r3, #0x8 + str r3, [r8, #0x8] + str r0, [r8, #0xb0] + ldr r0, [r8, #0x1c] + mov r4, r1 + cmp r0, #0x0 + ldrneb r5, [r8, #0x90] + mov r7, r2 + moveq r5, #0x0 + cmp r5, #0x1 + bne _020BA608 + ldr r1, [r8, #0x8] + mov r0, r8 + bic r1, r1, #0x40 + str r1, [r8, #0x8] + ldr r1, [r8, #0x1c] + blx r1 + ldr r0, [r8, #0x1c] + cmp r0, #0x0 + ldrneb r5, [r8, #0x90] + ldr r0, [r8, #0x8] + moveq r5, #0x0 + and r0, r0, #0x40 + b _020BA60C +_020BA608: + mov r0, #0x0 +_020BA60C: + cmp r0, #0x0 + bne _020BA8C0 + ldr r0, [r8, #0x4] + ldr r0, [r0, #0x38] + cmp r0, #0x0 + beq _020BA638 + ldr r1, [r8, #0x8] + ands r1, r1, #0x80 + moveq r1, #0x38 + mlaeq r4, r6, r1, r0 + beq _020BA8BC +_020BA638: + cmp r4, #0x20 + beq _020BA648 + cmp r4, #0x40 + bne _020BA684 +_020BA648: + mov r1, r6, lsr #0x5 + add r1, r8, r1, lsl #0x2 + and r2, r6, #0x1f + mov r3, #0x1 + mov r2, r3, lsl r2 + ldr r1, [r1, #0xbc] + ands r1, r2, r1 + beq _020BA684 + cmp r0, #0x0 + movne r1, #0x38 + mlane r4, r6, r1, r0 + ldreq r1, _020BA9D8 ; =UNK_021CEF80 + moveq r0, #0x38 + mlaeq r4, r6, r0, r1 + b _020BA8BC +_020BA684: + cmp r0, #0x0 + beq _020BA6BC + add r4, r8, #0xbc + mov r3, r6, lsr #0x5 + ldr r2, [r4, r3, lsl #0x2] + and r0, r6, #0x1f + mov r1, #0x1 + orr r0, r2, r1, lsl r0 + str r0, [r4, r3, lsl #0x2] + ldr r1, [r8, #0x4] + mov r0, #0x38 + ldr r1, [r1, #0x38] + mla r4, r6, r0, r1 + b _020BA6F0 +_020BA6BC: + cmp r4, #0x40 + addne r4, r8, #0xf4 + bne _020BA6F0 + add lr, r8, #0xbc + mov r12, r6, lsr #0x5 + ldr r1, _020BA9D8 ; =UNK_021CEF80 + ldr r4, [lr, r12, lsl #0x2] + mov r0, #0x38 + and r2, r6, #0x1f + mov r3, #0x1 + orr r2, r4, r3, lsl r2 + mla r4, r6, r0, r1 + str r2, [lr, r12, lsl #0x2] +_020BA6F0: + mov r0, #0x0 + str r0, [r4, #0x0] + ldr r3, [r8, #0xd8] + ldrh r0, [r3, #0xa] + add r2, r3, #0x4 + ldrh r1, [r2, r0] + add r0, r2, r0 + mla r0, r1, r6, r0 + ldr r0, [r0, #0x4] + ldr r1, _020BA9DC ; =UNK_021CED18 + add r0, r3, r0 + ldrh r0, [r0, #0x1e] + ands r0, r0, #0x20 + ldrne r0, [r4, #0x0] + orrne r0, r0, #0x20 + strne r0, [r4, #0x0] + ldrh r2, [r7, #0x1e] + ldr r0, _020BA9E0 ; =UNK_020FF9D0 + ldr r12, [r1, #0x94] + mov r2, r2, asr #0x6 + and r2, r2, #0x7 + ldr lr, [r0, r2, lsl #0x2] + ldr r2, [r7, #0x4] + mvn r3, lr + and r3, r12, r3 + and r2, r2, lr + orr r2, r3, r2 + str r2, [r4, #0x4] + ldrh r12, [r7, #0x1e] + ldr r3, [r1, #0x98] + ldr r2, [r7, #0x8] + mov r12, r12, asr #0x9 + and r12, r12, #0x7 + ldr r12, [r0, r12, lsl #0x2] + mvn r0, r12 + and r3, r3, r0 + and r0, r2, r12 + orr r0, r3, r0 + str r0, [r4, #0x8] + ldr r3, [r7, #0x10] + ldr r0, [r7, #0xc] + ldr r2, [r1, #0x9c] + mvn r1, r3 + and r1, r2, r1 + and r0, r0, r3 + orr r0, r1, r0 + str r0, [r4, #0xc] + ldr r0, [r7, #0x14] + str r0, [r4, #0x10] + ldrh r0, [r7, #0x1c] + str r0, [r4, #0x14] + ldrh r1, [r7, #0x1e] + ands r0, r1, #0x1 + beq _020BA850 + ands r1, r1, #0x2 + ldrne r1, [r4, #0x0] + add r0, r7, #0x2c + orrne r1, r1, #0x1 + strne r1, [r4, #0x0] + bne _020BA7F4 + ldr r1, [r0, #0x0] + str r1, [r4, #0x18] + ldr r1, [r0, #0x4] + add r0, r0, #0x8 + str r1, [r4, #0x1c] +_020BA7F4: + ldrh r1, [r7, #0x1e] + ands r1, r1, #0x4 + ldrne r1, [r4, #0x0] + orrne r1, r1, #0x2 + strne r1, [r4, #0x0] + bne _020BA820 + ldrsh r1, [r0, #0x0] + strh r1, [r4, #0x20] + ldrsh r1, [r0, #0x2] + add r0, r0, #0x4 + strh r1, [r4, #0x22] +_020BA820: + ldrh r1, [r7, #0x1e] + ands r1, r1, #0x8 + ldreq r1, [r0, #0x0] + streq r1, [r4, #0x24] + ldreq r0, [r0, #0x4] + streq r0, [r4, #0x28] + ldrne r0, [r4, #0x0] + orrne r0, r0, #0x4 + strne r0, [r4, #0x0] + ldr r0, [r4, #0x0] + orr r0, r0, #0x8 + str r0, [r4, #0x0] +_020BA850: + ldr r0, [r8, #0x4] + ldr r1, [r0, #0x8] + cmp r1, #0x0 + beq _020BA890 + mov r2, r6, lsr #0x5 + add r2, r0, r2, lsl #0x2 + and r3, r6, #0x1f + mov r12, #0x1 + mov r3, r12, lsl r3 + ldr r2, [r2, #0x3c] + ands r2, r3, r2 + beq _020BA890 + ldr r3, [r0, #0xc] + mov r0, r4 + mov r2, r6 + blx r3 +_020BA890: + ldr r0, [r4, #0x0] + ands r0, r0, #0x18 + beq _020BA8BC + ldrh r0, [r7, #0x20] + strh r0, [r4, #0x2c] + ldrh r0, [r7, #0x22] + strh r0, [r4, #0x2e] + ldr r0, [r7, #0x24] + str r0, [r4, #0x30] + ldr r0, [r7, #0x28] + str r0, [r4, #0x34] +_020BA8BC: + str r4, [r8, #0xb0] +_020BA8C0: + cmp r5, #0x2 + bne _020BA8FC + ldr r1, [r8, #0x8] + mov r0, r8 + bic r1, r1, #0x40 + str r1, [r8, #0x8] + ldr r1, [r8, #0x1c] + blx r1 + ldr r0, [r8, #0x1c] + cmp r0, #0x0 + ldrneb r5, [r8, #0x90] + ldr r0, [r8, #0x8] + moveq r5, #0x0 + and r0, r0, #0x40 + b _020BA900 +_020BA8FC: + mov r0, #0x0 +_020BA900: + cmp r0, #0x0 + bne _020BA9AC + ldr r4, [r8, #0xb0] + ldr r1, [r4, #0xc] + ands r0, r1, #0x1f0000 + beq _020BA9A0 + ldr r0, [r4, #0x0] + ands r0, r0, #0x20 + bicne r0, r1, #0x1f0000 + strne r0, [r4, #0xc] + ldr r0, [r8, #0x8] + bic r0, r0, #0x2 + str r0, [r8, #0x8] + ldr r0, [r8, #0x8] + ands r0, r0, #0x100 + bne _020BA9AC + ldr r0, _020BA9E4 ; =0x00293130 + ldr r3, _020BA9E8 ; =0x00002B2A + str r0, [sp, #0x0] + ldr r2, [r4, #0x4] + add r1, sp, #0x4 + str r2, [sp, #0x4] + ldr r6, [r4, #0x8] + mov r2, #0x6 + str r6, [sp, #0x8] + ldr r6, [r4, #0xc] + str r6, [sp, #0xc] + str r3, [sp, #0x10] + ldr r3, [r4, #0x10] + str r3, [sp, #0x14] + ldr r3, [r4, #0x14] + str r3, [sp, #0x18] + bl FUN_020BB1C0 + ldr r0, [r4, #0x0] + ands r0, r0, #0x18 + beq _020BA9AC + ldr r1, [r8, #0xf0] + mov r0, r4 + blx r1 + b _020BA9AC +_020BA9A0: + ldr r0, [r8, #0x8] + orr r0, r0, #0x2 + str r0, [r8, #0x8] +_020BA9AC: + cmp r5, #0x3 + addne sp, sp, #0x20 + ldmneia sp!, {r4-r8,pc} + ldr r1, [r8, #0x8] + mov r0, r8 + bic r1, r1, #0x40 + str r1, [r8, #0x8] + ldr r1, [r8, #0x1c] + blx r1 + add sp, sp, #0x20 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020BA9D8: .word UNK_021CEF80 +_020BA9DC: .word UNK_021CED18 +_020BA9E0: .word UNK_020FF9D0 +_020BA9E4: .word 0x00293130 +_020BA9E8: .word 0x00002B2A + arm_func_end FUN_020BA58C + + ; _end + arm_func_start FUN_020BA9EC +FUN_020BA9EC: ; 0x020BA9EC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r1, [r5, #0x8] + ands r0, r1, #0x200 + bne _020BAAAC + ands r0, r1, #0x1 + beq _020BAAAC + ldr r0, [r5, #0x18] + cmp r0, #0x0 + ldrneb r4, [r5, #0x8f] + moveq r4, #0x0 + cmp r4, #0x1 + bne _020BAA58 + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x18] + blx r1 + ldr r0, [r5, #0x18] + cmp r0, #0x0 + ldrneb r4, [r5, #0x8f] + ldr r0, [r5, #0x8] + moveq r4, #0x0 + and r0, r0, #0x40 + b _020BAA5C +_020BAA58: + mov r0, #0x0 +_020BAA5C: + cmp r0, #0x0 + bne _020BAA8C + ldr r0, [r5, #0x0] + ldrb r0, [r0, #0x1] + str r0, [sp, #0x0] + ldr r0, [r5, #0x8] + ands r0, r0, #0x100 + bne _020BAA8C + add r1, sp, #0x0 + mov r0, #0x14 + mov r2, #0x1 + bl FUN_020BB1C0 +_020BAA8C: + cmp r4, #0x3 + bne _020BAAAC + ldr r1, [r5, #0x8] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r5, #0x8] + ldr r1, [r5, #0x18] + blx r1 +_020BAAAC: + ldr r0, [r5, #0x0] + add r0, r0, #0x2 + str r0, [r5, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BA9EC + + ; _end + arm_func_start FUN_020BAAC0 +FUN_020BAAC0: ; 0x020BAAC0 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x8] + ands r0, r0, #0x200 + bne _020BAC38 + ldr r1, [r6, #0x0] + add r0, r6, #0x184 + ldrb r1, [r1, #0x1] + strb r1, [r6, #0xac] + ldr r1, [r6, #0x8] + ldrb r4, [r6, #0xac] + orr r1, r1, #0x4 + str r1, [r6, #0x8] + str r0, [r6, #0xb8] + ldr r0, [r6, #0x14] + cmp r0, #0x0 + ldrneb r5, [r6, #0x8e] + moveq r5, #0x0 + cmp r5, #0x1 + bne _020BAB44 + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x14] + blx r1 + ldr r0, [r6, #0x14] + cmp r0, #0x0 + ldrneb r5, [r6, #0x8e] + ldr r0, [r6, #0x8] + moveq r5, #0x0 + and r0, r0, #0x40 + b _020BAB48 +_020BAB44: + mov r0, #0x0 +_020BAB48: + cmp r0, #0x0 + bne _020BABAC + ldr r12, [r6, #0x4] + ldr r1, [r12, #0x18] + cmp r1, #0x0 + beq _020BAB98 + mov r0, r4, lsr #0x5 + add r0, r12, r0, lsl #0x2 + and r2, r4, #0x1f + mov r3, #0x1 + mov r2, r3, lsl r2 + ldr r0, [r0, #0x4c] + ands r0, r2, r0 + beq _020BAB98 + ldr r0, [r6, #0xb8] + ldr r3, [r12, #0x1c] + mov r2, r4 + blx r3 + cmp r0, #0x0 + bne _020BABAC +_020BAB98: + ldr r1, [r6, #0x0] + ldr r0, [r6, #0xb8] + ldrb r1, [r1, #0x2] + and r1, r1, #0x1 + str r1, [r0, #0x0] +_020BABAC: + cmp r5, #0x2 + bne _020BABE8 + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x14] + blx r1 + ldr r0, [r6, #0x14] + cmp r0, #0x0 + ldrneb r5, [r6, #0x8e] + ldr r0, [r6, #0x8] + moveq r5, #0x0 + and r0, r0, #0x40 + b _020BABEC +_020BABE8: + mov r0, #0x0 +_020BABEC: + cmp r0, #0x0 + bne _020BAC18 + ldr r0, [r6, #0xb8] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldrne r0, [r6, #0x8] + orrne r0, r0, #0x1 + strne r0, [r6, #0x8] + ldreq r0, [r6, #0x8] + biceq r0, r0, #0x1 + streq r0, [r6, #0x8] +_020BAC18: + cmp r5, #0x3 + bne _020BAC38 + ldr r1, [r6, #0x8] + mov r0, r6 + bic r1, r1, #0x40 + str r1, [r6, #0x8] + ldr r1, [r6, #0x14] + blx r1 +_020BAC38: + ldr r0, [r6, #0x0] + add r0, r0, #0x3 + str r0, [r6, #0x0] + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BAAC0 + + ; _end + arm_func_start FUN_020BAC48 +FUN_020BAC48: ; 0x020BAC48 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x10] + cmp r1, #0x0 + beq _020BAC60 + blx r1 +_020BAC60: + ldr r0, [r4, #0x8] + orr r0, r0, #0x20 + str r0, [r4, #0x8] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BAC48 + + ; _end + arm_func_start FUN_020BAC70 +FUN_020BAC70: ; 0x020BAC70 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0xc] + cmp r1, #0x0 + beq _020BAC88 + blx r1 +_020BAC88: + ldr r0, [r4, #0x0] + add r0, r0, #0x1 + str r0, [r4, #0x0] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BAC70 + + ; NNS_G3dDraw + arm_func_start FUN_020BAC98 +FUN_020BAC98: ; 0x020BAC98 + stmdb sp!, {r4,lr} + sub sp, sp, #0x188 + mov r4, r0 + ldr r0, [r4, #0x0] + and r0, r0, #0x10 + cmp r0, #0x10 + bne _020BAD2C + add r1, r4, #0x3c + mov r0, #0x0 + mov r2, #0x8 + bl MIi_CpuClear32 + add r1, r4, #0x44 + mov r0, #0x0 + mov r2, #0x8 + bl MIi_CpuClear32 + add r1, r4, #0x4c + mov r0, #0x0 + mov r2, #0x8 + bl MIi_CpuClear32 + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020BACF8 + add r0, r4, #0x3c + bl FUN_020BAD74 +_020BACF8: + ldr r1, [r4, #0x10] + cmp r1, #0x0 + beq _020BAD0C + add r0, r4, #0x44 + bl FUN_020BAD74 +_020BAD0C: + ldr r1, [r4, #0x18] + cmp r1, #0x0 + beq _020BAD20 + add r0, r4, #0x4c + bl FUN_020BAD74 +_020BAD20: + ldr r0, [r4, #0x0] + bic r0, r0, #0x10 + str r0, [r4, #0x0] +_020BAD2C: + ldr r2, _020BAD70 ; =UNK_021CEF7C + ldr r0, [r2, #0x0] + cmp r0, #0x0 + beq _020BAD4C + mov r1, r4 + bl FUN_020BADE4 + add sp, sp, #0x188 + ldmia sp!, {r4,pc} +_020BAD4C: + add r0, sp, #0x0 + mov r1, r4 + str r0, [r2, #0x0] + bl FUN_020BADE4 + ldr r0, _020BAD70 ; =UNK_021CEF7C + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x188 + ldmia sp!, {r4,pc} + .balign 4 +_020BAD70: .word UNK_021CEF7C + arm_func_end FUN_020BAC98 + + ; _end + arm_func_start FUN_020BAD74 +FUN_020BAD74: ; 0x020BAD74 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + mov r3, #0x1 + mov r4, #0x0 +_020BAD90: + ldrb r2, [r1, #0x19] + mov r5, r4 + cmp r2, #0x0 + ble _020BADD0 +_020BADA0: + add r2, r1, r5, lsl #0x1 + ldrh r2, [r2, #0x1a] + ands r2, r2, #0x100 + movne lr, r5, asr #0x5 + andne r2, r5, #0x1f + ldrne r12, [r0, lr, lsl #0x2] + add r5, r5, #0x1 + orrne r2, r12, r3, lsl r2 + strne r2, [r0, lr, lsl #0x2] + ldrb r2, [r1, #0x19] + cmp r5, r2 + blt _020BADA0 +_020BADD0: + ldr r1, [r1, #0x10] + cmp r1, #0x0 + bne _020BAD90 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020BAD74 + + ; G3dDrawInternal_ + arm_func_start FUN_020BADE4 +FUN_020BADE4: ; 0x020BADE4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + mov r1, r5 + mov r0, #0x0 + mov r2, #0x188 + bl MIi_CpuClearFast + mov r0, #0x1 + str r0, [r5, #0xc4] + str r0, [r5, #0x8] + ldr r0, [r4, #0x30] + ldr r2, _020BAF60 ; =UNK_02106614 + cmp r0, #0x0 + strne r0, [r5, #0x0] + ldreq r1, [r4, #0x4] + ldreq r0, [r1, #0x4] + addeq r0, r1, r0 + streq r0, [r5, #0x0] + str r4, [r5, #0x4] + ldr r0, [r4, #0x4] + ldr r1, _020BAF64 ; =UNK_02106608 + add r0, r0, #0x40 + str r0, [r5, #0xd4] + ldr r12, [r4, #0x4] + ldr r0, _020BAF68 ; =UNK_02106620 + ldr r3, [r12, #0x8] + add r3, r12, r3 + str r3, [r5, #0xd8] + ldr r12, [r4, #0x4] + ldr r3, [r12, #0xc] + add r3, r12, r3 + str r3, [r5, #0xdc] + ldr r3, [r4, #0x4] + ldrb r3, [r3, #0x15] + ldr r2, [r2, r3, lsl #0x2] + str r2, [r5, #0xe8] + ldr r2, [r4, #0x4] + ldrb r2, [r2, #0x15] + ldr r1, [r1, r2, lsl #0x2] + str r1, [r5, #0xec] + ldr r1, [r4, #0x4] + ldrb r1, [r1, #0x16] + ldr r0, [r0, r1, lsl #0x2] + str r0, [r5, #0xf0] + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x1c] + str r0, [r5, #0xe0] + ldr r0, [r4, #0x4] + ldr r0, [r0, #0x20] + str r0, [r5, #0xe4] + ldr r1, [r4, #0x20] + cmp r1, #0x0 + beq _020BAEE0 + ldrb r0, [r4, #0x24] + cmp r0, #0x20 + bhs _020BAEE0 + add r0, r5, r0, lsl #0x2 + str r1, [r0, #0xc] + ldrb r0, [r4, #0x24] + ldrb r1, [r4, #0x25] + add r0, r5, r0 + strb r1, [r0, #0x8c] +_020BAEE0: + ldr r0, [r4, #0x0] + ands r0, r0, #0x1 + ldrne r0, [r5, #0x8] + orrne r0, r0, #0x80 + strne r0, [r5, #0x8] + ldr r0, [r4, #0x0] + ands r0, r0, #0x2 + ldrne r0, [r5, #0x8] + orrne r0, r0, #0x100 + strne r0, [r5, #0x8] + ldr r0, [r4, #0x0] + ands r0, r0, #0x4 + ldrne r0, [r5, #0x8] + orrne r0, r0, #0x200 + strne r0, [r5, #0x8] + ldr r0, [r4, #0x0] + ands r0, r0, #0x8 + ldrne r0, [r5, #0x8] + orrne r0, r0, #0x400 + strne r0, [r5, #0x8] + ldr r1, [r4, #0x28] + cmp r1, #0x0 + beq _020BAF44 + mov r0, r5 + blx r1 +_020BAF44: + mov r0, r5 + bl FUN_020BAF6C + ldr r0, [r4, #0x0] + bic r0, r0, #0x1 + str r0, [r4, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020BAF60: .word UNK_02106614 +_020BAF64: .word UNK_02106608 +_020BAF68: .word UNK_02106620 + arm_func_end FUN_020BADE4 + + ; G3dDrawInternal_Loop_ + arm_func_start FUN_020BAF6C +FUN_020BAF6C: ; 0x020BAF6C + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldr r6, _020BAFB4 ; =UNK_02106730 + add r4, r5, #0x8 +_020BAF7C: + ldr r1, [r4, #0x0] + mov r0, r5 + bic r1, r1, #0x40 + str r1, [r4, #0x0] + ldr r1, [r5, #0x0] + ldrb r3, [r1, #0x0] + and r1, r3, #0x1f + ldr r2, [r6, r1, lsl #0x2] + and r1, r3, #0xe0 + blx r2 + ldr r0, [r5, #0x8] + ands r0, r0, #0x20 + beq _020BAF7C + ldmia sp!, {r4-r6,pc} + .balign 4 +_020BAFB4: .word UNK_02106730 + arm_func_end FUN_020BAF6C + diff --git a/arm9/asm/NNS_G3D_si3d.s b/arm9/asm/NNS_G3D_si3d.s new file mode 100644 index 000000000..d69867125 --- /dev/null +++ b/arm9/asm/NNS_G3D_si3d.s @@ -0,0 +1,363 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNSi_G3dSendTexSRTSi3d + arm_func_start FUN_020BEF10 +FUN_020BEF10: ; 0x020BEF10 + stmdb sp!, {lr} + sub sp, sp, #0x3c + ldr r1, [r0, #0x0] + mov r3, #0x0 + ands r1, r1, #0x8 + ldrne r1, _020BF0CC ; =0x00101710 + mov r2, #0x3 + strne r1, [sp, #0x0] + ldreq r1, _020BF0D0 ; =0x00101910 + str r3, [sp, #0x34] + streq r1, [sp, #0x0] + mov r1, #0x2 + str r1, [sp, #0x38] + str r3, [sp, #0x28] + str r3, [sp, #0x24] + str r3, [sp, #0x20] + str r3, [sp, #0x1c] + str r3, [sp, #0x14] + str r3, [sp, #0x10] + str r3, [sp, #0xc] + str r2, [sp, #0x4] + ldr r2, [r0, #0x0] + ands r1, r2, #0x4 + beq _020BEFA0 + str r3, [sp, #0x2c] + str r3, [sp, #0x30] + ldr r1, [r0, #0x0] + ands r1, r1, #0x1 + movne r1, #0x1000 + strne r1, [sp, #0x8] + strne r1, [sp, #0x18] + ldreq r1, [r0, #0x18] + streq r1, [sp, #0x8] + ldreq r1, [r0, #0x1c] + streq r1, [sp, #0x18] + b _020BF040 +_020BEFA0: + ands r1, r2, #0x1 + beq _020BEFE8 + ldr r2, [r0, #0x24] + ldrh r1, [r0, #0x2c] + mov r2, r2, lsl #0x4 + rsb r2, r2, #0x0 + mul r1, r2, r1 + str r1, [sp, #0x2c] + ldr r2, [r0, #0x28] + ldrh r1, [r0, #0x2e] + mov r2, r2, lsl #0x4 + rsb r2, r2, #0x0 + mul r3, r2, r1 + mov r1, #0x1000 + str r3, [sp, #0x30] + str r1, [sp, #0x8] + str r1, [sp, #0x18] + b _020BF040 +_020BEFE8: + ldr r2, [r0, #0x18] + ldr r1, [r0, #0x24] + ldrh r12, [r0, #0x2c] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0x8 + orr r2, r2, r1, lsl #0x18 + rsb r1, r2, #0x0 + mul r1, r12, r1 + str r1, [sp, #0x2c] + ldr r2, [r0, #0x1c] + ldr r1, [r0, #0x28] + ldrh r12, [r0, #0x2e] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0x8 + orr r2, r2, r1, lsl #0x18 + rsb r1, r2, #0x0 + mul r1, r12, r1 + str r1, [sp, #0x30] + ldr r1, [r0, #0x18] + str r1, [sp, #0x8] + ldr r1, [r0, #0x1c] + str r1, [sp, #0x18] +_020BF040: + ldr r12, [r0, #0x30] + cmp r12, #0x1000 + beq _020BF078 + ldr r2, [sp, #0x8] + ldr r1, [sp, #0x2c] + smull r3, r2, r12, r2 + mov r3, r3, lsr #0xc + orr r3, r3, r2, lsl #0x14 + str r3, [sp, #0x8] + ldr r2, [r0, #0x30] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0x2c] +_020BF078: + ldr r12, [r0, #0x34] + cmp r12, #0x1000 + beq _020BF0B0 + ldr r2, [sp, #0x18] + ldr r1, [sp, #0x30] + smull r3, r2, r12, r2 + mov r3, r3, lsr #0xc + orr r3, r3, r2, lsl #0x14 + str r3, [sp, #0x18] + ldr r0, [r0, #0x34] + smull r2, r1, r0, r1 + mov r0, r2, lsr #0xc + orr r0, r0, r1, lsl #0x14 + str r0, [sp, #0x30] +_020BF0B0: + add r1, sp, #0x0 + ldr r0, [sp, #0x0] + add r1, r1, #0x4 + mov r2, #0xe + bl FUN_020BB1C0 + add sp, sp, #0x3c + ldmia sp!, {pc} + .balign 4 +_020BF0CC: .word 0x00101710 +_020BF0D0: .word 0x00101910 + arm_func_end FUN_020BEF10 + + ; NNSi_G3dGetJointScaleSi3d + arm_func_start FUN_020BF0D4 +FUN_020BF0D4: ; 0x020BF0D4 + stmdb sp!, {r4-r8,lr} + mov r5, r0 + ands r0, r3, #0x4 + ldrb r4, [r2, #0x1] + ldrb r0, [r2, #0x2] + beq _020BF174 + ldr r2, [r5, #0x0] + ldr r1, _020BF2E0 ; =UNK_021CEF7C + orr r2, r2, #0x1 + str r2, [r5, #0x0] + ldr r3, [r1, #0x0] + mov r1, r0, lsr #0x5 + add r1, r3, r1, lsl #0x2 + and r2, r0, #0x1f + mov r6, #0x1 + mov r2, r6, lsl r2 + ldr r1, [r1, #0xc4] + ands r1, r2, r1 + beq _020BF148 + add r3, r3, #0xc4 + mov r2, r4, lsr #0x5 + ldr r1, [r3, r2, lsl #0x2] + and r0, r4, #0x1f + orr r0, r1, r6, lsl r0 + str r0, [r3, r2, lsl #0x2] + ldr r0, [r5, #0x0] + orr r0, r0, #0x18 + str r0, [r5, #0x0] + ldmia sp!, {r4-r8,pc} +_020BF148: + ldr r1, _020BF2E4 ; =UNK_021CFD80 + mov r2, #0x18 + mla r6, r0, r2, r1 + mla r1, r4, r2, r1 + mov r0, r6 + bl MIi_CpuCopy32 + mov r0, r6 + add r1, r5, #0x10 + mov r2, #0x18 + bl MIi_CpuCopy32 + ldmia sp!, {r4-r8,pc} +_020BF174: + ldr r3, [r1, #0x0] + ldr r2, _020BF2E0 ; =UNK_021CEF7C + str r3, [r5, #0x4] + ldr r3, [r1, #0x4] + mov r7, r0, lsr #0x5 + str r3, [r5, #0x8] + ldr r3, [r1, #0x8] + and r8, r0, #0x1f + str r3, [r5, #0xc] + ldr r6, [r2, #0x0] + mov r3, #0x1 + add r2, r6, r7, lsl #0x2 + mov r7, r3, lsl r8 + ldr r2, [r2, #0xc4] + ands r2, r7, r2 + beq _020BF200 + ldr r3, _020BF2E4 ; =UNK_021CFD80 + mov r2, #0x18 + mov r0, r1 + mla r1, r4, r2, r3 + bl MIi_CpuCopy32 + ldr r0, _020BF2E0 ; =UNK_021CEF7C + mov r2, r4, lsr #0x5 + ldr r1, [r0, #0x0] + and r0, r4, #0x1f + add r3, r1, #0xc4 + mov r1, #0x1 + mvn r0, r1, lsl r0 + ldr r1, [r3, r2, lsl #0x2] + and r0, r1, r0 + str r0, [r3, r2, lsl #0x2] + ldr r0, [r5, #0x0] + orr r0, r0, #0x18 + str r0, [r5, #0x0] + ldmia sp!, {r4-r8,pc} +_020BF200: + mov r2, #0x18 + mul r12, r0, r2 + and r7, r4, #0x1f + ldr r0, _020BF2E4 ; =UNK_021CFD80 + add r6, r6, #0xc4 + mov lr, r4, lsr #0x5 + mvn r7, r3, lsl r7 + ldr r8, [r6, lr, lsl #0x2] + mul r3, r4, r2 + and r4, r8, r7 + str r4, [r6, lr, lsl #0x2] + ldr r7, [r1, #0x0] + ldr r4, [r0, r12] + ldr r6, _020BF2E8 ; =UNK_021CFD84 + smull r8, r4, r7, r4 + mov r7, r8, lsr #0xc + orr r7, r7, r4, lsl #0x14 + str r7, [r0, r3] + ldr r8, [r1, #0x4] + ldr r4, [r6, r12] + ldr r7, _020BF2EC ; =UNK_021CFD88 + smull lr, r4, r8, r4 + mov r8, lr, lsr #0xc + orr r8, r8, r4, lsl #0x14 + str r8, [r6, r3] + ldr r8, [r1, #0x8] + ldr r4, [r7, r12] + ldr r6, _020BF2F0 ; =UNK_021CFD8C + smull lr, r4, r8, r4 + mov r8, lr, lsr #0xc + orr r8, r8, r4, lsl #0x14 + str r8, [r7, r3] + ldr r7, [r1, #0xc] + ldr r4, [r6, r12] + ldr lr, _020BF2F4 ; =UNK_021CFD90 + smull r8, r4, r7, r4 + mov r7, r8, lsr #0xc + orr r7, r7, r4, lsl #0x14 + str r7, [r6, r3] + ldr r7, [r1, #0x10] + ldr r4, [lr, r12] + ldr r6, _020BF2F8 ; =UNK_021CFD94 + smull r8, r4, r7, r4 + add r0, r0, r12 + mov r7, r8, lsr #0xc + orr r7, r7, r4, lsl #0x14 + str r7, [lr, r3] + ldr lr, [r1, #0x14] + ldr r4, [r6, r12] + add r1, r5, #0x10 + smull r5, r4, lr, r4 + mov r5, r5, lsr #0xc + orr r5, r5, r4, lsl #0x14 + str r5, [r6, r3] + bl MIi_CpuCopy32 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020BF2E0: .word UNK_021CEF7C +_020BF2E4: .word UNK_021CFD80 +_020BF2E8: .word UNK_021CFD84 +_020BF2EC: .word UNK_021CFD88 +_020BF2F0: .word UNK_021CFD8C +_020BF2F4: .word UNK_021CFD90 +_020BF2F8: .word UNK_021CFD94 + arm_func_end FUN_020BF0D4 + + ; _end + arm_func_start FUN_020BF2FC +FUN_020BF2FC: ; 0x020BF2FC + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x10 + mov r6, r0 + ldr r0, [r6, #0x0] + mov r5, #0x0 + ands r4, r0, #0x18 + bne _020BF328 + add r1, r6, #0x1c + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 +_020BF328: + ldr r0, [r6, #0x0] + ands r0, r0, #0x4 + bne _020BF398 + cmp r4, #0x0 + movne r5, #0x1 + bne _020BF398 + ldr r2, [r6, #0x4c] + ldr r0, [r6, #0x10] + add r1, sp, #0x0 + smull r3, r0, r2, r0 + mov r2, r3, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x0] + ldr r3, [r6, #0x50] + ldr r2, [r6, #0x14] + mov r0, #0x1c + smull r12, r2, r3, r2 + mov r3, r12, lsr #0xc + orr r3, r3, r2, lsl #0x14 + str r3, [sp, #0x4] + ldr r12, [r6, #0x54] + ldr r3, [r6, #0x18] + mov r2, #0x3 + smull lr, r3, r12, r3 + mov r12, lr, lsr #0xc + orr r12, r12, r3, lsl #0x14 + str r12, [sp, #0x8] + bl FUN_020BB1C0 +_020BF398: + ldr r0, [r6, #0x0] + ands r0, r0, #0x2 + bne _020BF3D4 + cmp r5, #0x0 + beq _020BF3C0 + add r1, r6, #0x28 + mov r0, #0x19 + mov r2, #0xc + bl FUN_020BB1C0 + b _020BF3EC +_020BF3C0: + add r1, r6, #0x28 + mov r0, #0x1a + mov r2, #0x9 + bl FUN_020BB1C0 + b _020BF3EC +_020BF3D4: + cmp r5, #0x0 + beq _020BF3EC + add r1, r6, #0x4c + mov r0, #0x1c + mov r2, #0x3 + bl FUN_020BB1C0 +_020BF3EC: + cmp r4, #0x0 + bne _020BF404 + add r1, r6, #0x10 + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 +_020BF404: + ldr r0, [r6, #0x0] + ands r0, r0, #0x1 + addne sp, sp, #0x10 + ldmneia sp!, {r4-r6,pc} + add r1, r6, #0x4 + mov r0, #0x1b + mov r2, #0x3 + bl FUN_020BB1C0 + add sp, sp, #0x10 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020BF2FC + diff --git a/arm9/asm/NNS_G3D_util.s b/arm9/asm/NNS_G3D_util.s new file mode 100644 index 000000000..f6f204d48 --- /dev/null +++ b/arm9/asm/NNS_G3D_util.s @@ -0,0 +1,354 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; NNS_G3dWorldPosToScrPos + arm_func_start FUN_020BB408 +FUN_020BB408: ; 0x020BB408 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x1c + mov r5, r1 + mov r4, r2 + ldr r6, _020BB594 ; =UNK_021CED20 + ldr r1, _020BB598 ; =UNK_021CED64 + add r2, sp, #0x10 + bl MTX_MultVec43 + ldr r1, [sp, #0x14] + ldr r0, [r6, #0x1c] + ldr r2, [sp, #0x10] + smull r8, r7, r1, r0 + ldr r0, [r6, #0xc] + ldr r3, [sp, #0x18] + smlal r8, r7, r2, r0 + ldr r1, [r6, #0x2c] + ldr r0, [r6, #0x3c] + smlal r8, r7, r3, r1 + mov r1, r8, lsr #0xc + orr r1, r1, r7, lsl #0x14 + add r0, r1, r0 + bl FX_InvAsync + ldr r2, [sp, #0x14] + ldr r1, [r6, #0x10] + ldr r0, [r6, #0x14] + smull lr, r8, r2, r1 + smull r12, r9, r2, r0 + ldr r1, [sp, #0x10] + ldr r3, [r6, #0x0] + ldr r0, [sp, #0x18] + smlal lr, r8, r1, r3 + ldr r7, [r6, #0x20] + ldr r2, [r6, #0x30] + smlal lr, r8, r0, r7 + mov r3, lr, lsr #0xc + orr r3, r3, r8, lsl #0x14 + add r7, r3, r2 + ldr r3, [r6, #0x4] + ldr r8, [r6, #0x24] + smlal r12, r9, r1, r3 + smlal r12, r9, r0, r8 + mov r0, r12, lsr #0xc + ldr r2, [r6, #0x34] + orr r0, r0, r9, lsl #0x14 + add r6, r0, r2 + bl FX_GetDivResultFx64c + mov r2, r7, asr #0x1f + umull r9, lr, r0, r7 + mla lr, r0, r2, lr + mov r3, #0x80000000 + mla lr, r1, r7, lr + adds r9, r9, r3 + adc r2, lr, #0x0 + add r2, r2, #0x1000 + add r2, r2, r2, lsr #0x1f + mov r7, r2, asr #0x1 + umull lr, r2, r0, r6 + mov r12, r6, asr #0x1f + mla r2, r0, r12, r2 + mla r2, r1, r6, r2 + adds r3, lr, r3 + adc r0, r2, #0x0 + add r0, r0, #0x1000 + add r0, r0, r0, lsr #0x1f + mov r8, #0x0 + mov r6, r0, asr #0x1 + cmp r7, #0x0 + blt _020BB530 + cmp r6, #0x0 + blt _020BB530 + cmp r7, #0x1000 + bgt _020BB530 + cmp r6, #0x1000 + ble _020BB534 +_020BB530: + mvn r8, #0x0 +_020BB534: + add r0, sp, #0x0 + add r1, sp, #0x4 + add r2, sp, #0x8 + add r3, sp, #0xc + bl FUN_020B8200 + ldr r2, [sp, #0x0] + ldr r0, [sp, #0x8] + ldr r12, [sp, #0xc] + sub r0, r0, r2 + mul r0, r7, r0 + add r1, r0, #0x800 + ldr r3, [sp, #0x4] + add r1, r2, r1, asr #0xc + sub r0, r12, r3 + mul r0, r6, r0 + str r1, [r5, #0x0] + ldr r1, [sp, #0x4] + add r0, r0, #0x800 + rsb r1, r1, #0xbf + sub r1, r1, r0, asr #0xc + mov r0, r8 + str r1, [r4, #0x0] + add sp, sp, #0x1c + ldmia sp!, {r4-r9,pc} + .balign 4 +_020BB594: .word UNK_021CED20 +_020BB598: .word UNK_021CED64 + arm_func_end FUN_020BB408 + + ; NNS_G3dResDefaultSetup + arm_func_start FUN_020BB59C +FUN_020BB59C: ; 0x020BB59C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r1, [r5, #0x0] + ldr r0, _020BB7C8 ; =0x30415642 + cmp r1, r0 + bhi _020BB5F4 + cmp r1, r0 + bhs _020BB7B0 + ldr r0, _020BB7CC ; =0x30414D42 + cmp r1, r0 + bhi _020BB5E4 + cmp r1, r0 + bhs _020BB7B0 + ldr r0, _020BB7D0 ; =0x30414342 + cmp r1, r0 + beq _020BB7B0 + b _020BB7BC +_020BB5E4: + ldr r0, _020BB7D4 ; =0x30415442 + cmp r1, r0 + beq _020BB7B0 + b _020BB7BC +_020BB5F4: + ldr r0, _020BB7D8 ; =0x30505442 + cmp r1, r0 + bhi _020BB618 + cmp r1, r0 + bhs _020BB7B0 + ldr r0, _020BB7DC ; =0x30444D42 + cmp r1, r0 + beq _020BB624 + b _020BB7BC +_020BB618: + ldr r0, _020BB7E0 ; =0x30585442 + cmp r1, r0 + bne _020BB7BC +_020BB624: + mov r11, #0x1 + mov r0, r5 + mov r9, r11 + mov r8, r11 + bl FUN_020BC0FC + movs r4, r0 + beq _020BB77C + bl FUN_020B7E1C + mov r7, r0 + mov r0, r4 + bl FUN_020B7E10 + mov r6, r0 + mov r0, r4 + bl FUN_020B7CE4 + mov r10, r0 + cmp r7, #0x0 + beq _020BB68C + ldr r0, _020BB7E4 ; =UNK_021064B8 + mov r1, #0x0 + ldr r3, [r0, #0x0] + mov r0, r7 + mov r2, r1 + blx r3 + movs r7, r0 + moveq r11, #0x0 + b _020BB690 +_020BB68C: + mov r7, #0x0 +_020BB690: + cmp r6, #0x0 + beq _020BB6BC + ldr r1, _020BB7E4 ; =UNK_021064B8 + mov r0, r6 + ldr r3, [r1, #0x0] + mov r1, #0x1 + mov r2, #0x0 + blx r3 + movs r6, r0 + moveq r9, #0x0 + b _020BB6C0 +_020BB6BC: + mov r6, #0x0 +_020BB6C0: + cmp r10, #0x0 + beq _020BB6F0 + ldr r1, _020BB7E8 ; =UNK_021064C0 + ldrh r2, [r4, #0x20] + ldr r3, [r1, #0x0] + mov r0, r10 + and r1, r2, #0x8000 + mov r2, #0x0 + blx r3 + movs r10, r0 + moveq r8, #0x0 + b _020BB6F4 +_020BB6F0: + mov r10, #0x0 +_020BB6F4: + cmp r11, #0x0 + beq _020BB70C + cmp r9, #0x0 + beq _020BB70C + cmp r8, #0x0 + bne _020BB748 +_020BB70C: + ldr r1, _020BB7EC ; =UNK_021064C4 + mov r0, r10 + ldr r1, [r1, #0x0] + blx r1 + ldr r1, _020BB7F0 ; =UNK_021064BC + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + ldr r1, _020BB7F0 ; =UNK_021064BC + mov r0, r7 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020BB748: + mov r0, r4 + mov r1, r7 + mov r2, r6 + bl FUN_020B7DFC + mov r0, r4 + mov r1, r10 + bl FUN_020B7CDC + mov r0, r4 + mov r1, #0x1 + bl FUN_020B7D28 + mov r0, r4 + mov r1, #0x1 + bl FUN_020B7C78 +_020BB77C: + ldr r1, [r5, #0x0] + ldr r0, _020BB7DC ; =0x30444D42 + cmp r1, r0 + bne _020BB7A4 + mov r0, r5 + bl FUN_020BC13C + cmp r4, #0x0 + beq _020BB7A4 + mov r1, r4 + bl FUN_020B7790 +_020BB7A4: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020BB7B0: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020BB7BC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020BB7C8: .word 0x30415642 +_020BB7CC: .word 0x30414D42 +_020BB7D0: .word 0x30414342 +_020BB7D4: .word 0x30415442 +_020BB7D8: .word 0x30505442 +_020BB7DC: .word 0x30444D42 +_020BB7E0: .word 0x30585442 +_020BB7E4: .word UNK_021064B8 +_020BB7E8: .word UNK_021064C0 +_020BB7EC: .word UNK_021064C4 +_020BB7F0: .word UNK_021064BC + arm_func_end FUN_020BB59C + + ; NNS_G3dInit + arm_func_start FUN_020BB7F4 +FUN_020BB7F4: ; 0x020BB7F4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl G3X_Init + bl FUN_020B84D8 + ldr r1, _020BB820 ; =0x04000600 + ldr r0, [r1, #0x0] + bic r0, r0, #0xc0000000 + orr r0, r0, #0x80000000 + str r0, [r1, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020BB820: .word 0x04000600 + arm_func_end FUN_020BB7F4 + + ; NNS_G3dGetCurrentMtx + arm_func_start FUN_020BB824 +FUN_020BB824: ; 0x020BB824 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x40 + mov r6, r0 + mov r5, r1 + bl FUN_020BB394 + ldr r0, _020BB8B4 ; =0x04000440 + mov r2, #0x0 + ldr r1, _020BB8B8 ; =0x04000444 + str r2, [r0, #0x0] + ldr r0, _020BB8BC ; =0x04000454 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + cmp r6, #0x0 + beq _020BB87C + add r4, sp, #0x0 +_020BB860: + mov r0, r4 + bl G3X_GetClipMtx + cmp r0, #0x0 + bne _020BB860 + add r0, sp, #0x0 + mov r1, r6 + bl MTX_Copy44To43_ +_020BB87C: + cmp r5, #0x0 + beq _020BB894 +_020BB884: + mov r0, r5 + bl G3X_GetVectorMtx + cmp r0, #0x0 + bne _020BB884 +_020BB894: + ldr r1, _020BB8C0 ; =0x04000448 + mov r2, #0x1 + ldr r0, _020BB8B4 ; =0x04000440 + str r2, [r1, #0x0] + mov r1, #0x2 + str r1, [r0, #0x0] + add sp, sp, #0x40 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020BB8B4: .word 0x04000440 +_020BB8B8: .word 0x04000444 +_020BB8BC: .word 0x04000454 +_020BB8C0: .word 0x04000448 + arm_func_end FUN_020BB824 + diff --git a/arm9/asm/NNS_G3D_xsi.s b/arm9/asm/NNS_G3D_xsi.s new file mode 100644 index 000000000..bc0315c13 --- /dev/null +++ b/arm9/asm/NNS_G3D_xsi.s @@ -0,0 +1,487 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; calcTexMtx_ + .global UNK_021067F0 +UNK_021067F0: ; 0x021067F0 + .word FUN_020BFFD4 + .word FUN_020BFEEC + .word FUN_020BFE68 + .word FUN_020BFE0C + .word FUN_020BFD38 + .word FUN_020BFC8C + .word FUN_020BFC4C + .word FUN_020BFC28 + + .section .text + + ; NNSi_G3dSendTexSRTXsi + arm_func_start FUN_020BFA9C +FUN_020BFA9C: ; 0x020BFA9C + stmdb sp!, {r4,lr} + sub sp, sp, #0x50 + mov r4, r0 + ldr r0, [r4, #0x0] + mov r3, #0x3 + ands r0, r0, #0x8 + ldrne r0, _020BFC1C ; =0x00101610 + mov r2, #0x2 + strne r0, [sp, #0x0] + ldreq r0, _020BFC20 ; =0x00101810 + mov r1, #0x1000 + streq r0, [sp, #0x0] + mov r0, #0x0 + str r3, [sp, #0x4] + str r2, [sp, #0x48] + str r1, [sp, #0x44] + str r0, [sp, #0x40] + str r0, [sp, #0x34] + str r0, [sp, #0x30] + str r0, [sp, #0x2c] + str r0, [sp, #0x28] + str r0, [sp, #0x24] + str r0, [sp, #0x20] + str r0, [sp, #0x14] + str r0, [sp, #0x10] + ldr r0, [r4, #0x0] + ands r0, r0, #0x1 + strne r1, [r4, #0x1c] + ldrne r0, [r4, #0x1c] + strne r0, [r4, #0x18] + ldr r0, [r4, #0x0] + ands r0, r0, #0x2 + movne r0, #0x1000 + strneh r0, [r4, #0x22] + movne r0, #0x0 + strneh r0, [r4, #0x20] + ldr r0, [r4, #0x0] + ands r0, r0, #0x4 + movne r0, #0x0 + strne r0, [r4, #0x28] + ldrne r0, [r4, #0x28] + strne r0, [r4, #0x24] + ldr r1, [r4, #0x0] + ldr r0, _020BFC24 ; =UNK_021067F0 + and r1, r1, #0x7 + ldr r2, [r0, r1, lsl #0x2] + add r0, sp, #0x8 + mov r1, r4 + blx r2 + ldr r3, [r4, #0x30] + cmp r3, #0x1000 + beq _020BFBB0 + ldr r0, [sp, #0x8] + ldr r1, [sp, #0xc] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x8] + ldr r2, [r4, #0x30] + ldr r0, [sp, #0x38] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0xc] + ldr r1, [r4, #0x30] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x38] +_020BFBB0: + ldr r3, [r4, #0x34] + cmp r3, #0x1000 + beq _020BFC00 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + smull r2, r0, r3, r0 + mov r2, r2, lsr #0xc + orr r2, r2, r0, lsl #0x14 + str r2, [sp, #0x18] + ldr r2, [r4, #0x34] + ldr r0, [sp, #0x3c] + smull r3, r1, r2, r1 + mov r2, r3, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [sp, #0x1c] + ldr r1, [r4, #0x34] + smull r2, r0, r1, r0 + mov r1, r2, lsr #0xc + orr r1, r1, r0, lsl #0x14 + str r1, [sp, #0x3c] +_020BFC00: + add r1, sp, #0x0 + ldr r0, [sp, #0x0] + add r1, r1, #0x4 + mov r2, #0x12 + bl FUN_020BB1C0 + add sp, sp, #0x50 + ldmia sp!, {r4,pc} + .balign 4 +_020BFC1C: .word 0x00101610 +_020BFC20: .word 0x00101810 +_020BFC24: .word UNK_021067F0 + arm_func_end FUN_020BFA9C + + ; _end + arm_func_start FUN_020BFC28 +FUN_020BFC28: ; 0x020BFC28 + mov r2, #0x1000 + str r2, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x10] + str r2, [r0, #0x14] + str r1, [r0, #0x30] + str r1, [r0, #0x34] + bx lr + arm_func_end FUN_020BFC28 + + ; _end + arm_func_start FUN_020BFC4C +FUN_020BFC4C: ; 0x020BFC4C + ldr r2, [r1, #0x18] + mov r3, #0x0 + str r2, [r0, #0x0] + ldr r2, [r1, #0x1c] + str r2, [r0, #0x14] + str r3, [r0, #0x4] + str r3, [r0, #0x30] + ldrh r2, [r1, #0x2e] + ldr r1, [r1, #0x1c] + rsb r2, r2, #0x0 + sub r1, r1, #0x1000 + mul r1, r2, r1 + mov r1, r1, lsl #0x4 + str r1, [r0, #0x34] + str r3, [r0, #0x10] + bx lr + arm_func_end FUN_020BFC4C + + ; _end + arm_func_start FUN_020BFC8C +FUN_020BFC8C: ; 0x020BFC8C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrh r1, [r5, #0x2c] + ldrsh r0, [r5, #0x20] + mul r0, r1, r0 + mov r0, r0, lsl #0x4 + str r0, [r6, #0x30] + ldrh r1, [r5, #0x2e] + ldrsh r0, [r5, #0x22] + rsb r1, r1, #0x0 + sub r0, r0, #0x1000 + mul r0, r1, r0 + mov r0, r0, lsl #0x4 + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + rsb r1, r1, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BFC8C + + ; _end + arm_func_start FUN_020BFD38 +FUN_020BFD38: ; 0x020BFD38 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldrh r2, [r9, #0x2c] + ldrh r1, [r9, #0x2e] + mov r10, r0 + mov r8, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r8 + bl FX_DivAsync + ldrsh r3, [r9, #0x22] + ldr r0, [r9, #0x18] + ldrsh r7, [r9, #0x20] + ldr r5, [r9, #0x1c] + smull r2, r1, r0, r3 + mov r2, r2, lsr #0xc + orr r2, r2, r1, lsl #0x14 + str r2, [r10, #0x0] + smull r2, r1, r5, r3 + mov r4, r2, lsr #0xc + orr r4, r4, r1, lsl #0x14 + smull r2, r1, r0, r7 + mov r6, r2, lsr #0xc + orr r6, r6, r1, lsl #0x14 + str r4, [r10, #0x14] + bl FX_GetDivResult + smull r2, r1, r5, r7 + mov r2, r2, lsr #0xc + orr r2, r2, r1, lsl #0x14 + mul r0, r2, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x4] + mov r0, r8 + mov r1, r11 + bl FX_DivAsync + sub r0, r4, #0x1000 + ldrh r1, [r9, #0x2c] + mul r2, r1, r6 + mov r1, r2, lsl #0x4 + str r1, [r10, #0x30] + ldrh r1, [r9, #0x2e] + rsb r1, r1, #0x0 + mul r0, r1, r0 + mov r0, r0, lsl #0x4 + str r0, [r10, #0x34] + bl FX_GetDivResult + rsb r1, r6, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r10, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BFD38 + + ; _end + arm_func_start FUN_020BFE0C +FUN_020BFE0C: ; 0x020BFE0C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x1000 + str r2, [r0, #0x0] + str r2, [r0, #0x14] + mov lr, #0x0 + str lr, [r0, #0x4] + ldr r2, [r1, #0x24] + ldrh r3, [r1, #0x2c] + rsb r2, r2, #0x0 + ldr r12, [r1, #0x28] + mul r2, r3, r2 + mov r2, r2, lsl #0x4 + str r2, [r0, #0x30] + ldrh r1, [r1, #0x2e] + rsb r2, r12, #0x0 + rsb r1, r1, #0x0 + mul r2, r1, r2 + mov r1, r2, lsl #0x4 + str r1, [r0, #0x34] + str lr, [r0, #0x10] + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020BFE0C + + ; _end + arm_func_start FUN_020BFE68 +FUN_020BFE68: ; 0x020BFE68 + stmdb sp!, {r4,lr} + ldr r3, [r1, #0x18] + mov r2, #0x0 + str r3, [r0, #0x0] + ldr r3, [r1, #0x1c] + str r3, [r0, #0x14] + str r2, [r0, #0x4] + ldr r12, [r1, #0x24] + ldr r3, [r1, #0x18] + ldr r4, [r1, #0x28] + smull lr, r3, r12, r3 + mov r12, lr, lsr #0xc + orr r12, r12, r3, lsl #0x14 + ldrh lr, [r1, #0x2c] + rsb r3, r12, #0x0 + ldr r12, [r1, #0x1c] + rsb r4, r4, #0x0 + mul r3, lr, r3 + smull lr, r12, r4, r12 + mov r3, r3, lsl #0x4 + str r3, [r0, #0x30] + mov r4, lr, lsr #0xc + ldrh r3, [r1, #0x2e] + ldr r1, [r1, #0x1c] + orr r4, r4, r12, lsl #0x14 + add r1, r1, r4 + rsb r3, r3, #0x0 + sub r1, r1, #0x1000 + mul r1, r3, r1 + mov r1, r1, lsl #0x4 + str r1, [r0, #0x34] + str r2, [r0, #0x10] + ldmia sp!, {r4,pc} + arm_func_end FUN_020BFE68 + + ; _end + arm_func_start FUN_020BFEEC +FUN_020BFEEC: ; 0x020BFEEC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + ldrh r2, [r5, #0x2c] + ldrh r1, [r5, #0x2e] + mov r6, r0 + mov r4, r2, lsl #0xc + mov r7, r1, lsl #0xc + mov r0, r7 + mov r1, r4 + bl FX_DivAsync + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x0] + ldrsh r0, [r5, #0x22] + str r0, [r6, #0x14] + bl FX_GetDivResult + ldrsh r2, [r5, #0x20] + mov r1, r7 + mul r0, r2, r0 + mov r2, r0, asr #0xc + mov r0, r4 + str r2, [r6, #0x4] + bl FX_DivAsync + ldrsh lr, [r5, #0x20] + ldr r4, [r5, #0x28] + ldrsh r0, [r5, #0x22] + ldr r12, [r5, #0x24] + smull r3, r2, r4, lr + smlal r3, r2, r12, r0 + smull r1, r0, r4, r0 + mov r3, r3, lsr #0xc + orr r3, r3, r2, lsl #0x14 + sub r4, lr, r3 + smull r3, r2, r12, lr + subs r1, r3, r1 + sbc r0, r2, r0 + ldrh r2, [r5, #0x2c] + mov r1, r1, lsr #0xc + orr r1, r1, r0, lsl #0x14 + mul r0, r2, r4 + mov r0, r0, lsl #0x4 + str r0, [r6, #0x30] + ldrsh r0, [r5, #0x22] + ldrh r2, [r5, #0x2e] + add r0, r0, r1 + rsb r1, r2, #0x0 + sub r0, r0, #0x1000 + mul r0, r1, r0 + mov r0, r0, lsl #0x4 + str r0, [r6, #0x34] + bl FX_GetDivResult + ldrsh r1, [r5, #0x20] + rsb r1, r1, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r6, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + arm_func_end FUN_020BFEEC + + ; _end + arm_func_start FUN_020BFFD4 +FUN_020BFFD4: ; 0x020BFFD4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldrh r2, [r6, #0x2c] + ldrh r1, [r6, #0x2e] + mov r7, r0 + mov r10, r2, lsl #0xc + mov r11, r1, lsl #0xc + mov r0, r11 + mov r1, r10 + bl FX_DivAsync + ldrsh r3, [r6, #0x22] + ldr r0, [r6, #0x18] + ldrsh r9, [r6, #0x20] + smull r2, r1, r0, r3 + mov r2, r2, lsr #0xc + ldr r8, [r6, #0x1c] + orr r2, r2, r1, lsl #0x14 + str r2, [r7, #0x0] + smull r2, r1, r8, r3 + mov r4, r2, lsr #0xc + orr r4, r4, r1, lsl #0x14 + smull r2, r1, r0, r9 + mov r5, r2, lsr #0xc + orr r5, r5, r1, lsl #0x14 + str r4, [r7, #0x14] + bl FX_GetDivResult + smull r2, r1, r8, r9 + mov r2, r2, lsr #0xc + orr r2, r2, r1, lsl #0x14 + mul r0, r2, r0 + mov r0, r0, asr #0xc + str r0, [r7, #0x4] + mov r0, r10 + mov r1, r11 + bl FX_DivAsync + ldr lr, [r6, #0x1c] + ldrsh r2, [r6, #0x20] + ldr r8, [r6, #0x24] + ldr r0, [r6, #0x28] + smull r10, r9, r8, r2 + ldrh r1, [r6, #0x2c] + smull r3, r2, r0, r2 + ldrsh r12, [r6, #0x22] + str r1, [sp, #0x0] + mov r11, lr, asr #0x1f + smlal r3, r2, r8, r12 + smull r8, r12, r0, r12 + subs r8, r10, r8 + sbc r0, r9, r12 + mov r9, r8, lsr #0xc + mov r12, r3, lsr #0xc + orr r9, r9, r0, lsl #0x14 + mov r3, r2, asr #0xc + orr r12, r12, r2, lsl #0x14 + umull r10, r2, r9, lr + mla r2, r9, r11, r2 + mov r8, r0, asr #0xc + mla r2, r8, lr, r2 + ldr r1, [r6, #0x18] + mov r8, r10, lsr #0xc + orr r8, r8, r2, lsl #0x14 + add r2, r4, r8 + mov r0, r1, asr #0x1f + umull r8, r4, r12, r1 + mla r4, r12, r0, r4 + mla r4, r3, r1, r4 + mov r0, r8, lsr #0xc + orr r0, r0, r4, lsl #0x14 + sub r1, r5, r0 + ldr r0, [sp, #0x0] + sub r2, r2, #0x1000 + mul r1, r0, r1 + mov r0, r1, lsl #0x4 + str r0, [r7, #0x30] + ldrh r0, [r6, #0x2e] + rsb r0, r0, #0x0 + mul r1, r0, r2 + mov r0, r1, lsl #0x4 + str r0, [r7, #0x34] + bl FX_GetDivResult + rsb r1, r5, #0x0 + mul r0, r1, r0 + mov r0, r0, asr #0xc + str r0, [r7, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + arm_func_end FUN_020BFFD4 diff --git a/arm9/asm/NNS_GFD_gfd_frameplttvr.s b/arm9/asm/NNS_GFD_gfd_frameplttvr.s new file mode 100644 index 000000000..de838ccd7 --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_frameplttvr.s @@ -0,0 +1,173 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; s_managerState_ + .global UNK_021CCD4C +UNK_021CCD4C: ; 0x021CCD4C + .space 0xc + + .section .text + + ; NNS_GfdResetFrmPlttVramState + arm_func_start FUN_020AEC60 +FUN_020AEC60: ; 0x020AEC60 + ldr r0, _020AEC78 ; =UNK_021CCD4C + mov r2, #0x0 + ldr r1, [r0, #0x8] + str r2, [r0, #0x0] + str r1, [r0, #0x4] + bx lr + .balign 4 +_020AEC78: .word UNK_021CCD4C + arm_func_end FUN_020AEC60 + + ; NNS_GfdSetFrmPlttVramState + arm_func_start FUN_020AEC7C +FUN_020AEC7C: ; 0x020AEC7C + ldr r2, [r0, #0x0] + ldr r1, _020AEC94 ; =UNK_021CCD4C + str r2, [r1, #0x0] + ldr r0, [r0, #0x4] + str r0, [r1, #0x4] + bx lr + .balign 4 +_020AEC94: .word UNK_021CCD4C + arm_func_end FUN_020AEC7C + + ; NNS_GfdGetFrmPlttVramState + arm_func_start FUN_020AEC98 +FUN_020AEC98: ; 0x020AEC98 + ldr r1, _020AECB0 ; =UNK_021CCD4C + ldr r2, [r1, #0x0] + str r2, [r0, #0x0] + ldr r1, [r1, #0x4] + str r1, [r0, #0x4] + bx lr + .balign 4 +_020AECB0: .word UNK_021CCD4C + arm_func_end FUN_020AEC98 + + ; _end + arm_func_start FUN_020AECB4 +FUN_020AECB4: ; 0x020AECB4 + mov r0, #0x0 + bx lr + arm_func_end FUN_020AECB4 + + ; NNS_GfdAllocFrmPlttVram + arm_func_start FUN_020AECBC +FUN_020AECBC: ; 0x020AECBC + stmdb sp!, {r4,lr} + cmp r0, #0x0 + moveq r0, #0x8 + addne r0, r0, #0x7 + ldr ip, _020AEDE8 ; =0x0007FFF8 + bicne r0, r0, #0x7 + cmp r0, r12 + mov r3, #0x0 + movcs r0, #0x0 + ldmcsia sp!, {r4,pc} + cmp r2, #0x1 + bne _020AED64 + ldr r2, _020AEDEC ; =UNK_021CCD4C + cmp r1, #0x0 + ldr r12, [r2, #0x0] + andne r2, r12, #0x7 + rsbne r2, r2, #0x8 + andne r4, r2, #0x7 + andeq r2, r12, #0xf + rsbeq r2, r2, #0x10 + andeq r4, r2, #0xf + ldr r2, _020AEDEC ; =UNK_021CCD4C + add lr, r0, r4 + ldr r2, [r2, #0x4] + sub r2, r2, r12 + cmp r2, lr + blo _020AED5C + cmp r1, #0x0 + add r1, r12, lr + beq _020AED40 + cmp r1, #0x10000 + movhi r12, #0x0 + bhi _020AEDCC +_020AED40: + ldr r1, _020AEDEC ; =UNK_021CCD4C + add r3, r12, r4 + ldr r2, [r1, #0x0] + mov r12, #0x1 + add r2, r2, lr + str r2, [r1, #0x0] + b _020AEDCC +_020AED5C: + mov r12, #0x0 + b _020AEDCC +_020AED64: + ldr r2, _020AEDEC ; =UNK_021CCD4C + ldr r12, [r2, #0x4] + cmp r12, r0 + blo _020AEDC8 + sub r2, r12, r0 + cmp r1, #0x0 + andne r4, r2, #0x7 + andeq r4, r2, #0xf + ldr r2, _020AEDEC ; =UNK_021CCD4C + add lr, r0, r4 + ldr r2, [r2, #0x0] + sub r2, r12, r2 + cmp r2, lr + blo _020AEDC8 + cmp r1, #0x0 + beq _020AEDB0 + cmp r12, #0x10000 + movhi r12, #0x0 + bhi _020AEDCC +_020AEDB0: + ldr r1, _020AEDEC ; =UNK_021CCD4C + mov r12, #0x1 + ldr r2, [r1, #0x4] + sub r3, r2, lr + str r3, [r1, #0x4] + b _020AEDCC +_020AEDC8: + mov r12, #0x0 +_020AEDCC: + cmp r12, #0x0 + ldrne r1, _020AEDF0 ; =0x0000FFFF + movne r2, r0, lsr #0x3 + andne r0, r1, r3, lsr #0x3 + orrne r0, r0, r2, lsl #0x10 + moveq r0, #0x0 + ldmia sp!, {r4,pc} + .balign 4 +_020AEDE8: .word 0x0007FFF8 +_020AEDEC: .word UNK_021CCD4C +_020AEDF0: .word 0x0000FFFF + arm_func_end FUN_020AECBC + + ; NNS_GfdInitFrmPlttVramManager + arm_func_start FUN_020AEDF4 +FUN_020AEDF4: ; 0x020AEDF4 + stmdb sp!, {r4,lr} + ldr r2, _020AEE2C ; =UNK_021CCD4C + mov r4, r1 + str r0, [r2, #0x8] + bl FUN_020AEC60 + cmp r4, #0x0 + ldmeqia sp!, {r4,pc} + ldr r3, _020AEE30 ; =FUN_020AECBC + ldr r1, _020AEE34 ; =UNK_021064C0 + ldr r2, _020AEE38 ; =FUN_020AECB4 + ldr r0, _020AEE3C ; =UNK_021064C4 + str r3, [r1, #0x0] + str r2, [r0, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020AEE2C: .word UNK_021CCD4C +_020AEE30: .word FUN_020AECBC +_020AEE34: .word UNK_021064C0 +_020AEE38: .word FUN_020AECB4 +_020AEE3C: .word UNK_021064C4 + arm_func_end FUN_020AEDF4 + diff --git a/arm9/asm/NNS_GFD_gfd_frametexvra.s b/arm9/asm/NNS_GFD_gfd_frametexvra.s new file mode 100644 index 000000000..7d9f5874e --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_frametexvra.s @@ -0,0 +1,344 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; tex4x4SearchArray_ + .global UNK_021064C8 +UNK_021064C8: ; 0x021064C8 + .word UNK_021064E4 + .word UNK_0210652C + + ; texNrmSearchArray_ + .global UNK_021064D0 +UNK_021064D0: ; 0x021064D0 + .word UNK_02106544 + .word UNK_0210652C + .word UNK_021064E4 + .word UNK_02106514 + .word UNK_021064FC + + ; vramRegions_ + .global UNK_021064E4 +UNK_021064E4: ; 0x021064E4 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 + + ; vramRegions_ + 0x18 + .global UNK_021064FC +UNK_021064FC: ; 0x021064FC + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00 + + ; vramRegions_ + 0x30 + .global UNK_02106514 +UNK_02106514: ; 0x02106514 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x00 + + ; vramRegions_ + 0x48 + .global UNK_0210652C +UNK_0210652C: ; 0x0210652C + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x03, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00 + + ; vramRegions_ + 0x60 + .global UNK_02106544 +UNK_02106544: ; 0x02106544 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x06, 0x00 + + .section .bss + + ; frmExVramMan_ + .global UNK_021CCD48 +UNK_021CCD48: ; 0x021CCD48 + .space 0x4 + + .section .text + + ; NNS_GfdSetFrmTexVramState + arm_func_start FUN_020AE8CC +FUN_020AE8CC: ; 0x020AE8CC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, #0x0 + ldr r3, _020AE914 ; =UNK_021064E4 + mov r12, lr + mov r2, #0x1 +_020AE8E4: + ldr r1, [r0, r12, lsl #0x2] + add lr, lr, #0x1 + str r1, [r3, #0x0] + ldr r1, [r0, r2, lsl #0x2] + cmp lr, #0x5 + str r1, [r3, #0x4] + add r12, r12, #0x2 + add r3, r3, #0x18 + add r2, r2, #0x2 + blt _020AE8E4 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AE914: .word UNK_021064E4 + arm_func_end FUN_020AE8CC + + ; NNS_GfdGetFrmTexVramState + arm_func_start FUN_020AE918 +FUN_020AE918: ; 0x020AE918 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, #0x0 + ldr ip, _020AE960 ; =UNK_021064E4 + mov r3, lr + mov r2, #0x1 +_020AE930: + ldr r1, [r12, #0x0] + add lr, lr, #0x1 + str r1, [r0, r3, lsl #0x2] + ldr r1, [r12, #0x4] + cmp lr, #0x5 + str r1, [r0, r2, lsl #0x2] + add r12, r12, #0x18 + add r3, r3, #0x2 + add r2, r2, #0x2 + blt _020AE930 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AE960: .word UNK_021064E4 + arm_func_end FUN_020AE918 + + ; _end + arm_func_start FUN_020AE964 +FUN_020AE964: ; 0x020AE964 + mov r0, #0x0 + bx lr + arm_func_end FUN_020AE964 + + ; NNS_GfdAllocFrmTexVram + arm_func_start FUN_020AE96C +FUN_020AE96C: ; 0x020AE96C + stmdb sp!, {r4-r10,lr} + cmp r0, #0x0 + moveq r7, #0x10 + addne r0, r0, #0xf + bicne r7, r0, #0xf + ldr r0, _020AEADC ; =0x0007FFF0 + cmp r7, r0 + movcs r0, #0x0 + ldmcsia sp!, {r4-r10,pc} + cmp r1, #0x0 + beq _020AEA5C + mov lr, r7, lsr #0x1 + mov r6, #0x0 + ldr r2, _020AEAE0 ; =UNK_02106514 + ldr r3, _020AEAE4 ; =UNK_021064FC + ldr ip, _020AEAE8 ; =UNK_021064C8 + mov r0, r6 +_020AE9B0: + ldr r5, [r12, r6, lsl #0x2] + ldr r4, [r5, #0x8] + cmp r4, #0x0 + beq _020AEA48 + ldr r9, [r5, #0x4] + ldr r4, [r5, #0x0] + sub r4, r9, r4 + cmp r4, r7 + blo _020AEA48 + ldrh r4, [r5, #0x10] + cmp r4, #0x0 + beq _020AE9EC + cmp r4, #0x3 + beq _020AE9F4 + b _020AE9FC +_020AE9EC: + mov r4, r3 + b _020AEA00 +_020AE9F4: + mov r4, r2 + b _020AEA00 +_020AE9FC: + mov r4, r0 +_020AEA00: + ldr r9, [r4, #0x8] + cmp r9, #0x0 + beq _020AEA48 + ldr r10, [r4, #0x4] + ldr r9, [r4, #0x0] + sub r9, r10, r9 + cmp r9, lr + blo _020AEA48 + ldr r3, [r5, #0x0] + mov r0, #0x1 + add r2, r3, r7 + str r2, [r5, #0x0] + ldr r2, [r4, #0x0] + add r2, r2, lr + str r2, [r4, #0x0] + ldr r2, [r5, #0x14] + add r8, r3, r2 + b _020AEAB8 +_020AEA48: + add r6, r6, #0x1 + cmp r6, #0x2 + blt _020AE9B0 + mov r0, #0x0 + b _020AEAB8 +_020AEA5C: + ldr r3, _020AEAEC ; =UNK_021064D0 + mov r5, #0x0 +_020AEA64: + ldr r4, [r3, r5, lsl #0x2] + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _020AEAA8 + ldr r2, [r4, #0x4] + ldr r0, [r4, #0x0] + sub r0, r2, r0 + cmp r0, r7 + blo _020AEAA8 + ldr r2, [r4, #0x4] + mov r0, #0x1 + sub r2, r2, r7 + str r2, [r4, #0x4] + ldr r3, [r4, #0x4] + ldr r2, [r4, #0x14] + add r8, r3, r2 + b _020AEAB8 +_020AEAA8: + add r5, r5, #0x1 + cmp r5, #0x5 + blt _020AEA64 + mov r0, #0x0 +_020AEAB8: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,pc} + ldr r0, _020AEAF0 ; =0x0000FFFF + mov r2, r7, lsr #0x4 + and r0, r0, r8, lsr #0x3 + orr r0, r0, r2, lsl #0x10 + orr r0, r0, r1, lsl #0x1f + ldmia sp!, {r4-r10,pc} + .balign 4 +_020AEADC: .word 0x0007FFF0 +_020AEAE0: .word UNK_02106514 +_020AEAE4: .word UNK_021064FC +_020AEAE8: .word UNK_021064C8 +_020AEAEC: .word UNK_021064D0 +_020AEAF0: .word 0x0000FFFF + arm_func_end FUN_020AE96C + + ; NNS_GfdResetFrmTexVramState + arm_func_start FUN_020AEAF4 +FUN_020AEAF4: ; 0x020AEAF4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r0, _020AEB68 ; =UNK_021CCD48 + mov r6, #0x0 + ldrh r7, [r0, #0x0] + ldr r5, _020AEB6C ; =UNK_021064E4 + mov lr, r6 + cmp r7, #0x1 + addhi r7, r7, #0x1 + mov r1, r6 + mov r3, r6 + mov r4, #0x1 + mov r0, #0x20000 + mov r2, #0x10000 +_020AEB2C: + cmp r6, r7 + strlt r4, [r5, #0x8] + strge lr, [r5, #0x8] + ldr r12, [r5, #0xc] + add r6, r6, #0x1 + cmp r12, #0x0 + strne r3, [r5, #0x0] + strne r2, [r5, #0x4] + streq r1, [r5, #0x0] + streq r0, [r5, #0x4] + cmp r6, #0x5 + add r5, r5, #0x18 + blt _020AEB2C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AEB68: .word UNK_021CCD48 +_020AEB6C: .word UNK_021064E4 + arm_func_end FUN_020AEAF4 + + ; NNS_GfdInitFrmTexVramManager + arm_func_start FUN_020AEB70 +FUN_020AEB70: ; 0x020AEB70 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + cmp r5, #0x2 + bhi _020AEBA8 + mov r12, #0x1 + mov r0, #0x4 + mov r1, #0x3 + mov r2, #0x2 + mov r3, #0x0 + str r12, [sp, #0x0] + bl FUN_020AEC10 + b _020AEBC4 +_020AEBA8: + mov r12, #0x1 + mov r0, #0x4 + mov r1, #0x3 + mov r2, #0x0 + mov r3, #0x2 + str r12, [sp, #0x0] + bl FUN_020AEC10 +_020AEBC4: + ldr r0, _020AEBFC ; =UNK_021CCD48 + strh r5, [r0, #0x0] + bl FUN_020AEAF4 + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r3, _020AEC00 ; =FUN_020AE96C + ldr r1, _020AEC04 ; =UNK_021064B8 + ldr r2, _020AEC08 ; =FUN_020AE964 + ldr r0, _020AEC0C ; =UNK_021064BC + str r3, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AEBFC: .word UNK_021CCD48 +_020AEC00: .word FUN_020AE96C +_020AEC04: .word UNK_021064B8 +_020AEC08: .word FUN_020AE964 +_020AEC0C: .word UNK_021064BC + arm_func_end FUN_020AEB70 + + ; NNSi_GfdSetTexNrmSearchArray + arm_func_start FUN_020AEC10 +FUN_020AEC10: ; 0x020AEC10 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr lr, [sp, #0x18] + ldr r6, _020AEC58 ; =UNK_021064E4 + mov r12, #0x18 + mla r7, r0, r12, r6 + ldr r0, _020AEC5C ; =UNK_021064D0 + mla r5, r1, r12, r6 + mla r4, r2, r12, r6 + mla r2, r3, r12, r6 + mla r1, lr, r12, r6 + str r7, [r0, #0x0] + str r5, [r0, #0x4] + str r4, [r0, #0x8] + str r2, [r0, #0xc] + str r1, [r0, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AEC58: .word UNK_021064E4 +_020AEC5C: .word UNK_021064D0 + arm_func_end FUN_020AEC10 + diff --git a/arm9/asm/NNS_GFD_gfd_linkedlistp.s b/arm9/asm/NNS_GFD_gfd_linkedlistp.s new file mode 100644 index 000000000..4ef85974b --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_linkedlistp.s @@ -0,0 +1,165 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; mgr_ + .global UNK_021CCD88 +UNK_021CCD88: ; 0x021CCD88 + .space 0x4 + + ; mgr_ + 0x4 + .global UNK_021CCD8C +UNK_021CCD8C: ; 0x021CCD8C + .space 0x10 + + .section .text + + ; NNS_GfdResetLnkPlttVramState + arm_func_start FUN_020AFA30 +FUN_020AFA30: ; 0x020AFA30 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020AFA78 ; =UNK_021CCD88 + ldr r1, [r0, #0x10] + ldr r0, [r0, #0xc] + mov r1, r1, lsr #0x4 + bl FUN_020AF64C + ldr r1, _020AFA78 ; =UNK_021CCD88 + str r0, [r1, #0x4] + mov r0, r1 + bl FUN_020AF698 + ldr r0, _020AFA78 ; =UNK_021CCD88 + ldr r1, _020AFA7C ; =UNK_021CCD8C + ldr r3, [r0, #0x8] + mov r2, #0x0 + bl FUN_020AF5E0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AFA78: .word UNK_021CCD88 +_020AFA7C: .word UNK_021CCD8C + arm_func_end FUN_020AFA30 + + ; NNS_GfdFreeLnkPlttVram + arm_func_start FUN_020AFA80 +FUN_020AFA80: ; 0x020AFA80 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r1, #0x10000 + rsb r2, r1, #0x0 + ldr r1, _020AFAC8 ; =0x0000FFFF + and r2, r0, r2 + and r12, r0, r1 + mov r3, r2, lsr #0x10 + ldr r0, _020AFACC ; =UNK_021CCD88 + ldr r1, _020AFAD0 ; =UNK_021CCD8C + mov r2, r12, lsl #0x3 + mov r3, r3, lsl #0x3 + bl FUN_020AF334 + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AFAC8: .word 0x0000FFFF +_020AFACC: .word UNK_021CCD88 +_020AFAD0: .word UNK_021CCD8C + arm_func_end FUN_020AFA80 + + ; NNS_GfdAllocLnkPlttVram + arm_func_start FUN_020AFAD4 +FUN_020AFAD4: ; 0x020AFAD4 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + cmp r0, #0x0 + moveq r4, #0x8 + addne r0, r0, #0x7 + bicne r4, r0, #0x7 + ldr r0, _020AFB98 ; =0x0007FFF8 + cmp r4, r0 + addcs sp, sp, #0x8 + movcs r0, #0x0 + ldmcsia sp!, {r4,pc} + cmp r1, #0x0 + beq _020AFB50 + mov r12, #0x8 + ldr r0, _020AFB9C ; =UNK_021CCD88 + ldr r1, _020AFBA0 ; =UNK_021CCD8C + add r2, sp, #0x4 + mov r3, r4 + str r12, [sp, #0x0] + bl FUN_020AF488 + ldr r2, [sp, #0x4] + add r1, r2, r4 + cmp r1, #0x10000 + bls _020AFB6C + ldr r0, _020AFB9C ; =UNK_021CCD88 + ldr r1, _020AFBA0 ; =UNK_021CCD8C + mov r3, r4 + bl FUN_020AF334 + add sp, sp, #0x8 + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020AFB50: + ldr r0, _020AFB9C ; =UNK_021CCD88 + mov r12, #0x10 + ldr r1, _020AFBA0 ; =UNK_021CCD8C + add r2, sp, #0x4 + mov r3, r4 + str r12, [sp, #0x0] + bl FUN_020AF488 +_020AFB6C: + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} + ldr r1, [sp, #0x4] + ldr r0, _020AFBA4 ; =0x0000FFFF + mov r2, r4, lsr #0x3 + and r0, r0, r1, lsr #0x3 + orr r0, r0, r2, lsl #0x10 + add sp, sp, #0x8 + ldmia sp!, {r4,pc} + .balign 4 +_020AFB98: .word 0x0007FFF8 +_020AFB9C: .word UNK_021CCD88 +_020AFBA0: .word UNK_021CCD8C +_020AFBA4: .word 0x0000FFFF + arm_func_end FUN_020AFAD4 + + ; NNS_GfdInitLnkPlttVramManager + arm_func_start FUN_020AFBA8 +FUN_020AFBA8: ; 0x020AFBA8 + stmdb sp!, {r4,lr} + ldr ip, _020AFBE8 ; =UNK_021CCD88 + mov r4, r3 + str r0, [r12, #0x8] + str r1, [r12, #0xc] + str r2, [r12, #0x10] + bl FUN_020AFA30 + cmp r4, #0x0 + ldmeqia sp!, {r4,pc} + ldr r3, _020AFBEC ; =FUN_020AFAD4 + ldr r1, _020AFBF0 ; =UNK_021064C0 + ldr r2, _020AFBF4 ; =FUN_020AFA80 + ldr r0, _020AFBF8 ; =UNK_021064C4 + str r3, [r1, #0x0] + str r2, [r0, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020AFBE8: .word UNK_021CCD88 +_020AFBEC: .word FUN_020AFAD4 +_020AFBF0: .word UNK_021064C0 +_020AFBF4: .word FUN_020AFA80 +_020AFBF8: .word UNK_021064C4 + arm_func_end FUN_020AFBA8 + + ; _end + arm_func_start FUN_020AFBFC +FUN_020AFBFC: ; 0x020AFBFC + mov r0, r0, lsl #0x4 + bx lr + arm_func_end FUN_020AFBFC + diff --git a/arm9/asm/NNS_GFD_gfd_linkedlistt.s b/arm9/asm/NNS_GFD_gfd_linkedlistt.s new file mode 100644 index 000000000..1c611a0ed --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_linkedlistt.s @@ -0,0 +1,302 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; @7929 + .global UNK_020FF864 +UNK_020FF864: ; 0x020FF864 + .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .section .bss + + ; mgr_ + .global UNK_021CCD6C +UNK_021CCD6C: ; 0x021CCD6C + .space 0x4 + + ; mgr_ + 0x4 + .global UNK_021CCD70 +UNK_021CCD70: ; 0x021CCD70 + .space 0x4 + + ; mgr_ + 0x8 + .global UNK_021CCD74 +UNK_021CCD74: ; 0x021CCD74 + .space 0x14 + + .section .text + + ; NNS_GfdResetLnkTexVramState + arm_func_start FUN_020AF6A4 +FUN_020AF6A4: ; 0x020AF6A4 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x30 + ldr r6, _020AF884 ; =UNK_020FF864 + add r5, sp, #0x0 + ldmia r6!, {r0-r3} + mov r12, r5 + stmia r5!, {r0-r3} + ldmia r6!, {r0-r3} + stmia r5!, {r0-r3} + ldr r4, _020AF888 ; =UNK_021CCD6C + ldmia r6, {r0-r3} + stmia r5, {r0-r3} + ldr lr, [r4, #0x10] + ldr r1, [r4, #0xc] + add r0, lr, lr, lsr #0x1 + mov r4, lr, lsr #0x1 + sub r0, r1, r0 + mov r3, #0x0 +_020AF6EC: + cmp r3, #0x0 + beq _020AF6FC + cmp r3, #0x2 + bne _020AF734 +_020AF6FC: + ldr r2, [r12, #0x0] + cmp r2, #0x0 + beq _020AF734 + cmp lr, #0x0 + beq _020AF734 + ldr r1, [r12, #0x8] + cmp r2, lr + movhi r2, lr + add r1, r1, r2 + str r1, [r12, #0x8] + ldr r1, [r12, #0x0] + sub lr, lr, r2 + sub r1, r1, r2 + str r1, [r12, #0x0] +_020AF734: + add r3, r3, #0x1 + cmp r3, #0x4 + add r12, r12, #0xc + blo _020AF6EC + ldr r1, [sp, #0xc] + add r5, sp, #0x0 + sub r1, r1, r4 + str r1, [sp, #0xc] + mov r3, #0x0 +_020AF758: + ldr r2, [r5, #0x0] + cmp r2, #0x0 + beq _020AF790 + cmp r0, #0x0 + beq _020AF790 + ldr r1, [r5, #0x4] + cmp r2, r0 + movhi r2, r0 + add r1, r1, r2 + str r1, [r5, #0x4] + ldr r1, [r5, #0x0] + sub r0, r0, r2 + sub r1, r1, r2 + str r1, [r5, #0x0] +_020AF790: + add r3, r3, #0x1 + cmp r3, #0x4 + add r5, r5, #0xc + blo _020AF758 + ldr r0, _020AF888 ; =UNK_021CCD6C + bl FUN_020AF698 + ldr r0, _020AF88C ; =UNK_021CCD70 + bl FUN_020AF698 + ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r1, [r0, #0x18] + ldr r0, [r0, #0x14] + mov r1, r1, lsr #0x4 + bl FUN_020AF64C + ldr r3, [sp, #0x8] + ldr r1, _020AF888 ; =UNK_021CCD6C + cmp r3, #0x0 + str r0, [r1, #0x8] + beq _020AF7E8 + ldr r0, _020AF88C ; =UNK_021CCD70 + ldr r1, _020AF890 ; =UNK_021CCD74 + mov r2, #0x0 + bl FUN_020AF5E0 +_020AF7E8: + ldr r3, [sp, #0x4] + ldr r2, [sp, #0x8] + cmp r3, #0x0 + beq _020AF804 + ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r1, _020AF890 ; =UNK_021CCD74 + bl FUN_020AF5E0 +_020AF804: + ldr r3, [sp, #0x20] + cmp r3, #0x0 + beq _020AF820 + ldr r0, _020AF88C ; =UNK_021CCD70 + ldr r1, _020AF890 ; =UNK_021CCD74 + mov r2, #0x40000 + bl FUN_020AF5E0 +_020AF820: + ldr r3, [sp, #0x1c] + ldr r0, [sp, #0x20] + cmp r3, #0x0 + add r2, r0, #0x40000 + beq _020AF840 + ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r1, _020AF890 ; =UNK_021CCD74 + bl FUN_020AF5E0 +_020AF840: + ldr r3, [sp, #0x28] + cmp r3, #0x0 + beq _020AF85C + ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r1, _020AF890 ; =UNK_021CCD74 + mov r2, #0x60000 + bl FUN_020AF5E0 +_020AF85C: + ldr r3, [sp, #0x10] + cmp r3, #0x0 + addeq sp, sp, #0x30 + ldmeqia sp!, {r4-r6,pc} + ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r1, _020AF890 ; =UNK_021CCD74 + add r2, r4, #0x20000 + bl FUN_020AF5E0 + add sp, sp, #0x30 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AF884: .word UNK_020FF864 +_020AF888: .word UNK_021CCD6C +_020AF88C: .word UNK_021CCD70 +_020AF890: .word UNK_021CCD74 + arm_func_end FUN_020AF6A4 + + ; NNS_GfdFreeLnkTexVram + arm_func_start FUN_020AF894 +FUN_020AF894: ; 0x020AF894 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020AF908 ; =0x7FFF0000 + ldr r1, _020AF90C ; =0x0000FFFF + and r2, r0, r2 + and r3, r0, r1 + mov r1, r2, lsr #0x10 + and r0, r0, #0x80000000 + mov r2, r3, lsl #0x3 + movs r3, r1, lsl #0x4 + mov r0, r0, lsr #0x1f + beq _020AF8FC + cmp r0, #0x0 + beq _020AF8DC + ldr r0, _020AF910 ; =UNK_021CCD70 + ldr r1, _020AF914 ; =UNK_021CCD74 + bl FUN_020AF334 + b _020AF8E8 +_020AF8DC: + ldr r0, _020AF918 ; =UNK_021CCD6C + ldr r1, _020AF914 ; =UNK_021CCD74 + bl FUN_020AF334 +_020AF8E8: + cmp r0, #0x0 + movne r0, #0x0 + add sp, sp, #0x4 + moveq r0, #0x1 + ldmia sp!, {pc} +_020AF8FC: + mov r0, #0x2 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AF908: .word 0x7FFF0000 +_020AF90C: .word 0x0000FFFF +_020AF910: .word UNK_021CCD70 +_020AF914: .word UNK_021CCD74 +_020AF918: .word UNK_021CCD6C + arm_func_end FUN_020AF894 + + ; NNS_GfdAllocLnkTexVram + arm_func_start FUN_020AF91C +FUN_020AF91C: ; 0x020AF91C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + moveq r5, #0x10 + addne r0, r0, #0xf + bicne r5, r0, #0xf + ldr r0, _020AF9B0 ; =0x0007FFF0 + mov r4, r1 + cmp r5, r0 + addcs sp, sp, #0x4 + movcs r0, #0x0 + ldmcsia sp!, {r4-r5,pc} + cmp r4, #0x0 + beq _020AF96C + ldr r0, _020AF9B4 ; =UNK_021CCD70 + ldr r1, _020AF9B8 ; =UNK_021CCD74 + add r2, sp, #0x0 + mov r3, r5 + bl FUN_020AF5C4 + b _020AF980 +_020AF96C: + ldr r0, _020AF9BC ; =UNK_021CCD6C + ldr r1, _020AF9B8 ; =UNK_021CCD74 + add r2, sp, #0x0 + mov r3, r5 + bl FUN_020AF5C4 +_020AF980: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} + ldr r1, [sp, #0x0] + ldr r0, _020AF9C0 ; =0x0000FFFF + mov r2, r5, lsr #0x4 + and r0, r0, r1, lsr #0x3 + orr r0, r0, r2, lsl #0x10 + orr r0, r0, r4, lsl #0x1f + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AF9B0: .word 0x0007FFF0 +_020AF9B4: .word UNK_021CCD70 +_020AF9B8: .word UNK_021CCD74 +_020AF9BC: .word UNK_021CCD6C +_020AF9C0: .word 0x0000FFFF + arm_func_end FUN_020AF91C + + ; NNS_GfdInitLnkTexVramManager + arm_func_start FUN_020AF9C4 +FUN_020AF9C4: ; 0x020AF9C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr ip, _020AFA14 ; =UNK_021CCD6C + str r0, [r12, #0xc] + str r1, [r12, #0x10] + str r2, [r12, #0x14] + str r3, [r12, #0x18] + bl FUN_020AF6A4 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r3, _020AFA18 ; =FUN_020AF91C + ldr r1, _020AFA1C ; =UNK_021064B8 + ldr r2, _020AFA20 ; =FUN_020AF894 + ldr r0, _020AFA24 ; =UNK_021064BC + str r3, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AFA14: .word UNK_021CCD6C +_020AFA18: .word FUN_020AF91C +_020AFA1C: .word UNK_021064B8 +_020AFA20: .word FUN_020AF894 +_020AFA24: .word UNK_021064BC + arm_func_end FUN_020AF9C4 + + ; _end + arm_func_start FUN_020AFA28 +FUN_020AFA28: ; 0x020AFA28 + mov r0, r0, lsl #0x4 + bx lr + arm_func_end FUN_020AFA28 + diff --git a/arm9/asm/NNS_GFD_gfd_plttvramman.s b/arm9/asm/NNS_GFD_gfd_plttvramman.s new file mode 100644 index 000000000..d1a9c3cc0 --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_plttvramman.s @@ -0,0 +1,31 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; NNS_GfdDefaultFuncAllocPlttVram + .global UNK_021064C0 +UNK_021064C0: ; 0x021064C0 + .word FUN_020AE8C4 + + ; NNS_GfdDefaultFuncFreePlttVram + .global UNK_021064C4 +UNK_021064C4: ; 0x021064C4 + .word FUN_020AE8BC + + .section .text + + ; _end + arm_func_start FUN_020AE8BC +FUN_020AE8BC: ; 0x020AE8BC + mvn r0, #0x0 + bx lr + arm_func_end FUN_020AE8BC + + ; _end + arm_func_start FUN_020AE8C4 +FUN_020AE8C4: ; 0x020AE8C4 + mov r0, #0x0 + bx lr + arm_func_end FUN_020AE8C4 + diff --git a/arm9/asm/NNS_GFD_gfd_texvramman.s b/arm9/asm/NNS_GFD_gfd_texvramman.s new file mode 100644 index 000000000..e647619d3 --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_texvramman.s @@ -0,0 +1,31 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .data + + ; NNS_GfdDefaultFuncAllocTexVram + .global UNK_021064B8 +UNK_021064B8: ; 0x021064B8 + .word FUN_020AE8B4 + + ; NNS_GfdDefaultFuncFreeTexVram + .global UNK_021064BC +UNK_021064BC: ; 0x021064BC + .word FUN_020AE8AC + + .section .text + + ; _end + arm_func_start FUN_020AE8AC +FUN_020AE8AC: ; 0x020AE8AC + mvn r0, #0x0 + bx lr + arm_func_end FUN_020AE8AC + + ; _end + arm_func_start FUN_020AE8B4 +FUN_020AE8B4: ; 0x020AE8B4 + mov r0, #0x0 + bx lr + arm_func_end FUN_020AE8B4 + diff --git a/arm9/asm/NNS_GFD_gfd_vramtransfe.s b/arm9/asm/NNS_GFD_gfd_vramtransfe.s new file mode 100644 index 000000000..86c628414 --- /dev/null +++ b/arm9/asm/NNS_GFD_gfd_vramtransfe.s @@ -0,0 +1,643 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .rodata + + ; transFunc$7934 + .global UNK_020FF7D4 +UNK_020FF7D4: ; 0x020FF7D4 + .word FUN_020AF2B4 + .word FUN_020AF288 + .word FUN_020AF25C + .word FUN_020AF230 + .word GX_LoadBG0Char_2 + .word GX_LoadBG1Char_2 + .word GX_LoadBG2Char_2 + .word GX_LoadBG3Char_2 + .word GX_LoadBG0Scr_2 + .word GX_LoadBG1Scr_2 + .word GX_LoadBG2Scr_2 + .word GX_LoadBG3Scr_2 + .word GX_LoadBG2Scr_3 + .word GX_LoadBG3Scr_3 + .word GX_LoadOBJPltt_2 + .word GX_LoadBGPltt_2 + .word FUN_020AF174 + .word FUN_020AF148 + .word GX_LoadOAM_2 + .word GX_LoadOBJ_2 + .word GXS_LoadBG0Char_2 + .word GXS_LoadBG1Char_2 + .word GXS_LoadBG2Char_2 + .word GXS_LoadBG3Char_2 + .word GXS_LoadBG0Scr_2 + .word GXS_LoadBG1Scr_2 + .word GXS_LoadBG2Scr_2 + .word GXS_LoadBG3Scr_2 + .word GXS_LoadBG2Scr_3 + .word GXS_LoadBG3Scr_3 + .word GXS_LoadOBJPltt_2 + .word GXS_LoadBGPltt_2 + .word FUN_020AF074 + .word FUN_020AF048 + .word GXS_LoadOAM_2 + .word GXS_LoadOBJ_2 + + ; const initializer + .section .bss + + ; s_VramTransferManager + .global UNK_021CCD58 +UNK_021CCD58: ; 0x021CCD58 + .space 0x14 + + .section .text + + ; NNS_GfdRegisterNewVramTransferTask + arm_func_start FUN_020AEE40 +FUN_020AEE40: ; 0x020AEE40 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r5, _020AEEB4 ; =UNK_021CCD58 + mov r9, r0 + mov r0, r5 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl FUN_020AF2F4 + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r9,pc} + mov r0, r5 + bl FUN_020AEF78 + mov r4, r0 + str r9, [r4, #0x0] + str r7, [r4, #0x4] + str r8, [r4, #0x8] + mov r0, r5 + str r6, [r4, #0xc] + bl FUN_020AEF98 + ldr r2, [r5, #0x10] + ldr r1, [r4, #0xc] + mov r0, #0x1 + add r1, r2, r1 + str r1, [r5, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020AEEB4: .word UNK_021CCD58 + arm_func_end FUN_020AEE40 + + ; NNS_GfdDoVramTransfer + arm_func_start FUN_020AEEB8 +FUN_020AEEB8: ; 0x020AEEB8 + stmdb sp!, {r4-r6,lr} + ldr r6, _020AEF18 ; =UNK_021CCD58 + mov r0, r6 + bl FUN_020AEF88 + mov r5, r0 + mov r0, r6 + bl FUN_020AEF3C + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + add r4, r6, #0x10 +_020AEEE0: + mov r0, r5 + bl FUN_020AEFF0 + ldr r2, [r4, #0x0] + ldr r1, [r5, #0xc] + mov r0, r6 + sub r1, r2, r1 + str r1, [r4, #0x0] + bl FUN_020AEF88 + mov r5, r0 + mov r0, r6 + bl FUN_020AEF3C + cmp r0, #0x0 + bne _020AEEE0 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AEF18: .word UNK_021CCD58 + arm_func_end FUN_020AEEB8 + + ; NNS_GfdInitVramTransferManager + arm_func_start FUN_020AEF1C +FUN_020AEF1C: ; 0x020AEF1C + ldr r2, _020AEF34 ; =UNK_021CCD58 + ldr ip, _020AEF38 ; =FUN_020AEFD4 + str r0, [r2, #0x0] + mov r0, r2 + str r1, [r2, #0x4] + bx r12 + .balign 4 +_020AEF34: .word UNK_021CCD58 +_020AEF38: .word FUN_020AEFD4 + arm_func_end FUN_020AEF1C + + ; _end + arm_func_start FUN_020AEF3C +FUN_020AEF3C: ; 0x020AEF3C + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020AF2E0 + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,pc} + ldrh r1, [r4, #0x8] + mov r0, r4 + bl FUN_020AF30C + strh r0, [r4, #0x8] + ldrh r1, [r4, #0xc] + mov r0, #0x1 + sub r1, r1, #0x1 + strh r1, [r4, #0xc] + ldmia sp!, {r4,pc} + arm_func_end FUN_020AEF3C + + ; _end + arm_func_start FUN_020AEF78 +FUN_020AEF78: ; 0x020AEF78 + ldrh r1, [r0, #0xa] + ldr r0, [r0, #0x0] + add r0, r0, r1, lsl #0x4 + bx lr + arm_func_end FUN_020AEF78 + + ; _end + arm_func_start FUN_020AEF88 +FUN_020AEF88: ; 0x020AEF88 + ldrh r1, [r0, #0x8] + ldr r0, [r0, #0x0] + add r0, r0, r1, lsl #0x4 + bx lr + arm_func_end FUN_020AEF88 + + ; _end + arm_func_start FUN_020AEF98 +FUN_020AEF98: ; 0x020AEF98 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020AF2F4 + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,pc} + ldrh r1, [r4, #0xa] + mov r0, r4 + bl FUN_020AF30C + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + mov r0, #0x1 + add r1, r1, #0x1 + strh r1, [r4, #0xc] + ldmia sp!, {r4,pc} + arm_func_end FUN_020AEF98 + + ; _end + arm_func_start FUN_020AEFD4 +FUN_020AEFD4: ; 0x020AEFD4 + mov r2, #0x0 + strh r2, [r0, #0xa] + ldrh r1, [r0, #0xa] + strh r1, [r0, #0x8] + strh r2, [r0, #0xc] + str r2, [r0, #0x10] + bx lr + arm_func_end FUN_020AEFD4 + + ; DoTransfer_ + arm_func_start FUN_020AEFF0 +FUN_020AEFF0: ; 0x020AEFF0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r3, [r5, #0x0] + ldr r2, _020AF02C ; =UNK_020FF7D4 + ldr r0, [r5, #0x4] + ldr r1, [r5, #0xc] + ldr r4, [r2, r3, lsl #0x2] + bl DC_FlushRange + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + ldr r2, [r5, #0xc] + blx r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AF02C: .word UNK_020FF7D4 + arm_func_end FUN_020AEFF0 + +GXS_LoadOBJ_2: + ldr ip, _020AF038 ; =GXS_LoadOBJ + bx r12 + .balign 4 +_020AF038: .word GXS_LoadOBJ + arm_func_end GXS_LoadOBJ_2 + + ; DoTransfer2dObjOamSub + arm_func_start GXS_LoadOAM_2 +GXS_LoadOAM_2: ; 0x020AF03C + ldr ip, _020AF044 ; =GXS_LoadOAM + bx r12 + .balign 4 +_020AF044: .word GXS_LoadOAM + arm_func_end GXS_LoadOAM_2 + + ; _end + arm_func_start FUN_020AF048 +FUN_020AF048: ; 0x020AF048 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GXS_BeginLoadBGExtPltt + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF048 + + ; _end + arm_func_start FUN_020AF074 +FUN_020AF074: ; 0x020AF074 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GXS_BeginLoadOBJExtPltt + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GXS_LoadOBJExtPltt + bl GXS_EndLoadOBJExtPltt + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF074 + + ; DoTransfer2dBGPlttSub + arm_func_start GXS_LoadBGPltt_2 +GXS_LoadBGPltt_2: ; 0x020AF0A0 + ldr ip, _020AF0A8 ; =GXS_LoadBGPltt + bx r12 + .balign 4 +_020AF0A8: .word GXS_LoadBGPltt + arm_func_end GXS_LoadBGPltt_2 + + ; DoTransfer2dObjPlttSub + arm_func_start GXS_LoadOBJPltt_2 +GXS_LoadOBJPltt_2: ; 0x020AF0AC + ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt + bx r12 + .balign 4 +_020AF0B4: .word GXS_LoadOBJPltt + arm_func_end GXS_LoadOBJPltt_2 + + ; DoTransfer2dBG3BmpSub + arm_func_start GXS_LoadBG3Scr_3 +GXS_LoadBG3Scr_3: ; 0x020AF0B8 + ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr + bx r12 + .balign 4 +_020AF0C0: .word GXS_LoadBG3Scr + arm_func_end GXS_LoadBG3Scr_3 + + ; DoTransfer2dBG2BmpSub + arm_func_start GXS_LoadBG2Scr_3 +GXS_LoadBG2Scr_3: ; 0x020AF0C4 + ldr ip, _020AF0CC ; =GXS_LoadBG2Scr + bx r12 + .balign 4 +_020AF0CC: .word GXS_LoadBG2Scr + arm_func_end GXS_LoadBG2Scr_3 + + ; DoTransfer2dBG3ScrSub + arm_func_start GXS_LoadBG3Scr_2 +GXS_LoadBG3Scr_2: ; 0x020AF0D0 + ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr + bx r12 + .balign 4 +_020AF0D8: .word GXS_LoadBG3Scr + arm_func_end GXS_LoadBG3Scr_2 + + ; DoTransfer2dBG2ScrSub + arm_func_start GXS_LoadBG2Scr_2 +GXS_LoadBG2Scr_2: ; 0x020AF0DC + ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr + bx r12 + .balign 4 +_020AF0E4: .word GXS_LoadBG2Scr + arm_func_end GXS_LoadBG2Scr_2 + + ; DoTransfer2dBG1ScrSub + arm_func_start GXS_LoadBG1Scr_2 +GXS_LoadBG1Scr_2: ; 0x020AF0E8 + ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr + bx r12 + .balign 4 +_020AF0F0: .word GXS_LoadBG1Scr + arm_func_end GXS_LoadBG1Scr_2 + + ; DoTransfer2dBG0ScrSub + arm_func_start GXS_LoadBG0Scr_2 +GXS_LoadBG0Scr_2: ; 0x020AF0F4 + ldr ip, _020AF0FC ; =GXS_LoadBG0Scr + bx r12 + .balign 4 +_020AF0FC: .word GXS_LoadBG0Scr + arm_func_end GXS_LoadBG0Scr_2 + + ; DoTransfer2dBG3CharSub + arm_func_start GXS_LoadBG3Char_2 +GXS_LoadBG3Char_2: ; 0x020AF100 + ldr ip, _020AF108 ; =GXS_LoadBG3Char + bx r12 + .balign 4 +_020AF108: .word GXS_LoadBG3Char + arm_func_end GXS_LoadBG3Char_2 + + ; DoTransfer2dBG2CharSub + arm_func_start GXS_LoadBG2Char_2 +GXS_LoadBG2Char_2: ; 0x020AF10C + ldr ip, _020AF114 ; =GXS_LoadBG2Char + bx r12 + .balign 4 +_020AF114: .word GXS_LoadBG2Char + arm_func_end GXS_LoadBG2Char_2 + + ; DoTransfer2dBG1CharSub + arm_func_start GXS_LoadBG1Char_2 +GXS_LoadBG1Char_2: ; 0x020AF118 + ldr ip, _020AF120 ; =GXS_LoadBG1Char + bx r12 + .balign 4 +_020AF120: .word GXS_LoadBG1Char + arm_func_end GXS_LoadBG1Char_2 + + ; DoTransfer2dBG0CharSub + arm_func_start GXS_LoadBG0Char_2 +GXS_LoadBG0Char_2: ; 0x020AF124 + ldr ip, _020AF12C ; =GXS_LoadBG0Char + bx r12 + .balign 4 +_020AF12C: .word GXS_LoadBG0Char + arm_func_end GXS_LoadBG0Char_2 + + ; DoTransfer2dObjCharMain + arm_func_start GX_LoadOBJ_2 +GX_LoadOBJ_2: ; 0x020AF130 + ldr ip, _020AF138 ; =GX_LoadOBJ + bx r12 + .balign 4 +_020AF138: .word GX_LoadOBJ + arm_func_end GX_LoadOBJ_2 + + ; DoTransfer2dObjOamMain + arm_func_start GX_LoadOAM_2 +GX_LoadOAM_2: ; 0x020AF13C + ldr ip, _020AF144 ; =GX_LoadOAM + bx r12 + .balign 4 +_020AF144: .word GX_LoadOAM + arm_func_end GX_LoadOAM_2 + + ; _end + arm_func_start FUN_020AF148 +FUN_020AF148: ; 0x020AF148 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GX_BeginLoadBGExtPltt + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF148 + + ; _end + arm_func_start FUN_020AF174 +FUN_020AF174: ; 0x020AF174 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GX_BeginLoadOBJExtPltt + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GX_LoadOBJExtPltt + bl GX_EndLoadOBJExtPltt + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF174 + + ; DoTransfer2dBGPlttMain + arm_func_start GX_LoadBGPltt_2 +GX_LoadBGPltt_2: ; 0x020AF1A0 + ldr ip, _020AF1A8 ; =GX_LoadBGPltt + bx r12 + .balign 4 +_020AF1A8: .word GX_LoadBGPltt + arm_func_end GX_LoadBGPltt_2 + + ; DoTransfer2dObjPlttMain + arm_func_start GX_LoadOBJPltt_2 +GX_LoadOBJPltt_2: ; 0x020AF1AC + ldr ip, _020AF1B4 ; =GX_LoadOBJPltt + bx r12 + .balign 4 +_020AF1B4: .word GX_LoadOBJPltt + arm_func_end GX_LoadOBJPltt_2 + + ; DoTransfer2dBG3BmpMain + arm_func_start GX_LoadBG3Scr_3 +GX_LoadBG3Scr_3: ; 0x020AF1B8 + ldr ip, _020AF1C0 ; =GX_LoadBG3Scr + bx r12 + .balign 4 +_020AF1C0: .word GX_LoadBG3Scr + arm_func_end GX_LoadBG3Scr_3 + + ; DoTransfer2dBG2BmpMain + arm_func_start GX_LoadBG2Scr_3 +GX_LoadBG2Scr_3: ; 0x020AF1C4 + ldr ip, _020AF1CC ; =GX_LoadBG2Scr + bx r12 + .balign 4 +_020AF1CC: .word GX_LoadBG2Scr + arm_func_end GX_LoadBG2Scr_3 + + ; DoTransfer2dBG3ScrMain + arm_func_start GX_LoadBG3Scr_2 +GX_LoadBG3Scr_2: ; 0x020AF1D0 + ldr ip, _020AF1D8 ; =GX_LoadBG3Scr + bx r12 + .balign 4 +_020AF1D8: .word GX_LoadBG3Scr + arm_func_end GX_LoadBG3Scr_2 + + ; DoTransfer2dBG2ScrMain + arm_func_start GX_LoadBG2Scr_2 +GX_LoadBG2Scr_2: ; 0x020AF1DC + ldr ip, _020AF1E4 ; =GX_LoadBG2Scr + bx r12 + .balign 4 +_020AF1E4: .word GX_LoadBG2Scr + arm_func_end GX_LoadBG2Scr_2 + + ; DoTransfer2dBG1ScrMain + arm_func_start GX_LoadBG1Scr_2 +GX_LoadBG1Scr_2: ; 0x020AF1E8 + ldr ip, _020AF1F0 ; =GX_LoadBG1Scr + bx r12 + .balign 4 +_020AF1F0: .word GX_LoadBG1Scr + arm_func_end GX_LoadBG1Scr_2 + + ; DoTransfer2dBG0ScrMain + arm_func_start GX_LoadBG0Scr_2 +GX_LoadBG0Scr_2: ; 0x020AF1F4 + ldr ip, _020AF1FC ; =GX_LoadBG0Scr + bx r12 + .balign 4 +_020AF1FC: .word GX_LoadBG0Scr + arm_func_end GX_LoadBG0Scr_2 + + ; DoTransfer2dBG3CharMain + arm_func_start GX_LoadBG3Char_2 +GX_LoadBG3Char_2: ; 0x020AF200 + ldr ip, _020AF208 ; =GX_LoadBG3Char + bx r12 + .balign 4 +_020AF208: .word GX_LoadBG3Char + arm_func_end GX_LoadBG3Char_2 + + ; DoTransfer2dBG2CharMain + arm_func_start GX_LoadBG2Char_2 +GX_LoadBG2Char_2: ; 0x020AF20C + ldr ip, _020AF214 ; =GX_LoadBG2Char + bx r12 + .balign 4 +_020AF214: .word GX_LoadBG2Char + arm_func_end GX_LoadBG2Char_2 + + ; DoTransfer2dBG1CharMain + arm_func_start GX_LoadBG1Char_2 +GX_LoadBG1Char_2: ; 0x020AF218 + ldr ip, _020AF220 ; =GX_LoadBG1Char + bx r12 + .balign 4 +_020AF220: .word GX_LoadBG1Char + arm_func_end GX_LoadBG1Char_2 + + ; DoTransfer2dBG0CharMain + arm_func_start GX_LoadBG0Char_2 +GX_LoadBG0Char_2: ; 0x020AF224 + ldr ip, _020AF22C ; =GX_LoadBG0Char + bx r12 + .balign 4 +_020AF22C: .word GX_LoadBG0Char + arm_func_end GX_LoadBG0Char_2 + + ; _end + arm_func_start FUN_020AF230 +FUN_020AF230: ; 0x020AF230 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r2 + bl GX_BeginLoadClearImage + mov r0, r5 + mov r1, r4 + bl GX_LoadClearImageDepth + bl GX_EndLoadClearImage + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AF230 + + ; _end + arm_func_start FUN_020AF25C +FUN_020AF25C: ; 0x020AF25C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r2 + bl GX_BeginLoadClearImage + mov r0, r5 + mov r1, r4 + bl GX_LoadClearImageColor + bl GX_EndLoadClearImage + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + arm_func_end FUN_020AF25C + + ; _end + arm_func_start FUN_020AF288 +FUN_020AF288: ; 0x020AF288 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GX_BeginLoadTexPltt + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GX_LoadTexPltt + bl GX_EndLoadTexPltt + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF288 + + ; _end + arm_func_start FUN_020AF2B4 +FUN_020AF2B4: ; 0x020AF2B4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl GX_BeginLoadTex + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl GX_LoadTex + bl GX_EndLoadTex + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF2B4 + + ; _end + arm_func_start FUN_020AF2E0 +FUN_020AF2E0: ; 0x020AF2E0 + ldrh r0, [r0, #0xc] + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + arm_func_end FUN_020AF2E0 + + ; _end + arm_func_start FUN_020AF2F4 +FUN_020AF2F4: ; 0x020AF2F4 + ldrh r1, [r0, #0xc] + ldr r0, [r0, #0x4] + cmp r1, r0 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + arm_func_end FUN_020AF2F4 + + ; _end + arm_func_start FUN_020AF30C +FUN_020AF30C: ; 0x020AF30C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r0 + add r0, r1, #0x1 + ldr r1, [r2, #0x4] + bl _u32_div_f + mov r0, r1, lsl #0x10 + mov r0, r0, lsr #0x10 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020AF30C + diff --git a/arm9/asm/NNS_GFD_gfdi_linkedlist.s b/arm9/asm/NNS_GFD_gfdi_linkedlist.s new file mode 100644 index 000000000..793cbf04d --- /dev/null +++ b/arm9/asm/NNS_GFD_gfdi_linkedlist.s @@ -0,0 +1,268 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020AF334 +FUN_020AF334: ; 0x020AF334 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x10 + add r3, r2, r3 + str r2, [sp, #0x0] + str r2, [sp, #0x8] + str r3, [sp, #0x4] + str r3, [sp, #0xc] + ldr r3, [r0, #0x0] + add r12, sp, #0x0 + cmp r3, #0x0 + beq _020AF418 + mov r6, #0x0 +_020AF364: + ldr r5, [r3, #0x0] + ldr r4, [r12, #0x4] + ldr r2, [r3, #0xc] + cmp r5, r4 + bne _020AF3B8 + ldr r4, [r3, #0x4] + add r4, r5, r4 + str r4, [sp, #0xc] + ldr r4, [r3, #0x8] + cmp r4, #0x0 + strne r2, [r4, #0xc] + streq r2, [r0, #0x0] + cmp r2, #0x0 + strne r4, [r2, #0x8] + ldr r4, [r1, #0x0] + cmp r4, #0x0 + strne r3, [r4, #0x8] + ldr r4, [r1, #0x0] + str r4, [r3, #0xc] + str r6, [r3, #0x8] + str r3, [r1, #0x0] +_020AF3B8: + ldr r5, [r3, #0x0] + ldr lr, [r3, #0x4] + ldr r4, [r12, #0x0] + add lr, r5, lr + cmp r4, lr + bne _020AF40C + str r5, [sp, #0x8] + ldr r5, [r3, #0x8] + ldr r4, [r3, #0xc] + cmp r5, #0x0 + strne r4, [r5, #0xc] + streq r4, [r0, #0x0] + cmp r4, #0x0 + strne r5, [r4, #0x8] + ldr lr, [r1, #0x0] + cmp lr, #0x0 + strne r3, [lr, #0x8] + ldr lr, [r1, #0x0] + str lr, [r3, #0xc] + str r6, [r3, #0x8] + str r3, [r1, #0x0] +_020AF40C: + mov r3, r2 + cmp r2, #0x0 + bne _020AF364 +_020AF418: + ldr r4, [r1, #0x0] + cmp r4, #0x0 + ldrne r2, [r4, #0xc] + strne r2, [r1, #0x0] + cmp r4, #0x0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r2, [sp, #0x8] + mov r1, #0x0 + str r2, [r4, #0x0] + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x8] + sub r2, r3, r2 + str r2, [r4, #0x4] + str r1, [r4, #0x8] + str r1, [r4, #0xc] + ldr r1, [r0, #0x0] + cmp r1, #0x0 + strne r4, [r1, #0x8] + ldr r2, [r0, #0x0] + mov r1, #0x0 + str r2, [r4, #0xc] + str r1, [r4, #0x8] + str r4, [r0, #0x0] + mov r0, #0x1 + add sp, sp, #0x10 + ldmia sp!, {r4-r6,pc} + arm_func_end FUN_020AF334 + + ; _end + arm_func_start FUN_020AF488 +FUN_020AF488: ; 0x020AF488 + stmdb sp!, {r4-r10,lr} + ldr r4, [r0, #0x0] + ldr r9, [sp, #0x20] + cmp r4, #0x0 + mov r5, #0x0 + beq _020AF4EC + sub r12, r9, #0x1 + mvn lr, r12 +_020AF4A8: + cmp r9, #0x1 + ldrls r8, [r4, #0x0] + movls r6, r5 + movls r7, r3 + bls _020AF4D0 + ldr r7, [r4, #0x0] + add r6, r7, r12 + and r8, lr, r6 + sub r6, r8, r7 + add r7, r3, r6 +_020AF4D0: + ldr r10, [r4, #0x4] + cmp r10, r7 + movcs r5, r4 + bhs _020AF4EC + ldr r4, [r4, #0xc] + cmp r4, #0x0 + bne _020AF4A8 +_020AF4EC: + cmp r5, #0x0 + beq _020AF5B8 + cmp r6, #0x0 + beq _020AF54C + ldr r9, [r1, #0x0] + cmp r9, #0x0 + ldrne r3, [r9, #0xc] + strne r3, [r1, #0x0] + cmp r9, #0x0 + beq _020AF5B8 + ldr r4, [r5, #0x0] + mov r3, #0x0 + str r4, [r9, #0x0] + str r6, [r9, #0x4] + str r3, [r9, #0x8] + str r3, [r9, #0xc] + ldr r3, [r0, #0x0] + cmp r3, #0x0 + strne r9, [r3, #0x8] + ldr r4, [r0, #0x0] + mov r3, #0x0 + str r4, [r9, #0xc] + str r3, [r9, #0x8] + str r9, [r0, #0x0] +_020AF54C: + ldr r3, [r5, #0x4] + sub r3, r3, r7 + str r3, [r5, #0x4] + ldr r3, [r5, #0x0] + add r3, r3, r7 + str r3, [r5, #0x0] + ldr r3, [r5, #0x4] + cmp r3, #0x0 + bne _020AF5AC + ldr r4, [r5, #0x8] + ldr r3, [r5, #0xc] + cmp r4, #0x0 + strne r3, [r4, #0xc] + streq r3, [r0, #0x0] + cmp r3, #0x0 + strne r4, [r3, #0x8] + ldr r0, [r1, #0x0] + cmp r0, #0x0 + strne r5, [r0, #0x8] + ldr r3, [r1, #0x0] + mov r0, #0x0 + str r3, [r5, #0xc] + str r0, [r5, #0x8] + str r5, [r1, #0x0] +_020AF5AC: + str r8, [r2, #0x0] + mov r0, #0x1 + ldmia sp!, {r4-r10,pc} +_020AF5B8: + mov r0, #0x0 + str r0, [r2, #0x0] + ldmia sp!, {r4-r10,pc} + arm_func_end FUN_020AF488 + + ; _end + arm_func_start FUN_020AF5C4 +FUN_020AF5C4: ; 0x020AF5C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r12, #0x0 + str r12, [sp, #0x0] + bl FUN_020AF488 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020AF5C4 + + ; _end + arm_func_start FUN_020AF5E0 +FUN_020AF5E0: ; 0x020AF5E0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr lr, [r1, #0x0] + cmp lr, #0x0 + ldrne r12, [lr, #0xc] + strne r12, [r1, #0x0] + cmp lr, #0x0 + beq _020AF640 + str r2, [lr, #0x0] + str r3, [lr, #0x4] + mov r1, #0x0 + str r1, [lr, #0x8] + str r1, [lr, #0xc] + ldr r1, [r0, #0x0] + add sp, sp, #0x4 + cmp r1, #0x0 + strne lr, [r1, #0x8] + ldr r2, [r0, #0x0] + mov r1, #0x0 + str r2, [lr, #0xc] + str r1, [lr, #0x8] + str lr, [r0, #0x0] + mov r0, #0x1 + ldmia sp!, {pc} +_020AF640: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + arm_func_end FUN_020AF5E0 + + ; _end + arm_func_start FUN_020AF64C +FUN_020AF64C: ; 0x020AF64C + stmdb sp!, {r4,lr} + subs lr, r1, #0x1 + mov r2, #0x0 + beq _020AF684 + mov r4, r0 +_020AF660: + add r12, r2, #0x1 + add r2, r0, r2, lsl #0x4 + add r3, r0, r12, lsl #0x4 + str r3, [r2, #0xc] + str r4, [r3, #0x8] + mov r2, r12 + cmp r12, lr + add r4, r4, #0x10 + blo _020AF660 +_020AF684: + mov r2, #0x0 + str r2, [r0, #0x8] + add r1, r0, r1, lsl #0x4 + str r2, [r1, #-0x4] + ldmia sp!, {r4,pc} + arm_func_end FUN_020AF64C + + ; _end + arm_func_start FUN_020AF698 +FUN_020AF698: ; 0x020AF698 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + arm_func_end FUN_020AF698 + diff --git a/arm9/asm/NNS_SND_capture.s b/arm9/asm/NNS_SND_capture.s new file mode 100644 index 000000000..a30a85f11 --- /dev/null +++ b/arm9/asm/NNS_SND_capture.s @@ -0,0 +1,699 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sIsThreadCreated + .global UNK_021D27A4 +UNK_021D27A4: ; 0x021D27A4 + .space 0x4 + + ; sCurEffectInfo + .global UNK_021D27A8 +UNK_021D27A8: ; 0x021D27A8 + .space 0x4 + + ; sMesgQ + .global UNK_021D27AC +UNK_021D27AC: ; 0x021D27AC + .space 0x20 + + ; sCapParam + .global UNK_021D27CC +UNK_021D27CC: ; 0x021D27CC + .space 0x54 + + ; sEffectInfoBuffer + .global UNK_021D2820 +UNK_021D2820: ; 0x021D2820 + .space 0xa0 + + .section .text + + ; AlarmCallback + arm_func_start FUN_020C177C +FUN_020C177C: ; 0x020C177C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r4, [r7, #0x18] + ldr r0, [r7, #0x1c] + ldr r1, _020C186C ; =UNK_021D27A4 + mul r0, r4, r0 + ldr r3, [r7, #0xc] + ldr r2, [r7, #0x10] + ldr r1, [r1, #0x0] + add r6, r3, r0 + cmp r1, #0x0 + add r5, r2, r0 + beq _020C180C + ldr r2, _020C1870 ; =UNK_021D27A8 + mov r1, #0x14 + ldr r2, [r2, #0x0] + ldr r3, _020C1874 ; =UNK_021D2820 + mul r1, r2, r1 + str r7, [r3, r1] + add r1, r3, r1 + str r4, [r1, #0x4] + str r0, [r1, #0x8] + str r6, [r1, #0xc] + ldr r0, _020C1878 ; =UNK_021D27AC + mov r2, #0x0 + str r5, [r1, #0x10] + bl OS_SendMessage + ldr r0, _020C1870 ; =UNK_021D27A8 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + cmp r1, #0x8 + movge r1, #0x0 + strge r1, [r0, #0x0] + b _020C1844 +_020C180C: + mov r0, r6 + mov r1, r4 + bl DC_InvalidateRange + mov r0, r5 + mov r1, r4 + bl DC_InvalidateRange + ldr r1, [r7, #0x38] + mov r0, r6 + str r1, [sp, #0x0] + ldr r3, [r7, #0x8] + ldr r6, [r7, #0x34] + mov r1, r5 + mov r2, r4 + blx r6 +_020C1844: + ldr r0, [r7, #0x1c] + add r0, r0, #0x1 + str r0, [r7, #0x1c] + ldr r1, [r7, #0x1c] + ldr r0, [r7, #0x30] + cmp r1, r0 + movge r0, #0x0 + strge r0, [r7, #0x1c] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C186C: .word UNK_021D27A4 +_020C1870: .word UNK_021D27A8 +_020C1874: .word UNK_021D2820 +_020C1878: .word UNK_021D27AC + + ; NNSi_SndCaptureEndSleep + arm_func_start FUN_020C187C +FUN_020C187C: ; 0x020C187C + stmdb sp!, {r4,lr} + ldr r4, _020C18F4 ; =UNK_021D27CC + ldr r0, [r4, #0x0] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + mov r0, #0x0 + str r0, [r4, #0x1c] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x14] + bl MIi_CpuClear32 + ldr r1, [r4, #0x10] + ldr r2, [r4, #0x14] + mov r0, #0x0 + bl MIi_CpuClear32 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x14] + bl DC_FlushRange + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x14] + bl DC_FlushRange + ldr r1, [r4, #0x2c] + mov r3, #0x0 + cmp r1, #0x0 + movge r0, #0x1 + movge r2, r0, lsl r1 + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x28] + movlt r2, #0x0 + bl SND_StartTimer + ldmia sp!, {r4,pc} + .balign 4 +_020C18F4: .word UNK_021D27CC + + ; NNSi_SndCaptureBeginSleep + arm_func_start FUN_020C18F8 +FUN_020C18F8: ; 0x020C18F8 + stmdb sp!, {r4,lr} + ldr r3, _020C194C ; =UNK_021D27CC + ldr r0, [r3, #0x0] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + ldr r1, [r3, #0x2c] + cmp r1, #0x0 + movge r0, #0x1 + movge r2, r0, lsl r1 + ldr r0, [r3, #0x24] + ldr r1, [r3, #0x28] + movlt r2, #0x0 + mov r3, #0x0 + bl SND_StopTimer + bl SND_GetCurrentCommandTag + mov r4, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r4 + bl SND_WaitForCommandProc + ldmia sp!, {r4,pc} + .balign 4 +_020C194C: .word UNK_021D27CC + + ; NNSi_SndCaptureStop + arm_func_start FUN_020C1950 +FUN_020C1950: ; 0x020C1950 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r4, _020C1A3C ; =UNK_021D27CC + ldr r0, [r4, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + ldr r1, [r4, #0x2c] + mov r3, #0x0 + cmp r1, #0x0 + movge r7, #0x1 + movlt r7, #0x0 + cmp r7, #0x0 + movne r0, #0x1 + movne r2, r0, lsl r1 + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x28] + moveq r2, #0x0 + bl SND_StopTimer + cmp r7, #0x0 + beq _020C19DC + bl SND_GetCurrentCommandTag + mov r5, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r5 + bl SND_WaitForCommandProc + ldr r6, _020C1A40 ; =UNK_021D27AC + mov r5, #0x0 +_020C19C4: + mov r0, r6 + mov r1, r5 + mov r2, r5 + bl OS_ReceiveMessage + cmp r0, #0x0 + bne _020C19C4 +_020C19DC: + ldr r0, [r4, #0x28] + cmp r0, #0x0 + beq _020C19EC + bl FUN_020C0300 +_020C19EC: + ldr r0, [r4, #0x20] + cmp r0, #0x0 + beq _020C19FC + bl FUN_020C0340 +_020C19FC: + cmp r7, #0x0 + beq _020C1A0C + ldr r0, [r4, #0x2c] + bl FUN_020C029C +_020C1A0C: + ldr r0, [r4, #0x4] + cmp r0, #0x1 + bne _020C1A2C + mov r0, #0x0 + mov r1, r0 + mov r2, r0 + mov r3, r0 + bl SND_SetOutputSelector +_020C1A2C: + mov r0, #0x0 + str r0, [r4, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C1A3C: .word UNK_021D27CC +_020C1A40: .word UNK_021D27AC + + ; NNSi_SndCaptureStart + arm_func_start FUN_020C1A44 +FUN_020C1A44: ; 0x020C1A44 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x3c + mov r10, r3 + str r0, [sp, #0x18] + str r2, [sp, #0x20] + mov r2, #0x0 + str r1, [sp, #0x1c] + mov r0, r1 + mov r1, r10 + ldr r9, [sp, #0x6c] + ldr r8, [sp, #0x74] + str r2, [sp, #0x2c] + mvn r6, #0x0 + ldr r4, _020C1D90 ; =UNK_021D27CC + bl DC_FlushRange + ldr r0, [sp, #0x20] + mov r1, r10 + bl DC_FlushRange + ldr r0, [sp, #0x60] + ldr r1, [sp, #0x70] + cmp r0, #0x1 + moveq r7, #0x1 + ldr r0, _020C1D94 ; =0x00FFB0FF + movne r7, #0x0 + bl _s32_div_f + ldr r1, [sp, #0x84] + mov r11, r0 + cmp r1, #0x0 + beq _020C1B00 + add r1, r11, #0x10 + bic r11, r1, #0x1f + mov r2, r11, asr #0x5 + mov r0, r10 + cmp r7, #0x0 + ldr r1, [sp, #0x80] + moveq r0, r10, lsr #0x1 + str r2, [sp, #0x34] + bl _u32_div_f + ldr r1, [sp, #0x34] + mov r5, #0x20 + mul r0, r1, r0 + str r0, [sp, #0x30] + cmp r7, #0x0 + ldr r0, [sp, #0x34] + moveq r5, r5, lsr #0x1 + mul r0, r5, r0 + mov r5, r0 +_020C1B00: + cmp r7, #0x0 + movne r0, #0x0 + strne r0, [sp, #0x28] + moveq r0, #0x1 + streq r0, [sp, #0x28] + cmp r7, #0x0 + movne r0, #0x1 + strne r0, [sp, #0x24] + moveq r0, #0x0 + streq r0, [sp, #0x24] + ldr r0, [sp, #0x18] + cmp r0, #0x2 + movne r0, #0xa + strne r0, [sp, #0x2c] + ldr r0, [sp, #0x84] + cmp r0, #0x0 + beq _020C1B58 + bl FUN_020C02BC + movs r6, r0 + addmi sp, sp, #0x3c + movmi r0, #0x0 + ldmmiia sp!, {r4-r11,pc} +_020C1B58: + mov r0, #0x3 + bl FUN_020C031C + cmp r0, #0x0 + bne _020C1B84 + cmp r6, #0x0 + blt _020C1B78 + mov r0, r6 + bl FUN_020C029C +_020C1B78: + add sp, sp, #0x3c + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020C1B84: + mov r0, #0xa + bl FUN_020C0370 + cmp r0, #0x0 + bne _020C1BB8 + cmp r6, #0x0 + blt _020C1BA4 + mov r0, r6 + bl FUN_020C029C +_020C1BA4: + mov r0, #0x3 + bl FUN_020C0300 + add sp, sp, #0x3c + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020C1BB8: + mov r0, #0x0 + mov r7, r10, lsr #0x2 + str r0, [sp, #0x0] + str r7, [sp, #0x4] + str r8, [sp, #0x8] + str r0, [sp, #0xc] + cmp r9, #0x0 + movne r3, #0x1 + ldr r1, [sp, #0x78] + str r11, [sp, #0x10] + str r1, [sp, #0x14] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x1c] + moveq r3, #0x2 + mov r0, #0x1 + bl SND_SetupChannelPcm + ldr r1, [sp, #0x64] + str r9, [sp, #0x0] + str r1, [sp, #0x4] + ldr r0, [sp, #0x68] + ldr r1, [sp, #0x24] + str r0, [sp, #0x8] + ldr r2, [sp, #0x1c] + mov r0, #0x0 + mov r3, r7 + bl SND_SetupCapture + mov r0, #0x0 + str r0, [sp, #0x0] + str r7, [sp, #0x4] + str r8, [sp, #0x8] + str r0, [sp, #0xc] + cmp r9, #0x0 + movne r3, #0x1 + ldr r2, [sp, #0x7c] + str r11, [sp, #0x10] + str r2, [sp, #0x14] + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x20] + moveq r3, #0x2 + mov r0, #0x3 + bl SND_SetupChannelPcm + ldr r2, [sp, #0x64] + str r9, [sp, #0x0] + str r2, [sp, #0x4] + ldr r0, [sp, #0x68] + ldr r1, [sp, #0x24] + str r0, [sp, #0x8] + ldr r2, [sp, #0x20] + mov r3, r7 + mov r0, #0x1 + bl SND_SetupCapture + cmp r6, #0x0 + blt _020C1CA8 + ldr r2, [sp, #0x30] + ldr r3, _020C1D98 ; =FUN_020C177C + mov r1, r2 + mov r0, r6 + add r1, r1, r5 + str r4, [sp, #0x0] + bl SND_SetupAlarm +_020C1CA8: + ldr r0, [sp, #0x18] + cmp r0, #0x1 + bne _020C1CC8 + mov r0, #0x1 + mov r2, r0 + mov r3, r0 + mov r1, #0x2 + bl SND_SetOutputSelector +_020C1CC8: + cmp r6, #0x0 + movge r0, #0x1 + movge r2, r0, lsl r6 + ldr r0, [sp, #0x2c] + movlt r2, #0x0 + mov r1, #0x3 + mov r3, #0x0 + bl SND_StartTimer + mov r0, #0x1 + str r0, [r4, #0x0] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x80] + str r0, [r4, #0x4] + mov r0, #0xa + str r0, [r4, #0x20] + ldr r0, [sp, #0x2c] + str r0, [r4, #0x24] + mov r0, #0x3 + str r0, [r4, #0x28] + ldr r0, [sp, #0x60] + str r6, [r4, #0x2c] + str r0, [r4, #0x8] + ldr r0, [sp, #0x1c] + str r0, [r4, #0xc] + ldr r0, [sp, #0x20] + str r0, [r4, #0x10] + mov r0, r10 + str r10, [r4, #0x14] + bl _u32_div_f + str r0, [r4, #0x18] + mov r1, #0x0 + str r1, [r4, #0x1c] + ldr r0, [sp, #0x80] + ldr r1, [sp, #0x84] + str r0, [r4, #0x30] + ldr r0, [sp, #0x88] + str r1, [r4, #0x34] + str r0, [r4, #0x38] + add r0, r4, #0x3c + str r8, [r4, #0x50] + bl FUN_020C3E6C + add r0, r4, #0x3c + mov r1, r8, lsl #0x8 + mov r2, #0x1 + bl FUN_020C3E40 + mov r0, #0x0 + str r0, [r4, #0x4c] + mov r0, #0x1 + add sp, sp, #0x3c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020C1D90: .word UNK_021D27CC +_020C1D94: .word 0x00FFB0FF +_020C1D98: .word FUN_020C177C + + ; NNSi_SndCaptureMain + arm_func_start FUN_020C1D9C +FUN_020C1D9C: ; 0x020C1D9C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r5, _020C1E34 ; =UNK_021D27CC + ldr r0, [r5, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r0, [r5, #0x4] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} + add r4, r5, #0x3c + mov r0, r4 + bl FUN_020C3DF4 + ldr r0, [r5, #0x4c] + cmp r0, #0x0 + beq _020C1DFC + mov r0, r4 + bl FUN_020C3DDC + cmp r0, #0x0 + beq _020C1DFC + bl FUN_020C1950 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} +_020C1DFC: + mov r0, r4 + bl FUN_020C3E0C + ldr r1, [r5, #0x50] + mov r4, r0, asr #0x8 + cmp r4, r1 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r0, [r5, #0x24] + mov r1, r4 + mov r2, #0x0 + bl SND_SetChannelVolume + str r4, [r5, #0x50] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C1E34: .word UNK_021D27CC + + ; NNSi_SndCaptureInit + arm_func_start FUN_020C1E38 +FUN_020C1E38: ; 0x020C1E38 + ldr r1, _020C1E50 ; =UNK_021D27A4 + mov r2, #0x0 + ldr r0, _020C1E54 ; =UNK_021D27CC + str r2, [r1, #0x0] + str r2, [r0, #0x0] + bx lr + .balign 4 +_020C1E50: .word UNK_021D27A4 +_020C1E54: .word UNK_021D27CC + + ; NNS_SndCaptureIsActive + arm_func_start FUN_020C1E58 +FUN_020C1E58: ; 0x020C1E58 + ldr r0, _020C1E64 ; =UNK_021D27CC + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020C1E64: .word UNK_021D27CC + + ; NNS_SndCaptureStopEffect + arm_func_start FUN_020C1E68 +FUN_020C1E68: ; 0x020C1E68 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020C1EA0 ; =UNK_021D27CC + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, [r0, #0x4] + cmp r0, #0x1 + addne sp, sp, #0x4 + ldmneia sp!, {pc} + bl FUN_020C1950 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020C1EA0: .word UNK_021D27CC + + ; NNS_SndCaptureStartEffect + arm_func_start FUN_020C1EA4 +FUN_020C1EA4: ; 0x020C1EA4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x2c + mov r5, r0 + mov r4, r1 + mov r7, r2 + mov r6, r3 + bl FUN_020C1E68 + ldr r0, _020C1F50 ; =UNK_021D27CC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x2c + movne r0, #0x0 + ldmneia sp!, {r4-r7,pc} + mov r1, r5 + mov r2, r4 + mov r0, #0x0 + bl MIi_CpuClear32 + mov r0, r5 + mov r1, r4 + bl DC_FlushRange + str r7, [sp, #0x0] + mov r2, #0x0 + str r2, [sp, #0x4] + str r2, [sp, #0x8] + mov r0, #0x1 + str r0, [sp, #0xc] + str r6, [sp, #0x10] + mov r1, #0x7f + str r1, [sp, #0x14] + str r2, [sp, #0x18] + ldr r2, [sp, #0x40] + str r1, [sp, #0x1c] + ldr r1, [sp, #0x44] + str r2, [sp, #0x20] + ldr r12, [sp, #0x48] + str r1, [sp, #0x24] + mov r1, r5 + mov r3, r4, lsr #0x1 + add r2, r5, r4, lsr #0x1 + str r12, [sp, #0x28] + bl FUN_020C1A44 + add sp, sp, #0x2c + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C1F50: .word UNK_021D27CC + + ; NNS_SndCaptureStopReverb + arm_func_start FUN_020C1F54 +FUN_020C1F54: ; 0x020C1F54 + stmdb sp!, {r4,lr} + ldr r4, _020C1FA0 ; =UNK_021D27CC + mov r2, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + ldr r0, [r4, #0x4] + cmp r0, #0x0 + ldmneia sp!, {r4,pc} + cmp r2, #0x0 + bne _020C1F88 + bl FUN_020C1950 + ldmia sp!, {r4,pc} +_020C1F88: + add r0, r4, #0x3c + mov r1, #0x0 + bl FUN_020C3E40 + mov r0, #0x1 + str r0, [r4, #0x4c] + ldmia sp!, {r4,pc} + .balign 4 +_020C1FA0: .word UNK_021D27CC + + ; NNS_SndCaptureSetReverbVolume + arm_func_start FUN_020C1FA4 +FUN_020C1FA4: ; 0x020C1FA4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, _020C1FEC ; =UNK_021D27CC + mov r12, r0 + ldr r0, [r3, #0x0] + mov r2, r1 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, [r3, #0x4] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {pc} + add r0, r3, #0x3c + mov r1, r12, lsl #0x8 + bl FUN_020C3E40 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020C1FEC: .word UNK_021D27CC + + ; NNS_SndCaptureStartReverb + arm_func_start FUN_020C1FF0 +FUN_020C1FF0: ; 0x020C1FF0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x2c + mov r5, r0 + mov r0, #0x0 + mov r4, r1 + mov r7, r2 + mov r6, r3 + bl FUN_020C1F54 + ldr r0, _020C2098 ; =UNK_021D27CC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x2c + movne r0, #0x0 + ldmneia sp!, {r4-r7,pc} + mov r1, r5 + mov r2, r4 + mov r0, #0x0 + bl MIi_CpuClear32 + mov r0, r5 + mov r1, r4 + bl DC_FlushRange + str r7, [sp, #0x0] + mov r0, #0x0 + str r0, [sp, #0x4] + str r0, [sp, #0x8] + mov r1, #0x1 + str r1, [sp, #0xc] + ldr r1, [sp, #0x40] + str r6, [sp, #0x10] + str r1, [sp, #0x14] + str r0, [sp, #0x18] + mov r1, #0x7f + str r1, [sp, #0x1c] + str r0, [sp, #0x20] + str r0, [sp, #0x24] + mov r1, r5 + mov r3, r4, lsr #0x1 + add r2, r5, r4, lsr #0x1 + str r0, [sp, #0x28] + bl FUN_020C1A44 + add sp, sp, #0x2c + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C2098: .word UNK_021D27CC + diff --git a/arm9/asm/NNS_SND_fader.s b/arm9/asm/NNS_SND_fader.s new file mode 100644 index 000000000..b36093a28 --- /dev/null +++ b/arm9/asm/NNS_SND_fader.s @@ -0,0 +1,68 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020C3DDC +FUN_020C3DDC: ; 0x020C3DDC + ldr r1, [r0, #0x8] + ldr r0, [r0, #0xc] + cmp r1, r0 + movge r0, #0x1 + movlt r0, #0x0 + bx lr + + ; _end + arm_func_start FUN_020C3DF4 +FUN_020C3DF4: ; 0x020C3DF4 + ldr r2, [r0, #0x8] + ldr r1, [r0, #0xc] + cmp r2, r1 + addlt r1, r2, #0x1 + strlt r1, [r0, #0x8] + bx lr + + ; _end + arm_func_start FUN_020C3E0C +FUN_020C3E0C: ; 0x020C3E0C + stmdb sp!, {r4,lr} + ldr r1, [r0, #0xc] + ldr r2, [r0, #0x8] + cmp r2, r1 + ldrge r0, [r0, #0x4] + ldmgeia sp!, {r4,pc} + ldr r4, [r0, #0x0] + ldr r0, [r0, #0x4] + sub r0, r0, r4 + mul r0, r2, r0 + bl _s32_div_f + add r0, r4, r0 + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C3E40 +FUN_020C3E40: ; 0x020C3E40 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_020C3E0C + str r0, [r6, #0x0] + str r5, [r6, #0x4] + str r4, [r6, #0xc] + mov r0, #0x0 + str r0, [r6, #0x8] + ldmia sp!, {r4-r6,pc} + + ; _end + arm_func_start FUN_020C3E6C +FUN_020C3E6C: ; 0x020C3E6C + mov r2, #0x0 + str r2, [r0, #0x4] + ldr r1, [r0, #0x4] + str r1, [r0, #0x0] + str r2, [r0, #0xc] + ldr r1, [r0, #0xc] + str r1, [r0, #0x8] + bx lr diff --git a/arm9/asm/NNS_SND_heap.s b/arm9/asm/NNS_SND_heap.s new file mode 100644 index 000000000..5d2efe32c --- /dev/null +++ b/arm9/asm/NNS_SND_heap.s @@ -0,0 +1,293 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020C2774 +FUN_020C2774: ; 0x020C2774 + stmdb sp!, {r4,lr} + bl SND_GetCurrentCommandTag + mov r4, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r4 + bl SND_WaitForCommandProc + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C2794 +FUN_020C2794: ; 0x020C2794 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x0] + mov r1, #0x14 + mov r2, #0x4 + bl FUN_020AE638 + movs r4, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} + bl FUN_020C2818 + mov r1, r4 + add r0, r5, #0x4 + bl FUN_020ADBE8 + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C27DC +FUN_020C27DC: ; 0x020C27DC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + add r0, r5, #0x4 + mov r1, #0xc + bl FUN_020ADC74 + mov r0, r5 + str r4, [r5, #0x0] + bl FUN_020C2794 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; InitHeapSection + arm_func_start FUN_020C2818 +FUN_020C2818: ; 0x020C2818 + ldr ip, _020C2824 ; =FUN_020ADC74 + mov r1, #0x0 + bx r12 + .balign 4 +_020C2824: .word FUN_020ADC74 + + ; _end + arm_func_start FUN_020C2828 +FUN_020C2828: ; 0x020C2828 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r7, #0x0 + movs r9, r1 + mov r10, r0 + mov r6, r7 + bne _020C2850 + bl FUN_020C29C0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} +_020C2850: + ldrh r0, [r10, #0xc] + cmp r9, r0 + bge _020C28D8 + mov r11, r7 + add r5, r10, #0x4 + mov r4, #0x1 +_020C2868: + mov r0, r5 + mov r1, r11 + bl FUN_020ADA84 + mov r1, r7 + mov r8, r0 + bl FUN_020ADA84 + movs r7, r0 + beq _020C28C0 +_020C2888: + ldr r12, [r7, #0xc] + cmp r12, #0x0 + beq _020C28AC + ldr r1, [r7, #0x8] + ldr r2, [r7, #0x10] + ldr r3, [r7, #0x14] + add r0, r7, #0x20 + blx r12 + mov r6, r4 +_020C28AC: + mov r0, r8 + mov r1, r7 + bl FUN_020ADA84 + movs r7, r0 + bne _020C2888 +_020C28C0: + mov r0, r5 + mov r1, r8 + bl FUN_020ADAB0 + ldrh r0, [r10, #0xc] + cmp r9, r0 + blt _020C2868 +_020C28D8: + ldr r0, [r10, #0x0] + mov r1, r9 + bl FUN_020AE554 + cmp r6, #0x0 + beq _020C28F0 + bl FUN_020C2774 +_020C28F0: + ldrh r1, [r10, #0xc] + ldr r0, [r10, #0x0] + bl FUN_020AE5B0 + mov r0, r10 + bl FUN_020C2794 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + + ; _end + arm_func_start FUN_020C290C +FUN_020C290C: ; 0x020C290C + stmdb sp!, {r4,lr} + mov r4, r0 + ldrh r1, [r4, #0xc] + ldr r0, [r4, #0x0] + bl FUN_020AE5B0 + cmp r0, #0x0 + mvneq r0, #0x0 + ldmeqia sp!, {r4,pc} + mov r0, r4 + bl FUN_020C2794 + cmp r0, #0x0 + ldrneh r0, [r4, #0xc] + subne r0, r0, #0x1 + ldmneia sp!, {r4,pc} + ldr r0, [r4, #0x0] + mov r1, #0x0 + bl FUN_020AE554 + mvn r0, #0x0 + ldmia sp!, {r4,pc} + + ; _end + arm_func_start SDATi_AllocAndInitChunk +SDATi_AllocAndInitChunk: ; 0x020C2958 + stmdb sp!, {r4-r8,lr} + mov r7, r1 + mov r8, r0 + add r0, r7, #0x1f + bic r1, r0, #0x1f + mov r6, r2 + ldr r0, [r8, #0x0] + add r1, r1, #0x20 + mov r2, #0x20 + mov r5, r3 + bl FUN_020AE638 // some allocator? + movs r4, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + add r0, r8, #0x4 + mov r1, #0x0 + bl FUN_020ADA84 + str r7, [r4, #0x8] + str r6, [r4, #0xc] + ldr r2, [sp, #0x18] + str r5, [r4, #0x10] + mov r1, r4 + str r2, [r4, #0x14] + bl FUN_020ADBE8 + add r0, r4, #0x20 + ldmia sp!, {r4-r8,pc} + + ; _end + arm_func_start FUN_020C29C0 +FUN_020C29C0: ; 0x020C29C0 + stmdb sp!, {r4-r10,lr} + mov r8, r0 + mov r5, #0x0 + mov r1, r5 + add r0, r8, #0x4 + bl FUN_020ADA84 + movs r7, r0 + beq _020C2A58 + add r9, r8, #0x4 + mov r10, #0x1 + mov r4, r5 +_020C29EC: + mov r0, r7 + mov r1, r4 + bl FUN_020ADA84 + movs r6, r0 + beq _020C2A38 +_020C2A00: + ldr r12, [r6, #0xc] + cmp r12, #0x0 + beq _020C2A24 + ldr r1, [r6, #0x8] + ldr r2, [r6, #0x10] + ldr r3, [r6, #0x14] + add r0, r6, #0x20 + blx r12 + mov r5, r10 +_020C2A24: + mov r0, r7 + mov r1, r6 + bl FUN_020ADA84 + movs r6, r0 + bne _020C2A00 +_020C2A38: + mov r0, r9 + mov r1, r7 + bl FUN_020ADAB0 + mov r0, r9 + mov r1, r4 + bl FUN_020ADA84 + movs r7, r0 + bne _020C29EC +_020C2A58: + ldr r0, [r8, #0x0] + mov r1, #0x3 + bl FUN_020AE600 + cmp r5, #0x0 + beq _020C2A70 + bl FUN_020C2774 +_020C2A70: + mov r0, r8 + bl FUN_020C2794 + ldmia sp!, {r4-r10,pc} + + ; _end + arm_func_start FUN_020C2A7C +FUN_020C2A7C: ; 0x020C2A7C + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020C29C0 + ldr r0, [r4, #0x0] + bl thunk_FUN_020adc8c_2 + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C2A94 +FUN_020C2A94: ; 0x020C2A94 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + add r2, r0, #0x3 + add r0, r0, r1 + bic r5, r2, #0x3 + cmp r5, r0 + addhi sp, sp, #0x4 + movhi r0, #0x0 + ldmhiia sp!, {r4-r5,pc} + sub r1, r0, r5 + cmp r1, #0x10 + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {r4-r5,pc} + add r0, r5, #0x10 + sub r1, r1, #0x10 + mov r2, #0x0 + bl FUN_020AE684 + movs r4, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} + mov r0, r5 + mov r1, r4 + bl FUN_020C27DC + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, r5 + ldmneia sp!, {r4-r5,pc} + mov r0, r4 + bl thunk_FUN_020adc8c_2 + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + diff --git a/arm9/asm/NNS_SND_main.s b/arm9/asm/NNS_SND_main.s new file mode 100644 index 000000000..94817a22e --- /dev/null +++ b/arm9/asm/NNS_SND_main.s @@ -0,0 +1,136 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sCurDriverInfo + .global UNK_021D1C8C +UNK_021D1C8C: ; 0x021D1C8C + .space 0x4 + + ; sDriverInfoFirstFlag + .global UNK_021D1C90 +UNK_021D1C90: ; 0x021D1C90 + .space 0x4 + + ; initialized$8127 + .global UNK_021D1C94 +UNK_021D1C94: ; 0x021D1C94 + .space 0x4 + + ; sPreSleepCallback + .global UNK_021D1C98 +UNK_021D1C98: ; 0x021D1C98 + .space 0xc + + ; sPostSleepCallback + .global UNK_021D1CA4 +UNK_021D1CA4: ; 0x021D1CA4 + .space 0xc + + .section .text + + ; EndSleep + arm_func_start FUN_020C0130 +FUN_020C0130: ; 0x020C0130 + ldr ip, _020C0138 ; =FUN_020C187C + bx r12 + .balign 4 +_020C0138: .word FUN_020C187C + + ; _end + arm_func_start FUN_020C013C +FUN_020C013C: ; 0x020C013C + stmdb sp!, {r4,lr} + bl FUN_020C18F8 + mov r0, #0x0 + mov r1, r0 + mov r2, r0 + mov r3, r0 + bl SND_StopTimer + bl SND_GetCurrentCommandTag + mov r4, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r4 + bl SND_WaitForCommandProc + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C0174 +FUN_020C0174: ; 0x020C0174 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + beq _020C0194 + mov r0, #0x40 + bl SND_SetMasterPan + add sp, sp, #0x4 + ldmia sp!, {pc} +_020C0194: + bl SND_ResetMasterPan + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C01A0 +FUN_020C01A0: ; 0x020C01A0 + stmdb sp!, {r4,lr} + mov r4, #0x0 +_020C01A8: + mov r0, r4 + bl SND_RecvCommandReply + cmp r0, #0x0 + bne _020C01A8 + bl FUN_020C0BA0 + bl FUN_020C1D9C + bl FUN_020C3C88 + mov r0, #0x0 + bl SND_FlushCommand + ldmia sp!, {r4,pc} + + ; NNS_SndInit + arm_func_start SDAT_Init +SDAT_Init: ; 0x020C01D0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020C0254 ; =UNK_021D1C94 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {pc} + mov r1, #0x1 + str r1, [r0, #0x0] + bl SND_Init + ldr ip, _020C0258 ; =FUN_020C013C + ldr r0, _020C025C ; =UNK_021D1C98 + mov r3, #0x0 + ldr r1, _020C0260 ; =UNK_021D1CA4 + ldr r2, _020C0264 ; =FUN_020C0130 + str r12, [r0, #0x0] + str r3, [r0, #0x4] + str r2, [r1, #0x0] + str r3, [r1, #0x4] + bl PM_PrependPreSleepCallback + ldr r0, _020C0260 ; =UNK_021D1CA4 + bl PM_AppendPostSleepCallback + bl FUN_020C0270 + bl FUN_020C1E38 + bl FUN_020C0D20 + ldr r1, _020C0268 ; =UNK_021D1C8C + mvn r3, #0x0 + ldr r0, _020C026C ; =UNK_021D1C90 + mov r2, #0x1 + strb r3, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020C0254: .word UNK_021D1C94 +_020C0258: .word FUN_020C013C +_020C025C: .word UNK_021D1C98 +_020C0260: .word UNK_021D1CA4 +_020C0264: .word FUN_020C0130 +_020C0268: .word UNK_021D1C8C +_020C026C: .word UNK_021D1C90 + diff --git a/arm9/asm/NNS_SND_player.s b/arm9/asm/NNS_SND_player.s new file mode 100644 index 000000000..557afb1be --- /dev/null +++ b/arm9/asm/NNS_SND_player.s @@ -0,0 +1,940 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sFreeList + .global UNK_021D1DFC +UNK_021D1DFC: ; 0x021D1DFC + .space 0xc + + ; sPrioList + .global UNK_021D1E08 +UNK_021D1E08: ; 0x021D1E08 + .space 0xc + + ; sSeqPlayer + .global UNK_021D1E14 +UNK_021D1E14: ; 0x021D1E14 + .space 0x440 + + ; sPlayer + .global UNK_021D2254 +UNK_021D2254: ; 0x021D2254 + .space 0x8 + + ; sPlayer + 0x8 + .global UNK_021D225C +UNK_021D225C: ; 0x021D225C + .space 0x10 + + ; sPlayer + 0x18 + .global UNK_021D226C +UNK_021D226C: ; 0x021D226C + .space 0x4 + + ; sPlayer + 0x1C + .global UNK_021D2270 +UNK_021D2270: ; 0x021D2270 + .space 0x4 + + ; sPlayer + 0x20 + .global UNK_021D2274 +UNK_021D2274: ; 0x021D2274 + .space 0x460 + + .section .text + + ; SetPlayerPriority + arm_func_start FUN_020C06CC +FUN_020C06CC: ; 0x020C06CC + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r4, [r6, #0x4] + mov r5, r1 + cmp r4, #0x0 + beq _020C06F8 + mov r0, r4 + mov r1, r6 + bl FUN_020ADAB0 + mov r0, #0x0 + str r0, [r6, #0x4] +_020C06F8: + ldr r0, _020C0728 ; =UNK_021D1E08 + mov r1, r6 + bl FUN_020ADAB0 + strb r5, [r6, #0x3d] + cmp r4, #0x0 + beq _020C071C + mov r0, r4 + mov r1, r6 + bl FUN_020C0910 +_020C071C: + mov r0, r6 + bl FUN_020C08B4 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C0728: .word UNK_021D1E08 + + ; PlayerHeapDisposeCallback + arm_func_start FUN_020C072C +FUN_020C072C: ; 0x020C072C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + bl FUN_020C2A7C + ldr r1, [r4, #0xc] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x8] + ldmneia sp!, {r4,pc} + ldr r1, [r4, #0x10] + ldr r2, _020C0778 ; =UNK_021D2254 + mov r0, #0x24 + mla r0, r1, r0, r2 + mov r1, r4 + add r0, r0, #0xc + bl FUN_020ADAB0 + ldmia sp!, {r4,pc} + .balign 4 +_020C0778: .word UNK_021D2254 + + ; ShutdownPlayer + arm_func_start FUN_020C077C +FUN_020C077C: ; 0x020C077C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r1, [r4, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x0] + strne r0, [r4, #0x0] + ldr r5, [r4, #0x4] + mov r1, r4 + mov r0, r5 + bl FUN_020ADAB0 + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + beq _020C07D8 + add r0, r5, #0xc + bl FUN_020ADBE8 + ldr r0, [r4, #0x8] + mov r1, #0x0 + str r1, [r0, #0xc] + str r1, [r4, #0x8] +_020C07D8: + ldr r0, _020C0800 ; =UNK_021D1E08 + mov r1, r4 + bl FUN_020ADAB0 + ldr r0, _020C0804 ; =UNK_021D1DFC + mov r1, r4 + bl FUN_020ADBE8 + mov r0, #0x0 + strb r0, [r4, #0x2c] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C0800: .word UNK_021D1E08 +_020C0804: .word UNK_021D1DFC + + ; AllocSeqPlayer + arm_func_start FUN_020C0808 +FUN_020C0808: ; 0x020C0808 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, _020C0874 ; =UNK_021D1DFC + mov r1, #0x0 + bl FUN_020ADA98 + movs r4, r0 + bne _020C0850 + ldr r0, _020C0878 ; =UNK_021D1E08 + mov r1, #0x0 + bl FUN_020ADA98 + mov r4, r0 + ldrb r1, [r4, #0x3d] + cmp r5, r1 + addlt sp, sp, #0x4 + movlt r0, #0x0 + ldmltia sp!, {r4-r5,pc} + bl FUN_020C087C +_020C0850: + ldr r0, _020C0874 ; =UNK_021D1DFC + mov r1, r4 + bl FUN_020ADAB0 + mov r0, r4 + strb r5, [r4, #0x3d] + bl FUN_020C08B4 + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C0874: .word UNK_021D1DFC +_020C0878: .word UNK_021D1E08 + + ; ForceStopSeq + arm_func_start FUN_020C087C +FUN_020C087C: ; 0x020C087C + stmdb sp!, {r4,lr} + mov r4, r0 + ldrb r0, [r4, #0x2c] + cmp r0, #0x2 + bne _020C089C + ldrb r0, [r4, #0x3c] + ldr r1, _020C08B0 ; =0xFFFFFD2D + bl SND_SetPlayerVolume +_020C089C: + ldrb r0, [r4, #0x3c] + bl SND_StopSeq + mov r0, r4 + bl FUN_020C077C + ldmia sp!, {r4,pc} + .balign 4 +_020C08B0: .word 0xFFFFFD2D + + ; InsertPrioList + arm_func_start FUN_020C08B4 +FUN_020C08B4: ; 0x020C08B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, _020C090C ; =UNK_021D1E08 + mov r1, #0x0 + bl FUN_020ADA98 + movs r1, r0 + beq _020C08F8 + ldr r4, _020C090C ; =UNK_021D1E08 +_020C08D8: + ldrb r2, [r5, #0x3d] + ldrb r0, [r1, #0x3d] + cmp r2, r0 + blo _020C08F8 + mov r0, r4 + bl FUN_020ADA98 + movs r1, r0 + bne _020C08D8 +_020C08F8: + ldr r0, _020C090C ; =UNK_021D1E08 + mov r2, r5 + bl FUN_020ADB18 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C090C: .word UNK_021D1E08 + + ; _end + arm_func_start FUN_020C0910 +FUN_020C0910: ; 0x020C0910 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r1, #0x0 + mov r5, r0 + bl FUN_020ADA98 + movs r1, r0 + beq _020C0950 +_020C0930: + ldrb r2, [r4, #0x3d] + ldrb r0, [r1, #0x3d] + cmp r2, r0 + blo _020C0950 + mov r0, r5 + bl FUN_020ADA98 + movs r1, r0 + bne _020C0930 +_020C0950: + mov r0, r5 + mov r2, r4 + bl FUN_020ADB18 + str r5, [r4, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C0968 +FUN_020C0968: ; 0x020C0968 + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, #0x0 + strb r0, [r4, #0x2e] + strb r0, [r4, #0x2d] + strb r0, [r4, #0x2f] + strh r0, [r4, #0x34] + strh r0, [r4, #0x3e] + mov r1, #0x7f + strb r1, [r4, #0x40] + add r0, r4, #0x1c + strb r1, [r4, #0x41] + bl FUN_020C3E6C + add r0, r4, #0x1c + mov r1, #0x7f00 + mov r2, #0x1 + bl FUN_020C3E40 + ldmia sp!, {r4,pc} + + ; NNSi_SndPlayerAllocHeap + arm_func_start FUN_020C09B0 +FUN_020C09B0: ; 0x020C09B0 + stmdb sp!, {r4-r6,lr} + ldr r3, _020C0A00 ; =UNK_021D2254 + mov r2, #0x24 + mla r5, r0, r2, r3 + mov r6, r1 + add r0, r5, #0xc + mov r1, #0x0 + bl FUN_020ADA98 + movs r4, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r1, r4 + add r0, r5, #0xc + bl FUN_020ADAB0 + str r6, [r4, #0xc] + str r4, [r6, #0x8] + ldr r0, [r4, #0x8] + bl FUN_020C29C0 + ldr r0, [r4, #0x8] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C0A00: .word UNK_021D2254 + + ; _end + arm_func_start FUN_020C0A04 +FUN_020C0A04: ; 0x020C0A04 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r5, r0 + mov r4, r1 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldrb r0, [r5, #0x2e] + cmp r4, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldrb r0, [r5, #0x3c] + bl SND_PauseSeq + strb r4, [r5, #0x2e] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C0A40 +FUN_020C0A40: ; 0x020C0A40 + stmdb sp!, {r4,lr} + movs r4, r0 + mov r2, r1 + ldmeqia sp!, {r4,pc} + ldrb r1, [r4, #0x2c] + cmp r1, #0x0 + ldmeqia sp!, {r4,pc} + cmp r2, #0x0 + bne _020C0A6C + bl FUN_020C087C + ldmia sp!, {r4,pc} +_020C0A6C: + add r0, r4, #0x1c + mov r1, #0x0 + bl FUN_020C3E40 + mov r0, r4 + mov r1, #0x0 + bl FUN_020C06CC + mov r0, #0x2 + strb r0, [r4, #0x2c] + ldmia sp!, {r4,pc} + + ; NNSi_SndPlayerStartSeq + arm_func_start FUN_020C0A90 +FUN_020C0A90: ; 0x020C0A90 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrb r0, [r5, #0x3c] + ldr r4, [r5, #0x4] + bl SND_PrepareSeq + ldr r2, [r4, #0x1c] + cmp r2, #0x0 + beq _020C0AC0 + ldrb r0, [r5, #0x3c] + ldr r1, _020C0AE4 ; =0x0000FFFF + bl SND_SetTrackAllocatableChannel +_020C0AC0: + mov r0, r5 + bl FUN_020C0968 + bl SND_GetCurrentCommandTag + str r0, [r5, #0x30] + mov r0, #0x1 + strb r0, [r5, #0x2f] + strb r0, [r5, #0x2c] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C0AE4: .word 0x0000FFFF + + ; NNSi_SndPlayerFreeSeqPlayer + arm_func_start thunk_FUN_020c077c +thunk_FUN_020c077c: ; 0x020C0AE8 + ldr ip, _020C0AF0 ; =FUN_020C077C + bx r12 + .balign 4 +_020C0AF0: .word FUN_020C077C + + ; NNSi_SndPlayerAllocSeqPlayer + arm_func_start FUN_020C0AF4 +FUN_020C0AF4: ; 0x020C0AF4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr ip, _020C0B9C ; =UNK_021D2254 + mov r3, #0x24 + mov r4, r0 + ldr r5, [r4, #0x0] + mla r6, r1, r3, r12 + mov r7, r2 + cmp r5, #0x0 + beq _020C0B20 + bl FUN_020C0F68 +_020C0B20: + ldrh r1, [r6, #0x8] + ldr r0, [r6, #0x18] + cmp r1, r0 + blo _020C0B64 + mov r0, r6 + mov r1, #0x0 + bl FUN_020ADA98 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + ldrb r1, [r0, #0x3d] + cmp r7, r1 + addlt sp, sp, #0x4 + movlt r0, #0x0 + ldmltia sp!, {r4-r7,pc} + bl FUN_020C087C +_020C0B64: + mov r0, r7 + bl FUN_020C0808 + movs r5, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + mov r0, r6 + mov r1, r5 + bl FUN_020C0910 + str r4, [r5, #0x0] + mov r0, r5 + str r5, [r4, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C0B9C: .word UNK_021D2254 + + ; NNSi_SndPlayerMain + arm_func_start FUN_020C0BA0 +FUN_020C0BA0: ; 0x020C0BA0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + bl SND_GetPlayerStatus + str r0, [sp, #0x0] + ldr r0, _020C0D14 ; =UNK_021D1E08 + mov r1, #0x0 + bl FUN_020ADA98 + movs r10, r0 + addeq sp, sp, #0xc + ldmeqia sp!, {r4-r11,pc} + mov r0, #0x8000 + rsb r0, r0, #0x0 + ldr r4, _020C0D18 ; =SNDi_DecibelTable + str r0, [sp, #0x4] + mov r5, #0x1 + mov r11, #0x0 +_020C0BE0: + ldr r0, _020C0D14 ; =UNK_021D1E08 + mov r1, r10 + bl FUN_020ADA98 + ldrb r1, [r10, #0x2d] + mov r9, r0 + cmp r1, #0x0 + bne _020C0C0C + ldr r0, [r10, #0x30] + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + strneb r5, [r10, #0x2d] +_020C0C0C: + ldrb r0, [r10, #0x2d] + cmp r0, #0x0 + beq _020C0C38 + ldrb r0, [r10, #0x3c] + mov r1, r5, lsl r0 + ldr r0, [sp, #0x0] + ands r0, r0, r1 + bne _020C0C38 + mov r0, r10 + bl FUN_020C077C + b _020C0D00 +_020C0C38: + add r0, r10, #0x1c + bl FUN_020C3DF4 + ldr r0, [r10, #0x4] + ldrb r2, [r10, #0x41] + ldrb r1, [r10, #0x40] + ldrb r0, [r0, #0x20] + mov r3, r2, lsl #0x1 + mov r2, r1, lsl #0x1 + mov r1, r0, lsl #0x1 + add r0, r10, #0x1c + ldrsh r8, [r4, r3] + ldrsh r7, [r4, r2] + ldrsh r6, [r4, r1] + bl FUN_020C3E0C + mov r0, r0, asr #0x8 + mov r2, r0, lsl #0x1 + add r1, r7, r8 + mov r0, #0x8000 + ldrsh r2, [r4, r2] + add r1, r6, r1 + rsb r0, r0, #0x0 + add r6, r2, r1 + cmp r6, r0 + ldrlt r6, [sp, #0x4] + blt _020C0CA8 + ldr r0, _020C0D1C ; =0x00007FFF + cmp r6, r0 + movgt r6, r0 +_020C0CA8: + ldrsh r0, [r10, #0x3e] + cmp r6, r0 + beq _020C0CC4 + ldrb r0, [r10, #0x3c] + mov r1, r6 + bl SND_SetPlayerVolume + strh r6, [r10, #0x3e] +_020C0CC4: + ldrb r0, [r10, #0x2c] + cmp r0, #0x2 + bne _020C0CE8 + add r0, r10, #0x1c + bl FUN_020C3DDC + cmp r0, #0x0 + beq _020C0CE8 + mov r0, r10 + bl FUN_020C087C +_020C0CE8: + ldrb r0, [r10, #0x2f] + cmp r0, #0x0 + beq _020C0D00 + ldrb r0, [r10, #0x3c] + bl SND_StartPreparedSeq + strb r11, [r10, #0x2f] +_020C0D00: + mov r10, r9 + cmp r9, #0x0 + bne _020C0BE0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020C0D14: .word UNK_021D1E08 +_020C0D18: .word SNDi_DecibelTable +_020C0D1C: .word 0x00007FFF + + ; NNSi_SndPlayerInit + arm_func_start FUN_020C0D20 +FUN_020C0D20: ; 0x020C0D20 + stmdb sp!, {r4-r10,lr} + ldr r0, _020C0DC4 ; =UNK_021D1E08 + mov r1, #0x14 + bl FUN_020ADC74 + ldr r0, _020C0DC8 ; =UNK_021D1DFC + mov r1, #0x14 + bl FUN_020ADC74 + ldr r6, _020C0DCC ; =UNK_021D1E14 + mov r7, #0x0 + ldr r4, _020C0DC8 ; =UNK_021D1DFC + mov r5, r7 +_020C0D4C: + strb r5, [r6, #0x2c] + mov r0, r4 + mov r1, r6 + strb r7, [r6, #0x3c] + bl FUN_020ADBE8 + add r7, r7, #0x1 + cmp r7, #0x10 + add r6, r6, #0x44 + blt _020C0D4C + ldr sl, _020C0DD0 ; =UNK_021D2254 + mov r9, #0x0 + mov r7, r9 + mov r4, r9 + mov r8, #0xc + mov r6, #0x7f + mov r5, #0x1 +_020C0D8C: + mov r0, r10 + mov r1, r8 + bl FUN_020ADC74 + mov r1, r7 + add r0, r10, #0xc + bl FUN_020ADC74 + strb r6, [r10, #0x20] + str r5, [r10, #0x18] + add r9, r9, #0x1 + str r4, [r10, #0x1c] + cmp r9, #0x20 + add r10, r10, #0x24 + blt _020C0D8C + ldmia sp!, {r4-r10,pc} + .balign 4 +_020C0DC4: .word UNK_021D1E08 +_020C0DC8: .word UNK_021D1DFC +_020C0DCC: .word UNK_021D1E14 +_020C0DD0: .word UNK_021D2254 + + ; _end + arm_func_start FUN_020C0DD4 +FUN_020C0DD4: ; 0x020C0DD4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {pc} + ldrb r0, [r1, #0x2d] + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {pc} + ldrb r0, [r1, #0x3c] + bl SND_GetPlayerTickCounter + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0E14 +FUN_020C0E14: ; 0x020C0E14 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + mvneq r0, #0x0 + bxeq lr + ldrh r0, [r1, #0x34] + cmp r0, #0x1 + mvnne r0, #0x0 + ldreqh r0, [r1, #0x38] + bx lr + + ; _end + arm_func_start FUN_020C0E38 +FUN_020C0E38: ; 0x020C0E38 + ldr r12, [r0, #0x0] + cmp r12, #0x0 + bxeq lr + mov r3, #0x2 + strh r3, [r12, #0x34] + ldr r3, [r0, #0x0] + strh r1, [r3, #0x38] + ldr r0, [r0, #0x0] + strh r2, [r0, #0x3a] + bx lr + + ; _end + arm_func_start FUN_020C0E60 +FUN_020C0E60: ; 0x020C0E60 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + movne r2, #0x1 + strneh r2, [r3, #0x34] + ldrne r0, [r0, #0x0] + strneh r1, [r0, #0x38] + bx lr + + ; _end + arm_func_start FUN_020C0E7C +FUN_020C0E7C: ; 0x020C0E7C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldrb r0, [r0, #0x3c] + bl SND_SetTrackPan + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0EA4 +FUN_020C0EA4: ; 0x020C0EA4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldrb r0, [r0, #0x3c] + bl SND_SetTrackPitch + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0ECC +FUN_020C0ECC: ; 0x020C0ECC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldrb r0, [r0, #0x3c] + bl SND_SetPlayerChannelPriority + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0EF4 +FUN_020C0EF4: ; 0x020C0EF4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [r0, #0x0] + cmp r3, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldrb r0, [r3, #0x2c] + cmp r0, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + add r0, r3, #0x1c + mov r1, r1, lsl #0x8 + bl FUN_020C3E40 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0F30 +FUN_020C0F30: ; 0x020C0F30 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + strneb r1, [r0, #0x40] + bx lr + + ; _end + arm_func_start FUN_020C0F40 +FUN_020C0F40: ; 0x020C0F40 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + strneb r1, [r0, #0x41] + bx lr + + ; NNS_SndPlayerCountPlayingSeqByPlayerNo + arm_func_start FUN_020C0F50 +FUN_020C0F50: ; 0x020C0F50 + mov r1, #0x24 + mul r1, r0, r1 + ldr r0, _020C0F64 ; =UNK_021D225C + ldrh r0, [r0, r1] + bx lr + .balign 4 +_020C0F64: .word UNK_021D225C + + ; _end + arm_func_start FUN_020C0F68 +FUN_020C0F68: ; 0x020C0F68 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + movne r1, #0x0 + strne r1, [r2, #0x0] + strne r1, [r0, #0x0] + bx lr + + ; _end + arm_func_start FUN_020C0F80 +FUN_020C0F80: ; 0x020C0F80 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + + ; NNS_SndPlayerPause + arm_func_start FUN_020C0F8C +FUN_020C0F8C: ; 0x020C0F8C + ldr ip, _020C0F98 ; =FUN_020C0A04 + ldr r0, [r0, #0x0] + bx r12 + .balign 4 +_020C0F98: .word FUN_020C0A04 + + ; NNS_SndPlayerStopSeqAll + arm_func_start FUN_020C0F9C +FUN_020C0F9C: ; 0x020C0F9C + stmdb sp!, {r4-r6,lr} + ldr r4, _020C0FD8 ; =UNK_021D1E14 + mov r6, r0 + mov r5, #0x0 +_020C0FAC: + ldrb r0, [r4, #0x2c] + cmp r0, #0x0 + beq _020C0FC4 + mov r0, r4 + mov r1, r6 + bl FUN_020C0A40 +_020C0FC4: + add r5, r5, #0x1 + cmp r5, #0x10 + add r4, r4, #0x44 + blt _020C0FAC + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C0FD8: .word UNK_021D1E14 + + ; NNS_SndPlayerStopSeqBySeqNo + arm_func_start FUN_020C0FDC +FUN_020C0FDC: ; 0x020C0FDC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r4, _020C103C ; =UNK_021D1E14 + mov r7, r0 + mov r6, r1 + mov r5, #0x0 +_020C0FF4: + ldrb r0, [r4, #0x2c] + cmp r0, #0x0 + beq _020C1024 + ldrh r0, [r4, #0x34] + cmp r0, #0x1 + bne _020C1024 + ldrh r0, [r4, #0x38] + cmp r0, r7 + bne _020C1024 + mov r0, r4 + mov r1, r6 + bl FUN_020C0A40 +_020C1024: + add r5, r5, #0x1 + cmp r5, #0x10 + add r4, r4, #0x44 + blt _020C0FF4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C103C: .word UNK_021D1E14 + + ; NNS_SndPlayerStopSeqByPlayerNo + arm_func_start FUN_020C1040 +FUN_020C1040: ; 0x020C1040 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r3, _020C109C ; =UNK_021D2254 + mov r2, #0x24 + mla r4, r0, r2, r3 + ldr r5, _020C10A0 ; =UNK_021D1E14 + mov r7, r1 + mov r6, #0x0 +_020C1060: + ldrb r0, [r5, #0x2c] + cmp r0, #0x0 + beq _020C1084 + ldr r0, [r5, #0x4] + cmp r0, r4 + bne _020C1084 + mov r0, r5 + mov r1, r7 + bl FUN_020C0A40 +_020C1084: + add r6, r6, #0x1 + cmp r6, #0x10 + add r5, r5, #0x44 + blt _020C1060 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C109C: .word UNK_021D2254 +_020C10A0: .word UNK_021D1E14 + + ; NNS_SndPlayerStopSeq + arm_func_start FUN_020C10A4 +FUN_020C10A4: ; 0x020C10A4 + ldr ip, _020C10B0 ; =FUN_020C0A40 + ldr r0, [r0, #0x0] + bx r12 + .balign 4 +_020C10B0: .word FUN_020C0A40 + + ; NNS_SndPlayerCreateHeap + arm_func_start FUN_020C10B4 +FUN_020C10B4: ; 0x020C10B4 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r2 + mov r6, r0 + mov r0, r1 + mov r3, #0x0 + ldr r2, _020C1140 ; =FUN_020C072C + add r1, r5, #0x14 + str r3, [sp, #0x0] + bl SDATi_AllocAndInitChunk + movs r4, r0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r2, #0x0 + str r2, [r4, #0xc] + str r6, [r4, #0x10] + mov r1, r5 + add r0, r4, #0x14 + str r2, [r4, #0x8] + bl FUN_020C2A94 + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r2, _020C1144 ; =UNK_021D2254 + mov r1, #0x24 + mla r2, r6, r1, r2 + str r0, [r4, #0x8] + mov r1, r4 + add r0, r2, #0xc + bl FUN_020ADBE8 + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C1140: .word FUN_020C072C +_020C1144: .word UNK_021D2254 + + ; NNS_SndPlayerSetAllocatableChannel + arm_func_start FUN_020C1148 +FUN_020C1148: ; 0x020C1148 + mov r2, #0x24 + mul r2, r0, r2 + ldr r0, _020C115C ; =UNK_021D2270 + str r1, [r0, r2] + bx lr + .balign 4 +_020C115C: .word UNK_021D2270 + + ; NNS_SndPlayerSetPlayableSeqCount + arm_func_start FUN_020C1160 +FUN_020C1160: ; 0x020C1160 + mov r2, #0x24 + mul r2, r0, r2 + mov r0, r1, lsl #0x10 + ldr r1, _020C117C ; =UNK_021D226C + mov r0, r0, lsr #0x10 + str r0, [r1, r2] + bx lr + .balign 4 +_020C117C: .word UNK_021D226C + + ; NNS_SndPlayerSetPlayerVolume + arm_func_start FUN_020C1180 +FUN_020C1180: ; 0x020C1180 + mov r2, #0x24 + mul r2, r0, r2 + ldr r0, _020C1194 ; =UNK_021D2274 + strb r1, [r0, r2] + bx lr + .balign 4 +_020C1194: .word UNK_021D2274 + diff --git a/arm9/asm/NNS_SND_resource_mgr.s b/arm9/asm/NNS_SND_resource_mgr.s new file mode 100644 index 000000000..482b8e811 --- /dev/null +++ b/arm9/asm/NNS_SND_resource_mgr.s @@ -0,0 +1,140 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sCaptureLock + .global UNK_021D1CB0 +UNK_021D1CB0: ; 0x021D1CB0 + .space 0x4 + + ; sAlarmLock + .global UNK_021D1CB4 +UNK_021D1CB4: ; 0x021D1CB4 + .space 0x4 + + ; sChannelLock + .global UNK_021D1CB8 +UNK_021D1CB8: ; 0x021D1CB8 + .space 0x4 + + .section .text + + ; NNSi_SndInitResourceMgr + arm_func_start FUN_020C0270 +FUN_020C0270: ; 0x020C0270 + ldr r2, _020C0290 ; =UNK_021D1CB8 + mov r3, #0x0 + ldr r1, _020C0294 ; =UNK_021D1CB0 + ldr r0, _020C0298 ; =UNK_021D1CB4 + str r3, [r2, #0x0] + str r3, [r1, #0x0] + str r3, [r0, #0x0] + bx lr + .balign 4 +_020C0290: .word UNK_021D1CB8 +_020C0294: .word UNK_021D1CB0 +_020C0298: .word UNK_021D1CB4 + + ; NNS_SndFreeAlarm + arm_func_start FUN_020C029C +FUN_020C029C: ; 0x020C029C + ldr r1, _020C02B8 ; =UNK_021D1CB4 + mov r2, #0x1 + mvn r0, r2, lsl r0 + ldr r2, [r1, #0x0] + and r0, r2, r0 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020C02B8: .word UNK_021D1CB4 + + ; NNS_SndAllocAlarm + arm_func_start FUN_020C02BC +FUN_020C02BC: ; 0x020C02BC + ldr r0, _020C02FC ; =UNK_021D1CB4 + mov r3, #0x1 + ldr r2, [r0, #0x0] + mov r0, #0x0 +_020C02CC: + ands r1, r2, r3 + ldreq r1, _020C02FC ; =UNK_021D1CB4 + ldreq r2, [r1, #0x0] + orreq r2, r2, r3 + streq r2, [r1, #0x0] + bxeq lr + add r0, r0, #0x1 + cmp r0, #0x8 + mov r3, r3, lsl #0x1 + blt _020C02CC + mvn r0, #0x0 + bx lr + .balign 4 +_020C02FC: .word UNK_021D1CB4 + + ; NNS_SndUnlockCapture + arm_func_start FUN_020C0300 +FUN_020C0300: ; 0x020C0300 + ldr r1, _020C0318 ; =UNK_021D1CB0 + mvn r0, r0 + ldr r2, [r1, #0x0] + and r0, r2, r0 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020C0318: .word UNK_021D1CB0 + + ; NNS_SndLockCapture + arm_func_start FUN_020C031C +FUN_020C031C: ; 0x020C031C + ldr r1, _020C033C ; =UNK_021D1CB0 + ldr r2, [r1, #0x0] + ands r3, r0, r2 + movne r0, #0x0 + orreq r0, r2, r0 + streq r0, [r1, #0x0] + moveq r0, #0x1 + bx lr + .balign 4 +_020C033C: .word UNK_021D1CB0 + + ; NNS_SndUnlockChannel + arm_func_start FUN_020C0340 +FUN_020C0340: ; 0x020C0340 + stmdb sp!, {r4,lr} + movs r4, r0 + ldmeqia sp!, {r4,pc} + mov r1, #0x0 + bl SND_UnlockChannel + ldr r0, _020C036C ; =UNK_021D1CB8 + mvn r1, r4 + ldr r2, [r0, #0x0] + and r1, r2, r1 + str r1, [r0, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020C036C: .word UNK_021D1CB8 + + ; NNS_SndLockChannel + arm_func_start FUN_020C0370 +FUN_020C0370: ; 0x020C0370 + stmdb sp!, {r4,lr} + movs r4, r0 + moveq r0, #0x1 + ldmeqia sp!, {r4,pc} + ldr r1, _020C03B4 ; =UNK_021D1CB8 + ldr r1, [r1, #0x0] + ands r1, r4, r1 + movne r0, #0x0 + ldmneia sp!, {r4,pc} + mov r1, #0x0 + bl SND_LockChannel + ldr r1, _020C03B4 ; =UNK_021D1CB8 + mov r0, #0x1 + ldr r2, [r1, #0x0] + orr r2, r2, r4 + str r2, [r1, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020C03B4: .word UNK_021D1CB8 + diff --git a/arm9/asm/NNS_SND_seqdata.s b/arm9/asm/NNS_SND_seqdata.s new file mode 100644 index 000000000..86a4217c8 --- /dev/null +++ b/arm9/asm/NNS_SND_seqdata.s @@ -0,0 +1,25 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020C3D9C +FUN_020C3D9C: ; 0x020C3D9C + cmp r1, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r2, [r0, #0x1c] + cmp r1, r2 + movcs r0, #0x0 + bxcs lr + mov r2, #0xc + mul r2, r1, r2 + add r3, r0, #0x20 + ldr r1, [r3, r2] + mvn r0, #0x0 + cmp r1, r0 + add r0, r3, r2 + moveq r0, #0x0 + bx lr + diff --git a/arm9/asm/NNS_SND_sndarc.s b/arm9/asm/NNS_SND_sndarc.s new file mode 100644 index 000000000..1f7816317 --- /dev/null +++ b/arm9/asm/NNS_SND_sndarc.s @@ -0,0 +1,546 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sCurrent + .global UNK_021D28C0 +UNK_021D28C0: ; 0x021D28C0 + .space 0x4 + + .section .text + + ; _end + arm_func_start SDATi_SymbDtor +SDATi_SymbDtor: ; 0x020C209C + mov r0, #0x0 + str r0, [r2, #0x88] + bx lr + + ; _end + arm_func_start SDATi_FatDtor +SDATi_FatDtor: ; 0x020C20A8 + mov r0, #0x0 + str r0, [r2, #0x84] + bx lr + + ; _end + arm_func_start SDATi_InfoDtor +SDATi_InfoDtor: ; 0x020C20B4 + mov r0, #0x0 + str r0, [r2, #0x8c] + bx lr + + ; NNS_SndArcSetFileAddress + arm_func_start FUN_020C20C0 +FUN_020C20C0: ; 0x020C20C0 + ldr r2, _020C20D8 ; =UNK_021D28C0 + ldr r2, [r2, #0x0] + ldr r2, [r2, #0x84] + add r0, r2, r0, lsl #0x4 + str r1, [r0, #0x14] + bx lr + .balign 4 +_020C20D8: .word UNK_021D28C0 + + ; NNS_SndArcGetFileAddress + arm_func_start FUN_020C20DC +FUN_020C20DC: ; 0x020C20DC + ldr r1, _020C2100 ; =UNK_021D28C0 + ldr r1, [r1, #0x0] + ldr r2, [r1, #0x84] + ldr r1, [r2, #0x8] + cmp r0, r1 + movcs r0, #0x0 + addcc r0, r2, r0, lsl #0x4 + ldrcc r0, [r0, #0x14] + bx lr + .balign 4 +_020C2100: .word UNK_021D28C0 + + ; NNS_SndArcReadFile + arm_func_start FUN_020C2104 +FUN_020C2104: ; 0x020C2104 + stmdb sp!, {r4-r6,lr} + ldr r4, _020C2178 ; =UNK_021D28C0 + mov r5, r2 + ldr r4, [r4, #0x0] + mov r6, r1 + ldr r2, [r4, #0x84] + ldr r1, [r2, #0x8] + cmp r0, r1 + mvncs r0, #0x0 + ldmcsia sp!, {r4-r6,pc} + add r1, r2, #0xc + add r1, r1, r0, lsl #0x4 + ldr r0, [r1, #0x4] + ldr r1, [r1, #0x0] + sub r0, r0, r3 + cmp r5, r0 + movhi r5, r0 + add r0, r4, #0x34 + add r1, r1, r3 + mov r2, #0x0 + bl FS_SeekFile + cmp r0, #0x0 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r1, r6 + mov r2, r5 + add r0, r4, #0x34 + bl FS_ReadFile + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C2178: .word UNK_021D28C0 + + ; NNS_SndArcGetFileSize + arm_func_start FUN_020C217C +FUN_020C217C: ; 0x020C217C + ldr r1, _020C21A0 ; =UNK_021D28C0 + ldr r1, [r1, #0x0] + ldr r2, [r1, #0x84] + ldr r1, [r2, #0x8] + cmp r0, r1 + movcs r0, #0x0 + addcc r0, r2, r0, lsl #0x4 + ldrcc r0, [r0, #0x10] + bx lr + .balign 4 +_020C21A0: .word UNK_021D28C0 + + ; NNS_SndArcGetGroupInfo + arm_func_start FUN_020C21A4 +FUN_020C21A4: ; 0x020C21A4 + ldr r1, _020C2204 ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x1c] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C2204: .word UNK_021D28C0 + + ; NNS_SndArcGetPlayerInfo + arm_func_start FUN_020C2208 +FUN_020C2208: ; 0x020C2208 + ldr r1, _020C2268 ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x18] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C2268: .word UNK_021D28C0 + + ; NNS_SndArcGetWaveArcInfo + arm_func_start FUN_020C226C +FUN_020C226C: ; 0x020C226C + ldr r1, _020C22CC ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x14] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C22CC: .word UNK_021D28C0 + + ; NNS_SndArcGetBankInfo + arm_func_start FUN_020C22D0 +FUN_020C22D0: ; 0x020C22D0 + ldr r1, _020C2330 ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x10] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C2330: .word UNK_021D28C0 + + ; NNS_SndArcGetSeqArcInfo + arm_func_start FUN_020C2334 +FUN_020C2334: ; 0x020C2334 + ldr r1, _020C2394 ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0xc] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C2394: .word UNK_021D28C0 + + ; NNS_SndArcGetSeqInfo + arm_func_start FUN_020C2398 +FUN_020C2398: ; 0x020C2398 + ldr r1, _020C23F8 ; =UNK_021D28C0 + ldr r3, [r1, #0x0] + ldr r2, [r3, #0x8c] + ldr r1, [r2, #0x8] + cmp r1, #0x0 + moveq r2, #0x0 + addne r2, r2, r1 + cmp r2, #0x0 + moveq r0, #0x0 + bxeq lr + cmp r0, #0x0 + movlt r0, #0x0 + bxlt lr + ldr r1, [r2, #0x0] + cmp r0, r1 + movcs r0, #0x0 + bxcs lr + add r0, r2, r0, lsl #0x2 + ldr r1, [r0, #0x4] + ldr r0, [r3, #0x8c] + cmp r1, #0x0 + moveq r0, #0x0 + addne r0, r0, r1 + bx lr + .balign 4 +_020C23F8: .word UNK_021D28C0 + + ; _end + arm_func_start FUN_020C23FC +FUN_020C23FC: ; 0x020C23FC + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020C2398 + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, r0, #0x4 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; NNS_SndArcGetCurrent + arm_func_start FUN_020C241C +FUN_020C241C: ; 0x020C241C + ldr r0, _020C2428 ; =UNK_021D28C0 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020C2428: .word UNK_021D28C0 + + ; NNS_SndArcSetCurrent + arm_func_start FUN_020C242C +FUN_020C242C: ; 0x020C242C + ldr r1, _020C2440 ; =UNK_021D28C0 + ldr r2, [r1, #0x0] + str r0, [r1, #0x0] + mov r0, r2 + bx lr + .balign 4 +_020C2440: .word UNK_021D28C0 + + ; NNS_SndArcInitOnMemory + arm_func_start FUN_020C2444 +FUN_020C2444: ; 0x020C2444 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + mov r0, r4 + mov r1, r5 + mov r2, #0x30 + bl MIi_CpuCopy32 + ldr r0, [r5, #0x18] + mov r12, #0x0 + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, r4, r0 + str r0, [r5, #0x8c] + ldr r0, [r5, #0x20] + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, r4, r0 + str r0, [r5, #0x84] + ldr r0, [r5, #0x10] + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, r4, r0 + str r0, [r5, #0x88] + ldr r2, [r5, #0x84] + ldr r0, [r2, #0x8] + cmp r0, #0x0 + bls _020C24F0 + mov r3, r12 + mov r1, r12 +_020C24BC: + add r2, r2, #0xc + ldr r0, [r2, r3] + add r2, r2, r3 + cmp r0, #0x0 + moveq r0, r1 + addne r0, r4, r0 + str r0, [r2, #0x8] + ldr r2, [r5, #0x84] + add r12, r12, #0x1 + ldr r0, [r2, #0x8] + add r3, r3, #0x10 + cmp r12, r0 + blo _020C24BC +_020C24F0: + mov r1, #0x0 + ldr r0, _020C2508 ; =UNK_021D28C0 + str r1, [r5, #0x30] + str r5, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C2508: .word UNK_021D28C0 + +SDATi_ReadHeaders: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r6, r0 + mov r5, r1 + mov r1, #0x0 + mov r4, r2 + mov r2, r1 + add r0, r6, #0x34 + bl FS_SeekFile + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r1, r6 + add r0, r6, #0x34 + mov r2, #0x30 + bl FS_ReadFile + cmp r0, #0x30 + addne sp, sp, #0x8 + movne r0, #0x0 + ldmneia sp!, {r4-r6,pc} + cmp r5, #0x0 + beq _020C26E0 + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, [r6, #0x1c] + ldr r2, _020C26EC ; =SDATi_InfoDtor + mov r0, r5 + mov r3, r6 + bl SDATi_AllocAndInitChunk + str r0, [r6, #0x8c] + ldr r0, [r6, #0x8c] + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x18] + add r0, r6, #0x34 + mov r2, #0x0 + bl FS_SeekFile + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x8c] + ldr r2, [r6, #0x1c] + add r0, r6, #0x34 + bl FS_ReadFile + ldr r1, [r6, #0x1c] + cmp r0, r1 + addne sp, sp, #0x8 + movne r0, #0x0 + ldmneia sp!, {r4-r6,pc} + mov r0, #0x0 + str r0, [sp, #0x0] + ldr r1, [r6, #0x24] + ldr r2, _020C26F0 ; =SDATi_FatDtor + mov r0, r5 + mov r3, r6 + bl SDATi_AllocAndInitChunk + str r0, [r6, #0x84] + ldr r0, [r6, #0x84] + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x20] + add r0, r6, #0x34 + mov r2, #0x0 + bl FS_SeekFile + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x84] + ldr r2, [r6, #0x24] + add r0, r6, #0x34 + bl FS_ReadFile + ldr r1, [r6, #0x24] + cmp r0, r1 + addne sp, sp, #0x8 + movne r0, #0x0 + ldmneia sp!, {r4-r6,pc} + cmp r4, #0x0 + beq _020C26E0 + ldr r1, [r6, #0x14] + cmp r1, #0x0 + beq _020C26E0 + mov r4, #0x0 + ldr r2, _020C26F4 ; =SDATi_SymbDtor + mov r0, r5 + mov r3, r6 + str r4, [sp, #0x0] + bl SDATi_AllocAndInitChunk + str r0, [r6, #0x88] + ldr r0, [r6, #0x88] + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, r4 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x10] + add r0, r6, #0x34 + mov r2, r4 + bl FS_SeekFile + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, r4 + ldmeqia sp!, {r4-r6,pc} + ldr r1, [r6, #0x88] + ldr r2, [r6, #0x14] + add r0, r6, #0x34 + bl FS_ReadFile + ldr r1, [r6, #0x14] + cmp r0, r1 + addne sp, sp, #0x8 + movne r0, r4 + ldmneia sp!, {r4-r6,pc} +_020C26E0: + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C26EC: .word SDATi_InfoDtor +_020C26F0: .word SDATi_FatDtor +_020C26F4: .word SDATi_SymbDtor + + ; NNS_SndArcInit + arm_func_start SDAT_Open +SDAT_Open: ; 0x020C26F8 + ; r0: &sSoundDataBuffer + ; r1: char* filename + ; r2: (&sSoundDataBuffer)->unk_0090 + ; r3: 0 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r12, #0x0 + str r12, [r6, #0x8c] + str r12, [r6, #0x84] + add r0, r6, #0x7c + mov r5, r2 + mov r4, r3 + str r12, [r6, #0x88] + bl FS_ConvertPathToFileID + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + add r0, r6, #0x34 + bl FS_InitFile + add r1, r6, #0x7c + add r0, r6, #0x34 + ldmia r1, {r1-r2} + bl FS_OpenFileFast + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} + mov r3, #0x1 + mov r0, r6 + mov r1, r5 + mov r2, r4 + str r3, [r6, #0x30] + bl SDATi_ReadHeaders + cmp r0, #0x0 + ldrne r0, _020C2770 ; =UNK_021D28C0 + strne r6, [r0, #0x0] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020C2770: .word UNK_021D28C0 + diff --git a/arm9/asm/NNS_SND_sndarc_loader.s b/arm9/asm/NNS_SND_sndarc_loader.s new file mode 100644 index 000000000..918a296bf --- /dev/null +++ b/arm9/asm/NNS_SND_sndarc_loader.s @@ -0,0 +1,898 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; waveArcHeader$8213 + .global UNK_021D28C4 +UNK_021D28C4: ; 0x021D28C4 + .space 0x3c + + .section .text + + ; _end + arm_func_start FUN_020C2B1C +FUN_020C2B1C: ; 0x020C2B1C + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x20 + mov r8, r0 + add r0, sp, #0x8 + mov r7, r1 + mov r6, r2 + mov r5, r3 + ldr r4, [sp, #0x40] + bl SND_GetFirstInstDataPos + ldr r1, [sp, #0x8] + ldr r0, [sp, #0xc] + str r1, [sp, #0x0] + str r0, [sp, #0x4] + cmp r7, #0x0 + add r2, sp, #0x0 + addeq sp, sp, #0x20 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,pc} + add r1, sp, #0x10 + mov r0, r7 + bl SND_GetNextInstData + cmp r0, #0x0 + beq _020C2BD4 + add r10, sp, #0x10 + add r9, sp, #0x0 +_020C2B80: + ldrb r0, [sp, #0x10] + cmp r0, #0x1 + bne _020C2BBC + ldrh r0, [sp, #0x14] + cmp r6, r0 + bne _020C2BBC + ldrh r1, [sp, #0x12] + mov r0, r8 + mov r2, r5 + mov r3, r4 + bl FUN_020C2BE0 + cmp r0, #0x0 + addeq sp, sp, #0x20 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,pc} +_020C2BBC: + mov r0, r7 + mov r1, r10 + mov r2, r9 + bl SND_GetNextInstData + cmp r0, #0x0 + bne _020C2B80 +_020C2BD4: + mov r0, #0x1 + add sp, sp, #0x20 + ldmia sp!, {r4-r10,pc} + + ; LoadSingleWave + arm_func_start FUN_020C2BE0 +FUN_020C2BE0: ; 0x020C2BE0 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl SND_GetWaveDataAddress + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x1 + ldmneia sp!, {r4-r9,pc} + mov r0, r7 + bl SND_GetWaveDataCount + ldr r1, [r7, #0x38] + sub r0, r0, #0x1 + add r1, r1, r6 + add r1, r7, r1, lsl #0x2 + cmp r6, r0 + ldrcc r0, [r1, #0x40] + ldr r8, [r1, #0x3c] + ldrcs r0, [r7, #0x8] + cmp r4, #0x0 + sub r9, r0, r8 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + ldr r2, _020C2CBC ; =FUN_020C2CC0 + mov r0, r4 + mov r3, r7 + add r1, r9, #0x20 + str r6, [sp, #0x0] + bl SDATi_AllocAndInitChunk + movs r4, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + mov r0, r5 + mov r1, r4 + mov r2, r9 + mov r3, r8 + bl FUN_020C2104 + cmp r9, r0 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r9,pc} + mov r0, r4 + mov r1, r9 + bl DC_StoreRange + mov r0, r7 + mov r1, r6 + mov r2, r4 + bl SND_SetWaveDataAddress + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020C2CBC: .word FUN_020C2CC0 + + ; _end + arm_func_start FUN_020C2CC0 +FUN_020C2CC0: ; 0x020C2CC0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r2 + mov r7, r0 + mov r4, r3 + mov r6, r1 + mov r0, r5 + mov r1, r4 + bl SND_GetWaveDataAddress + cmp r7, r0 + bne _020C2CFC + mov r0, r5 + mov r1, r4 + mov r2, #0x0 + bl SND_SetWaveDataAddress +_020C2CFC: + mov r0, r7 + add r1, r7, r6 + bl SND_InvalidateWaveData + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + + ; _end + arm_func_start FUN_020C2D10 +FUN_020C2D10: ; 0x020C2D10 + stmdb sp!, {r4,lr} + mov r1, r2 + mov r4, r0 + mov r2, r3 + bl FUN_020C2DD0 + mov r0, r4 + bl SND_DestroyWaveArc + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C2D30 +FUN_020C2D30: ; 0x020C2D30 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r1, r2 + mov r5, r0 + mov r2, r3 + bl FUN_020C2DD0 + mov r0, r5 + add r1, r5, r4 + bl SND_InvalidateWaveData + mov r0, r5 + bl SND_DestroyWaveArc + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C2D68 +FUN_020C2D68: ; 0x020C2D68 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r1, r2 + mov r5, r0 + mov r2, r3 + bl FUN_020C2DD0 + mov r0, r5 + add r1, r5, r4 + bl SND_InvalidateBankData + mov r0, r5 + bl SND_DestroyBank + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C2DA0 +FUN_020C2DA0: ; 0x020C2DA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r1, r2 + mov r5, r0 + mov r2, r3 + bl FUN_020C2DD0 + mov r0, r5 + add r1, r5, r4 + bl SND_InvalidateSeqData + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C2DD0 +FUN_020C2DD0: ; 0x020C2DD0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs r5, r1 + mov r7, r0 + mov r6, r2 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r5 + bl FUN_020C242C + mov r5, r0 + mov r0, r6 + bl FUN_020C20DC + cmp r7, r0 + bne _020C2E1C + mov r0, r6 + mov r1, #0x0 + bl FUN_020C20C0 +_020C2E1C: + mov r0, r5 + bl FUN_020C242C + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + + ; LoadWaveArcTable + arm_func_start FUN_020C2E34 +FUN_020C2E34: ; 0x020C2E34 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + mov r8, r1 + mov r7, r2 + bl FUN_020C20DC + movs r6, r0 + bne _020C2F40 + ldr r1, _020C2F4C ; =UNK_021D28C4 + mov r0, r9 + mov r2, #0x3c + mov r3, #0x0 + bl FUN_020C2104 + cmp r0, #0x3c + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r9,pc} + ldr r0, _020C2F4C ; =UNK_021D28C4 + cmp r8, #0x0 + ldr r0, [r0, #0x38] + addeq sp, sp, #0x4 + mov r4, r0, lsl #0x2 + mov r0, r4, lsl #0x1 + add r5, r0, #0x3c + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + cmp r7, #0x0 + moveq r3, #0x0 + beq _020C2EB0 + bl FUN_020C241C + mov r3, r0 +_020C2EB0: + ldr r2, _020C2F50 ; =FUN_020C2D10 + mov r0, r8 + add r1, r5, #0x20 + str r9, [sp, #0x0] + bl SDATi_AllocAndInitChunk + movs r6, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} + mov r0, r9 + mov r1, r6 + add r2, r4, #0x3c + mov r3, #0x0 + bl FUN_020C2104 + add r1, r4, #0x3c + cmp r0, r1 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r9,pc} + ldr r1, [r6, #0x38] + add r0, r6, #0x3c + mov r2, r4 + add r1, r0, r1, lsl #0x2 + bl MI_CpuCopy8 + mov r2, r4 + add r0, r6, #0x3c + mov r1, #0x0 + bl MI_CpuFill8 + mov r0, r6 + mov r1, r5 + bl DC_StoreRange + cmp r7, #0x0 + beq _020C2F40 + mov r0, r9 + mov r1, r6 + bl FUN_020C20C0 +_020C2F40: + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020C2F4C: .word UNK_021D28C4 +_020C2F50: .word FUN_020C2D10 + + ; LoadWaveArc + arm_func_start FUN_020C2F54 +FUN_020C2F54: ; 0x020C2F54 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_020C20DC + movs r4, r0 + bne _020C2FBC + cmp r5, #0x0 + moveq r2, #0x0 + beq _020C2F88 + bl FUN_020C241C + mov r2, r0 +_020C2F88: + ldr r1, _020C2FC8 ; =FUN_020C2D30 + mov r0, r7 + mov r3, r7 + str r6, [sp, #0x0] + bl FUN_020C3134 + mov r4, r0 + cmp r5, #0x0 + beq _020C2FBC + cmp r4, #0x0 + beq _020C2FBC + mov r0, r7 + mov r1, r4 + bl FUN_020C20C0 +_020C2FBC: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C2FC8: .word FUN_020C2D30 + + ; LoadBank + arm_func_start FUN_020C2FCC +FUN_020C2FCC: ; 0x020C2FCC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_020C20DC + movs r4, r0 + bne _020C3034 + cmp r5, #0x0 + moveq r2, #0x0 + beq _020C3000 + bl FUN_020C241C + mov r2, r0 +_020C3000: + ldr r1, _020C3040 ; =FUN_020C2D68 + mov r0, r7 + mov r3, r7 + str r6, [sp, #0x0] + bl FUN_020C3134 + mov r4, r0 + cmp r5, #0x0 + beq _020C3034 + cmp r4, #0x0 + beq _020C3034 + mov r0, r7 + mov r1, r4 + bl FUN_020C20C0 +_020C3034: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C3040: .word FUN_020C2D68 + + ; LoadSeqArc + arm_func_start FUN_020C3044 +FUN_020C3044: ; 0x020C3044 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_020C20DC + movs r4, r0 + bne _020C30AC + cmp r5, #0x0 + moveq r2, #0x0 + beq _020C3078 + bl FUN_020C241C + mov r2, r0 +_020C3078: + ldr r1, _020C30B8 ; =FUN_020C2DA0 + mov r0, r7 + mov r3, r7 + str r6, [sp, #0x0] + bl FUN_020C3134 + mov r4, r0 + cmp r5, #0x0 + beq _020C30AC + cmp r4, #0x0 + beq _020C30AC + mov r0, r7 + mov r1, r4 + bl FUN_020C20C0 +_020C30AC: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C30B8: .word FUN_020C2DA0 + + ; LoadSeq + arm_func_start FUN_020C30BC +FUN_020C30BC: ; 0x020C30BC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_020C20DC + movs r4, r0 + bne _020C3124 + cmp r5, #0x0 + moveq r2, #0x0 + beq _020C30F0 + bl FUN_020C241C + mov r2, r0 +_020C30F0: + ldr r1, _020C3130 ; =FUN_020C2DA0 + mov r0, r7 + mov r3, r7 + str r6, [sp, #0x0] + bl FUN_020C3134 + mov r4, r0 + cmp r5, #0x0 + beq _020C3124 + cmp r4, #0x0 + beq _020C3124 + mov r0, r7 + mov r1, r4 + bl FUN_020C20C0 +_020C3124: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C3130: .word FUN_020C2DA0 + + ; _end + arm_func_start FUN_020C3134 +FUN_020C3134: ; 0x020C3134 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r4, r3 + bl FUN_020C217C + movs r5, r0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + ldr r0, [sp, #0x20] + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + mov r2, r7 + mov r3, r6 + add r1, r5, #0x20 + str r4, [sp, #0x0] + bl SDATi_AllocAndInitChunk + movs r4, r0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + mov r0, r8 + mov r1, r4 + mov r2, r5 + mov r3, #0x0 + bl FUN_020C2104 + cmp r5, r0 + addne sp, sp, #0x8 + movne r0, #0x0 + ldmneia sp!, {r4-r8,pc} + mov r0, r4 + mov r1, r5 + bl DC_StoreRange + mov r0, r4 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} + + ; _end + arm_func_start FUN_020C31D4 +FUN_020C31D4: ; 0x020C31D4 + stmdb sp!, {r4-r6,lr} + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl FUN_020C226C + cmp r0, #0x0 + moveq r0, #0x5 + ldmeqia sp!, {r4-r6,pc} + ands r1, r6, #0x4 + beq _020C324C + ldrb r1, [r0, #0x3] + ands r1, r1, #0x1 + beq _020C3224 + ldr r0, [r0, #0x0] + mov r1, r5 + mov r0, r0, lsl #0x8 + mov r2, r4 + mov r0, r0, lsr #0x8 + bl FUN_020C2E34 + b _020C323C +_020C3224: + ldr r0, [r0, #0x0] + mov r1, r5 + mov r0, r0, lsl #0x8 + mov r2, r4 + mov r0, r0, lsr #0x8 + bl FUN_020C2F54 +_020C323C: + cmp r0, #0x0 + bne _020C325C + mov r0, #0x9 + ldmia sp!, {r4-r6,pc} +_020C324C: + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x8 + mov r0, r0, lsr #0x8 + bl FUN_020C20DC +_020C325C: + ldr r1, [sp, #0x10] + cmp r1, #0x0 + strne r0, [r1, #0x0] + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} + + ; NNSi_SndArcLoadBank + arm_func_start FUN_020C3270 +FUN_020C3270: ; 0x020C3270 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r10, r1 + mov r9, r2 + mov r11, r3 + bl FUN_020C22D0 + movs r8, r0 + addeq sp, sp, #0xc + moveq r0, #0x4 + ldmeqia sp!, {r4-r11,pc} + ands r0, r10, #0x2 + beq _020C32C4 + ldr r0, [r8, #0x0] + mov r1, r9 + mov r2, r11 + bl FUN_020C2FCC + movs r7, r0 + bne _020C32D0 + add sp, sp, #0xc + mov r0, #0x8 + ldmia sp!, {r4-r11,pc} +_020C32C4: + ldr r0, [r8, #0x0] + bl FUN_020C20DC + mov r7, r0 +_020C32D0: + and r5, r10, #0x4 + mov r6, #0x0 +_020C32D8: + add r0, r8, r6, lsl #0x1 + ldrh r0, [r0, #0x4] + ldr r1, _020C33B4 ; =0x0000FFFF + cmp r0, r1 + beq _020C3390 + bl FUN_020C226C + movs r4, r0 + addeq sp, sp, #0xc + moveq r0, #0x5 + ldmeqia sp!, {r4-r11,pc} + add r0, sp, #0x4 + str r0, [sp, #0x0] + add r0, r8, r6, lsl #0x1 + ldrh r0, [r0, #0x4] + mov r1, r10 + mov r2, r9 + mov r3, r11 + bl FUN_020C31D4 + cmp r0, #0x0 + addne sp, sp, #0xc + ldmneia sp!, {r4-r11,pc} + ldrb r0, [r4, #0x3] + ands r0, r0, #0x1 + beq _020C3370 + cmp r5, #0x0 + beq _020C3370 + str r9, [sp, #0x0] + ldr r1, [r4, #0x0] + ldr r0, [sp, #0x4] + mov r3, r1, lsl #0x8 + mov r1, r7 + mov r2, r6 + mov r3, r3, lsr #0x8 + bl FUN_020C2B1C + cmp r0, #0x0 + addeq sp, sp, #0xc + moveq r0, #0x9 + ldmeqia sp!, {r4-r11,pc} +_020C3370: + cmp r7, #0x0 + beq _020C3390 + ldr r2, [sp, #0x4] + cmp r2, #0x0 + beq _020C3390 + mov r0, r7 + mov r1, r6 + bl SND_AssignWaveArc +_020C3390: + add r6, r6, #0x1 + cmp r6, #0x4 + blt _020C32D8 + ldr r0, [sp, #0x30] + cmp r0, #0x0 + strne r7, [r0, #0x0] + mov r0, #0x0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020C33B4: .word 0x0000FFFF + + ; _end + arm_func_start FUN_020C33B8 +FUN_020C33B8: ; 0x020C33B8 + stmdb sp!, {r4-r6,lr} + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl FUN_020C2334 + cmp r0, #0x0 + moveq r0, #0x3 + ldmeqia sp!, {r4-r6,pc} + ands r1, r6, #0x8 + beq _020C3400 + ldr r0, [r0, #0x0] + mov r1, r5 + mov r2, r4 + bl FUN_020C3044 + cmp r0, #0x0 + bne _020C3408 + mov r0, #0x7 + ldmia sp!, {r4-r6,pc} +_020C3400: + ldr r0, [r0, #0x0] + bl FUN_020C20DC +_020C3408: + ldr r1, [sp, #0x10] + cmp r1, #0x0 + strne r0, [r1, #0x0] + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} + + ; _end + arm_func_start FUN_020C341C +FUN_020C341C: ; 0x020C341C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl FUN_020C2398 + movs r4, r0 + addeq sp, sp, #0x4 + moveq r0, #0x2 + ldmeqia sp!, {r4-r7,pc} + mov r0, #0x0 + str r0, [sp, #0x0] + ldrh r0, [r4, #0x4] + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl FUN_020C3270 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,pc} + ands r0, r7, #0x1 + beq _020C3498 + ldr r0, [r4, #0x0] + mov r1, r6 + mov r2, r5 + bl FUN_020C30BC + cmp r0, #0x0 + bne _020C34A0 + add sp, sp, #0x4 + mov r0, #0x6 + ldmia sp!, {r4-r7,pc} +_020C3498: + ldr r0, [r4, #0x0] + bl FUN_020C20DC +_020C34A0: + ldr r1, [sp, #0x18] + cmp r1, #0x0 + strne r0, [r1, #0x0] + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + + ; _end + arm_func_start FUN_020C34B8 +FUN_020C34B8: ; 0x020C34B8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r9, r1 + bl FUN_020C21A4 + movs r8, r0 + addeq sp, sp, #0xc + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,pc} + ldr r0, [r8, #0x0] + mov r7, #0x0 + cmp r0, #0x0 + bls _020C35D4 + add r6, r8, #0x4 + str r7, [sp, #0x4] + mov r11, r7 + mov r10, r7 + mov r5, r7 + mov r4, #0x1 +_020C3500: + ldrb r0, [r6, #0x0] + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020C35C0 + ; Jump table + b _020C3520 ; case 0 + b _020C3570 ; case 1 + b _020C3598 ; case 2 + b _020C3548 ; case 3 +_020C3520: + str r5, [sp, #0x0] + ldrb r1, [r6, #0x1] + ldr r0, [r6, #0x4] + mov r2, r9 + mov r3, r4 + bl FUN_020C341C + cmp r0, #0x0 + beq _020C35C0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} +_020C3548: + str r10, [sp, #0x0] + ldrb r1, [r6, #0x1] + ldr r0, [r6, #0x4] + mov r2, r9 + mov r3, r4 + bl FUN_020C33B8 + cmp r0, #0x0 + beq _020C35C0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} +_020C3570: + str r11, [sp, #0x0] + ldrb r1, [r6, #0x1] + ldr r0, [r6, #0x4] + mov r2, r9 + mov r3, r4 + bl FUN_020C3270 + cmp r0, #0x0 + beq _020C35C0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} +_020C3598: + ldr r0, [sp, #0x4] + mov r2, r9 + str r0, [sp, #0x0] + ldrb r1, [r6, #0x1] + ldr r0, [r6, #0x4] + mov r3, r4 + bl FUN_020C31D4 + cmp r0, #0x0 + addne sp, sp, #0xc + ldmneia sp!, {r4-r11,pc} +_020C35C0: + ldr r0, [r8, #0x0] + add r7, r7, #0x1 + cmp r7, r0 + add r6, r6, #0x8 + blo _020C3500 +_020C35D4: + mov r0, #0x0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + + ; _end + arm_func_start FUN_020C35E0 +FUN_020C35E0: ; 0x020C35E0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r12, #0x0 + mov r3, #0x1 + str r12, [sp, #0x0] + bl FUN_020C341C + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C360C +FUN_020C360C: ; 0x020C360C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r12, #0x0 + mov r1, #0xff + mov r3, #0x1 + str r12, [sp, #0x0] + bl FUN_020C31D4 + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C3640 +FUN_020C3640: ; 0x020C3640 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r12, #0x0 + mov r1, #0xff + mov r3, #0x1 + str r12, [sp, #0x0] + bl FUN_020C3270 + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C3674 +FUN_020C3674: ; 0x020C3674 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r12, #0x0 + mov r1, #0xff + mov r3, #0x1 + str r12, [sp, #0x0] + bl FUN_020C341C + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C36A8 +FUN_020C36A8: ; 0x020C36A8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020C34B8 + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + diff --git a/arm9/asm/NNS_SND_sndarc_player.s b/arm9/asm/NNS_SND_sndarc_player.s new file mode 100644 index 000000000..8657cdfc9 --- /dev/null +++ b/arm9/asm/NNS_SND_sndarc_player.s @@ -0,0 +1,268 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + ; _end + arm_func_start FUN_020C36C8 +FUN_020C36C8: ; 0x020C36C8 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r7, r2 + mov r2, r3 + ldr r6, [sp, #0x20] + mov r4, r0 + mov r8, r1 + bl FUN_020C0AF4 + movs r5, r0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + mov r0, r8 + mov r1, r5 + bl FUN_020C09B0 + add r12, sp, #0x4 + mov r2, r0 + mov r0, r7 + mov r1, #0x6 + mov r3, #0x0 + str r12, [sp, #0x0] + bl FUN_020C3270 + cmp r0, #0x0 + beq _020C373C + mov r0, r5 + bl thunk_FUN_020c077c + add sp, sp, #0x8 + mov r0, #0x0 + ldmia sp!, {r4-r8,pc} +_020C373C: + ldr r12, [sp, #0x24] + ldr r2, [r6, #0x0] + ldr r1, [r12, #0x18] + ldr r3, [sp, #0x4] + mov r0, r5 + add r1, r12, r1 + bl FUN_020C0A90 + ldrb r1, [r6, #0x6] + mov r0, r4 + bl FUN_020C0F30 + ldrb r1, [r6, #0x7] + mov r0, r4 + bl FUN_020C0ECC + ldr r1, [sp, #0x28] + ldr r2, [sp, #0x2c] + mov r0, r4 + bl FUN_020C0E38 + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} + + ; _end + arm_func_start FUN_020C378C +FUN_020C378C: ; 0x020C378C + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + mov r8, r2 + mov r2, r3 + ldr r5, [sp, #0x28] + mov r6, r0 + mov r7, r1 + bl FUN_020C0AF4 + movs r4, r0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + mov r0, r7 + mov r1, r4 + bl FUN_020C09B0 + mov r7, r0 + add r12, sp, #0x8 + mov r0, r8 + mov r2, r7 + mov r1, #0x6 + mov r3, #0x0 + str r12, [sp, #0x0] + bl FUN_020C3270 + cmp r0, #0x0 + beq _020C3804 + mov r0, r4 + bl thunk_FUN_020c077c + add sp, sp, #0x10 + mov r0, #0x0 + ldmia sp!, {r4-r8,pc} +_020C3804: + ldr r0, [sp, #0x2c] + add r12, sp, #0x4 + mov r2, r7 + mov r1, #0x1 + mov r3, #0x0 + str r12, [sp, #0x0] + bl FUN_020C341C + cmp r0, #0x0 + beq _020C383C + mov r0, r4 + bl thunk_FUN_020c077c + add sp, sp, #0x10 + mov r0, #0x0 + ldmia sp!, {r4-r8,pc} +_020C383C: + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x8] + ldr r1, [r2, #0x18] + mov r0, r4 + add r1, r2, r1 + mov r2, #0x0 + bl FUN_020C0A90 + ldrb r1, [r5, #0x6] + mov r0, r6 + bl FUN_020C0F30 + ldrb r1, [r5, #0x7] + mov r0, r6 + bl FUN_020C0ECC + ldr r1, [sp, #0x2c] + mov r0, r6 + bl FUN_020C0E60 + mov r0, #0x1 + add sp, sp, #0x10 + ldmia sp!, {r4-r8,pc} + + ; _end + arm_func_start FUN_020C3888 +FUN_020C3888: ; 0x020C3888 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov r6, r1 + mov r7, r0 + mov r0, r6 + mov r5, r2 + bl FUN_020C2334 + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + ldr r0, [r0, #0x0] + bl FUN_020C20DC + movs r4, r0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + mov r1, r5 + bl FUN_020C3D9C + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + str r0, [sp, #0x0] + str r4, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + ldrb r1, [r0, #0x9] + ldrh r2, [r0, #0x4] + ldrb r3, [r0, #0x8] + mov r0, r7 + bl FUN_020C36C8 + add sp, sp, #0x14 + ldmia sp!, {r4-r7,pc} + + ; _end + arm_func_start FUN_020C3910 +FUN_020C3910: ; 0x020C3910 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + mov r7, r0 + ldr r0, [sp, #0x20] + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl FUN_020C2398 + cmp r0, #0x0 + addeq sp, sp, #0xc + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} + cmp r4, #0x0 + ldrltb r4, [r0, #0x8] + cmp r5, #0x0 + ldrlth r5, [r0, #0x4] + cmp r6, #0x0 + ldrltb r6, [r0, #0x9] + ldr r12, [sp, #0x20] + mov r2, r5 + str r0, [sp, #0x0] + mov r0, r7 + mov r1, r6 + mov r3, r4 + str r12, [sp, #0x4] + bl FUN_020C378C + add sp, sp, #0xc + ldmia sp!, {r4-r7,pc} + + ; _end + arm_func_start FUN_020C3980 +FUN_020C3980: ; 0x020C3980 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r4, r1 + mov r5, r0 + mov r0, r4 + bl FUN_020C2398 + cmp r0, #0x0 + addeq sp, sp, #0xc + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} + str r0, [sp, #0x0] + str r4, [sp, #0x4] + ldrb r1, [r0, #0x9] + ldrh r2, [r0, #0x4] + ldrb r3, [r0, #0x8] + mov r0, r5 + bl FUN_020C378C + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + + ; _end + arm_func_start FUN_020C39CC +FUN_020C39CC: ; 0x020C39CC + stmdb sp!, {r4-r8,lr} + mov r6, r0 + bl FUN_020C241C + mov r5, #0x0 + mov r7, r5 +_020C39E0: + mov r0, r5 + bl FUN_020C2208 + movs r4, r0 + beq _020C3A58 + ldrb r1, [r4, #0x0] + mov r0, r5 + bl FUN_020C1160 + ldrh r1, [r4, #0x2] + mov r0, r5 + bl FUN_020C1148 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _020C3A58 + cmp r6, #0x0 + beq _020C3A58 + ldrb r0, [r4, #0x0] + mov r8, r7 + cmp r0, #0x0 + ble _020C3A58 +_020C3A2C: + ldr r2, [r4, #0x4] + mov r0, r5 + mov r1, r6 + bl FUN_020C10B4 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} + ldrb r0, [r4, #0x0] + add r8, r8, #0x1 + cmp r8, r0 + blt _020C3A2C +_020C3A58: + add r5, r5, #0x1 + cmp r5, #0x20 + blt _020C39E0 + mov r0, #0x1 + ldmia sp!, {r4-r8,pc} + diff --git a/arm9/asm/NNS_SND_sndarc_stream.s b/arm9/asm/NNS_SND_sndarc_stream.s new file mode 100644 index 000000000..8b6ad0b98 --- /dev/null +++ b/arm9/asm/NNS_SND_sndarc_stream.s @@ -0,0 +1,280 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sPrepareThread + .global UNK_021D2900 +UNK_021D2900: ; 0x021D2900 + .space 0x4 + + ; sFreeCommandList + .global UNK_021D2904 +UNK_021D2904: ; 0x021D2904 + .space 0x4d4 + + ; sFreeCommandList + 0x4D4 + .global UNK_021D2DD8 +UNK_021D2DD8: ; 0x021D2DD8 + .space 0x18 + + ; sFreeCommandList + 0x4EC + .global UNK_021D2DF0 +UNK_021D2DF0: ; 0x021D2DF0 + .space 0xc + + ; sStrmPlayer + .global UNK_021D2DFC +UNK_021D2DFC: ; 0x021D2DFC + .space 0x5c0 + + .section .text + + ; FreeCommandBuffer + arm_func_start FUN_020C3A6C +FUN_020C3A6C: ; 0x020C3A6C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + mov r4, r0 + ldr r0, _020C3A9C ; =UNK_021D2904 + mov r1, r5 + bl FUN_020ADBE8 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C3A9C: .word UNK_021D2904 + + ; _end + arm_func_start FUN_020C3AA0 +FUN_020C3AA0: ; 0x020C3AA0 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + bl OS_DisableInterrupts + mov r6, r0 + mov r0, r8 + mov r1, #0x0 + bl FUN_020ADA98 + movs r5, r0 + beq _020C3B04 +_020C3AC8: + mov r0, r8 + mov r1, r5 + bl FUN_020ADA98 + ldr r1, [r5, #0x8] + mov r4, r0 + cmp r1, r7 + bne _020C3AF8 + mov r0, r8 + mov r1, r5 + bl FUN_020ADAB0 + mov r0, r5 + bl FUN_020C3A6C +_020C3AF8: + mov r5, r4 + cmp r4, #0x0 + bne _020C3AC8 +_020C3B04: + mov r0, r6 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,pc} + + ; _end + arm_func_start FUN_020C3B10 +FUN_020C3B10: ; 0x020C3B10 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, [r0, #0x120] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + sub r1, r1, #0x1 + str r1, [r0, #0x120] + ldr r1, [r0, #0x120] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {pc} + bl FUN_020C1674 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; ShutdownPlayer + arm_func_start FUN_020C3B4C +FUN_020C3B4C: ; 0x020C3B4C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x110] + mov r1, r1, lsl #0x1f + movs r1, r1, asr #0x1f + ldmeqia sp!, {r4,pc} + bl FUN_020C3B10 + ldr r1, [r4, #0x164] + mov r0, r4 + blx r1 + ldr r0, _020C3BA8 ; =UNK_021D2DF0 + mov r1, r4 + bl FUN_020C3AA0 + ldr r0, _020C3BAC ; =UNK_021D2900 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020C3B9C + mov r1, r4 + add r0, r0, #0x4e0 + bl FUN_020C3AA0 +_020C3B9C: + mov r0, r4 + bl FUN_020C3C4C + ldmia sp!, {r4,pc} + .balign 4 +_020C3BA8: .word UNK_021D2DF0 +_020C3BAC: .word UNK_021D2900 + + ; ForceStopStrm + arm_func_start FUN_020C3BB0 +FUN_020C3BB0: ; 0x020C3BB0 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, _020C3C40 ; =UNK_021D2DD8 + bl OS_LockMutex + ldr r0, _020C3C44 ; =UNK_021D2900 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _020C3BDC + ldr r0, _020C3C48 ; =0x000004C8 + add r0, r1, r0 + bl OS_LockMutex +_020C3BDC: + ldr r0, [r4, #0x110] + mov r0, r0, lsl #0x1e + movs r0, r0, asr #0x1f + beq _020C3BF4 + mov r0, r4 + bl FUN_020C1430 +_020C3BF4: + ldr r0, [r4, #0x110] + mov r0, r0, lsl #0x1f + movs r0, r0, asr #0x1f + beq _020C3C10 + ldr r1, [r4, #0x16c] + mov r0, r4 + blx r1 +_020C3C10: + mov r0, r4 + bl FUN_020C3B4C + ldr r0, _020C3C40 ; =UNK_021D2DD8 + bl OS_UnlockMutex + ldr r0, _020C3C44 ; =UNK_021D2900 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + ldmeqia sp!, {r4,pc} + ldr r0, _020C3C48 ; =0x000004C8 + add r0, r1, r0 + bl OS_UnlockMutex + ldmia sp!, {r4,pc} + .balign 4 +_020C3C40: .word UNK_021D2DD8 +_020C3C44: .word UNK_021D2900 +_020C3C48: .word 0x000004C8 + + ; _end + arm_func_start FUN_020C3C4C +FUN_020C3C4C: ; 0x020C3C4C + ldr r2, [r0, #0x14c] + cmp r2, #0x0 + movne r1, #0x0 + strne r1, [r2, #0x0] + strne r1, [r0, #0x14c] + ldr r1, [r0, #0x110] + bic r1, r1, #0x1 + str r1, [r0, #0x110] + ldr r1, [r0, #0x110] + bic r1, r1, #0x4 + str r1, [r0, #0x110] + ldr r1, [r0, #0x110] + bic r1, r1, #0x2 + str r1, [r0, #0x110] + bx lr + + ; NNSi_SndArcStrmMain + arm_func_start FUN_020C3C88 +FUN_020C3C88: ; 0x020C3C88 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r5, _020C3D94 ; =UNK_021D2DFC + mov r7, #0x0 + ldr r4, _020C3D98 ; =SNDi_DecibelTable +_020C3C9C: + ldr r1, [r5, #0x110] + mov r0, r1, lsl #0x1f + movs r0, r0, asr #0x1f + beq _020C3D7C + ldr r0, [r5, #0x114] + cmp r0, #0x0 + bne _020C3CC4 + mov r0, r5 + bl FUN_020C3BB0 + b _020C3D7C +_020C3CC4: + mov r0, r1, lsl #0x1d + movs r0, r0, asr #0x1f + beq _020C3CFC + ldr r0, [r5, #0x118] + cmp r0, #0x0 + beq _020C3CFC + mov r0, r5 + bl FUN_020C1458 + ldr r0, [r5, #0x110] + orr r0, r0, #0x2 + str r0, [r5, #0x110] + ldr r0, [r5, #0x110] + bic r0, r0, #0x4 + str r0, [r5, #0x110] +_020C3CFC: + ldr r0, [r5, #0x110] + mov r0, r0, lsl #0x1e + movs r0, r0, asr #0x1f + beq _020C3D7C + add r0, r5, #0xe8 + bl FUN_020C3DF4 + ldr r1, [r5, #0x154] + add r0, r5, #0xe8 + mov r1, r1, lsl #0x1 + ldrsh r6, [r4, r1] + bl FUN_020C3E0C + mov r0, r0, asr #0x8 + mov r0, r0, lsl #0x1 + ldrsh r1, [r4, r0] + ldr r0, [r5, #0x158] + add r6, r1, r6 + cmp r6, r0 + beq _020C3D54 + mov r0, r5 + mov r1, r6 + bl FUN_020C13C4 + str r6, [r5, #0x158] +_020C3D54: + ldr r0, [r5, #0x110] + mov r0, r0, lsl #0x1c + movs r0, r0, asr #0x1f + beq _020C3D7C + add r0, r5, #0xe8 + bl FUN_020C3DDC + cmp r0, #0x0 + beq _020C3D7C + mov r0, r5 + bl FUN_020C3BB0 +_020C3D7C: + add r7, r7, #0x1 + cmp r7, #0x4 + add r5, r5, #0x170 + blt _020C3C9C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020C3D94: .word UNK_021D2DFC +_020C3D98: .word SNDi_DecibelTable + diff --git a/arm9/asm/NNS_SND_stream.s b/arm9/asm/NNS_SND_stream.s new file mode 100644 index 000000000..752fcab01 --- /dev/null +++ b/arm9/asm/NNS_SND_stream.s @@ -0,0 +1,474 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; bInitialized$7761 + .global UNK_021D26D4 +UNK_021D26D4: ; 0x021D26D4 + .space 0x4 + + ; sStrmList + .global UNK_021D26D8 +UNK_021D26D8: ; 0x021D26D8 + .space 0xc + + ; buffer$7877 + .global UNK_021D26E4 +UNK_021D26E4: ; 0x021D26E4 + .space 0x40 + + ; sStrmChannel + .global UNK_021D2724 +UNK_021D2724: ; 0x021D2724 + .space 0x80 + + .section .text + + ; _end + arm_func_start FUN_020C1198 +FUN_020C1198: ; 0x020C1198 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + ldr r0, [r4, #0x24] + mov r0, r0, lsl #0x1e + movs r0, r0, asr #0x1f + ldmeqia sp!, {r4-r6,pc} + ldr r0, [r4, #0x38] + cmp r0, #0x0 + beq _020C11E8 + mov r5, #0x1 +_020C11C0: + bl OS_DisableInterrupts + mov r6, r0 + mov r0, r4 + mov r1, r5 + bl FUN_020C1254 + mov r0, r6 + bl OS_RestoreInterrupts + ldr r0, [r4, #0x38] + cmp r0, #0x0 + bne _020C11C0 +_020C11E8: + ldr r0, [r4, #0x40] + mov r2, #0x1 + mov r1, #0x0 + mov r2, r2, lsl r0 + ldr r0, [r4, #0x44] + mov r3, r1 + bl SND_StartTimer + ldmia sp!, {r4-r6,pc} + + ; _end + arm_func_start FUN_020C1208 +FUN_020C1208: ; 0x020C1208 + stmdb sp!, {r4,lr} + ldr r1, [r0, #0x24] + mov r1, r1, lsl #0x1e + movs r1, r1, asr #0x1f + ldmeqia sp!, {r4,pc} + ldr r2, [r0, #0x40] + mov r3, #0x1 + mov r1, #0x0 + mov r2, r3, lsl r2 + ldr r0, [r0, #0x44] + mov r3, r1 + bl SND_StopTimer + bl SND_GetCurrentCommandTag + mov r4, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r4 + bl SND_WaitForCommandProc + ldmia sp!, {r4,pc} + + ; StrmCallback + arm_func_start FUN_020C1254 +FUN_020C1254: ; 0x020C1254 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + mov r4, r1 + ldr r0, [r5, #0x28] + ldr r1, [r5, #0x2c] + bl _u32_div_f + ldr r1, [r5, #0x48] + ldr r2, [r5, #0x38] + mov r3, r0 + mul lr, r3, r2 + cmp r1, #0x0 + mov r12, #0x0 + ble _020C12B8 + ldr r2, _020C1300 ; =UNK_021D2724 + ldr r0, _020C1304 ; =UNK_021D26E4 +_020C1294: + add r1, r5, r12 + ldrb r1, [r1, #0x4c] + ldr r1, [r2, r1, lsl #0x3] + add r1, r1, lr + str r1, [r0, r12, lsl #0x2] + ldr r1, [r5, #0x48] + add r12, r12, #0x1 + cmp r12, r1 + blt _020C1294 +_020C12B8: + ldr r0, [r5, #0x20] + ldr r2, _020C1304 ; =UNK_021D26E4 + str r0, [sp, #0x0] + ldr r12, [r5, #0x34] + mov r0, r4 + str r12, [sp, #0x4] + ldr r4, [r5, #0x30] + blx r4 + ldr r0, [r5, #0x38] + add r0, r0, #0x1 + str r0, [r5, #0x38] + ldr r1, [r5, #0x38] + ldr r0, [r5, #0x2c] + cmp r1, r0 + movge r0, #0x0 + strge r0, [r5, #0x38] + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C1300: .word UNK_021D2724 +_020C1304: .word UNK_021D26E4 + + ; AlarmCallback + arm_func_start FUN_020C1308 +FUN_020C1308: ; 0x020C1308 + ldr ip, _020C1314 ; =FUN_020C1254 + mov r1, #0x1 + bx r12 + .balign 4 +_020C1314: .word FUN_020C1254 + + ; ShutdownStrm + arm_func_start FUN_020C1318 +FUN_020C1318: ; 0x020C1318 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x40] + bl FUN_020C029C + ldr r0, _020C1344 ; =UNK_021D26D8 + mov r1, r4 + bl FUN_020ADAB0 + ldr r0, [r4, #0x24] + bic r0, r0, #0x1 + str r0, [r4, #0x24] + ldmia sp!, {r4,pc} + .balign 4 +_020C1344: .word UNK_021D26D8 + + ; _end + arm_func_start FUN_020C1348 +FUN_020C1348: ; 0x020C1348 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r0, [r4, #0x24] + mov r0, r0, lsl #0x1e + movs r0, r0, asr #0x1f + beq _020C13B4 + ldr r0, [r4, #0x40] + mov r2, #0x1 + mov r1, #0x0 + mov r2, r2, lsl r0 + ldr r0, [r4, #0x44] + mov r3, r1 + bl SND_StopTimer + add r0, r4, #0x8 + bl PM_DeletePreSleepCallback + add r0, r4, #0x14 + bl PM_DeletePostSleepCallback + ldr r0, [r4, #0x24] + bic r0, r0, #0x2 + str r0, [r4, #0x24] + bl SND_GetCurrentCommandTag + mov r5, r0 + mov r0, #0x1 + bl SND_FlushCommand + mov r0, r5 + bl SND_WaitForCommandProc +_020C13B4: + mov r0, r4 + bl FUN_020C1318 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + ; NNS_SndStrmSetVolume + arm_func_start FUN_020C13C4 +FUN_020C13C4: ; 0x020C13C4 + stmdb sp!, {r4-r8,lr} + mov r7, r0 + str r1, [r7, #0x3c] + ldr r0, [r7, #0x48] + mov r5, #0x0 + cmp r0, #0x0 + ldmleia sp!, {r4-r8,pc} + ldr r4, _020C142C ; =UNK_021D2724 + mov r8, #0x1 +_020C13E8: + add r0, r7, r5 + ldrb r6, [r0, #0x4c] + ldr r1, [r7, #0x3c] + add r0, r4, r6, lsl #0x3 + ldr r0, [r0, #0x4] + add r0, r1, r0 + bl SND_CalcChannelVolume + mov r2, r0 + mov r0, r8, lsl r6 + and r1, r2, #0xff + mov r2, r2, asr #0x8 + bl SND_SetChannelVolume + ldr r0, [r7, #0x48] + add r5, r5, #0x1 + cmp r5, r0 + blt _020C13E8 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020C142C: .word UNK_021D2724 + + ; _end + arm_func_start FUN_020C1430 +FUN_020C1430: ; 0x020C1430 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, [r0, #0x24] + mov r1, r1, lsl #0x1f + movs r1, r1, asr #0x1f + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + bl FUN_020C1348 + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C1458 +FUN_020C1458: ; 0x020C1458 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x40] + mov r2, #0x1 + mov r1, #0x0 + mov r2, r2, lsl r0 + ldr r0, [r4, #0x44] + mov r3, r1 + bl SND_StartTimer + ldr r0, [r4, #0x24] + mov r0, r0, lsl #0x1e + movs r0, r0, asr #0x1f + ldmneia sp!, {r4,pc} + add r0, r4, #0x8 + bl PM_PrependPreSleepCallback + add r0, r4, #0x14 + bl PM_AppendPostSleepCallback + ldr r0, [r4, #0x24] + orr r0, r0, #0x2 + str r0, [r4, #0x24] + ldmia sp!, {r4,pc} + + ; NNS_SndStrmSetup + arm_func_start FUN_020C14AC +FUN_020C14AC: ; 0x020C14AC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x24 + mov r10, r0 + ldr r4, [r10, #0x24] + mov r9, r1 + mov r1, r4, lsl #0x1f + movs r1, r1, asr #0x1f + ldr r1, [sp, #0x4c] + str r2, [sp, #0x18] + mov r4, r3 + str r1, [sp, #0x4c] + beq _020C14E0 + bl FUN_020C1430 +_020C14E0: + ldr r0, [sp, #0x4c] + ldr r2, [r10, #0x48] + mov r0, r0, lsl #0x5 + mul r1, r2, r0 + mov r0, r4 + bl _u32_div_f + ldr r1, [sp, #0x4c] + ldr r2, [sp, #0x48] + mul r1, r0, r1 + mov r0, r1, lsl #0x5 + str r0, [r10, #0x28] + ldr r0, [r10, #0x28] + cmp r9, #0x1 + moveq r0, r0, lsr #0x1 + mul r0, r2, r0 + ldr r1, [sp, #0x4c] + bl _u32_div_f + str r0, [sp, #0x1c] + bl FUN_020C02BC + str r0, [r10, #0x40] + ldr r0, [r10, #0x40] + cmp r0, #0x0 + addlt sp, sp, #0x24 + movlt r0, #0x0 + ldmltia sp!, {r4-r11,pc} + ldr r0, [r10, #0x48] + mov r8, #0x0 + cmp r0, #0x0 + ble _020C15D4 + ldr r0, [sp, #0x48] + mov r7, r0, lsl #0x5 + ldr r6, _020C1668 ; =UNK_021D2724 + mov r5, r8 + mov r4, #0x7f + mov r11, #0x40 + mov r0, #0x1 + str r0, [sp, #0x20] +_020C1574: + ldr r2, [r10, #0x28] + ldr r1, [sp, #0x18] + add r0, r10, r8 + mla r1, r2, r8, r1 + ldrb r0, [r0, #0x4c] + ldr r3, [sp, #0x20] + str r1, [r6, r0, lsl #0x3] + add r1, r6, r0, lsl #0x3 + str r5, [r1, #0x4] + str r5, [sp, #0x0] + ldr r2, [r10, #0x28] + mov r1, r9 + mov r2, r2, lsr #0x2 + str r2, [sp, #0x4] + str r4, [sp, #0x8] + str r5, [sp, #0xc] + str r7, [sp, #0x10] + str r11, [sp, #0x14] + ldr r2, [r6, r0, lsl #0x3] + bl SND_SetupChannelPcm + ldr r0, [r10, #0x48] + add r8, r8, #0x1 + cmp r8, r0 + blt _020C1574 +_020C15D4: + str r10, [sp, #0x0] + ldr r1, [sp, #0x1c] + ldr r0, [r10, #0x40] + ldr r3, _020C166C ; =FUN_020C1308 + mov r2, r1 + bl SND_SetupAlarm + ldr r0, _020C1670 ; =UNK_021D26D8 + mov r1, r10 + bl FUN_020ADBE8 + ldr r0, [sp, #0x4c] + str r9, [r10, #0x20] + str r0, [r10, #0x2c] + ldr r1, [sp, #0x50] + ldr r0, [sp, #0x54] + str r1, [r10, #0x30] + str r0, [r10, #0x34] + mov r0, #0x0 + str r0, [r10, #0x38] + str r0, [r10, #0x3c] + ldr r0, [r10, #0x24] + bic r0, r0, #0x1 + orr r0, r0, #0x1 + str r0, [r10, #0x24] + bl OS_DisableInterrupts + mov r4, r0 + mov r2, #0x1 + mov r0, r10 + mov r1, #0x0 + str r2, [r10, #0x2c] + bl FUN_020C1254 + ldr r1, [sp, #0x4c] + mov r0, r4 + str r1, [r10, #0x2c] + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x24 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020C1668: .word UNK_021D2724 +_020C166C: .word FUN_020C1308 +_020C1670: .word UNK_021D26D8 + + ; _end + arm_func_start FUN_020C1674 +FUN_020C1674: ; 0x020C1674 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x44] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + bl FUN_020C0340 + mov r0, #0x0 + str r0, [r4, #0x44] + str r0, [r4, #0x48] + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C169C +FUN_020C169C: ; 0x020C169C + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r4, #0x0 + mov r6, r0 + mov r12, r4 + cmp r5, #0x0 + ble _020C16DC + mov r1, #0x1 +_020C16BC: + ldrb r3, [r2, r12] + add r0, r6, r12 + strb r3, [r0, #0x4c] + ldrb r0, [r2, r12] + add r12, r12, #0x1 + cmp r12, r5 + orr r4, r4, r1, lsl r0 + blt _020C16BC +_020C16DC: + mov r0, r4 + bl FUN_020C0370 + cmp r0, #0x0 + moveq r0, #0x0 + strne r5, [r6, #0x48] + strne r4, [r6, #0x44] + movne r0, #0x1 + ldmia sp!, {r4-r6,pc} + + ; NNS_SndStrmInit + arm_func_start FUN_020C16FC +FUN_020C16FC: ; 0x020C16FC + stmdb sp!, {r4,lr} + ldr r1, _020C176C ; =UNK_021D26D4 + mov r4, r0 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _020C172C + ldr r0, _020C1770 ; =UNK_021D26D8 + mov r1, #0x0 + bl FUN_020ADC74 + ldr r0, _020C176C ; =UNK_021D26D4 + mov r1, #0x1 + str r1, [r0, #0x0] +_020C172C: + ldr r1, _020C1774 ; =FUN_020C1208 + ldr r0, _020C1778 ; =FUN_020C1198 + str r1, [r4, #0x8] + str r4, [r4, #0xc] + str r0, [r4, #0x14] + str r4, [r4, #0x18] + mov r0, #0x0 + str r0, [r4, #0x44] + str r0, [r4, #0x48] + ldr r0, [r4, #0x24] + bic r0, r0, #0x1 + str r0, [r4, #0x24] + ldr r0, [r4, #0x24] + bic r0, r0, #0x2 + str r0, [r4, #0x24] + ldmia sp!, {r4,pc} + .balign 4 +_020C176C: .word UNK_021D26D4 +_020C1770: .word UNK_021D26D8 +_020C1774: .word FUN_020C1208 +_020C1778: .word FUN_020C1198 + diff --git a/arm9/asm/NNS_SND_waveout.s b/arm9/asm/NNS_SND_waveout.s new file mode 100644 index 000000000..4d5a536db --- /dev/null +++ b/arm9/asm/NNS_SND_waveout.s @@ -0,0 +1,250 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .bss + + ; sWaveOut + .global UNK_021D1CBC +UNK_021D1CBC: ; 0x021D1CBC + .space 0x140 + + .section .text + + ; _end + arm_func_start FUN_020C03B8 +FUN_020C03B8: ; 0x020C03B8 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} + ldr r0, [r4, #0xc] + cmp r0, #0x0 + bne _020C03F8 + ldr r0, [r4, #0x10] + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4,pc} + mov r0, #0x1 + str r0, [r4, #0xc] +_020C03F8: + bl SND_GetChannelStatus + ldr r1, [r4, #0x0] + mov r2, #0x1 + mov r1, r2, lsl r1 + ands r0, r1, r0 + movne r0, r2 + moveq r0, #0x0 + streq r0, [r4, #0x8] + ldmia sp!, {r4,pc} + + ; _end + arm_func_start FUN_020C041C +FUN_020C041C: ; 0x020C041C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x8] + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, [r0, #0x0] + mov r2, #0x1 + mov r0, r2, lsl r0 + bl SND_SetChannelPan + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; NNS_SndWaveOutSetSpeed + arm_func_start FUN_020C044C +FUN_020C044C: ; 0x020C044C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x8] + mov r4, r1 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} + ldr r2, [r5, #0x4] + ldr r0, _020C04D4 ; =0xD87F8000 + mov r3, r2, asr #0x1f + mov r1, #0x7f + bl _ll_udiv + mov r2, r4 + mov r3, r4, asr #0x1f + bl _ll_udiv + mov r2, #0x0 + mov r3, r0 + mov r0, #0x10 + cmp r1, r2 + cmpeq r3, r0 + movcc r3, r0 + blo _020C04B8 + ldr r0, _020C04D8 ; =0x0000FFFF + cmp r1, r2 + cmpeq r3, r0 + movhi r3, r0 +_020C04B8: + ldr r0, [r5, #0x0] + mov r1, #0x1 + mov r0, r1, lsl r0 + mov r1, r3 + bl SND_SetChannelTimer + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020C04D4: .word 0xD87F8000 +_020C04D8: .word 0x0000FFFF + + ; _end + arm_func_start FUN_020C04DC +FUN_020C04DC: ; 0x020C04DC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x8] + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, [r0, #0x0] + mov r2, #0x1 + mov r0, r2, lsl r0 + mov r2, #0x0 + bl SND_SetChannelVolume + add sp, sp, #0x4 + ldmia sp!, {pc} + + ; _end + arm_func_start FUN_020C0510 +FUN_020C0510: ; 0x020C0510 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + ldmeqia sp!, {r4,pc} + ldr r0, [r4, #0x0] + mov r2, #0x1 + mov r1, #0x0 + mov r0, r2, lsl r0 + mov r2, r1 + mov r3, r1 + bl SND_StopTimer + mov r0, #0x0 + str r0, [r4, #0x8] + ldmia sp!, {r4,pc} + + ; NNS_SndWaveOutStart + arm_func_start FUN_020C054C +FUN_020C054C: ; 0x020C054C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x1c + movs r8, r1 + mov r9, r0 + mov r7, r2 + mov r6, r3 + beq _020C0584 + cmp r8, #0x1 + ldreq r0, [sp, #0x3c] + ldreq r1, [sp, #0x38] + moveq r0, r0, asr #0x1 + moveq r5, r1, asr #0x1 + subeq r4, r0, r1, asr #0x1 + b _020C0598 +_020C0584: + ldr r0, [sp, #0x3c] + ldr r1, [sp, #0x38] + mov r0, r0, asr #0x2 + mov r5, r1, asr #0x2 + sub r4, r0, r1, asr #0x2 +_020C0598: + ldr r2, [sp, #0x40] + ldr r0, _020C0668 ; =0xD87F8000 + mov r3, r2, asr #0x1f + mov r1, #0x7f + bl _ll_udiv + ldr r2, [sp, #0x48] + mov r3, r2, asr #0x1f + bl _ll_udiv + mov r3, #0x0 + mov r2, #0x10 + cmp r1, r3 + cmpeq r0, r2 + movcc r0, r2 + blo _020C05E0 + ldr r2, _020C066C ; =0x0000FFFF + cmp r1, r3 + cmpeq r0, r2 + movhi r0, r2 +_020C05E0: + str r5, [sp, #0x0] + ldr r1, [sp, #0x44] + str r4, [sp, #0x4] + str r1, [sp, #0x8] + mov r1, #0x0 + str r1, [sp, #0xc] + cmp r6, #0x0 + movne r3, #0x1 + ldr r1, [sp, #0x4c] + str r0, [sp, #0x10] + str r1, [sp, #0x14] + ldr r0, [r9, #0x0] + moveq r3, #0x2 + mov r1, r8 + mov r2, r7 + bl SND_SetupChannelPcm + mov r1, #0x0 + ldr r0, [r9, #0x0] + mov r2, #0x1 + mov r0, r2, lsl r0 + mov r2, r1 + mov r3, r1 + bl SND_StartTimer + mov r0, #0x1 + str r0, [r9, #0x8] + mov r0, #0x0 + str r0, [r9, #0xc] + bl SND_GetCurrentCommandTag + str r0, [r9, #0x10] + ldr r1, [sp, #0x40] + mov r0, #0x1 + str r1, [r9, #0x4] + add sp, sp, #0x1c + ldmia sp!, {r4-r9,pc} + .balign 4 +_020C0668: .word 0xD87F8000 +_020C066C: .word 0x0000FFFF + + ; NNS_SndWaveOutFreeChannel + arm_func_start FUN_020C0670 +FUN_020C0670: ; 0x020C0670 + ldr r0, [r0, #0x0] + mov r1, #0x1 + ldr ip, _020C0684 ; =FUN_020C0340 + mov r0, r1, lsl r0 + bx r12 + .balign 4 +_020C0684: .word FUN_020C0340 + + ; NNS_SndWaveOutAllocChannel + arm_func_start FUN_020C0688 +FUN_020C0688: ; 0x020C0688 + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, #0x1 + mov r0, r0, lsl r4 + bl FUN_020C0370 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} + mov r0, #0x14 + mul r0, r4, r0 + ldr r2, _020C06C8 ; =UNK_021D1CBC + mov r1, #0x0 + str r4, [r2, r0] + add r0, r2, r0 + str r1, [r0, #0x8] + ldmia sp!, {r4,pc} + .balign 4 +_020C06C8: .word UNK_021D1CBC + diff --git a/arm9/asm/sndlib.s b/arm9/asm/sndlib.s deleted file mode 100644 index 840e72d3f..000000000 --- a/arm9/asm/sndlib.s +++ /dev/null @@ -1,4758 +0,0 @@ - ; Compiled with MWCCARM 1.2 sp3 - - .include "asm/macros.inc" - .include "global.inc" - - .extern SNDi_DecibelTable - - .bss - - .global UNK_021D1C8C -UNK_021D1C8C: ; 0x021D1C8C - .space 0x4 - - .global UNK_021D1C90 -UNK_021D1C90: ; 0x021D1C90 - .space 0x4 - - .global UNK_021D1C94 -UNK_021D1C94: ; 0x021D1C94 - .space 0x4 - - .global UNK_021D1C98 -UNK_021D1C98: ; 0x021D1C98 - .space 0xc - - .global UNK_021D1CA4 -UNK_021D1CA4: ; 0x021D1CA4 - .space 0xc - - .global UNK_021D1CB0 -UNK_021D1CB0: ; 0x021D1CB0 - .space 0x4 - - .global UNK_021D1CB4 -UNK_021D1CB4: ; 0x021D1CB4 - .space 0x4 - - .global UNK_021D1CB8 -UNK_021D1CB8: ; 0x021D1CB8 - .space 0x4 - - .global UNK_021D1CBC -UNK_021D1CBC: ; 0x021D1CBC - .space 0x140 - - .global UNK_021D1DFC -UNK_021D1DFC: ; 0x021D1DFC - .space 0xc - - .global UNK_021D1E08 -UNK_021D1E08: ; 0x021D1E08 - .space 0xc - - .global UNK_021D1E14 -UNK_021D1E14: ; 0x021D1E14 - .space 0x440 - - .global UNK_021D2254 -UNK_021D2254: ; 0x021D2254 - .space 0x8 - - .global UNK_021D225C -UNK_021D225C: ; 0x021D225C - .space 0x10 - - .global UNK_021D226C -UNK_021D226C: ; 0x021D226C - .space 0x4 - - .global UNK_021D2270 -UNK_021D2270: ; 0x021D2270 - .space 0x4 - - .global UNK_021D2274 -UNK_021D2274: ; 0x021D2274 - .space 0x460 - - .global UNK_021D26D4 -UNK_021D26D4: ; 0x021D26D4 - .space 0x4 - - .global UNK_021D26D8 -UNK_021D26D8: ; 0x021D26D8 - .space 0xc - - .global UNK_021D26E4 -UNK_021D26E4: ; 0x021D26E4 - .space 0x40 - - .global UNK_021D2724 -UNK_021D2724: ; 0x021D2724 - .space 0x80 - - .global UNK_021D27A4 -UNK_021D27A4: ; 0x021D27A4 - .space 0x4 - - .global UNK_021D27A8 -UNK_021D27A8: ; 0x021D27A8 - .space 0x4 - - .global UNK_021D27AC -UNK_021D27AC: ; 0x021D27AC - .space 0x20 - - .global UNK_021D27CC -UNK_021D27CC: ; 0x021D27CC - .space 0x54 - - .global UNK_021D2820 -UNK_021D2820: ; 0x021D2820 - .space 0xa0 - - .global UNK_021D28C0 -UNK_021D28C0: ; 0x021D28C0 - .space 0x4 - - .global UNK_021D28C4 -UNK_021D28C4: ; 0x021D28C4 - .space 0x3c - - .global UNK_021D2900 -UNK_021D2900: ; 0x021D2900 - .space 0x4 - - .global UNK_021D2904 -UNK_021D2904: ; 0x021D2904 - .space 0x4d4 - - .global UNK_021D2DD8 -UNK_021D2DD8: ; 0x021D2DD8 - .space 0x18 - - .global UNK_021D2DF0 -UNK_021D2DF0: ; 0x021D2DF0 - .space 0xc - - .global UNK_021D2DFC -UNK_021D2DFC: ; 0x021D2DFC - .space 0x5c0 - - .text - - arm_func_start FUN_020C0130 -FUN_020C0130: ; 0x020C0130 - ldr ip, _020C0138 ; =FUN_020C187C - bx r12 - .balign 4 -_020C0138: .word FUN_020C187C - - arm_func_start FUN_020C013C -FUN_020C013C: ; 0x020C013C - stmdb sp!, {r4,lr} - bl FUN_020C18F8 - mov r0, #0x0 - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl SND_StopTimer - bl SND_GetCurrentCommandTag - mov r4, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r4 - bl SND_WaitForCommandProc - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C0174 -FUN_020C0174: ; 0x020C0174 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r0, #0x0 - beq _020C0194 - mov r0, #0x40 - bl SND_SetMasterPan - add sp, sp, #0x4 - ldmia sp!, {pc} -_020C0194: - bl SND_ResetMasterPan - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C01A0 -FUN_020C01A0: ; 0x020C01A0 - stmdb sp!, {r4,lr} - mov r4, #0x0 -_020C01A8: - mov r0, r4 - bl SND_RecvCommandReply - cmp r0, #0x0 - bne _020C01A8 - bl FUN_020C0BA0 - bl FUN_020C1D9C - bl FUN_020C3C88 - mov r0, #0x0 - bl SND_FlushCommand - ldmia sp!, {r4,pc} - - arm_func_start SDAT_Init -SDAT_Init: ; 0x020C01D0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020C0254 ; =UNK_021D1C94 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {pc} - mov r1, #0x1 - str r1, [r0, #0x0] - bl SND_Init - ldr ip, _020C0258 ; =FUN_020C013C - ldr r0, _020C025C ; =UNK_021D1C98 - mov r3, #0x0 - ldr r1, _020C0260 ; =UNK_021D1CA4 - ldr r2, _020C0264 ; =FUN_020C0130 - str r12, [r0, #0x0] - str r3, [r0, #0x4] - str r2, [r1, #0x0] - str r3, [r1, #0x4] - bl PM_PrependPreSleepCallback - ldr r0, _020C0260 ; =UNK_021D1CA4 - bl PM_AppendPostSleepCallback - bl FUN_020C0270 - bl FUN_020C1E38 - bl FUN_020C0D20 - ldr r1, _020C0268 ; =UNK_021D1C8C - mvn r3, #0x0 - ldr r0, _020C026C ; =UNK_021D1C90 - mov r2, #0x1 - strb r3, [r1, #0x0] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020C0254: .word UNK_021D1C94 -_020C0258: .word FUN_020C013C -_020C025C: .word UNK_021D1C98 -_020C0260: .word UNK_021D1CA4 -_020C0264: .word FUN_020C0130 -_020C0268: .word UNK_021D1C8C -_020C026C: .word UNK_021D1C90 - - arm_func_start FUN_020C0270 -FUN_020C0270: ; 0x020C0270 - ldr r2, _020C0290 ; =UNK_021D1CB8 - mov r3, #0x0 - ldr r1, _020C0294 ; =UNK_021D1CB0 - ldr r0, _020C0298 ; =UNK_021D1CB4 - str r3, [r2, #0x0] - str r3, [r1, #0x0] - str r3, [r0, #0x0] - bx lr - .balign 4 -_020C0290: .word UNK_021D1CB8 -_020C0294: .word UNK_021D1CB0 -_020C0298: .word UNK_021D1CB4 - - arm_func_start FUN_020C029C -FUN_020C029C: ; 0x020C029C - ldr r1, _020C02B8 ; =UNK_021D1CB4 - mov r2, #0x1 - mvn r0, r2, lsl r0 - ldr r2, [r1, #0x0] - and r0, r2, r0 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020C02B8: .word UNK_021D1CB4 - - arm_func_start FUN_020C02BC -FUN_020C02BC: ; 0x020C02BC - ldr r0, _020C02FC ; =UNK_021D1CB4 - mov r3, #0x1 - ldr r2, [r0, #0x0] - mov r0, #0x0 -_020C02CC: - ands r1, r2, r3 - ldreq r1, _020C02FC ; =UNK_021D1CB4 - ldreq r2, [r1, #0x0] - orreq r2, r2, r3 - streq r2, [r1, #0x0] - bxeq lr - add r0, r0, #0x1 - cmp r0, #0x8 - mov r3, r3, lsl #0x1 - blt _020C02CC - mvn r0, #0x0 - bx lr - .balign 4 -_020C02FC: .word UNK_021D1CB4 - - arm_func_start FUN_020C0300 -FUN_020C0300: ; 0x020C0300 - ldr r1, _020C0318 ; =UNK_021D1CB0 - mvn r0, r0 - ldr r2, [r1, #0x0] - and r0, r2, r0 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020C0318: .word UNK_021D1CB0 - - arm_func_start FUN_020C031C -FUN_020C031C: - ldr r1, _020C033C ; =UNK_021D1CB0 - ldr r2, [r1, #0x0] - ands r3, r0, r2 - movne r0, #0x0 - orreq r0, r2, r0 - streq r0, [r1, #0x0] - moveq r0, #0x1 - bx lr - .balign 4 -_020C033C: .word UNK_021D1CB0 - - arm_func_start FUN_020C0340 -FUN_020C0340: - stmdb sp!, {r4,lr} - movs r4, r0 - ldmeqia sp!, {r4,pc} - mov r1, #0x0 - bl SND_UnlockChannel - ldr r0, _020C036C ; =UNK_021D1CB8 - mvn r1, r4 - ldr r2, [r0, #0x0] - and r1, r2, r1 - str r1, [r0, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020C036C: .word UNK_021D1CB8 - - arm_func_start FUN_020C0370 -FUN_020C0370: - stmdb sp!, {r4,lr} - movs r4, r0 - moveq r0, #0x1 - ldmeqia sp!, {r4,pc} - ldr r1, _020C03B4 ; =UNK_021D1CB8 - ldr r1, [r1, #0x0] - ands r1, r4, r1 - movne r0, #0x0 - ldmneia sp!, {r4,pc} - mov r1, #0x0 - bl SND_LockChannel - ldr r1, _020C03B4 ; =UNK_021D1CB8 - mov r0, #0x1 - ldr r2, [r1, #0x0] - orr r2, r2, r4 - str r2, [r1, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020C03B4: .word UNK_021D1CB8 - - arm_func_start FUN_020C03B8 -FUN_020C03B8: ; 0x020C03B8 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r0, [r4, #0xc] - cmp r0, #0x0 - bne _020C03F8 - ldr r0, [r4, #0x10] - bl SND_IsFinishedCommandTag - cmp r0, #0x0 - moveq r0, #0x1 - ldmeqia sp!, {r4,pc} - mov r0, #0x1 - str r0, [r4, #0xc] -_020C03F8: - bl SND_GetChannelStatus - ldr r1, [r4, #0x0] - mov r2, #0x1 - mov r1, r2, lsl r1 - ands r0, r1, r0 - movne r0, r2 - moveq r0, #0x0 - streq r0, [r4, #0x8] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C041C -FUN_020C041C: ; 0x020C041C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x8] - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, [r0, #0x0] - mov r2, #0x1 - mov r0, r2, lsl r0 - bl SND_SetChannelPan - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C044C -FUN_020C044C: ; 0x020C044C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, [r5, #0x8] - mov r4, r1 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r2, [r5, #0x4] - ldr r0, _020C04D4 ; =0xD87F8000 - mov r3, r2, asr #0x1f - mov r1, #0x7f - bl _ll_udiv - mov r2, r4 - mov r3, r4, asr #0x1f - bl _ll_udiv - mov r2, #0x0 - mov r3, r0 - mov r0, #0x10 - cmp r1, r2 - cmpeq r3, r0 - movcc r3, r0 - blo _020C04B8 - ldr r0, _020C04D8 ; =0x0000FFFF - cmp r1, r2 - cmpeq r3, r0 - movhi r3, r0 -_020C04B8: - ldr r0, [r5, #0x0] - mov r1, #0x1 - mov r0, r1, lsl r0 - mov r1, r3 - bl SND_SetChannelTimer - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C04D4: .word 0xD87F8000 -_020C04D8: .word 0x0000FFFF - - arm_func_start FUN_020C04DC -FUN_020C04DC: ; 0x020C04DC - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x8] - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, [r0, #0x0] - mov r2, #0x1 - mov r0, r2, lsl r0 - mov r2, #0x0 - bl SND_SetChannelVolume - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0510 -FUN_020C0510: ; 0x020C0510 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r0, [r4, #0x0] - mov r2, #0x1 - mov r1, #0x0 - mov r0, r2, lsl r0 - mov r2, r1 - mov r3, r1 - bl SND_StopTimer - mov r0, #0x0 - str r0, [r4, #0x8] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C054C -FUN_020C054C: ; 0x020C054C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x1c - movs r8, r1 - mov r9, r0 - mov r7, r2 - mov r6, r3 - beq _020C0584 - cmp r8, #0x1 - ldreq r0, [sp, #0x3c] - ldreq r1, [sp, #0x38] - moveq r0, r0, asr #0x1 - moveq r5, r1, asr #0x1 - subeq r4, r0, r1, asr #0x1 - b _020C0598 -_020C0584: - ldr r0, [sp, #0x3c] - ldr r1, [sp, #0x38] - mov r0, r0, asr #0x2 - mov r5, r1, asr #0x2 - sub r4, r0, r1, asr #0x2 -_020C0598: - ldr r2, [sp, #0x40] - ldr r0, _020C0668 ; =0xD87F8000 - mov r3, r2, asr #0x1f - mov r1, #0x7f - bl _ll_udiv - ldr r2, [sp, #0x48] - mov r3, r2, asr #0x1f - bl _ll_udiv - mov r3, #0x0 - mov r2, #0x10 - cmp r1, r3 - cmpeq r0, r2 - movcc r0, r2 - blo _020C05E0 - ldr r2, _020C066C ; =0x0000FFFF - cmp r1, r3 - cmpeq r0, r2 - movhi r0, r2 -_020C05E0: - str r5, [sp, #0x0] - ldr r1, [sp, #0x44] - str r4, [sp, #0x4] - str r1, [sp, #0x8] - mov r1, #0x0 - str r1, [sp, #0xc] - cmp r6, #0x0 - movne r3, #0x1 - ldr r1, [sp, #0x4c] - str r0, [sp, #0x10] - str r1, [sp, #0x14] - ldr r0, [r9, #0x0] - moveq r3, #0x2 - mov r1, r8 - mov r2, r7 - bl SND_SetupChannelPcm - mov r1, #0x0 - ldr r0, [r9, #0x0] - mov r2, #0x1 - mov r0, r2, lsl r0 - mov r2, r1 - mov r3, r1 - bl SND_StartTimer - mov r0, #0x1 - str r0, [r9, #0x8] - mov r0, #0x0 - str r0, [r9, #0xc] - bl SND_GetCurrentCommandTag - str r0, [r9, #0x10] - ldr r1, [sp, #0x40] - mov r0, #0x1 - str r1, [r9, #0x4] - add sp, sp, #0x1c - ldmia sp!, {r4-r9,pc} - .balign 4 -_020C0668: .word 0xD87F8000 -_020C066C: .word 0x0000FFFF - - arm_func_start FUN_020C0670 -FUN_020C0670: ; 0x020C0670 - ldr r0, [r0, #0x0] - mov r1, #0x1 - ldr ip, _020C0684 ; =FUN_020C0340 - mov r0, r1, lsl r0 - bx r12 - .balign 4 -_020C0684: .word FUN_020C0340 - - arm_func_start FUN_020C0688 -FUN_020C0688: ; 0x020C0688 - stmdb sp!, {r4,lr} - mov r4, r0 - mov r0, #0x1 - mov r0, r0, lsl r4 - bl FUN_020C0370 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - mov r0, #0x14 - mul r0, r4, r0 - ldr r2, _020C06C8 ; =UNK_021D1CBC - mov r1, #0x0 - str r4, [r2, r0] - add r0, r2, r0 - str r1, [r0, #0x8] - ldmia sp!, {r4,pc} - .balign 4 -_020C06C8: .word UNK_021D1CBC - - arm_func_start FUN_020C06CC -FUN_020C06CC: ; 0x020C06CC - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r4, [r6, #0x4] - mov r5, r1 - cmp r4, #0x0 - beq _020C06F8 - mov r0, r4 - mov r1, r6 - bl FUN_020ADAB0 - mov r0, #0x0 - str r0, [r6, #0x4] -_020C06F8: - ldr r0, _020C0728 ; =UNK_021D1E08 - mov r1, r6 - bl FUN_020ADAB0 - strb r5, [r6, #0x3d] - cmp r4, #0x0 - beq _020C071C - mov r0, r4 - mov r1, r6 - bl FUN_020C0910 -_020C071C: - mov r0, r6 - bl FUN_020C08B4 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C0728: .word UNK_021D1E08 - - arm_func_start FUN_020C072C -FUN_020C072C: ; 0x020C072C - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x8] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - bl FUN_020C2A7C - ldr r1, [r4, #0xc] - cmp r1, #0x0 - movne r0, #0x0 - strne r0, [r1, #0x8] - ldmneia sp!, {r4,pc} - ldr r1, [r4, #0x10] - ldr r2, _020C0778 ; =UNK_021D2254 - mov r0, #0x24 - mla r0, r1, r0, r2 - mov r1, r4 - add r0, r0, #0xc - bl FUN_020ADAB0 - ldmia sp!, {r4,pc} - .balign 4 -_020C0778: .word UNK_021D2254 - - arm_func_start FUN_020C077C -FUN_020C077C: ; 0x020C077C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - movne r0, #0x0 - strne r0, [r1, #0x0] - strne r0, [r4, #0x0] - ldr r5, [r4, #0x4] - mov r1, r4 - mov r0, r5 - bl FUN_020ADAB0 - mov r0, #0x0 - str r0, [r4, #0x4] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020C07D8 - add r0, r5, #0xc - bl FUN_020ADBE8 - ldr r0, [r4, #0x8] - mov r1, #0x0 - str r1, [r0, #0xc] - str r1, [r4, #0x8] -_020C07D8: - ldr r0, _020C0800 ; =UNK_021D1E08 - mov r1, r4 - bl FUN_020ADAB0 - ldr r0, _020C0804 ; =UNK_021D1DFC - mov r1, r4 - bl FUN_020ADBE8 - mov r0, #0x0 - strb r0, [r4, #0x2c] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C0800: .word UNK_021D1E08 -_020C0804: .word UNK_021D1DFC - - arm_func_start FUN_020C0808 -FUN_020C0808: ; 0x020C0808 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, _020C0874 ; =UNK_021D1DFC - mov r1, #0x0 - bl FUN_020ADA98 - movs r4, r0 - bne _020C0850 - ldr r0, _020C0878 ; =UNK_021D1E08 - mov r1, #0x0 - bl FUN_020ADA98 - mov r4, r0 - ldrb r1, [r4, #0x3d] - cmp r5, r1 - addlt sp, sp, #0x4 - movlt r0, #0x0 - ldmltia sp!, {r4-r5,pc} - bl FUN_020C087C -_020C0850: - ldr r0, _020C0874 ; =UNK_021D1DFC - mov r1, r4 - bl FUN_020ADAB0 - mov r0, r4 - strb r5, [r4, #0x3d] - bl FUN_020C08B4 - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C0874: .word UNK_021D1DFC -_020C0878: .word UNK_021D1E08 - - arm_func_start FUN_020C087C -FUN_020C087C: ; 0x020C087C - stmdb sp!, {r4,lr} - mov r4, r0 - ldrb r0, [r4, #0x2c] - cmp r0, #0x2 - bne _020C089C - ldrb r0, [r4, #0x3c] - ldr r1, _020C08B0 ; =0xFFFFFD2D - bl SND_SetPlayerVolume -_020C089C: - ldrb r0, [r4, #0x3c] - bl SND_StopSeq - mov r0, r4 - bl FUN_020C077C - ldmia sp!, {r4,pc} - .balign 4 -_020C08B0: .word 0xFFFFFD2D - - arm_func_start FUN_020C08B4 -FUN_020C08B4: ; 0x020C08B4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, _020C090C ; =UNK_021D1E08 - mov r1, #0x0 - bl FUN_020ADA98 - movs r1, r0 - beq _020C08F8 - ldr r4, _020C090C ; =UNK_021D1E08 -_020C08D8: - ldrb r2, [r5, #0x3d] - ldrb r0, [r1, #0x3d] - cmp r2, r0 - blo _020C08F8 - mov r0, r4 - bl FUN_020ADA98 - movs r1, r0 - bne _020C08D8 -_020C08F8: - ldr r0, _020C090C ; =UNK_021D1E08 - mov r2, r5 - bl FUN_020ADB18 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C090C: .word UNK_021D1E08 - - arm_func_start FUN_020C0910 -FUN_020C0910: ; 0x020C0910 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r1, #0x0 - mov r5, r0 - bl FUN_020ADA98 - movs r1, r0 - beq _020C0950 -_020C0930: - ldrb r2, [r4, #0x3d] - ldrb r0, [r1, #0x3d] - cmp r2, r0 - blo _020C0950 - mov r0, r5 - bl FUN_020ADA98 - movs r1, r0 - bne _020C0930 -_020C0950: - mov r0, r5 - mov r2, r4 - bl FUN_020ADB18 - str r5, [r4, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C0968 -FUN_020C0968: ; 0x020C0968 - stmdb sp!, {r4,lr} - mov r4, r0 - mov r0, #0x0 - strb r0, [r4, #0x2e] - strb r0, [r4, #0x2d] - strb r0, [r4, #0x2f] - strh r0, [r4, #0x34] - strh r0, [r4, #0x3e] - mov r1, #0x7f - strb r1, [r4, #0x40] - add r0, r4, #0x1c - strb r1, [r4, #0x41] - bl FUN_020C3E6C - add r0, r4, #0x1c - mov r1, #0x7f00 - mov r2, #0x1 - bl FUN_020C3E40 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C09B0 -FUN_020C09B0: ; 0x020C09B0 - stmdb sp!, {r4-r6,lr} - ldr r3, _020C0A00 ; =UNK_021D2254 - mov r2, #0x24 - mla r5, r0, r2, r3 - mov r6, r1 - add r0, r5, #0xc - mov r1, #0x0 - bl FUN_020ADA98 - movs r4, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r1, r4 - add r0, r5, #0xc - bl FUN_020ADAB0 - str r6, [r4, #0xc] - str r4, [r6, #0x8] - ldr r0, [r4, #0x8] - bl FUN_020C29C0 - ldr r0, [r4, #0x8] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C0A00: .word UNK_021D2254 - - arm_func_start FUN_020C0A04 -FUN_020C0A04: ; 0x020C0A04 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r5, r0 - mov r4, r1 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldrb r0, [r5, #0x2e] - cmp r4, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldrb r0, [r5, #0x3c] - bl SND_PauseSeq - strb r4, [r5, #0x2e] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C0A40 -FUN_020C0A40: ; 0x020C0A40 - stmdb sp!, {r4,lr} - movs r4, r0 - mov r2, r1 - ldmeqia sp!, {r4,pc} - ldrb r1, [r4, #0x2c] - cmp r1, #0x0 - ldmeqia sp!, {r4,pc} - cmp r2, #0x0 - bne _020C0A6C - bl FUN_020C087C - ldmia sp!, {r4,pc} -_020C0A6C: - add r0, r4, #0x1c - mov r1, #0x0 - bl FUN_020C3E40 - mov r0, r4 - mov r1, #0x0 - bl FUN_020C06CC - mov r0, #0x2 - strb r0, [r4, #0x2c] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C0A90 -FUN_020C0A90: ; 0x020C0A90 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrb r0, [r5, #0x3c] - ldr r4, [r5, #0x4] - bl SND_PrepareSeq - ldr r2, [r4, #0x1c] - cmp r2, #0x0 - beq _020C0AC0 - ldrb r0, [r5, #0x3c] - ldr r1, _020C0AE4 ; =0x0000FFFF - bl SND_SetTrackAllocatableChannel -_020C0AC0: - mov r0, r5 - bl FUN_020C0968 - bl SND_GetCurrentCommandTag - str r0, [r5, #0x30] - mov r0, #0x1 - strb r0, [r5, #0x2f] - strb r0, [r5, #0x2c] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C0AE4: .word 0x0000FFFF - - arm_func_start thunk_FUN_020c077c -thunk_FUN_020c077c: ; 0x020C0AE8 - ldr ip, _020C0AF0 ; =FUN_020C077C - bx r12 - .balign 4 -_020C0AF0: .word FUN_020C077C - - arm_func_start FUN_020C0AF4 -FUN_020C0AF4: ; 0x020C0AF4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr ip, _020C0B9C ; =UNK_021D2254 - mov r3, #0x24 - mov r4, r0 - ldr r5, [r4, #0x0] - mla r6, r1, r3, r12 - mov r7, r2 - cmp r5, #0x0 - beq _020C0B20 - bl FUN_020C0F68 -_020C0B20: - ldrh r1, [r6, #0x8] - ldr r0, [r6, #0x18] - cmp r1, r0 - blo _020C0B64 - mov r0, r6 - mov r1, #0x0 - bl FUN_020ADA98 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - ldrb r1, [r0, #0x3d] - cmp r7, r1 - addlt sp, sp, #0x4 - movlt r0, #0x0 - ldmltia sp!, {r4-r7,pc} - bl FUN_020C087C -_020C0B64: - mov r0, r7 - bl FUN_020C0808 - movs r5, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - mov r0, r6 - mov r1, r5 - bl FUN_020C0910 - str r4, [r5, #0x0] - mov r0, r5 - str r5, [r4, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C0B9C: .word UNK_021D2254 - - arm_func_start FUN_020C0BA0 -FUN_020C0BA0: ; 0x020C0BA0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - bl SND_GetPlayerStatus - str r0, [sp, #0x0] - ldr r0, _020C0D14 ; =UNK_021D1E08 - mov r1, #0x0 - bl FUN_020ADA98 - movs r10, r0 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r11,pc} - mov r0, #0x8000 - rsb r0, r0, #0x0 - ldr r4, _020C0D18 ; =SNDi_DecibelTable - str r0, [sp, #0x4] - mov r5, #0x1 - mov r11, #0x0 -_020C0BE0: - ldr r0, _020C0D14 ; =UNK_021D1E08 - mov r1, r10 - bl FUN_020ADA98 - ldrb r1, [r10, #0x2d] - mov r9, r0 - cmp r1, #0x0 - bne _020C0C0C - ldr r0, [r10, #0x30] - bl SND_IsFinishedCommandTag - cmp r0, #0x0 - strneb r5, [r10, #0x2d] -_020C0C0C: - ldrb r0, [r10, #0x2d] - cmp r0, #0x0 - beq _020C0C38 - ldrb r0, [r10, #0x3c] - mov r1, r5, lsl r0 - ldr r0, [sp, #0x0] - ands r0, r0, r1 - bne _020C0C38 - mov r0, r10 - bl FUN_020C077C - b _020C0D00 -_020C0C38: - add r0, r10, #0x1c - bl FUN_020C3DF4 - ldr r0, [r10, #0x4] - ldrb r2, [r10, #0x41] - ldrb r1, [r10, #0x40] - ldrb r0, [r0, #0x20] - mov r3, r2, lsl #0x1 - mov r2, r1, lsl #0x1 - mov r1, r0, lsl #0x1 - add r0, r10, #0x1c - ldrsh r8, [r4, r3] - ldrsh r7, [r4, r2] - ldrsh r6, [r4, r1] - bl FUN_020C3E0C - mov r0, r0, asr #0x8 - mov r2, r0, lsl #0x1 - add r1, r7, r8 - mov r0, #0x8000 - ldrsh r2, [r4, r2] - add r1, r6, r1 - rsb r0, r0, #0x0 - add r6, r2, r1 - cmp r6, r0 - ldrlt r6, [sp, #0x4] - blt _020C0CA8 - ldr r0, _020C0D1C ; =0x00007FFF - cmp r6, r0 - movgt r6, r0 -_020C0CA8: - ldrsh r0, [r10, #0x3e] - cmp r6, r0 - beq _020C0CC4 - ldrb r0, [r10, #0x3c] - mov r1, r6 - bl SND_SetPlayerVolume - strh r6, [r10, #0x3e] -_020C0CC4: - ldrb r0, [r10, #0x2c] - cmp r0, #0x2 - bne _020C0CE8 - add r0, r10, #0x1c - bl FUN_020C3DDC - cmp r0, #0x0 - beq _020C0CE8 - mov r0, r10 - bl FUN_020C087C -_020C0CE8: - ldrb r0, [r10, #0x2f] - cmp r0, #0x0 - beq _020C0D00 - ldrb r0, [r10, #0x3c] - bl SND_StartPreparedSeq - strb r11, [r10, #0x2f] -_020C0D00: - mov r10, r9 - cmp r9, #0x0 - bne _020C0BE0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020C0D14: .word UNK_021D1E08 -_020C0D18: .word SNDi_DecibelTable -_020C0D1C: .word 0x00007FFF - - arm_func_start FUN_020C0D20 -FUN_020C0D20: ; 0x020C0D20 - stmdb sp!, {r4-r10,lr} - ldr r0, _020C0DC4 ; =UNK_021D1E08 - mov r1, #0x14 - bl FUN_020ADC74 - ldr r0, _020C0DC8 ; =UNK_021D1DFC - mov r1, #0x14 - bl FUN_020ADC74 - ldr r6, _020C0DCC ; =UNK_021D1E14 - mov r7, #0x0 - ldr r4, _020C0DC8 ; =UNK_021D1DFC - mov r5, r7 -_020C0D4C: - strb r5, [r6, #0x2c] - mov r0, r4 - mov r1, r6 - strb r7, [r6, #0x3c] - bl FUN_020ADBE8 - add r7, r7, #0x1 - cmp r7, #0x10 - add r6, r6, #0x44 - blt _020C0D4C - ldr sl, _020C0DD0 ; =UNK_021D2254 - mov r9, #0x0 - mov r7, r9 - mov r4, r9 - mov r8, #0xc - mov r6, #0x7f - mov r5, #0x1 -_020C0D8C: - mov r0, r10 - mov r1, r8 - bl FUN_020ADC74 - mov r1, r7 - add r0, r10, #0xc - bl FUN_020ADC74 - strb r6, [r10, #0x20] - str r5, [r10, #0x18] - add r9, r9, #0x1 - str r4, [r10, #0x1c] - cmp r9, #0x20 - add r10, r10, #0x24 - blt _020C0D8C - ldmia sp!, {r4-r10,pc} - .balign 4 -_020C0DC4: .word UNK_021D1E08 -_020C0DC8: .word UNK_021D1DFC -_020C0DCC: .word UNK_021D1E14 -_020C0DD0: .word UNK_021D2254 - - arm_func_start FUN_020C0DD4 -FUN_020C0DD4: ; 0x020C0DD4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {pc} - ldrb r0, [r1, #0x2d] - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {pc} - ldrb r0, [r1, #0x3c] - bl SND_GetPlayerTickCounter - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0E14 -FUN_020C0E14: ; 0x020C0E14 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - mvneq r0, #0x0 - bxeq lr - ldrh r0, [r1, #0x34] - cmp r0, #0x1 - mvnne r0, #0x0 - ldreqh r0, [r1, #0x38] - bx lr - - arm_func_start FUN_020C0E38 -FUN_020C0E38: ; 0x020C0E38 - ldr r12, [r0, #0x0] - cmp r12, #0x0 - bxeq lr - mov r3, #0x2 - strh r3, [r12, #0x34] - ldr r3, [r0, #0x0] - strh r1, [r3, #0x38] - ldr r0, [r0, #0x0] - strh r2, [r0, #0x3a] - bx lr - - arm_func_start FUN_020C0E60 -FUN_020C0E60: ; 0x020C0E60 - ldr r3, [r0, #0x0] - cmp r3, #0x0 - movne r2, #0x1 - strneh r2, [r3, #0x34] - ldrne r0, [r0, #0x0] - strneh r1, [r0, #0x38] - bx lr - - arm_func_start FUN_020C0E7C -FUN_020C0E7C: ; 0x020C0E7C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldrb r0, [r0, #0x3c] - bl SND_SetTrackPan - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0EA4 -FUN_020C0EA4: ; 0x020C0EA4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldrb r0, [r0, #0x3c] - bl SND_SetTrackPitch - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0ECC -FUN_020C0ECC: ; 0x020C0ECC - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldrb r0, [r0, #0x3c] - bl SND_SetPlayerChannelPriority - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0EF4 -FUN_020C0EF4: ; 0x020C0EF4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x0] - cmp r3, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldrb r0, [r3, #0x2c] - cmp r0, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - add r0, r3, #0x1c - mov r1, r1, lsl #0x8 - bl FUN_020C3E40 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C0F30 -FUN_020C0F30: ; 0x020C0F30 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - strneb r1, [r0, #0x40] - bx lr - - arm_func_start FUN_020C0F40 -FUN_020C0F40: ; 0x020C0F40 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - strneb r1, [r0, #0x41] - bx lr - - arm_func_start FUN_020C0F50 -FUN_020C0F50: ; 0x020C0F50 - mov r1, #0x24 - mul r1, r0, r1 - ldr r0, _020C0F64 ; =UNK_021D225C - ldrh r0, [r0, r1] - bx lr - .balign 4 -_020C0F64: .word UNK_021D225C - - arm_func_start FUN_020C0F68 -FUN_020C0F68: ; 0x020C0F68 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - movne r1, #0x0 - strne r1, [r2, #0x0] - strne r1, [r0, #0x0] - bx lr - - arm_func_start FUN_020C0F80 -FUN_020C0F80: ; 0x020C0F80 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - - arm_func_start FUN_020C0F8C -FUN_020C0F8C: ; 0x020C0F8C - ldr ip, _020C0F98 ; =FUN_020C0A04 - ldr r0, [r0, #0x0] - bx r12 - .balign 4 -_020C0F98: .word FUN_020C0A04 - - arm_func_start FUN_020C0F9C -FUN_020C0F9C: ; 0x020C0F9C - stmdb sp!, {r4-r6,lr} - ldr r4, _020C0FD8 ; =UNK_021D1E14 - mov r6, r0 - mov r5, #0x0 -_020C0FAC: - ldrb r0, [r4, #0x2c] - cmp r0, #0x0 - beq _020C0FC4 - mov r0, r4 - mov r1, r6 - bl FUN_020C0A40 -_020C0FC4: - add r5, r5, #0x1 - cmp r5, #0x10 - add r4, r4, #0x44 - blt _020C0FAC - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C0FD8: .word UNK_021D1E14 - - arm_func_start FUN_020C0FDC -FUN_020C0FDC: ; 0x020C0FDC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r4, _020C103C ; =UNK_021D1E14 - mov r7, r0 - mov r6, r1 - mov r5, #0x0 -_020C0FF4: - ldrb r0, [r4, #0x2c] - cmp r0, #0x0 - beq _020C1024 - ldrh r0, [r4, #0x34] - cmp r0, #0x1 - bne _020C1024 - ldrh r0, [r4, #0x38] - cmp r0, r7 - bne _020C1024 - mov r0, r4 - mov r1, r6 - bl FUN_020C0A40 -_020C1024: - add r5, r5, #0x1 - cmp r5, #0x10 - add r4, r4, #0x44 - blt _020C0FF4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C103C: .word UNK_021D1E14 - - arm_func_start FUN_020C1040 -FUN_020C1040: ; 0x020C1040 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r3, _020C109C ; =UNK_021D2254 - mov r2, #0x24 - mla r4, r0, r2, r3 - ldr r5, _020C10A0 ; =UNK_021D1E14 - mov r7, r1 - mov r6, #0x0 -_020C1060: - ldrb r0, [r5, #0x2c] - cmp r0, #0x0 - beq _020C1084 - ldr r0, [r5, #0x4] - cmp r0, r4 - bne _020C1084 - mov r0, r5 - mov r1, r7 - bl FUN_020C0A40 -_020C1084: - add r6, r6, #0x1 - cmp r6, #0x10 - add r5, r5, #0x44 - blt _020C1060 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C109C: .word UNK_021D2254 -_020C10A0: .word UNK_021D1E14 - - arm_func_start FUN_020C10A4 -FUN_020C10A4: ; 0x020C10A4 - ldr ip, _020C10B0 ; =FUN_020C0A40 - ldr r0, [r0, #0x0] - bx r12 - .balign 4 -_020C10B0: .word FUN_020C0A40 - - arm_func_start FUN_020C10B4 -FUN_020C10B4: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r2 - mov r6, r0 - mov r0, r1 - mov r3, #0x0 - ldr r2, _020C1140 ; =FUN_020C072C - add r1, r5, #0x14 - str r3, [sp, #0x0] - bl SDATi_AllocAndInitChunk - movs r4, r0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r2, #0x0 - str r2, [r4, #0xc] - str r6, [r4, #0x10] - mov r1, r5 - add r0, r4, #0x14 - str r2, [r4, #0x8] - bl FUN_020C2A94 - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r2, _020C1144 ; =UNK_021D2254 - mov r1, #0x24 - mla r2, r6, r1, r2 - str r0, [r4, #0x8] - mov r1, r4 - add r0, r2, #0xc - bl FUN_020ADBE8 - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C1140: .word FUN_020C072C -_020C1144: .word UNK_021D2254 - - arm_func_start FUN_020C1148 -FUN_020C1148: ; 0x020C1148 - mov r2, #0x24 - mul r2, r0, r2 - ldr r0, _020C115C ; =UNK_021D2270 - str r1, [r0, r2] - bx lr - .balign 4 -_020C115C: .word UNK_021D2270 - - arm_func_start FUN_020C1160 -FUN_020C1160: ; 0x020C1160 - mov r2, #0x24 - mul r2, r0, r2 - mov r0, r1, lsl #0x10 - ldr r1, _020C117C ; =UNK_021D226C - mov r0, r0, lsr #0x10 - str r0, [r1, r2] - bx lr - .balign 4 -_020C117C: .word UNK_021D226C - - arm_func_start FUN_020C1180 -FUN_020C1180: ; 0x020C1180 - mov r2, #0x24 - mul r2, r0, r2 - ldr r0, _020C1194 ; =UNK_021D2274 - strb r1, [r0, r2] - bx lr - .balign 4 -_020C1194: .word UNK_021D2274 - - arm_func_start FUN_020C1198 -FUN_020C1198: ; 0x020C1198 - stmdb sp!, {r4-r6,lr} - mov r4, r0 - ldr r0, [r4, #0x24] - mov r0, r0, lsl #0x1e - movs r0, r0, asr #0x1f - ldmeqia sp!, {r4-r6,pc} - ldr r0, [r4, #0x38] - cmp r0, #0x0 - beq _020C11E8 - mov r5, #0x1 -_020C11C0: - bl OS_DisableInterrupts - mov r6, r0 - mov r0, r4 - mov r1, r5 - bl FUN_020C1254 - mov r0, r6 - bl OS_RestoreInterrupts - ldr r0, [r4, #0x38] - cmp r0, #0x0 - bne _020C11C0 -_020C11E8: - ldr r0, [r4, #0x40] - mov r2, #0x1 - mov r1, #0x0 - mov r2, r2, lsl r0 - ldr r0, [r4, #0x44] - mov r3, r1 - bl SND_StartTimer - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020C1208 -FUN_020C1208: ; 0x020C1208 - stmdb sp!, {r4,lr} - ldr r1, [r0, #0x24] - mov r1, r1, lsl #0x1e - movs r1, r1, asr #0x1f - ldmeqia sp!, {r4,pc} - ldr r2, [r0, #0x40] - mov r3, #0x1 - mov r1, #0x0 - mov r2, r3, lsl r2 - ldr r0, [r0, #0x44] - mov r3, r1 - bl SND_StopTimer - bl SND_GetCurrentCommandTag - mov r4, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r4 - bl SND_WaitForCommandProc - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C1254 -FUN_020C1254: ; 0x020C1254 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r4, r1 - ldr r0, [r5, #0x28] - ldr r1, [r5, #0x2c] - bl _u32_div_f - ldr r1, [r5, #0x48] - ldr r2, [r5, #0x38] - mov r3, r0 - mul lr, r3, r2 - cmp r1, #0x0 - mov r12, #0x0 - ble _020C12B8 - ldr r2, _020C1300 ; =UNK_021D2724 - ldr r0, _020C1304 ; =UNK_021D26E4 -_020C1294: - add r1, r5, r12 - ldrb r1, [r1, #0x4c] - ldr r1, [r2, r1, lsl #0x3] - add r1, r1, lr - str r1, [r0, r12, lsl #0x2] - ldr r1, [r5, #0x48] - add r12, r12, #0x1 - cmp r12, r1 - blt _020C1294 -_020C12B8: - ldr r0, [r5, #0x20] - ldr r2, _020C1304 ; =UNK_021D26E4 - str r0, [sp, #0x0] - ldr r12, [r5, #0x34] - mov r0, r4 - str r12, [sp, #0x4] - ldr r4, [r5, #0x30] - blx r4 - ldr r0, [r5, #0x38] - add r0, r0, #0x1 - str r0, [r5, #0x38] - ldr r1, [r5, #0x38] - ldr r0, [r5, #0x2c] - cmp r1, r0 - movge r0, #0x0 - strge r0, [r5, #0x38] - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C1300: .word UNK_021D2724 -_020C1304: .word UNK_021D26E4 - - arm_func_start FUN_020C1308 -FUN_020C1308: ; 0x020C1308 - ldr ip, _020C1314 ; =FUN_020C1254 - mov r1, #0x1 - bx r12 - .balign 4 -_020C1314: .word FUN_020C1254 - - arm_func_start FUN_020C1318 -FUN_020C1318: ; 0x020C1318 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x40] - bl FUN_020C029C - ldr r0, _020C1344 ; =UNK_021D26D8 - mov r1, r4 - bl FUN_020ADAB0 - ldr r0, [r4, #0x24] - bic r0, r0, #0x1 - str r0, [r4, #0x24] - ldmia sp!, {r4,pc} - .balign 4 -_020C1344: .word UNK_021D26D8 - - arm_func_start FUN_020C1348 -FUN_020C1348: ; 0x020C1348 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r0, [r4, #0x24] - mov r0, r0, lsl #0x1e - movs r0, r0, asr #0x1f - beq _020C13B4 - ldr r0, [r4, #0x40] - mov r2, #0x1 - mov r1, #0x0 - mov r2, r2, lsl r0 - ldr r0, [r4, #0x44] - mov r3, r1 - bl SND_StopTimer - add r0, r4, #0x8 - bl PM_DeletePreSleepCallback - add r0, r4, #0x14 - bl PM_DeletePostSleepCallback - ldr r0, [r4, #0x24] - bic r0, r0, #0x2 - str r0, [r4, #0x24] - bl SND_GetCurrentCommandTag - mov r5, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r5 - bl SND_WaitForCommandProc -_020C13B4: - mov r0, r4 - bl FUN_020C1318 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C13C4 -FUN_020C13C4: ; 0x020C13C4 - stmdb sp!, {r4-r8,lr} - mov r7, r0 - str r1, [r7, #0x3c] - ldr r0, [r7, #0x48] - mov r5, #0x0 - cmp r0, #0x0 - ldmleia sp!, {r4-r8,pc} - ldr r4, _020C142C ; =UNK_021D2724 - mov r8, #0x1 -_020C13E8: - add r0, r7, r5 - ldrb r6, [r0, #0x4c] - ldr r1, [r7, #0x3c] - add r0, r4, r6, lsl #0x3 - ldr r0, [r0, #0x4] - add r0, r1, r0 - bl SND_CalcChannelVolume - mov r2, r0 - mov r0, r8, lsl r6 - and r1, r2, #0xff - mov r2, r2, asr #0x8 - bl SND_SetChannelVolume - ldr r0, [r7, #0x48] - add r5, r5, #0x1 - cmp r5, r0 - blt _020C13E8 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020C142C: .word UNK_021D2724 - - arm_func_start FUN_020C1430 -FUN_020C1430: ; 0x020C1430 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, [r0, #0x24] - mov r1, r1, lsl #0x1f - movs r1, r1, asr #0x1f - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - bl FUN_020C1348 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C1458 -FUN_020C1458: ; 0x020C1458 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x40] - mov r2, #0x1 - mov r1, #0x0 - mov r2, r2, lsl r0 - ldr r0, [r4, #0x44] - mov r3, r1 - bl SND_StartTimer - ldr r0, [r4, #0x24] - mov r0, r0, lsl #0x1e - movs r0, r0, asr #0x1f - ldmneia sp!, {r4,pc} - add r0, r4, #0x8 - bl PM_PrependPreSleepCallback - add r0, r4, #0x14 - bl PM_AppendPostSleepCallback - ldr r0, [r4, #0x24] - orr r0, r0, #0x2 - str r0, [r4, #0x24] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C14AC -FUN_020C14AC: ; 0x020C14AC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x24 - mov r10, r0 - ldr r4, [r10, #0x24] - mov r9, r1 - mov r1, r4, lsl #0x1f - movs r1, r1, asr #0x1f - ldr r1, [sp, #0x4c] - str r2, [sp, #0x18] - mov r4, r3 - str r1, [sp, #0x4c] - beq _020C14E0 - bl FUN_020C1430 -_020C14E0: - ldr r0, [sp, #0x4c] - ldr r2, [r10, #0x48] - mov r0, r0, lsl #0x5 - mul r1, r2, r0 - mov r0, r4 - bl _u32_div_f - ldr r1, [sp, #0x4c] - ldr r2, [sp, #0x48] - mul r1, r0, r1 - mov r0, r1, lsl #0x5 - str r0, [r10, #0x28] - ldr r0, [r10, #0x28] - cmp r9, #0x1 - moveq r0, r0, lsr #0x1 - mul r0, r2, r0 - ldr r1, [sp, #0x4c] - bl _u32_div_f - str r0, [sp, #0x1c] - bl FUN_020C02BC - str r0, [r10, #0x40] - ldr r0, [r10, #0x40] - cmp r0, #0x0 - addlt sp, sp, #0x24 - movlt r0, #0x0 - ldmltia sp!, {r4-r11,pc} - ldr r0, [r10, #0x48] - mov r8, #0x0 - cmp r0, #0x0 - ble _020C15D4 - ldr r0, [sp, #0x48] - mov r7, r0, lsl #0x5 - ldr r6, _020C1668 ; =UNK_021D2724 - mov r5, r8 - mov r4, #0x7f - mov r11, #0x40 - mov r0, #0x1 - str r0, [sp, #0x20] -_020C1574: - ldr r2, [r10, #0x28] - ldr r1, [sp, #0x18] - add r0, r10, r8 - mla r1, r2, r8, r1 - ldrb r0, [r0, #0x4c] - ldr r3, [sp, #0x20] - str r1, [r6, r0, lsl #0x3] - add r1, r6, r0, lsl #0x3 - str r5, [r1, #0x4] - str r5, [sp, #0x0] - ldr r2, [r10, #0x28] - mov r1, r9 - mov r2, r2, lsr #0x2 - str r2, [sp, #0x4] - str r4, [sp, #0x8] - str r5, [sp, #0xc] - str r7, [sp, #0x10] - str r11, [sp, #0x14] - ldr r2, [r6, r0, lsl #0x3] - bl SND_SetupChannelPcm - ldr r0, [r10, #0x48] - add r8, r8, #0x1 - cmp r8, r0 - blt _020C1574 -_020C15D4: - str r10, [sp, #0x0] - ldr r1, [sp, #0x1c] - ldr r0, [r10, #0x40] - ldr r3, _020C166C ; =FUN_020C1308 - mov r2, r1 - bl SND_SetupAlarm - ldr r0, _020C1670 ; =UNK_021D26D8 - mov r1, r10 - bl FUN_020ADBE8 - ldr r0, [sp, #0x4c] - str r9, [r10, #0x20] - str r0, [r10, #0x2c] - ldr r1, [sp, #0x50] - ldr r0, [sp, #0x54] - str r1, [r10, #0x30] - str r0, [r10, #0x34] - mov r0, #0x0 - str r0, [r10, #0x38] - str r0, [r10, #0x3c] - ldr r0, [r10, #0x24] - bic r0, r0, #0x1 - orr r0, r0, #0x1 - str r0, [r10, #0x24] - bl OS_DisableInterrupts - mov r4, r0 - mov r2, #0x1 - mov r0, r10 - mov r1, #0x0 - str r2, [r10, #0x2c] - bl FUN_020C1254 - ldr r1, [sp, #0x4c] - mov r0, r4 - str r1, [r10, #0x2c] - bl OS_RestoreInterrupts - mov r0, #0x1 - add sp, sp, #0x24 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020C1668: .word UNK_021D2724 -_020C166C: .word FUN_020C1308 -_020C1670: .word UNK_021D26D8 - - arm_func_start FUN_020C1674 -FUN_020C1674: ; 0x020C1674 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x44] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - bl FUN_020C0340 - mov r0, #0x0 - str r0, [r4, #0x44] - str r0, [r4, #0x48] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C169C -FUN_020C169C: ; 0x020C169C - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r4, #0x0 - mov r6, r0 - mov r12, r4 - cmp r5, #0x0 - ble _020C16DC - mov r1, #0x1 -_020C16BC: - ldrb r3, [r2, r12] - add r0, r6, r12 - strb r3, [r0, #0x4c] - ldrb r0, [r2, r12] - add r12, r12, #0x1 - cmp r12, r5 - orr r4, r4, r1, lsl r0 - blt _020C16BC -_020C16DC: - mov r0, r4 - bl FUN_020C0370 - cmp r0, #0x0 - moveq r0, #0x0 - strne r5, [r6, #0x48] - strne r4, [r6, #0x44] - movne r0, #0x1 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020C16FC -FUN_020C16FC: ; 0x020C16FC - stmdb sp!, {r4,lr} - ldr r1, _020C176C ; =UNK_021D26D4 - mov r4, r0 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - bne _020C172C - ldr r0, _020C1770 ; =UNK_021D26D8 - mov r1, #0x0 - bl FUN_020ADC74 - ldr r0, _020C176C ; =UNK_021D26D4 - mov r1, #0x1 - str r1, [r0, #0x0] -_020C172C: - ldr r1, _020C1774 ; =FUN_020C1208 - ldr r0, _020C1778 ; =FUN_020C1198 - str r1, [r4, #0x8] - str r4, [r4, #0xc] - str r0, [r4, #0x14] - str r4, [r4, #0x18] - mov r0, #0x0 - str r0, [r4, #0x44] - str r0, [r4, #0x48] - ldr r0, [r4, #0x24] - bic r0, r0, #0x1 - str r0, [r4, #0x24] - ldr r0, [r4, #0x24] - bic r0, r0, #0x2 - str r0, [r4, #0x24] - ldmia sp!, {r4,pc} - .balign 4 -_020C176C: .word UNK_021D26D4 -_020C1770: .word UNK_021D26D8 -_020C1774: .word FUN_020C1208 -_020C1778: .word FUN_020C1198 - - arm_func_start FUN_020C177C -FUN_020C177C: ; 0x020C177C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - ldr r4, [r7, #0x18] - ldr r0, [r7, #0x1c] - ldr r1, _020C186C ; =UNK_021D27A4 - mul r0, r4, r0 - ldr r3, [r7, #0xc] - ldr r2, [r7, #0x10] - ldr r1, [r1, #0x0] - add r6, r3, r0 - cmp r1, #0x0 - add r5, r2, r0 - beq _020C180C - ldr r2, _020C1870 ; =UNK_021D27A8 - mov r1, #0x14 - ldr r2, [r2, #0x0] - ldr r3, _020C1874 ; =UNK_021D2820 - mul r1, r2, r1 - str r7, [r3, r1] - add r1, r3, r1 - str r4, [r1, #0x4] - str r0, [r1, #0x8] - str r6, [r1, #0xc] - ldr r0, _020C1878 ; =UNK_021D27AC - mov r2, #0x0 - str r5, [r1, #0x10] - bl OS_SendMessage - ldr r0, _020C1870 ; =UNK_021D27A8 - ldr r1, [r0, #0x0] - add r1, r1, #0x1 - str r1, [r0, #0x0] - cmp r1, #0x8 - movge r1, #0x0 - strge r1, [r0, #0x0] - b _020C1844 -_020C180C: - mov r0, r6 - mov r1, r4 - bl DC_InvalidateRange - mov r0, r5 - mov r1, r4 - bl DC_InvalidateRange - ldr r1, [r7, #0x38] - mov r0, r6 - str r1, [sp, #0x0] - ldr r3, [r7, #0x8] - ldr r6, [r7, #0x34] - mov r1, r5 - mov r2, r4 - blx r6 -_020C1844: - ldr r0, [r7, #0x1c] - add r0, r0, #0x1 - str r0, [r7, #0x1c] - ldr r1, [r7, #0x1c] - ldr r0, [r7, #0x30] - cmp r1, r0 - movge r0, #0x0 - strge r0, [r7, #0x1c] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C186C: .word UNK_021D27A4 -_020C1870: .word UNK_021D27A8 -_020C1874: .word UNK_021D2820 -_020C1878: .word UNK_021D27AC - - arm_func_start FUN_020C187C -FUN_020C187C: ; 0x020C187C - stmdb sp!, {r4,lr} - ldr r4, _020C18F4 ; =UNK_021D27CC - ldr r0, [r4, #0x0] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - mov r0, #0x0 - str r0, [r4, #0x1c] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x14] - bl MIi_CpuClear32 - ldr r1, [r4, #0x10] - ldr r2, [r4, #0x14] - mov r0, #0x0 - bl MIi_CpuClear32 - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x14] - bl DC_FlushRange - ldr r0, [r4, #0x10] - ldr r1, [r4, #0x14] - bl DC_FlushRange - ldr r1, [r4, #0x2c] - mov r3, #0x0 - cmp r1, #0x0 - movge r0, #0x1 - movge r2, r0, lsl r1 - ldr r0, [r4, #0x24] - ldr r1, [r4, #0x28] - movlt r2, #0x0 - bl SND_StartTimer - ldmia sp!, {r4,pc} - .balign 4 -_020C18F4: .word UNK_021D27CC - - arm_func_start FUN_020C18F8 -FUN_020C18F8: - stmdb sp!, {r4,lr} - ldr r3, _020C194C ; =UNK_021D27CC - ldr r0, [r3, #0x0] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r1, [r3, #0x2c] - cmp r1, #0x0 - movge r0, #0x1 - movge r2, r0, lsl r1 - ldr r0, [r3, #0x24] - ldr r1, [r3, #0x28] - movlt r2, #0x0 - mov r3, #0x0 - bl SND_StopTimer - bl SND_GetCurrentCommandTag - mov r4, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r4 - bl SND_WaitForCommandProc - ldmia sp!, {r4,pc} - .balign 4 -_020C194C: .word UNK_021D27CC - - arm_func_start FUN_020C1950 -FUN_020C1950: ; 0x020C1950 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r4, _020C1A3C ; =UNK_021D27CC - ldr r0, [r4, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - ldr r1, [r4, #0x2c] - mov r3, #0x0 - cmp r1, #0x0 - movge r7, #0x1 - movlt r7, #0x0 - cmp r7, #0x0 - movne r0, #0x1 - movne r2, r0, lsl r1 - ldr r0, [r4, #0x24] - ldr r1, [r4, #0x28] - moveq r2, #0x0 - bl SND_StopTimer - cmp r7, #0x0 - beq _020C19DC - bl SND_GetCurrentCommandTag - mov r5, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r5 - bl SND_WaitForCommandProc - ldr r6, _020C1A40 ; =UNK_021D27AC - mov r5, #0x0 -_020C19C4: - mov r0, r6 - mov r1, r5 - mov r2, r5 - bl OS_ReceiveMessage - cmp r0, #0x0 - bne _020C19C4 -_020C19DC: - ldr r0, [r4, #0x28] - cmp r0, #0x0 - beq _020C19EC - bl FUN_020C0300 -_020C19EC: - ldr r0, [r4, #0x20] - cmp r0, #0x0 - beq _020C19FC - bl FUN_020C0340 -_020C19FC: - cmp r7, #0x0 - beq _020C1A0C - ldr r0, [r4, #0x2c] - bl FUN_020C029C -_020C1A0C: - ldr r0, [r4, #0x4] - cmp r0, #0x1 - bne _020C1A2C - mov r0, #0x0 - mov r1, r0 - mov r2, r0 - mov r3, r0 - bl SND_SetOutputSelector -_020C1A2C: - mov r0, #0x0 - str r0, [r4, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C1A3C: .word UNK_021D27CC -_020C1A40: .word UNK_021D27AC - - arm_func_start FUN_020C1A44 -FUN_020C1A44: ; 0x020C1A44 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x3c - mov r10, r3 - str r0, [sp, #0x18] - str r2, [sp, #0x20] - mov r2, #0x0 - str r1, [sp, #0x1c] - mov r0, r1 - mov r1, r10 - ldr r9, [sp, #0x6c] - ldr r8, [sp, #0x74] - str r2, [sp, #0x2c] - mvn r6, #0x0 - ldr r4, _020C1D90 ; =UNK_021D27CC - bl DC_FlushRange - ldr r0, [sp, #0x20] - mov r1, r10 - bl DC_FlushRange - ldr r0, [sp, #0x60] - ldr r1, [sp, #0x70] - cmp r0, #0x1 - moveq r7, #0x1 - ldr r0, _020C1D94 ; =0x00FFB0FF - movne r7, #0x0 - bl _s32_div_f - ldr r1, [sp, #0x84] - mov r11, r0 - cmp r1, #0x0 - beq _020C1B00 - add r1, r11, #0x10 - bic r11, r1, #0x1f - mov r2, r11, asr #0x5 - mov r0, r10 - cmp r7, #0x0 - ldr r1, [sp, #0x80] - moveq r0, r10, lsr #0x1 - str r2, [sp, #0x34] - bl _u32_div_f - ldr r1, [sp, #0x34] - mov r5, #0x20 - mul r0, r1, r0 - str r0, [sp, #0x30] - cmp r7, #0x0 - ldr r0, [sp, #0x34] - moveq r5, r5, lsr #0x1 - mul r0, r5, r0 - mov r5, r0 -_020C1B00: - cmp r7, #0x0 - movne r0, #0x0 - strne r0, [sp, #0x28] - moveq r0, #0x1 - streq r0, [sp, #0x28] - cmp r7, #0x0 - movne r0, #0x1 - strne r0, [sp, #0x24] - moveq r0, #0x0 - streq r0, [sp, #0x24] - ldr r0, [sp, #0x18] - cmp r0, #0x2 - movne r0, #0xa - strne r0, [sp, #0x2c] - ldr r0, [sp, #0x84] - cmp r0, #0x0 - beq _020C1B58 - bl FUN_020C02BC - movs r6, r0 - addmi sp, sp, #0x3c - movmi r0, #0x0 - ldmmiia sp!, {r4-r11,pc} -_020C1B58: - mov r0, #0x3 - bl FUN_020C031C - cmp r0, #0x0 - bne _020C1B84 - cmp r6, #0x0 - blt _020C1B78 - mov r0, r6 - bl FUN_020C029C -_020C1B78: - add sp, sp, #0x3c - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020C1B84: - mov r0, #0xa - bl FUN_020C0370 - cmp r0, #0x0 - bne _020C1BB8 - cmp r6, #0x0 - blt _020C1BA4 - mov r0, r6 - bl FUN_020C029C -_020C1BA4: - mov r0, #0x3 - bl FUN_020C0300 - add sp, sp, #0x3c - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020C1BB8: - mov r0, #0x0 - mov r7, r10, lsr #0x2 - str r0, [sp, #0x0] - str r7, [sp, #0x4] - str r8, [sp, #0x8] - str r0, [sp, #0xc] - cmp r9, #0x0 - movne r3, #0x1 - ldr r1, [sp, #0x78] - str r11, [sp, #0x10] - str r1, [sp, #0x14] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x1c] - moveq r3, #0x2 - mov r0, #0x1 - bl SND_SetupChannelPcm - ldr r1, [sp, #0x64] - str r9, [sp, #0x0] - str r1, [sp, #0x4] - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x24] - str r0, [sp, #0x8] - ldr r2, [sp, #0x1c] - mov r0, #0x0 - mov r3, r7 - bl SND_SetupCapture - mov r0, #0x0 - str r0, [sp, #0x0] - str r7, [sp, #0x4] - str r8, [sp, #0x8] - str r0, [sp, #0xc] - cmp r9, #0x0 - movne r3, #0x1 - ldr r2, [sp, #0x7c] - str r11, [sp, #0x10] - str r2, [sp, #0x14] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x20] - moveq r3, #0x2 - mov r0, #0x3 - bl SND_SetupChannelPcm - ldr r2, [sp, #0x64] - str r9, [sp, #0x0] - str r2, [sp, #0x4] - ldr r0, [sp, #0x68] - ldr r1, [sp, #0x24] - str r0, [sp, #0x8] - ldr r2, [sp, #0x20] - mov r3, r7 - mov r0, #0x1 - bl SND_SetupCapture - cmp r6, #0x0 - blt _020C1CA8 - ldr r2, [sp, #0x30] - ldr r3, _020C1D98 ; =FUN_020C177C - mov r1, r2 - mov r0, r6 - add r1, r1, r5 - str r4, [sp, #0x0] - bl SND_SetupAlarm -_020C1CA8: - ldr r0, [sp, #0x18] - cmp r0, #0x1 - bne _020C1CC8 - mov r0, #0x1 - mov r2, r0 - mov r3, r0 - mov r1, #0x2 - bl SND_SetOutputSelector -_020C1CC8: - cmp r6, #0x0 - movge r0, #0x1 - movge r2, r0, lsl r6 - ldr r0, [sp, #0x2c] - movlt r2, #0x0 - mov r1, #0x3 - mov r3, #0x0 - bl SND_StartTimer - mov r0, #0x1 - str r0, [r4, #0x0] - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x80] - str r0, [r4, #0x4] - mov r0, #0xa - str r0, [r4, #0x20] - ldr r0, [sp, #0x2c] - str r0, [r4, #0x24] - mov r0, #0x3 - str r0, [r4, #0x28] - ldr r0, [sp, #0x60] - str r6, [r4, #0x2c] - str r0, [r4, #0x8] - ldr r0, [sp, #0x1c] - str r0, [r4, #0xc] - ldr r0, [sp, #0x20] - str r0, [r4, #0x10] - mov r0, r10 - str r10, [r4, #0x14] - bl _u32_div_f - str r0, [r4, #0x18] - mov r1, #0x0 - str r1, [r4, #0x1c] - ldr r0, [sp, #0x80] - ldr r1, [sp, #0x84] - str r0, [r4, #0x30] - ldr r0, [sp, #0x88] - str r1, [r4, #0x34] - str r0, [r4, #0x38] - add r0, r4, #0x3c - str r8, [r4, #0x50] - bl FUN_020C3E6C - add r0, r4, #0x3c - mov r1, r8, lsl #0x8 - mov r2, #0x1 - bl FUN_020C3E40 - mov r0, #0x0 - str r0, [r4, #0x4c] - mov r0, #0x1 - add sp, sp, #0x3c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020C1D90: .word UNK_021D27CC -_020C1D94: .word 0x00FFB0FF -_020C1D98: .word FUN_020C177C - - arm_func_start FUN_020C1D9C -FUN_020C1D9C: ; 0x020C1D9C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r5, _020C1E34 ; =UNK_021D27CC - ldr r0, [r5, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r0, [r5, #0x4] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} - add r4, r5, #0x3c - mov r0, r4 - bl FUN_020C3DF4 - ldr r0, [r5, #0x4c] - cmp r0, #0x0 - beq _020C1DFC - mov r0, r4 - bl FUN_020C3DDC - cmp r0, #0x0 - beq _020C1DFC - bl FUN_020C1950 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020C1DFC: - mov r0, r4 - bl FUN_020C3E0C - ldr r1, [r5, #0x50] - mov r4, r0, asr #0x8 - cmp r4, r1 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r0, [r5, #0x24] - mov r1, r4 - mov r2, #0x0 - bl SND_SetChannelVolume - str r4, [r5, #0x50] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C1E34: .word UNK_021D27CC - - arm_func_start FUN_020C1E38 -FUN_020C1E38: ; 0x020C1E38 - ldr r1, _020C1E50 ; =UNK_021D27A4 - mov r2, #0x0 - ldr r0, _020C1E54 ; =UNK_021D27CC - str r2, [r1, #0x0] - str r2, [r0, #0x0] - bx lr - .balign 4 -_020C1E50: .word UNK_021D27A4 -_020C1E54: .word UNK_021D27CC - - arm_func_start FUN_020C1E58 -FUN_020C1E58: ; 0x020C1E58 - ldr r0, _020C1E64 ; =UNK_021D27CC - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020C1E64: .word UNK_021D27CC - - arm_func_start FUN_020C1E68 -FUN_020C1E68: ; 0x020C1E68 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020C1EA0 ; =UNK_021D27CC - ldr r1, [r0, #0x0] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, [r0, #0x4] - cmp r0, #0x1 - addne sp, sp, #0x4 - ldmneia sp!, {pc} - bl FUN_020C1950 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020C1EA0: .word UNK_021D27CC - - arm_func_start FUN_020C1EA4 -FUN_020C1EA4: ; 0x020C1EA4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x2c - mov r5, r0 - mov r4, r1 - mov r7, r2 - mov r6, r3 - bl FUN_020C1E68 - ldr r0, _020C1F50 ; =UNK_021D27CC - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addne sp, sp, #0x2c - movne r0, #0x0 - ldmneia sp!, {r4-r7,pc} - mov r1, r5 - mov r2, r4 - mov r0, #0x0 - bl MIi_CpuClear32 - mov r0, r5 - mov r1, r4 - bl DC_FlushRange - str r7, [sp, #0x0] - mov r2, #0x0 - str r2, [sp, #0x4] - str r2, [sp, #0x8] - mov r0, #0x1 - str r0, [sp, #0xc] - str r6, [sp, #0x10] - mov r1, #0x7f - str r1, [sp, #0x14] - str r2, [sp, #0x18] - ldr r2, [sp, #0x40] - str r1, [sp, #0x1c] - ldr r1, [sp, #0x44] - str r2, [sp, #0x20] - ldr r12, [sp, #0x48] - str r1, [sp, #0x24] - mov r1, r5 - mov r3, r4, lsr #0x1 - add r2, r5, r4, lsr #0x1 - str r12, [sp, #0x28] - bl FUN_020C1A44 - add sp, sp, #0x2c - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C1F50: .word UNK_021D27CC - - arm_func_start FUN_020C1F54 -FUN_020C1F54: ; 0x020C1F54 - stmdb sp!, {r4,lr} - ldr r4, _020C1FA0 ; =UNK_021D27CC - mov r2, r0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r0, [r4, #0x4] - cmp r0, #0x0 - ldmneia sp!, {r4,pc} - cmp r2, #0x0 - bne _020C1F88 - bl FUN_020C1950 - ldmia sp!, {r4,pc} -_020C1F88: - add r0, r4, #0x3c - mov r1, #0x0 - bl FUN_020C3E40 - mov r0, #0x1 - str r0, [r4, #0x4c] - ldmia sp!, {r4,pc} - .balign 4 -_020C1FA0: .word UNK_021D27CC - - arm_func_start FUN_020C1FA4 -FUN_020C1FA4: ; 0x020C1FA4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, _020C1FEC ; =UNK_021D27CC - mov r12, r0 - ldr r0, [r3, #0x0] - mov r2, r1 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, [r3, #0x4] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {pc} - add r0, r3, #0x3c - mov r1, r12, lsl #0x8 - bl FUN_020C3E40 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020C1FEC: .word UNK_021D27CC - - arm_func_start FUN_020C1FF0 -FUN_020C1FF0: ; 0x020C1FF0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x2c - mov r5, r0 - mov r0, #0x0 - mov r4, r1 - mov r7, r2 - mov r6, r3 - bl FUN_020C1F54 - ldr r0, _020C2098 ; =UNK_021D27CC - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addne sp, sp, #0x2c - movne r0, #0x0 - ldmneia sp!, {r4-r7,pc} - mov r1, r5 - mov r2, r4 - mov r0, #0x0 - bl MIi_CpuClear32 - mov r0, r5 - mov r1, r4 - bl DC_FlushRange - str r7, [sp, #0x0] - mov r0, #0x0 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - mov r1, #0x1 - str r1, [sp, #0xc] - ldr r1, [sp, #0x40] - str r6, [sp, #0x10] - str r1, [sp, #0x14] - str r0, [sp, #0x18] - mov r1, #0x7f - str r1, [sp, #0x1c] - str r0, [sp, #0x20] - str r0, [sp, #0x24] - mov r1, r5 - mov r3, r4, lsr #0x1 - add r2, r5, r4, lsr #0x1 - str r0, [sp, #0x28] - bl FUN_020C1A44 - add sp, sp, #0x2c - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C2098: .word UNK_021D27CC - - arm_func_start SDATi_SymbDtor -SDATi_SymbDtor: ; 0x020C209C - mov r0, #0x0 - str r0, [r2, #0x88] - bx lr - - arm_func_start SDATi_FatDtor -SDATi_FatDtor: ; 0x020C20A8 - mov r0, #0x0 - str r0, [r2, #0x84] - bx lr - - arm_func_start SDATi_InfoDtor -SDATi_InfoDtor: ; 0x020C20B4 - mov r0, #0x0 - str r0, [r2, #0x8c] - bx lr - - arm_func_start FUN_020C20C0 -FUN_020C20C0: ; 0x020C20C0 - ldr r2, _020C20D8 ; =UNK_021D28C0 - ldr r2, [r2, #0x0] - ldr r2, [r2, #0x84] - add r0, r2, r0, lsl #0x4 - str r1, [r0, #0x14] - bx lr - .balign 4 -_020C20D8: .word UNK_021D28C0 - - arm_func_start FUN_020C20DC -FUN_020C20DC: - ldr r1, _020C2100 ; =UNK_021D28C0 - ldr r1, [r1, #0x0] - ldr r2, [r1, #0x84] - ldr r1, [r2, #0x8] - cmp r0, r1 - movcs r0, #0x0 - addcc r0, r2, r0, lsl #0x4 - ldrcc r0, [r0, #0x14] - bx lr - .balign 4 -_020C2100: .word UNK_021D28C0 - - arm_func_start FUN_020C2104 -FUN_020C2104: - stmdb sp!, {r4-r6,lr} - ldr r4, _020C2178 ; =UNK_021D28C0 - mov r5, r2 - ldr r4, [r4, #0x0] - mov r6, r1 - ldr r2, [r4, #0x84] - ldr r1, [r2, #0x8] - cmp r0, r1 - mvncs r0, #0x0 - ldmcsia sp!, {r4-r6,pc} - add r1, r2, #0xc - add r1, r1, r0, lsl #0x4 - ldr r0, [r1, #0x4] - ldr r1, [r1, #0x0] - sub r0, r0, r3 - cmp r5, r0 - movhi r5, r0 - add r0, r4, #0x34 - add r1, r1, r3 - mov r2, #0x0 - bl FS_SeekFile - cmp r0, #0x0 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r1, r6 - mov r2, r5 - add r0, r4, #0x34 - bl FS_ReadFile - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C2178: .word UNK_021D28C0 - - arm_func_start FUN_020C217C -FUN_020C217C: ; 0x020C217C - ldr r1, _020C21A0 ; =UNK_021D28C0 - ldr r1, [r1, #0x0] - ldr r2, [r1, #0x84] - ldr r1, [r2, #0x8] - cmp r0, r1 - movcs r0, #0x0 - addcc r0, r2, r0, lsl #0x4 - ldrcc r0, [r0, #0x10] - bx lr - .balign 4 -_020C21A0: .word UNK_021D28C0 - - arm_func_start FUN_020C21A4 -FUN_020C21A4: ; 0x020C21A4 - ldr r1, _020C2204 ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0x1c] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C2204: .word UNK_021D28C0 - - arm_func_start FUN_020C2208 -FUN_020C2208: ; 0x020C2208 - ldr r1, _020C2268 ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0x18] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C2268: .word UNK_021D28C0 - - arm_func_start FUN_020C226C -FUN_020C226C: - ldr r1, _020C22CC ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0x14] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C22CC: .word UNK_021D28C0 - - arm_func_start FUN_020C22D0 -FUN_020C22D0: ; 0x020C22D0 - ldr r1, _020C2330 ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0x10] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C2330: .word UNK_021D28C0 - - arm_func_start FUN_020C2334 -FUN_020C2334: - ldr r1, _020C2394 ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0xc] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C2394: .word UNK_021D28C0 - - arm_func_start FUN_020C2398 -FUN_020C2398: - ldr r1, _020C23F8 ; =UNK_021D28C0 - ldr r3, [r1, #0x0] - ldr r2, [r3, #0x8c] - ldr r1, [r2, #0x8] - cmp r1, #0x0 - moveq r2, #0x0 - addne r2, r2, r1 - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r0, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r1, [r2, #0x0] - cmp r0, r1 - movcs r0, #0x0 - bxcs lr - add r0, r2, r0, lsl #0x2 - ldr r1, [r0, #0x4] - ldr r0, [r3, #0x8c] - cmp r1, #0x0 - moveq r0, #0x0 - addne r0, r0, r1 - bx lr - .balign 4 -_020C23F8: .word UNK_021D28C0 - - arm_func_start FUN_020C23FC -FUN_020C23FC: ; 0x020C23FC - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020C2398 - cmp r0, #0x0 - moveq r0, #0x0 - addne r0, r0, #0x4 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C241C -FUN_020C241C: ; 0x020C241C - ldr r0, _020C2428 ; =UNK_021D28C0 - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020C2428: .word UNK_021D28C0 - - arm_func_start FUN_020C242C -FUN_020C242C: ; 0x020C242C - ldr r1, _020C2440 ; =UNK_021D28C0 - ldr r2, [r1, #0x0] - str r0, [r1, #0x0] - mov r0, r2 - bx lr - .balign 4 -_020C2440: .word UNK_021D28C0 - - arm_func_start FUN_020C2444 -FUN_020C2444: ; 0x020C2444 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - mov r0, r4 - mov r1, r5 - mov r2, #0x30 - bl MIi_CpuCopy32 - ldr r0, [r5, #0x18] - mov r12, #0x0 - cmp r0, #0x0 - moveq r0, #0x0 - addne r0, r4, r0 - str r0, [r5, #0x8c] - ldr r0, [r5, #0x20] - cmp r0, #0x0 - moveq r0, #0x0 - addne r0, r4, r0 - str r0, [r5, #0x84] - ldr r0, [r5, #0x10] - cmp r0, #0x0 - moveq r0, #0x0 - addne r0, r4, r0 - str r0, [r5, #0x88] - ldr r2, [r5, #0x84] - ldr r0, [r2, #0x8] - cmp r0, #0x0 - bls _020C24F0 - mov r3, r12 - mov r1, r12 -_020C24BC: - add r2, r2, #0xc - ldr r0, [r2, r3] - add r2, r2, r3 - cmp r0, #0x0 - moveq r0, r1 - addne r0, r4, r0 - str r0, [r2, #0x8] - ldr r2, [r5, #0x84] - add r12, r12, #0x1 - ldr r0, [r2, #0x8] - add r3, r3, #0x10 - cmp r12, r0 - blo _020C24BC -_020C24F0: - mov r1, #0x0 - ldr r0, _020C2508 ; =UNK_021D28C0 - str r1, [r5, #0x30] - str r5, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C2508: .word UNK_021D28C0 - - arm_func_start SDATi_ReadHeaders -SDATi_ReadHeaders: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r6, r0 - mov r5, r1 - mov r1, #0x0 - mov r4, r2 - mov r2, r1 - add r0, r6, #0x34 - bl FS_SeekFile - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r1, r6 - add r0, r6, #0x34 - mov r2, #0x30 - bl FS_ReadFile - cmp r0, #0x30 - addne sp, sp, #0x8 - movne r0, #0x0 - ldmneia sp!, {r4-r6,pc} - cmp r5, #0x0 - beq _020C26E0 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r1, [r6, #0x1c] - ldr r2, _020C26EC ; =SDATi_InfoDtor - mov r0, r5 - mov r3, r6 - bl SDATi_AllocAndInitChunk - str r0, [r6, #0x8c] - ldr r0, [r6, #0x8c] - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x18] - add r0, r6, #0x34 - mov r2, #0x0 - bl FS_SeekFile - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x8c] - ldr r2, [r6, #0x1c] - add r0, r6, #0x34 - bl FS_ReadFile - ldr r1, [r6, #0x1c] - cmp r0, r1 - addne sp, sp, #0x8 - movne r0, #0x0 - ldmneia sp!, {r4-r6,pc} - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r1, [r6, #0x24] - ldr r2, _020C26F0 ; =SDATi_FatDtor - mov r0, r5 - mov r3, r6 - bl SDATi_AllocAndInitChunk - str r0, [r6, #0x84] - ldr r0, [r6, #0x84] - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x20] - add r0, r6, #0x34 - mov r2, #0x0 - bl FS_SeekFile - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x84] - ldr r2, [r6, #0x24] - add r0, r6, #0x34 - bl FS_ReadFile - ldr r1, [r6, #0x24] - cmp r0, r1 - addne sp, sp, #0x8 - movne r0, #0x0 - ldmneia sp!, {r4-r6,pc} - cmp r4, #0x0 - beq _020C26E0 - ldr r1, [r6, #0x14] - cmp r1, #0x0 - beq _020C26E0 - mov r4, #0x0 - ldr r2, _020C26F4 ; =SDATi_SymbDtor - mov r0, r5 - mov r3, r6 - str r4, [sp, #0x0] - bl SDATi_AllocAndInitChunk - str r0, [r6, #0x88] - ldr r0, [r6, #0x88] - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, r4 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x10] - add r0, r6, #0x34 - mov r2, r4 - bl FS_SeekFile - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, r4 - ldmeqia sp!, {r4-r6,pc} - ldr r1, [r6, #0x88] - ldr r2, [r6, #0x14] - add r0, r6, #0x34 - bl FS_ReadFile - ldr r1, [r6, #0x14] - cmp r0, r1 - addne sp, sp, #0x8 - movne r0, r4 - ldmneia sp!, {r4-r6,pc} -_020C26E0: - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C26EC: .word SDATi_InfoDtor -_020C26F0: .word SDATi_FatDtor -_020C26F4: .word SDATi_SymbDtor - - arm_func_start SDAT_Open -SDAT_Open: ; 0x020C26F8 - ; r0: &sSoundDataBuffer - ; r1: char* filename - ; r2: (&sSoundDataBuffer)->unk_0090 - ; r3: 0 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r12, #0x0 - str r12, [r6, #0x8c] - str r12, [r6, #0x84] - add r0, r6, #0x7c - mov r5, r2 - mov r4, r3 - str r12, [r6, #0x88] - bl FS_ConvertPathToFileID - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - add r0, r6, #0x34 - bl FS_InitFile - add r1, r6, #0x7c - add r0, r6, #0x34 - ldmia r1, {r1-r2} - bl FS_OpenFileFast - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r3, #0x1 - mov r0, r6 - mov r1, r5 - mov r2, r4 - str r3, [r6, #0x30] - bl SDATi_ReadHeaders - cmp r0, #0x0 - ldrne r0, _020C2770 ; =UNK_021D28C0 - strne r6, [r0, #0x0] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020C2770: .word UNK_021D28C0 - - arm_func_start FUN_020C2774 -FUN_020C2774: ; 0x020C2774 - stmdb sp!, {r4,lr} - bl SND_GetCurrentCommandTag - mov r4, r0 - mov r0, #0x1 - bl SND_FlushCommand - mov r0, r4 - bl SND_WaitForCommandProc - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C2794 -FUN_020C2794: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, [r5, #0x0] - mov r1, #0x14 - mov r2, #0x4 - bl FUN_020AE638 - movs r4, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} - bl FUN_020C2818 - mov r1, r4 - add r0, r5, #0x4 - bl FUN_020ADBE8 - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C27DC -FUN_020C27DC: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - add r0, r5, #0x4 - mov r1, #0xc - bl FUN_020ADC74 - mov r0, r5 - str r4, [r5, #0x0] - bl FUN_020C2794 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C2818 -FUN_020C2818: ; 0x020C2818 - ldr ip, _020C2824 ; =FUN_020ADC74 - mov r1, #0x0 - bx r12 - .balign 4 -_020C2824: .word FUN_020ADC74 - - arm_func_start FUN_020C2828 -FUN_020C2828: ; 0x020C2828 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r7, #0x0 - movs r9, r1 - mov r10, r0 - mov r6, r7 - bne _020C2850 - bl FUN_020C29C0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} -_020C2850: - ldrh r0, [r10, #0xc] - cmp r9, r0 - bge _020C28D8 - mov r11, r7 - add r5, r10, #0x4 - mov r4, #0x1 -_020C2868: - mov r0, r5 - mov r1, r11 - bl FUN_020ADA84 - mov r1, r7 - mov r8, r0 - bl FUN_020ADA84 - movs r7, r0 - beq _020C28C0 -_020C2888: - ldr r12, [r7, #0xc] - cmp r12, #0x0 - beq _020C28AC - ldr r1, [r7, #0x8] - ldr r2, [r7, #0x10] - ldr r3, [r7, #0x14] - add r0, r7, #0x20 - blx r12 - mov r6, r4 -_020C28AC: - mov r0, r8 - mov r1, r7 - bl FUN_020ADA84 - movs r7, r0 - bne _020C2888 -_020C28C0: - mov r0, r5 - mov r1, r8 - bl FUN_020ADAB0 - ldrh r0, [r10, #0xc] - cmp r9, r0 - blt _020C2868 -_020C28D8: - ldr r0, [r10, #0x0] - mov r1, r9 - bl FUN_020AE554 - cmp r6, #0x0 - beq _020C28F0 - bl FUN_020C2774 -_020C28F0: - ldrh r1, [r10, #0xc] - ldr r0, [r10, #0x0] - bl FUN_020AE5B0 - mov r0, r10 - bl FUN_020C2794 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - - arm_func_start FUN_020C290C -FUN_020C290C: ; 0x020C290C - stmdb sp!, {r4,lr} - mov r4, r0 - ldrh r1, [r4, #0xc] - ldr r0, [r4, #0x0] - bl FUN_020AE5B0 - cmp r0, #0x0 - mvneq r0, #0x0 - ldmeqia sp!, {r4,pc} - mov r0, r4 - bl FUN_020C2794 - cmp r0, #0x0 - ldrneh r0, [r4, #0xc] - subne r0, r0, #0x1 - ldmneia sp!, {r4,pc} - ldr r0, [r4, #0x0] - mov r1, #0x0 - bl FUN_020AE554 - mvn r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start SDATi_AllocAndInitChunk -SDATi_AllocAndInitChunk: ; 0x020C2958 - stmdb sp!, {r4-r8,lr} - mov r7, r1 - mov r8, r0 - add r0, r7, #0x1f - bic r1, r0, #0x1f - mov r6, r2 - ldr r0, [r8, #0x0] - add r1, r1, #0x20 - mov r2, #0x20 - mov r5, r3 - bl FUN_020AE638 // some allocator? - movs r4, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - add r0, r8, #0x4 - mov r1, #0x0 - bl FUN_020ADA84 - str r7, [r4, #0x8] - str r6, [r4, #0xc] - ldr r2, [sp, #0x18] - str r5, [r4, #0x10] - mov r1, r4 - str r2, [r4, #0x14] - bl FUN_020ADBE8 - add r0, r4, #0x20 - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C29C0 -FUN_020C29C0: - stmdb sp!, {r4-r10,lr} - mov r8, r0 - mov r5, #0x0 - mov r1, r5 - add r0, r8, #0x4 - bl FUN_020ADA84 - movs r7, r0 - beq _020C2A58 - add r9, r8, #0x4 - mov r10, #0x1 - mov r4, r5 -_020C29EC: - mov r0, r7 - mov r1, r4 - bl FUN_020ADA84 - movs r6, r0 - beq _020C2A38 -_020C2A00: - ldr r12, [r6, #0xc] - cmp r12, #0x0 - beq _020C2A24 - ldr r1, [r6, #0x8] - ldr r2, [r6, #0x10] - ldr r3, [r6, #0x14] - add r0, r6, #0x20 - blx r12 - mov r5, r10 -_020C2A24: - mov r0, r7 - mov r1, r6 - bl FUN_020ADA84 - movs r6, r0 - bne _020C2A00 -_020C2A38: - mov r0, r9 - mov r1, r7 - bl FUN_020ADAB0 - mov r0, r9 - mov r1, r4 - bl FUN_020ADA84 - movs r7, r0 - bne _020C29EC -_020C2A58: - ldr r0, [r8, #0x0] - mov r1, #0x3 - bl FUN_020AE600 - cmp r5, #0x0 - beq _020C2A70 - bl FUN_020C2774 -_020C2A70: - mov r0, r8 - bl FUN_020C2794 - ldmia sp!, {r4-r10,pc} - - arm_func_start FUN_020C2A7C -FUN_020C2A7C: ; 0x020C2A7C - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020C29C0 - ldr r0, [r4, #0x0] - bl thunk_FUN_020adc8c_2 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C2A94 -FUN_020C2A94: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - add r2, r0, #0x3 - add r0, r0, r1 - bic r5, r2, #0x3 - cmp r5, r0 - addhi sp, sp, #0x4 - movhi r0, #0x0 - ldmhiia sp!, {r4-r5,pc} - sub r1, r0, r5 - cmp r1, #0x10 - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {r4-r5,pc} - add r0, r5, #0x10 - sub r1, r1, #0x10 - mov r2, #0x0 - bl FUN_020AE684 - movs r4, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} - mov r0, r5 - mov r1, r4 - bl FUN_020C27DC - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, r5 - ldmneia sp!, {r4-r5,pc} - mov r0, r4 - bl thunk_FUN_020adc8c_2 - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C2B1C -FUN_020C2B1C: - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x20 - mov r8, r0 - add r0, sp, #0x8 - mov r7, r1 - mov r6, r2 - mov r5, r3 - ldr r4, [sp, #0x40] - bl SND_GetFirstInstDataPos - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - str r1, [sp, #0x0] - str r0, [sp, #0x4] - cmp r7, #0x0 - add r2, sp, #0x0 - addeq sp, sp, #0x20 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,pc} - add r1, sp, #0x10 - mov r0, r7 - bl SND_GetNextInstData - cmp r0, #0x0 - beq _020C2BD4 - add r10, sp, #0x10 - add r9, sp, #0x0 -_020C2B80: - ldrb r0, [sp, #0x10] - cmp r0, #0x1 - bne _020C2BBC - ldrh r0, [sp, #0x14] - cmp r6, r0 - bne _020C2BBC - ldrh r1, [sp, #0x12] - mov r0, r8 - mov r2, r5 - mov r3, r4 - bl FUN_020C2BE0 - cmp r0, #0x0 - addeq sp, sp, #0x20 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,pc} -_020C2BBC: - mov r0, r7 - mov r1, r10 - mov r2, r9 - bl SND_GetNextInstData - cmp r0, #0x0 - bne _020C2B80 -_020C2BD4: - mov r0, #0x1 - add sp, sp, #0x20 - ldmia sp!, {r4-r10,pc} - - arm_func_start FUN_020C2BE0 -FUN_020C2BE0: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl SND_GetWaveDataAddress - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x1 - ldmneia sp!, {r4-r9,pc} - mov r0, r7 - bl SND_GetWaveDataCount - ldr r1, [r7, #0x38] - sub r0, r0, #0x1 - add r1, r1, r6 - add r1, r7, r1, lsl #0x2 - cmp r6, r0 - ldrcc r0, [r1, #0x40] - ldr r8, [r1, #0x3c] - ldrcs r0, [r7, #0x8] - cmp r4, #0x0 - sub r9, r0, r8 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - ldr r2, _020C2CBC ; =FUN_020C2CC0 - mov r0, r4 - mov r3, r7 - add r1, r9, #0x20 - str r6, [sp, #0x0] - bl SDATi_AllocAndInitChunk - movs r4, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - mov r0, r5 - mov r1, r4 - mov r2, r9 - mov r3, r8 - bl FUN_020C2104 - cmp r9, r0 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r9,pc} - mov r0, r4 - mov r1, r9 - bl DC_StoreRange - mov r0, r7 - mov r1, r6 - mov r2, r4 - bl SND_SetWaveDataAddress - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020C2CBC: .word FUN_020C2CC0 - - arm_func_start FUN_020C2CC0 -FUN_020C2CC0: ; 0x020C2CC0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r2 - mov r7, r0 - mov r4, r3 - mov r6, r1 - mov r0, r5 - mov r1, r4 - bl SND_GetWaveDataAddress - cmp r7, r0 - bne _020C2CFC - mov r0, r5 - mov r1, r4 - mov r2, #0x0 - bl SND_SetWaveDataAddress -_020C2CFC: - mov r0, r7 - add r1, r7, r6 - bl SND_InvalidateWaveData - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020C2D10 -FUN_020C2D10: ; 0x020C2D10 - stmdb sp!, {r4,lr} - mov r1, r2 - mov r4, r0 - mov r2, r3 - bl FUN_020C2DD0 - mov r0, r4 - bl SND_DestroyWaveArc - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C2D30 -FUN_020C2D30: ; 0x020C2D30 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r1, r2 - mov r5, r0 - mov r2, r3 - bl FUN_020C2DD0 - mov r0, r5 - add r1, r5, r4 - bl SND_InvalidateWaveData - mov r0, r5 - bl SND_DestroyWaveArc - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C2D68 -FUN_020C2D68: ; 0x020C2D68 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r1, r2 - mov r5, r0 - mov r2, r3 - bl FUN_020C2DD0 - mov r0, r5 - add r1, r5, r4 - bl SND_InvalidateBankData - mov r0, r5 - bl SND_DestroyBank - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C2DA0 -FUN_020C2DA0: ; 0x020C2DA0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r1, r2 - mov r5, r0 - mov r2, r3 - bl FUN_020C2DD0 - mov r0, r5 - add r1, r5, r4 - bl SND_InvalidateSeqData - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C2DD0 -FUN_020C2DD0: ; 0x020C2DD0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - movs r5, r1 - mov r7, r0 - mov r6, r2 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - bl OS_DisableInterrupts - mov r4, r0 - mov r0, r5 - bl FUN_020C242C - mov r5, r0 - mov r0, r6 - bl FUN_020C20DC - cmp r7, r0 - bne _020C2E1C - mov r0, r6 - mov r1, #0x0 - bl FUN_020C20C0 -_020C2E1C: - mov r0, r5 - bl FUN_020C242C - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020C2E34 -FUN_020C2E34: ; 0x020C2E34 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - mov r8, r1 - mov r7, r2 - bl FUN_020C20DC - movs r6, r0 - bne _020C2F40 - ldr r1, _020C2F4C ; =UNK_021D28C4 - mov r0, r9 - mov r2, #0x3c - mov r3, #0x0 - bl FUN_020C2104 - cmp r0, #0x3c - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r9,pc} - ldr r0, _020C2F4C ; =UNK_021D28C4 - cmp r8, #0x0 - ldr r0, [r0, #0x38] - addeq sp, sp, #0x4 - mov r4, r0, lsl #0x2 - mov r0, r4, lsl #0x1 - add r5, r0, #0x3c - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - cmp r7, #0x0 - moveq r3, #0x0 - beq _020C2EB0 - bl FUN_020C241C - mov r3, r0 -_020C2EB0: - ldr r2, _020C2F50 ; =FUN_020C2D10 - mov r0, r8 - add r1, r5, #0x20 - str r9, [sp, #0x0] - bl SDATi_AllocAndInitChunk - movs r6, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} - mov r0, r9 - mov r1, r6 - add r2, r4, #0x3c - mov r3, #0x0 - bl FUN_020C2104 - add r1, r4, #0x3c - cmp r0, r1 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r9,pc} - ldr r1, [r6, #0x38] - add r0, r6, #0x3c - mov r2, r4 - add r1, r0, r1, lsl #0x2 - bl MI_CpuCopy8 - mov r2, r4 - add r0, r6, #0x3c - mov r1, #0x0 - bl MI_CpuFill8 - mov r0, r6 - mov r1, r5 - bl DC_StoreRange - cmp r7, #0x0 - beq _020C2F40 - mov r0, r9 - mov r1, r6 - bl FUN_020C20C0 -_020C2F40: - mov r0, r6 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020C2F4C: .word UNK_021D28C4 -_020C2F50: .word FUN_020C2D10 - - arm_func_start FUN_020C2F54 -FUN_020C2F54: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_020C20DC - movs r4, r0 - bne _020C2FBC - cmp r5, #0x0 - moveq r2, #0x0 - beq _020C2F88 - bl FUN_020C241C - mov r2, r0 -_020C2F88: - ldr r1, _020C2FC8 ; =FUN_020C2D30 - mov r0, r7 - mov r3, r7 - str r6, [sp, #0x0] - bl FUN_020C3134 - mov r4, r0 - cmp r5, #0x0 - beq _020C2FBC - cmp r4, #0x0 - beq _020C2FBC - mov r0, r7 - mov r1, r4 - bl FUN_020C20C0 -_020C2FBC: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C2FC8: .word FUN_020C2D30 - - arm_func_start FUN_020C2FCC -FUN_020C2FCC: ; 0x020C2FCC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_020C20DC - movs r4, r0 - bne _020C3034 - cmp r5, #0x0 - moveq r2, #0x0 - beq _020C3000 - bl FUN_020C241C - mov r2, r0 -_020C3000: - ldr r1, _020C3040 ; =FUN_020C2D68 - mov r0, r7 - mov r3, r7 - str r6, [sp, #0x0] - bl FUN_020C3134 - mov r4, r0 - cmp r5, #0x0 - beq _020C3034 - cmp r4, #0x0 - beq _020C3034 - mov r0, r7 - mov r1, r4 - bl FUN_020C20C0 -_020C3034: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C3040: .word FUN_020C2D68 - - arm_func_start FUN_020C3044 -FUN_020C3044: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_020C20DC - movs r4, r0 - bne _020C30AC - cmp r5, #0x0 - moveq r2, #0x0 - beq _020C3078 - bl FUN_020C241C - mov r2, r0 -_020C3078: - ldr r1, _020C30B8 ; =FUN_020C2DA0 - mov r0, r7 - mov r3, r7 - str r6, [sp, #0x0] - bl FUN_020C3134 - mov r4, r0 - cmp r5, #0x0 - beq _020C30AC - cmp r4, #0x0 - beq _020C30AC - mov r0, r7 - mov r1, r4 - bl FUN_020C20C0 -_020C30AC: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C30B8: .word FUN_020C2DA0 - - arm_func_start FUN_020C30BC -FUN_020C30BC: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_020C20DC - movs r4, r0 - bne _020C3124 - cmp r5, #0x0 - moveq r2, #0x0 - beq _020C30F0 - bl FUN_020C241C - mov r2, r0 -_020C30F0: - ldr r1, _020C3130 ; =FUN_020C2DA0 - mov r0, r7 - mov r3, r7 - str r6, [sp, #0x0] - bl FUN_020C3134 - mov r4, r0 - cmp r5, #0x0 - beq _020C3124 - cmp r4, #0x0 - beq _020C3124 - mov r0, r7 - mov r1, r4 - bl FUN_020C20C0 -_020C3124: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C3130: .word FUN_020C2DA0 - - arm_func_start FUN_020C3134 -FUN_020C3134: ; 0x020C3134 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r4, r3 - bl FUN_020C217C - movs r5, r0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - ldr r0, [sp, #0x20] - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - mov r2, r7 - mov r3, r6 - add r1, r5, #0x20 - str r4, [sp, #0x0] - bl SDATi_AllocAndInitChunk - movs r4, r0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - mov r0, r8 - mov r1, r4 - mov r2, r5 - mov r3, #0x0 - bl FUN_020C2104 - cmp r5, r0 - addne sp, sp, #0x8 - movne r0, #0x0 - ldmneia sp!, {r4-r8,pc} - mov r0, r4 - mov r1, r5 - bl DC_StoreRange - mov r0, r4 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C31D4 -FUN_020C31D4: - stmdb sp!, {r4-r6,lr} - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl FUN_020C226C - cmp r0, #0x0 - moveq r0, #0x5 - ldmeqia sp!, {r4-r6,pc} - ands r1, r6, #0x4 - beq _020C324C - ldrb r1, [r0, #0x3] - ands r1, r1, #0x1 - beq _020C3224 - ldr r0, [r0, #0x0] - mov r1, r5 - mov r0, r0, lsl #0x8 - mov r2, r4 - mov r0, r0, lsr #0x8 - bl FUN_020C2E34 - b _020C323C -_020C3224: - ldr r0, [r0, #0x0] - mov r1, r5 - mov r0, r0, lsl #0x8 - mov r2, r4 - mov r0, r0, lsr #0x8 - bl FUN_020C2F54 -_020C323C: - cmp r0, #0x0 - bne _020C325C - mov r0, #0x9 - ldmia sp!, {r4-r6,pc} -_020C324C: - ldr r0, [r0, #0x0] - mov r0, r0, lsl #0x8 - mov r0, r0, lsr #0x8 - bl FUN_020C20DC -_020C325C: - ldr r1, [sp, #0x10] - cmp r1, #0x0 - strne r0, [r1, #0x0] - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020C3270 -FUN_020C3270: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r10, r1 - mov r9, r2 - mov r11, r3 - bl FUN_020C22D0 - movs r8, r0 - addeq sp, sp, #0xc - moveq r0, #0x4 - ldmeqia sp!, {r4-r11,pc} - ands r0, r10, #0x2 - beq _020C32C4 - ldr r0, [r8, #0x0] - mov r1, r9 - mov r2, r11 - bl FUN_020C2FCC - movs r7, r0 - bne _020C32D0 - add sp, sp, #0xc - mov r0, #0x8 - ldmia sp!, {r4-r11,pc} -_020C32C4: - ldr r0, [r8, #0x0] - bl FUN_020C20DC - mov r7, r0 -_020C32D0: - and r5, r10, #0x4 - mov r6, #0x0 -_020C32D8: - add r0, r8, r6, lsl #0x1 - ldrh r0, [r0, #0x4] - ldr r1, _020C33B4 ; =0x0000FFFF - cmp r0, r1 - beq _020C3390 - bl FUN_020C226C - movs r4, r0 - addeq sp, sp, #0xc - moveq r0, #0x5 - ldmeqia sp!, {r4-r11,pc} - add r0, sp, #0x4 - str r0, [sp, #0x0] - add r0, r8, r6, lsl #0x1 - ldrh r0, [r0, #0x4] - mov r1, r10 - mov r2, r9 - mov r3, r11 - bl FUN_020C31D4 - cmp r0, #0x0 - addne sp, sp, #0xc - ldmneia sp!, {r4-r11,pc} - ldrb r0, [r4, #0x3] - ands r0, r0, #0x1 - beq _020C3370 - cmp r5, #0x0 - beq _020C3370 - str r9, [sp, #0x0] - ldr r1, [r4, #0x0] - ldr r0, [sp, #0x4] - mov r3, r1, lsl #0x8 - mov r1, r7 - mov r2, r6 - mov r3, r3, lsr #0x8 - bl FUN_020C2B1C - cmp r0, #0x0 - addeq sp, sp, #0xc - moveq r0, #0x9 - ldmeqia sp!, {r4-r11,pc} -_020C3370: - cmp r7, #0x0 - beq _020C3390 - ldr r2, [sp, #0x4] - cmp r2, #0x0 - beq _020C3390 - mov r0, r7 - mov r1, r6 - bl SND_AssignWaveArc -_020C3390: - add r6, r6, #0x1 - cmp r6, #0x4 - blt _020C32D8 - ldr r0, [sp, #0x30] - cmp r0, #0x0 - strne r7, [r0, #0x0] - mov r0, #0x0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020C33B4: .word 0x0000FFFF - - arm_func_start FUN_020C33B8 -FUN_020C33B8: - stmdb sp!, {r4-r6,lr} - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl FUN_020C2334 - cmp r0, #0x0 - moveq r0, #0x3 - ldmeqia sp!, {r4-r6,pc} - ands r1, r6, #0x8 - beq _020C3400 - ldr r0, [r0, #0x0] - mov r1, r5 - mov r2, r4 - bl FUN_020C3044 - cmp r0, #0x0 - bne _020C3408 - mov r0, #0x7 - ldmia sp!, {r4-r6,pc} -_020C3400: - ldr r0, [r0, #0x0] - bl FUN_020C20DC -_020C3408: - ldr r1, [sp, #0x10] - cmp r1, #0x0 - strne r0, [r1, #0x0] - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020C341C -FUN_020C341C: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl FUN_020C2398 - movs r4, r0 - addeq sp, sp, #0x4 - moveq r0, #0x2 - ldmeqia sp!, {r4-r7,pc} - mov r0, #0x0 - str r0, [sp, #0x0] - ldrh r0, [r4, #0x4] - mov r1, r7 - mov r2, r6 - mov r3, r5 - bl FUN_020C3270 - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,pc} - ands r0, r7, #0x1 - beq _020C3498 - ldr r0, [r4, #0x0] - mov r1, r6 - mov r2, r5 - bl FUN_020C30BC - cmp r0, #0x0 - bne _020C34A0 - add sp, sp, #0x4 - mov r0, #0x6 - ldmia sp!, {r4-r7,pc} -_020C3498: - ldr r0, [r4, #0x0] - bl FUN_020C20DC -_020C34A0: - ldr r1, [sp, #0x18] - cmp r1, #0x0 - strne r0, [r1, #0x0] - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020C34B8 -FUN_020C34B8: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r9, r1 - bl FUN_020C21A4 - movs r8, r0 - addeq sp, sp, #0xc - moveq r0, #0x1 - ldmeqia sp!, {r4-r11,pc} - ldr r0, [r8, #0x0] - mov r7, #0x0 - cmp r0, #0x0 - bls _020C35D4 - add r6, r8, #0x4 - str r7, [sp, #0x4] - mov r11, r7 - mov r10, r7 - mov r5, r7 - mov r4, #0x1 -_020C3500: - ldrb r0, [r6, #0x0] - cmp r0, #0x3 - addls pc, pc, r0, lsl #0x2 - b _020C35C0 - ; Jump table - b _020C3520 ; case 0 - b _020C3570 ; case 1 - b _020C3598 ; case 2 - b _020C3548 ; case 3 -_020C3520: - str r5, [sp, #0x0] - ldrb r1, [r6, #0x1] - ldr r0, [r6, #0x4] - mov r2, r9 - mov r3, r4 - bl FUN_020C341C - cmp r0, #0x0 - beq _020C35C0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} -_020C3548: - str r10, [sp, #0x0] - ldrb r1, [r6, #0x1] - ldr r0, [r6, #0x4] - mov r2, r9 - mov r3, r4 - bl FUN_020C33B8 - cmp r0, #0x0 - beq _020C35C0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} -_020C3570: - str r11, [sp, #0x0] - ldrb r1, [r6, #0x1] - ldr r0, [r6, #0x4] - mov r2, r9 - mov r3, r4 - bl FUN_020C3270 - cmp r0, #0x0 - beq _020C35C0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} -_020C3598: - ldr r0, [sp, #0x4] - mov r2, r9 - str r0, [sp, #0x0] - ldrb r1, [r6, #0x1] - ldr r0, [r6, #0x4] - mov r3, r4 - bl FUN_020C31D4 - cmp r0, #0x0 - addne sp, sp, #0xc - ldmneia sp!, {r4-r11,pc} -_020C35C0: - ldr r0, [r8, #0x0] - add r7, r7, #0x1 - cmp r7, r0 - add r6, r6, #0x8 - blo _020C3500 -_020C35D4: - mov r0, #0x0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - - arm_func_start FUN_020C35E0 -FUN_020C35E0: ; 0x020C35E0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r12, #0x0 - mov r3, #0x1 - str r12, [sp, #0x0] - bl FUN_020C341C - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C360C -FUN_020C360C: ; 0x020C360C - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, r1 - mov r12, #0x0 - mov r1, #0xff - mov r3, #0x1 - str r12, [sp, #0x0] - bl FUN_020C31D4 - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C3640 -FUN_020C3640: ; 0x020C3640 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, r1 - mov r12, #0x0 - mov r1, #0xff - mov r3, #0x1 - str r12, [sp, #0x0] - bl FUN_020C3270 - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C3674 -FUN_020C3674: ; 0x020C3674 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, r1 - mov r12, #0x0 - mov r1, #0xff - mov r3, #0x1 - str r12, [sp, #0x0] - bl FUN_020C341C - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C36A8 -FUN_020C36A8: ; 0x020C36A8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020C34B8 - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C36C8 -FUN_020C36C8: ; 0x020C36C8 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r7, r2 - mov r2, r3 - ldr r6, [sp, #0x20] - mov r4, r0 - mov r8, r1 - bl FUN_020C0AF4 - movs r5, r0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - mov r0, r8 - mov r1, r5 - bl FUN_020C09B0 - add r12, sp, #0x4 - mov r2, r0 - mov r0, r7 - mov r1, #0x6 - mov r3, #0x0 - str r12, [sp, #0x0] - bl FUN_020C3270 - cmp r0, #0x0 - beq _020C373C - mov r0, r5 - bl thunk_FUN_020c077c - add sp, sp, #0x8 - mov r0, #0x0 - ldmia sp!, {r4-r8,pc} -_020C373C: - ldr r12, [sp, #0x24] - ldr r2, [r6, #0x0] - ldr r1, [r12, #0x18] - ldr r3, [sp, #0x4] - mov r0, r5 - add r1, r12, r1 - bl FUN_020C0A90 - ldrb r1, [r6, #0x6] - mov r0, r4 - bl FUN_020C0F30 - ldrb r1, [r6, #0x7] - mov r0, r4 - bl FUN_020C0ECC - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x2c] - mov r0, r4 - bl FUN_020C0E38 - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C378C -FUN_020C378C: ; 0x020C378C - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - mov r8, r2 - mov r2, r3 - ldr r5, [sp, #0x28] - mov r6, r0 - mov r7, r1 - bl FUN_020C0AF4 - movs r4, r0 - addeq sp, sp, #0x10 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - mov r0, r7 - mov r1, r4 - bl FUN_020C09B0 - mov r7, r0 - add r12, sp, #0x8 - mov r0, r8 - mov r2, r7 - mov r1, #0x6 - mov r3, #0x0 - str r12, [sp, #0x0] - bl FUN_020C3270 - cmp r0, #0x0 - beq _020C3804 - mov r0, r4 - bl thunk_FUN_020c077c - add sp, sp, #0x10 - mov r0, #0x0 - ldmia sp!, {r4-r8,pc} -_020C3804: - ldr r0, [sp, #0x2c] - add r12, sp, #0x4 - mov r2, r7 - mov r1, #0x1 - mov r3, #0x0 - str r12, [sp, #0x0] - bl FUN_020C341C - cmp r0, #0x0 - beq _020C383C - mov r0, r4 - bl thunk_FUN_020c077c - add sp, sp, #0x10 - mov r0, #0x0 - ldmia sp!, {r4-r8,pc} -_020C383C: - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x8] - ldr r1, [r2, #0x18] - mov r0, r4 - add r1, r2, r1 - mov r2, #0x0 - bl FUN_020C0A90 - ldrb r1, [r5, #0x6] - mov r0, r6 - bl FUN_020C0F30 - ldrb r1, [r5, #0x7] - mov r0, r6 - bl FUN_020C0ECC - ldr r1, [sp, #0x2c] - mov r0, r6 - bl FUN_020C0E60 - mov r0, #0x1 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C3888 -FUN_020C3888: ; 0x020C3888 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r6, r1 - mov r7, r0 - mov r0, r6 - mov r5, r2 - bl FUN_020C2334 - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - ldr r0, [r0, #0x0] - bl FUN_020C20DC - movs r4, r0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - mov r1, r5 - bl FUN_020C3D9C - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - str r0, [sp, #0x0] - str r4, [sp, #0x4] - str r6, [sp, #0x8] - str r5, [sp, #0xc] - ldrb r1, [r0, #0x9] - ldrh r2, [r0, #0x4] - ldrb r3, [r0, #0x8] - mov r0, r7 - bl FUN_020C36C8 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020C3910 -FUN_020C3910: ; 0x020C3910 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - mov r7, r0 - ldr r0, [sp, #0x20] - mov r6, r1 - mov r5, r2 - mov r4, r3 - bl FUN_020C2398 - cmp r0, #0x0 - addeq sp, sp, #0xc - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} - cmp r4, #0x0 - ldrltb r4, [r0, #0x8] - cmp r5, #0x0 - ldrlth r5, [r0, #0x4] - cmp r6, #0x0 - ldrltb r6, [r0, #0x9] - ldr r12, [sp, #0x20] - mov r2, r5 - str r0, [sp, #0x0] - mov r0, r7 - mov r1, r6 - mov r3, r4 - str r12, [sp, #0x4] - bl FUN_020C378C - add sp, sp, #0xc - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020C3980 -FUN_020C3980: ; 0x020C3980 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r4, r1 - mov r5, r0 - mov r0, r4 - bl FUN_020C2398 - cmp r0, #0x0 - addeq sp, sp, #0xc - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} - str r0, [sp, #0x0] - str r4, [sp, #0x4] - ldrb r1, [r0, #0x9] - ldrh r2, [r0, #0x4] - ldrb r3, [r0, #0x8] - mov r0, r5 - bl FUN_020C378C - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020C39CC -FUN_020C39CC: ; 0x020C39CC - stmdb sp!, {r4-r8,lr} - mov r6, r0 - bl FUN_020C241C - mov r5, #0x0 - mov r7, r5 -_020C39E0: - mov r0, r5 - bl FUN_020C2208 - movs r4, r0 - beq _020C3A58 - ldrb r1, [r4, #0x0] - mov r0, r5 - bl FUN_020C1160 - ldrh r1, [r4, #0x2] - mov r0, r5 - bl FUN_020C1148 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _020C3A58 - cmp r6, #0x0 - beq _020C3A58 - ldrb r0, [r4, #0x0] - mov r8, r7 - cmp r0, #0x0 - ble _020C3A58 -_020C3A2C: - ldr r2, [r4, #0x4] - mov r0, r5 - mov r1, r6 - bl FUN_020C10B4 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} - ldrb r0, [r4, #0x0] - add r8, r8, #0x1 - cmp r8, r0 - blt _020C3A2C -_020C3A58: - add r5, r5, #0x1 - cmp r5, #0x20 - blt _020C39E0 - mov r0, #0x1 - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C3A6C -FUN_020C3A6C: ; 0x020C3A6C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl OS_DisableInterrupts - mov r4, r0 - ldr r0, _020C3A9C ; =UNK_021D2904 - mov r1, r5 - bl FUN_020ADBE8 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020C3A9C: .word UNK_021D2904 - - arm_func_start FUN_020C3AA0 -FUN_020C3AA0: ; 0x020C3AA0 - stmdb sp!, {r4-r8,lr} - mov r8, r0 - mov r7, r1 - bl OS_DisableInterrupts - mov r6, r0 - mov r0, r8 - mov r1, #0x0 - bl FUN_020ADA98 - movs r5, r0 - beq _020C3B04 -_020C3AC8: - mov r0, r8 - mov r1, r5 - bl FUN_020ADA98 - ldr r1, [r5, #0x8] - mov r4, r0 - cmp r1, r7 - bne _020C3AF8 - mov r0, r8 - mov r1, r5 - bl FUN_020ADAB0 - mov r0, r5 - bl FUN_020C3A6C -_020C3AF8: - mov r5, r4 - cmp r4, #0x0 - bne _020C3AC8 -_020C3B04: - mov r0, r6 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r8,pc} - - arm_func_start FUN_020C3B10 -FUN_020C3B10: ; 0x020C3B10 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, [r0, #0x120] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - sub r1, r1, #0x1 - str r1, [r0, #0x120] - ldr r1, [r0, #0x120] - cmp r1, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {pc} - bl FUN_020C1674 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020C3B4C -FUN_020C3B4C: ; 0x020C3B4C - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r1, [r4, #0x110] - mov r1, r1, lsl #0x1f - movs r1, r1, asr #0x1f - ldmeqia sp!, {r4,pc} - bl FUN_020C3B10 - ldr r1, [r4, #0x164] - mov r0, r4 - blx r1 - ldr r0, _020C3BA8 ; =UNK_021D2DF0 - mov r1, r4 - bl FUN_020C3AA0 - ldr r0, _020C3BAC ; =UNK_021D2900 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020C3B9C - mov r1, r4 - add r0, r0, #0x4e0 - bl FUN_020C3AA0 -_020C3B9C: - mov r0, r4 - bl FUN_020C3C4C - ldmia sp!, {r4,pc} - .balign 4 -_020C3BA8: .word UNK_021D2DF0 -_020C3BAC: .word UNK_021D2900 - - arm_func_start FUN_020C3BB0 -FUN_020C3BB0: ; 0x020C3BB0 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, _020C3C40 ; =UNK_021D2DD8 - bl OS_LockMutex - ldr r0, _020C3C44 ; =UNK_021D2900 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _020C3BDC - ldr r0, _020C3C48 ; =0x000004C8 - add r0, r1, r0 - bl OS_LockMutex -_020C3BDC: - ldr r0, [r4, #0x110] - mov r0, r0, lsl #0x1e - movs r0, r0, asr #0x1f - beq _020C3BF4 - mov r0, r4 - bl FUN_020C1430 -_020C3BF4: - ldr r0, [r4, #0x110] - mov r0, r0, lsl #0x1f - movs r0, r0, asr #0x1f - beq _020C3C10 - ldr r1, [r4, #0x16c] - mov r0, r4 - blx r1 -_020C3C10: - mov r0, r4 - bl FUN_020C3B4C - ldr r0, _020C3C40 ; =UNK_021D2DD8 - bl OS_UnlockMutex - ldr r0, _020C3C44 ; =UNK_021D2900 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - ldmeqia sp!, {r4,pc} - ldr r0, _020C3C48 ; =0x000004C8 - add r0, r1, r0 - bl OS_UnlockMutex - ldmia sp!, {r4,pc} - .balign 4 -_020C3C40: .word UNK_021D2DD8 -_020C3C44: .word UNK_021D2900 -_020C3C48: .word 0x000004C8 - - arm_func_start FUN_020C3C4C -FUN_020C3C4C: ; 0x020C3C4C - ldr r2, [r0, #0x14c] - cmp r2, #0x0 - movne r1, #0x0 - strne r1, [r2, #0x0] - strne r1, [r0, #0x14c] - ldr r1, [r0, #0x110] - bic r1, r1, #0x1 - str r1, [r0, #0x110] - ldr r1, [r0, #0x110] - bic r1, r1, #0x4 - str r1, [r0, #0x110] - ldr r1, [r0, #0x110] - bic r1, r1, #0x2 - str r1, [r0, #0x110] - bx lr - - arm_func_start FUN_020C3C88 -FUN_020C3C88: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r5, _020C3D94 ; =UNK_021D2DFC - mov r7, #0x0 - ldr r4, _020C3D98 ; =SNDi_DecibelTable -_020C3C9C: - ldr r1, [r5, #0x110] - mov r0, r1, lsl #0x1f - movs r0, r0, asr #0x1f - beq _020C3D7C - ldr r0, [r5, #0x114] - cmp r0, #0x0 - bne _020C3CC4 - mov r0, r5 - bl FUN_020C3BB0 - b _020C3D7C -_020C3CC4: - mov r0, r1, lsl #0x1d - movs r0, r0, asr #0x1f - beq _020C3CFC - ldr r0, [r5, #0x118] - cmp r0, #0x0 - beq _020C3CFC - mov r0, r5 - bl FUN_020C1458 - ldr r0, [r5, #0x110] - orr r0, r0, #0x2 - str r0, [r5, #0x110] - ldr r0, [r5, #0x110] - bic r0, r0, #0x4 - str r0, [r5, #0x110] -_020C3CFC: - ldr r0, [r5, #0x110] - mov r0, r0, lsl #0x1e - movs r0, r0, asr #0x1f - beq _020C3D7C - add r0, r5, #0xe8 - bl FUN_020C3DF4 - ldr r1, [r5, #0x154] - add r0, r5, #0xe8 - mov r1, r1, lsl #0x1 - ldrsh r6, [r4, r1] - bl FUN_020C3E0C - mov r0, r0, asr #0x8 - mov r0, r0, lsl #0x1 - ldrsh r1, [r4, r0] - ldr r0, [r5, #0x158] - add r6, r1, r6 - cmp r6, r0 - beq _020C3D54 - mov r0, r5 - mov r1, r6 - bl FUN_020C13C4 - str r6, [r5, #0x158] -_020C3D54: - ldr r0, [r5, #0x110] - mov r0, r0, lsl #0x1c - movs r0, r0, asr #0x1f - beq _020C3D7C - add r0, r5, #0xe8 - bl FUN_020C3DDC - cmp r0, #0x0 - beq _020C3D7C - mov r0, r5 - bl FUN_020C3BB0 -_020C3D7C: - add r7, r7, #0x1 - cmp r7, #0x4 - add r5, r5, #0x170 - blt _020C3C9C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020C3D94: .word UNK_021D2DFC -_020C3D98: .word SNDi_DecibelTable - - arm_func_start FUN_020C3D9C -FUN_020C3D9C: - cmp r1, #0x0 - movlt r0, #0x0 - bxlt lr - ldr r2, [r0, #0x1c] - cmp r1, r2 - movcs r0, #0x0 - bxcs lr - mov r2, #0xc - mul r2, r1, r2 - add r3, r0, #0x20 - ldr r1, [r3, r2] - mvn r0, #0x0 - cmp r1, r0 - add r0, r3, r2 - moveq r0, #0x0 - bx lr - - arm_func_start FUN_020C3DDC -FUN_020C3DDC: - ldr r1, [r0, #0x8] - ldr r0, [r0, #0xc] - cmp r1, r0 - movge r0, #0x1 - movlt r0, #0x0 - bx lr - - arm_func_start FUN_020C3DF4 -FUN_020C3DF4: ; 0x020C3DF4 - ldr r2, [r0, #0x8] - ldr r1, [r0, #0xc] - cmp r2, r1 - addlt r1, r2, #0x1 - strlt r1, [r0, #0x8] - bx lr - - arm_func_start FUN_020C3E0C -FUN_020C3E0C: - stmdb sp!, {r4,lr} - ldr r1, [r0, #0xc] - ldr r2, [r0, #0x8] - cmp r2, r1 - ldrge r0, [r0, #0x4] - ldmgeia sp!, {r4,pc} - ldr r4, [r0, #0x0] - ldr r0, [r0, #0x4] - sub r0, r0, r4 - mul r0, r2, r0 - bl _s32_div_f - add r0, r4, r0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020C3E40 -FUN_020C3E40: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_020C3E0C - str r0, [r6, #0x0] - str r5, [r6, #0x4] - str r4, [r6, #0xc] - mov r0, #0x0 - str r0, [r6, #0x8] - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020C3E6C -FUN_020C3E6C: ; 0x020C3E6C - mov r2, #0x0 - str r2, [r0, #0x4] - ldr r1, [r0, #0x4] - str r1, [r0, #0x0] - str r2, [r0, #0xc] - ldr r1, [r0, #0xc] - str r1, [r0, #0x8] - bx lr diff --git a/arm9/asm/unk_020ADA84.s b/arm9/asm/unk_020ADA84.s deleted file mode 100644 index 21bde8521..000000000 --- a/arm9/asm/unk_020ADA84.s +++ /dev/null @@ -1,21554 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern SNDi_DecibelTable - .extern GXi_DmaId - .extern FUN_020ADCA4 - .extern FUN_020ADC8C - - .section .rodata - - ; static const in function - .global UNK_020FF7D4 -UNK_020FF7D4: ; 0x020FF7D4 - .word FUN_020AF2B4 - .word FUN_020AF288 - .word FUN_020AF25C - .word FUN_020AF230 - .word GX_LoadBG0Char_2 - .word GX_LoadBG1Char_2 - .word GX_LoadBG2Char_2 - .word GX_LoadBG3Char_2 - .word GX_LoadBG0Scr_2 - .word GX_LoadBG1Scr_2 - .word GX_LoadBG2Scr_2 - .word GX_LoadBG3Scr_2 - .word GX_LoadBG2Scr_3 - .word GX_LoadBG3Scr_3 - .word GX_LoadOBJPltt_2 - .word GX_LoadBGPltt_2 - .word FUN_020AF174 - .word FUN_020AF148 - .word GX_LoadOAM_2 - .word GX_LoadOBJ_2 - .word GXS_LoadBG0Char_2 - .word GXS_LoadBG1Char_2 - .word GXS_LoadBG2Char_2 - .word GXS_LoadBG3Char_2 - .word GXS_LoadBG0Scr_2 - .word GXS_LoadBG1Scr_2 - .word GXS_LoadBG2Scr_2 - .word GXS_LoadBG3Scr_2 - .word GXS_LoadBG2Scr_3 - .word GXS_LoadBG3Scr_3 - .word GXS_LoadOBJPltt_2 - .word GXS_LoadBGPltt_2 - .word FUN_020AF074 - .word FUN_020AF048 - .word GXS_LoadOAM_2 - .word GXS_LoadOBJ_2 - - ; const initializer - .global UNK_020FF864 -UNK_020FF864: ; 0x020FF864 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_020FF894 -UNK_020FF894: ; 0x020FF894 - .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 - .byte 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 - - .global UNK_020FF8AC -UNK_020FF8AC: ; 0x020FF8AC - .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 - .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 - - ; static const in function - .global UNK_020FF8C4 -UNK_020FF8C4: ; 0x020FF8C4 - .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 - - ; static const in function - .global UNK_020FF8D0 -UNK_020FF8D0: ; 0x020FF8D0 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - - ; static const in function - .global UNK_020FF8D8 -UNK_020FF8D8: ; 0x020FF8D8 - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - - .global UNK_020FF8F8 -UNK_020FF8F8: ; 0x020FF8F8 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK_020FF928 -UNK_020FF928: ; 0x020FF928 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - - .global UNK_020FF958 -UNK_020FF958: ; 0x020FF958 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - ; static const in function - .global UNK_020FF970 -UNK_020FF970: ; 0x020FF970 - .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01 - .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03 - - ; static const in function - .global UNK_020FF990 -UNK_020FF990: ; 0x020FF990 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0 - - ; static const in function - .global UNK_020FF9D0 -UNK_020FF9D0: ; 0x020FF9D0 - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F - .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F - - ; static const in function - .global UNK_020FF9F0 -UNK_020FF9F0: ; 0x020FF9F0 - .byte 0x04, 0x05, 0x07, 0x08 - .byte 0x03, 0x05, 0x06, 0x08 - .byte 0x03, 0x04, 0x06, 0x07 - .byte 0x01, 0x02, 0x07, 0x08 - .byte 0x00, 0x02, 0x06, 0x08 - .byte 0x00, 0x01, 0x06, 0x07 - .byte 0x01, 0x02, 0x04, 0x05 - .byte 0x00, 0x02, 0x03, 0x05 - .byte 0x00, 0x01, 0x03, 0x04 - - ; static const in function - .global UNK_020FFA14 -UNK_020FFA14: ; 0x020FFA14 - .byte 0x04, 0x05, 0x07, 0x08 - .byte 0x03, 0x05, 0x06, 0x08 - .byte 0x03, 0x04, 0x06, 0x07 - .byte 0x01, 0x02, 0x07, 0x08 - .byte 0x00, 0x02, 0x06, 0x08 - .byte 0x00, 0x01, 0x06, 0x07 - .byte 0x01, 0x02, 0x04, 0x05 - .byte 0x00, 0x02, 0x03, 0x05 - .byte 0x00, 0x01, 0x03, 0x04 - - .section .data - - .global UNK_021064B8 -UNK_021064B8: ; 0x021064B8 - .word FUN_020AE8B4 - - .global UNK_021064BC -UNK_021064BC: ; 0x021064BC - .word FUN_020AE8AC - - .global UNK_021064C0 -UNK_021064C0: ; 0x021064C0 - .word FUN_020AE8C4 - - .global UNK_021064C4 -UNK_021064C4: ; 0x021064C4 - .word FUN_020AE8BC - - .global UNK_021064C8 -UNK_021064C8: ; 0x021064C8 - .word UNK_021064E4 - .word UNK_0210652C - - .global UNK_021064D0 -UNK_021064D0: ; 0x021064D0 - .word UNK_02106544 - .word UNK_0210652C - .word UNK_021064E4 - .word UNK_02106514 - .word UNK_021064FC - - .global UNK_021064E4 -UNK_021064E4: ; 0x021064E4 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 - - .global UNK_021064FC -UNK_021064FC: ; 0x021064FC - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00 - - .global UNK_02106514 -UNK_02106514: ; 0x02106514 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x00 - - .global UNK_0210652C -UNK_0210652C: ; 0x0210652C - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00 - - .global UNK_02106544 -UNK_02106544: ; 0x02106544 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x06, 0x00 - - .global UNK_0210655C -UNK_0210655C: ; 0x0210655C - .word FUN_020B1088 - .word FUN_020B1098 - .word 0 - .word 0 - .word 0 - - .global UNK_02106570 -UNK_02106570: ; 0x02106570 - .short -2 - - .balign 4, 0 - .global UNK_02106574 -UNK_02106574: ; 0x02106574 - .word -1 - - .global UNK_02106578 -UNK_02106578: ; 0x02106578 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106590 -UNK_02106590: ; 0x02106590 - .byte 0x00, 0xF0, 0xFF, 0xFF - - .global UNK_02106594 -UNK_02106594: ; 0x02106594 - .byte 0x05, 0x00, 0x00, 0x00 - - .global UNK_02106598 -UNK_02106598: ; 0x02106598 - .word FUN_020BE5A0 - - .global UNK_0210659C -UNK_0210659C: ; 0x0210659C - .word FUN_020BDA70 - - .global UNK_021065A0 -UNK_021065A0: ; 0x021065A0 - .word FUN_020BDF38 - - .global UNK_021065A4 -UNK_021065A4: ; 0x021065A4 - .word FUN_020BE334 - - .global UNK_021065A8 -UNK_021065A8: ; 0x021065A8 - .word FUN_020BDB40 - - .global UNK_021065AC -UNK_021065AC: ; 0x021065AC - .word FUN_020B8640 - - .global UNK_021065B0 -UNK_021065B0: ; 0x021065B0 - .word FUN_020B86B0 - - .global UNK_021065B4 -UNK_021065B4: ; 0x021065B4 - .word FUN_020B8A08 - - .global UNK_021065B8 -UNK_021065B8: ; 0x021065B8 - .byte 0x4D, 0x00, 0x41, 0x4D - - .global UNK_021065BC -UNK_021065BC: ; 0x021065BC - .word FUN_020BDC0C - .byte 0x4D, 0x00, 0x50, 0x54 - .word FUN_020BE4F0 - .byte 0x4D, 0x00, 0x41, 0x54 - .word FUN_020BDF84 - .byte 0x56, 0x00, 0x41, 0x56 - .word FUN_020BE5E0 - .byte 0x4A, 0x00, 0x41, 0x43 - .word FUN_020BDAB4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106608 -UNK_02106608: ; 0x02106608 - .word FUN_020BE668 - .word FUN_020BEE3C - .word FUN_020BF2FC - - .global UNK_02106614 -UNK_02106614: ; 0x02106614 - .word FUN_020BE62C - .word FUN_020BECEC - .word FUN_020BF0D4 - - .global UNK_02106620 -UNK_02106620: ; 0x02106620 - .word FUN_020BE6E4 - .word FUN_020BEF10 - .word FUN_020BF42C - .word FUN_020BFA9C - - .global UNK_02106630 -UNK_02106630: ; 0x02106630 - .byte 0x2A, 0x00, 0x00, 0x00 - - .global UNK_02106634 -UNK_02106634: ; 0x02106634 - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106638 -UNK_02106638: ; 0x02106638 - .byte 0x2A, 0x00, 0x00, 0x00 - - .global UNK_0210663C -UNK_0210663C: ; 0x0210663C - .byte 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106640 -UNK_02106640: ; 0x02106640 - .word FUN_020BA58C - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106650 -UNK_02106650: ; 0x02106650 - .word FUN_020BA438 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106660 -UNK_02106660: ; 0x02106660 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - - .global UNK_021066A0 -UNK_021066A0: ; 0x021066A0 - .byte 0x12, 0x10, 0x17, 0x1B - - .global UNK_021066A4 -UNK_021066A4: ; 0x021066A4 - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK_021066AC -UNK_021066AC: ; 0x021066AC - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00 - - .global UNK_021066D0 -UNK_021066D0: ; 0x021066D0 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_021066DC -UNK_021066DC: ; 0x021066DC - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_021066E8 -UNK_021066E8: ; 0x021066E8 - .byte 0x12, 0x10, 0x17, 0x1B - - .global UNK_021066EC -UNK_021066EC: ; 0x021066EC - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global UNK_021066F4 -UNK_021066F4: ; 0x021066F4 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x10, 0x00, 0x00 - - .global UNK_02106718 -UNK_02106718: ; 0x02106718 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106724 -UNK_02106724: ; 0x02106724 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_02106730 -UNK_02106730: ; 0x02106730 - .word FUN_020BAC70 - .word FUN_020BAC48 - .word FUN_020BAAC0 - .word FUN_020BA9EC - .word FUN_020BA50C - .word FUN_020BA3C4 - .word FUN_020B9F84 - .word FUN_020B9C54 - .word FUN_020B98C4 - .word FUN_020B9258 - .word FUN_020B9178 - .word FUN_020B9110 - .word FUN_020B8DF0 - .word FUN_020B8A60 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global UNK_021067B0 -UNK_021067B0: ; 0x021067B0 - .word FUN_020BEBD8 - .word FUN_020BEB00 - .word FUN_020BEA84 - .word FUN_020BEA3C - .word FUN_020BE954 - .word FUN_020BE894 - .word FUN_020BE850 - .word FUN_020BE82C - - .global UNK_021067D0 -UNK_021067D0: ; 0x021067D0 - .word FUN_020BF988 - .word FUN_020BF894 - .word FUN_020BF810 - .word FUN_020BF7C8 - .word FUN_020BF6C8 - .word FUN_020BF5E8 - .word FUN_020BF598 - .word FUN_020BF574 - - .global UNK_021067F0 -UNK_021067F0: ; 0x021067F0 - .word FUN_020BFFD4 - .word FUN_020BFEEC - .word FUN_020BFE68 - .word FUN_020BFE0C - .word FUN_020BFD38 - .word FUN_020BFC8C - .word FUN_020BFC4C - .word FUN_020BFC28 - - .section .bss - - .global UNK_021CCD48 -UNK_021CCD48: ; 0x021CCD48 - .space 0x4 - - .global UNK_021CCD4C -UNK_021CCD4C: ; 0x021CCD4C - .space 0xc - - .global UNK_021CCD58 -UNK_021CCD58: ; 0x021CCD58 - .space 0x14 - - .global UNK_021CCD6C -UNK_021CCD6C: ; 0x021CCD6C - .space 0x4 - - .global UNK_021CCD70 -UNK_021CCD70: ; 0x021CCD70 - .space 0x4 - - .global UNK_021CCD74 -UNK_021CCD74: ; 0x021CCD74 - .space 0x14 - - .global UNK_021CCD88 -UNK_021CCD88: ; 0x021CCD88 - .space 0x4 - - .global UNK_021CCD8C -UNK_021CCD8C: ; 0x021CCD8C - .space 0x10 - - .global UNK_021CCD9C -UNK_021CCD9C: ; 0x021CCD9C - .space 0x4 - - .global UNK_021CCDA0 -UNK_021CCDA0: ; 0x021CCDA0 - .space 0x100 - - .global UNK_021CCEA0 -UNK_021CCEA0: ; 0x021CCEA0 - .space 0x400 - - .global UNK_021CD2A0 -UNK_021CD2A0: ; 0x021CD2A0 - .space 0x40 - - .global UNK_021CD2E0 -UNK_021CD2E0: ; 0x021CD2E0 - .space 0x100 - - .global UNK_021CD3E0 -UNK_021CD3E0: ; 0x021CD3E0 - .space 0x400 - - .global UNK_021CD7E0 -UNK_021CD7E0: ; 0x021CD7E0 - .space 0x40 - - .global UNK_021CD820 -UNK_021CD820: ; 0x021CD820 - .space 0x100 - - .global UNK_021CD920 -UNK_021CD920: ; 0x021CD920 - .space 0x400 - - .global UNK_021CDD20 -UNK_021CDD20: ; 0x021CDD20 - .space 0x40 - - .global UNK_021CDD60 -UNK_021CDD60: ; 0x021CDD60 - .space 0x4 - - .global UNK_021CDD64 -UNK_021CDD64: ; 0x021CDD64 - .space 0x4 - - .global UNK_021CDD68 -UNK_021CDD68: ; 0x021CDD68 - .space 0x4 - - .global UNK_021CDD6C -UNK_021CDD6C: ; 0x021CDD6C - .space 0x4 - - .global UNK_021CDD70 -UNK_021CDD70: ; 0x021CDD70 - .space 0x4 - - .global UNK_021CDD74 -UNK_021CDD74: ; 0x021CDD74 - .space 0x80 - - .global UNK_021CDDF4 -UNK_021CDDF4: ; 0x021CDDF4 - .space 0x4 - - .global UNK_021CDDF8 -UNK_021CDDF8: ; 0x021CDDF8 - .space 0xfc - - .global UNK_021CDEF4 -UNK_021CDEF4: ; 0x021CDEF4 - .space 0x10 - - .global UNK_021CDF04 -UNK_021CDF04: ; 0x021CDF04 - .space 0x4 - - .global UNK_021CDF08 -UNK_021CDF08: ; 0x021CDF08 - .space 0x2ec - - .global UNK_021CE1F4 -UNK_021CE1F4: ; 0x021CE1F4 - .space 0x300 - - .global UNK_021CE4F4 -UNK_021CE4F4: ; 0x021CE4F4 - .space 0x400 - - .global UNK_021CE8F4 -UNK_021CE8F4: ; 0x021CE8F4 - .space 0x4 - - .global UNK_021CE8F8 -UNK_021CE8F8: ; 0x021CE8F8 - .space 0x404 - - .global UNK_021CECFC -UNK_021CECFC: ; 0x021CECFC - .space 0x4 - - .global UNK_021CED00 -UNK_021CED00: ; 0x021CED00 - .space 0x4 - - .global UNK_021CED04 -UNK_021CED04: ; 0x021CED04 - .space 0x4 - - .global UNK_021CED08 -UNK_021CED08: ; 0x021CED08 - .space 0x4 - - .global UNK_021CED0C -UNK_021CED0C: ; 0x021CED0C - .space 0x4 - - .global UNK_021CED10 -UNK_021CED10: ; 0x021CED10 - .space 0x4 - - .global UNK_021CED14 -UNK_021CED14: ; 0x021CED14 - .space 0x4 - - .global UNK_021CED18 -UNK_021CED18: ; 0x021CED18 - .space 0x8 - - .global UNK_021CED20 -UNK_021CED20: ; 0x021CED20 - .space 0x44 - - .global UNK_021CED64 -UNK_021CED64: ; 0x021CED64 - .space 0x34 - - .global UNK_021CED98 -UNK_021CED98: ; 0x021CED98 - .space 0x28 - - .global UNK_021CEDC0 -UNK_021CEDC0: ; 0x021CEDC0 - .space 0x14 - - .global UNK_021CEDD4 -UNK_021CEDD4: ; 0x021CEDD4 - .space 0x24 - - .global UNK_021CEDF8 -UNK_021CEDF8: ; 0x021CEDF8 - .space 0xc - - .global UNK_021CEE04 -UNK_021CEE04: ; 0x021CEE04 - .space 0x14 - - .global UNK_021CEE18 -UNK_021CEE18: ; 0x021CEE18 - .space 0x30 - - .global UNK_021CEE48 -UNK_021CEE48: ; 0x021CEE48 - .space 0x30 - - .global UNK_021CEE78 -UNK_021CEE78: ; 0x021CEE78 - .space 0xe0 - - .global UNK_021CEF58 -UNK_021CEF58: ; 0x021CEF58 - .space 0xc - - .global UNK_021CEF64 -UNK_021CEF64: ; 0x021CEF64 - .space 0xc - - .global UNK_021CEF70 -UNK_021CEF70: ; 0x021CEF70 - .space 0xc - - .global UNK_021CEF7C -UNK_021CEF7C: ; 0x021CEF7C - .space 0x4 - - .global UNK_021CEF80 -UNK_021CEF80: ; 0x021CEF80 - .space 0xe00 - - .global UNK_021CFD80 -UNK_021CFD80: ; 0x021CFD80 - .space 0x4 - - .global UNK_021CFD84 -UNK_021CFD84: ; 0x021CFD84 - .space 0x4 - - .global UNK_021CFD88 -UNK_021CFD88: ; 0x021CFD88 - .space 0x4 - - .global UNK_021CFD8C -UNK_021CFD8C: ; 0x021CFD8C - .space 0x4 - - .global UNK_021CFD90 -UNK_021CFD90: ; 0x021CFD90 - .space 0x4 - - .global UNK_021CFD94 -UNK_021CFD94: ; 0x021CFD94 - .space 0x2ba - - .global UNK_021D004E -UNK_021D004E: ; 0x021D004E - .space 0x332 - - .global UNK_021D0380 -UNK_021D0380: ; 0x021D0380 - .space 0x40 - - .global UNK_021D03C0 -UNK_021D03C0: ; 0x021D03C0 - .space 0xb42 - - .global UNK_021D0F02 -UNK_021D0F02: ; 0x021D0F02 - .space 0xd7e - - .global UNK_021D1C80 -UNK_021D1C80: ; 0x021D1C80 - .space 0x4 - - .global UNK_021D1C84 -UNK_021D1C84: ; 0x021D1C84 - .space 0x4 - - .global UNK_021D1C88 -UNK_021D1C88: ; 0x021D1C88 - .space 0x4 - - .text - - arm_func_start FUN_020AE8AC -FUN_020AE8AC: ; 0x020AE8AC - mvn r0, #0x0 - bx lr - arm_func_end FUN_020AE8AC - - arm_func_start FUN_020AE8B4 -FUN_020AE8B4: ; 0x020AE8B4 - mov r0, #0x0 - bx lr - arm_func_end FUN_020AE8B4 - - arm_func_start FUN_020AE8BC -FUN_020AE8BC: ; 0x020AE8BC - mvn r0, #0x0 - bx lr - arm_func_end FUN_020AE8BC - - arm_func_start FUN_020AE8C4 -FUN_020AE8C4: ; 0x020AE8C4 - mov r0, #0x0 - bx lr - arm_func_end FUN_020AE8C4 - - arm_func_start FUN_020AE8CC -FUN_020AE8CC: ; 0x020AE8CC - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov lr, #0x0 - ldr r3, _020AE914 ; =UNK_021064E4 - mov r12, lr - mov r2, #0x1 -_020AE8E4: - ldr r1, [r0, r12, lsl #0x2] - add lr, lr, #0x1 - str r1, [r3, #0x0] - ldr r1, [r0, r2, lsl #0x2] - cmp lr, #0x5 - str r1, [r3, #0x4] - add r12, r12, #0x2 - add r3, r3, #0x18 - add r2, r2, #0x2 - blt _020AE8E4 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AE914: .word UNK_021064E4 - arm_func_end FUN_020AE8CC - - arm_func_start FUN_020AE918 -FUN_020AE918: ; 0x020AE918 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov lr, #0x0 - ldr ip, _020AE960 ; =UNK_021064E4 - mov r3, lr - mov r2, #0x1 -_020AE930: - ldr r1, [r12, #0x0] - add lr, lr, #0x1 - str r1, [r0, r3, lsl #0x2] - ldr r1, [r12, #0x4] - cmp lr, #0x5 - str r1, [r0, r2, lsl #0x2] - add r12, r12, #0x18 - add r3, r3, #0x2 - add r2, r2, #0x2 - blt _020AE930 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AE960: .word UNK_021064E4 - arm_func_end FUN_020AE918 - - arm_func_start FUN_020AE964 -FUN_020AE964: ; 0x020AE964 - mov r0, #0x0 - bx lr - arm_func_end FUN_020AE964 - - arm_func_start FUN_020AE96C -FUN_020AE96C: ; 0x020AE96C - stmdb sp!, {r4-r10,lr} - cmp r0, #0x0 - moveq r7, #0x10 - addne r0, r0, #0xf - bicne r7, r0, #0xf - ldr r0, _020AEADC ; =0x0007FFF0 - cmp r7, r0 - movcs r0, #0x0 - ldmcsia sp!, {r4-r10,pc} - cmp r1, #0x0 - beq _020AEA5C - mov lr, r7, lsr #0x1 - mov r6, #0x0 - ldr r2, _020AEAE0 ; =UNK_02106514 - ldr r3, _020AEAE4 ; =UNK_021064FC - ldr ip, _020AEAE8 ; =UNK_021064C8 - mov r0, r6 -_020AE9B0: - ldr r5, [r12, r6, lsl #0x2] - ldr r4, [r5, #0x8] - cmp r4, #0x0 - beq _020AEA48 - ldr r9, [r5, #0x4] - ldr r4, [r5, #0x0] - sub r4, r9, r4 - cmp r4, r7 - blo _020AEA48 - ldrh r4, [r5, #0x10] - cmp r4, #0x0 - beq _020AE9EC - cmp r4, #0x3 - beq _020AE9F4 - b _020AE9FC -_020AE9EC: - mov r4, r3 - b _020AEA00 -_020AE9F4: - mov r4, r2 - b _020AEA00 -_020AE9FC: - mov r4, r0 -_020AEA00: - ldr r9, [r4, #0x8] - cmp r9, #0x0 - beq _020AEA48 - ldr r10, [r4, #0x4] - ldr r9, [r4, #0x0] - sub r9, r10, r9 - cmp r9, lr - blo _020AEA48 - ldr r3, [r5, #0x0] - mov r0, #0x1 - add r2, r3, r7 - str r2, [r5, #0x0] - ldr r2, [r4, #0x0] - add r2, r2, lr - str r2, [r4, #0x0] - ldr r2, [r5, #0x14] - add r8, r3, r2 - b _020AEAB8 -_020AEA48: - add r6, r6, #0x1 - cmp r6, #0x2 - blt _020AE9B0 - mov r0, #0x0 - b _020AEAB8 -_020AEA5C: - ldr r3, _020AEAEC ; =UNK_021064D0 - mov r5, #0x0 -_020AEA64: - ldr r4, [r3, r5, lsl #0x2] - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _020AEAA8 - ldr r2, [r4, #0x4] - ldr r0, [r4, #0x0] - sub r0, r2, r0 - cmp r0, r7 - blo _020AEAA8 - ldr r2, [r4, #0x4] - mov r0, #0x1 - sub r2, r2, r7 - str r2, [r4, #0x4] - ldr r3, [r4, #0x4] - ldr r2, [r4, #0x14] - add r8, r3, r2 - b _020AEAB8 -_020AEAA8: - add r5, r5, #0x1 - cmp r5, #0x5 - blt _020AEA64 - mov r0, #0x0 -_020AEAB8: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,pc} - ldr r0, _020AEAF0 ; =0x0000FFFF - mov r2, r7, lsr #0x4 - and r0, r0, r8, lsr #0x3 - orr r0, r0, r2, lsl #0x10 - orr r0, r0, r1, lsl #0x1f - ldmia sp!, {r4-r10,pc} - .balign 4 -_020AEADC: .word 0x0007FFF0 -_020AEAE0: .word UNK_02106514 -_020AEAE4: .word UNK_021064FC -_020AEAE8: .word UNK_021064C8 -_020AEAEC: .word UNK_021064D0 -_020AEAF0: .word 0x0000FFFF - arm_func_end FUN_020AE96C - - arm_func_start FUN_020AEAF4 -FUN_020AEAF4: ; 0x020AEAF4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r0, _020AEB68 ; =UNK_021CCD48 - mov r6, #0x0 - ldrh r7, [r0, #0x0] - ldr r5, _020AEB6C ; =UNK_021064E4 - mov lr, r6 - cmp r7, #0x1 - addhi r7, r7, #0x1 - mov r1, r6 - mov r3, r6 - mov r4, #0x1 - mov r0, #0x20000 - mov r2, #0x10000 -_020AEB2C: - cmp r6, r7 - strlt r4, [r5, #0x8] - strge lr, [r5, #0x8] - ldr r12, [r5, #0xc] - add r6, r6, #0x1 - cmp r12, #0x0 - strne r3, [r5, #0x0] - strne r2, [r5, #0x4] - streq r1, [r5, #0x0] - streq r0, [r5, #0x4] - cmp r6, #0x5 - add r5, r5, #0x18 - blt _020AEB2C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AEB68: .word UNK_021CCD48 -_020AEB6C: .word UNK_021064E4 - arm_func_end FUN_020AEAF4 - - arm_func_start FUN_020AEB70 -FUN_020AEB70: ; 0x020AEB70 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - cmp r5, #0x2 - bhi _020AEBA8 - mov r12, #0x1 - mov r0, #0x4 - mov r1, #0x3 - mov r2, #0x2 - mov r3, #0x0 - str r12, [sp, #0x0] - bl FUN_020AEC10 - b _020AEBC4 -_020AEBA8: - mov r12, #0x1 - mov r0, #0x4 - mov r1, #0x3 - mov r2, #0x0 - mov r3, #0x2 - str r12, [sp, #0x0] - bl FUN_020AEC10 -_020AEBC4: - ldr r0, _020AEBFC ; =UNK_021CCD48 - strh r5, [r0, #0x0] - bl FUN_020AEAF4 - cmp r4, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r3, _020AEC00 ; =FUN_020AE96C - ldr r1, _020AEC04 ; =UNK_021064B8 - ldr r2, _020AEC08 ; =FUN_020AE964 - ldr r0, _020AEC0C ; =UNK_021064BC - str r3, [r1, #0x0] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AEBFC: .word UNK_021CCD48 -_020AEC00: .word FUN_020AE96C -_020AEC04: .word UNK_021064B8 -_020AEC08: .word FUN_020AE964 -_020AEC0C: .word UNK_021064BC - arm_func_end FUN_020AEB70 - - arm_func_start FUN_020AEC10 -FUN_020AEC10: ; 0x020AEC10 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr lr, [sp, #0x18] - ldr r6, _020AEC58 ; =UNK_021064E4 - mov r12, #0x18 - mla r7, r0, r12, r6 - ldr r0, _020AEC5C ; =UNK_021064D0 - mla r5, r1, r12, r6 - mla r4, r2, r12, r6 - mla r2, r3, r12, r6 - mla r1, lr, r12, r6 - str r7, [r0, #0x0] - str r5, [r0, #0x4] - str r4, [r0, #0x8] - str r2, [r0, #0xc] - str r1, [r0, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AEC58: .word UNK_021064E4 -_020AEC5C: .word UNK_021064D0 - arm_func_end FUN_020AEC10 - - arm_func_start FUN_020AEC60 -FUN_020AEC60: ; 0x020AEC60 - ldr r0, _020AEC78 ; =UNK_021CCD4C - mov r2, #0x0 - ldr r1, [r0, #0x8] - str r2, [r0, #0x0] - str r1, [r0, #0x4] - bx lr - .balign 4 -_020AEC78: .word UNK_021CCD4C - arm_func_end FUN_020AEC60 - - arm_func_start FUN_020AEC7C -FUN_020AEC7C: ; 0x020AEC7C - ldr r2, [r0, #0x0] - ldr r1, _020AEC94 ; =UNK_021CCD4C - str r2, [r1, #0x0] - ldr r0, [r0, #0x4] - str r0, [r1, #0x4] - bx lr - .balign 4 -_020AEC94: .word UNK_021CCD4C - arm_func_end FUN_020AEC7C - - arm_func_start FUN_020AEC98 -FUN_020AEC98: ; 0x020AEC98 - ldr r1, _020AECB0 ; =UNK_021CCD4C - ldr r2, [r1, #0x0] - str r2, [r0, #0x0] - ldr r1, [r1, #0x4] - str r1, [r0, #0x4] - bx lr - .balign 4 -_020AECB0: .word UNK_021CCD4C - arm_func_end FUN_020AEC98 - - arm_func_start FUN_020AECB4 -FUN_020AECB4: ; 0x020AECB4 - mov r0, #0x0 - bx lr - arm_func_end FUN_020AECB4 - - arm_func_start FUN_020AECBC -FUN_020AECBC: ; 0x020AECBC - stmdb sp!, {r4,lr} - cmp r0, #0x0 - moveq r0, #0x8 - addne r0, r0, #0x7 - ldr ip, _020AEDE8 ; =0x0007FFF8 - bicne r0, r0, #0x7 - cmp r0, r12 - mov r3, #0x0 - movcs r0, #0x0 - ldmcsia sp!, {r4,pc} - cmp r2, #0x1 - bne _020AED64 - ldr r2, _020AEDEC ; =UNK_021CCD4C - cmp r1, #0x0 - ldr r12, [r2, #0x0] - andne r2, r12, #0x7 - rsbne r2, r2, #0x8 - andne r4, r2, #0x7 - andeq r2, r12, #0xf - rsbeq r2, r2, #0x10 - andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =UNK_021CCD4C - add lr, r0, r4 - ldr r2, [r2, #0x4] - sub r2, r2, r12 - cmp r2, lr - blo _020AED5C - cmp r1, #0x0 - add r1, r12, lr - beq _020AED40 - cmp r1, #0x10000 - movhi r12, #0x0 - bhi _020AEDCC -_020AED40: - ldr r1, _020AEDEC ; =UNK_021CCD4C - add r3, r12, r4 - ldr r2, [r1, #0x0] - mov r12, #0x1 - add r2, r2, lr - str r2, [r1, #0x0] - b _020AEDCC -_020AED5C: - mov r12, #0x0 - b _020AEDCC -_020AED64: - ldr r2, _020AEDEC ; =UNK_021CCD4C - ldr r12, [r2, #0x4] - cmp r12, r0 - blo _020AEDC8 - sub r2, r12, r0 - cmp r1, #0x0 - andne r4, r2, #0x7 - andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =UNK_021CCD4C - add lr, r0, r4 - ldr r2, [r2, #0x0] - sub r2, r12, r2 - cmp r2, lr - blo _020AEDC8 - cmp r1, #0x0 - beq _020AEDB0 - cmp r12, #0x10000 - movhi r12, #0x0 - bhi _020AEDCC -_020AEDB0: - ldr r1, _020AEDEC ; =UNK_021CCD4C - mov r12, #0x1 - ldr r2, [r1, #0x4] - sub r3, r2, lr - str r3, [r1, #0x4] - b _020AEDCC -_020AEDC8: - mov r12, #0x0 -_020AEDCC: - cmp r12, #0x0 - ldrne r1, _020AEDF0 ; =0x0000FFFF - movne r2, r0, lsr #0x3 - andne r0, r1, r3, lsr #0x3 - orrne r0, r0, r2, lsl #0x10 - moveq r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020AEDE8: .word 0x0007FFF8 -_020AEDEC: .word UNK_021CCD4C -_020AEDF0: .word 0x0000FFFF - arm_func_end FUN_020AECBC - - arm_func_start FUN_020AEDF4 -FUN_020AEDF4: ; 0x020AEDF4 - stmdb sp!, {r4,lr} - ldr r2, _020AEE2C ; =UNK_021CCD4C - mov r4, r1 - str r0, [r2, #0x8] - bl FUN_020AEC60 - cmp r4, #0x0 - ldmeqia sp!, {r4,pc} - ldr r3, _020AEE30 ; =FUN_020AECBC - ldr r1, _020AEE34 ; =UNK_021064C0 - ldr r2, _020AEE38 ; =FUN_020AECB4 - ldr r0, _020AEE3C ; =UNK_021064C4 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020AEE2C: .word UNK_021CCD4C -_020AEE30: .word FUN_020AECBC -_020AEE34: .word UNK_021064C0 -_020AEE38: .word FUN_020AECB4 -_020AEE3C: .word UNK_021064C4 - arm_func_end FUN_020AEDF4 - - arm_func_start FUN_020AEE40 -FUN_020AEE40: ; 0x020AEE40 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r5, _020AEEB4 ; =UNK_021CCD58 - mov r9, r0 - mov r0, r5 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl FUN_020AF2F4 - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r9,pc} - mov r0, r5 - bl FUN_020AEF78 - mov r4, r0 - str r9, [r4, #0x0] - str r7, [r4, #0x4] - str r8, [r4, #0x8] - mov r0, r5 - str r6, [r4, #0xc] - bl FUN_020AEF98 - ldr r2, [r5, #0x10] - ldr r1, [r4, #0xc] - mov r0, #0x1 - add r1, r2, r1 - str r1, [r5, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020AEEB4: .word UNK_021CCD58 - arm_func_end FUN_020AEE40 - - arm_func_start FUN_020AEEB8 -FUN_020AEEB8: ; 0x020AEEB8 - stmdb sp!, {r4-r6,lr} - ldr r6, _020AEF18 ; =UNK_021CCD58 - mov r0, r6 - bl FUN_020AEF88 - mov r5, r0 - mov r0, r6 - bl FUN_020AEF3C - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - add r4, r6, #0x10 -_020AEEE0: - mov r0, r5 - bl FUN_020AEFF0 - ldr r2, [r4, #0x0] - ldr r1, [r5, #0xc] - mov r0, r6 - sub r1, r2, r1 - str r1, [r4, #0x0] - bl FUN_020AEF88 - mov r5, r0 - mov r0, r6 - bl FUN_020AEF3C - cmp r0, #0x0 - bne _020AEEE0 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AEF18: .word UNK_021CCD58 - arm_func_end FUN_020AEEB8 - - arm_func_start FUN_020AEF1C -FUN_020AEF1C: ; 0x020AEF1C - ldr r2, _020AEF34 ; =UNK_021CCD58 - ldr ip, _020AEF38 ; =FUN_020AEFD4 - str r0, [r2, #0x0] - mov r0, r2 - str r1, [r2, #0x4] - bx r12 - .balign 4 -_020AEF34: .word UNK_021CCD58 -_020AEF38: .word FUN_020AEFD4 - arm_func_end FUN_020AEF1C - - arm_func_start FUN_020AEF3C -FUN_020AEF3C: ; 0x020AEF3C - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020AF2E0 - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,pc} - ldrh r1, [r4, #0x8] - mov r0, r4 - bl FUN_020AF30C - strh r0, [r4, #0x8] - ldrh r1, [r4, #0xc] - mov r0, #0x1 - sub r1, r1, #0x1 - strh r1, [r4, #0xc] - ldmia sp!, {r4,pc} - arm_func_end FUN_020AEF3C - - arm_func_start FUN_020AEF78 -FUN_020AEF78: ; 0x020AEF78 - ldrh r1, [r0, #0xa] - ldr r0, [r0, #0x0] - add r0, r0, r1, lsl #0x4 - bx lr - arm_func_end FUN_020AEF78 - - arm_func_start FUN_020AEF88 -FUN_020AEF88: ; 0x020AEF88 - ldrh r1, [r0, #0x8] - ldr r0, [r0, #0x0] - add r0, r0, r1, lsl #0x4 - bx lr - arm_func_end FUN_020AEF88 - - arm_func_start FUN_020AEF98 -FUN_020AEF98: ; 0x020AEF98 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020AF2F4 - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,pc} - ldrh r1, [r4, #0xa] - mov r0, r4 - bl FUN_020AF30C - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - mov r0, #0x1 - add r1, r1, #0x1 - strh r1, [r4, #0xc] - ldmia sp!, {r4,pc} - arm_func_end FUN_020AEF98 - - arm_func_start FUN_020AEFD4 -FUN_020AEFD4: ; 0x020AEFD4 - mov r2, #0x0 - strh r2, [r0, #0xa] - ldrh r1, [r0, #0xa] - strh r1, [r0, #0x8] - strh r2, [r0, #0xc] - str r2, [r0, #0x10] - bx lr - arm_func_end FUN_020AEFD4 - - arm_func_start FUN_020AEFF0 -FUN_020AEFF0: ; 0x020AEFF0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r3, [r5, #0x0] - ldr r2, _020AF02C ; =UNK_020FF7D4 - ldr r0, [r5, #0x4] - ldr r1, [r5, #0xc] - ldr r4, [r2, r3, lsl #0x2] - bl DC_FlushRange - ldr r0, [r5, #0x4] - ldr r1, [r5, #0x8] - ldr r2, [r5, #0xc] - blx r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AF02C: .word UNK_020FF7D4 - arm_func_end FUN_020AEFF0 - - arm_func_start GXS_LoadOBJ_2 -GXS_LoadOBJ_2: - ldr ip, _020AF038 ; =GXS_LoadOBJ - bx r12 - .balign 4 -_020AF038: .word GXS_LoadOBJ - arm_func_end GXS_LoadOBJ_2 - - arm_func_start GXS_LoadOAM_2 -GXS_LoadOAM_2: ; 0x020AF03C - ldr ip, _020AF044 ; =GXS_LoadOAM - bx r12 - .balign 4 -_020AF044: .word GXS_LoadOAM - arm_func_end GXS_LoadOAM_2 - - arm_func_start FUN_020AF048 -FUN_020AF048: ; 0x020AF048 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GXS_BeginLoadBGExtPltt - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF048 - - arm_func_start FUN_020AF074 -FUN_020AF074: ; 0x020AF074 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GXS_BeginLoadOBJExtPltt - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GXS_LoadOBJExtPltt - bl GXS_EndLoadOBJExtPltt - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF074 - - arm_func_start GXS_LoadBGPltt_2 -GXS_LoadBGPltt_2: ; 0x020AF0A0 - ldr ip, _020AF0A8 ; =GXS_LoadBGPltt - bx r12 - .balign 4 -_020AF0A8: .word GXS_LoadBGPltt - arm_func_end GXS_LoadBGPltt_2 - - arm_func_start GXS_LoadOBJPltt_2 -GXS_LoadOBJPltt_2: ; 0x020AF0AC - ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt - bx r12 - .balign 4 -_020AF0B4: .word GXS_LoadOBJPltt - arm_func_end GXS_LoadOBJPltt_2 - - arm_func_start GXS_LoadBG3Scr_3 -GXS_LoadBG3Scr_3: ; 0x020AF0B8 - ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr - bx r12 - .balign 4 -_020AF0C0: .word GXS_LoadBG3Scr - arm_func_end GXS_LoadBG3Scr_3 - - arm_func_start GXS_LoadBG2Scr_3 -GXS_LoadBG2Scr_3: ; 0x020AF0C4 - ldr ip, _020AF0CC ; =GXS_LoadBG2Scr - bx r12 - .balign 4 -_020AF0CC: .word GXS_LoadBG2Scr - arm_func_end GXS_LoadBG2Scr_3 - - arm_func_start GXS_LoadBG3Scr_2 -GXS_LoadBG3Scr_2: ; 0x020AF0D0 - ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr - bx r12 - .balign 4 -_020AF0D8: .word GXS_LoadBG3Scr - arm_func_end GXS_LoadBG3Scr_2 - - arm_func_start GXS_LoadBG2Scr_2 -GXS_LoadBG2Scr_2: ; 0x020AF0DC - ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr - bx r12 - .balign 4 -_020AF0E4: .word GXS_LoadBG2Scr - arm_func_end GXS_LoadBG2Scr_2 - - arm_func_start GXS_LoadBG1Scr_2 -GXS_LoadBG1Scr_2: ; 0x020AF0E8 - ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr - bx r12 - .balign 4 -_020AF0F0: .word GXS_LoadBG1Scr - arm_func_end GXS_LoadBG1Scr_2 - - arm_func_start GXS_LoadBG0Scr_2 -GXS_LoadBG0Scr_2: ; 0x020AF0F4 - ldr ip, _020AF0FC ; =GXS_LoadBG0Scr - bx r12 - .balign 4 -_020AF0FC: .word GXS_LoadBG0Scr - arm_func_end GXS_LoadBG0Scr_2 - - arm_func_start GXS_LoadBG3Char_2 -GXS_LoadBG3Char_2: ; 0x020AF100 - ldr ip, _020AF108 ; =GXS_LoadBG3Char - bx r12 - .balign 4 -_020AF108: .word GXS_LoadBG3Char - arm_func_end GXS_LoadBG3Char_2 - - arm_func_start GXS_LoadBG2Char_2 -GXS_LoadBG2Char_2: ; 0x020AF10C - ldr ip, _020AF114 ; =GXS_LoadBG2Char - bx r12 - .balign 4 -_020AF114: .word GXS_LoadBG2Char - arm_func_end GXS_LoadBG2Char_2 - - arm_func_start GXS_LoadBG1Char_2 -GXS_LoadBG1Char_2: ; 0x020AF118 - ldr ip, _020AF120 ; =GXS_LoadBG1Char - bx r12 - .balign 4 -_020AF120: .word GXS_LoadBG1Char - arm_func_end GXS_LoadBG1Char_2 - - arm_func_start GXS_LoadBG0Char_2 -GXS_LoadBG0Char_2: ; 0x020AF124 - ldr ip, _020AF12C ; =GXS_LoadBG0Char - bx r12 - .balign 4 -_020AF12C: .word GXS_LoadBG0Char - arm_func_end GXS_LoadBG0Char_2 - - arm_func_start GX_LoadOBJ_2 -GX_LoadOBJ_2: ; 0x020AF130 - ldr ip, _020AF138 ; =GX_LoadOBJ - bx r12 - .balign 4 -_020AF138: .word GX_LoadOBJ - arm_func_end GX_LoadOBJ_2 - - arm_func_start GX_LoadOAM_2 -GX_LoadOAM_2: ; 0x020AF13C - ldr ip, _020AF144 ; =GX_LoadOAM - bx r12 - .balign 4 -_020AF144: .word GX_LoadOAM - arm_func_end GX_LoadOAM_2 - - arm_func_start FUN_020AF148 -FUN_020AF148: ; 0x020AF148 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GX_BeginLoadBGExtPltt - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF148 - - arm_func_start FUN_020AF174 -FUN_020AF174: ; 0x020AF174 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GX_BeginLoadOBJExtPltt - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GX_LoadOBJExtPltt - bl GX_EndLoadOBJExtPltt - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF174 - - arm_func_start GX_LoadBGPltt_2 -GX_LoadBGPltt_2: ; 0x020AF1A0 - ldr ip, _020AF1A8 ; =GX_LoadBGPltt - bx r12 - .balign 4 -_020AF1A8: .word GX_LoadBGPltt - arm_func_end GX_LoadBGPltt_2 - - arm_func_start GX_LoadOBJPltt_2 -GX_LoadOBJPltt_2: ; 0x020AF1AC - ldr ip, _020AF1B4 ; =GX_LoadOBJPltt - bx r12 - .balign 4 -_020AF1B4: .word GX_LoadOBJPltt - arm_func_end GX_LoadOBJPltt_2 - - arm_func_start GX_LoadBG3Scr_3 -GX_LoadBG3Scr_3: ; 0x020AF1B8 - ldr ip, _020AF1C0 ; =GX_LoadBG3Scr - bx r12 - .balign 4 -_020AF1C0: .word GX_LoadBG3Scr - arm_func_end GX_LoadBG3Scr_3 - - arm_func_start GX_LoadBG2Scr_3 -GX_LoadBG2Scr_3: ; 0x020AF1C4 - ldr ip, _020AF1CC ; =GX_LoadBG2Scr - bx r12 - .balign 4 -_020AF1CC: .word GX_LoadBG2Scr - arm_func_end GX_LoadBG2Scr_3 - - arm_func_start GX_LoadBG3Scr_2 -GX_LoadBG3Scr_2: ; 0x020AF1D0 - ldr ip, _020AF1D8 ; =GX_LoadBG3Scr - bx r12 - .balign 4 -_020AF1D8: .word GX_LoadBG3Scr - arm_func_end GX_LoadBG3Scr_2 - - arm_func_start GX_LoadBG2Scr_2 -GX_LoadBG2Scr_2: ; 0x020AF1DC - ldr ip, _020AF1E4 ; =GX_LoadBG2Scr - bx r12 - .balign 4 -_020AF1E4: .word GX_LoadBG2Scr - arm_func_end GX_LoadBG2Scr_2 - - arm_func_start GX_LoadBG1Scr_2 -GX_LoadBG1Scr_2: ; 0x020AF1E8 - ldr ip, _020AF1F0 ; =GX_LoadBG1Scr - bx r12 - .balign 4 -_020AF1F0: .word GX_LoadBG1Scr - arm_func_end GX_LoadBG1Scr_2 - - arm_func_start GX_LoadBG0Scr_2 -GX_LoadBG0Scr_2: ; 0x020AF1F4 - ldr ip, _020AF1FC ; =GX_LoadBG0Scr - bx r12 - .balign 4 -_020AF1FC: .word GX_LoadBG0Scr - arm_func_end GX_LoadBG0Scr_2 - - arm_func_start GX_LoadBG3Char_2 -GX_LoadBG3Char_2: ; 0x020AF200 - ldr ip, _020AF208 ; =GX_LoadBG3Char - bx r12 - .balign 4 -_020AF208: .word GX_LoadBG3Char - arm_func_end GX_LoadBG3Char_2 - - arm_func_start GX_LoadBG2Char_2 -GX_LoadBG2Char_2: ; 0x020AF20C - ldr ip, _020AF214 ; =GX_LoadBG2Char - bx r12 - .balign 4 -_020AF214: .word GX_LoadBG2Char - arm_func_end GX_LoadBG2Char_2 - - arm_func_start GX_LoadBG1Char_2 -GX_LoadBG1Char_2: ; 0x020AF218 - ldr ip, _020AF220 ; =GX_LoadBG1Char - bx r12 - .balign 4 -_020AF220: .word GX_LoadBG1Char - arm_func_end GX_LoadBG1Char_2 - - arm_func_start GX_LoadBG0Char_2 -GX_LoadBG0Char_2: ; 0x020AF224 - ldr ip, _020AF22C ; =GX_LoadBG0Char - bx r12 - .balign 4 -_020AF22C: .word GX_LoadBG0Char - arm_func_end GX_LoadBG0Char_2 - - arm_func_start FUN_020AF230 -FUN_020AF230: ; 0x020AF230 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r2 - bl GX_BeginLoadClearImage - mov r0, r5 - mov r1, r4 - bl GX_LoadClearImageDepth - bl GX_EndLoadClearImage - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AF230 - - arm_func_start FUN_020AF25C -FUN_020AF25C: ; 0x020AF25C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r2 - bl GX_BeginLoadClearImage - mov r0, r5 - mov r1, r4 - bl GX_LoadClearImageColor - bl GX_EndLoadClearImage - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AF25C - - arm_func_start FUN_020AF288 -FUN_020AF288: ; 0x020AF288 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GX_BeginLoadTexPltt - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GX_LoadTexPltt - bl GX_EndLoadTexPltt - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF288 - - arm_func_start FUN_020AF2B4 -FUN_020AF2B4: ; 0x020AF2B4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl GX_BeginLoadTex - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl GX_LoadTex - bl GX_EndLoadTex - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF2B4 - - arm_func_start FUN_020AF2E0 -FUN_020AF2E0: ; 0x020AF2E0 - ldrh r0, [r0, #0xc] - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - bx lr - arm_func_end FUN_020AF2E0 - - arm_func_start FUN_020AF2F4 -FUN_020AF2F4: ; 0x020AF2F4 - ldrh r1, [r0, #0xc] - ldr r0, [r0, #0x4] - cmp r1, r0 - moveq r0, #0x1 - movne r0, #0x0 - bx lr - arm_func_end FUN_020AF2F4 - - arm_func_start FUN_020AF30C -FUN_020AF30C: ; 0x020AF30C - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, r0 - add r0, r1, #0x1 - ldr r1, [r2, #0x4] - bl _u32_div_f - mov r0, r1, lsl #0x10 - mov r0, r0, lsr #0x10 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020AF30C - - arm_func_start FUN_020AF334 -FUN_020AF334: ; 0x020AF334 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x10 - add r3, r2, r3 - str r2, [sp, #0x0] - str r2, [sp, #0x8] - str r3, [sp, #0x4] - str r3, [sp, #0xc] - ldr r3, [r0, #0x0] - add r12, sp, #0x0 - cmp r3, #0x0 - beq _020AF418 - mov r6, #0x0 -_020AF364: - ldr r5, [r3, #0x0] - ldr r4, [r12, #0x4] - ldr r2, [r3, #0xc] - cmp r5, r4 - bne _020AF3B8 - ldr r4, [r3, #0x4] - add r4, r5, r4 - str r4, [sp, #0xc] - ldr r4, [r3, #0x8] - cmp r4, #0x0 - strne r2, [r4, #0xc] - streq r2, [r0, #0x0] - cmp r2, #0x0 - strne r4, [r2, #0x8] - ldr r4, [r1, #0x0] - cmp r4, #0x0 - strne r3, [r4, #0x8] - ldr r4, [r1, #0x0] - str r4, [r3, #0xc] - str r6, [r3, #0x8] - str r3, [r1, #0x0] -_020AF3B8: - ldr r5, [r3, #0x0] - ldr lr, [r3, #0x4] - ldr r4, [r12, #0x0] - add lr, r5, lr - cmp r4, lr - bne _020AF40C - str r5, [sp, #0x8] - ldr r5, [r3, #0x8] - ldr r4, [r3, #0xc] - cmp r5, #0x0 - strne r4, [r5, #0xc] - streq r4, [r0, #0x0] - cmp r4, #0x0 - strne r5, [r4, #0x8] - ldr lr, [r1, #0x0] - cmp lr, #0x0 - strne r3, [lr, #0x8] - ldr lr, [r1, #0x0] - str lr, [r3, #0xc] - str r6, [r3, #0x8] - str r3, [r1, #0x0] -_020AF40C: - mov r3, r2 - cmp r2, #0x0 - bne _020AF364 -_020AF418: - ldr r4, [r1, #0x0] - cmp r4, #0x0 - ldrne r2, [r4, #0xc] - strne r2, [r1, #0x0] - cmp r4, #0x0 - addeq sp, sp, #0x10 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r2, [sp, #0x8] - mov r1, #0x0 - str r2, [r4, #0x0] - ldr r3, [sp, #0xc] - ldr r2, [sp, #0x8] - sub r2, r3, r2 - str r2, [r4, #0x4] - str r1, [r4, #0x8] - str r1, [r4, #0xc] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - strne r4, [r1, #0x8] - ldr r2, [r0, #0x0] - mov r1, #0x0 - str r2, [r4, #0xc] - str r1, [r4, #0x8] - str r4, [r0, #0x0] - mov r0, #0x1 - add sp, sp, #0x10 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF334 - - arm_func_start FUN_020AF488 -FUN_020AF488: ; 0x020AF488 - stmdb sp!, {r4-r10,lr} - ldr r4, [r0, #0x0] - ldr r9, [sp, #0x20] - cmp r4, #0x0 - mov r5, #0x0 - beq _020AF4EC - sub r12, r9, #0x1 - mvn lr, r12 -_020AF4A8: - cmp r9, #0x1 - ldrls r8, [r4, #0x0] - movls r6, r5 - movls r7, r3 - bls _020AF4D0 - ldr r7, [r4, #0x0] - add r6, r7, r12 - and r8, lr, r6 - sub r6, r8, r7 - add r7, r3, r6 -_020AF4D0: - ldr r10, [r4, #0x4] - cmp r10, r7 - movcs r5, r4 - bhs _020AF4EC - ldr r4, [r4, #0xc] - cmp r4, #0x0 - bne _020AF4A8 -_020AF4EC: - cmp r5, #0x0 - beq _020AF5B8 - cmp r6, #0x0 - beq _020AF54C - ldr r9, [r1, #0x0] - cmp r9, #0x0 - ldrne r3, [r9, #0xc] - strne r3, [r1, #0x0] - cmp r9, #0x0 - beq _020AF5B8 - ldr r4, [r5, #0x0] - mov r3, #0x0 - str r4, [r9, #0x0] - str r6, [r9, #0x4] - str r3, [r9, #0x8] - str r3, [r9, #0xc] - ldr r3, [r0, #0x0] - cmp r3, #0x0 - strne r9, [r3, #0x8] - ldr r4, [r0, #0x0] - mov r3, #0x0 - str r4, [r9, #0xc] - str r3, [r9, #0x8] - str r9, [r0, #0x0] -_020AF54C: - ldr r3, [r5, #0x4] - sub r3, r3, r7 - str r3, [r5, #0x4] - ldr r3, [r5, #0x0] - add r3, r3, r7 - str r3, [r5, #0x0] - ldr r3, [r5, #0x4] - cmp r3, #0x0 - bne _020AF5AC - ldr r4, [r5, #0x8] - ldr r3, [r5, #0xc] - cmp r4, #0x0 - strne r3, [r4, #0xc] - streq r3, [r0, #0x0] - cmp r3, #0x0 - strne r4, [r3, #0x8] - ldr r0, [r1, #0x0] - cmp r0, #0x0 - strne r5, [r0, #0x8] - ldr r3, [r1, #0x0] - mov r0, #0x0 - str r3, [r5, #0xc] - str r0, [r5, #0x8] - str r5, [r1, #0x0] -_020AF5AC: - str r8, [r2, #0x0] - mov r0, #0x1 - ldmia sp!, {r4-r10,pc} -_020AF5B8: - mov r0, #0x0 - str r0, [r2, #0x0] - ldmia sp!, {r4-r10,pc} - arm_func_end FUN_020AF488 - - arm_func_start FUN_020AF5C4 -FUN_020AF5C4: ; 0x020AF5C4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r12, #0x0 - str r12, [sp, #0x0] - bl FUN_020AF488 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020AF5C4 - - arm_func_start FUN_020AF5E0 -FUN_020AF5E0: ; 0x020AF5E0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr lr, [r1, #0x0] - cmp lr, #0x0 - ldrne r12, [lr, #0xc] - strne r12, [r1, #0x0] - cmp lr, #0x0 - beq _020AF640 - str r2, [lr, #0x0] - str r3, [lr, #0x4] - mov r1, #0x0 - str r1, [lr, #0x8] - str r1, [lr, #0xc] - ldr r1, [r0, #0x0] - add sp, sp, #0x4 - cmp r1, #0x0 - strne lr, [r1, #0x8] - ldr r2, [r0, #0x0] - mov r1, #0x0 - str r2, [lr, #0xc] - str r1, [lr, #0x8] - str lr, [r0, #0x0] - mov r0, #0x1 - ldmia sp!, {pc} -_020AF640: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020AF5E0 - - arm_func_start FUN_020AF64C -FUN_020AF64C: ; 0x020AF64C - stmdb sp!, {r4,lr} - subs lr, r1, #0x1 - mov r2, #0x0 - beq _020AF684 - mov r4, r0 -_020AF660: - add r12, r2, #0x1 - add r2, r0, r2, lsl #0x4 - add r3, r0, r12, lsl #0x4 - str r3, [r2, #0xc] - str r4, [r3, #0x8] - mov r2, r12 - cmp r12, lr - add r4, r4, #0x10 - blo _020AF660 -_020AF684: - mov r2, #0x0 - str r2, [r0, #0x8] - add r1, r0, r1, lsl #0x4 - str r2, [r1, #-0x4] - ldmia sp!, {r4,pc} - arm_func_end FUN_020AF64C - - arm_func_start FUN_020AF698 -FUN_020AF698: ; 0x020AF698 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - arm_func_end FUN_020AF698 - - arm_func_start FUN_020AF6A4 -FUN_020AF6A4: ; 0x020AF6A4 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x30 - ldr r6, _020AF884 ; =UNK_020FF864 - add r5, sp, #0x0 - ldmia r6!, {r0-r3} - mov r12, r5 - stmia r5!, {r0-r3} - ldmia r6!, {r0-r3} - stmia r5!, {r0-r3} - ldr r4, _020AF888 ; =UNK_021CCD6C - ldmia r6, {r0-r3} - stmia r5, {r0-r3} - ldr lr, [r4, #0x10] - ldr r1, [r4, #0xc] - add r0, lr, lr, lsr #0x1 - mov r4, lr, lsr #0x1 - sub r0, r1, r0 - mov r3, #0x0 -_020AF6EC: - cmp r3, #0x0 - beq _020AF6FC - cmp r3, #0x2 - bne _020AF734 -_020AF6FC: - ldr r2, [r12, #0x0] - cmp r2, #0x0 - beq _020AF734 - cmp lr, #0x0 - beq _020AF734 - ldr r1, [r12, #0x8] - cmp r2, lr - movhi r2, lr - add r1, r1, r2 - str r1, [r12, #0x8] - ldr r1, [r12, #0x0] - sub lr, lr, r2 - sub r1, r1, r2 - str r1, [r12, #0x0] -_020AF734: - add r3, r3, #0x1 - cmp r3, #0x4 - add r12, r12, #0xc - blo _020AF6EC - ldr r1, [sp, #0xc] - add r5, sp, #0x0 - sub r1, r1, r4 - str r1, [sp, #0xc] - mov r3, #0x0 -_020AF758: - ldr r2, [r5, #0x0] - cmp r2, #0x0 - beq _020AF790 - cmp r0, #0x0 - beq _020AF790 - ldr r1, [r5, #0x4] - cmp r2, r0 - movhi r2, r0 - add r1, r1, r2 - str r1, [r5, #0x4] - ldr r1, [r5, #0x0] - sub r0, r0, r2 - sub r1, r1, r2 - str r1, [r5, #0x0] -_020AF790: - add r3, r3, #0x1 - cmp r3, #0x4 - add r5, r5, #0xc - blo _020AF758 - ldr r0, _020AF888 ; =UNK_021CCD6C - bl FUN_020AF698 - ldr r0, _020AF88C ; =UNK_021CCD70 - bl FUN_020AF698 - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, [r0, #0x18] - ldr r0, [r0, #0x14] - mov r1, r1, lsr #0x4 - bl FUN_020AF64C - ldr r3, [sp, #0x8] - ldr r1, _020AF888 ; =UNK_021CCD6C - cmp r3, #0x0 - str r0, [r1, #0x8] - beq _020AF7E8 - ldr r0, _020AF88C ; =UNK_021CCD70 - ldr r1, _020AF890 ; =UNK_021CCD74 - mov r2, #0x0 - bl FUN_020AF5E0 -_020AF7E8: - ldr r3, [sp, #0x4] - ldr r2, [sp, #0x8] - cmp r3, #0x0 - beq _020AF804 - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - bl FUN_020AF5E0 -_020AF804: - ldr r3, [sp, #0x20] - cmp r3, #0x0 - beq _020AF820 - ldr r0, _020AF88C ; =UNK_021CCD70 - ldr r1, _020AF890 ; =UNK_021CCD74 - mov r2, #0x40000 - bl FUN_020AF5E0 -_020AF820: - ldr r3, [sp, #0x1c] - ldr r0, [sp, #0x20] - cmp r3, #0x0 - add r2, r0, #0x40000 - beq _020AF840 - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - bl FUN_020AF5E0 -_020AF840: - ldr r3, [sp, #0x28] - cmp r3, #0x0 - beq _020AF85C - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - mov r2, #0x60000 - bl FUN_020AF5E0 -_020AF85C: - ldr r3, [sp, #0x10] - cmp r3, #0x0 - addeq sp, sp, #0x30 - ldmeqia sp!, {r4-r6,pc} - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - add r2, r4, #0x20000 - bl FUN_020AF5E0 - add sp, sp, #0x30 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AF884: .word UNK_020FF864 -_020AF888: .word UNK_021CCD6C -_020AF88C: .word UNK_021CCD70 -_020AF890: .word UNK_021CCD74 - arm_func_end FUN_020AF6A4 - - arm_func_start FUN_020AF894 -FUN_020AF894: ; 0x020AF894 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020AF908 ; =0x7FFF0000 - ldr r1, _020AF90C ; =0x0000FFFF - and r2, r0, r2 - and r3, r0, r1 - mov r1, r2, lsr #0x10 - and r0, r0, #0x80000000 - mov r2, r3, lsl #0x3 - movs r3, r1, lsl #0x4 - mov r0, r0, lsr #0x1f - beq _020AF8FC - cmp r0, #0x0 - beq _020AF8DC - ldr r0, _020AF910 ; =UNK_021CCD70 - ldr r1, _020AF914 ; =UNK_021CCD74 - bl FUN_020AF334 - b _020AF8E8 -_020AF8DC: - ldr r0, _020AF918 ; =UNK_021CCD6C - ldr r1, _020AF914 ; =UNK_021CCD74 - bl FUN_020AF334 -_020AF8E8: - cmp r0, #0x0 - movne r0, #0x0 - add sp, sp, #0x4 - moveq r0, #0x1 - ldmia sp!, {pc} -_020AF8FC: - mov r0, #0x2 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AF908: .word 0x7FFF0000 -_020AF90C: .word 0x0000FFFF -_020AF910: .word UNK_021CCD70 -_020AF914: .word UNK_021CCD74 -_020AF918: .word UNK_021CCD6C - arm_func_end FUN_020AF894 - - arm_func_start FUN_020AF91C -FUN_020AF91C: ; 0x020AF91C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - cmp r0, #0x0 - moveq r5, #0x10 - addne r0, r0, #0xf - bicne r5, r0, #0xf - ldr r0, _020AF9B0 ; =0x0007FFF0 - mov r4, r1 - cmp r5, r0 - addcs sp, sp, #0x4 - movcs r0, #0x0 - ldmcsia sp!, {r4-r5,pc} - cmp r4, #0x0 - beq _020AF96C - ldr r0, _020AF9B4 ; =UNK_021CCD70 - ldr r1, _020AF9B8 ; =UNK_021CCD74 - add r2, sp, #0x0 - mov r3, r5 - bl FUN_020AF5C4 - b _020AF980 -_020AF96C: - ldr r0, _020AF9BC ; =UNK_021CCD6C - ldr r1, _020AF9B8 ; =UNK_021CCD74 - add r2, sp, #0x0 - mov r3, r5 - bl FUN_020AF5C4 -_020AF980: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} - ldr r1, [sp, #0x0] - ldr r0, _020AF9C0 ; =0x0000FFFF - mov r2, r5, lsr #0x4 - and r0, r0, r1, lsr #0x3 - orr r0, r0, r2, lsl #0x10 - orr r0, r0, r4, lsl #0x1f - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AF9B0: .word 0x0007FFF0 -_020AF9B4: .word UNK_021CCD70 -_020AF9B8: .word UNK_021CCD74 -_020AF9BC: .word UNK_021CCD6C -_020AF9C0: .word 0x0000FFFF - arm_func_end FUN_020AF91C - - arm_func_start FUN_020AF9C4 -FUN_020AF9C4: ; 0x020AF9C4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr ip, _020AFA14 ; =UNK_021CCD6C - str r0, [r12, #0xc] - str r1, [r12, #0x10] - str r2, [r12, #0x14] - str r3, [r12, #0x18] - bl FUN_020AF6A4 - ldr r0, [sp, #0x8] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r3, _020AFA18 ; =FUN_020AF91C - ldr r1, _020AFA1C ; =UNK_021064B8 - ldr r2, _020AFA20 ; =FUN_020AF894 - ldr r0, _020AFA24 ; =UNK_021064BC - str r3, [r1, #0x0] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AFA14: .word UNK_021CCD6C -_020AFA18: .word FUN_020AF91C -_020AFA1C: .word UNK_021064B8 -_020AFA20: .word FUN_020AF894 -_020AFA24: .word UNK_021064BC - arm_func_end FUN_020AF9C4 - - arm_func_start FUN_020AFA28 -FUN_020AFA28: ; 0x020AFA28 - mov r0, r0, lsl #0x4 - bx lr - arm_func_end FUN_020AFA28 - - arm_func_start FUN_020AFA30 -FUN_020AFA30: ; 0x020AFA30 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020AFA78 ; =UNK_021CCD88 - ldr r1, [r0, #0x10] - ldr r0, [r0, #0xc] - mov r1, r1, lsr #0x4 - bl FUN_020AF64C - ldr r1, _020AFA78 ; =UNK_021CCD88 - str r0, [r1, #0x4] - mov r0, r1 - bl FUN_020AF698 - ldr r0, _020AFA78 ; =UNK_021CCD88 - ldr r1, _020AFA7C ; =UNK_021CCD8C - ldr r3, [r0, #0x8] - mov r2, #0x0 - bl FUN_020AF5E0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AFA78: .word UNK_021CCD88 -_020AFA7C: .word UNK_021CCD8C - arm_func_end FUN_020AFA30 - - arm_func_start FUN_020AFA80 -FUN_020AFA80: ; 0x020AFA80 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r1, #0x10000 - rsb r2, r1, #0x0 - ldr r1, _020AFAC8 ; =0x0000FFFF - and r2, r0, r2 - and r12, r0, r1 - mov r3, r2, lsr #0x10 - ldr r0, _020AFACC ; =UNK_021CCD88 - ldr r1, _020AFAD0 ; =UNK_021CCD8C - mov r2, r12, lsl #0x3 - mov r3, r3, lsl #0x3 - bl FUN_020AF334 - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AFAC8: .word 0x0000FFFF -_020AFACC: .word UNK_021CCD88 -_020AFAD0: .word UNK_021CCD8C - arm_func_end FUN_020AFA80 - - arm_func_start FUN_020AFAD4 -FUN_020AFAD4: ; 0x020AFAD4 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - cmp r0, #0x0 - moveq r4, #0x8 - addne r0, r0, #0x7 - bicne r4, r0, #0x7 - ldr r0, _020AFB98 ; =0x0007FFF8 - cmp r4, r0 - addcs sp, sp, #0x8 - movcs r0, #0x0 - ldmcsia sp!, {r4,pc} - cmp r1, #0x0 - beq _020AFB50 - mov r12, #0x8 - ldr r0, _020AFB9C ; =UNK_021CCD88 - ldr r1, _020AFBA0 ; =UNK_021CCD8C - add r2, sp, #0x4 - mov r3, r4 - str r12, [sp, #0x0] - bl FUN_020AF488 - ldr r2, [sp, #0x4] - add r1, r2, r4 - cmp r1, #0x10000 - bls _020AFB6C - ldr r0, _020AFB9C ; =UNK_021CCD88 - ldr r1, _020AFBA0 ; =UNK_021CCD8C - mov r3, r4 - bl FUN_020AF334 - add sp, sp, #0x8 - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020AFB50: - ldr r0, _020AFB9C ; =UNK_021CCD88 - mov r12, #0x10 - ldr r1, _020AFBA0 ; =UNK_021CCD8C - add r2, sp, #0x4 - mov r3, r4 - str r12, [sp, #0x0] - bl FUN_020AF488 -_020AFB6C: - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} - ldr r1, [sp, #0x4] - ldr r0, _020AFBA4 ; =0x0000FFFF - mov r2, r4, lsr #0x3 - and r0, r0, r1, lsr #0x3 - orr r0, r0, r2, lsl #0x10 - add sp, sp, #0x8 - ldmia sp!, {r4,pc} - .balign 4 -_020AFB98: .word 0x0007FFF8 -_020AFB9C: .word UNK_021CCD88 -_020AFBA0: .word UNK_021CCD8C -_020AFBA4: .word 0x0000FFFF - arm_func_end FUN_020AFAD4 - - arm_func_start FUN_020AFBA8 -FUN_020AFBA8: ; 0x020AFBA8 - stmdb sp!, {r4,lr} - ldr ip, _020AFBE8 ; =UNK_021CCD88 - mov r4, r3 - str r0, [r12, #0x8] - str r1, [r12, #0xc] - str r2, [r12, #0x10] - bl FUN_020AFA30 - cmp r4, #0x0 - ldmeqia sp!, {r4,pc} - ldr r3, _020AFBEC ; =FUN_020AFAD4 - ldr r1, _020AFBF0 ; =UNK_021064C0 - ldr r2, _020AFBF4 ; =FUN_020AFA80 - ldr r0, _020AFBF8 ; =UNK_021064C4 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020AFBE8: .word UNK_021CCD88 -_020AFBEC: .word FUN_020AFAD4 -_020AFBF0: .word UNK_021064C0 -_020AFBF4: .word FUN_020AFA80 -_020AFBF8: .word UNK_021064C4 - arm_func_end FUN_020AFBA8 - - arm_func_start FUN_020AFBFC -FUN_020AFBFC: ; 0x020AFBFC - mov r0, r0, lsl #0x4 - bx lr - arm_func_end FUN_020AFBFC - - arm_func_start FUN_020AFC04 -FUN_020AFC04: ; 0x020AFC04 - ldrh r2, [r0, #0x0] - cmp r2, r1 - ldrhi r0, [r0, #0x4] - addhi r0, r0, r1, lsl #0x4 - movls r0, #0x0 - bx lr - arm_func_end FUN_020AFC04 - - arm_func_start FUN_020AFC1C -FUN_020AFC1C: ; 0x020AFC1C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r1, [r0, #0x4] - mov r6, #0x0 - add r1, r1, r0 - str r1, [r0, #0x4] - ldr r1, [r0, #0x8] - add r1, r1, r0 - str r1, [r0, #0x8] - ldr r1, [r0, #0xc] - add r1, r1, r0 - str r1, [r0, #0xc] - ldrh r1, [r0, #0x0] - ldr r4, [r0, #0x4] - ldr lr, [r0, #0x8] - cmp r1, #0x0 - ldr r12, [r0, #0xc] - bls _020AFCCC - mov r1, r6 -_020AFC68: - add r2, r4, r6, lsl #0x4 - ldr r5, [r2, #0xc] - mov r3, r6, lsl #0x4 - add r5, lr, r5 - str r5, [r2, #0xc] - ldrh r7, [r4, r3] - mov r5, r1 - cmp r7, #0x0 - bls _020AFCB4 -_020AFC8C: - ldr r9, [r2, #0xc] - add r7, r5, #0x1 - ldr r8, [r9, r5, lsl #0x3] - mov r7, r7, lsl #0x10 - add r8, r12, r8 - str r8, [r9, r5, lsl #0x3] - ldrh r8, [r4, r3] - mov r5, r7, lsr #0x10 - cmp r5, r8 - blo _020AFC8C -_020AFCB4: - add r2, r6, #0x1 - mov r2, r2, lsl #0x10 - ldrh r3, [r0, #0x0] - mov r6, r2, lsr #0x10 - cmp r6, r3 - blo _020AFC68 -_020AFCCC: - ldr r1, [r0, #0x14] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,pc} - add r1, r1, r0 - str r1, [r0, #0x14] - ldr r1, [r0, #0x14] - mov r12, #0x0 - add r2, r1, #0x8 - ldr r0, [r2, #0x4] - add r0, r0, r2 - str r0, [r2, #0x4] - ldrh r0, [r1, #0x8] - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r9,pc} - mov r0, r12 - mov r6, r12 -_020AFD14: - ldr r5, [r2, #0x4] - mov r3, r6 - add r1, r5, r0 - ldr r4, [r1, #0x4] - add r4, r4, r2 - str r4, [r1, #0x4] - ldr r4, [r1, #0x8] - add r4, r4, r2 - str r4, [r1, #0x8] - ldrh r4, [r5, r0] - cmp r4, #0x0 - bls _020AFD6C - mov r7, r6 -_020AFD48: - ldr r5, [r1, #0x8] - add r3, r3, #0x1 - ldr r4, [r5, r7] - add r4, r4, r2 - str r4, [r5, r7] - ldrh r4, [r1, #0x0] - add r7, r7, #0x4 - cmp r3, r4 - blo _020AFD48 -_020AFD6C: - ldrh r1, [r2, #0x0] - add r12, r12, #0x1 - add r0, r0, #0xc - cmp r12, r1 - blo _020AFD14 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AFC1C - - arm_func_start thunk_FUN_020afda0 -thunk_FUN_020afda0: ; 0x020AFD88 - ldr ip, _020AFD90 ; =FUN_020AFDA0 - bx r12 - .balign 4 -_020AFD90: .word FUN_020AFDA0 - arm_func_end thunk_FUN_020afda0 - - arm_func_start thunk_FUN_020afda0_2 -thunk_FUN_020afda0_2: ; 0x020AFD94 - ldr ip, _020AFD9C ; =FUN_020AFDA0 - bx r12 - .balign 4 -_020AFD9C: .word FUN_020AFDA0 - arm_func_end thunk_FUN_020afda0_2 - - arm_func_start FUN_020AFDA0 -FUN_020AFDA0: ; 0x020AFDA0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020AFDE4 ; =0x41424E4B - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020AFC1C - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AFDE4: .word 0x41424E4B - arm_func_end FUN_020AFDA0 - - arm_func_start FUN_020AFDE8 -FUN_020AFDE8: ; 0x020AFDE8 - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldr r1, [r5, #0x4] - add r1, r1, r5 - str r1, [r5, #0x4] - bl FUN_020AFF10 - ldrh r1, [r5, #0x0] - mov r4, r0 - mov r6, #0x0 - cmp r1, #0x0 - bls _020AFE44 -_020AFE14: - mov r0, r5 - mov r1, r6 - bl FUN_020AFE8C - ldr r2, [r0, #0x4] - add r1, r6, #0x1 - add r2, r2, r4 - str r2, [r0, #0x4] - mov r0, r1, lsl #0x10 - ldrh r1, [r5, #0x0] - mov r6, r0, lsr #0x10 - cmp r6, r1 - blo _020AFE14 -_020AFE44: - ldr r0, [r5, #0xc] - cmp r0, #0x0 - beq _020AFE6C - add r0, r0, r5 - str r0, [r5, #0xc] - ldr r1, [r5, #0xc] - ldr r0, [r1, #0x4] - add r0, r0, r1 - str r0, [r1, #0x4] - str r1, [r5, #0xc] -_020AFE6C: - ldr r0, [r5, #0x14] - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - add r0, r0, r5 - str r0, [r5, #0x14] - ldr r0, [r5, #0x14] - bl FUN_020AFF00 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AFDE8 - - arm_func_start FUN_020AFE8C -FUN_020AFE8C: ; 0x020AFE8C - ldrh r2, [r0, #0x0] - cmp r1, r2 - movcs r0, #0x0 - bxcs lr - ldrh r2, [r0, #0x2] - ands r2, r2, #0x1 - ldrne r0, [r0, #0x4] - addne r0, r0, r1, lsl #0x4 - ldreq r0, [r0, #0x4] - addeq r0, r0, r1, lsl #0x3 - bx lr - arm_func_end FUN_020AFE8C - - arm_func_start FUN_020AFEB8 -FUN_020AFEB8: ; 0x020AFEB8 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020AFEFC ; =0x4345424B - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020AFDE8 - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AFEFC: .word 0x4345424B - arm_func_end FUN_020AFEB8 - - arm_func_start FUN_020AFF00 -FUN_020AFF00: ; 0x020AFF00 - ldr ip, _020AFF0C ; =FUN_020B01B0 - add r0, r0, #0x8 - bx r12 - .balign 4 -_020AFF0C: .word FUN_020B01B0 - arm_func_end FUN_020AFF00 - - arm_func_start FUN_020AFF10 -FUN_020AFF10: ; 0x020AFF10 - ldrh r1, [r0, #0x2] - ands r1, r1, #0x1 - ldrneh r1, [r0, #0x0] - ldrne r0, [r0, #0x4] - addne r0, r0, r1, lsl #0x4 - ldreqh r1, [r0, #0x0] - ldreq r0, [r0, #0x4] - addeq r0, r0, r1, lsl #0x3 - bx lr - arm_func_end FUN_020AFF10 - - arm_func_start FUN_020AFF34 -FUN_020AFF34: ; 0x020AFF34 - ldrh r2, [r0, #0x0] - cmp r1, r2 - ldrcc r0, [r0, #0x4] - addcc r0, r0, r1, lsl #0x3 - movcs r0, #0x0 - bx lr - arm_func_end FUN_020AFF34 - - arm_func_start FUN_020AFF4C -FUN_020AFF4C: ; 0x020AFF4C - stmdb sp!, {r4,lr} - ldr r1, [r0, #0x4] - mov r4, #0x0 - add r1, r1, r0 - str r1, [r0, #0x4] - ldr r1, [r0, #0x8] - add r1, r1, r0 - str r1, [r0, #0x8] - ldrh r1, [r0, #0x0] - ldr lr, [r0, #0x4] - cmp r1, #0x0 - bls _020AFFA8 -_020AFF7C: - add r3, lr, r4, lsl #0x3 - ldr r12, [r0, #0x8] - ldr r2, [r3, #0x4] - add r1, r4, #0x1 - add r2, r12, r2 - str r2, [r3, #0x4] - mov r1, r1, lsl #0x10 - ldrh r2, [r0, #0x0] - mov r4, r1, lsr #0x10 - cmp r4, r2 - blo _020AFF7C -_020AFFA8: - ldr r1, [r0, #0x10] - cmp r1, #0x0 - ldmeqia sp!, {r4,pc} - add r1, r1, r0 - str r1, [r0, #0x10] - ldr r0, [r0, #0x10] - bl FUN_020AFFC8 - ldmia sp!, {r4,pc} - arm_func_end FUN_020AFF4C - - arm_func_start FUN_020AFFC8 -FUN_020AFFC8: ; 0x020AFFC8 - ldr ip, _020AFFD4 ; =FUN_020B01B0 - add r0, r0, #0x8 - bx r12 - .balign 4 -_020AFFD4: .word FUN_020B01B0 - arm_func_end FUN_020AFFC8 - - arm_func_start FUN_020AFFD8 -FUN_020AFFD8: ; 0x020AFFD8 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020B001C ; =0x4D43424B - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020AFF4C - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B001C: .word 0x4D43424B - arm_func_end FUN_020AFFD8 - - arm_func_start FUN_020B0020 -FUN_020B0020: ; 0x020B0020 - ldr r1, [r0, #0x14] - add r1, r1, r0 - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_020B0020 - - arm_func_start FUN_020B0030 -FUN_020B0030: ; 0x020B0030 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020B0074 ; =0x43484152 - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020B0020 - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B0074: .word 0x43484152 - arm_func_end FUN_020B0030 - - arm_func_start FUN_020B0078 -FUN_020B0078: ; 0x020B0078 - ldr r1, [r0, #0x14] - add r1, r1, r0 - str r1, [r0, #0x14] - bx lr - arm_func_end FUN_020B0078 - - arm_func_start FUN_020B0088 -FUN_020B0088: ; 0x020B0088 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020B00CC ; =0x43484152 - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020B0078 - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B00CC: .word 0x43484152 - arm_func_end FUN_020B0088 - - arm_func_start FUN_020B00D0 -FUN_020B00D0: ; 0x020B00D0 - ldr r1, [r0, #0xc] - add r1, r1, r0 - str r1, [r0, #0xc] - bx lr - arm_func_end FUN_020B00D0 - - arm_func_start FUN_020B00E0 -FUN_020B00E0: ; 0x020B00E0 - ldr r1, [r0, #0x4] - add r1, r1, r0 - str r1, [r0, #0x4] - bx lr - arm_func_end FUN_020B00E0 - - arm_func_start FUN_020B00F0 -FUN_020B00F0: ; 0x020B00F0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020B0134 ; =0x50434D50 - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020B00E0 - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B0134: .word 0x50434D50 - arm_func_end FUN_020B00F0 - - arm_func_start FUN_020B0138 -FUN_020B0138: ; 0x020B0138 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldr r1, _020B017C ; =0x504C5454 - bl FUN_020B01F8 - movs r4, r0 - moveq r0, #0x0 - addeq sp, sp, #0x4 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r5,pc} - add r0, r4, #0x8 - bl FUN_020B00D0 - add r0, r4, #0x8 - str r0, [r5, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B017C: .word 0x504C5454 - arm_func_end FUN_020B0138 - - arm_func_start FUN_020B0180 -FUN_020B0180: ; 0x020B0180 - stmdb sp!, {r4,lr} - mov r4, r1 - ldr r1, _020B01AC ; =0x5343524E - bl FUN_020B01F8 - cmp r0, #0x0 - addne r0, r0, #0x8 - strne r0, [r4, #0x0] - movne r0, #0x1 - moveq r0, #0x0 - streq r0, [r4, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020B01AC: .word 0x5343524E - arm_func_end FUN_020B0180 - - arm_func_start FUN_020B01B0 -FUN_020B01B0: ; 0x020B01B0 - ldr r1, [r0, #0x4] - mov r12, #0x0 - add r1, r1, r0 - str r1, [r0, #0x4] - ldrh r1, [r0, #0x0] - cmp r1, #0x0 - bxls lr -_020B01CC: - ldr r3, [r0, #0x4] - add r1, r12, #0x1 - ldr r2, [r3, r12, lsl #0x2] - mov r1, r1, lsl #0x10 - add r2, r0, r2 - str r2, [r3, r12, lsl #0x2] - ldrh r2, [r0, #0x0] - mov r12, r1, lsr #0x10 - cmp r12, r2 - blo _020B01CC - bx lr - arm_func_end FUN_020B01B0 - - arm_func_start FUN_020B01F8 -FUN_020B01F8: ; 0x020B01F8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r2, [r0, #0xc] - ldrh r12, [r0, #0xe] - mov lr, #0x0 - add r0, r0, r2 - cmp r12, #0x0 - bls _020B0244 -_020B0218: - ldr r2, [r0, #0x0] - cmp r2, r1 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - add r2, lr, #0x1 - mov r2, r2, lsl #0x10 - ldr r3, [r0, #0x4] - mov lr, r2, lsr #0x10 - cmp lr, r12 - add r0, r0, r3 - blo _020B0218 -_020B0244: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020B01F8 - - arm_func_start FUN_020B0250 -FUN_020B0250: ; 0x020B0250 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r5, _020B02C0 ; =0x04000470 - mov r0, r0, lsl #0xc - str r0, [r5, #0x0] - mov r4, r1, lsl #0xc - ldr r12, [sp, #0x10] - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x1c] - str r4, [r5, #0x0] - mov r4, r2, lsl #0xc - ldr r2, [sp, #0x18] - ldr lr, _020B02C4 ; =0x0400046C - str r4, [r5, #0x0] - mov r4, r3, lsl #0xc - ldr r3, [sp, #0x20] - str r4, [lr, #0x0] - mov r12, r12, lsl #0xc - str r12, [lr, #0x0] - mov r12, #0x1000 - mov r0, r0, lsl #0xc - mov r1, r1, lsl #0xc - mov r2, r2, lsl #0xc - mov r3, r3, lsl #0xc - str r12, [lr, #0x0] - bl FUN_020B0340 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B02C0: .word 0x04000470 -_020B02C4: .word 0x0400046C - arm_func_end FUN_020B0250 - - arm_func_start FUN_020B02C8 -FUN_020B02C8: ; 0x020B02C8 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r2, _020B0330 ; =0xBFFF0000 - ldr r0, _020B0334 ; =0x04000580 - mov r1, #0x400000 - str r2, [r0, #0x0] - rsb r0, r1, #0x0 - str r0, [sp, #0x0] - str r1, [sp, #0x4] - mov r0, #0x0 - str r1, [sp, #0x8] - mov r1, #0x1 - str r1, [sp, #0xc] - mov r2, r0 - mov r1, #0xc0000 - mov r3, #0x100000 - str r0, [sp, #0x10] - bl G3i_OrthoW_ - ldr r1, _020B0338 ; =0x0400044C - mov r2, #0x0 - ldr r0, _020B033C ; =0x04000440 - str r2, [r1, #0x0] - mov r1, #0x1 - str r1, [r0, #0x0] - add sp, sp, #0x14 - ldmia sp!, {pc} - .balign 4 -_020B0330: .word 0xBFFF0000 -_020B0334: .word 0x04000580 -_020B0338: .word 0x0400044C -_020B033C: .word 0x04000440 - arm_func_end FUN_020B02C8 - - arm_func_start FUN_020B0340 -FUN_020B0340: ; 0x020B0340 - stmdb sp!, {r4-r6,lr} - mov r3, r3, lsl #0x8 - mov r0, r0, lsl #0x8 - mov r4, r3, asr #0x10 - mov r3, r0, asr #0x10 - mov r0, r4, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r1, r1, lsl #0x8 - mov r1, r1, asr #0x10 - mov r1, r1, lsl #0x10 - mov r2, r2, lsl #0x8 - mov r2, r2, asr #0x10 - mov r2, r2, lsl #0x10 - ldr ip, _020B03F4 ; =0x04000500 - mov lr, #0x1 - mov r6, r0, lsr #0x10 - mov r5, r3, lsr #0x10 - mov r3, r1, lsr #0x10 - mov r1, r2, lsr #0x10 - ldr r4, _020B03F8 ; =0x04000488 - str lr, [r12, #0x0] - orr r0, r5, r6, lsl #0x10 - ldr lr, _020B03FC ; =0x0400048C - str r0, [r4, #0x0] - mov r0, #0x10000000 - str r0, [lr, #0x0] - mov r12, #0x0 - str r12, [lr, #0x0] - orr r2, r3, r6, lsl #0x10 - ldr r0, _020B0400 ; =0x10001000 - str r2, [r4, #0x0] - str r0, [lr, #0x0] - str r12, [lr, #0x0] - orr r0, r3, r1, lsl #0x10 - str r0, [r4, #0x0] - mov r0, #0x1000 - str r0, [lr, #0x0] - str r12, [lr, #0x0] - orr r0, r5, r1, lsl #0x10 - str r0, [r4, #0x0] - str r12, [lr, #0x0] - ldr r0, _020B0404 ; =0x04000504 - str r12, [lr, #0x0] - str r12, [r0, #0x0] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B03F4: .word 0x04000500 -_020B03F8: .word 0x04000488 -_020B03FC: .word 0x0400048C -_020B0400: .word 0x10001000 -_020B0404: .word 0x04000504 - arm_func_end FUN_020B0340 - - arm_func_start FUN_020B0408 -FUN_020B0408: ; 0x020B0408 - ldr r1, [r0, #0x14] - cmp r1, #0x0 - ldreq r0, [r0, #0x18] - ldreq r1, [r0, #0x8] - cmp r1, #0x2 - beq _020B0428 - cmp r1, #0x4 - bne _020B0430 -_020B0428: - mov r0, #0x1 - bx lr -_020B0430: - mov r0, #0x0 - bx lr - arm_func_end FUN_020B0408 - - arm_func_start FUN_020B0438 -FUN_020B0438: ; 0x020B0438 - ldr ip, _020B0444 ; =FUN_020B0448 - str r1, [r0, #0x18] - bx r12 - .balign 4 -_020B0444: .word FUN_020B0448 - arm_func_end FUN_020B0438 - - arm_func_start FUN_020B0448 -FUN_020B0448: ; 0x020B0448 - ldr r1, [r0, #0x10] - cmp r1, #0x0 - movgt r2, #0x1 - ldr r1, [r0, #0x4] - movle r2, #0x0 - eors r1, r2, r1 - beq _020B047C - ldr r2, [r0, #0x18] - ldrh r1, [r2, #0x2] - ldr r2, [r2, #0xc] - add r1, r2, r1, lsl #0x3 - str r1, [r0, #0x0] - b _020B0494 -_020B047C: - ldr r2, [r0, #0x18] - ldrh r1, [r2, #0x0] - ldr r2, [r2, #0xc] - add r1, r2, r1, lsl #0x3 - sub r1, r1, #0x8 - str r1, [r0, #0x0] -_020B0494: - ldr ip, _020B04A4 ; =FUN_020B0534 - mov r1, #0x0 - str r1, [r0, #0xc] - bx r12 - .balign 4 -_020B04A4: .word FUN_020B0534 - arm_func_end FUN_020B0448 - - arm_func_start FUN_020B04A8 -FUN_020B04A8: ; 0x020B04A8 - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] - str r1, [r0, #0x8] - strh r1, [r0, #0xc] - bx lr - arm_func_end FUN_020B04A8 - - arm_func_start FUN_020B04C0 -FUN_020B04C0: ; 0x020B04C0 - stmdb sp!, {r4,lr} - mov r4, r0 - add r0, r4, #0x1c - bl FUN_020B04A8 - mov r1, #0x0 - str r1, [r4, #0x0] - str r1, [r4, #0x4] - mov r0, #0x1 - str r0, [r4, #0x8] - str r1, [r4, #0xc] - mov r0, #0x1000 - str r0, [r4, #0x10] - str r1, [r4, #0x14] - str r1, [r4, #0x18] - ldmia sp!, {r4,pc} - arm_func_end FUN_020B04C0 - - arm_func_start FUN_020B04FC -FUN_020B04FC: ; 0x020B04FC - ldr r1, [r0, #0x18] - ldr r2, [r0, #0x0] - ldr r0, [r1, #0xc] - sub r0, r2, r0 - mov r0, r0, lsl #0xd - mov r0, r0, lsr #0x10 - bx lr - arm_func_end FUN_020B04FC - - arm_func_start FUN_020B0518 -FUN_020B0518: ; 0x020B0518 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020B06EC - cmp r0, #0x0 - movne r1, #0x0 - strne r1, [r4, #0xc] - ldmia sp!, {r4,pc} - arm_func_end FUN_020B0518 - - arm_func_start FUN_020B0534 -FUN_020B0534: ; 0x020B0534 - stmdb sp!, {r4-r8,lr} - mov r8, r0 - ldr r0, [r8, #0x8] - mov r7, #0x0 - cmp r0, #0x1 - movne r0, r7 - ldmneia sp!, {r4-r8,pc} - ldr r2, [r8, #0x10] - mov r0, #0x800 - smull r3, r1, r2, r1 - adds r0, r3, r0 - adc r1, r1, r7 - mov r0, r0, lsr #0xc - orr r0, r0, r1, lsl #0x14 - bl abs - ldr r1, [r8, #0xc] - add r6, r8, #0xc - add r0, r1, r0 - str r0, [r8, #0xc] - mov r4, r7 - mov r5, #0x1 - b _020B06A8 -_020B058C: - ldr r0, [r8, #0x0] - ldr r1, [r6, #0x0] - ldrh r0, [r0, #0x4] - mov r7, r5 - sub r0, r1, r0, lsl #0xc - str r0, [r6, #0x0] - ldr r0, [r8, #0x10] - cmp r0, #0x0 - movgt r1, r5 - ldr r0, [r8, #0x4] - movle r1, r4 - eors r0, r1, r0 - ldrne r0, [r8, #0x0] - addne r0, r0, #0x8 - strne r0, [r8, #0x0] - ldreq r0, [r8, #0x0] - subeq r0, r0, #0x8 - streq r0, [r8, #0x0] - ldr r1, [r8, #0x10] - ldr r0, [r8, #0x0] - cmp r1, #0x0 - movgt r2, r5 - ldr r1, [r8, #0x4] - movle r2, r4 - eors r1, r2, r1 - beq _020B0614 - ldr r2, [r8, #0x18] - ldrh r1, [r2, #0x0] - ldr r2, [r2, #0xc] - add r1, r2, r1, lsl #0x3 - cmp r0, r1 - movcs r0, r5 - movcc r0, r4 - b _020B0634 -_020B0614: - ldr r2, [r8, #0x18] - ldrh r1, [r2, #0x2] - ldr r2, [r2, #0xc] - add r1, r2, r1, lsl #0x3 - sub r1, r1, #0x8 - cmp r0, r1 - movls r0, r5 - movhi r0, r4 -_020B0634: - cmp r0, #0x0 - beq _020B0644 - mov r0, r8 - bl FUN_020B0710 -_020B0644: - ldr r0, [r8, #0x1c] - cmp r0, #0x0 - beq _020B06A8 - ldr r0, [r8, #0x18] - ldr r2, [r8, #0x1c] - ldr r1, [r8, #0x0] - ldr r0, [r0, #0xc] - cmp r2, #0x2 - sub r0, r1, r0 - mov r0, r0, lsl #0xd - mov r1, r0, lsr #0x10 - beq _020B0680 - cmp r2, #0x3 - beq _020B069C - b _020B06A8 -_020B0680: - ldrh r0, [r8, #0x28] - cmp r1, r0 - bne _020B06A8 - ldr r0, [r8, #0x20] - ldr r2, [r8, #0x24] - blx r2 - b _020B06A8 -_020B069C: - ldr r0, [r8, #0x20] - ldr r2, [r8, #0x24] - blx r2 -_020B06A8: - ldr r0, [r8, #0x8] - cmp r0, #0x0 - beq _020B06CC - ldr r0, [r8, #0x0] - ldr r1, [r8, #0xc] - ldrh r0, [r0, #0x4] - cmp r1, r0, lsl #0xc - movge r0, r5 - bge _020B06D0 -_020B06CC: - mov r0, r4 -_020B06D0: - cmp r0, #0x0 - bne _020B058C - mov r0, r7 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B0534 - - arm_func_start FUN_020B06E0 -FUN_020B06E0: ; 0x020B06E0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - bx lr - arm_func_end FUN_020B06E0 - - arm_func_start FUN_020B06EC -FUN_020B06EC: ; 0x020B06EC - ldr r3, [r0, #0x18] - ldrh r2, [r3, #0x0] - cmp r1, r2 - ldrcc r2, [r3, #0xc] - addcc r1, r2, r1, lsl #0x3 - strcc r1, [r0, #0x0] - movcc r0, #0x1 - movcs r0, #0x0 - bx lr - arm_func_end FUN_020B06EC - - arm_func_start FUN_020B0710 -FUN_020B0710: ; 0x020B0710 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x14] - cmp r0, #0x0 - ldreq r0, [r4, #0x18] - ldreq r0, [r0, #0x8] - cmp r0, #0x3 - beq _020B0738 - cmp r0, #0x4 - bne _020B07B4 -_020B0738: - ldr r0, [r4, #0x4] - eor r0, r0, #0x1 - str r0, [r4, #0x4] - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x0] - ldrh r0, [r1, #0x2] - ldr r1, [r1, #0xc] - add r0, r1, r0, lsl #0x3 - sub r0, r0, #0x8 - cmp r2, r0 - bhi _020B0800 - ldr r0, [r4, #0x1c] - cmp r0, #0x1 - bne _020B0780 - ldr r0, [r4, #0x20] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x24] - blx r2 -_020B0780: - ldr r0, [r4, #0x14] - cmp r0, #0x0 - ldreq r0, [r4, #0x18] - ldreq r0, [r0, #0x8] - cmp r0, #0x2 - beq _020B07A8 - cmp r0, #0x4 - movne r0, #0x0 - strne r0, [r4, #0x8] - bne _020B0800 -_020B07A8: - mov r0, r4 - bl FUN_020B0448 - b _020B0800 -_020B07B4: - ldr r0, [r4, #0x1c] - cmp r0, #0x1 - bne _020B07D0 - ldr r0, [r4, #0x20] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x24] - blx r2 -_020B07D0: - ldr r0, [r4, #0x14] - cmp r0, #0x0 - ldreq r0, [r4, #0x18] - ldreq r0, [r0, #0x8] - cmp r0, #0x2 - beq _020B07F8 - cmp r0, #0x4 - movne r0, #0x0 - strne r0, [r4, #0x8] - bne _020B0800 -_020B07F8: - mov r0, r4 - bl FUN_020B0448 -_020B0800: - ldr r1, [r4, #0x18] - ldr r2, [r4, #0x0] - ldrh r0, [r1, #0x0] - ldr r1, [r1, #0xc] - add r0, r1, r0, lsl #0x3 - sub r0, r0, #0x8 - cmp r2, r0 - strhi r0, [r4, #0x0] - ldmhiia sp!, {r4,pc} - cmp r2, r1 - strcc r1, [r4, #0x0] - ldmia sp!, {r4,pc} - arm_func_end FUN_020B0710 - - arm_func_start FUN_020B0830 -FUN_020B0830: ; 0x020B0830 - ldrh r3, [r0, #0x6] - ldrh r2, [r0, #0x8] - mov r12, #0x0 - add r1, r3, #0x1 - cmp r2, r1 - bgt _020B0854 - ldrh r0, [r0, #0x4] - cmp r0, r3 - movls r12, #0x1 -_020B0854: - cmp r12, #0x0 - subne r0, r3, r2 - addne r0, r0, #0x1 - movne r0, r0, lsl #0x10 - movne r0, r0, lsr #0x10 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020B0830 - - arm_func_start FUN_020B0870 -FUN_020B0870: ; 0x020B0870 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020B09B4 - mov r0, r4 - bl FUN_020B0888 - ldmia sp!, {r4,pc} - arm_func_end FUN_020B0870 - - arm_func_start FUN_020B0888 -FUN_020B0888: ; 0x020B0888 - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldr r0, [r5, #0x14] - cmp r0, #0x0 - beq _020B0944 - ldrh r2, [r5, #0x6] - ldrh r1, [r5, #0x8] - mov r3, #0x0 - add r0, r2, #0x1 - cmp r1, r0 - bgt _020B08C0 - ldrh r0, [r5, #0x4] - cmp r0, r2 - movls r3, #0x1 -_020B08C0: - cmp r3, #0x0 - moveq r4, #0x0 - beq _020B08E0 - ldrh r0, [r5, #0x4] - sub r0, r2, r0 - add r0, r0, #0x1 - mov r0, r0, lsl #0x10 - mov r4, r0, lsr #0xd -_020B08E0: - ldr r2, [r5, #0x0] - ldr r1, _020B09AC ; =UNK_021CCDA0 - mov r0, #0x540 - mla r1, r2, r0, r1 - ldrh r0, [r5, #0x4] - add r2, r1, #0x100 - mov r1, r4 - add r6, r2, r0, lsl #0x3 - mov r0, r6 - bl DC_InvalidateRange - ldr r0, _020B09B0 ; =GXi_DmaId - mvn r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, r1 - beq _020B0930 - mov r1, r6 - mov r3, r4 - mov r2, #0xc0 - bl MI_DmaFill32 - b _020B0998 -_020B0930: - mov r1, r6 - mov r2, r4 - mov r0, #0xc0 - bl MIi_CpuClear32 - b _020B0998 -_020B0944: - ldr r2, [r5, #0x0] - ldr r1, _020B09AC ; =UNK_021CCDA0 - mov r0, #0x540 - mla r1, r2, r0, r1 - ldrh r2, [r5, #0x4] - ldrh r0, [r5, #0x6] - add r1, r1, #0x100 - add r3, r1, r2, lsl #0x3 - sub r0, r0, r2 - add r0, r0, #0x1 - mov r0, r0, lsl #0x10 - movs r2, r0, lsr #0x10 - mov r0, #0x0 - beq _020B0998 - mov r1, #0xc0 -_020B0980: - add r0, r0, #0x1 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, r2 - strh r1, [r3], #0x8 - blo _020B0980 -_020B0998: - ldrh r0, [r5, #0x4] - strh r0, [r5, #0x8] - ldrh r0, [r5, #0xa] - strh r0, [r5, #0xe] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B09AC: .word UNK_021CCDA0 -_020B09B0: .word GXi_DmaId - arm_func_end FUN_020B0888 - - arm_func_start FUN_020B09B4 -FUN_020B09B4: ; 0x020B09B4 - stmdb sp!, {r4-r10,lr} - mov r7, r0 - ldr r0, [r7, #0x14] - cmp r0, #0x0 - beq _020B0A48 - ldr r5, [r7, #0x0] - ldr r1, _020B0BA8 ; =UNK_021CCDA0 - mov r0, #0x540 - mla r1, r5, r0, r1 - ldrh r2, [r7, #0x4] - ldrh r0, [r7, #0x6] - add r1, r1, #0x100 - add r4, r1, r2, lsl #0x3 - sub r0, r0, r2 - add r0, r0, #0x1 - mov r0, r0, lsl #0x13 - mov r6, r0, lsr #0x10 - mov r2, r2, lsl #0x13 - mov r0, r4 - mov r1, r6 - mov r7, r2, lsr #0x10 - bl DC_FlushRange - cmp r5, #0x0 - beq _020B0A20 - cmp r5, #0x1 - beq _020B0A34 - ldmia sp!, {r4-r10,pc} -_020B0A20: - mov r0, r4 - mov r1, r7 - mov r2, r6 - bl GX_LoadOAM - ldmia sp!, {r4-r10,pc} -_020B0A34: - mov r0, r4 - mov r1, r7 - mov r2, r6 - bl GXS_LoadOAM - ldmia sp!, {r4-r10,pc} -_020B0A48: - ldr r0, [r7, #0x0] - ldr r2, _020B0BA8 ; =UNK_021CCDA0 - mov r1, #0x540 - mla r2, r0, r1, r2 - ldrh r5, [r7, #0x4] - ldrh r1, [r7, #0x6] - ldr r3, _020B0BAC ; =UNK_0210655C - add r4, r2, #0x100 - sub r1, r1, r5 - add r1, r1, #0x1 - mov r1, r1, lsl #0x10 - mov r2, r5, lsl #0x13 - add r6, r4, r5, lsl #0x3 - movs r5, r1, lsr #0x10 - mov r4, r2, lsr #0x10 - ldr r9, [r3, r0, lsl #0x2] - mov r10, #0x0 - beq _020B0AC8 - mov r8, #0x6 -_020B0A94: - mov r0, r6 - mov r1, r4 - mov r2, r8 - blx r9 - add r0, r10, #0x1 - add r2, r4, #0x8 - mov r1, r0, lsl #0x10 - mov r0, r2, lsl #0x10 - mov r10, r1, lsr #0x10 - cmp r10, r5 - mov r4, r0, lsr #0x10 - add r6, r6, #0x8 - blo _020B0A94 -_020B0AC8: - ldrh r2, [r7, #0xc] - ldrh r1, [r7, #0xe] - mov r3, #0x0 - add r0, r2, #0x1 - cmp r1, r0 - bgt _020B0AEC - ldrh r0, [r7, #0xa] - cmp r0, r2 - movls r3, #0x1 -_020B0AEC: - cmp r3, #0x0 - ldmeqia sp!, {r4-r10,pc} - ldr r0, [r7, #0x0] - ldr r2, _020B0BA8 ; =UNK_021CCDA0 - mov r1, #0x540 - mla r2, r0, r1, r2 - ldrh r5, [r7, #0xa] - add r4, r2, #0x100 - ldrh r1, [r7, #0xc] - mov r2, r5, lsl #0x15 - ldr r3, _020B0BAC ; =UNK_0210655C - sub r1, r1, r5 - add r1, r1, #0x1 - mov r1, r1, lsl #0x10 - add r9, r4, r5, lsl #0x5 - ldr r5, [r3, r0, lsl #0x2] - movs r8, r1, lsr #0x10 - mov r7, r2, lsr #0x10 - mov r6, #0x0 - ldmeqia sp!, {r4-r10,pc} - mov r4, #0x2 -_020B0B40: - mov r2, r4 - add r0, r9, #0x6 - add r1, r7, #0x6 - blx r5 - mov r2, r4 - add r0, r9, #0xe - add r1, r7, #0xe - blx r5 - mov r2, r4 - add r0, r9, #0x16 - add r1, r7, #0x16 - blx r5 - add r0, r9, #0x1e - add r1, r7, #0x1e - mov r2, r4 - blx r5 - add r0, r7, #0x20 - mov r0, r0, lsl #0x10 - mov r7, r0, lsr #0x10 - add r9, r9, #0x20 - add r0, r6, #0x1 - mov r0, r0, lsl #0x10 - mov r6, r0, lsr #0x10 - cmp r6, r8 - blo _020B0B40 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020B0BA8: .word UNK_021CCDA0 -_020B0BAC: .word UNK_0210655C - arm_func_end FUN_020B09B4 - - arm_func_start FUN_020B0BB0 -FUN_020B0BB0: ; 0x020B0BB0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r12, [r0, #0xc] - ldrh r3, [r0, #0xe] - mov lr, #0x0 - add r2, r12, #0x1 - cmp r3, r2 - bgt _020B0BDC - ldrh r2, [r0, #0xa] - cmp r2, r12 - movls lr, #0x1 -_020B0BDC: - cmp lr, #0x0 - subne r2, r12, r3 - addne r2, r2, #0x1 - movne r2, r2, lsl #0x10 - movne r2, r2, lsr #0x10 - moveq r2, #0x0 - cmp r2, #0x1 - movcs r2, #0x1 - movcc r2, #0x0 - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldreq r0, _020B0C74 ; =0x0000FFFE - ldmeqia sp!, {pc} - ldr lr, [r0, #0x0] - ldr r3, _020B0C78 ; =UNK_021CCDA0 - mov r2, #0x540 - mla r12, lr, r2, r3 - ldr r3, [r1, #0x0] - ldrh r2, [r0, #0xe] - add r12, r12, #0x100 - mov r3, r3, asr #0x4 - add r12, r12, r2, lsl #0x5 - strh r3, [r12, #0x6] - ldr r3, [r1, #0x4] - mov r3, r3, asr #0x4 - strh r3, [r12, #0xe] - ldr r3, [r1, #0x8] - mov r3, r3, asr #0x4 - strh r3, [r12, #0x16] - ldr r1, [r1, #0xc] - mov r1, r1, asr #0x4 - strh r1, [r12, #0x1e] - ldrh r1, [r0, #0xe] - add r1, r1, #0x1 - strh r1, [r0, #0xe] - mov r0, r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B0C74: .word 0x0000FFFE -_020B0C78: .word UNK_021CCDA0 - arm_func_end FUN_020B0BB0 - - arm_func_start FUN_020B0C7C -FUN_020B0C7C: ; 0x020B0C7C - stmdb sp!, {r4,lr} - ldrh r12, [r0, #0x6] - ldrh r4, [r0, #0x8] - mov lr, #0x0 - add r3, r12, #0x1 - cmp r4, r3 - bgt _020B0CA4 - ldrh r3, [r0, #0x4] - cmp r3, r12 - movls lr, #0x1 -_020B0CA4: - cmp lr, #0x0 - subne r3, r12, r4 - addne r3, r3, #0x1 - movne r3, r3, lsl #0x10 - movne r3, r3, lsr #0x10 - moveq r3, #0x0 - cmp r3, #0x1 - movcs r3, #0x1 - movcc r3, #0x0 - cmp r3, #0x0 - beq _020B0D48 - ldr r4, [r0, #0x0] - ldr ip, _020B0D50 ; =UNK_021CCDA0 - mov r3, #0x540 - mla r12, r4, r3, r12 - ldrh r3, [r0, #0x8] - add r4, r12, #0x100 - ldrh r12, [r1, #0x0] - mov lr, r3, lsl #0x3 - add r3, r4, r3, lsl #0x3 - strh r12, [r4, lr] - ldrh lr, [r1, #0x2] - ldr ip, _020B0D54 ; =0x0000FFFE - strh lr, [r3, #0x2] - ldrh r1, [r1, #0x4] - cmp r2, r12 - strh r1, [r3, #0x4] - beq _020B0D34 - ldr r1, [r3, #0x0] - mov r12, r1, lsl #0x16 - mov r12, r12, lsr #0x1e - ands r12, r12, #0x1 - bicne r12, r1, #0x3e000000 - andne r1, r2, #0x1f - orrne r1, r12, r1, lsl #0x19 - strne r1, [r3, #0x0] -_020B0D34: - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - mov r0, #0x1 - ldmia sp!, {r4,pc} -_020B0D48: - mov r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020B0D50: .word UNK_021CCDA0 -_020B0D54: .word 0x0000FFFE - arm_func_end FUN_020B0C7C - - arm_func_start FUN_020B0D58 -FUN_020B0D58: ; 0x020B0D58 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldrh lr, [r0, #0x6] - ldrh r12, [r0, #0x8] - mov r4, #0x0 - add r3, lr, #0x1 - cmp r12, r3 - bgt _020B0D84 - ldrh r3, [r0, #0x4] - cmp r3, lr - movls r4, #0x1 -_020B0D84: - cmp r4, #0x0 - subne r3, lr, r12 - addne r3, r3, #0x1 - movne r3, r3, lsl #0x10 - movne r3, r3, lsr #0x10 - moveq r3, #0x0 - cmp r3, r2 - movcs r3, #0x1 - movcc r3, #0x0 - cmp r3, #0x0 - beq _020B0E24 - ldr lr, [r0, #0x0] - ldr ip, _020B0E30 ; =UNK_021CCDA0 - mov r3, #0x540 - mla r12, lr, r3, r12 - ldrh r3, [r0, #0x8] - add r12, r12, #0x100 - cmp r2, #0x0 - add r4, r12, r3, lsl #0x3 - mov r5, #0x0 - ble _020B0E18 - add r3, r0, #0x8 -_020B0DDC: - ldrh lr, [r1, #0x0] - mov r0, r5, lsl #0x3 - add r12, r4, r5, lsl #0x3 - strh lr, [r4, r0] - ldrh r0, [r1, #0x2] - add r5, r5, #0x1 - cmp r5, r2 - strh r0, [r12, #0x2] - ldrh r0, [r1, #0x4] - add r1, r1, #0x8 - strh r0, [r12, #0x4] - ldrh r0, [r3, #0x0] - add r0, r0, #0x1 - strh r0, [r3, #0x0] - blt _020B0DDC -_020B0E18: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,pc} -_020B0E24: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B0E30: .word UNK_021CCDA0 - arm_func_end FUN_020B0D58 - - arm_func_start FUN_020B0E34 -FUN_020B0E34: ; 0x020B0E34 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r5, [sp, #0x1c] - ldr r6, _020B0FB4 ; =UNK_021CCDA0 - mov r4, #0x540 - mla r4, r5, r4, r6 - mov lr, r1 - sub r1, r2, #0x1 - add r1, lr, r1 - mov r1, r1, lsl #0x10 - mov r12, r1, lsr #0x10 - add r7, r4, lr, lsl #0x1 - add r2, r4, r12, lsl #0x1 - mov r6, r0 - mov r5, r3 - cmp r7, r2 - mov r3, lr, lsl #0x1 - bhi _020B0E9C - ldr r0, _020B0FB8 ; =0x0000FFFF -_020B0E80: - ldrh r1, [r7, #0x0] - cmp r1, r0 - movne r0, #0x0 - bne _020B0EA0 - add r7, r7, #0x2 - cmp r7, r2 - bls _020B0E80 -_020B0E9C: - mov r0, #0x1 -_020B0EA0: - cmp r0, #0x0 - beq _020B0EE0 - ldr r0, _020B0FBC ; =UNK_021CCD9C - sub r2, r12, lr - ldrh r7, [r0, #0x0] - add r1, r4, r3 - mov r2, r2, lsl #0x1 - add r3, r7, #0x1 - strh r3, [r0, #0x0] - strh r7, [r6, #0x10] - strh lr, [r6, #0x4] - strh r12, [r6, #0x6] - strh lr, [r6, #0x8] - ldrh r0, [r6, #0x10] - bl MIi_CpuClear16 - b _020B0EEC -_020B0EE0: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020B0EEC: - ldrh r0, [sp, #0x18] - add r4, r4, #0x500 - cmp r0, #0x0 - bne _020B0F18 - mov r0, #0x20 - strh r0, [r6, #0xa] - mov r0, #0x0 - strh r0, [r6, #0xc] - ldrh r0, [r6, #0xa] - strh r0, [r6, #0xe] - b _020B0F98 -_020B0F18: - sub r0, r0, #0x1 - add r0, r5, r0 - mov r0, r0, lsl #0x10 - mov r12, r0, lsr #0x10 - add r7, r4, r5, lsl #0x1 - add r2, r4, r12, lsl #0x1 - cmp r7, r2 - mov r3, r5, lsl #0x1 - bhi _020B0F5C - ldr r0, _020B0FB8 ; =0x0000FFFF -_020B0F40: - ldrh r1, [r7, #0x0] - cmp r1, r0 - movne r0, #0x0 - bne _020B0F60 - add r7, r7, #0x2 - cmp r7, r2 - bls _020B0F40 -_020B0F5C: - mov r0, #0x1 -_020B0F60: - cmp r0, #0x0 - beq _020B0F8C - strh r5, [r6, #0xa] - strh r12, [r6, #0xc] - strh r5, [r6, #0xe] - ldrh r0, [r6, #0x10] - sub r2, r12, r5 - add r1, r4, r3 - mov r2, r2, lsl #0x1 - bl MIi_CpuClear16 - b _020B0F98 -_020B0F8C: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020B0F98: - mov r1, #0x0 - ldr r0, [sp, #0x1c] - str r1, [r6, #0x14] - str r0, [r6, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B0FB4: .word UNK_021CCDA0 -_020B0FB8: .word 0x0000FFFF -_020B0FBC: .word UNK_021CCD9C - arm_func_end FUN_020B0E34 - - arm_func_start FUN_020B0FC0 -FUN_020B0FC0: ; 0x020B0FC0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020B1060 ; =UNK_021CCEA0 - mov r0, #0xc0 - mov r2, #0x400 - bl MIi_CpuClear16 - ldr r1, _020B1064 ; =UNK_021CD3E0 - mov r0, #0xc0 - mov r2, #0x400 - bl MIi_CpuClear16 - ldr r1, _020B1068 ; =UNK_021CD920 - mov r0, #0xc0 - mov r2, #0x400 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1070 ; =UNK_021CCDA0 - mov r2, #0x100 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1074 ; =UNK_021CD2E0 - mov r2, #0x100 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1078 ; =UNK_021CD820 - mov r2, #0x100 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B107C ; =UNK_021CD2A0 - mov r2, #0x40 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1080 ; =UNK_021CD7E0 - mov r2, #0x40 - bl MIi_CpuClear16 - ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1084 ; =UNK_021CDD20 - mov r2, #0x40 - bl MIi_CpuClear16 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B1060: .word UNK_021CCEA0 -_020B1064: .word UNK_021CD3E0 -_020B1068: .word UNK_021CD920 -_020B106C: .word 0x0000FFFF -_020B1070: .word UNK_021CCDA0 -_020B1074: .word UNK_021CD2E0 -_020B1078: .word UNK_021CD820 -_020B107C: .word UNK_021CD2A0 -_020B1080: .word UNK_021CD7E0 -_020B1084: .word UNK_021CDD20 - arm_func_end FUN_020B0FC0 - - arm_func_start FUN_020B1088 -FUN_020B1088: ; 0x020B1088 - ldr ip, _020B1094 ; =MIi_CpuCopy16 - add r1, r1, #0x7000000 - bx r12 - .balign 4 -_020B1094: .word MIi_CpuCopy16 - arm_func_end FUN_020B1088 - - arm_func_start FUN_020B1098 -FUN_020B1098: ; 0x020B1098 - ldr r3, _020B10A8 ; =0x07000400 - ldr ip, _020B10AC ; =MIi_CpuCopy16 - add r1, r1, r3 - bx r12 - .balign 4 -_020B10A8: .word 0x07000400 -_020B10AC: .word MIi_CpuCopy16 - arm_func_end FUN_020B1098 - - arm_func_start FUN_020B10B0 -FUN_020B10B0: ; 0x020B10B0 - mov r1, r1, lsl #0x1 - ldrh r0, [r0, r1] - bx lr - arm_func_end FUN_020B10B0 - - arm_func_start FUN_020B10BC -FUN_020B10BC: ; 0x020B10BC - ldr r0, [r0, r1, lsl #0x2] - bx lr - arm_func_end FUN_020B10BC - - arm_func_start FUN_020B10C4 -FUN_020B10C4: ; 0x020B10C4 - str r2, [r0, r1, lsl #0x2] - bx lr - arm_func_end FUN_020B10C4 - - arm_func_start FUN_020B10CC -FUN_020B10CC: ; 0x020B10CC - mov r2, #0x0 - mvn r1, #0x0 -_020B10D4: - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, #0x3 - blt _020B10D4 - bx lr - arm_func_end FUN_020B10CC - - arm_func_start FUN_020B10E8 -FUN_020B10E8: ; 0x020B10E8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r10, r0 - ldr r0, [r10, #0x0] - mov r9, r1 - cmp r0, #0x3 - ldr r0, [sp, #0x28] - moveq r7, #0x20 - str r0, [sp, #0x28] - ldrh r0, [r9, #0x0] - movne r7, #0x200 - mov r11, r2 - mov r8, r3 - str r0, [sp, #0x0] - mov r6, #0x0 - cmp r0, #0x0 - bls _020B1210 -_020B112C: - ldr r1, [r9, #0x4] - mov r0, r6, lsl #0x1 - ldrh r2, [r1, r0] - ldr r0, [r10, #0xc] - ldr r1, [r10, #0x8] - mla r5, r7, r2, r11 - mla r4, r7, r6, r0 - bl DC_FlushRange - cmp r8, #0x0 - beq _020B11E0 - cmp r8, #0x1 - beq _020B1168 - cmp r8, #0x2 - beq _020B11A4 - b _020B11F8 -_020B1168: - ldr r0, [r10, #0x4] - cmp r0, #0x0 - beq _020B1190 - bl GX_BeginLoadOBJExtPltt - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl GX_LoadOBJExtPltt - bl GX_EndLoadOBJExtPltt - b _020B11F8 -_020B1190: - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl GX_LoadOBJPltt - b _020B11F8 -_020B11A4: - ldr r0, [r10, #0x4] - cmp r0, #0x0 - beq _020B11CC - bl GXS_BeginLoadOBJExtPltt - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl GXS_LoadOBJExtPltt - bl GXS_EndLoadOBJExtPltt - b _020B11F8 -_020B11CC: - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl GXS_LoadOBJPltt - b _020B11F8 -_020B11E0: - bl GX_BeginLoadTexPltt - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl GX_LoadTexPltt - bl GX_EndLoadTexPltt -_020B11F8: - add r0, r6, #0x1 - mov r0, r0, lsl #0x10 - mov r6, r0, lsr #0x10 - ldr r0, [sp, #0x0] - cmp r6, r0 - blo _020B112C -_020B1210: - ldr r0, [sp, #0x28] - ldr r2, [r10, #0x0] - mov r1, r0 - str r2, [r1, #0x0] - ldr r4, [r10, #0x4] - mov r3, r0 - mov r1, r8 - mov r2, r11 - str r4, [r3, #0x4] - bl FUN_020B19D0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B10E8 - - arm_func_start FUN_020B1240 -FUN_020B1240: ; 0x020B1240 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - ldr r5, [r9, #0xc] - ldr r4, [r9, #0x8] - mov r8, r1 - mov r7, r2 - mov r0, r5 - mov r1, r4 - mov r6, r3 - bl DC_FlushRange - cmp r7, #0x0 - beq _020B1300 - cmp r7, #0x1 - beq _020B1288 - cmp r7, #0x2 - beq _020B12C4 - b _020B1318 -_020B1288: - ldr r0, [r9, #0x4] - cmp r0, #0x0 - beq _020B12B0 - bl GX_BeginLoadOBJExtPltt - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl GX_LoadOBJExtPltt - bl GX_EndLoadOBJExtPltt - b _020B1318 -_020B12B0: - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl GX_LoadOBJPltt - b _020B1318 -_020B12C4: - ldr r0, [r9, #0x4] - cmp r0, #0x0 - beq _020B12EC - bl GXS_BeginLoadOBJExtPltt - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl GXS_LoadOBJExtPltt - bl GXS_EndLoadOBJExtPltt - b _020B1318 -_020B12EC: - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl GXS_LoadOBJPltt - b _020B1318 -_020B1300: - bl GX_BeginLoadTexPltt - mov r0, r5 - mov r1, r8 - mov r2, r4 - bl GX_LoadTexPltt - bl GX_EndLoadTexPltt -_020B1318: - ldr r1, [r9, #0x0] - mov r0, r6 - str r1, [r6, #0x0] - ldr r3, [r9, #0x4] - mov r1, r7 - mov r2, r8 - str r3, [r6, #0x4] - bl FUN_020B19D0 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B1240 - - arm_func_start FUN_020B1340 -FUN_020B1340: ; 0x020B1340 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - ldr r0, [r7, #0x14] - ldr r1, [r7, #0x10] - mov r5, r2 - mov r4, r3 - bl DC_FlushRange - cmp r5, #0x0 - ldr r0, [r7, #0x8] - beq _020B13B8 - cmp r5, #0x1 - beq _020B1384 - cmp r5, #0x2 - beq _020B13A0 - b _020B13B8 -_020B1384: - mov r3, #0x4000000 - ldr r2, [r3, #0x0] - ldr r1, _020B1520 ; =0xFFCFFFEF - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] - b _020B13B8 -_020B13A0: - ldr r3, _020B1524 ; =0x04001000 - ldr r1, _020B1520 ; =0xFFCFFFEF - ldr r2, [r3, #0x0] - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] -_020B13B8: - ldr r0, [r7, #0x8] - cmp r0, #0x0 - bne _020B14D8 - ldrh r0, [r7, #0x2] - cmp r0, #0x10 - bgt _020B1408 - cmp r0, #0x10 - bge _020B1434 - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B1444 - ; Jump table - b _020B1444 ; case 0 - b _020B1414 ; case 1 - b _020B141C ; case 2 - b _020B1444 ; case 3 - b _020B1424 ; case 4 - b _020B1444 ; case 5 - b _020B1444 ; case 6 - b _020B1444 ; case 7 - b _020B142C ; case 8 -_020B1408: - cmp r0, #0x20 - beq _020B143C - b _020B1444 -_020B1414: - mov r0, #0x0 - b _020B1448 -_020B141C: - mov r0, #0x1 - b _020B1448 -_020B1424: - mov r0, #0x2 - b _020B1448 -_020B142C: - mov r0, #0x3 - b _020B1448 -_020B1434: - mov r0, #0x4 - b _020B1448 -_020B143C: - mov r0, #0x5 - b _020B1448 -_020B1444: - mov r0, #0x0 -_020B1448: - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - cmp r0, #0x10 - bgt _020B1490 - cmp r0, #0x10 - bge _020B14BC - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B14CC - ; Jump table - b _020B14CC ; case 0 - b _020B149C ; case 1 - b _020B14A4 ; case 2 - b _020B14CC ; case 3 - b _020B14AC ; case 4 - b _020B14CC ; case 5 - b _020B14CC ; case 6 - b _020B14CC ; case 7 - b _020B14B4 ; case 8 -_020B1490: - cmp r0, #0x20 - beq _020B14C4 - b _020B14CC -_020B149C: - mov r0, #0x0 - b _020B14D0 -_020B14A4: - mov r0, #0x1 - b _020B14D0 -_020B14AC: - mov r0, #0x2 - b _020B14D0 -_020B14B4: - mov r0, #0x3 - b _020B14D0 -_020B14BC: - mov r0, #0x4 - b _020B14D0 -_020B14C4: - mov r0, #0x5 - b _020B14D0 -_020B14CC: - mov r0, #0x0 -_020B14D0: - str r0, [r4, #0x10] - b _020B14E8 -_020B14D8: - ldrh r0, [r7, #0x2] - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - str r0, [r4, #0x10] -_020B14E8: - ldr r1, [r7, #0x4] - mov r0, #0x0 - str r1, [r4, #0x14] - str r0, [r4, #0x18] - mov r0, #0x1 - str r0, [r4, #0x1c] - ldr r3, [r7, #0x8] - mov r0, r4 - mov r1, r5 - mov r2, r6 - str r3, [r4, #0x20] - bl FUN_020B1A1C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B1520: .word 0xFFCFFFEF -_020B1524: .word 0x04001000 - arm_func_end FUN_020B1340 - - arm_func_start FUN_020B1528 -FUN_020B1528: ; 0x020B1528 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - movs r5, r2 - mov r6, r1 - mov r4, r3 - ldr r0, [r7, #0x8] - beq _020B1590 - cmp r5, #0x1 - beq _020B155C - cmp r5, #0x2 - beq _020B1578 - b _020B1590 -_020B155C: - mov r3, #0x4000000 - ldr r2, [r3, #0x0] - ldr r1, _020B1760 ; =0xFFCFFFEF - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] - b _020B1590 -_020B1578: - ldr r3, _020B1764 ; =0x04001000 - ldr r1, _020B1760 ; =0xFFCFFFEF - ldr r2, [r3, #0x0] - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] -_020B1590: - ldr r0, [r7, #0x14] - ldr r1, [r7, #0x10] - bl DC_FlushRange - cmp r5, #0x0 - beq _020B15B8 - cmp r5, #0x1 - beq _020B15D4 - cmp r5, #0x2 - beq _020B15E8 - b _020B15F8 -_020B15B8: - bl GX_BeginLoadTex - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GX_LoadTex - bl GX_EndLoadTex - b _020B15F8 -_020B15D4: - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GX_LoadOBJ - b _020B15F8 -_020B15E8: - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GXS_LoadOBJ -_020B15F8: - ldr r0, [r7, #0x8] - cmp r0, #0x0 - bne _020B1718 - ldrh r0, [r7, #0x2] - cmp r0, #0x10 - bgt _020B1648 - cmp r0, #0x10 - bge _020B1674 - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B1684 - ; Jump table - b _020B1684 ; case 0 - b _020B1654 ; case 1 - b _020B165C ; case 2 - b _020B1684 ; case 3 - b _020B1664 ; case 4 - b _020B1684 ; case 5 - b _020B1684 ; case 6 - b _020B1684 ; case 7 - b _020B166C ; case 8 -_020B1648: - cmp r0, #0x20 - beq _020B167C - b _020B1684 -_020B1654: - mov r0, #0x0 - b _020B1688 -_020B165C: - mov r0, #0x1 - b _020B1688 -_020B1664: - mov r0, #0x2 - b _020B1688 -_020B166C: - mov r0, #0x3 - b _020B1688 -_020B1674: - mov r0, #0x4 - b _020B1688 -_020B167C: - mov r0, #0x5 - b _020B1688 -_020B1684: - mov r0, #0x0 -_020B1688: - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - cmp r0, #0x10 - bgt _020B16D0 - cmp r0, #0x10 - bge _020B16FC - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B170C - ; Jump table - b _020B170C ; case 0 - b _020B16DC ; case 1 - b _020B16E4 ; case 2 - b _020B170C ; case 3 - b _020B16EC ; case 4 - b _020B170C ; case 5 - b _020B170C ; case 6 - b _020B170C ; case 7 - b _020B16F4 ; case 8 -_020B16D0: - cmp r0, #0x20 - beq _020B1704 - b _020B170C -_020B16DC: - mov r0, #0x0 - b _020B1710 -_020B16E4: - mov r0, #0x1 - b _020B1710 -_020B16EC: - mov r0, #0x2 - b _020B1710 -_020B16F4: - mov r0, #0x3 - b _020B1710 -_020B16FC: - mov r0, #0x4 - b _020B1710 -_020B1704: - mov r0, #0x5 - b _020B1710 -_020B170C: - mov r0, #0x0 -_020B1710: - str r0, [r4, #0x10] - b _020B1728 -_020B1718: - ldrh r0, [r7, #0x2] - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - str r0, [r4, #0x10] -_020B1728: - ldr r1, [r7, #0x4] - mov r0, #0x0 - str r1, [r4, #0x14] - str r0, [r4, #0x18] - mov r0, #0x1 - str r0, [r4, #0x1c] - ldr r3, [r7, #0x8] - mov r0, r4 - mov r1, r5 - mov r2, r6 - str r3, [r4, #0x20] - bl FUN_020B1A1C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B1760: .word 0xFFCFFFEF -_020B1764: .word 0x04001000 - arm_func_end FUN_020B1528 - - arm_func_start FUN_020B1768 -FUN_020B1768: ; 0x020B1768 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - movs r5, r2 - mov r6, r1 - mov r4, r3 - ldr r0, [r7, #0x8] - beq _020B17D0 - cmp r5, #0x1 - beq _020B179C - cmp r5, #0x2 - beq _020B17B8 - b _020B17D0 -_020B179C: - mov r3, #0x4000000 - ldr r2, [r3, #0x0] - ldr r1, _020B19A0 ; =0xFFCFFFEF - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] - b _020B17D0 -_020B17B8: - ldr r3, _020B19A4 ; =0x04001000 - ldr r1, _020B19A0 ; =0xFFCFFFEF - ldr r2, [r3, #0x0] - and r1, r2, r1 - orr r0, r1, r0 - str r0, [r3, #0x0] -_020B17D0: - ldr r0, [r7, #0x14] - ldr r1, [r7, #0x10] - bl DC_FlushRange - cmp r5, #0x0 - beq _020B17F8 - cmp r5, #0x1 - beq _020B1814 - cmp r5, #0x2 - beq _020B1828 - b _020B1838 -_020B17F8: - bl GX_BeginLoadTex - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GX_LoadTex - bl GX_EndLoadTex - b _020B1838 -_020B1814: - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GX_LoadOBJ - b _020B1838 -_020B1828: - ldr r0, [r7, #0x14] - ldr r2, [r7, #0x10] - mov r1, r6 - bl GXS_LoadOBJ -_020B1838: - ldr r0, [r7, #0x8] - cmp r0, #0x0 - bne _020B1958 - ldrh r0, [r7, #0x2] - cmp r0, #0x10 - bgt _020B1888 - cmp r0, #0x10 - bge _020B18B4 - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B18C4 - ; Jump table - b _020B18C4 ; case 0 - b _020B1894 ; case 1 - b _020B189C ; case 2 - b _020B18C4 ; case 3 - b _020B18A4 ; case 4 - b _020B18C4 ; case 5 - b _020B18C4 ; case 6 - b _020B18C4 ; case 7 - b _020B18AC ; case 8 -_020B1888: - cmp r0, #0x20 - beq _020B18BC - b _020B18C4 -_020B1894: - mov r0, #0x0 - b _020B18C8 -_020B189C: - mov r0, #0x1 - b _020B18C8 -_020B18A4: - mov r0, #0x2 - b _020B18C8 -_020B18AC: - mov r0, #0x3 - b _020B18C8 -_020B18B4: - mov r0, #0x4 - b _020B18C8 -_020B18BC: - mov r0, #0x5 - b _020B18C8 -_020B18C4: - mov r0, #0x0 -_020B18C8: - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - cmp r0, #0x10 - bgt _020B1910 - cmp r0, #0x10 - bge _020B193C - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020B194C - ; Jump table - b _020B194C ; case 0 - b _020B191C ; case 1 - b _020B1924 ; case 2 - b _020B194C ; case 3 - b _020B192C ; case 4 - b _020B194C ; case 5 - b _020B194C ; case 6 - b _020B194C ; case 7 - b _020B1934 ; case 8 -_020B1910: - cmp r0, #0x20 - beq _020B1944 - b _020B194C -_020B191C: - mov r0, #0x0 - b _020B1950 -_020B1924: - mov r0, #0x1 - b _020B1950 -_020B192C: - mov r0, #0x2 - b _020B1950 -_020B1934: - mov r0, #0x3 - b _020B1950 -_020B193C: - mov r0, #0x4 - b _020B1950 -_020B1944: - mov r0, #0x5 - b _020B1950 -_020B194C: - mov r0, #0x0 -_020B1950: - str r0, [r4, #0x10] - b _020B1968 -_020B1958: - ldrh r0, [r7, #0x2] - str r0, [r4, #0xc] - ldrh r0, [r7, #0x0] - str r0, [r4, #0x10] -_020B1968: - ldr r1, [r7, #0x4] - mov r0, #0x0 - str r1, [r4, #0x14] - str r0, [r4, #0x18] - mov r0, #0x1 - str r0, [r4, #0x1c] - ldr r3, [r7, #0x8] - mov r0, r4 - mov r1, r5 - mov r2, r6 - str r3, [r4, #0x20] - bl FUN_020B1A1C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B19A0: .word 0xFFCFFFEF -_020B19A4: .word 0x04001000 - arm_func_end FUN_020B1768 - - arm_func_start FUN_020B19A8 -FUN_020B19A8: ; 0x020B19A8 - add r0, r0, r1, lsl #0x2 - ldr r1, [r0, #0x8] - mvn r0, #0x0 - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020B19A8 - - arm_func_start FUN_020B19C4 -FUN_020B19C4: ; 0x020B19C4 - add r0, r0, r1, lsl #0x2 - ldr r0, [r0, #0x8] - bx lr - arm_func_end FUN_020B19C4 - - arm_func_start FUN_020B19D0 -FUN_020B19D0: ; 0x020B19D0 - add r0, r0, r1, lsl #0x2 - str r2, [r0, #0x8] - bx lr - arm_func_end FUN_020B19D0 - - arm_func_start FUN_020B19DC -FUN_020B19DC: ; 0x020B19DC - mov r3, #0x0 - mvn r2, #0x0 -_020B19E4: - add r1, r0, r3, lsl #0x2 - add r3, r3, #0x1 - str r2, [r1, #0x8] - cmp r3, #0x3 - blt _020B19E4 - bx lr - arm_func_end FUN_020B19DC - - arm_func_start FUN_020B19FC -FUN_020B19FC: ; 0x020B19FC - ldr r1, [r0, r1, lsl #0x2] - mvn r0, #0x0 - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020B19FC - - arm_func_start FUN_020B1A14 -FUN_020B1A14: ; 0x020B1A14 - ldr r0, [r0, r1, lsl #0x2] - bx lr - arm_func_end FUN_020B1A14 - - arm_func_start FUN_020B1A1C -FUN_020B1A1C: ; 0x020B1A1C - str r2, [r0, r1, lsl #0x2] - bx lr - arm_func_end FUN_020B1A1C - - arm_func_start FUN_020B1A24 -FUN_020B1A24: ; 0x020B1A24 - mov r2, #0x0 - mvn r1, #0x0 -_020B1A2C: - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, #0x3 - blt _020B1A2C - bx lr - arm_func_end FUN_020B1A24 - - arm_func_start FUN_020B1A40 -FUN_020B1A40: ; 0x020B1A40 - stmdb sp!, {r4,lr} - mov r4, r0 - add r1, r4, #0x4 - mov r0, #0x0 - mov r2, #0x18 - bl MIi_CpuClear16 - mov r0, #0x1000 - str r0, [r4, #0x4] - str r0, [r4, #0x8] - ldmia sp!, {r4,pc} - arm_func_end FUN_020B1A40 - - arm_func_start FUN_020B1A68 -FUN_020B1A68: ; 0x020B1A68 - ldr ip, _020B1A74 ; =FUN_020B1A40 - str r1, [r0, #0x0] - bx r12 - .balign 4 -_020B1A74: .word FUN_020B1A40 - arm_func_end FUN_020B1A68 - - arm_func_start FUN_020B1A78 -FUN_020B1A78: ; 0x020B1A78 - ldr r3, [r0, #0x0] - cmp r3, #0x1 - ldreqh r3, [r0, #0x12] - orreq r3, r3, #0x2 - streqh r3, [r0, #0x12] - streq r1, [r0, #0x4] - streq r2, [r0, #0x8] - bx lr - arm_func_end FUN_020B1A78 - - arm_func_start FUN_020B1A98 -FUN_020B1A98: ; 0x020B1A98 - ldr r2, [r0, #0x0] - cmp r2, #0x1 - ldreqh r2, [r0, #0x12] - orreq r2, r2, #0x4 - streqh r2, [r0, #0x12] - streqh r1, [r0, #0x10] - bx lr - arm_func_end FUN_020B1A98 - - arm_func_start FUN_020B1AB4 -FUN_020B1AB4: ; 0x020B1AB4 - ldr r3, [r0, #0x0] - cmp r3, #0x1 - ldreqh r3, [r0, #0x12] - orreq r3, r3, #0x8 - streqh r3, [r0, #0x12] - streqh r1, [r0, #0xc] - streqh r2, [r0, #0xe] - bx lr - arm_func_end FUN_020B1AB4 - - arm_func_start FUN_020B1AD4 -FUN_020B1AD4: ; 0x020B1AD4 - mov r2, #0x0 - str r2, [r0, #0x0] - str r1, [r0, #0x4] - mov r1, #0x1 - str r1, [r0, #0x8] - ldr ip, _020B1AF4 ; =FUN_020B1A68 - add r0, r0, #0xc - bx r12 - .balign 4 -_020B1AF4: .word FUN_020B1A68 - arm_func_end FUN_020B1AD4 - - arm_func_start FUN_020B1AF8 -FUN_020B1AF8: ; 0x020B1AF8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - ldrh r5, [r2, #0x0] - ldr r4, [sp, #0x60] - ldr r10, [sp, #0x58] - str r4, [sp, #0x60] - cmp r1, r5 - movcs r1, r5 - mov r4, #0x0 - cmp r1, #0x0 - str r4, [sp, #0x0] - bls _020B1E7C - ldrh r4, [sp, #0x5c] - mov r4, r4, lsl #0x19 - str r4, [sp, #0x4] - ldr r4, [sp, #0x0] - str r4, [sp, #0x14] - mov r4, #0x100 - str r4, [sp, #0xc] - mov r4, #0x300 - str r4, [sp, #0x8] - mov r4, #0x1 - str r4, [sp, #0x10] -_020B1B54: - ldr r5, [sp, #0x0] - mov r6, #0x6 - mul r6, r5, r6 - ldr r8, [r2, #0x4] - ldr r4, [sp, #0x0] - add r7, r0, r5, lsl #0x3 - ldrh r5, [r8, r6] - mov r4, r4, lsl #0x3 - add r9, r8, r6 - strh r5, [r0, r4] - ldrh r4, [r9, #0x2] - cmp r3, #0x0 - strh r4, [r7, #0x2] - ldrh r4, [r9, #0x4] - strh r4, [r7, #0x4] - bne _020B1B9C - cmp r10, #0x0 - beq _020B1E60 -_020B1B9C: - ldr r5, [r7, #0x0] - ldr r4, _020B1E88 ; =0x01FF0000 - and r4, r5, r4 - mov r4, r4, lsr #0x10 - mov r4, r4, lsl #0x10 - mov r4, r4, asr #0x10 - cmp r4, #0xff - orrgt r4, r4, #0xff00 - movgt r4, r4, lsl #0x10 - movgt r4, r4, asr #0x10 - mov r4, r4, lsl #0xc - str r4, [sp, #0x20] - ldr r4, [r7, #0x0] - and r4, r4, #0xff - mov r4, r4, lsl #0x10 - mov r4, r4, asr #0x10 - cmp r4, #0x7f - orrgt r4, r4, #0xff00 - movgt r4, r4, lsl #0x10 - movgt r4, r4, asr #0x10 - mov r4, r4, lsl #0xc - str r4, [sp, #0x24] - cmp r3, #0x0 - beq _020B1E00 - ldr r5, [r7, #0x0] - and r6, r5, #0x300 - cmp r6, #0x100 - beq _020B1C1C - cmp r6, #0x300 - beq _020B1C1C - and r4, r5, #0x30000000 - orr r6, r6, r4 -_020B1C1C: - cmp r6, #0x300 - bne _020B1C70 - ldr r4, _020B1E8C ; =0xC000C000 - ldr r8, _020B1E90 ; =UNK_020FF8AC - and r5, r5, r4 - and r4, r5, #0xc000 - mov r6, r4, asr #0xe - and r4, r5, #0xc0000000 - mov r4, r4, lsr #0x1e - mov r4, r4, lsl #0x1 - add r8, r8, r6, lsl #0x3 - ldrh r9, [r4, r8] - ldr r8, _020B1E94 ; =UNK_020FF894 - ldr r5, [sp, #0x20] - add r6, r8, r6, lsl #0x3 - add r5, r5, r9, lsl #0xb - str r5, [sp, #0x20] - ldrh r4, [r4, r6] - ldr r5, [sp, #0x24] - add r4, r5, r4, lsl #0xb - str r4, [sp, #0x24] -_020B1C70: - ldr r4, [sp, #0x60] - ldr r5, [r3, #0x8] - cmp r4, #0x0 - ldrne r8, [sp, #0x8] - add r4, sp, #0x20 - ldreq r8, [sp, #0xc] - mov r6, r4 - cmp r8, #0x300 - ldreq r9, [sp, #0x10] - mov r12, #0x1000 - ldrne r9, [sp, #0x14] - cmp r4, r4 - ldr r4, [sp, #0x24] - addeq r6, sp, #0x28 - smull r11, r4, r5, r4 - adds r5, r11, r12 - adc r11, r4, #0x0 - ldr r4, [r3, #0x0] - ldr lr, [sp, #0x20] - smlal r5, r11, r4, lr - mov r4, r5, lsr #0xc - orr r4, r4, r11, lsl #0x14 - str r4, [r6, #0x0] - ldr r4, [r3, #0xc] - ldr r5, [sp, #0x24] - ldr lr, [r3, #0x4] - smull r11, r5, r4, r5 - adds r11, r11, r12 - adc r4, r5, #0x0 - add r5, sp, #0x28 - cmp r6, r5 - ldr r5, [sp, #0x20] - smlal r11, r4, lr, r5 - mov r5, r11, lsr #0xc - orr r5, r5, r4, lsl #0x14 - str r5, [r6, #0x4] - ldreq r5, [sp, #0x28] - ldreq r4, [sp, #0x2c] - streq r5, [sp, #0x20] - streq r4, [sp, #0x24] - cmp r8, #0x100 - beq _020B1D38 - cmp r8, #0x300 - beq _020B1D38 - ldr r5, [r7, #0x0] - ldr r4, _020B1E98 ; =0xC1FFFCFF - and r4, r5, r4 - orr r4, r4, r8 - str r4, [r7, #0x0] - b _020B1D54 -_020B1D38: - ldr r5, [r7, #0x0] - ldr r4, _020B1E98 ; =0xC1FFFCFF - and r4, r5, r4 - orr r5, r4, r8 - ldr r4, [sp, #0x4] - orr r4, r4, r5 - str r4, [r7, #0x0] -_020B1D54: - ldr r6, [r7, #0x0] - ldr r5, _020B1E8C ; =0xC000C000 - cmp r9, #0x0 - and r8, r6, r5 - and r5, r8, #0xc000 - mov r6, r5, asr #0xe - and r5, r8, #0xc0000000 - ldr r8, _020B1E90 ; =UNK_020FF8AC - mov r5, r5, lsr #0x1e - mov r5, r5, lsl #0x1 - add r8, r8, r6, lsl #0x3 - ldrh r9, [r5, r8] - ldr r8, _020B1E94 ; =UNK_020FF894 - ldr r4, [sp, #0x20] - add r6, r8, r6, lsl #0x3 - mov r11, r9, asr #0x1 - ldrh r5, [r5, r6] - mov r8, r11, lsl #0xc - ldr r6, [r3, #0x0] - rsb r12, r8, #0x0 - mov r9, r5, asr #0x1 - mla r12, r6, r11, r12 - ldr r5, [r3, #0x8] - mla r6, r5, r9, r12 - add r6, r4, r6 - str r6, [sp, #0x20] - ldr r12, [r3, #0x4] - mov r5, r9, lsl #0xc - str r12, [sp, #0x1c] - ldr r12, [r3, #0xc] - rsb lr, r5, #0x0 - str r12, [sp, #0x18] - ldr r12, [sp, #0x1c] - ldr r4, [sp, #0x24] - mla r11, r12, r11, lr - ldr r12, [sp, #0x18] - subne r6, r6, r8 - mla r9, r12, r9, r11 - add r4, r4, r9 - str r4, [sp, #0x24] - subne r4, r4, r5 - strne r6, [sp, #0x20] - strne r4, [sp, #0x24] -_020B1E00: - cmp r10, #0x0 - beq _020B1E28 - ldr r6, [sp, #0x20] - ldr r4, [r10, #0x0] - ldr r5, [sp, #0x24] - add r4, r6, r4 - str r4, [sp, #0x20] - ldr r4, [r10, #0x4] - add r4, r5, r4 - str r4, [sp, #0x24] -_020B1E28: - ldr r4, [sp, #0x20] - ldr r6, [r7, #0x0] - add r5, r4, #0x800 - ldr r4, _020B1E9C ; =0x000001FF - and r4, r4, r5, asr #0xc - ldr r5, _020B1EA0 ; =0xFE00FF00 - and r6, r6, r5 - ldr r5, [sp, #0x24] - add r5, r5, #0x800 - mov r5, r5, asr #0xc - and r5, r5, #0xff - orr r5, r6, r5 - orr r4, r5, r4, lsl #0x10 - str r4, [r7, #0x0] -_020B1E60: - ldr r4, [sp, #0x0] - add r4, r4, #0x1 - mov r4, r4, lsl #0x10 - mov r4, r4, lsr #0x10 - str r4, [sp, #0x0] - cmp r4, r1 - blo _020B1B54 -_020B1E7C: - mov r0, r1 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B1E88: .word 0x01FF0000 -_020B1E8C: .word 0xC000C000 -_020B1E90: .word UNK_020FF8AC -_020B1E94: .word UNK_020FF894 -_020B1E98: .word 0xC1FFFCFF -_020B1E9C: .word 0x000001FF -_020B1EA0: .word 0xFE00FF00 - arm_func_end FUN_020B1AF8 - - arm_func_start FUN_020B1EA4 -FUN_020B1EA4: ; 0x020B1EA4 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020B0518 - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - mov r0, r4 - bl FUN_020B1FC4 - ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EA4 - - arm_func_start FUN_020B1EC4 -FUN_020B1EC4: ; 0x020B1EC4 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020B0534 - cmp r0, #0x0 - ldmeqia sp!, {r4,pc} - mov r0, r4 - bl FUN_020B1FC4 - ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EC4 - - arm_func_start FUN_020B1EE4 -FUN_020B1EE4: ; 0x020B1EE4 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020B0438 - mov r0, r4 - bl FUN_020B1FC4 - ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EE4 - - arm_func_start FUN_020B1EFC -FUN_020B1EFC: ; 0x020B1EFC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r4, r2 - ldr r2, [r4, #0xc] - mov r5, r1 - ldr r1, [r2, #0x0] - ldr r2, [sp, #0x34] - str r1, [sp, #0x0] - ldr r1, [sp, #0x38] - str r2, [sp, #0x4] - mov r6, r3 - mov r7, r0 - ldr r12, [sp, #0x3c] - str r1, [sp, #0x8] - ldr r1, [sp, #0x28] - ldr r2, [sp, #0x2c] - ldr r3, [sp, #0x30] - mov r0, r6 - str r12, [sp, #0xc] - bl FUN_020B45F0 - str r6, [r7, #0x34] - str r4, [r7, #0x30] - add r0, r7, #0x38 - mov r1, #0x1 - str r6, [r7, #0x34] - bl FUN_020B1A68 - mov r0, r7 - bl FUN_020B04C0 - mov r0, r7 - mov r1, r5 - bl FUN_020B1EE4 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B1EFC - - arm_func_start FUN_020B1F80 -FUN_020B1F80: ; 0x020B1F80 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - str r2, [r5, #0x30] - mvn r2, #0x0 - add r0, r5, #0x38 - mov r1, #0x1 - str r2, [r5, #0x34] - bl FUN_020B1A68 - mov r0, r5 - bl FUN_020B04C0 - mov r0, r5 - mov r1, r4 - bl FUN_020B1EE4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B1F80 - - arm_func_start FUN_020B1FC4 -FUN_020B1FC4: ; 0x020B1FC4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r1, [r5, #0x0] - ldrh r1, [r1, #0x4] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - bl FUN_020B06E0 - mov r4, r0 - ldr r7, [r5, #0x30] - ldrh r1, [r4, #0x0] - mov r0, r7 - bl FUN_020AFE8C - str r0, [r5, #0x2c] - ldr r1, [r5, #0x18] - add r0, r5, #0x38 - ldr r2, [r1, #0x4] - mov r1, #0x1 - and r6, r2, #0xff - bl FUN_020B1A68 - cmp r6, #0x0 - beq _020B2068 - cmp r6, #0x2 - bne _020B203C - ldrsh r1, [r4, #0x4] - ldrsh r2, [r4, #0x6] - add r0, r5, #0x38 - bl FUN_020B1AB4 - b _020B2068 -_020B203C: - ldr r1, [r4, #0x4] - ldr r2, [r4, #0x8] - add r0, r5, #0x38 - bl FUN_020B1A78 - ldrh r1, [r4, #0x2] - add r0, r5, #0x38 - bl FUN_020B1A98 - ldrsh r1, [r4, #0xc] - ldrsh r2, [r4, #0xe] - add r0, r5, #0x38 - bl FUN_020B1AB4 -_020B2068: - ldr r2, [r7, #0xc] - cmp r2, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - ldr r1, [r5, #0x34] - mvn r0, #0x0 - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - ldrh r1, [r4, #0x0] - ldr r2, [r2, #0x4] - ldr r0, [r5, #0x34] - add r3, r2, r1, lsl #0x3 - ldr r1, [r2, r1, lsl #0x3] - ldr r2, [r3, #0x4] - bl FUN_020B4400 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B1FC4 - - arm_func_start FUN_020B20C8 -FUN_020B20C8: ; 0x020B20C8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r6, #0x0 - str r6, [r0, #0x38] - ldr r7, [sp, #0x30] - str r6, [r0, #0x30] - mov r10, r1 - str r7, [r0, #0x34] - str r0, [sp, #0x0] - movs r8, r3 - mov r9, r2 - str r10, [r0, #0x3c] - ldr r11, [sp, #0x34] - beq _020B215C - mov r0, #0x1 - str r6, [sp, #0x8] - str r0, [sp, #0x4] -_020B210C: - mov r0, #0x28 - mul r4, r6, r0 - ldr r1, [sp, #0x4] - add r0, r10, r4 - bl FUN_020B1AD4 - mov r0, #0x54 - mla r5, r6, r0, r9 - ldr r1, [sp, #0x8] - mov r0, r7 - str r5, [r10, r4] - bl FUN_020AFC04 - mov r1, r0 - mov r0, r5 - mov r2, r11 - bl FUN_020B1F80 - add r0, r6, #0x1 - mov r0, r0, lsl #0x10 - mov r6, r0, lsr #0x10 - cmp r6, r8 - blo _020B210C -_020B215C: - ldr r0, [sp, #0x0] - bl FUN_020B04C0 - ldr r0, [sp, #0x0] - ldr r3, [sp, #0x38] - ldr r2, [sp, #0x0] - add r0, r0, #0x44 - mov r1, #0x1 - str r3, [r2, #0x40] - bl FUN_020B1A68 - ldr r0, [sp, #0x0] - mov r1, #0x0 - strh r1, [r0, #0x2c] - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B20C8 - - arm_func_start FUN_020B2194 -FUN_020B2194: ; 0x020B2194 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - bl FUN_020B0518 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - mov r0, r7 - bl FUN_020B06E0 - mov r4, r0 - ldrh r1, [r4, #0x0] - ldr r0, [r7, #0x40] - bl FUN_020AFF34 - ldr r1, [r7, #0x18] - mov r6, r0 - ldr r1, [r1, #0x4] - add r0, r7, #0x44 - and r5, r1, #0xff - mov r1, #0x1 - bl FUN_020B1A68 - cmp r5, #0x0 - beq _020B2234 - cmp r5, #0x2 - bne _020B2208 - ldrsh r1, [r4, #0x4] - ldrsh r2, [r4, #0x6] - add r0, r7, #0x44 - bl FUN_020B1AB4 - b _020B2234 -_020B2208: - ldr r1, [r4, #0x4] - ldr r2, [r4, #0x8] - add r0, r7, #0x44 - bl FUN_020B1A78 - ldrh r1, [r4, #0x2] - add r0, r7, #0x44 - bl FUN_020B1A98 - ldrsh r1, [r4, #0xc] - ldrsh r2, [r4, #0xe] - add r0, r7, #0x44 - bl FUN_020B1AB4 -_020B2234: - ldrh r2, [r7, #0x2c] - mov r1, r6 - add r0, r7, #0x30 - bl FUN_020B24E0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B2194 - - arm_func_start FUN_020B224C -FUN_020B224C: ; 0x020B224C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r2, [r4, #0x0] - mov r6, r1 - ldrh r5, [r2, #0x4] - bl FUN_020B0534 - cmp r0, #0x0 - beq _020B2318 - ldrh r1, [r4, #0x2c] - mov r0, r4 - add r1, r1, r5 - strh r1, [r4, #0x2c] - bl FUN_020B06E0 - mov r5, r0 - ldrh r1, [r5, #0x0] - ldr r0, [r4, #0x40] - bl FUN_020AFF34 - ldr r1, [r4, #0x18] - mov r7, r0 - ldr r1, [r1, #0x4] - add r0, r4, #0x44 - and r6, r1, #0xff - mov r1, #0x1 - bl FUN_020B1A68 - cmp r6, #0x0 - beq _020B2300 - cmp r6, #0x2 - bne _020B22D4 - ldrsh r1, [r5, #0x4] - ldrsh r2, [r5, #0x6] - add r0, r4, #0x44 - bl FUN_020B1AB4 - b _020B2300 -_020B22D4: - ldr r1, [r5, #0x4] - ldr r2, [r5, #0x8] - add r0, r4, #0x44 - bl FUN_020B1A78 - ldrh r1, [r5, #0x2] - add r0, r4, #0x44 - bl FUN_020B1A98 - ldrsh r1, [r5, #0xc] - ldrsh r2, [r5, #0xe] - add r0, r4, #0x44 - bl FUN_020B1AB4 -_020B2300: - ldrh r2, [r4, #0x2c] - mov r1, r7 - add r0, r4, #0x30 - bl FUN_020B24E0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} -_020B2318: - mov r1, r6 - add r0, r4, #0x30 - bl FUN_020B232C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B224C - - arm_func_start FUN_020B232C -FUN_020B232C: ; 0x020B232C - stmdb sp!, {r4-r8,lr} - mov r7, r0 - ldr r0, [r7, #0x8] - mov r6, r1 - cmp r0, #0x1 - bne _020B238C - ldr r0, [r7, #0x0] - ldr r4, [r7, #0xc] - ldrh r0, [r0, #0x2] - mov r5, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r8,pc} - mov r8, #0x58 -_020B2360: - mla r0, r5, r8, r4 - mov r1, r6 - bl FUN_020B1EC4 - ldr r1, [r7, #0x0] - add r0, r5, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r1, #0x2] - mov r5, r0, lsr #0x10 - cmp r5, r1 - blo _020B2360 - ldmia sp!, {r4-r8,pc} -_020B238C: - ldr r0, [r7, #0x0] - ldr r4, [r7, #0xc] - ldrh r0, [r0, #0x0] - mov r5, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r8,pc} - mov r8, #0x28 -_020B23A8: - mul r0, r5, r8 - ldr r0, [r4, r0] - mov r1, r6 - bl FUN_020B1EC4 - ldr r1, [r7, #0x0] - add r0, r5, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r1, #0x0] - mov r5, r0, lsr #0x10 - cmp r5, r1 - blo _020B23A8 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B232C - - arm_func_start FUN_020B23D8 -FUN_020B23D8: ; 0x020B23D8 - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldrh r0, [r5, #0x0] - mov r4, #0x0 - mov r6, r4 - cmp r0, #0x0 - bls _020B2424 -_020B23F4: - mov r0, r5 - mov r1, r6 - bl FUN_020AFF34 - ldrh r0, [r0, #0x0] - ldrh r1, [r5, #0x0] - cmp r0, r4 - movhi r4, r0 - add r0, r6, #0x1 - mov r0, r0, lsl #0x10 - mov r6, r0, lsr #0x10 - cmp r6, r1 - blo _020B23F4 -_020B2424: - mov r0, r4 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B23D8 - - arm_func_start FUN_020B242C -FUN_020B242C: ; 0x020B242C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - bl FUN_020B0438 - mov r1, #0x0 - mov r0, r7 - strh r1, [r7, #0x2c] - bl FUN_020B06E0 - mov r4, r0 - ldrh r1, [r4, #0x0] - ldr r0, [r7, #0x40] - bl FUN_020AFF34 - ldr r1, [r7, #0x18] - mov r6, r0 - ldr r1, [r1, #0x4] - add r0, r7, #0x44 - and r5, r1, #0xff - mov r1, #0x1 - bl FUN_020B1A68 - cmp r5, #0x0 - beq _020B24C8 - cmp r5, #0x2 - bne _020B249C - ldrsh r1, [r4, #0x4] - ldrsh r2, [r4, #0x6] - add r0, r7, #0x44 - bl FUN_020B1AB4 - b _020B24C8 -_020B249C: - ldr r1, [r4, #0x4] - ldr r2, [r4, #0x8] - add r0, r7, #0x44 - bl FUN_020B1A78 - ldrh r1, [r4, #0x2] - add r0, r7, #0x44 - bl FUN_020B1A98 - ldrsh r1, [r4, #0xc] - ldrsh r2, [r4, #0xe] - add r0, r7, #0x44 - bl FUN_020B1AB4 -_020B24C8: - ldrh r2, [r7, #0x2c] - mov r1, r6 - add r0, r7, #0x30 - bl FUN_020B24E0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B242C - - arm_func_start FUN_020B24E0 -FUN_020B24E0: ; 0x020B24E0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r10, r1 - str r0, [sp, #0x0] - str r10, [r0, #0x0] - ldr r0, [r0, #0x8] - mov r9, r2 - cmp r0, #0x1 - bne _020B2654 - ldrh r1, [r10, #0x2] - ldr r0, [sp, #0x0] - mov r4, #0x0 - ldr r8, [r0, #0xc] - cmp r1, #0x0 - bls _020B2544 - mov r3, r4 - mov r0, #0x58 -_020B2524: - mla r1, r4, r0, r8 - str r3, [r1, #0x54] - add r1, r4, #0x1 - mov r1, r1, lsl #0x10 - ldrh r2, [r10, #0x2] - mov r4, r1, lsr #0x10 - cmp r4, r2 - blo _020B2524 -_020B2544: - ldrh r0, [r10, #0x0] - mov r5, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x14 - ldmlsia sp!, {r4-r11,pc} - str r5, [sp, #0x4] - mov r11, #0x1 -_020B2560: - ldr r0, [r10, #0x4] - mov r1, #0x58 - add r7, r0, r5, lsl #0x3 - ldrh r0, [r7, #0x6] - and r0, r0, #0xff00 - mov r0, r0, lsl #0x8 - mov r0, r0, lsr #0x10 - mla r6, r0, r1, r8 - ldr r0, [r6, #0x54] - cmp r0, #0x0 - bne _020B2634 - ldr r0, [sp, #0x0] - ldrh r1, [r7, #0x0] - ldr r0, [r0, #0x4] - bl FUN_020AFC04 - mov r4, r0 - mov r0, r6 - mov r1, r4 - bl FUN_020B1EE4 - str r11, [r6, #0x8] - ldrh r0, [r7, #0x6] - and r0, r0, #0xf - cmp r0, #0x1 - bne _020B2630 - ldrh r1, [r4, #0x0] - ldr r7, [sp, #0x4] - mov r3, r7 - cmp r1, #0x0 - bls _020B25F0 - ldr r2, [r4, #0xc] -_020B25D8: - add r0, r2, r3, lsl #0x3 - ldrh r0, [r0, #0x4] - add r3, r3, #0x1 - cmp r3, r1 - add r7, r7, r0 - blo _020B25D8 -_020B25F0: - mov r0, r6 - bl FUN_020B0408 - cmp r0, #0x0 - beq _020B261C - mov r0, r9 - mov r1, r7 - bl _u32_div_f - mov r0, r6 - mov r1, r1, lsl #0xc - bl FUN_020B1EC4 - b _020B2630 -_020B261C: - cmp r9, r7 - movcc r7, r9 - mov r0, r6 - mov r1, r7, lsl #0xc - bl FUN_020B1EC4 -_020B2630: - str r11, [r6, #0x54] -_020B2634: - add r0, r5, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r10, #0x0] - mov r5, r0, lsr #0x10 - cmp r5, r1 - blo _020B2560 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} -_020B2654: - ldrh r1, [r10, #0x0] - ldr r0, [sp, #0x0] - mov r4, #0x0 - cmp r1, #0x0 - ldr r11, [r0, #0xc] - addls sp, sp, #0x14 - ldmlsia sp!, {r4-r11,pc} - mov r0, #0x1 - str r4, [sp, #0xc] - str r0, [sp, #0x8] -_020B267C: - mov r0, #0x28 - mul r2, r4, r0 - ldr r3, [r10, #0x4] - mov r0, r4, lsl #0x3 - ldrh r1, [r3, r0] - ldr r0, [sp, #0x0] - ldr r6, [r11, r2] - ldr r0, [r0, #0x4] - add r7, r3, r4, lsl #0x3 - bl FUN_020AFC04 - mov r5, r0 - mov r0, r6 - mov r1, r5 - bl FUN_020B1EE4 - ldr r0, [sp, #0x8] - str r0, [r6, #0x8] - ldrh r0, [r7, #0x6] - and r0, r0, #0xf - cmp r0, #0x1 - bne _020B2740 - ldrh r1, [r5, #0x0] - ldr r8, [sp, #0xc] - mov r0, r8 - cmp r1, #0x0 - bls _020B2700 - ldr r3, [r5, #0xc] -_020B26E4: - add r1, r3, r0, lsl #0x3 - ldrh r2, [r1, #0x4] - add r0, r0, #0x1 - ldrh r1, [r5, #0x0] - add r8, r8, r2 - cmp r0, r1 - blo _020B26E4 -_020B2700: - mov r0, r6 - bl FUN_020B0408 - cmp r0, #0x0 - beq _020B272C - mov r0, r9 - mov r1, r8 - bl _u32_div_f - mov r0, r6 - mov r1, r1, lsl #0xc - bl FUN_020B1EC4 - b _020B2740 -_020B272C: - cmp r9, r8 - movcc r8, r9 - mov r0, r6 - mov r1, r8, lsl #0xc - bl FUN_020B1EC4 -_020B2740: - mov r0, #0x28 - mla r3, r4, r0, r11 - ldr r0, [sp, #0x8] - str r0, [r3, #0x8] - ldrsh r1, [r7, #0x2] - ldrsh r2, [r7, #0x4] - add r0, r3, #0xc - bl FUN_020B1AB4 - add r0, r4, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r10, #0x0] - mov r4, r0, lsr #0x10 - cmp r4, r1 - blo _020B267C - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B24E0 - - arm_func_start thunk_FUN_020b5040 -thunk_FUN_020b5040: ; 0x020B2780 - ldr ip, _020B2788 ; =FUN_020B5040 - bx r12 - .balign 4 -_020B2788: .word FUN_020B5040 - arm_func_end thunk_FUN_020b5040 - - arm_func_start FUN_020B278C -FUN_020B278C: ; 0x020B278C - ldr r0, [r0, #0x78] - bx lr - arm_func_end FUN_020B278C - - arm_func_start FUN_020B2794 -FUN_020B2794: ; 0x020B2794 - stmdb sp!, {lr} - sub sp, sp, #0x1c - ldr r2, _020B2894 ; =UNK_021CDD70 - mov lr, #0x0 - ldr r12, [r2, #0x0] - ldr r3, _020B2898 ; =UNK_021CDEF4 - mov r2, #0x18 - str r1, [sp, #0x0] - str r1, [sp, #0xc] - mla r1, r12, r2, r3 - rsb r3, r0, #0x0 - str r0, [sp, #0x4] - add r0, sp, #0x0 - mov r2, r1 - str r3, [sp, #0x8] - str lr, [sp, #0x10] - str lr, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B289C ; =UNK_021CE1F4 - ldr r2, [r0, #0x0] - mov r0, #0x18 - mla r1, r2, r0, r1 - add r0, sp, #0x0 - mov r2, r1 - bl FUN_020B423C - ldr r0, _020B28A0 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020B2824 - ldr r1, _020B28A4 ; =UNK_02106570 - ldr r0, _020B28A8 ; =0x0000FFFE - ldrh r1, [r1, #0x0] - cmp r1, r0 - movne r0, #0x1 - bne _020B2828 -_020B2824: - mov r0, #0x0 -_020B2828: - cmp r0, #0x0 - ldreq r1, _020B2894 ; =UNK_021CDD70 - ldreq r0, _020B28A4 ; =UNK_02106570 - ldreq r1, [r1, #0x0] - streqh r1, [r0, #0x0] - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B28AC ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - mov r0, r0, lsl #0x10 - add r12, r1, r0, lsr #0xd - ldrh r0, [r12, #0x4] - cmp r0, #0x3 - addls pc, pc, r0, lsl #0x2 - b _020B288C - ; Jump table - b _020B2870 ; case 0 - b _020B288C ; case 1 - b _020B2870 ; case 2 - b _020B2870 ; case 3 -_020B2870: - ldr r0, _020B28B0 ; =UNK_021CDD64 - mov r1, #0x1 - ldrh r3, [r0, #0x0] - add r2, r3, #0x1 - strh r2, [r0, #0x0] - strh r3, [r12, #0x2] - strh r1, [r12, #0x4] -_020B288C: - add sp, sp, #0x1c - ldmia sp!, {pc} - .balign 4 -_020B2894: .word UNK_021CDD70 -_020B2898: .word UNK_021CDEF4 -_020B289C: .word UNK_021CE1F4 -_020B28A0: .word UNK_021CDD68 -_020B28A4: .word UNK_02106570 -_020B28A8: .word 0x0000FFFE -_020B28AC: .word UNK_021CDDF4 -_020B28B0: .word UNK_021CDD64 - arm_func_end FUN_020B2794 - - arm_func_start FUN_020B28B4 -FUN_020B28B4: ; 0x020B28B4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x1c - ldr r2, _020B29E8 ; =UNK_021CDD70 - mov r12, #0x0 - ldr r3, [r2, #0x0] - mov r4, r1 - ldr r2, _020B29EC ; =UNK_021CDEF4 - mov r1, #0x18 - mla r1, r3, r1, r2 - mov r5, r0 - add r0, sp, #0x0 - mov r2, r1 - str r5, [sp, #0x0] - str r12, [sp, #0x4] - str r12, [sp, #0x8] - str r4, [sp, #0xc] - str r12, [sp, #0x10] - str r12, [sp, #0x14] - bl FUN_020B423C - mov r0, r5 - bl FX_Inv - mov r1, #0x0 - str r0, [sp, #0x0] - mov r0, r4 - str r1, [sp, #0x4] - str r1, [sp, #0x8] - bl FX_Inv - mov r3, #0x0 - ldr r1, _020B29E8 ; =UNK_021CDD70 - str r0, [sp, #0xc] - ldr r2, [r1, #0x0] - ldr r1, _020B29F0 ; =UNK_021CE1F4 - mov r0, #0x18 - mla r1, r2, r0, r1 - add r0, sp, #0x0 - mov r2, r1 - str r3, [sp, #0x10] - str r3, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B29F4 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020B2978 - ldr r1, _020B29F8 ; =UNK_02106570 - ldr r0, _020B29FC ; =0x0000FFFE - ldrh r1, [r1, #0x0] - cmp r1, r0 - movne r0, #0x1 - bne _020B297C -_020B2978: - mov r0, #0x0 -_020B297C: - cmp r0, #0x0 - ldreq r1, _020B29E8 ; =UNK_021CDD70 - ldreq r0, _020B29F8 ; =UNK_02106570 - ldreq r1, [r1, #0x0] - streqh r1, [r0, #0x0] - ldr r0, _020B29E8 ; =UNK_021CDD70 - ldr r1, _020B2A00 ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - mov r0, r0, lsl #0x10 - add r12, r1, r0, lsr #0xd - ldrh r0, [r12, #0x4] - cmp r0, #0x3 - addls pc, pc, r0, lsl #0x2 - b _020B29E0 - ; Jump table - b _020B29C4 ; case 0 - b _020B29E0 ; case 1 - b _020B29C4 ; case 2 - b _020B29C4 ; case 3 -_020B29C4: - ldr r0, _020B2A04 ; =UNK_021CDD64 - mov r1, #0x1 - ldrh r3, [r0, #0x0] - add r2, r3, #0x1 - strh r2, [r0, #0x0] - strh r3, [r12, #0x2] - strh r1, [r12, #0x4] -_020B29E0: - add sp, sp, #0x1c - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B29E8: .word UNK_021CDD70 -_020B29EC: .word UNK_021CDEF4 -_020B29F0: .word UNK_021CE1F4 -_020B29F4: .word UNK_021CDD68 -_020B29F8: .word UNK_02106570 -_020B29FC: .word 0x0000FFFE -_020B2A00: .word UNK_021CDDF4 -_020B2A04: .word UNK_021CDD64 - arm_func_end FUN_020B28B4 - - arm_func_start FUN_020B2A08 -FUN_020B2A08: ; 0x020B2A08 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x1c - ldr r3, _020B2AEC ; =UNK_021CDD68 - mov r4, r2 - ldr r2, [r3, #0x0] - cmp r2, #0x0 - beq _020B2A6C - ldr r2, _020B2AF0 ; =UNK_021CDD70 - mov r3, #0x18 - ldr r2, [r2, #0x0] - ldr lr, _020B2AF4 ; =UNK_021CDF04 - mul r5, r2, r3 - ldr r3, [lr, r5] - ldr ip, _020B2AF8 ; =UNK_021CDF08 - add r0, r3, r0 - str r0, [lr, r5] - ldr r0, [r12, r5] - ldr r3, _020B2AFC ; =UNK_021CDD74 - add r0, r0, r1 - str r0, [r12, r5] - ldr r0, [r3, r2, lsl #0x2] - add sp, sp, #0x1c - add r0, r0, r4 - str r0, [r3, r2, lsl #0x2] - ldmia sp!, {r4-r5,pc} -_020B2A6C: - ldr r2, _020B2AF0 ; =UNK_021CDD70 - mov lr, #0x1000 - ldr r12, [r2, #0x0] - ldr r3, _020B2B00 ; =UNK_021CDEF4 - mov r2, #0x18 - str r1, [sp, #0x14] - mla r1, r12, r2, r3 - mov r3, #0x0 - str r0, [sp, #0x10] - add r0, sp, #0x0 - mov r2, r1 - str lr, [sp, #0x0] - str r3, [sp, #0x4] - str r3, [sp, #0x8] - str lr, [sp, #0xc] - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r1, _020B2B04 ; =UNK_021CE1F4 - ldr r2, [r0, #0x0] - mov r0, #0x18 - mla r1, r2, r0, r1 - add r0, sp, #0x0 - mov r2, r1 - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r2, _020B2AFC ; =UNK_021CDD74 - ldr r1, [r0, #0x0] - ldr r0, [r2, r1, lsl #0x2] - add r0, r0, r4 - str r0, [r2, r1, lsl #0x2] - add sp, sp, #0x1c - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B2AEC: .word UNK_021CDD68 -_020B2AF0: .word UNK_021CDD70 -_020B2AF4: .word UNK_021CDF04 -_020B2AF8: .word UNK_021CDF08 -_020B2AFC: .word UNK_021CDD74 -_020B2B00: .word UNK_021CDEF4 -_020B2B04: .word UNK_021CE1F4 - arm_func_end FUN_020B2A08 - - arm_func_start FUN_020B2B08 -FUN_020B2B08: ; 0x020B2B08 - ldr r0, _020B2B4C ; =UNK_021CDD70 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - movle r0, #0x1 - movgt r0, #0x0 - cmp r0, #0x0 - bxne lr - ldr r1, _020B2B4C ; =UNK_021CDD70 - ldr r0, _020B2B50 ; =UNK_02106570 - ldr r3, [r1, #0x0] - ldrh r2, [r0, #0x0] - sub r3, r3, #0x1 - str r3, [r1, #0x0] - cmp r2, r3 - ldrgt r1, _020B2B54 ; =0x0000FFFE - strgth r1, [r0, #0x0] - bx lr - .balign 4 -_020B2B4C: .word UNK_021CDD70 -_020B2B50: .word UNK_02106570 -_020B2B54: .word 0x0000FFFE - arm_func_end FUN_020B2B08 - - arm_func_start FUN_020B2B58 -FUN_020B2B58: ; 0x020B2B58 - stmdb sp!, {r4-r10,lr} - ldr r0, _020B2D74 ; =UNK_021CDD6C - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x7c] - ands r0, r0, #0x1 - bne _020B2CA4 - ldr r0, _020B2D78 ; =UNK_021CDD70 - ldr r1, [r0, #0x0] - mov r0, r1, lsl #0x10 - add r5, r1, #0x1 - cmp r5, #0x20 - mov r4, r0, lsr #0x10 - movlt r0, #0x1 - movge r0, #0x0 - cmp r0, #0x0 - beq _020B2C44 - ldr r0, _020B2D7C ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020B2BE4 - ldr r1, _020B2D78 ; =UNK_021CDD70 - mov r0, #0x18 - ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 - mul r8, r3, r0 - ldr r6, _020B2D84 ; =UNK_021CDF04 - mul r7, r5, r0 - ldr r2, [r6, r8] - ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 - str r2, [r6, r7] - ldr r2, [r3, r8] - str r0, [r1, r5, lsl #0x2] - str r2, [r3, r7] - b _020B2C3C -_020B2BE4: - ldr r1, _020B2D78 ; =UNK_021CDD70 - mov r0, #0x18 - ldr r2, [r1, #0x0] - ldr r7, _020B2D80 ; =UNK_021CDD74 - mul lr, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 - mul r12, r5, r0 - ldr r8, _020B2D90 ; =UNK_021CE1F4 - add r10, r1, lr - ldr r6, [r7, r2, lsl #0x2] - add r9, r1, r12 - ldmia r10!, {r0-r3} - stmia r9!, {r0-r3} - ldmia r10, {r0-r1} - str r6, [r7, r5, lsl #0x2] - add r7, r8, lr - stmia r9, {r0-r1} - add r6, r8, r12 - ldmia r7!, {r0-r3} - stmia r6!, {r0-r3} - ldmia r7, {r0-r1} - stmia r6, {r0-r1} -_020B2C3C: - ldr r0, _020B2D78 ; =UNK_021CDD70 - str r5, [r0, #0x0] -_020B2C44: - ldr r0, _020B2D78 ; =UNK_021CDD70 - ldr r2, _020B2D94 ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - mov r5, r4, lsl #0x3 - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - add r4, r2, r4, lsl #0x3 - mov r6, r3, lsl #0x3 - ldrh r1, [r2, r5] - ldrh r0, [r4, #0x2] - add r3, r2, r3, lsl #0x3 - strh r1, [r2, r6] - strh r0, [r3, #0x2] - ldrh r2, [r4, #0x4] - ldrh r0, [r4, #0x6] - ldr r1, _020B2D98 ; =UNK_021CDDF8 - strh r2, [r3, #0x4] - strh r0, [r3, #0x6] - ldrh r0, [r1, r5] - cmp r0, #0x1 - moveq r0, #0x2 - streqh r0, [r1, r6] - strneh r0, [r1, r6] - ldmia sp!, {r4-r10,pc} -_020B2CA4: - ldr r0, _020B2D78 ; =UNK_021CDD70 - ldr r0, [r0, #0x0] - add r4, r0, #0x1 - cmp r4, #0x20 - movlt r0, #0x1 - movge r0, #0x0 - cmp r0, #0x0 - ldmeqia sp!, {r4-r10,pc} - ldr r0, _020B2D7C ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020B2D10 - ldr r1, _020B2D78 ; =UNK_021CDD70 - mov r0, #0x18 - ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 - mul r7, r3, r0 - ldr r5, _020B2D84 ; =UNK_021CDF04 - mul r6, r4, r0 - ldr r2, [r5, r7] - ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 - str r2, [r5, r6] - ldr r2, [r3, r7] - str r0, [r1, r4, lsl #0x2] - str r2, [r3, r6] - b _020B2D68 -_020B2D10: - ldr r1, _020B2D78 ; =UNK_021CDD70 - mov r0, #0x18 - ldr r2, [r1, #0x0] - ldr ip, _020B2D80 ; =UNK_021CDD74 - mul r9, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 - mul r8, r4, r0 - ldr lr, _020B2D90 ; =UNK_021CE1F4 - add r6, r1, r9 - ldr r5, [r12, r2, lsl #0x2] - add r7, r1, r8 - ldmia r6!, {r0-r3} - stmia r7!, {r0-r3} - ldmia r6, {r0-r1} - add r6, lr, r9 - stmia r7, {r0-r1} - add lr, lr, r8 - ldmia r6!, {r0-r3} - stmia lr!, {r0-r3} - ldmia r6, {r0-r1} - stmia lr, {r0-r1} - str r5, [r12, r4, lsl #0x2] -_020B2D68: - ldr r0, _020B2D78 ; =UNK_021CDD70 - str r4, [r0, #0x0] - ldmia sp!, {r4-r10,pc} - .balign 4 -_020B2D74: .word UNK_021CDD6C -_020B2D78: .word UNK_021CDD70 -_020B2D7C: .word UNK_021CDD68 -_020B2D80: .word UNK_021CDD74 -_020B2D84: .word UNK_021CDF04 -_020B2D88: .word UNK_021CDF08 -_020B2D8C: .word UNK_021CDEF4 -_020B2D90: .word UNK_021CE1F4 -_020B2D94: .word UNK_021CDDF4 -_020B2D98: .word UNK_021CDDF8 - arm_func_end FUN_020B2B58 - - arm_func_start FUN_020B2D9C -FUN_020B2D9C: ; 0x020B2D9C - stmdb sp!, {r4-r6,lr} - mov r4, r0 - ldrh r0, [r4, #0x56] - cmp r0, #0x0 - bne _020B2DBC - add r0, r4, #0x30 - bl FUN_020B2E78 - ldmia sp!, {r4-r6,pc} -_020B2DBC: - bl FUN_020B2B58 - ldrh r0, [r4, #0x56] - ands r0, r0, #0x8 - beq _020B2E0C - ldr r0, _020B2E70 ; =UNK_021CDD6C - ldrsh r6, [r4, #0x52] - ldr r0, [r0, #0x0] - ldrsh r5, [r4, #0x50] - bl FUN_020B4F88 - cmp r0, #0x0 - ldr r0, _020B2E70 ; =UNK_021CDD6C - rsbne r5, r5, #0x0 - ldr r0, [r0, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - rsbne r6, r6, #0x0 - mov r0, r5, lsl #0xc - mov r1, r6, lsl #0xc - mov r2, #0x0 - bl FUN_020B2A08 -_020B2E0C: - ldrh r0, [r4, #0x56] - ands r0, r0, #0x4 - beq _020B2E40 - ldrh r0, [r4, #0x54] - ldr r2, _020B2E74 ; =FX_SinCosTable_ - mov r0, r0, asr #0x4 - mov r1, r0, lsl #0x1 - add r0, r1, #0x1 - mov r3, r1, lsl #0x1 - mov r1, r0, lsl #0x1 - ldrsh r0, [r2, r3] - ldrsh r1, [r2, r1] - bl FUN_020B2794 -_020B2E40: - ldrh r0, [r4, #0x56] - ands r0, r0, #0x2 - beq _020B2E5C - ldr r0, [r4, #0x48] - ldr r1, [r4, #0x4c] - mov r2, #0x1000 - bl FUN_020B28B4 -_020B2E5C: - add r0, r4, #0x30 - bl FUN_020B2E78 - mov r0, #0x1 - bl FUN_020B2B08 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B2E70: .word UNK_021CDD6C -_020B2E74: .word FX_SinCosTable_ - arm_func_end FUN_020B2D9C - - arm_func_start FUN_020B2E78 -FUN_020B2E78: ; 0x020B2E78 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r5, r0 - ldr r0, [r5, #0x8] - cmp r0, #0x1 - bne _020B309C - ldr r0, [r5, #0x0] - mov r2, #0x0 - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - bls _020B2ED0 - ldr r3, _020B3174 ; =UNK_021CE8F4 - mov r4, r2 -_020B2EAC: - add r0, r3, r2, lsl #0x2 - str r4, [r0, #0x4] - ldr r0, [r5, #0x0] - add r2, r2, #0x1 - ldrh r1, [r0, #0x2] - mov r0, r2, lsl #0x10 - mov r2, r0, lsr #0x10 - cmp r2, r1 - blo _020B2EAC -_020B2ED0: - ldr r0, _020B3178 ; =UNK_021CDD6C - mov r6, #0x1 - ldr r1, [r0, #0x0] - ldr r0, _020B3174 ; =UNK_021CE8F4 - str r6, [r0, #0x404] - ldr r0, [r1, #0x80] - cmp r0, #0x0 - beq _020B2FD8 - bl FUN_020B4948 - str r0, [sp, #0x0] - mov r0, r6 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x80] - bl FUN_020B4958 - ldr r2, [r5, #0x0] - mov r7, #0x0 - ldrh r0, [r2, #0x0] - cmp r0, #0x0 - bls _020B2FC0 - mov r11, r7 -_020B2F28: - ldr r0, [r2, #0x4] - ldr r9, [r5, #0xc] - add r10, r0, r7, lsl #0x3 - ldrh r0, [r10, #0x6] - and r0, r0, #0xff00 - mov r0, r0, lsl #0x8 - mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 - strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C - ldrsh r4, [r10, #0x4] - ldr r0, [r0, #0x0] - ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 - cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C - rsbne r10, r10, #0x0 - ldr r0, [r0, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - rsbne r4, r4, #0x0 - mov r2, r11 - mov r0, r10, lsl #0xc - mov r1, r4, lsl #0xc - bl FUN_020B2A08 - mov r0, #0x58 - mla r0, r8, r0, r9 - bl FUN_020B3554 - mov r0, r6 - bl FUN_020B2B08 - ldr r2, [r5, #0x0] - add r0, r7, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r2, #0x0] - mov r7, r0, lsr #0x10 - cmp r7, r1 - blo _020B2F28 -_020B2FC0: - mov r0, #0x0 - bl FUN_020B497C - ldr r0, [sp, #0x0] - bl FUN_020B4958 - bl FUN_020B4968 - b _020B3088 -_020B2FD8: - ldr r2, [r5, #0x0] - mov r7, #0x0 - ldrh r0, [r2, #0x0] - cmp r0, #0x0 - bls _020B3088 - str r7, [sp, #0x4] - mov r11, #0x58 -_020B2FF4: - ldr r0, [r2, #0x4] - ldr r9, [r5, #0xc] - add r10, r0, r7, lsl #0x3 - ldrh r0, [r10, #0x6] - and r0, r0, #0xff00 - mov r0, r0, lsl #0x8 - mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 - strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C - ldrsh r4, [r10, #0x4] - ldr r0, [r0, #0x0] - ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 - cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C - rsbne r10, r10, #0x0 - ldr r0, [r0, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - rsbne r4, r4, #0x0 - ldr r2, [sp, #0x4] - mov r0, r10, lsl #0xc - mov r1, r4, lsl #0xc - bl FUN_020B2A08 - mla r0, r8, r11, r9 - bl FUN_020B3554 - mov r0, r6 - bl FUN_020B2B08 - ldr r2, [r5, #0x0] - add r0, r7, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r2, #0x0] - mov r7, r0, lsr #0x10 - cmp r7, r1 - blo _020B2FF4 -_020B3088: - ldr r0, _020B3174 ; =UNK_021CE8F4 - mov r1, #0x0 - str r1, [r0, #0x404] - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} -_020B309C: - ldr r0, _020B3178 ; =UNK_021CDD6C - ldr r7, [r5, #0xc] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x80] - cmp r0, #0x0 - beq _020B312C - bl FUN_020B4948 - mov r6, r0 - mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x80] - bl FUN_020B4958 - ldr r0, [r5, #0x0] - mov r4, #0x0 - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - bls _020B3110 - mov r8, #0x28 -_020B30EC: - mla r0, r4, r8, r7 - bl FUN_020B3474 - ldr r1, [r5, #0x0] - add r0, r4, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r1, #0x0] - mov r4, r0, lsr #0x10 - cmp r4, r1 - blo _020B30EC -_020B3110: - mov r0, #0x0 - bl FUN_020B497C - mov r0, r6 - bl FUN_020B4958 - bl FUN_020B4968 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} -_020B312C: - ldr r0, [r5, #0x0] - mov r4, #0x0 - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - addls sp, sp, #0xc - ldmlsia sp!, {r4-r11,pc} - mov r6, #0x28 -_020B3148: - mla r0, r4, r6, r7 - bl FUN_020B3474 - ldr r1, [r5, #0x0] - add r0, r4, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r1, #0x0] - mov r4, r0, lsr #0x10 - cmp r4, r1 - blo _020B3148 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B3174: .word UNK_021CE8F4 -_020B3178: .word UNK_021CDD6C - arm_func_end FUN_020B2E78 - - arm_func_start FUN_020B317C -FUN_020B317C: ; 0x020B317C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r1, _020B31EC ; =UNK_021CDD6C - mov r5, r0 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x80] - cmp r1, #0x0 - beq _020B31E0 - bl FUN_020B4948 - mov r4, r0 - mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B31EC ; =UNK_021CDD6C - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x80] - bl FUN_020B4958 - mov r0, r5 - bl FUN_020B3554 - mov r0, #0x0 - bl FUN_020B497C - mov r0, r4 - bl FUN_020B4958 - bl FUN_020B4968 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020B31E0: - bl FUN_020B3554 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B31EC: .word UNK_021CDD6C - arm_func_end FUN_020B317C - - arm_func_start FUN_020B31F0 -FUN_020B31F0: ; 0x020B31F0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020B3260 ; =0x04000448 - mov r2, #0x1 - ldr r0, _020B3264 ; =UNK_021CDD6C - str r2, [r1, #0x0] - ldr r2, [r0, #0x0] - ldr r3, [r2, #0x7c] - cmp r3, #0x0 - beq _020B324C - ands r0, r3, #0x1 - ldrne r0, _020B3268 ; =UNK_021CDD68 - movne r1, #0x0 - strne r1, [r0, #0x0] - ands r0, r3, #0x2 - beq _020B323C - mov r0, #0x0 - str r0, [r2, #0x74] - bl FUN_020B4DA0 -_020B323C: - ldr r0, _020B3264 ; =UNK_021CDD6C - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x7c] -_020B324C: - ldr r0, _020B3264 ; =UNK_021CDD6C - mov r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B3260: .word 0x04000448 -_020B3264: .word UNK_021CDD6C -_020B3268: .word UNK_021CDD68 - arm_func_end FUN_020B31F0 - - arm_func_start FUN_020B326C -FUN_020B326C: ; 0x020B326C - stmdb sp!, {r4-r8,lr} - ldr r5, _020B330C ; =UNK_021CDD60 - ldr r3, _020B3310 ; =UNK_021CDD6C - ldrh r6, [r5, #0x0] - ldr r2, _020B3314 ; =UNK_021CDD70 - mov r4, #0x0 - ldr r7, _020B3318 ; =0x0000FFFE - ldr r1, _020B331C ; =UNK_02106570 - str r0, [r3, #0x0] - str r4, [r2, #0x0] - strh r7, [r1, #0x0] - cmp r6, #0x0 - ble _020B32D0 - ldr r8, _020B3320 ; =UNK_021CE4F4 - mvn r7, #0x0 - mov r6, #0x10 -_020B32AC: - mov r0, r7 - mov r2, r6 - add r1, r8, #0x10 - bl MIi_CpuClearFast - ldrh r0, [r5, #0x0] - add r4, r4, #0x1 - add r8, r8, #0x20 - cmp r4, r0 - blt _020B32AC -_020B32D0: - ldr r4, _020B330C ; =UNK_021CDD60 - mov r0, #0x0 - ldr r3, _020B3324 ; =UNK_021CDD64 - ldr r1, _020B3328 ; =UNK_021CDDF4 - mov r2, #0x100 - strh r0, [r4, #0x0] - strh r0, [r3, #0x0] - bl MIi_CpuClearFast - ldr r1, _020B332C ; =0x04000444 - mov r2, #0x0 - ldr r0, _020B3330 ; =0x04000454 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - bl FUN_020B4178 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020B330C: .word UNK_021CDD60 -_020B3310: .word UNK_021CDD6C -_020B3314: .word UNK_021CDD70 -_020B3318: .word 0x0000FFFE -_020B331C: .word UNK_02106570 -_020B3320: .word UNK_021CE4F4 -_020B3324: .word UNK_021CDD64 -_020B3328: .word UNK_021CDDF4 -_020B332C: .word 0x04000444 -_020B3330: .word 0x04000454 - arm_func_end FUN_020B326C - - arm_func_start FUN_020B3334 -FUN_020B3334: ; 0x020B3334 - stmdb sp!, {r4,lr} - mov r4, r0 - mov r1, r4 - mov r0, #0x0 - mov r2, #0x48 - bl MIi_CpuClear16 - mov r0, #0x1 - str r0, [r4, #0x10] - mov r0, #0x3 - ldr r1, _020B3380 ; =FUN_020B3EE0 - str r0, [r4, #0x14] - ldr r0, _020B3384 ; =FUN_020B3E48 - str r1, [r4, #0x18] - ldr r1, _020B3388 ; =FUN_020B3C40 - str r0, [r4, #0x1c] - ldr r0, _020B338C ; =FUN_020B3B90 - str r1, [r4, #0x20] - str r0, [r4, #0x24] - ldmia sp!, {r4,pc} - .balign 4 -_020B3380: .word FUN_020B3EE0 -_020B3384: .word FUN_020B3E48 -_020B3388: .word FUN_020B3C40 -_020B338C: .word FUN_020B3B90 - arm_func_end FUN_020B3334 - - arm_func_start FUN_020B3390 -FUN_020B3390: ; 0x020B3390 - ldr r2, [r0, #0x70] - str r2, [r1, #0x30] - str r1, [r0, #0x70] - bx lr - arm_func_end FUN_020B3390 - - arm_func_start FUN_020B33A0 -FUN_020B33A0: ; 0x020B33A0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r0 - bl FUN_020B504C - mov r7, #0x0 - str r7, [r4, #0x70] - str r7, [r4, #0x74] - str r7, [r4, #0x78] - str r7, [r4, #0x7c] - str r7, [r4, #0x80] - str r7, [r4, #0x84] - strh r7, [r4, #0x88] - strh r7, [r4, #0x8a] - str r7, [r4, #0x8c] - str r7, [r4, #0x90] - ldr r1, _020B3454 ; =UNK_021CDD70 - strh r7, [r4, #0x94] - ldr r2, _020B3458 ; =0x0000FFFE - ldr r0, _020B345C ; =UNK_02106570 - ldr r6, _020B3460 ; =UNK_021CE4F4 - str r7, [r1, #0x0] - strh r2, [r0, #0x0] - mvn r5, #0x0 - mov r4, #0x10 -_020B3400: - mov r0, r5 - mov r2, r4 - add r1, r6, #0x10 - bl MIi_CpuClearFast - add r7, r7, #0x1 - cmp r7, #0x20 - add r6, r6, #0x20 - blt _020B3400 - ldr ip, _020B3464 ; =UNK_021CDD60 - mov r0, #0x0 - ldr r3, _020B3468 ; =UNK_021CDD64 - ldr r1, _020B346C ; =UNK_021CDDF4 - mov r2, #0x100 - strh r0, [r12, #0x0] - strh r0, [r3, #0x0] - bl MIi_CpuClearFast - ldr r0, _020B3470 ; =UNK_021CDD68 - mov r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B3454: .word UNK_021CDD70 -_020B3458: .word 0x0000FFFE -_020B345C: .word UNK_02106570 -_020B3460: .word UNK_021CE4F4 -_020B3464: .word UNK_021CDD60 -_020B3468: .word UNK_021CDD64 -_020B346C: .word UNK_021CDDF4 -_020B3470: .word UNK_021CDD68 - arm_func_end FUN_020B33A0 - - arm_func_start FUN_020B3474 -FUN_020B3474: ; 0x020B3474 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, [r5, #0x8] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - ldr r4, [r5, #0x0] - bl FUN_020B2B58 - ldrh r0, [r5, #0x1e] - ands r0, r0, #0x8 - beq _020B34E4 - ldr r0, _020B354C ; =UNK_021CDD6C - ldrsh r7, [r5, #0x1a] - ldr r0, [r0, #0x0] - ldrsh r6, [r5, #0x18] - bl FUN_020B4F88 - cmp r0, #0x0 - ldr r0, _020B354C ; =UNK_021CDD6C - rsbne r6, r6, #0x0 - ldr r0, [r0, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - rsbne r7, r7, #0x0 - mov r0, r6, lsl #0xc - mov r1, r7, lsl #0xc - mov r2, #0x0 - bl FUN_020B2A08 -_020B34E4: - ldrh r0, [r5, #0x1e] - ands r0, r0, #0x4 - beq _020B3518 - ldrh r0, [r5, #0x1c] - ldr r2, _020B3550 ; =FX_SinCosTable_ - mov r0, r0, asr #0x4 - mov r1, r0, lsl #0x1 - add r0, r1, #0x1 - mov r3, r1, lsl #0x1 - mov r1, r0, lsl #0x1 - ldrsh r0, [r2, r3] - ldrsh r1, [r2, r1] - bl FUN_020B2794 -_020B3518: - ldrh r0, [r5, #0x1e] - ands r0, r0, #0x2 - beq _020B3534 - ldr r0, [r5, #0x10] - ldr r1, [r5, #0x14] - mov r2, #0x1000 - bl FUN_020B28B4 -_020B3534: - mov r0, r4 - bl FUN_020B3554 - mov r0, #0x1 - bl FUN_020B2B08 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B354C: .word UNK_021CDD6C -_020B3550: .word FX_SinCosTable_ - arm_func_end FUN_020B3474 - - arm_func_start FUN_020B3554 -FUN_020B3554: ; 0x020B3554 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrh r0, [r5, #0x4a] - ldr r4, [r5, #0x2c] - cmp r0, #0x0 - bne _020B35C0 - ldr r2, [r5, #0x34] - mvn r0, #0x0 - cmp r2, r0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B35B0 - ldr r1, _020B36B4 ; =UNK_02106574 - mov r0, r4 - str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 - mvn r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} -_020B35B0: - mov r0, r4 - bl FUN_020B36C0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} -_020B35C0: - bl FUN_020B2B58 - ldrh r0, [r5, #0x4a] - ands r0, r0, #0x8 - beq _020B3610 - ldr r0, _020B36B8 ; =UNK_021CDD6C - ldrsh r7, [r5, #0x46] - ldr r0, [r0, #0x0] - ldrsh r6, [r5, #0x44] - bl FUN_020B4F88 - cmp r0, #0x0 - ldr r0, _020B36B8 ; =UNK_021CDD6C - rsbne r6, r6, #0x0 - ldr r0, [r0, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - rsbne r7, r7, #0x0 - mov r0, r6, lsl #0xc - mov r1, r7, lsl #0xc - mov r2, #0x0 - bl FUN_020B2A08 -_020B3610: - ldrh r0, [r5, #0x4a] - ands r0, r0, #0x4 - beq _020B3644 - ldrh r0, [r5, #0x48] - ldr r2, _020B36BC ; =FX_SinCosTable_ - mov r0, r0, asr #0x4 - mov r1, r0, lsl #0x1 - add r0, r1, #0x1 - mov r3, r1, lsl #0x1 - mov r1, r0, lsl #0x1 - ldrsh r0, [r2, r3] - ldrsh r1, [r2, r1] - bl FUN_020B2794 -_020B3644: - ldrh r0, [r5, #0x4a] - ands r0, r0, #0x2 - beq _020B3660 - ldr r0, [r5, #0x3c] - ldr r1, [r5, #0x40] - mov r2, #0x1000 - bl FUN_020B28B4 -_020B3660: - ldr r2, [r5, #0x34] - mvn r0, #0x0 - cmp r2, r0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B369C - ldr r1, _020B36B4 ; =UNK_02106574 - mov r0, r4 - str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 - mvn r1, #0x0 - str r1, [r0, #0x0] - b _020B36A4 -_020B369C: - mov r0, r4 - bl FUN_020B36C0 -_020B36A4: - mov r0, #0x1 - bl FUN_020B2B08 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B36B4: .word UNK_02106574 -_020B36B8: .word UNK_021CDD6C -_020B36BC: .word FX_SinCosTable_ - arm_func_end FUN_020B3554 - - arm_func_start FUN_020B36C0 -FUN_020B36C0: ; 0x020B36C0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr r5, _020B3B54 ; =UNK_021CDD6C - mov r10, r0 - ldr r0, [r5, #0x0] - ldr r1, [r0, #0x7c] - str r0, [sp, #0x0] - ldr r9, [r0, #0x70] - ands r0, r1, #0x2 - beq _020B38EC - ldr r0, [r9, #0x14] - cmp r0, #0x0 - beq _020B3840 - ldr r0, _020B3B58 ; =UNK_021CDD68 - mov r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020B3720 - ldr r2, _020B3B5C ; =UNK_02106570 - ldr r0, _020B3B60 ; =0x0000FFFE - ldrh r2, [r2, #0x0] - cmp r2, r0 - movne r0, #0x1 - bne _020B3724 -_020B3720: - mov r0, #0x0 -_020B3724: - cmp r0, #0x0 - beq _020B37AC - ldr r0, _020B3B64 ; =UNK_021CE8F4 - ldr r1, [r0, #0x404] - cmp r1, #0x0 - beq _020B3788 - ldrh r1, [r0, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 - ldr r1, [r0, r1, lsl #0x2] - cmp r1, #0x0 - bne _020B37AC - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r2, _020B3B70 ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - ldr r1, _020B3B64 ; =UNK_021CE8F4 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0xd - ldrh r3, [r2, r0] - ldr r4, _020B3B74 ; =UNK_021CE4F4 - ldrh r2, [r1, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 - add r1, r4, r3, lsl #0x5 - str r1, [r0, r2, lsl #0x2] - b _020B37AC -_020B3788: - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B70 ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - ldr r2, _020B3B74 ; =UNK_021CE4F4 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0xd - ldrh r0, [r1, r0] - add r1, r2, r0, lsl #0x5 -_020B37AC: - ldr r0, _020B3B58 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r3, _020B3B78 ; =UNK_021CDEF4 - ldreq r2, [r0, #0x0] - moveq r0, #0x18 - mlaeq r0, r2, r0, r3 - beq _020B37FC - ldr r2, _020B3B6C ; =UNK_021CDD70 - mov r0, #0x18 - ldr r2, [r2, #0x0] - ldr r3, _020B3B7C ; =UNK_021CDF04 - mul r4, r2, r0 - ldr r2, _020B3B80 ; =UNK_021CDF08 - ldr r3, [r3, r4] - ldr r0, _020B3B84 ; =UNK_02106578 - ldr r2, [r2, r4] - str r3, [r0, #0x10] - str r2, [r0, #0x14] -_020B37FC: - bl FUN_020B4FAC - ldr r1, _020B3B88 ; =UNK_02106574 - mvn r0, #0x0 - ldr r1, [r1, #0x0] - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B3830 - mov r0, r10 - bl FUN_020B4BF4 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} -_020B3830: - mov r0, r10 - bl FUN_020B4CDC - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} -_020B3840: - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B8C ; =UNK_021CDD74 - ldr r2, [r0, #0x0] - ldr r0, [sp, #0x0] - ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r2, _020B3B78 ; =UNK_021CDEF4 - ldreq r1, [r0, #0x0] - moveq r0, #0x18 - mlaeq r0, r1, r0, r2 - beq _020B38A8 - ldr r1, _020B3B6C ; =UNK_021CDD70 - mov r0, #0x18 - ldr r1, [r1, #0x0] - ldr r2, _020B3B7C ; =UNK_021CDF04 - mul r3, r1, r0 - ldr r1, _020B3B80 ; =UNK_021CDF08 - ldr r2, [r2, r3] - ldr r0, _020B3B84 ; =UNK_02106578 - ldr r1, [r1, r3] - str r2, [r0, #0x10] - str r1, [r0, #0x14] -_020B38A8: - bl FUN_020B4FC4 - ldr r1, _020B3B88 ; =UNK_02106574 - mvn r0, #0x0 - ldr r1, [r1, #0x0] - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B38DC - mov r0, r10 - bl FUN_020B4BF4 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} -_020B38DC: - mov r0, r10 - bl FUN_020B4CDC - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} -_020B38EC: - cmp r9, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r11,pc} - ldr r4, _020B3B6C ; =UNK_021CDD70 - ldr fp, _020B3B78 ; =UNK_021CDEF4 - mov r7, #0x0 - mov r6, #0x1 -_020B3908: - ldr r0, [r9, #0x10] - cmp r0, #0x0 - beq _020B3B40 - ldr r0, [r9, #0x14] - cmp r0, #0x0 - beq _020B3A8C - ldr r8, [r5, #0x0] - mov r1, r9 - str r9, [r8, #0x74] - mov r0, r8 - bl FUN_020B4F9C - ldr r1, [r9, #0x28] - ldr r2, [r9, #0x2c] - mov r0, r8 - bl FUN_020B5034 - mov r0, r8 - bl FUN_020B4E0C - ldr r0, _020B3B58 ; =UNK_021CDD68 - mov r1, r7 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020B3978 - ldr r0, _020B3B5C ; =UNK_02106570 - ldrh r2, [r0, #0x0] - ldr r0, _020B3B60 ; =0x0000FFFE - cmp r2, r0 - movne r0, r6 - bne _020B397C -_020B3978: - mov r0, r7 -_020B397C: - cmp r0, #0x0 - beq _020B3A04 - ldr r0, _020B3B64 ; =UNK_021CE8F4 - ldr r0, [r0, #0x404] - cmp r0, #0x0 - beq _020B39E4 - ldr r0, _020B3B64 ; =UNK_021CE8F4 - ldrh r1, [r0, #0x0] - add r0, r0, r1, lsl #0x2 - ldr r1, [r0, #0x4] - cmp r1, #0x0 - bne _020B3A04 - bl FUN_020B4010 - ldr r0, _020B3B64 ; =UNK_021CE8F4 - ldr r2, [r4, #0x0] - ldrh r1, [r0, #0x0] - mov r0, r2, lsl #0x10 - mov r2, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 - ldrh r3, [r0, r2] - ldr r0, _020B3B64 ; =UNK_021CE8F4 - add r2, r0, r1, lsl #0x2 - ldr r0, _020B3B74 ; =UNK_021CE4F4 - add r1, r0, r3, lsl #0x5 - str r1, [r2, #0x4] - b _020B3A04 -_020B39E4: - bl FUN_020B4010 - ldr r0, [r4, #0x0] - mov r0, r0, lsl #0x10 - mov r1, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 - ldrh r1, [r0, r1] - ldr r0, _020B3B74 ; =UNK_021CE4F4 - add r1, r0, r1, lsl #0x5 -_020B3A04: - ldr r0, _020B3B58 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r2, [r4, #0x0] - moveq r0, #0x18 - mlaeq r0, r2, r0, r11 - beq _020B3A44 - ldr r2, [r4, #0x0] - mov r0, #0x18 - mla r8, r2, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 - ldr r3, [r8, #0x10] - mov r2, r0 - str r3, [r2, #0x10] - ldr r3, [r8, #0x14] - str r3, [r2, #0x14] -_020B3A44: - bl FUN_020B4FAC - ldr r0, _020B3B88 ; =UNK_02106574 - ldr r1, [r0, #0x0] - mvn r0, #0x0 - cmp r1, r0 - movne r0, r6 - moveq r0, r7 - cmp r0, #0x0 - beq _020B3A74 - mov r0, r10 - bl FUN_020B4BF4 - b _020B3A7C -_020B3A74: - mov r0, r10 - bl FUN_020B4CDC -_020B3A7C: - ldr r0, [r5, #0x0] - str r7, [r0, #0x74] - bl FUN_020B4DA0 - b _020B3B40 -_020B3A8C: - ldr r8, [r5, #0x0] - mov r1, r9 - mov r0, r8 - str r9, [r8, #0x74] - bl FUN_020B4F9C - mov r0, r8 - bl FUN_020B4E0C - ldr r2, [r4, #0x0] - ldr r1, _020B3B8C ; =UNK_021CDD74 - ldr r0, [sp, #0x0] - ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r1, [r4, #0x0] - moveq r0, #0x18 - mlaeq r0, r1, r0, r11 - beq _020B3AFC - ldr r1, [r4, #0x0] - mov r0, #0x18 - mla r3, r1, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 - ldr r2, [r3, #0x10] - mov r1, r0 - str r2, [r1, #0x10] - ldr r2, [r3, #0x14] - str r2, [r1, #0x14] -_020B3AFC: - bl FUN_020B4FC4 - ldr r0, _020B3B88 ; =UNK_02106574 - ldr r1, [r0, #0x0] - mvn r0, #0x0 - cmp r1, r0 - movne r0, r6 - moveq r0, r7 - cmp r0, #0x0 - beq _020B3B2C - mov r0, r10 - bl FUN_020B4BF4 - b _020B3B34 -_020B3B2C: - mov r0, r10 - bl FUN_020B4CDC -_020B3B34: - ldr r0, [r5, #0x0] - str r7, [r0, #0x74] - bl FUN_020B4DA0 -_020B3B40: - ldr r9, [r9, #0x30] - cmp r9, #0x0 - bne _020B3908 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B3B54: .word UNK_021CDD6C -_020B3B58: .word UNK_021CDD68 -_020B3B5C: .word UNK_02106570 -_020B3B60: .word 0x0000FFFE -_020B3B64: .word UNK_021CE8F4 -_020B3B68: .word UNK_021CE8F8 -_020B3B6C: .word UNK_021CDD70 -_020B3B70: .word UNK_021CDDF4 -_020B3B74: .word UNK_021CE4F4 -_020B3B78: .word UNK_021CDEF4 -_020B3B7C: .word UNK_021CDF04 -_020B3B80: .word UNK_021CDF08 -_020B3B84: .word UNK_02106578 -_020B3B88: .word UNK_02106574 -_020B3B8C: .word UNK_021CDD74 - arm_func_end FUN_020B36C0 - - arm_func_start FUN_020B3B90 -FUN_020B3B90: ; 0x020B3B90 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - ldr r0, _020B3C24 ; =UNK_021CDD6C - mov r12, r1 - ldr r0, [r0, #0x0] - mov r3, r2 - ldr r1, [r0, #0x74] - ldr r2, [r1, #0x44] - cmp r2, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3C28 ; =UNK_021CDD68 - ldr r2, [r2, #0x0] - cmp r2, #0x0 - ldreq r2, _020B3C2C ; =UNK_021CDD70 - ldreq r4, _020B3C30 ; =UNK_021CDEF4 - ldreq lr, [r2, #0x0] - moveq r2, #0x18 - mlaeq r6, lr, r2, r4 - beq _020B3C0C - ldr lr, _020B3C2C ; =UNK_021CDD70 - mov r2, #0x18 - ldr lr, [lr, #0x0] - ldr r4, _020B3C34 ; =UNK_021CDF04 - mul r5, lr, r2 - ldr r2, _020B3C38 ; =UNK_021CDF08 - ldr r4, [r4, r5] - ldr r6, _020B3C3C ; =UNK_02106578 - ldr r2, [r2, r5] - str r4, [r6, #0x10] - str r2, [r6, #0x14] -_020B3C0C: - str r6, [sp, #0x0] - ldr lr, [r1, #0x44] - mov r2, r12 - blx lr - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B3C24: .word UNK_021CDD6C -_020B3C28: .word UNK_021CDD68 -_020B3C2C: .word UNK_021CDD70 -_020B3C30: .word UNK_021CDEF4 -_020B3C34: .word UNK_021CDF04 -_020B3C38: .word UNK_021CDF08 -_020B3C3C: .word UNK_02106578 - arm_func_end FUN_020B3B90 - - arm_func_start FUN_020B3C40 -FUN_020B3C40: ; 0x020B3C40 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - ldr r3, _020B3E2C ; =UNK_021CDD6C - add r4, r0, #0x38 - ldr r0, [r3, #0x0] - mov r6, r1 - mov r5, r2 - bl FUN_020B278C - cmp r0, #0x0 - beq _020B3C90 - ldrh r1, [r4, #0x4] - and r1, r1, #0xf000 - mov r1, r1, lsl #0x4 - mov r1, r1, lsr #0x10 - bl FUN_020B10B0 - ldr r1, [r4, #0x4] - and r0, r0, #0xf - bic r1, r1, #0xf000 - orr r0, r1, r0, lsl #0xc - str r0, [r4, #0x4] -_020B3C90: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x84] - cmp r0, #0x0 - beq _020B3DA4 - ldr r0, [r1, #0x84] - ands r0, r0, #0x1 - beq _020B3CC8 - ldrh r0, [r1, #0x88] - ldr r1, [r4, #0x4] - bic r1, r1, #0xc00 - and r0, r0, #0x3 - orr r0, r1, r0, lsl #0xa - str r0, [r4, #0x4] -_020B3CC8: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x84] - ands r0, r0, #0x2 - beq _020B3CF4 - ldrh r0, [r1, #0x8a] - ldr r1, [r4, #0x4] - bic r1, r1, #0xf000 - and r0, r0, #0xf - orr r0, r1, r0, lsl #0xc - str r0, [r4, #0x4] -_020B3CF4: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x84] - ands r0, r0, #0x10 - beq _020B3D2C - ldr r2, [r4, #0x4] - ldrh r0, [r1, #0x94] - mov r1, r2, lsl #0x10 - bic r2, r2, #0xf000 - add r0, r0, r1, lsr #0x1c - and r0, r0, #0xf - and r0, r0, #0xf - orr r0, r2, r0, lsl #0xc - str r0, [r4, #0x4] -_020B3D2C: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x84] - ands r0, r0, #0x4 - beq _020B3D60 - ldr r0, [r1, #0x90] - cmp r0, #0x0 - ldrne r0, [r4, #0x0] - orrne r0, r0, #0x1000 - strne r0, [r4, #0x0] - ldreq r0, [r4, #0x0] - biceq r0, r0, #0x1000 - streq r0, [r4, #0x0] -_020B3D60: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x84] - ands r0, r0, #0x8 - beq _020B3DA4 - ldr r0, [r4, #0x0] - ldrh r2, [r4, #0x4] - ldr r1, [r1, #0x8c] - bic r0, r0, #0xc00 - orr r0, r0, r1, lsl #0xa - str r0, [r4, #0x0] - ldrh r0, [r4, #0x4] - and r1, r2, #0xf000 - mov r1, r1, asr #0xc - bic r0, r0, #0xf000 - orr r0, r0, r1, lsl #0xc - strh r0, [r4, #0x4] -_020B3DA4: - ldr r0, _020B3E2C ; =UNK_021CDD6C - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x74] - ldr r2, [r1, #0x40] - cmp r2, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3E30 ; =UNK_021CDD68 - ldr r2, [r2, #0x0] - cmp r2, #0x0 - ldreq r2, _020B3E34 ; =UNK_021CDD70 - ldreq r4, _020B3E38 ; =UNK_021CDEF4 - ldreq r3, [r2, #0x0] - moveq r2, #0x18 - mlaeq r4, r3, r2, r4 - beq _020B3E10 - ldr r3, _020B3E34 ; =UNK_021CDD70 - mov r2, #0x18 - ldr r4, [r3, #0x0] - ldr r3, _020B3E3C ; =UNK_021CDF04 - mul r12, r4, r2 - ldr r2, _020B3E40 ; =UNK_021CDF08 - ldr r3, [r3, r12] - ldr r4, _020B3E44 ; =UNK_02106578 - ldr r2, [r2, r12] - str r3, [r4, #0x10] - str r2, [r4, #0x14] -_020B3E10: - str r4, [sp, #0x0] - ldr r4, [r1, #0x40] - mov r2, r6 - mov r3, r5 - blx r4 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B3E2C: .word UNK_021CDD6C -_020B3E30: .word UNK_021CDD68 -_020B3E34: .word UNK_021CDD70 -_020B3E38: .word UNK_021CDEF4 -_020B3E3C: .word UNK_021CDF04 -_020B3E40: .word UNK_021CDF08 -_020B3E44: .word UNK_02106578 - arm_func_end FUN_020B3C40 - - arm_func_start FUN_020B3E48 -FUN_020B3E48: ; 0x020B3E48 - stmdb sp!, {r4,lr} - ldr r0, _020B3EC4 ; =UNK_021CDD6C - mov r2, r1 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x74] - ldr r3, [r1, #0x3c] - cmp r3, #0x0 - ldmeqia sp!, {r4,pc} - ldr r3, _020B3EC8 ; =UNK_021CDD68 - ldr r3, [r3, #0x0] - cmp r3, #0x0 - ldreq r3, _020B3ECC ; =UNK_021CDD70 - ldreq lr, _020B3ED0 ; =UNK_021CDEF4 - ldreq r12, [r3, #0x0] - moveq r3, #0x18 - mlaeq r3, r12, r3, lr - beq _020B3EB8 - ldr ip, _020B3ECC ; =UNK_021CDD70 - mov r3, #0x18 - ldr r12, [r12, #0x0] - ldr lr, _020B3ED4 ; =UNK_021CDF04 - mul r4, r12, r3 - ldr ip, _020B3ED8 ; =UNK_021CDF08 - ldr lr, [lr, r4] - ldr r3, _020B3EDC ; =UNK_02106578 - ldr r12, [r12, r4] - str lr, [r3, #0x10] - str r12, [r3, #0x14] -_020B3EB8: - ldr r12, [r1, #0x3c] - blx r12 - ldmia sp!, {r4,pc} - .balign 4 -_020B3EC4: .word UNK_021CDD6C -_020B3EC8: .word UNK_021CDD68 -_020B3ECC: .word UNK_021CDD70 -_020B3ED0: .word UNK_021CDEF4 -_020B3ED4: .word UNK_021CDF04 -_020B3ED8: .word UNK_021CDF08 -_020B3EDC: .word UNK_02106578 - arm_func_end FUN_020B3E48 - - arm_func_start FUN_020B3EE0 -FUN_020B3EE0: ; 0x020B3EE0 - stmdb sp!, {r4-r6,lr} - ldr r2, _020B3FF4 ; =UNK_021CDD6C - mov r6, r0 - ldr r0, [r2, #0x0] - mov r5, r1 - ldr r4, [r0, #0x74] - ldr r0, [r4, #0x34] - cmp r0, #0x0 - beq _020B3F7C - ldr r0, _020B3FF8 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r1, _020B4000 ; =UNK_021CDEF4 - ldreq r2, [r0, #0x0] - moveq r0, #0x18 - mlaeq r1, r2, r0, r1 - beq _020B3F54 - ldr r1, _020B3FFC ; =UNK_021CDD70 - mov r0, #0x18 - ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 - mul r3, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 - ldr r2, [r1, r3] - ldr r1, _020B400C ; =UNK_02106578 - ldr r0, [r0, r3] - str r2, [r1, #0x10] - str r0, [r1, #0x14] -_020B3F54: - ldr r3, [r4, #0x34] - mov r0, r5 - mov r2, r4 - blx r3 - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r6, #0x30] - ldmeqia sp!, {r4-r6,pc} - mov r0, #0x1 - str r0, [r6, #0x30] -_020B3F7C: - ldr r0, [r4, #0x38] - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r0, _020B3FF8 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r2, _020B4000 ; =UNK_021CDEF4 - ldreq r1, [r0, #0x0] - moveq r0, #0x18 - mlaeq r3, r1, r0, r2 - beq _020B3FD8 - ldr r1, _020B3FFC ; =UNK_021CDD70 - mov r0, #0x18 - ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 - mul r6, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 - ldr r1, [r1, r6] - ldr r3, _020B400C ; =UNK_02106578 - ldr r0, [r0, r6] - str r1, [r3, #0x10] - str r0, [r3, #0x14] -_020B3FD8: - ldr r0, _020B3FF4 ; =UNK_021CDD6C - ldr r6, [r4, #0x38] - ldr r0, [r0, #0x0] - mov r1, r4 - mov r2, r5 - blx r6 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B3FF4: .word UNK_021CDD6C -_020B3FF8: .word UNK_021CDD68 -_020B3FFC: .word UNK_021CDD70 -_020B4000: .word UNK_021CDEF4 -_020B4004: .word UNK_021CDF04 -_020B4008: .word UNK_021CDF08 -_020B400C: .word UNK_02106578 - arm_func_end FUN_020B3EE0 - - arm_func_start FUN_020B4010 -FUN_020B4010: ; 0x020B4010 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4158 ; =UNK_021CDDF4 - ldr r0, [r0, #0x0] - mov r2, #0x1 - mov r0, r0, lsl #0x10 - add r3, r1, r0, lsr #0xd - ldrh r0, [r3, #0x4] - cmp r0, #0x1 - beq _020B4044 - cmp r0, #0x2 - movne r2, #0x0 -_020B4044: - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r0, _020B415C ; =UNK_021CDD60 - mov r2, #0x10 - ldrh r4, [r0, #0x0] - cmp r4, #0x1f - addcc r1, r4, #0x1 - strcch r1, [r0, #0x0] - ldr r0, _020B4160 ; =UNK_021CE4F4 - ldrh r5, [r3, #0x2] - add r0, r0, r4, lsl #0x5 - add r1, r0, #0x10 - mvn r0, #0x0 - strh r4, [r3, #0x0] - bl MIi_CpuClearFast - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4164 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - ldr r2, [r1, #0x0] - mov r1, r0, lsl #0x10 - cmp r2, #0x0 - ldr r3, _020B4158 ; =UNK_021CDDF4 - mov r1, r1, lsr #0xd - ldrh r1, [r3, r1] - ldr r3, _020B4160 ; =UNK_021CE4F4 - moveq r2, #0x18 - add r1, r3, r1, lsl #0x5 - ldreq r3, _020B4168 ; =UNK_021CE1F4 - mlaeq r12, r0, r2, r3 - beq _020B40E4 - mov r2, #0x18 - mul r3, r0, r2 - ldr r2, _020B416C ; =UNK_021CDF04 - ldr r0, _020B4170 ; =UNK_021CDF08 - ldr r2, [r2, r3] - ldr ip, _020B4174 ; =UNK_02106578 - ldr r0, [r0, r3] - str r2, [r12, #0x10] - str r0, [r12, #0x14] -_020B40E4: - ldr r2, [r12, #0x0] - ldr r0, _020B4154 ; =UNK_021CDD70 - str r2, [r1, #0x0] - ldr r2, [r12, #0x4] - str r2, [r1, #0x4] - ldr r2, [r12, #0x8] - str r2, [r1, #0x8] - ldr r2, [r12, #0xc] - str r2, [r1, #0xc] - ldr r0, [r0, #0x0] - mov r0, r0, lsl #0x10 - movs lr, r0, lsr #0x10 - addmi sp, sp, #0x4 - ldmmiia sp!, {r4-r5,pc} - ldr r3, _020B4158 ; =UNK_021CDDF4 - mov r0, #0x3 -_020B4124: - add r2, r3, lr, lsl #0x3 - ldrh r1, [r2, #0x2] - mov r12, lr, lsl #0x3 - cmp r5, r1 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} - strh r0, [r2, #0x4] - strh r4, [r3, r12] - subs lr, lr, #0x1 - bpl _020B4124 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B4154: .word UNK_021CDD70 -_020B4158: .word UNK_021CDDF4 -_020B415C: .word UNK_021CDD60 -_020B4160: .word UNK_021CE4F4 -_020B4164: .word UNK_021CDD68 -_020B4168: .word UNK_021CE1F4 -_020B416C: .word UNK_021CDF04 -_020B4170: .word UNK_021CDF08 -_020B4174: .word UNK_02106578 - arm_func_end FUN_020B4010 - - arm_func_start FUN_020B4178 -FUN_020B4178: ; 0x020B4178 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r0, _020B4220 ; =UNK_021CDD68 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020B41B8 - ldr r1, _020B4224 ; =UNK_021CDD70 - mov r0, #0x18 - ldr r12, [r1, #0x0] - ldr r1, _020B4228 ; =UNK_021CDF04 - mul r3, r12, r0 - mov r2, #0x0 - ldr r0, _020B422C ; =UNK_021CDF08 - str r2, [r1, r3] - str r2, [r0, r3] - b _020B420C -_020B41B8: - ldr r0, _020B4224 ; =UNK_021CDD70 - mov lr, #0x18 - ldr r1, [r0, #0x0] - ldr r4, _020B4230 ; =UNK_021CDEF4 - mul r3, r1, lr - mov r2, #0x1000 - str r2, [r4, r3] - add r5, r4, r3 - mov r1, #0x0 - str r1, [r5, #0x4] - str r1, [r5, #0x8] - str r2, [r5, #0xc] - str r1, [r5, #0x10] - str r1, [r5, #0x14] - ldr r12, [r0, #0x0] - ldr r4, _020B4234 ; =UNK_021CE1F4 - ldmia r5!, {r0-r3} - mla lr, r12, lr, r4 - stmia lr!, {r0-r3} - ldmia r5, {r0-r1} - stmia lr, {r0-r1} -_020B420C: - ldr r0, _020B4238 ; =UNK_021CDD74 - mov r1, #0x0 - str r1, [r0, r12, lsl #0x2] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B4220: .word UNK_021CDD68 -_020B4224: .word UNK_021CDD70 -_020B4228: .word UNK_021CDF04 -_020B422C: .word UNK_021CDF08 -_020B4230: .word UNK_021CDEF4 -_020B4234: .word UNK_021CE1F4 -_020B4238: .word UNK_021CDD74 - arm_func_end FUN_020B4178 - - arm_func_start FUN_020B423C -FUN_020B423C: ; 0x020B423C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x1c - ldr r4, [r0, #0x4] - ldr r3, [r1, #0x8] - mov r12, r2 - smull r6, r5, r4, r3 - ldr r4, [r0, #0x0] - ldr r3, [r1, #0x0] - cmp r12, r1 - smlal r6, r5, r4, r3 - mov r3, r6, lsr #0xc - addeq r2, sp, #0x0 - orr r3, r3, r5, lsl #0x14 - str r3, [r2, #0x0] - ldr r4, [r0, #0x4] - ldr r3, [r1, #0xc] - ldr r5, [r0, #0x0] - smull r7, r6, r4, r3 - ldr r3, [r1, #0x4] - add lr, sp, #0x0 - smlal r7, r6, r5, r3 - mov r3, r7, lsr #0xc - orr r3, r3, r6, lsl #0x14 - str r3, [r2, #0x4] - ldr r4, [r0, #0xc] - ldr r3, [r1, #0x8] - ldr r5, [r0, #0x8] - smull r7, r6, r4, r3 - ldr r3, [r1, #0x0] - cmp r2, lr - smlal r7, r6, r5, r3 - mov r3, r7, lsr #0xc - orr r3, r3, r6, lsl #0x14 - str r3, [r2, #0x8] - ldr r4, [r0, #0xc] - ldr r3, [r1, #0xc] - ldr r5, [r0, #0x8] - smull r7, r6, r4, r3 - ldr r3, [r1, #0x4] - smlal r7, r6, r5, r3 - mov r3, r7, lsr #0xc - orr r3, r3, r6, lsl #0x14 - str r3, [r2, #0xc] - ldr r4, [r0, #0x14] - ldr r3, [r1, #0x8] - ldr r5, [r0, #0x10] - smull r7, r6, r4, r3 - ldr r3, [r1, #0x0] - ldr r4, [r1, #0x10] - smlal r7, r6, r5, r3 - mov r3, r7, lsr #0xc - orr r3, r3, r6, lsl #0x14 - add r3, r4, r3 - str r3, [r2, #0x10] - ldr r4, [r0, #0x14] - ldr r3, [r1, #0xc] - ldr r5, [r0, #0x10] - ldr r0, [r1, #0x4] - smull r6, r3, r4, r3 - smlal r6, r3, r5, r0 - mov r0, r6, lsr #0xc - ldr r1, [r1, #0x14] - orr r0, r0, r3, lsl #0x14 - add r0, r1, r0 - str r0, [r2, #0x14] - ldmeqia lr!, {r0-r3} - stmeqia r12!, {r0-r3} - ldmeqia lr, {r0-r1} - stmeqia r12, {r0-r1} - add sp, sp, #0x1c - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B423C - - arm_func_start FUN_020B4358 -FUN_020B4358: ; 0x020B4358 - stmdb sp!, {r4,lr} - ldr r2, _020B43A0 ; =UNK_021CED04 - mov r1, #0x30 - ldr r2, [r2, #0x0] - mla r4, r0, r1, r2 - mov r0, r4 - bl FUN_020B10CC - mov r0, #0x0 - str r0, [r4, #0xc] - str r0, [r4, #0x10] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - str r0, [r4, #0x1c] - str r0, [r4, #0x20] - str r0, [r4, #0x24] - str r0, [r4, #0x28] - str r0, [r4, #0x2c] - ldmia sp!, {r4,pc} - .balign 4 -_020B43A0: .word UNK_021CED04 - arm_func_end FUN_020B4358 - - arm_func_start FUN_020B43A4 -FUN_020B43A4: ; 0x020B43A4 - ldr r1, _020B43F8 ; =UNK_021CED00 - mov r0, #0x0 - ldr r3, [r1, #0x0] - cmp r3, #0x0 - bls _020B43F0 - ldr r1, _020B43FC ; =UNK_021CED04 - ldr r2, [r1, #0x0] - mov r12, r2 -_020B43C4: - ldr r1, [r12, #0x1c] - cmp r1, #0x1 - movne r1, #0x30 - mlane r1, r0, r1, r2 - movne r2, #0x1 - strne r2, [r1, #0x1c] - bxne lr - add r0, r0, #0x1 - cmp r0, r3 - add r12, r12, #0x30 - blo _020B43C4 -_020B43F0: - mvn r0, #0x0 - bx lr - .balign 4 -_020B43F8: .word UNK_021CED00 -_020B43FC: .word UNK_021CED04 - arm_func_end FUN_020B43A4 - - arm_func_start FUN_020B4400 -FUN_020B4400: ; 0x020B4400 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r1 - mov r4, r2 - bl FUN_020B469C - mvn r1, #0x0 - str r1, [r0, #0x24] - str r5, [r0, #0x28] - str r4, [r0, #0x2c] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B4400 - - arm_func_start FUN_020B442C -FUN_020B442C: ; 0x020B442C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r0, #0x0 - str r0, [sp, #0x0] - ldr r0, _020B4558 ; =UNK_021CED00 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addls sp, sp, #0x14 - ldmlsia sp!, {r4-r11,pc} - ldr r0, [sp, #0x0] - mov r5, #0x1 - str r0, [sp, #0x4] - mov r11, r0 - str r0, [sp, #0x8] - str r0, [sp, #0xc] -_020B4468: - ldr r0, _020B455C ; =UNK_021CED04 - ldr r1, [r0, #0x0] - ldr r0, [sp, #0x4] - add r8, r1, r0 - ldr r0, [r8, #0x1c] - cmp r0, #0x0 - beq _020B4528 - ldr r9, [sp, #0x8] - mov r0, r9 - cmp r0, #0x3 - bge _020B4520 - add r4, r8, #0x24 -_020B4498: - mov r6, r5, lsl r9 - mov r1, r11 - ldr r0, [r8, #0x24] - ands r0, r0, r6 - beq _020B44B8 - ldr r0, [r8, #0x20] - ands r0, r0, r6 - movne r1, r5 -_020B44B8: - cmp r1, #0x0 - beq _020B4514 - ldr r0, _020B4560 ; =UNK_020FF8C4 - cmp r9, #0x0 - ldr r7, [r0, r9, lsl #0x2] - ldreq r10, [r8, #0x14] - mov r0, r8 - mov r1, r9 - ldrne r10, [r8, #0x10] - bl FUN_020B10BC - mov r1, r0 - mov r0, r7 - ldr r7, _020B4564 ; =UNK_021CECFC - ldr r2, [r8, #0x28] - ldr r3, [r8, #0x2c] - ldr r7, [r7, #0x0] - add r2, r10, r2 - blx r7 - cmp r0, #0x0 - ldrne r1, [r4, #0x0] - mvnne r0, r6 - andne r0, r1, r0 - strne r0, [r4, #0x0] -_020B4514: - add r9, r9, #0x1 - cmp r9, #0x3 - blt _020B4498 -_020B4520: - ldr r0, [sp, #0xc] - str r0, [r8, #0x20] -_020B4528: - ldr r0, _020B4558 ; =UNK_021CED00 - ldr r1, [r0, #0x0] - ldr r0, [sp, #0x0] - add r0, r0, #0x1 - str r0, [sp, #0x0] - cmp r0, r1 - ldr r0, [sp, #0x4] - add r0, r0, #0x30 - str r0, [sp, #0x4] - blo _020B4468 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B4558: .word UNK_021CED00 -_020B455C: .word UNK_021CED04 -_020B4560: .word UNK_020FF8C4 -_020B4564: .word UNK_021CECFC - arm_func_end FUN_020B442C - - arm_func_start FUN_020B4568 -FUN_020B4568: ; 0x020B4568 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr ip, _020B45E4 ; =UNK_021CECFC - movs r6, r1 - ldr r1, _020B45E8 ; =UNK_021CED00 - ldr r3, _020B45EC ; =UNK_021CED04 - mov r7, r0 - str r2, [r12, #0x0] - mov r5, #0x0 - addeq sp, sp, #0x4 - str r7, [r3, #0x0] - str r6, [r1, #0x0] - ldmeqia sp!, {r4-r7,pc} - mov r4, r5 -_020B45A0: - mov r0, r7 - bl FUN_020B10CC - str r4, [r7, #0xc] - str r4, [r7, #0x10] - str r4, [r7, #0x14] - str r4, [r7, #0x18] - str r4, [r7, #0x1c] - str r4, [r7, #0x20] - str r4, [r7, #0x24] - str r4, [r7, #0x28] - add r5, r5, #0x1 - str r4, [r7, #0x2c] - cmp r5, r6 - add r7, r7, #0x30 - blo _020B45A0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B45E4: .word UNK_021CECFC -_020B45E8: .word UNK_021CED00 -_020B45EC: .word UNK_021CED04 - arm_func_end FUN_020B4568 - - arm_func_start FUN_020B45F0 -FUN_020B45F0: ; 0x020B45F0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr ip, _020B4698 ; =UNK_021CED04 - mov r4, #0x30 - ldr r12, [r12, #0x0] - mov r7, r1 - mla r4, r0, r4, r12 - mov r0, r4 - mov r6, r2 - mov r5, r3 - bl FUN_020B10CC - mvn r0, #0x0 - cmp r7, r0 - beq _020B4638 - mov r0, r4 - mov r2, r7 - mov r1, #0x0 - bl FUN_020B10C4 -_020B4638: - mvn r0, #0x0 - cmp r6, r0 - beq _020B4654 - mov r0, r4 - mov r2, r6 - mov r1, #0x1 - bl FUN_020B10C4 -_020B4654: - mvn r0, #0x0 - cmp r5, r0 - beq _020B4670 - mov r0, r4 - mov r2, r5 - mov r1, #0x2 - bl FUN_020B10C4 -_020B4670: - ldr r1, [sp, #0x18] - ldr r0, [sp, #0x1c] - str r1, [r4, #0xc] - ldr r1, [sp, #0x20] - str r0, [r4, #0x10] - ldr r0, [sp, #0x24] - str r1, [r4, #0x14] - str r0, [r4, #0x18] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B4698: .word UNK_021CED04 - arm_func_end FUN_020B45F0 - - arm_func_start FUN_020B469C -FUN_020B469C: ; 0x020B469C - ldr r2, _020B46B0 ; =UNK_021CED04 - mov r1, #0x30 - ldr r2, [r2, #0x0] - mla r0, r1, r0, r2 - bx lr - .balign 4 -_020B46B0: .word UNK_021CED04 - arm_func_end FUN_020B469C - - arm_func_start FUN_020B46B4 -FUN_020B46B4: ; 0x020B46B4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x1c - add r12, sp, #0x4 - mov r5, r1 - mov r4, r2 - mov r7, r3 - mov r6, r0 - ldr r1, [sp, #0x30] - ldr r2, [sp, #0x34] - ldr r3, [sp, #0x38] - mov r0, r7 - str r12, [sp, #0x0] - bl FUN_020B498C - ldr r2, [r7, #0x0] - and r1, r2, #0x300 - cmp r1, #0x100 - beq _020B4708 - cmp r1, #0x300 - beq _020B4708 - and r0, r2, #0x30000000 - orr r1, r1, r0 -_020B4708: - cmp r1, #0x300 - bne _020B478C - ldr r0, _020B4914 ; =0xC000C000 - ldr r1, _020B4918 ; =UNK_021CED08 - and r0, r2, r0 - and r2, r0, #0xc0000000 - mov r12, r2, lsr #0x1e - and r0, r0, #0xc000 - mov lr, r0, asr #0xe - ldr r3, _020B491C ; =UNK_020FF8AC - ldr r0, [r1, #0x0] - ldr r2, _020B4920 ; =UNK_020FF894 - cmp r0, #0x0 - ldrne r0, _020B4924 ; =UNK_021CED10 - mov r12, r12, lsl #0x1 - add r1, r2, lr, lsl #0x3 - add r3, r3, lr, lsl #0x3 - ldrh r2, [r12, r3] - ldrh r1, [r12, r1] - ldrne r0, [r0, #0x0] - mov r2, r2, asr #0x1 - addne r3, r0, r4, lsl #0xc - mov r1, r1, asr #0x1 - add r0, r5, r1 - add r2, r6, r2 - ldr r1, _020B4928 ; =0x04000470 - mov r2, r2, lsl #0xc - str r2, [r1, #0x0] - mov r0, r0, lsl #0xc - moveq r3, r4, lsl #0xc - str r0, [r1, #0x0] - str r3, [r1, #0x0] - b _020B47C0 -_020B478C: - ldr r0, _020B4918 ; =UNK_021CED08 - ldr r1, _020B4928 ; =0x04000470 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldrne r0, _020B4924 ; =UNK_021CED10 - ldrne r0, [r0, #0x0] - addne r2, r0, r4, lsl #0xc - mov r0, r6, lsl #0xc - str r0, [r1, #0x0] - mov r0, r5, lsl #0xc - moveq r2, r4, lsl #0xc - str r0, [r1, #0x0] - str r2, [r1, #0x0] -_020B47C0: - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] - ldr r2, _020B492C ; =0x0400046C - mov r0, r0, lsl #0xc - str r0, [r2, #0x0] - mov r0, r1, lsl #0xc - str r0, [r2, #0x0] - mov r1, #0x1000 - str r1, [r2, #0x0] - ldr r0, _020B4930 ; =0x04000500 - mov r1, #0x1 - str r1, [r0, #0x0] - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x10] - mov r0, r0, lsl #0x8 - mov r1, r1, lsl #0x8 - mov r0, r0, asr #0x10 - mov r1, r1, asr #0x10 - mov r0, r0, lsl #0x10 - mov r1, r1, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r1, lsr #0x10 - orr r2, r2, r0, lsl #0x10 - ldr r1, _020B4934 ; =0x04000488 - ldr r0, _020B4938 ; =0x04000490 - str r2, [r1, #0x0] - mov r2, #0x10000 - str r2, [r0, #0x0] - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x10] - mov r2, r2, lsl #0x8 - mov r3, r3, lsl #0x8 - mov r2, r2, asr #0x10 - mov r3, r3, asr #0x10 - mov r2, r2, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r4, r2, lsr #0x10 - mov r2, r3, lsr #0x10 - orr r3, r4, r2, lsl #0x10 - ldr r2, _020B493C ; =0x00010040 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x8] - mov r2, r2, lsl #0x8 - mov r3, r3, lsl #0x8 - mov r2, r2, asr #0x10 - mov r3, r3, asr #0x10 - mov r2, r2, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r4, r2, lsr #0x10 - mov r2, r3, lsr #0x10 - orr r2, r4, r2, lsl #0x10 - str r2, [r1, #0x0] - mov r2, #0x40 - str r2, [r0, #0x0] - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x8] - mov r2, r2, lsl #0x8 - mov r3, r3, lsl #0x8 - mov r2, r2, asr #0x10 - mov r3, r3, asr #0x10 - mov r2, r2, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r4, r2, lsr #0x10 - mov r2, r3, lsr #0x10 - orr r2, r4, r2, lsl #0x10 - str r2, [r1, #0x0] - mov r2, #0x0 - str r2, [r0, #0x0] - ldr r1, _020B4940 ; =0x04000504 - ldr r0, _020B4918 ; =UNK_021CED08 - str r2, [r1, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r7,pc} - ldr r1, _020B4924 ; =UNK_021CED10 - ldr r0, _020B4944 ; =UNK_02106590 - ldr r2, [r1, #0x0] - ldr r0, [r0, #0x0] - add r0, r2, r0 - str r0, [r1, #0x0] - add sp, sp, #0x1c - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B4914: .word 0xC000C000 -_020B4918: .word UNK_021CED08 -_020B491C: .word UNK_020FF8AC -_020B4920: .word UNK_020FF894 -_020B4924: .word UNK_021CED10 -_020B4928: .word 0x04000470 -_020B492C: .word 0x0400046C -_020B4930: .word 0x04000500 -_020B4934: .word 0x04000488 -_020B4938: .word 0x04000490 -_020B493C: .word 0x00010040 -_020B4940: .word 0x04000504 -_020B4944: .word UNK_02106590 - arm_func_end FUN_020B46B4 - - arm_func_start FUN_020B4948 -FUN_020B4948: ; 0x020B4948 - ldr r0, _020B4954 ; =UNK_02106590 - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020B4954: .word UNK_02106590 - arm_func_end FUN_020B4948 - - arm_func_start FUN_020B4958 -FUN_020B4958: ; 0x020B4958 - ldr r1, _020B4964 ; =UNK_02106590 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020B4964: .word UNK_02106590 - arm_func_end FUN_020B4958 - - arm_func_start FUN_020B4968 -FUN_020B4968: ; 0x020B4968 - ldr r0, _020B4978 ; =UNK_021CED10 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_020B4978: .word UNK_021CED10 - arm_func_end FUN_020B4968 - - arm_func_start FUN_020B497C -FUN_020B497C: ; 0x020B497C - ldr r1, _020B4988 ; =UNK_021CED08 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020B4988: .word UNK_021CED08 - arm_func_end FUN_020B497C - - arm_func_start FUN_020B498C -FUN_020B498C: ; 0x020B498C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0xc - mov r6, r0 - ldr r4, [r6, #0x0] - ldr r0, _020B4BCC ; =0xC000C000 - ldr r5, [r6, #0x4] - and r4, r4, r0 - and r0, r4, #0xc0000000 - and r4, r4, #0xc000 - mov lr, r0, lsr #0x1e - ldr r0, _020B4BD0 ; =UNK_020FF8AC - mov r12, r4, asr #0xe - ldr r8, _020B4BD4 ; =UNK_020FF894 - mov r4, lr, lsl #0x1 - add r0, r0, r12, lsl #0x3 - ldrh r9, [r4, r0] - ldr r0, [sp, #0x28] - mov r5, r5, lsl #0x16 - mov r5, r5, lsr #0x16 - mov r7, r5, lsl #0x10 - str r9, [r0, #0x10] - add r5, r8, r12, lsl #0x3 - ldrh r8, [r4, r5] - mov r5, r1 - mov r4, r3 - str r8, [r0, #0x14] - ldr r1, [r5, #0x14] - mov r7, r7, lsr #0x10 - cmp r1, #0x0 - bne _020B4A74 - ldr r1, [r5, #0x8] - mov r2, r2, lsr #0x3 - orr r1, r2, r1, lsl #0x1a - ldr r2, [r5, #0x0] - orr r1, r1, #0x40000000 - ldr r3, [r5, #0x4] - orr r1, r1, r2, lsl #0x14 - orr r2, r1, r3, lsl #0x17 - ldr r8, [r5, #0x10] - ldr r1, _020B4BD8 ; =0x040004A8 - orr r2, r2, r8, lsl #0x1d - str r2, [r1, #0x0] - ldr r1, [r5, #0x8] - ldr r2, [r5, #0x0] - cmp r1, #0x4 - moveq r1, r7, lsl #0xf - moveq r7, r1, lsr #0x10 - ldr r1, _020B4BDC ; =UNK_020FF8D8 - ldr r1, [r1, r2, lsl #0x2] - sub r1, r1, #0x1 - and r1, r7, r1 - mov r1, r1, lsl #0xf - str r1, [r0, #0x0] - ldr r1, [r5, #0x0] - mov r1, r7, asr r1 - mov r1, r1, lsl #0xf - str r1, [r0, #0x4] - b _020B4AE0 -_020B4A74: - and r1, r1, #0x700000 - mov r1, r1, asr #0x14 - mov r12, r12, lsl #0x10 - add r1, r1, #0x5 - ldr r3, [r5, #0x8] - mov lr, lr, lsl #0x10 - ldr sb, _020B4BE0 ; =UNK_020FF8F8 - mov r12, r12, lsr #0x10 - ldr r8, _020B4BE4 ; =UNK_020FF928 - add r1, r2, r7, lsl r1 - mov r2, r3, lsl #0x1a - orr r3, r2, r1, lsr #0x3 - mov r7, lr, lsr #0x10 - add r2, r9, r12, lsl #0x4 - add r1, r8, r12, lsl #0x4 - ldr r2, [r2, r7, lsl #0x2] - orr r3, r3, #0x40000000 - ldr r1, [r1, r7, lsl #0x2] - orr r2, r3, r2, lsl #0x14 - ldr r3, [r5, #0x10] - orr r2, r2, r1, lsl #0x17 - ldr r1, _020B4BD8 ; =0x040004A8 - orr r2, r2, r3, lsl #0x1d - str r2, [r1, #0x0] - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] -_020B4AE0: - ldr r2, [r0, #0x0] - ldr r1, [r0, #0x10] - add r1, r2, r1, lsl #0xc - str r1, [r0, #0x8] - ldr r2, [r0, #0x4] - ldr r1, [r0, #0x14] - add r1, r2, r1, lsl #0xc - str r1, [r0, #0xc] - ldr r1, [r6, #0x0] - mov r2, r1, lsl #0x2 - mov r1, r1, lsl #0x3 - movs r3, r1, lsr #0x1f - mov r12, r2, lsr #0x1f - ldrne r2, [r0, #0x0] - ldrne r1, [r0, #0x8] - strne r1, [r0, #0x0] - strne r2, [r0, #0x8] - cmp r12, #0x0 - ldrne r2, [r0, #0x4] - ldrne r1, [r0, #0xc] - strne r1, [r0, #0x4] - ldr r1, _020B4BE8 ; =UNK_021CED0C - strne r2, [r0, #0xc] - ldr r7, [r1, #0x0] - cmp r7, #0x0 - beq _020B4B60 - str r3, [sp, #0x0] - add r1, r0, #0x4 - add r2, r0, #0x8 - add r3, r0, #0xc - str r12, [sp, #0x4] - blx r7 -_020B4B60: - ldr r0, [r6, #0x4] - ldr r1, [r6, #0x0] - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x1c - mov r3, r1, lsl #0x12 - ldr r1, [r5, #0xc] - mov r0, r0, lsl #0x10 - ldr r2, _020B4BEC ; =UNK_020FF8D0 - mov r3, r3, lsr #0x1f - cmp r1, #0x0 - mov r0, r0, lsr #0x10 - ldr r1, [r2, r3, lsl #0x2] - movne r0, r0, lsl #0x9 - bne _020B4BA4 - cmp r1, #0x4 - moveq r0, #0x0 - movne r0, r0, lsl #0x5 -_020B4BA4: - cmp r1, #0x2 - moveq r2, #0x1 - movne r2, #0x0 - add r1, r4, r0 - rsb r0, r2, #0x4 - mov r1, r1, lsr r0 - ldr r0, _020B4BF0 ; =0x040004AC - str r1, [r0, #0x0] - add sp, sp, #0xc - ldmia sp!, {r4-r9,pc} - .balign 4 -_020B4BCC: .word 0xC000C000 -_020B4BD0: .word UNK_020FF8AC -_020B4BD4: .word UNK_020FF894 -_020B4BD8: .word 0x040004A8 -_020B4BDC: .word UNK_020FF8D8 -_020B4BE0: .word UNK_020FF8F8 -_020B4BE4: .word UNK_020FF928 -_020B4BE8: .word UNK_021CED0C -_020B4BEC: .word UNK_020FF8D0 -_020B4BF0: .word 0x040004AC - arm_func_end FUN_020B498C - - arm_func_start FUN_020B4BF4 -FUN_020B4BF4: ; 0x020B4BF4 - stmdb sp!, {r4-r6,lr} - ldr r2, _020B4CD8 ; =UNK_021CED14 - mov r6, r0 - ldr r3, [r2, #0x0] - mov r4, r1 - ldr r5, [r3, #0x0] - ldr r0, [r5, #0x10] - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} - mov r0, #0x1 - str r0, [r3, #0x30] - ldr r3, [r5, #0x18] - cmp r3, #0x0 - beq _020B4C38 - ldr r0, [r2, #0x0] - mov r1, r6 - blx r3 -_020B4C38: - ldr r0, _020B4CD8 ; =UNK_021CED14 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x30] - cmp r0, #0x0 - beq _020B4CB8 - mvn r0, #0x0 - cmp r4, r0 - beq _020B4C7C - mov r0, r4 - ldr r4, [r5, #0x14] - bl FUN_020B469C - mov r3, #0x1 - mvn r1, r3, lsl r4 - ldr r2, [r0, #0x20] - and r1, r2, r1 - orr r1, r1, r3, lsl r4 - str r1, [r0, #0x20] -_020B4C7C: - ldr r0, [r5, #0x14] - cmp r0, #0x3 - addls pc, pc, r0, lsl #0x2 - b _020B4CB8 - ; Jump table - b _020B4C9C ; case 0 - b _020B4CAC ; case 1 - b _020B4CAC ; case 2 - b _020B4CB8 ; case 3 -_020B4C9C: - mov r0, r5 - mov r1, r6 - bl FUN_020B5090 - b _020B4CB8 -_020B4CAC: - mov r0, r5 - mov r1, r6 - bl FUN_020B53B4 -_020B4CB8: - ldr r2, [r5, #0x1c] - cmp r2, #0x0 - ldmeqia sp!, {r4-r6,pc} - ldr r0, _020B4CD8 ; =UNK_021CED14 - mov r1, r6 - ldr r0, [r0, #0x0] - blx r2 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B4CD8: .word UNK_021CED14 - arm_func_end FUN_020B4BF4 - - arm_func_start FUN_020B4CDC -FUN_020B4CDC: ; 0x020B4CDC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r1, _020B4D9C ; =UNK_021CED14 - mov r5, r0 - ldr r2, [r1, #0x0] - ldr r4, [r2, #0x0] - ldr r0, [r4, #0x10] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - mov r0, #0x1 - str r0, [r2, #0x30] - ldr r2, [r4, #0x18] - cmp r2, #0x0 - beq _020B4D24 - ldr r0, [r1, #0x0] - mov r1, r5 - blx r2 -_020B4D24: - ldr r0, _020B4D9C ; =UNK_021CED14 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x30] - cmp r0, #0x0 - beq _020B4D74 - ldr r0, [r4, #0x14] - cmp r0, #0x3 - addls pc, pc, r0, lsl #0x2 - b _020B4D74 - ; Jump table - b _020B4D58 ; case 0 - b _020B4D68 ; case 1 - b _020B4D68 ; case 2 - b _020B4D74 ; case 3 -_020B4D58: - mov r0, r4 - mov r1, r5 - bl FUN_020B5090 - b _020B4D74 -_020B4D68: - mov r0, r4 - mov r1, r5 - bl FUN_020B53B4 -_020B4D74: - ldr r2, [r4, #0x1c] - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - ldr r0, _020B4D9C ; =UNK_021CED14 - mov r1, r5 - ldr r0, [r0, #0x0] - blx r2 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B4D9C: .word UNK_021CED14 - arm_func_end FUN_020B4CDC - - arm_func_start FUN_020B4DA0 -FUN_020B4DA0: ; 0x020B4DA0 - ldr r0, _020B4E00 ; =UNK_021CED14 - ldr r3, [r0, #0x0] - ldr r1, [r3, #0x0] - ldr r1, [r1, #0x14] - cmp r1, #0x0 - bne _020B4DD8 - ldr r2, _020B4E04 ; =0x04000440 - mov r1, #0x0 - ldr r0, _020B4E08 ; =0x04000448 - str r1, [r2, #0x0] - mov r1, #0x1 - str r1, [r0, #0x0] - str r1, [r2, #0x0] - b _020B4DF0 -_020B4DD8: - mov r2, #0x0 - str r2, [r3, #0x10] - ldr r1, [r0, #0x0] - str r2, [r1, #0x2c] - ldr r0, [r0, #0x0] - str r2, [r0, #0x28] -_020B4DF0: - ldr r0, _020B4E00 ; =UNK_021CED14 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_020B4E00: .word UNK_021CED14 -_020B4E04: .word 0x04000440 -_020B4E08: .word 0x04000448 - arm_func_end FUN_020B4DA0 - - arm_func_start FUN_020B4E0C -FUN_020B4E0C: ; 0x020B4E0C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r2, _020B4F28 ; =UNK_021CED14 - mov r4, r0 - str r4, [r2, #0x0] - ldr r0, [r4, #0x0] - ldr r5, [r0, #0x14] - cmp r5, #0x0 - bne _020B4ED8 - ldr lr, _020B4F2C ; =0x04000440 - mov r1, #0x0 - ldr r0, _020B4F30 ; =0x04000444 - str r1, [lr, #0x0] - str r1, [r0, #0x0] - ldr r12, [r4, #0x0] - ldr r0, _020B4F34 ; =0x04000470 - ldr r3, [r12, #0x0] - ldr r12, [r12, #0x4] - rsb r3, r3, #0x0 - str r3, [r0, #0x0] - rsb r3, r12, #0x0 - str r3, [r0, #0x0] - str r1, [r0, #0x0] - mov r0, #0x1 - str r0, [lr, #0x0] - ldr r0, [r2, #0x0] - ldr r5, [r0, #0x8] - mov r0, r5 - bl FUN_020B19FC - cmp r0, #0x0 - moveq r0, #0x0 - beq _020B4E98 - mov r0, r5 - mov r1, #0x0 - bl FUN_020B1A14 -_020B4E98: - ldr r1, _020B4F28 ; =UNK_021CED14 - str r0, [r4, #0x14] - ldr r0, [r1, #0x0] - mov r1, #0x0 - ldr r5, [r0, #0xc] - mov r0, r5 - bl FUN_020B19A8 - cmp r0, #0x0 - moveq r0, #0x0 - beq _020B4ECC - mov r0, r5 - mov r1, #0x0 - bl FUN_020B19C4 -_020B4ECC: - add sp, sp, #0x4 - str r0, [r4, #0x18] - ldmia sp!, {r4-r5,pc} -_020B4ED8: - ldr r4, [r4, #0x8] - mov r1, r5 - mov r0, r4 - bl FUN_020B19FC - cmp r0, #0x0 - moveq r1, #0x0 - beq _020B4F14 - mov r0, r4 - mov r1, r5 - bl FUN_020B1A14 - ldr r1, [r4, #0x20] - and r1, r1, #0x700000 - mov r1, r1, asr #0x14 - add r1, r1, #0x5 - mov r1, r0, lsr r1 -_020B4F14: - ldr r0, _020B4F28 ; =UNK_021CED14 - ldr r0, [r0, #0x0] - str r1, [r0, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B4F28: .word UNK_021CED14 -_020B4F2C: .word 0x04000440 -_020B4F30: .word 0x04000444 -_020B4F34: .word 0x04000470 - arm_func_end FUN_020B4E0C - - arm_func_start FUN_020B4F38 -FUN_020B4F38: ; 0x020B4F38 - cmp r1, #0x0 - ldrne r1, [r0, #0x24] - orrne r1, r1, #0x1 - strne r1, [r0, #0x24] - ldreq r1, [r0, #0x24] - biceq r1, r1, #0x1 - streq r1, [r0, #0x24] - cmp r2, #0x0 - ldrne r1, [r0, #0x24] - orrne r1, r1, #0x2 - strne r1, [r0, #0x24] - ldreq r1, [r0, #0x24] - biceq r1, r1, #0x2 - streq r1, [r0, #0x24] - bx lr - arm_func_end FUN_020B4F38 - - arm_func_start FUN_020B4F74 -FUN_020B4F74: ; 0x020B4F74 - ldr r0, [r0, #0x24] - ands r0, r0, #0x2 - movne r0, #0x1 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020B4F74 - - arm_func_start FUN_020B4F88 -FUN_020B4F88: ; 0x020B4F88 - ldr r0, [r0, #0x24] - ands r0, r0, #0x1 - movne r0, #0x1 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020B4F88 - - arm_func_start FUN_020B4F9C -FUN_020B4F9C: ; 0x020B4F9C - str r1, [r0, #0x0] - bx lr - arm_func_end FUN_020B4F9C - - arm_func_start FUN_020B4FA4 -FUN_020B4FA4: ; 0x020B4FA4 - str r1, [r0, #0x34] - bx lr - arm_func_end FUN_020B4FA4 - - arm_func_start FUN_020B4FAC -FUN_020B4FAC: ; 0x020B4FAC - ldr r2, _020B4FC0 ; =UNK_021CED14 - ldr r2, [r2, #0x0] - str r0, [r2, #0x2c] - str r1, [r2, #0x28] - bx lr - .balign 4 -_020B4FC0: .word UNK_021CED14 - arm_func_end FUN_020B4FAC - - arm_func_start FUN_020B4FC4 -FUN_020B4FC4: ; 0x020B4FC4 - ldr r1, _020B5028 ; =UNK_021CED14 - mov r3, #0x0 - ldr r12, [r1, #0x0] - mov r1, #0x1000 - str r0, [r12, #0x2c] - ldr r2, [r0, #0x0] - str r2, [r12, #0x40] - ldr r2, [r0, #0x4] - str r2, [r12, #0x44] - str r3, [r12, #0x48] - ldr r2, [r0, #0x8] - str r2, [r12, #0x4c] - ldr r2, [r0, #0xc] - str r2, [r12, #0x50] - str r3, [r12, #0x54] - str r3, [r12, #0x58] - str r3, [r12, #0x5c] - str r1, [r12, #0x60] - ldr r1, [r0, #0x10] - str r1, [r12, #0x64] - ldr r0, [r0, #0x14] - str r0, [r12, #0x68] - ldr r0, [r12, #0x34] - str r0, [r12, #0x6c] - bx lr - .balign 4 -_020B5028: .word UNK_021CED14 - arm_func_end FUN_020B4FC4 - - arm_func_start FUN_020B502C -FUN_020B502C: ; 0x020B502C - str r1, [r0, #0x4] - bx lr - arm_func_end FUN_020B502C - - arm_func_start FUN_020B5034 -FUN_020B5034: ; 0x020B5034 - str r1, [r0, #0x1c] - str r2, [r0, #0x20] - bx lr - arm_func_end FUN_020B5034 - - arm_func_start FUN_020B5040 -FUN_020B5040: ; 0x020B5040 - str r1, [r0, #0x8] - str r2, [r0, #0xc] - bx lr - arm_func_end FUN_020B5040 - - arm_func_start FUN_020B504C -FUN_020B504C: ; 0x020B504C - stmdb sp!, {r4,lr} - mov r4, r0 - mov r1, r4 - mov r0, #0x0 - mov r2, #0x70 - bl MIi_CpuClear16 - mov r1, #0x0 - str r1, [r4, #0x0] - mov r0, #0x2 - str r0, [r4, #0x4] - str r1, [r4, #0x8] - str r1, [r4, #0xc] - str r1, [r4, #0x24] - mov r0, #0x1 - str r0, [r4, #0x30] - str r1, [r4, #0x28] - ldmia sp!, {r4,pc} - arm_func_end FUN_020B504C - - arm_func_start FUN_020B5090 -FUN_020B5090: ; 0x020B5090 - stmdb sp!, {r4-r10,lr} - ldr r5, _020B5158 ; =UNK_021CED14 - mov r9, r1 - ldrh r1, [r9, #0x0] - ldr r2, [r5, #0x0] - mov r10, r0 - add r7, r2, #0x38 - mov r8, #0x0 - cmp r1, #0x0 - ldmlsia sp!, {r4-r10,pc} - mov r6, #0x1 - mov r4, #0x6 -_020B50C0: - mul r1, r8, r4 - ldr r0, [r5, #0x0] - str r6, [r0, #0x30] - ldr r2, [r9, #0x4] - ldrh r0, [r2, r1] - add r1, r2, r1 - strh r0, [r7, #0x0] - ldrh r0, [r1, #0x2] - strh r0, [r7, #0x2] - ldrh r0, [r1, #0x4] - strh r0, [r7, #0x4] - ldr r3, [r10, #0x20] - cmp r3, #0x0 - beq _020B5108 - ldr r0, [r5, #0x0] - mov r1, r9 - mov r2, r8 - blx r3 -_020B5108: - ldr r0, [r5, #0x0] - ldr r0, [r0, #0x30] - cmp r0, #0x0 - beq _020B5120 - mov r0, r7 - bl FUN_020B515C -_020B5120: - ldr r3, [r10, #0x24] - cmp r3, #0x0 - beq _020B513C - ldr r0, [r5, #0x0] - mov r1, r9 - mov r2, r8 - blx r3 -_020B513C: - add r0, r8, #0x1 - mov r0, r0, lsl #0x10 - ldrh r1, [r9, #0x0] - mov r8, r0, lsr #0x10 - cmp r8, r1 - blo _020B50C0 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020B5158: .word UNK_021CED14 - arm_func_end FUN_020B5090 - - arm_func_start FUN_020B515C -FUN_020B515C: ; 0x020B515C - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - ldr r1, _020B53A4 ; =UNK_021CED14 - mov r7, r0 - ldr r0, [r1, #0x0] - add r0, r0, #0x40 - bl G3_LoadMtx43 - ldr r0, _020B53A4 ; =UNK_021CED14 - ldr r0, [r0, #0x0] - ldr r1, [r0, #0x24] - cmp r1, #0x0 - beq _020B533C - ldr r2, [r7, #0x0] - ldr r1, _020B53A8 ; =0xC000C000 - and r4, r2, r1 - bl FUN_020B4F88 - cmp r0, #0x0 - beq _020B51F4 - ldr r0, [r7, #0x0] - and r2, r4, #0xc000 - mov r0, r0, lsl #0x7 - mov r3, r0, lsr #0x17 - and r1, r4, #0xc0000000 - mov r1, r1, lsr #0x1e - ldr r0, _020B53AC ; =UNK_020FF8AC - mov r2, r2, asr #0xe - mov r1, r1, lsl #0x1 - add r0, r0, r2, lsl #0x3 - cmp r3, #0xff - ldrh r1, [r1, r0] - orrgt r0, r3, #0xff00 - movgt r0, r0, lsl #0x10 - movgt r3, r0, asr #0x10 - add r0, r3, r1 - rsb r0, r0, #0x0 - mov r0, r0, lsl #0x10 - mov r1, r0, lsr #0x10 - b _020B5218 -_020B51F4: - ldr r0, [r7, #0x0] - mov r0, r0, lsl #0x7 - mov r0, r0, lsr #0x17 - cmp r0, #0xff - orrgt r0, r0, #0xff00 - movgt r0, r0, lsl #0x10 - movgt r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r1, r0, lsr #0x10 -_020B5218: - ldr r0, _020B53A4 ; =UNK_021CED14 - mov r1, r1, lsl #0x10 - ldr r0, [r0, #0x0] - mov r6, r1, asr #0x10 - bl FUN_020B4F74 - cmp r0, #0x0 - beq _020B527C - and r1, r4, #0xc000 - and r0, r4, #0xc0000000 - ldrb r4, [r7, #0x0] - ldr r2, _020B53B0 ; =UNK_020FF894 - mov r0, r0, lsr #0x1e - mov r3, r1, asr #0xe - mov r1, r0, lsl #0x1 - add r0, r2, r3, lsl #0x3 - cmp r4, #0x7f - ldrh r1, [r1, r0] - orrgt r0, r4, #0xff00 - movgt r0, r0, lsl #0x10 - movgt r4, r0, asr #0x10 - add r0, r4, r1 - rsb r0, r0, #0x0 - mov r0, r0, lsl #0x10 - mov r4, r0, lsr #0x10 - b _020B5298 -_020B527C: - ldrb r0, [r7, #0x0] - cmp r0, #0x7f - orrgt r0, r0, #0xff00 - movgt r0, r0, lsl #0x10 - movgt r0, r0, asr #0x10 - mov r0, r0, lsl #0x10 - mov r4, r0, lsr #0x10 -_020B5298: - ldr r0, _020B53A4 ; =UNK_021CED14 - ldr r1, [r7, #0x0] - ldr r0, [r0, #0x0] - mov r5, r1, lsl #0x3 - bl FUN_020B4F88 - ldr r2, [r7, #0x0] - ldr r1, _020B53A4 ; =UNK_021CED14 - eor r5, r0, r5, lsr #0x1f - ldr r0, [r1, #0x0] - mov r8, r2, lsl #0x2 - bl FUN_020B4F74 - ldr r2, [r7, #0x0] - eor r1, r0, r8, lsr #0x1f - bic r0, r2, #0x10000000 - str r0, [r7, #0x0] - ldr r2, [r7, #0x0] - ldr r3, _020B53A4 ; =UNK_021CED14 - orr r2, r2, r5, lsl #0x1c - str r2, [r7, #0x0] - ldr r2, [r7, #0x0] - mov r0, r6 - bic r2, r2, #0x20000000 - str r2, [r7, #0x0] - ldr r5, [r7, #0x0] - mov r2, r4, lsl #0x10 - orr r1, r5, r1, lsl #0x1d - str r1, [r7, #0x0] - ldr r5, [r3, #0x0] - mov r1, r2, asr #0x10 - ldr r4, [r5, #0x8] - mov r3, r7 - add r2, r4, #0xc - str r2, [sp, #0x0] - ldr r4, [r5, #0x14] - mvn r2, #0x0 - str r4, [sp, #0x4] - ldr r4, [r5, #0x18] - str r4, [sp, #0x8] - bl FUN_020B46B4 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} -_020B533C: - ldr r2, _020B53A4 ; =UNK_021CED14 - ldr r0, [r7, #0x0] - ldr r5, [r2, #0x0] - mov r0, r0, lsl #0x7 - ldr r4, [r5, #0x8] - mov r0, r0, lsr #0x17 - cmp r0, #0xff - orrgt r0, r0, #0xff00 - movgt r0, r0, lsl #0x10 - ldrb r1, [r7, #0x0] - add r4, r4, #0xc - movgt r0, r0, asr #0x10 - str r4, [sp, #0x0] - ldr r4, [r5, #0x14] - cmp r1, #0x7f - orrgt r1, r1, #0xff00 - movgt r1, r1, lsl #0x10 - str r4, [sp, #0x4] - ldr r4, [r5, #0x18] - movgt r1, r1, asr #0x10 - mov r3, r7 - mvn r2, #0x0 - str r4, [sp, #0x8] - bl FUN_020B46B4 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020B53A4: .word UNK_021CED14 -_020B53A8: .word 0xC000C000 -_020B53AC: .word UNK_020FF8AC -_020B53B0: .word UNK_020FF894 - arm_func_end FUN_020B515C - - arm_func_start FUN_020B53B4 -FUN_020B53B4: ; 0x020B53B4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x44 - ldr r2, _020B57B0 ; =UNK_021CED14 - mov r10, r0 - ldr r0, [r2, #0x0] - mov r11, r1 - ldr r9, [r0, #0x2c] - ldr r1, _020B57B0 ; =UNK_021CED14 - cmp r9, #0x0 - ldreq sb, _020B57B4 ; =UNK_020FF958 - ldr r3, [r1, #0x0] - ldr r4, [r9, #0x10] - str r4, [sp, #0x18] - ldr r2, [r9, #0x14] - str r2, [sp, #0x1c] - ldr r1, [r10, #0x0] - sub r1, r4, r1 - str r1, [sp, #0x18] - ldr r1, [r10, #0x4] - sub r1, r2, r1 - str r1, [sp, #0x1c] - ldr r2, [r3, #0x24] - ldr r1, [r3, #0x10] - cmp r2, #0x0 - str r1, [sp, #0x4] - bne _020B5430 - ldr r1, [r3, #0x28] - cmp r1, #0x0 - movne r1, #0x1 - strne r1, [sp, #0x0] - bne _020B5438 -_020B5430: - mov r1, #0x0 - str r1, [sp, #0x0] -_020B5438: - ldrh r1, [r11, #0x0] - add r7, r0, #0x38 - mov r8, #0x0 - cmp r1, #0x0 - addls sp, sp, #0x44 - ldmlsia sp!, {r4-r11,pc} - mov r0, #0x1 - ldr r4, _020B57B0 ; =UNK_021CED14 - str r8, [sp, #0x14] - str r0, [sp, #0xc] -_020B5460: - ldr r2, [r4, #0x0] - ldr r0, [sp, #0xc] - mov r1, #0x6 - str r0, [r2, #0x30] - mul r0, r8, r1 - ldr r1, [r11, #0x4] - add r2, r1, r0 - ldrh r0, [r1, r0] - strh r0, [r7, #0x0] - ldrh r0, [r2, #0x2] - strh r0, [r7, #0x2] - ldrh r0, [r2, #0x4] - strh r0, [r7, #0x4] - ldr r3, [r10, #0x20] - cmp r3, #0x0 - beq _020B54B0 - ldr r0, [r4, #0x0] - mov r1, r11 - mov r2, r8 - blx r3 -_020B54B0: - ldr r0, [r4, #0x0] - ldr r0, [r0, #0x30] - cmp r0, #0x0 - beq _020B5790 - ldr r0, [sp, #0x0] - ldr r1, [r7, #0x4] - cmp r0, #0x0 - mov r0, #0x400 - rsb r0, r0, #0x0 - and r2, r1, r0 - ldr r0, [sp, #0x4] - mov r1, r1, lsl #0x16 - add r1, r0, r1, lsr #0x16 - ldr r0, _020B57B8 ; =0x000003FF - and r0, r1, r0 - orr r0, r2, r0 - str r0, [r7, #0x4] - beq _020B5600 - ldr r0, [r10, #0x14] - ldr lr, [r4, #0x0] - sub r1, r0, #0x1 - ldr r0, [r7, #0x0] - ldr r6, [lr, #0x28] - mov r2, r0, lsl #0x2 - mov r2, r2, lsr #0x1f - mov r2, r2, lsl #0x1 - mov r0, r0, lsl #0x3 - orr r5, r2, r0, lsr #0x1f - add r0, r6, r5, lsl #0x2 - add r0, r0, r1, lsl #0x1 - ldrh r1, [r0, #0x10] - ldr r0, _020B57BC ; =0x0000FFFF - str r1, [sp, #0x8] - cmp r1, r0 - bne _020B55CC - cmp r5, #0x0 - bne _020B5558 - ldr r1, [lr, #0x20] - mov r0, r6 - blx r1 - str r0, [sp, #0x8] - b _020B55B4 -_020B5558: - ands r0, r5, #0x1 - add r12, sp, #0x30 - ldmia r6, {r0-r3} - stmia r12, {r0-r3} - beq _020B5584 - ldr r1, [sp, #0x30] - ldr r0, [sp, #0x34] - rsb r1, r1, #0x0 - str r1, [sp, #0x30] - rsb r0, r0, #0x0 - str r0, [sp, #0x34] -_020B5584: - ands r0, r5, #0x2 - beq _020B55A4 - ldr r1, [sp, #0x38] - ldr r0, [sp, #0x3c] - rsb r1, r1, #0x0 - str r1, [sp, #0x38] - rsb r0, r0, #0x0 - str r0, [sp, #0x3c] -_020B55A4: - ldr r1, [lr, #0x20] - add r0, sp, #0x30 - blx r1 - str r0, [sp, #0x8] -_020B55B4: - ldr r1, [r10, #0x14] - add r0, r6, r5, lsl #0x2 - sub r1, r1, #0x1 - add r1, r0, r1, lsl #0x1 - ldr r0, [sp, #0x8] - strh r0, [r1, #0x10] -_020B55CC: - ldr r1, [r9, #0x0] - add r0, sp, #0x20 - str r1, [sp, #0x20] - ldr r2, [r9, #0x4] - mov r1, r7 - str r2, [sp, #0x24] - ldr r3, [r9, #0x8] - add r2, sp, #0x18 - str r3, [sp, #0x28] - ldr r3, [r9, #0xc] - str r3, [sp, #0x2c] - bl FUN_020B57D8 - b _020B5750 -_020B5600: - ldr r0, _020B57C0 ; =0x0000FFFE - str r0, [sp, #0x8] - ldr r0, [r4, #0x0] - ldr r1, [r0, #0x24] - cmp r1, #0x0 - beq _020B5714 - ldr r2, [r7, #0x0] - ldr r1, _020B57C4 ; =0xC000C000 - mov r6, r2, lsl #0x3 - and r5, r2, r1 - bl FUN_020B4F88 - ldr r1, [r7, #0x0] - eor r6, r0, r6, lsr #0x1f - mov r1, r1, lsl #0x2 - ldr r0, [r4, #0x0] - str r1, [sp, #0x10] - bl FUN_020B4F74 - ldr r1, [sp, #0x10] - eor r0, r0, r1, lsr #0x1f - ldr r1, [r7, #0x0] - bic r1, r1, #0x10000000 - str r1, [r7, #0x0] - ldr r1, [r7, #0x0] - orr r1, r1, r6, lsl #0x1c - str r1, [r7, #0x0] - ldr r1, [r7, #0x0] - bic r1, r1, #0x20000000 - str r1, [r7, #0x0] - ldr r1, [r7, #0x0] - orr r0, r1, r0, lsl #0x1d - str r0, [r7, #0x0] - ldr r0, [r4, #0x0] - bl FUN_020B4F88 - cmp r0, #0x0 - beq _020B56D4 - and r1, r5, #0xc000 - mov r2, r1, asr #0xe - ldr r1, _020B57C8 ; =UNK_020FF8AC - and r3, r5, #0xc0000000 - mov r3, r3, lsr #0x1e - add r2, r1, r2, lsl #0x3 - mov r3, r3, lsl #0x1 - ldr r0, [r7, #0x0] - ldr r1, _020B57CC ; =0xFE00FFFF - ldrh r2, [r3, r2] - and r1, r0, r1 - mov r0, r0, lsl #0x7 - add r0, r2, r0, lsr #0x17 - rsb r2, r0, #0x0 - ldr r0, _020B57D0 ; =0x000001FF - and r0, r2, r0 - orr r0, r1, r0, lsl #0x10 - str r0, [r7, #0x0] -_020B56D4: - ldr r0, [r4, #0x0] - bl FUN_020B4F74 - cmp r0, #0x0 - beq _020B5714 - and r1, r5, #0xc000 - mov r3, r1, asr #0xe - and r1, r5, #0xc0000000 - mov r1, r1, lsr #0x1e - mov r2, r1, lsl #0x1 - ldr r1, _020B57D4 ; =UNK_020FF894 - ldrb r0, [r7, #0x0] - add r1, r1, r3, lsl #0x3 - ldrh r1, [r2, r1] - add r0, r0, r1 - rsb r0, r0, #0x0 - strb r0, [r7, #0x0] -_020B5714: - ldr r2, [r7, #0x0] - ldr r0, _020B57CC ; =0xFE00FFFF - ldr r1, [sp, #0x18] - and r0, r2, r0 - mov r2, r2, lsl #0x7 - mov r2, r2, lsr #0x17 - add r2, r2, r1, asr #0xc - ldr r1, _020B57D0 ; =0x000001FF - and r1, r2, r1 - orr r0, r0, r1, lsl #0x10 - str r0, [r7, #0x0] - ldrb r1, [r7, #0x0] - ldr r0, [sp, #0x1c] - add r0, r1, r0, asr #0xc - strb r0, [r7, #0x0] -_020B5750: - ldr r3, [r4, #0x0] - ldr r1, [sp, #0x8] - ldr r2, [sp, #0x14] - ldr r3, [r3, #0x1c] - mov r0, r7 - blx r3 - cmp r0, #0x1 - addne sp, sp, #0x44 - ldmneia sp!, {r4-r11,pc} - ldr r3, [r10, #0x24] - cmp r3, #0x0 - beq _020B5790 - ldr r0, [r4, #0x0] - mov r1, r11 - mov r2, r8 - blx r3 -_020B5790: - add r0, r8, #0x1 - mov r0, r0, lsl #0x10 - mov r8, r0, lsr #0x10 - ldrh r0, [r11, #0x0] - cmp r8, r0 - blo _020B5460 - add sp, sp, #0x44 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B57B0: .word UNK_021CED14 -_020B57B4: .word UNK_020FF958 -_020B57B8: .word 0x000003FF -_020B57BC: .word 0x0000FFFF -_020B57C0: .word 0x0000FFFE -_020B57C4: .word 0xC000C000 -_020B57C8: .word UNK_020FF8AC -_020B57CC: .word 0xFE00FFFF -_020B57D0: .word 0x000001FF -_020B57D4: .word UNK_020FF894 - arm_func_end FUN_020B53B4 - - arm_func_start FUN_020B57D8 -FUN_020B57D8: ; 0x020B57D8 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - ldr r4, [r1, #0x0] - ldr r3, _020B5A9C ; =0x01FF0000 - and r3, r4, r3 - mov r3, r3, lsr #0x10 - mov r3, r3, lsl #0x10 - mov r3, r3, asr #0x10 - cmp r3, #0xff - orrgt r3, r3, #0xff00 - movgt r3, r3, lsl #0x10 - movgt r3, r3, asr #0x10 - mov r3, r3, lsl #0xc - str r3, [sp, #0x0] - ldr r3, [r1, #0x0] - and r3, r3, #0xff - mov r3, r3, lsl #0x10 - mov r3, r3, asr #0x10 - cmp r3, #0x7f - orrgt r3, r3, #0xff00 - movgt r3, r3, lsl #0x10 - movgt r3, r3, asr #0x10 - mov r3, r3, lsl #0xc - str r3, [sp, #0x4] - ldr r5, [r1, #0x0] - and r4, r5, #0x300 - cmp r4, #0x100 - beq _020B5858 - cmp r4, #0x300 - beq _020B5858 - and r3, r5, #0x30000000 - orr r4, r4, r3 -_020B5858: - cmp r4, #0x300 - bne _020B58AC - ldr r3, _020B5AA0 ; =0xC000C000 - ldr r4, _020B5AA4 ; =UNK_020FF8AC - and r3, r5, r3 - and r5, r3, #0xc0000000 - and r3, r3, #0xc000 - mov r6, r5, lsr #0x1e - mov r5, r3, asr #0xe - ldr r3, _020B5AA8 ; =UNK_020FF894 - mov r6, r6, lsl #0x1 - add r4, r4, r5, lsl #0x3 - add r3, r3, r5, lsl #0x3 - ldrh r5, [r6, r4] - ldr r7, [sp, #0x0] - ldrh r3, [r6, r3] - ldr r4, [sp, #0x4] - add r5, r7, r5, lsl #0xb - add r3, r4, r3, lsl #0xb - str r5, [sp, #0x0] - str r3, [sp, #0x4] -_020B58AC: - ldr r5, [r0, #0x8] - ldr r4, [sp, #0x4] - add r3, sp, #0x0 - smull r8, r7, r5, r4 - cmp r3, r3 - ldr r6, [r0, #0x0] - mov r4, #0x1000 - addeq r3, sp, #0x8 - adds r8, r8, r4 - ldr r5, [sp, #0x0] - adc r7, r7, #0x0 - smlal r8, r7, r6, r5 - mov r5, r8, lsr #0xc - orr r5, r5, r7, lsl #0x14 - str r5, [r3, #0x0] - ldr r7, [r0, #0xc] - ldr r6, [sp, #0x4] - ldr r5, [r0, #0x4] - smull r8, r6, r7, r6 - adds r7, r8, r4 - ldr r4, [sp, #0x0] - adc r6, r6, #0x0 - smlal r7, r6, r5, r4 - mov r5, r7, lsr #0xc - add r4, sp, #0x8 - orr r5, r5, r6, lsl #0x14 - str r5, [r3, #0x4] - cmp r3, r4 - ldreq r3, [sp, #0xc] - ldreq r4, [sp, #0x8] - streq r3, [sp, #0x4] - ldr r3, _020B5AAC ; =UNK_021CED14 - streq r4, [sp, #0x0] - ldr r3, [r3, #0x0] - ldr r3, [r3, #0x4] - cmp r3, #0x0 - beq _020B597C - cmp r3, #0x2 - moveq r5, #0x300 - movne r5, #0x100 - cmp r5, #0x100 - ldreq r4, [r1, #0x0] - ldreq r3, _020B5AB0 ; =0xC1FFFCFF - andeq r3, r4, r3 - orreq r3, r3, r5 - streq r3, [r1, #0x0] - beq _020B597C - ldr r4, [r1, #0x0] - ldr r3, _020B5AB0 ; =0xC1FFFCFF - and r3, r4, r3 - orr r3, r3, r5 - str r3, [r1, #0x0] -_020B597C: - ldr r6, [r1, #0x0] - and r5, r6, #0x300 - cmp r5, #0x100 - beq _020B599C - cmp r5, #0x300 - beq _020B599C - and r3, r6, #0x30000000 - orr r5, r5, r3 -_020B599C: - ldr r3, _020B5AA0 ; =0xC000C000 - ldr r4, _020B5AA4 ; =UNK_020FF8AC - and r3, r6, r3 - and r6, r3, #0xc0000000 - and r3, r3, #0xc000 - mov lr, r3, asr #0xe - mov r6, r6, lsr #0x1e - mov r3, r6, lsl #0x1 - add r4, r4, lr, lsl #0x3 - ldrh r4, [r3, r4] - ldr r6, [r0, #0x0] - ldr r8, _020B5AA8 ; =UNK_020FF894 - mov r12, r4, asr #0x1 - mov r4, r12, lsl #0xc - rsb r7, r4, #0x0 - mla r7, r6, r12, r7 - add lr, r8, lr, lsl #0x3 - ldrh r3, [r3, lr] - ldr r6, [r0, #0x8] - ldr lr, [sp, #0x0] - mov r3, r3, asr #0x1 - mla r7, r6, r3, r7 - add r6, lr, r7 - str r6, [sp, #0x0] - mov lr, r3, lsl #0xc - ldr r6, [r0, #0x4] - rsb r7, lr, #0x0 - mla r7, r6, r12, r7 - ldr r0, [r0, #0xc] - ldr r6, [sp, #0x4] - mla r3, r0, r3, r7 - add r0, r6, r3 - str r0, [sp, #0x4] - cmp r5, #0x300 - moveq r0, #0x1 - movne r0, #0x0 - cmp r0, #0x0 - beq _020B5A4C - ldr r3, [sp, #0x0] - ldr r0, [sp, #0x4] - sub r3, r3, r4 - sub r0, r0, lr - str r3, [sp, #0x0] - str r0, [sp, #0x4] -_020B5A4C: - ldr r4, [sp, #0x0] - ldr r0, [r2, #0x0] - ldr r3, [sp, #0x4] - add r5, r4, r0 - str r5, [sp, #0x0] - ldr r2, [r2, #0x4] - ldr r0, _020B5AB4 ; =0x000001FF - add r2, r3, r2 - str r2, [sp, #0x4] - mov r3, r2, asr #0xc - ldr r4, [r1, #0x0] - ldr r2, _020B5AB8 ; =0xFE00FF00 - and r3, r3, #0xff - and r2, r4, r2 - and r4, r0, r5, asr #0xc - orr r0, r2, r3 - orr r0, r0, r4, lsl #0x10 - str r0, [r1, #0x0] - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020B5A9C: .word 0x01FF0000 -_020B5AA0: .word 0xC000C000 -_020B5AA4: .word UNK_020FF8AC -_020B5AA8: .word UNK_020FF894 -_020B5AAC: .word UNK_021CED14 -_020B5AB0: .word 0xC1FFFCFF -_020B5AB4: .word 0x000001FF -_020B5AB8: .word 0xFE00FF00 - arm_func_end FUN_020B57D8 - - arm_func_start FUN_020B5ABC -FUN_020B5ABC: ; 0x020B5ABC - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0xc - add r5, sp, #0x0 - mov r4, #0x0 - str r4, [r5, #0x0] - str r4, [r5, #0x4] - mov r8, r2 - ldr r2, [sp, #0x28] - mov r5, r0 - mov r9, r1 - mov r4, r3 - cmp r2, #0x0 - mov r7, #0x1 - beq _020B5B24 - add r6, sp, #0x28 -_020B5AF8: - mov r0, r9 - mov r1, r8 - mov r3, r6 - bl FUN_020B5BC8 - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x28] - cmp r0, r1 - strgt r0, [sp, #0x0] - add r7, r7, #0x1 - cmp r2, #0x0 - bne _020B5AF8 -_020B5B24: - ldr r0, [r9, #0x0] - sub r2, r7, #0x1 - ldrsb r1, [r0, #0x1] - ldr r0, [sp, #0x0] - add r1, r4, r1 - mul r1, r2, r1 - sub r1, r1, r4 - str r1, [sp, #0x4] - str r0, [r5, #0x0] - str r1, [r5, #0x4] - add sp, sp, #0xc - ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B5ABC - - arm_func_start FUN_020B5B54 -FUN_020B5B54: ; 0x020B5B54 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - str r2, [sp, #0x0] - add r3, sp, #0x4 - mov r2, #0x0 - str r2, [r3, #0x0] - mov r8, r0 - str r2, [r3, #0x4] - ldr r7, [r8, #0x4] - add r0, sp, #0x0 - mov r5, r1 - mov r4, #0x1 - blx r7 - cmp r0, #0x0 - beq _020B5BAC - add r6, sp, #0x0 -_020B5B94: - cmp r0, #0xa - mov r0, r6 - addeq r4, r4, #0x1 - blx r7 - cmp r0, #0x0 - bne _020B5B94 -_020B5BAC: - ldr r0, [r8, #0x0] - ldrsb r0, [r0, #0x1] - add r0, r5, r0 - mul r0, r4, r0 - sub r0, r0, r5 - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B5B54 - - arm_func_start FUN_020B5BC8 -FUN_020B5BC8: ; 0x020B5BC8 - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x8 - mov r8, r0 - str r2, [sp, #0x0] - ldr r4, [r8, #0x4] - add r0, sp, #0x0 - mov r7, r1 - mov r6, r3 - mov r5, #0x0 - blx r4 - movs r1, r0 - beq _020B5C58 - ldr sb, _020B5C84 ; =0x0000FFFF - add r10, sp, #0x0 -_020B5C00: - cmp r1, #0xa - beq _020B5C58 - mov r0, r8 - bl FUN_020B5CE4 - mov r1, r0 - cmp r1, r9 - ldreq r0, [r8, #0x0] - ldreqh r1, [r0, #0x2] - mov r0, r8 - bl FUN_020B5C88 - ldrh r1, [r8, #0x8] - cmp r1, #0x0 - ldrnesb r1, [r0, #0x0] - ldrneb r0, [r0, #0x1] - addne r0, r1, r0 - ldreqsb r0, [r0, #0x2] - add r1, r7, r0 - mov r0, r10 - add r5, r5, r1 - blx r4 - movs r1, r0 - bne _020B5C00 -_020B5C58: - cmp r6, #0x0 - beq _020B5C70 - cmp r1, #0xa - ldreq r0, [sp, #0x0] - movne r0, #0x0 - str r0, [r6, #0x0] -_020B5C70: - cmp r5, #0x0 - subgt r5, r5, r7 - mov r0, r5 - add sp, sp, #0x8 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020B5C84: .word 0x0000FFFF - arm_func_end FUN_020B5BC8 - - arm_func_start FUN_020B5C88 -FUN_020B5C88: ; 0x020B5C88 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x0] - ldr lr, [r3, #0xc] - cmp lr, #0x0 - beq _020B5CD8 -_020B5CA0: - ldrh r12, [lr, #0x0] - cmp r12, r1 - bhi _020B5CCC - ldrh r2, [lr, #0x2] - cmp r1, r2 - ldrlsh r2, [r0, #0xa] - addls r3, lr, #0x8 - subls r0, r1, r12 - mlals r0, r2, r0, r3 - addls sp, sp, #0x4 - ldmlsia sp!, {pc} -_020B5CCC: - ldr lr, [lr, #0x4] - cmp lr, #0x0 - bne _020B5CA0 -_020B5CD8: - add r0, r3, #0x4 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020B5C88 - - arm_func_start FUN_020B5CE4 -FUN_020B5CE4: ; 0x020B5CE4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x10] - cmp r0, #0x0 - beq _020B5D2C -_020B5CFC: - ldrh r2, [r0, #0x0] - cmp r2, r1 - bhi _020B5D20 - ldrh r2, [r0, #0x2] - cmp r1, r2 - bhi _020B5D20 - bl FUN_020B5D7C - add sp, sp, #0x4 - ldmia sp!, {pc} -_020B5D20: - ldr r0, [r0, #0x8] - cmp r0, #0x0 - bne _020B5CFC -_020B5D2C: - ldr r0, _020B5D38 ; =0x0000FFFF - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B5D38: .word 0x0000FFFF - arm_func_end FUN_020B5CE4 - - arm_func_start FUN_020B5D3C -FUN_020B5D3C: ; 0x020B5D3C - stmdb sp!, {r4,lr} - mov r4, r0 - mov r0, r1 - mov r1, r4 - bl FUN_020B7558 - sub r0, r0, #0x1 - strh r0, [r4, #0x8] - ldrh r0, [r4, #0x8] - cmp r0, #0x0 - movne r1, #0x2 - moveq r1, #0x3 - ldr r0, _020B5D78 ; =FUN_020B7718 - strh r1, [r4, #0xa] - str r0, [r4, #0x4] - ldmia sp!, {r4,pc} - .balign 4 -_020B5D78: .word FUN_020B7718 - arm_func_end FUN_020B5D3C - - arm_func_start FUN_020B5D7C -FUN_020B5D7C: ; 0x020B5D7C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r3, [r0, #0x4] - ldr r2, _020B5E4C ; =0x0000FFFF - cmp r3, #0x0 - beq _020B5DA8 - cmp r3, #0x1 - beq _020B5DC4 - cmp r3, #0x2 - beq _020B5DD8 - b _020B5E40 -_020B5DA8: - ldrh r2, [r0, #0x0] - ldrh r3, [r0, #0xc] - sub r0, r1, r2 - add r0, r3, r0 - mov r0, r0, lsl #0x10 - mov r2, r0, lsr #0x10 - b _020B5E40 -_020B5DC4: - ldrh r2, [r0, #0x0] - sub r1, r1, r2 - add r0, r0, r1, lsl #0x1 - ldrh r2, [r0, #0xc] - b _020B5E40 -_020B5DD8: - ldrh r3, [r0, #0xc] - add r0, r0, #0xc - add r0, r0, #0x2 - sub r3, r3, #0x1 - add lr, r0, r3, lsl #0x2 - cmp r0, lr - bhi _020B5E40 -_020B5DF4: - sub r12, lr, r0 - mov r3, r12, asr #0x1 - add r3, r12, r3, lsr #0x1e - mov r3, r3, asr #0x2 - add r3, r3, r3, lsr #0x1f - mov r12, r3, asr #0x1 - mov r3, r12, lsl #0x2 - ldrh r3, [r0, r3] - add r12, r0, r12, lsl #0x2 - cmp r3, r1 - addcc r0, r12, #0x4 - blo _020B5E38 - cmp r1, r3 - subcc lr, r12, #0x4 - blo _020B5E38 - ldrh r2, [r12, #0x2] - b _020B5E40 -_020B5E38: - cmp r0, lr - bls _020B5DF4 -_020B5E40: - mov r0, r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B5E4C: .word 0x0000FFFF - arm_func_end FUN_020B5D7C - - arm_func_start FUN_020B5E50 -FUN_020B5E50: ; 0x020B5E50 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x3c - mov r7, r0 - mov r0, r1 - cmp r0, #0x8 - ldr r0, [sp, #0x60] - str r1, [sp, #0x10] - str r0, [sp, #0x60] - ldr r0, [sp, #0x6c] - str r2, [sp, #0x14] - str r0, [sp, #0x6c] - ldrlt r0, [sp, #0x10] - mov r11, r3 - ldr r6, [sp, #0x64] - ldr r5, [sp, #0x68] - movge r2, #0x3 - clzlt r0, r0 - rsblt r2, r0, #0x1f - ldr r0, [sp, #0x14] - cmp r0, #0x8 - ldrlt r0, [sp, #0x14] - movge r1, #0x3 - clzlt r0, r0 - rsblt r1, r0, #0x1f - ldr r0, _020B6170 ; =UNK_020FF970 - mvn r3, #0x0 - add r1, r0, r1, lsl #0x3 - add r0, r1, r2, lsl #0x1 - ldrb r4, [r1, r2, lsl #0x1] - ldrb r1, [r0, #0x1] - ldr r2, [sp, #0x14] - cmp r6, #0x0 - str r1, [sp, #0x18] - ldr r1, [sp, #0x10] - and r1, r1, r3, lsl r4 - str r1, [sp, #0x1c] - ldr r1, [sp, #0x18] - and r1, r2, r3, lsl r1 - str r1, [sp, #0x20] - moveq r1, #0x1 - streq r1, [sp, #0x24] - movne r1, #0x2 - strne r1, [sp, #0x24] - mov r1, #0x0 - str r1, [sp, #0x28] - bl FUN_020B704C - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x14] - mov r10, r1, asr r4 - ldr r1, [sp, #0x18] - mov r1, r2, asr r1 - str r1, [sp, #0x2c] - ldr r1, [sp, #0x24] - mov r2, r1, lsl r4 - ldr r1, [sp, #0x18] - mov r2, r2, lsl r1 - ldr r1, [sp, #0x6c] - mov r9, r2, asr r1 - mov r1, #0x0 - str r1, [sp, #0x30] - str r1, [sp, #0x34] - b _020B5FE8 -_020B5F48: - ldr r2, [sp, #0x30] - ldr r1, [sp, #0x18] - ldr r8, [sp, #0x34] - mov r2, r2, lsl r1 - ldr r1, [sp, #0x60] - add lr, r1, r2, lsl #0x3 - b _020B5FD4 -_020B5F64: - mov r1, r8, lsl r4 - add r2, r11, r1, lsl #0x3 - ldr r1, _020B6174 ; =0x000001FF - ldr r3, [r7, #0x0] - and r12, r2, r1 - ldr r1, _020B6178 ; =0xFE00FF00 - and r2, lr, #0xff - and r1, r3, r1 - orr r1, r1, r2 - orr r1, r1, r12, lsl #0x10 - str r1, [r7, #0x0] - ldr r3, [r7, #0x0] - ldr r1, _020B617C ; =0x3FFF3FFF - mov r2, #0x400 - and r1, r3, r1 - orr r1, r1, r0 - str r1, [r7, #0x0] - rsb r1, r2, #0x0 - ldrh r2, [r7, #0x4] - add r8, r8, #0x1 - and r1, r2, r1 - orr r1, r1, r5 - strh r1, [r7, #0x4] - ldr r1, [r7, #0x0] - add r5, r5, r9 - bic r1, r1, #0x2000 - orr r1, r1, r6, lsl #0xd - str r1, [r7], #0x8 -_020B5FD4: - cmp r8, r10 - blt _020B5F64 - ldr r1, [sp, #0x30] - add r1, r1, #0x1 - str r1, [sp, #0x30] -_020B5FE8: - ldr r2, [sp, #0x30] - ldr r1, [sp, #0x2c] - cmp r2, r1 - blt _020B5F48 - ldr r0, [sp, #0x28] - mla r0, r10, r1, r0 - str r0, [sp, #0x28] - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0x10] - cmp r1, r0 - bhs _020B6078 - ldr r0, [sp, #0x60] - ldr r1, [sp, #0x10] - str r0, [sp, #0x0] - ldr r0, [sp, #0x1c] - str r6, [sp, #0x4] - sub r4, r1, r0 - ldr r1, [sp, #0x6c] - str r5, [sp, #0x8] - str r1, [sp, #0xc] - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0x20] - add r3, r11, r1, lsl #0x3 - mov r0, r7 - mov r1, r4 - bl FUN_020B5E50 - ldr r1, [sp, #0x24] - add r7, r7, r0, lsl #0x3 - mul r2, r1, r4 - ldr r1, [sp, #0x20] - mul r2, r1, r2 - ldr r1, [sp, #0x6c] - add r5, r5, r2, lsr r1 - ldr r1, [sp, #0x28] - add r0, r1, r0 - str r0, [sp, #0x28] -_020B6078: - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x14] - cmp r1, r0 - bhs _020B60F0 - ldr r1, [sp, #0x60] - ldr r0, [sp, #0x20] - mov r3, r11 - add r0, r1, r0, lsl #0x3 - str r0, [sp, #0x0] - str r6, [sp, #0x4] - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x20] - str r5, [sp, #0x8] - sub r4, r1, r0 - ldr r1, [sp, #0x6c] - mov r0, r7 - str r1, [sp, #0xc] - ldr r1, [sp, #0x1c] - mov r2, r4 - bl FUN_020B5E50 - ldr r2, [sp, #0x24] - ldr r1, [sp, #0x1c] - add r7, r7, r0, lsl #0x3 - mul r1, r2, r1 - mul r2, r4, r1 - ldr r1, [sp, #0x6c] - add r5, r5, r2, lsr r1 - ldr r1, [sp, #0x28] - add r0, r1, r0 - str r0, [sp, #0x28] -_020B60F0: - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0x10] - cmp r1, r0 - bhs _020B6164 - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x14] - cmp r1, r0 - bhs _020B6164 - ldr r1, [sp, #0x60] - ldr r0, [sp, #0x20] - ldr r2, [sp, #0x10] - add r0, r1, r0, lsl #0x3 - ldr r1, [sp, #0x1c] - ldr r3, [sp, #0x14] - str r0, [sp, #0x0] - sub r1, r2, r1 - ldr r2, [sp, #0x20] - str r6, [sp, #0x4] - sub r2, r3, r2 - ldr r3, [sp, #0x1c] - ldr r4, [sp, #0x6c] - str r5, [sp, #0x8] - mov r0, r7 - add r3, r11, r3, lsl #0x3 - str r4, [sp, #0xc] - bl FUN_020B5E50 - ldr r1, [sp, #0x28] - add r0, r1, r0 - str r0, [sp, #0x28] -_020B6164: - ldr r0, [sp, #0x28] - add sp, sp, #0x3c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B6170: .word UNK_020FF970 -_020B6174: .word 0x000001FF -_020B6178: .word 0xFE00FF00 -_020B617C: .word 0x3FFF3FFF - arm_func_end FUN_020B5E50 - - arm_func_start FUN_020B6180 -FUN_020B6180: ; 0x020B6180 - stmdb sp!, {r4-r6,lr} - mov r3, r0, lsr #0x3 - mov r6, r1, lsr #0x3 - mul r12, r3, r6 - and r2, r0, #0x4 - and lr, r0, #0x2 - and r0, r0, #0x1 - add r4, r0, lr, lsr #0x1 - mov r5, r2, lsr #0x2 - and r0, r1, #0x4 - add lr, r12, #0x0 - add r12, r5, r4, lsl #0x1 - mla r12, r6, r12, lr - and lr, r1, #0x2 - and r1, r1, #0x1 - add lr, r1, lr, lsr #0x1 - mov r1, r0, lsr #0x2 - add r1, r1, lr, lsl #0x1 - mla r12, r3, r1, r12 - add r1, r4, r2, lsr #0x2 - add r0, lr, r0, lsr #0x2 - mla r0, r1, r0, r12 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B6180 - - arm_func_start FUN_020B61DC -FUN_020B61DC: ; 0x020B61DC - stmdb sp!, {r4-r8,lr} - ldr r12, [sp, #0x1c] - ldr r8, [sp, #0x18] - mov r12, r12, lsl #0x1c - mov r4, r12, lsr #0x10 - mov r6, #0x0 - cmp r2, #0x0 - ldmleia sp!, {r4-r8,pc} - mov lr, r3, lsl #0x1 - mov r12, r6 -_020B6204: - mov r5, r0 - mov r7, r12 - cmp r1, #0x0 - ble _020B622C -_020B6214: - orr r3, r4, r8 - add r7, r7, #0x1 - cmp r7, r1 - add r8, r8, #0x1 - strh r3, [r5], #0x2 - blt _020B6214 -_020B622C: - add r6, r6, #0x1 - cmp r6, r2 - add r0, r0, lr - blt _020B6204 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B61DC - - arm_func_start FUN_020B6240 -FUN_020B6240: ; 0x020B6240 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - ldr r5, [sp, #0x24] - ldr lr, [sp, #0x20] - cmp r5, #0x20 - ldr r12, [sp, #0x28] - bgt _020B6280 - mla r4, r5, lr, r3 - ldr lr, [sp, #0x2c] - str r12, [sp, #0x0] - mov r3, r5 - add r0, r0, r4, lsl #0x1 - str lr, [sp, #0x4] - bl FUN_020B61DC - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} -_020B6280: - ldr r4, [sp, #0x2c] - add r7, lr, r2 - mov r2, r4, lsl #0x1c - cmp lr, r7 - add r8, r3, r1 - mov r4, r2, lsr #0x10 - addge sp, sp, #0x8 - ldmgeia sp!, {r4-r8,pc} -_020B62A0: - cmp lr, #0x20 - movlt r1, lr - addge r1, lr, #0x20 - mov r6, r3 - cmp r3, r8 - add r5, r0, r1, lsl #0x6 - bge _020B62E4 -_020B62BC: - cmp r6, #0x20 - movlt r1, r6 - addge r1, r6, #0x3e0 - orr r2, r4, r12 - mov r1, r1, lsl #0x1 - add r6, r6, #0x1 - strh r2, [r5, r1] - cmp r6, r8 - add r12, r12, #0x1 - blt _020B62BC -_020B62E4: - add lr, lr, #0x1 - cmp lr, r7 - blt _020B62A0 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B6240 - - arm_func_start FUN_020B62F8 -FUN_020B62F8: ; 0x020B62F8 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x18 - cmp r2, #0x8 - movlt r4, r2 - movge r12, #0x3 - clzlt r4, r4 - rsblt r12, r4, #0x1f - cmp r3, #0x8 - movlt r4, r3 - movge r6, #0x3 - clzlt r4, r4 - rsblt r6, r4, #0x1f - ldr r4, _020B6378 ; =UNK_020FF970 - ldr r5, [sp, #0x28] - add r4, r4, r6, lsl #0x3 - ldrb r6, [r4, r12, lsl #0x1] - add r12, r4, r12, lsl #0x1 - ldr r4, _020B637C ; =FUN_020B6908 - strb r6, [sp, #0x14] - ldrb r6, [r12, #0x1] - ldr lr, _020B6380 ; =FUN_020B68AC - ldr ip, _020B6384 ; =FUN_020B64C0 - strb r6, [sp, #0x15] - str r5, [sp, #0x0] - str r4, [sp, #0x4] - str lr, [sp, #0x8] - str r12, [sp, #0xc] - ldr r12, [sp, #0x14] - str r12, [sp, #0x10] - bl FUN_020B6488 - add sp, sp, #0x18 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B6378: .word UNK_020FF970 -_020B637C: .word FUN_020B6908 -_020B6380: .word FUN_020B68AC -_020B6384: .word FUN_020B64C0 - arm_func_end FUN_020B62F8 - - arm_func_start FUN_020B6388 -FUN_020B6388: ; 0x020B6388 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr lr, [sp, #0x18] - ldr ip, _020B63C0 ; =FUN_020B6B10 - str lr, [sp, #0x0] - ldr lr, _020B63C4 ; =FUN_020B68AC - str r12, [sp, #0x4] - ldr ip, _020B63C8 ; =FUN_020B66D4 - str lr, [sp, #0x8] - str r12, [sp, #0xc] - str r2, [sp, #0x10] - bl FUN_020B6488 - add sp, sp, #0x14 - ldmia sp!, {pc} - .balign 4 -_020B63C0: .word FUN_020B6B10 -_020B63C4: .word FUN_020B68AC -_020B63C8: .word FUN_020B66D4 - arm_func_end FUN_020B6388 - - arm_func_start FUN_020B63CC -FUN_020B63CC: ; 0x020B63CC - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x10 - mov r7, r1 - ldrh r1, [sp, #0x2c] - mov r8, r0 - mov r0, r7 - mov r6, r2 - mov r5, r3 - bl FUN_020B5CE4 - ldr r1, _020B6484 ; =0x0000FFFF - mov r4, r0 - cmp r4, r1 - ldreq r0, [r7, #0x0] - ldreqh r4, [r0, #0x2] - mov r0, r7 - mov r1, r4 - bl FUN_020B5C88 - str r0, [sp, #0x8] - ldr r0, [r7, #0x0] - ldr r2, [sp, #0x28] - ldr r0, [r0, #0x8] - add r1, sp, #0x8 - ldrh r3, [r0, #0x2] - add r12, r0, #0x8 - mov r0, r8 - mla r3, r4, r3, r12 - str r3, [sp, #0xc] - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [sp, #0x8] - ldr r4, [r8, #0x14] - ldrsb r2, [r1, #0x0] - mov r1, r7 - mov r3, r5 - add r2, r6, r2 - blx r4 - ldrh r0, [r7, #0x8] - cmp r0, #0x0 - ldrne r0, [sp, #0x8] - ldrnesb r1, [r0, #0x0] - ldrneb r0, [r0, #0x1] - addne r0, r1, r0 - ldreq r0, [sp, #0x8] - ldreqsb r0, [r0, #0x2] - add sp, sp, #0x10 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020B6484: .word 0x0000FFFF - arm_func_end FUN_020B63CC - - arm_func_start FUN_020B6488 -FUN_020B6488: ; 0x020B6488 - str r2, [r0, #0x4] - ldr r2, [sp, #0x0] - str r3, [r0, #0x8] - strb r2, [r0, #0xc] - ldr r2, [sp, #0x4] - str r1, [r0, #0x0] - ldr r1, [sp, #0x8] - str r2, [r0, #0x14] - ldr r2, [sp, #0xc] - str r1, [r0, #0x18] - ldr r1, [sp, #0x10] - str r2, [r0, #0x1c] - str r1, [r0, #0x10] - bx lr - arm_func_end FUN_020B6488 - - arm_func_start FUN_020B64C0 -FUN_020B64C0: ; 0x020B64C0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x54 - ldrb r4, [r0, #0xc] - mov r10, r2 - str r1, [sp, #0xc] - str r4, [sp, #0x44] - ldr r1, [sp, #0x44] - ldr r4, [sp, #0x78] - cmp r1, #0x4 - add r1, r10, r4 - str r1, [sp, #0x1c] - ldr r2, [sp, #0x7c] - mov r1, r3 - add r1, r1, r2 - str r1, [sp, #0x20] - ldrne r1, [sp, #0xc] - str r3, [sp, #0x10] - orrne r1, r1, r1, lsl #0x8 - orrne r1, r1, r1, lsl #0x10 - strne r1, [sp, #0xc] - bne _020B6528 - ldr r1, [sp, #0xc] - orr r1, r1, r1, lsl #0x4 - orr r1, r1, r1, lsl #0x8 - orr r1, r1, r1, lsl #0x10 - str r1, [sp, #0xc] -_020B6528: - bic r1, r10, #0x7 - str r1, [sp, #0x30] - ldr r1, [sp, #0x10] - ldr r2, [r0, #0x10] - bic r1, r1, #0x7 - str r1, [sp, #0x14] - ldr r1, [sp, #0x44] - str r2, [sp, #0x4c] - mov r3, r1, lsl #0x6 - mov r2, r3, asr #0x2 - ldr r1, [sp, #0x20] - add r3, r3, r2, lsr #0x1d - ldr r2, [sp, #0x1c] - add r6, r1, #0x7 - add r2, r2, #0x7 - bic r5, r2, #0x7 - bic r2, r6, #0x7 - ldr r1, [sp, #0x30] - str r2, [sp, #0x24] - mov r2, r3, asr #0x3 - str r2, [sp, #0x48] - mov r4, r1, asr #0x2 - ldr r2, [sp, #0x30] - ldr r1, [sp, #0x14] - add r2, r2, r4, lsr #0x1d - mov r2, r2, asr #0x3 - str r2, [sp, #0x2c] - ldr r2, [sp, #0x14] - mov r1, r1, asr #0x2 - add r1, r2, r1, lsr #0x1d - mov r6, r1, asr #0x3 - ldr r1, [sp, #0x24] - cmp r2, r1 - ldr r1, [r0, #0x4] - str r1, [sp, #0x40] - ldr r1, [r0, #0x8] - ldr r0, [r0, #0x0] - str r1, [sp, #0x3c] - str r0, [sp, #0x28] - ldrb r0, [sp, #0x4c] - str r0, [sp, #0x38] - ldrb r0, [sp, #0x4d] - str r0, [sp, #0x34] - addge sp, sp, #0x54 - ldmgeia sp!, {r4-r11,pc} - mov r4, #0x0 - mov r11, #0x8 -_020B65E4: - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x10] - ldr r7, [sp, #0x2c] - cmp r1, r0 - movlt r1, r0 - ldrlt r0, [sp, #0x14] - sublt r9, r1, r0 - ldr r1, [sp, #0x20] - ldr r0, [sp, #0x14] - movge r9, r4 - sub r0, r1, r0 - cmp r0, #0x8 - movgt r0, r11 - sub r0, r0, r9 - str r0, [sp, #0x18] - ldr r0, [sp, #0x30] - cmp r0, r5 - mov r8, r0 - bge _020B66B0 -_020B6630: - ldr r0, [sp, #0x38] - ldr r2, [sp, #0x40] - str r0, [sp, #0x0] - ldr r0, [sp, #0x34] - ldr r3, [sp, #0x3c] - str r0, [sp, #0x4] - mov r0, r7 - mov r1, r6 - bl FUN_020B7068 - ldr r2, [sp, #0x1c] - cmp r8, r10 - sublt r1, r10, r8 - sub r2, r2, r8 - movge r1, r4 - cmp r2, #0x8 - movgt r2, r11 - sub r3, r2, r1 - ldr r2, [sp, #0x18] - ldr r12, [sp, #0x48] - str r2, [sp, #0x0] - ldr r2, [sp, #0xc] - str r2, [sp, #0x4] - ldr r2, [sp, #0x44] - str r2, [sp, #0x8] - ldr r2, [sp, #0x28] - mla r0, r12, r0, r2 - mov r2, r9 - bl FUN_020B6F18 - add r8, r8, #0x8 - add r7, r7, #0x1 - cmp r8, r5 - blt _020B6630 -_020B66B0: - ldr r0, [sp, #0x14] - add r6, r6, #0x1 - add r1, r0, #0x8 - ldr r0, [sp, #0x24] - str r1, [sp, #0x14] - cmp r1, r0 - blt _020B65E4 - add sp, sp, #0x54 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B64C0 - - arm_func_start FUN_020B66D4 -FUN_020B66D4: ; 0x020B66D4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x3c - ldrb r4, [r0, #0xc] - mov r10, r2 - str r1, [sp, #0xc] - str r4, [sp, #0x2c] - ldr r1, [sp, #0x2c] - ldr r4, [sp, #0x60] - cmp r1, #0x4 - add r1, r10, r4 - str r1, [sp, #0x18] - ldr r2, [sp, #0x64] - mov r1, r3 - add r1, r1, r2 - str r1, [sp, #0x1c] - ldrne r1, [sp, #0xc] - str r3, [sp, #0x10] - orrne r1, r1, r1, lsl #0x8 - orrne r1, r1, r1, lsl #0x10 - strne r1, [sp, #0xc] - bne _020B673C - ldr r1, [sp, #0xc] - orr r1, r1, r1, lsl #0x4 - orr r1, r1, r1, lsl #0x8 - orr r1, r1, r1, lsl #0x10 - str r1, [sp, #0xc] -_020B673C: - ldr r1, [sp, #0x10] - bic r1, r1, #0x7 - mov r2, r1, asr #0x2 - str r1, [sp, #0x14] - add r1, r1, r2, lsr #0x1d - ldr r2, [r0, #0x10] - mov r3, r1, asr #0x3 - mul r1, r3, r2 - bic r3, r10, #0x7 - str r3, [sp, #0x28] - ldr r3, [sp, #0x2c] - mov r6, r3, lsl #0x6 - ldr r3, [sp, #0x28] - mov r4, r6, asr #0x2 - mov r5, r3, asr #0x2 - add r5, r3, r5, lsr #0x1d - add r4, r6, r4, lsr #0x1d - mov r3, r4, asr #0x3 - str r3, [sp, #0x30] - ldr r3, [sp, #0x1c] - add r1, r1, r5, asr #0x3 - add r4, r3, #0x7 - ldr r3, [r0, #0x0] - ldr r0, [sp, #0x18] - add r5, r0, #0x7 - ldr r0, [sp, #0x30] - bic r7, r5, #0x7 - mla r1, r0, r1, r3 - bic r0, r4, #0x7 - str r0, [sp, #0x20] - ldr r0, [sp, #0x30] - str r1, [sp, #0x24] - mul r0, r2, r0 - str r0, [sp, #0x34] - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x20] - cmp r1, r0 - addge sp, sp, #0x3c - ldmgeia sp!, {r4-r11,pc} - mov r5, #0x0 - mov r4, #0x8 -_020B67E0: - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x10] - ldr r6, [sp, #0x24] - cmp r1, r0 - movlt r1, r0 - ldrlt r0, [sp, #0x14] - sublt r9, r1, r0 - ldr r1, [sp, #0x1c] - ldr r0, [sp, #0x14] - movge r9, r5 - sub r0, r1, r0 - cmp r0, #0x8 - movgt r0, r4 - sub r11, r0, r9 - ldr r0, [sp, #0x28] - cmp r0, r7 - mov r8, r0 - bge _020B687C -_020B6828: - ldr r0, [sp, #0x18] - cmp r8, r10 - sublt r1, r10, r8 - sub r0, r0, r8 - movge r1, r5 - cmp r0, #0x8 - movgt r0, r4 - sub r3, r0, r1 - ldr r0, [sp, #0xc] - str r11, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [sp, #0x2c] - mov r2, r9 - str r0, [sp, #0x8] - mov r0, r6 - bl FUN_020B6F18 - ldr r0, [sp, #0x30] - add r8, r8, #0x8 - add r6, r6, r0 - cmp r8, r7 - blt _020B6828 -_020B687C: - ldr r1, [sp, #0x24] - ldr r0, [sp, #0x34] - add r0, r1, r0 - str r0, [sp, #0x24] - ldr r0, [sp, #0x14] - add r1, r0, #0x8 - ldr r0, [sp, #0x20] - str r1, [sp, #0x14] - cmp r1, r0 - blt _020B67E0 - add sp, sp, #0x3c - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B66D4 - - arm_func_start FUN_020B68AC -FUN_020B68AC: ; 0x020B68AC - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r3, r0 - ldrb r2, [r3, #0xc] - ldr r12, [r3, #0x4] - cmp r2, #0x4 - orreq r0, r1, r1, lsl #0x4 - orreq r0, r0, r0, lsl #0x8 - orreq r1, r0, r0, lsl #0x10 - orrne r0, r1, r1, lsl #0x8 - orrne r1, r0, r0, lsl #0x10 - ldr r0, [r3, #0x8] - mov r2, r2, lsl #0x6 - mul lr, r12, r0 - mov r0, r2, asr #0x2 - add r0, r2, r0, lsr #0x1d - mov r2, r0, asr #0x3 - mov r0, r1 - mul r2, lr, r2 - ldr r1, [r3, #0x0] - bl MIi_CpuClearFast - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020B68AC - - arm_func_start FUN_020B6908 -FUN_020B6908: ; 0x020B6908 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4c - ldr r7, [sp, #0x74] - ldrb r5, [r0, #0xc] - ldr r6, [r1, #0x0] - ldr r4, [r7, #0x0] - ldr r9, [r6, #0x8] - mov r8, r5, lsl #0x6 - ldrb r4, [r4, #0x1] - mov r5, r8, asr #0x2 - add r5, r8, r5, lsr #0x1d - ldrb r9, [r9, #0x1] - ldr r8, [r0, #0x4] - ldr r6, [r0, #0x8] - str r2, [sp, #0x8] - str r3, [sp, #0xc] - cmp r4, #0x0 - mov r5, r5, asr #0x3 - addeq sp, sp, #0x4c - ldmeqia sp!, {r4-r11,pc} - adds r3, r2, r4 - addmi sp, sp, #0x4c - ldmmiia sp!, {r4-r11,pc} - ldr r2, [sp, #0xc] - adds r2, r2, r9 - addmi sp, sp, #0x4c - ldmmiia sp!, {r4-r11,pc} - ldr r10, [sp, #0x8] - add r3, r3, #0x7 - cmp r10, #0x0 - movle r10, #0x0 - strle r10, [sp, #0x10] - movgt r10, r10, lsr #0x3 - strgt r10, [sp, #0x10] - ldr r10, [sp, #0xc] - add r2, r2, #0x7 - cmp r10, #0x0 - movle r10, #0x0 - mov r11, r2, lsr #0x3 - mov r3, r3, lsr #0x3 - movgt r10, r10, lsr #0x3 - cmp r3, r8 - movcs r3, r8 - cmp r11, r6 - ldr r2, [sp, #0x10] - movcs r11, r6 - subs r8, r3, r2 - addmi sp, sp, #0x4c - sub r3, r11, r10 - ldmmiia sp!, {r4-r11,pc} - cmp r3, #0x0 - addlt sp, sp, #0x4c - ldmltia sp!, {r4-r11,pc} - ldr r2, [sp, #0x8] - ldr r6, [r0, #0x0] - cmp r2, #0x0 - andge r2, r2, #0x7 - strge r2, [sp, #0x8] - ldr r2, [sp, #0xc] - ldr r11, [sp, #0x8] - cmp r2, #0x0 - andge r2, r2, #0x7 - strge r2, [sp, #0xc] - sub r8, r11, r8, lsl #0x3 - ldr r11, [sp, #0xc] - ldr r2, [sp, #0x70] - sub r3, r11, r3, lsl #0x3 - str r3, [sp, #0x14] - ldr r3, [r7, #0x4] - sub r2, r2, #0x1 - str r3, [sp, #0x28] - str r2, [sp, #0x48] - str r9, [sp, #0x38] - str r4, [sp, #0x34] - ldr r4, [r1, #0x0] - ldr r2, [sp, #0x14] - mov r3, r11 - cmp r3, r2 - ldr r2, [r4, #0x8] - ldrb r3, [r2, #0x6] - str r3, [sp, #0x40] - ldrb r2, [r0, #0xc] - str r2, [sp, #0x44] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x8] - ldrb r1, [r1, #0x0] - mul r1, r3, r1 - str r1, [sp, #0x3c] - ldr r1, [r0, #0x10] - str r1, [sp, #0x20] - ldr r1, [r0, #0x4] - ldr r0, [r0, #0x8] - ldrb r11, [sp, #0x20] - ldrb r4, [sp, #0x21] - str r1, [sp, #0x1c] - str r0, [sp, #0x18] - addle sp, sp, #0x4c - ldmleia sp!, {r4-r11,pc} -_020B6A90: - ldr r0, [sp, #0xc] - ldr r7, [sp, #0x10] - str r0, [sp, #0x30] - ldr r0, [sp, #0x8] - cmp r0, r8 - mov r9, r0 - ble _020B6AEC -_020B6AAC: - ldr r2, [sp, #0x1c] - str r11, [sp, #0x0] - ldr r3, [sp, #0x18] - mov r0, r7 - mov r1, r10 - str r4, [sp, #0x4] - bl FUN_020B7068 - mla r1, r0, r5, r6 - add r0, sp, #0x24 - str r9, [sp, #0x2c] - str r1, [sp, #0x24] - bl FUN_020B6CAC - sub r9, r9, #0x8 - add r7, r7, #0x1 - cmp r9, r8 - bgt _020B6AAC -_020B6AEC: - ldr r0, [sp, #0xc] - add r10, r10, #0x1 - sub r1, r0, #0x8 - ldr r0, [sp, #0x14] - str r1, [sp, #0xc] - cmp r1, r0 - bgt _020B6A90 - add sp, sp, #0x4c - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6908 - - arm_func_start FUN_020B6B10 -FUN_020B6B10: ; 0x020B6B10 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x2c - ldr r4, [sp, #0x54] - ldrb r5, [r0, #0xc] - str r4, [sp, #0x54] - ldr r4, [r4, #0x0] - ldr r6, [r1, #0x0] - mov r7, r5, lsl #0x6 - ldrb r4, [r4, #0x1] - mov r5, r7, asr #0x2 - add r5, r7, r5, lsr #0x1d - cmp r4, #0x0 - ldr r6, [r6, #0x8] - mov r9, r3 - ldr r8, [r0, #0x4] - ldr r7, [r0, #0x8] - mov r10, r2 - mov r5, r5, asr #0x3 - addeq sp, sp, #0x2c - ldr lr, [r0, #0x0] - ldrb r3, [r6, #0x1] - ldmeqia sp!, {r4-r11,pc} - adds r6, r10, r4 - addmi sp, sp, #0x2c - ldmmiia sp!, {r4-r11,pc} - adds r2, r9, r3 - addmi sp, sp, #0x2c - ldmmiia sp!, {r4-r11,pc} - cmp r10, #0x0 - movle r11, #0x0 - add r6, r6, #0x7 - movgt r11, r10, lsr #0x3 - cmp r9, #0x0 - movle r12, #0x0 - add r2, r2, #0x7 - mov r6, r6, lsr #0x3 - movgt r12, r9, lsr #0x3 - cmp r6, r8 - movcs r6, r8 - mov r2, r2, lsr #0x3 - cmp r2, r7 - movcs r2, r7 - subs r7, r6, r11 - addmi sp, sp, #0x2c - sub r2, r2, r12 - ldmmiia sp!, {r4-r11,pc} - cmp r2, #0x0 - addlt sp, sp, #0x2c - ldmltia sp!, {r4-r11,pc} - ldr r6, [r0, #0x10] - cmp r10, #0x0 - sub r8, r6, r7 - mul r8, r5, r8 - mla r11, r6, r12, r11 - andge r10, r10, #0x7 - str r8, [sp, #0x0] - ldr r8, [sp, #0x54] - mla r6, r5, r11, lr - ldr r12, [r8, #0x4] - ldr r11, [sp, #0x50] - cmp r9, #0x0 - sub r8, r11, #0x1 - andge r9, r9, #0x7 - sub r11, r9, r2, lsl #0x3 - str r12, [sp, #0x8] - str r4, [sp, #0x14] - str r8, [sp, #0x28] - str r3, [sp, #0x18] - ldr r3, [r1, #0x0] - cmp r9, r11 - ldr r2, [r3, #0x8] - sub r7, r10, r7, lsl #0x3 - ldrb r2, [r2, #0x6] - str r2, [sp, #0x20] - ldrb r0, [r0, #0xc] - str r0, [sp, #0x24] - ldr r0, [r1, #0x0] - ldr r0, [r0, #0x8] - ldrb r0, [r0, #0x0] - mul r0, r2, r0 - str r0, [sp, #0x1c] - addle sp, sp, #0x2c - ldmleia sp!, {r4-r11,pc} - add r4, sp, #0x4 -_020B6C60: - mov r8, r10 - str r9, [sp, #0x10] - cmp r10, r7 - ble _020B6C90 -_020B6C70: - mov r0, r4 - str r6, [sp, #0x4] - str r8, [sp, #0xc] - bl FUN_020B6CAC - sub r8, r8, #0x8 - cmp r8, r7 - add r6, r6, r5 - bgt _020B6C70 -_020B6C90: - ldr r0, [sp, #0x0] - sub r9, r9, #0x8 - cmp r9, r11 - add r6, r6, r0 - bgt _020B6C60 - add sp, sp, #0x2c - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6B10 - - arm_func_start FUN_020B6CAC -FUN_020B6CAC: ; 0x020B6CAC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - ldr r5, [r0, #0x8] - ldr r4, [r0, #0xc] - cmp r5, #0x0 - strge r5, [sp, #0x0] - movlt r1, #0x0 - strlt r1, [sp, #0x0] - ldr r1, [r0, #0x10] - cmp r4, #0x0 - add r10, r5, r1 - ldr r1, [r0, #0x14] - movge r2, r4 - movlt r2, #0x0 - cmp r10, #0x8 - add r3, r4, r1 - movge r10, #0x8 - cmp r3, #0x8 - movge r3, #0x8 - cmp r4, #0x0 - movgt r4, #0x0 - cmp r5, #0x0 - ldr r8, [r0, #0x20] - movgt r5, #0x0 - rsb r1, r4, #0x0 - mul r7, r10, r8 - ldr r6, [r0, #0x1c] - rsb r4, r5, #0x0 - mul r9, r6, r4 - ldr r4, [r0, #0x18] - mov r10, r7 - str r4, [sp, #0x8] - ldr r4, [sp, #0x0] - cmp r8, #0x4 - mul r5, r4, r8 - ldr r4, [sp, #0x8] - str r5, [sp, #0x0] - mla r11, r1, r4, r9 - ldr r1, [r0, #0x4] - str r1, [sp, #0x4] - bne _020B6E24 - ldr r1, [r0, #0x0] - ldr r7, [r0, #0x24] - add r0, r1, r2, lsl #0x2 - str r0, [sp, #0xc] - add r0, r1, r3, lsl #0x2 - ldr r1, [sp, #0xc] - str r0, [sp, #0x10] - cmp r1, r0 - addcs sp, sp, #0x34 - ldmcsia sp!, {r4-r11,pc} - mov r0, #0x0 - add r9, sp, #0x24 - mov r4, #0xf - str r0, [sp, #0x1c] -_020B6D88: - ldr r0, [sp, #0xc] - mov r1, r11, lsr #0x1f - ldr r5, [r0, #0x0] - ldr r0, [sp, #0x4] - rsb r2, r1, r11, lsl #0x1d - add r0, r0, r11, lsr #0x3 - str r0, [sp, #0x24] - ldr r0, [sp, #0x1c] - add r1, r1, r2, ror #0x1d - strb r0, [sp, #0x28] - strb r0, [sp, #0x29] - mov r0, r9 - bl FUN_020B76B0 - ldr r8, [sp, #0x0] - mov r0, r8 - cmp r0, r10 - bhs _020B6DF8 -_020B6DCC: - mov r0, r9 - mov r1, r6 - bl FUN_020B76B0 - cmp r0, #0x0 - mvnne r1, r4, lsl r8 - addne r0, r7, r0 - andne r1, r5, r1 - orrne r5, r1, r0, lsl r8 - add r8, r8, #0x4 - cmp r8, r10 - blo _020B6DCC -_020B6DF8: - ldr r0, [sp, #0xc] - add r1, r0, #0x4 - str r5, [r0, #0x0] - ldr r0, [sp, #0x10] - str r1, [sp, #0xc] - cmp r1, r0 - ldr r0, [sp, #0x8] - add r11, r11, r0 - blo _020B6D88 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} -_020B6E24: - ldr r1, [r0, #0x0] - ldr r9, [r0, #0x24] - add r0, r1, r2, lsl #0x3 - str r0, [sp, #0x14] - add r0, r1, r3, lsl #0x3 - ldr r1, [sp, #0x14] - str r0, [sp, #0x18] - cmp r1, r0 - addcs sp, sp, #0x34 - ldmcsia sp!, {r4-r11,pc} - mov r0, #0x0 - mov r4, #0xff - str r0, [sp, #0x20] -_020B6E58: - mov r1, r11, lsr #0x1f - rsb r0, r1, r11, lsl #0x1d - add r1, r1, r0, ror #0x1d - ldr r0, [sp, #0x14] - ldr r8, [r0, #0x0] - ldr r7, [r0, #0x4] - ldr r0, [sp, #0x4] - add r0, r0, r11, lsr #0x3 - str r0, [sp, #0x2c] - ldr r0, [sp, #0x20] - strb r0, [sp, #0x30] - strb r0, [sp, #0x31] - add r0, sp, #0x2c - bl FUN_020B76B0 - ldr r0, [sp, #0x0] - cmp r0, r10 - mov r5, r0 - bhs _020B6EE8 -_020B6EA0: - add r0, sp, #0x2c - mov r1, r6 - bl FUN_020B76B0 - cmp r0, #0x0 - beq _020B6EDC - cmp r5, #0x20 - mvncc r1, r4, lsl r5 - addcc r0, r9, r0 - andcc r1, r8, r1 - orrcc r8, r1, r0, lsl r5 - subcs r2, r5, #0x20 - mvncs r1, r4, lsl r2 - addcs r0, r9, r0 - andcs r1, r7, r1 - orrcs r7, r1, r0, lsl r2 -_020B6EDC: - add r5, r5, #0x8 - cmp r5, r10 - blo _020B6EA0 -_020B6EE8: - ldr r0, [sp, #0x14] - str r8, [r0, #0x0] - add r1, r0, #0x8 - str r7, [r0, #0x4] - ldr r0, [sp, #0x18] - str r1, [sp, #0x14] - cmp r1, r0 - ldr r0, [sp, #0x8] - add r11, r11, r0 - blo _020B6E58 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6CAC - - arm_func_start FUN_020B6F18 -FUN_020B6F18: ; 0x020B6F18 - stmdb sp!, {r4-r6,lr} - mov lr, r0 - cmp r3, #0x8 - ldr r0, [sp, #0x14] - bne _020B6F4C - ldr r4, [sp, #0x10] - cmp r4, #0x8 - bne _020B6F4C - ldr r2, [sp, #0x18] - mov r1, lr - mov r2, r2, lsl #0x3 - bl MIi_CpuClearFast - ldmia sp!, {r4-r6,pc} -_020B6F4C: - ldr r4, [sp, #0x18] - cmp r4, #0x4 - bne _020B6FAC - mov r5, r1, lsl #0x2 - add r4, r5, r3, lsl #0x2 - mvn r3, #0x0 - rsb r4, r4, #0x20 - mov r3, r3, lsr r5 - add r1, r4, r1, lsl #0x2 - mov r3, r3, lsl r1 - ldr r1, [sp, #0x10] - add r5, lr, r2, lsl #0x2 - add r2, r5, r1, lsl #0x2 - and r6, r0, r3, lsr r4 - cmp r5, r2 - mvn r1, r3, lsr r4 - ldmcsia sp!, {r4-r6,pc} -_020B6F90: - ldr r0, [r5, #0x0] - and r0, r0, r1 - orr r0, r6, r0 - str r0, [r5], #0x4 - cmp r5, r2 - blo _020B6F90 - ldmia sp!, {r4-r6,pc} -_020B6FAC: - mov r12, r1, lsl #0x3 - add r1, r12, r3, lsl #0x3 - rsb r1, r1, #0x40 - mvn r3, #0x0 - cmp r1, #0x20 - mov r5, r3, lsr r12 - subcs r4, r1, #0x20 - addcs r3, r12, r4 - movcs r3, r5, lsl r3 - movcs r3, r3, lsr r4 - movcc r3, r5, lsl r12 - mvn r4, #0x0 - add r5, lr, r2, lsl #0x3 - cmp r12, #0x20 - mov r4, r4, lsl r1 - subcs r12, r12, #0x20 - addcs r1, r12, r1 - movcs r1, r4, lsr r1 - movcs r6, r1, lsl r12 - movcc r6, r4, lsr r1 - ldr r1, [sp, #0x10] - and lr, r0, r3 - add r4, r5, r1, lsl #0x3 - cmp r5, r4 - and r12, r0, r6 - mvn r2, r3 - mvn r1, r6 - ldmcsia sp!, {r4-r6,pc} -_020B701C: - ldr r0, [r5, #0x0] - and r0, r0, r2 - orr r0, lr, r0 - str r0, [r5, #0x0] - ldr r0, [r5, #0x4] - and r0, r0, r1 - orr r0, r12, r0 - str r0, [r5, #0x4] - add r5, r5, #0x8 - cmp r5, r4 - blo _020B701C - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B6F18 - - arm_func_start FUN_020B704C -FUN_020B704C: ; 0x020B704C - ldrb r3, [r0, #0x1] - ldr r2, _020B7064 ; =UNK_020FF990 - ldrb r1, [r0, #0x0] - add r0, r2, r3, lsl #0x4 - ldr r0, [r0, r1, lsl #0x2] - bx lr - .balign 4 -_020B7064: .word UNK_020FF990 - arm_func_end FUN_020B704C - - arm_func_start FUN_020B7068 -FUN_020B7068: ; 0x020B7068 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr fp, _020B7164 ; =UNK_020FF970 - mov r9, #0x0 - mov r10, #0x3 - mvn r7, #0x0 -_020B7080: - ldr r4, [sp, #0x2c] - ldr r6, [sp, #0x28] - and r12, r3, r7, lsl r4 - cmp r12, r1 - mov r8, r7, lsl r6 - mov r5, r7, lsl r4 - and lr, r2, r7, lsl r6 - bhi _020B70D0 - mla r9, r2, r12, r9 - cmp lr, r0 - movhi r2, lr - subhi r1, r1, r12 - subhi r3, r3, r12 - bhi _020B7118 - sub r3, r3, r12 - mla r9, lr, r3, r9 - sub r0, r0, lr - sub r1, r1, r12 - sub r2, r2, lr - b _020B7118 -_020B70D0: - cmp lr, r0 - mlals r9, lr, r12, r9 - mvn r3, r5 - movls r3, r12 - subls r0, r0, lr - subls r2, r2, lr - bls _020B7118 - and r2, r1, r5 - mla r5, lr, r2, r9 - and r2, r0, r8 - and r1, r1, r3 - add r2, r5, r2, lsl r4 - mvn r3, r8 - add r1, r2, r1, lsl r6 - and r0, r0, r3 - add sp, sp, #0x4 - add r0, r1, r0 - ldmia sp!, {r4-r11,pc} -_020B7118: - cmp r2, #0x8 - movlt r4, r2 - movge r5, r10 - clzlt r4, r4 - rsblt r5, r4, #0x1f - cmp r3, #0x8 - movge r4, r10 - movlt r4, r3 - clzlt r4, r4 - rsblt r4, r4, #0x1f - add r4, r11, r4, lsl #0x3 - add r6, r4, r5, lsl #0x1 - ldrb r5, [r4, r5, lsl #0x1] - ldrb r4, [r6, #0x1] - str r5, [sp, #0x28] - str r4, [sp, #0x2c] - b _020B7080 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B7164: .word UNK_020FF970 - arm_func_end FUN_020B7068 - - arm_func_start FUN_020B7168 -FUN_020B7168: ; 0x020B7168 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - ldr r12, [sp, #0x28] - mov r7, r0 - mov r6, r1 - mov r5, r2 - mov r4, r3 - ands r0, r12, #0x100 - beq _020B71AC - ldr r0, [r7, #0x4] - ldr r1, [r7, #0xc] - ldr r2, [sp, #0x2c] - bl FUN_020B5B54 - ldr r1, [sp, #0x20] - sub r0, r1, r0 - add r5, r5, r0 - b _020B71E4 -_020B71AC: - ands r0, r12, #0x80 - beq _020B71E4 - ldr r0, [r7, #0x4] - ldr r1, [r7, #0xc] - ldr r2, [sp, #0x2c] - bl FUN_020B5B54 - ldr r2, [sp, #0x20] - add r1, r0, #0x1 - add r0, r2, #0x1 - add r0, r0, r0, lsr #0x1f - mov r2, r0, asr #0x1 - add r0, r1, r1, lsr #0x1f - sub r0, r2, r0, asr #0x1 - add r5, r5, r0 -_020B71E4: - ldr r1, [sp, #0x24] - ldr r0, [sp, #0x28] - str r1, [sp, #0x0] - ldr r12, [sp, #0x2c] - str r0, [sp, #0x4] - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r4 - str r12, [sp, #0x8] - bl FUN_020B72C4 - add sp, sp, #0xc - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B7168 - - arm_func_start FUN_020B7218 -FUN_020B7218: ; 0x020B7218 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x18 - ldr r4, [sp, #0x34] - mov r8, r0 - str r4, [sp, #0x0] - mov r7, r1 - mov r6, r2 - mov r5, r3 - ldr r4, [sp, #0x30] - ldr r1, [r8, #0x4] - ldr r2, [r8, #0x8] - ldr r3, [r8, #0xc] - add r0, sp, #0xc - bl FUN_020B5ABC - ands r0, r4, #0x10 - ldrne r0, [sp, #0xc] - addne r0, r0, #0x1 - addne r0, r0, r0, lsr #0x1f - subne r7, r7, r0, asr #0x1 - bne _020B7274 - ands r0, r4, #0x20 - ldrne r0, [sp, #0xc] - subne r7, r7, r0 -_020B7274: - ands r0, r4, #0x2 - ldrne r0, [sp, #0x10] - addne r0, r0, #0x1 - addne r0, r0, r0, lsr #0x1f - subne r6, r6, r0, asr #0x1 - bne _020B7298 - ands r0, r4, #0x4 - ldrne r0, [sp, #0x10] - subne r6, r6, r0 -_020B7298: - str r5, [sp, #0x0] - ldr r0, [sp, #0x34] - str r4, [sp, #0x4] - str r0, [sp, #0x8] - ldr r3, [sp, #0xc] - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl FUN_020B72C4 - add sp, sp, #0x18 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B7218 - - arm_func_start FUN_020B72C4 -FUN_020B72C4: ; 0x020B72C4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r4, [r10, #0x4] - ldr r0, [sp, #0x40] - ldr r4, [r4, #0x0] - ldr r5, [r10, #0xc] - ldrsb r4, [r4, #0x1] - cmp r0, #0x0 - mov r9, r1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x38] - mov r8, r2 - str r0, [sp, #0x38] - mov r7, r3 - add r6, r5, r4 - addeq sp, sp, #0x14 - ldmeqia sp!, {r4-r11,pc} - add r0, r7, #0x1 - ldr r1, [sp, #0x3c] - add r0, r0, r0, lsr #0x1f - mov r0, r0, asr #0x1 - and r5, r1, #0x800 - and r11, r1, #0x400 - str r0, [sp, #0x8] - mov r4, #0x0 -_020B732C: - mov r1, r9 - cmp r5, #0x0 - beq _020B7358 - ldr r0, [r10, #0x4] - ldr r1, [r10, #0x8] - ldr r2, [sp, #0xc] - mov r3, r4 - bl FUN_020B5BC8 - sub r0, r7, r0 - add r1, r9, r0 - b _020B7388 -_020B7358: - cmp r11, #0x0 - beq _020B7388 - ldr r0, [r10, #0x4] - ldr r1, [r10, #0x8] - ldr r2, [sp, #0xc] - mov r3, r4 - bl FUN_020B5BC8 - add r0, r0, #0x1 - add r1, r0, r0, lsr #0x1f - ldr r0, [sp, #0x8] - sub r0, r0, r1, asr #0x1 - add r1, r9, r0 -_020B7388: - ldr r2, [sp, #0xc] - add r3, sp, #0xc - str r2, [sp, #0x0] - str r3, [sp, #0x4] - ldr r3, [sp, #0x38] - mov r0, r10 - mov r2, r8 - bl FUN_020B73C0 - ldr r0, [sp, #0xc] - add r8, r8, r6 - cmp r0, #0x0 - bne _020B732C - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B72C4 - - arm_func_start FUN_020B73C0 -FUN_020B73C0: ; 0x020B73C0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r10, r0 - ldr r6, [r10, #0x8] - ldr r5, [r10, #0x4] - ldr r4, [sp, #0x30] - add r0, sp, #0x8 - str r4, [sp, #0x8] - ldr r4, [r5, #0x4] - mov r9, r1 - mov r8, r2 - mov r7, r3 - blx r4 - cmp r0, #0x0 - beq _020B743C - add r11, sp, #0x8 -_020B7400: - cmp r0, #0xa - beq _020B743C - str r7, [sp, #0x0] - str r0, [sp, #0x4] - ldr r0, [r10, #0x0] - mov r1, r5 - mov r2, r9 - mov r3, r8 - bl FUN_020B63CC - add r1, r9, r0 - mov r0, r11 - add r9, r1, r6 - blx r4 - cmp r0, #0x0 - bne _020B7400 -_020B743C: - ldr r1, [sp, #0x34] - cmp r1, #0x0 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r11,pc} - cmp r0, #0xa - ldreq r1, [sp, #0x8] - ldr r0, [sp, #0x34] - movne r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B73C0 - - arm_func_start FUN_020B7468 -FUN_020B7468: ; 0x020B7468 - stmdb sp!, {r4-r6,lr} - ldrh r2, [r0, #0xc] - ldrh r3, [r0, #0xe] - mov r1, #0x0 - add r2, r0, r2 - cmp r3, #0x0 - ldmleia sp!, {r4-r6,pc} - ldr r3, _020B7548 ; =0x46494E46 - ldr ip, _020B754C ; =0x43574448 - ldr r4, _020B7550 ; =0x434D4150 - ldr lr, _020B7554 ; =0x43474C50 -_020B7494: - ldr r5, [r2, #0x0] - cmp r5, r4 - bhi _020B74B0 - cmp r5, r4 - bhs _020B7518 - cmp r5, lr - b _020B752C -_020B74B0: - cmp r5, r12 - bhi _020B74C4 - cmp r5, r12 - beq _020B7500 - b _020B752C -_020B74C4: - cmp r5, r3 - bne _020B752C - add r6, r2, #0x8 - ldr r5, [r6, #0x8] - add r5, r5, r0 - str r5, [r6, #0x8] - ldr r5, [r6, #0xc] - cmp r5, #0x0 - addne r5, r5, r0 - strne r5, [r6, #0xc] - ldr r5, [r6, #0x10] - cmp r5, #0x0 - addne r5, r5, r0 - strne r5, [r6, #0x10] - b _020B752C -_020B7500: - add r6, r2, #0x8 - ldr r5, [r6, #0x4] - cmp r5, #0x0 - addne r5, r5, r0 - strne r5, [r6, #0x4] - b _020B752C -_020B7518: - add r6, r2, #0x8 - ldr r5, [r6, #0x8] - cmp r5, #0x0 - addne r5, r5, r0 - strne r5, [r6, #0x8] -_020B752C: - ldrh r5, [r0, #0xe] - ldr r6, [r2, #0x4] - add r1, r1, #0x1 - cmp r1, r5 - add r2, r2, r6 - blt _020B7494 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B7548: .word 0x46494E46 -_020B754C: .word 0x43574448 -_020B7550: .word 0x434D4150 -_020B7554: .word 0x43474C50 - arm_func_end FUN_020B7468 - - arm_func_start FUN_020B7558 -FUN_020B7558: ; 0x020B7558 - stmdb sp!, {r4-r6,lr} - movs r6, r0 - mov r5, r1 - beq _020B75C8 - cmp r6, #0x0 - beq _020B7584 - ldr r1, [r6, #0x0] - ldr r0, _020B76A8 ; =0x4E465452 - cmp r1, r0 - moveq r0, #0x1 - beq _020B7588 -_020B7584: - mov r0, #0x0 -_020B7588: - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B75CC - cmp r6, #0x0 - beq _020B75B4 - ldrh r0, [r6, #0x6] - cmp r0, #0x100 - movcs r0, #0x1 - bhs _020B75B8 -_020B75B4: - mov r0, #0x0 -_020B75B8: - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - b _020B75CC -_020B75C8: - mov r0, #0x0 -_020B75CC: - cmp r0, #0x0 - movne r4, #0x0 - bne _020B7654 - cmp r6, #0x0 - beq _020B7640 - cmp r6, #0x0 - beq _020B75FC - ldr r1, [r6, #0x0] - ldr r0, _020B76A8 ; =0x4E465452 - cmp r1, r0 - moveq r0, #0x1 - beq _020B7600 -_020B75FC: - mov r0, #0x0 -_020B7600: - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - cmp r0, #0x0 - beq _020B7644 - cmp r6, #0x0 - beq _020B762C - ldrh r0, [r6, #0x6] - cmp r0, #0x1 - movcs r0, #0x1 - bhs _020B7630 -_020B762C: - mov r0, #0x0 -_020B7630: - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - b _020B7644 -_020B7640: - mov r0, #0x0 -_020B7644: - cmp r0, #0x0 - movne r4, #0x1 - bne _020B7654 - bl OS_Terminate -_020B7654: - mov r0, r6 - bl FUN_020B7468 - ldr r1, _020B76AC ; =0x46494E46 - mov r0, r6 - bl FUN_020B01F8 - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r5, #0x0] - ldmeqia sp!, {r4-r6,pc} - add r0, r0, #0x8 - str r0, [r5, #0x0] - cmp r4, #0x0 - beq _020B76A0 - ldr r2, [r5, #0x0] - mov r1, #0x0 - ldrsb r0, [r2, #0x6] - strb r0, [r2, #0x7] - ldr r0, [r5, #0x0] - strb r1, [r0, #0x6] -_020B76A0: - add r0, r4, #0x1 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B76A8: .word 0x4E465452 -_020B76AC: .word 0x46494E46 - arm_func_end FUN_020B7558 - - arm_func_start FUN_020B76B0 -FUN_020B76B0: ; 0x020B76B0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldrsb r2, [r0, #0x4] - ldrb r12, [r0, #0x5] - mov r4, r1 - cmp r2, r4 - subge r1, r2, r4 - movge r5, r12, lsr r1 - strgeb r1, [r0, #0x4] - bge _020B7704 - ldr r3, [r0, #0x0] - sub r1, r4, r2 - add r2, r3, #0x1 - str r2, [r0, #0x0] - ldrb r2, [r3, #0x0] - mov r5, r12, lsl r1 - strb r2, [r0, #0x5] - mov r2, #0x8 - strb r2, [r0, #0x4] - bl FUN_020B76B0 - orr r5, r0, r5 -_020B7704: - rsb r0, r4, #0x8 - mov r1, #0xff - and r0, r5, r1, asr r0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B76B0 - - arm_func_start FUN_020B7718 -FUN_020B7718: ; 0x020B7718 - ldr r1, [r0, #0x0] - ldrh r2, [r1], #0x2 - str r1, [r0, #0x0] - mov r0, r2 - bx lr - arm_func_end FUN_020B7718 - - arm_func_start FUN_020B772C -FUN_020B772C: ; 0x020B772C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r0 - ldrb r0, [r6, #0x9] - mov r5, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r7,pc} - add r4, r6, #0x8 -_020B7750: - ldrh r0, [r6, #0xe] - ldrh r1, [r4, r0] - add r0, r4, r0 - mla r0, r1, r5, r0 - ldr r0, [r0, #0x4] - add r7, r6, r0 - mov r0, r7 - bl FUN_020B79A4 - mov r0, r7 - bl FUN_020B780C - ldrb r0, [r6, #0x9] - add r5, r5, #0x1 - cmp r5, r0 - blo _020B7750 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B772C - - arm_func_start FUN_020B7790 -FUN_020B7790: ; 0x020B7790 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - ldrb r0, [r8, #0x9] - mov r7, r1 - mov r5, #0x1 - cmp r0, #0x0 - mov r6, #0x0 - bls _020B7800 - add r4, r8, #0x8 -_020B77B8: - ldrh r0, [r8, #0xe] - mov r1, r7 - ldrh r2, [r4, r0] - add r0, r4, r0 - mla r0, r2, r6, r0 - ldr r0, [r0, #0x4] - add r9, r8, r0 - mov r0, r9 - bl FUN_020B7A04 - and r5, r5, r0 - mov r0, r9 - mov r1, r7 - bl FUN_020B7864 - ldrb r1, [r8, #0x9] - add r6, r6, #0x1 - and r5, r5, r0 - cmp r6, r1 - blo _020B77B8 -_020B7800: - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B7790 - - arm_func_start FUN_020B780C -FUN_020B780C: ; 0x020B780C - ldr r2, [r0, #0x8] - mov r1, #0x0 - add r2, r0, r2 - ldrh r0, [r2, #0x2] - add r12, r2, r0 - ldrb r0, [r12, #0x1] - cmp r0, #0x0 - bxls lr -_020B782C: - ldrh r2, [r12, #0x6] - ldrh r0, [r12, r2] - add r2, r12, r2 - add r2, r2, #0x4 - mla r3, r0, r1, r2 - ldrb r0, [r3, #0x3] - add r1, r1, #0x1 - ands r2, r0, #0x1 - bicne r0, r0, #0x1 - strneb r0, [r3, #0x3] - ldrb r0, [r12, #0x1] - cmp r1, r0 - blo _020B782C - bx lr - arm_func_end FUN_020B780C - - arm_func_start FUN_020B7864 -FUN_020B7864: ; 0x020B7864 - stmdb sp!, {r4-r10,lr} - ldr r2, [r0, #0x8] - mov r10, r1 - add r9, r0, r2 - ldrh r0, [r9, #0x2] - mov r6, #0x1 - mov r7, #0x0 - add r8, r9, r0 - ldrb r0, [r8, #0x1] - cmp r0, #0x0 - bls _020B7908 - mov r5, r7 - mov r4, r7 -_020B7898: - ldrh r1, [r8, #0x6] - ldrh r0, [r10, #0x34] - add r2, r8, r1 - ldrh r1, [r2, #0x2] - add r0, r10, r0 - add r1, r2, r1 - add r1, r1, r5 - bl FUN_020BC2A0 - movs r3, r0 - beq _020B78F0 - ldrh r1, [r8, #0x6] - ldrh r0, [r8, r1] - add r1, r8, r1 - add r1, r1, #0x4 - mla r1, r0, r7, r1 - ldrb r0, [r1, #0x3] - ands r0, r0, #0x1 - bne _020B78F4 - mov r0, r9 - mov r2, r10 - bl FUN_020B7910 - b _020B78F4 -_020B78F0: - mov r6, r4 -_020B78F4: - ldrb r0, [r8, #0x1] - add r7, r7, #0x1 - add r5, r5, #0x10 - cmp r7, r0 - blo _020B7898 -_020B7908: - mov r0, r6 - ldmia sp!, {r4-r10,pc} - arm_func_end FUN_020B7864 - - arm_func_start FUN_020B7910 -FUN_020B7910: ; 0x020B7910 - stmdb sp!, {r4-r6,lr} - ldrh r5, [r1, #0x0] - ldr r2, [r2, #0x2c] - ldrh r4, [r3, #0x2] - mov r2, r2, lsl #0x10 - add r12, r0, r5 - mov r5, r2, lsr #0x10 - ands r2, r4, #0x1 - ldrh r4, [r3, #0x0] - moveq r3, r5, lsl #0xf - moveq r5, r3, lsr #0x10 - moveq r2, r4, lsl #0xf - moveq r4, r2, lsr #0x10 - ldrb r3, [r1, #0x2] - mov r2, #0x0 - cmp r3, #0x0 - bls _020B7994 - add r3, r4, r5 - mov r3, r3, lsl #0x10 - add r6, r0, #0x4 - mov r4, r3, lsr #0x10 -_020B7964: - ldrh r5, [r0, #0xa] - ldrb r3, [r12, r2] - add r2, r2, #0x1 - ldrh lr, [r6, r5] - add r5, r6, r5 - mla r3, lr, r3, r5 - ldr r3, [r3, #0x4] - add r3, r0, r3 - strh r4, [r3, #0x1c] - ldrb r3, [r1, #0x2] - cmp r2, r3 - blo _020B7964 -_020B7994: - ldrb r0, [r1, #0x3] - orr r0, r0, #0x1 - strb r0, [r1, #0x3] - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B7910 - - arm_func_start FUN_020B79A4 -FUN_020B79A4: ; 0x020B79A4 - stmdb sp!, {r4-r6,lr} - ldr r2, [r0, #0x8] - mov r4, #0x0 - ldrh r1, [r0, r2] - add r6, r0, r2 - add r5, r6, r1 - ldrb r0, [r5, #0x1] - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020B79C8: - ldrh r1, [r5, #0x6] - ldrh r0, [r5, r1] - add r1, r5, r1 - add r1, r1, #0x4 - mla r1, r0, r4, r1 - ldrb r0, [r1, #0x3] - ands r0, r0, #0x1 - beq _020B79F0 - mov r0, r6 - bl FUN_020B7AB8 -_020B79F0: - ldrb r0, [r5, #0x1] - add r4, r4, #0x1 - cmp r4, r0 - blo _020B79C8 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B79A4 - - arm_func_start FUN_020B7A04 -FUN_020B7A04: ; 0x020B7A04 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x8] - mov r10, r1 - ldrh r1, [r0, r2] - add r9, r0, r2 - mov r11, #0x1 - add r8, r9, r1 - ldrb r0, [r8, #0x1] - mov r7, #0x0 - cmp r0, #0x0 - bls _020B7AAC - mov r6, r7 - mov r4, r7 - add r5, r10, #0x3c -_020B7A40: - ldrh r1, [r8, #0x6] - mov r0, r5 - add r2, r8, r1 - ldrh r1, [r2, #0x2] - add r1, r2, r1 - add r1, r1, r6 - bl FUN_020BC2A0 - movs r3, r0 - beq _020B7A94 - ldrh r1, [r8, #0x6] - ldrh r0, [r8, r1] - add r1, r8, r1 - add r1, r1, #0x4 - mla r1, r0, r7, r1 - ldrb r0, [r1, #0x3] - ands r0, r0, #0x1 - bne _020B7A98 - mov r0, r9 - mov r2, r10 - bl FUN_020B7B40 - b _020B7A98 -_020B7A94: - mov r11, r4 -_020B7A98: - ldrb r0, [r8, #0x1] - add r7, r7, #0x1 - add r6, r6, #0x10 - cmp r7, r0 - blo _020B7A40 -_020B7AAC: - mov r0, r11 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B7A04 - - arm_func_start FUN_020B7AB8 -FUN_020B7AB8: ; 0x020B7AB8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldrh r4, [r1, #0x0] - ldrb r2, [r1, #0x2] - mov r3, #0x0 - add r12, r0, r4 - cmp r2, #0x0 - bls _020B7B28 - add r2, r0, #0x4 - mov r5, #0x1000 - ldr lr, _020B7B3C ; =0xC00F0000 -_020B7AE4: - ldrh r7, [r0, #0xa] - ldrb r4, [r12, r3] - add r3, r3, #0x1 - ldrh r6, [r2, r7] - add r7, r2, r7 - mla r4, r6, r4, r7 - ldr r4, [r4, #0x4] - add r6, r0, r4 - ldr r4, [r6, #0x14] - and r4, r4, lr - str r4, [r6, #0x14] - str r5, [r6, #0x24] - ldr r4, [r6, #0x24] - str r4, [r6, #0x28] - ldrb r4, [r1, #0x2] - cmp r3, r4 - blo _020B7AE4 -_020B7B28: - ldrb r0, [r1, #0x3] - bic r0, r0, #0x1 - strb r0, [r1, #0x3] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B7B3C: .word 0xC00F0000 - arm_func_end FUN_020B7AB8 - - arm_func_start FUN_020B7B40 -FUN_020B7B40: ; 0x020B7B40 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r11, r1 - mov r9, r3 - ldr r1, [r9, #0x0] - mov r10, r0 - and r0, r1, #0x1c000000 - cmp r0, #0x14000000 - ldrh r3, [r11, #0x0] - ldrne r1, [r2, #0x8] - mov r8, #0x0 - add r0, r10, r3 - str r0, [sp, #0x4] - ldrne r0, _020B7C50 ; =0x0000FFFF - andne r0, r1, r0 - strne r0, [sp, #0x0] - ldreq r1, [r2, #0x18] - ldreq r0, _020B7C50 ; =0x0000FFFF - andeq r0, r1, r0 - streq r0, [sp, #0x0] - ldrb r0, [r11, #0x2] - cmp r0, #0x0 - bls _020B7C3C - mov r4, #0x1000 - add r5, r10, #0x4 -_020B7BA4: - ldrh r6, [r10, #0xa] - ldr r0, [sp, #0x4] - ldr r1, [r9, #0x0] - ldrb r2, [r0, r8] - ldrh r3, [r5, r6] - ldr r0, [sp, #0x0] - add r6, r5, r6 - add r0, r1, r0 - mla r1, r3, r2, r6 - ldr r1, [r1, #0x4] - add r6, r10, r1 - ldr r1, [r6, #0x14] - orr r0, r1, r0 - str r0, [r6, #0x14] - ldr r3, [r9, #0x4] - ldr r0, _020B7C54 ; =0x000007FF - ldrh r1, [r6, #0x20] - and r2, r3, r0 - and r7, r0, r3, lsr #0xb - cmp r2, r1 - moveq r0, r4 - beq _020B7C08 - mov r0, r2, lsl #0xc - mov r1, r1, lsl #0xc - bl FX_Div -_020B7C08: - str r0, [r6, #0x24] - ldrh r1, [r6, #0x22] - cmp r7, r1 - moveq r0, r4 - beq _020B7C28 - mov r0, r7, lsl #0xc - mov r1, r1, lsl #0xc - bl FX_Div -_020B7C28: - str r0, [r6, #0x28] - ldrb r0, [r11, #0x2] - add r8, r8, #0x1 - cmp r8, r0 - blo _020B7BA4 -_020B7C3C: - ldrb r0, [r11, #0x3] - orr r0, r0, #0x1 - strb r0, [r11, #0x3] - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B7C50: .word 0x0000FFFF -_020B7C54: .word 0x000007FF - arm_func_end FUN_020B7B40 - - arm_func_start FUN_020B7C58 -FUN_020B7C58: ; 0x020B7C58 - ldrh r2, [r0, #0x32] - mov r1, #0x0 - bic r2, r2, #0x1 - strh r2, [r0, #0x32] - ldr r2, [r0, #0x2c] - str r1, [r0, #0x2c] - mov r0, r2 - bx lr - arm_func_end FUN_020B7C58 - - arm_func_start FUN_020B7C78 -FUN_020B7C78: ; 0x020B7C78 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r4, r1 - mov r5, r0 - beq _020B7C90 - bl GX_BeginLoadTexPltt -_020B7C90: - ldrh r2, [r5, #0x30] - ldr r0, [r5, #0x38] - ldr r3, [r5, #0x2c] - ldr r1, _020B7CD8 ; =0x0000FFFF - add r0, r5, r0 - and r1, r3, r1 - mov r1, r1, lsl #0x3 - mov r2, r2, lsl #0x3 - bl GX_LoadTexPltt - ldrh r0, [r5, #0x32] - cmp r4, #0x0 - addeq sp, sp, #0x4 - orr r0, r0, #0x1 - strh r0, [r5, #0x32] - ldmeqia sp!, {r4-r5,pc} - bl GX_EndLoadTexPltt - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B7CD8: .word 0x0000FFFF - arm_func_end FUN_020B7C78 - - arm_func_start FUN_020B7CDC -FUN_020B7CDC: ; 0x020B7CDC - str r1, [r0, #0x2c] - bx lr - arm_func_end FUN_020B7CDC - - arm_func_start FUN_020B7CE4 -FUN_020B7CE4: ; 0x020B7CE4 - ldrh r0, [r0, #0x30] - mov r0, r0, lsl #0x3 - bx lr - arm_func_end FUN_020B7CE4 - - arm_func_start FUN_020B7CF0 -FUN_020B7CF0: ; 0x020B7CF0 - ldrh r12, [r0, #0x10] - mov r3, #0x0 - bic r12, r12, #0x1 - strh r12, [r0, #0x10] - ldrh r12, [r0, #0x20] - bic r12, r12, #0x1 - strh r12, [r0, #0x20] - ldr r12, [r0, #0x8] - str r12, [r1, #0x0] - str r3, [r0, #0x8] - ldr r1, [r0, #0x18] - str r1, [r2, #0x0] - str r3, [r0, #0x18] - bx lr - arm_func_end FUN_020B7CF0 - - arm_func_start FUN_020B7D28 -FUN_020B7D28: ; 0x020B7D28 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - movs r8, r1 - mov r9, r0 - beq _020B7D40 - bl GX_BeginLoadTex -_020B7D40: - ldrh r0, [r9, #0xc] - movs r2, r0, lsl #0x3 - beq _020B7D74 - ldr r1, [r9, #0x8] - ldr r0, _020B7DF4 ; =0x0000FFFF - ldr r3, [r9, #0x14] - and r1, r1, r0 - add r0, r9, r3 - mov r1, r1, lsl #0x3 - bl GX_LoadTex - ldrh r0, [r9, #0x10] - orr r0, r0, #0x1 - strh r0, [r9, #0x10] -_020B7D74: - ldrh r0, [r9, #0x1c] - movs r7, r0, lsl #0x3 - beq _020B7DDC - ldr r1, [r9, #0x18] - ldr r0, _020B7DF4 ; =0x0000FFFF - ldr r3, [r9, #0x24] - and r4, r1, r0 - mov r5, r4, lsl #0x3 - ldr r6, [r9, #0x28] - mov r1, r5 - mov r2, r7 - add r0, r9, r3 - add r6, r9, r6 - bl GX_LoadTex - ldr r0, _020B7DF8 ; =0x0001FFFF - and r1, r5, #0x40000 - and r0, r0, r4, lsl #0x3 - mov r0, r0, lsr #0x1 - add r2, r0, #0x20000 - mov r0, r6 - add r1, r2, r1, lsr #0x2 - mov r2, r7, lsr #0x1 - bl GX_LoadTex - ldrh r0, [r9, #0x20] - orr r0, r0, #0x1 - strh r0, [r9, #0x20] -_020B7DDC: - cmp r8, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,pc} - bl GX_EndLoadTex - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020B7DF4: .word 0x0000FFFF -_020B7DF8: .word 0x0001FFFF - arm_func_end FUN_020B7D28 - - arm_func_start FUN_020B7DFC -FUN_020B7DFC: ; 0x020B7DFC - cmp r1, #0x0 - strne r1, [r0, #0x8] - cmp r2, #0x0 - strne r2, [r0, #0x18] - bx lr - arm_func_end FUN_020B7DFC - - arm_func_start FUN_020B7E10 -FUN_020B7E10: ; 0x020B7E10 - ldrh r0, [r0, #0x1c] - mov r0, r0, lsl #0x3 - bx lr - arm_func_end FUN_020B7E10 - - arm_func_start FUN_020B7E1C -FUN_020B7E1C: ; 0x020B7E1C - ldrh r0, [r0, #0xc] - mov r0, r0, lsl #0x3 - bx lr - arm_func_end FUN_020B7E1C - - arm_func_start FUN_020B7E28 -FUN_020B7E28: ; 0x020B7E28 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - add r0, r5, #0x8 - mov r4, r1 - bl FUN_020B7E88 - cmp r0, #0x0 - bne _020B7E74 - mov r1, r4 - add r0, r5, #0x10 - bl FUN_020B7E88 - cmp r0, #0x0 - bne _020B7E74 - mov r1, r4 - add r0, r5, #0x18 - bl FUN_020B7E88 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} -_020B7E74: - ldr r0, [r5, #0x0] - orr r0, r0, #0x10 - str r0, [r5, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7E28 - - arm_func_start FUN_020B7E88 -FUN_020B7E88: ; 0x020B7E88 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - moveq r0, #0x0 - bxeq lr - cmp r2, r1 - bne _020B7EB8 - ldr r3, [r2, #0x10] - mov r2, #0x0 - str r3, [r0, #0x0] - str r2, [r1, #0x10] - mov r0, #0x1 - bx lr -_020B7EB8: - ldr r3, [r2, #0x10] - cmp r3, #0x0 - beq _020B7EF4 -_020B7EC4: - cmp r3, r1 - bne _020B7EE4 - ldr r1, [r3, #0x10] - mov r0, #0x0 - str r1, [r2, #0x10] - str r0, [r3, #0x10] - mov r0, #0x1 - bx lr -_020B7EE4: - mov r2, r3 - ldr r3, [r3, #0x10] - cmp r3, #0x0 - bne _020B7EC4 -_020B7EF4: - mov r0, #0x0 - bx lr - arm_func_end FUN_020B7E88 - - arm_func_start FUN_020B7EFC -FUN_020B7EFC: ; 0x020B7EFC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - ldr r2, [r4, #0x8] - mov r5, r0 - ldrb r0, [r2, #0x0] - cmp r0, #0x4a - beq _020B7F50 - cmp r0, #0x4d - beq _020B7F34 - cmp r0, #0x56 - beq _020B7F6C - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020B7F34: - add r0, r5, #0x3c - bl FUN_020B7F88 - mov r1, r4 - add r0, r5, #0x8 - bl FUN_020B7FF8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020B7F50: - add r0, r5, #0x44 - bl FUN_020B7F88 - mov r1, r4 - add r0, r5, #0x10 - bl FUN_020B7FF8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020B7F6C: - add r0, r5, #0x4c - bl FUN_020B7F88 - mov r1, r4 - add r0, r5, #0x18 - bl FUN_020B7FF8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7EFC - - arm_func_start FUN_020B7F88 -FUN_020B7F88: ; 0x020B7F88 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - mov r3, #0x1 - mov r4, #0x0 -_020B7FA4: - ldrb r2, [r1, #0x19] - mov r5, r4 - cmp r2, #0x0 - ble _020B7FE4 -_020B7FB4: - add r2, r1, r5, lsl #0x1 - ldrh r2, [r2, #0x1a] - ands r2, r2, #0x100 - movne lr, r5, asr #0x5 - andne r2, r5, #0x1f - ldrne r12, [r0, lr, lsl #0x2] - add r5, r5, #0x1 - orrne r2, r12, r3, lsl r2 - strne r2, [r0, lr, lsl #0x2] - ldrb r2, [r1, #0x19] - cmp r5, r2 - blt _020B7FB4 -_020B7FE4: - ldr r1, [r1, #0x10] - cmp r1, #0x0 - bne _020B7FA4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7F88 - - arm_func_start FUN_020B7FF8 -FUN_020B7FF8: ; 0x020B7FF8 - ldr r12, [r0, #0x0] - cmp r12, #0x0 - streq r1, [r0, #0x0] - bxeq lr - ldr r3, [r12, #0x10] - cmp r3, #0x0 - bne _020B8058 - ldrb r3, [r12, #0x18] - ldrb r2, [r1, #0x18] - cmp r3, r2 - bls _020B8050 - ldr r2, [r1, #0x10] - mov r3, r1 - cmp r2, #0x0 - beq _020B8044 -_020B8034: - ldr r3, [r3, #0x10] - ldr r2, [r3, #0x10] - cmp r2, #0x0 - bne _020B8034 -_020B8044: - str r12, [r3, #0x10] - str r1, [r0, #0x0] - bx lr -_020B8050: - str r1, [r12, #0x10] - bx lr -_020B8058: - cmp r3, #0x0 - beq _020B80AC - ldrb r2, [r1, #0x18] -_020B8064: - ldrb r0, [r3, #0x18] - cmp r0, r2 - blo _020B809C - ldr r0, [r1, #0x10] - mov r2, r1 - cmp r0, #0x0 - beq _020B8090 -_020B8080: - ldr r2, [r2, #0x10] - ldr r0, [r2, #0x10] - cmp r0, #0x0 - bne _020B8080 -_020B8090: - str r1, [r12, #0x10] - str r3, [r2, #0x10] - bx lr -_020B809C: - mov r12, r3 - ldr r3, [r3, #0x10] - cmp r3, #0x0 - bne _020B8064 -_020B80AC: - str r1, [r12, #0x10] - bx lr - arm_func_end FUN_020B7FF8 - - arm_func_start FUN_020B80B4 -FUN_020B80B4: ; 0x020B80B4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - mov r1, r5 - mov r0, #0x0 - mov r2, #0x54 - bl MIi_CpuClear32 - ldr r0, _020B8104 ; =UNK_021065B4 - ldr r1, _020B8108 ; =UNK_021065B0 - ldr r2, [r0, #0x0] - ldr r0, _020B810C ; =UNK_021065AC - str r2, [r5, #0xc] - ldr r1, [r1, #0x0] - str r1, [r5, #0x14] - ldr r0, [r0, #0x0] - str r0, [r5, #0x1c] - str r4, [r5, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020B8104: .word UNK_021065B4 -_020B8108: .word UNK_021065B0 -_020B810C: .word UNK_021065AC - arm_func_end FUN_020B80B4 - - arm_func_start FUN_020B8110 -FUN_020B8110: ; 0x020B8110 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r12, #0x0 - str r12, [r0, #0x0] - str r1, [r0, #0x8] - str r12, [r0, #0x10] - mov r4, #0x7f - strb r4, [r0, #0x18] - mov r4, #0x1000 - str r4, [r0, #0x4] - ldr lr, _020B81A4 ; =UNK_02106594 - str r3, [r0, #0x14] - ldr r6, [lr, #0x0] - cmp r6, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r7,pc} - ldrb r7, [r1, #0x0] - ldr r4, _020B81A8 ; =UNK_021065B8 -_020B8158: - ldrb r3, [r4, r12, lsl #0x3] - mov r5, r12, lsl #0x3 - cmp r7, r3 - bne _020B8190 - add r3, r4, r5 - ldrh lr, [r1, #0x2] - ldrh r3, [r3, #0x2] - cmp lr, r3 - bne _020B8190 - ldr r3, _020B81AC ; =UNK_021065BC - ldr r3, [r3, r5] - blx r3 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} -_020B8190: - add r12, r12, #0x1 - cmp r12, r6 - blo _020B8158 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B81A4: .word UNK_02106594 -_020B81A8: .word UNK_021065B8 -_020B81AC: .word UNK_021065BC - arm_func_end FUN_020B8110 - - arm_func_start FUN_020B81B0 -FUN_020B81B0: ; 0x020B81B0 - ldrb r0, [r0, #0x0] - cmp r0, #0x4a - beq _020B81E4 - cmp r0, #0x4d - beq _020B81D0 - cmp r0, #0x56 - beq _020B81E4 - b _020B81F8 -_020B81D0: - ldrb r0, [r1, #0x18] - mov r0, r0, lsl #0x1 - add r0, r0, #0x1c - bic r0, r0, #0x3 - bx lr -_020B81E4: - ldrb r0, [r1, #0x17] - mov r0, r0, lsl #0x1 - add r0, r0, #0x1c - bic r0, r0, #0x3 - bx lr -_020B81F8: - mov r0, #0x0 - bx lr - arm_func_end FUN_020B81B0 - - arm_func_start FUN_020B8200 -FUN_020B8200: ; 0x020B8200 - cmp r0, #0x0 - ldrne ip, _020B8260 ; =UNK_021CED18 - ldrne r12, [r12, #0xa0] - andne r12, r12, #0xff - strne r12, [r0, #0x0] - cmp r1, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 - ldrne r0, [r0, #0xa0] - movne r0, r0, lsr #0x8 - andne r0, r0, #0xff - strne r0, [r1, #0x0] - cmp r2, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 - ldrne r0, [r0, #0xa0] - movne r0, r0, lsr #0x10 - andne r0, r0, #0xff - strne r0, [r2, #0x0] - cmp r3, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 - ldrne r0, [r0, #0xa0] - movne r0, r0, lsr #0x18 - andne r0, r0, #0xff - strne r0, [r3, #0x0] - bx lr - .balign 4 -_020B8260: .word UNK_021CED18 - arm_func_end FUN_020B8200 - - arm_func_start FUN_020B8264 -FUN_020B8264: ; 0x020B8264 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020B829C ; =UNK_021CED18 - ldr r0, [r0, #0xfc] - ands r0, r0, #0x80 - bne _020B8290 - bl FUN_020B82E4 - ldr r0, _020B829C ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - orr r1, r1, #0x80 - str r1, [r0, #0xfc] -_020B8290: - ldr r0, _020B82A0 ; =UNK_021CEE78 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B829C: .word UNK_021CED18 -_020B82A0: .word UNK_021CEE78 - arm_func_end FUN_020B8264 - - arm_func_start FUN_020B82A4 -FUN_020B82A4: ; 0x020B82A4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020B82DC ; =UNK_021CED18 - ldr r0, [r0, #0xfc] - ands r0, r0, #0x80 - bne _020B82D0 - bl FUN_020B82E4 - ldr r0, _020B82DC ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - orr r1, r1, #0x80 - str r1, [r0, #0xfc] -_020B82D0: - ldr r0, _020B82E0 ; =UNK_021CEE48 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B82DC: .word UNK_021CED18 -_020B82E0: .word UNK_021CEE48 - arm_func_end FUN_020B82A4 - - arm_func_start FUN_020B82E4 -FUN_020B82E4: ; 0x020B82E4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020B8330 ; =UNK_021CEDD4 - ldr r1, _020B8334 ; =UNK_021CED64 - ldr r2, _020B8338 ; =UNK_021CEE48 - bl MTX_Concat43 - ldr r3, _020B833C ; =UNK_021CED18 - ldr r0, _020B8338 ; =UNK_021CEE48 - ldr r2, [r3, #0xf4] - mov r1, r0 - str r2, [sp, #0x0] - ldr r2, [r3, #0xec] - ldr r3, [r3, #0xf0] - bl MTX_ScaleApply43 - ldr r0, _020B8338 ; =UNK_021CEE48 - ldr r1, _020B8340 ; =UNK_021CEE78 - bl MTX_Inverse43 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B8330: .word UNK_021CEDD4 -_020B8334: .word UNK_021CED64 -_020B8338: .word UNK_021CEE48 -_020B833C: .word UNK_021CED18 -_020B8340: .word UNK_021CEE78 - arm_func_end FUN_020B82E4 - - arm_func_start FUN_020B8344 -FUN_020B8344: ; 0x020B8344 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020B8384 ; =UNK_021CED18 - ldr r0, [r0, #0xfc] - ands r0, r0, #0x8 - bne _020B8378 - ldr r0, _020B8388 ; =UNK_021CED64 - ldr r1, _020B838C ; =UNK_021CEE18 - bl MTX_Inverse43 - ldr r0, _020B8384 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - orr r1, r1, #0x8 - str r1, [r0, #0xfc] -_020B8378: - ldr r0, _020B838C ; =UNK_021CEE18 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B8384: .word UNK_021CED18 -_020B8388: .word UNK_021CED64 -_020B838C: .word UNK_021CEE18 - arm_func_end FUN_020B8344 - - arm_func_start FUN_020B8390 -FUN_020B8390: ; 0x020B8390 - orr r0, r0, r1, lsl #0x4 - ldr r1, [sp, #0x4] - orr r0, r0, r2, lsl #0x6 - orr r0, r1, r0 - ldr r2, [sp, #0x0] - orr r1, r0, r3, lsl #0x18 - ldr r0, _020B83B8 ; =UNK_021CED18 - orr r1, r1, r2, lsl #0x10 - str r1, [r0, #0x9c] - bx lr - .balign 4 -_020B83B8: .word UNK_021CED18 - arm_func_end FUN_020B8390 - - arm_func_start FUN_020B83BC -FUN_020B83BC: ; 0x020B83BC - cmp r2, #0x0 - movne r2, #0x1 - orr r1, r0, r1, lsl #0x10 - moveq r2, #0x0 - ldr r0, _020B83DC ; =UNK_021CED18 - orr r1, r1, r2, lsl #0xf - str r1, [r0, #0x98] - bx lr - .balign 4 -_020B83DC: .word UNK_021CED18 - arm_func_end FUN_020B83BC - - arm_func_start FUN_020B83E0 -FUN_020B83E0: ; 0x020B83E0 - cmp r2, #0x0 - movne r2, #0x1 - orr r1, r0, r1, lsl #0x10 - moveq r2, #0x0 - ldr r0, _020B8400 ; =UNK_021CED18 - orr r1, r1, r2, lsl #0xf - str r1, [r0, #0x94] - bx lr - .balign 4 -_020B8400: .word UNK_021CED18 - arm_func_end FUN_020B83E0 - - arm_func_start FUN_020B8404 -FUN_020B8404: ; 0x020B8404 - ldr r2, _020B8414 ; =UNK_021CEDC0 - orr r1, r1, r0, lsl #0x1e - str r1, [r2, r0, lsl #0x2] - bx lr - .balign 4 -_020B8414: .word UNK_021CEDC0 - arm_func_end FUN_020B8404 - - arm_func_start FUN_020B8418 -FUN_020B8418: ; 0x020B8418 - stmdb sp!, {r4,lr} - ldr ip, _020B8444 ; =0x000003FF - ldr lr, _020B8448 ; =UNK_021CED98 - and r4, r12, r1, asr #0x3 - and r1, r12, r2, asr #0x3 - and r2, r12, r3, asr #0x3 - orr r1, r4, r1, lsl #0xa - orr r1, r1, r2, lsl #0x14 - orr r1, r1, r0, lsl #0x1e - str r1, [lr, r0, lsl #0x2] - ldmia sp!, {r4,pc} - .balign 4 -_020B8444: .word 0x000003FF -_020B8448: .word UNK_021CED98 - arm_func_end FUN_020B8418 - - arm_func_start FUN_020B844C -FUN_020B844C: ; 0x020B844C - ldr r3, _020B846C ; =UNK_021CEE04 - ldmia r0, {r0-r2} - stmia r3, {r0-r2} - ldr r0, _020B8470 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - bic r1, r1, #0xa4 - str r1, [r0, #0xfc] - bx lr - .balign 4 -_020B846C: .word UNK_021CEE04 -_020B8470: .word UNK_021CED18 - arm_func_end FUN_020B844C - - arm_func_start FUN_020B8474 -FUN_020B8474: ; 0x020B8474 - ldr r3, _020B8494 ; =UNK_021CEDF8 - ldmia r0, {r0-r2} - stmia r3, {r0-r2} - ldr r0, _020B8498 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - bic r1, r1, #0xa4 - str r1, [r0, #0xfc] - bx lr - .balign 4 -_020B8494: .word UNK_021CEDF8 -_020B8498: .word UNK_021CED18 - arm_func_end FUN_020B8474 - - arm_func_start FUN_020B849C -FUN_020B849C: ; 0x020B849C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020B84D4 ; =UNK_021CED18 - mov r2, #0x3e - ldr r0, [r1], #0x4 - bl FUN_020BB1C0 - ldr r0, _020B84D4 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - bic r1, r1, #0x1 - str r1, [r0, #0xfc] - bic r1, r1, #0x2 - str r1, [r0, #0xfc] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020B84D4: .word UNK_021CED18 - arm_func_end FUN_020B849C - - arm_func_start FUN_020B84D8 -FUN_020B84D8: ; 0x020B84D8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r8, _020B85F4 ; =0x17101610 - ldr r1, _020B85F8 ; =UNK_021CED18 - ldr r5, _020B85FC ; =0x32323232 - ldr r4, _020B8600 ; =0x60293130 - ldr r3, _020B8604 ; =0x33333333 - ldr r2, _020B8608 ; =0x002A1B19 - mov r7, #0x0 - mov r6, #0x2 - ldr r0, _020B860C ; =UNK_021CED64 - str r8, [r1, #0x0] - str r7, [r1, #0x4] - str r6, [r1, #0x48] - str r5, [r1, #0x7c] - str r4, [r1, #0x90] - str r3, [r1, #0xa4] - str r2, [r1, #0xb8] - bl MTX_Identity43_ - ldr r0, _020B8610 ; =UNK_021CED20 - bl MTX_Identity44_ - mov r2, r7 - ldr r1, _020B85F8 ; =UNK_021CED18 - ldr r7, _020B8614 ; =0x4210C210 - ldr r0, _020B8618 ; =0x40000200 - ldr lr, _020B861C ; =0x2D8B62D8 - ldr sb, _020B8620 ; =0x800001FF - ldr r8, _020B8624 ; =0xC0080000 - ldr r6, _020B8628 ; =0x001F008F - ldr r5, _020B862C ; =0xBFFF0000 - ldr r4, _020B8630 ; =0x00007FFF - ldr ip, _020B8634 ; =0x800003E0 - ldr r3, _020B8638 ; =0xC0007C00 - str r0, [r1, #0x84] - str lr, [r1, #0x80] - mov lr, #0x4000001f - ldr r0, _020B863C ; =UNK_021CEDD4 - str r9, [r1, #0x88] - str r8, [r1, #0x8c] - str r7, [r1, #0x94] - str r7, [r1, #0x98] - str r6, [r1, #0x9c] - str r5, [r1, #0xa0] - str r4, [r1, #0xa8] - str lr, [r1, #0xac] - str r12, [r1, #0xb0] - str r3, [r1, #0xb4] - str r2, [r1, #0xe0] - str r2, [r1, #0xe4] - str r2, [r1, #0xe8] - bl MTX_Identity33_ - mov r3, #0x1000 - ldr r0, _020B85F8 ; =UNK_021CED18 - mov r2, #0x0 - rsb r1, r3, #0x0 - str r3, [r0, #0xec] - str r3, [r0, #0xf0] - str r3, [r0, #0xf4] - str r2, [r0, #0xf8] - str r2, [r0, #0xfc] - str r2, [r0, #0x248] - str r2, [r0, #0x244] - str r2, [r0, #0x240] - str r2, [r0, #0x254] - str r2, [r0, #0x24c] - str r3, [r0, #0x250] - str r2, [r0, #0x25c] - str r2, [r0, #0x258] - str r1, [r0, #0x260] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020B85F4: .word 0x17101610 -_020B85F8: .word UNK_021CED18 -_020B85FC: .word 0x32323232 -_020B8600: .word 0x60293130 -_020B8604: .word 0x33333333 -_020B8608: .word 0x002A1B19 -_020B860C: .word UNK_021CED64 -_020B8610: .word UNK_021CED20 -_020B8614: .word 0x4210C210 -_020B8618: .word 0x40000200 -_020B861C: .word 0x2D8B62D8 -_020B8620: .word 0x800001FF -_020B8624: .word 0xC0080000 -_020B8628: .word 0x001F008F -_020B862C: .word 0xBFFF0000 -_020B8630: .word 0x00007FFF -_020B8634: .word 0x800003E0 -_020B8638: .word 0xC0007C00 -_020B863C: .word UNK_021CEDD4 - arm_func_end FUN_020B84D8 - - arm_func_start FUN_020B8640 -FUN_020B8640: ; 0x020B8640 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r7, r0 - mov r0, #0x0 - mov r6, r1 - str r0, [r7, #0x0] - add r4, sp, #0x0 - mov r5, r2, lsl #0x1 - mov r8, #0x1 -_020B8664: - add r1, r5, r6 - ldrh r2, [r1, #0x1a] - ands r1, r2, #0x100 - beq _020B869C - ldr r3, [r6, #0xc] - mov r0, r4 - mov r1, r6 - and r2, r2, #0xff - blx r3 - ldr r2, [r7, #0x0] - ldr r1, [sp, #0x0] - mov r0, r8 - orr r1, r2, r1 - str r1, [r7, #0x0] -_020B869C: - ldr r6, [r6, #0x10] - cmp r6, #0x0 - bne _020B8664 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B8640 - - arm_func_start FUN_020B86B0 -FUN_020B86B0: ; 0x020B86B0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x5c - mov r9, r1 - ldr r3, [r9, #0x10] - mov r10, r0 - mov r8, r2 - cmp r3, #0x0 - bne _020B8704 - add r2, r9, r8, lsl #0x1 - ldrh r4, [r2, #0x1a] - and r2, r4, #0x300 - cmp r2, #0x100 - addne sp, sp, #0x5c - movne r0, #0x0 - ldmneia sp!, {r4-r11,pc} - ldr r3, [r9, #0xc] - and r2, r4, #0xff - blx r3 - add sp, sp, #0x5c - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020B8704: - mov r7, #0x0 - mov r3, r7 - mov r4, r9 - mov r2, r8, lsl #0x1 -_020B8714: - add r0, r2, r4 - ldrh r0, [r0, #0x1a] - and r0, r0, #0x300 - cmp r0, #0x100 - ldreq r0, [r4, #0x4] - moveq r1, r4 - ldr r4, [r4, #0x10] - addeq r7, r7, r0 - addeq r3, r3, #0x1 - cmp r4, #0x0 - bne _020B8714 - cmp r7, #0x0 - addeq sp, sp, #0x5c - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,pc} - cmp r3, #0x1 - bne _020B877C - add r0, r1, r8, lsl #0x1 - ldrh r2, [r0, #0x1a] - ldr r3, [r1, #0xc] - mov r0, r10 - and r2, r2, #0xff - blx r3 - add sp, sp, #0x5c - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020B877C: - mov r1, r10 - mov r0, #0x0 - mov r2, #0x58 - bl MIi_CpuClearFast - mvn r0, #0x0 - str r0, [r10, #0x0] - add r5, sp, #0x0 - add r4, sp, #0x4 - add r11, sp, #0x10 -_020B87A0: - add r0, r9, r8, lsl #0x1 - ldrh r2, [r0, #0x1a] - and r0, r2, #0x300 - cmp r0, #0x100 - bne _020B8948 - ldr r0, [r9, #0x4] - cmp r0, #0x0 - ble _020B8948 - ldr r3, [r9, #0xc] - mov r0, r5 - mov r1, r9 - and r2, r2, #0xff - blx r3 - cmp r7, #0x1000 - ldreq r6, [r9, #0x4] - beq _020B87F0 - ldr r0, [r9, #0x4] - mov r1, r7 - bl FX_Div - mov r6, r0 -_020B87F0: - ldr r3, [sp, #0x0] - mov r1, r4 - mov r2, r6 - add r0, r10, #0x4 - and r3, r3, #0x1 - bl FUN_020B8998 - ldr r1, [sp, #0x0] - add r0, r10, #0x10 - and r3, r1, #0x8 - mov r1, r11 - mov r2, r6 - bl FUN_020B8998 - ldr r3, [sp, #0x0] - add r0, r10, #0x1c - add r1, sp, #0x1c - mov r2, r6 - and r3, r3, #0x10 - bl FUN_020B8998 - ldr r0, [sp, #0x0] - ands r0, r0, #0x4 - bne _020B8898 - ldr r0, [sp, #0x4c] - ldr r2, [r10, #0x4c] - smull r1, r0, r6, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - add r0, r2, r1 - str r0, [r10, #0x4c] - ldr r0, [sp, #0x50] - ldr r2, [r10, #0x50] - smull r1, r0, r6, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - add r0, r2, r1 - str r0, [r10, #0x50] - ldr r0, [sp, #0x54] - ldr r2, [r10, #0x54] - smull r1, r0, r6, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - add r0, r2, r1 - str r0, [r10, #0x54] -_020B8898: - ldr r0, [sp, #0x0] - ands r0, r0, #0x2 - bne _020B8920 - ldr r0, [sp, #0x28] - ldr r1, [r10, #0x28] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x28] - ldr r0, [sp, #0x2c] - ldr r1, [r10, #0x2c] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x2c] - ldr r0, [sp, #0x30] - ldr r1, [r10, #0x30] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x30] - ldr r0, [sp, #0x34] - ldr r1, [r10, #0x34] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x34] - ldr r0, [sp, #0x38] - ldr r1, [r10, #0x38] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x38] - ldr r0, [sp, #0x3c] - ldr r1, [r10, #0x3c] - mul r0, r6, r0 - add r0, r1, r0, asr #0xc - str r0, [r10, #0x3c] - b _020B8938 -_020B8920: - ldr r0, [r10, #0x28] - add r0, r0, r6 - str r0, [r10, #0x28] - ldr r0, [r10, #0x38] - add r0, r0, r6 - str r0, [r10, #0x38] -_020B8938: - ldr r1, [r10, #0x0] - ldr r0, [sp, #0x0] - and r0, r1, r0 - str r0, [r10, #0x0] -_020B8948: - ldr r9, [r9, #0x10] - cmp r9, #0x0 - bne _020B87A0 - add r0, r10, #0x28 - add r1, r10, #0x34 - add r2, r10, #0x40 - bl VEC_CrossProduct - add r0, r10, #0x28 - mov r1, r0 - bl VEC_Normalize - add r0, r10, #0x40 - mov r1, r0 - bl VEC_Normalize - add r0, r10, #0x40 - add r1, r10, #0x28 - add r2, r10, #0x34 - bl VEC_CrossProduct - mov r0, #0x1 - add sp, sp, #0x5c - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B86B0 - - arm_func_start FUN_020B8998 -FUN_020B8998: ; 0x020B8998 - cmp r3, #0x0 - beq _020B89C8 - ldr r1, [r0, #0x0] - add r1, r1, r2 - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, r2 - str r1, [r0, #0x4] - ldr r1, [r0, #0x8] - add r1, r1, r2 - str r1, [r0, #0x8] - bx lr -_020B89C8: - ldr r3, [r1, #0x0] - ldr r12, [r0, #0x0] - mul r3, r2, r3 - add r3, r12, r3, asr #0xc - str r3, [r0, #0x0] - ldr r3, [r1, #0x4] - ldr r12, [r0, #0x4] - mul r3, r2, r3 - add r3, r12, r3, asr #0xc - str r3, [r0, #0x4] - ldr r1, [r1, #0x8] - ldr r3, [r0, #0x8] - mul r1, r2, r1 - add r1, r3, r1, asr #0xc - str r1, [r0, #0x8] - bx lr - arm_func_end FUN_020B8998 - - arm_func_start FUN_020B8A08 -FUN_020B8A08: ; 0x020B8A08 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r0 - mov r5, r1 - mov r0, #0x0 - mov r4, r2, lsl #0x1 - mov r7, #0x1 -_020B8A24: - add r1, r4, r5 - ldrh r2, [r1, #0x1a] - ands r1, r2, #0x100 - beq _020B8A4C - ldr r3, [r5, #0xc] - mov r0, r6 - mov r1, r5 - and r2, r2, #0xff - blx r3 - mov r0, r7 -_020B8A4C: - ldr r5, [r5, #0x10] - cmp r5, #0x0 - bne _020B8A24 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B8A08 - - arm_func_start FUN_020B8A60 -FUN_020B8A60: ; 0x020B8A60 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x80 - mov r5, r0 - ldr r1, [r5, #0x8] - ands r0, r1, #0x200 - bne _020B8DB4 - ands r0, r1, #0x1 - beq _020B8DB4 - add r0, sp, #0x10 - mov r1, #0x0 - bl FUN_020BB824 - mov r0, #0x1e - str r0, [sp, #0x0] - add r1, sp, #0x0 - mov r0, #0x13 - mov r2, #0x1 - bl FUN_020BB1C0 - ldr r2, [r5, #0xb0] - ldr r0, [r2, #0x10] - and r1, r0, #0xc0000000 - cmp r1, #0xc0000000 - beq _020B8AF0 - bic r0, r0, #0xc0000000 - str r0, [r2, #0x10] - ldr r2, [r5, #0xb0] - ldr r3, _020B8DC8 ; =UNK_02106630 - ldr r0, [r2, #0x10] - ldr r1, _020B8DCC ; =UNK_02106634 - orr r0, r0, #0xc0000000 - str r0, [r2, #0x10] - ldr r2, [r5, #0xb0] - ldr r0, [r3, #0x0] - ldr r4, [r2, #0x10] - mov r2, #0x1 - str r4, [r3, #0x4] - bl FUN_020BB1C0 -_020B8AF0: - ldr r0, [r5, #0x40] - cmp r0, #0x0 - ldrneb r4, [r5, #0x99] - moveq r4, #0x0 - cmp r4, #0x1 - bne _020B8B3C - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x40] - blx r1 - ldr r0, [r5, #0x40] - cmp r0, #0x0 - ldrneb r4, [r5, #0x99] - ldr r0, [r5, #0x8] - moveq r4, #0x0 - and r0, r0, #0x40 - b _020B8B40 -_020B8B3C: - mov r0, #0x0 -_020B8B40: - cmp r0, #0x0 - bne _020B8B84 - ldr r0, [r5, #0xb0] - ldr r1, _020B8DD0 ; =UNK_02106660 - ldrh r6, [r0, #0x2e] - ldrh r3, [r0, #0x2c] - mov r0, #0x16 - rsb r2, r6, #0x0 - mov lr, r3, lsl #0xf - mov r12, r2, lsl #0xf - mov r3, r6, lsl #0xf - mov r2, #0x10 - str lr, [r1, #0x0] - str r12, [r1, #0x14] - str lr, [r1, #0x30] - str r3, [r1, #0x34] - bl FUN_020BB1C0 -_020B8B84: - cmp r4, #0x2 - bne _020B8BC0 - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x40] - blx r1 - ldr r0, [r5, #0x40] - cmp r0, #0x0 - ldrneb r4, [r5, #0x99] - ldr r0, [r5, #0x8] - moveq r4, #0x0 - and r0, r0, #0x40 - b _020B8BC4 -_020B8BC0: - mov r0, #0x0 -_020B8BC4: - cmp r0, #0x0 - bne _020B8C28 - ldr r12, [r5, #0xd8] - ldr r0, [r5, #0x0] - ldrh r2, [r12, #0xa] - add r3, r12, #0x4 - ldrb r0, [r0, #0x1] - ldrh r1, [r3, r2] - add r2, r3, r2 - mla r0, r1, r0, r2 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrh r2, [r1, #0x1e] - ands r0, r2, #0x2000 - beq _020B8C28 - add r1, r1, #0x2c - ands r0, r2, #0x2 - addeq r1, r1, #0x8 - ands r0, r2, #0x4 - addeq r1, r1, #0x4 - ands r0, r2, #0x8 - addeq r1, r1, #0x8 - mov r0, #0x18 - mov r2, #0x10 - bl FUN_020BB1C0 -_020B8C28: - cmp r4, #0x3 - movne r0, #0x0 - bne _020B8C54 - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x40] - blx r1 - ldr r0, [r5, #0x8] - and r0, r0, #0x40 -_020B8C54: - cmp r0, #0x0 - bne _020B8D84 - ldr r0, _020B8DD4 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - ands r0, r1, #0x1 - beq _020B8CA0 - ldr r1, _020B8DD8 ; =UNK_021CEDF8 - mov r0, #0x1c - mov r2, #0x3 - bl FUN_020BB1C0 - ldr r1, _020B8DDC ; =UNK_021CEDD4 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - add r1, sp, #0x10 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - b _020B8CE0 -_020B8CA0: - ands r0, r1, #0x2 - beq _020B8CBC - add r1, sp, #0x10 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - b _020B8CE0 -_020B8CBC: - bl FUN_020B8344 - mov r1, r0 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - add r1, sp, #0x10 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 -_020B8CE0: - bl FUN_020BB394 - ldr r0, _020B8DE0 ; =0x04000440 - mov r2, #0x0 - ldr r1, _020B8DE4 ; =0x04000444 - str r2, [r0, #0x0] - ldr r0, _020B8DE8 ; =0x04000454 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - add r4, sp, #0x40 -_020B8D04: - mov r0, r4 - bl G3X_GetClipMtx - cmp r0, #0x0 - bne _020B8D04 - ldr r1, _020B8DEC ; =0x04000448 - mov r2, #0x1 - str r2, [r1, #0x0] - ldr r0, _020B8DE0 ; =0x04000440 - mov r2, #0x3 - str r2, [r0, #0x0] - add r1, sp, #0x40 - mov r0, #0x16 - mov r2, #0x10 - bl FUN_020BB1C0 - ldr r1, [sp, #0x70] - ldr r0, [sp, #0x74] - mov r2, r1, asr #0x4 - mov r1, r0, asr #0x4 - mov r0, r2, lsl #0x8 - mov r1, r1, lsl #0x8 - mov r0, r0, asr #0x10 - mov r1, r1, asr #0x10 - mov r0, r0, lsl #0x10 - mov r1, r1, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r1, lsr #0x10 - orr r3, r2, r0, lsl #0x10 - add r1, sp, #0x4 - mov r0, #0x22 - mov r2, #0x1 - str r3, [sp, #0x4] - bl FUN_020BB1C0 -_020B8D84: - mov r3, #0x2 - add r1, sp, #0x8 - mov r0, #0x10 - mov r2, #0x1 - str r3, [sp, #0x8] - bl FUN_020BB1C0 - mov r3, #0x1e - add r1, sp, #0xc - mov r0, #0x14 - mov r2, #0x1 - str r3, [sp, #0xc] - bl FUN_020BB1C0 -_020B8DB4: - ldr r0, [r5, #0x0] - add r0, r0, #0x3 - str r0, [r5, #0x0] - add sp, sp, #0x80 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020B8DC8: .word UNK_02106630 -_020B8DCC: .word UNK_02106634 -_020B8DD0: .word UNK_02106660 -_020B8DD4: .word UNK_021CED18 -_020B8DD8: .word UNK_021CEDF8 -_020B8DDC: .word UNK_021CEDD4 -_020B8DE0: .word 0x04000440 -_020B8DE4: .word 0x04000444 -_020B8DE8: .word 0x04000454 -_020B8DEC: .word 0x04000448 - arm_func_end FUN_020B8A60 - - arm_func_start FUN_020B8DF0 -FUN_020B8DF0: ; 0x020B8DF0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x44 - mov r7, r0 - ldr r1, [r7, #0x8] - ands r0, r1, #0x200 - bne _020B90E8 - ands r0, r1, #0x1 - beq _020B90E8 - ldr r2, [r7, #0xb0] - ldr r0, [r2, #0x10] - and r1, r0, #0xc0000000 - cmp r1, #0x80000000 - beq _020B8E5C - bic r0, r0, #0xc0000000 - str r0, [r2, #0x10] - ldr r2, [r7, #0xb0] - ldr r3, _020B90FC ; =UNK_02106638 - ldr r0, [r2, #0x10] - ldr r1, _020B9100 ; =UNK_0210663C - orr r0, r0, #0x80000000 - str r0, [r2, #0x10] - ldr r2, [r7, #0xb0] - ldr r0, [r3, #0x0] - ldr r4, [r2, #0x10] - mov r2, #0x1 - str r4, [r3, #0x4] - bl FUN_020BB1C0 -_020B8E5C: - mov r0, #0x3 - str r0, [sp, #0x0] - add r1, sp, #0x0 - mov r0, #0x10 - mov r2, #0x1 - bl FUN_020BB1C0 - ldr r0, [r7, #0x3c] - cmp r0, #0x0 - ldrneb r6, [r7, #0x98] - moveq r6, #0x0 - cmp r6, #0x1 - bne _020B8EC0 - ldr r1, [r7, #0x8] - mov r0, r7 - bic r1, r1, #0x40 - str r1, [r7, #0x8] - ldr r1, [r7, #0x3c] - blx r1 - ldr r0, [r7, #0x3c] - cmp r0, #0x0 - ldrneb r6, [r7, #0x98] - ldr r0, [r7, #0x8] - moveq r6, #0x0 - and r0, r0, #0x40 - b _020B8EC4 -_020B8EC0: - mov r0, #0x0 -_020B8EC4: - cmp r0, #0x0 - bne _020B8F3C - ldr r0, [r7, #0xb0] - add r1, sp, #0x38 - ldrh r4, [r0, #0x2e] - ldrh r5, [r0, #0x2c] - mov r3, #0x10000 - rsb r0, r4, #0x0 - mov r12, r0, lsl #0xf - mov lr, r5, lsl #0xf - mov r0, #0x1b - mov r2, #0x3 - str lr, [sp, #0x38] - str r12, [sp, #0x3c] - str r3, [sp, #0x40] - bl FUN_020BB1C0 - mov r0, r5, lsl #0x13 - mov r1, r4, lsl #0x13 - mov r0, r0, asr #0x10 - mov r1, r1, asr #0x10 - mov r0, r0, lsl #0x10 - mov r1, r1, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r1, lsr #0x10 - orr r3, r2, r0, lsl #0x10 - add r1, sp, #0x4 - mov r0, #0x22 - mov r2, #0x1 - str r3, [sp, #0x4] - bl FUN_020BB1C0 -_020B8F3C: - cmp r6, #0x2 - bne _020B8F78 - ldr r1, [r7, #0x8] - mov r0, r7 - bic r1, r1, #0x40 - str r1, [r7, #0x8] - ldr r1, [r7, #0x3c] - blx r1 - ldr r0, [r7, #0x3c] - cmp r0, #0x0 - ldrneb r6, [r7, #0x98] - ldr r0, [r7, #0x8] - moveq r6, #0x0 - and r0, r0, #0x40 - b _020B8F7C -_020B8F78: - mov r0, #0x0 -_020B8F7C: - cmp r0, #0x0 - bne _020B8FE0 - ldr r4, [r7, #0xd8] - ldr r0, [r7, #0x0] - ldrh r2, [r4, #0xa] - add r3, r4, #0x4 - ldrb r0, [r0, #0x1] - ldrh r1, [r3, r2] - add r2, r3, r2 - mla r0, r1, r0, r2 - ldr r0, [r0, #0x4] - add r1, r4, r0 - ldrh r2, [r1, #0x1e] - ands r0, r2, #0x2000 - beq _020B8FE0 - add r1, r1, #0x2c - ands r0, r2, #0x2 - addeq r1, r1, #0x8 - ands r0, r2, #0x4 - addeq r1, r1, #0x4 - ands r0, r2, #0x8 - addeq r1, r1, #0x8 - mov r0, #0x18 - mov r2, #0x10 - bl FUN_020BB1C0 -_020B8FE0: - cmp r6, #0x3 - movne r0, #0x0 - bne _020B900C - ldr r1, [r7, #0x8] - mov r0, r7 - bic r1, r1, #0x40 - str r1, [r7, #0x8] - ldr r1, [r7, #0x3c] - blx r1 - ldr r0, [r7, #0x8] - and r0, r0, #0x40 -_020B900C: - cmp r0, #0x0 - bne _020B90D0 - mov r3, #0x2 - add r1, sp, #0x8 - mov r0, #0x10 - mov r2, #0x1 - str r3, [sp, #0x8] - bl FUN_020BB1C0 - add r1, sp, #0x14 - mov r0, #0x0 - bl FUN_020BB824 - mov r3, #0x3 - add r1, sp, #0xc - mov r0, #0x10 - mov r2, #0x1 - str r3, [sp, #0xc] - bl FUN_020BB1C0 - ldr r0, _020B9104 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - ands r0, r1, #0x1 - beq _020B9094 - ldr r1, _020B9108 ; =UNK_021CED64 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - ldr r1, _020B910C ; =UNK_021CEDD4 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - add r1, sp, #0x14 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - b _020B90D0 -_020B9094: - ands r0, r1, #0x2 - beq _020B90C0 - ldr r1, _020B9108 ; =UNK_021CED64 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - add r1, sp, #0x14 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - b _020B90D0 -_020B90C0: - add r1, sp, #0x14 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 -_020B90D0: - mov r3, #0x2 - add r1, sp, #0x10 - mov r0, #0x10 - mov r2, #0x1 - str r3, [sp, #0x10] - bl FUN_020BB1C0 -_020B90E8: - ldr r0, [r7, #0x0] - add r0, r0, #0x3 - str r0, [r7, #0x0] - add sp, sp, #0x44 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020B90FC: .word UNK_02106638 -_020B9100: .word UNK_0210663C -_020B9104: .word UNK_021CED18 -_020B9108: .word UNK_021CED64 -_020B910C: .word UNK_021CEDD4 - arm_func_end FUN_020B8DF0 - - arm_func_start FUN_020B9110 -FUN_020B9110: ; 0x020B9110 - stmdb sp!, {r4,lr} - sub sp, sp, #0x10 - mov r4, r0 - ldr r2, [r4, #0x8] - ands r0, r2, #0x100 - bne _020B9164 - ands r0, r2, #0x200 - bne _020B9164 - cmp r1, #0x0 - ldreq r0, [r4, #0xe0] - add r1, sp, #0x0 - streq r0, [sp, #0x8] - streq r0, [sp, #0x4] - streq r0, [sp, #0x0] - ldrne r0, [r4, #0xe4] - mov r2, #0x3 - strne r0, [sp, #0x8] - strne r0, [sp, #0x4] - strne r0, [sp, #0x0] - mov r0, #0x1b - bl FUN_020BB1C0 -_020B9164: - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - add sp, sp, #0x10 - ldmia sp!, {r4,pc} - arm_func_end FUN_020B9110 - - arm_func_start FUN_020B9178 -FUN_020B9178: ; 0x020B9178 - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldr r0, [r5, #0x34] - cmp r0, #0x0 - ldrneb r4, [r5, #0x96] - moveq r4, #0x0 - cmp r4, #0x1 - bne _020B91CC - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x34] - blx r1 - ldr r0, [r5, #0x34] - cmp r0, #0x0 - ldrneb r4, [r5, #0x96] - ldr r0, [r5, #0x8] - moveq r4, #0x0 - and r1, r0, #0x40 - b _020B91D0 -_020B91CC: - mov r1, #0x0 -_020B91D0: - ldr r0, [r5, #0x8] - ands r0, r0, #0x100 - bne _020B9228 - cmp r1, #0x0 - bne _020B9228 - ldr r0, [r5, #0x0] - ldrb r12, [r0, #0x1] - ldrb r3, [r0, #0x2] - ldrb lr, [r0, #0x3] - ldrb r2, [r0, #0x5] - ldrb r1, [r0, #0x6] - orr r3, r12, r3, lsl #0x8 - ldrb r6, [r0, #0x4] - orr r12, r3, lr, lsl #0x10 - ldrb r3, [r0, #0x7] - orr r1, r2, r1, lsl #0x8 - orr r6, r12, r6, lsl #0x18 - ldrb r2, [r0, #0x8] - orr r1, r1, r3, lsl #0x10 - add r0, r0, r6 - orr r1, r1, r2, lsl #0x18 - bl FUN_020BB2B0 -_020B9228: - cmp r4, #0x3 - bne _020B9248 - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x34] - blx r1 -_020B9248: - ldr r0, [r5, #0x0] - add r0, r0, #0x9 - str r0, [r5, #0x0] - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B9178 - - arm_func_start FUN_020B9258 -FUN_020B9258: ; 0x020B9258 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x8c - ldr r1, [r0, #0x4] - ldr r4, [r0, #0x0] - ldr r6, [r1, #0x4] - ldrb r2, [r4, #0x2] - ldr r3, [r6, #0x10] - mov r10, #0x0 - str r0, [sp, #0x0] - str r2, [sp, #0x8] - add r3, r6, r3 - add r1, sp, #0x34 - mov r0, r10 - mov r2, #0x54 - mov r9, r10 - str r3, [sp, #0x4] - add r8, r4, #0x3 - bl MIi_CpuClearFast - bl FUN_020BB394 - ldr r0, _020B98AC ; =0x04000440 - mov r7, r10 - str r7, [r0, #0x0] - mov r0, #0x1 - ldr r2, _020B98B0 ; =0x0400044C - ldr r1, _020B98B4 ; =0x04000454 - str r0, [r2, #0x0] - str r0, [sp, #0x10] - str r7, [r1, #0x0] - mov r1, #0x2 - ldr r0, _020B98AC ; =0x04000440 - str r1, [sp, #0x14] - str r1, [r0, #0x0] - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bls _020B96CC -_020B92E4: - ldrb r4, [r8, #0x1] - mov r0, #0x64 - ldr r3, _020B98B8 ; =UNK_021D0380 - mul r0, r4, r0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x0] - mov r1, r4, lsr #0x5 - add r0, r0, r1, lsl #0x2 - ldr r1, [sp, #0x10] - and r2, r4, #0x1f - mov r1, r1, lsl r2 - ldr r11, [r0, #0xcc] - ldr r2, [sp, #0xc] - ands r11, r1, r11 - add r6, r3, r2 - bne _020B9358 - ldr r3, [r0, #0xcc] - mov r2, #0x54 - orr r1, r3, r1 - str r1, [r0, #0xcc] - ldr r0, [sp, #0x4] - ldr r1, _020B98BC ; =0x04000450 - mla r0, r4, r2, r0 - ldrb r2, [r8, #0x0] - str r2, [r1, #0x0] - ldr r2, [sp, #0x10] - ldr r1, _020B98AC ; =0x04000440 - str r2, [r1, #0x0] - bl G3_MultMtx43 -_020B9358: - cmp r7, #0x0 - beq _020B9500 - ldr r2, [sp, #0x6c] - ldr r1, [r5, #0x0] - str r2, [sp, #0x18] - ldr r2, [sp, #0x70] - mov r0, r1, asr #0x1f - str r2, [sp, #0x1c] - ldr r2, [sp, #0x74] - ldr r12, [sp, #0x64] - str r2, [sp, #0x20] - ldr r2, [sp, #0x78] - ldr lr, [sp, #0x68] - str r2, [sp, #0x24] - ldr r2, [sp, #0x7c] - str r2, [sp, #0x28] - ldr r2, [sp, #0x80] - str r2, [sp, #0x2c] - ldr r2, [sp, #0x84] - str r2, [sp, #0x30] - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r0, r3, lsr #0xc - orr r0, r0, r2, lsl #0x14 - adds r0, r12, r0 - str r0, [sp, #0x64] - ldr r1, [r5, #0x4] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r0, r3, lsr #0xc - orr r0, r0, r2, lsl #0x14 - adds r0, lr, r0 - str r0, [sp, #0x68] - ldr r1, [r5, #0x8] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x18] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x6c] - ldr r1, [r5, #0xc] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x1c] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x70] - ldr r1, [r5, #0x10] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x20] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x74] - ldr r1, [r5, #0x14] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x24] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x78] - ldr r1, [r5, #0x18] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x28] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x7c] - ldr r1, [r5, #0x1c] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x2c] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x80] - ldr r1, [r5, #0x20] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r1, r3, lsr #0xc - ldr r0, [sp, #0x30] - orr r1, r1, r2, lsl #0x14 - adds r0, r0, r1 - str r0, [sp, #0x84] -_020B9500: - cmp r11, #0x0 - bne _020B9538 -_020B9508: - mov r0, r6 - bl G3X_GetClipMtx - cmp r0, #0x0 - bne _020B9508 - ldr r1, [sp, #0x14] - ldr r0, _020B98AC ; =0x04000440 - str r1, [r0, #0x0] - ldr r0, [sp, #0x4] - mov r1, #0x54 - mla r0, r4, r1, r0 - add r0, r0, #0x30 - bl G3_MultMtx33 -_020B9538: - ldrb r1, [r8, #0x2] - ldr r2, [sp, #0x34] - ldr r0, [r6, #0x0] - mov r10, r1, lsl #0x4 - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x34] - mov r9, r10, asr #0x1f - ldr r2, [sp, #0x38] - ldr r0, [r6, #0x4] - ldr r3, [sp, #0x3c] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x38] - ldr r0, [r6, #0x8] - ldr r2, [sp, #0x40] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r3, r1 - str r0, [sp, #0x3c] - ldr r0, [r6, #0x10] - ldr r3, [sp, #0x44] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x40] - ldr r0, [r6, #0x14] - ldr r2, [sp, #0x48] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r3, r1 - str r0, [sp, #0x44] - ldr r0, [r6, #0x18] - ldr r3, [sp, #0x4c] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x48] - ldr r0, [r6, #0x20] - ldr r2, [sp, #0x50] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r3, r1 - str r0, [sp, #0x4c] - ldr r0, [r6, #0x24] - ldr r3, [sp, #0x54] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x50] - ldr r0, [r6, #0x28] - ldr r2, [sp, #0x58] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r3, r1 - str r0, [sp, #0x54] - ldr r0, [r6, #0x30] - ldr r3, [sp, #0x5c] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x58] - ldr r0, [r6, #0x34] - ldr r2, [sp, #0x60] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r3, r1 - str r0, [sp, #0x5c] - ldr r0, [r6, #0x38] - smull r1, r0, r10, r0 - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - adds r0, r2, r1 - str r0, [sp, #0x60] - cmp r11, #0x0 - ldr r1, _020B98C0 ; =UNK_021D03C0 - ldr r0, [sp, #0xc] - add r5, r1, r0 - add r8, r8, #0x3 - bne _020B96BC -_020B96AC: - mov r0, r5 - bl G3X_GetVectorMtx - cmp r0, #0x0 - bne _020B96AC -_020B96BC: - ldr r0, [sp, #0x8] - add r7, r7, #0x1 - cmp r7, r0 - blo _020B92E4 -_020B96CC: - ldr r1, [r5, #0x0] - ldr r4, [sp, #0x64] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r0, r3, lsr #0xc - orr r0, r0, r2, lsl #0x14 - adds r0, r4, r0 - str r0, [sp, #0x64] - ldr r1, [r5, #0x4] - ldr r4, [sp, #0x68] - mov r0, r1, asr #0x1f - umull r3, r2, r10, r1 - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - mov r0, r3, lsr #0xc - orr r0, r0, r2, lsl #0x14 - adds r0, r4, r0 - str r0, [sp, #0x68] - ldr r1, [r5, #0x8] - ldr r4, [sp, #0x6c] - umull r0, r2, r10, r1 - mov r3, r0, lsr #0xc - mov r0, r1, asr #0x1f - mla r2, r10, r0, r2 - mla r2, r9, r1, r2 - orr r3, r3, r2, lsl #0x14 - adds r0, r4, r3 - str r0, [sp, #0x6c] - ldr r7, [r5, #0xc] - ldr r12, [sp, #0x70] - mov r6, r7, asr #0x1f - umull r11, r8, r10, r7 - mla r8, r10, r6, r8 - mla r8, r9, r7, r8 - mov r6, r11, lsr #0xc - orr r6, r6, r8, lsl #0x14 - adds r6, r12, r6 - str r6, [sp, #0x70] - ldr r7, [r5, #0x10] - ldr r4, [sp, #0x74] - mov r6, r7, asr #0x1f - umull r11, r8, r10, r7 - mla r8, r10, r6, r8 - mla r8, r9, r7, r8 - mov r6, r11, lsr #0xc - orr r6, r6, r8, lsl #0x14 - adds r4, r4, r6 - str r4, [sp, #0x74] - ldr r6, [r5, #0x14] - ldr r3, [sp, #0x78] - mov r4, r6, asr #0x1f - umull r8, r7, r10, r6 - mla r7, r10, r4, r7 - mla r7, r9, r6, r7 - mov r4, r8, lsr #0xc - orr r4, r4, r7, lsl #0x14 - adds r3, r3, r4 - str r3, [sp, #0x78] - ldr r4, [r5, #0x18] - ldr r2, [sp, #0x7c] - mov r3, r4, asr #0x1f - umull r7, r6, r10, r4 - mla r6, r10, r3, r6 - mla r6, r9, r4, r6 - mov r3, r7, lsr #0xc - orr r3, r3, r6, lsl #0x14 - adds r2, r2, r3 - str r2, [sp, #0x7c] - ldr r3, [r5, #0x1c] - ldr r1, [sp, #0x80] - mov r2, r3, asr #0x1f - umull r6, r4, r10, r3 - mla r4, r10, r2, r4 - mla r4, r9, r3, r4 - mov r2, r6, lsr #0xc - orr r2, r2, r4, lsl #0x14 - adds r1, r1, r2 - str r1, [sp, #0x80] - ldr r2, [r5, #0x20] - ldr lr, [sp, #0x84] - mov r1, r2, asr #0x1f - umull r4, r3, r10, r2 - mla r3, r10, r1, r3 - mla r3, r9, r2, r3 - mov r1, r4, lsr #0xc - orr r1, r1, r3, lsl #0x14 - adds r1, lr, r1 - add r0, sp, #0x64 - str r1, [sp, #0x84] - bl G3_LoadMtx43 - ldr r1, _020B98AC ; =0x04000440 - mov r2, #0x1 - add r0, sp, #0x34 - str r2, [r1, #0x0] - bl G3_LoadMtx43 - ldr r3, _020B98AC ; =0x04000440 - mov r0, #0x0 - str r0, [r3, #0x0] - ldr r1, _020B98BC ; =0x04000450 - mov r2, #0x1 - mov r0, #0x2 - str r2, [r1, #0x0] - str r0, [r3, #0x0] - ldr r0, [sp, #0x0] - ldr r1, [r0, #0x0] - ldr r0, _020B98B0 ; =0x0400044C - ldrb r2, [r1, #0x1] - mov r1, #0x3 - str r2, [r0, #0x0] - ldr r0, [sp, #0x0] - ldr r2, [r0, #0x0] - ldrb r0, [r2, #0x2] - add r0, r0, #0x1 - mla r1, r0, r1, r2 - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - add sp, sp, #0x8c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B98AC: .word 0x04000440 -_020B98B0: .word 0x0400044C -_020B98B4: .word 0x04000454 -_020B98B8: .word UNK_021D0380 -_020B98BC: .word 0x04000450 -_020B98C0: .word UNK_021D03C0 - arm_func_end FUN_020B9258 - - arm_func_start FUN_020B98C4 -FUN_020B98C4: ; 0x020B98C4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xcc - mov r10, r0 - ldr r2, [r10, #0x8] - mov r9, r1 - ands r0, r2, #0x200 - mov r7, #0x2 - ldr r6, _020B9C28 ; =UNK_02106718 - ldr fp, _020B9C2C ; =UNK_02106724 - ldr r5, _020B9C30 ; =UNK_021066F4 - beq _020B992C - cmp r9, #0x40 - beq _020B9900 - cmp r9, #0x60 - bne _020B9904 -_020B9900: - add r7, r7, #0x1 -_020B9904: - cmp r9, #0x20 - beq _020B9914 - cmp r9, #0x60 - bne _020B9918 -_020B9914: - add r7, r7, #0x1 -_020B9918: - ldr r0, [r10, #0x0] - add sp, sp, #0xcc - add r0, r0, r7 - str r0, [r10, #0x0] - ldmia sp!, {r4-r11,pc} -_020B992C: - cmp r9, #0x40 - beq _020B993C - cmp r9, #0x60 - bne _020B9974 -_020B993C: - add r7, r7, #0x1 - ands r0, r2, #0x100 - bne _020B9974 - cmp r9, #0x40 - ldreq r0, [r10, #0x0] - add r1, sp, #0x0 - ldreqb r0, [r0, #0x2] - mov r2, #0x1 - streq r0, [sp, #0x0] - ldrne r0, [r10, #0x0] - ldrneb r0, [r0, #0x3] - strne r0, [sp, #0x0] - mov r0, #0x14 - bl FUN_020BB1C0 -_020B9974: - ldr r0, [r10, #0x2c] - cmp r0, #0x0 - ldrneb r8, [r10, #0x94] - moveq r8, #0x0 - cmp r8, #0x1 - bne _020B99C0 - ldr r1, [r10, #0x8] - mov r0, r10 - bic r1, r1, #0x40 - str r1, [r10, #0x8] - ldr r1, [r10, #0x2c] - blx r1 - ldr r0, [r10, #0x2c] - cmp r0, #0x0 - ldrneb r8, [r10, #0x94] - ldr r0, [r10, #0x8] - moveq r8, #0x0 - and r1, r0, #0x40 - b _020B99C4 -_020B99C0: - mov r1, #0x0 -_020B99C4: - ldr r0, [r10, #0x8] - ands r0, r0, #0x100 - bne _020B9BA4 - cmp r1, #0x0 - bne _020B9BA4 - bl FUN_020BB394 - ldr r2, _020B9C34 ; =0x00151110 - ldr r1, _020B9C38 ; =0x04000400 - mov r0, #0x0 - str r2, [r1, #0x0] - str r0, [r1, #0x0] - str r0, [r1, #0x0] - add r4, sp, #0x8 -_020B99F8: - mov r0, r4 - bl G3X_GetClipMtx - cmp r0, #0x0 - bne _020B99F8 - ldr r0, _020B9C3C ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - ands r0, r1, #0x1 - beq _020B9A38 - bl FUN_020B82A4 - add r1, sp, #0x48 - bl MTX_Copy43To44_ - add r0, sp, #0x8 - add r1, sp, #0x48 - mov r2, r0 - bl MTX_Concat44 - b _020B9A5C -_020B9A38: - ands r0, r1, #0x2 - beq _020B9A5C - ldr r0, _020B9C40 ; =UNK_021CED64 - add r1, sp, #0x88 - bl MTX_Copy43To44_ - add r0, sp, #0x8 - add r1, sp, #0x88 - mov r2, r0 - bl MTX_Concat44 -_020B9A5C: - ldr r1, [sp, #0x38] - add r0, sp, #0x8 - str r1, [r6, #0x0] - ldr r1, [sp, #0x3c] - str r1, [r6, #0x4] - ldr r1, [sp, #0x40] - str r1, [r6, #0x8] - bl VEC_Mag - str r0, [r11, #0x0] - add r0, sp, #0x18 - bl VEC_Mag - str r0, [r11, #0x4] - add r0, sp, #0x28 - bl VEC_Mag - str r0, [r11, #0x8] - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - bne _020B9AB0 - ldr r0, [sp, #0x20] - cmp r0, #0x0 - beq _020B9AD4 -_020B9AB0: - add r0, sp, #0x18 - add r1, r5, #0xc - bl VEC_Normalize - ldr r0, [r5, #0x14] - rsb r0, r0, #0x0 - str r0, [r5, #0x1c] - ldr r0, [r5, #0x10] - str r0, [r5, #0x20] - b _020B9AF4 -_020B9AD4: - add r0, sp, #0x28 - add r1, r5, #0x18 - bl VEC_Normalize - ldr r0, [r5, #0x1c] - rsb r0, r0, #0x0 - str r0, [r5, #0x14] - ldr r0, [r5, #0x20] - str r0, [r5, #0x10] -_020B9AF4: - ldr r0, _020B9C3C ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - ands r0, r1, #0x1 - beq _020B9B48 - ldr r3, _020B9C44 ; =0x00171012 - ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C48 ; =UNK_021066EC - mov r2, #0x8 - str r3, [r1, #0x0] - bl MIi_CpuSend32 - bl FUN_020B8264 - ldr r1, _020B9C38 ; =0x04000400 - mov r2, #0x30 - bl MIi_CpuSend32 - ldr r2, _020B9C4C ; =0x00001B19 - ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C30 ; =UNK_021066F4 - str r2, [r1, #0x0] - mov r2, #0x3c - bl MIi_CpuSend32 - b _020B9BA4 -_020B9B48: - ands r0, r1, #0x2 - beq _020B9B94 - ldr r3, _020B9C44 ; =0x00171012 - ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C48 ; =UNK_021066EC - mov r2, #0x8 - str r3, [r1, #0x0] - bl MIi_CpuSend32 - bl FUN_020B8344 - ldr r1, _020B9C38 ; =0x04000400 - mov r2, #0x30 - bl MIi_CpuSend32 - ldr r2, _020B9C4C ; =0x00001B19 - ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C30 ; =UNK_021066F4 - str r2, [r1, #0x0] - mov r2, #0x3c - bl MIi_CpuSend32 - b _020B9BA4 -_020B9B94: - ldr r0, _020B9C50 ; =UNK_021066E8 - ldr r1, _020B9C38 ; =0x04000400 - mov r2, #0x48 - bl MIi_CpuSend32 -_020B9BA4: - cmp r8, #0x3 - movne r0, #0x0 - bne _020B9BD0 - ldr r1, [r10, #0x8] - mov r0, r10 - bic r1, r1, #0x40 - str r1, [r10, #0x8] - ldr r1, [r10, #0x2c] - blx r1 - ldr r0, [r10, #0x8] - and r0, r0, #0x40 -_020B9BD0: - cmp r9, #0x20 - beq _020B9BE0 - cmp r9, #0x60 - bne _020B9C14 -_020B9BE0: - cmp r0, #0x0 - add r7, r7, #0x1 - bne _020B9C14 - ldr r0, [r10, #0x8] - ands r0, r0, #0x100 - bne _020B9C14 - ldr r0, [r10, #0x0] - add r1, sp, #0x4 - ldrb r3, [r0, #0x2] - mov r0, #0x13 - mov r2, #0x1 - str r3, [sp, #0x4] - bl FUN_020BB1C0 -_020B9C14: - ldr r0, [r10, #0x0] - add r0, r0, r7 - str r0, [r10, #0x0] - add sp, sp, #0xcc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020B9C28: .word UNK_02106718 -_020B9C2C: .word UNK_02106724 -_020B9C30: .word UNK_021066F4 -_020B9C34: .word 0x00151110 -_020B9C38: .word 0x04000400 -_020B9C3C: .word UNK_021CED18 -_020B9C40: .word UNK_021CED64 -_020B9C44: .word 0x00171012 -_020B9C48: .word UNK_021066EC -_020B9C4C: .word 0x00001B19 -_020B9C50: .word UNK_021066E8 - arm_func_end FUN_020B98C4 - - arm_func_start FUN_020B9C54 -FUN_020B9C54: ; 0x020B9C54 - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0xc8 - mov r9, r0 - ldr r2, [r9, #0x8] - mov r8, r1 - ands r0, r2, #0x200 - mov r6, #0x2 - ldr r5, _020B9F58 ; =UNK_021066D0 - ldr r4, _020B9F5C ; =UNK_021066DC - beq _020B9CB8 - cmp r8, #0x40 - beq _020B9C8C - cmp r8, #0x60 - bne _020B9C90 -_020B9C8C: - add r6, r6, #0x1 -_020B9C90: - cmp r8, #0x20 - beq _020B9CA0 - cmp r8, #0x60 - bne _020B9CA4 -_020B9CA0: - add r6, r6, #0x1 -_020B9CA4: - ldr r0, [r9, #0x0] - add sp, sp, #0xc8 - add r0, r0, r6 - str r0, [r9, #0x0] - ldmia sp!, {r4-r10,pc} -_020B9CB8: - cmp r8, #0x40 - beq _020B9CC8 - cmp r8, #0x60 - bne _020B9D00 -_020B9CC8: - add r6, r6, #0x1 - ands r0, r2, #0x100 - bne _020B9D00 - cmp r8, #0x40 - ldreq r0, [r9, #0x0] - add r1, sp, #0x0 - ldreqb r0, [r0, #0x2] - mov r2, #0x1 - streq r0, [sp, #0x0] - ldrne r0, [r9, #0x0] - ldrneb r0, [r0, #0x3] - strne r0, [sp, #0x0] - mov r0, #0x14 - bl FUN_020BB1C0 -_020B9D00: - ldr r0, [r9, #0x28] - cmp r0, #0x0 - ldrneb r7, [r9, #0x93] - moveq r7, #0x0 - cmp r7, #0x1 - bne _020B9D4C - ldr r1, [r9, #0x8] - mov r0, r9 - bic r1, r1, #0x40 - str r1, [r9, #0x8] - ldr r1, [r9, #0x28] - blx r1 - ldr r0, [r9, #0x28] - cmp r0, #0x0 - ldrneb r7, [r9, #0x93] - ldr r0, [r9, #0x8] - moveq r7, #0x0 - and r1, r0, #0x40 - b _020B9D50 -_020B9D4C: - mov r1, #0x0 -_020B9D50: - ldr r0, [r9, #0x8] - ands r0, r0, #0x100 - bne _020B9ED4 - cmp r1, #0x0 - bne _020B9ED4 - bl FUN_020BB394 - ldr r2, _020B9F60 ; =0x00151110 - ldr r1, _020B9F64 ; =0x04000400 - mov r0, #0x0 - str r2, [r1, #0x0] - str r0, [r1, #0x0] - str r0, [r1, #0x0] - add r10, sp, #0x8 -_020B9D84: - mov r0, r10 - bl G3X_GetClipMtx - cmp r0, #0x0 - bne _020B9D84 - ldr r0, _020B9F68 ; =UNK_021CED18 - ldr r1, [r0, #0xfc] - ands r0, r1, #0x1 - beq _020B9DC4 - bl FUN_020B82A4 - add r1, sp, #0x48 - bl MTX_Copy43To44_ - add r0, sp, #0x8 - add r1, sp, #0x48 - mov r2, r0 - bl MTX_Concat44 - b _020B9DE8 -_020B9DC4: - ands r0, r1, #0x2 - beq _020B9DE8 - ldr r0, _020B9F6C ; =UNK_021CED64 - add r1, sp, #0x88 - bl MTX_Copy43To44_ - add r0, sp, #0x8 - add r1, sp, #0x88 - mov r2, r0 - bl MTX_Concat44 -_020B9DE8: - ldr r1, [sp, #0x38] - add r0, sp, #0x8 - str r1, [r5, #0x0] - ldr r1, [sp, #0x3c] - str r1, [r5, #0x4] - ldr r1, [sp, #0x40] - str r1, [r5, #0x8] - bl VEC_Mag - str r0, [r4, #0x0] - add r0, sp, #0x18 - bl VEC_Mag - str r0, [r4, #0x4] - add r0, sp, #0x28 - bl VEC_Mag - ldr r1, _020B9F68 ; =UNK_021CED18 - str r0, [r4, #0x8] - ldr r1, [r1, #0xfc] - ands r0, r1, #0x1 - beq _020B9E78 - ldr r3, _020B9F70 ; =0x00171012 - ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F74 ; =UNK_021066A4 - mov r2, #0x8 - str r3, [r1, #0x0] - bl MIi_CpuSend32 - bl FUN_020B8264 - ldr r1, _020B9F64 ; =0x04000400 - mov r2, #0x30 - bl MIi_CpuSend32 - ldr r2, _020B9F78 ; =0x00001B19 - ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F7C ; =UNK_021066AC - str r2, [r1, #0x0] - mov r2, #0x3c - bl MIi_CpuSend32 - b _020B9ED4 -_020B9E78: - ands r0, r1, #0x2 - beq _020B9EC4 - ldr r3, _020B9F70 ; =0x00171012 - ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F74 ; =UNK_021066A4 - mov r2, #0x8 - str r3, [r1, #0x0] - bl MIi_CpuSend32 - bl FUN_020B8344 - ldr r1, _020B9F64 ; =0x04000400 - mov r2, #0x30 - bl MIi_CpuSend32 - ldr r2, _020B9F78 ; =0x00001B19 - ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F7C ; =UNK_021066AC - str r2, [r1, #0x0] - mov r2, #0x3c - bl MIi_CpuSend32 - b _020B9ED4 -_020B9EC4: - ldr r0, _020B9F80 ; =UNK_021066A0 - ldr r1, _020B9F64 ; =0x04000400 - mov r2, #0x48 - bl MIi_CpuSend32 -_020B9ED4: - cmp r7, #0x3 - movne r0, #0x0 - bne _020B9F00 - ldr r1, [r9, #0x8] - mov r0, r9 - bic r1, r1, #0x40 - str r1, [r9, #0x8] - ldr r1, [r9, #0x28] - blx r1 - ldr r0, [r9, #0x8] - and r0, r0, #0x40 -_020B9F00: - cmp r8, #0x20 - beq _020B9F10 - cmp r8, #0x60 - bne _020B9F44 -_020B9F10: - cmp r0, #0x0 - add r6, r6, #0x1 - bne _020B9F44 - ldr r0, [r9, #0x8] - ands r0, r0, #0x100 - bne _020B9F44 - ldr r0, [r9, #0x0] - add r1, sp, #0x4 - ldrb r3, [r0, #0x2] - mov r0, #0x13 - mov r2, #0x1 - str r3, [sp, #0x4] - bl FUN_020BB1C0 -_020B9F44: - ldr r0, [r9, #0x0] - add r0, r0, r6 - str r0, [r9, #0x0] - add sp, sp, #0xc8 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020B9F58: .word UNK_021066D0 -_020B9F5C: .word UNK_021066DC -_020B9F60: .word 0x00151110 -_020B9F64: .word 0x04000400 -_020B9F68: .word UNK_021CED18 -_020B9F6C: .word UNK_021CED64 -_020B9F70: .word 0x00171012 -_020B9F74: .word UNK_021066A4 -_020B9F78: .word 0x00001B19 -_020B9F7C: .word UNK_021066AC -_020B9F80: .word UNK_021066A0 - arm_func_end FUN_020B9C54 - - arm_func_start FUN_020B9F84 -FUN_020B9F84: ; 0x020B9F84 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r0, [r10, #0x0] - mov r9, r1 - ldrb r4, [r0, #0x1] - mov r7, #0x4 - strb r4, [r10, #0xae] - ldr r0, [r10, #0x8] - orr r0, r0, #0x10 - str r0, [r10, #0x8] - ldr r1, [r10, #0x8] - ands r0, r1, #0x400 - beq _020BA01C - cmp r9, #0x40 - beq _020B9FCC - cmp r9, #0x60 - bne _020B9FD0 -_020B9FCC: - add r7, r7, #0x1 -_020B9FD0: - cmp r9, #0x20 - beq _020B9FE0 - cmp r9, #0x60 - bne _020BA008 -_020B9FE0: - add r7, r7, #0x1 - ands r0, r1, #0x100 - bne _020BA008 - ldr r0, [r10, #0x0] - add r1, sp, #0x8 - ldrb r3, [r0, #0x4] - mov r0, #0x14 - mov r2, #0x1 - str r3, [sp, #0x8] - bl FUN_020BB1C0 -_020BA008: - ldr r0, [r10, #0x0] - add sp, sp, #0x14 - add r0, r0, r7 - str r0, [r10, #0x0] - ldmia sp!, {r4-r11,pc} -_020BA01C: - cmp r9, #0x40 - beq _020BA02C - cmp r9, #0x60 - bne _020BA068 -_020BA02C: - cmp r9, #0x40 - ldreq r0, [r10, #0x0] - add r7, r7, #0x1 - ldreqb r0, [r0, #0x4] - streq r0, [sp, #0xc] - ldrne r0, [r10, #0x0] - ldrneb r0, [r0, #0x5] - strne r0, [sp, #0xc] - ldr r0, [r10, #0x8] - ands r0, r0, #0x100 - bne _020BA068 - add r1, sp, #0xc - mov r0, #0x14 - mov r2, #0x1 - bl FUN_020BB1C0 -_020BA068: - add r0, r10, #0x12c - str r0, [r10, #0xb4] - ldr r0, [r10, #0x24] - cmp r0, #0x0 - ldrneb r8, [r10, #0x92] - moveq r8, #0x0 - cmp r8, #0x1 - bne _020BA0BC - ldr r1, [r10, #0x8] - mov r0, r10 - bic r1, r1, #0x40 - str r1, [r10, #0x8] - ldr r1, [r10, #0x24] - blx r1 - ldr r0, [r10, #0x24] - cmp r0, #0x0 - ldrneb r8, [r10, #0x92] - ldr r0, [r10, #0x8] - moveq r8, #0x0 - and r0, r0, #0x40 - b _020BA0C0 -_020BA0BC: - mov r0, #0x0 -_020BA0C0: - cmp r0, #0x0 - bne _020BA2CC - ldr r0, [r10, #0x4] - ldr r1, [r0, #0x34] - cmp r1, #0x0 - beq _020BA0F4 - mov r0, #0x58 - mla r6, r4, r0, r1 - ldr r0, [r10, #0x8] - ands r0, r0, #0x80 - moveq r0, #0x1 - movne r0, #0x0 - b _020BA0FC -_020BA0F4: - add r6, r10, #0x12c - mov r0, #0x0 -_020BA0FC: - cmp r0, #0x0 - bne _020BA2C8 - mov r0, #0x0 - str r0, [r6, #0x0] - ldr r0, [r10, #0x4] - ldr r1, [r0, #0x10] - cmp r1, #0x0 - beq _020BA134 - ldr r3, [r0, #0x14] - mov r0, r6 - mov r2, r4 - blx r3 - cmp r0, #0x0 - bne _020BA2C8 -_020BA134: - ldr r2, [r10, #0xd4] - ldrh r0, [r2, #0x6] - ldrh r1, [r2, r0] - add r0, r2, r0 - mla r0, r1, r4, r0 - ldr r1, [r0, #0x4] - ldrh r0, [r2, r1] - add r4, r2, r1 - add r5, r4, #0x4 - ands r0, r0, #0x1 - ldrne r0, [r6, #0x0] - orrne r0, r0, #0x4 - strne r0, [r6, #0x0] - bne _020BA188 - ldr r0, [r5, #0x0] - str r0, [r6, #0x4c] - ldr r0, [r5, #0x4] - str r0, [r6, #0x50] - ldr r0, [r5, #0x8] - add r5, r5, #0xc - str r0, [r6, #0x54] -_020BA188: - ldrh r1, [r4, #0x0] - ands r0, r1, #0x2 - ldrne r0, [r6, #0x0] - orrne r0, r0, #0x2 - strne r0, [r6, #0x0] - bne _020BA2B0 - ands r0, r1, #0x8 - beq _020BA264 - and r1, r1, #0xf0 - mov r11, r1, asr #0x4 - ldrsh r1, [r5, #0x0] - add r0, r6, #0x28 - str r1, [sp, #0x0] - ldrsh r1, [r5, #0x2] - str r1, [sp, #0x4] - bl MI_Zero36B - ldrh r0, [r4, #0x0] - add r1, r6, r11, lsl #0x2 - add r5, r5, #0x4 - ands r0, r0, #0x100 - movne r0, #0x1000 - rsbne r2, r0, #0x0 - moveq r2, #0x1000 - str r2, [r1, #0x28] - ldr r0, _020BA3B4 ; =UNK_020FF9F0 - ldr r1, _020BA3B8 ; =UNK_020FF9F0 + 1 - ldrb r0, [r0, r11, lsl #0x2] - add r2, r6, r0, lsl #0x2 - ldr r0, [sp, #0x0] - str r0, [r2, #0x28] - ldrb r0, [r1, r11, lsl #0x2] - add r1, r6, r0, lsl #0x2 - ldr r0, [sp, #0x4] - str r0, [r1, #0x28] - ldrh r0, [r4, #0x0] - ands r0, r0, #0x200 - ldrne r0, [sp, #0x4] - rsbne r0, r0, #0x0 - strne r0, [sp, #0x4] - ldr r0, _020BA3BC ; =UNK_020FF9F0 + 2 - ldrb r0, [r0, r11, lsl #0x2] - add r1, r6, r0, lsl #0x2 - ldr r0, [sp, #0x4] - str r0, [r1, #0x28] - ldrh r0, [r4, #0x0] - ands r0, r0, #0x400 - ldrne r0, [sp, #0x0] - rsbne r0, r0, #0x0 - strne r0, [sp, #0x0] - ldr r0, _020BA3C0 ; =UNK_020FF9F0 + 3 - ldrb r0, [r0, r11, lsl #0x2] - add r1, r6, r0, lsl #0x2 - ldr r0, [sp, #0x0] - str r0, [r1, #0x28] - b _020BA2B0 -_020BA264: - ldrsh r0, [r4, #0x2] - str r0, [r6, #0x28] - ldrsh r0, [r5, #0x0] - str r0, [r6, #0x2c] - ldrsh r0, [r5, #0x2] - str r0, [r6, #0x30] - ldrsh r0, [r5, #0x4] - str r0, [r6, #0x34] - ldrsh r0, [r5, #0x6] - str r0, [r6, #0x38] - ldrsh r0, [r5, #0x8] - str r0, [r6, #0x3c] - ldrsh r0, [r5, #0xa] - str r0, [r6, #0x40] - ldrsh r0, [r5, #0xc] - str r0, [r6, #0x44] - ldrsh r0, [r5, #0xe] - add r5, r5, #0x10 - str r0, [r6, #0x48] -_020BA2B0: - ldrh r3, [r4, #0x0] - ldr r2, [r10, #0x0] - ldr r4, [r10, #0xe8] - mov r0, r6 - mov r1, r5 - blx r4 -_020BA2C8: - str r6, [r10, #0xb4] -_020BA2CC: - cmp r8, #0x2 - bne _020BA308 - ldr r1, [r10, #0x8] - mov r0, r10 - bic r1, r1, #0x40 - str r1, [r10, #0x8] - ldr r1, [r10, #0x24] - blx r1 - ldr r0, [r10, #0x24] - cmp r0, #0x0 - ldrneb r8, [r10, #0x92] - ldr r0, [r10, #0x8] - moveq r8, #0x0 - and r0, r0, #0x40 - b _020BA30C -_020BA308: - mov r0, #0x0 -_020BA30C: - cmp r0, #0x0 - bne _020BA32C - ldr r0, [r10, #0x8] - ands r0, r0, #0x100 - bne _020BA32C - ldr r0, [r10, #0xb4] - ldr r1, [r10, #0xec] - blx r1 -_020BA32C: - mov r0, #0x0 - str r0, [r10, #0xb4] - cmp r8, #0x3 - bne _020BA35C - ldr r1, [r10, #0x8] - mov r0, r10 - bic r1, r1, #0x40 - str r1, [r10, #0x8] - ldr r1, [r10, #0x24] - blx r1 - ldr r0, [r10, #0x8] - and r0, r0, #0x40 -_020BA35C: - cmp r9, #0x20 - beq _020BA36C - cmp r9, #0x60 - bne _020BA3A0 -_020BA36C: - cmp r0, #0x0 - add r7, r7, #0x1 - bne _020BA3A0 - ldr r0, [r10, #0x8] - ands r0, r0, #0x100 - bne _020BA3A0 - ldr r0, [r10, #0x0] - add r1, sp, #0x10 - ldrb r3, [r0, #0x4] - mov r0, #0x13 - mov r2, #0x1 - str r3, [sp, #0x10] - bl FUN_020BB1C0 -_020BA3A0: - ldr r0, [r10, #0x0] - add r0, r0, r7 - str r0, [r10, #0x0] - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020BA3B4: .word UNK_020FF9F0 -_020BA3B8: .word UNK_020FF9F0 + 1 -_020BA3BC: .word UNK_020FF9F0 + 2 -_020BA3C0: .word UNK_020FF9F0 + 3 - arm_func_end FUN_020B9F84 - - arm_func_start FUN_020BA3C4 -FUN_020BA3C4: ; 0x020BA3C4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r3, [r4, #0x8] - ands r2, r3, #0x200 - bne _020BA420 - ands r2, r3, #0x1 - beq _020BA420 - ands r2, r3, #0x2 - bne _020BA420 - ldr r5, [r4, #0xdc] - ldr r3, [r4, #0x0] - ldrh r2, [r5, #0x6] - ldrb r3, [r3, #0x1] - ldr ip, _020BA434 ; =UNK_02106650 - ldrh lr, [r5, r2] - add r2, r5, r2 - mla r2, lr, r3, r2 - ldr r2, [r2, #0x4] - ldrh lr, [r5, r2] - add r2, r5, r2 - ldr r12, [r12, lr, lsl #0x2] - blx r12 -_020BA420: - ldr r0, [r4, #0x0] - add r0, r0, #0x2 - str r0, [r4, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BA434: .word UNK_02106650 - arm_func_end FUN_020BA3C4 - - arm_func_start FUN_020BA438 -FUN_020BA438: ; 0x020BA438 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r0, [r6, #0x20] - mov r5, r2 - cmp r0, #0x0 - ldrneb r4, [r6, #0x91] - moveq r4, #0x0 - cmp r4, #0x1 - bne _020BA490 - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x20] - blx r1 - ldr r0, [r6, #0x20] - cmp r0, #0x0 - ldrneb r4, [r6, #0x91] - ldr r0, [r6, #0x8] - moveq r4, #0x0 - and r0, r0, #0x40 - b _020BA494 -_020BA490: - mov r0, #0x0 -_020BA494: - cmp r0, #0x0 - bne _020BA4B8 - ldr r0, [r6, #0x8] - ands r0, r0, #0x100 - bne _020BA4B8 - ldr r0, [r5, #0x8] - ldr r1, [r5, #0xc] - add r0, r5, r0 - bl FUN_020BB2B0 -_020BA4B8: - cmp r4, #0x2 - bne _020BA4E8 - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x20] - blx r1 - ldr r0, [r6, #0x20] - cmp r0, #0x0 - ldrneb r4, [r6, #0x91] - moveq r4, #0x0 -_020BA4E8: - cmp r4, #0x3 - ldmneia sp!, {r4-r6,pc} - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x20] - blx r1 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BA438 - - arm_func_start FUN_020BA50C -FUN_020BA50C: ; 0x020BA50C - stmdb sp!, {r4-r6,lr} - mov r4, r0 - ldr r5, [r4, #0x8] - ands r0, r5, #0x200 - bne _020BA578 - ldr r2, [r4, #0x0] - ands r0, r5, #0x1 - ldrb r3, [r2, #0x1] - bne _020BA544 - ands r0, r5, #0x8 - beq _020BA544 - ldrb r0, [r4, #0xad] - cmp r3, r0 - beq _020BA578 -_020BA544: - ldr r6, [r4, #0xd8] - ldr ip, _020BA588 ; =UNK_02106640 - ldrh r2, [r6, #0xa] - add r5, r6, #0x4 - mov r0, r4 - ldrh lr, [r5, r2] - add r2, r5, r2 - mla r2, lr, r3, r2 - ldr r2, [r2, #0x4] - ldrh lr, [r6, r2] - add r2, r6, r2 - ldr r12, [r12, lr, lsl #0x2] - blx r12 -_020BA578: - ldr r0, [r4, #0x0] - add r0, r0, #0x2 - str r0, [r4, #0x0] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020BA588: .word UNK_02106640 - arm_func_end FUN_020BA50C - - arm_func_start FUN_020BA58C -FUN_020BA58C: ; 0x020BA58C - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x20 - mov r8, r0 - mov r6, r3 - strb r6, [r8, #0xad] - ldr r3, [r8, #0x8] - add r0, r8, #0xf4 - orr r3, r3, #0x8 - str r3, [r8, #0x8] - str r0, [r8, #0xb0] - ldr r0, [r8, #0x1c] - mov r4, r1 - cmp r0, #0x0 - ldrneb r5, [r8, #0x90] - mov r7, r2 - moveq r5, #0x0 - cmp r5, #0x1 - bne _020BA608 - ldr r1, [r8, #0x8] - mov r0, r8 - bic r1, r1, #0x40 - str r1, [r8, #0x8] - ldr r1, [r8, #0x1c] - blx r1 - ldr r0, [r8, #0x1c] - cmp r0, #0x0 - ldrneb r5, [r8, #0x90] - ldr r0, [r8, #0x8] - moveq r5, #0x0 - and r0, r0, #0x40 - b _020BA60C -_020BA608: - mov r0, #0x0 -_020BA60C: - cmp r0, #0x0 - bne _020BA8C0 - ldr r0, [r8, #0x4] - ldr r0, [r0, #0x38] - cmp r0, #0x0 - beq _020BA638 - ldr r1, [r8, #0x8] - ands r1, r1, #0x80 - moveq r1, #0x38 - mlaeq r4, r6, r1, r0 - beq _020BA8BC -_020BA638: - cmp r4, #0x20 - beq _020BA648 - cmp r4, #0x40 - bne _020BA684 -_020BA648: - mov r1, r6, lsr #0x5 - add r1, r8, r1, lsl #0x2 - and r2, r6, #0x1f - mov r3, #0x1 - mov r2, r3, lsl r2 - ldr r1, [r1, #0xbc] - ands r1, r2, r1 - beq _020BA684 - cmp r0, #0x0 - movne r1, #0x38 - mlane r4, r6, r1, r0 - ldreq r1, _020BA9D8 ; =UNK_021CEF80 - moveq r0, #0x38 - mlaeq r4, r6, r0, r1 - b _020BA8BC -_020BA684: - cmp r0, #0x0 - beq _020BA6BC - add r4, r8, #0xbc - mov r3, r6, lsr #0x5 - ldr r2, [r4, r3, lsl #0x2] - and r0, r6, #0x1f - mov r1, #0x1 - orr r0, r2, r1, lsl r0 - str r0, [r4, r3, lsl #0x2] - ldr r1, [r8, #0x4] - mov r0, #0x38 - ldr r1, [r1, #0x38] - mla r4, r6, r0, r1 - b _020BA6F0 -_020BA6BC: - cmp r4, #0x40 - addne r4, r8, #0xf4 - bne _020BA6F0 - add lr, r8, #0xbc - mov r12, r6, lsr #0x5 - ldr r1, _020BA9D8 ; =UNK_021CEF80 - ldr r4, [lr, r12, lsl #0x2] - mov r0, #0x38 - and r2, r6, #0x1f - mov r3, #0x1 - orr r2, r4, r3, lsl r2 - mla r4, r6, r0, r1 - str r2, [lr, r12, lsl #0x2] -_020BA6F0: - mov r0, #0x0 - str r0, [r4, #0x0] - ldr r3, [r8, #0xd8] - ldrh r0, [r3, #0xa] - add r2, r3, #0x4 - ldrh r1, [r2, r0] - add r0, r2, r0 - mla r0, r1, r6, r0 - ldr r0, [r0, #0x4] - ldr r1, _020BA9DC ; =UNK_021CED18 - add r0, r3, r0 - ldrh r0, [r0, #0x1e] - ands r0, r0, #0x20 - ldrne r0, [r4, #0x0] - orrne r0, r0, #0x20 - strne r0, [r4, #0x0] - ldrh r2, [r7, #0x1e] - ldr r0, _020BA9E0 ; =UNK_020FF9D0 - ldr r12, [r1, #0x94] - mov r2, r2, asr #0x6 - and r2, r2, #0x7 - ldr lr, [r0, r2, lsl #0x2] - ldr r2, [r7, #0x4] - mvn r3, lr - and r3, r12, r3 - and r2, r2, lr - orr r2, r3, r2 - str r2, [r4, #0x4] - ldrh r12, [r7, #0x1e] - ldr r3, [r1, #0x98] - ldr r2, [r7, #0x8] - mov r12, r12, asr #0x9 - and r12, r12, #0x7 - ldr r12, [r0, r12, lsl #0x2] - mvn r0, r12 - and r3, r3, r0 - and r0, r2, r12 - orr r0, r3, r0 - str r0, [r4, #0x8] - ldr r3, [r7, #0x10] - ldr r0, [r7, #0xc] - ldr r2, [r1, #0x9c] - mvn r1, r3 - and r1, r2, r1 - and r0, r0, r3 - orr r0, r1, r0 - str r0, [r4, #0xc] - ldr r0, [r7, #0x14] - str r0, [r4, #0x10] - ldrh r0, [r7, #0x1c] - str r0, [r4, #0x14] - ldrh r1, [r7, #0x1e] - ands r0, r1, #0x1 - beq _020BA850 - ands r1, r1, #0x2 - ldrne r1, [r4, #0x0] - add r0, r7, #0x2c - orrne r1, r1, #0x1 - strne r1, [r4, #0x0] - bne _020BA7F4 - ldr r1, [r0, #0x0] - str r1, [r4, #0x18] - ldr r1, [r0, #0x4] - add r0, r0, #0x8 - str r1, [r4, #0x1c] -_020BA7F4: - ldrh r1, [r7, #0x1e] - ands r1, r1, #0x4 - ldrne r1, [r4, #0x0] - orrne r1, r1, #0x2 - strne r1, [r4, #0x0] - bne _020BA820 - ldrsh r1, [r0, #0x0] - strh r1, [r4, #0x20] - ldrsh r1, [r0, #0x2] - add r0, r0, #0x4 - strh r1, [r4, #0x22] -_020BA820: - ldrh r1, [r7, #0x1e] - ands r1, r1, #0x8 - ldreq r1, [r0, #0x0] - streq r1, [r4, #0x24] - ldreq r0, [r0, #0x4] - streq r0, [r4, #0x28] - ldrne r0, [r4, #0x0] - orrne r0, r0, #0x4 - strne r0, [r4, #0x0] - ldr r0, [r4, #0x0] - orr r0, r0, #0x8 - str r0, [r4, #0x0] -_020BA850: - ldr r0, [r8, #0x4] - ldr r1, [r0, #0x8] - cmp r1, #0x0 - beq _020BA890 - mov r2, r6, lsr #0x5 - add r2, r0, r2, lsl #0x2 - and r3, r6, #0x1f - mov r12, #0x1 - mov r3, r12, lsl r3 - ldr r2, [r2, #0x3c] - ands r2, r3, r2 - beq _020BA890 - ldr r3, [r0, #0xc] - mov r0, r4 - mov r2, r6 - blx r3 -_020BA890: - ldr r0, [r4, #0x0] - ands r0, r0, #0x18 - beq _020BA8BC - ldrh r0, [r7, #0x20] - strh r0, [r4, #0x2c] - ldrh r0, [r7, #0x22] - strh r0, [r4, #0x2e] - ldr r0, [r7, #0x24] - str r0, [r4, #0x30] - ldr r0, [r7, #0x28] - str r0, [r4, #0x34] -_020BA8BC: - str r4, [r8, #0xb0] -_020BA8C0: - cmp r5, #0x2 - bne _020BA8FC - ldr r1, [r8, #0x8] - mov r0, r8 - bic r1, r1, #0x40 - str r1, [r8, #0x8] - ldr r1, [r8, #0x1c] - blx r1 - ldr r0, [r8, #0x1c] - cmp r0, #0x0 - ldrneb r5, [r8, #0x90] - ldr r0, [r8, #0x8] - moveq r5, #0x0 - and r0, r0, #0x40 - b _020BA900 -_020BA8FC: - mov r0, #0x0 -_020BA900: - cmp r0, #0x0 - bne _020BA9AC - ldr r4, [r8, #0xb0] - ldr r1, [r4, #0xc] - ands r0, r1, #0x1f0000 - beq _020BA9A0 - ldr r0, [r4, #0x0] - ands r0, r0, #0x20 - bicne r0, r1, #0x1f0000 - strne r0, [r4, #0xc] - ldr r0, [r8, #0x8] - bic r0, r0, #0x2 - str r0, [r8, #0x8] - ldr r0, [r8, #0x8] - ands r0, r0, #0x100 - bne _020BA9AC - ldr r0, _020BA9E4 ; =0x00293130 - ldr r3, _020BA9E8 ; =0x00002B2A - str r0, [sp, #0x0] - ldr r2, [r4, #0x4] - add r1, sp, #0x4 - str r2, [sp, #0x4] - ldr r6, [r4, #0x8] - mov r2, #0x6 - str r6, [sp, #0x8] - ldr r6, [r4, #0xc] - str r6, [sp, #0xc] - str r3, [sp, #0x10] - ldr r3, [r4, #0x10] - str r3, [sp, #0x14] - ldr r3, [r4, #0x14] - str r3, [sp, #0x18] - bl FUN_020BB1C0 - ldr r0, [r4, #0x0] - ands r0, r0, #0x18 - beq _020BA9AC - ldr r1, [r8, #0xf0] - mov r0, r4 - blx r1 - b _020BA9AC -_020BA9A0: - ldr r0, [r8, #0x8] - orr r0, r0, #0x2 - str r0, [r8, #0x8] -_020BA9AC: - cmp r5, #0x3 - addne sp, sp, #0x20 - ldmneia sp!, {r4-r8,pc} - ldr r1, [r8, #0x8] - mov r0, r8 - bic r1, r1, #0x40 - str r1, [r8, #0x8] - ldr r1, [r8, #0x1c] - blx r1 - add sp, sp, #0x20 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020BA9D8: .word UNK_021CEF80 -_020BA9DC: .word UNK_021CED18 -_020BA9E0: .word UNK_020FF9D0 -_020BA9E4: .word 0x00293130 -_020BA9E8: .word 0x00002B2A - arm_func_end FUN_020BA58C - - arm_func_start FUN_020BA9EC -FUN_020BA9EC: ; 0x020BA9EC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r1, [r5, #0x8] - ands r0, r1, #0x200 - bne _020BAAAC - ands r0, r1, #0x1 - beq _020BAAAC - ldr r0, [r5, #0x18] - cmp r0, #0x0 - ldrneb r4, [r5, #0x8f] - moveq r4, #0x0 - cmp r4, #0x1 - bne _020BAA58 - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x18] - blx r1 - ldr r0, [r5, #0x18] - cmp r0, #0x0 - ldrneb r4, [r5, #0x8f] - ldr r0, [r5, #0x8] - moveq r4, #0x0 - and r0, r0, #0x40 - b _020BAA5C -_020BAA58: - mov r0, #0x0 -_020BAA5C: - cmp r0, #0x0 - bne _020BAA8C - ldr r0, [r5, #0x0] - ldrb r0, [r0, #0x1] - str r0, [sp, #0x0] - ldr r0, [r5, #0x8] - ands r0, r0, #0x100 - bne _020BAA8C - add r1, sp, #0x0 - mov r0, #0x14 - mov r2, #0x1 - bl FUN_020BB1C0 -_020BAA8C: - cmp r4, #0x3 - bne _020BAAAC - ldr r1, [r5, #0x8] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r5, #0x8] - ldr r1, [r5, #0x18] - blx r1 -_020BAAAC: - ldr r0, [r5, #0x0] - add r0, r0, #0x2 - str r0, [r5, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BA9EC - - arm_func_start FUN_020BAAC0 -FUN_020BAAC0: ; 0x020BAAC0 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r0, [r6, #0x8] - ands r0, r0, #0x200 - bne _020BAC38 - ldr r1, [r6, #0x0] - add r0, r6, #0x184 - ldrb r1, [r1, #0x1] - strb r1, [r6, #0xac] - ldr r1, [r6, #0x8] - ldrb r4, [r6, #0xac] - orr r1, r1, #0x4 - str r1, [r6, #0x8] - str r0, [r6, #0xb8] - ldr r0, [r6, #0x14] - cmp r0, #0x0 - ldrneb r5, [r6, #0x8e] - moveq r5, #0x0 - cmp r5, #0x1 - bne _020BAB44 - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x14] - blx r1 - ldr r0, [r6, #0x14] - cmp r0, #0x0 - ldrneb r5, [r6, #0x8e] - ldr r0, [r6, #0x8] - moveq r5, #0x0 - and r0, r0, #0x40 - b _020BAB48 -_020BAB44: - mov r0, #0x0 -_020BAB48: - cmp r0, #0x0 - bne _020BABAC - ldr r12, [r6, #0x4] - ldr r1, [r12, #0x18] - cmp r1, #0x0 - beq _020BAB98 - mov r0, r4, lsr #0x5 - add r0, r12, r0, lsl #0x2 - and r2, r4, #0x1f - mov r3, #0x1 - mov r2, r3, lsl r2 - ldr r0, [r0, #0x4c] - ands r0, r2, r0 - beq _020BAB98 - ldr r0, [r6, #0xb8] - ldr r3, [r12, #0x1c] - mov r2, r4 - blx r3 - cmp r0, #0x0 - bne _020BABAC -_020BAB98: - ldr r1, [r6, #0x0] - ldr r0, [r6, #0xb8] - ldrb r1, [r1, #0x2] - and r1, r1, #0x1 - str r1, [r0, #0x0] -_020BABAC: - cmp r5, #0x2 - bne _020BABE8 - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x14] - blx r1 - ldr r0, [r6, #0x14] - cmp r0, #0x0 - ldrneb r5, [r6, #0x8e] - ldr r0, [r6, #0x8] - moveq r5, #0x0 - and r0, r0, #0x40 - b _020BABEC -_020BABE8: - mov r0, #0x0 -_020BABEC: - cmp r0, #0x0 - bne _020BAC18 - ldr r0, [r6, #0xb8] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - ldrne r0, [r6, #0x8] - orrne r0, r0, #0x1 - strne r0, [r6, #0x8] - ldreq r0, [r6, #0x8] - biceq r0, r0, #0x1 - streq r0, [r6, #0x8] -_020BAC18: - cmp r5, #0x3 - bne _020BAC38 - ldr r1, [r6, #0x8] - mov r0, r6 - bic r1, r1, #0x40 - str r1, [r6, #0x8] - ldr r1, [r6, #0x14] - blx r1 -_020BAC38: - ldr r0, [r6, #0x0] - add r0, r0, #0x3 - str r0, [r6, #0x0] - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BAAC0 - - arm_func_start FUN_020BAC48 -FUN_020BAC48: ; 0x020BAC48 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r1, [r4, #0x10] - cmp r1, #0x0 - beq _020BAC60 - blx r1 -_020BAC60: - ldr r0, [r4, #0x8] - orr r0, r0, #0x20 - str r0, [r4, #0x8] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BAC48 - - arm_func_start FUN_020BAC70 -FUN_020BAC70: ; 0x020BAC70 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r1, [r4, #0xc] - cmp r1, #0x0 - beq _020BAC88 - blx r1 -_020BAC88: - ldr r0, [r4, #0x0] - add r0, r0, #0x1 - str r0, [r4, #0x0] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BAC70 - - arm_func_start FUN_020BAC98 -FUN_020BAC98: ; 0x020BAC98 - stmdb sp!, {r4,lr} - sub sp, sp, #0x188 - mov r4, r0 - ldr r0, [r4, #0x0] - and r0, r0, #0x10 - cmp r0, #0x10 - bne _020BAD2C - add r1, r4, #0x3c - mov r0, #0x0 - mov r2, #0x8 - bl MIi_CpuClear32 - add r1, r4, #0x44 - mov r0, #0x0 - mov r2, #0x8 - bl MIi_CpuClear32 - add r1, r4, #0x4c - mov r0, #0x0 - mov r2, #0x8 - bl MIi_CpuClear32 - ldr r1, [r4, #0x8] - cmp r1, #0x0 - beq _020BACF8 - add r0, r4, #0x3c - bl FUN_020BAD74 -_020BACF8: - ldr r1, [r4, #0x10] - cmp r1, #0x0 - beq _020BAD0C - add r0, r4, #0x44 - bl FUN_020BAD74 -_020BAD0C: - ldr r1, [r4, #0x18] - cmp r1, #0x0 - beq _020BAD20 - add r0, r4, #0x4c - bl FUN_020BAD74 -_020BAD20: - ldr r0, [r4, #0x0] - bic r0, r0, #0x10 - str r0, [r4, #0x0] -_020BAD2C: - ldr r2, _020BAD70 ; =UNK_021CEF7C - ldr r0, [r2, #0x0] - cmp r0, #0x0 - beq _020BAD4C - mov r1, r4 - bl FUN_020BADE4 - add sp, sp, #0x188 - ldmia sp!, {r4,pc} -_020BAD4C: - add r0, sp, #0x0 - mov r1, r4 - str r0, [r2, #0x0] - bl FUN_020BADE4 - ldr r0, _020BAD70 ; =UNK_021CEF7C - mov r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0x188 - ldmia sp!, {r4,pc} - .balign 4 -_020BAD70: .word UNK_021CEF7C - arm_func_end FUN_020BAC98 - - arm_func_start FUN_020BAD74 -FUN_020BAD74: ; 0x020BAD74 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} - mov r3, #0x1 - mov r4, #0x0 -_020BAD90: - ldrb r2, [r1, #0x19] - mov r5, r4 - cmp r2, #0x0 - ble _020BADD0 -_020BADA0: - add r2, r1, r5, lsl #0x1 - ldrh r2, [r2, #0x1a] - ands r2, r2, #0x100 - movne lr, r5, asr #0x5 - andne r2, r5, #0x1f - ldrne r12, [r0, lr, lsl #0x2] - add r5, r5, #0x1 - orrne r2, r12, r3, lsl r2 - strne r2, [r0, lr, lsl #0x2] - ldrb r2, [r1, #0x19] - cmp r5, r2 - blt _020BADA0 -_020BADD0: - ldr r1, [r1, #0x10] - cmp r1, #0x0 - bne _020BAD90 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BAD74 - - arm_func_start FUN_020BADE4 -FUN_020BADE4: ; 0x020BADE4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - mov r1, r5 - mov r0, #0x0 - mov r2, #0x188 - bl MIi_CpuClearFast - mov r0, #0x1 - str r0, [r5, #0xc4] - str r0, [r5, #0x8] - ldr r0, [r4, #0x30] - ldr r2, _020BAF60 ; =UNK_02106614 - cmp r0, #0x0 - strne r0, [r5, #0x0] - ldreq r1, [r4, #0x4] - ldreq r0, [r1, #0x4] - addeq r0, r1, r0 - streq r0, [r5, #0x0] - str r4, [r5, #0x4] - ldr r0, [r4, #0x4] - ldr r1, _020BAF64 ; =UNK_02106608 - add r0, r0, #0x40 - str r0, [r5, #0xd4] - ldr r12, [r4, #0x4] - ldr r0, _020BAF68 ; =UNK_02106620 - ldr r3, [r12, #0x8] - add r3, r12, r3 - str r3, [r5, #0xd8] - ldr r12, [r4, #0x4] - ldr r3, [r12, #0xc] - add r3, r12, r3 - str r3, [r5, #0xdc] - ldr r3, [r4, #0x4] - ldrb r3, [r3, #0x15] - ldr r2, [r2, r3, lsl #0x2] - str r2, [r5, #0xe8] - ldr r2, [r4, #0x4] - ldrb r2, [r2, #0x15] - ldr r1, [r1, r2, lsl #0x2] - str r1, [r5, #0xec] - ldr r1, [r4, #0x4] - ldrb r1, [r1, #0x16] - ldr r0, [r0, r1, lsl #0x2] - str r0, [r5, #0xf0] - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x1c] - str r0, [r5, #0xe0] - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x20] - str r0, [r5, #0xe4] - ldr r1, [r4, #0x20] - cmp r1, #0x0 - beq _020BAEE0 - ldrb r0, [r4, #0x24] - cmp r0, #0x20 - bhs _020BAEE0 - add r0, r5, r0, lsl #0x2 - str r1, [r0, #0xc] - ldrb r0, [r4, #0x24] - ldrb r1, [r4, #0x25] - add r0, r5, r0 - strb r1, [r0, #0x8c] -_020BAEE0: - ldr r0, [r4, #0x0] - ands r0, r0, #0x1 - ldrne r0, [r5, #0x8] - orrne r0, r0, #0x80 - strne r0, [r5, #0x8] - ldr r0, [r4, #0x0] - ands r0, r0, #0x2 - ldrne r0, [r5, #0x8] - orrne r0, r0, #0x100 - strne r0, [r5, #0x8] - ldr r0, [r4, #0x0] - ands r0, r0, #0x4 - ldrne r0, [r5, #0x8] - orrne r0, r0, #0x200 - strne r0, [r5, #0x8] - ldr r0, [r4, #0x0] - ands r0, r0, #0x8 - ldrne r0, [r5, #0x8] - orrne r0, r0, #0x400 - strne r0, [r5, #0x8] - ldr r1, [r4, #0x28] - cmp r1, #0x0 - beq _020BAF44 - mov r0, r5 - blx r1 -_020BAF44: - mov r0, r5 - bl FUN_020BAF6C - ldr r0, [r4, #0x0] - bic r0, r0, #0x1 - str r0, [r4, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BAF60: .word UNK_02106614 -_020BAF64: .word UNK_02106608 -_020BAF68: .word UNK_02106620 - arm_func_end FUN_020BADE4 - - arm_func_start FUN_020BAF6C -FUN_020BAF6C: ; 0x020BAF6C - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldr r6, _020BAFB4 ; =UNK_02106730 - add r4, r5, #0x8 -_020BAF7C: - ldr r1, [r4, #0x0] - mov r0, r5 - bic r1, r1, #0x40 - str r1, [r4, #0x0] - ldr r1, [r5, #0x0] - ldrb r3, [r1, #0x0] - and r1, r3, #0x1f - ldr r2, [r6, r1, lsl #0x2] - and r1, r3, #0xe0 - blx r2 - ldr r0, [r5, #0x8] - ands r0, r0, #0x20 - beq _020BAF7C - ldmia sp!, {r4-r6,pc} - .balign 4 -_020BAFB4: .word UNK_02106730 - arm_func_end FUN_020BAF6C - - arm_func_start FUN_020BAFB8 -FUN_020BAFB8: ; 0x020BAFB8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x6c - mov r6, r0 - ldr r12, [r6, #0x1c] - mov r4, r1 - mov r5, r2 - mov r7, r3 - cmp r12, #0x1000 - beq _020BAFF8 - add r1, sp, #0x54 - mov r0, #0x1b - mov r2, #0x3 - str r12, [sp, #0x54] - str r12, [sp, #0x58] - str r12, [sp, #0x5c] - bl FUN_020BB1C0 -_020BAFF8: - cmp r7, #0x0 - beq _020BB150 - ldr r0, [r6, #0x8] - add r3, r6, r0 - ldrh r0, [r3, #0xa] - add r2, r3, #0x4 - ldrh r1, [r2, r0] - add r0, r2, r0 - mla r0, r1, r4, r0 - ldr r0, [r0, #0x4] - add r4, r3, r0 - ldr r0, [r4, #0xc] - ands r0, r0, #0x1f0000 - addeq sp, sp, #0x6c - ldmeqia sp!, {r4-r7,pc} - ldr r0, _020BB1B4 ; =0x00293130 - str r0, [sp, #0x0] - ldr r0, [r4, #0x4] - str r0, [sp, #0x4] - ldr r0, [r4, #0x8] - str r0, [sp, #0x8] - ldr r1, [r4, #0xc] - str r1, [sp, #0xc] - ldrh r0, [r4, #0x1e] - ands r0, r0, #0x20 - bicne r0, r1, #0x1f0000 - ldr r1, _020BB1B8 ; =0x00002B2A - strne r0, [sp, #0xc] - str r1, [sp, #0x10] - ldr r2, [r4, #0x14] - ldr r0, [sp, #0x0] - str r2, [sp, #0x14] - ldrh r3, [r4, #0x1c] - add r1, sp, #0x4 - mov r2, #0x6 - str r3, [sp, #0x18] - bl FUN_020BB1C0 - ldrh r0, [r4, #0x1e] - ands r0, r0, #0x1 - beq _020BB150 - ldrb r12, [r6, #0x16] - mov r3, #0x8 - ldr r1, _020BB1BC ; =UNK_02106620 - str r3, [sp, #0x1c] - ldrh r2, [r4, #0x20] - add r0, r4, #0x2c - ldr r1, [r1, r12, lsl #0x2] - strh r2, [sp, #0x48] - ldrh r2, [r4, #0x22] - strh r2, [sp, #0x4a] - ldr r2, [r4, #0x24] - str r2, [sp, #0x4c] - ldr r2, [r4, #0x28] - str r2, [sp, #0x50] - ldrh r2, [r4, #0x1e] - ands r2, r2, #0x2 - orrne r2, r3, #0x1 - strne r2, [sp, #0x1c] - bne _020BB0F8 - ldr r2, [r0, #0x0] - str r2, [sp, #0x34] - ldr r2, [r0, #0x4] - add r0, r0, #0x8 - str r2, [sp, #0x38] -_020BB0F8: - ldrh r2, [r4, #0x1e] - ands r2, r2, #0x4 - ldrne r2, [sp, #0x1c] - orrne r2, r2, #0x2 - strne r2, [sp, #0x1c] - bne _020BB124 - ldrsh r2, [r0, #0x0] - strh r2, [sp, #0x3c] - ldrsh r2, [r0, #0x2] - add r0, r0, #0x4 - strh r2, [sp, #0x3e] -_020BB124: - ldrh r2, [r4, #0x1e] - ands r2, r2, #0x8 - ldreq r2, [r0, #0x0] - streq r2, [sp, #0x40] - ldreq r0, [r0, #0x4] - streq r0, [sp, #0x44] - ldrne r0, [sp, #0x1c] - orrne r0, r0, #0x4 - strne r0, [sp, #0x1c] - add r0, sp, #0x1c - blx r1 -_020BB150: - ldr r0, [r6, #0xc] - add r2, r6, r0 - ldrh r0, [r2, #0x6] - ldrh r1, [r2, r0] - add r0, r2, r0 - mla r0, r1, r5, r0 - ldr r0, [r0, #0x4] - add r2, r2, r0 - ldr r0, [r2, #0x8] - ldr r1, [r2, #0xc] - add r0, r2, r0 - bl FUN_020BB2B0 - ldr r3, [r6, #0x20] - cmp r3, #0x1000 - addeq sp, sp, #0x6c - ldmeqia sp!, {r4-r7,pc} - add r1, sp, #0x60 - mov r0, #0x1b - mov r2, #0x3 - str r3, [sp, #0x60] - str r3, [sp, #0x64] - str r3, [sp, #0x68] - bl FUN_020BB1C0 - add sp, sp, #0x6c - ldmia sp!, {r4-r7,pc} - .balign 4 -_020BB1B4: .word 0x00293130 -_020BB1B8: .word 0x00002B2A -_020BB1BC: .word UNK_02106620 - arm_func_end FUN_020BAFB8 - - arm_func_start FUN_020BB1C0 -FUN_020BB1C0: ; 0x020BB1C0 - stmdb sp!, {r4-r6,lr} - ldr r3, _020BB2A4 ; =UNK_021D1C80 - mov r6, r0 - ldr r12, [r3, #0x0] - mov r5, r1 - mov r4, r2 - cmp r12, #0x0 - beq _020BB278 - ldr r0, _020BB2A8 ; =UNK_021D1C84 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020BB24C - ldr r2, [r12, #0x0] - add r0, r2, #0x1 - add r1, r0, r4 - cmp r1, #0xc0 - bhi _020BB24C - str r0, [r12, #0x0] - ldr r0, [r3, #0x0] - cmp r4, #0x0 - add r0, r0, r2, lsl #0x2 - str r6, [r0, #0x4] - ldmeqia sp!, {r4-r6,pc} - ldr r2, [r3, #0x0] - mov r0, r5 - ldr r1, [r2], #0x4 - add r1, r2, r1, lsl #0x2 - mov r2, r4, lsl #0x2 - bl MIi_CpuCopyFast - ldr r0, _020BB2A4 ; =UNK_021D1C80 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x0] - add r0, r0, r4 - str r0, [r1, #0x0] - ldmia sp!, {r4-r6,pc} -_020BB24C: - ldr r0, [r12, #0x0] - cmp r0, #0x0 - beq _020BB260 - bl FUN_020BB394 - b _020BB28C -_020BB260: - ldr r0, _020BB2A8 ; =UNK_021D1C84 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020BB28C - bl FUN_020BB37C - b _020BB28C -_020BB278: - ldr r0, _020BB2A8 ; =UNK_021D1C84 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020BB28C - bl FUN_020BB37C -_020BB28C: - ldr r1, _020BB2AC ; =0x04000400 - mov r0, r5 - mov r2, r4, lsl #0x2 - str r6, [r1, #0x0] - bl MIi_CpuSend32 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020BB2A4: .word UNK_021D1C80 -_020BB2A8: .word UNK_021D1C84 -_020BB2AC: .word 0x04000400 - arm_func_end FUN_020BB1C0 - - arm_func_start FUN_020BB2B0 -FUN_020BB2B0: ; 0x020BB2B0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - cmp r4, #0x100 - blo _020BB2DC - ldr r1, _020BB360 ; =GXi_DmaId - mvn r0, #0x0 - ldr r1, [r1, #0x0] - cmp r1, r0 - bne _020BB2F8 -_020BB2DC: - mov r2, r4, lsr #0x2 - ldr r0, [r5, #0x0] - add r1, r5, #0x4 - sub r2, r2, #0x1 - bl FUN_020BB1C0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020BB2F8: - bl FUN_020BB394 - ldr r0, _020BB364 ; =UNK_021D1C88 - ldr r1, _020BB368 ; =UNK_021D1C84 - ldr r0, [r0, #0x0] - mov r2, #0x1 - str r2, [r1, #0x0] - cmp r0, #0x0 - beq _020BB33C - ldr r0, _020BB360 ; =GXi_DmaId - str r1, [sp, #0x0] - ldr r0, [r0, #0x0] - ldr r3, _020BB36C ; =FUN_020BB370 - mov r1, r5 - mov r2, r4 - bl MI_SendGXCommandAsyncFast - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020BB33C: - ldr r0, _020BB360 ; =GXi_DmaId - str r1, [sp, #0x0] - ldr r0, [r0, #0x0] - ldr r3, _020BB36C ; =FUN_020BB370 - mov r1, r5 - mov r2, r4 - bl MI_SendGXCommandAsync - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BB360: .word GXi_DmaId -_020BB364: .word UNK_021D1C88 -_020BB368: .word UNK_021D1C84 -_020BB36C: .word FUN_020BB370 - arm_func_end FUN_020BB2B0 - - arm_func_start FUN_020BB370 -FUN_020BB370: ; 0x020BB370 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - arm_func_end FUN_020BB370 - - arm_func_start FUN_020BB37C -FUN_020BB37C: ; 0x020BB37C - ldr r0, _020BB390 ; =UNK_021D1C84 -_020BB380: - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _020BB380 - bx lr - .balign 4 -_020BB390: .word UNK_021D1C84 - arm_func_end FUN_020BB37C - - arm_func_start FUN_020BB394 -FUN_020BB394: ; 0x020BB394 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020BB3FC ; =UNK_021D1C84 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020BB3B0 - bl FUN_020BB37C -_020BB3B0: - ldr r0, _020BB400 ; =UNK_021D1C80 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r2, [r0, #0x0] - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r1, _020BB404 ; =0x04000400 - add r0, r0, #0x4 - mov r2, r2, lsl #0x2 - bl MIi_CpuSend32 - ldr r0, _020BB400 ; =UNK_021D1C80 - mov r1, #0x0 - ldr r0, [r0, #0x0] - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020BB3FC: .word UNK_021D1C84 -_020BB400: .word UNK_021D1C80 -_020BB404: .word 0x04000400 - arm_func_end FUN_020BB394 - - arm_func_start FUN_020BB408 -FUN_020BB408: ; 0x020BB408 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x1c - mov r5, r1 - mov r4, r2 - ldr r6, _020BB594 ; =UNK_021CED20 - ldr r1, _020BB598 ; =UNK_021CED64 - add r2, sp, #0x10 - bl MTX_MultVec43 - ldr r1, [sp, #0x14] - ldr r0, [r6, #0x1c] - ldr r2, [sp, #0x10] - smull r8, r7, r1, r0 - ldr r0, [r6, #0xc] - ldr r3, [sp, #0x18] - smlal r8, r7, r2, r0 - ldr r1, [r6, #0x2c] - ldr r0, [r6, #0x3c] - smlal r8, r7, r3, r1 - mov r1, r8, lsr #0xc - orr r1, r1, r7, lsl #0x14 - add r0, r1, r0 - bl FX_InvAsync - ldr r2, [sp, #0x14] - ldr r1, [r6, #0x10] - ldr r0, [r6, #0x14] - smull lr, r8, r2, r1 - smull r12, r9, r2, r0 - ldr r1, [sp, #0x10] - ldr r3, [r6, #0x0] - ldr r0, [sp, #0x18] - smlal lr, r8, r1, r3 - ldr r7, [r6, #0x20] - ldr r2, [r6, #0x30] - smlal lr, r8, r0, r7 - mov r3, lr, lsr #0xc - orr r3, r3, r8, lsl #0x14 - add r7, r3, r2 - ldr r3, [r6, #0x4] - ldr r8, [r6, #0x24] - smlal r12, r9, r1, r3 - smlal r12, r9, r0, r8 - mov r0, r12, lsr #0xc - ldr r2, [r6, #0x34] - orr r0, r0, r9, lsl #0x14 - add r6, r0, r2 - bl FX_GetDivResultFx64c - mov r2, r7, asr #0x1f - umull r9, lr, r0, r7 - mla lr, r0, r2, lr - mov r3, #0x80000000 - mla lr, r1, r7, lr - adds r9, r9, r3 - adc r2, lr, #0x0 - add r2, r2, #0x1000 - add r2, r2, r2, lsr #0x1f - mov r7, r2, asr #0x1 - umull lr, r2, r0, r6 - mov r12, r6, asr #0x1f - mla r2, r0, r12, r2 - mla r2, r1, r6, r2 - adds r3, lr, r3 - adc r0, r2, #0x0 - add r0, r0, #0x1000 - add r0, r0, r0, lsr #0x1f - mov r8, #0x0 - mov r6, r0, asr #0x1 - cmp r7, #0x0 - blt _020BB530 - cmp r6, #0x0 - blt _020BB530 - cmp r7, #0x1000 - bgt _020BB530 - cmp r6, #0x1000 - ble _020BB534 -_020BB530: - mvn r8, #0x0 -_020BB534: - add r0, sp, #0x0 - add r1, sp, #0x4 - add r2, sp, #0x8 - add r3, sp, #0xc - bl FUN_020B8200 - ldr r2, [sp, #0x0] - ldr r0, [sp, #0x8] - ldr r12, [sp, #0xc] - sub r0, r0, r2 - mul r0, r7, r0 - add r1, r0, #0x800 - ldr r3, [sp, #0x4] - add r1, r2, r1, asr #0xc - sub r0, r12, r3 - mul r0, r6, r0 - str r1, [r5, #0x0] - ldr r1, [sp, #0x4] - add r0, r0, #0x800 - rsb r1, r1, #0xbf - sub r1, r1, r0, asr #0xc - mov r0, r8 - str r1, [r4, #0x0] - add sp, sp, #0x1c - ldmia sp!, {r4-r9,pc} - .balign 4 -_020BB594: .word UNK_021CED20 -_020BB598: .word UNK_021CED64 - arm_func_end FUN_020BB408 - - arm_func_start FUN_020BB59C -FUN_020BB59C: ; 0x020BB59C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r1, [r5, #0x0] - ldr r0, _020BB7C8 ; =0x30415642 - cmp r1, r0 - bhi _020BB5F4 - cmp r1, r0 - bhs _020BB7B0 - ldr r0, _020BB7CC ; =0x30414D42 - cmp r1, r0 - bhi _020BB5E4 - cmp r1, r0 - bhs _020BB7B0 - ldr r0, _020BB7D0 ; =0x30414342 - cmp r1, r0 - beq _020BB7B0 - b _020BB7BC -_020BB5E4: - ldr r0, _020BB7D4 ; =0x30415442 - cmp r1, r0 - beq _020BB7B0 - b _020BB7BC -_020BB5F4: - ldr r0, _020BB7D8 ; =0x30505442 - cmp r1, r0 - bhi _020BB618 - cmp r1, r0 - bhs _020BB7B0 - ldr r0, _020BB7DC ; =0x30444D42 - cmp r1, r0 - beq _020BB624 - b _020BB7BC -_020BB618: - ldr r0, _020BB7E0 ; =0x30585442 - cmp r1, r0 - bne _020BB7BC -_020BB624: - mov r11, #0x1 - mov r0, r5 - mov r9, r11 - mov r8, r11 - bl FUN_020BC0FC - movs r4, r0 - beq _020BB77C - bl FUN_020B7E1C - mov r7, r0 - mov r0, r4 - bl FUN_020B7E10 - mov r6, r0 - mov r0, r4 - bl FUN_020B7CE4 - mov r10, r0 - cmp r7, #0x0 - beq _020BB68C - ldr r0, _020BB7E4 ; =UNK_021064B8 - mov r1, #0x0 - ldr r3, [r0, #0x0] - mov r0, r7 - mov r2, r1 - blx r3 - movs r7, r0 - moveq r11, #0x0 - b _020BB690 -_020BB68C: - mov r7, #0x0 -_020BB690: - cmp r6, #0x0 - beq _020BB6BC - ldr r1, _020BB7E4 ; =UNK_021064B8 - mov r0, r6 - ldr r3, [r1, #0x0] - mov r1, #0x1 - mov r2, #0x0 - blx r3 - movs r6, r0 - moveq r9, #0x0 - b _020BB6C0 -_020BB6BC: - mov r6, #0x0 -_020BB6C0: - cmp r10, #0x0 - beq _020BB6F0 - ldr r1, _020BB7E8 ; =UNK_021064C0 - ldrh r2, [r4, #0x20] - ldr r3, [r1, #0x0] - mov r0, r10 - and r1, r2, #0x8000 - mov r2, #0x0 - blx r3 - movs r10, r0 - moveq r8, #0x0 - b _020BB6F4 -_020BB6F0: - mov r10, #0x0 -_020BB6F4: - cmp r11, #0x0 - beq _020BB70C - cmp r9, #0x0 - beq _020BB70C - cmp r8, #0x0 - bne _020BB748 -_020BB70C: - ldr r1, _020BB7EC ; =UNK_021064C4 - mov r0, r10 - ldr r1, [r1, #0x0] - blx r1 - ldr r1, _020BB7F0 ; =UNK_021064BC - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - ldr r1, _020BB7F0 ; =UNK_021064BC - mov r0, r7 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020BB748: - mov r0, r4 - mov r1, r7 - mov r2, r6 - bl FUN_020B7DFC - mov r0, r4 - mov r1, r10 - bl FUN_020B7CDC - mov r0, r4 - mov r1, #0x1 - bl FUN_020B7D28 - mov r0, r4 - mov r1, #0x1 - bl FUN_020B7C78 -_020BB77C: - ldr r1, [r5, #0x0] - ldr r0, _020BB7DC ; =0x30444D42 - cmp r1, r0 - bne _020BB7A4 - mov r0, r5 - bl FUN_020BC13C - cmp r4, #0x0 - beq _020BB7A4 - mov r1, r4 - bl FUN_020B7790 -_020BB7A4: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020BB7B0: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020BB7BC: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020BB7C8: .word 0x30415642 -_020BB7CC: .word 0x30414D42 -_020BB7D0: .word 0x30414342 -_020BB7D4: .word 0x30415442 -_020BB7D8: .word 0x30505442 -_020BB7DC: .word 0x30444D42 -_020BB7E0: .word 0x30585442 -_020BB7E4: .word UNK_021064B8 -_020BB7E8: .word UNK_021064C0 -_020BB7EC: .word UNK_021064C4 -_020BB7F0: .word UNK_021064BC - arm_func_end FUN_020BB59C - - arm_func_start FUN_020BB7F4 -FUN_020BB7F4: ; 0x020BB7F4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl G3X_Init - bl FUN_020B84D8 - ldr r1, _020BB820 ; =0x04000600 - ldr r0, [r1, #0x0] - bic r0, r0, #0xc0000000 - orr r0, r0, #0x80000000 - str r0, [r1, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020BB820: .word 0x04000600 - arm_func_end FUN_020BB7F4 - - arm_func_start FUN_020BB824 -FUN_020BB824: ; 0x020BB824 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x40 - mov r6, r0 - mov r5, r1 - bl FUN_020BB394 - ldr r0, _020BB8B4 ; =0x04000440 - mov r2, #0x0 - ldr r1, _020BB8B8 ; =0x04000444 - str r2, [r0, #0x0] - ldr r0, _020BB8BC ; =0x04000454 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - cmp r6, #0x0 - beq _020BB87C - add r4, sp, #0x0 -_020BB860: - mov r0, r4 - bl G3X_GetClipMtx - cmp r0, #0x0 - bne _020BB860 - add r0, sp, #0x0 - mov r1, r6 - bl MTX_Copy44To43_ -_020BB87C: - cmp r5, #0x0 - beq _020BB894 -_020BB884: - mov r0, r5 - bl G3X_GetVectorMtx - cmp r0, #0x0 - bne _020BB884 -_020BB894: - ldr r1, _020BB8C0 ; =0x04000448 - mov r2, #0x1 - ldr r0, _020BB8B4 ; =0x04000440 - str r2, [r1, #0x0] - mov r1, #0x2 - str r1, [r0, #0x0] - add sp, sp, #0x40 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020BB8B4: .word 0x04000440 -_020BB8B8: .word 0x04000444 -_020BB8BC: .word 0x04000454 -_020BB8C0: .word 0x04000448 - arm_func_end FUN_020BB824 - - arm_func_start thunk_FUN_020ae84c -thunk_FUN_020ae84c: ; 0x020BB8C4 - ldr ip, _020BB8CC ; =FUN_020AE84C - bx r12 - .balign 4 -_020BB8CC: .word FUN_020AE84C - arm_func_end thunk_FUN_020ae84c - - arm_func_start FUN_020BB8D0 -FUN_020BB8D0: ; 0x020BB8D0 - stmdb sp!, {r4,lr} - mov r4, r0 - mov r0, r1 - mov r1, r2 - bl FUN_020B81B0 - mov r1, r0 - mov r0, r4 - bl FUN_020AE868 - ldmia sp!, {r4,pc} - arm_func_end FUN_020BB8D0 - - arm_func_start FUN_020BB8F4 -FUN_020BB8F4: ; 0x020BB8F4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BB910: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBC74 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BB910 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB8F4 - - arm_func_start FUN_020BB934 -FUN_020BB934: ; 0x020BB934 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BB950: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBCB8 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BB950 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB934 - - arm_func_start FUN_020BB974 -FUN_020BB974: ; 0x020BB974 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BB990: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBCFC - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BB990 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB974 - - arm_func_start FUN_020BB9B4 -FUN_020BB9B4: ; 0x020BB9B4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BB9D0: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBD40 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BB9D0 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB9B4 - - arm_func_start FUN_020BB9F4 -FUN_020BB9F4: ; 0x020BB9F4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBA10: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBD84 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBA10 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB9F4 - - arm_func_start FUN_020BBA34 -FUN_020BBA34: ; 0x020BBA34 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBA50: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBDC8 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBA50 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBA34 - - arm_func_start FUN_020BBA74 -FUN_020BBA74: ; 0x020BBA74 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBA90: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBE0C - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBA90 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBA74 - - arm_func_start FUN_020BBAB4 -FUN_020BBAB4: ; 0x020BBAB4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBAD0: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBE50 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBAD0 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBAB4 - - arm_func_start FUN_020BBAF4 -FUN_020BBAF4: ; 0x020BBAF4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBB10: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBE94 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBB10 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBAF4 - - arm_func_start FUN_020BBB34 -FUN_020BBB34: ; 0x020BBB34 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBB50: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBED8 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBB50 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBB34 - - arm_func_start FUN_020BBB74 -FUN_020BBB74: ; 0x020BBB74 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBB90: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBF1C - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBB90 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBB74 - - arm_func_start FUN_020BBBB4 -FUN_020BBBB4: ; 0x020BBBB4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBBD0: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBF60 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBBD0 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBBB4 - - arm_func_start FUN_020BBBF4 -FUN_020BBBF4: ; 0x020BBBF4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBC10: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBFA4 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBC10 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBBF4 - - arm_func_start FUN_020BBC34 -FUN_020BBC34: ; 0x020BBC34 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrb r0, [r6, #0x18] - mov r5, r1 - mov r4, #0x0 - cmp r0, #0x0 - ldmlsia sp!, {r4-r6,pc} -_020BBC50: - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_020BBFE8 - ldrb r0, [r6, #0x18] - add r4, r4, #0x1 - cmp r4, r0 - blo _020BBC50 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBC34 - - arm_func_start FUN_020BBC74 -FUN_020BBC74: ; 0x020BBC74 - ldr r3, [r0, #0x8] - cmp r2, #0x0 - add r12, r0, r3 - ldrh r0, [r12, #0xa] - add r3, r12, #0x4 - ldrh r2, [r3, r0] - add r0, r3, r0 - mla r0, r2, r1, r0 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrne r0, [r1, #0xc] - orrne r0, r0, #0x800 - strne r0, [r1, #0xc] - ldreq r0, [r1, #0xc] - biceq r0, r0, #0x800 - streq r0, [r1, #0xc] - bx lr - arm_func_end FUN_020BBC74 - - arm_func_start FUN_020BBCB8 -FUN_020BBCB8: ; 0x020BBCB8 - ldr r3, [r0, #0x8] - cmp r2, #0x0 - add r12, r0, r3 - ldrh r0, [r12, #0xa] - add r3, r12, #0x4 - ldrh r2, [r3, r0] - add r0, r3, r0 - mla r0, r2, r1, r0 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrne r0, [r1, #0xc] - orrne r0, r0, #0x1000 - strne r0, [r1, #0xc] - ldreq r0, [r1, #0xc] - biceq r0, r0, #0x1000 - streq r0, [r1, #0xc] - bx lr - arm_func_end FUN_020BBCB8 - - arm_func_start FUN_020BBCFC -FUN_020BBCFC: ; 0x020BBCFC - ldr r3, [r0, #0x8] - cmp r2, #0x0 - add r12, r0, r3 - ldrh r0, [r12, #0xa] - add r3, r12, #0x4 - ldrh r2, [r3, r0] - add r0, r3, r0 - mla r0, r2, r1, r0 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrne r0, [r1, #0xc] - orrne r0, r0, #0x2000 - strne r0, [r1, #0xc] - ldreq r0, [r1, #0xc] - biceq r0, r0, #0x2000 - streq r0, [r1, #0xc] - bx lr - arm_func_end FUN_020BBCFC - - arm_func_start FUN_020BBD40 -FUN_020BBD40: ; 0x020BBD40 - ldr r3, [r0, #0x8] - cmp r2, #0x0 - add r12, r0, r3 - ldrh r0, [r12, #0xa] - add r3, r12, #0x4 - ldrh r2, [r3, r0] - add r0, r3, r0 - mla r0, r2, r1, r0 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrne r0, [r1, #0xc] - orrne r0, r0, #0x4000 - strne r0, [r1, #0xc] - ldreq r0, [r1, #0xc] - biceq r0, r0, #0x4000 - streq r0, [r1, #0xc] - bx lr - arm_func_end FUN_020BBD40 - - arm_func_start FUN_020BBD84 -FUN_020BBD84: ; 0x020BBD84 - ldr r3, [r0, #0x8] - cmp r2, #0x0 - add r12, r0, r3 - ldrh r0, [r12, #0xa] - add r3, r12, #0x4 - ldrh r2, [r3, r0] - add r0, r3, r0 - mla r0, r2, r1, r0 - ldr r0, [r0, #0x4] - add r1, r12, r0 - ldrne r0, [r1, #0xc] - orrne r0, r0, #0x8000 - strne r0, [r1, #0xc] - ldreq r0, [r1, #0xc] - biceq r0, r0, #0x8000 - streq r0, [r1, #0xc] - bx lr - arm_func_end FUN_020BBD84 - - arm_func_start FUN_020BBDC8 -FUN_020BBDC8: ; 0x020BBDC8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x8] - add lr, r0, r3 - ldrh r0, [lr, #0xa] - add r12, lr, #0x4 - ldrh r3, [r12, r0] - add r0, r12, r0 - mla r0, r3, r1, r0 - ldr r0, [r0, #0x4] - add r1, lr, r0 - ldr r0, [r1, #0xc] - bic r0, r0, #0x1f0000 - orr r0, r0, r2, lsl #0x10 - str r0, [r1, #0xc] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BBDC8 - - arm_func_start FUN_020BBE0C -FUN_020BBE0C: ; 0x020BBE0C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x8] - add lr, r0, r3 - ldrh r0, [lr, #0xa] - add r12, lr, #0x4 - ldrh r3, [r12, r0] - add r0, r12, r0 - mla r0, r3, r1, r0 - ldr r0, [r0, #0x4] - add r1, lr, r0 - ldr r0, [r1, #0xc] - bic r0, r0, #0x3f000000 - orr r0, r0, r2, lsl #0x18 - str r0, [r1, #0xc] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BBE0C - - arm_func_start FUN_020BBE50 -FUN_020BBE50: ; 0x020BBE50 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x8] - add lr, r0, r3 - ldrh r0, [lr, #0xa] - add r12, lr, #0x4 - ldrh r3, [r12, r0] - add r0, r12, r0 - mla r0, r3, r1, r0 - ldr r0, [r0, #0x4] - add r1, lr, r0 - ldr r0, [r1, #0xc] - bic r0, r0, #0xc0 - orr r0, r0, r2, lsl #0x6 - str r0, [r1, #0xc] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BBE50 - - arm_func_start FUN_020BBE94 -FUN_020BBE94: ; 0x020BBE94 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x8] - add lr, r0, r3 - ldrh r0, [lr, #0xa] - add r12, lr, #0x4 - ldrh r3, [r12, r0] - add r0, r12, r0 - mla r0, r3, r1, r0 - ldr r0, [r0, #0x4] - add r1, lr, r0 - ldr r0, [r1, #0xc] - bic r0, r0, #0x30 - orr r0, r0, r2, lsl #0x4 - str r0, [r1, #0xc] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BBE94 - - arm_func_start FUN_020BBED8 -FUN_020BBED8: ; 0x020BBED8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, [r0, #0x8] - add lr, r0, r3 - ldrh r0, [lr, #0xa] - add r12, lr, #0x4 - ldrh r3, [r12, r0] - add r0, r12, r0 - mla r0, r3, r1, r0 - ldr r0, [r0, #0x4] - add r1, lr, r0 - ldr r0, [r1, #0xc] - bic r0, r0, #0xf - orr r0, r0, r2 - str r0, [r1, #0xc] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BBED8 - - arm_func_start FUN_020BBF1C -FUN_020BBF1C: ; 0x020BBF1C - stmdb sp!, {r4,lr} - ldr r12, [r0, #0x8] - ldr r3, _020BBF5C ; =0x8000FFFF - add r4, r0, r12 - ldrh r0, [r4, #0xa] - add lr, r4, #0x4 - ldrh r12, [lr, r0] - add r0, lr, r0 - mla r0, r12, r1, r0 - ldr r0, [r0, #0x4] - add r1, r4, r0 - ldr r0, [r1, #0x8] - and r0, r0, r3 - orr r0, r0, r2, lsl #0x10 - str r0, [r1, #0x8] - ldmia sp!, {r4,pc} - .balign 4 -_020BBF5C: .word 0x8000FFFF - arm_func_end FUN_020BBF1C - - arm_func_start FUN_020BBF60 -FUN_020BBF60: ; 0x020BBF60 - stmdb sp!, {r4,lr} - ldr r12, [r0, #0x8] - mov r3, #0x8000 - add r4, r0, r12 - ldrh r12, [r4, #0xa] - add lr, r4, #0x4 - rsb r0, r3, #0x0 - ldrh r3, [lr, r12] - add r12, lr, r12 - mla r1, r3, r1, r12 - ldr r1, [r1, #0x4] - add r3, r4, r1 - ldr r1, [r3, #0x8] - and r0, r1, r0 - orr r0, r0, r2 - str r0, [r3, #0x8] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BBF60 - - arm_func_start FUN_020BBFA4 -FUN_020BBFA4: ; 0x020BBFA4 - stmdb sp!, {r4,lr} - ldr r12, [r0, #0x8] - ldr r3, _020BBFE4 ; =0x8000FFFF - add r4, r0, r12 - ldrh r0, [r4, #0xa] - add lr, r4, #0x4 - ldrh r12, [lr, r0] - add r0, lr, r0 - mla r0, r12, r1, r0 - ldr r0, [r0, #0x4] - add r1, r4, r0 - ldr r0, [r1, #0x4] - and r0, r0, r3 - orr r0, r0, r2, lsl #0x10 - str r0, [r1, #0x4] - ldmia sp!, {r4,pc} - .balign 4 -_020BBFE4: .word 0x8000FFFF - arm_func_end FUN_020BBFA4 - - arm_func_start FUN_020BBFE8 -FUN_020BBFE8: ; 0x020BBFE8 - stmdb sp!, {r4,lr} - ldr r12, [r0, #0x8] - mov r3, #0x8000 - add r4, r0, r12 - ldrh r12, [r4, #0xa] - add lr, r4, #0x4 - rsb r0, r3, #0x0 - ldrh r3, [lr, r12] - add r12, lr, r12 - mla r1, r3, r1, r12 - ldr r1, [r1, #0x4] - add r3, r4, r1 - ldr r1, [r3, #0x4] - and r0, r1, r0 - orr r0, r0, r2 - str r0, [r3, #0x4] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BBFE8 - - arm_func_start FUN_020BC02C -FUN_020BC02C: ; 0x020BC02C - stmdb sp!, {r4-r6,lr} - ldrb r4, [r0, #0x18] - ldr r3, [r0, #0x8] - mov lr, #0x0 - cmp r4, #0x0 - add r12, r0, r3 - ldmlsia sp!, {r4-r6,pc} - mvn r3, r2 - add r0, r12, #0x4 -_020BC050: - ldrh r5, [r12, #0xa] - cmp r1, #0x0 - ldrh r6, [r0, r5] - add r5, r0, r5 - mla r5, r6, lr, r5 - ldr r5, [r5, #0x4] - add lr, lr, #0x1 - add r6, r12, r5 - ldrne r5, [r6, #0x10] - orrne r5, r5, r2 - strne r5, [r6, #0x10] - ldreq r5, [r6, #0x10] - andeq r5, r5, r3 - streq r5, [r6, #0x10] - cmp lr, r4 - blo _020BC050 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BC02C - - arm_func_start FUN_020BC094 -FUN_020BC094: ; 0x020BC094 - stmdb sp!, {r4-r6,lr} - ldrb r4, [r0, #0x18] - ldr r3, [r0, #0x8] - mov lr, #0x0 - cmp r4, #0x0 - add r12, r0, r3 - ldmlsia sp!, {r4-r6,pc} - mvn r3, r2 - add r0, r12, #0x4 -_020BC0B8: - ldrh r5, [r12, #0xa] - cmp r1, #0x0 - ldrh r6, [r0, r5] - add r5, r0, r5 - mla r5, r6, lr, r5 - ldr r5, [r5, #0x4] - add lr, lr, #0x1 - add r6, r12, r5 - ldrneh r5, [r6, #0x1e] - orrne r5, r5, r2 - strneh r5, [r6, #0x1e] - ldreqh r5, [r6, #0x1e] - andeq r5, r5, r3 - streqh r5, [r6, #0x1e] - cmp lr, r4 - blo _020BC0B8 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BC094 - - arm_func_start FUN_020BC0FC -FUN_020BC0FC: ; 0x020BC0FC - ldrh r2, [r0, #0xc] - ldrh r1, [r0, #0xe] - add r3, r0, r2 - cmp r1, #0x1 - bne _020BC12C - ldr r2, [r0, #0x0] - ldr r1, _020BC138 ; =0x30585442 - cmp r2, r1 - ldreq r1, [r3, #0x0] - addeq r0, r0, r1 - movne r0, #0x0 - bx lr -_020BC12C: - ldr r1, [r3, #0x4] - add r0, r0, r1 - bx lr - .balign 4 -_020BC138: .word 0x30585442 - arm_func_end FUN_020BC0FC - - arm_func_start FUN_020BC13C -FUN_020BC13C: ; 0x020BC13C - ldrh r1, [r0, #0xc] - ldr r1, [r0, r1] - add r0, r0, r1 - bx lr - arm_func_end FUN_020BC13C - - arm_func_start FUN_020BC14C -FUN_020BC14C: ; 0x020BC14C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldrb r2, [r0, #0x1] - cmp r2, #0x10 - bhs _020BC1E4 - cmp r2, #0x0 - ldr lr, [r1, #0x0] - ldr r12, [r1, #0x4] - ldr r3, [r1, #0x8] - ldr r2, [r1, #0xc] - mov r4, #0x0 - bls _020BC294 - ldrh r5, [r0, #0x6] - mov r1, r4 - add r6, r0, r5 - ldrh r5, [r6, #0x2] - add r6, r6, r5 -_020BC190: - ldr r5, [r6, r1] - add r7, r6, r1 - cmp r5, lr - bne _020BC1CC - ldr r5, [r7, #0x4] - cmp r5, r12 - bne _020BC1CC - ldr r5, [r7, #0x8] - cmp r5, r3 - bne _020BC1CC - ldr r5, [r7, #0xc] - cmp r5, r2 - addeq sp, sp, #0x4 - moveq r0, r4 - ldmeqia sp!, {r4-r7,pc} -_020BC1CC: - ldrb r5, [r0, #0x1] - add r4, r4, #0x1 - add r1, r1, #0x10 - cmp r4, r5 - blo _020BC190 - b _020BC294 -_020BC1E4: - add r3, r0, #0x8 - ldrb r2, [r3, #0x1] - cmp r2, #0x0 - beq _020BC294 - ldrb r5, [r3, r2, lsl #0x2] - ldrb r4, [r3, #0x0] - add r2, r3, r2, lsl #0x2 - cmp r4, r5 - bls _020BC238 -_020BC208: - mov r4, r5, asr #0x5 - ldr r12, [r1, r4, lsl #0x2] - and r4, r5, #0x1f - mov r4, r12, lsr r4 - and r4, r4, #0x1 - add r4, r2, r4 - ldrb r12, [r4, #0x1] - ldrb r4, [r2, #0x0] - ldrb r5, [r3, r12, lsl #0x2] - add r2, r3, r12, lsl #0x2 - cmp r4, r5 - bhi _020BC208 -_020BC238: - ldrh r4, [r0, #0x6] - ldr r3, [r1, #0x0] - add r12, r0, r4 - ldrh r4, [r12, #0x2] - ldrb r0, [r2, #0x3] - add r4, r12, r4 - ldr r2, [r4, r0, lsl #0x4] - add r4, r4, r0, lsl #0x4 - cmp r2, r3 - bne _020BC294 - ldr r3, [r4, #0x4] - ldr r2, [r1, #0x4] - cmp r3, r2 - bne _020BC294 - ldr r3, [r4, #0x8] - ldr r2, [r1, #0x8] - cmp r3, r2 - bne _020BC294 - ldr r2, [r4, #0xc] - ldr r1, [r1, #0xc] - cmp r2, r1 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} -_020BC294: - mvn r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BC14C - - arm_func_start FUN_020BC2A0 -FUN_020BC2A0: ; 0x020BC2A0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldrb r2, [r0, #0x1] - cmp r2, #0x10 - bhs _020BC34C - cmp r2, #0x0 - ldr lr, [r1, #0x0] - ldr r12, [r1, #0x4] - ldr r3, [r1, #0x8] - ldr r2, [r1, #0xc] - mov r4, #0x0 - bls _020BC404 - ldrh r5, [r0, #0x6] - mov r1, r4 - add r6, r0, r5 - ldrh r5, [r6, #0x2] - add r6, r6, r5 -_020BC2E4: - ldr r5, [r6, r1] - add r7, r6, r1 - cmp r5, lr - bne _020BC334 - ldr r5, [r7, #0x4] - cmp r5, r12 - bne _020BC334 - ldr r5, [r7, #0x8] - cmp r5, r3 - bne _020BC334 - ldr r5, [r7, #0xc] - cmp r5, r2 - bne _020BC334 - ldrh r2, [r0, #0x6] - add sp, sp, #0x4 - ldrh r1, [r0, r2] - add r0, r0, r2 - add r0, r0, #0x4 - mla r0, r1, r4, r0 - ldmia sp!, {r4-r7,pc} -_020BC334: - ldrb r5, [r0, #0x1] - add r4, r4, #0x1 - add r1, r1, #0x10 - cmp r4, r5 - blo _020BC2E4 - b _020BC404 -_020BC34C: - add r3, r0, #0x8 - ldrb r2, [r3, #0x1] - cmp r2, #0x0 - beq _020BC404 - ldrb r5, [r3, r2, lsl #0x2] - ldrb r4, [r3, #0x0] - add r2, r3, r2, lsl #0x2 - cmp r4, r5 - bls _020BC3A0 -_020BC370: - mov r4, r5, asr #0x5 - ldr r12, [r1, r4, lsl #0x2] - and r4, r5, #0x1f - mov r4, r12, lsr r4 - and r4, r4, #0x1 - add r4, r2, r4 - ldrb r12, [r4, #0x1] - ldrb r4, [r2, #0x0] - ldrb r5, [r3, r12, lsl #0x2] - add r2, r3, r12, lsl #0x2 - cmp r4, r5 - bhi _020BC370 -_020BC3A0: - ldrh r4, [r0, #0x6] - ldrb r2, [r2, #0x3] - ldr r3, [r1, #0x0] - add r0, r0, r4 - ldrh r4, [r0, #0x2] - add r12, r0, r4 - ldr r4, [r12, r2, lsl #0x4] - add r12, r12, r2, lsl #0x4 - cmp r4, r3 - bne _020BC404 - ldr r4, [r12, #0x4] - ldr r3, [r1, #0x4] - cmp r4, r3 - bne _020BC404 - ldr r4, [r12, #0x8] - ldr r3, [r1, #0x8] - cmp r4, r3 - bne _020BC404 - ldr r3, [r12, #0xc] - ldr r1, [r1, #0xc] - cmp r3, r1 - ldreqh r1, [r0], #0x4 - addeq sp, sp, #0x4 - mlaeq r0, r1, r2, r0 - ldmeqia sp!, {r4-r7,pc} -_020BC404: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BC2A0 - - arm_func_start FUN_020BC410 -FUN_020BC410: ; 0x020BC410 - ldrh r3, [r0, #0x12] - add r0, r0, #0xc - ldrh r2, [r0, r3] - add r0, r0, r3 - add r0, r0, #0x4 - mla r0, r2, r1, r0 - bx lr - arm_func_end FUN_020BC410 - - arm_func_start FUN_020BC42C -FUN_020BC42C: ; 0x020BC42C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r2 - bl FUN_020BC410 - ldrsh r1, [r0, #0x4] - ldrh r3, [r0, #0x6] - mul r2, r1, r4 - add r3, r5, r3 - mov r2, r2, lsr #0xc - b _020BC45C -_020BC458: - sub r2, r2, #0x1 -_020BC45C: - cmp r2, #0x0 - beq _020BC474 - mov r1, r2, lsl #0x2 - ldrh r1, [r3, r1] - cmp r1, r4 - bhs _020BC458 -_020BC474: - ldrh r1, [r0, #0x0] - b _020BC480 -_020BC47C: - add r2, r2, #0x1 -_020BC480: - add r0, r2, #0x1 - cmp r0, r1 - bhs _020BC49C - add r0, r3, r2, lsl #0x2 - ldrh r0, [r0, #0x4] - cmp r0, r4 - bls _020BC47C -_020BC49C: - add r0, r3, r2, lsl #0x2 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BC42C - - arm_func_start FUN_020BC4A8 -FUN_020BC4A8: ; 0x020BC4A8 - ldrh r2, [r0, #0xa] - add r0, r0, r2 - add r0, r0, r1, lsl #0x4 - bx lr - arm_func_end FUN_020BC4A8 - - arm_func_start FUN_020BC4B8 -FUN_020BC4B8: ; 0x020BC4B8 - ldrh r2, [r0, #0x8] - add r0, r0, r2 - add r0, r0, r1, lsl #0x4 - bx lr - arm_func_end FUN_020BC4B8 - - arm_func_start FUN_020BC4C8 -FUN_020BC4C8: ; 0x020BC4C8 - ldrh r2, [r0, #0xc] - ldr r2, [r0, r2] - add r12, r0, r2 - ldrh r2, [r12, #0xe] - add r3, r12, #0x8 - ldrh r0, [r3, r2] - add r2, r3, r2 - add r2, r2, #0x4 - mul r1, r0, r1 - adds r0, r2, r1 - ldrne r0, [r0, #0x0] - addne r0, r12, r0 - moveq r0, #0x0 - bx lr - arm_func_end FUN_020BC4C8 - - arm_func_start FUN_020BC500 -FUN_020BC500: ; 0x020BC500 - stmdb sp!, {r4,lr} - ands r4, r3, #0x8000 - beq _020BC5E0 - mov r2, #0x0 - str r2, [r0, #0x20] - ldr r4, [r0, #0x20] - ldr r2, _020BC684 ; =0x00007FFF - str r4, [r0, #0x1c] - ldr r4, [r0, #0x1c] - and r3, r3, r2 - str r4, [r0, #0x18] - ldr r4, [r0, #0x18] - mov r2, #0x3 - str r4, [r0, #0x14] - ldr r4, [r0, #0x14] - mul r2, r3, r2 - str r4, [r0, #0x10] - ldr r4, [r0, #0x10] - mov r3, r2, lsl #0x1 - str r4, [r0, #0xc] - ldr r4, [r0, #0xc] - add r2, r1, r2, lsl #0x1 - str r4, [r0, #0x8] - ldr r4, [r0, #0x8] - str r4, [r0, #0x4] - ldr r4, [r0, #0x4] - str r4, [r0, #0x0] - ldrsh r4, [r1, r3] - ldrsh r12, [r2, #0x2] - ldrsh r3, [r2, #0x4] - and r1, r4, #0xf - ands r4, r4, #0x10 - movne lr, #0x1000 - rsbne lr, lr, #0x0 - moveq lr, #0x1000 - str lr, [r0, r1, lsl #0x2] - ldr r4, _020BC688 ; =UNK_020FFA14 - ldr lr, _020BC68C ; =UNK_020FFA14 + 1 - ldrb r4, [r4, r1, lsl #0x2] - str r12, [r0, r4, lsl #0x2] - ldrb lr, [lr, r1, lsl #0x2] - str r3, [r0, lr, lsl #0x2] - ldrsh lr, [r2, #0x0] - ands lr, lr, #0x20 - ldr lr, _020BC690 ; =UNK_020FFA14 + 2 - rsbne r3, r3, #0x0 - ldrb lr, [lr, r1, lsl #0x2] - str r3, [r0, lr, lsl #0x2] - ldrsh r2, [r2, #0x0] - ands r2, r2, #0x40 - ldr r2, _020BC694 ; =UNK_020FFA14 + 3 - rsbne r12, r12, #0x0 - ldrb r1, [r2, r1, lsl #0x2] - str r12, [r0, r1, lsl #0x2] - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020BC5E0: - ldr r1, _020BC684 ; =0x00007FFF - mov r12, #0x5 - and r1, r3, r1 - mul r3, r1, r12 - add r1, r2, r3, lsl #0x1 - ldrsh lr, [r1, #0x8] - mov r12, r3, lsl #0x1 - mov r3, lr, asr #0x3 - str r3, [r0, #0x10] - ldrsh r12, [r2, r12] - and r2, lr, #0x7 - mov r2, r2, lsl #0x10 - mov r3, r12, asr #0x3 - str r3, [r0, #0x0] - ldrsh r3, [r1, #0x2] - and r12, r12, #0x7 - orr lr, r12, r2, asr #0xd - mov r2, r3, asr #0x3 - str r2, [r0, #0x4] - ldrsh r12, [r1, #0x4] - mov r2, lr, lsl #0x10 - and lr, r3, #0x7 - mov r3, r12, asr #0x3 - str r3, [r0, #0x8] - ldrsh r3, [r1, #0x6] - orr r1, lr, r2, asr #0xd - mov r1, r1, lsl #0x10 - and r2, r12, #0x7 - orr r1, r2, r1, asr #0xd - mov r1, r1, lsl #0x10 - and r2, r3, #0x7 - orr r1, r2, r1, asr #0xd - mov r1, r1, lsl #0x10 - mov r1, r1, asr #0x10 - mov r2, r3, asr #0x3 - mov r1, r1, lsl #0x13 - str r2, [r0, #0xc] - mov r1, r1, asr #0x13 - str r1, [r0, #0x14] - mov r0, #0x1 - ldmia sp!, {r4,pc} - .balign 4 -_020BC684: .word 0x00007FFF -_020BC688: .word UNK_020FFA14 -_020BC68C: .word UNK_020FFA14 + 1 -_020BC690: .word UNK_020FFA14 + 2 -_020BC694: .word UNK_020FFA14 + 3 - arm_func_end FUN_020BC500 - - arm_func_start FUN_020BC698 -FUN_020BC698: ; 0x020BC698 - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x48 - ldrh r4, [r3, #0x4] - ldr r5, [r3, #0xc] - ldr r8, [r3, #0x10] - ldr r7, [r2, #0x4] - mov r12, r1, asr #0xc - sub r4, r4, #0x1 - mov r6, r0 - cmp r12, r4 - add r5, r3, r5 - add r4, r3, r8 - add r8, r3, r7 - ldr r7, [r2, #0x0] - bne _020BC780 - ands r0, r7, #0xc0000000 - beq _020BC6F0 - ands r0, r7, #0x40000000 - andne r0, r12, #0x1 - addne r12, r0, r12, lsr #0x1 - andeq r0, r12, #0x3 - addeq r12, r0, r12, lsr #0x2 -_020BC6F0: - ldr r0, [r3, #0x8] - ands r0, r0, #0x2 - movne r7, #0x0 - bne _020BC7F4 - mov r0, r12, lsl #0x1 - ldrh r3, [r8, r0] - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - cmp r0, #0x0 - addeq sp, sp, #0x48 - ldmeqia sp!, {r4-r10,pc} - ldr r9, [r6, #0x14] - ldr r5, [r6, #0x4] - ldr r4, [r6, #0x10] - ldr r2, [r6, #0x8] - mul r1, r5, r9 - mul r0, r2, r4 - sub r0, r1, r0 - ldr r7, [r6, #0xc] - ldr r8, [r6, #0x0] - mov r3, r0, asr #0xc - mul r1, r2, r7 - mul r0, r8, r9 - sub r2, r1, r0 - mul r1, r8, r4 - mul r0, r5, r7 - sub r0, r1, r0 - str r3, [r6, #0x18] - mov r1, r2, asr #0xc - str r1, [r6, #0x1c] - mov r0, r0, asr #0xc - add sp, sp, #0x48 - str r0, [r6, #0x20] - ldmia sp!, {r4-r10,pc} -_020BC780: - ands r0, r7, #0xc0000000 - beq _020BC7F0 - ldr r0, _020BC9C4 ; =0x1FFF0000 - ands r2, r7, #0x40000000 - and r0, r7, r0 - mov r0, r0, lsr #0x10 - beq _020BC7C4 - cmp r12, r0 - movcs r12, r0, lsr #0x1 - addcs r7, r12, #0x1 - bhs _020BC7F4 - ldr r0, _020BC9C8 ; =0x00001FFF - mov r12, r12, lsr #0x1 - add r7, r12, #0x1 - and r10, r1, r0 - mov r9, #0x2 - b _020BC800 -_020BC7C4: - cmp r12, r0 - andcs r0, r12, #0x3 - addcs r12, r0, r12, lsr #0x2 - addcs r7, r12, #0x1 - bhs _020BC7F4 - ldr r0, _020BC9CC ; =0x00003FFF - mov r12, r12, lsr #0x2 - add r7, r12, #0x1 - and r10, r1, r0 - mov r9, #0x4 - b _020BC800 -_020BC7F0: - add r7, r12, #0x1 -_020BC7F4: - ldr r0, _020BC9D0 ; =0x00000FFF - mov r9, #0x1 - and r10, r1, r0 -_020BC800: - mov r0, r12, lsl #0x1 - ldrh r3, [r8, r0] - add r0, sp, #0x0 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - mov r1, r7, lsl #0x1 - ldrh r3, [r8, r1] - orr r7, r0, #0x0 - add r0, sp, #0x24 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - ldr r3, [sp, #0x0] - ldr r1, [sp, #0x24] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0x0] - ldr r3, [sp, #0x4] - ldr r1, [sp, #0x28] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0x4] - ldr r3, [sp, #0x8] - ldr r1, [sp, #0x2c] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0x8] - ldr r3, [sp, #0xc] - ldr r1, [sp, #0x30] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0xc] - ldr r2, [sp, #0x10] - ldr r1, [sp, #0x34] - orr r7, r7, r0 - sub r0, r1, r2 - mul r1, r2, r9 - mul r0, r10, r0 - add r0, r1, r0, asr #0xc - str r0, [r6, #0x10] - ldr r2, [sp, #0x14] - ldr r0, [sp, #0x38] - mul r1, r2, r9 - sub r0, r0, r2 - mul r0, r10, r0 - add r2, r1, r0, asr #0xc - mov r0, r6 - mov r1, r6 - str r2, [r6, #0x14] - bl VEC_Normalize - add r0, r6, #0xc - mov r1, r0 - bl VEC_Normalize - cmp r7, #0x0 - bne _020BC968 - ldr r3, [sp, #0x18] - ldr r1, [sp, #0x3c] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0x18] - ldr r3, [sp, #0x1c] - ldr r1, [sp, #0x40] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r1, r2, r1, asr #0xc - str r1, [r6, #0x1c] - ldr r3, [sp, #0x20] - ldr r1, [sp, #0x44] - mul r2, r3, r9 - sub r1, r1, r3 - mul r1, r10, r1 - add r2, r2, r1, asr #0xc - add r0, r6, #0x18 - mov r1, r0 - str r2, [r6, #0x20] - bl VEC_Normalize - add sp, sp, #0x48 - ldmia sp!, {r4-r10,pc} -_020BC968: - ldr r9, [r6, #0x14] - ldr r5, [r6, #0x4] - ldr r8, [r6, #0x0] - ldr r4, [r6, #0x10] - ldr r2, [r6, #0x8] - ldr r7, [r6, #0xc] - mul r1, r5, r9 - mul r0, r2, r4 - sub r0, r1, r0 - mov r3, r0, asr #0xc - mul r1, r2, r7 - mul r0, r8, r9 - sub r2, r1, r0 - mul r1, r8, r4 - mul r0, r5, r7 - sub r0, r1, r0 - str r3, [r6, #0x18] - mov r1, r2, asr #0xc - str r1, [r6, #0x1c] - mov r0, r0, asr #0xc - str r0, [r6, #0x20] - add sp, sp, #0x48 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020BC9C4: .word 0x1FFF0000 -_020BC9C8: .word 0x00001FFF -_020BC9CC: .word 0x00003FFF -_020BC9D0: .word 0x00000FFF - arm_func_end FUN_020BC698 - - arm_func_start FUN_020BC9D4 -FUN_020BC9D4: ; 0x020BC9D4 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4c - ldr r5, [r3, #0xc] - ldr r4, [r3, #0x10] - ldr r12, [r2, #0x0] - ldr r2, [r2, #0x4] - mov r6, r0 - mov r0, r1, asr #0xc - add r5, r3, r5 - add r4, r3, r4 - add r8, r3, r2 - ands r1, r12, #0xc0000000 - beq _020BCD40 - ldr r1, _020BCDC0 ; =0x1FFF0000 - ands r2, r12, #0x40000000 - and r1, r12, r1 - mov r2, r1, lsr #0x10 - beq _020BCA44 - ands r1, r0, #0x1 - beq _020BCA3C - cmp r0, r2 - movhi r0, r2, lsr #0x1 - addhi r0, r0, #0x1 - bhi _020BCD40 - mov r7, r0, lsr #0x1 - b _020BCBE8 -_020BCA3C: - mov r0, r0, lsr #0x1 - b _020BCD40 -_020BCA44: - ands r1, r0, #0x3 - beq _020BCBE0 - cmp r0, r2 - addhi r0, r1, r2, lsr #0x2 - bhi _020BCD40 - ands r1, r0, #0x1 - beq _020BCBD8 - ands r1, r0, #0x2 - movne r9, r0, lsr #0x2 - addne r0, r9, #0x1 - moveq r0, r0, lsr #0x2 - addeq r9, r0, #0x1 - mov r0, r0, lsl #0x1 - ldrh r3, [r8, r0] - mov r0, r6 - mov r1, r5 - mov r2, r4 - mov r7, #0x0 - bl FUN_020BC500 - mov r1, r9, lsl #0x1 - ldrh r3, [r8, r1] - orr r7, r7, r0 - add r0, sp, #0x0 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - ldr r3, [sp, #0x0] - ldr r1, [r6, #0x0] - mov r2, #0x3 - mla r3, r1, r2, r3 - str r3, [r6, #0x0] - ldr r3, [sp, #0x4] - ldr r1, [r6, #0x4] - orr r7, r7, r0 - mla r0, r1, r2, r3 - str r0, [r6, #0x4] - ldr r3, [sp, #0x8] - ldr r1, [r6, #0x8] - mov r0, r6 - mla r3, r1, r2, r3 - str r3, [r6, #0x8] - ldr r4, [sp, #0xc] - ldr r3, [r6, #0xc] - mov r1, r6 - mla r4, r3, r2, r4 - str r4, [r6, #0xc] - ldr r4, [sp, #0x10] - ldr r3, [r6, #0x10] - mla r4, r3, r2, r4 - str r4, [r6, #0x10] - ldr r4, [sp, #0x14] - ldr r3, [r6, #0x14] - mla r2, r3, r2, r4 - str r2, [r6, #0x14] - bl VEC_Normalize - add r0, r6, #0xc - mov r1, r0 - bl VEC_Normalize - cmp r7, #0x0 - bne _020BCB7C - ldr r1, [sp, #0x18] - ldr r0, [r6, #0x18] - mov r2, #0x3 - mla r1, r0, r2, r1 - str r1, [r6, #0x18] - ldr r3, [sp, #0x1c] - ldr r1, [r6, #0x1c] - add r0, r6, #0x18 - mla r3, r1, r2, r3 - str r3, [r6, #0x1c] - ldr r4, [sp, #0x20] - ldr r3, [r6, #0x20] - mov r1, r0 - mla r2, r3, r2, r4 - str r2, [r6, #0x20] - bl VEC_Normalize - add sp, sp, #0x4c - ldmia sp!, {r4-r9,pc} -_020BCB7C: - ldr r12, [r6, #0x14] - ldr r5, [r6, #0x4] - ldr r4, [r6, #0x10] - ldr r2, [r6, #0x8] - mul r1, r5, r12 - mul r0, r2, r4 - sub r0, r1, r0 - ldr r7, [r6, #0xc] - ldr r8, [r6, #0x0] - mov r3, r0, asr #0xc - mul r1, r2, r7 - mul r0, r8, r12 - sub r2, r1, r0 - mul r1, r8, r4 - mul r0, r5, r7 - sub r0, r1, r0 - str r3, [r6, #0x18] - mov r1, r2, asr #0xc - str r1, [r6, #0x1c] - mov r0, r0, asr #0xc - add sp, sp, #0x4c - str r0, [r6, #0x20] - ldmia sp!, {r4-r9,pc} -_020BCBD8: - mov r7, r0, lsr #0x2 - b _020BCBE8 -_020BCBE0: - mov r0, r0, lsr #0x2 - b _020BCD40 -_020BCBE8: - mov r0, r7, lsl #0x1 - ldrh r3, [r8, r0] - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - add r1, r8, r7, lsl #0x1 - ldrh r3, [r1, #0x2] - orr r7, r0, #0x0 - add r0, sp, #0x24 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - ldr r2, [r6, #0x0] - ldr r1, [sp, #0x24] - orr r7, r7, r0 - add r0, r2, r1 - str r0, [r6, #0x0] - ldr r2, [r6, #0x4] - ldr r1, [sp, #0x28] - mov r0, r6 - add r1, r2, r1 - str r1, [r6, #0x4] - ldr r3, [r6, #0x8] - ldr r2, [sp, #0x2c] - mov r1, r6 - add r2, r3, r2 - str r2, [r6, #0x8] - ldr r3, [r6, #0xc] - ldr r2, [sp, #0x30] - add r2, r3, r2 - str r2, [r6, #0xc] - ldr r3, [r6, #0x10] - ldr r2, [sp, #0x34] - add r2, r3, r2 - str r2, [r6, #0x10] - ldr r3, [r6, #0x14] - ldr r2, [sp, #0x38] - add r2, r3, r2 - str r2, [r6, #0x14] - bl VEC_Normalize - add r0, r6, #0xc - mov r1, r0 - bl VEC_Normalize - cmp r7, #0x0 - bne _020BCCE4 - ldr r2, [r6, #0x18] - ldr r1, [sp, #0x3c] - add r0, r6, #0x18 - add r1, r2, r1 - str r1, [r6, #0x18] - ldr r3, [r6, #0x1c] - ldr r2, [sp, #0x40] - mov r1, r0 - add r2, r3, r2 - str r2, [r6, #0x1c] - ldr r3, [r6, #0x20] - ldr r2, [sp, #0x44] - add r2, r3, r2 - str r2, [r6, #0x20] - bl VEC_Normalize - add sp, sp, #0x4c - ldmia sp!, {r4-r9,pc} -_020BCCE4: - ldr r12, [r6, #0x14] - ldr r5, [r6, #0x4] - ldr r4, [r6, #0x10] - ldr r2, [r6, #0x8] - mul r1, r5, r12 - mul r0, r2, r4 - sub r0, r1, r0 - ldr r7, [r6, #0xc] - ldr r8, [r6, #0x0] - mov r3, r0, asr #0xc - mul r1, r2, r7 - mul r0, r8, r12 - sub r2, r1, r0 - mul r1, r8, r4 - mul r0, r5, r7 - sub r0, r1, r0 - str r3, [r6, #0x18] - mov r1, r2, asr #0xc - str r1, [r6, #0x1c] - mov r0, r0, asr #0xc - add sp, sp, #0x4c - str r0, [r6, #0x20] - ldmia sp!, {r4-r9,pc} -_020BCD40: - mov r0, r0, lsl #0x1 - ldrh r3, [r8, r0] - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020BC500 - cmp r0, #0x0 - addeq sp, sp, #0x4c - ldmeqia sp!, {r4-r9,pc} - ldr r12, [r6, #0x14] - ldr r5, [r6, #0x4] - ldr r8, [r6, #0x0] - ldr r4, [r6, #0x10] - ldr r2, [r6, #0x8] - ldr r7, [r6, #0xc] - mul r1, r5, r12 - mul r0, r2, r4 - sub r0, r1, r0 - mov r3, r0, asr #0xc - mul r1, r2, r7 - mul r0, r8, r12 - sub r2, r1, r0 - mul r1, r8, r4 - mul r0, r5, r7 - sub r0, r1, r0 - str r3, [r6, #0x18] - mov r1, r2, asr #0xc - str r1, [r6, #0x1c] - mov r0, r0, asr #0xc - str r0, [r6, #0x20] - add sp, sp, #0x4c - ldmia sp!, {r4-r9,pc} - .balign 4 -_020BCDC0: .word 0x1FFF0000 - arm_func_end FUN_020BC9D4 - - arm_func_start FUN_020BCDC4 -FUN_020BCDC4: ; 0x020BCDC4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldrh r4, [r3, #0x4] - ldr r6, [r2, #0x4] - mov r5, r1, asr #0xc - sub r4, r4, #0x1 - cmp r5, r4 - add r6, r3, r6 - ldr r2, [r2, #0x0] - bne _020BCE58 - ands r4, r2, #0xc0000000 - beq _020BCE08 - ands r4, r2, #0x40000000 - andne r4, r5, #0x1 - addne r5, r4, r5, lsr #0x1 - andeq r4, r5, #0x3 - addeq r5, r4, r5, lsr #0x2 -_020BCE08: - ldr r3, [r3, #0x8] - ands r3, r3, #0x2 - movne r4, #0x0 - bne _020BCED4 - ands r1, r2, #0x20000000 - ldreq r2, [r6, r5, lsl #0x3] - addeq r1, r6, r5, lsl #0x3 - streq r2, [r0, #0x0] - ldreq r1, [r1, #0x4] - addeq sp, sp, #0x4 - streq r1, [r0, #0x4] - ldmeqia sp!, {r4-r7,pc} - mov r1, r5, lsl #0x2 - ldrsh r2, [r6, r1] - add r1, r6, r5, lsl #0x2 - add sp, sp, #0x4 - str r2, [r0, #0x0] - ldrsh r1, [r1, #0x2] - str r1, [r0, #0x4] - ldmia sp!, {r4-r7,pc} -_020BCE58: - ands r3, r2, #0xc0000000 - beq _020BCED0 - ldr r3, _020BCF60 ; =0x1FFF0000 - ands r4, r2, #0x40000000 - and r3, r2, r3 - mov r3, r3, lsr #0x10 - beq _020BCEA0 - cmp r5, r3 - movcs r5, r3, lsr #0x1 - addcs r4, r5, #0x1 - bhs _020BCED4 - ldr r3, _020BCF64 ; =0x00001FFF - mov r5, r5, lsr #0x1 - add r4, r5, #0x1 - and lr, r1, r3 - mov r12, #0x2 - mov r3, #0x1 - b _020BCEE4 -_020BCEA0: - cmp r5, r3 - andcs r3, r5, #0x3 - addcs r5, r3, r5, lsr #0x2 - addcs r4, r5, #0x1 - bhs _020BCED4 - ldr r3, _020BCF68 ; =0x00003FFF - mov r5, r5, lsr #0x2 - add r4, r5, #0x1 - and lr, r1, r3 - mov r12, #0x4 - mov r3, #0x2 - b _020BCEE4 -_020BCED0: - add r4, r5, #0x1 -_020BCED4: - ldr r3, _020BCF6C ; =0x00000FFF - mov r12, #0x1 - and lr, r1, r3 - mov r3, #0x0 -_020BCEE4: - ands r1, r2, #0x20000000 - beq _020BCF10 - mov r2, r5, lsl #0x2 - add r1, r6, r5, lsl #0x2 - mov r5, r4, lsl #0x2 - add r4, r6, r4, lsl #0x2 - ldrsh r2, [r6, r2] - ldrsh r1, [r1, #0x2] - ldrsh r5, [r6, r5] - ldrsh r4, [r4, #0x2] - b _020BCF28 -_020BCF10: - add r1, r6, r5, lsl #0x3 - add r7, r6, r4, lsl #0x3 - ldr r2, [r6, r5, lsl #0x3] - ldr r1, [r1, #0x4] - ldr r5, [r6, r4, lsl #0x3] - ldr r4, [r7, #0x4] -_020BCF28: - sub r5, r5, r2 - sub r4, r4, r1 - mul r6, r2, r12 - mul r2, lr, r5 - add r2, r6, r2, asr #0xc - mov r5, r2, asr r3 - mul r2, r1, r12 - mul r1, lr, r4 - add r1, r2, r1, asr #0xc - mov r1, r1, asr r3 - str r5, [r0, #0x0] - str r1, [r0, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020BCF60: .word 0x1FFF0000 -_020BCF64: .word 0x00001FFF -_020BCF68: .word 0x00003FFF -_020BCF6C: .word 0x00000FFF - arm_func_end FUN_020BCDC4 - - arm_func_start FUN_020BCF70 -FUN_020BCF70: ; 0x020BCF70 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r4, [r2, #0x4] - ldr r12, [r2, #0x0] - mov r1, r1, asr #0xc - add r3, r3, r4 - ands r2, r12, #0xc0000000 - beq _020BD0D0 - ldr r2, _020BD184 ; =0x1FFF0000 - ands r4, r12, #0x40000000 - and r2, r12, r2 - mov r4, r2, lsr #0x10 - beq _020BCFCC - ands r2, r1, #0x1 - beq _020BCFC4 - cmp r1, r4 - movhi r1, r4, lsr #0x1 - addhi r1, r1, #0x1 - bhi _020BD0D0 - mov r2, r1, lsr #0x1 - b _020BD110 -_020BCFC4: - mov r1, r1, lsr #0x1 - b _020BD0D0 -_020BCFCC: - ands r2, r1, #0x3 - beq _020BD0CC - cmp r1, r4 - addhi r1, r2, r4, lsr #0x2 - bhi _020BD0D0 - ands r2, r1, #0x1 - beq _020BD0C4 - ands r2, r1, #0x2 - movne r1, r1, lsr #0x2 - addne r2, r1, #0x1 - moveq r2, r1, lsr #0x2 - addeq r1, r2, #0x1 - ands r4, r12, #0x20000000 - beq _020BD04C - mov r5, r2, lsl #0x2 - mov r4, r1, lsl #0x2 - ldrsh r12, [r3, r5] - ldrsh r5, [r3, r4] - add r2, r3, r2, lsl #0x2 - add r4, r12, r12, lsl #0x1 - add r4, r5, r4 - mov r4, r4, asr #0x2 - str r4, [r0, #0x0] - add r1, r3, r1, lsl #0x2 - ldrsh r3, [r2, #0x2] - ldrsh r2, [r1, #0x2] - add sp, sp, #0x4 - add r1, r3, r3, lsl #0x1 - add r1, r2, r1 - mov r1, r1, asr #0x2 - str r1, [r0, #0x4] - ldmia sp!, {r4-r5,pc} -_020BD04C: - ldr r5, [r3, r2, lsl #0x3] - ldr r4, [r3, r1, lsl #0x3] - mov r12, r5, asr #0x1f - mov r12, r12, lsl #0x1 - mov lr, r5, lsl #0x1 - orr r12, r12, r5, lsr #0x1f - adds lr, lr, r5 - adc r12, r12, r5, asr #0x1f - adds lr, lr, r4 - adc r12, r12, r4, asr #0x1f - mov lr, lr, lsr #0x2 - orr lr, lr, r12, lsl #0x1e - str lr, [r0, #0x0] - add r2, r3, r2, lsl #0x3 - ldr r12, [r2, #0x4] - add r1, r3, r1, lsl #0x3 - mov r2, r12, asr #0x1f - mov r2, r2, lsl #0x1 - mov r3, r12, lsl #0x1 - ldr r1, [r1, #0x4] - orr r2, r2, r12, lsr #0x1f - adds r3, r3, r12 - adc r2, r2, r12, asr #0x1f - adds r3, r3, r1 - adc r1, r2, r1, asr #0x1f - mov r2, r3, lsr #0x2 - orr r2, r2, r1, lsl #0x1e - str r2, [r0, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} -_020BD0C4: - mov r2, r1, lsr #0x2 - b _020BD110 -_020BD0CC: - mov r1, r1, lsr #0x2 -_020BD0D0: - ands r2, r12, #0x20000000 - ldreq r2, [r3, r1, lsl #0x3] - addeq r1, r3, r1, lsl #0x3 - streq r2, [r0, #0x0] - ldreq r1, [r1, #0x4] - addeq sp, sp, #0x4 - streq r1, [r0, #0x4] - ldmeqia sp!, {r4-r5,pc} - mov r2, r1, lsl #0x2 - ldrsh r2, [r3, r2] - add r1, r3, r1, lsl #0x2 - add sp, sp, #0x4 - str r2, [r0, #0x0] - ldrsh r1, [r1, #0x2] - str r1, [r0, #0x4] - ldmia sp!, {r4-r5,pc} -_020BD110: - ands r1, r12, #0x20000000 - beq _020BD150 - mov r1, r2, lsl #0x2 - add r12, r3, r2, lsl #0x2 - ldrsh r2, [r3, r1] - ldrsh r1, [r12, #0x4] - add sp, sp, #0x4 - add r1, r2, r1 - mov r1, r1, asr #0x1 - str r1, [r0, #0x0] - ldrsh r2, [r12, #0x2] - ldrsh r1, [r12, #0x6] - add r1, r2, r1 - mov r1, r1, asr #0x1 - str r1, [r0, #0x4] - ldmia sp!, {r4-r5,pc} -_020BD150: - add r12, r3, r2, lsl #0x3 - ldr r2, [r3, r2, lsl #0x3] - ldr r1, [r12, #0x8] - add r1, r2, r1 - mov r1, r1, asr #0x1 - str r1, [r0, #0x0] - ldr r2, [r12, #0x4] - ldr r1, [r12, #0xc] - add r1, r2, r1 - mov r1, r1, asr #0x1 - str r1, [r0, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BD184: .word 0x1FFF0000 - arm_func_end FUN_020BCF70 - - arm_func_start FUN_020BD188 -FUN_020BD188: ; 0x020BD188 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldrh r4, [r3, #0x4] - ldr lr, [r2, #0x4] - mov r12, r1, asr #0xc - sub r4, r4, #0x1 - cmp r12, r4 - add r4, r3, lr - ldr lr, [r2, #0x0] - bne _020BD230 - ands r2, lr, #0xc0000000 - beq _020BD1CC - ands r2, lr, #0x40000000 - andne r2, r12, #0x1 - addne r12, r2, r12, lsr #0x1 - andeq r2, r12, #0x3 - addeq r12, r2, r12, lsr #0x2 -_020BD1CC: - ldr r2, [r3, #0x8] - ands r2, r2, #0x2 - beq _020BD210 - ldr r2, _020BD2E8 ; =0x00000FFF - ands r3, lr, #0x20000000 - and r3, r1, r2 - movne r1, r12, lsl #0x1 - ldrnesh r2, [r4, r1] - ldrnesh r1, [r4, #0x0] - add sp, sp, #0x4 - ldreq r2, [r4, r12, lsl #0x2] - ldreq r1, [r4, #0x0] - sub r1, r1, r2 - mul r1, r3, r1 - add r1, r2, r1, asr #0xc - str r1, [r0, #0x0] - ldmia sp!, {r4-r5,pc} -_020BD210: - ands r1, lr, #0x20000000 - movne r1, r12, lsl #0x1 - ldrnesh r1, [r4, r1] - add sp, sp, #0x4 - strne r1, [r0, #0x0] - ldreq r1, [r4, r12, lsl #0x2] - streq r1, [r0, #0x0] - ldmia sp!, {r4-r5,pc} -_020BD230: - ands r2, lr, #0xc0000000 - beq _020BD298 - ldr r2, _020BD2EC ; =0x1FFF0000 - ands r3, lr, #0x40000000 - and r2, lr, r2 - mov r2, r2, lsr #0x10 - beq _020BD270 - cmp r12, r2 - movcs r12, r2, lsr #0x1 - bhs _020BD298 - ldr r2, _020BD2F0 ; =0x00001FFF - mov r12, r12, lsr #0x1 - and r5, r1, r2 - mov r2, #0x2 - mov r1, #0x1 - b _020BD2A8 -_020BD270: - cmp r12, r2 - andcs r2, r12, #0x3 - addcs r12, r2, r12, lsr #0x2 - bhs _020BD298 - ldr r2, _020BD2F4 ; =0x00003FFF - mov r12, r12, lsr #0x2 - and r5, r1, r2 - mov r2, #0x4 - mov r1, #0x2 - b _020BD2A8 -_020BD298: - ldr r3, _020BD2E8 ; =0x00000FFF - mov r2, #0x1 - and r5, r1, r3 - mov r1, #0x0 -_020BD2A8: - ands r3, lr, #0x20000000 - addne r3, r4, r12, lsl #0x1 - movne lr, r12, lsl #0x1 - ldrnesh r12, [r4, lr] - ldrnesh r3, [r3, #0x2] - addeq r3, r4, r12, lsl #0x2 - ldreq r12, [r4, r12, lsl #0x2] - ldreq r3, [r3, #0x4] - mul r4, r12, r2 - sub r3, r3, r12 - mul r2, r5, r3 - add r2, r4, r2, asr #0xc - mov r1, r2, asr r1 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BD2E8: .word 0x00000FFF -_020BD2EC: .word 0x1FFF0000 -_020BD2F0: .word 0x00001FFF -_020BD2F4: .word 0x00003FFF - arm_func_end FUN_020BD188 - - arm_func_start FUN_020BD2F8 -FUN_020BD2F8: ; 0x020BD2F8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r12, [r2, #0x4] - ldr r2, [r2, #0x0] - mov r1, r1, asr #0xc - add r3, r3, r12 - ands r12, r2, #0xc0000000 - beq _020BD44C - ldr ip, _020BD46C ; =0x1FFF0000 - ands lr, r2, #0x40000000 - and r12, r2, r12 - mov lr, r12, lsr #0x10 - beq _020BD354 - ands r12, r1, #0x1 - beq _020BD34C - cmp r1, lr - movhi r1, lr, lsr #0x1 - addhi r1, r1, #0x1 - bhi _020BD44C - mov r12, r1, lsr #0x1 - b _020BD400 -_020BD34C: - mov r1, r1, lsr #0x1 - b _020BD44C -_020BD354: - ands r12, r1, #0x3 - beq _020BD3F8 - cmp r1, lr - addhi r1, r12, lr, lsr #0x2 - bhi _020BD44C - ands r12, r1, #0x1 - beq _020BD3F0 - ands r12, r1, #0x2 - movne lr, r1, lsr #0x2 - addne r12, lr, #0x1 - moveq r12, r1, lsr #0x2 - addeq lr, r12, #0x1 - ands r1, r2, #0x20000000 - beq _020BD3B4 - mov r2, r12, lsl #0x1 - mov r1, lr, lsl #0x1 - ldrsh r12, [r3, r2] - ldrsh r2, [r3, r1] - mov r1, #0x3 - add sp, sp, #0x4 - smlabb r1, r12, r1, r2 - mov r1, r1, asr #0x2 - str r1, [r0, #0x0] - ldmia sp!, {pc} -_020BD3B4: - ldr r12, [r3, r12, lsl #0x2] - ldr r1, [r3, lr, lsl #0x2] - mov r2, r12, asr #0x1f - mov r2, r2, lsl #0x1 - mov r3, r12, lsl #0x1 - orr r2, r2, r12, lsr #0x1f - adds r3, r3, r12 - adc r2, r2, r12, asr #0x1f - adds r3, r3, r1 - adc r1, r2, r1, asr #0x1f - mov r2, r3, lsr #0x2 - orr r2, r2, r1, lsl #0x1e - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} -_020BD3F0: - mov r12, r1, lsr #0x2 - b _020BD400 -_020BD3F8: - mov r1, r1, lsr #0x2 - b _020BD44C -_020BD400: - ands r1, r2, #0x20000000 - beq _020BD42C - mov r2, r12, lsl #0x1 - add r1, r3, r12, lsl #0x1 - ldrsh r2, [r3, r2] - ldrsh r1, [r1, #0x2] - add sp, sp, #0x4 - add r1, r2, r1 - mov r1, r1, asr #0x1 - str r1, [r0, #0x0] - ldmia sp!, {pc} -_020BD42C: - add r1, r3, r12, lsl #0x2 - ldr r2, [r3, r12, lsl #0x2] - ldr r1, [r1, #0x4] - mov r2, r2, asr #0x1 - add r1, r2, r1, asr #0x1 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} -_020BD44C: - ands r2, r2, #0x20000000 - movne r1, r1, lsl #0x1 - ldrnesh r1, [r3, r1] - strne r1, [r0, #0x0] - ldreq r1, [r3, r1, lsl #0x2] - streq r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020BD46C: .word 0x1FFF0000 - arm_func_end FUN_020BD2F8 - - arm_func_start FUN_020BD470 -FUN_020BD470: ; 0x020BD470 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - mov r9, r0 - add r0, r9, r1, lsl #0x1 - ldrh r0, [r0, #0x14] - mov r7, r3 - mov r8, r2 - ldr r5, [r9, r0] - add r1, r9, r0 - ands r0, r5, #0x1 - movne r0, #0x7 - strne r0, [r7, #0x0] - bne _020BD814 - ldr r0, _020BD848 ; =0x00000FFF - add r4, r1, #0x4 - ands r0, r8, r0 - beq _020BD4C4 - ldr r0, [r9, #0x8] - ands r0, r0, #0x1 - movne r6, #0x1 - bne _020BD4C8 -_020BD4C4: - mov r6, #0x0 -_020BD4C8: - mov r0, #0x0 - str r0, [r7, #0x0] - ands r0, r5, #0x6 - bne _020BD5C0 - ands r0, r5, #0x8 - bne _020BD51C - cmp r6, #0x0 - beq _020BD500 - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x4c - bl FUN_020BD188 - b _020BD514 -_020BD500: - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x4c - bl FUN_020BD2F8 -_020BD514: - add r4, r4, #0x8 - b _020BD524 -_020BD51C: - ldr r0, [r4], #0x4 - str r0, [r7, #0x4c] -_020BD524: - ands r0, r5, #0x10 - bne _020BD568 - cmp r6, #0x0 - beq _020BD54C - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x50 - bl FUN_020BD188 - b _020BD560 -_020BD54C: - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x50 - bl FUN_020BD2F8 -_020BD560: - add r4, r4, #0x8 - b _020BD570 -_020BD568: - ldr r0, [r4], #0x4 - str r0, [r7, #0x50] -_020BD570: - ands r0, r5, #0x20 - bne _020BD5B4 - cmp r6, #0x0 - beq _020BD598 - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x54 - bl FUN_020BD188 - b _020BD5AC -_020BD598: - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x54 - bl FUN_020BD2F8 -_020BD5AC: - add r4, r4, #0x8 - b _020BD5DC -_020BD5B4: - ldr r0, [r4], #0x4 - str r0, [r7, #0x54] - b _020BD5DC -_020BD5C0: - ands r0, r5, #0x2 - ldrne r0, [r7, #0x0] - orrne r0, r0, #0x4 - strne r0, [r7, #0x0] - bne _020BD5DC - mov r0, r7 - bl FUN_020BDA08 -_020BD5DC: - ands r0, r5, #0xc0 - bne _020BD6A8 - ands r0, r5, #0x100 - bne _020BD628 - cmp r6, #0x0 - beq _020BD60C - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x28 - bl FUN_020BC698 - b _020BD620 -_020BD60C: - mov r1, r8 - mov r2, r4 - mov r3, r9 - add r0, r7, #0x28 - bl FUN_020BC9D4 -_020BD620: - add r4, r4, #0x8 - b _020BD6C4 -_020BD628: - ldr r1, [r9, #0xc] - ldr r2, [r9, #0x10] - ldr r3, [r4, #0x0] - add r0, r7, #0x28 - add r1, r9, r1 - add r2, r9, r2 - bl FUN_020BC500 - cmp r0, #0x0 - beq _020BD6A0 - ldr r12, [r7, #0x3c] - ldr r0, [r7, #0x2c] - ldr r3, [r7, #0x28] - ldr r11, [r7, #0x38] - ldr r1, [r7, #0x30] - ldr r2, [r7, #0x34] - mul r10, r0, r12 - mul lr, r1, r11 - sub r10, r10, lr - mov r10, r10, asr #0xc - mul lr, r1, r2 - mul r1, r3, r12 - sub r1, lr, r1 - mul r11, r3, r11 - mul r2, r0, r2 - sub r0, r11, r2 - str r10, [r7, #0x40] - mov r1, r1, asr #0xc - str r1, [r7, #0x44] - mov r0, r0, asr #0xc - str r0, [r7, #0x48] -_020BD6A0: - add r4, r4, #0x4 - b _020BD6C4 -_020BD6A8: - ands r0, r5, #0x40 - ldrne r0, [r7, #0x0] - orrne r0, r0, #0x2 - strne r0, [r7, #0x0] - bne _020BD6C4 - mov r0, r7 - bl FUN_020BD850 -_020BD6C4: - ands r0, r5, #0x600 - bne _020BD7F0 - ands r0, r5, #0x800 - bne _020BD71C - cmp r6, #0x0 - beq _020BD6F4 - add r0, sp, #0x0 - mov r1, r8 - mov r2, r4 - mov r3, r9 - bl FUN_020BCDC4 - b _020BD708 -_020BD6F4: - add r0, sp, #0x0 - mov r1, r8 - mov r2, r4 - mov r3, r9 - bl FUN_020BCF70 -_020BD708: - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - str r1, [sp, #0x18] - str r0, [sp, #0x24] - b _020BD72C -_020BD71C: - ldr r0, [r4, #0x0] - str r0, [sp, #0x18] - ldr r0, [r4, #0x4] - str r0, [sp, #0x24] -_020BD72C: - ands r0, r5, #0x1000 - bne _020BD77C - cmp r6, #0x0 - beq _020BD754 - add r0, sp, #0x8 - mov r1, r8 - mov r3, r9 - add r2, r4, #0x8 - bl FUN_020BCDC4 - b _020BD768 -_020BD754: - add r0, sp, #0x8 - mov r1, r8 - mov r3, r9 - add r2, r4, #0x8 - bl FUN_020BCF70 -_020BD768: - ldr r1, [sp, #0x8] - ldr r0, [sp, #0xc] - str r1, [sp, #0x1c] - str r0, [sp, #0x28] - b _020BD78C -_020BD77C: - ldr r0, [r4, #0x8] - str r0, [sp, #0x1c] - ldr r0, [r4, #0xc] - str r0, [sp, #0x28] -_020BD78C: - ands r0, r5, #0x2000 - bne _020BD7DC - cmp r6, #0x0 - beq _020BD7B4 - add r0, sp, #0x10 - mov r1, r8 - mov r3, r9 - add r2, r4, #0x10 - bl FUN_020BCDC4 - b _020BD7C8 -_020BD7B4: - add r0, sp, #0x10 - mov r1, r8 - mov r3, r9 - add r2, r4, #0x10 - bl FUN_020BCF70 -_020BD7C8: - ldr r1, [sp, #0x10] - ldr r0, [sp, #0x14] - str r1, [sp, #0x20] - str r0, [sp, #0x2c] - b _020BD814 -_020BD7DC: - ldr r0, [r4, #0x10] - str r0, [sp, #0x20] - ldr r0, [r4, #0x14] - str r0, [sp, #0x2c] - b _020BD814 -_020BD7F0: - ands r0, r5, #0x200 - ldrne r0, [r7, #0x0] - orrne r0, r0, #0x1 - strne r0, [r7, #0x0] - bne _020BD814 - mov r0, r7 - bl FUN_020BD9A4 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} -_020BD814: - ldr r0, [r7, #0x0] - add r1, sp, #0x18 - ands r0, r0, #0x1 - ldr r0, _020BD84C ; =UNK_021CEF7C - movne r3, #0x4 - ldr r4, [r0, #0x0] - moveq r3, #0x0 - ldr r2, [r4, #0x0] - ldr r4, [r4, #0xe8] - mov r0, r7 - blx r4 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020BD848: .word 0x00000FFF -_020BD84C: .word UNK_021CEF7C - arm_func_end FUN_020BD470 - - arm_func_start FUN_020BD850 -FUN_020BD850: ; 0x020BD850 - stmdb sp!, {r4-r8,lr} - ldr r1, _020BD990 ; =UNK_021CEF7C - mov r8, r0 - ldr r0, [r1, #0x0] - ldr r3, [r0, #0xd4] - ldr r0, [r0, #0x0] - ldrh r2, [r3, #0x6] - ldrb r0, [r0, #0x1] - ldrh r1, [r3, r2] - add r2, r3, r2 - mla r0, r1, r0, r2 - ldr r0, [r0, #0x4] - ldrh r2, [r3, r0] - add r4, r3, r0 - add r1, r4, #0x4 - ands r0, r2, #0x1 - addeq r1, r1, #0xc - ands r0, r2, #0x2 - bne _020BD980 - ands r0, r2, #0x8 - beq _020BD934 - and r2, r2, #0xf0 - add r0, r8, #0x28 - mov r5, r2, asr #0x4 - ldrsh r7, [r1, #0x0] - ldrsh r6, [r1, #0x2] - bl MI_Zero36B - ldrh r0, [r4, #0x0] - add r1, r8, r5, lsl #0x2 - ands r0, r0, #0x100 - movne r0, #0x1000 - rsbne r2, r0, #0x0 - moveq r2, #0x1000 - ldr r0, _020BD994 ; =UNK_020FFA14 - str r2, [r1, #0x28] - ldrb r1, [r0, r5, lsl #0x2] - ldr r0, _020BD998 ; =UNK_020FFA14 + 1 - add r1, r8, r1, lsl #0x2 - str r7, [r1, #0x28] - ldrb r0, [r0, r5, lsl #0x2] - add r0, r8, r0, lsl #0x2 - str r6, [r0, #0x28] - ldrh r0, [r4, #0x0] - ands r0, r0, #0x200 - ldr r0, _020BD99C ; =UNK_020FFA14 + 2 - rsbne r6, r6, #0x0 - ldrb r0, [r0, r5, lsl #0x2] - add r0, r8, r0, lsl #0x2 - str r6, [r0, #0x28] - ldrh r0, [r4, #0x0] - ands r0, r0, #0x400 - ldr r0, _020BD9A0 ; =UNK_020FFA14 + 3 - rsbne r7, r7, #0x0 - ldrb r0, [r0, r5, lsl #0x2] - add r0, r8, r0, lsl #0x2 - str r7, [r0, #0x28] - ldmia sp!, {r4-r8,pc} -_020BD934: - ldrsh r0, [r4, #0x2] - str r0, [r8, #0x28] - ldrsh r0, [r1, #0x0] - str r0, [r8, #0x2c] - ldrsh r0, [r1, #0x2] - str r0, [r8, #0x30] - ldrsh r0, [r1, #0x4] - str r0, [r8, #0x34] - ldrsh r0, [r1, #0x6] - str r0, [r8, #0x38] - ldrsh r0, [r1, #0x8] - str r0, [r8, #0x3c] - ldrsh r0, [r1, #0xa] - str r0, [r8, #0x40] - ldrsh r0, [r1, #0xc] - str r0, [r8, #0x44] - ldrsh r0, [r1, #0xe] - str r0, [r8, #0x48] - ldmia sp!, {r4-r8,pc} -_020BD980: - ldr r0, [r8, #0x0] - orr r0, r0, #0x2 - str r0, [r8, #0x0] - ldmia sp!, {r4-r8,pc} - .balign 4 -_020BD990: .word UNK_021CEF7C -_020BD994: .word UNK_020FFA14 -_020BD998: .word UNK_020FFA14 + 1 -_020BD99C: .word UNK_020FFA14 + 2 -_020BD9A0: .word UNK_020FFA14 + 3 - arm_func_end FUN_020BD850 - - arm_func_start FUN_020BD9A4 -FUN_020BD9A4: ; 0x020BD9A4 - stmdb sp!, {r4,lr} - ldr r1, _020BDA04 ; =UNK_021CEF7C - ldr r12, [r1, #0x0] - ldr r4, [r12, #0xd4] - ldr r2, [r12, #0x0] - ldrh lr, [r4, #0x6] - ldrb r1, [r2, #0x1] - ldrh r3, [r4, lr] - add lr, r4, lr - mla r1, r3, r1, lr - ldr r1, [r1, #0x4] - ldrh r3, [r4, r1] - add r1, r4, r1 - add r1, r1, #0x4 - ands lr, r3, #0x1 - addeq r1, r1, #0xc - ands lr, r3, #0x2 - bne _020BD9F8 - ands lr, r3, #0x8 - addne r1, r1, #0x4 - addeq r1, r1, #0x10 -_020BD9F8: - ldr r12, [r12, #0xe8] - blx r12 - ldmia sp!, {r4,pc} - .balign 4 -_020BDA04: .word UNK_021CEF7C - arm_func_end FUN_020BD9A4 - - arm_func_start FUN_020BDA08 -FUN_020BDA08: ; 0x020BDA08 - ldr r1, _020BDA6C ; =UNK_021CEF7C - ldr r1, [r1, #0x0] - ldr r12, [r1, #0xd4] - ldr r1, [r1, #0x0] - ldrh r3, [r12, #0x6] - ldrb r1, [r1, #0x1] - ldrh r2, [r12, r3] - add r3, r12, r3 - mla r1, r2, r1, r3 - ldr r2, [r1, #0x4] - ldrh r1, [r12, r2] - add r2, r12, r2 - ands r1, r1, #0x1 - ldrne r1, [r0, #0x0] - orrne r1, r1, #0x4 - strne r1, [r0, #0x0] - bxne lr - ldr r1, [r2, #0x4] - add r2, r2, #0x4 - str r1, [r0, #0x4c] - ldr r1, [r2, #0x4] - str r1, [r0, #0x50] - ldr r1, [r2, #0x8] - str r1, [r0, #0x54] - bx lr - .balign 4 -_020BDA6C: .word UNK_021CEF7C - arm_func_end FUN_020BDA08 - - arm_func_start FUN_020BDA70 -FUN_020BDA70: ; 0x020BDA70 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r3, r0 - ldr r0, [r1, #0x8] - ldr r12, [r1, #0x0] - ldrh r1, [r0, #0x4] - mov r1, r1, lsl #0xc - cmp r12, r1 - subge r12, r1, #0x1 - bge _020BDAA0 - cmp r12, #0x0 - movlt r12, #0x0 -_020BDAA0: - mov r1, r2 - mov r2, r12 - bl FUN_020BD470 - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BDA70 - - arm_func_start FUN_020BDAB4 -FUN_020BDAB4: ; 0x020BDAB4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - ldr r0, _020BDB3C ; =UNK_0210659C - str r4, [r5, #0x8] - ldr r0, [r0, #0x0] - add r1, r5, #0x1a - str r0, [r5, #0xc] - ldrb r2, [r2, #0x17] - mov r0, #0x0 - strb r2, [r5, #0x19] - ldrb r2, [r5, #0x19] - mov r2, r2, lsl #0x1 - bl MIi_CpuClear16 - ldrh r0, [r4, #0x6] - add r2, r4, #0x14 - mov r3, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r5,pc} -_020BDB08: - mov r0, r3, lsl #0x1 - ldrh r1, [r2, r0] - add r0, r5, r3, lsl #0x1 - add r3, r3, #0x1 - ldr r1, [r4, r1] - mov r1, r1, lsr #0x18 - orr r1, r1, #0x100 - strh r1, [r0, #0x1a] - ldrh r0, [r4, #0x6] - cmp r3, r0 - blo _020BDB08 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BDB3C: .word UNK_0210659C - arm_func_end FUN_020BDAB4 - - arm_func_start FUN_020BDB40 -FUN_020BDB40: ; 0x020BDB40 - stmdb sp!, {r4-r8,lr} - ldr r7, [r1, #0x8] - mov r2, r2, lsl #0x10 - ldrh r4, [r7, #0xe] - add r5, r7, #0x8 - ldr r6, [r1, #0x0] - ldrh r3, [r5, r4] - mov r1, r2, lsr #0x10 - add r2, r5, r4 - mul r4, r3, r1 - add r3, r2, #0x4 - mov r6, r6, asr #0xc - mov r8, r0 - ldr r1, [r3, r4] - mov r0, r7 - mov r2, r6 - add r5, r3, r4 - bl FUN_020BDDAC - mov r4, r0 - ldr r1, [r5, #0x4] - mov r0, r7 - mov r2, r6 - bl FUN_020BDDAC - ldr r1, [r8, #0x4] - mov r2, r6 - and r1, r1, #0x8000 - orr r1, r1, r4 - orr r0, r1, r0, lsl #0x10 - str r0, [r8, #0x4] - mov r0, r7 - ldr r1, [r5, #0xc] - bl FUN_020BDDAC - mov r4, r0 - mov r0, r7 - ldr r1, [r5, #0x8] - mov r2, r6 - bl FUN_020BDDAC - mov r2, r6 - ldr r1, [r8, #0x8] - and r1, r1, #0x8000 - orr r0, r1, r0 - orr r0, r0, r4, lsl #0x10 - str r0, [r8, #0x8] - mov r0, r7 - ldr r1, [r5, #0x10] - bl FUN_020BDCB8 - ldr r1, [r8, #0xc] - bic r1, r1, #0x1f0000 - orr r0, r1, r0, lsl #0x10 - str r0, [r8, #0xc] - ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020BDB40 - - arm_func_start FUN_020BDC0C -FUN_020BDC0C: ; 0x020BDC0C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r3, _020BDCB4 ; =UNK_021065A8 - ldr r4, [r2, #0x8] - ldr r3, [r3, #0x0] - mov r9, r0 - str r3, [r9, #0xc] - ldrb r0, [r2, #0x18] - mov r8, r1 - add r4, r2, r4 - strb r0, [r9, #0x19] - ldrb r2, [r9, #0x19] - add r1, r9, #0x1a - mov r0, #0x0 - mov r2, r2, lsl #0x1 - bl MIi_CpuClear16 - ldrb r0, [r8, #0x9] - mov r7, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r9,pc} - mov r6, r7 - add r5, r8, #0x8 - add r4, r4, #0x4 -_020BDC6C: - ldrh r1, [r8, #0xe] - mov r0, r4 - add r2, r5, r1 - ldrh r1, [r2, #0x2] - add r1, r2, r1 - add r1, r1, r6 - bl FUN_020BC14C - cmp r0, #0x0 - orrge r1, r7, #0x100 - addge r0, r9, r0, lsl #0x1 - strgeh r1, [r0, #0x1a] - ldrb r0, [r8, #0x9] - add r7, r7, #0x1 - add r6, r6, #0x10 - cmp r7, r0 - blo _020BDC6C - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020BDCB4: .word UNK_021065A8 - arm_func_end FUN_020BDC0C - - arm_func_start FUN_020BDCB8 -FUN_020BDCB8: ; 0x020BDCB8 - ands r3, r1, #0x20000000 - movne r0, r1, lsl #0x10 - movne r0, r0, lsr #0x10 - bxne lr - ldr r3, _020BDDA4 ; =0x0000FFFF - ands r12, r1, #0xc0000000 - and r3, r1, r3 - add r0, r0, r3 - ldreqb r0, [r0, r2] - bxeq lr - ldr r3, _020BDDA8 ; =0x1FFF0000 - ands r12, r1, #0x40000000 - and r1, r1, r3 - mov r3, r1, lsr #0x10 - beq _020BDD30 - ands r1, r2, #0x1 - beq _020BDD28 - cmp r2, r3 - addhi r0, r0, r3, lsr #0x1 - ldrhib r0, [r0, #0x1] - bxhi lr - add r1, r0, r2, lsr #0x1 - ldrb r2, [r0, r2, lsr #0x1] - ldrb r0, [r1, #0x1] - add r0, r2, r0 - mov r0, r0, lsl #0xf - mov r0, r0, lsr #0x10 - bx lr -_020BDD28: - ldrb r0, [r0, r2, lsr #0x1] - bx lr -_020BDD30: - ands r1, r2, #0x3 - beq _020BDD9C - cmp r2, r3 - addhi r0, r0, r3, lsr #0x2 - ldrhib r0, [r1, r0] - bxhi lr - ands r1, r2, #0x1 - beq _020BDD80 - ands r1, r2, #0x2 - movne r1, r2, lsr #0x2 - addne r2, r1, #0x1 - moveq r2, r2, lsr #0x2 - addeq r1, r2, #0x1 - ldrb r2, [r0, r2] - ldrb r1, [r0, r1] - mov r0, #0x3 - mla r0, r2, r0, r1 - mov r0, r0, lsl #0xe - mov r0, r0, lsr #0x10 - bx lr -_020BDD80: - add r1, r0, r2, lsr #0x2 - ldrb r2, [r0, r2, lsr #0x2] - ldrb r0, [r1, #0x1] - add r0, r2, r0 - mov r0, r0, lsl #0xf - mov r0, r0, lsr #0x10 - bx lr -_020BDD9C: - ldrb r0, [r0, r2, lsr #0x2] - bx lr - .balign 4 -_020BDDA4: .word 0x0000FFFF -_020BDDA8: .word 0x1FFF0000 - arm_func_end FUN_020BDCB8 - - arm_func_start FUN_020BDDAC -FUN_020BDDAC: ; 0x020BDDAC - stmdb sp!, {lr} - sub sp, sp, #0x4 - ands r3, r1, #0x20000000 - movne r0, r1, lsl #0x10 - addne sp, sp, #0x4 - movne r0, r0, lsr #0x10 - ldmneia sp!, {pc} - ldr r3, _020BDF2C ; =0x0000FFFF - ands r12, r1, #0xc0000000 - and r3, r1, r3 - add r0, r0, r3 - moveq r1, r2, lsl #0x1 - addeq sp, sp, #0x4 - ldreqh r0, [r0, r1] - ldmeqia sp!, {pc} - ldr r3, _020BDF30 ; =0x1FFF0000 - ands r12, r1, #0x40000000 - and r1, r1, r3 - mov r3, r1, lsr #0x10 - beq _020BDE34 - ands r1, r2, #0x1 - beq _020BDE24 - cmp r2, r3 - bichi r1, r3, #0x1 - addhi r0, r0, r1 - addhi sp, sp, #0x4 - ldrhih r0, [r0, #0x2] - ldmhiia sp!, {pc} - mov r1, r2, lsr #0x1 - b _020BDEE0 -_020BDE24: - bic r1, r2, #0x1 - add sp, sp, #0x4 - ldrh r0, [r0, r1] - ldmia sp!, {pc} -_020BDE34: - ands r1, r2, #0x3 - beq _020BDECC - cmp r2, r3 - movhi r2, r3, lsr #0x2 - movhi r1, r1, lsl #0x1 - addhi r0, r0, r2, lsl #0x1 - addhi sp, sp, #0x4 - ldrhih r0, [r1, r0] - ldmhiia sp!, {pc} - ands r1, r2, #0x1 - beq _020BDEC4 - ands r1, r2, #0x2 - movne r1, r2, lsr #0x2 - addne r2, r1, #0x1 - moveq r2, r2, lsr #0x2 - addeq r1, r2, #0x1 - mov r2, r2, lsl #0x1 - mov r1, r1, lsl #0x1 - ldrh r12, [r0, r2] - ldrh lr, [r0, r1] - ldr r0, _020BDF34 ; =0x00007C1F - and r3, r12, #0x3e0 - and r2, lr, #0x3e0 - mov r1, #0x3 - mla r2, r3, r1, r2 - and r12, r12, r0 - and r3, lr, r0 - mla r1, r12, r1, r3 - mov r2, r2, lsr #0x2 - and r1, r0, r1, lsr #0x2 - and r0, r2, #0x3e0 - orr r0, r1, r0 - mov r0, r0, lsl #0x10 - add sp, sp, #0x4 - mov r0, r0, lsr #0x10 - ldmia sp!, {pc} -_020BDEC4: - mov r1, r2, lsr #0x2 - b _020BDEE0 -_020BDECC: - mov r1, r2, lsr #0x2 - mov r1, r1, lsl #0x1 - add sp, sp, #0x4 - ldrh r0, [r0, r1] - ldmia sp!, {pc} -_020BDEE0: - mov r2, r1, lsl #0x1 - add r1, r0, r1, lsl #0x1 - ldrh r3, [r0, r2] - ldrh r12, [r1, #0x2] - ldr r0, _020BDF34 ; =0x00007C1F - and r2, r3, #0x3e0 - and r1, r12, #0x3e0 - add r1, r2, r1 - mov r1, r1, lsr #0x1 - and r3, r3, r0 - and r2, r12, r0 - add r2, r3, r2 - and r2, r0, r2, lsr #0x1 - and r0, r1, #0x3e0 - orr r0, r2, r0 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020BDF2C: .word 0x0000FFFF -_020BDF30: .word 0x1FFF0000 -_020BDF34: .word 0x00007C1F - arm_func_end FUN_020BDDAC - - arm_func_start FUN_020BDF38 -FUN_020BDF38: ; 0x020BDF38 - stmdb sp!, {r4,lr} - ldr r12, [r1, #0x0] - mov r4, r0 - mov r2, r2, lsl #0x10 - ldr r0, [r1, #0x8] - mov r1, r2, lsr #0x10 - mov r3, r4 - mov r2, r12, asr #0xc - bl FUN_020BE030 - ldr r0, [r4, #0x10] - bic r0, r0, #0xc0000000 - str r0, [r4, #0x10] - ldr r0, [r4, #0x10] - orr r0, r0, #0x40000000 - str r0, [r4, #0x10] - ldr r0, [r4, #0x0] - orr r0, r0, #0x8 - str r0, [r4, #0x0] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BDF38 - - arm_func_start FUN_020BDF84 -FUN_020BDF84: ; 0x020BDF84 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r3, _020BE02C ; =UNK_021065A0 - ldr r4, [r2, #0x8] - ldr r3, [r3, #0x0] - mov r9, r0 - str r3, [r9, #0xc] - ldrb r0, [r2, #0x18] - mov r8, r1 - add r4, r2, r4 - strb r0, [r9, #0x19] - ldrb r2, [r9, #0x19] - add r1, r9, #0x1a - mov r0, #0x0 - mov r2, r2, lsl #0x1 - bl MIi_CpuClear16 - ldrb r0, [r8, #0x9] - mov r7, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r9,pc} - mov r6, r7 - add r5, r8, #0x8 - add r4, r4, #0x4 -_020BDFE4: - ldrh r1, [r8, #0xe] - mov r0, r4 - add r2, r5, r1 - ldrh r1, [r2, #0x2] - add r1, r2, r1 - add r1, r1, r6 - bl FUN_020BC14C - cmp r0, #0x0 - orrge r1, r7, #0x100 - addge r0, r9, r0, lsl #0x1 - strgeh r1, [r0, #0x1a] - ldrb r0, [r8, #0x9] - add r7, r7, #0x1 - add r6, r6, #0x10 - cmp r7, r0 - blo _020BDFE4 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020BE02C: .word UNK_021065A0 - arm_func_end FUN_020BDF84 - - arm_func_start FUN_020BE030 -FUN_020BE030: ; 0x020BE030 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - ldrh r4, [r8, #0xe] - add r5, r8, #0x8 - mov r6, r3 - ldrh r3, [r5, r4] - add r4, r5, r4 - add r4, r4, #0x4 - mla r5, r3, r1, r4 - mov r7, r2 - ldr r1, [r5, #0x18] - ldr r2, [r5, #0x1c] - mov r3, r7 - ldr r4, [r6, #0x0] - bl FUN_020BE238 - mov r9, r0 - ldr r1, [r5, #0x20] - mov r0, r8 - ldr r2, [r5, #0x24] - mov r3, r7 - bl FUN_020BE238 - cmp r9, #0x0 - bne _020BE09C - cmp r0, #0x0 - orreq r4, r4, #0x4 - beq _020BE0A8 -_020BE09C: - str r9, [r6, #0x24] - str r0, [r6, #0x28] - bic r4, r4, #0x4 -_020BE0A8: - ldr r1, [r5, #0x10] - ldr r2, [r5, #0x14] - mov r0, r8 - mov r3, r7 - bl FUN_020BE12C - cmp r0, #0x10000000 - strneh r0, [r6, #0x20] - movne r0, r0, lsr #0x10 - strneh r0, [r6, #0x22] - orreq r4, r4, #0x2 - ldr r1, [r5, #0x0] - ldr r2, [r5, #0x4] - mov r0, r8 - mov r3, r7 - bicne r4, r4, #0x2 - bl FUN_020BE238 - mov r9, r0 - ldr r1, [r5, #0x8] - ldr r2, [r5, #0xc] - mov r0, r8 - mov r3, r7 - bl FUN_020BE238 - cmp r9, #0x1000 - bne _020BE114 - cmp r0, #0x1000 - orreq r4, r4, #0x1 - beq _020BE120 -_020BE114: - str r9, [r6, #0x18] - str r0, [r6, #0x1c] - bic r4, r4, #0x1 -_020BE120: - str r4, [r6, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020BE030 - - arm_func_start FUN_020BE12C -FUN_020BE12C: ; 0x020BE12C - ands r12, r1, #0x20000000 - movne r0, r2 - bxne lr - add r0, r0, r2 - ands r2, r1, #0xc0000000 - beq _020BE1F8 - ldr r2, _020BE234 ; =0x0000FFFF - ands r12, r1, #0x40000000 - and r2, r1, r2 - beq _020BE17C - ands r1, r3, #0x1 - beq _020BE174 - cmp r3, r2 - movhi r1, r2, lsr #0x1 - addhi r3, r1, #0x1 - bhi _020BE1F8 - mov r2, r3, lsr #0x1 - b _020BE200 -_020BE174: - mov r3, r3, lsr #0x1 - b _020BE1F8 -_020BE17C: - ands r1, r3, #0x3 - beq _020BE1F4 - cmp r3, r2 - addhi r3, r1, r2, lsr #0x2 - bhi _020BE1F8 - ands r1, r3, #0x1 - beq _020BE1EC - ands r1, r3, #0x2 - movne r1, r3, lsr #0x2 - addne r2, r1, #0x1 - moveq r2, r3, lsr #0x2 - addeq r1, r2, #0x1 - mov r12, r2, lsl #0x2 - add r3, r0, r2, lsl #0x2 - mov r2, r1, lsl #0x2 - add r1, r0, r1, lsl #0x2 - ldrsh r12, [r0, r12] - ldrsh r2, [r0, r2] - mov r0, #0x3 - ldrsh r3, [r3, #0x2] - ldrsh r1, [r1, #0x2] - mla r2, r12, r0, r2 - mla r1, r3, r0, r1 - ldr r0, _020BE234 ; =0x0000FFFF - mov r1, r1, asr #0x2 - and r0, r0, r2, asr #0x2 - orr r0, r0, r1, lsl #0x10 - bx lr -_020BE1EC: - mov r2, r3, lsr #0x2 - b _020BE200 -_020BE1F4: - mov r3, r3, lsr #0x2 -_020BE1F8: - ldr r0, [r0, r3, lsl #0x2] - bx lr -_020BE200: - add r1, r0, r2, lsl #0x2 - mov r2, r2, lsl #0x2 - ldrsh r12, [r0, r2] - ldrsh r3, [r1, #0x4] - ldrsh r2, [r1, #0x2] - ldrsh r1, [r1, #0x6] - ldr r0, _020BE234 ; =0x0000FFFF - add r3, r12, r3 - add r1, r2, r1 - and r2, r0, r3, asr #0x1 - mov r0, r1, asr #0x1 - orr r0, r2, r0, lsl #0x10 - bx lr - .balign 4 -_020BE234: .word 0x0000FFFF - arm_func_end FUN_020BE12C - - arm_func_start FUN_020BE238 -FUN_020BE238: ; 0x020BE238 - ands r12, r1, #0x20000000 - movne r0, r2 - bxne lr - add r0, r0, r2 - ands r2, r1, #0xc0000000 - beq _020BE2F0 - ldr r2, _020BE330 ; =0x0000FFFF - ands r12, r1, #0x40000000 - and r12, r1, r2 - beq _020BE288 - ands r2, r3, #0x1 - beq _020BE280 - cmp r3, r12 - movhi r2, r12, lsr #0x1 - addhi r3, r2, #0x1 - bhi _020BE2F0 - mov r3, r3, lsr #0x1 - b _020BE304 -_020BE280: - mov r3, r3, lsr #0x1 - b _020BE2F0 -_020BE288: - ands r2, r3, #0x3 - beq _020BE2EC - cmp r3, r12 - addhi r3, r2, r12, lsr #0x2 - bhi _020BE2F0 - ands r2, r3, #0x1 - beq _020BE2E4 - ands r2, r3, #0x2 - movne r3, r3, lsr #0x2 - addne r2, r3, #0x1 - moveq r2, r3, lsr #0x2 - addeq r3, r2, #0x1 - ands r1, r1, #0x10000000 - movne r2, r2, lsl #0x1 - movne r1, r3, lsl #0x1 - ldrnesh r2, [r0, r2] - ldrnesh r1, [r0, r1] - ldreq r2, [r0, r2, lsl #0x2] - ldreq r1, [r0, r3, lsl #0x2] - mov r0, #0x3 - mla r0, r2, r0, r1 - mov r0, r0, asr #0x2 - bx lr -_020BE2E4: - mov r3, r3, lsr #0x2 - b _020BE304 -_020BE2EC: - mov r3, r3, lsr #0x2 -_020BE2F0: - ands r1, r1, #0x10000000 - movne r1, r3, lsl #0x1 - ldrnesh r0, [r0, r1] - ldreq r0, [r0, r3, lsl #0x2] - bx lr -_020BE304: - ands r1, r1, #0x10000000 - movne r2, r3, lsl #0x1 - addne r1, r0, r3, lsl #0x1 - ldrnesh r2, [r0, r2] - ldrnesh r0, [r1, #0x2] - addeq r1, r0, r3, lsl #0x2 - ldreq r2, [r0, r3, lsl #0x2] - ldreq r0, [r1, #0x4] - add r0, r2, r0 - mov r0, r0, asr #0x1 - bx lr - .balign 4 -_020BE330: .word 0x0000FFFF - arm_func_end FUN_020BE238 - - arm_func_start FUN_020BE334 -FUN_020BE334: ; 0x020BE334 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldr r3, [r6, #0x0] - ldr r5, [r6, #0x8] - mov r1, r2, lsl #0x10 - mov r2, r3, lsl #0x4 - mov r7, r0 - mov r0, r5 - mov r1, r1, lsr #0x10 - mov r2, r2, lsr #0x10 - bl FUN_020BC42C - mov r4, r0 - ldrb r1, [r4, #0x2] - mov r0, r5 - bl FUN_020BC4B8 - mov r1, r0 - ldr r0, [r6, #0x14] - mov r2, r7 - bl FUN_020BE408 - ldrb r1, [r4, #0x3] - cmp r1, #0xff - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} - mov r0, r5 - bl FUN_020BC4A8 - mov r1, r0 - ldr r0, [r6, #0x14] - mov r2, r7 - bl FUN_020BE3B4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BE334 - - arm_func_start FUN_020BE3B4 -FUN_020BE3B4: ; 0x020BE3B4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrh r0, [r5, #0x34] - mov r4, r2 - add r0, r5, r0 - bl FUN_020BC2A0 - ldr r1, [r5, #0x2c] - ldrh r2, [r0, #0x2] - mov r1, r1, lsl #0x10 - mov r3, r1, lsr #0x10 - ands r1, r2, #0x1 - ldrh r0, [r0, #0x0] - moveq r1, r3, lsl #0xf - moveq r3, r1, lsr #0x10 - moveq r0, r0, lsl #0xf - moveq r0, r0, lsr #0x10 - add r0, r0, r3 - str r0, [r4, #0x14] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BE3B4 - - arm_func_start FUN_020BE408 -FUN_020BE408: ; 0x020BE408 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - add r0, r5, #0x3c - mov r4, r2 - bl FUN_020BC2A0 - ldr r1, [r0, #0x0] - ldr r3, [r4, #0x10] - and r1, r1, #0x1c000000 - cmp r1, #0x14000000 - ldrne r2, [r5, #0x8] - ldrne r1, _020BE4E0 ; =0x0000FFFF - andne r5, r2, r1 - ldreq r2, [r5, #0x18] - ldreq r1, _020BE4E0 ; =0x0000FFFF - andeq r5, r2, r1 - ldr r1, _020BE4E4 ; =0xC00F0000 - ldr r2, _020BE4E8 ; =0x000007FF - and r1, r3, r1 - str r1, [r4, #0x10] - ldr r1, [r0, #0x0] - ldr r3, [r4, #0x10] - add r1, r1, r5 - orr r1, r3, r1 - str r1, [r4, #0x10] - ldr r3, [r0, #0x4] - ldr r1, _020BE4EC ; =0x003FF800 - and r3, r3, r2 - strh r3, [r4, #0x2c] - ldr r3, [r0, #0x4] - and r1, r3, r1 - mov r1, r1, lsr #0xb - strh r1, [r4, #0x2e] - ldr r3, [r0, #0x4] - ldrh r1, [r4, #0x2c] - and r0, r3, r2 - and r5, r2, r3, lsr #0xb - cmp r0, r1 - moveq r0, #0x1000 - beq _020BE4B4 - mov r0, r0, lsl #0xc - mov r1, r1, lsl #0xc - bl FX_Div -_020BE4B4: - str r0, [r4, #0x30] - ldrh r1, [r4, #0x2e] - cmp r5, r1 - moveq r0, #0x1000 - beq _020BE4D4 - mov r0, r5, lsl #0xc - mov r1, r1, lsl #0xc - bl FX_Div -_020BE4D4: - str r0, [r4, #0x34] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020BE4E0: .word 0x0000FFFF -_020BE4E4: .word 0xC00F0000 -_020BE4E8: .word 0x000007FF -_020BE4EC: .word 0x003FF800 - arm_func_end FUN_020BE408 - - arm_func_start FUN_020BE4F0 -FUN_020BE4F0: ; 0x020BE4F0 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r3, _020BE59C ; =UNK_021065A4 - ldr r4, [r2, #0x8] - ldr r3, [r3, #0x0] - mov r9, r0 - str r3, [r9, #0xc] - ldrb r0, [r2, #0x18] - mov r8, r1 - add r4, r2, r4 - strb r0, [r9, #0x19] - str r8, [r9, #0x8] - ldrb r2, [r9, #0x19] - add r1, r9, #0x1a - mov r0, #0x0 - mov r2, r2, lsl #0x1 - bl MIi_CpuClear16 - ldrb r0, [r8, #0xd] - mov r7, #0x0 - cmp r0, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r9,pc} - mov r6, r7 - add r5, r8, #0xc - add r4, r4, #0x4 -_020BE554: - ldrh r1, [r8, #0x12] - mov r0, r4 - add r2, r5, r1 - ldrh r1, [r2, #0x2] - add r1, r2, r1 - add r1, r1, r6 - bl FUN_020BC14C - cmp r0, #0x0 - orrge r1, r7, #0x100 - addge r0, r9, r0, lsl #0x1 - strgeh r1, [r0, #0x1a] - ldrb r0, [r8, #0xd] - add r7, r7, #0x1 - add r6, r6, #0x10 - cmp r7, r0 - blo _020BE554 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020BE59C: .word UNK_021065A4 - arm_func_end FUN_020BE4F0 - - arm_func_start FUN_020BE5A0 -FUN_020BE5A0: ; 0x020BE5A0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr lr, [r1, #0x8] - ldr r3, [r1, #0x0] - ldrh r1, [lr, #0x6] - mov r12, r3, asr #0xc - mov r3, #0x1 - mla r2, r12, r1, r2 - mov r1, r2, lsr #0x5 - add r1, lr, r1, lsl #0x2 - ldr r1, [r1, #0xc] - and r2, r2, #0x1f - and r1, r1, r3, lsl r2 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BE5A0 - - arm_func_start FUN_020BE5E0 -FUN_020BE5E0: ; 0x020BE5E0 - ldr r3, _020BE628 ; =UNK_02106598 - mov r12, #0x0 - ldr r3, [r3, #0x0] - str r3, [r0, #0xc] - ldrb r2, [r2, #0x17] - strb r2, [r0, #0x19] - str r1, [r0, #0x8] - ldrb r1, [r0, #0x19] - cmp r1, #0x0 - bxls lr -_020BE608: - orr r2, r12, #0x100 - add r1, r0, r12, lsl #0x1 - strh r2, [r1, #0x1a] - ldrb r1, [r0, #0x19] - add r12, r12, #0x1 - cmp r12, r1 - blo _020BE608 - bx lr - .balign 4 -_020BE628: .word UNK_02106598 - arm_func_end FUN_020BE5E0 - - arm_func_start FUN_020BE62C -FUN_020BE62C: ; 0x020BE62C - ands r2, r3, #0x4 - ldrne r1, [r0, #0x0] - orrne r1, r1, #0x1 - strne r1, [r0, #0x0] - bne _020BE658 - ldr r2, [r1, #0x0] - str r2, [r0, #0x4] - ldr r2, [r1, #0x4] - str r2, [r0, #0x8] - ldr r1, [r1, #0x8] - str r1, [r0, #0xc] -_020BE658: - ldr r1, [r0, #0x0] - orr r1, r1, #0x18 - str r1, [r0, #0x0] - bx lr - arm_func_end FUN_020BE62C - - arm_func_start FUN_020BE668 -FUN_020BE668: ; 0x020BE668 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r1, [r4, #0x0] - ands r0, r1, #0x4 - bne _020BE6AC - ands r0, r1, #0x2 - bne _020BE698 - add r1, r4, #0x28 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - b _020BE6C4 -_020BE698: - add r1, r4, #0x4c - mov r0, #0x1c - mov r2, #0x3 - bl FUN_020BB1C0 - b _020BE6C4 -_020BE6AC: - ands r0, r1, #0x2 - bne _020BE6C4 - add r1, r4, #0x28 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 -_020BE6C4: - ldr r0, [r4, #0x0] - ands r0, r0, #0x1 - ldmneia sp!, {r4,pc} - add r1, r4, #0x4 - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 - ldmia sp!, {r4,pc} - arm_func_end FUN_020BE668 - - arm_func_start FUN_020BE6E4 -FUN_020BE6E4: ; 0x020BE6E4 - stmdb sp!, {r4,lr} - sub sp, sp, #0x50 - mov r4, r0 - ldr r0, [r4, #0x0] - mov r1, #0x0 - ands r0, r0, #0x8 - ldrne r0, _020BE820 ; =0x00101610 - mov r3, #0x3 - strne r0, [sp, #0x0] - ldreq r0, _020BE824 ; =0x00101810 - mov r2, #0x2 - streq r0, [sp, #0x0] - mov r0, #0x1000 - str r0, [sp, #0x44] - str r3, [sp, #0x4] - str r2, [sp, #0x48] - str r1, [sp, #0x40] - str r1, [sp, #0x34] - str r1, [sp, #0x30] - str r1, [sp, #0x2c] - str r1, [sp, #0x28] - str r1, [sp, #0x24] - str r1, [sp, #0x20] - str r1, [sp, #0x14] - str r1, [sp, #0x10] - ldr r1, [r4, #0x0] - ldr r0, _020BE828 ; =UNK_021067B0 - and r1, r1, #0x7 - ldr r2, [r0, r1, lsl #0x2] - add r0, sp, #0x8 - mov r1, r4 - blx r2 - ldr r3, [r4, #0x30] - cmp r3, #0x1000 - beq _020BE7B4 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x8] - ldr r2, [r4, #0x30] - ldr r0, [sp, #0x38] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0xc] - ldr r1, [r4, #0x30] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x38] -_020BE7B4: - ldr r3, [r4, #0x34] - cmp r3, #0x1000 - beq _020BE804 - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x1c] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x18] - ldr r2, [r4, #0x34] - ldr r0, [sp, #0x3c] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0x1c] - ldr r1, [r4, #0x34] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x3c] -_020BE804: - add r1, sp, #0x0 - ldr r0, [sp, #0x0] - add r1, r1, #0x4 - mov r2, #0x12 - bl FUN_020BB1C0 - add sp, sp, #0x50 - ldmia sp!, {r4,pc} - .balign 4 -_020BE820: .word 0x00101610 -_020BE824: .word 0x00101810 -_020BE828: .word UNK_021067B0 - arm_func_end FUN_020BE6E4 - - arm_func_start FUN_020BE82C -FUN_020BE82C: ; 0x020BE82C - mov r2, #0x1000 - str r2, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [r0, #0x10] - str r2, [r0, #0x14] - str r1, [r0, #0x30] - str r1, [r0, #0x34] - bx lr - arm_func_end FUN_020BE82C - - arm_func_start FUN_020BE850 -FUN_020BE850: ; 0x020BE850 - ldr r2, [r1, #0x18] - mov r12, #0x0 - str r2, [r0, #0x0] - ldr r2, [r1, #0x1c] - str r2, [r0, #0x14] - str r12, [r0, #0x4] - str r12, [r0, #0x30] - ldr r2, [r1, #0x1c] - ldrh r3, [r1, #0x2e] - mov r1, r2, lsl #0x1 - rsb r1, r1, #0x0 - add r1, r1, #0x2000 - mul r1, r3, r1 - mov r1, r1, lsl #0x3 - str r1, [r0, #0x34] - str r12, [r0, #0x10] - bx lr - arm_func_end FUN_020BE850 - - arm_func_start FUN_020BE894 -FUN_020BE894: ; 0x020BE894 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - rsb r2, r2, #0x0 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrsh r1, [r5, #0x20] - ldrsh r0, [r5, #0x22] - ldrh r2, [r5, #0x2c] - add r0, r1, r0 - rsb r0, r0, #0x0 - add r0, r0, #0x1000 - mul r0, r2, r0 - mov r0, r0, lsl #0x3 - str r0, [r6, #0x30] - ldrsh r1, [r5, #0x20] - ldrsh r0, [r5, #0x22] - ldrh r2, [r5, #0x2e] - sub r0, r1, r0 - add r0, r0, #0x1000 - mul r0, r2, r0 - mov r0, r0, lsl #0x3 - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BE894 - - arm_func_start FUN_020BE954 -FUN_020BE954: ; 0x020BE954 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldrh r2, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - mov r10, r0 - mov r8, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r8 - bl FX_DivAsync - ldrsh r5, [r9, #0x22] - ldr r3, [r9, #0x18] - ldrsh r0, [r9, #0x20] - ldr r4, [r9, #0x1c] - smull r2, r1, r3, r5 - mov r6, r2, lsr #0xc - orr r6, r6, r1, lsl #0x14 - smull r2, r1, r3, r0 - mov r7, r2, lsr #0xc - orr r7, r7, r1, lsl #0x14 - smull r3, r2, r4, r0 - smull r1, r0, r4, r5 - mov r5, r3, lsr #0xc - orr r5, r5, r2, lsl #0x14 - mov r4, r1, lsr #0xc - orr r4, r4, r0, lsl #0x14 - str r6, [r10, #0x0] - str r4, [r10, #0x14] - bl FX_GetDivResult - mov r1, r11 - rsb r2, r5, #0x0 - mul r0, r2, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x4] - mov r0, r8 - bl FX_DivAsync - sub r1, r5, r4 - add r0, r7, r6 - ldrh r3, [r9, #0x2c] - ldr r2, [r9, #0x18] - sub r0, r2, r0 - mul r0, r3, r0 - mov r0, r0, lsl #0x3 - str r0, [r10, #0x30] - ldrh r2, [r9, #0x2e] - ldr r0, [r9, #0x1c] - sub r0, r1, r0 - add r0, r0, #0x2000 - mul r0, r2, r0 - mov r0, r0, lsl #0x3 - str r0, [r10, #0x34] - bl FX_GetDivResult - mul r0, r7, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BE954 - - arm_func_start FUN_020BEA3C -FUN_020BEA3C: ; 0x020BEA3C - mov r2, #0x1000 - str r2, [r0, #0x0] - str r2, [r0, #0x14] - mov r12, #0x0 - str r12, [r0, #0x4] - ldrh r2, [r1, #0x2c] - ldr r3, [r1, #0x24] - mul r2, r3, r2 - rsb r2, r2, #0x0 - mov r2, r2, lsl #0x4 - str r2, [r0, #0x30] - ldrh r2, [r1, #0x2e] - ldr r1, [r1, #0x28] - mul r2, r1, r2 - mov r1, r2, lsl #0x4 - str r1, [r0, #0x34] - str r12, [r0, #0x10] - bx lr - arm_func_end FUN_020BEA3C - - arm_func_start FUN_020BEA84 -FUN_020BEA84: ; 0x020BEA84 - stmdb sp!, {r4,lr} - ldr r3, [r1, #0x18] - mov r2, #0x0 - str r3, [r0, #0x0] - ldr r3, [r1, #0x1c] - str r3, [r0, #0x14] - str r2, [r0, #0x4] - ldr r4, [r1, #0x18] - ldr r3, [r1, #0x24] - ldrh lr, [r1, #0x2c] - smull r12, r3, r4, r3 - mov r4, r12, lsr #0x8 - orr r4, r4, r3, lsl #0x18 - rsb r3, r4, #0x0 - mul r3, lr, r3 - str r3, [r0, #0x30] - ldr r4, [r1, #0x1c] - ldr r12, [r1, #0x28] - mov r3, r4, lsl #0x1 - smull lr, r12, r4, r12 - rsb r4, r3, #0x0 - mov r3, lr, lsr #0x8 - ldrh lr, [r1, #0x2e] - add r1, r4, #0x2000 - orr r3, r3, r12, lsl #0x18 - mul r4, lr, r1 - mul r1, lr, r3 - add r1, r1, r4, lsl #0x3 - str r1, [r0, #0x34] - str r2, [r0, #0x10] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BEA84 - - arm_func_start FUN_020BEB00 -FUN_020BEB00: ; 0x020BEB00 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - rsb r2, r2, #0x0 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrsh r2, [r5, #0x20] - ldrsh r1, [r5, #0x22] - ldrh r3, [r5, #0x2c] - ldr r0, [r5, #0x24] - add r1, r2, r1 - rsb r1, r1, #0x0 - add r1, r1, #0x1000 - mul r2, r3, r1 - mul r1, r0, r3 - mov r0, r2, lsl #0x3 - sub r0, r0, r1, lsl #0x4 - str r0, [r6, #0x30] - ldrsh r2, [r5, #0x20] - ldrsh r1, [r5, #0x22] - ldrh r3, [r5, #0x2e] - ldr r0, [r5, #0x28] - sub r1, r2, r1 - add r1, r1, #0x1000 - mul r2, r3, r1 - mul r1, r0, r3 - mov r0, r2, lsl #0x3 - add r0, r0, r1, lsl #0x4 - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BEB00 - - arm_func_start FUN_020BEBD8 -FUN_020BEBD8: ; 0x020BEBD8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldrh r2, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - mov r10, r0 - mov r8, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r8 - bl FX_DivAsync - ldrsh r5, [r9, #0x22] - ldr r3, [r9, #0x18] - ldrsh r0, [r9, #0x20] - ldr r4, [r9, #0x1c] - smull r2, r1, r3, r5 - mov r6, r2, lsr #0xc - orr r6, r6, r1, lsl #0x14 - smull r2, r1, r3, r0 - mov r7, r2, lsr #0xc - orr r7, r7, r1, lsl #0x14 - smull r3, r2, r4, r0 - smull r1, r0, r4, r5 - mov r5, r3, lsr #0xc - orr r5, r5, r2, lsl #0x14 - mov r4, r1, lsr #0xc - orr r4, r4, r0, lsl #0x14 - str r6, [r10, #0x0] - str r4, [r10, #0x14] - bl FX_GetDivResult - mov r1, r11 - rsb r2, r5, #0x0 - mul r0, r2, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x4] - mov r0, r8 - bl FX_DivAsync - sub r1, r5, r4 - add r2, r7, r6 - ldr r5, [r9, #0x18] - ldrh r0, [r9, #0x2c] - sub r3, r5, r2 - ldr r2, [r9, #0x24] - mul r4, r0, r3 - smull r3, r2, r5, r2 - mov r4, r4, lsl #0x3 - mov r3, r3, lsr #0x8 - orr r3, r3, r2, lsl #0x18 - mul r2, r0, r3 - sub r0, r4, r2 - str r0, [r10, #0x30] - ldr r4, [r9, #0x1c] - ldrh r3, [r9, #0x2e] - sub r0, r1, r4 - add r0, r0, #0x2000 - mul r2, r3, r0 - ldr r0, [r9, #0x28] - smull r1, r0, r4, r0 - mov r1, r1, lsr #0x8 - orr r1, r1, r0, lsl #0x18 - mul r0, r3, r1 - add r0, r0, r2, lsl #0x3 - str r0, [r10, #0x34] - bl FX_GetDivResult - mul r0, r7, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BEBD8 - - arm_func_start FUN_020BECEC -FUN_020BECEC: ; 0x020BECEC - stmdb sp!, {r4-r8,lr} - mov r12, r0 - ands r0, r3, #0x4 - ldrb r3, [r2, #0x3] - beq _020BED40 - ldr r1, [r12, #0x0] - ands r0, r3, #0x2 - orr r0, r1, #0x1 - str r0, [r12, #0x0] - beq _020BEDB8 - ldr r0, _020BEE2C ; =UNK_021CEF7C - ldrb r7, [r2, #0x1] - ldr r0, [r0, #0x0] - mov r1, #0x1 - add r6, r0, #0xc4 - mov r5, r7, lsr #0x5 - ldr r4, [r6, r5, lsl #0x2] - and r0, r7, #0x1f - orr r0, r4, r1, lsl r0 - str r0, [r6, r5, lsl #0x2] - b _020BEDB8 -_020BED40: - ldr r4, [r1, #0x0] - ands r0, r3, #0x2 - str r4, [r12, #0x4] - ldr r0, [r1, #0x4] - str r0, [r12, #0x8] - ldr r0, [r1, #0x8] - str r0, [r12, #0xc] - beq _020BEDB8 - ldr lr, _020BEE2C ; =UNK_021CEF7C - ldrb r0, [r2, #0x1] - ldr r4, [lr, #0x0] - mov lr, #0x18 - add r8, r4, #0xc4 - mov r7, r0, lsr #0x5 - and r4, r0, #0x1f - mov r5, #0x1 - mvn r4, r5, lsl r4 - ldr r6, [r8, r7, lsl #0x2] - mul r5, r0, lr - and r0, r6, r4 - str r0, [r8, r7, lsl #0x2] - ldr r4, [r1, #0xc] - ldr r0, _020BEE30 ; =UNK_021CFD8C - ldr lr, _020BEE34 ; =UNK_021CFD90 - str r4, [r0, r5] - ldr r4, [r1, #0x10] - ldr r0, _020BEE38 ; =UNK_021CFD94 - str r4, [lr, r5] - ldr r1, [r1, #0x14] - str r1, [r0, r5] -_020BEDB8: - ands r0, r3, #0x1 - beq _020BEE1C - ldrb r0, [r2, #0x2] - ldr r2, [r12, #0x0] - ldr r1, _020BEE2C ; =UNK_021CEF7C - orr r2, r2, #0x20 - str r2, [r12, #0x0] - ldr r2, [r1, #0x0] - mov r1, r0, lsr #0x5 - add r1, r2, r1, lsl #0x2 - and r2, r0, #0x1f - mov r3, #0x1 - mov r2, r3, lsl r2 - ldr r1, [r1, #0xc4] - ands r1, r2, r1 - ldrne r0, [r12, #0x0] - orrne r0, r0, #0x8 - strne r0, [r12, #0x0] - bne _020BEE1C - ldr r2, _020BEE30 ; =UNK_021CFD8C - mov r1, #0x18 - mla r1, r0, r1, r2 - add r3, r12, #0x10 - ldmia r1, {r0-r2} - stmia r3, {r0-r2} -_020BEE1C: - ldr r0, [r12, #0x0] - orr r0, r0, #0x10 - str r0, [r12, #0x0] - ldmia sp!, {r4-r8,pc} - .balign 4 -_020BEE2C: .word UNK_021CEF7C -_020BEE30: .word UNK_021CFD8C -_020BEE34: .word UNK_021CFD90 -_020BEE38: .word UNK_021CFD94 - arm_func_end FUN_020BECEC - - arm_func_start FUN_020BEE3C -FUN_020BEE3C: ; 0x020BEE3C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r1, [r5, #0x0] - mov r4, #0x0 - ands r0, r1, #0x4 - moveq r4, #0x1 - ands r0, r1, #0x20 - beq _020BEE94 - ands r0, r1, #0x8 - bne _020BEE94 - cmp r4, #0x0 - beq _020BEE84 - add r1, r5, #0x4c - mov r0, #0x1c - mov r2, #0x3 - bl FUN_020BB1C0 - mov r4, #0x0 -_020BEE84: - add r1, r5, #0x10 - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 -_020BEE94: - ldr r0, [r5, #0x0] - ands r0, r0, #0x2 - bne _020BEED0 - cmp r4, #0x0 - beq _020BEEBC - add r1, r5, #0x28 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - b _020BEEE8 -_020BEEBC: - add r1, r5, #0x28 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - b _020BEEE8 -_020BEED0: - cmp r4, #0x0 - beq _020BEEE8 - add r1, r5, #0x4c - mov r0, #0x1c - mov r2, #0x3 - bl FUN_020BB1C0 -_020BEEE8: - ldr r0, [r5, #0x0] - ands r0, r0, #0x1 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} - add r1, r5, #0x4 - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BEE3C - - arm_func_start FUN_020BEF10 -FUN_020BEF10: ; 0x020BEF10 - stmdb sp!, {lr} - sub sp, sp, #0x3c - ldr r1, [r0, #0x0] - mov r3, #0x0 - ands r1, r1, #0x8 - ldrne r1, _020BF0CC ; =0x00101710 - mov r2, #0x3 - strne r1, [sp, #0x0] - ldreq r1, _020BF0D0 ; =0x00101910 - str r3, [sp, #0x34] - streq r1, [sp, #0x0] - mov r1, #0x2 - str r1, [sp, #0x38] - str r3, [sp, #0x28] - str r3, [sp, #0x24] - str r3, [sp, #0x20] - str r3, [sp, #0x1c] - str r3, [sp, #0x14] - str r3, [sp, #0x10] - str r3, [sp, #0xc] - str r2, [sp, #0x4] - ldr r2, [r0, #0x0] - ands r1, r2, #0x4 - beq _020BEFA0 - str r3, [sp, #0x2c] - str r3, [sp, #0x30] - ldr r1, [r0, #0x0] - ands r1, r1, #0x1 - movne r1, #0x1000 - strne r1, [sp, #0x8] - strne r1, [sp, #0x18] - ldreq r1, [r0, #0x18] - streq r1, [sp, #0x8] - ldreq r1, [r0, #0x1c] - streq r1, [sp, #0x18] - b _020BF040 -_020BEFA0: - ands r1, r2, #0x1 - beq _020BEFE8 - ldr r2, [r0, #0x24] - ldrh r1, [r0, #0x2c] - mov r2, r2, lsl #0x4 - rsb r2, r2, #0x0 - mul r1, r2, r1 - str r1, [sp, #0x2c] - ldr r2, [r0, #0x28] - ldrh r1, [r0, #0x2e] - mov r2, r2, lsl #0x4 - rsb r2, r2, #0x0 - mul r3, r2, r1 - mov r1, #0x1000 - str r3, [sp, #0x30] - str r1, [sp, #0x8] - str r1, [sp, #0x18] - b _020BF040 -_020BEFE8: - ldr r2, [r0, #0x18] - ldr r1, [r0, #0x24] - ldrh r12, [r0, #0x2c] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0x8 - orr r2, r2, r1, lsl #0x18 - rsb r1, r2, #0x0 - mul r1, r12, r1 - str r1, [sp, #0x2c] - ldr r2, [r0, #0x1c] - ldr r1, [r0, #0x28] - ldrh r12, [r0, #0x2e] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0x8 - orr r2, r2, r1, lsl #0x18 - rsb r1, r2, #0x0 - mul r1, r12, r1 - str r1, [sp, #0x30] - ldr r1, [r0, #0x18] - str r1, [sp, #0x8] - ldr r1, [r0, #0x1c] - str r1, [sp, #0x18] -_020BF040: - ldr r12, [r0, #0x30] - cmp r12, #0x1000 - beq _020BF078 - ldr r2, [sp, #0x8] - ldr r1, [sp, #0x2c] - smull r3, r2, r12, r2 - mov r3, r3, lsr #0xc - orr r3, r3, r2, lsl #0x14 - str r3, [sp, #0x8] - ldr r2, [r0, #0x30] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0x2c] -_020BF078: - ldr r12, [r0, #0x34] - cmp r12, #0x1000 - beq _020BF0B0 - ldr r2, [sp, #0x18] - ldr r1, [sp, #0x30] - smull r3, r2, r12, r2 - mov r3, r3, lsr #0xc - orr r3, r3, r2, lsl #0x14 - str r3, [sp, #0x18] - ldr r0, [r0, #0x34] - smull r2, r1, r0, r1 - mov r0, r2, lsr #0xc - orr r0, r0, r1, lsl #0x14 - str r0, [sp, #0x30] -_020BF0B0: - add r1, sp, #0x0 - ldr r0, [sp, #0x0] - add r1, r1, #0x4 - mov r2, #0xe - bl FUN_020BB1C0 - add sp, sp, #0x3c - ldmia sp!, {pc} - .balign 4 -_020BF0CC: .word 0x00101710 -_020BF0D0: .word 0x00101910 - arm_func_end FUN_020BEF10 - - arm_func_start FUN_020BF0D4 -FUN_020BF0D4: ; 0x020BF0D4 - stmdb sp!, {r4-r8,lr} - mov r5, r0 - ands r0, r3, #0x4 - ldrb r4, [r2, #0x1] - ldrb r0, [r2, #0x2] - beq _020BF174 - ldr r2, [r5, #0x0] - ldr r1, _020BF2E0 ; =UNK_021CEF7C - orr r2, r2, #0x1 - str r2, [r5, #0x0] - ldr r3, [r1, #0x0] - mov r1, r0, lsr #0x5 - add r1, r3, r1, lsl #0x2 - and r2, r0, #0x1f - mov r6, #0x1 - mov r2, r6, lsl r2 - ldr r1, [r1, #0xc4] - ands r1, r2, r1 - beq _020BF148 - add r3, r3, #0xc4 - mov r2, r4, lsr #0x5 - ldr r1, [r3, r2, lsl #0x2] - and r0, r4, #0x1f - orr r0, r1, r6, lsl r0 - str r0, [r3, r2, lsl #0x2] - ldr r0, [r5, #0x0] - orr r0, r0, #0x18 - str r0, [r5, #0x0] - ldmia sp!, {r4-r8,pc} -_020BF148: - ldr r1, _020BF2E4 ; =UNK_021CFD80 - mov r2, #0x18 - mla r6, r0, r2, r1 - mla r1, r4, r2, r1 - mov r0, r6 - bl MIi_CpuCopy32 - mov r0, r6 - add r1, r5, #0x10 - mov r2, #0x18 - bl MIi_CpuCopy32 - ldmia sp!, {r4-r8,pc} -_020BF174: - ldr r3, [r1, #0x0] - ldr r2, _020BF2E0 ; =UNK_021CEF7C - str r3, [r5, #0x4] - ldr r3, [r1, #0x4] - mov r7, r0, lsr #0x5 - str r3, [r5, #0x8] - ldr r3, [r1, #0x8] - and r8, r0, #0x1f - str r3, [r5, #0xc] - ldr r6, [r2, #0x0] - mov r3, #0x1 - add r2, r6, r7, lsl #0x2 - mov r7, r3, lsl r8 - ldr r2, [r2, #0xc4] - ands r2, r7, r2 - beq _020BF200 - ldr r3, _020BF2E4 ; =UNK_021CFD80 - mov r2, #0x18 - mov r0, r1 - mla r1, r4, r2, r3 - bl MIi_CpuCopy32 - ldr r0, _020BF2E0 ; =UNK_021CEF7C - mov r2, r4, lsr #0x5 - ldr r1, [r0, #0x0] - and r0, r4, #0x1f - add r3, r1, #0xc4 - mov r1, #0x1 - mvn r0, r1, lsl r0 - ldr r1, [r3, r2, lsl #0x2] - and r0, r1, r0 - str r0, [r3, r2, lsl #0x2] - ldr r0, [r5, #0x0] - orr r0, r0, #0x18 - str r0, [r5, #0x0] - ldmia sp!, {r4-r8,pc} -_020BF200: - mov r2, #0x18 - mul r12, r0, r2 - and r7, r4, #0x1f - ldr r0, _020BF2E4 ; =UNK_021CFD80 - add r6, r6, #0xc4 - mov lr, r4, lsr #0x5 - mvn r7, r3, lsl r7 - ldr r8, [r6, lr, lsl #0x2] - mul r3, r4, r2 - and r4, r8, r7 - str r4, [r6, lr, lsl #0x2] - ldr r7, [r1, #0x0] - ldr r4, [r0, r12] - ldr r6, _020BF2E8 ; =UNK_021CFD84 - smull r8, r4, r7, r4 - mov r7, r8, lsr #0xc - orr r7, r7, r4, lsl #0x14 - str r7, [r0, r3] - ldr r8, [r1, #0x4] - ldr r4, [r6, r12] - ldr r7, _020BF2EC ; =UNK_021CFD88 - smull lr, r4, r8, r4 - mov r8, lr, lsr #0xc - orr r8, r8, r4, lsl #0x14 - str r8, [r6, r3] - ldr r8, [r1, #0x8] - ldr r4, [r7, r12] - ldr r6, _020BF2F0 ; =UNK_021CFD8C - smull lr, r4, r8, r4 - mov r8, lr, lsr #0xc - orr r8, r8, r4, lsl #0x14 - str r8, [r7, r3] - ldr r7, [r1, #0xc] - ldr r4, [r6, r12] - ldr lr, _020BF2F4 ; =UNK_021CFD90 - smull r8, r4, r7, r4 - mov r7, r8, lsr #0xc - orr r7, r7, r4, lsl #0x14 - str r7, [r6, r3] - ldr r7, [r1, #0x10] - ldr r4, [lr, r12] - ldr r6, _020BF2F8 ; =UNK_021CFD94 - smull r8, r4, r7, r4 - add r0, r0, r12 - mov r7, r8, lsr #0xc - orr r7, r7, r4, lsl #0x14 - str r7, [lr, r3] - ldr lr, [r1, #0x14] - ldr r4, [r6, r12] - add r1, r5, #0x10 - smull r5, r4, lr, r4 - mov r5, r5, lsr #0xc - orr r5, r5, r4, lsl #0x14 - str r5, [r6, r3] - bl MIi_CpuCopy32 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020BF2E0: .word UNK_021CEF7C -_020BF2E4: .word UNK_021CFD80 -_020BF2E8: .word UNK_021CFD84 -_020BF2EC: .word UNK_021CFD88 -_020BF2F0: .word UNK_021CFD8C -_020BF2F4: .word UNK_021CFD90 -_020BF2F8: .word UNK_021CFD94 - arm_func_end FUN_020BF0D4 - - arm_func_start FUN_020BF2FC -FUN_020BF2FC: ; 0x020BF2FC - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x10 - mov r6, r0 - ldr r0, [r6, #0x0] - mov r5, #0x0 - ands r4, r0, #0x18 - bne _020BF328 - add r1, r6, #0x1c - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 -_020BF328: - ldr r0, [r6, #0x0] - ands r0, r0, #0x4 - bne _020BF398 - cmp r4, #0x0 - movne r5, #0x1 - bne _020BF398 - ldr r2, [r6, #0x4c] - ldr r0, [r6, #0x10] - add r1, sp, #0x0 - smull r3, r0, r2, r0 - mov r2, r3, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x0] - ldr r3, [r6, #0x50] - ldr r2, [r6, #0x14] - mov r0, #0x1c - smull r12, r2, r3, r2 - mov r3, r12, lsr #0xc - orr r3, r3, r2, lsl #0x14 - str r3, [sp, #0x4] - ldr r12, [r6, #0x54] - ldr r3, [r6, #0x18] - mov r2, #0x3 - smull lr, r3, r12, r3 - mov r12, lr, lsr #0xc - orr r12, r12, r3, lsl #0x14 - str r12, [sp, #0x8] - bl FUN_020BB1C0 -_020BF398: - ldr r0, [r6, #0x0] - ands r0, r0, #0x2 - bne _020BF3D4 - cmp r5, #0x0 - beq _020BF3C0 - add r1, r6, #0x28 - mov r0, #0x19 - mov r2, #0xc - bl FUN_020BB1C0 - b _020BF3EC -_020BF3C0: - add r1, r6, #0x28 - mov r0, #0x1a - mov r2, #0x9 - bl FUN_020BB1C0 - b _020BF3EC -_020BF3D4: - cmp r5, #0x0 - beq _020BF3EC - add r1, r6, #0x4c - mov r0, #0x1c - mov r2, #0x3 - bl FUN_020BB1C0 -_020BF3EC: - cmp r4, #0x0 - bne _020BF404 - add r1, r6, #0x10 - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 -_020BF404: - ldr r0, [r6, #0x0] - ands r0, r0, #0x1 - addne sp, sp, #0x10 - ldmneia sp!, {r4-r6,pc} - add r1, r6, #0x4 - mov r0, #0x1b - mov r2, #0x3 - bl FUN_020BB1C0 - add sp, sp, #0x10 - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BF2FC - - arm_func_start FUN_020BF42C -FUN_020BF42C: ; 0x020BF42C - stmdb sp!, {r4,lr} - sub sp, sp, #0x50 - mov r4, r0 - ldr r0, [r4, #0x0] - mov r1, #0x0 - ands r0, r0, #0x8 - ldrne r0, _020BF568 ; =0x00101610 - mov r3, #0x3 - strne r0, [sp, #0x0] - ldreq r0, _020BF56C ; =0x00101810 - mov r2, #0x2 - streq r0, [sp, #0x0] - mov r0, #0x1000 - str r0, [sp, #0x44] - str r3, [sp, #0x4] - str r2, [sp, #0x48] - str r1, [sp, #0x40] - str r1, [sp, #0x34] - str r1, [sp, #0x30] - str r1, [sp, #0x2c] - str r1, [sp, #0x28] - str r1, [sp, #0x24] - str r1, [sp, #0x20] - str r1, [sp, #0x14] - str r1, [sp, #0x10] - ldr r1, [r4, #0x0] - ldr r0, _020BF570 ; =UNK_021067D0 - and r1, r1, #0x7 - ldr r2, [r0, r1, lsl #0x2] - add r0, sp, #0x8 - mov r1, r4 - blx r2 - ldr r3, [r4, #0x30] - cmp r3, #0x1000 - beq _020BF4FC - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x8] - ldr r2, [r4, #0x30] - ldr r0, [sp, #0x38] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0xc] - ldr r1, [r4, #0x30] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x38] -_020BF4FC: - ldr r3, [r4, #0x34] - cmp r3, #0x1000 - beq _020BF54C - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x1c] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x18] - ldr r2, [r4, #0x34] - ldr r0, [sp, #0x3c] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0x1c] - ldr r1, [r4, #0x34] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x3c] -_020BF54C: - add r1, sp, #0x0 - ldr r0, [sp, #0x0] - add r1, r1, #0x4 - mov r2, #0x12 - bl FUN_020BB1C0 - add sp, sp, #0x50 - ldmia sp!, {r4,pc} - .balign 4 -_020BF568: .word 0x00101610 -_020BF56C: .word 0x00101810 -_020BF570: .word UNK_021067D0 - arm_func_end FUN_020BF42C - - arm_func_start FUN_020BF574 -FUN_020BF574: ; 0x020BF574 - mov r2, #0x1000 - str r2, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [r0, #0x10] - str r2, [r0, #0x14] - str r1, [r0, #0x30] - str r1, [r0, #0x34] - bx lr - arm_func_end FUN_020BF574 - - arm_func_start FUN_020BF598 -FUN_020BF598: ; 0x020BF598 - ldr r2, [r1, #0x18] - mov r12, #0x0 - str r2, [r0, #0x0] - ldr r2, [r1, #0x1c] - str r2, [r0, #0x14] - str r12, [r0, #0x4] - ldr r3, [r1, #0x18] - ldrh r2, [r1, #0x2c] - rsb r3, r3, #0x1000 - mul r2, r3, r2 - mov r2, r2, lsl #0x3 - str r2, [r0, #0x30] - ldr r2, [r1, #0x1c] - ldrh r1, [r1, #0x2e] - rsb r2, r2, #0x1000 - mul r1, r2, r1 - mov r1, r1, lsl #0x3 - str r1, [r0, #0x34] - str r12, [r0, #0x10] - bx lr - arm_func_end FUN_020BF598 - - arm_func_start FUN_020BF5E8 -FUN_020BF5E8: ; 0x020BF5E8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - ldrsh r4, [r5, #0x22] - rsb r0, r2, #0x0 - rsb r1, r1, #0x0 - mov r0, r0, lsl #0xb - ldrsh r3, [r5, #0x20] - mov r1, r1, lsl #0xb - smull r7, lr, r4, r0 - smull r12, r4, r3, r1 - subs r7, r7, r12 - sbc r3, lr, r4 - mov r4, r7, lsr #0x8 - orr r4, r4, r3, lsl #0x18 - add r2, r4, r2, lsl #0xf - str r2, [r6, #0x30] - ldrsh r2, [r5, #0x22] - ldrsh r3, [r5, #0x20] - ldrh r12, [r5, #0x2e] - smull r4, r1, r2, r1 - smlal r4, r1, r3, r0 - mov r0, r4, lsr #0x8 - orr r0, r0, r1, lsl #0x18 - add r0, r0, r12, lsl #0xf - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - rsb r1, r1, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BF5E8 - - arm_func_start FUN_020BF6C8 -FUN_020BF6C8: ; 0x020BF6C8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldrh r2, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - mov r10, r0 - mov r8, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r8 - bl FX_DivAsync - ldrsh r0, [r9, #0x22] - ldr r3, [r9, #0x18] - ldrsh r5, [r9, #0x20] - ldr r4, [r9, #0x1c] - smull r2, r1, r3, r0 - mov r7, r2, lsr #0xc - orr r7, r7, r1, lsl #0x14 - smull r2, r1, r3, r5 - mov r6, r2, lsr #0xc - orr r6, r6, r1, lsl #0x14 - smull r3, r2, r4, r0 - smull r1, r0, r4, r5 - mov r5, r3, lsr #0xc - orr r5, r5, r2, lsl #0x14 - mov r4, r1, lsr #0xc - orr r4, r4, r0, lsl #0x14 - str r7, [r10, #0x0] - str r5, [r10, #0x14] - bl FX_GetDivResult - mov r1, r11 - mul r0, r4, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x4] - mov r0, r8 - bl FX_DivAsync - ldrh r3, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - rsb r0, r3, #0x0 - rsb r1, r1, #0x0 - mov r2, r1, lsl #0xb - mov r11, r0, lsl #0xb - smull r1, r0, r7, r11 - smull r8, r7, r5, r2 - smlal r8, r7, r4, r11 - mov r4, r8, lsr #0x8 - orr r4, r4, r7, lsl #0x18 - smull r5, r2, r6, r2 - subs r1, r1, r5 - sbc r0, r0, r2 - mov r1, r1, lsr #0x8 - orr r1, r1, r0, lsl #0x18 - add r0, r1, r3, lsl #0xf - str r0, [r10, #0x30] - ldrh r0, [r9, #0x2e] - add r0, r4, r0, lsl #0xf - str r0, [r10, #0x34] - bl FX_GetDivResult - rsb r1, r6, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BF6C8 - - arm_func_start FUN_020BF7C8 -FUN_020BF7C8: ; 0x020BF7C8 - mov r2, #0x1000 - str r2, [r0, #0x0] - str r2, [r0, #0x14] - mov r12, #0x0 - str r12, [r0, #0x4] - ldr r3, [r1, #0x24] - ldrh r2, [r1, #0x2c] - rsb r3, r3, #0x0 - mul r2, r3, r2 - mov r2, r2, lsl #0x4 - str r2, [r0, #0x30] - ldrh r2, [r1, #0x2e] - ldr r1, [r1, #0x28] - mul r2, r1, r2 - mov r1, r2, lsl #0x4 - str r1, [r0, #0x34] - str r12, [r0, #0x10] - bx lr - arm_func_end FUN_020BF7C8 - - arm_func_start FUN_020BF810 -FUN_020BF810: ; 0x020BF810 - stmdb sp!, {r4-r6,lr} - ldr r2, [r1, #0x18] - mov r3, #0x0 - str r2, [r0, #0x0] - ldr r2, [r1, #0x1c] - str r2, [r0, #0x14] - str r3, [r0, #0x4] - ldrh r5, [r1, #0x2c] - ldr r12, [r1, #0x24] - ldrh r2, [r1, #0x2e] - mul lr, r12, r5 - rsb r12, r5, #0x0 - mov r12, r12, lsl #0xb - ldr r4, [r1, #0x18] - sub r12, r12, lr - smull lr, r12, r4, r12 - ldr r6, [r1, #0x28] - mov r4, lr, lsr #0x8 - orr r4, r4, r12, lsl #0x18 - add r4, r4, r5, lsl #0xf - str r4, [r0, #0x30] - mul r4, r6, r2 - rsb r5, r2, #0x0 - ldr r2, [r1, #0x1c] - add r4, r4, r5, lsl #0xb - smull lr, r12, r2, r4 - mov r2, lr, lsr #0x8 - ldrh r1, [r1, #0x2e] - orr r2, r2, r12, lsl #0x18 - add r1, r2, r1, lsl #0xf - str r1, [r0, #0x34] - str r3, [r0, #0x10] - ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BF810 - - arm_func_start FUN_020BF894 -FUN_020BF894: ; 0x020BF894 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrh r2, [r5, #0x2c] - ldrh r7, [r5, #0x2e] - ldr r1, [r5, #0x28] - ldr r0, [r5, #0x24] - rsb r4, r2, #0x0 - mul r3, r1, r7 - rsb r1, r7, #0x0 - add r1, r3, r1, lsl #0xb - ldrsh r3, [r5, #0x20] - mov r7, r4, lsl #0xb - mul r4, r0, r2 - sub r0, r7, r4 - ldrsh lr, [r5, #0x22] - smull r12, r4, r3, r1 - smull r7, r3, lr, r0 - subs r7, r7, r12 - sbc r3, r3, r4 - mov r4, r7, lsr #0x8 - orr r4, r4, r3, lsl #0x18 - add r2, r4, r2, lsl #0xf - str r2, [r6, #0x30] - ldrsh r2, [r5, #0x22] - ldrsh r3, [r5, #0x20] - ldrh r12, [r5, #0x2e] - smull r4, r1, r2, r1 - smlal r4, r1, r3, r0 - mov r0, r4, lsr #0x8 - orr r0, r0, r1, lsl #0x18 - add r0, r0, r12, lsl #0xf - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - rsb r1, r1, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BF894 - - arm_func_start FUN_020BF988 -FUN_020BF988: ; 0x020BF988 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldrh r2, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - mov r10, r0 - mov r8, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r8 - bl FX_DivAsync - ldrsh r0, [r9, #0x22] - ldr r3, [r9, #0x18] - ldrsh r5, [r9, #0x20] - ldr r4, [r9, #0x1c] - smull r2, r1, r3, r0 - mov r7, r2, lsr #0xc - orr r7, r7, r1, lsl #0x14 - smull r2, r1, r3, r5 - mov r6, r2, lsr #0xc - orr r6, r6, r1, lsl #0x14 - smull r3, r2, r4, r0 - smull r1, r0, r4, r5 - mov r5, r3, lsr #0xc - orr r5, r5, r2, lsl #0x14 - mov r4, r1, lsr #0xc - orr r4, r4, r0, lsl #0x14 - str r7, [r10, #0x0] - str r5, [r10, #0x14] - bl FX_GetDivResult - mov r1, r11 - mul r0, r4, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x4] - mov r0, r8 - bl FX_DivAsync - ldrh r1, [r9, #0x2c] - ldrh r8, [r9, #0x2e] - ldr r2, [r9, #0x28] - rsb r0, r1, #0x0 - mul r3, r2, r8 - rsb r2, r8, #0x0 - add r8, r3, r2, lsl #0xb - mov r0, r0, lsl #0xb - smull r3, r2, r5, r8 - smull r8, r5, r6, r8 - ldr r11, [r9, #0x24] - mul r12, r11, r1 - sub r0, r0, r12 - smlal r3, r2, r4, r0 - smull r4, r0, r7, r0 - subs r4, r4, r8 - sbc r0, r0, r5 - mov r4, r4, lsr #0x8 - orr r4, r4, r0, lsl #0x18 - add r0, r4, r1, lsl #0xf - str r0, [r10, #0x30] - ldrh r1, [r9, #0x2e] - mov r0, r3, lsr #0x8 - orr r0, r0, r2, lsl #0x18 - add r0, r0, r1, lsl #0xf - str r0, [r10, #0x34] - bl FX_GetDivResult - rsb r1, r6, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BF988 - - arm_func_start FUN_020BFA9C -FUN_020BFA9C: ; 0x020BFA9C - stmdb sp!, {r4,lr} - sub sp, sp, #0x50 - mov r4, r0 - ldr r0, [r4, #0x0] - mov r3, #0x3 - ands r0, r0, #0x8 - ldrne r0, _020BFC1C ; =0x00101610 - mov r2, #0x2 - strne r0, [sp, #0x0] - ldreq r0, _020BFC20 ; =0x00101810 - mov r1, #0x1000 - streq r0, [sp, #0x0] - mov r0, #0x0 - str r3, [sp, #0x4] - str r2, [sp, #0x48] - str r1, [sp, #0x44] - str r0, [sp, #0x40] - str r0, [sp, #0x34] - str r0, [sp, #0x30] - str r0, [sp, #0x2c] - str r0, [sp, #0x28] - str r0, [sp, #0x24] - str r0, [sp, #0x20] - str r0, [sp, #0x14] - str r0, [sp, #0x10] - ldr r0, [r4, #0x0] - ands r0, r0, #0x1 - strne r1, [r4, #0x1c] - ldrne r0, [r4, #0x1c] - strne r0, [r4, #0x18] - ldr r0, [r4, #0x0] - ands r0, r0, #0x2 - movne r0, #0x1000 - strneh r0, [r4, #0x22] - movne r0, #0x0 - strneh r0, [r4, #0x20] - ldr r0, [r4, #0x0] - ands r0, r0, #0x4 - movne r0, #0x0 - strne r0, [r4, #0x28] - ldrne r0, [r4, #0x28] - strne r0, [r4, #0x24] - ldr r1, [r4, #0x0] - ldr r0, _020BFC24 ; =UNK_021067F0 - and r1, r1, #0x7 - ldr r2, [r0, r1, lsl #0x2] - add r0, sp, #0x8 - mov r1, r4 - blx r2 - ldr r3, [r4, #0x30] - cmp r3, #0x1000 - beq _020BFBB0 - ldr r0, [sp, #0x8] - ldr r1, [sp, #0xc] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x8] - ldr r2, [r4, #0x30] - ldr r0, [sp, #0x38] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0xc] - ldr r1, [r4, #0x30] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x38] -_020BFBB0: - ldr r3, [r4, #0x34] - cmp r3, #0x1000 - beq _020BFC00 - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x1c] - smull r2, r0, r3, r0 - mov r2, r2, lsr #0xc - orr r2, r2, r0, lsl #0x14 - str r2, [sp, #0x18] - ldr r2, [r4, #0x34] - ldr r0, [sp, #0x3c] - smull r3, r1, r2, r1 - mov r2, r3, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [sp, #0x1c] - ldr r1, [r4, #0x34] - smull r2, r0, r1, r0 - mov r1, r2, lsr #0xc - orr r1, r1, r0, lsl #0x14 - str r1, [sp, #0x3c] -_020BFC00: - add r1, sp, #0x0 - ldr r0, [sp, #0x0] - add r1, r1, #0x4 - mov r2, #0x12 - bl FUN_020BB1C0 - add sp, sp, #0x50 - ldmia sp!, {r4,pc} - .balign 4 -_020BFC1C: .word 0x00101610 -_020BFC20: .word 0x00101810 -_020BFC24: .word UNK_021067F0 - arm_func_end FUN_020BFA9C - - arm_func_start FUN_020BFC28 -FUN_020BFC28: ; 0x020BFC28 - mov r2, #0x1000 - str r2, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [r0, #0x10] - str r2, [r0, #0x14] - str r1, [r0, #0x30] - str r1, [r0, #0x34] - bx lr - arm_func_end FUN_020BFC28 - - arm_func_start FUN_020BFC4C -FUN_020BFC4C: ; 0x020BFC4C - ldr r2, [r1, #0x18] - mov r3, #0x0 - str r2, [r0, #0x0] - ldr r2, [r1, #0x1c] - str r2, [r0, #0x14] - str r3, [r0, #0x4] - str r3, [r0, #0x30] - ldrh r2, [r1, #0x2e] - ldr r1, [r1, #0x1c] - rsb r2, r2, #0x0 - sub r1, r1, #0x1000 - mul r1, r2, r1 - mov r1, r1, lsl #0x4 - str r1, [r0, #0x34] - str r3, [r0, #0x10] - bx lr - arm_func_end FUN_020BFC4C - - arm_func_start FUN_020BFC8C -FUN_020BFC8C: ; 0x020BFC8C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrh r1, [r5, #0x2c] - ldrsh r0, [r5, #0x20] - mul r0, r1, r0 - mov r0, r0, lsl #0x4 - str r0, [r6, #0x30] - ldrh r1, [r5, #0x2e] - ldrsh r0, [r5, #0x22] - rsb r1, r1, #0x0 - sub r0, r0, #0x1000 - mul r0, r1, r0 - mov r0, r0, lsl #0x4 - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - rsb r1, r1, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BFC8C - - arm_func_start FUN_020BFD38 -FUN_020BFD38: ; 0x020BFD38 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldrh r2, [r9, #0x2c] - ldrh r1, [r9, #0x2e] - mov r10, r0 - mov r8, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r8 - bl FX_DivAsync - ldrsh r3, [r9, #0x22] - ldr r0, [r9, #0x18] - ldrsh r7, [r9, #0x20] - ldr r5, [r9, #0x1c] - smull r2, r1, r0, r3 - mov r2, r2, lsr #0xc - orr r2, r2, r1, lsl #0x14 - str r2, [r10, #0x0] - smull r2, r1, r5, r3 - mov r4, r2, lsr #0xc - orr r4, r4, r1, lsl #0x14 - smull r2, r1, r0, r7 - mov r6, r2, lsr #0xc - orr r6, r6, r1, lsl #0x14 - str r4, [r10, #0x14] - bl FX_GetDivResult - smull r2, r1, r5, r7 - mov r2, r2, lsr #0xc - orr r2, r2, r1, lsl #0x14 - mul r0, r2, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x4] - mov r0, r8 - mov r1, r11 - bl FX_DivAsync - sub r0, r4, #0x1000 - ldrh r1, [r9, #0x2c] - mul r2, r1, r6 - mov r1, r2, lsl #0x4 - str r1, [r10, #0x30] - ldrh r1, [r9, #0x2e] - rsb r1, r1, #0x0 - mul r0, r1, r0 - mov r0, r0, lsl #0x4 - str r0, [r10, #0x34] - bl FX_GetDivResult - rsb r1, r6, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r10, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BFD38 - - arm_func_start FUN_020BFE0C -FUN_020BFE0C: ; 0x020BFE0C - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, #0x1000 - str r2, [r0, #0x0] - str r2, [r0, #0x14] - mov lr, #0x0 - str lr, [r0, #0x4] - ldr r2, [r1, #0x24] - ldrh r3, [r1, #0x2c] - rsb r2, r2, #0x0 - ldr r12, [r1, #0x28] - mul r2, r3, r2 - mov r2, r2, lsl #0x4 - str r2, [r0, #0x30] - ldrh r1, [r1, #0x2e] - rsb r2, r12, #0x0 - rsb r1, r1, #0x0 - mul r2, r1, r2 - mov r1, r2, lsl #0x4 - str r1, [r0, #0x34] - str lr, [r0, #0x10] - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end FUN_020BFE0C - - arm_func_start FUN_020BFE68 -FUN_020BFE68: ; 0x020BFE68 - stmdb sp!, {r4,lr} - ldr r3, [r1, #0x18] - mov r2, #0x0 - str r3, [r0, #0x0] - ldr r3, [r1, #0x1c] - str r3, [r0, #0x14] - str r2, [r0, #0x4] - ldr r12, [r1, #0x24] - ldr r3, [r1, #0x18] - ldr r4, [r1, #0x28] - smull lr, r3, r12, r3 - mov r12, lr, lsr #0xc - orr r12, r12, r3, lsl #0x14 - ldrh lr, [r1, #0x2c] - rsb r3, r12, #0x0 - ldr r12, [r1, #0x1c] - rsb r4, r4, #0x0 - mul r3, lr, r3 - smull lr, r12, r4, r12 - mov r3, r3, lsl #0x4 - str r3, [r0, #0x30] - mov r4, lr, lsr #0xc - ldrh r3, [r1, #0x2e] - ldr r1, [r1, #0x1c] - orr r4, r4, r12, lsl #0x14 - add r1, r1, r4 - rsb r3, r3, #0x0 - sub r1, r1, #0x1000 - mul r1, r3, r1 - mov r1, r1, lsl #0x4 - str r1, [r0, #0x34] - str r2, [r0, #0x10] - ldmia sp!, {r4,pc} - arm_func_end FUN_020BFE68 - - arm_func_start FUN_020BFEEC -FUN_020BFEEC: ; 0x020BFEEC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - ldrh r2, [r5, #0x2c] - ldrh r1, [r5, #0x2e] - mov r6, r0 - mov r4, r2, lsl #0xc - mov r7, r1, lsl #0xc - mov r0, r7 - mov r1, r4 - bl FX_DivAsync - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x0] - ldrsh r0, [r5, #0x22] - str r0, [r6, #0x14] - bl FX_GetDivResult - ldrsh r2, [r5, #0x20] - mov r1, r7 - mul r0, r2, r0 - mov r2, r0, asr #0xc - mov r0, r4 - str r2, [r6, #0x4] - bl FX_DivAsync - ldrsh lr, [r5, #0x20] - ldr r4, [r5, #0x28] - ldrsh r0, [r5, #0x22] - ldr r12, [r5, #0x24] - smull r3, r2, r4, lr - smlal r3, r2, r12, r0 - smull r1, r0, r4, r0 - mov r3, r3, lsr #0xc - orr r3, r3, r2, lsl #0x14 - sub r4, lr, r3 - smull r3, r2, r12, lr - subs r1, r3, r1 - sbc r0, r2, r0 - ldrh r2, [r5, #0x2c] - mov r1, r1, lsr #0xc - orr r1, r1, r0, lsl #0x14 - mul r0, r2, r4 - mov r0, r0, lsl #0x4 - str r0, [r6, #0x30] - ldrsh r0, [r5, #0x22] - ldrh r2, [r5, #0x2e] - add r0, r0, r1 - rsb r1, r2, #0x0 - sub r0, r0, #0x1000 - mul r0, r1, r0 - mov r0, r0, lsl #0x4 - str r0, [r6, #0x34] - bl FX_GetDivResult - ldrsh r1, [r5, #0x20] - rsb r1, r1, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r6, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BFEEC - - arm_func_start FUN_020BFFD4 -FUN_020BFFD4: ; 0x020BFFD4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldrh r2, [r6, #0x2c] - ldrh r1, [r6, #0x2e] - mov r7, r0 - mov r10, r2, lsl #0xc - mov r11, r1, lsl #0xc - mov r0, r11 - mov r1, r10 - bl FX_DivAsync - ldrsh r3, [r6, #0x22] - ldr r0, [r6, #0x18] - ldrsh r9, [r6, #0x20] - smull r2, r1, r0, r3 - mov r2, r2, lsr #0xc - ldr r8, [r6, #0x1c] - orr r2, r2, r1, lsl #0x14 - str r2, [r7, #0x0] - smull r2, r1, r8, r3 - mov r4, r2, lsr #0xc - orr r4, r4, r1, lsl #0x14 - smull r2, r1, r0, r9 - mov r5, r2, lsr #0xc - orr r5, r5, r1, lsl #0x14 - str r4, [r7, #0x14] - bl FX_GetDivResult - smull r2, r1, r8, r9 - mov r2, r2, lsr #0xc - orr r2, r2, r1, lsl #0x14 - mul r0, r2, r0 - mov r0, r0, asr #0xc - str r0, [r7, #0x4] - mov r0, r10 - mov r1, r11 - bl FX_DivAsync - ldr lr, [r6, #0x1c] - ldrsh r2, [r6, #0x20] - ldr r8, [r6, #0x24] - ldr r0, [r6, #0x28] - smull r10, r9, r8, r2 - ldrh r1, [r6, #0x2c] - smull r3, r2, r0, r2 - ldrsh r12, [r6, #0x22] - str r1, [sp, #0x0] - mov r11, lr, asr #0x1f - smlal r3, r2, r8, r12 - smull r8, r12, r0, r12 - subs r8, r10, r8 - sbc r0, r9, r12 - mov r9, r8, lsr #0xc - mov r12, r3, lsr #0xc - orr r9, r9, r0, lsl #0x14 - mov r3, r2, asr #0xc - orr r12, r12, r2, lsl #0x14 - umull r10, r2, r9, lr - mla r2, r9, r11, r2 - mov r8, r0, asr #0xc - mla r2, r8, lr, r2 - ldr r1, [r6, #0x18] - mov r8, r10, lsr #0xc - orr r8, r8, r2, lsl #0x14 - add r2, r4, r8 - mov r0, r1, asr #0x1f - umull r8, r4, r12, r1 - mla r4, r12, r0, r4 - mla r4, r3, r1, r4 - mov r0, r8, lsr #0xc - orr r0, r0, r4, lsl #0x14 - sub r1, r5, r0 - ldr r0, [sp, #0x0] - sub r2, r2, #0x1000 - mul r1, r0, r1 - mov r0, r1, lsl #0x4 - str r0, [r7, #0x30] - ldrh r0, [r6, #0x2e] - rsb r0, r0, #0x0 - mul r1, r0, r2 - mov r0, r1, lsl #0x4 - str r0, [r7, #0x34] - bl FX_GetDivResult - rsb r1, r5, #0x0 - mul r0, r1, r0 - mov r0, r0, asr #0xc - str r0, [r7, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BFFD4 \ No newline at end of file diff --git a/arm9/global.inc b/arm9/global.inc index 8e5bd6fb3..f2731c79f 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -8520,3 +8520,160 @@ .extern FUN_020254A0 .extern FUN_020254B4 .extern FUN_02041464 +.extern FUN_020AFE8C +.extern FUN_020B0438 +.extern FUN_020B04C0 +.extern FUN_020B0518 +.extern FUN_020B0534 +.extern FUN_020B06E0 +.extern FUN_020B1A68 +.extern FUN_020B1A78 +.extern FUN_020B1A98 +.extern FUN_020B1AB4 +.extern FUN_020B4400 +.extern FUN_020B45F0 +.extern UNK_020FF894 +.extern UNK_020FF8AC +.extern FUN_020B10BC +.extern FUN_020B10C4 +.extern FUN_020B10CC +.extern FUN_020B76B0 +.extern FUN_020B7558 +.extern FUN_020B7718 +.extern FUN_020AFF34 +.extern FUN_020B0408 +.extern FUN_020B1AD4 +.extern FUN_020B01F8 +.extern FUN_020B01B0 +.extern GXi_DmaId +.extern FUN_020B10B0 +.extern FUN_020B423C +.extern FUN_020B4948 +.extern FUN_020B4958 +.extern FUN_020B4968 +.extern FUN_020B497C +.extern FUN_020B4BF4 +.extern FUN_020B4CDC +.extern FUN_020B4DA0 +.extern FUN_020B4E0C +.extern FUN_020B4F74 +.extern FUN_020B4F88 +.extern FUN_020B4F9C +.extern FUN_020B4FA4 +.extern FUN_020B4FAC +.extern FUN_020B4FC4 +.extern FUN_020B5034 +.extern FUN_020B5040 +.extern FUN_020B504C +.extern FUN_020B19A8 +.extern FUN_020B19FC +.extern FUN_020B469C +.extern FUN_020B46B4 +.extern FUN_020B5ABC +.extern FUN_020B5B54 +.extern FUN_020B5BC8 +.extern FUN_020BB2B0 +.extern UNK_02106620 +.extern FUN_020BDA70 +.extern FUN_020BDAB4 +.extern FUN_020BDB40 +.extern FUN_020BDC0C +.extern FUN_020BDF38 +.extern FUN_020BDF84 +.extern FUN_020BE334 +.extern FUN_020BE4F0 +.extern FUN_020BE5A0 +.extern FUN_020BE5E0 +.extern FUN_020BE62C +.extern FUN_020BE668 +.extern FUN_020BE6E4 +.extern FUN_020BECEC +.extern FUN_020BEE3C +.extern FUN_020BEF10 +.extern FUN_020BF0D4 +.extern FUN_020BF2FC +.extern FUN_020BF42C +.extern FUN_020BFA9C +.extern UNK_02106594 +.extern UNK_021065AC +.extern UNK_021065B0 +.extern UNK_021065B4 +.extern UNK_021065B8 +.extern UNK_021065BC +.extern UNK_021CEF7C +.extern UNK_021CFD8C +.extern UNK_021CFD90 +.extern UNK_021CFD94 +.extern FUN_020B81B0 +.extern UNK_0210659C +.extern FUN_020BC14C +.extern UNK_021065A8 +.extern UNK_021065A0 +.extern FUN_020BC42C +.extern FUN_020BC4A8 +.extern FUN_020BC4B8 +.extern UNK_021065A4 +.extern UNK_02106598 +.extern FUN_020B8264 +.extern FUN_020B82A4 +.extern FUN_020BB824 +.extern UNK_02106608 +.extern UNK_02106614 +.extern UNK_021CED18 +.extern UNK_021CED64 +.extern UNK_021CEDF8 +.extern UNK_021CFD80 +.extern UNK_021CFD84 +.extern UNK_021CFD88 +.extern FUN_020B8200 +.extern FUN_020B84D8 +.extern FUN_020AF334 +.extern FUN_020AF488 +.extern FUN_020AF5E0 +.extern FUN_020AF64C +.extern FUN_020AF698 +.extern FUN_020AF5C4 +.extern FUN_020C029C +.extern FUN_020C02BC +.extern FUN_020C0300 +.extern FUN_020C031C +.extern FUN_020C0340 +.extern FUN_020C0370 +.extern FUN_020C3DDC +.extern FUN_020C3DF4 +.extern FUN_020C3E0C +.extern FUN_020C3E40 +.extern FUN_020C3E6C +.extern FUN_020C2CC0 +.extern FUN_020C0270 +.extern FUN_020C0BA0 +.extern FUN_020C0D20 +.extern FUN_020C187C +.extern FUN_020C18F8 +.extern FUN_020C1D9C +.extern FUN_020C1E38 +.extern FUN_020C3C88 +.extern FUN_020C29C0 +.extern FUN_020C2A7C +.extern SDATi_AllocAndInitChunk +.extern SNDi_DecibelTable +.extern FUN_020C20C0 +.extern FUN_020C21A4 +.extern FUN_020C2334 +.extern FUN_020C2398 +.extern FUN_020C241C +.extern FUN_020C242C +.extern FUN_020C2B1C +.extern FUN_020C09B0 +.extern FUN_020C0A90 +.extern FUN_020C0AF4 +.extern FUN_020C0E38 +.extern FUN_020C0E60 +.extern FUN_020C0ECC +.extern FUN_020C10B4 +.extern FUN_020C1160 +.extern FUN_020C2208 +.extern FUN_020C3270 +.extern FUN_020C341C +.extern FUN_020C3D9C +.extern thunk_FUN_020c077c From bc341bc17833d80eae32d8f09509b401830f54d0 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 23 May 2021 14:27:17 -0500 Subject: [PATCH 102/134] address review --- arm9/src/unk_020337E8.c | 14 +++++++------- include/unk_020337E8.h | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arm9/src/unk_020337E8.c b/arm9/src/unk_020337E8.c index 2f3c7c8f9..856ba3b82 100644 --- a/arm9/src/unk_020337E8.c +++ b/arm9/src/unk_020337E8.c @@ -5,21 +5,21 @@ extern struct DWC_Struct *FUN_020286EC(struct SaveBlock2 *sav2); extern struct DWC_Struct *FUN_02028228(struct DWC_Struct *); // DWC_init -extern int DWC_Init(int); +extern s32 DWC_Init(s32); // DWC_account extern void DWC_CreateExchangeToken(struct DWC_Struct *, struct DWC_token *); -extern void DWC_CreateUserData(struct DWC_Struct *, int); +extern void DWC_CreateUserData(struct DWC_Struct *, s32); extern void DWC_ClearDirtyFlag(struct DWC_Struct *); extern BOOL DWC_CheckHasProfile(struct DWC_Struct *); extern BOOL DWC_CheckValidConsole(struct DWC_Struct *); extern BOOL DWC_CheckUserData(struct DWC_Struct *); -extern int DWC_GetGsProfileId(struct DWC_Struct *, struct DWC_token *); +extern s32 DWC_GetGsProfileId(struct DWC_Struct *, struct DWC_token *); -THUMB_FUNC int FUN_020337E8(u32 heap_id) +THUMB_FUNC s32 FUN_020337E8(u32 heap_id) { - u32 ret = (u32)AllocFromHeap(heap_id, 0x720); - int ret1 = DWC_Init((ret + 0x1F) & ~0x1F); + s32 ret = (s32)AllocFromHeap(heap_id, 0x720); + s32 ret1 = DWC_Init((ret + 0x1F) & ~0x1F); FreeToHeap((void*)ret); return ret1; } @@ -34,7 +34,7 @@ THUMB_FUNC void FUN_0203380C(struct DWC_Struct *dwc) } } -THUMB_FUNC int FUN_02033830(struct DWC_Struct *dwc) +THUMB_FUNC s32 FUN_02033830(struct DWC_Struct *dwc) { struct DWC_token token; diff --git a/include/unk_020337E8.h b/include/unk_020337E8.h index 0a1addf90..228570ead 100644 --- a/include/unk_020337E8.h +++ b/include/unk_020337E8.h @@ -7,7 +7,7 @@ // Dummy struct until DWC_account struct DWC_Struct { - int unk0; + s32 unk0; }; struct DWC_token @@ -16,9 +16,9 @@ struct DWC_token u8 fill0[0xC]; }; -int FUN_020337E8(u32 heap_id); +s32 FUN_020337E8(u32 heap_id); void FUN_0203380C(struct DWC_Struct *); -int FUN_02033830(struct DWC_Struct *); +s32 FUN_02033830(struct DWC_Struct *); BOOL FUN_0203384C(struct SaveBlock2 *); From 57b9d8fd35548901ccd4ffcdfa7bca7140065036 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 16:43:24 -0400 Subject: [PATCH 103/134] Rename libnns symbols --- arm9/asm/NNS_FND_allocator.s | 52 +- arm9/asm/NNS_FND_expheap.s | 160 ++-- arm9/asm/NNS_FND_frameheap.s | 90 +- arm9/asm/NNS_FND_heapcommon.s | 67 +- arm9/asm/NNS_FND_list.s | 57 +- arm9/asm/NNS_G2D_g2d_animation.s | 96 +- arm9/asm/NNS_G2D_g2d_cellanimati.s | 104 +-- arm9/asm/NNS_G2D_g2d_celltransfe.s | 138 ++- arm9/asm/NNS_G2D_g2d_charcanvas.s | 210 ++--- arm9/asm/NNS_G2D_g2d_font.s | 64 +- arm9/asm/NNS_G2D_g2d_image.s | 123 ++- arm9/asm/NNS_G2D_g2d_load.s | 15 +- arm9/asm/NNS_G2D_g2d_multicellan.s | 144 ++- arm9/asm/NNS_G2D_g2d_nan_load.s | 48 +- arm9/asm/NNS_G2D_g2d_ncg_load.s | 37 +- arm9/asm/NNS_G2D_g2d_ncl_load.s | 37 +- arm9/asm/NNS_G2D_g2d_nft_load.s | 19 +- arm9/asm/NNS_G2D_g2d_nmc_load.s | 39 +- arm9/asm/NNS_G2D_g2d_nob_load.s | 50 +- arm9/asm/NNS_G2D_g2d_node.s | 12 +- arm9/asm/NNS_G2D_g2d_nsc_load.s | 10 +- arm9/asm/NNS_G2D_g2d_oam.s | 231 ++--- arm9/asm/NNS_G2D_g2d_oamsoftware.s | 159 ++-- arm9/asm/NNS_G2D_g2d_palettetabl.s | 8 +- arm9/asm/NNS_G2D_g2d_renderer.s | 1161 +++++++++++------------- arm9/asm/NNS_G2D_g2d_renderercor.s | 294 +++--- arm9/asm/NNS_G2D_g2d_softsprite.s | 24 +- arm9/asm/NNS_G2D_g2d_srtcontrol.s | 40 +- arm9/asm/NNS_G2D_g2d_textcanvas.s | 47 +- arm9/asm/NNS_G2D_g2di_bitreader.s | 10 +- arm9/asm/NNS_G2D_g2di_mtx32.s | 8 +- arm9/asm/NNS_G2D_g2di_splitchar.s | 8 +- arm9/asm/NNS_G3D_1mat1shp.s | 20 +- arm9/asm/NNS_G3D_3dsmax.s | 91 +- arm9/asm/NNS_G3D_anm.s | 115 +-- arm9/asm/NNS_G3D_basic.s | 23 +- arm9/asm/NNS_G3D_cgtool.s | 36 +- arm9/asm/NNS_G3D_gecom.s | 105 +-- arm9/asm/NNS_G3D_glbstate.s | 309 +++---- arm9/asm/NNS_G3D_kernel.s | 243 +++-- arm9/asm/NNS_G3D_maya.s | 139 ++- arm9/asm/NNS_G3D_mem.s | 23 +- arm9/asm/NNS_G3D_model.s | 239 +++-- arm9/asm/NNS_G3D_nsbca.s | 203 ++--- arm9/asm/NNS_G3D_nsbma.s | 45 +- arm9/asm/NNS_G3D_nsbta.s | 54 +- arm9/asm/NNS_G3D_nsbtp.s | 49 +- arm9/asm/NNS_G3D_nsbva.s | 19 +- arm9/asm/NNS_G3D_res_struct_acce.s | 66 +- arm9/asm/NNS_G3D_sbc.s | 635 ++++++------- arm9/asm/NNS_G3D_si3d.s | 74 +- arm9/asm/NNS_G3D_util.s | 83 +- arm9/asm/NNS_G3D_xsi.s | 90 +- arm9/asm/NNS_GFD_gfd_frameplttvr.s | 96 +- arm9/asm/NNS_GFD_gfd_frametexvra.s | 166 ++-- arm9/asm/NNS_GFD_gfd_linkedlistp.s | 119 ++- arm9/asm/NNS_GFD_gfd_linkedlistt.s | 177 ++-- arm9/asm/NNS_GFD_gfd_plttvramman.s | 29 +- arm9/asm/NNS_GFD_gfd_texvramman.s | 29 +- arm9/asm/NNS_GFD_gfd_vramtransfe.s | 463 +++++----- arm9/asm/NNS_GFD_gfdi_linkedlist.s | 45 +- arm9/asm/NNS_SND_capture.s | 215 ++--- arm9/asm/NNS_SND_fader.s | 27 +- arm9/asm/NNS_SND_heap.s | 121 ++- arm9/asm/NNS_SND_main.s | 99 +- arm9/asm/NNS_SND_player.s | 461 ++++------ arm9/asm/NNS_SND_resource_mgr.s | 91 +- arm9/asm/NNS_SND_seqdata.s | 6 +- arm9/asm/NNS_SND_sndarc.s | 173 ++-- arm9/asm/NNS_SND_sndarc_loader.s | 282 +++--- arm9/asm/NNS_SND_sndarc_player.s | 93 +- arm9/asm/NNS_SND_sndarc_stream.s | 133 ++- arm9/asm/NNS_SND_stream.s | 162 ++-- arm9/asm/NNS_SND_waveout.s | 56 +- arm9/asm/macros/function.inc | 5 + arm9/asm/unk_020040F4.s | 90 +- arm9/asm/unk_020051F4.s | 40 +- arm9/asm/unk_02006864.s | 36 +- arm9/asm/unk_02006D98.s | 28 +- arm9/asm/unk_02008DEC.s | 14 +- arm9/asm/unk_02009EAC.s | 16 +- arm9/asm/unk_0200BB14.s | 2 +- arm9/asm/unk_0200CABC.s | 6 +- arm9/asm/unk_02011744.s | 2 +- arm9/asm/unk_02012004.s | 6 +- arm9/asm/unk_02012CC8.s | 22 +- arm9/asm/unk_02013CD4.s | 42 +- arm9/asm/unk_02016B94.s | 4 +- arm9/asm/unk_0201B1A8.s | 100 +- arm9/asm/unk_0201B6D0.s | 44 +- arm9/asm/unk_0201C24C.s | 12 +- arm9/asm/unk_0201C360.s | 4 +- arm9/asm/unk_0201D040.s | 18 +- arm9/asm/unk_0201E00C.s | 10 +- arm9/asm/unk_0201E7D8.s | 44 +- arm9/asm/unk_0201F06C.s | 158 ++-- arm9/asm/unk_02020C44.s | 52 +- arm9/asm/unk_0202134C.s | 6 +- arm9/asm/unk_02022318.s | 14 +- arm9/asm/unk_02033B68.s | 4 +- arm9/asm/unk_020607D4.s | 2 +- arm9/asm/unk_0206DE24.s | 22 +- arm9/asm/unk_0206F3FC.s | 4 +- arm9/asm/unk_020772F0.s | 2 +- arm9/asm/unk_020799E8.s | 8 +- arm9/asm/unk_02079C70.s | 2 +- arm9/asm/unk_0207EF6C.s | 8 +- arm9/asm/unk_02086414.s | 22 +- arm9/asm/unk_0208AC14.s | 12 +- arm9/global.inc | 782 ++++++++-------- arm9/modules/04/asm/thumb_04.s | 26 +- arm9/modules/05/asm/mod05_021D74E0.s | 20 +- arm9/modules/05/asm/mod05_021D9A48.s | 18 +- arm9/modules/05/asm/mod05_021DB44C.s | 8 +- arm9/modules/05/asm/mod05_021DBABC.s | 42 +- arm9/modules/05/asm/mod05_021DBEF4.s | 2 +- arm9/modules/05/asm/mod05_021DC0B8.s | 14 +- arm9/modules/05/asm/mod05_021E3444.s | 4 +- arm9/modules/05/asm/mod05_021E4AE4.s | 20 +- arm9/modules/05/asm/mod05_021E55BC.s | 2 +- arm9/modules/05/asm/mod05_021E577C.s | 2 +- arm9/modules/05/asm/mod05_021E5918.s | 2 +- arm9/modules/05/asm/mod05_021E5AB4.s | 10 +- arm9/modules/05/asm/mod05_021E5C8C.s | 8 +- arm9/modules/05/asm/mod05_021E5E10.s | 8 +- arm9/modules/05/asm/mod05_021E7C00.s | 20 +- arm9/modules/05/asm/module_05.s | 60 +- arm9/modules/06/asm/module_06.s | 60 +- arm9/modules/07/asm/module_07.s | 10 +- arm9/modules/08/asm/module_08.s | 10 +- arm9/modules/09/asm/module_09.s | 8 +- arm9/modules/11/asm/module_11_thumb1.s | 8 +- arm9/modules/12/asm/module_12.s | 32 +- arm9/modules/13/asm/module_13_arm2.s | 60 +- arm9/modules/14/asm/module_14.s | 80 +- arm9/modules/15/asm/module_15.s | 14 +- arm9/modules/16/asm/module_16.s | 36 +- arm9/modules/17/asm/module_17.s | 42 +- arm9/modules/18/asm/module_18.s | 4 +- arm9/modules/20/asm/module_20.s | 28 +- arm9/modules/27/asm/module_27.s | 2 +- arm9/modules/28/asm/module_28.s | 2 +- arm9/modules/53/asm/module_53.s | 2 +- arm9/modules/54/asm/module_54.s | 2 +- arm9/modules/55/asm/module_55.s | 8 +- arm9/modules/56/asm/module_56.s | 2 +- arm9/modules/57/asm/module_57.s | 10 +- arm9/modules/58/asm/module_58.s | 2 +- arm9/modules/60/asm/module_60.s | 8 +- arm9/modules/61/asm/module_61.s | 10 +- arm9/modules/62/asm/module_62.s | 10 +- arm9/modules/63/asm/mod63_021D74E0.s | 24 +- arm9/modules/63/asm/mod63_021D8890.s | 40 +- arm9/modules/63/asm/mod63_021DA640.s | 4 +- arm9/modules/63/asm/mod63_021DAE5C.s | 2 +- arm9/modules/63/src/mod63_021DB450.c | 12 +- arm9/modules/64/asm/module_64.s | 56 +- arm9/modules/65/asm/module_65.s | 6 +- arm9/modules/66/asm/module_66.s | 2 +- arm9/modules/69/asm/module_69.s | 36 +- arm9/modules/70/asm/module_70.s | 10 +- arm9/modules/71/asm/module_71.s | 4 +- arm9/modules/73/asm/module_73.s | 20 +- arm9/modules/74/asm/module_74.s | 2 +- arm9/modules/75/asm/module_75.s | 4 +- arm9/modules/77/asm/module_77.s | 2 +- arm9/modules/78/asm/module_78.s | 30 +- arm9/modules/80/asm/module_80.s | 10 +- arm9/modules/81/asm/module_81.s | 110 +-- arm9/modules/82/asm/module_82.s | 8 +- arm9/modules/83/asm/module_83.s | 12 +- arm9/modules/84/asm/module_84_thumb1.s | 52 +- arm9/modules/84/asm/module_84_thumb2.s | 16 +- arm9/modules/85/asm/module_85.s | 32 +- arm9/src/heap.c | 40 +- arm9/src/sound.c | 30 +- include/sdat.h | 30 +- 177 files changed, 5577 insertions(+), 6642 deletions(-) diff --git a/arm9/asm/NNS_FND_allocator.s b/arm9/asm/NNS_FND_allocator.s index 404b19830..537ce6a06 100644 --- a/arm9/asm/NNS_FND_allocator.s +++ b/arm9/asm/NNS_FND_allocator.s @@ -1,19 +1,17 @@ .include "asm/macros.inc" .include "global.inc" - .rodata - ; static const in function - .global UNK_020FF7CC -UNK_020FF7CC: ; 0x020FF7CC - .word FUN_020AE894 - .word FUN_020AE884 + .global sAllocatorFunc$7864 +sAllocatorFunc$7864: ; 0x020FF7CC + .word AllocatorAllocForExpHeap + .word AllocatorFreeForExpHeap .text - arm_func_start FUN_020AE82C -FUN_020AE82C: ; 0x020AE82C - ldr ip, _020AE848 ; =UNK_020FF7CC + arm_func_start NNS_FndInitAllocatorForExpHeap +NNS_FndInitAllocatorForExpHeap: ; 0x020AE82C + ldr ip, _020AE848 ; =sAllocatorFunc$7864 mov r3, #0x0 str r12, [r0, #0x0] str r1, [r0, #0x4] @@ -21,11 +19,11 @@ FUN_020AE82C: ; 0x020AE82C str r3, [r0, #0xc] bx lr .balign 4 -_020AE848: .word UNK_020FF7CC - arm_func_end FUN_020AE82C +_020AE848: .word sAllocatorFunc$7864 + arm_func_end NNS_FndInitAllocatorForExpHeap - arm_func_start FUN_020AE84C -FUN_020AE84C: ; 0x020AE84C + arm_func_start NNS_FndFreeToAllocator +NNS_FndFreeToAllocator: ; 0x020AE84C stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x0] @@ -33,10 +31,10 @@ FUN_020AE84C: ; 0x020AE84C blx r2 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AE84C + arm_func_end NNS_FndFreeToAllocator - arm_func_start FUN_020AE868 -FUN_020AE868: ; 0x020AE868 + arm_func_start NNS_FndAllocFromAllocator +NNS_FndAllocFromAllocator: ; 0x020AE868 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x0] @@ -44,24 +42,24 @@ FUN_020AE868: ; 0x020AE868 blx r2 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AE868 + arm_func_end NNS_FndAllocFromAllocator - arm_func_start FUN_020AE884 -FUN_020AE884: ; 0x020AE884 - ldr ip, _020AE890 ; =FUN_020ADDF0 + arm_func_start AllocatorFreeForExpHeap +AllocatorFreeForExpHeap: ; 0x020AE884 + ldr ip, _020AE890 ; =NNS_FndFreeToExpHeap ldr r0, [r0, #0x4] bx r12 .balign 4 -_020AE890: .word FUN_020ADDF0 - arm_func_end FUN_020AE884 +_020AE890: .word NNS_FndFreeToExpHeap + arm_func_end AllocatorFreeForExpHeap - arm_func_start FUN_020AE894 -FUN_020AE894: ; 0x020AE894 - ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx + arm_func_start AllocatorAllocForExpHeap +AllocatorAllocForExpHeap: ; 0x020AE894 + ldr ip, _020AE8A8 ; =NNS_FndAllocFromExpHeapEx mov r2, r0 ldr r0, [r2, #0x4] ldr r2, [r2, #0x8] bx r12 .balign 4 -_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx - arm_func_end FUN_020AE894 +_020AE8A8: .word NNS_FndAllocFromExpHeapEx + arm_func_end AllocatorAllocForExpHeap diff --git a/arm9/asm/NNS_FND_expheap.s b/arm9/asm/NNS_FND_expheap.s index cb42f116b..e94dba383 100644 --- a/arm9/asm/NNS_FND_expheap.s +++ b/arm9/asm/NNS_FND_expheap.s @@ -1,19 +1,17 @@ .include "asm/macros.inc" .include "global.inc" - - .extern FUN_020ADCA4 - .extern FUN_020ADC8C - + .extern NNSi_FndInitHeapHead + .extern NNSi_FndFinalizeHeap .text - arm_func_start FUN_020ADDC0 -FUN_020ADDC0: ; 0x020ADDC0 + arm_func_start NNS_FndGetSizeForMBlockExpHeap +NNS_FndGetSizeForMBlockExpHeap: ; 0x020ADDC0 ldr r0, [r0, #-0xc] bx lr - arm_func_end FUN_020ADDC0 + arm_func_end NNS_FndGetSizeForMBlockExpHeap - arm_func_start FUN_020ADDC8 -FUN_020ADDC8: ; 0x020ADDC8 + arm_func_start NNS_FndGetTotalFreeSizeForExpHeap +NNS_FndGetTotalFreeSizeForExpHeap: ; 0x020ADDC8 ldr r2, [r0, #0x24] mov r0, #0x0 cmp r2, #0x0 @@ -25,29 +23,29 @@ _020ADDD8: cmp r2, #0x0 bne _020ADDD8 bx lr - arm_func_end FUN_020ADDC8 + arm_func_end NNS_FndGetTotalFreeSizeForExpHeap - arm_func_start FUN_020ADDF0 -FUN_020ADDF0: ; 0x020ADDF0 + arm_func_start NNS_FndFreeToExpHeap +NNS_FndFreeToExpHeap: ; 0x020ADDF0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc sub r4, r1, #0x10 add r5, r0, #0x24 add r0, sp, #0x0 mov r1, r4 - bl FUN_020AE528 + bl GetRegionOfMBlock mov r1, r4 add r0, r5, #0x8 - bl FUN_020AE500 + bl RemoveMBlock add r1, sp, #0x0 mov r0, r5 - bl FUN_020AE02C + bl RecycleRegion add sp, sp, #0xc ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020ADDF0 + arm_func_end NNS_FndFreeToExpHeap - arm_func_start FUN_020ADE2C -FUN_020ADE2C: ; 0x020ADE2C + arm_func_start NNS_FndResizeForMBlockExpHeap +NNS_FndResizeForMBlockExpHeap: ; 0x020ADE2C stmdb sp!, {r4-r10,lr} sub sp, sp, #0x10 mov r4, r1 @@ -90,10 +88,10 @@ _020ADEB0: _020ADEBC: add r0, sp, #0x0 mov r1, r9 - bl FUN_020AE528 + bl GetRegionOfMBlock mov r0, r7 mov r1, r9 - bl FUN_020AE500 + bl RemoveMBlock ldr r2, [sp, #0x4] add r3, r10, r4 ldr r9, [sp, #0x0] @@ -112,11 +110,11 @@ _020ADEBC: blo _020ADF30 ldr r1, _020ADF9C ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r8 - bl FUN_020AE4D0 + bl InsertMBlock _020ADF30: ldr r0, [r5, #0x20] ldr r1, [sp, #0x0] @@ -140,7 +138,7 @@ _020ADF60: add r1, sp, #0x8 mov r0, r7 str r10, [r6, #0x4] - bl FUN_020AE02C + bl RecycleRegion cmp r0, #0x0 streq r8, [r6, #0x4] _020ADF90: @@ -149,10 +147,10 @@ _020ADF90: ldmia sp!, {r4-r10,pc} .balign 4 _020ADF9C: .word 0x00004652 - arm_func_end FUN_020ADE2C + arm_func_end NNS_FndResizeForMBlockExpHeap - arm_func_start tempName_NNS_FndAllocFromExpHeapEx -tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 + arm_func_start NNS_FndAllocFromExpHeapEx +NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 stmdb sp!, {lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -161,26 +159,26 @@ tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 cmp r2, #0x0 bic r1, r1, #0x3 blt _020ADFCC - bl FUN_020AE1D8 + bl AllocFromHead add sp, sp, #0x4 ldmia sp!, {pc} _020ADFCC: rsb r2, r2, #0x0 - bl FUN_020AE11C + bl AllocFromTail add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end tempName_NNS_FndAllocFromExpHeapEx + arm_func_end NNS_FndAllocFromExpHeapEx - arm_func_start thunk_FUN_020adc8c -thunk_FUN_020adc8c: ; 0x020ADFDC - ldr ip, _020ADFE4 ; =FUN_020ADC8C + arm_func_start NNS_FndDestroyExpHeap +NNS_FndDestroyExpHeap: ; 0x020ADFDC + ldr ip, _020ADFE4 ; =NNSi_FndFinalizeHeap bx r12 .balign 4 -_020ADFE4: .word FUN_020ADC8C - arm_func_end thunk_FUN_020adc8c +_020ADFE4: .word NNSi_FndFinalizeHeap + arm_func_end NNS_FndDestroyExpHeap - arm_func_start tempName_NNS_FndCreateExpHeapEx -tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 + arm_func_start NNS_FndCreateExpHeapEx +NNS_FndCreateExpHeapEx: ; 0x020ADFE8 stmdb sp!, {lr} sub sp, sp, #0x4 add r1, r1, r0 @@ -197,13 +195,13 @@ _020AE014: mov r0, #0x0 ldmia sp!, {pc} _020AE020: - bl FUN_020AE420 + bl InitExpHeap add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end tempName_NNS_FndCreateExpHeapEx + arm_func_end NNS_FndCreateExpHeapEx - arm_func_start FUN_020AE02C -FUN_020AE02C: + arm_func_start RecycleRegion +RecycleRegion: stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 mov r5, r1 @@ -229,7 +227,7 @@ _020AE060: add r2, r2, r0 mov r0, r6 str r2, [sp, #0x4] - bl FUN_020AE500 + bl RemoveMBlock b _020AE0A0 _020AE094: ldr r1, [r1, #0xc] @@ -247,7 +245,7 @@ _020AE0A0: mov r0, r6 mov r1, r4 str r4, [sp, #0x0] - bl FUN_020AE500 + bl RemoveMBlock mov r4, r0 _020AE0D4: ldr r1, [sp, #0x4] @@ -259,20 +257,20 @@ _020AE0D4: ldmccia sp!, {r4-r6,pc} ldr r1, _020AE118 ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r6 mov r2, r4 - bl FUN_020AE4D0 + bl InsertMBlock mov r0, #0x1 add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 _020AE118: .word 0x00004652 - arm_func_end FUN_020AE02C + arm_func_end RecycleRegion - arm_func_start FUN_020AE11C -FUN_020AE11C: ; 0x020AE11C + local_arm_func_start AllocFromTail +AllocFromTail: ; 0x020AE11C stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 add r0, r0, #0x24 @@ -320,13 +318,13 @@ _020AE1B0: mov r4, #0x1 mov r2, r12 str r4, [sp, #0x0] - bl FUN_020AE298 + bl AllocUsedBlockFromFreeBlock add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AE11C + arm_func_end AllocFromTail - arm_func_start FUN_020AE1D8 -FUN_020AE1D8: ; 0x020AE1D8 + local_arm_func_start AllocFromHead +AllocFromHead: ; 0x020AE1D8 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 add r0, r0, #0x24 @@ -375,13 +373,13 @@ _020AE270: mov r4, #0x0 mov r2, lr str r4, [sp, #0x0] - bl FUN_020AE298 + bl AllocUsedBlockFromFreeBlock add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AE1D8 + arm_func_end AllocFromHead - arm_func_start FUN_020AE298 -FUN_020AE298: ; 0x020AE298 + arm_func_start AllocUsedBlockFromFreeBlock +AllocUsedBlockFromFreeBlock: ; 0x020AE298 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x18 mov r7, r0 @@ -389,7 +387,7 @@ FUN_020AE298: ; 0x020AE298 mov r8, r1 mov r6, r2 mov r5, r3 - bl FUN_020AE528 + bl GetRegionOfMBlock ldr r3, [sp, #0x4] sub r4, r6, #0x10 add r2, r5, r6 @@ -398,7 +396,7 @@ FUN_020AE298: ; 0x020AE298 str r4, [sp, #0x4] str r3, [sp, #0xc] str r2, [sp, #0x8] - bl FUN_020AE500 + bl RemoveMBlock ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] mov r5, r0 @@ -408,11 +406,11 @@ FUN_020AE298: ; 0x020AE298 blo _020AE318 ldr r1, _020AE418 ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r5 - bl FUN_020AE4D0 + bl InsertMBlock mov r5, r0 _020AE318: ldr r1, [sp, #0xc] @@ -423,11 +421,11 @@ _020AE318: blo _020AE34C ldr r1, _020AE418 ; =0x00004652 add r0, sp, #0x8 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r5 - bl FUN_020AE4D0 + bl InsertMBlock _020AE34C: ldr r0, [r7, #-0x4] ldr r1, [sp, #0x4] @@ -446,7 +444,7 @@ _020AE378: add r0, sp, #0x10 str r4, [sp, #0x10] str r2, [sp, #0x14] - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 ldrh r3, [r1, #0x2] ldrh r2, [sp, #0x30] @@ -477,17 +475,17 @@ _020AE378: orr r2, r2, r3 strh r2, [r1, #0x2] ldr r2, [r7, #0xc] - bl FUN_020AE4D0 + bl InsertMBlock mov r0, r6 add sp, sp, #0x18 ldmia sp!, {r4-r8,pc} .balign 4 _020AE418: .word 0x00004652 _020AE41C: .word 0x00005544 - arm_func_end FUN_020AE298 + arm_func_end AllocUsedBlockFromFreeBlock - arm_func_start FUN_020AE420 -FUN_020AE420: ; 0x020AE420 + arm_func_start InitExpHeap +InitExpHeap: ; 0x020AE420 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc mov r5, r0 @@ -496,7 +494,7 @@ FUN_020AE420: ; 0x020AE420 str r2, [sp, #0x0] ldr r1, _020AE498 ; =0x45585048 add r2, r4, #0x14 - bl FUN_020ADCA4 + bl NNSi_FndInitHeapHead mov r0, #0x0 strh r0, [r4, #0x10] strh r0, [r4, #0x12] @@ -509,7 +507,7 @@ FUN_020AE420: ; 0x020AE420 str r2, [sp, #0x4] ldr r2, [r5, #0x1c] str r2, [sp, #0x8] - bl FUN_020AE4A0 + bl InitMBlock str r0, [r5, #0x24] str r0, [r4, #0x4] mov r1, #0x0 @@ -521,10 +519,10 @@ FUN_020AE420: ; 0x020AE420 .balign 4 _020AE498: .word 0x45585048 _020AE49C: .word 0x00004652 - arm_func_end FUN_020AE420 + arm_func_end InitExpHeap - arm_func_start FUN_020AE4A0 -FUN_020AE4A0: ; 0x020AE4A0 + arm_func_start InitMBlock +InitMBlock: ; 0x020AE4A0 ldr r3, [r0, #0x0] mov r2, #0x0 strh r1, [r3, #0x0] @@ -537,10 +535,10 @@ FUN_020AE4A0: ; 0x020AE4A0 mov r0, r3 str r2, [r3, #0xc] bx lr - arm_func_end FUN_020AE4A0 + arm_func_end InitMBlock - arm_func_start FUN_020AE4D0 -FUN_020AE4D0: ; 0x020AE4D0 + arm_func_start InsertMBlock +InsertMBlock: ; 0x020AE4D0 str r2, [r1, #0x8] cmp r2, #0x0 ldrne r3, [r2, #0xc] @@ -553,10 +551,10 @@ FUN_020AE4D0: ; 0x020AE4D0 streq r1, [r0, #0x4] mov r0, r1 bx lr - arm_func_end FUN_020AE4D0 + arm_func_end InsertMBlock - arm_func_start FUN_020AE500 -FUN_020AE500: ; 0x020AE500 + arm_func_start RemoveMBlock +RemoveMBlock: ; 0x020AE500 ldr r2, [r1, #0x8] ldr r1, [r1, #0xc] cmp r2, #0x0 @@ -567,10 +565,10 @@ FUN_020AE500: ; 0x020AE500 streq r2, [r0, #0x4] mov r0, r2 bx lr - arm_func_end FUN_020AE500 + arm_func_end RemoveMBlock - arm_func_start FUN_020AE528 -FUN_020AE528: ; 0x020AE528 + arm_func_start GetRegionOfMBlock +GetRegionOfMBlock: ; 0x020AE528 ldrh r2, [r1, #0x2] add r3, r1, #0x10 mov r2, r2, asr #0x8 @@ -582,4 +580,4 @@ FUN_020AE528: ; 0x020AE528 add r1, r1, r3 str r1, [r0, #0x4] bx lr - arm_func_end FUN_020AE528 + arm_func_end GetRegionOfMBlock diff --git a/arm9/asm/NNS_FND_frameheap.s b/arm9/asm/NNS_FND_frameheap.s index 078180b57..cfa221d42 100644 --- a/arm9/asm/NNS_FND_frameheap.s +++ b/arm9/asm/NNS_FND_frameheap.s @@ -1,13 +1,11 @@ .include "asm/macros.inc" .include "global.inc" - - .extern FUN_020ADCA4 - .extern FUN_020ADC8C - + .extern NNSi_FndInitHeapHead + .extern NNSi_FndFinalizeHeap .text - arm_func_start FUN_020AE554 -FUN_020AE554: ; 0x020AE554 + arm_func_start NNS_FndFreeByStateToFrmHeap +NNS_FndFreeByStateToFrmHeap: ; 0x020AE554 add r2, r0, #0x24 cmp r1, #0x0 ldr r3, [r2, #0x8] @@ -33,10 +31,10 @@ _020AE584: ldr r1, [r3, #0xc] str r1, [r2, #0x8] bx lr - arm_func_end FUN_020AE554 + arm_func_end NNS_FndFreeByStateToFrmHeap - arm_func_start FUN_020AE5B0 -FUN_020AE5B0: ; 0x020AE5B0 + arm_func_start NNS_FndRecordStateForFrmHeap +NNS_FndRecordStateForFrmHeap: ; 0x020AE5B0 stmdb sp!, {r4-r6,lr} add r4, r0, #0x24 ldr r5, [r0, #0x24] @@ -44,7 +42,7 @@ FUN_020AE5B0: ; 0x020AE5B0 mov r0, r4 mov r1, #0x10 mov r2, #0x4 - bl FUN_020AE77C + bl AllocFromHead cmp r0, #0x0 moveq r0, #0x0 ldmeqia sp!, {r4-r6,pc} @@ -57,29 +55,29 @@ FUN_020AE5B0: ; 0x020AE5B0 str r0, [r4, #0x8] mov r0, #0x1 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AE5B0 + arm_func_end NNS_FndRecordStateForFrmHeap - arm_func_start FUN_020AE600 -FUN_020AE600: ; 0x020AE600 + arm_func_start NNS_FndFreeToFrmHeap +NNS_FndFreeToFrmHeap: ; 0x020AE600 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 mov r5, r0 ands r1, r4, #0x1 beq _020AE61C - bl FUN_020AE6F8 + bl FreeHead _020AE61C: ands r0, r4, #0x2 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} mov r0, r5 - bl FUN_020AE6C8 + bl FreeTail add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AE600 + arm_func_end NNS_FndFreeToFrmHeap - arm_func_start FUN_020AE638 -FUN_020AE638: ; 0x020AE638 + arm_func_start NNS_FndAllocFromFrmHeapEx +NNS_FndAllocFromFrmHeapEx: ; 0x020AE638 stmdb sp!, {lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -89,26 +87,26 @@ FUN_020AE638: ; 0x020AE638 cmp r2, #0x0 bic r1, r1, #0x3 blt _020AE668 - bl FUN_020AE77C + bl AllocFromHead add sp, sp, #0x4 ldmia sp!, {pc} _020AE668: rsb r2, r2, #0x0 - bl FUN_020AE710 + bl AllocFromTail add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AE638 + arm_func_end NNS_FndAllocFromFrmHeapEx - arm_func_start thunk_FUN_020adc8c_2 -thunk_FUN_020adc8c_2: ; 0x020AE678 - ldr ip, _020AE680 ; =FUN_020ADC8C + arm_func_start NNS_FndDestroyFrmHeap +NNS_FndDestroyFrmHeap: ; 0x020AE678 + ldr ip, _020AE680 ; =NNSi_FndFinalizeHeap bx r12 .balign 4 -_020AE680: .word FUN_020ADC8C - arm_func_end thunk_FUN_020adc8c_2 +_020AE680: .word NNSi_FndFinalizeHeap + arm_func_end NNS_FndDestroyFrmHeap - arm_func_start FUN_020AE684 -FUN_020AE684: ; 0x020AE684 + arm_func_start NNS_FndCreateFrmHeapEx +NNS_FndCreateFrmHeapEx: ; 0x020AE684 stmdb sp!, {lr} sub sp, sp, #0x4 add r1, r1, r0 @@ -125,13 +123,13 @@ _020AE6B0: mov r0, #0x0 ldmia sp!, {pc} _020AE6BC: - bl FUN_020AE7E0 + bl InitFrameHeap add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AE684 + arm_func_end NNS_FndCreateFrmHeapEx - arm_func_start FUN_020AE6C8 -FUN_020AE6C8: ; 0x020AE6C8 + arm_func_start FreeTail +FreeTail: ; 0x020AE6C8 add r2, r0, #0x24 ldr r3, [r2, #0x8] cmp r3, #0x0 @@ -146,20 +144,20 @@ _020AE6EC: ldr r0, [r0, #0x1c] str r0, [r2, #0x4] bx lr - arm_func_end FUN_020AE6C8 + arm_func_end FreeTail - arm_func_start FUN_020AE6F8 -FUN_020AE6F8: ; 0x020AE6F8 + arm_func_start FreeHead +FreeHead: ; 0x020AE6F8 ldr r1, [r0, #0x18] add r2, r0, #0x24 str r1, [r0, #0x24] mov r0, #0x0 str r0, [r2, #0x8] bx lr - arm_func_end FUN_020AE6F8 + arm_func_end FreeHead - arm_func_start FUN_020AE710 -FUN_020AE710: ; 0x020AE710 + local_arm_func_start AllocFromTail +AllocFromTail: ; 0x020AE710 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -188,10 +186,10 @@ _020AE76C: str r4, [r5, #0x4] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AE710 + arm_func_end AllocFromTail - arm_func_start FUN_020AE77C -FUN_020AE77C: + local_arm_func_start AllocFromHead +AllocFromHead: stmdb sp!, {r4-r6,lr} mov r6, r0 ldr r0, [r6, #0x0] @@ -218,10 +216,10 @@ _020AE7D4: mov r0, r5 str r4, [r6, #0x0] ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AE77C + arm_func_end AllocFromHead - arm_func_start FUN_020AE7E0 -FUN_020AE7E0: ; 0x020AE7E0 + arm_func_start InitFrameHeap +InitFrameHeap: ; 0x020AE7E0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -230,7 +228,7 @@ FUN_020AE7E0: ; 0x020AE7E0 str r2, [sp, #0x0] ldr r1, _020AE828 ; =0x46524D48 add r2, r4, #0xc - bl FUN_020ADCA4 + bl NNSi_FndInitHeapHead ldr r0, [r5, #0x18] mov r1, #0x0 str r0, [r5, #0x24] @@ -242,4 +240,4 @@ FUN_020AE7E0: ; 0x020AE7E0 ldmia sp!, {r4-r5,pc} .balign 4 _020AE828: .word 0x46524D48 - arm_func_end FUN_020AE7E0 + arm_func_end InitFrameHeap diff --git a/arm9/asm/NNS_FND_heapcommon.s b/arm9/asm/NNS_FND_heapcommon.s index 0aa405122..ca3108d2a 100644 --- a/arm9/asm/NNS_FND_heapcommon.s +++ b/arm9/asm/NNS_FND_heapcommon.s @@ -3,28 +3,27 @@ .section .bss - .global UNK_021CCD38 -UNK_021CCD38: ; 0x021CCD38 + .global sRootListInitialized +sRootListInitialized: ; 0x021CCD38 .space 0x4 - .global UNK_021CCD3C -UNK_021CCD3C: ; 0x021CCD3C + .global sRootList +sRootList: ; 0x021CCD3C .space 0xc - .text - arm_func_start FUN_020ADC8C -FUN_020ADC8C: ; 0x020ADC8C + arm_func_start NNSi_FndFinalizeHeap +NNSi_FndFinalizeHeap: ; 0x020ADC8C stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020ADD30 + bl FindListContainHeap mov r1, r4 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject ldmia sp!, {r4,pc} - arm_func_end FUN_020ADC8C + arm_func_end NNSi_FndFinalizeHeap - arm_func_start FUN_020ADCA4 -FUN_020ADCA4: + arm_func_start NNSi_FndInitHeapHead +NNSi_FndInitHeapHead: stmdb sp!, {r4,lr} mov r4, r0 str r1, [r4, #0x0] @@ -42,50 +41,50 @@ FUN_020ADCA4: add r0, r4, #0xc mov r1, #0x4 str r2, [r4, #0x20] - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =UNK_021CCD38 + bl NNS_FndInitList + ldr r0, _020ADD28 ; =sRootListInitialized ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020ADD14 - ldr r0, _020ADD2C ; =UNK_021CCD3C + ldr r0, _020ADD2C ; =sRootList mov r1, #0x4 - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =UNK_021CCD38 + bl NNS_FndInitList + ldr r0, _020ADD28 ; =sRootListInitialized mov r1, #0x1 str r1, [r0, #0x0] _020ADD14: mov r0, r4 - bl FUN_020ADD30 + bl FindListContainHeap mov r1, r4 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject ldmia sp!, {r4,pc} .balign 4 -_020ADD28: .word UNK_021CCD38 -_020ADD2C: .word UNK_021CCD3C - arm_func_end FUN_020ADCA4 +_020ADD28: .word sRootListInitialized +_020ADD2C: .word sRootList + arm_func_end NNSi_FndInitHeapHead - arm_func_start FUN_020ADD30 -FUN_020ADD30: ; 0x020ADD30 + arm_func_start FindListContainHeap +FindListContainHeap: ; 0x020ADD30 stmdb sp!, {r4,lr} - ldr r4, _020ADD54 ; =UNK_021CCD3C + ldr r4, _020ADD54 ; =sRootList mov r1, r0 mov r0, r4 - bl FUN_020ADD58 + bl FindContainHeap cmp r0, #0x0 addne r4, r0, #0xc mov r0, r4 ldmia sp!, {r4,pc} .balign 4 -_020ADD54: .word UNK_021CCD3C - arm_func_end FUN_020ADD30 +_020ADD54: .word sRootList + arm_func_end FindListContainHeap - arm_func_start FUN_020ADD58 -FUN_020ADD58: + arm_func_start FindContainHeap +FindContainHeap: stmdb sp!, {r4-r6,lr} mov r5, r1 mov r1, #0x0 mov r6, r0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r4, r0 beq _020ADDB8 _020ADD74: @@ -97,17 +96,17 @@ _020ADD74: bhs _020ADDA4 mov r1, r5 add r0, r4, #0xc - bl FUN_020ADD58 + bl FindContainHeap cmp r0, #0x0 moveq r0, r4 ldmia sp!, {r4-r6,pc} _020ADDA4: mov r0, r6 mov r1, r4 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r4, r0 bne _020ADD74 _020ADDB8: mov r0, #0x0 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020ADD58 + arm_func_end FindContainHeap diff --git a/arm9/asm/NNS_FND_list.s b/arm9/asm/NNS_FND_list.s index b88b21590..21999c112 100644 --- a/arm9/asm/NNS_FND_list.s +++ b/arm9/asm/NNS_FND_list.s @@ -1,29 +1,28 @@ .include "asm/macros.inc" .include "global.inc" - .text - arm_func_start FUN_020ADA84 -FUN_020ADA84: ; 0x020ADA84 + arm_func_start NNS_FndGetPrevListObject +NNS_FndGetPrevListObject: ; 0x020ADA84 cmp r1, #0x0 ldreq r0, [r0, #0x4] ldrneh r0, [r0, #0xa] ldrne r0, [r1, r0] bx lr - arm_func_end FUN_020ADA84 + arm_func_end NNS_FndGetPrevListObject - arm_func_start FUN_020ADA98 -FUN_020ADA98: ; 0x020ADA98 + arm_func_start NNS_FndGetNextListObject +NNS_FndGetNextListObject: ; 0x020ADA98 cmp r1, #0x0 ldreq r0, [r0, #0x0] ldrneh r0, [r0, #0xa] addne r0, r1, r0 ldrne r0, [r0, #0x4] bx lr - arm_func_end FUN_020ADA98 + arm_func_end NNS_FndGetNextListObject - arm_func_start FUN_020ADAB0 -FUN_020ADAB0: ; 0x020ADAB0 + arm_func_start NNS_FndRemoveListObject +NNS_FndRemoveListObject: ; 0x020ADAB0 stmdb sp!, {lr} sub sp, sp, #0x4 ldrh r12, [r0, #0xa] @@ -50,16 +49,16 @@ FUN_020ADAB0: ; 0x020ADAB0 strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020ADAB0 + arm_func_end NNS_FndRemoveListObject - arm_func_start FUN_020ADB18 -FUN_020ADB18: ; 0x020ADB18 + arm_func_start NNS_FndInsertListObject +NNS_FndInsertListObject: ; 0x020ADB18 stmdb sp!, {lr} sub sp, sp, #0x4 cmp r1, #0x0 bne _020ADB38 mov r1, r2 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject add sp, sp, #0x4 ldmia sp!, {pc} _020ADB38: @@ -67,7 +66,7 @@ _020ADB38: cmp r1, r3 bne _020ADB54 mov r1, r2 - bl FUN_020ADB8C + bl NNS_FndPrependListObject add sp, sp, #0x4 ldmia sp!, {pc} _020ADB54: @@ -85,16 +84,16 @@ _020ADB54: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020ADB18 + arm_func_end NNS_FndInsertListObject - arm_func_start FUN_020ADB8C -FUN_020ADB8C: ; 0x020ADB8C + arm_func_start NNS_FndPrependListObject +NNS_FndPrependListObject: ; 0x020ADB8C stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x0] cmp r2, #0x0 bne _020ADBAC - bl FUN_020ADC48 + bl SetFirstObject add sp, sp, #0x4 ldmia sp!, {pc} _020ADBAC: @@ -113,16 +112,16 @@ _020ADBAC: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020ADB8C + arm_func_end NNS_FndPrependListObject - arm_func_start FUN_020ADBE8 -FUN_020ADBE8: ; 0x020ADBE8 + arm_func_start NNS_FndAppendListObject +NNS_FndAppendListObject: ; 0x020ADBE8 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x0] cmp r2, #0x0 bne _020ADC08 - bl FUN_020ADC48 + bl SetFirstObject add sp, sp, #0x4 ldmia sp!, {pc} _020ADC08: @@ -142,10 +141,10 @@ _020ADC08: strh r1, [r0, #0x8] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020ADBE8 + arm_func_end NNS_FndAppendListObject - arm_func_start FUN_020ADC48 -FUN_020ADC48: ; 0x020ADC48 + arm_func_start SetFirstObject +SetFirstObject: ; 0x020ADC48 ldrh r3, [r0, #0xa] mov r2, #0x0 add r12, r1, r3 @@ -157,14 +156,14 @@ FUN_020ADC48: ; 0x020ADC48 add r1, r1, #0x1 strh r1, [r0, #0x8] bx lr - arm_func_end FUN_020ADC48 + arm_func_end SetFirstObject - arm_func_start FUN_020ADC74 -FUN_020ADC74: ; 0x020ADC74 + arm_func_start NNS_FndInitList +NNS_FndInitList: ; 0x020ADC74 mov r2, #0x0 str r2, [r0, #0x0] str r2, [r0, #0x4] strh r2, [r0, #0x8] strh r1, [r0, #0xa] bx lr - arm_func_end FUN_020ADC74 + arm_func_end NNS_FndInitList diff --git a/arm9/asm/NNS_G2D_g2d_animation.s b/arm9/asm/NNS_G2D_g2d_animation.s index 60fcde4c9..23daa1c66 100644 --- a/arm9/asm/NNS_G2D_g2d_animation.s +++ b/arm9/asm/NNS_G2D_g2d_animation.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B0408 -FUN_020B0408: ; 0x020B0408 + arm_func_start NNSi_G2dIsAnimCtrlLoopAnim +NNSi_G2dIsAnimCtrlLoopAnim: ; 0x020B0408 ldr r1, [r0, #0x14] cmp r1, #0x0 ldreq r0, [r0, #0x18] @@ -20,21 +19,19 @@ _020B0428: _020B0430: mov r0, #0x0 bx lr - arm_func_end FUN_020B0408 + arm_func_end NNSi_G2dIsAnimCtrlLoopAnim - ; NNS_G2dBindAnimCtrl - arm_func_start FUN_020B0438 -FUN_020B0438: ; 0x020B0438 - ldr ip, _020B0444 ; =FUN_020B0448 + arm_func_start NNS_G2dBindAnimCtrl +NNS_G2dBindAnimCtrl: ; 0x020B0438 + ldr ip, _020B0444 ; =NNS_G2dResetAnimCtrlState str r1, [r0, #0x18] bx r12 .balign 4 -_020B0444: .word FUN_020B0448 - arm_func_end FUN_020B0438 +_020B0444: .word NNS_G2dResetAnimCtrlState + arm_func_end NNS_G2dBindAnimCtrl - ; NNS_G2dResetAnimCtrlState - arm_func_start FUN_020B0448 -FUN_020B0448: ; 0x020B0448 + arm_func_start NNS_G2dResetAnimCtrlState +NNS_G2dResetAnimCtrlState: ; 0x020B0448 ldr r1, [r0, #0x10] cmp r1, #0x0 movgt r2, #0x1 @@ -56,32 +53,30 @@ _020B047C: sub r1, r1, #0x8 str r1, [r0, #0x0] _020B0494: - ldr ip, _020B04A4 ; =FUN_020B0534 + ldr ip, _020B04A4 ; =NNS_G2dTickAnimCtrl mov r1, #0x0 str r1, [r0, #0xc] bx r12 .balign 4 -_020B04A4: .word FUN_020B0534 - arm_func_end FUN_020B0448 +_020B04A4: .word NNS_G2dTickAnimCtrl + arm_func_end NNS_G2dResetAnimCtrlState - ; _end - arm_func_start FUN_020B04A8 -FUN_020B04A8: ; 0x020B04A8 + arm_func_start NNS_G2dInitAnimCallBackFunctor +NNS_G2dInitAnimCallBackFunctor: ; 0x020B04A8 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] strh r1, [r0, #0xc] bx lr - arm_func_end FUN_020B04A8 + arm_func_end NNS_G2dInitAnimCallBackFunctor - ; _end - arm_func_start FUN_020B04C0 -FUN_020B04C0: ; 0x020B04C0 + arm_func_start NNS_G2dInitAnimCtrl +NNS_G2dInitAnimCtrl: ; 0x020B04C0 stmdb sp!, {r4,lr} mov r4, r0 add r0, r4, #0x1c - bl FUN_020B04A8 + bl NNS_G2dInitAnimCallBackFunctor mov r1, #0x0 str r1, [r4, #0x0] str r1, [r4, #0x4] @@ -93,11 +88,10 @@ FUN_020B04C0: ; 0x020B04C0 str r1, [r4, #0x14] str r1, [r4, #0x18] ldmia sp!, {r4,pc} - arm_func_end FUN_020B04C0 + arm_func_end NNS_G2dInitAnimCtrl - ; _end - arm_func_start FUN_020B04FC -FUN_020B04FC: ; 0x020B04FC + arm_func_start NNS_G2dGetAnimCtrlCurrentFrame +NNS_G2dGetAnimCtrlCurrentFrame: ; 0x020B04FC ldr r1, [r0, #0x18] ldr r2, [r0, #0x0] ldr r0, [r1, #0xc] @@ -105,23 +99,21 @@ FUN_020B04FC: ; 0x020B04FC mov r0, r0, lsl #0xd mov r0, r0, lsr #0x10 bx lr - arm_func_end FUN_020B04FC + arm_func_end NNS_G2dGetAnimCtrlCurrentFrame - ; _end - arm_func_start FUN_020B0518 -FUN_020B0518: ; 0x020B0518 + arm_func_start NNS_G2dSetAnimCtrlCurrentFrame +NNS_G2dSetAnimCtrlCurrentFrame: ; 0x020B0518 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020B06EC + bl SetAnimCtrlCurrentFrameImpl_ cmp r0, #0x0 movne r1, #0x0 strne r1, [r4, #0xc] ldmia sp!, {r4,pc} - arm_func_end FUN_020B0518 + arm_func_end NNS_G2dSetAnimCtrlCurrentFrame - ; _end - arm_func_start FUN_020B0534 -FUN_020B0534: ; 0x020B0534 + arm_func_start NNS_G2dTickAnimCtrl +NNS_G2dTickAnimCtrl: ; 0x020B0534 stmdb sp!, {r4-r8,lr} mov r8, r0 ldr r0, [r8, #0x8] @@ -192,7 +184,7 @@ _020B0634: cmp r0, #0x0 beq _020B0644 mov r0, r8 - bl FUN_020B0710 + bl SequenceEdgeHandle_ _020B0644: ldr r0, [r8, #0x1c] cmp r0, #0x0 @@ -238,19 +230,17 @@ _020B06D0: bne _020B058C mov r0, r7 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B0534 + arm_func_end NNS_G2dTickAnimCtrl - ; _end - arm_func_start FUN_020B06E0 -FUN_020B06E0: ; 0x020B06E0 + arm_func_start NNS_G2dGetAnimCtrlCurrentElement +NNS_G2dGetAnimCtrlCurrentElement: ; 0x020B06E0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bx lr - arm_func_end FUN_020B06E0 + arm_func_end NNS_G2dGetAnimCtrlCurrentElement - ; _end - arm_func_start FUN_020B06EC -FUN_020B06EC: ; 0x020B06EC + arm_func_start SetAnimCtrlCurrentFrameImpl_ +SetAnimCtrlCurrentFrameImpl_: ; 0x020B06EC ldr r3, [r0, #0x18] ldrh r2, [r3, #0x0] cmp r1, r2 @@ -260,11 +250,10 @@ FUN_020B06EC: ; 0x020B06EC movcc r0, #0x1 movcs r0, #0x0 bx lr - arm_func_end FUN_020B06EC + arm_func_end SetAnimCtrlCurrentFrameImpl_ - ; _end - arm_func_start FUN_020B0710 -FUN_020B0710: ; 0x020B0710 + arm_func_start SequenceEdgeHandle_ +SequenceEdgeHandle_: ; 0x020B0710 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x14] @@ -307,7 +296,7 @@ _020B0780: bne _020B0800 _020B07A8: mov r0, r4 - bl FUN_020B0448 + bl NNS_G2dResetAnimCtrlState b _020B0800 _020B07B4: ldr r0, [r4, #0x1c] @@ -330,7 +319,7 @@ _020B07D0: bne _020B0800 _020B07F8: mov r0, r4 - bl FUN_020B0448 + bl NNS_G2dResetAnimCtrlState _020B0800: ldr r1, [r4, #0x18] ldr r2, [r4, #0x0] @@ -344,5 +333,4 @@ _020B0800: cmp r2, r1 strcc r1, [r4, #0x0] ldmia sp!, {r4,pc} - arm_func_end FUN_020B0710 - + arm_func_end SequenceEdgeHandle_ diff --git a/arm9/asm/NNS_G2D_g2d_cellanimati.s b/arm9/asm/NNS_G2D_g2d_cellanimati.s index 91d32786a..31720d7af 100644 --- a/arm9/asm/NNS_G2D_g2d_cellanimati.s +++ b/arm9/asm/NNS_G2D_g2d_cellanimati.s @@ -3,9 +3,8 @@ .section .text - ; NNS_G2dMakeCellToOams - arm_func_start FUN_020B1AF8 -FUN_020B1AF8: ; 0x020B1AF8 + arm_func_start NNS_G2dMakeCellToOams +NNS_G2dMakeCellToOams: ; 0x020B1AF8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x34 ldrh r5, [r2, #0x0] @@ -85,7 +84,7 @@ _020B1C1C: cmp r6, #0x300 bne _020B1C70 ldr r4, _020B1E8C ; =0xC000C000 - ldr r8, _020B1E90 ; =UNK_020FF8AC + ldr r8, _020B1E90 ; =NNSi_objSizeWTbl and r5, r5, r4 and r4, r5, #0xc000 mov r6, r4, asr #0xe @@ -94,7 +93,7 @@ _020B1C1C: mov r4, r4, lsl #0x1 add r8, r8, r6, lsl #0x3 ldrh r9, [r4, r8] - ldr r8, _020B1E94 ; =UNK_020FF894 + ldr r8, _020B1E94 ; =NNSi_objSizeHTbl ldr r5, [sp, #0x20] add r6, r8, r6, lsl #0x3 add r5, r5, r9, lsl #0xb @@ -170,12 +169,12 @@ _020B1D54: and r5, r8, #0xc000 mov r6, r5, asr #0xe and r5, r8, #0xc0000000 - ldr r8, _020B1E90 ; =UNK_020FF8AC + ldr r8, _020B1E90 ; =NNSi_objSizeWTbl mov r5, r5, lsr #0x1e mov r5, r5, lsl #0x1 add r8, r8, r6, lsl #0x3 ldrh r9, [r5, r8] - ldr r8, _020B1E94 ; =UNK_020FF894 + ldr r8, _020B1E94 ; =NNSi_objSizeHTbl ldr r4, [sp, #0x20] add r6, r8, r6, lsl #0x3 mov r11, r9, asr #0x1 @@ -247,53 +246,49 @@ _020B1E7C: .balign 4 _020B1E88: .word 0x01FF0000 _020B1E8C: .word 0xC000C000 -_020B1E90: .word UNK_020FF8AC -_020B1E94: .word UNK_020FF894 +_020B1E90: .word NNSi_objSizeWTbl +_020B1E94: .word NNSi_objSizeHTbl _020B1E98: .word 0xC1FFFCFF _020B1E9C: .word 0x000001FF _020B1EA0: .word 0xFE00FF00 - arm_func_end FUN_020B1AF8 + arm_func_end NNS_G2dMakeCellToOams - ; _end - arm_func_start FUN_020B1EA4 -FUN_020B1EA4: ; 0x020B1EA4 + arm_func_start NNS_G2dSetCellAnimationCurrentFrame +NNS_G2dSetCellAnimationCurrentFrame: ; 0x020B1EA4 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020B0518 + bl NNS_G2dSetAnimCtrlCurrentFrame cmp r0, #0x0 ldmeqia sp!, {r4,pc} mov r0, r4 - bl FUN_020B1FC4 + bl ApplyCurrentAnimResult_ ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EA4 + arm_func_end NNS_G2dSetCellAnimationCurrentFrame - ; _end - arm_func_start FUN_020B1EC4 -FUN_020B1EC4: ; 0x020B1EC4 + arm_func_start NNS_G2dTickCellAnimation +NNS_G2dTickCellAnimation: ; 0x020B1EC4 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020B0534 + bl NNS_G2dTickAnimCtrl cmp r0, #0x0 ldmeqia sp!, {r4,pc} mov r0, r4 - bl FUN_020B1FC4 + bl ApplyCurrentAnimResult_ ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EC4 + arm_func_end NNS_G2dTickCellAnimation - ; _end - arm_func_start FUN_020B1EE4 -FUN_020B1EE4: ; 0x020B1EE4 + arm_func_start NNS_G2dSetCellAnimationSequence +NNS_G2dSetCellAnimationSequence: ; 0x020B1EE4 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020B0438 + bl NNS_G2dBindAnimCtrl mov r0, r4 - bl FUN_020B1FC4 + bl ApplyCurrentAnimResult_ ldmia sp!, {r4,pc} - arm_func_end FUN_020B1EE4 + arm_func_end NNS_G2dSetCellAnimationSequence - ; _end - arm_func_start FUN_020B1EFC -FUN_020B1EFC: ; 0x020B1EFC + arm_func_start NNS_G2dInitCellAnimationVramTransfered +NNS_G2dInitCellAnimationVramTransfered: ; 0x020B1EFC stmdb sp!, {r4-r7,lr} sub sp, sp, #0x14 mov r4, r2 @@ -313,25 +308,24 @@ FUN_020B1EFC: ; 0x020B1EFC ldr r3, [sp, #0x30] mov r0, r6 str r12, [sp, #0xc] - bl FUN_020B45F0 + bl NNSi_G2dInitCellTransferState str r6, [r7, #0x34] str r4, [r7, #0x30] add r0, r7, #0x38 mov r1, #0x1 str r6, [r7, #0x34] - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl mov r0, r7 - bl FUN_020B04C0 + bl NNS_G2dInitAnimCtrl mov r0, r7 mov r1, r5 - bl FUN_020B1EE4 + bl NNS_G2dSetCellAnimationSequence add sp, sp, #0x14 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B1EFC + arm_func_end NNS_G2dInitCellAnimationVramTransfered - ; _end - arm_func_start FUN_020B1F80 -FUN_020B1F80: ; 0x020B1F80 + arm_func_start NNS_G2dInitCellAnimation +NNS_G2dInitCellAnimation: ; 0x020B1F80 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -341,19 +335,18 @@ FUN_020B1F80: ; 0x020B1F80 add r0, r5, #0x38 mov r1, #0x1 str r2, [r5, #0x34] - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl mov r0, r5 - bl FUN_020B04C0 + bl NNS_G2dInitAnimCtrl mov r0, r5 mov r1, r4 - bl FUN_020B1EE4 + bl NNS_G2dSetCellAnimationSequence add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B1F80 + arm_func_end NNS_G2dInitCellAnimation - ; _end - arm_func_start FUN_020B1FC4 -FUN_020B1FC4: ; 0x020B1FC4 + arm_func_start ApplyCurrentAnimResult_ +ApplyCurrentAnimResult_: ; 0x020B1FC4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -362,19 +355,19 @@ FUN_020B1FC4: ; 0x020B1FC4 cmp r1, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r7,pc} - bl FUN_020B06E0 + bl NNS_G2dGetAnimCtrlCurrentElement mov r4, r0 ldr r7, [r5, #0x30] ldrh r1, [r4, #0x0] mov r0, r7 - bl FUN_020AFE8C + bl NNS_G2dGetCellDataByIdx str r0, [r5, #0x2c] ldr r1, [r5, #0x18] add r0, r5, #0x38 ldr r2, [r1, #0x4] mov r1, #0x1 and r6, r2, #0xff - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl cmp r6, #0x0 beq _020B2068 cmp r6, #0x2 @@ -382,20 +375,20 @@ FUN_020B1FC4: ; 0x020B1FC4 ldrsh r1, [r4, #0x4] ldrsh r2, [r4, #0x6] add r0, r5, #0x38 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans b _020B2068 _020B203C: ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r5, #0x38 - bl FUN_020B1A78 + bl NNSi_G2dSrtcSetSRTScale ldrh r1, [r4, #0x2] add r0, r5, #0x38 - bl FUN_020B1A98 + bl NNSi_G2dSrtcSetSRTRotZ ldrsh r1, [r4, #0xc] ldrsh r2, [r4, #0xe] add r0, r5, #0x38 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans _020B2068: ldr r2, [r7, #0xc] cmp r2, #0x0 @@ -418,8 +411,7 @@ _020B2068: add r3, r2, r1, lsl #0x3 ldr r1, [r2, r1, lsl #0x3] ldr r2, [r3, #0x4] - bl FUN_020B4400 + bl NNS_G2dSetCellTransferStateRequested add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B1FC4 - + arm_func_end ApplyCurrentAnimResult_ diff --git a/arm9/asm/NNS_G2D_g2d_celltransfe.s b/arm9/asm/NNS_G2D_g2d_celltransfe.s index f7c8cec69..0e41bdbaa 100644 --- a/arm9/asm/NNS_G2D_g2d_celltransfe.s +++ b/arm9/asm/NNS_G2D_g2d_celltransfe.s @@ -3,41 +3,36 @@ .section .rodata - ; cvtTbl$7926 - .global UNK_020FF8C4 -UNK_020FF8C4: ; 0x020FF8C4 + .global cvtTbl$7926 +cvtTbl$7926: ; 0x020FF8C4 .byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00 - ; static const in function + .section .bss - ; s_pTaskRegisterFunc - .global UNK_021CECFC -UNK_021CECFC: ; 0x021CECFC + .global s_pTaskRegisterFunc +s_pTaskRegisterFunc: ; 0x021CECFC .space 0x4 - ; s_numCellState - .global UNK_021CED00 -UNK_021CED00: ; 0x021CED00 + .global s_numCellState +s_numCellState: ; 0x021CED00 .space 0x4 - ; s_pCellStateArray - .global UNK_021CED04 -UNK_021CED04: ; 0x021CED04 + .global s_pCellStateArray +s_pCellStateArray: ; 0x021CED04 .space 0x4 .section .text - ; NNS_G2dFreeCellTransferStateHandle - arm_func_start FUN_020B4358 -FUN_020B4358: ; 0x020B4358 + arm_func_start NNS_G2dFreeCellTransferStateHandle +NNS_G2dFreeCellTransferStateHandle: ; 0x020B4358 stmdb sp!, {r4,lr} - ldr r2, _020B43A0 ; =UNK_021CED04 + ldr r2, _020B43A0 ; =s_pCellStateArray mov r1, #0x30 ldr r2, [r2, #0x0] mla r4, r0, r1, r2 mov r0, r4 - bl FUN_020B10CC + bl NNSi_G2dInitializeVRamLocation mov r0, #0x0 str r0, [r4, #0xc] str r0, [r4, #0x10] @@ -50,18 +45,17 @@ FUN_020B4358: ; 0x020B4358 str r0, [r4, #0x2c] ldmia sp!, {r4,pc} .balign 4 -_020B43A0: .word UNK_021CED04 - arm_func_end FUN_020B4358 +_020B43A0: .word s_pCellStateArray + arm_func_end NNS_G2dFreeCellTransferStateHandle - ; NNS_G2dGetNewCellTransferStateHandle - arm_func_start FUN_020B43A4 -FUN_020B43A4: ; 0x020B43A4 - ldr r1, _020B43F8 ; =UNK_021CED00 + arm_func_start NNS_G2dGetNewCellTransferStateHandle +NNS_G2dGetNewCellTransferStateHandle: ; 0x020B43A4 + ldr r1, _020B43F8 ; =s_numCellState mov r0, #0x0 ldr r3, [r1, #0x0] cmp r3, #0x0 bls _020B43F0 - ldr r1, _020B43FC ; =UNK_021CED04 + ldr r1, _020B43FC ; =s_pCellStateArray ldr r2, [r1, #0x0] mov r12, r2 _020B43C4: @@ -80,34 +74,32 @@ _020B43F0: mvn r0, #0x0 bx lr .balign 4 -_020B43F8: .word UNK_021CED00 -_020B43FC: .word UNK_021CED04 - arm_func_end FUN_020B43A4 +_020B43F8: .word s_numCellState +_020B43FC: .word s_pCellStateArray + arm_func_end NNS_G2dGetNewCellTransferStateHandle - ; _end - arm_func_start FUN_020B4400 -FUN_020B4400: ; 0x020B4400 + arm_func_start NNS_G2dSetCellTransferStateRequested +NNS_G2dSetCellTransferStateRequested: ; 0x020B4400 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 mov r4, r2 - bl FUN_020B469C + bl NNSi_G2dGetCellTransferState mvn r1, #0x0 str r1, [r0, #0x24] str r5, [r0, #0x28] str r4, [r0, #0x2c] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B4400 + arm_func_end NNS_G2dSetCellTransferStateRequested - ; NNS_G2dUpdateCellTransferStateManager - arm_func_start FUN_020B442C -FUN_020B442C: ; 0x020B442C + arm_func_start NNS_G2dUpdateCellTransferStateManager +NNS_G2dUpdateCellTransferStateManager: ; 0x020B442C stmdb sp!, {r4-r11,lr} sub sp, sp, #0x14 mov r0, #0x0 str r0, [sp, #0x0] - ldr r0, _020B4558 ; =UNK_021CED00 + ldr r0, _020B4558 ; =s_numCellState ldr r0, [r0, #0x0] cmp r0, #0x0 addls sp, sp, #0x14 @@ -119,7 +111,7 @@ FUN_020B442C: ; 0x020B442C str r0, [sp, #0x8] str r0, [sp, #0xc] _020B4468: - ldr r0, _020B455C ; =UNK_021CED04 + ldr r0, _020B455C ; =s_pCellStateArray ldr r1, [r0, #0x0] ldr r0, [sp, #0x4] add r8, r1, r0 @@ -143,17 +135,17 @@ _020B4498: _020B44B8: cmp r1, #0x0 beq _020B4514 - ldr r0, _020B4560 ; =UNK_020FF8C4 + ldr r0, _020B4560 ; =cvtTbl$7926 cmp r9, #0x0 ldr r7, [r0, r9, lsl #0x2] ldreq r10, [r8, #0x14] mov r0, r8 mov r1, r9 ldrne r10, [r8, #0x10] - bl FUN_020B10BC + bl NNSi_G2dGetVramLocation mov r1, r0 mov r0, r7 - ldr r7, _020B4564 ; =UNK_021CECFC + ldr r7, _020B4564 ; =s_pTaskRegisterFunc ldr r2, [r8, #0x28] ldr r3, [r8, #0x2c] ldr r7, [r7, #0x0] @@ -172,7 +164,7 @@ _020B4520: ldr r0, [sp, #0xc] str r0, [r8, #0x20] _020B4528: - ldr r0, _020B4558 ; =UNK_021CED00 + ldr r0, _020B4558 ; =s_numCellState ldr r1, [r0, #0x0] ldr r0, [sp, #0x0] add r0, r0, #0x1 @@ -185,21 +177,20 @@ _020B4528: add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} .balign 4 -_020B4558: .word UNK_021CED00 -_020B455C: .word UNK_021CED04 -_020B4560: .word UNK_020FF8C4 -_020B4564: .word UNK_021CECFC - arm_func_end FUN_020B442C +_020B4558: .word s_numCellState +_020B455C: .word s_pCellStateArray +_020B4560: .word cvtTbl$7926 +_020B4564: .word s_pTaskRegisterFunc + arm_func_end NNS_G2dUpdateCellTransferStateManager - ; NNS_G2dInitCellTransferStateManager - arm_func_start FUN_020B4568 -FUN_020B4568: ; 0x020B4568 + arm_func_start NNS_G2dInitCellTransferStateManager +NNS_G2dInitCellTransferStateManager: ; 0x020B4568 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr ip, _020B45E4 ; =UNK_021CECFC + ldr ip, _020B45E4 ; =s_pTaskRegisterFunc movs r6, r1 - ldr r1, _020B45E8 ; =UNK_021CED00 - ldr r3, _020B45EC ; =UNK_021CED04 + ldr r1, _020B45E8 ; =s_numCellState + ldr r3, _020B45EC ; =s_pCellStateArray mov r7, r0 str r2, [r12, #0x0] mov r5, #0x0 @@ -210,7 +201,7 @@ FUN_020B4568: ; 0x020B4568 mov r4, r5 _020B45A0: mov r0, r7 - bl FUN_020B10CC + bl NNSi_G2dInitializeVRamLocation str r4, [r7, #0xc] str r4, [r7, #0x10] str r4, [r7, #0x14] @@ -227,17 +218,16 @@ _020B45A0: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B45E4: .word UNK_021CECFC -_020B45E8: .word UNK_021CED00 -_020B45EC: .word UNK_021CED04 - arm_func_end FUN_020B4568 +_020B45E4: .word s_pTaskRegisterFunc +_020B45E8: .word s_numCellState +_020B45EC: .word s_pCellStateArray + arm_func_end NNS_G2dInitCellTransferStateManager - ; NNSi_G2dInitCellTransferState - arm_func_start FUN_020B45F0 -FUN_020B45F0: ; 0x020B45F0 + arm_func_start NNSi_G2dInitCellTransferState +NNSi_G2dInitCellTransferState: ; 0x020B45F0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr ip, _020B4698 ; =UNK_021CED04 + ldr ip, _020B4698 ; =s_pCellStateArray mov r4, #0x30 ldr r12, [r12, #0x0] mov r7, r1 @@ -245,14 +235,14 @@ FUN_020B45F0: ; 0x020B45F0 mov r0, r4 mov r6, r2 mov r5, r3 - bl FUN_020B10CC + bl NNSi_G2dInitializeVRamLocation mvn r0, #0x0 cmp r7, r0 beq _020B4638 mov r0, r4 mov r2, r7 mov r1, #0x0 - bl FUN_020B10C4 + bl NNSi_G2dSetVramLocation _020B4638: mvn r0, #0x0 cmp r6, r0 @@ -260,7 +250,7 @@ _020B4638: mov r0, r4 mov r2, r6 mov r1, #0x1 - bl FUN_020B10C4 + bl NNSi_G2dSetVramLocation _020B4654: mvn r0, #0x0 cmp r5, r0 @@ -268,7 +258,7 @@ _020B4654: mov r0, r4 mov r2, r5 mov r1, #0x2 - bl FUN_020B10C4 + bl NNSi_G2dSetVramLocation _020B4670: ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] @@ -281,18 +271,16 @@ _020B4670: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B4698: .word UNK_021CED04 - arm_func_end FUN_020B45F0 +_020B4698: .word s_pCellStateArray + arm_func_end NNSi_G2dInitCellTransferState - ; NNSi_G2dGetCellTransferState - arm_func_start FUN_020B469C -FUN_020B469C: ; 0x020B469C - ldr r2, _020B46B0 ; =UNK_021CED04 + arm_func_start NNSi_G2dGetCellTransferState +NNSi_G2dGetCellTransferState: ; 0x020B469C + ldr r2, _020B46B0 ; =s_pCellStateArray mov r1, #0x30 ldr r2, [r2, #0x0] mla r0, r1, r0, r2 bx lr .balign 4 -_020B46B0: .word UNK_021CED04 - arm_func_end FUN_020B469C - +_020B46B0: .word s_pCellStateArray + arm_func_end NNSi_G2dGetCellTransferState diff --git a/arm9/asm/NNS_G2D_g2d_charcanvas.s b/arm9/asm/NNS_G2D_g2d_charcanvas.s index b21235e85..6f483596a 100644 --- a/arm9/asm/NNS_G2D_g2d_charcanvas.s +++ b/arm9/asm/NNS_G2D_g2d_charcanvas.s @@ -3,27 +3,22 @@ .section .rodata - ; objs$8221 - .global UNK_020FF970 -UNK_020FF970: ; 0x020FF970 + .global objs$8221 +objs$8221: ; 0x020FF970 .byte 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01 .byte 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x03, 0x03, 0x03 - ; static const in function - ; shape$8277 - .global UNK_020FF990 -UNK_020FF990: ; 0x020FF990 + .global shape$8277 +shape$8277: ; 0x020FF990 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0xC0 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xC0, 0x00, 0x00, 0x00, 0xC0 - ; static const in function .section .text - ; NNS_G2dArrangeOBJ1D - arm_func_start FUN_020B5E50 -FUN_020B5E50: ; 0x020B5E50 + arm_func_start NNS_G2dArrangeOBJ1D +NNS_G2dArrangeOBJ1D: ; 0x020B5E50 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x3c mov r7, r0 @@ -48,7 +43,7 @@ FUN_020B5E50: ; 0x020B5E50 movge r1, #0x3 clzlt r0, r0 rsblt r1, r0, #0x1f - ldr r0, _020B6170 ; =UNK_020FF970 + ldr r0, _020B6170 ; =objs$8221 mvn r3, #0x0 add r1, r0, r1, lsl #0x3 add r0, r1, r2, lsl #0x1 @@ -69,7 +64,7 @@ FUN_020B5E50: ; 0x020B5E50 strne r1, [sp, #0x24] mov r1, #0x0 str r1, [sp, #0x28] - bl FUN_020B704C + bl OBJSizeToShape ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] mov r10, r1, asr r4 @@ -155,7 +150,7 @@ _020B5FE8: add r3, r11, r1, lsl #0x3 mov r0, r7 mov r1, r4 - bl FUN_020B5E50 + bl NNS_G2dArrangeOBJ1D ldr r1, [sp, #0x24] add r7, r7, r0, lsl #0x3 mul r2, r1, r4 @@ -186,7 +181,7 @@ _020B6078: str r1, [sp, #0xc] ldr r1, [sp, #0x1c] mov r2, r4 - bl FUN_020B5E50 + bl NNS_G2dArrangeOBJ1D ldr r2, [sp, #0x24] ldr r1, [sp, #0x1c] add r7, r7, r0, lsl #0x3 @@ -223,7 +218,7 @@ _020B60F0: mov r0, r7 add r3, r11, r3, lsl #0x3 str r4, [sp, #0xc] - bl FUN_020B5E50 + bl NNS_G2dArrangeOBJ1D ldr r1, [sp, #0x28] add r0, r1, r0 str r0, [sp, #0x28] @@ -232,15 +227,14 @@ _020B6164: add sp, sp, #0x3c ldmia sp!, {r4-r11,pc} .balign 4 -_020B6170: .word UNK_020FF970 +_020B6170: .word objs$8221 _020B6174: .word 0x000001FF _020B6178: .word 0xFE00FF00 _020B617C: .word 0x3FFF3FFF - arm_func_end FUN_020B5E50 + arm_func_end NNS_G2dArrangeOBJ1D - ; _end - arm_func_start FUN_020B6180 -FUN_020B6180: ; 0x020B6180 + arm_func_start NNSi_G2dCalcRequiredOBJ +NNSi_G2dCalcRequiredOBJ: ; 0x020B6180 stmdb sp!, {r4-r6,lr} mov r3, r0, lsr #0x3 mov r6, r1, lsr #0x3 @@ -264,11 +258,10 @@ FUN_020B6180: ; 0x020B6180 add r0, lr, r0, lsr #0x2 mla r0, r1, r0, r12 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B6180 + arm_func_end NNSi_G2dCalcRequiredOBJ - ; _end - arm_func_start FUN_020B61DC -FUN_020B61DC: ; 0x020B61DC + arm_func_start NNS_G2dMapScrToChar256x16Pltt +NNS_G2dMapScrToChar256x16Pltt: ; 0x020B61DC stmdb sp!, {r4-r8,lr} ldr r12, [sp, #0x1c] ldr r8, [sp, #0x18] @@ -297,11 +290,10 @@ _020B622C: add r0, r0, lr blt _020B6204 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B61DC + arm_func_end NNS_G2dMapScrToChar256x16Pltt - ; _end - arm_func_start FUN_020B6240 -FUN_020B6240: ; 0x020B6240 + arm_func_start NNS_G2dMapScrToCharText +NNS_G2dMapScrToCharText: ; 0x020B6240 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x8 ldr r5, [sp, #0x24] @@ -315,7 +307,7 @@ FUN_020B6240: ; 0x020B6240 mov r3, r5 add r0, r0, r4, lsl #0x1 str lr, [sp, #0x4] - bl FUN_020B61DC + bl NNS_G2dMapScrToChar256x16Pltt add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} _020B6280: @@ -352,11 +344,10 @@ _020B62E4: blt _020B62A0 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B6240 + arm_func_end NNS_G2dMapScrToCharText - ; NNS_G2dCharCanvasInitForOBJ1D - arm_func_start FUN_020B62F8 -FUN_020B62F8: ; 0x020B62F8 + arm_func_start NNS_G2dCharCanvasInitForOBJ1D +NNS_G2dCharCanvasInitForOBJ1D: ; 0x020B62F8 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x18 cmp r2, #0x8 @@ -369,16 +360,16 @@ FUN_020B62F8: ; 0x020B62F8 movge r6, #0x3 clzlt r4, r4 rsblt r6, r4, #0x1f - ldr r4, _020B6378 ; =UNK_020FF970 + ldr r4, _020B6378 ; =objs$8221 ldr r5, [sp, #0x28] add r4, r4, r6, lsl #0x3 ldrb r6, [r4, r12, lsl #0x1] add r12, r4, r12, lsl #0x1 - ldr r4, _020B637C ; =FUN_020B6908 + ldr r4, _020B637C ; =DrawGlyph1D strb r6, [sp, #0x14] ldrb r6, [r12, #0x1] - ldr lr, _020B6380 ; =FUN_020B68AC - ldr ip, _020B6384 ; =FUN_020B64C0 + ldr lr, _020B6380 ; =ClearContinuous + ldr ip, _020B6384 ; =ClearArea1D strb r6, [sp, #0x15] str r5, [sp, #0x0] str r4, [sp, #0x4] @@ -386,42 +377,40 @@ FUN_020B62F8: ; 0x020B62F8 str r12, [sp, #0xc] ldr r12, [sp, #0x14] str r12, [sp, #0x10] - bl FUN_020B6488 + bl InitCharCanvas add sp, sp, #0x18 ldmia sp!, {r4-r6,pc} .balign 4 -_020B6378: .word UNK_020FF970 -_020B637C: .word FUN_020B6908 -_020B6380: .word FUN_020B68AC -_020B6384: .word FUN_020B64C0 - arm_func_end FUN_020B62F8 +_020B6378: .word objs$8221 +_020B637C: .word DrawGlyph1D +_020B6380: .word ClearContinuous +_020B6384: .word ClearArea1D + arm_func_end NNS_G2dCharCanvasInitForOBJ1D - ; NNS_G2dCharCanvasInitForBG - arm_func_start FUN_020B6388 -FUN_020B6388: ; 0x020B6388 + arm_func_start NNS_G2dCharCanvasInitForBG +NNS_G2dCharCanvasInitForBG: ; 0x020B6388 stmdb sp!, {lr} sub sp, sp, #0x14 ldr lr, [sp, #0x18] - ldr ip, _020B63C0 ; =FUN_020B6B10 + ldr ip, _020B63C0 ; =DrawGlyphLine str lr, [sp, #0x0] - ldr lr, _020B63C4 ; =FUN_020B68AC + ldr lr, _020B63C4 ; =ClearContinuous str r12, [sp, #0x4] - ldr ip, _020B63C8 ; =FUN_020B66D4 + ldr ip, _020B63C8 ; =ClearAreaLine str lr, [sp, #0x8] str r12, [sp, #0xc] str r2, [sp, #0x10] - bl FUN_020B6488 + bl InitCharCanvas add sp, sp, #0x14 ldmia sp!, {pc} .balign 4 -_020B63C0: .word FUN_020B6B10 -_020B63C4: .word FUN_020B68AC -_020B63C8: .word FUN_020B66D4 - arm_func_end FUN_020B6388 +_020B63C0: .word DrawGlyphLine +_020B63C4: .word ClearContinuous +_020B63C8: .word ClearAreaLine + arm_func_end NNS_G2dCharCanvasInitForBG - ; NNS_G2dCharCanvasDrawChar - arm_func_start FUN_020B63CC -FUN_020B63CC: ; 0x020B63CC + arm_func_start NNS_G2dCharCanvasDrawChar +NNS_G2dCharCanvasDrawChar: ; 0x020B63CC stmdb sp!, {r4-r8,lr} sub sp, sp, #0x10 mov r7, r1 @@ -430,7 +419,7 @@ FUN_020B63CC: ; 0x020B63CC mov r0, r7 mov r6, r2 mov r5, r3 - bl FUN_020B5CE4 + bl NNS_G2dFontFindGlyphIndex ldr r1, _020B6484 ; =0x0000FFFF mov r4, r0 cmp r4, r1 @@ -438,7 +427,7 @@ FUN_020B63CC: ; 0x020B63CC ldreqh r4, [r0, #0x2] mov r0, r7 mov r1, r4 - bl FUN_020B5C88 + bl NNS_G2dFontGetCharWidthsFromIndex str r0, [sp, #0x8] ldr r0, [r7, #0x0] ldr r2, [sp, #0x28] @@ -470,11 +459,10 @@ FUN_020B63CC: ; 0x020B63CC ldmia sp!, {r4-r8,pc} .balign 4 _020B6484: .word 0x0000FFFF - arm_func_end FUN_020B63CC + arm_func_end NNS_G2dCharCanvasDrawChar - ; _end - arm_func_start FUN_020B6488 -FUN_020B6488: ; 0x020B6488 + arm_func_start InitCharCanvas +InitCharCanvas: ; 0x020B6488 str r2, [r0, #0x4] ldr r2, [sp, #0x0] str r3, [r0, #0x8] @@ -489,11 +477,10 @@ FUN_020B6488: ; 0x020B6488 str r2, [r0, #0x1c] str r1, [r0, #0x10] bx lr - arm_func_end FUN_020B6488 + arm_func_end InitCharCanvas - ; _end - arm_func_start FUN_020B64C0 -FUN_020B64C0: ; 0x020B64C0 + arm_func_start ClearArea1D +ClearArea1D: ; 0x020B64C0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x54 ldrb r4, [r0, #0xc] @@ -597,7 +584,7 @@ _020B6630: str r0, [sp, #0x4] mov r0, r7 mov r1, r6 - bl FUN_020B7068 + bl GetCharIndex1D ldr r2, [sp, #0x1c] cmp r8, r10 sublt r1, r10, r8 @@ -616,7 +603,7 @@ _020B6630: ldr r2, [sp, #0x28] mla r0, r12, r0, r2 mov r2, r9 - bl FUN_020B6F18 + bl ClearChar add r8, r8, #0x8 add r7, r7, #0x1 cmp r8, r5 @@ -631,11 +618,10 @@ _020B66B0: blt _020B65E4 add sp, sp, #0x54 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B64C0 + arm_func_end ClearArea1D - ; _end - arm_func_start FUN_020B66D4 -FUN_020B66D4: ; 0x020B66D4 + arm_func_start ClearAreaLine +ClearAreaLine: ; 0x020B66D4 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x3c ldrb r4, [r0, #0xc] @@ -739,7 +725,7 @@ _020B6828: mov r2, r9 str r0, [sp, #0x8] mov r0, r6 - bl FUN_020B6F18 + bl ClearChar ldr r0, [sp, #0x30] add r8, r8, #0x8 add r6, r6, r0 @@ -758,11 +744,10 @@ _020B687C: blt _020B67E0 add sp, sp, #0x3c ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B66D4 + arm_func_end ClearAreaLine - ; _end - arm_func_start FUN_020B68AC -FUN_020B68AC: ; 0x020B68AC + arm_func_start ClearContinuous +ClearContinuous: ; 0x020B68AC stmdb sp!, {lr} sub sp, sp, #0x4 mov r3, r0 @@ -786,11 +771,10 @@ FUN_020B68AC: ; 0x020B68AC bl MIi_CpuClearFast add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020B68AC + arm_func_end ClearContinuous - ; _end - arm_func_start FUN_020B6908 -FUN_020B6908: ; 0x020B6908 + arm_func_start DrawGlyph1D +DrawGlyph1D: ; 0x020B6908 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4c ldr r7, [sp, #0x74] @@ -904,12 +888,12 @@ _020B6AAC: mov r0, r7 mov r1, r10 str r4, [sp, #0x4] - bl FUN_020B7068 + bl GetCharIndex1D mla r1, r0, r5, r6 add r0, sp, #0x24 str r9, [sp, #0x2c] str r1, [sp, #0x24] - bl FUN_020B6CAC + bl LetterChar sub r9, r9, #0x8 add r7, r7, #0x1 cmp r9, r8 @@ -924,11 +908,10 @@ _020B6AEC: bgt _020B6A90 add sp, sp, #0x4c ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6908 + arm_func_end DrawGlyph1D - ; _end - arm_func_start FUN_020B6B10 -FUN_020B6B10: ; 0x020B6B10 + arm_func_start DrawGlyphLine +DrawGlyphLine: ; 0x020B6B10 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x2c ldr r4, [sp, #0x54] @@ -1022,7 +1005,7 @@ _020B6C70: mov r0, r4 str r6, [sp, #0x4] str r8, [sp, #0xc] - bl FUN_020B6CAC + bl LetterChar sub r8, r8, #0x8 cmp r8, r7 add r6, r6, r5 @@ -1035,11 +1018,10 @@ _020B6C90: bgt _020B6C60 add sp, sp, #0x2c ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6B10 + arm_func_end DrawGlyphLine - ; _end - arm_func_start FUN_020B6CAC -FUN_020B6CAC: ; 0x020B6CAC + arm_func_start LetterChar +LetterChar: ; 0x020B6CAC stmdb sp!, {r4-r11,lr} sub sp, sp, #0x34 ldr r5, [r0, #0x8] @@ -1108,7 +1090,7 @@ _020B6D88: strb r0, [sp, #0x28] strb r0, [sp, #0x29] mov r0, r9 - bl FUN_020B76B0 + bl NNSi_G2dBitReaderRead ldr r8, [sp, #0x0] mov r0, r8 cmp r0, r10 @@ -1116,7 +1098,7 @@ _020B6D88: _020B6DCC: mov r0, r9 mov r1, r6 - bl FUN_020B76B0 + bl NNSi_G2dBitReaderRead cmp r0, #0x0 mvnne r1, r4, lsl r8 addne r0, r7, r0 @@ -1165,7 +1147,7 @@ _020B6E58: strb r0, [sp, #0x30] strb r0, [sp, #0x31] add r0, sp, #0x2c - bl FUN_020B76B0 + bl NNSi_G2dBitReaderRead ldr r0, [sp, #0x0] cmp r0, r10 mov r5, r0 @@ -1173,7 +1155,7 @@ _020B6E58: _020B6EA0: add r0, sp, #0x2c mov r1, r6 - bl FUN_020B76B0 + bl NNSi_G2dBitReaderRead cmp r0, #0x0 beq _020B6EDC cmp r5, #0x20 @@ -1203,11 +1185,10 @@ _020B6EE8: blo _020B6E58 add sp, sp, #0x34 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B6CAC + arm_func_end LetterChar - ; _end - arm_func_start FUN_020B6F18 -FUN_020B6F18: ; 0x020B6F18 + arm_func_start ClearChar +ClearChar: ; 0x020B6F18 stmdb sp!, {r4-r6,lr} mov lr, r0 cmp r3, #0x8 @@ -1289,27 +1270,25 @@ _020B701C: cmp r5, r4 blo _020B701C ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B6F18 + arm_func_end ClearChar - ; OBJSizeToShape - arm_func_start FUN_020B704C -FUN_020B704C: ; 0x020B704C + arm_func_start OBJSizeToShape +OBJSizeToShape: ; 0x020B704C ldrb r3, [r0, #0x1] - ldr r2, _020B7064 ; =UNK_020FF990 + ldr r2, _020B7064 ; =shape$8277 ldrb r1, [r0, #0x0] add r0, r2, r3, lsl #0x4 ldr r0, [r0, r1, lsl #0x2] bx lr .balign 4 -_020B7064: .word UNK_020FF990 - arm_func_end FUN_020B704C +_020B7064: .word shape$8277 + arm_func_end OBJSizeToShape - ; GetCharIndex1D - arm_func_start FUN_020B7068 -FUN_020B7068: ; 0x020B7068 + arm_func_start GetCharIndex1D +GetCharIndex1D: ; 0x020B7068 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 - ldr fp, _020B7164 ; =UNK_020FF970 + ldr fp, _020B7164 ; =objs$8221 mov r9, #0x0 mov r10, #0x3 mvn r7, #0x0 @@ -1374,6 +1353,5 @@ _020B7118: add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} .balign 4 -_020B7164: .word UNK_020FF970 - arm_func_end FUN_020B7068 - +_020B7164: .word objs$8221 + arm_func_end GetCharIndex1D diff --git a/arm9/asm/NNS_G2D_g2d_font.s b/arm9/asm/NNS_G2D_g2d_font.s index acb0abe81..162fe423c 100644 --- a/arm9/asm/NNS_G2D_g2d_font.s +++ b/arm9/asm/NNS_G2D_g2d_font.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B5ABC -FUN_020B5ABC: ; 0x020B5ABC + arm_func_start NNSi_G2dFontGetTextRect +NNSi_G2dFontGetTextRect: ; 0x020B5ABC stmdb sp!, {r4-r9,lr} sub sp, sp, #0xc add r5, sp, #0x0 @@ -25,7 +24,7 @@ _020B5AF8: mov r0, r9 mov r1, r8 mov r3, r6 - bl FUN_020B5BC8 + bl NNSi_G2dFontGetStringWidth ldr r1, [sp, #0x0] ldr r2, [sp, #0x28] cmp r0, r1 @@ -46,11 +45,10 @@ _020B5B24: str r1, [r5, #0x4] add sp, sp, #0xc ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B5ABC + arm_func_end NNSi_G2dFontGetTextRect - ; _end - arm_func_start FUN_020B5B54 -FUN_020B5B54: ; 0x020B5B54 + arm_func_start NNSi_G2dFontGetTextHeight +NNSi_G2dFontGetTextHeight: ; 0x020B5B54 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x10 str r2, [sp, #0x0] @@ -82,11 +80,10 @@ _020B5BAC: sub r0, r0, r5 add sp, sp, #0x10 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B5B54 + arm_func_end NNSi_G2dFontGetTextHeight - ; NNSi_G2dFontGetStringWidth - arm_func_start FUN_020B5BC8 -FUN_020B5BC8: ; 0x020B5BC8 + arm_func_start NNSi_G2dFontGetStringWidth +NNSi_G2dFontGetStringWidth: ; 0x020B5BC8 stmdb sp!, {r4-r10,lr} sub sp, sp, #0x8 mov r8, r0 @@ -105,13 +102,13 @@ _020B5C00: cmp r1, #0xa beq _020B5C58 mov r0, r8 - bl FUN_020B5CE4 + bl NNS_G2dFontFindGlyphIndex mov r1, r0 cmp r1, r9 ldreq r0, [r8, #0x0] ldreqh r1, [r0, #0x2] mov r0, r8 - bl FUN_020B5C88 + bl NNS_G2dFontGetCharWidthsFromIndex ldrh r1, [r8, #0x8] cmp r1, #0x0 ldrnesb r1, [r0, #0x0] @@ -139,11 +136,10 @@ _020B5C70: ldmia sp!, {r4-r10,pc} .balign 4 _020B5C84: .word 0x0000FFFF - arm_func_end FUN_020B5BC8 + arm_func_end NNSi_G2dFontGetStringWidth - ; _end - arm_func_start FUN_020B5C88 -FUN_020B5C88: ; 0x020B5C88 + arm_func_start NNS_G2dFontGetCharWidthsFromIndex +NNS_G2dFontGetCharWidthsFromIndex: ; 0x020B5C88 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x0] @@ -170,11 +166,10 @@ _020B5CD8: add r0, r3, #0x4 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020B5C88 + arm_func_end NNS_G2dFontGetCharWidthsFromIndex - ; NNS_G2dFontFindGlyphIndex - arm_func_start FUN_020B5CE4 -FUN_020B5CE4: ; 0x020B5CE4 + arm_func_start NNS_G2dFontFindGlyphIndex +NNS_G2dFontFindGlyphIndex: ; 0x020B5CE4 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r0, [r0, #0x0] @@ -188,7 +183,7 @@ _020B5CFC: ldrh r2, [r0, #0x2] cmp r1, r2 bhi _020B5D20 - bl FUN_020B5D7C + bl GetGlyphIndex add sp, sp, #0x4 ldmia sp!, {pc} _020B5D20: @@ -201,33 +196,31 @@ _020B5D2C: ldmia sp!, {pc} .balign 4 _020B5D38: .word 0x0000FFFF - arm_func_end FUN_020B5CE4 + arm_func_end NNS_G2dFontFindGlyphIndex - ; NNS_G2dFontInitUTF16 - arm_func_start FUN_020B5D3C -FUN_020B5D3C: ; 0x020B5D3C + arm_func_start NNS_G2dFontInitUTF16 +NNS_G2dFontInitUTF16: ; 0x020B5D3C stmdb sp!, {r4,lr} mov r4, r0 mov r0, r1 mov r1, r4 - bl FUN_020B7558 + bl NNSi_G2dGetUnpackedFont sub r0, r0, #0x1 strh r0, [r4, #0x8] ldrh r0, [r4, #0x8] cmp r0, #0x0 movne r1, #0x2 moveq r1, #0x3 - ldr r0, _020B5D78 ; =FUN_020B7718 + ldr r0, _020B5D78 ; =NNSi_G2dSplitCharUTF16 strh r1, [r4, #0xa] str r0, [r4, #0x4] ldmia sp!, {r4,pc} .balign 4 -_020B5D78: .word FUN_020B7718 - arm_func_end FUN_020B5D3C +_020B5D78: .word NNSi_G2dSplitCharUTF16 + arm_func_end NNS_G2dFontInitUTF16 - ; GetGlyphIndex - arm_func_start FUN_020B5D7C -FUN_020B5D7C: ; 0x020B5D7C + arm_func_start GetGlyphIndex +GetGlyphIndex: ; 0x020B5D7C stmdb sp!, {lr} sub sp, sp, #0x4 ldrh r3, [r0, #0x4] @@ -288,5 +281,4 @@ _020B5E40: ldmia sp!, {pc} .balign 4 _020B5E4C: .word 0x0000FFFF - arm_func_end FUN_020B5D7C - + arm_func_end GetGlyphIndex diff --git a/arm9/asm/NNS_G2D_g2d_image.s b/arm9/asm/NNS_G2D_g2d_image.s index 208994cc2..796da6c6f 100644 --- a/arm9/asm/NNS_G2D_g2d_image.s +++ b/arm9/asm/NNS_G2D_g2d_image.s @@ -3,23 +3,20 @@ .section .text - ; _end - arm_func_start FUN_020B10BC -FUN_020B10BC: ; 0x020B10BC + arm_func_start NNSi_G2dGetVramLocation +NNSi_G2dGetVramLocation: ; 0x020B10BC ldr r0, [r0, r1, lsl #0x2] bx lr - arm_func_end FUN_020B10BC + arm_func_end NNSi_G2dGetVramLocation - ; _end - arm_func_start FUN_020B10C4 -FUN_020B10C4: ; 0x020B10C4 + arm_func_start NNSi_G2dSetVramLocation +NNSi_G2dSetVramLocation: ; 0x020B10C4 str r2, [r0, r1, lsl #0x2] bx lr - arm_func_end FUN_020B10C4 + arm_func_end NNSi_G2dSetVramLocation - ; _end - arm_func_start FUN_020B10CC -FUN_020B10CC: ; 0x020B10CC + arm_func_start NNSi_G2dInitializeVRamLocation +NNSi_G2dInitializeVRamLocation: ; 0x020B10CC mov r2, #0x0 mvn r1, #0x0 _020B10D4: @@ -28,11 +25,10 @@ _020B10D4: cmp r2, #0x3 blt _020B10D4 bx lr - arm_func_end FUN_020B10CC + arm_func_end NNSi_G2dInitializeVRamLocation - ; _end - arm_func_start FUN_020B10E8 -FUN_020B10E8: ; 0x020B10E8 + arm_func_start NNS_G2dLoadPaletteEx +NNS_G2dLoadPaletteEx: ; 0x020B10E8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r10, r0 @@ -124,14 +120,13 @@ _020B1210: mov r1, r8 mov r2, r11 str r4, [r3, #0x4] - bl FUN_020B19D0 + bl NNS_G2dSetImagePaletteLocation add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B10E8 + arm_func_end NNS_G2dLoadPaletteEx - ; _end - arm_func_start FUN_020B1240 -FUN_020B1240: ; 0x020B1240 + arm_func_start NNS_G2dLoadPalette +NNS_G2dLoadPalette: ; 0x020B1240 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 mov r9, r0 @@ -199,14 +194,13 @@ _020B1318: mov r1, r7 mov r2, r8 str r3, [r6, #0x4] - bl FUN_020B19D0 + bl NNS_G2dSetImagePaletteLocation add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B1240 + arm_func_end NNS_G2dLoadPalette - ; NNS_G2dLoadImageVramTransfer - arm_func_start FUN_020B1340 -FUN_020B1340: ; 0x020B1340 + arm_func_start NNS_G2dLoadImageVramTransfer +NNS_G2dLoadImageVramTransfer: ; 0x020B1340 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 @@ -349,17 +343,16 @@ _020B14E8: mov r1, r5 mov r2, r6 str r3, [r4, #0x20] - bl FUN_020B1A1C + bl NNS_G2dSetImageLocation add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 _020B1520: .word 0xFFCFFFEF _020B1524: .word 0x04001000 - arm_func_end FUN_020B1340 + arm_func_end NNS_G2dLoadImageVramTransfer - ; NNS_G2dLoadImage2DMapping - arm_func_start FUN_020B1528 -FUN_020B1528: ; 0x020B1528 + arm_func_start NNS_G2dLoadImage2DMapping +NNS_G2dLoadImage2DMapping: ; 0x020B1528 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 @@ -528,17 +521,16 @@ _020B1728: mov r1, r5 mov r2, r6 str r3, [r4, #0x20] - bl FUN_020B1A1C + bl NNS_G2dSetImageLocation add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 _020B1760: .word 0xFFCFFFEF _020B1764: .word 0x04001000 - arm_func_end FUN_020B1528 + arm_func_end NNS_G2dLoadImage2DMapping - ; NNS_G2dLoadImage1DMapping - arm_func_start FUN_020B1768 -FUN_020B1768: ; 0x020B1768 + arm_func_start NNS_G2dLoadImage1DMapping +NNS_G2dLoadImage1DMapping: ; 0x020B1768 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 @@ -707,17 +699,16 @@ _020B1968: mov r1, r5 mov r2, r6 str r3, [r4, #0x20] - bl FUN_020B1A1C + bl NNS_G2dSetImageLocation add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 _020B19A0: .word 0xFFCFFFEF _020B19A4: .word 0x04001000 - arm_func_end FUN_020B1768 + arm_func_end NNS_G2dLoadImage1DMapping - ; _end - arm_func_start FUN_020B19A8 -FUN_020B19A8: ; 0x020B19A8 + arm_func_start NNS_G2dIsImagePaletteReadyToUse +NNS_G2dIsImagePaletteReadyToUse: ; 0x020B19A8 add r0, r0, r1, lsl #0x2 ldr r1, [r0, #0x8] mvn r0, #0x0 @@ -725,27 +716,24 @@ FUN_020B19A8: ; 0x020B19A8 movne r0, #0x1 moveq r0, #0x0 bx lr - arm_func_end FUN_020B19A8 + arm_func_end NNS_G2dIsImagePaletteReadyToUse - ; _end - arm_func_start FUN_020B19C4 -FUN_020B19C4: ; 0x020B19C4 + arm_func_start NNS_G2dGetImagePaletteLocation +NNS_G2dGetImagePaletteLocation: ; 0x020B19C4 add r0, r0, r1, lsl #0x2 ldr r0, [r0, #0x8] bx lr - arm_func_end FUN_020B19C4 + arm_func_end NNS_G2dGetImagePaletteLocation - ; _end - arm_func_start FUN_020B19D0 -FUN_020B19D0: ; 0x020B19D0 + arm_func_start NNS_G2dSetImagePaletteLocation +NNS_G2dSetImagePaletteLocation: ; 0x020B19D0 add r0, r0, r1, lsl #0x2 str r2, [r0, #0x8] bx lr - arm_func_end FUN_020B19D0 + arm_func_end NNS_G2dSetImagePaletteLocation - ; _end - arm_func_start FUN_020B19DC -FUN_020B19DC: ; 0x020B19DC + arm_func_start NNS_G2dInitImagePaletteProxy +NNS_G2dInitImagePaletteProxy: ; 0x020B19DC mov r3, #0x0 mvn r2, #0x0 _020B19E4: @@ -755,36 +743,32 @@ _020B19E4: cmp r3, #0x3 blt _020B19E4 bx lr - arm_func_end FUN_020B19DC + arm_func_end NNS_G2dInitImagePaletteProxy - ; _end - arm_func_start FUN_020B19FC -FUN_020B19FC: ; 0x020B19FC + arm_func_start NNS_G2dIsImageReadyToUse +NNS_G2dIsImageReadyToUse: ; 0x020B19FC ldr r1, [r0, r1, lsl #0x2] mvn r0, #0x0 cmp r1, r0 movne r0, #0x1 moveq r0, #0x0 bx lr - arm_func_end FUN_020B19FC + arm_func_end NNS_G2dIsImageReadyToUse - ; _end - arm_func_start FUN_020B1A14 -FUN_020B1A14: ; 0x020B1A14 + arm_func_start NNS_G2dGetImageLocation +NNS_G2dGetImageLocation: ; 0x020B1A14 ldr r0, [r0, r1, lsl #0x2] bx lr - arm_func_end FUN_020B1A14 + arm_func_end NNS_G2dGetImageLocation - ; _end - arm_func_start FUN_020B1A1C -FUN_020B1A1C: ; 0x020B1A1C + arm_func_start NNS_G2dSetImageLocation +NNS_G2dSetImageLocation: ; 0x020B1A1C str r2, [r0, r1, lsl #0x2] bx lr - arm_func_end FUN_020B1A1C + arm_func_end NNS_G2dSetImageLocation - ; _end - arm_func_start FUN_020B1A24 -FUN_020B1A24: ; 0x020B1A24 + arm_func_start NNS_G2dInitImageProxy +NNS_G2dInitImageProxy: ; 0x020B1A24 mov r2, #0x0 mvn r1, #0x0 _020B1A2C: @@ -793,5 +777,4 @@ _020B1A2C: cmp r2, #0x3 blt _020B1A2C bx lr - arm_func_end FUN_020B1A24 - + arm_func_end NNS_G2dInitImageProxy diff --git a/arm9/asm/NNS_G2D_g2d_load.s b/arm9/asm/NNS_G2D_g2d_load.s index ea06ed9c9..340d8b175 100644 --- a/arm9/asm/NNS_G2D_g2d_load.s +++ b/arm9/asm/NNS_G2D_g2d_load.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B01B0 -FUN_020B01B0: ; 0x020B01B0 + arm_func_start NNSi_G2dUnpackUserExCellAttrBank +NNSi_G2dUnpackUserExCellAttrBank: ; 0x020B01B0 ldr r1, [r0, #0x4] mov r12, #0x0 add r1, r1, r0 @@ -25,11 +24,10 @@ _020B01CC: cmp r12, r2 blo _020B01CC bx lr - arm_func_end FUN_020B01B0 + arm_func_end NNSi_G2dUnpackUserExCellAttrBank - ; _end - arm_func_start FUN_020B01F8 -FUN_020B01F8: ; 0x020B01F8 + arm_func_start NNS_G2dFindBinaryBlock +NNS_G2dFindBinaryBlock: ; 0x020B01F8 stmdb sp!, {lr} sub sp, sp, #0x4 ldrh r2, [r0, #0xc] @@ -54,5 +52,4 @@ _020B0244: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020B01F8 - + arm_func_end NNS_G2dFindBinaryBlock diff --git a/arm9/asm/NNS_G2D_g2d_multicellan.s b/arm9/asm/NNS_G2D_g2d_multicellan.s index c6aaf3e6a..8e2206df0 100644 --- a/arm9/asm/NNS_G2D_g2d_multicellan.s +++ b/arm9/asm/NNS_G2D_g2d_multicellan.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B20C8 -FUN_020B20C8: ; 0x020B20C8 + arm_func_start NNS_G2dInitMCAnimation +NNS_G2dInitMCAnimation: ; 0x020B20C8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r6, #0x0 @@ -28,17 +27,17 @@ _020B210C: mul r4, r6, r0 ldr r1, [sp, #0x4] add r0, r10, r4 - bl FUN_020B1AD4 + bl NNSi_G2dInitializeNode mov r0, #0x54 mla r5, r6, r0, r9 ldr r1, [sp, #0x8] mov r0, r7 str r5, [r10, r4] - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx mov r1, r0 mov r0, r5 mov r2, r11 - bl FUN_020B1F80 + bl NNS_G2dInitCellAnimation add r0, r6, #0x1 mov r0, r0, lsl #0x10 mov r6, r0, lsr #0x10 @@ -46,44 +45,43 @@ _020B210C: blo _020B210C _020B215C: ldr r0, [sp, #0x0] - bl FUN_020B04C0 + bl NNS_G2dInitAnimCtrl ldr r0, [sp, #0x0] ldr r3, [sp, #0x38] ldr r2, [sp, #0x0] add r0, r0, #0x44 mov r1, #0x1 str r3, [r2, #0x40] - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl ldr r0, [sp, #0x0] mov r1, #0x0 strh r1, [r0, #0x2c] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B20C8 + arm_func_end NNS_G2dInitMCAnimation - ; _end - arm_func_start FUN_020B2194 -FUN_020B2194: ; 0x020B2194 + arm_func_start NNS_G2dSetMCAnimationCurrentFrame +NNS_G2dSetMCAnimationCurrentFrame: ; 0x020B2194 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 - bl FUN_020B0518 + bl NNS_G2dSetAnimCtrlCurrentFrame cmp r0, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r7,pc} mov r0, r7 - bl FUN_020B06E0 + bl NNS_G2dGetAnimCtrlCurrentElement mov r4, r0 ldrh r1, [r4, #0x0] ldr r0, [r7, #0x40] - bl FUN_020AFF34 + bl NNS_G2dGetMultiCellDataByIdx ldr r1, [r7, #0x18] mov r6, r0 ldr r1, [r1, #0x4] add r0, r7, #0x44 and r5, r1, #0xff mov r1, #0x1 - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl cmp r5, #0x0 beq _020B2234 cmp r5, #0x2 @@ -91,57 +89,56 @@ FUN_020B2194: ; 0x020B2194 ldrsh r1, [r4, #0x4] ldrsh r2, [r4, #0x6] add r0, r7, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans b _020B2234 _020B2208: ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r7, #0x44 - bl FUN_020B1A78 + bl NNSi_G2dSrtcSetSRTScale ldrh r1, [r4, #0x2] add r0, r7, #0x44 - bl FUN_020B1A98 + bl NNSi_G2dSrtcSetSRTRotZ ldrsh r1, [r4, #0xc] ldrsh r2, [r4, #0xe] add r0, r7, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans _020B2234: ldrh r2, [r7, #0x2c] mov r1, r6 add r0, r7, #0x30 - bl FUN_020B24E0 + bl SetMCDataToMCInstanceImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B2194 + arm_func_end NNS_G2dSetMCAnimationCurrentFrame - ; _end - arm_func_start FUN_020B224C -FUN_020B224C: ; 0x020B224C + arm_func_start NNS_G2dTickMCAnimation +NNS_G2dTickMCAnimation: ; 0x020B224C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r4, r0 ldr r2, [r4, #0x0] mov r6, r1 ldrh r5, [r2, #0x4] - bl FUN_020B0534 + bl NNS_G2dTickAnimCtrl cmp r0, #0x0 beq _020B2318 ldrh r1, [r4, #0x2c] mov r0, r4 add r1, r1, r5 strh r1, [r4, #0x2c] - bl FUN_020B06E0 + bl NNS_G2dGetAnimCtrlCurrentElement mov r5, r0 ldrh r1, [r5, #0x0] ldr r0, [r4, #0x40] - bl FUN_020AFF34 + bl NNS_G2dGetMultiCellDataByIdx ldr r1, [r4, #0x18] mov r7, r0 ldr r1, [r1, #0x4] add r0, r4, #0x44 and r6, r1, #0xff mov r1, #0x1 - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl cmp r6, #0x0 beq _020B2300 cmp r6, #0x2 @@ -149,38 +146,37 @@ FUN_020B224C: ; 0x020B224C ldrsh r1, [r5, #0x4] ldrsh r2, [r5, #0x6] add r0, r4, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans b _020B2300 _020B22D4: ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r4, #0x44 - bl FUN_020B1A78 + bl NNSi_G2dSrtcSetSRTScale ldrh r1, [r5, #0x2] add r0, r4, #0x44 - bl FUN_020B1A98 + bl NNSi_G2dSrtcSetSRTRotZ ldrsh r1, [r5, #0xc] ldrsh r2, [r5, #0xe] add r0, r4, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans _020B2300: ldrh r2, [r4, #0x2c] mov r1, r7 add r0, r4, #0x30 - bl FUN_020B24E0 + bl SetMCDataToMCInstanceImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} _020B2318: mov r1, r6 add r0, r4, #0x30 - bl FUN_020B232C + bl NNS_G2dTickMCInstance add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B224C + arm_func_end NNS_G2dTickMCAnimation - ; _end - arm_func_start FUN_020B232C -FUN_020B232C: ; 0x020B232C + arm_func_start NNS_G2dTickMCInstance +NNS_G2dTickMCInstance: ; 0x020B232C stmdb sp!, {r4-r8,lr} mov r7, r0 ldr r0, [r7, #0x8] @@ -197,7 +193,7 @@ FUN_020B232C: ; 0x020B232C _020B2360: mla r0, r5, r8, r4 mov r1, r6 - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation ldr r1, [r7, #0x0] add r0, r5, #0x1 mov r0, r0, lsl #0x10 @@ -218,7 +214,7 @@ _020B23A8: mul r0, r5, r8 ldr r0, [r4, r0] mov r1, r6 - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation ldr r1, [r7, #0x0] add r0, r5, #0x1 mov r0, r0, lsl #0x10 @@ -227,11 +223,10 @@ _020B23A8: cmp r5, r1 blo _020B23A8 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B232C + arm_func_end NNS_G2dTickMCInstance - ; _end - arm_func_start FUN_020B23D8 -FUN_020B23D8: ; 0x020B23D8 + arm_func_start NNS_G2dGetMCBankNumNodesRequired +NNS_G2dGetMCBankNumNodesRequired: ; 0x020B23D8 stmdb sp!, {r4-r6,lr} mov r5, r0 ldrh r0, [r5, #0x0] @@ -242,7 +237,7 @@ FUN_020B23D8: ; 0x020B23D8 _020B23F4: mov r0, r5 mov r1, r6 - bl FUN_020AFF34 + bl NNS_G2dGetMultiCellDataByIdx ldrh r0, [r0, #0x0] ldrh r1, [r5, #0x0] cmp r0, r4 @@ -255,30 +250,29 @@ _020B23F4: _020B2424: mov r0, r4 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B23D8 + arm_func_end NNS_G2dGetMCBankNumNodesRequired - ; _end - arm_func_start FUN_020B242C -FUN_020B242C: ; 0x020B242C + arm_func_start NNS_G2dSetAnimSequenceToMCAnimation +NNS_G2dSetAnimSequenceToMCAnimation: ; 0x020B242C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 - bl FUN_020B0438 + bl NNS_G2dBindAnimCtrl mov r1, #0x0 mov r0, r7 strh r1, [r7, #0x2c] - bl FUN_020B06E0 + bl NNS_G2dGetAnimCtrlCurrentElement mov r4, r0 ldrh r1, [r4, #0x0] ldr r0, [r7, #0x40] - bl FUN_020AFF34 + bl NNS_G2dGetMultiCellDataByIdx ldr r1, [r7, #0x18] mov r6, r0 ldr r1, [r1, #0x4] add r0, r7, #0x44 and r5, r1, #0xff mov r1, #0x1 - bl FUN_020B1A68 + bl NNSi_G2dSrtcInitControl cmp r5, #0x0 beq _020B24C8 cmp r5, #0x2 @@ -286,32 +280,31 @@ FUN_020B242C: ; 0x020B242C ldrsh r1, [r4, #0x4] ldrsh r2, [r4, #0x6] add r0, r7, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans b _020B24C8 _020B249C: ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r7, #0x44 - bl FUN_020B1A78 + bl NNSi_G2dSrtcSetSRTScale ldrh r1, [r4, #0x2] add r0, r7, #0x44 - bl FUN_020B1A98 + bl NNSi_G2dSrtcSetSRTRotZ ldrsh r1, [r4, #0xc] ldrsh r2, [r4, #0xe] add r0, r7, #0x44 - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans _020B24C8: ldrh r2, [r7, #0x2c] mov r1, r6 add r0, r7, #0x30 - bl FUN_020B24E0 + bl SetMCDataToMCInstanceImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B242C + arm_func_end NNS_G2dSetAnimSequenceToMCAnimation - ; _end - arm_func_start FUN_020B24E0 -FUN_020B24E0: ; 0x020B24E0 + arm_func_start SetMCDataToMCInstanceImpl_ +SetMCDataToMCInstanceImpl_: ; 0x020B24E0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x14 mov r10, r1 @@ -361,11 +354,11 @@ _020B2560: ldr r0, [sp, #0x0] ldrh r1, [r7, #0x0] ldr r0, [r0, #0x4] - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx mov r4, r0 mov r0, r6 mov r1, r4 - bl FUN_020B1EE4 + bl NNS_G2dSetCellAnimationSequence str r11, [r6, #0x8] ldrh r0, [r7, #0x6] and r0, r0, #0xf @@ -386,7 +379,7 @@ _020B25D8: blo _020B25D8 _020B25F0: mov r0, r6 - bl FUN_020B0408 + bl NNSi_G2dIsAnimCtrlLoopAnim cmp r0, #0x0 beq _020B261C mov r0, r9 @@ -394,14 +387,14 @@ _020B25F0: bl _u32_div_f mov r0, r6 mov r1, r1, lsl #0xc - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation b _020B2630 _020B261C: cmp r9, r7 movcc r7, r9 mov r0, r6 mov r1, r7, lsl #0xc - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation _020B2630: str r11, [r6, #0x54] _020B2634: @@ -434,11 +427,11 @@ _020B267C: ldr r6, [r11, r2] ldr r0, [r0, #0x4] add r7, r3, r4, lsl #0x3 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx mov r5, r0 mov r0, r6 mov r1, r5 - bl FUN_020B1EE4 + bl NNS_G2dSetCellAnimationSequence ldr r0, [sp, #0x8] str r0, [r6, #0x8] ldrh r0, [r7, #0x6] @@ -461,7 +454,7 @@ _020B26E4: blo _020B26E4 _020B2700: mov r0, r6 - bl FUN_020B0408 + bl NNSi_G2dIsAnimCtrlLoopAnim cmp r0, #0x0 beq _020B272C mov r0, r9 @@ -469,14 +462,14 @@ _020B2700: bl _u32_div_f mov r0, r6 mov r1, r1, lsl #0xc - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation b _020B2740 _020B272C: cmp r9, r8 movcc r8, r9 mov r0, r6 mov r1, r8, lsl #0xc - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation _020B2740: mov r0, #0x28 mla r3, r4, r0, r11 @@ -485,7 +478,7 @@ _020B2740: ldrsh r1, [r7, #0x2] ldrsh r2, [r7, #0x4] add r0, r3, #0xc - bl FUN_020B1AB4 + bl NNSi_G2dSrtcSetTrans add r0, r4, #0x1 mov r0, r0, lsl #0x10 ldrh r1, [r10, #0x0] @@ -494,5 +487,4 @@ _020B2740: blo _020B267C add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B24E0 - + arm_func_end SetMCDataToMCInstanceImpl_ diff --git a/arm9/asm/NNS_G2D_g2d_nan_load.s b/arm9/asm/NNS_G2D_g2d_nan_load.s index 4137e8aeb..6e8b6c276 100644 --- a/arm9/asm/NNS_G2D_g2d_nan_load.s +++ b/arm9/asm/NNS_G2D_g2d_nan_load.s @@ -3,20 +3,18 @@ .section .text - ; _end - arm_func_start FUN_020AFC04 -FUN_020AFC04: ; 0x020AFC04 + arm_func_start NNS_G2dGetAnimSequenceByIdx +NNS_G2dGetAnimSequenceByIdx: ; 0x020AFC04 ldrh r2, [r0, #0x0] cmp r2, r1 ldrhi r0, [r0, #0x4] addhi r0, r0, r1, lsl #0x4 movls r0, #0x0 bx lr - arm_func_end FUN_020AFC04 + arm_func_end NNS_G2dGetAnimSequenceByIdx - ; _end - arm_func_start FUN_020AFC1C -FUN_020AFC1C: ; 0x020AFC1C + arm_func_start NNS_G2dUnpackNAN +NNS_G2dUnpackNAN: ; 0x020AFC1C stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 ldr r1, [r0, #0x4] @@ -115,41 +113,38 @@ _020AFD6C: blo _020AFD14 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AFC1C + arm_func_end NNS_G2dUnpackNAN - ; NNS_G2dGetUnpackedMCAnimBank - arm_func_start thunk_FUN_020afda0 -thunk_FUN_020afda0: ; 0x020AFD88 - ldr ip, _020AFD90 ; =FUN_020AFDA0 + arm_func_start NNS_G2dGetUnpackedMCAnimBank +NNS_G2dGetUnpackedMCAnimBank: ; 0x020AFD88 + ldr ip, _020AFD90 ; =GetUnpackedAnimBankImpl_ bx r12 .balign 4 -_020AFD90: .word FUN_020AFDA0 - arm_func_end thunk_FUN_020afda0 +_020AFD90: .word GetUnpackedAnimBankImpl_ + arm_func_end NNS_G2dGetUnpackedMCAnimBank - ; NNS_G2dGetUnpackedAnimBank - arm_func_start thunk_FUN_020afda0_2 -thunk_FUN_020afda0_2: ; 0x020AFD94 - ldr ip, _020AFD9C ; =FUN_020AFDA0 + arm_func_start NNS_G2dGetUnpackedAnimBank +NNS_G2dGetUnpackedAnimBank: ; 0x020AFD94 + ldr ip, _020AFD9C ; =GetUnpackedAnimBankImpl_ bx r12 .balign 4 -_020AFD9C: .word FUN_020AFDA0 - arm_func_end thunk_FUN_020afda0_2 +_020AFD9C: .word GetUnpackedAnimBankImpl_ + arm_func_end NNS_G2dGetUnpackedAnimBank - ; GetUnpackedAnimBankImpl_ - arm_func_start FUN_020AFDA0 -FUN_020AFDA0: ; 0x020AFDA0 + arm_func_start GetUnpackedAnimBankImpl_ +GetUnpackedAnimBankImpl_: ; 0x020AFDA0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020AFDE4 ; =0x41424E4B - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020AFC1C + bl NNS_G2dUnpackNAN add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -157,5 +152,4 @@ FUN_020AFDA0: ; 0x020AFDA0 ldmia sp!, {r4-r5,pc} .balign 4 _020AFDE4: .word 0x41424E4B - arm_func_end FUN_020AFDA0 - + arm_func_end GetUnpackedAnimBankImpl_ diff --git a/arm9/asm/NNS_G2D_g2d_ncg_load.s b/arm9/asm/NNS_G2D_g2d_ncg_load.s index 78956dde9..95535da58 100644 --- a/arm9/asm/NNS_G2D_g2d_ncg_load.s +++ b/arm9/asm/NNS_G2D_g2d_ncg_load.s @@ -3,30 +3,28 @@ .section .text - ; _end - arm_func_start FUN_020B0020 -FUN_020B0020: ; 0x020B0020 + arm_func_start NNS_G2dUnpackBGNCG +NNS_G2dUnpackBGNCG: ; 0x020B0020 ldr r1, [r0, #0x14] add r1, r1, r0 str r1, [r0, #0x14] bx lr - arm_func_end FUN_020B0020 + arm_func_end NNS_G2dUnpackBGNCG - ; NNS_G2dGetUnpackedBGCharacterData - arm_func_start FUN_020B0030 -FUN_020B0030: ; 0x020B0030 + arm_func_start NNS_G2dGetUnpackedBGCharacterData +NNS_G2dGetUnpackedBGCharacterData: ; 0x020B0030 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020B0074 ; =0x43484152 - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020B0020 + bl NNS_G2dUnpackBGNCG add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -34,32 +32,30 @@ FUN_020B0030: ; 0x020B0030 ldmia sp!, {r4-r5,pc} .balign 4 _020B0074: .word 0x43484152 - arm_func_end FUN_020B0030 + arm_func_end NNS_G2dGetUnpackedBGCharacterData - ; _end - arm_func_start FUN_020B0078 -FUN_020B0078: ; 0x020B0078 + arm_func_start NNS_G2dUnpackNCG +NNS_G2dUnpackNCG: ; 0x020B0078 ldr r1, [r0, #0x14] add r1, r1, r0 str r1, [r0, #0x14] bx lr - arm_func_end FUN_020B0078 + arm_func_end NNS_G2dUnpackNCG - ; NNS_G2dGetUnpackedCharacterData - arm_func_start FUN_020B0088 -FUN_020B0088: ; 0x020B0088 + arm_func_start NNS_G2dGetUnpackedCharacterData +NNS_G2dGetUnpackedCharacterData: ; 0x020B0088 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020B00CC ; =0x43484152 - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020B0078 + bl NNS_G2dUnpackNCG add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -67,5 +63,4 @@ FUN_020B0088: ; 0x020B0088 ldmia sp!, {r4-r5,pc} .balign 4 _020B00CC: .word 0x43484152 - arm_func_end FUN_020B0088 - + arm_func_end NNS_G2dGetUnpackedCharacterData diff --git a/arm9/asm/NNS_G2D_g2d_ncl_load.s b/arm9/asm/NNS_G2D_g2d_ncl_load.s index ecaa454b1..1fc246b22 100644 --- a/arm9/asm/NNS_G2D_g2d_ncl_load.s +++ b/arm9/asm/NNS_G2D_g2d_ncl_load.s @@ -3,39 +3,36 @@ .section .text - ; _end - arm_func_start FUN_020B00D0 -FUN_020B00D0: ; 0x020B00D0 + arm_func_start NNS_G2dUnpackNCL +NNS_G2dUnpackNCL: ; 0x020B00D0 ldr r1, [r0, #0xc] add r1, r1, r0 str r1, [r0, #0xc] bx lr - arm_func_end FUN_020B00D0 + arm_func_end NNS_G2dUnpackNCL - ; _end - arm_func_start FUN_020B00E0 -FUN_020B00E0: ; 0x020B00E0 + arm_func_start NNSi_G2dUnpackNCLCmpInfo +NNSi_G2dUnpackNCLCmpInfo: ; 0x020B00E0 ldr r1, [r0, #0x4] add r1, r1, r0 str r1, [r0, #0x4] bx lr - arm_func_end FUN_020B00E0 + arm_func_end NNSi_G2dUnpackNCLCmpInfo - ; NNS_G2dGetUnpackedPaletteCompressInfo - arm_func_start FUN_020B00F0 -FUN_020B00F0: ; 0x020B00F0 + arm_func_start NNS_G2dGetUnpackedPaletteCompressInfo +NNS_G2dGetUnpackedPaletteCompressInfo: ; 0x020B00F0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020B0134 ; =0x50434D50 - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020B00E0 + bl NNSi_G2dUnpackNCLCmpInfo add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -43,23 +40,22 @@ FUN_020B00F0: ; 0x020B00F0 ldmia sp!, {r4-r5,pc} .balign 4 _020B0134: .word 0x50434D50 - arm_func_end FUN_020B00F0 + arm_func_end NNS_G2dGetUnpackedPaletteCompressInfo - ; NNS_G2dGetUnpackedPaletteData - arm_func_start FUN_020B0138 -FUN_020B0138: ; 0x020B0138 + arm_func_start NNS_G2dGetUnpackedPaletteData +NNS_G2dGetUnpackedPaletteData: ; 0x020B0138 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020B017C ; =0x504C5454 - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020B00D0 + bl NNS_G2dUnpackNCL add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -67,5 +63,4 @@ FUN_020B0138: ; 0x020B0138 ldmia sp!, {r4-r5,pc} .balign 4 _020B017C: .word 0x504C5454 - arm_func_end FUN_020B0138 - + arm_func_end NNS_G2dGetUnpackedPaletteData diff --git a/arm9/asm/NNS_G2D_g2d_nft_load.s b/arm9/asm/NNS_G2D_g2d_nft_load.s index 1bd9a1bf8..3f9c0e77c 100644 --- a/arm9/asm/NNS_G2D_g2d_nft_load.s +++ b/arm9/asm/NNS_G2D_g2d_nft_load.s @@ -3,9 +3,8 @@ .section .text - ; NNSi_G2dUnpackNFT - arm_func_start FUN_020B7468 -FUN_020B7468: ; 0x020B7468 + arm_func_start NNSi_G2dUnpackNFT +NNSi_G2dUnpackNFT: ; 0x020B7468 stmdb sp!, {r4-r6,lr} ldrh r2, [r0, #0xc] ldrh r3, [r0, #0xe] @@ -73,11 +72,10 @@ _020B7548: .word 0x46494E46 _020B754C: .word 0x43574448 _020B7550: .word 0x434D4150 _020B7554: .word 0x43474C50 - arm_func_end FUN_020B7468 + arm_func_end NNSi_G2dUnpackNFT - ; NNSi_G2dGetUnpackedFont - arm_func_start FUN_020B7558 -FUN_020B7558: ; 0x020B7558 + arm_func_start NNSi_G2dGetUnpackedFont +NNSi_G2dGetUnpackedFont: ; 0x020B7558 stmdb sp!, {r4-r6,lr} movs r6, r0 mov r5, r1 @@ -155,10 +153,10 @@ _020B7644: bl OS_Terminate _020B7654: mov r0, r6 - bl FUN_020B7468 + bl NNSi_G2dUnpackNFT ldr r1, _020B76AC ; =0x46494E46 mov r0, r6 - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock cmp r0, #0x0 moveq r0, #0x0 streq r0, [r5, #0x0] @@ -179,5 +177,4 @@ _020B76A0: .balign 4 _020B76A8: .word 0x4E465452 _020B76AC: .word 0x46494E46 - arm_func_end FUN_020B7558 - + arm_func_end NNSi_G2dGetUnpackedFont diff --git a/arm9/asm/NNS_G2D_g2d_nmc_load.s b/arm9/asm/NNS_G2D_g2d_nmc_load.s index eb13c705e..abe55e8e2 100644 --- a/arm9/asm/NNS_G2D_g2d_nmc_load.s +++ b/arm9/asm/NNS_G2D_g2d_nmc_load.s @@ -3,20 +3,18 @@ .section .text - ; _end - arm_func_start FUN_020AFF34 -FUN_020AFF34: ; 0x020AFF34 + arm_func_start NNS_G2dGetMultiCellDataByIdx +NNS_G2dGetMultiCellDataByIdx: ; 0x020AFF34 ldrh r2, [r0, #0x0] cmp r1, r2 ldrcc r0, [r0, #0x4] addcc r0, r0, r1, lsl #0x3 movcs r0, #0x0 bx lr - arm_func_end FUN_020AFF34 + arm_func_end NNS_G2dGetMultiCellDataByIdx - ; _end - arm_func_start FUN_020AFF4C -FUN_020AFF4C: ; 0x020AFF4C + arm_func_start NNS_G2dUnpackNMC +NNS_G2dUnpackNMC: ; 0x020AFF4C stmdb sp!, {r4,lr} ldr r1, [r0, #0x4] mov r4, #0x0 @@ -48,35 +46,33 @@ _020AFFA8: add r1, r1, r0 str r1, [r0, #0x10] ldr r0, [r0, #0x10] - bl FUN_020AFFC8 + bl UnpackExtendedData_ ldmia sp!, {r4,pc} - arm_func_end FUN_020AFF4C + arm_func_end NNS_G2dUnpackNMC - ; UnpackExtendedData_ - arm_func_start FUN_020AFFC8 -FUN_020AFFC8: ; 0x020AFFC8 - ldr ip, _020AFFD4 ; =FUN_020B01B0 + arm_func_start UnpackExtendedData_ +UnpackExtendedData_: ; 0x020AFFC8 + ldr ip, _020AFFD4 ; =NNSi_G2dUnpackUserExCellAttrBank add r0, r0, #0x8 bx r12 .balign 4 -_020AFFD4: .word FUN_020B01B0 - arm_func_end FUN_020AFFC8 +_020AFFD4: .word NNSi_G2dUnpackUserExCellAttrBank + arm_func_end UnpackExtendedData_ - ; NNS_G2dGetUnpackedMultiCellBank - arm_func_start FUN_020AFFD8 -FUN_020AFFD8: ; 0x020AFFD8 + arm_func_start NNS_G2dGetUnpackedMultiCellBank +NNS_G2dGetUnpackedMultiCellBank: ; 0x020AFFD8 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020B001C ; =0x4D43424B - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020AFF4C + bl NNS_G2dUnpackNMC add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -84,5 +80,4 @@ FUN_020AFFD8: ; 0x020AFFD8 ldmia sp!, {r4-r5,pc} .balign 4 _020B001C: .word 0x4D43424B - arm_func_end FUN_020AFFD8 - + arm_func_end NNS_G2dGetUnpackedMultiCellBank diff --git a/arm9/asm/NNS_G2D_g2d_nob_load.s b/arm9/asm/NNS_G2D_g2d_nob_load.s index ddeb473cb..319a6a4a6 100644 --- a/arm9/asm/NNS_G2D_g2d_nob_load.s +++ b/arm9/asm/NNS_G2D_g2d_nob_load.s @@ -3,15 +3,14 @@ .section .text - ; _end - arm_func_start FUN_020AFDE8 -FUN_020AFDE8: ; 0x020AFDE8 + arm_func_start NNS_G2dUnpackNCE +NNS_G2dUnpackNCE: ; 0x020AFDE8 stmdb sp!, {r4-r6,lr} mov r5, r0 ldr r1, [r5, #0x4] add r1, r1, r5 str r1, [r5, #0x4] - bl FUN_020AFF10 + bl GetPtrOamArrayHead_ ldrh r1, [r5, #0x0] mov r4, r0 mov r6, #0x0 @@ -20,7 +19,7 @@ FUN_020AFDE8: ; 0x020AFDE8 _020AFE14: mov r0, r5 mov r1, r6 - bl FUN_020AFE8C + bl NNS_G2dGetCellDataByIdx ldr r2, [r0, #0x4] add r1, r6, #0x1 add r2, r2, r4 @@ -48,13 +47,12 @@ _020AFE6C: add r0, r0, r5 str r0, [r5, #0x14] ldr r0, [r5, #0x14] - bl FUN_020AFF00 + bl UnPackExtendedData_ ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AFDE8 + arm_func_end NNS_G2dUnpackNCE - ; _end - arm_func_start FUN_020AFE8C -FUN_020AFE8C: ; 0x020AFE8C + arm_func_start NNS_G2dGetCellDataByIdx +NNS_G2dGetCellDataByIdx: ; 0x020AFE8C ldrh r2, [r0, #0x0] cmp r1, r2 movcs r0, #0x0 @@ -66,23 +64,22 @@ FUN_020AFE8C: ; 0x020AFE8C ldreq r0, [r0, #0x4] addeq r0, r0, r1, lsl #0x3 bx lr - arm_func_end FUN_020AFE8C + arm_func_end NNS_G2dGetCellDataByIdx - ; NNS_G2dGetUnpackedCellBank - arm_func_start FUN_020AFEB8 -FUN_020AFEB8: ; 0x020AFEB8 + arm_func_start NNS_G2dGetUnpackedCellBank +NNS_G2dGetUnpackedCellBank: ; 0x020AFEB8 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r1 ldr r1, _020AFEFC ; =0x4345424B - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock movs r4, r0 moveq r0, #0x0 addeq sp, sp, #0x4 streq r0, [r5, #0x0] ldmeqia sp!, {r4-r5,pc} add r0, r4, #0x8 - bl FUN_020AFDE8 + bl NNS_G2dUnpackNCE add r0, r4, #0x8 str r0, [r5, #0x0] mov r0, #0x1 @@ -90,21 +87,19 @@ FUN_020AFEB8: ; 0x020AFEB8 ldmia sp!, {r4-r5,pc} .balign 4 _020AFEFC: .word 0x4345424B - arm_func_end FUN_020AFEB8 + arm_func_end NNS_G2dGetUnpackedCellBank - ; UnPackExtendedData_ - arm_func_start FUN_020AFF00 -FUN_020AFF00: ; 0x020AFF00 - ldr ip, _020AFF0C ; =FUN_020B01B0 + arm_func_start UnPackExtendedData_ +UnPackExtendedData_: ; 0x020AFF00 + ldr ip, _020AFF0C ; =NNSi_G2dUnpackUserExCellAttrBank add r0, r0, #0x8 bx r12 .balign 4 -_020AFF0C: .word FUN_020B01B0 - arm_func_end FUN_020AFF00 +_020AFF0C: .word NNSi_G2dUnpackUserExCellAttrBank + arm_func_end UnPackExtendedData_ - ; _end - arm_func_start FUN_020AFF10 -FUN_020AFF10: ; 0x020AFF10 + arm_func_start GetPtrOamArrayHead_ +GetPtrOamArrayHead_: ; 0x020AFF10 ldrh r1, [r0, #0x2] ands r1, r1, #0x1 ldrneh r1, [r0, #0x0] @@ -114,5 +109,4 @@ FUN_020AFF10: ; 0x020AFF10 ldreq r0, [r0, #0x4] addeq r0, r0, r1, lsl #0x3 bx lr - arm_func_end FUN_020AFF10 - + arm_func_end GetPtrOamArrayHead_ diff --git a/arm9/asm/NNS_G2D_g2d_node.s b/arm9/asm/NNS_G2D_g2d_node.s index 8e918dda9..eb4e2497f 100644 --- a/arm9/asm/NNS_G2D_g2d_node.s +++ b/arm9/asm/NNS_G2D_g2d_node.s @@ -3,18 +3,16 @@ .section .text - ; NNSi_G2dInitializeNode - arm_func_start FUN_020B1AD4 -FUN_020B1AD4: ; 0x020B1AD4 + arm_func_start NNSi_G2dInitializeNode +NNSi_G2dInitializeNode: ; 0x020B1AD4 mov r2, #0x0 str r2, [r0, #0x0] str r1, [r0, #0x4] mov r1, #0x1 str r1, [r0, #0x8] - ldr ip, _020B1AF4 ; =FUN_020B1A68 + ldr ip, _020B1AF4 ; =NNSi_G2dSrtcInitControl add r0, r0, #0xc bx r12 .balign 4 -_020B1AF4: .word FUN_020B1A68 - arm_func_end FUN_020B1AD4 - +_020B1AF4: .word NNSi_G2dSrtcInitControl + arm_func_end NNSi_G2dInitializeNode diff --git a/arm9/asm/NNS_G2D_g2d_nsc_load.s b/arm9/asm/NNS_G2D_g2d_nsc_load.s index 47f762648..4f2bb65c6 100644 --- a/arm9/asm/NNS_G2D_g2d_nsc_load.s +++ b/arm9/asm/NNS_G2D_g2d_nsc_load.s @@ -3,13 +3,12 @@ .section .text - ; NNS_G2dGetUnpackedScreenData - arm_func_start FUN_020B0180 -FUN_020B0180: ; 0x020B0180 + arm_func_start NNS_G2dGetUnpackedScreenData +NNS_G2dGetUnpackedScreenData: ; 0x020B0180 stmdb sp!, {r4,lr} mov r4, r1 ldr r1, _020B01AC ; =0x5343524E - bl FUN_020B01F8 + bl NNS_G2dFindBinaryBlock cmp r0, #0x0 addne r0, r0, #0x8 strne r0, [r4, #0x0] @@ -19,5 +18,4 @@ FUN_020B0180: ; 0x020B0180 ldmia sp!, {r4,pc} .balign 4 _020B01AC: .word 0x5343524E - arm_func_end FUN_020B0180 - + arm_func_end NNS_G2dGetUnpackedScreenData diff --git a/arm9/asm/NNS_G2D_g2d_oam.s b/arm9/asm/NNS_G2D_g2d_oam.s index 9ef72ad06..cec3db644 100644 --- a/arm9/asm/NNS_G2D_g2d_oam.s +++ b/arm9/asm/NNS_G2D_g2d_oam.s @@ -3,87 +3,41 @@ .section .rodata - ; NNSi_objSizeHTbl - .global UNK_020FF894 -UNK_020FF894: ; 0x020FF894 + .global NNSi_objSizeHTbl +NNSi_objSizeHTbl: ; 0x020FF894 .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 .byte 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 - ; NNSi_objSizeWTbl - .global UNK_020FF8AC -UNK_020FF8AC: ; 0x020FF8AC + .global NNSi_objSizeWTbl +NNSi_objSizeWTbl: ; 0x020FF8AC .byte 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00 .byte 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00 - ; static const in function + .section .data - ; funcTbl$8497 - .global UNK_0210655C -UNK_0210655C: ; 0x0210655C - .word FUN_020B1088 - .word FUN_020B1098 + .global funcTbl$8497 +funcTbl$8497: ; 0x0210655C + .word CpuLoadOAMMain_ + .word CpuLoadOAMSub_ .word 0 .word 0 .word 0 .section .bss - ; numRegisterdInstance_ - .global UNK_021CCD9C -UNK_021CCD9C: ; 0x021CCD9C + .global numRegisterdInstance_ +numRegisterdInstance_: ; 0x021CCD9C .space 0x4 - ; oamCache_ - .global UNK_021CCDA0 -UNK_021CCDA0: ; 0x021CCDA0 - .space 0x100 - - ; oamCache_ + 0x100 - .global UNK_021CCEA0 -UNK_021CCEA0: ; 0x021CCEA0 - .space 0x400 - - ; oamCache_ + 0x500 - .global UNK_021CD2A0 -UNK_021CD2A0: ; 0x021CD2A0 - .space 0x40 - - ; oamCache_ + 0x540 - .global UNK_021CD2E0 -UNK_021CD2E0: ; 0x021CD2E0 - .space 0x100 - - ; oamCache_ + 0x640 - .global UNK_021CD3E0 -UNK_021CD3E0: ; 0x021CD3E0 - .space 0x400 - - ; oamCache_ + 0xA40 - .global UNK_021CD7E0 -UNK_021CD7E0: ; 0x021CD7E0 - .space 0x40 - - ; oamCache_ + 0xA80 - .global UNK_021CD820 -UNK_021CD820: ; 0x021CD820 - .space 0x100 - - ; oamCache_ + 0xB80 - .global UNK_021CD920 -UNK_021CD920: ; 0x021CD920 - .space 0x400 - - ; oamCache_ + 0xF80 - .global UNK_021CDD20 -UNK_021CDD20: ; 0x021CDD20 - .space 0x40 + .global oamCache_ +oamCache_: ; 0x021CCDA0 + .space 0xFC0 .section .text - ; _end - arm_func_start FUN_020B0830 -FUN_020B0830: ; 0x020B0830 + arm_func_start NNS_G2dGetOamManagerOamCapacity +NNS_G2dGetOamManagerOamCapacity: ; 0x020B0830 ldrh r3, [r0, #0x6] ldrh r2, [r0, #0x8] mov r12, #0x0 @@ -101,22 +55,20 @@ _020B0854: movne r0, r0, lsr #0x10 moveq r0, #0x0 bx lr - arm_func_end FUN_020B0830 + arm_func_end NNS_G2dGetOamManagerOamCapacity - ; _end - arm_func_start FUN_020B0870 -FUN_020B0870: ; 0x020B0870 + arm_func_start NNS_G2dApplyAndResetOamManagerBuffer +NNS_G2dApplyAndResetOamManagerBuffer: ; 0x020B0870 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020B09B4 + bl NNS_G2dApplyOamManagerToHW mov r0, r4 - bl FUN_020B0888 + bl NNS_G2dResetOamManagerBuffer ldmia sp!, {r4,pc} - arm_func_end FUN_020B0870 + arm_func_end NNS_G2dApplyAndResetOamManagerBuffer - ; NNS_G2dResetOamManagerBuffer - arm_func_start FUN_020B0888 -FUN_020B0888: ; 0x020B0888 + arm_func_start NNS_G2dResetOamManagerBuffer +NNS_G2dResetOamManagerBuffer: ; 0x020B0888 stmdb sp!, {r4-r6,lr} mov r5, r0 ldr r0, [r5, #0x14] @@ -142,7 +94,7 @@ _020B08C0: mov r4, r0, lsr #0xd _020B08E0: ldr r2, [r5, #0x0] - ldr r1, _020B09AC ; =UNK_021CCDA0 + ldr r1, _020B09AC ; =oamCache_ mov r0, #0x540 mla r1, r2, r0, r1 ldrh r0, [r5, #0x4] @@ -169,7 +121,7 @@ _020B0930: b _020B0998 _020B0944: ldr r2, [r5, #0x0] - ldr r1, _020B09AC ; =UNK_021CCDA0 + ldr r1, _020B09AC ; =oamCache_ mov r0, #0x540 mla r1, r2, r0, r1 ldrh r2, [r5, #0x4] @@ -197,20 +149,19 @@ _020B0998: strh r0, [r5, #0xe] ldmia sp!, {r4-r6,pc} .balign 4 -_020B09AC: .word UNK_021CCDA0 +_020B09AC: .word oamCache_ _020B09B0: .word GXi_DmaId - arm_func_end FUN_020B0888 + arm_func_end NNS_G2dResetOamManagerBuffer - ; NNS_G2dApplyOamManagerToHW - arm_func_start FUN_020B09B4 -FUN_020B09B4: ; 0x020B09B4 + arm_func_start NNS_G2dApplyOamManagerToHW +NNS_G2dApplyOamManagerToHW: ; 0x020B09B4 stmdb sp!, {r4-r10,lr} mov r7, r0 ldr r0, [r7, #0x14] cmp r0, #0x0 beq _020B0A48 ldr r5, [r7, #0x0] - ldr r1, _020B0BA8 ; =UNK_021CCDA0 + ldr r1, _020B0BA8 ; =oamCache_ mov r0, #0x540 mla r1, r5, r0, r1 ldrh r2, [r7, #0x4] @@ -245,12 +196,12 @@ _020B0A34: ldmia sp!, {r4-r10,pc} _020B0A48: ldr r0, [r7, #0x0] - ldr r2, _020B0BA8 ; =UNK_021CCDA0 + ldr r2, _020B0BA8 ; =oamCache_ mov r1, #0x540 mla r2, r0, r1, r2 ldrh r5, [r7, #0x4] ldrh r1, [r7, #0x6] - ldr r3, _020B0BAC ; =UNK_0210655C + ldr r3, _020B0BAC ; =funcTbl$8497 add r4, r2, #0x100 sub r1, r1, r5 add r1, r1, #0x1 @@ -291,14 +242,14 @@ _020B0AEC: cmp r3, #0x0 ldmeqia sp!, {r4-r10,pc} ldr r0, [r7, #0x0] - ldr r2, _020B0BA8 ; =UNK_021CCDA0 + ldr r2, _020B0BA8 ; =oamCache_ mov r1, #0x540 mla r2, r0, r1, r2 ldrh r5, [r7, #0xa] add r4, r2, #0x100 ldrh r1, [r7, #0xc] mov r2, r5, lsl #0x15 - ldr r3, _020B0BAC ; =UNK_0210655C + ldr r3, _020B0BAC ; =funcTbl$8497 sub r1, r1, r5 add r1, r1, #0x1 mov r1, r1, lsl #0x10 @@ -337,13 +288,12 @@ _020B0B40: blo _020B0B40 ldmia sp!, {r4-r10,pc} .balign 4 -_020B0BA8: .word UNK_021CCDA0 -_020B0BAC: .word UNK_0210655C - arm_func_end FUN_020B09B4 +_020B0BA8: .word oamCache_ +_020B0BAC: .word funcTbl$8497 + arm_func_end NNS_G2dApplyOamManagerToHW - ; NNS_G2dEntryOamManagerAffine - arm_func_start FUN_020B0BB0 -FUN_020B0BB0: ; 0x020B0BB0 + arm_func_start NNS_G2dEntryOamManagerAffine +NNS_G2dEntryOamManagerAffine: ; 0x020B0BB0 stmdb sp!, {lr} sub sp, sp, #0x4 ldrh r12, [r0, #0xc] @@ -370,7 +320,7 @@ _020B0BDC: ldreq r0, _020B0C74 ; =0x0000FFFE ldmeqia sp!, {pc} ldr lr, [r0, #0x0] - ldr r3, _020B0C78 ; =UNK_021CCDA0 + ldr r3, _020B0C78 ; =oamCache_ mov r2, #0x540 mla r12, lr, r2, r3 ldr r3, [r1, #0x0] @@ -396,12 +346,11 @@ _020B0BDC: ldmia sp!, {pc} .balign 4 _020B0C74: .word 0x0000FFFE -_020B0C78: .word UNK_021CCDA0 - arm_func_end FUN_020B0BB0 +_020B0C78: .word oamCache_ + arm_func_end NNS_G2dEntryOamManagerAffine - ; NNS_G2dEntryOamManagerOamWithAffineIdx - arm_func_start FUN_020B0C7C -FUN_020B0C7C: ; 0x020B0C7C + arm_func_start NNS_G2dEntryOamManagerOamWithAffineIdx +NNS_G2dEntryOamManagerOamWithAffineIdx: ; 0x020B0C7C stmdb sp!, {r4,lr} ldrh r12, [r0, #0x6] ldrh r4, [r0, #0x8] @@ -425,7 +374,7 @@ _020B0CA4: cmp r3, #0x0 beq _020B0D48 ldr r4, [r0, #0x0] - ldr ip, _020B0D50 ; =UNK_021CCDA0 + ldr ip, _020B0D50 ; =oamCache_ mov r3, #0x540 mla r12, r4, r3, r12 ldrh r3, [r0, #0x8] @@ -459,13 +408,12 @@ _020B0D48: mov r0, #0x0 ldmia sp!, {r4,pc} .balign 4 -_020B0D50: .word UNK_021CCDA0 +_020B0D50: .word oamCache_ _020B0D54: .word 0x0000FFFE - arm_func_end FUN_020B0C7C + arm_func_end NNS_G2dEntryOamManagerOamWithAffineIdx - ; NNS_G2dEntryOamManagerOam - arm_func_start FUN_020B0D58 -FUN_020B0D58: ; 0x020B0D58 + arm_func_start NNS_G2dEntryOamManagerOam +NNS_G2dEntryOamManagerOam: ; 0x020B0D58 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldrh lr, [r0, #0x6] @@ -490,7 +438,7 @@ _020B0D84: cmp r3, #0x0 beq _020B0E24 ldr lr, [r0, #0x0] - ldr ip, _020B0E30 ; =UNK_021CCDA0 + ldr ip, _020B0E30 ; =oamCache_ mov r3, #0x540 mla r12, lr, r3, r12 ldrh r3, [r0, #0x8] @@ -525,16 +473,15 @@ _020B0E24: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B0E30: .word UNK_021CCDA0 - arm_func_end FUN_020B0D58 +_020B0E30: .word oamCache_ + arm_func_end NNS_G2dEntryOamManagerOam - ; NNS_G2dGetNewOamManagerInstance - arm_func_start FUN_020B0E34 -FUN_020B0E34: ; 0x020B0E34 + arm_func_start NNS_G2dGetNewOamManagerInstance +NNS_G2dGetNewOamManagerInstance: ; 0x020B0E34 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldr r5, [sp, #0x1c] - ldr r6, _020B0FB4 ; =UNK_021CCDA0 + ldr r6, _020B0FB4 ; =oamCache_ mov r4, #0x540 mla r4, r5, r4, r6 mov lr, r1 @@ -563,7 +510,7 @@ _020B0E9C: _020B0EA0: cmp r0, #0x0 beq _020B0EE0 - ldr r0, _020B0FBC ; =UNK_021CCD9C + ldr r0, _020B0FBC ; =numRegisterdInstance_ sub r2, r12, lr ldrh r7, [r0, #0x0] add r1, r4, r3 @@ -639,80 +586,77 @@ _020B0F98: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B0FB4: .word UNK_021CCDA0 +_020B0FB4: .word oamCache_ _020B0FB8: .word 0x0000FFFF -_020B0FBC: .word UNK_021CCD9C - arm_func_end FUN_020B0E34 +_020B0FBC: .word numRegisterdInstance_ + arm_func_end NNS_G2dGetNewOamManagerInstance - ; NNS_G2dInitOamManagerModule - arm_func_start FUN_020B0FC0 -FUN_020B0FC0: ; 0x020B0FC0 + arm_func_start NNS_G2dInitOamManagerModule +NNS_G2dInitOamManagerModule: ; 0x020B0FC0 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020B1060 ; =UNK_021CCEA0 + ldr r1, _020B1060 ; =oamCache_ + 0x100 mov r0, #0xc0 mov r2, #0x400 bl MIi_CpuClear16 - ldr r1, _020B1064 ; =UNK_021CD3E0 + ldr r1, _020B1064 ; =oamCache_ + 0x640 mov r0, #0xc0 mov r2, #0x400 bl MIi_CpuClear16 - ldr r1, _020B1068 ; =UNK_021CD920 + ldr r1, _020B1068 ; =oamCache_ + 0xB80 mov r0, #0xc0 mov r2, #0x400 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1070 ; =UNK_021CCDA0 + ldr r1, _020B1070 ; =oamCache_ mov r2, #0x100 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1074 ; =UNK_021CD2E0 + ldr r1, _020B1074 ; =oamCache_ + 0x540 mov r2, #0x100 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1078 ; =UNK_021CD820 + ldr r1, _020B1078 ; =oamCache_ + 0xA80 mov r2, #0x100 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B107C ; =UNK_021CD2A0 + ldr r1, _020B107C ; =oamCache_ + 0x500 mov r2, #0x40 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1080 ; =UNK_021CD7E0 + ldr r1, _020B1080 ; =oamCache_ + 0xA40 mov r2, #0x40 bl MIi_CpuClear16 ldr r0, _020B106C ; =0x0000FFFF - ldr r1, _020B1084 ; =UNK_021CDD20 + ldr r1, _020B1084 ; =oamCache_ + 0xF80 mov r2, #0x40 bl MIi_CpuClear16 add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B1060: .word UNK_021CCEA0 -_020B1064: .word UNK_021CD3E0 -_020B1068: .word UNK_021CD920 +_020B1060: .word oamCache_ + 0x100 +_020B1064: .word oamCache_ + 0x640 +_020B1068: .word oamCache_ + 0xB80 _020B106C: .word 0x0000FFFF -_020B1070: .word UNK_021CCDA0 -_020B1074: .word UNK_021CD2E0 -_020B1078: .word UNK_021CD820 -_020B107C: .word UNK_021CD2A0 -_020B1080: .word UNK_021CD7E0 -_020B1084: .word UNK_021CDD20 - arm_func_end FUN_020B0FC0 +_020B1070: .word oamCache_ +_020B1074: .word oamCache_ + 0x540 +_020B1078: .word oamCache_ + 0xA80 +_020B107C: .word oamCache_ + 0x500 +_020B1080: .word oamCache_ + 0xA40 +_020B1084: .word oamCache_ + 0xF80 + arm_func_end NNS_G2dInitOamManagerModule - ; CpuLoadOAMMain_ - arm_func_start FUN_020B1088 -FUN_020B1088: ; 0x020B1088 + arm_func_start CpuLoadOAMMain_ +CpuLoadOAMMain_: ; 0x020B1088 ldr ip, _020B1094 ; =MIi_CpuCopy16 add r1, r1, #0x7000000 bx r12 .balign 4 _020B1094: .word MIi_CpuCopy16 - arm_func_end FUN_020B1088 + arm_func_end CpuLoadOAMMain_ - ; CpuLoadOAMSub_ - arm_func_start FUN_020B1098 -FUN_020B1098: ; 0x020B1098 + arm_func_start CpuLoadOAMSub_ +CpuLoadOAMSub_: ; 0x020B1098 ldr r3, _020B10A8 ; =0x07000400 ldr ip, _020B10AC ; =MIi_CpuCopy16 add r1, r1, r3 @@ -720,5 +664,4 @@ FUN_020B1098: ; 0x020B1098 .balign 4 _020B10A8: .word 0x07000400 _020B10AC: .word MIi_CpuCopy16 - arm_func_end FUN_020B1098 - + arm_func_end CpuLoadOAMSub_ diff --git a/arm9/asm/NNS_G2D_g2d_oamsoftware.s b/arm9/asm/NNS_G2D_g2d_oamsoftware.s index 0929557b7..c89c47877 100644 --- a/arm9/asm/NNS_G2D_g2d_oamsoftware.s +++ b/arm9/asm/NNS_G2D_g2d_oamsoftware.s @@ -3,61 +3,52 @@ .section .rodata - ; pltFmtTbl$8430 - .global UNK_020FF8D0 -UNK_020FF8D0: ; 0x020FF8D0 + .global pltFmtTbl$8430 +pltFmtTbl$8430: ; 0x020FF8D0 .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 - ; static const in function - ; texSize_$8337 - .global UNK_020FF8D8 -UNK_020FF8D8: ; 0x020FF8D8 + + .global texSize_$8337 +texSize_$8337: ; 0x020FF8D8 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - ; gxTexSizeSTbl - .global UNK_020FF8F8 -UNK_020FF8F8: ; 0x020FF8F8 + .global gxTexSizeSTbl +gxTexSizeSTbl: ; 0x020FF8F8 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - ; gxTexSizeTTbl - .global UNK_020FF928 -UNK_020FF928: ; 0x020FF928 + .global gxTexSizeTTbl +gxTexSizeTTbl: ; 0x020FF928 .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 .section .data - ; zOffsetStep_ - .global UNK_02106590 -UNK_02106590: ; 0x02106590 + .global zOffsetStep_ +zOffsetStep_: ; 0x02106590 .byte 0x00, 0xF0, 0xFF, 0xFF .section .bss - ; bAutoZOffsetAdd_ - .global UNK_021CED08 -UNK_021CED08: ; 0x021CED08 + .global bAutoZOffsetAdd_ +bAutoZOffsetAdd_: ; 0x021CED08 .space 0x4 - ; s_pUVFlipCorrectFunc - .global UNK_021CED0C -UNK_021CED0C: ; 0x021CED0C + .global s_pUVFlipCorrectFunc +s_pUVFlipCorrectFunc: ; 0x021CED0C .space 0x4 - ; zOffset_ - .global UNK_021CED10 -UNK_021CED10: ; 0x021CED10 + .global zOffset_ +zOffset_: ; 0x021CED10 .space 0x4 .section .text - ; NNS_G2dDrawOneOam3DDirectWithPosFast - arm_func_start FUN_020B46B4 -FUN_020B46B4: ; 0x020B46B4 + arm_func_start NNS_G2dDrawOneOam3DDirectWithPosFast +NNS_G2dDrawOneOam3DDirectWithPosFast: ; 0x020B46B4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x1c add r12, sp, #0x4 @@ -70,7 +61,7 @@ FUN_020B46B4: ; 0x020B46B4 ldr r3, [sp, #0x38] mov r0, r7 str r12, [sp, #0x0] - bl FUN_020B498C + bl CalcSpriteParams_ ldr r2, [r7, #0x0] and r1, r2, #0x300 cmp r1, #0x100 @@ -83,17 +74,17 @@ _020B4708: cmp r1, #0x300 bne _020B478C ldr r0, _020B4914 ; =0xC000C000 - ldr r1, _020B4918 ; =UNK_021CED08 + ldr r1, _020B4918 ; =bAutoZOffsetAdd_ and r0, r2, r0 and r2, r0, #0xc0000000 mov r12, r2, lsr #0x1e and r0, r0, #0xc000 mov lr, r0, asr #0xe - ldr r3, _020B491C ; =UNK_020FF8AC + ldr r3, _020B491C ; =NNSi_objSizeWTbl ldr r0, [r1, #0x0] - ldr r2, _020B4920 ; =UNK_020FF894 + ldr r2, _020B4920 ; =NNSi_objSizeHTbl cmp r0, #0x0 - ldrne r0, _020B4924 ; =UNK_021CED10 + ldrne r0, _020B4924 ; =zOffset_ mov r12, r12, lsl #0x1 add r1, r2, lr, lsl #0x3 add r3, r3, lr, lsl #0x3 @@ -114,11 +105,11 @@ _020B4708: str r3, [r1, #0x0] b _020B47C0 _020B478C: - ldr r0, _020B4918 ; =UNK_021CED08 + ldr r0, _020B4918 ; =bAutoZOffsetAdd_ ldr r1, _020B4928 ; =0x04000470 ldr r0, [r0, #0x0] cmp r0, #0x0 - ldrne r0, _020B4924 ; =UNK_021CED10 + ldrne r0, _020B4924 ; =zOffset_ ldrne r0, [r0, #0x0] addne r2, r0, r4, lsl #0xc mov r0, r6, lsl #0xc @@ -199,14 +190,14 @@ _020B47C0: mov r2, #0x0 str r2, [r0, #0x0] ldr r1, _020B4940 ; =0x04000504 - ldr r0, _020B4918 ; =UNK_021CED08 + ldr r0, _020B4918 ; =bAutoZOffsetAdd_ str r2, [r1, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 addeq sp, sp, #0x1c ldmeqia sp!, {r4-r7,pc} - ldr r1, _020B4924 ; =UNK_021CED10 - ldr r0, _020B4944 ; =UNK_02106590 + ldr r1, _020B4924 ; =zOffset_ + ldr r0, _020B4944 ; =zOffsetStep_ ldr r2, [r1, #0x0] ldr r0, [r0, #0x0] add r0, r2, r0 @@ -215,10 +206,10 @@ _020B47C0: ldmia sp!, {r4-r7,pc} .balign 4 _020B4914: .word 0xC000C000 -_020B4918: .word UNK_021CED08 -_020B491C: .word UNK_020FF8AC -_020B4920: .word UNK_020FF894 -_020B4924: .word UNK_021CED10 +_020B4918: .word bAutoZOffsetAdd_ +_020B491C: .word NNSi_objSizeWTbl +_020B4920: .word NNSi_objSizeHTbl +_020B4924: .word zOffset_ _020B4928: .word 0x04000470 _020B492C: .word 0x0400046C _020B4930: .word 0x04000500 @@ -226,53 +217,48 @@ _020B4934: .word 0x04000488 _020B4938: .word 0x04000490 _020B493C: .word 0x00010040 _020B4940: .word 0x04000504 -_020B4944: .word UNK_02106590 - arm_func_end FUN_020B46B4 +_020B4944: .word zOffsetStep_ + arm_func_end NNS_G2dDrawOneOam3DDirectWithPosFast - ; NNSi_G2dGetOamSoftEmuAutoZOffsetStep - arm_func_start FUN_020B4948 -FUN_020B4948: ; 0x020B4948 - ldr r0, _020B4954 ; =UNK_02106590 + arm_func_start NNSi_G2dGetOamSoftEmuAutoZOffsetStep +NNSi_G2dGetOamSoftEmuAutoZOffsetStep: ; 0x020B4948 + ldr r0, _020B4954 ; =zOffsetStep_ ldr r0, [r0, #0x0] bx lr .balign 4 -_020B4954: .word UNK_02106590 - arm_func_end FUN_020B4948 +_020B4954: .word zOffsetStep_ + arm_func_end NNSi_G2dGetOamSoftEmuAutoZOffsetStep - ; NNSi_G2dSetOamSoftEmuAutoZOffsetStep - arm_func_start FUN_020B4958 -FUN_020B4958: ; 0x020B4958 - ldr r1, _020B4964 ; =UNK_02106590 + arm_func_start NNSi_G2dSetOamSoftEmuAutoZOffsetStep +NNSi_G2dSetOamSoftEmuAutoZOffsetStep: ; 0x020B4958 + ldr r1, _020B4964 ; =zOffsetStep_ str r0, [r1, #0x0] bx lr .balign 4 -_020B4964: .word UNK_02106590 - arm_func_end FUN_020B4958 +_020B4964: .word zOffsetStep_ + arm_func_end NNSi_G2dSetOamSoftEmuAutoZOffsetStep - ; NNSi_G2dResetOamSoftEmuAutoZOffset - arm_func_start FUN_020B4968 -FUN_020B4968: ; 0x020B4968 - ldr r0, _020B4978 ; =UNK_021CED10 + arm_func_start NNSi_G2dResetOamSoftEmuAutoZOffset +NNSi_G2dResetOamSoftEmuAutoZOffset: ; 0x020B4968 + ldr r0, _020B4978 ; =zOffset_ mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 -_020B4978: .word UNK_021CED10 - arm_func_end FUN_020B4968 +_020B4978: .word zOffset_ + arm_func_end NNSi_G2dResetOamSoftEmuAutoZOffset - ; NNSi_G2dSetOamSoftEmuAutoZOffsetFlag - arm_func_start FUN_020B497C -FUN_020B497C: ; 0x020B497C - ldr r1, _020B4988 ; =UNK_021CED08 + arm_func_start NNSi_G2dSetOamSoftEmuAutoZOffsetFlag +NNSi_G2dSetOamSoftEmuAutoZOffsetFlag: ; 0x020B497C + ldr r1, _020B4988 ; =bAutoZOffsetAdd_ str r0, [r1, #0x0] bx lr .balign 4 -_020B4988: .word UNK_021CED08 - arm_func_end FUN_020B497C +_020B4988: .word bAutoZOffsetAdd_ + arm_func_end NNSi_G2dSetOamSoftEmuAutoZOffsetFlag - ; CalcSpriteParams_ - arm_func_start FUN_020B498C -FUN_020B498C: ; 0x020B498C + arm_func_start CalcSpriteParams_ +CalcSpriteParams_: ; 0x020B498C stmdb sp!, {r4-r9,lr} sub sp, sp, #0xc mov r6, r0 @@ -283,9 +269,9 @@ FUN_020B498C: ; 0x020B498C and r0, r4, #0xc0000000 and r4, r4, #0xc000 mov lr, r0, lsr #0x1e - ldr r0, _020B4BD0 ; =UNK_020FF8AC + ldr r0, _020B4BD0 ; =NNSi_objSizeWTbl mov r12, r4, asr #0xe - ldr r8, _020B4BD4 ; =UNK_020FF894 + ldr r8, _020B4BD4 ; =NNSi_objSizeHTbl mov r4, lr, lsl #0x1 add r0, r0, r12, lsl #0x3 ldrh r9, [r4, r0] @@ -320,7 +306,7 @@ FUN_020B498C: ; 0x020B498C cmp r1, #0x4 moveq r1, r7, lsl #0xf moveq r7, r1, lsr #0x10 - ldr r1, _020B4BDC ; =UNK_020FF8D8 + ldr r1, _020B4BDC ; =texSize_$8337 ldr r1, [r1, r2, lsl #0x2] sub r1, r1, #0x1 and r1, r7, r1 @@ -338,9 +324,9 @@ _020B4A74: add r1, r1, #0x5 ldr r3, [r5, #0x8] mov lr, lr, lsl #0x10 - ldr sb, _020B4BE0 ; =UNK_020FF8F8 + ldr sb, _020B4BE0 ; =gxTexSizeSTbl mov r12, r12, lsr #0x10 - ldr r8, _020B4BE4 ; =UNK_020FF928 + ldr r8, _020B4BE4 ; =gxTexSizeTTbl add r1, r2, r7, lsl r1 mov r2, r3, lsl #0x1a orr r3, r2, r1, lsr #0x3 @@ -381,7 +367,7 @@ _020B4AE0: ldrne r2, [r0, #0x4] ldrne r1, [r0, #0xc] strne r1, [r0, #0x4] - ldr r1, _020B4BE8 ; =UNK_021CED0C + ldr r1, _020B4BE8 ; =s_pUVFlipCorrectFunc strne r2, [r0, #0xc] ldr r7, [r1, #0x0] cmp r7, #0x0 @@ -400,7 +386,7 @@ _020B4B60: mov r3, r1, lsl #0x12 ldr r1, [r5, #0xc] mov r0, r0, lsl #0x10 - ldr r2, _020B4BEC ; =UNK_020FF8D0 + ldr r2, _020B4BEC ; =pltFmtTbl$8430 mov r3, r3, lsr #0x1f cmp r1, #0x0 mov r0, r0, lsr #0x10 @@ -423,14 +409,13 @@ _020B4BA4: ldmia sp!, {r4-r9,pc} .balign 4 _020B4BCC: .word 0xC000C000 -_020B4BD0: .word UNK_020FF8AC -_020B4BD4: .word UNK_020FF894 +_020B4BD0: .word NNSi_objSizeWTbl +_020B4BD4: .word NNSi_objSizeHTbl _020B4BD8: .word 0x040004A8 -_020B4BDC: .word UNK_020FF8D8 -_020B4BE0: .word UNK_020FF8F8 -_020B4BE4: .word UNK_020FF928 -_020B4BE8: .word UNK_021CED0C -_020B4BEC: .word UNK_020FF8D0 +_020B4BDC: .word texSize_$8337 +_020B4BE0: .word gxTexSizeSTbl +_020B4BE4: .word gxTexSizeTTbl +_020B4BE8: .word s_pUVFlipCorrectFunc +_020B4BEC: .word pltFmtTbl$8430 _020B4BF0: .word 0x040004AC - arm_func_end FUN_020B498C - + arm_func_end CalcSpriteParams_ diff --git a/arm9/asm/NNS_G2D_g2d_palettetabl.s b/arm9/asm/NNS_G2D_g2d_palettetabl.s index bfa000067..a8d342cff 100644 --- a/arm9/asm/NNS_G2D_g2d_palettetabl.s +++ b/arm9/asm/NNS_G2D_g2d_palettetabl.s @@ -3,11 +3,9 @@ .section .text - ; _end - arm_func_start FUN_020B10B0 -FUN_020B10B0: ; 0x020B10B0 + arm_func_start NNS_G2dGetPaletteTableValue +NNS_G2dGetPaletteTableValue: ; 0x020B10B0 mov r1, r1, lsl #0x1 ldrh r0, [r0, r1] bx lr - arm_func_end FUN_020B10B0 - + arm_func_end NNS_G2dGetPaletteTableValue diff --git a/arm9/asm/NNS_G2D_g2d_renderer.s b/arm9/asm/NNS_G2D_g2d_renderer.s index d6213a1b6..5cd5eaac5 100644 --- a/arm9/asm/NNS_G2D_g2d_renderer.s +++ b/arm9/asm/NNS_G2D_g2d_renderer.s @@ -3,127 +3,90 @@ .section .data - ; firstSRTransformedMtxIdx_ - .global UNK_02106570 -UNK_02106570: ; 0x02106570 + .global firstSRTransformedMtxIdx_ +firstSRTransformedMtxIdx_: ; 0x02106570 .short -2 - .balign 4, 0 - ; currenVramTransferHandle_ - .global UNK_02106574 -UNK_02106574: ; 0x02106574 + + .global currenVramTransferHandle_ +currenVramTransferHandle_: ; 0x02106574 .word -1 - ; mtxI_ - .global UNK_02106578 -UNK_02106578: ; 0x02106578 + .global mtxI_ +mtxI_: ; 0x02106578 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .bss - ; currentMtxCachePos_ - .global UNK_021CDD60 -UNK_021CDD60: ; 0x021CDD60 + .global currentMtxCachePos_ +currentMtxCachePos_: ; 0x021CDD60 .space 0x4 - ; groupID_ - .global UNK_021CDD64 -UNK_021CDD64: ; 0x021CDD64 + .global groupID_ +groupID_: ; 0x021CDD64 .space 0x4 - ; bDonotUseSRTransform - .global UNK_021CDD68 -UNK_021CDD68: ; 0x021CDD68 + .global bDonotUseSRTransform +bDonotUseSRTransform: ; 0x021CDD68 .space 0x4 - ; pCurrentInstance_ - .global UNK_021CDD6C -UNK_021CDD6C: ; 0x021CDD6C + .global pCurrentInstance_ +pCurrentInstance_: ; 0x021CDD6C .space 0x4 - ; stackPos_ - .global UNK_021CDD70 -UNK_021CDD70: ; 0x021CDD70 + .global stackPos_ +stackPos_: ; 0x021CDD70 .space 0x4 - ; fxZStack_ - .global UNK_021CDD74 -UNK_021CDD74: ; 0x021CDD74 + .global fxZStack_ +fxZStack_: ; 0x021CDD74 .space 0x80 - ; mtxStateStack_ - .global UNK_021CDDF4 -UNK_021CDDF4: ; 0x021CDDF4 - .space 0x4 + .global mtxStateStack_ +mtxStateStack_: ; 0x021CDDF4 + .space 0x100 - ; mtxStateStack_ + 0x4 - .global UNK_021CDDF8 -UNK_021CDDF8: ; 0x021CDDF8 - .space 0xfc - - ; mtxStack_ - .global UNK_021CDEF4 -UNK_021CDEF4: ; 0x021CDEF4 - .space 0x10 - - ; mtxStack_ + 0x10 - .global UNK_021CDF04 -UNK_021CDF04: ; 0x021CDF04 - .space 0x4 - - ; mtxStack_ + 0x14 - .global UNK_021CDF08 -UNK_021CDF08: ; 0x021CDF08 - .space 0x2ec - - ; mtxStackFor2DHW_ - .global UNK_021CE1F4 -UNK_021CE1F4: ; 0x021CE1F4 + .global mtxStack_ +mtxStack_: ; 0x021CDEF4 .space 0x300 - ; mtxCacheBuffer_ - .global UNK_021CE4F4 -UNK_021CE4F4: ; 0x021CE4F4 + .global mtxStackFor2DHW_ +mtxStackFor2DHW_: ; 0x021CE1F4 + .space 0x300 + + .global mtxCacheBuffer_ +mtxCacheBuffer_: ; 0x021CE4F4 .space 0x400 - ; mcRenderState_ - .global UNK_021CE8F4 -UNK_021CE8F4: ; 0x021CE8F4 - .space 0x4 - - ; mcRenderState_ + 0x4 - .global UNK_021CE8F8 -UNK_021CE8F8: ; 0x021CE8F8 - .space 0x404 + .global mcRenderState_ +mcRenderState_: ; 0x021CE8F4 + .space 0x408 .section .text - ; NNS_G2dSetRendererImageProxy - arm_func_start thunk_FUN_020b5040 -thunk_FUN_020b5040: ; 0x020B2780 - ldr ip, _020B2788 ; =FUN_020B5040 + arm_func_start NNS_G2dSetRendererImageProxy +NNS_G2dSetRendererImageProxy: ; 0x020B2780 + ldr ip, _020B2788 ; =NNS_G2dSetRndCoreImageProxy bx r12 .balign 4 -_020B2788: .word FUN_020B5040 - arm_func_end thunk_FUN_020b5040 +_020B2788: .word NNS_G2dSetRndCoreImageProxy + arm_func_end NNS_G2dSetRendererImageProxy - ; _end - arm_func_start FUN_020B278C -FUN_020B278C: ; 0x020B278C + arm_func_start NNS_G2dGetRendererPaletteTbl +NNS_G2dGetRendererPaletteTbl: ; 0x020B278C ldr r0, [r0, #0x78] bx lr - arm_func_end FUN_020B278C + arm_func_end NNS_G2dGetRendererPaletteTbl - ; NNS_G2dRotZ - arm_func_start FUN_020B2794 -FUN_020B2794: ; 0x020B2794 + arm_func_start NNS_G2dRotZ +NNS_G2dRotZ: ; 0x020B2794 stmdb sp!, {lr} sub sp, sp, #0x1c - ldr r2, _020B2894 ; =UNK_021CDD70 + ldr r2, _020B2894 ; =stackPos_ mov lr, #0x0 ldr r12, [r2, #0x0] - ldr r3, _020B2898 ; =UNK_021CDEF4 + ldr r3, _020B2898 ; =mtxStack_ mov r2, #0x18 str r1, [sp, #0x0] str r1, [sp, #0xc] @@ -135,20 +98,20 @@ FUN_020B2794: ; 0x020B2794 str r3, [sp, #0x8] str lr, [sp, #0x10] str lr, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B289C ; =UNK_021CE1F4 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2894 ; =stackPos_ + ldr r1, _020B289C ; =mtxStackFor2DHW_ ldr r2, [r0, #0x0] mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 - bl FUN_020B423C - ldr r0, _020B28A0 ; =UNK_021CDD68 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B28A0 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B2824 - ldr r1, _020B28A4 ; =UNK_02106570 + ldr r1, _020B28A4 ; =firstSRTransformedMtxIdx_ ldr r0, _020B28A8 ; =0x0000FFFE ldrh r1, [r1, #0x0] cmp r1, r0 @@ -158,12 +121,12 @@ _020B2824: mov r0, #0x0 _020B2828: cmp r0, #0x0 - ldreq r1, _020B2894 ; =UNK_021CDD70 - ldreq r0, _020B28A4 ; =UNK_02106570 + ldreq r1, _020B2894 ; =stackPos_ + ldreq r0, _020B28A4 ; =firstSRTransformedMtxIdx_ ldreq r1, [r1, #0x0] streqh r1, [r0, #0x0] - ldr r0, _020B2894 ; =UNK_021CDD70 - ldr r1, _020B28AC ; =UNK_021CDDF4 + ldr r0, _020B2894 ; =stackPos_ + ldr r1, _020B28AC ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 add r12, r1, r0, lsr #0xd @@ -177,7 +140,7 @@ _020B2828: b _020B2870 ; case 2 b _020B2870 ; case 3 _020B2870: - ldr r0, _020B28B0 ; =UNK_021CDD64 + ldr r0, _020B28B0 ; =groupID_ mov r1, #0x1 ldrh r3, [r0, #0x0] add r2, r3, #0x1 @@ -188,26 +151,25 @@ _020B288C: add sp, sp, #0x1c ldmia sp!, {pc} .balign 4 -_020B2894: .word UNK_021CDD70 -_020B2898: .word UNK_021CDEF4 -_020B289C: .word UNK_021CE1F4 -_020B28A0: .word UNK_021CDD68 -_020B28A4: .word UNK_02106570 +_020B2894: .word stackPos_ +_020B2898: .word mtxStack_ +_020B289C: .word mtxStackFor2DHW_ +_020B28A0: .word bDonotUseSRTransform +_020B28A4: .word firstSRTransformedMtxIdx_ _020B28A8: .word 0x0000FFFE -_020B28AC: .word UNK_021CDDF4 -_020B28B0: .word UNK_021CDD64 - arm_func_end FUN_020B2794 +_020B28AC: .word mtxStateStack_ +_020B28B0: .word groupID_ + arm_func_end NNS_G2dRotZ - ; NNS_G2dScale - arm_func_start FUN_020B28B4 -FUN_020B28B4: ; 0x020B28B4 + arm_func_start NNS_G2dScale +NNS_G2dScale: ; 0x020B28B4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x1c - ldr r2, _020B29E8 ; =UNK_021CDD70 + ldr r2, _020B29E8 ; =stackPos_ mov r12, #0x0 ldr r3, [r2, #0x0] mov r4, r1 - ldr r2, _020B29EC ; =UNK_021CDEF4 + ldr r2, _020B29EC ; =mtxStack_ mov r1, #0x18 mla r1, r3, r1, r2 mov r5, r0 @@ -219,7 +181,7 @@ FUN_020B28B4: ; 0x020B28B4 str r4, [sp, #0xc] str r12, [sp, #0x10] str r12, [sp, #0x14] - bl FUN_020B423C + bl NNSi_G2dMtxConcat32 mov r0, r5 bl FX_Inv mov r1, #0x0 @@ -229,22 +191,22 @@ FUN_020B28B4: ; 0x020B28B4 str r1, [sp, #0x8] bl FX_Inv mov r3, #0x0 - ldr r1, _020B29E8 ; =UNK_021CDD70 + ldr r1, _020B29E8 ; =stackPos_ str r0, [sp, #0xc] ldr r2, [r1, #0x0] - ldr r1, _020B29F0 ; =UNK_021CE1F4 + ldr r1, _020B29F0 ; =mtxStackFor2DHW_ mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 str r3, [sp, #0x10] str r3, [sp, #0x14] - bl FUN_020B423C - ldr r0, _020B29F4 ; =UNK_021CDD68 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B29F4 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B2978 - ldr r1, _020B29F8 ; =UNK_02106570 + ldr r1, _020B29F8 ; =firstSRTransformedMtxIdx_ ldr r0, _020B29FC ; =0x0000FFFE ldrh r1, [r1, #0x0] cmp r1, r0 @@ -254,12 +216,12 @@ _020B2978: mov r0, #0x0 _020B297C: cmp r0, #0x0 - ldreq r1, _020B29E8 ; =UNK_021CDD70 - ldreq r0, _020B29F8 ; =UNK_02106570 + ldreq r1, _020B29E8 ; =stackPos_ + ldreq r0, _020B29F8 ; =firstSRTransformedMtxIdx_ ldreq r1, [r1, #0x0] streqh r1, [r0, #0x0] - ldr r0, _020B29E8 ; =UNK_021CDD70 - ldr r1, _020B2A00 ; =UNK_021CDDF4 + ldr r0, _020B29E8 ; =stackPos_ + ldr r1, _020B2A00 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r0, r0, lsl #0x10 add r12, r1, r0, lsr #0xd @@ -273,7 +235,7 @@ _020B297C: b _020B29C4 ; case 2 b _020B29C4 ; case 3 _020B29C4: - ldr r0, _020B2A04 ; =UNK_021CDD64 + ldr r0, _020B2A04 ; =groupID_ mov r1, #0x1 ldrh r3, [r0, #0x0] add r2, r3, #0x1 @@ -284,37 +246,36 @@ _020B29E0: add sp, sp, #0x1c ldmia sp!, {r4-r5,pc} .balign 4 -_020B29E8: .word UNK_021CDD70 -_020B29EC: .word UNK_021CDEF4 -_020B29F0: .word UNK_021CE1F4 -_020B29F4: .word UNK_021CDD68 -_020B29F8: .word UNK_02106570 +_020B29E8: .word stackPos_ +_020B29EC: .word mtxStack_ +_020B29F0: .word mtxStackFor2DHW_ +_020B29F4: .word bDonotUseSRTransform +_020B29F8: .word firstSRTransformedMtxIdx_ _020B29FC: .word 0x0000FFFE -_020B2A00: .word UNK_021CDDF4 -_020B2A04: .word UNK_021CDD64 - arm_func_end FUN_020B28B4 +_020B2A00: .word mtxStateStack_ +_020B2A04: .word groupID_ + arm_func_end NNS_G2dScale - ; NNS_G2dTranslate - arm_func_start FUN_020B2A08 -FUN_020B2A08: ; 0x020B2A08 + arm_func_start NNS_G2dTranslate +NNS_G2dTranslate: ; 0x020B2A08 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x1c - ldr r3, _020B2AEC ; =UNK_021CDD68 + ldr r3, _020B2AEC ; =bDonotUseSRTransform mov r4, r2 ldr r2, [r3, #0x0] cmp r2, #0x0 beq _020B2A6C - ldr r2, _020B2AF0 ; =UNK_021CDD70 + ldr r2, _020B2AF0 ; =stackPos_ mov r3, #0x18 ldr r2, [r2, #0x0] - ldr lr, _020B2AF4 ; =UNK_021CDF04 + ldr lr, _020B2AF4 ; =mtxStack_ + 0x10 mul r5, r2, r3 ldr r3, [lr, r5] - ldr ip, _020B2AF8 ; =UNK_021CDF08 + ldr ip, _020B2AF8 ; =mtxStack_ + 0x14 add r0, r3, r0 str r0, [lr, r5] ldr r0, [r12, r5] - ldr r3, _020B2AFC ; =UNK_021CDD74 + ldr r3, _020B2AFC ; =fxZStack_ add r0, r0, r1 str r0, [r12, r5] ldr r0, [r3, r2, lsl #0x2] @@ -323,10 +284,10 @@ FUN_020B2A08: ; 0x020B2A08 str r0, [r3, r2, lsl #0x2] ldmia sp!, {r4-r5,pc} _020B2A6C: - ldr r2, _020B2AF0 ; =UNK_021CDD70 + ldr r2, _020B2AF0 ; =stackPos_ mov lr, #0x1000 ldr r12, [r2, #0x0] - ldr r3, _020B2B00 ; =UNK_021CDEF4 + ldr r3, _020B2B00 ; =mtxStack_ mov r2, #0x18 str r1, [sp, #0x14] mla r1, r12, r2, r3 @@ -338,17 +299,17 @@ _020B2A6C: str r3, [sp, #0x4] str r3, [sp, #0x8] str lr, [sp, #0xc] - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r1, _020B2B04 ; =UNK_021CE1F4 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2AF0 ; =stackPos_ + ldr r1, _020B2B04 ; =mtxStackFor2DHW_ ldr r2, [r0, #0x0] mov r0, #0x18 mla r1, r2, r0, r1 add r0, sp, #0x0 mov r2, r1 - bl FUN_020B423C - ldr r0, _020B2AF0 ; =UNK_021CDD70 - ldr r2, _020B2AFC ; =UNK_021CDD74 + bl NNSi_G2dMtxConcat32 + ldr r0, _020B2AF0 ; =stackPos_ + ldr r2, _020B2AFC ; =fxZStack_ ldr r1, [r0, #0x0] ldr r0, [r2, r1, lsl #0x2] add r0, r0, r4 @@ -356,27 +317,26 @@ _020B2A6C: add sp, sp, #0x1c ldmia sp!, {r4-r5,pc} .balign 4 -_020B2AEC: .word UNK_021CDD68 -_020B2AF0: .word UNK_021CDD70 -_020B2AF4: .word UNK_021CDF04 -_020B2AF8: .word UNK_021CDF08 -_020B2AFC: .word UNK_021CDD74 -_020B2B00: .word UNK_021CDEF4 -_020B2B04: .word UNK_021CE1F4 - arm_func_end FUN_020B2A08 +_020B2AEC: .word bDonotUseSRTransform +_020B2AF0: .word stackPos_ +_020B2AF4: .word mtxStack_ + 0x10 +_020B2AF8: .word mtxStack_ + 0x14 +_020B2AFC: .word fxZStack_ +_020B2B00: .word mtxStack_ +_020B2B04: .word mtxStackFor2DHW_ + arm_func_end NNS_G2dTranslate - ; NNS_G2dPopMtx - arm_func_start FUN_020B2B08 -FUN_020B2B08: ; 0x020B2B08 - ldr r0, _020B2B4C ; =UNK_021CDD70 + arm_func_start NNS_G2dPopMtx +NNS_G2dPopMtx: ; 0x020B2B08 + ldr r0, _020B2B4C ; =stackPos_ ldr r0, [r0, #0x0] cmp r0, #0x0 movle r0, #0x1 movgt r0, #0x0 cmp r0, #0x0 bxne lr - ldr r1, _020B2B4C ; =UNK_021CDD70 - ldr r0, _020B2B50 ; =UNK_02106570 + ldr r1, _020B2B4C ; =stackPos_ + ldr r0, _020B2B50 ; =firstSRTransformedMtxIdx_ ldr r3, [r1, #0x0] ldrh r2, [r0, #0x0] sub r3, r3, #0x1 @@ -386,21 +346,20 @@ FUN_020B2B08: ; 0x020B2B08 strgth r1, [r0, #0x0] bx lr .balign 4 -_020B2B4C: .word UNK_021CDD70 -_020B2B50: .word UNK_02106570 +_020B2B4C: .word stackPos_ +_020B2B50: .word firstSRTransformedMtxIdx_ _020B2B54: .word 0x0000FFFE - arm_func_end FUN_020B2B08 + arm_func_end NNS_G2dPopMtx - ; NNS_G2dPushMtx - arm_func_start FUN_020B2B58 -FUN_020B2B58: ; 0x020B2B58 + arm_func_start NNS_G2dPushMtx +NNS_G2dPushMtx: ; 0x020B2B58 stmdb sp!, {r4-r10,lr} - ldr r0, _020B2D74 ; =UNK_021CDD6C + ldr r0, _020B2D74 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x7c] ands r0, r0, #0x1 bne _020B2CA4 - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ ldr r1, [r0, #0x0] mov r0, r1, lsl #0x10 add r5, r1, #0x1 @@ -410,34 +369,34 @@ FUN_020B2B58: ; 0x020B2B58 movge r0, #0x0 cmp r0, #0x0 beq _020B2C44 - ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, _020B2D7C ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B2BE4 - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 + ldr r1, _020B2D80 ; =fxZStack_ mul r8, r3, r0 - ldr r6, _020B2D84 ; =UNK_021CDF04 + ldr r6, _020B2D84 ; =mtxStack_ + 0x10 mul r7, r5, r0 ldr r2, [r6, r8] ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 + ldr r3, _020B2D88 ; =mtxStack_ + 0x14 str r2, [r6, r7] ldr r2, [r3, r8] str r0, [r1, r5, lsl #0x2] str r2, [r3, r7] b _020B2C3C _020B2BE4: - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r7, _020B2D80 ; =UNK_021CDD74 + ldr r7, _020B2D80 ; =fxZStack_ mul lr, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 + ldr r1, _020B2D8C ; =mtxStack_ mul r12, r5, r0 - ldr r8, _020B2D90 ; =UNK_021CE1F4 + ldr r8, _020B2D90 ; =mtxStackFor2DHW_ add r10, r1, lr ldr r6, [r7, r2, lsl #0x2] add r9, r1, r12 @@ -453,11 +412,11 @@ _020B2BE4: ldmia r7, {r0-r1} stmia r6, {r0-r1} _020B2C3C: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ str r5, [r0, #0x0] _020B2C44: - ldr r0, _020B2D78 ; =UNK_021CDD70 - ldr r2, _020B2D94 ; =UNK_021CDDF4 + ldr r0, _020B2D78 ; =stackPos_ + ldr r2, _020B2D94 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r5, r4, lsl #0x3 mov r0, r0, lsl #0x10 @@ -471,7 +430,7 @@ _020B2C44: strh r0, [r3, #0x2] ldrh r2, [r4, #0x4] ldrh r0, [r4, #0x6] - ldr r1, _020B2D98 ; =UNK_021CDDF8 + ldr r1, _020B2D98 ; =mtxStateStack_ + 0x4 strh r2, [r3, #0x4] strh r0, [r3, #0x6] ldrh r0, [r1, r5] @@ -481,7 +440,7 @@ _020B2C44: strneh r0, [r1, r6] ldmia sp!, {r4-r10,pc} _020B2CA4: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ ldr r0, [r0, #0x0] add r4, r0, #0x1 cmp r4, #0x20 @@ -489,34 +448,34 @@ _020B2CA4: movge r0, #0x0 cmp r0, #0x0 ldmeqia sp!, {r4-r10,pc} - ldr r0, _020B2D7C ; =UNK_021CDD68 + ldr r0, _020B2D7C ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B2D10 - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r3, [r1, #0x0] - ldr r1, _020B2D80 ; =UNK_021CDD74 + ldr r1, _020B2D80 ; =fxZStack_ mul r7, r3, r0 - ldr r5, _020B2D84 ; =UNK_021CDF04 + ldr r5, _020B2D84 ; =mtxStack_ + 0x10 mul r6, r4, r0 ldr r2, [r5, r7] ldr r0, [r1, r3, lsl #0x2] - ldr r3, _020B2D88 ; =UNK_021CDF08 + ldr r3, _020B2D88 ; =mtxStack_ + 0x14 str r2, [r5, r6] ldr r2, [r3, r7] str r0, [r1, r4, lsl #0x2] str r2, [r3, r6] b _020B2D68 _020B2D10: - ldr r1, _020B2D78 ; =UNK_021CDD70 + ldr r1, _020B2D78 ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr ip, _020B2D80 ; =UNK_021CDD74 + ldr ip, _020B2D80 ; =fxZStack_ mul r9, r2, r0 - ldr r1, _020B2D8C ; =UNK_021CDEF4 + ldr r1, _020B2D8C ; =mtxStack_ mul r8, r4, r0 - ldr lr, _020B2D90 ; =UNK_021CE1F4 + ldr lr, _020B2D90 ; =mtxStackFor2DHW_ add r6, r1, r9 ldr r5, [r12, r2, lsl #0x2] add r7, r1, r8 @@ -532,54 +491,53 @@ _020B2D10: stmia lr, {r0-r1} str r5, [r12, r4, lsl #0x2] _020B2D68: - ldr r0, _020B2D78 ; =UNK_021CDD70 + ldr r0, _020B2D78 ; =stackPos_ str r4, [r0, #0x0] ldmia sp!, {r4-r10,pc} .balign 4 -_020B2D74: .word UNK_021CDD6C -_020B2D78: .word UNK_021CDD70 -_020B2D7C: .word UNK_021CDD68 -_020B2D80: .word UNK_021CDD74 -_020B2D84: .word UNK_021CDF04 -_020B2D88: .word UNK_021CDF08 -_020B2D8C: .word UNK_021CDEF4 -_020B2D90: .word UNK_021CE1F4 -_020B2D94: .word UNK_021CDDF4 -_020B2D98: .word UNK_021CDDF8 - arm_func_end FUN_020B2B58 +_020B2D74: .word pCurrentInstance_ +_020B2D78: .word stackPos_ +_020B2D7C: .word bDonotUseSRTransform +_020B2D80: .word fxZStack_ +_020B2D84: .word mtxStack_ + 0x10 +_020B2D88: .word mtxStack_ + 0x14 +_020B2D8C: .word mtxStack_ +_020B2D90: .word mtxStackFor2DHW_ +_020B2D94: .word mtxStateStack_ +_020B2D98: .word mtxStateStack_ + 0x4 + arm_func_end NNS_G2dPushMtx - ; NNS_G2dDrawMultiCellAnimation - arm_func_start FUN_020B2D9C -FUN_020B2D9C: ; 0x020B2D9C + arm_func_start NNS_G2dDrawMultiCellAnimation +NNS_G2dDrawMultiCellAnimation: ; 0x020B2D9C stmdb sp!, {r4-r6,lr} mov r4, r0 ldrh r0, [r4, #0x56] cmp r0, #0x0 bne _020B2DBC add r0, r4, #0x30 - bl FUN_020B2E78 + bl NNS_G2dDrawMultiCell ldmia sp!, {r4-r6,pc} _020B2DBC: - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r4, #0x56] ands r0, r0, #0x8 beq _020B2E0C - ldr r0, _020B2E70 ; =UNK_021CDD6C + ldr r0, _020B2E70 ; =pCurrentInstance_ ldrsh r6, [r4, #0x52] ldr r0, [r0, #0x0] ldrsh r5, [r4, #0x50] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B2E70 ; =UNK_021CDD6C + ldr r0, _020B2E70 ; =pCurrentInstance_ rsbne r5, r5, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r6, r6, #0x0 mov r0, r5, lsl #0xc mov r1, r6, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B2E0C: ldrh r0, [r4, #0x56] ands r0, r0, #0x4 @@ -593,7 +551,7 @@ _020B2E0C: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B2E40: ldrh r0, [r4, #0x56] ands r0, r0, #0x2 @@ -601,21 +559,20 @@ _020B2E40: ldr r0, [r4, #0x48] ldr r1, [r4, #0x4c] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B2E5C: add r0, r4, #0x30 - bl FUN_020B2E78 + bl NNS_G2dDrawMultiCell mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldmia sp!, {r4-r6,pc} .balign 4 -_020B2E70: .word UNK_021CDD6C +_020B2E70: .word pCurrentInstance_ _020B2E74: .word FX_SinCosTable_ - arm_func_end FUN_020B2D9C + arm_func_end NNS_G2dDrawMultiCellAnimation - ; NNS_G2dDrawMultiCell - arm_func_start FUN_020B2E78 -FUN_020B2E78: ; 0x020B2E78 + arm_func_start NNS_G2dDrawMultiCell +NNS_G2dDrawMultiCell: ; 0x020B2E78 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r5, r0 @@ -627,7 +584,7 @@ FUN_020B2E78: ; 0x020B2E78 ldrh r0, [r0, #0x2] cmp r0, #0x0 bls _020B2ED0 - ldr r3, _020B3174 ; =UNK_021CE8F4 + ldr r3, _020B3174 ; =mcRenderState_ mov r4, r2 _020B2EAC: add r0, r3, r2, lsl #0x2 @@ -640,22 +597,22 @@ _020B2EAC: cmp r2, r1 blo _020B2EAC _020B2ED0: - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ mov r6, #0x1 ldr r1, [r0, #0x0] - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ str r6, [r0, #0x404] ldr r0, [r1, #0x80] cmp r0, #0x0 beq _020B2FD8 - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep str r0, [sp, #0x0] mov r0, r6 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep ldr r2, [r5, #0x0] mov r7, #0x0 ldrh r0, [r2, #0x0] @@ -670,30 +627,30 @@ _020B2F28: and r0, r0, #0xff00 mov r0, r0, lsl #0x8 mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNS_G2dPushMtx + ldr r0, _020B3178 ; =pCurrentInstance_ ldrsh r4, [r10, #0x4] ldr r0, [r0, #0x0] ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ rsbne r10, r10, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r4, r4, #0x0 mov r2, r11 mov r0, r10, lsl #0xc mov r1, r4, lsl #0xc - bl FUN_020B2A08 + bl NNS_G2dTranslate mov r0, #0x58 mla r0, r8, r0, r9 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, r6 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldr r2, [r5, #0x0] add r0, r7, #0x1 mov r0, r0, lsl #0x10 @@ -703,10 +660,10 @@ _020B2F28: blo _020B2F28 _020B2FC0: mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag ldr r0, [sp, #0x0] - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset b _020B3088 _020B2FD8: ldr r2, [r5, #0x0] @@ -724,29 +681,29 @@ _020B2FF4: and r0, r0, #0xff00 mov r0, r0, lsl #0x8 mov r8, r0, lsr #0x10 - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ strh r8, [r0, #0x0] - bl FUN_020B2B58 - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNS_G2dPushMtx + ldr r0, _020B3178 ; =pCurrentInstance_ ldrsh r4, [r10, #0x4] ldr r0, [r0, #0x0] ldrsh r10, [r10, #0x2] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ rsbne r10, r10, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r4, r4, #0x0 ldr r2, [sp, #0x4] mov r0, r10, lsl #0xc mov r1, r4, lsl #0xc - bl FUN_020B2A08 + bl NNS_G2dTranslate mla r0, r8, r11, r9 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, r6 - bl FUN_020B2B08 + bl NNS_G2dPopMtx ldr r2, [r5, #0x0] add r0, r7, #0x1 mov r0, r0, lsl #0x10 @@ -755,26 +712,26 @@ _020B2FF4: cmp r7, r1 blo _020B2FF4 _020B3088: - ldr r0, _020B3174 ; =UNK_021CE8F4 + ldr r0, _020B3174 ; =mcRenderState_ mov r1, #0x0 str r1, [r0, #0x404] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} _020B309C: - ldr r0, _020B3178 ; =UNK_021CDD6C + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r7, [r5, #0xc] ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] cmp r0, #0x0 beq _020B312C - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep mov r6, r0 mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B3178 ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B3178 ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep ldr r0, [r5, #0x0] mov r4, #0x0 ldrh r0, [r0, #0x0] @@ -783,7 +740,7 @@ _020B309C: mov r8, #0x28 _020B30EC: mla r0, r4, r8, r7 - bl FUN_020B3474 + bl DrawNode_ ldr r1, [r5, #0x0] add r0, r4, #0x1 mov r0, r0, lsl #0x10 @@ -793,10 +750,10 @@ _020B30EC: blo _020B30EC _020B3110: mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag mov r0, r6 - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset add sp, sp, #0xc ldmia sp!, {r4-r11,pc} _020B312C: @@ -809,7 +766,7 @@ _020B312C: mov r6, #0x28 _020B3148: mla r0, r4, r6, r7 - bl FUN_020B3474 + bl DrawNode_ ldr r1, [r5, #0x0] add r0, r4, #0x1 mov r0, r0, lsl #0x10 @@ -820,102 +777,99 @@ _020B3148: add sp, sp, #0xc ldmia sp!, {r4-r11,pc} .balign 4 -_020B3174: .word UNK_021CE8F4 -_020B3178: .word UNK_021CDD6C - arm_func_end FUN_020B2E78 +_020B3174: .word mcRenderState_ +_020B3178: .word pCurrentInstance_ + arm_func_end NNS_G2dDrawMultiCell - ; NNS_G2dDrawCellAnimation - arm_func_start FUN_020B317C -FUN_020B317C: ; 0x020B317C + arm_func_start NNS_G2dDrawCellAnimation +NNS_G2dDrawCellAnimation: ; 0x020B317C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r1, _020B31EC ; =UNK_021CDD6C + ldr r1, _020B31EC ; =pCurrentInstance_ mov r5, r0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x80] cmp r1, #0x0 beq _020B31E0 - bl FUN_020B4948 + bl NNSi_G2dGetOamSoftEmuAutoZOffsetStep mov r4, r0 mov r0, #0x1 - bl FUN_020B497C - ldr r0, _020B31EC ; =UNK_021CDD6C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag + ldr r0, _020B31EC ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x80] - bl FUN_020B4958 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep mov r0, r5 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, #0x0 - bl FUN_020B497C + bl NNSi_G2dSetOamSoftEmuAutoZOffsetFlag mov r0, r4 - bl FUN_020B4958 - bl FUN_020B4968 + bl NNSi_G2dSetOamSoftEmuAutoZOffsetStep + bl NNSi_G2dResetOamSoftEmuAutoZOffset add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020B31E0: - bl FUN_020B3554 + bl DrawCellAnimationImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B31EC: .word UNK_021CDD6C - arm_func_end FUN_020B317C +_020B31EC: .word pCurrentInstance_ + arm_func_end NNS_G2dDrawCellAnimation - ; NNS_G2dEndRendering - arm_func_start FUN_020B31F0 -FUN_020B31F0: ; 0x020B31F0 + arm_func_start NNS_G2dEndRendering +NNS_G2dEndRendering: ; 0x020B31F0 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r1, _020B3260 ; =0x04000448 mov r2, #0x1 - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ str r2, [r1, #0x0] ldr r2, [r0, #0x0] ldr r3, [r2, #0x7c] cmp r3, #0x0 beq _020B324C ands r0, r3, #0x1 - ldrne r0, _020B3268 ; =UNK_021CDD68 + ldrne r0, _020B3268 ; =bDonotUseSRTransform movne r1, #0x0 strne r1, [r0, #0x0] ands r0, r3, #0x2 beq _020B323C mov r0, #0x0 str r0, [r2, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering _020B323C: - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x7c] _020B324C: - ldr r0, _020B3264 ; =UNK_021CDD6C + ldr r0, _020B3264 ; =pCurrentInstance_ mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 _020B3260: .word 0x04000448 -_020B3264: .word UNK_021CDD6C -_020B3268: .word UNK_021CDD68 - arm_func_end FUN_020B31F0 +_020B3264: .word pCurrentInstance_ +_020B3268: .word bDonotUseSRTransform + arm_func_end NNS_G2dEndRendering - ; NNS_G2dBeginRendering - arm_func_start FUN_020B326C -FUN_020B326C: ; 0x020B326C + arm_func_start NNS_G2dBeginRendering +NNS_G2dBeginRendering: ; 0x020B326C stmdb sp!, {r4-r8,lr} - ldr r5, _020B330C ; =UNK_021CDD60 - ldr r3, _020B3310 ; =UNK_021CDD6C + ldr r5, _020B330C ; =currentMtxCachePos_ + ldr r3, _020B3310 ; =pCurrentInstance_ ldrh r6, [r5, #0x0] - ldr r2, _020B3314 ; =UNK_021CDD70 + ldr r2, _020B3314 ; =stackPos_ mov r4, #0x0 ldr r7, _020B3318 ; =0x0000FFFE - ldr r1, _020B331C ; =UNK_02106570 + ldr r1, _020B331C ; =firstSRTransformedMtxIdx_ str r0, [r3, #0x0] str r4, [r2, #0x0] strh r7, [r1, #0x0] cmp r6, #0x0 ble _020B32D0 - ldr r8, _020B3320 ; =UNK_021CE4F4 + ldr r8, _020B3320 ; =mtxCacheBuffer_ mvn r7, #0x0 mov r6, #0x10 _020B32AC: @@ -929,10 +883,10 @@ _020B32AC: cmp r4, r0 blt _020B32AC _020B32D0: - ldr r4, _020B330C ; =UNK_021CDD60 + ldr r4, _020B330C ; =currentMtxCachePos_ mov r0, #0x0 - ldr r3, _020B3324 ; =UNK_021CDD64 - ldr r1, _020B3328 ; =UNK_021CDDF4 + ldr r3, _020B3324 ; =groupID_ + ldr r1, _020B3328 ; =mtxStateStack_ mov r2, #0x100 strh r0, [r4, #0x0] strh r0, [r3, #0x0] @@ -942,24 +896,23 @@ _020B32D0: ldr r0, _020B3330 ; =0x04000454 str r2, [r1, #0x0] str r2, [r0, #0x0] - bl FUN_020B4178 + bl NNSi_G2dIdentity ldmia sp!, {r4-r8,pc} .balign 4 -_020B330C: .word UNK_021CDD60 -_020B3310: .word UNK_021CDD6C -_020B3314: .word UNK_021CDD70 +_020B330C: .word currentMtxCachePos_ +_020B3310: .word pCurrentInstance_ +_020B3314: .word stackPos_ _020B3318: .word 0x0000FFFE -_020B331C: .word UNK_02106570 -_020B3320: .word UNK_021CE4F4 -_020B3324: .word UNK_021CDD64 -_020B3328: .word UNK_021CDDF4 +_020B331C: .word firstSRTransformedMtxIdx_ +_020B3320: .word mtxCacheBuffer_ +_020B3324: .word groupID_ +_020B3328: .word mtxStateStack_ _020B332C: .word 0x04000444 _020B3330: .word 0x04000454 - arm_func_end FUN_020B326C + arm_func_end NNS_G2dBeginRendering - ; NNS_G2dInitRenderSurface - arm_func_start FUN_020B3334 -FUN_020B3334: ; 0x020B3334 + arm_func_start NNS_G2dInitRenderSurface +NNS_G2dInitRenderSurface: ; 0x020B3334 stmdb sp!, {r4,lr} mov r4, r0 mov r1, r4 @@ -969,39 +922,37 @@ FUN_020B3334: ; 0x020B3334 mov r0, #0x1 str r0, [r4, #0x10] mov r0, #0x3 - ldr r1, _020B3380 ; =FUN_020B3EE0 + ldr r1, _020B3380 ; =RndCoreCBFuncBeforeCell_ str r0, [r4, #0x14] - ldr r0, _020B3384 ; =FUN_020B3E48 + ldr r0, _020B3384 ; =RndCoreCBFuncAfterCell_ str r1, [r4, #0x18] - ldr r1, _020B3388 ; =FUN_020B3C40 + ldr r1, _020B3388 ; =RndCoreCBFuncBeforeOBJ_ str r0, [r4, #0x1c] - ldr r0, _020B338C ; =FUN_020B3B90 + ldr r0, _020B338C ; =RndCoreCBFuncAfterOBJ_ str r1, [r4, #0x20] str r0, [r4, #0x24] ldmia sp!, {r4,pc} .balign 4 -_020B3380: .word FUN_020B3EE0 -_020B3384: .word FUN_020B3E48 -_020B3388: .word FUN_020B3C40 -_020B338C: .word FUN_020B3B90 - arm_func_end FUN_020B3334 +_020B3380: .word RndCoreCBFuncBeforeCell_ +_020B3384: .word RndCoreCBFuncAfterCell_ +_020B3388: .word RndCoreCBFuncBeforeOBJ_ +_020B338C: .word RndCoreCBFuncAfterOBJ_ + arm_func_end NNS_G2dInitRenderSurface - ; _end - arm_func_start FUN_020B3390 -FUN_020B3390: ; 0x020B3390 + arm_func_start NNS_G2dAddRendererTargetSurface +NNS_G2dAddRendererTargetSurface: ; 0x020B3390 ldr r2, [r0, #0x70] str r2, [r1, #0x30] str r1, [r0, #0x70] bx lr - arm_func_end FUN_020B3390 + arm_func_end NNS_G2dAddRendererTargetSurface - ; NNS_G2dInitRenderer - arm_func_start FUN_020B33A0 -FUN_020B33A0: ; 0x020B33A0 + arm_func_start NNS_G2dInitRenderer +NNS_G2dInitRenderer: ; 0x020B33A0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r4, r0 - bl FUN_020B504C + bl NNS_G2dInitRndCore mov r7, #0x0 str r7, [r4, #0x70] str r7, [r4, #0x74] @@ -1013,11 +964,11 @@ FUN_020B33A0: ; 0x020B33A0 strh r7, [r4, #0x8a] str r7, [r4, #0x8c] str r7, [r4, #0x90] - ldr r1, _020B3454 ; =UNK_021CDD70 + ldr r1, _020B3454 ; =stackPos_ strh r7, [r4, #0x94] ldr r2, _020B3458 ; =0x0000FFFE - ldr r0, _020B345C ; =UNK_02106570 - ldr r6, _020B3460 ; =UNK_021CE4F4 + ldr r0, _020B345C ; =firstSRTransformedMtxIdx_ + ldr r6, _020B3460 ; =mtxCacheBuffer_ str r7, [r1, #0x0] strh r2, [r0, #0x0] mvn r5, #0x0 @@ -1031,33 +982,32 @@ _020B3400: cmp r7, #0x20 add r6, r6, #0x20 blt _020B3400 - ldr ip, _020B3464 ; =UNK_021CDD60 + ldr ip, _020B3464 ; =currentMtxCachePos_ mov r0, #0x0 - ldr r3, _020B3468 ; =UNK_021CDD64 - ldr r1, _020B346C ; =UNK_021CDDF4 + ldr r3, _020B3468 ; =groupID_ + ldr r1, _020B346C ; =mtxStateStack_ mov r2, #0x100 strh r0, [r12, #0x0] strh r0, [r3, #0x0] bl MIi_CpuClearFast - ldr r0, _020B3470 ; =UNK_021CDD68 + ldr r0, _020B3470 ; =bDonotUseSRTransform mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B3454: .word UNK_021CDD70 +_020B3454: .word stackPos_ _020B3458: .word 0x0000FFFE -_020B345C: .word UNK_02106570 -_020B3460: .word UNK_021CE4F4 -_020B3464: .word UNK_021CDD60 -_020B3468: .word UNK_021CDD64 -_020B346C: .word UNK_021CDDF4 -_020B3470: .word UNK_021CDD68 - arm_func_end FUN_020B33A0 +_020B345C: .word firstSRTransformedMtxIdx_ +_020B3460: .word mtxCacheBuffer_ +_020B3464: .word currentMtxCachePos_ +_020B3468: .word groupID_ +_020B346C: .word mtxStateStack_ +_020B3470: .word bDonotUseSRTransform + arm_func_end NNS_G2dInitRenderer - ; DrawNode_ - arm_func_start FUN_020B3474 -FUN_020B3474: ; 0x020B3474 + arm_func_start DrawNode_ +DrawNode_: ; 0x020B3474 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -1066,26 +1016,26 @@ FUN_020B3474: ; 0x020B3474 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r7,pc} ldr r4, [r5, #0x0] - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r5, #0x1e] ands r0, r0, #0x8 beq _020B34E4 - ldr r0, _020B354C ; =UNK_021CDD6C + ldr r0, _020B354C ; =pCurrentInstance_ ldrsh r7, [r5, #0x1a] ldr r0, [r0, #0x0] ldrsh r6, [r5, #0x18] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B354C ; =UNK_021CDD6C + ldr r0, _020B354C ; =pCurrentInstance_ rsbne r6, r6, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r7, r7, #0x0 mov r0, r6, lsl #0xc mov r1, r7, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B34E4: ldrh r0, [r5, #0x1e] ands r0, r0, #0x4 @@ -1099,7 +1049,7 @@ _020B34E4: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B3518: ldrh r0, [r5, #0x1e] ands r0, r0, #0x2 @@ -1107,22 +1057,21 @@ _020B3518: ldr r0, [r5, #0x10] ldr r1, [r5, #0x14] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B3534: mov r0, r4 - bl FUN_020B3554 + bl DrawCellAnimationImpl_ mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B354C: .word UNK_021CDD6C +_020B354C: .word pCurrentInstance_ _020B3550: .word FX_SinCosTable_ - arm_func_end FUN_020B3474 + arm_func_end DrawNode_ - ; DrawCellAnimationImpl_ - arm_func_start FUN_020B3554 -FUN_020B3554: ; 0x020B3554 + arm_func_start DrawCellAnimationImpl_ +DrawCellAnimationImpl_: ; 0x020B3554 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r0 @@ -1137,41 +1086,41 @@ FUN_020B3554: ; 0x020B3554 moveq r0, #0x0 cmp r0, #0x0 beq _020B35B0 - ldr r1, _020B36B4 ; =UNK_02106574 + ldr r1, _020B36B4 ; =currenVramTransferHandle_ mov r0, r4 str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 + bl DrawCellImpl_ + ldr r0, _020B36B4 ; =currenVramTransferHandle_ mvn r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} _020B35B0: mov r0, r4 - bl FUN_020B36C0 + bl DrawCellImpl_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} _020B35C0: - bl FUN_020B2B58 + bl NNS_G2dPushMtx ldrh r0, [r5, #0x4a] ands r0, r0, #0x8 beq _020B3610 - ldr r0, _020B36B8 ; =UNK_021CDD6C + ldr r0, _020B36B8 ; =pCurrentInstance_ ldrsh r7, [r5, #0x46] ldr r0, [r0, #0x0] ldrsh r6, [r5, #0x44] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 - ldr r0, _020B36B8 ; =UNK_021CDD6C + ldr r0, _020B36B8 ; =pCurrentInstance_ rsbne r6, r6, #0x0 ldr r0, [r0, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 rsbne r7, r7, #0x0 mov r0, r6, lsl #0xc mov r1, r7, lsl #0xc mov r2, #0x0 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020B3610: ldrh r0, [r5, #0x4a] ands r0, r0, #0x4 @@ -1185,7 +1134,7 @@ _020B3610: mov r1, r0, lsl #0x1 ldrsh r0, [r2, r3] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ _020B3644: ldrh r0, [r5, #0x4a] ands r0, r0, #0x2 @@ -1193,7 +1142,7 @@ _020B3644: ldr r0, [r5, #0x3c] ldr r1, [r5, #0x40] mov r2, #0x1000 - bl FUN_020B28B4 + bl NNS_G2dScale _020B3660: ldr r2, [r5, #0x34] mvn r0, #0x0 @@ -1202,34 +1151,33 @@ _020B3660: moveq r0, #0x0 cmp r0, #0x0 beq _020B369C - ldr r1, _020B36B4 ; =UNK_02106574 + ldr r1, _020B36B4 ; =currenVramTransferHandle_ mov r0, r4 str r2, [r1, #0x0] - bl FUN_020B36C0 - ldr r0, _020B36B4 ; =UNK_02106574 + bl DrawCellImpl_ + ldr r0, _020B36B4 ; =currenVramTransferHandle_ mvn r1, #0x0 str r1, [r0, #0x0] b _020B36A4 _020B369C: mov r0, r4 - bl FUN_020B36C0 + bl DrawCellImpl_ _020B36A4: mov r0, #0x1 - bl FUN_020B2B08 + bl NNS_G2dPopMtx add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B36B4: .word UNK_02106574 -_020B36B8: .word UNK_021CDD6C +_020B36B4: .word currenVramTransferHandle_ +_020B36B8: .word pCurrentInstance_ _020B36BC: .word FX_SinCosTable_ - arm_func_end FUN_020B3554 + arm_func_end DrawCellAnimationImpl_ - ; DrawCellImpl_ - arm_func_start FUN_020B36C0 -FUN_020B36C0: ; 0x020B36C0 + arm_func_start DrawCellImpl_ +DrawCellImpl_: ; 0x020B36C0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 - ldr r5, _020B3B54 ; =UNK_021CDD6C + ldr r5, _020B3B54 ; =pCurrentInstance_ mov r10, r0 ldr r0, [r5, #0x0] ldr r1, [r0, #0x7c] @@ -1240,12 +1188,12 @@ FUN_020B36C0: ; 0x020B36C0 ldr r0, [r9, #0x14] cmp r0, #0x0 beq _020B3840 - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform mov r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B3720 - ldr r2, _020B3B5C ; =UNK_02106570 + ldr r2, _020B3B5C ; =firstSRTransformedMtxIdx_ ldr r0, _020B3B60 ; =0x0000FFFE ldrh r2, [r2, #0x0] cmp r2, r0 @@ -1256,63 +1204,63 @@ _020B3720: _020B3724: cmp r0, #0x0 beq _020B37AC - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldr r1, [r0, #0x404] cmp r1, #0x0 beq _020B3788 ldrh r1, [r0, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 + ldr r0, _020B3B68 ; =mcRenderState_ + 0x4 ldr r1, [r0, r1, lsl #0x2] cmp r1, #0x0 bne _020B37AC - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r2, _020B3B70 ; =UNK_021CDDF4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B6C ; =stackPos_ + ldr r2, _020B3B70 ; =mtxStateStack_ ldr r0, [r0, #0x0] - ldr r1, _020B3B64 ; =UNK_021CE8F4 + ldr r1, _020B3B64 ; =mcRenderState_ mov r0, r0, lsl #0x10 mov r0, r0, lsr #0xd ldrh r3, [r2, r0] - ldr r4, _020B3B74 ; =UNK_021CE4F4 + ldr r4, _020B3B74 ; =mtxCacheBuffer_ ldrh r2, [r1, #0x0] - ldr r0, _020B3B68 ; =UNK_021CE8F8 + ldr r0, _020B3B68 ; =mcRenderState_ + 0x4 add r1, r4, r3, lsl #0x5 str r1, [r0, r2, lsl #0x2] b _020B37AC _020B3788: - bl FUN_020B4010 - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B70 ; =UNK_021CDDF4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B6C ; =stackPos_ + ldr r1, _020B3B70 ; =mtxStateStack_ ldr r0, [r0, #0x0] - ldr r2, _020B3B74 ; =UNK_021CE4F4 + ldr r2, _020B3B74 ; =mtxCacheBuffer_ mov r0, r0, lsl #0x10 mov r0, r0, lsr #0xd ldrh r0, [r1, r0] add r1, r2, r0, lsl #0x5 _020B37AC: - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r3, _020B3B78 ; =UNK_021CDEF4 + ldreq r0, _020B3B6C ; =stackPos_ + ldreq r3, _020B3B78 ; =mtxStack_ ldreq r2, [r0, #0x0] moveq r0, #0x18 mlaeq r0, r2, r0, r3 beq _020B37FC - ldr r2, _020B3B6C ; =UNK_021CDD70 + ldr r2, _020B3B6C ; =stackPos_ mov r0, #0x18 ldr r2, [r2, #0x0] - ldr r3, _020B3B7C ; =UNK_021CDF04 + ldr r3, _020B3B7C ; =mtxStack_ + 0x10 mul r4, r2, r0 - ldr r2, _020B3B80 ; =UNK_021CDF08 + ldr r2, _020B3B80 ; =mtxStack_ + 0x14 ldr r3, [r3, r4] - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r2, [r2, r4] str r3, [r0, #0x10] str r2, [r0, #0x14] _020B37FC: - bl FUN_020B4FAC - ldr r1, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx2D + ldr r1, _020B3B88 ; =currenVramTransferHandle_ mvn r0, #0x0 ldr r1, [r1, #0x0] cmp r1, r0 @@ -1321,44 +1269,44 @@ _020B37FC: cmp r0, #0x0 beq _020B3830 mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B3830: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B3840: - ldr r0, _020B3B6C ; =UNK_021CDD70 - ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r0, _020B3B6C ; =stackPos_ + ldr r1, _020B3B8C ; =fxZStack_ ldr r2, [r0, #0x0] ldr r0, [sp, #0x0] ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dSetRndCore3DSoftSpriteZvalue + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3B6C ; =UNK_021CDD70 - ldreq r2, _020B3B78 ; =UNK_021CDEF4 + ldreq r0, _020B3B6C ; =stackPos_ + ldreq r2, _020B3B78 ; =mtxStack_ ldreq r1, [r0, #0x0] moveq r0, #0x18 mlaeq r0, r1, r0, r2 beq _020B38A8 - ldr r1, _020B3B6C ; =UNK_021CDD70 + ldr r1, _020B3B6C ; =stackPos_ mov r0, #0x18 ldr r1, [r1, #0x0] - ldr r2, _020B3B7C ; =UNK_021CDF04 + ldr r2, _020B3B7C ; =mtxStack_ + 0x10 mul r3, r1, r0 - ldr r1, _020B3B80 ; =UNK_021CDF08 + ldr r1, _020B3B80 ; =mtxStack_ + 0x14 ldr r2, [r2, r3] - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r1, [r1, r3] str r2, [r0, #0x10] str r1, [r0, #0x14] _020B38A8: - bl FUN_020B4FC4 - ldr r1, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx3D + ldr r1, _020B3B88 ; =currenVramTransferHandle_ mvn r0, #0x0 ldr r1, [r1, #0x0] cmp r1, r0 @@ -1367,20 +1315,20 @@ _020B38A8: cmp r0, #0x0 beq _020B38DC mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B38DC: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020B38EC: cmp r9, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r11,pc} - ldr r4, _020B3B6C ; =UNK_021CDD70 - ldr fp, _020B3B78 ; =UNK_021CDEF4 + ldr r4, _020B3B6C ; =stackPos_ + ldr fp, _020B3B78 ; =mtxStack_ mov r7, #0x0 mov r6, #0x1 _020B3908: @@ -1394,19 +1342,19 @@ _020B3908: mov r1, r9 str r9, [r8, #0x74] mov r0, r8 - bl FUN_020B4F9C + bl NNS_G2dSetRndCoreSurface ldr r1, [r9, #0x28] ldr r2, [r9, #0x2c] mov r0, r8 - bl FUN_020B5034 + bl NNS_G2dSetRndCoreOamRegisterFunc mov r0, r8 - bl FUN_020B4E0C - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dRndCoreBeginRendering + ldr r0, _020B3B58 ; =bDonotUseSRTransform mov r1, r7 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020B3978 - ldr r0, _020B3B5C ; =UNK_02106570 + ldr r0, _020B3B5C ; =firstSRTransformedMtxIdx_ ldrh r2, [r0, #0x0] ldr r0, _020B3B60 ; =0x0000FFFE cmp r2, r0 @@ -1417,41 +1365,41 @@ _020B3978: _020B397C: cmp r0, #0x0 beq _020B3A04 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldr r0, [r0, #0x404] cmp r0, #0x0 beq _020B39E4 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ ldrh r1, [r0, #0x0] add r0, r0, r1, lsl #0x2 ldr r1, [r0, #0x4] cmp r1, #0x0 bne _020B3A04 - bl FUN_020B4010 - ldr r0, _020B3B64 ; =UNK_021CE8F4 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache + ldr r0, _020B3B64 ; =mcRenderState_ ldr r2, [r4, #0x0] ldrh r1, [r0, #0x0] mov r0, r2, lsl #0x10 mov r2, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldr r0, _020B3B70 ; =mtxStateStack_ ldrh r3, [r0, r2] - ldr r0, _020B3B64 ; =UNK_021CE8F4 + ldr r0, _020B3B64 ; =mcRenderState_ add r2, r0, r1, lsl #0x2 - ldr r0, _020B3B74 ; =UNK_021CE4F4 + ldr r0, _020B3B74 ; =mtxCacheBuffer_ add r1, r0, r3, lsl #0x5 str r1, [r2, #0x4] b _020B3A04 _020B39E4: - bl FUN_020B4010 + bl NNSi_G2dMCMStoreCurrentMtxToMtxCache ldr r0, [r4, #0x0] mov r0, r0, lsl #0x10 mov r1, r0, lsr #0xd - ldr r0, _020B3B70 ; =UNK_021CDDF4 + ldr r0, _020B3B70 ; =mtxStateStack_ ldrh r1, [r0, r1] - ldr r0, _020B3B74 ; =UNK_021CE4F4 + ldr r0, _020B3B74 ; =mtxCacheBuffer_ add r1, r0, r1, lsl #0x5 _020B3A04: - ldr r0, _020B3B58 ; =UNK_021CDD68 + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 ldreq r2, [r4, #0x0] @@ -1461,15 +1409,15 @@ _020B3A04: ldr r2, [r4, #0x0] mov r0, #0x18 mla r8, r2, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r3, [r8, #0x10] mov r2, r0 str r3, [r2, #0x10] ldr r3, [r8, #0x14] str r3, [r2, #0x14] _020B3A44: - bl FUN_020B4FAC - ldr r0, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx2D + ldr r0, _020B3B88 ; =currenVramTransferHandle_ ldr r1, [r0, #0x0] mvn r0, #0x0 cmp r1, r0 @@ -1478,30 +1426,30 @@ _020B3A44: cmp r0, #0x0 beq _020B3A74 mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer b _020B3A7C _020B3A74: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell _020B3A7C: ldr r0, [r5, #0x0] str r7, [r0, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering b _020B3B40 _020B3A8C: ldr r8, [r5, #0x0] mov r1, r9 mov r0, r8 str r9, [r8, #0x74] - bl FUN_020B4F9C + bl NNS_G2dSetRndCoreSurface mov r0, r8 - bl FUN_020B4E0C + bl NNS_G2dRndCoreBeginRendering ldr r2, [r4, #0x0] - ldr r1, _020B3B8C ; =UNK_021CDD74 + ldr r1, _020B3B8C ; =fxZStack_ ldr r0, [sp, #0x0] ldr r1, [r1, r2, lsl #0x2] - bl FUN_020B4FA4 - ldr r0, _020B3B58 ; =UNK_021CDD68 + bl NNS_G2dSetRndCore3DSoftSpriteZvalue + ldr r0, _020B3B58 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 ldreq r1, [r4, #0x0] @@ -1511,15 +1459,15 @@ _020B3A8C: ldr r1, [r4, #0x0] mov r0, #0x18 mla r3, r1, r0, r11 - ldr r0, _020B3B84 ; =UNK_02106578 + ldr r0, _020B3B84 ; =mtxI_ ldr r2, [r3, #0x10] mov r1, r0 str r2, [r1, #0x10] ldr r2, [r3, #0x14] str r2, [r1, #0x14] _020B3AFC: - bl FUN_020B4FC4 - ldr r0, _020B3B88 ; =UNK_02106574 + bl NNS_G2dSetRndCoreCurrentMtx3D + ldr r0, _020B3B88 ; =currenVramTransferHandle_ ldr r1, [r0, #0x0] mvn r0, #0x0 cmp r1, r0 @@ -1528,15 +1476,15 @@ _020B3AFC: cmp r0, #0x0 beq _020B3B2C mov r0, r10 - bl FUN_020B4BF4 + bl NNS_G2dRndCoreDrawCellVramTransfer b _020B3B34 _020B3B2C: mov r0, r10 - bl FUN_020B4CDC + bl NNS_G2dRndCoreDrawCell _020B3B34: ldr r0, [r5, #0x0] str r7, [r0, #0x74] - bl FUN_020B4DA0 + bl NNS_G2dRndCoreEndRendering _020B3B40: ldr r9, [r9, #0x30] cmp r9, #0x0 @@ -1544,29 +1492,28 @@ _020B3B40: add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} .balign 4 -_020B3B54: .word UNK_021CDD6C -_020B3B58: .word UNK_021CDD68 -_020B3B5C: .word UNK_02106570 +_020B3B54: .word pCurrentInstance_ +_020B3B58: .word bDonotUseSRTransform +_020B3B5C: .word firstSRTransformedMtxIdx_ _020B3B60: .word 0x0000FFFE -_020B3B64: .word UNK_021CE8F4 -_020B3B68: .word UNK_021CE8F8 -_020B3B6C: .word UNK_021CDD70 -_020B3B70: .word UNK_021CDDF4 -_020B3B74: .word UNK_021CE4F4 -_020B3B78: .word UNK_021CDEF4 -_020B3B7C: .word UNK_021CDF04 -_020B3B80: .word UNK_021CDF08 -_020B3B84: .word UNK_02106578 -_020B3B88: .word UNK_02106574 -_020B3B8C: .word UNK_021CDD74 - arm_func_end FUN_020B36C0 +_020B3B64: .word mcRenderState_ +_020B3B68: .word mcRenderState_ + 0x4 +_020B3B6C: .word stackPos_ +_020B3B70: .word mtxStateStack_ +_020B3B74: .word mtxCacheBuffer_ +_020B3B78: .word mtxStack_ +_020B3B7C: .word mtxStack_ + 0x10 +_020B3B80: .word mtxStack_ + 0x14 +_020B3B84: .word mtxI_ +_020B3B88: .word currenVramTransferHandle_ +_020B3B8C: .word fxZStack_ + arm_func_end DrawCellImpl_ - ; RndCoreCBFuncAfterOBJ_ - arm_func_start FUN_020B3B90 -FUN_020B3B90: ; 0x020B3B90 + arm_func_start RndCoreCBFuncAfterOBJ_ +RndCoreCBFuncAfterOBJ_: ; 0x020B3B90 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 - ldr r0, _020B3C24 ; =UNK_021CDD6C + ldr r0, _020B3C24 ; =pCurrentInstance_ mov r12, r1 ldr r0, [r0, #0x0] mov r3, r2 @@ -1575,23 +1522,23 @@ FUN_020B3B90: ; 0x020B3B90 cmp r2, #0x0 addeq sp, sp, #0x8 ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3C28 ; =UNK_021CDD68 + ldr r2, _020B3C28 ; =bDonotUseSRTransform ldr r2, [r2, #0x0] cmp r2, #0x0 - ldreq r2, _020B3C2C ; =UNK_021CDD70 - ldreq r4, _020B3C30 ; =UNK_021CDEF4 + ldreq r2, _020B3C2C ; =stackPos_ + ldreq r4, _020B3C30 ; =mtxStack_ ldreq lr, [r2, #0x0] moveq r2, #0x18 mlaeq r6, lr, r2, r4 beq _020B3C0C - ldr lr, _020B3C2C ; =UNK_021CDD70 + ldr lr, _020B3C2C ; =stackPos_ mov r2, #0x18 ldr lr, [lr, #0x0] - ldr r4, _020B3C34 ; =UNK_021CDF04 + ldr r4, _020B3C34 ; =mtxStack_ + 0x10 mul r5, lr, r2 - ldr r2, _020B3C38 ; =UNK_021CDF08 + ldr r2, _020B3C38 ; =mtxStack_ + 0x14 ldr r4, [r4, r5] - ldr r6, _020B3C3C ; =UNK_02106578 + ldr r6, _020B3C3C ; =mtxI_ ldr r2, [r2, r5] str r4, [r6, #0x10] str r2, [r6, #0x14] @@ -1603,40 +1550,39 @@ _020B3C0C: add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3C24: .word UNK_021CDD6C -_020B3C28: .word UNK_021CDD68 -_020B3C2C: .word UNK_021CDD70 -_020B3C30: .word UNK_021CDEF4 -_020B3C34: .word UNK_021CDF04 -_020B3C38: .word UNK_021CDF08 -_020B3C3C: .word UNK_02106578 - arm_func_end FUN_020B3B90 +_020B3C24: .word pCurrentInstance_ +_020B3C28: .word bDonotUseSRTransform +_020B3C2C: .word stackPos_ +_020B3C30: .word mtxStack_ +_020B3C34: .word mtxStack_ + 0x10 +_020B3C38: .word mtxStack_ + 0x14 +_020B3C3C: .word mtxI_ + arm_func_end RndCoreCBFuncAfterOBJ_ - ; RndCoreCBFuncBeforeOBJ_ - arm_func_start FUN_020B3C40 -FUN_020B3C40: ; 0x020B3C40 + arm_func_start RndCoreCBFuncBeforeOBJ_ +RndCoreCBFuncBeforeOBJ_: ; 0x020B3C40 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 - ldr r3, _020B3E2C ; =UNK_021CDD6C + ldr r3, _020B3E2C ; =pCurrentInstance_ add r4, r0, #0x38 ldr r0, [r3, #0x0] mov r6, r1 mov r5, r2 - bl FUN_020B278C + bl NNS_G2dGetRendererPaletteTbl cmp r0, #0x0 beq _020B3C90 ldrh r1, [r4, #0x4] and r1, r1, #0xf000 mov r1, r1, lsl #0x4 mov r1, r1, lsr #0x10 - bl FUN_020B10B0 + bl NNS_G2dGetPaletteTableValue ldr r1, [r4, #0x4] and r0, r0, #0xf bic r1, r1, #0xf000 orr r0, r1, r0, lsl #0xc str r0, [r4, #0x4] _020B3C90: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] cmp r0, #0x0 @@ -1651,7 +1597,7 @@ _020B3C90: orr r0, r1, r0, lsl #0xa str r0, [r4, #0x4] _020B3CC8: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x2 @@ -1663,7 +1609,7 @@ _020B3CC8: orr r0, r1, r0, lsl #0xc str r0, [r4, #0x4] _020B3CF4: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x10 @@ -1678,7 +1624,7 @@ _020B3CF4: orr r0, r2, r0, lsl #0xc str r0, [r4, #0x4] _020B3D2C: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x4 @@ -1692,7 +1638,7 @@ _020B3D2C: biceq r0, r0, #0x1000 streq r0, [r4, #0x0] _020B3D60: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r1, [r0, #0x0] ldr r0, [r1, #0x84] ands r0, r0, #0x8 @@ -1710,30 +1656,30 @@ _020B3D60: orr r0, r0, r1, lsl #0xc strh r0, [r4, #0x4] _020B3DA4: - ldr r0, _020B3E2C ; =UNK_021CDD6C + ldr r0, _020B3E2C ; =pCurrentInstance_ ldr r0, [r0, #0x0] ldr r1, [r0, #0x74] ldr r2, [r1, #0x40] cmp r2, #0x0 addeq sp, sp, #0x8 ldmeqia sp!, {r4-r6,pc} - ldr r2, _020B3E30 ; =UNK_021CDD68 + ldr r2, _020B3E30 ; =bDonotUseSRTransform ldr r2, [r2, #0x0] cmp r2, #0x0 - ldreq r2, _020B3E34 ; =UNK_021CDD70 - ldreq r4, _020B3E38 ; =UNK_021CDEF4 + ldreq r2, _020B3E34 ; =stackPos_ + ldreq r4, _020B3E38 ; =mtxStack_ ldreq r3, [r2, #0x0] moveq r2, #0x18 mlaeq r4, r3, r2, r4 beq _020B3E10 - ldr r3, _020B3E34 ; =UNK_021CDD70 + ldr r3, _020B3E34 ; =stackPos_ mov r2, #0x18 ldr r4, [r3, #0x0] - ldr r3, _020B3E3C ; =UNK_021CDF04 + ldr r3, _020B3E3C ; =mtxStack_ + 0x10 mul r12, r4, r2 - ldr r2, _020B3E40 ; =UNK_021CDF08 + ldr r2, _020B3E40 ; =mtxStack_ + 0x14 ldr r3, [r3, r12] - ldr r4, _020B3E44 ; =UNK_02106578 + ldr r4, _020B3E44 ; =mtxI_ ldr r2, [r2, r12] str r3, [r4, #0x10] str r2, [r4, #0x14] @@ -1746,43 +1692,42 @@ _020B3E10: add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3E2C: .word UNK_021CDD6C -_020B3E30: .word UNK_021CDD68 -_020B3E34: .word UNK_021CDD70 -_020B3E38: .word UNK_021CDEF4 -_020B3E3C: .word UNK_021CDF04 -_020B3E40: .word UNK_021CDF08 -_020B3E44: .word UNK_02106578 - arm_func_end FUN_020B3C40 +_020B3E2C: .word pCurrentInstance_ +_020B3E30: .word bDonotUseSRTransform +_020B3E34: .word stackPos_ +_020B3E38: .word mtxStack_ +_020B3E3C: .word mtxStack_ + 0x10 +_020B3E40: .word mtxStack_ + 0x14 +_020B3E44: .word mtxI_ + arm_func_end RndCoreCBFuncBeforeOBJ_ - ; RndCoreCBFuncAfterCell_ - arm_func_start FUN_020B3E48 -FUN_020B3E48: ; 0x020B3E48 + arm_func_start RndCoreCBFuncAfterCell_ +RndCoreCBFuncAfterCell_: ; 0x020B3E48 stmdb sp!, {r4,lr} - ldr r0, _020B3EC4 ; =UNK_021CDD6C + ldr r0, _020B3EC4 ; =pCurrentInstance_ mov r2, r1 ldr r0, [r0, #0x0] ldr r1, [r0, #0x74] ldr r3, [r1, #0x3c] cmp r3, #0x0 ldmeqia sp!, {r4,pc} - ldr r3, _020B3EC8 ; =UNK_021CDD68 + ldr r3, _020B3EC8 ; =bDonotUseSRTransform ldr r3, [r3, #0x0] cmp r3, #0x0 - ldreq r3, _020B3ECC ; =UNK_021CDD70 - ldreq lr, _020B3ED0 ; =UNK_021CDEF4 + ldreq r3, _020B3ECC ; =stackPos_ + ldreq lr, _020B3ED0 ; =mtxStack_ ldreq r12, [r3, #0x0] moveq r3, #0x18 mlaeq r3, r12, r3, lr beq _020B3EB8 - ldr ip, _020B3ECC ; =UNK_021CDD70 + ldr ip, _020B3ECC ; =stackPos_ mov r3, #0x18 ldr r12, [r12, #0x0] - ldr lr, _020B3ED4 ; =UNK_021CDF04 + ldr lr, _020B3ED4 ; =mtxStack_ + 0x10 mul r4, r12, r3 - ldr ip, _020B3ED8 ; =UNK_021CDF08 + ldr ip, _020B3ED8 ; =mtxStack_ + 0x14 ldr lr, [lr, r4] - ldr r3, _020B3EDC ; =UNK_02106578 + ldr r3, _020B3EDC ; =mtxI_ ldr r12, [r12, r4] str lr, [r3, #0x10] str r12, [r3, #0x14] @@ -1791,20 +1736,19 @@ _020B3EB8: blx r12 ldmia sp!, {r4,pc} .balign 4 -_020B3EC4: .word UNK_021CDD6C -_020B3EC8: .word UNK_021CDD68 -_020B3ECC: .word UNK_021CDD70 -_020B3ED0: .word UNK_021CDEF4 -_020B3ED4: .word UNK_021CDF04 -_020B3ED8: .word UNK_021CDF08 -_020B3EDC: .word UNK_02106578 - arm_func_end FUN_020B3E48 +_020B3EC4: .word pCurrentInstance_ +_020B3EC8: .word bDonotUseSRTransform +_020B3ECC: .word stackPos_ +_020B3ED0: .word mtxStack_ +_020B3ED4: .word mtxStack_ + 0x10 +_020B3ED8: .word mtxStack_ + 0x14 +_020B3EDC: .word mtxI_ + arm_func_end RndCoreCBFuncAfterCell_ - ; RndCoreCBFuncBeforeCell_ - arm_func_start FUN_020B3EE0 -FUN_020B3EE0: ; 0x020B3EE0 + arm_func_start RndCoreCBFuncBeforeCell_ +RndCoreCBFuncBeforeCell_: ; 0x020B3EE0 stmdb sp!, {r4-r6,lr} - ldr r2, _020B3FF4 ; =UNK_021CDD6C + ldr r2, _020B3FF4 ; =pCurrentInstance_ mov r6, r0 ldr r0, [r2, #0x0] mov r5, r1 @@ -1812,23 +1756,23 @@ FUN_020B3EE0: ; 0x020B3EE0 ldr r0, [r4, #0x34] cmp r0, #0x0 beq _020B3F7C - ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, _020B3FF8 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r1, _020B4000 ; =UNK_021CDEF4 + ldreq r0, _020B3FFC ; =stackPos_ + ldreq r1, _020B4000 ; =mtxStack_ ldreq r2, [r0, #0x0] moveq r0, #0x18 mlaeq r1, r2, r0, r1 beq _020B3F54 - ldr r1, _020B3FFC ; =UNK_021CDD70 + ldr r1, _020B3FFC ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 + ldr r1, _020B4004 ; =mtxStack_ + 0x10 mul r3, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r0, _020B4008 ; =mtxStack_ + 0x14 ldr r2, [r1, r3] - ldr r1, _020B400C ; =UNK_02106578 + ldr r1, _020B400C ; =mtxI_ ldr r0, [r0, r3] str r2, [r1, #0x10] str r0, [r1, #0x14] @@ -1847,28 +1791,28 @@ _020B3F7C: ldr r0, [r4, #0x38] cmp r0, #0x0 ldmeqia sp!, {r4-r6,pc} - ldr r0, _020B3FF8 ; =UNK_021CDD68 + ldr r0, _020B3FF8 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 - ldreq r0, _020B3FFC ; =UNK_021CDD70 - ldreq r2, _020B4000 ; =UNK_021CDEF4 + ldreq r0, _020B3FFC ; =stackPos_ + ldreq r2, _020B4000 ; =mtxStack_ ldreq r1, [r0, #0x0] moveq r0, #0x18 mlaeq r3, r1, r0, r2 beq _020B3FD8 - ldr r1, _020B3FFC ; =UNK_021CDD70 + ldr r1, _020B3FFC ; =stackPos_ mov r0, #0x18 ldr r2, [r1, #0x0] - ldr r1, _020B4004 ; =UNK_021CDF04 + ldr r1, _020B4004 ; =mtxStack_ + 0x10 mul r6, r2, r0 - ldr r0, _020B4008 ; =UNK_021CDF08 + ldr r0, _020B4008 ; =mtxStack_ + 0x14 ldr r1, [r1, r6] - ldr r3, _020B400C ; =UNK_02106578 + ldr r3, _020B400C ; =mtxI_ ldr r0, [r0, r6] str r1, [r3, #0x10] str r0, [r3, #0x14] _020B3FD8: - ldr r0, _020B3FF4 ; =UNK_021CDD6C + ldr r0, _020B3FF4 ; =pCurrentInstance_ ldr r6, [r4, #0x38] ldr r0, [r0, #0x0] mov r1, r4 @@ -1876,22 +1820,21 @@ _020B3FD8: blx r6 ldmia sp!, {r4-r6,pc} .balign 4 -_020B3FF4: .word UNK_021CDD6C -_020B3FF8: .word UNK_021CDD68 -_020B3FFC: .word UNK_021CDD70 -_020B4000: .word UNK_021CDEF4 -_020B4004: .word UNK_021CDF04 -_020B4008: .word UNK_021CDF08 -_020B400C: .word UNK_02106578 - arm_func_end FUN_020B3EE0 +_020B3FF4: .word pCurrentInstance_ +_020B3FF8: .word bDonotUseSRTransform +_020B3FFC: .word stackPos_ +_020B4000: .word mtxStack_ +_020B4004: .word mtxStack_ + 0x10 +_020B4008: .word mtxStack_ + 0x14 +_020B400C: .word mtxI_ + arm_func_end RndCoreCBFuncBeforeCell_ - ; NNSi_G2dMCMStoreCurrentMtxToMtxCache - arm_func_start FUN_020B4010 -FUN_020B4010: ; 0x020B4010 + arm_func_start NNSi_G2dMCMStoreCurrentMtxToMtxCache +NNSi_G2dMCMStoreCurrentMtxToMtxCache: ; 0x020B4010 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4158 ; =UNK_021CDDF4 + ldr r0, _020B4154 ; =stackPos_ + ldr r1, _020B4158 ; =mtxStateStack_ ldr r0, [r0, #0x0] mov r2, #0x1 mov r0, r0, lsl #0x10 @@ -1905,46 +1848,46 @@ _020B4044: cmp r2, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} - ldr r0, _020B415C ; =UNK_021CDD60 + ldr r0, _020B415C ; =currentMtxCachePos_ mov r2, #0x10 ldrh r4, [r0, #0x0] cmp r4, #0x1f addcc r1, r4, #0x1 strcch r1, [r0, #0x0] - ldr r0, _020B4160 ; =UNK_021CE4F4 + ldr r0, _020B4160 ; =mtxCacheBuffer_ ldrh r5, [r3, #0x2] add r0, r0, r4, lsl #0x5 add r1, r0, #0x10 mvn r0, #0x0 strh r4, [r3, #0x0] bl MIi_CpuClearFast - ldr r0, _020B4154 ; =UNK_021CDD70 - ldr r1, _020B4164 ; =UNK_021CDD68 + ldr r0, _020B4154 ; =stackPos_ + ldr r1, _020B4164 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] ldr r2, [r1, #0x0] mov r1, r0, lsl #0x10 cmp r2, #0x0 - ldr r3, _020B4158 ; =UNK_021CDDF4 + ldr r3, _020B4158 ; =mtxStateStack_ mov r1, r1, lsr #0xd ldrh r1, [r3, r1] - ldr r3, _020B4160 ; =UNK_021CE4F4 + ldr r3, _020B4160 ; =mtxCacheBuffer_ moveq r2, #0x18 add r1, r3, r1, lsl #0x5 - ldreq r3, _020B4168 ; =UNK_021CE1F4 + ldreq r3, _020B4168 ; =mtxStackFor2DHW_ mlaeq r12, r0, r2, r3 beq _020B40E4 mov r2, #0x18 mul r3, r0, r2 - ldr r2, _020B416C ; =UNK_021CDF04 - ldr r0, _020B4170 ; =UNK_021CDF08 + ldr r2, _020B416C ; =mtxStack_ + 0x10 + ldr r0, _020B4170 ; =mtxStack_ + 0x14 ldr r2, [r2, r3] - ldr ip, _020B4174 ; =UNK_02106578 + ldr ip, _020B4174 ; =mtxI_ ldr r0, [r0, r3] str r2, [r12, #0x10] str r0, [r12, #0x14] _020B40E4: ldr r2, [r12, #0x0] - ldr r0, _020B4154 ; =UNK_021CDD70 + ldr r0, _020B4154 ; =stackPos_ str r2, [r1, #0x0] ldr r2, [r12, #0x4] str r2, [r1, #0x4] @@ -1957,7 +1900,7 @@ _020B40E4: movs lr, r0, lsr #0x10 addmi sp, sp, #0x4 ldmmiia sp!, {r4-r5,pc} - ldr r3, _020B4158 ; =UNK_021CDDF4 + ldr r3, _020B4158 ; =mtxStateStack_ mov r0, #0x3 _020B4124: add r2, r3, lr, lsl #0x3 @@ -1973,41 +1916,40 @@ _020B4124: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4154: .word UNK_021CDD70 -_020B4158: .word UNK_021CDDF4 -_020B415C: .word UNK_021CDD60 -_020B4160: .word UNK_021CE4F4 -_020B4164: .word UNK_021CDD68 -_020B4168: .word UNK_021CE1F4 -_020B416C: .word UNK_021CDF04 -_020B4170: .word UNK_021CDF08 -_020B4174: .word UNK_02106578 - arm_func_end FUN_020B4010 +_020B4154: .word stackPos_ +_020B4158: .word mtxStateStack_ +_020B415C: .word currentMtxCachePos_ +_020B4160: .word mtxCacheBuffer_ +_020B4164: .word bDonotUseSRTransform +_020B4168: .word mtxStackFor2DHW_ +_020B416C: .word mtxStack_ + 0x10 +_020B4170: .word mtxStack_ + 0x14 +_020B4174: .word mtxI_ + arm_func_end NNSi_G2dMCMStoreCurrentMtxToMtxCache - ; NNSi_G2dIdentity - arm_func_start FUN_020B4178 -FUN_020B4178: ; 0x020B4178 + arm_func_start NNSi_G2dIdentity +NNSi_G2dIdentity: ; 0x020B4178 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r0, _020B4220 ; =UNK_021CDD68 + ldr r0, _020B4220 ; =bDonotUseSRTransform ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020B41B8 - ldr r1, _020B4224 ; =UNK_021CDD70 + ldr r1, _020B4224 ; =stackPos_ mov r0, #0x18 ldr r12, [r1, #0x0] - ldr r1, _020B4228 ; =UNK_021CDF04 + ldr r1, _020B4228 ; =mtxStack_ + 0x10 mul r3, r12, r0 mov r2, #0x0 - ldr r0, _020B422C ; =UNK_021CDF08 + ldr r0, _020B422C ; =mtxStack_ + 0x14 str r2, [r1, r3] str r2, [r0, r3] b _020B420C _020B41B8: - ldr r0, _020B4224 ; =UNK_021CDD70 + ldr r0, _020B4224 ; =stackPos_ mov lr, #0x18 ldr r1, [r0, #0x0] - ldr r4, _020B4230 ; =UNK_021CDEF4 + ldr r4, _020B4230 ; =mtxStack_ mul r3, r1, lr mov r2, #0x1000 str r2, [r4, r3] @@ -2019,25 +1961,24 @@ _020B41B8: str r1, [r5, #0x10] str r1, [r5, #0x14] ldr r12, [r0, #0x0] - ldr r4, _020B4234 ; =UNK_021CE1F4 + ldr r4, _020B4234 ; =mtxStackFor2DHW_ ldmia r5!, {r0-r3} mla lr, r12, lr, r4 stmia lr!, {r0-r3} ldmia r5, {r0-r1} stmia lr, {r0-r1} _020B420C: - ldr r0, _020B4238 ; =UNK_021CDD74 + ldr r0, _020B4238 ; =fxZStack_ mov r1, #0x0 str r1, [r0, r12, lsl #0x2] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4220: .word UNK_021CDD68 -_020B4224: .word UNK_021CDD70 -_020B4228: .word UNK_021CDF04 -_020B422C: .word UNK_021CDF08 -_020B4230: .word UNK_021CDEF4 -_020B4234: .word UNK_021CE1F4 -_020B4238: .word UNK_021CDD74 - arm_func_end FUN_020B4178 - +_020B4220: .word bDonotUseSRTransform +_020B4224: .word stackPos_ +_020B4228: .word mtxStack_ + 0x10 +_020B422C: .word mtxStack_ + 0x14 +_020B4230: .word mtxStack_ +_020B4234: .word mtxStackFor2DHW_ +_020B4238: .word fxZStack_ + arm_func_end NNSi_G2dIdentity diff --git a/arm9/asm/NNS_G2D_g2d_renderercor.s b/arm9/asm/NNS_G2D_g2d_renderercor.s index e1c3be6eb..bf415c1c9 100644 --- a/arm9/asm/NNS_G2D_g2d_renderercor.s +++ b/arm9/asm/NNS_G2D_g2d_renderercor.s @@ -3,27 +3,24 @@ .section .rodata - ; mtxIdentity_ - .global UNK_020FF958 -UNK_020FF958: ; 0x020FF958 + .global mtxIdentity_ +mtxIdentity_: ; 0x020FF958 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; static const in function + .section .bss - ; pTheInstance_ - .global UNK_021CED14 -UNK_021CED14: ; 0x021CED14 + .global pTheInstance_ +pTheInstance_: ; 0x021CED14 .space 0x4 .section .text - ; NNS_G2dRndCoreDrawCellVramTransfer - arm_func_start FUN_020B4BF4 -FUN_020B4BF4: ; 0x020B4BF4 + arm_func_start NNS_G2dRndCoreDrawCellVramTransfer +NNS_G2dRndCoreDrawCellVramTransfer: ; 0x020B4BF4 stmdb sp!, {r4-r6,lr} - ldr r2, _020B4CD8 ; =UNK_021CED14 + ldr r2, _020B4CD8 ; =pTheInstance_ mov r6, r0 ldr r3, [r2, #0x0] mov r4, r1 @@ -40,7 +37,7 @@ FUN_020B4BF4: ; 0x020B4BF4 mov r1, r6 blx r3 _020B4C38: - ldr r0, _020B4CD8 ; =UNK_021CED14 + ldr r0, _020B4CD8 ; =pTheInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x30] cmp r0, #0x0 @@ -50,7 +47,7 @@ _020B4C38: beq _020B4C7C mov r0, r4 ldr r4, [r5, #0x14] - bl FUN_020B469C + bl NNSi_G2dGetCellTransferState mov r3, #0x1 mvn r1, r3, lsl r4 ldr r2, [r0, #0x20] @@ -70,31 +67,30 @@ _020B4C7C: _020B4C9C: mov r0, r5 mov r1, r6 - bl FUN_020B5090 + bl DrawCellToSurface3D_ b _020B4CB8 _020B4CAC: mov r0, r5 mov r1, r6 - bl FUN_020B53B4 + bl DrawCellToSurface2D_ _020B4CB8: ldr r2, [r5, #0x1c] cmp r2, #0x0 ldmeqia sp!, {r4-r6,pc} - ldr r0, _020B4CD8 ; =UNK_021CED14 + ldr r0, _020B4CD8 ; =pTheInstance_ mov r1, r6 ldr r0, [r0, #0x0] blx r2 ldmia sp!, {r4-r6,pc} .balign 4 -_020B4CD8: .word UNK_021CED14 - arm_func_end FUN_020B4BF4 +_020B4CD8: .word pTheInstance_ + arm_func_end NNS_G2dRndCoreDrawCellVramTransfer - ; NNS_G2dRndCoreDrawCell - arm_func_start FUN_020B4CDC -FUN_020B4CDC: ; 0x020B4CDC + arm_func_start NNS_G2dRndCoreDrawCell +NNS_G2dRndCoreDrawCell: ; 0x020B4CDC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r1, _020B4D9C ; =UNK_021CED14 + ldr r1, _020B4D9C ; =pTheInstance_ mov r5, r0 ldr r2, [r1, #0x0] ldr r4, [r2, #0x0] @@ -111,7 +107,7 @@ FUN_020B4CDC: ; 0x020B4CDC mov r1, r5 blx r2 _020B4D24: - ldr r0, _020B4D9C ; =UNK_021CED14 + ldr r0, _020B4D9C ; =pTheInstance_ ldr r0, [r0, #0x0] ldr r0, [r0, #0x30] cmp r0, #0x0 @@ -128,31 +124,30 @@ _020B4D24: _020B4D58: mov r0, r4 mov r1, r5 - bl FUN_020B5090 + bl DrawCellToSurface3D_ b _020B4D74 _020B4D68: mov r0, r4 mov r1, r5 - bl FUN_020B53B4 + bl DrawCellToSurface2D_ _020B4D74: ldr r2, [r4, #0x1c] cmp r2, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} - ldr r0, _020B4D9C ; =UNK_021CED14 + ldr r0, _020B4D9C ; =pTheInstance_ mov r1, r5 ldr r0, [r0, #0x0] blx r2 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4D9C: .word UNK_021CED14 - arm_func_end FUN_020B4CDC +_020B4D9C: .word pTheInstance_ + arm_func_end NNS_G2dRndCoreDrawCell - ; NNS_G2dRndCoreEndRendering - arm_func_start FUN_020B4DA0 -FUN_020B4DA0: ; 0x020B4DA0 - ldr r0, _020B4E00 ; =UNK_021CED14 + arm_func_start NNS_G2dRndCoreEndRendering +NNS_G2dRndCoreEndRendering: ; 0x020B4DA0 + ldr r0, _020B4E00 ; =pTheInstance_ ldr r3, [r0, #0x0] ldr r1, [r3, #0x0] ldr r1, [r1, #0x14] @@ -174,22 +169,21 @@ _020B4DD8: ldr r0, [r0, #0x0] str r2, [r0, #0x28] _020B4DF0: - ldr r0, _020B4E00 ; =UNK_021CED14 + ldr r0, _020B4E00 ; =pTheInstance_ mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 -_020B4E00: .word UNK_021CED14 +_020B4E00: .word pTheInstance_ _020B4E04: .word 0x04000440 _020B4E08: .word 0x04000448 - arm_func_end FUN_020B4DA0 + arm_func_end NNS_G2dRndCoreEndRendering - ; NNS_G2dRndCoreBeginRendering - arm_func_start FUN_020B4E0C -FUN_020B4E0C: ; 0x020B4E0C + arm_func_start NNS_G2dRndCoreBeginRendering +NNS_G2dRndCoreBeginRendering: ; 0x020B4E0C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r2, _020B4F28 ; =UNK_021CED14 + ldr r2, _020B4F28 ; =pTheInstance_ mov r4, r0 str r4, [r2, #0x0] ldr r0, [r4, #0x0] @@ -215,27 +209,27 @@ FUN_020B4E0C: ; 0x020B4E0C ldr r0, [r2, #0x0] ldr r5, [r0, #0x8] mov r0, r5 - bl FUN_020B19FC + bl NNS_G2dIsImageReadyToUse cmp r0, #0x0 moveq r0, #0x0 beq _020B4E98 mov r0, r5 mov r1, #0x0 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation _020B4E98: - ldr r1, _020B4F28 ; =UNK_021CED14 + ldr r1, _020B4F28 ; =pTheInstance_ str r0, [r4, #0x14] ldr r0, [r1, #0x0] mov r1, #0x0 ldr r5, [r0, #0xc] mov r0, r5 - bl FUN_020B19A8 + bl NNS_G2dIsImagePaletteReadyToUse cmp r0, #0x0 moveq r0, #0x0 beq _020B4ECC mov r0, r5 mov r1, #0x0 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation _020B4ECC: add sp, sp, #0x4 str r0, [r4, #0x18] @@ -244,34 +238,33 @@ _020B4ED8: ldr r4, [r4, #0x8] mov r1, r5 mov r0, r4 - bl FUN_020B19FC + bl NNS_G2dIsImageReadyToUse cmp r0, #0x0 moveq r1, #0x0 beq _020B4F14 mov r0, r4 mov r1, r5 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation ldr r1, [r4, #0x20] and r1, r1, #0x700000 mov r1, r1, asr #0x14 add r1, r1, #0x5 mov r1, r0, lsr r1 _020B4F14: - ldr r0, _020B4F28 ; =UNK_021CED14 + ldr r0, _020B4F28 ; =pTheInstance_ ldr r0, [r0, #0x0] str r1, [r0, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B4F28: .word UNK_021CED14 +_020B4F28: .word pTheInstance_ _020B4F2C: .word 0x04000440 _020B4F30: .word 0x04000444 _020B4F34: .word 0x04000470 - arm_func_end FUN_020B4E0C + arm_func_end NNS_G2dRndCoreBeginRendering - ; _end - arm_func_start FUN_020B4F38 -FUN_020B4F38: ; 0x020B4F38 + arm_func_start NNS_G2dSetRndCoreFlipMode +NNS_G2dSetRndCoreFlipMode: ; 0x020B4F38 cmp r1, #0x0 ldrne r1, [r0, #0x24] orrne r1, r1, #0x1 @@ -287,58 +280,52 @@ FUN_020B4F38: ; 0x020B4F38 biceq r1, r1, #0x2 streq r1, [r0, #0x24] bx lr - arm_func_end FUN_020B4F38 + arm_func_end NNS_G2dSetRndCoreFlipMode - ; _end - arm_func_start FUN_020B4F74 -FUN_020B4F74: ; 0x020B4F74 + arm_func_start NNS_G2dIsRndCoreFlipV +NNS_G2dIsRndCoreFlipV: ; 0x020B4F74 ldr r0, [r0, #0x24] ands r0, r0, #0x2 movne r0, #0x1 moveq r0, #0x0 bx lr - arm_func_end FUN_020B4F74 + arm_func_end NNS_G2dIsRndCoreFlipV - ; _end - arm_func_start FUN_020B4F88 -FUN_020B4F88: ; 0x020B4F88 + arm_func_start NNS_G2dIsRndCoreFlipH +NNS_G2dIsRndCoreFlipH: ; 0x020B4F88 ldr r0, [r0, #0x24] ands r0, r0, #0x1 movne r0, #0x1 moveq r0, #0x0 bx lr - arm_func_end FUN_020B4F88 + arm_func_end NNS_G2dIsRndCoreFlipH - ; _end - arm_func_start FUN_020B4F9C -FUN_020B4F9C: ; 0x020B4F9C + arm_func_start NNS_G2dSetRndCoreSurface +NNS_G2dSetRndCoreSurface: ; 0x020B4F9C str r1, [r0, #0x0] bx lr - arm_func_end FUN_020B4F9C + arm_func_end NNS_G2dSetRndCoreSurface - ; _end - arm_func_start FUN_020B4FA4 -FUN_020B4FA4: ; 0x020B4FA4 + arm_func_start NNS_G2dSetRndCore3DSoftSpriteZvalue +NNS_G2dSetRndCore3DSoftSpriteZvalue: ; 0x020B4FA4 str r1, [r0, #0x34] bx lr - arm_func_end FUN_020B4FA4 + arm_func_end NNS_G2dSetRndCore3DSoftSpriteZvalue - ; NNS_G2dSetRndCoreCurrentMtx2D - arm_func_start FUN_020B4FAC -FUN_020B4FAC: ; 0x020B4FAC - ldr r2, _020B4FC0 ; =UNK_021CED14 + arm_func_start NNS_G2dSetRndCoreCurrentMtx2D +NNS_G2dSetRndCoreCurrentMtx2D: ; 0x020B4FAC + ldr r2, _020B4FC0 ; =pTheInstance_ ldr r2, [r2, #0x0] str r0, [r2, #0x2c] str r1, [r2, #0x28] bx lr .balign 4 -_020B4FC0: .word UNK_021CED14 - arm_func_end FUN_020B4FAC +_020B4FC0: .word pTheInstance_ + arm_func_end NNS_G2dSetRndCoreCurrentMtx2D - ; NNS_G2dSetRndCoreCurrentMtx3D - arm_func_start FUN_020B4FC4 -FUN_020B4FC4: ; 0x020B4FC4 - ldr r1, _020B5028 ; =UNK_021CED14 + arm_func_start NNS_G2dSetRndCoreCurrentMtx3D +NNS_G2dSetRndCoreCurrentMtx3D: ; 0x020B4FC4 + ldr r1, _020B5028 ; =pTheInstance_ mov r3, #0x0 ldr r12, [r1, #0x0] mov r1, #0x1000 @@ -364,35 +351,31 @@ FUN_020B4FC4: ; 0x020B4FC4 str r0, [r12, #0x6c] bx lr .balign 4 -_020B5028: .word UNK_021CED14 - arm_func_end FUN_020B4FC4 +_020B5028: .word pTheInstance_ + arm_func_end NNS_G2dSetRndCoreCurrentMtx3D - ; _end - arm_func_start FUN_020B502C -FUN_020B502C: ; 0x020B502C + arm_func_start NNS_G2dSetRndCoreAffineOverwriteMode +NNS_G2dSetRndCoreAffineOverwriteMode: ; 0x020B502C str r1, [r0, #0x4] bx lr - arm_func_end FUN_020B502C + arm_func_end NNS_G2dSetRndCoreAffineOverwriteMode - ; _end - arm_func_start FUN_020B5034 -FUN_020B5034: ; 0x020B5034 + arm_func_start NNS_G2dSetRndCoreOamRegisterFunc +NNS_G2dSetRndCoreOamRegisterFunc: ; 0x020B5034 str r1, [r0, #0x1c] str r2, [r0, #0x20] bx lr - arm_func_end FUN_020B5034 + arm_func_end NNS_G2dSetRndCoreOamRegisterFunc - ; _end - arm_func_start FUN_020B5040 -FUN_020B5040: ; 0x020B5040 + arm_func_start NNS_G2dSetRndCoreImageProxy +NNS_G2dSetRndCoreImageProxy: ; 0x020B5040 str r1, [r0, #0x8] str r2, [r0, #0xc] bx lr - arm_func_end FUN_020B5040 + arm_func_end NNS_G2dSetRndCoreImageProxy - ; _end - arm_func_start FUN_020B504C -FUN_020B504C: ; 0x020B504C + arm_func_start NNS_G2dInitRndCore +NNS_G2dInitRndCore: ; 0x020B504C stmdb sp!, {r4,lr} mov r4, r0 mov r1, r4 @@ -410,13 +393,12 @@ FUN_020B504C: ; 0x020B504C str r0, [r4, #0x30] str r1, [r4, #0x28] ldmia sp!, {r4,pc} - arm_func_end FUN_020B504C + arm_func_end NNS_G2dInitRndCore - ; DrawCellToSurface3D_ - arm_func_start FUN_020B5090 -FUN_020B5090: ; 0x020B5090 + arm_func_start DrawCellToSurface3D_ +DrawCellToSurface3D_: ; 0x020B5090 stmdb sp!, {r4-r10,lr} - ldr r5, _020B5158 ; =UNK_021CED14 + ldr r5, _020B5158 ; =pTheInstance_ mov r9, r1 ldrh r1, [r9, #0x0] ldr r2, [r5, #0x0] @@ -452,7 +434,7 @@ _020B5108: cmp r0, #0x0 beq _020B5120 mov r0, r7 - bl FUN_020B515C + bl DrawOamToSurface3D_ _020B5120: ldr r3, [r10, #0x24] cmp r3, #0x0 @@ -470,20 +452,19 @@ _020B513C: blo _020B50C0 ldmia sp!, {r4-r10,pc} .balign 4 -_020B5158: .word UNK_021CED14 - arm_func_end FUN_020B5090 +_020B5158: .word pTheInstance_ + arm_func_end DrawCellToSurface3D_ - ; DrawOamToSurface3D_ - arm_func_start FUN_020B515C -FUN_020B515C: ; 0x020B515C + arm_func_start DrawOamToSurface3D_ +DrawOamToSurface3D_: ; 0x020B515C stmdb sp!, {r4-r8,lr} sub sp, sp, #0x10 - ldr r1, _020B53A4 ; =UNK_021CED14 + ldr r1, _020B53A4 ; =pTheInstance_ mov r7, r0 ldr r0, [r1, #0x0] add r0, r0, #0x40 bl G3_LoadMtx43 - ldr r0, _020B53A4 ; =UNK_021CED14 + ldr r0, _020B53A4 ; =pTheInstance_ ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] cmp r1, #0x0 @@ -491,7 +472,7 @@ FUN_020B515C: ; 0x020B515C ldr r2, [r7, #0x0] ldr r1, _020B53A8 ; =0xC000C000 and r4, r2, r1 - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 beq _020B51F4 ldr r0, [r7, #0x0] @@ -500,7 +481,7 @@ FUN_020B515C: ; 0x020B515C mov r3, r0, lsr #0x17 and r1, r4, #0xc0000000 mov r1, r1, lsr #0x1e - ldr r0, _020B53AC ; =UNK_020FF8AC + ldr r0, _020B53AC ; =NNSi_objSizeWTbl mov r2, r2, asr #0xe mov r1, r1, lsl #0x1 add r0, r0, r2, lsl #0x3 @@ -525,17 +506,17 @@ _020B51F4: mov r0, r0, lsl #0x10 mov r1, r0, lsr #0x10 _020B5218: - ldr r0, _020B53A4 ; =UNK_021CED14 + ldr r0, _020B53A4 ; =pTheInstance_ mov r1, r1, lsl #0x10 ldr r0, [r0, #0x0] mov r6, r1, asr #0x10 - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 beq _020B527C and r1, r4, #0xc000 and r0, r4, #0xc0000000 ldrb r4, [r7, #0x0] - ldr r2, _020B53B0 ; =UNK_020FF894 + ldr r2, _020B53B0 ; =NNSi_objSizeHTbl mov r0, r0, lsr #0x1e mov r3, r1, asr #0xe mov r1, r0, lsl #0x1 @@ -559,23 +540,23 @@ _020B527C: mov r0, r0, lsl #0x10 mov r4, r0, lsr #0x10 _020B5298: - ldr r0, _020B53A4 ; =UNK_021CED14 + ldr r0, _020B53A4 ; =pTheInstance_ ldr r1, [r7, #0x0] ldr r0, [r0, #0x0] mov r5, r1, lsl #0x3 - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH ldr r2, [r7, #0x0] - ldr r1, _020B53A4 ; =UNK_021CED14 + ldr r1, _020B53A4 ; =pTheInstance_ eor r5, r0, r5, lsr #0x1f ldr r0, [r1, #0x0] mov r8, r2, lsl #0x2 - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV ldr r2, [r7, #0x0] eor r1, r0, r8, lsr #0x1f bic r0, r2, #0x10000000 str r0, [r7, #0x0] ldr r2, [r7, #0x0] - ldr r3, _020B53A4 ; =UNK_021CED14 + ldr r3, _020B53A4 ; =pTheInstance_ orr r2, r2, r5, lsl #0x1c str r2, [r7, #0x0] ldr r2, [r7, #0x0] @@ -597,11 +578,11 @@ _020B5298: str r4, [sp, #0x4] ldr r4, [r5, #0x18] str r4, [sp, #0x8] - bl FUN_020B46B4 + bl NNS_G2dDrawOneOam3DDirectWithPosFast add sp, sp, #0x10 ldmia sp!, {r4-r8,pc} _020B533C: - ldr r2, _020B53A4 ; =UNK_021CED14 + ldr r2, _020B53A4 ; =pTheInstance_ ldr r0, [r7, #0x0] ldr r5, [r2, #0x0] mov r0, r0, lsl #0x7 @@ -624,29 +605,28 @@ _020B533C: mov r3, r7 mvn r2, #0x0 str r4, [sp, #0x8] - bl FUN_020B46B4 + bl NNS_G2dDrawOneOam3DDirectWithPosFast add sp, sp, #0x10 ldmia sp!, {r4-r8,pc} .balign 4 -_020B53A4: .word UNK_021CED14 +_020B53A4: .word pTheInstance_ _020B53A8: .word 0xC000C000 -_020B53AC: .word UNK_020FF8AC -_020B53B0: .word UNK_020FF894 - arm_func_end FUN_020B515C +_020B53AC: .word NNSi_objSizeWTbl +_020B53B0: .word NNSi_objSizeHTbl + arm_func_end DrawOamToSurface3D_ - ; DrawCellToSurface2D_ - arm_func_start FUN_020B53B4 -FUN_020B53B4: ; 0x020B53B4 + arm_func_start DrawCellToSurface2D_ +DrawCellToSurface2D_: ; 0x020B53B4 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x44 - ldr r2, _020B57B0 ; =UNK_021CED14 + ldr r2, _020B57B0 ; =pTheInstance_ mov r10, r0 ldr r0, [r2, #0x0] mov r11, r1 ldr r9, [r0, #0x2c] - ldr r1, _020B57B0 ; =UNK_021CED14 + ldr r1, _020B57B0 ; =pTheInstance_ cmp r9, #0x0 - ldreq sb, _020B57B4 ; =UNK_020FF958 + ldreq sb, _020B57B4 ; =mtxIdentity_ ldr r3, [r1, #0x0] ldr r4, [r9, #0x10] str r4, [sp, #0x18] @@ -679,7 +659,7 @@ _020B5438: addls sp, sp, #0x44 ldmlsia sp!, {r4-r11,pc} mov r0, #0x1 - ldr r4, _020B57B0 ; =UNK_021CED14 + ldr r4, _020B57B0 ; =pTheInstance_ str r8, [sp, #0x14] str r0, [sp, #0xc] _020B5460: @@ -791,7 +771,7 @@ _020B55CC: str r3, [sp, #0x28] ldr r3, [r9, #0xc] str r3, [sp, #0x2c] - bl FUN_020B57D8 + bl DoAffineTransforme_ b _020B5750 _020B5600: ldr r0, _020B57C0 ; =0x0000FFFE @@ -804,13 +784,13 @@ _020B5600: ldr r1, _020B57C4 ; =0xC000C000 mov r6, r2, lsl #0x3 and r5, r2, r1 - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH ldr r1, [r7, #0x0] eor r6, r0, r6, lsr #0x1f mov r1, r1, lsl #0x2 ldr r0, [r4, #0x0] str r1, [sp, #0x10] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV ldr r1, [sp, #0x10] eor r0, r0, r1, lsr #0x1f ldr r1, [r7, #0x0] @@ -826,12 +806,12 @@ _020B5600: orr r0, r1, r0, lsl #0x1d str r0, [r7, #0x0] ldr r0, [r4, #0x0] - bl FUN_020B4F88 + bl NNS_G2dIsRndCoreFlipH cmp r0, #0x0 beq _020B56D4 and r1, r5, #0xc000 mov r2, r1, asr #0xe - ldr r1, _020B57C8 ; =UNK_020FF8AC + ldr r1, _020B57C8 ; =NNSi_objSizeWTbl and r3, r5, #0xc0000000 mov r3, r3, lsr #0x1e add r2, r1, r2, lsl #0x3 @@ -849,7 +829,7 @@ _020B5600: str r0, [r7, #0x0] _020B56D4: ldr r0, [r4, #0x0] - bl FUN_020B4F74 + bl NNS_G2dIsRndCoreFlipV cmp r0, #0x0 beq _020B5714 and r1, r5, #0xc000 @@ -857,7 +837,7 @@ _020B56D4: and r1, r5, #0xc0000000 mov r1, r1, lsr #0x1e mov r2, r1, lsl #0x1 - ldr r1, _020B57D4 ; =UNK_020FF894 + ldr r1, _020B57D4 ; =NNSi_objSizeHTbl ldrb r0, [r7, #0x0] add r1, r1, r3, lsl #0x3 ldrh r1, [r2, r1] @@ -907,21 +887,20 @@ _020B5790: add sp, sp, #0x44 ldmia sp!, {r4-r11,pc} .balign 4 -_020B57B0: .word UNK_021CED14 -_020B57B4: .word UNK_020FF958 +_020B57B0: .word pTheInstance_ +_020B57B4: .word mtxIdentity_ _020B57B8: .word 0x000003FF _020B57BC: .word 0x0000FFFF _020B57C0: .word 0x0000FFFE _020B57C4: .word 0xC000C000 -_020B57C8: .word UNK_020FF8AC +_020B57C8: .word NNSi_objSizeWTbl _020B57CC: .word 0xFE00FFFF _020B57D0: .word 0x000001FF -_020B57D4: .word UNK_020FF894 - arm_func_end FUN_020B53B4 +_020B57D4: .word NNSi_objSizeHTbl + arm_func_end DrawCellToSurface2D_ - ; DoAffineTransforme_ - arm_func_start FUN_020B57D8 -FUN_020B57D8: ; 0x020B57D8 + arm_func_start DoAffineTransforme_ +DoAffineTransforme_: ; 0x020B57D8 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x10 ldr r4, [r1, #0x0] @@ -958,13 +937,13 @@ _020B5858: cmp r4, #0x300 bne _020B58AC ldr r3, _020B5AA0 ; =0xC000C000 - ldr r4, _020B5AA4 ; =UNK_020FF8AC + ldr r4, _020B5AA4 ; =NNSi_objSizeWTbl and r3, r5, r3 and r5, r3, #0xc0000000 and r3, r3, #0xc000 mov r6, r5, lsr #0x1e mov r5, r3, asr #0xe - ldr r3, _020B5AA8 ; =UNK_020FF894 + ldr r3, _020B5AA8 ; =NNSi_objSizeHTbl mov r6, r6, lsl #0x1 add r4, r4, r5, lsl #0x3 add r3, r3, r5, lsl #0x3 @@ -1008,7 +987,7 @@ _020B58AC: ldreq r3, [sp, #0xc] ldreq r4, [sp, #0x8] streq r3, [sp, #0x4] - ldr r3, _020B5AAC ; =UNK_021CED14 + ldr r3, _020B5AAC ; =pTheInstance_ streq r4, [sp, #0x0] ldr r3, [r3, #0x0] ldr r3, [r3, #0x4] @@ -1040,7 +1019,7 @@ _020B597C: orr r5, r5, r3 _020B599C: ldr r3, _020B5AA0 ; =0xC000C000 - ldr r4, _020B5AA4 ; =UNK_020FF8AC + ldr r4, _020B5AA4 ; =NNSi_objSizeWTbl and r3, r6, r3 and r6, r3, #0xc0000000 and r3, r3, #0xc000 @@ -1050,7 +1029,7 @@ _020B599C: add r4, r4, lr, lsl #0x3 ldrh r4, [r3, r4] ldr r6, [r0, #0x0] - ldr r8, _020B5AA8 ; =UNK_020FF894 + ldr r8, _020B5AA8 ; =NNSi_objSizeHTbl mov r12, r4, asr #0x1 mov r4, r12, lsl #0xc rsb r7, r4, #0x0 @@ -1107,11 +1086,10 @@ _020B5A4C: .balign 4 _020B5A9C: .word 0x01FF0000 _020B5AA0: .word 0xC000C000 -_020B5AA4: .word UNK_020FF8AC -_020B5AA8: .word UNK_020FF894 -_020B5AAC: .word UNK_021CED14 +_020B5AA4: .word NNSi_objSizeWTbl +_020B5AA8: .word NNSi_objSizeHTbl +_020B5AAC: .word pTheInstance_ _020B5AB0: .word 0xC1FFFCFF _020B5AB4: .word 0x000001FF _020B5AB8: .word 0xFE00FF00 - arm_func_end FUN_020B57D8 - + arm_func_end DoAffineTransforme_ diff --git a/arm9/asm/NNS_G2D_g2d_softsprite.s b/arm9/asm/NNS_G2D_g2d_softsprite.s index 9a22950fd..49cddc885 100644 --- a/arm9/asm/NNS_G2D_g2d_softsprite.s +++ b/arm9/asm/NNS_G2D_g2d_softsprite.s @@ -3,9 +3,8 @@ .section .text - ; NNS_G2dDrawSpriteFast - arm_func_start FUN_020B0250 -FUN_020B0250: ; 0x020B0250 + arm_func_start NNS_G2dDrawSpriteFast +NNS_G2dDrawSpriteFast: ; 0x020B0250 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldr r5, _020B02C0 ; =0x04000470 @@ -31,17 +30,16 @@ FUN_020B0250: ; 0x020B0250 mov r2, r2, lsl #0xc mov r3, r3, lsl #0xc str r12, [lr, #0x0] - bl FUN_020B0340 + bl DrawOneQuad_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 _020B02C0: .word 0x04000470 _020B02C4: .word 0x0400046C - arm_func_end FUN_020B0250 + arm_func_end NNS_G2dDrawSpriteFast - ; NNS_G2dSetupSoftwareSpriteCamera - arm_func_start FUN_020B02C8 -FUN_020B02C8: ; 0x020B02C8 + arm_func_start NNS_G2dSetupSoftwareSpriteCamera +NNS_G2dSetupSoftwareSpriteCamera: ; 0x020B02C8 stmdb sp!, {lr} sub sp, sp, #0x14 ldr r2, _020B0330 ; =0xBFFF0000 @@ -73,11 +71,10 @@ _020B0330: .word 0xBFFF0000 _020B0334: .word 0x04000580 _020B0338: .word 0x0400044C _020B033C: .word 0x04000440 - arm_func_end FUN_020B02C8 + arm_func_end NNS_G2dSetupSoftwareSpriteCamera - ; DrawOneQuad_ - arm_func_start FUN_020B0340 -FUN_020B0340: ; 0x020B0340 + arm_func_start DrawOneQuad_ +DrawOneQuad_: ; 0x020B0340 stmdb sp!, {r4-r6,lr} mov r3, r3, lsl #0x8 mov r0, r0, lsl #0x8 @@ -129,5 +126,4 @@ _020B03F8: .word 0x04000488 _020B03FC: .word 0x0400048C _020B0400: .word 0x10001000 _020B0404: .word 0x04000504 - arm_func_end FUN_020B0340 - + arm_func_end DrawOneQuad_ diff --git a/arm9/asm/NNS_G2D_g2d_srtcontrol.s b/arm9/asm/NNS_G2D_g2d_srtcontrol.s index 01f30a6d5..7c9139efe 100644 --- a/arm9/asm/NNS_G2D_g2d_srtcontrol.s +++ b/arm9/asm/NNS_G2D_g2d_srtcontrol.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B1A40 -FUN_020B1A40: ; 0x020B1A40 + arm_func_start NNSi_G2dSrtcSetInitialValue +NNSi_G2dSrtcSetInitialValue: ; 0x020B1A40 stmdb sp!, {r4,lr} mov r4, r0 add r1, r4, #0x4 @@ -16,21 +15,19 @@ FUN_020B1A40: ; 0x020B1A40 str r0, [r4, #0x4] str r0, [r4, #0x8] ldmia sp!, {r4,pc} - arm_func_end FUN_020B1A40 + arm_func_end NNSi_G2dSrtcSetInitialValue - ; NNSi_G2dSrtcInitControl - arm_func_start FUN_020B1A68 -FUN_020B1A68: ; 0x020B1A68 - ldr ip, _020B1A74 ; =FUN_020B1A40 + arm_func_start NNSi_G2dSrtcInitControl +NNSi_G2dSrtcInitControl: ; 0x020B1A68 + ldr ip, _020B1A74 ; =NNSi_G2dSrtcSetInitialValue str r1, [r0, #0x0] bx r12 .balign 4 -_020B1A74: .word FUN_020B1A40 - arm_func_end FUN_020B1A68 +_020B1A74: .word NNSi_G2dSrtcSetInitialValue + arm_func_end NNSi_G2dSrtcInitControl - ; _end - arm_func_start FUN_020B1A78 -FUN_020B1A78: ; 0x020B1A78 + arm_func_start NNSi_G2dSrtcSetSRTScale +NNSi_G2dSrtcSetSRTScale: ; 0x020B1A78 ldr r3, [r0, #0x0] cmp r3, #0x1 ldreqh r3, [r0, #0x12] @@ -39,11 +36,10 @@ FUN_020B1A78: ; 0x020B1A78 streq r1, [r0, #0x4] streq r2, [r0, #0x8] bx lr - arm_func_end FUN_020B1A78 + arm_func_end NNSi_G2dSrtcSetSRTScale - ; _end - arm_func_start FUN_020B1A98 -FUN_020B1A98: ; 0x020B1A98 + arm_func_start NNSi_G2dSrtcSetSRTRotZ +NNSi_G2dSrtcSetSRTRotZ: ; 0x020B1A98 ldr r2, [r0, #0x0] cmp r2, #0x1 ldreqh r2, [r0, #0x12] @@ -51,11 +47,10 @@ FUN_020B1A98: ; 0x020B1A98 streqh r2, [r0, #0x12] streqh r1, [r0, #0x10] bx lr - arm_func_end FUN_020B1A98 + arm_func_end NNSi_G2dSrtcSetSRTRotZ - ; _end - arm_func_start FUN_020B1AB4 -FUN_020B1AB4: ; 0x020B1AB4 + arm_func_start NNSi_G2dSrtcSetTrans +NNSi_G2dSrtcSetTrans: ; 0x020B1AB4 ldr r3, [r0, #0x0] cmp r3, #0x1 ldreqh r3, [r0, #0x12] @@ -64,5 +59,4 @@ FUN_020B1AB4: ; 0x020B1AB4 streqh r1, [r0, #0xc] streqh r2, [r0, #0xe] bx lr - arm_func_end FUN_020B1AB4 - + arm_func_end NNSi_G2dSrtcSetTrans diff --git a/arm9/asm/NNS_G2D_g2d_textcanvas.s b/arm9/asm/NNS_G2D_g2d_textcanvas.s index 7ac3477aa..95ebf85a4 100644 --- a/arm9/asm/NNS_G2D_g2d_textcanvas.s +++ b/arm9/asm/NNS_G2D_g2d_textcanvas.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B7168 -FUN_020B7168: ; 0x020B7168 + arm_func_start NNSi_G2dTextCanvasDrawTextRect +NNSi_G2dTextCanvasDrawTextRect: ; 0x020B7168 stmdb sp!, {r4-r7,lr} sub sp, sp, #0xc ldr r12, [sp, #0x28] @@ -18,7 +17,7 @@ FUN_020B7168: ; 0x020B7168 ldr r0, [r7, #0x4] ldr r1, [r7, #0xc] ldr r2, [sp, #0x2c] - bl FUN_020B5B54 + bl NNSi_G2dFontGetTextHeight ldr r1, [sp, #0x20] sub r0, r1, r0 add r5, r5, r0 @@ -29,7 +28,7 @@ _020B71AC: ldr r0, [r7, #0x4] ldr r1, [r7, #0xc] ldr r2, [sp, #0x2c] - bl FUN_020B5B54 + bl NNSi_G2dFontGetTextHeight ldr r2, [sp, #0x20] add r1, r0, #0x1 add r0, r2, #0x1 @@ -49,14 +48,13 @@ _020B71E4: mov r2, r5 mov r3, r4 str r12, [sp, #0x8] - bl FUN_020B72C4 + bl NNSi_G2dTextCanvasDrawTextAlign add sp, sp, #0xc ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B7168 + arm_func_end NNSi_G2dTextCanvasDrawTextRect - ; _end - arm_func_start FUN_020B7218 -FUN_020B7218: ; 0x020B7218 + arm_func_start NNSi_G2dTextCanvasDrawText +NNSi_G2dTextCanvasDrawText: ; 0x020B7218 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x18 ldr r4, [sp, #0x34] @@ -70,7 +68,7 @@ FUN_020B7218: ; 0x020B7218 ldr r2, [r8, #0x8] ldr r3, [r8, #0xc] add r0, sp, #0xc - bl FUN_020B5ABC + bl NNSi_G2dFontGetTextRect ands r0, r4, #0x10 ldrne r0, [sp, #0xc] addne r0, r0, #0x1 @@ -99,14 +97,13 @@ _020B7298: mov r0, r8 mov r1, r7 mov r2, r6 - bl FUN_020B72C4 + bl NNSi_G2dTextCanvasDrawTextAlign add sp, sp, #0x18 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B7218 + arm_func_end NNSi_G2dTextCanvasDrawText - ; _end - arm_func_start FUN_020B72C4 -FUN_020B72C4: ; 0x020B72C4 + arm_func_start NNSi_G2dTextCanvasDrawTextAlign +NNSi_G2dTextCanvasDrawTextAlign: ; 0x020B72C4 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x14 mov r10, r0 @@ -141,7 +138,7 @@ _020B732C: ldr r1, [r10, #0x8] ldr r2, [sp, #0xc] mov r3, r4 - bl FUN_020B5BC8 + bl NNSi_G2dFontGetStringWidth sub r0, r7, r0 add r1, r9, r0 b _020B7388 @@ -152,7 +149,7 @@ _020B7358: ldr r1, [r10, #0x8] ldr r2, [sp, #0xc] mov r3, r4 - bl FUN_020B5BC8 + bl NNSi_G2dFontGetStringWidth add r0, r0, #0x1 add r1, r0, r0, lsr #0x1f ldr r0, [sp, #0x8] @@ -166,18 +163,17 @@ _020B7388: ldr r3, [sp, #0x38] mov r0, r10 mov r2, r8 - bl FUN_020B73C0 + bl NNSi_G2dTextCanvasDrawString ldr r0, [sp, #0xc] add r8, r8, r6 cmp r0, #0x0 bne _020B732C add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B72C4 + arm_func_end NNSi_G2dTextCanvasDrawTextAlign - ; _end - arm_func_start FUN_020B73C0 -FUN_020B73C0: ; 0x020B73C0 + arm_func_start NNSi_G2dTextCanvasDrawString +NNSi_G2dTextCanvasDrawString: ; 0x020B73C0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r10, r0 @@ -203,7 +199,7 @@ _020B7400: mov r1, r5 mov r2, r9 mov r3, r8 - bl FUN_020B63CC + bl NNS_G2dCharCanvasDrawChar add r1, r9, r0 mov r0, r11 add r9, r1, r6 @@ -222,5 +218,4 @@ _020B743C: str r1, [r0, #0x0] add sp, sp, #0xc ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B73C0 - + arm_func_end NNSi_G2dTextCanvasDrawString diff --git a/arm9/asm/NNS_G2D_g2di_bitreader.s b/arm9/asm/NNS_G2D_g2di_bitreader.s index da8236299..d36c774ff 100644 --- a/arm9/asm/NNS_G2D_g2di_bitreader.s +++ b/arm9/asm/NNS_G2D_g2di_bitreader.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B76B0 -FUN_020B76B0: ; 0x020B76B0 + arm_func_start NNSi_G2dBitReaderRead +NNSi_G2dBitReaderRead: ; 0x020B76B0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldrsb r2, [r0, #0x4] @@ -25,7 +24,7 @@ FUN_020B76B0: ; 0x020B76B0 strb r2, [r0, #0x5] mov r2, #0x8 strb r2, [r0, #0x4] - bl FUN_020B76B0 + bl NNSi_G2dBitReaderRead orr r5, r0, r5 _020B7704: rsb r0, r4, #0x8 @@ -33,5 +32,4 @@ _020B7704: and r0, r5, r1, asr r0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B76B0 - + arm_func_end NNSi_G2dBitReaderRead diff --git a/arm9/asm/NNS_G2D_g2di_mtx32.s b/arm9/asm/NNS_G2D_g2di_mtx32.s index 777ed9441..68fa5831b 100644 --- a/arm9/asm/NNS_G2D_g2di_mtx32.s +++ b/arm9/asm/NNS_G2D_g2di_mtx32.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B423C -FUN_020B423C: ; 0x020B423C + arm_func_start NNSi_G2dMtxConcat32 +NNSi_G2dMtxConcat32: ; 0x020B423C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x1c ldr r4, [r0, #0x4] @@ -77,5 +76,4 @@ FUN_020B423C: ; 0x020B423C stmeqia r12, {r0-r1} add sp, sp, #0x1c ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B423C - + arm_func_end NNSi_G2dMtxConcat32 diff --git a/arm9/asm/NNS_G2D_g2di_splitchar.s b/arm9/asm/NNS_G2D_g2di_splitchar.s index e96ae08d5..4df7621d1 100644 --- a/arm9/asm/NNS_G2D_g2di_splitchar.s +++ b/arm9/asm/NNS_G2D_g2di_splitchar.s @@ -3,13 +3,11 @@ .section .text - ; _end - arm_func_start FUN_020B7718 -FUN_020B7718: ; 0x020B7718 + arm_func_start NNSi_G2dSplitCharUTF16 +NNSi_G2dSplitCharUTF16: ; 0x020B7718 ldr r1, [r0, #0x0] ldrh r2, [r1], #0x2 str r1, [r0, #0x0] mov r0, r2 bx lr - arm_func_end FUN_020B7718 - + arm_func_end NNSi_G2dSplitCharUTF16 diff --git a/arm9/asm/NNS_G3D_1mat1shp.s b/arm9/asm/NNS_G3D_1mat1shp.s index 34f2e482c..01cb5a353 100644 --- a/arm9/asm/NNS_G3D_1mat1shp.s +++ b/arm9/asm/NNS_G3D_1mat1shp.s @@ -3,9 +3,8 @@ .section .text - ; NNS_G3dDraw1Mat1Shp - arm_func_start FUN_020BAFB8 -FUN_020BAFB8: ; 0x020BAFB8 + arm_func_start NNS_G3dDraw1Mat1Shp +NNS_G3dDraw1Mat1Shp: ; 0x020BAFB8 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x6c mov r6, r0 @@ -21,7 +20,7 @@ FUN_020BAFB8: ; 0x020BAFB8 str r12, [sp, #0x54] str r12, [sp, #0x58] str r12, [sp, #0x5c] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BAFF8: cmp r7, #0x0 beq _020BB150 @@ -59,13 +58,13 @@ _020BAFF8: add r1, sp, #0x4 mov r2, #0x6 str r3, [sp, #0x18] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldrh r0, [r4, #0x1e] ands r0, r0, #0x1 beq _020BB150 ldrb r12, [r6, #0x16] mov r3, #0x8 - ldr r1, _020BB1BC ; =UNK_02106620 + ldr r1, _020BB1BC ; =NNS_G3dSendTexSRT_FuncArray str r3, [sp, #0x1c] ldrh r2, [r4, #0x20] add r0, r4, #0x2c @@ -123,7 +122,7 @@ _020BB150: ldr r0, [r2, #0x8] ldr r1, [r2, #0xc] add r0, r2, r0 - bl FUN_020BB2B0 + bl NNS_G3dGeSendDL ldr r3, [r6, #0x20] cmp r3, #0x1000 addeq sp, sp, #0x6c @@ -134,12 +133,11 @@ _020BB150: str r3, [sp, #0x60] str r3, [sp, #0x64] str r3, [sp, #0x68] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x6c ldmia sp!, {r4-r7,pc} .balign 4 _020BB1B4: .word 0x00293130 _020BB1B8: .word 0x00002B2A -_020BB1BC: .word UNK_02106620 - arm_func_end FUN_020BAFB8 - +_020BB1BC: .word NNS_G3dSendTexSRT_FuncArray + arm_func_end NNS_G3dDraw1Mat1Shp diff --git a/arm9/asm/NNS_G3D_3dsmax.s b/arm9/asm/NNS_G3D_3dsmax.s index 8037126db..e54e23159 100644 --- a/arm9/asm/NNS_G3D_3dsmax.s +++ b/arm9/asm/NNS_G3D_3dsmax.s @@ -2,24 +2,20 @@ .include "global.inc" .section .data - - ; calcTexMtx_ - .global UNK_021067D0 -UNK_021067D0: ; 0x021067D0 - .word FUN_020BF988 - .word FUN_020BF894 - .word FUN_020BF810 - .word FUN_020BF7C8 - .word FUN_020BF6C8 - .word FUN_020BF5E8 - .word FUN_020BF598 - .word FUN_020BF574 +calcTexMtx_: ; 0x021067D0 + .word texmtxCalc_flag_ + .word texmtxCalc_flagS_ + .word texmtxCalc_flagR_ + .word texmtxCalc_flagRS_ + .word texmtxCalc_flagT_ + .word texmtxCalc_flagTS_ + .word texmtxCalc_flagTR_ + .word texmtxCalc_flagTRS_ .section .text - ; NNSi_G3dSendTexSRT3dsMax - arm_func_start FUN_020BF42C -FUN_020BF42C: ; 0x020BF42C + arm_func_start NNSi_G3dSendTexSRT3dsMax +NNSi_G3dSendTexSRT3dsMax: ; 0x020BF42C stmdb sp!, {r4,lr} sub sp, sp, #0x50 mov r4, r0 @@ -46,7 +42,7 @@ FUN_020BF42C: ; 0x020BF42C str r1, [sp, #0x14] str r1, [sp, #0x10] ldr r1, [r4, #0x0] - ldr r0, _020BF570 ; =UNK_021067D0 + ldr r0, _020BF570 ; =calcTexMtx_ and r1, r1, #0x7 ldr r2, [r0, r1, lsl #0x2] add r0, sp, #0x8 @@ -98,18 +94,17 @@ _020BF54C: ldr r0, [sp, #0x0] add r1, r1, #0x4 mov r2, #0x12 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x50 ldmia sp!, {r4,pc} .balign 4 _020BF568: .word 0x00101610 _020BF56C: .word 0x00101810 -_020BF570: .word UNK_021067D0 - arm_func_end FUN_020BF42C +_020BF570: .word calcTexMtx_ + arm_func_end NNSi_G3dSendTexSRT3dsMax - ; _end - arm_func_start FUN_020BF574 -FUN_020BF574: ; 0x020BF574 + local_arm_func_start texmtxCalc_flagTRS_ +texmtxCalc_flagTRS_: ; 0x020BF574 mov r2, #0x1000 str r2, [r0, #0x0] mov r1, #0x0 @@ -119,11 +114,10 @@ FUN_020BF574: ; 0x020BF574 str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr - arm_func_end FUN_020BF574 + arm_func_end texmtxCalc_flagTRS_ - ; _end - arm_func_start FUN_020BF598 -FUN_020BF598: ; 0x020BF598 + local_arm_func_start texmtxCalc_flagTR_ +texmtxCalc_flagTR_: ; 0x020BF598 ldr r2, [r1, #0x18] mov r12, #0x0 str r2, [r0, #0x0] @@ -144,11 +138,10 @@ FUN_020BF598: ; 0x020BF598 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr - arm_func_end FUN_020BF598 + arm_func_end texmtxCalc_flagTR_ - ; _end - arm_func_start FUN_020BF5E8 -FUN_020BF5E8: ; 0x020BF5E8 + local_arm_func_start texmtxCalc_flagTS_ +texmtxCalc_flagTS_: ; 0x020BF5E8 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -205,11 +198,10 @@ FUN_020BF5E8: ; 0x020BF5E8 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BF5E8 + arm_func_end texmtxCalc_flagTS_ - ; _end - arm_func_start FUN_020BF6C8 -FUN_020BF6C8: ; 0x020BF6C8 + local_arm_func_start texmtxCalc_flagT_ +texmtxCalc_flagT_: ; 0x020BF6C8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r9, r1 @@ -274,11 +266,10 @@ FUN_020BF6C8: ; 0x020BF6C8 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BF6C8 + arm_func_end texmtxCalc_flagT_ - ; _end - arm_func_start FUN_020BF7C8 -FUN_020BF7C8: ; 0x020BF7C8 + local_arm_func_start texmtxCalc_flagRS_ +texmtxCalc_flagRS_: ; 0x020BF7C8 mov r2, #0x1000 str r2, [r0, #0x0] str r2, [r0, #0x14] @@ -297,11 +288,10 @@ FUN_020BF7C8: ; 0x020BF7C8 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr - arm_func_end FUN_020BF7C8 + arm_func_end texmtxCalc_flagRS_ - ; _end - arm_func_start FUN_020BF810 -FUN_020BF810: ; 0x020BF810 + local_arm_func_start texmtxCalc_flagR_ +texmtxCalc_flagR_: ; 0x020BF810 stmdb sp!, {r4-r6,lr} ldr r2, [r1, #0x18] mov r3, #0x0 @@ -335,11 +325,10 @@ FUN_020BF810: ; 0x020BF810 str r1, [r0, #0x34] str r3, [r0, #0x10] ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BF810 + arm_func_end texmtxCalc_flagR_ - ; _end - arm_func_start FUN_020BF894 -FUN_020BF894: ; 0x020BF894 + local_arm_func_start texmtxCalc_flagS_ +texmtxCalc_flagS_: ; 0x020BF894 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -401,11 +390,10 @@ FUN_020BF894: ; 0x020BF894 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BF894 + arm_func_end texmtxCalc_flagS_ - ; _end - arm_func_start FUN_020BF988 -FUN_020BF988: ; 0x020BF988 + local_arm_func_start texmtxCalc_flag_ +texmtxCalc_flag_: ; 0x020BF988 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r9, r1 @@ -475,5 +463,4 @@ FUN_020BF988: ; 0x020BF988 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BF988 - + arm_func_end texmtxCalc_flag_ diff --git a/arm9/asm/NNS_G3D_anm.s b/arm9/asm/NNS_G3D_anm.s index ddd94ecd2..512ef7c05 100644 --- a/arm9/asm/NNS_G3D_anm.s +++ b/arm9/asm/NNS_G3D_anm.s @@ -3,77 +3,62 @@ .section .data - ; NNS_G3dAnmFmtNum - .global UNK_02106594 -UNK_02106594: ; 0x02106594 + .global NNS_G3dAnmFmtNum +NNS_G3dAnmFmtNum: ; 0x02106594 .byte 0x05, 0x00, 0x00, 0x00 - ; NNS_G3dFuncAnmVisNsBvaDefault - .global UNK_02106598 -UNK_02106598: ; 0x02106598 - .word FUN_020BE5A0 + .global NNS_G3dFuncAnmVisNsBvaDefault +NNS_G3dFuncAnmVisNsBvaDefault: ; 0x02106598 + .word NNSi_G3dAnmCalcNsBva - ; NNS_G3dFuncAnmJntNsBcaDefault - .global UNK_0210659C -UNK_0210659C: ; 0x0210659C - .word FUN_020BDA70 + .global NNS_G3dFuncAnmJntNsBcaDefault +NNS_G3dFuncAnmJntNsBcaDefault: ; 0x0210659C + .word NNSi_G3dAnmCalcNsBca - ; NNS_G3dFuncAnmMatNsBtaDefault - .global UNK_021065A0 -UNK_021065A0: ; 0x021065A0 - .word FUN_020BDF38 + .global NNS_G3dFuncAnmMatNsBtaDefault +NNS_G3dFuncAnmMatNsBtaDefault: ; 0x021065A0 + .word NNSi_G3dAnmCalcNsBta - ; NNS_G3dFuncAnmMatNsBtpDefault - .global UNK_021065A4 -UNK_021065A4: ; 0x021065A4 - .word FUN_020BE334 + .global NNS_G3dFuncAnmMatNsBtpDefault +NNS_G3dFuncAnmMatNsBtpDefault: ; 0x021065A4 + .word NNSi_G3dAnmCalcNsBtp - ; NNS_G3dFuncAnmMatNsBmaDefault - .global UNK_021065A8 -UNK_021065A8: ; 0x021065A8 - .word FUN_020BDB40 + .global NNS_G3dFuncAnmMatNsBmaDefault +NNS_G3dFuncAnmMatNsBmaDefault: ; 0x021065A8 + .word NNSi_G3dAnmCalcNsBma - ; NNS_G3dFuncBlendVisDefault - .global UNK_021065AC -UNK_021065AC: ; 0x021065AC - .word FUN_020B8640 + .global NNS_G3dFuncBlendVisDefault +NNS_G3dFuncBlendVisDefault: ; 0x021065AC + .word NNSi_G3dAnmBlendVis - ; NNS_G3dFuncBlendJntDefault - .global UNK_021065B0 -UNK_021065B0: ; 0x021065B0 - .word FUN_020B86B0 + .global NNS_G3dFuncBlendJntDefault +NNS_G3dFuncBlendJntDefault: ; 0x021065B0 + .word NNSi_G3dAnmBlendJnt - ; NNS_G3dFuncBlendMatDefault - .global UNK_021065B4 -UNK_021065B4: ; 0x021065B4 - .word FUN_020B8A08 + .global NNS_G3dFuncBlendMatDefault +NNS_G3dFuncBlendMatDefault: ; 0x021065B4 + .word NNSi_G3dAnmBlendMat - ; NNS_G3dAnmObjInitFuncArray - .global UNK_021065B8 -UNK_021065B8: ; 0x021065B8 + .global NNS_G3dAnmObjInitFuncArray +NNS_G3dAnmObjInitFuncArray: ; 0x021065B8 .byte 0x4D, 0x00, 0x41, 0x4D - - ; NNS_G3dAnmObjInitFuncArray + 0x4 - .global UNK_021065BC -UNK_021065BC: ; 0x021065BC - .word FUN_020BDC0C + .word NNSi_G3dAnmObjInitNsBma .byte 0x4D, 0x00, 0x50, 0x54 - .word FUN_020BE4F0 + .word NNSi_G3dAnmObjInitNsBtp .byte 0x4D, 0x00, 0x41, 0x54 - .word FUN_020BDF84 + .word NNSi_G3dAnmObjInitNsBta .byte 0x56, 0x00, 0x41, 0x56 - .word FUN_020BE5E0 + .word NNSi_G3dAnmObjInitNsBva .byte 0x4A, 0x00, 0x41, 0x43 - .word FUN_020BDAB4 + .word NNSi_G3dAnmObjInitNsBca .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .text - ; _end - arm_func_start FUN_020B8640 -FUN_020B8640: ; 0x020B8640 + arm_func_start NNSi_G3dAnmBlendVis +NNSi_G3dAnmBlendVis: ; 0x020B8640 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x8 mov r7, r0 @@ -104,11 +89,10 @@ _020B869C: bne _020B8664 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020B8640 + arm_func_end NNSi_G3dAnmBlendVis - ; _end - arm_func_start FUN_020B86B0 -FUN_020B86B0: ; 0x020B86B0 + arm_func_start NNSi_G3dAnmBlendJnt +NNSi_G3dAnmBlendJnt: ; 0x020B86B0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x5c mov r9, r1 @@ -199,19 +183,19 @@ _020B87F0: mov r2, r6 add r0, r10, #0x4 and r3, r3, #0x1 - bl FUN_020B8998 + bl blendScaleVec_ ldr r1, [sp, #0x0] add r0, r10, #0x10 and r3, r1, #0x8 mov r1, r11 mov r2, r6 - bl FUN_020B8998 + bl blendScaleVec_ ldr r3, [sp, #0x0] add r0, r10, #0x1c add r1, sp, #0x1c mov r2, r6 and r3, r3, #0x10 - bl FUN_020B8998 + bl blendScaleVec_ ldr r0, [sp, #0x0] ands r0, r0, #0x4 bne _020B8898 @@ -304,11 +288,10 @@ _020B8948: mov r0, #0x1 add sp, sp, #0x5c ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B86B0 + arm_func_end NNSi_G3dAnmBlendJnt - ; _end - arm_func_start FUN_020B8998 -FUN_020B8998: ; 0x020B8998 + arm_func_start blendScaleVec_ +blendScaleVec_: ; 0x020B8998 cmp r3, #0x0 beq _020B89C8 ldr r1, [r0, #0x0] @@ -338,11 +321,10 @@ _020B89C8: add r1, r3, r1, asr #0xc str r1, [r0, #0x8] bx lr - arm_func_end FUN_020B8998 + arm_func_end blendScaleVec_ - ; _end - arm_func_start FUN_020B8A08 -FUN_020B8A08: ; 0x020B8A08 + arm_func_start NNSi_G3dAnmBlendMat +NNSi_G3dAnmBlendMat: ; 0x020B8A08 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r6, r0 @@ -367,5 +349,4 @@ _020B8A4C: bne _020B8A24 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B8A08 - + arm_func_end NNSi_G3dAnmBlendMat diff --git a/arm9/asm/NNS_G3D_basic.s b/arm9/asm/NNS_G3D_basic.s index 03950bfcb..a9849429a 100644 --- a/arm9/asm/NNS_G3D_basic.s +++ b/arm9/asm/NNS_G3D_basic.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BE62C -FUN_020BE62C: ; 0x020BE62C + arm_func_start NNSi_G3dGetJointScaleBasic +NNSi_G3dGetJointScaleBasic: ; 0x020BE62C ands r2, r3, #0x4 ldrne r1, [r0, #0x0] orrne r1, r1, #0x1 @@ -22,11 +21,10 @@ _020BE658: orr r1, r1, #0x18 str r1, [r0, #0x0] bx lr - arm_func_end FUN_020BE62C + arm_func_end NNSi_G3dGetJointScaleBasic - ; _end - arm_func_start FUN_020BE668 -FUN_020BE668: ; 0x020BE668 + arm_func_start NNSi_G3dSendJointSRTBasic +NNSi_G3dSendJointSRTBasic: ; 0x020BE668 stmdb sp!, {r4,lr} mov r4, r0 ldr r1, [r4, #0x0] @@ -37,13 +35,13 @@ FUN_020BE668: ; 0x020BE668 add r1, r4, #0x28 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BE6C4 _020BE698: add r1, r4, #0x4c mov r0, #0x1c mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BE6C4 _020BE6AC: ands r0, r1, #0x2 @@ -51,7 +49,7 @@ _020BE6AC: add r1, r4, #0x28 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BE6C4: ldr r0, [r4, #0x0] ands r0, r0, #0x1 @@ -59,7 +57,6 @@ _020BE6C4: add r1, r4, #0x4 mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldmia sp!, {r4,pc} - arm_func_end FUN_020BE668 - + arm_func_end NNSi_G3dSendJointSRTBasic diff --git a/arm9/asm/NNS_G3D_cgtool.s b/arm9/asm/NNS_G3D_cgtool.s index 9abb20315..e17cfaf5e 100644 --- a/arm9/asm/NNS_G3D_cgtool.s +++ b/arm9/asm/NNS_G3D_cgtool.s @@ -3,25 +3,21 @@ .section .data - ; NNS_G3dSendJointSRT_FuncArray - .global UNK_02106608 -UNK_02106608: ; 0x02106608 - .word FUN_020BE668 - .word FUN_020BEE3C - .word FUN_020BF2FC + .global NNS_G3dSendJointSRT_FuncArray +NNS_G3dSendJointSRT_FuncArray: ; 0x02106608 + .word NNSi_G3dSendJointSRTBasic + .word NNSi_G3dSendJointSRTMaya + .word NNSi_G3dSendJointSRTSi3d - ; NNS_G3dGetJointScale_FuncArray - .global UNK_02106614 -UNK_02106614: ; 0x02106614 - .word FUN_020BE62C - .word FUN_020BECEC - .word FUN_020BF0D4 - - ; NNS_G3dSendTexSRT_FuncArray - .global UNK_02106620 -UNK_02106620: ; 0x02106620 - .word FUN_020BE6E4 - .word FUN_020BEF10 - .word FUN_020BF42C - .word FUN_020BFA9C + .global NNS_G3dGetJointScale_FuncArray +NNS_G3dGetJointScale_FuncArray: ; 0x02106614 + .word NNSi_G3dGetJointScaleBasic + .word NNSi_G3dGetJointScaleMaya + .word NNSi_G3dGetJointScaleSi3d + .global NNS_G3dSendTexSRT_FuncArray +NNS_G3dSendTexSRT_FuncArray: ; 0x02106620 + .word NNSi_G3dSendTexSRTMaya + .word NNSi_G3dSendTexSRTSi3d + .word NNSi_G3dSendTexSRT3dsMax + .word NNSi_G3dSendTexSRTXsi diff --git a/arm9/asm/NNS_G3D_gecom.s b/arm9/asm/NNS_G3D_gecom.s index 56c81114a..2caeb5352 100644 --- a/arm9/asm/NNS_G3D_gecom.s +++ b/arm9/asm/NNS_G3D_gecom.s @@ -3,35 +3,31 @@ .section .bss - ; NNS_G3dGeBuffer - .global UNK_021D1C80 -UNK_021D1C80: ; 0x021D1C80 + .global NNS_G3dGeBuffer +NNS_G3dGeBuffer: ; 0x021D1C80 .space 0x4 - ; NNS_G3dFlagGXDmaAsync - .global UNK_021D1C84 -UNK_021D1C84: ; 0x021D1C84 + .global NNS_G3dFlagGXDmaAsync +NNS_G3dFlagGXDmaAsync: ; 0x021D1C84 .space 0x4 - ; NNS_G3dFlagUseFastDma - .global UNK_021D1C88 -UNK_021D1C88: ; 0x021D1C88 + .global NNS_G3dFlagUseFastDma +NNS_G3dFlagUseFastDma: ; 0x021D1C88 .space 0x4 .section .text - ; NNS_G3dGeBufferOP_N - arm_func_start FUN_020BB1C0 -FUN_020BB1C0: ; 0x020BB1C0 + arm_func_start NNS_G3dGeBufferOP_N +NNS_G3dGeBufferOP_N: ; 0x020BB1C0 stmdb sp!, {r4-r6,lr} - ldr r3, _020BB2A4 ; =UNK_021D1C80 + ldr r3, _020BB2A4 ; =NNS_G3dGeBuffer mov r6, r0 ldr r12, [r3, #0x0] mov r5, r1 mov r4, r2 cmp r12, #0x0 beq _020BB278 - ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, _020BB2A8 ; =NNS_G3dFlagGXDmaAsync ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020BB24C @@ -52,7 +48,7 @@ FUN_020BB1C0: ; 0x020BB1C0 add r1, r2, r1, lsl #0x2 mov r2, r4, lsl #0x2 bl MIi_CpuCopyFast - ldr r0, _020BB2A4 ; =UNK_021D1C80 + ldr r0, _020BB2A4 ; =NNS_G3dGeBuffer ldr r1, [r0, #0x0] ldr r0, [r1, #0x0] add r0, r0, r4 @@ -62,21 +58,21 @@ _020BB24C: ldr r0, [r12, #0x0] cmp r0, #0x0 beq _020BB260 - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer b _020BB28C _020BB260: - ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, _020BB2A8 ; =NNS_G3dFlagGXDmaAsync ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020BB28C - bl FUN_020BB37C + bl NNS_G3dGeWaitSendDL b _020BB28C _020BB278: - ldr r0, _020BB2A8 ; =UNK_021D1C84 + ldr r0, _020BB2A8 ; =NNS_G3dFlagGXDmaAsync ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020BB28C - bl FUN_020BB37C + bl NNS_G3dGeWaitSendDL _020BB28C: ldr r1, _020BB2AC ; =0x04000400 mov r0, r5 @@ -85,14 +81,13 @@ _020BB28C: bl MIi_CpuSend32 ldmia sp!, {r4-r6,pc} .balign 4 -_020BB2A4: .word UNK_021D1C80 -_020BB2A8: .word UNK_021D1C84 +_020BB2A4: .word NNS_G3dGeBuffer +_020BB2A8: .word NNS_G3dFlagGXDmaAsync _020BB2AC: .word 0x04000400 - arm_func_end FUN_020BB1C0 + arm_func_end NNS_G3dGeBufferOP_N - ; NNS_G3dGeSendDL - arm_func_start FUN_020BB2B0 -FUN_020BB2B0: ; 0x020BB2B0 + arm_func_start NNS_G3dGeSendDL +NNS_G3dGeSendDL: ; 0x020BB2B0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 @@ -109,13 +104,13 @@ _020BB2DC: ldr r0, [r5, #0x0] add r1, r5, #0x4 sub r2, r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020BB2F8: - bl FUN_020BB394 - ldr r0, _020BB364 ; =UNK_021D1C88 - ldr r1, _020BB368 ; =UNK_021D1C84 + bl NNS_G3dGeFlushBuffer + ldr r0, _020BB364 ; =NNS_G3dFlagUseFastDma + ldr r1, _020BB368 ; =NNS_G3dFlagGXDmaAsync ldr r0, [r0, #0x0] mov r2, #0x1 str r2, [r1, #0x0] @@ -124,7 +119,7 @@ _020BB2F8: ldr r0, _020BB360 ; =GXi_DmaId str r1, [sp, #0x0] ldr r0, [r0, #0x0] - ldr r3, _020BB36C ; =FUN_020BB370 + ldr r3, _020BB36C ; =simpleUnlock_ mov r1, r5 mov r2, r4 bl MI_SendGXCommandAsyncFast @@ -134,7 +129,7 @@ _020BB33C: ldr r0, _020BB360 ; =GXi_DmaId str r1, [sp, #0x0] ldr r0, [r0, #0x0] - ldr r3, _020BB36C ; =FUN_020BB370 + ldr r3, _020BB36C ; =simpleUnlock_ mov r1, r5 mov r2, r4 bl MI_SendGXCommandAsync @@ -142,44 +137,41 @@ _020BB33C: ldmia sp!, {r4-r5,pc} .balign 4 _020BB360: .word GXi_DmaId -_020BB364: .word UNK_021D1C88 -_020BB368: .word UNK_021D1C84 -_020BB36C: .word FUN_020BB370 - arm_func_end FUN_020BB2B0 +_020BB364: .word NNS_G3dFlagUseFastDma +_020BB368: .word NNS_G3dFlagGXDmaAsync +_020BB36C: .word simpleUnlock_ + arm_func_end NNS_G3dGeSendDL - ; _end - arm_func_start FUN_020BB370 -FUN_020BB370: ; 0x020BB370 + arm_func_start simpleUnlock_ +simpleUnlock_: ; 0x020BB370 mov r1, #0x0 str r1, [r0, #0x0] bx lr - arm_func_end FUN_020BB370 + arm_func_end simpleUnlock_ - ; NNS_G3dGeWaitSendDL - arm_func_start FUN_020BB37C -FUN_020BB37C: ; 0x020BB37C - ldr r0, _020BB390 ; =UNK_021D1C84 + arm_func_start NNS_G3dGeWaitSendDL +NNS_G3dGeWaitSendDL: ; 0x020BB37C + ldr r0, _020BB390 ; =NNS_G3dFlagGXDmaAsync _020BB380: ldr r1, [r0, #0x0] cmp r1, #0x0 bne _020BB380 bx lr .balign 4 -_020BB390: .word UNK_021D1C84 - arm_func_end FUN_020BB37C +_020BB390: .word NNS_G3dFlagGXDmaAsync + arm_func_end NNS_G3dGeWaitSendDL - ; NNS_G3dGeFlushBuffer - arm_func_start FUN_020BB394 -FUN_020BB394: ; 0x020BB394 + arm_func_start NNS_G3dGeFlushBuffer +NNS_G3dGeFlushBuffer: ; 0x020BB394 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020BB3FC ; =UNK_021D1C84 + ldr r0, _020BB3FC ; =NNS_G3dFlagGXDmaAsync ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020BB3B0 - bl FUN_020BB37C + bl NNS_G3dGeWaitSendDL _020BB3B0: - ldr r0, _020BB400 ; =UNK_021D1C80 + ldr r0, _020BB400 ; =NNS_G3dGeBuffer ldr r0, [r0, #0x0] cmp r0, #0x0 addeq sp, sp, #0x4 @@ -192,15 +184,14 @@ _020BB3B0: add r0, r0, #0x4 mov r2, r2, lsl #0x2 bl MIi_CpuSend32 - ldr r0, _020BB400 ; =UNK_021D1C80 + ldr r0, _020BB400 ; =NNS_G3dGeBuffer mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020BB3FC: .word UNK_021D1C84 -_020BB400: .word UNK_021D1C80 +_020BB3FC: .word NNS_G3dFlagGXDmaAsync +_020BB400: .word NNS_G3dGeBuffer _020BB404: .word 0x04000400 - arm_func_end FUN_020BB394 - + arm_func_end NNS_G3dGeFlushBuffer diff --git a/arm9/asm/NNS_G3D_glbstate.s b/arm9/asm/NNS_G3D_glbstate.s index 73b6609d4..3dbb215f1 100644 --- a/arm9/asm/NNS_G3D_glbstate.s +++ b/arm9/asm/NNS_G3D_glbstate.s @@ -3,275 +3,199 @@ .section .bss - ; NNS_G3dGlb - .global UNK_021CED18 -UNK_021CED18: ; 0x021CED18 - .space 0x8 - - ; NNS_G3dGlb + 0x8 - .global UNK_021CED20 -UNK_021CED20: ; 0x021CED20 - .space 0x44 - - ; NNS_G3dGlb + 0x4C - .global UNK_021CED64 -UNK_021CED64: ; 0x021CED64 - .space 0x34 - - ; NNS_G3dGlb + 0x80 - .global UNK_021CED98 -UNK_021CED98: ; 0x021CED98 - .space 0x28 - - ; NNS_G3dGlb + 0xA8 - .global UNK_021CEDC0 -UNK_021CEDC0: ; 0x021CEDC0 - .space 0x14 - - ; NNS_G3dGlb + 0xBC - .global UNK_021CEDD4 -UNK_021CEDD4: ; 0x021CEDD4 - .space 0x24 - - ; NNS_G3dGlb + 0xE0 - .global UNK_021CEDF8 -UNK_021CEDF8: ; 0x021CEDF8 - .space 0xc - - ; NNS_G3dGlb + 0xEC - .global UNK_021CEE04 -UNK_021CEE04: ; 0x021CEE04 - .space 0x14 - - ; NNS_G3dGlb + 0x100 - .global UNK_021CEE18 -UNK_021CEE18: ; 0x021CEE18 - .space 0x30 - - ; NNS_G3dGlb + 0x130 - .global UNK_021CEE48 -UNK_021CEE48: ; 0x021CEE48 - .space 0x30 - - ; NNS_G3dGlb + 0x160 - .global UNK_021CEE78 -UNK_021CEE78: ; 0x021CEE78 - .space 0xe0 - - ; NNS_G3dGlb + 0x240 - .global UNK_021CEF58 -UNK_021CEF58: ; 0x021CEF58 - .space 0xc - - ; NNS_G3dGlb + 0x24C - .global UNK_021CEF64 -UNK_021CEF64: ; 0x021CEF64 - .space 0xc - - ; NNS_G3dGlb + 0x258 - .global UNK_021CEF70 -UNK_021CEF70: ; 0x021CEF70 - .space 0xc + .global NNS_G3dGlb +NNS_G3dGlb: ; 0x021CED18 + .space 0x264 .section .text - ; NNS_G3dGlbGetViewPort - arm_func_start FUN_020B8200 -FUN_020B8200: ; 0x020B8200 + arm_func_start NNS_G3dGlbGetViewPort +NNS_G3dGlbGetViewPort: ; 0x020B8200 cmp r0, #0x0 - ldrne ip, _020B8260 ; =UNK_021CED18 + ldrne ip, _020B8260 ; =NNS_G3dGlb ldrne r12, [r12, #0xa0] andne r12, r12, #0xff strne r12, [r0, #0x0] cmp r1, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, _020B8260 ; =NNS_G3dGlb ldrne r0, [r0, #0xa0] movne r0, r0, lsr #0x8 andne r0, r0, #0xff strne r0, [r1, #0x0] cmp r2, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, _020B8260 ; =NNS_G3dGlb ldrne r0, [r0, #0xa0] movne r0, r0, lsr #0x10 andne r0, r0, #0xff strne r0, [r2, #0x0] cmp r3, #0x0 - ldrne r0, _020B8260 ; =UNK_021CED18 + ldrne r0, _020B8260 ; =NNS_G3dGlb ldrne r0, [r0, #0xa0] movne r0, r0, lsr #0x18 andne r0, r0, #0xff strne r0, [r3, #0x0] bx lr .balign 4 -_020B8260: .word UNK_021CED18 - arm_func_end FUN_020B8200 +_020B8260: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbGetViewPort - ; NNS_G3dGlbGetInvWV - arm_func_start FUN_020B8264 -FUN_020B8264: ; 0x020B8264 + arm_func_start NNS_G3dGlbGetInvWV +NNS_G3dGlbGetInvWV: ; 0x020B8264 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020B829C ; =UNK_021CED18 + ldr r0, _020B829C ; =NNS_G3dGlb ldr r0, [r0, #0xfc] ands r0, r0, #0x80 bne _020B8290 - bl FUN_020B82E4 - ldr r0, _020B829C ; =UNK_021CED18 + bl calcSrtCameraMtx_ + ldr r0, _020B829C ; =NNS_G3dGlb ldr r1, [r0, #0xfc] orr r1, r1, #0x80 str r1, [r0, #0xfc] _020B8290: - ldr r0, _020B82A0 ; =UNK_021CEE78 + ldr r0, _020B82A0 ; =NNS_G3dGlb + 0x160 add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B829C: .word UNK_021CED18 -_020B82A0: .word UNK_021CEE78 - arm_func_end FUN_020B8264 +_020B829C: .word NNS_G3dGlb +_020B82A0: .word NNS_G3dGlb + 0x160 + arm_func_end NNS_G3dGlbGetInvWV - ; NNS_G3dGlbGetWV - arm_func_start FUN_020B82A4 -FUN_020B82A4: ; 0x020B82A4 + arm_func_start NNS_G3dGlbGetWV +NNS_G3dGlbGetWV: ; 0x020B82A4 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020B82DC ; =UNK_021CED18 + ldr r0, _020B82DC ; =NNS_G3dGlb ldr r0, [r0, #0xfc] ands r0, r0, #0x80 bne _020B82D0 - bl FUN_020B82E4 - ldr r0, _020B82DC ; =UNK_021CED18 + bl calcSrtCameraMtx_ + ldr r0, _020B82DC ; =NNS_G3dGlb ldr r1, [r0, #0xfc] orr r1, r1, #0x80 str r1, [r0, #0xfc] _020B82D0: - ldr r0, _020B82E0 ; =UNK_021CEE48 + ldr r0, _020B82E0 ; =NNS_G3dGlb + 0x130 add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B82DC: .word UNK_021CED18 -_020B82E0: .word UNK_021CEE48 - arm_func_end FUN_020B82A4 +_020B82DC: .word NNS_G3dGlb +_020B82E0: .word NNS_G3dGlb + 0x130 + arm_func_end NNS_G3dGlbGetWV - ; calcSrtCameraMtx_ - arm_func_start FUN_020B82E4 -FUN_020B82E4: ; 0x020B82E4 + arm_func_start calcSrtCameraMtx_ +calcSrtCameraMtx_: ; 0x020B82E4 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020B8330 ; =UNK_021CEDD4 - ldr r1, _020B8334 ; =UNK_021CED64 - ldr r2, _020B8338 ; =UNK_021CEE48 + ldr r0, _020B8330 ; =NNS_G3dGlb + 0xBC + ldr r1, _020B8334 ; =NNS_G3dGlb + 0x4C + ldr r2, _020B8338 ; =NNS_G3dGlb + 0x130 bl MTX_Concat43 - ldr r3, _020B833C ; =UNK_021CED18 - ldr r0, _020B8338 ; =UNK_021CEE48 + ldr r3, _020B833C ; =NNS_G3dGlb + ldr r0, _020B8338 ; =NNS_G3dGlb + 0x130 ldr r2, [r3, #0xf4] mov r1, r0 str r2, [sp, #0x0] ldr r2, [r3, #0xec] ldr r3, [r3, #0xf0] bl MTX_ScaleApply43 - ldr r0, _020B8338 ; =UNK_021CEE48 - ldr r1, _020B8340 ; =UNK_021CEE78 + ldr r0, _020B8338 ; =NNS_G3dGlb + 0x130 + ldr r1, _020B8340 ; =NNS_G3dGlb + 0x160 bl MTX_Inverse43 add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B8330: .word UNK_021CEDD4 -_020B8334: .word UNK_021CED64 -_020B8338: .word UNK_021CEE48 -_020B833C: .word UNK_021CED18 -_020B8340: .word UNK_021CEE78 - arm_func_end FUN_020B82E4 +_020B8330: .word NNS_G3dGlb + 0xBC +_020B8334: .word NNS_G3dGlb + 0x4C +_020B8338: .word NNS_G3dGlb + 0x130 +_020B833C: .word NNS_G3dGlb +_020B8340: .word NNS_G3dGlb + 0x160 + arm_func_end calcSrtCameraMtx_ - ; NNS_G3dGlbGetInvV - arm_func_start FUN_020B8344 -FUN_020B8344: ; 0x020B8344 + arm_func_start NNS_G3dGlbGetInvV +NNS_G3dGlbGetInvV: ; 0x020B8344 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020B8384 ; =UNK_021CED18 + ldr r0, _020B8384 ; =NNS_G3dGlb ldr r0, [r0, #0xfc] ands r0, r0, #0x8 bne _020B8378 - ldr r0, _020B8388 ; =UNK_021CED64 - ldr r1, _020B838C ; =UNK_021CEE18 + ldr r0, _020B8388 ; =NNS_G3dGlb + 0x4C + ldr r1, _020B838C ; =NNS_G3dGlb + 0x100 bl MTX_Inverse43 - ldr r0, _020B8384 ; =UNK_021CED18 + ldr r0, _020B8384 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] orr r1, r1, #0x8 str r1, [r0, #0xfc] _020B8378: - ldr r0, _020B838C ; =UNK_021CEE18 + ldr r0, _020B838C ; =NNS_G3dGlb + 0x100 add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B8384: .word UNK_021CED18 -_020B8388: .word UNK_021CED64 -_020B838C: .word UNK_021CEE18 - arm_func_end FUN_020B8344 +_020B8384: .word NNS_G3dGlb +_020B8388: .word NNS_G3dGlb + 0x4C +_020B838C: .word NNS_G3dGlb + 0x100 + arm_func_end NNS_G3dGlbGetInvV - ; NNS_G3dGlbPolygonAttr - arm_func_start FUN_020B8390 -FUN_020B8390: ; 0x020B8390 + arm_func_start NNS_G3dGlbPolygonAttr +NNS_G3dGlbPolygonAttr: ; 0x020B8390 orr r0, r0, r1, lsl #0x4 ldr r1, [sp, #0x4] orr r0, r0, r2, lsl #0x6 orr r0, r1, r0 ldr r2, [sp, #0x0] orr r1, r0, r3, lsl #0x18 - ldr r0, _020B83B8 ; =UNK_021CED18 + ldr r0, _020B83B8 ; =NNS_G3dGlb orr r1, r1, r2, lsl #0x10 str r1, [r0, #0x9c] bx lr .balign 4 -_020B83B8: .word UNK_021CED18 - arm_func_end FUN_020B8390 +_020B83B8: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbPolygonAttr - ; NNS_G3dGlbMaterialColorSpecEmi - arm_func_start FUN_020B83BC -FUN_020B83BC: ; 0x020B83BC + arm_func_start NNS_G3dGlbMaterialColorSpecEmi +NNS_G3dGlbMaterialColorSpecEmi: ; 0x020B83BC cmp r2, #0x0 movne r2, #0x1 orr r1, r0, r1, lsl #0x10 moveq r2, #0x0 - ldr r0, _020B83DC ; =UNK_021CED18 + ldr r0, _020B83DC ; =NNS_G3dGlb orr r1, r1, r2, lsl #0xf str r1, [r0, #0x98] bx lr .balign 4 -_020B83DC: .word UNK_021CED18 - arm_func_end FUN_020B83BC +_020B83DC: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbMaterialColorSpecEmi - ; NNS_G3dGlbMaterialColorDiffAmb - arm_func_start FUN_020B83E0 -FUN_020B83E0: ; 0x020B83E0 + arm_func_start NNS_G3dGlbMaterialColorDiffAmb +NNS_G3dGlbMaterialColorDiffAmb: ; 0x020B83E0 cmp r2, #0x0 movne r2, #0x1 orr r1, r0, r1, lsl #0x10 moveq r2, #0x0 - ldr r0, _020B8400 ; =UNK_021CED18 + ldr r0, _020B8400 ; =NNS_G3dGlb orr r1, r1, r2, lsl #0xf str r1, [r0, #0x94] bx lr .balign 4 -_020B8400: .word UNK_021CED18 - arm_func_end FUN_020B83E0 +_020B8400: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbMaterialColorDiffAmb - ; NNS_G3dGlbLightColor - arm_func_start FUN_020B8404 -FUN_020B8404: ; 0x020B8404 - ldr r2, _020B8414 ; =UNK_021CEDC0 + arm_func_start NNS_G3dGlbLightColor +NNS_G3dGlbLightColor: ; 0x020B8404 + ldr r2, _020B8414 ; =NNS_G3dGlb + 0xA8 orr r1, r1, r0, lsl #0x1e str r1, [r2, r0, lsl #0x2] bx lr .balign 4 -_020B8414: .word UNK_021CEDC0 - arm_func_end FUN_020B8404 +_020B8414: .word NNS_G3dGlb + 0xA8 + arm_func_end NNS_G3dGlbLightColor - ; NNS_G3dGlbLightVector - arm_func_start FUN_020B8418 -FUN_020B8418: ; 0x020B8418 + arm_func_start NNS_G3dGlbLightVector +NNS_G3dGlbLightVector: ; 0x020B8418 stmdb sp!, {r4,lr} ldr ip, _020B8444 ; =0x000003FF - ldr lr, _020B8448 ; =UNK_021CED98 + ldr lr, _020B8448 ; =NNS_G3dGlb + 0x80 and r4, r12, r1, asr #0x3 and r1, r12, r2, asr #0x3 and r2, r12, r3, asr #0x3 @@ -282,51 +206,48 @@ FUN_020B8418: ; 0x020B8418 ldmia sp!, {r4,pc} .balign 4 _020B8444: .word 0x000003FF -_020B8448: .word UNK_021CED98 - arm_func_end FUN_020B8418 +_020B8448: .word NNS_G3dGlb + 0x80 + arm_func_end NNS_G3dGlbLightVector - ; NNS_G3dGlbSetBaseScale - arm_func_start FUN_020B844C -FUN_020B844C: ; 0x020B844C - ldr r3, _020B846C ; =UNK_021CEE04 + arm_func_start NNS_G3dGlbSetBaseScale +NNS_G3dGlbSetBaseScale: ; 0x020B844C + ldr r3, _020B846C ; =NNS_G3dGlb + 0xEC ldmia r0, {r0-r2} stmia r3, {r0-r2} - ldr r0, _020B8470 ; =UNK_021CED18 + ldr r0, _020B8470 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] bic r1, r1, #0xa4 str r1, [r0, #0xfc] bx lr .balign 4 -_020B846C: .word UNK_021CEE04 -_020B8470: .word UNK_021CED18 - arm_func_end FUN_020B844C +_020B846C: .word NNS_G3dGlb + 0xEC +_020B8470: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbSetBaseScale - ; NNS_G3dGlbSetBaseTrans - arm_func_start FUN_020B8474 -FUN_020B8474: ; 0x020B8474 - ldr r3, _020B8494 ; =UNK_021CEDF8 + arm_func_start NNS_G3dGlbSetBaseTrans +NNS_G3dGlbSetBaseTrans: ; 0x020B8474 + ldr r3, _020B8494 ; =NNS_G3dGlb + 0xE0 ldmia r0, {r0-r2} stmia r3, {r0-r2} - ldr r0, _020B8498 ; =UNK_021CED18 + ldr r0, _020B8498 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] bic r1, r1, #0xa4 str r1, [r0, #0xfc] bx lr .balign 4 -_020B8494: .word UNK_021CEDF8 -_020B8498: .word UNK_021CED18 - arm_func_end FUN_020B8474 +_020B8494: .word NNS_G3dGlb + 0xE0 +_020B8498: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbSetBaseTrans - ; NNS_G3dGlbFlushP - arm_func_start FUN_020B849C -FUN_020B849C: ; 0x020B849C + arm_func_start NNS_G3dGlbFlushP +NNS_G3dGlbFlushP: ; 0x020B849C stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r1, _020B84D4 ; =UNK_021CED18 + ldr r1, _020B84D4 ; =NNS_G3dGlb mov r2, #0x3e ldr r0, [r1], #0x4 - bl FUN_020BB1C0 - ldr r0, _020B84D4 ; =UNK_021CED18 + bl NNS_G3dGeBufferOP_N + ldr r0, _020B84D4 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] bic r1, r1, #0x1 str r1, [r0, #0xfc] @@ -335,23 +256,22 @@ FUN_020B849C: ; 0x020B849C add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020B84D4: .word UNK_021CED18 - arm_func_end FUN_020B849C +_020B84D4: .word NNS_G3dGlb + arm_func_end NNS_G3dGlbFlushP - ; NNS_G3dGlbInit - arm_func_start FUN_020B84D8 -FUN_020B84D8: ; 0x020B84D8 + arm_func_start NNS_G3dGlbInit +NNS_G3dGlbInit: ; 0x020B84D8 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 ldr r8, _020B85F4 ; =0x17101610 - ldr r1, _020B85F8 ; =UNK_021CED18 + ldr r1, _020B85F8 ; =NNS_G3dGlb ldr r5, _020B85FC ; =0x32323232 ldr r4, _020B8600 ; =0x60293130 ldr r3, _020B8604 ; =0x33333333 ldr r2, _020B8608 ; =0x002A1B19 mov r7, #0x0 mov r6, #0x2 - ldr r0, _020B860C ; =UNK_021CED64 + ldr r0, _020B860C ; =NNS_G3dGlb + 0x4C str r8, [r1, #0x0] str r7, [r1, #0x4] str r6, [r1, #0x48] @@ -360,10 +280,10 @@ FUN_020B84D8: ; 0x020B84D8 str r3, [r1, #0xa4] str r2, [r1, #0xb8] bl MTX_Identity43_ - ldr r0, _020B8610 ; =UNK_021CED20 + ldr r0, _020B8610 ; =NNS_G3dGlb + 0x8 bl MTX_Identity44_ mov r2, r7 - ldr r1, _020B85F8 ; =UNK_021CED18 + ldr r1, _020B85F8 ; =NNS_G3dGlb ldr r7, _020B8614 ; =0x4210C210 ldr r0, _020B8618 ; =0x40000200 ldr lr, _020B861C ; =0x2D8B62D8 @@ -377,7 +297,7 @@ FUN_020B84D8: ; 0x020B84D8 str r0, [r1, #0x84] str lr, [r1, #0x80] mov lr, #0x4000001f - ldr r0, _020B863C ; =UNK_021CEDD4 + ldr r0, _020B863C ; =NNS_G3dGlb + 0xBC str r9, [r1, #0x88] str r8, [r1, #0x8c] str r7, [r1, #0x94] @@ -393,7 +313,7 @@ FUN_020B84D8: ; 0x020B84D8 str r2, [r1, #0xe8] bl MTX_Identity33_ mov r3, #0x1000 - ldr r0, _020B85F8 ; =UNK_021CED18 + ldr r0, _020B85F8 ; =NNS_G3dGlb mov r2, #0x0 rsb r1, r3, #0x0 str r3, [r0, #0xec] @@ -414,13 +334,13 @@ FUN_020B84D8: ; 0x020B84D8 ldmia sp!, {r4-r9,pc} .balign 4 _020B85F4: .word 0x17101610 -_020B85F8: .word UNK_021CED18 +_020B85F8: .word NNS_G3dGlb _020B85FC: .word 0x32323232 _020B8600: .word 0x60293130 _020B8604: .word 0x33333333 _020B8608: .word 0x002A1B19 -_020B860C: .word UNK_021CED64 -_020B8610: .word UNK_021CED20 +_020B860C: .word NNS_G3dGlb + 0x4C +_020B8610: .word NNS_G3dGlb + 0x8 _020B8614: .word 0x4210C210 _020B8618: .word 0x40000200 _020B861C: .word 0x2D8B62D8 @@ -431,6 +351,5 @@ _020B862C: .word 0xBFFF0000 _020B8630: .word 0x00007FFF _020B8634: .word 0x800003E0 _020B8638: .word 0xC0007C00 -_020B863C: .word UNK_021CEDD4 - arm_func_end FUN_020B84D8 - +_020B863C: .word NNS_G3dGlb + 0xBC + arm_func_end NNS_G3dGlbInit diff --git a/arm9/asm/NNS_G3D_kernel.s b/arm9/asm/NNS_G3D_kernel.s index 71052927f..ebf3d210f 100644 --- a/arm9/asm/NNS_G3D_kernel.s +++ b/arm9/asm/NNS_G3D_kernel.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020B772C -FUN_020B772C: ; 0x020B772C + arm_func_start NNS_G3dReleaseMdlSet +NNS_G3dReleaseMdlSet: ; 0x020B772C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r6, r0 @@ -23,20 +22,19 @@ _020B7750: ldr r0, [r0, #0x4] add r7, r6, r0 mov r0, r7 - bl FUN_020B79A4 + bl NNS_G3dReleaseMdlTex mov r0, r7 - bl FUN_020B780C + bl NNS_G3dReleaseMdlPltt ldrb r0, [r6, #0x9] add r5, r5, #0x1 cmp r5, r0 blo _020B7750 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020B772C + arm_func_end NNS_G3dReleaseMdlSet - ; _end - arm_func_start FUN_020B7790 -FUN_020B7790: ; 0x020B7790 + arm_func_start NNS_G3dBindMdlSet +NNS_G3dBindMdlSet: ; 0x020B7790 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 mov r8, r0 @@ -56,11 +54,11 @@ _020B77B8: ldr r0, [r0, #0x4] add r9, r8, r0 mov r0, r9 - bl FUN_020B7A04 + bl NNS_G3dBindMdlTex and r5, r5, r0 mov r0, r9 mov r1, r7 - bl FUN_020B7864 + bl NNS_G3dBindMdlPltt ldrb r1, [r8, #0x9] add r6, r6, #0x1 and r5, r5, r0 @@ -70,11 +68,10 @@ _020B7800: mov r0, r5 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020B7790 + arm_func_end NNS_G3dBindMdlSet - ; _end - arm_func_start FUN_020B780C -FUN_020B780C: ; 0x020B780C + arm_func_start NNS_G3dReleaseMdlPltt +NNS_G3dReleaseMdlPltt: ; 0x020B780C ldr r2, [r0, #0x8] mov r1, #0x0 add r2, r0, r2 @@ -98,11 +95,10 @@ _020B782C: cmp r1, r0 blo _020B782C bx lr - arm_func_end FUN_020B780C + arm_func_end NNS_G3dReleaseMdlPltt - ; _end - arm_func_start FUN_020B7864 -FUN_020B7864: ; 0x020B7864 + arm_func_start NNS_G3dBindMdlPltt +NNS_G3dBindMdlPltt: ; 0x020B7864 stmdb sp!, {r4-r10,lr} ldr r2, [r0, #0x8] mov r10, r1 @@ -124,7 +120,7 @@ _020B7898: add r0, r10, r0 add r1, r2, r1 add r1, r1, r5 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName movs r3, r0 beq _020B78F0 ldrh r1, [r8, #0x6] @@ -137,7 +133,7 @@ _020B7898: bne _020B78F4 mov r0, r9 mov r2, r10 - bl FUN_020B7910 + bl bindMdlPltt_Internal_ b _020B78F4 _020B78F0: mov r6, r4 @@ -150,11 +146,10 @@ _020B78F4: _020B7908: mov r0, r6 ldmia sp!, {r4-r10,pc} - arm_func_end FUN_020B7864 + arm_func_end NNS_G3dBindMdlPltt - ; _end - arm_func_start FUN_020B7910 -FUN_020B7910: ; 0x020B7910 + arm_func_start bindMdlPltt_Internal_ +bindMdlPltt_Internal_: ; 0x020B7910 stmdb sp!, {r4-r6,lr} ldrh r5, [r1, #0x0] ldr r2, [r2, #0x2c] @@ -194,11 +189,10 @@ _020B7994: orr r0, r0, #0x1 strb r0, [r1, #0x3] ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B7910 + arm_func_end bindMdlPltt_Internal_ - ; _end - arm_func_start FUN_020B79A4 -FUN_020B79A4: ; 0x020B79A4 + arm_func_start NNS_G3dReleaseMdlTex +NNS_G3dReleaseMdlTex: ; 0x020B79A4 stmdb sp!, {r4-r6,lr} ldr r2, [r0, #0x8] mov r4, #0x0 @@ -218,18 +212,17 @@ _020B79C8: ands r0, r0, #0x1 beq _020B79F0 mov r0, r6 - bl FUN_020B7AB8 + bl releaseMdlTex_Internal_ _020B79F0: ldrb r0, [r5, #0x1] add r4, r4, #0x1 cmp r4, r0 blo _020B79C8 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B79A4 + arm_func_end NNS_G3dReleaseMdlTex - ; _end - arm_func_start FUN_020B7A04 -FUN_020B7A04: ; 0x020B7A04 + arm_func_start NNS_G3dBindMdlTex +NNS_G3dBindMdlTex: ; 0x020B7A04 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 ldr r2, [r0, #0x8] @@ -252,7 +245,7 @@ _020B7A40: ldrh r1, [r2, #0x2] add r1, r2, r1 add r1, r1, r6 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName movs r3, r0 beq _020B7A94 ldrh r1, [r8, #0x6] @@ -265,7 +258,7 @@ _020B7A40: bne _020B7A98 mov r0, r9 mov r2, r10 - bl FUN_020B7B40 + bl bindMdlTex_Internal_ b _020B7A98 _020B7A94: mov r11, r4 @@ -279,11 +272,10 @@ _020B7AAC: mov r0, r11 add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020B7A04 + arm_func_end NNS_G3dBindMdlTex - ; releaseMdlTex_Internal_ - arm_func_start FUN_020B7AB8 -FUN_020B7AB8: ; 0x020B7AB8 + arm_func_start releaseMdlTex_Internal_ +releaseMdlTex_Internal_: ; 0x020B7AB8 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldrh r4, [r1, #0x0] @@ -321,11 +313,10 @@ _020B7B28: ldmia sp!, {r4-r7,pc} .balign 4 _020B7B3C: .word 0xC00F0000 - arm_func_end FUN_020B7AB8 + arm_func_end releaseMdlTex_Internal_ - ; bindMdlTex_Internal_ - arm_func_start FUN_020B7B40 -FUN_020B7B40: ; 0x020B7B40 + arm_func_start bindMdlTex_Internal_ +bindMdlTex_Internal_: ; 0x020B7B40 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r11, r1 @@ -401,11 +392,10 @@ _020B7C3C: .balign 4 _020B7C50: .word 0x0000FFFF _020B7C54: .word 0x000007FF - arm_func_end FUN_020B7B40 + arm_func_end bindMdlTex_Internal_ - ; _end - arm_func_start FUN_020B7C58 -FUN_020B7C58: ; 0x020B7C58 + arm_func_start NNS_G3dPlttReleasePlttKey +NNS_G3dPlttReleasePlttKey: ; 0x020B7C58 ldrh r2, [r0, #0x32] mov r1, #0x0 bic r2, r2, #0x1 @@ -414,11 +404,10 @@ FUN_020B7C58: ; 0x020B7C58 str r1, [r0, #0x2c] mov r0, r2 bx lr - arm_func_end FUN_020B7C58 + arm_func_end NNS_G3dPlttReleasePlttKey - ; NNS_G3dPlttLoad - arm_func_start FUN_020B7C78 -FUN_020B7C78: ; 0x020B7C78 + arm_func_start NNS_G3dPlttLoad +NNS_G3dPlttLoad: ; 0x020B7C78 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 movs r4, r1 @@ -446,26 +435,23 @@ _020B7C90: ldmia sp!, {r4-r5,pc} .balign 4 _020B7CD8: .word 0x0000FFFF - arm_func_end FUN_020B7C78 + arm_func_end NNS_G3dPlttLoad - ; _end - arm_func_start FUN_020B7CDC -FUN_020B7CDC: ; 0x020B7CDC + arm_func_start NNS_G3dPlttSetPlttKey +NNS_G3dPlttSetPlttKey: ; 0x020B7CDC str r1, [r0, #0x2c] bx lr - arm_func_end FUN_020B7CDC + arm_func_end NNS_G3dPlttSetPlttKey - ; _end - arm_func_start FUN_020B7CE4 -FUN_020B7CE4: ; 0x020B7CE4 + arm_func_start NNS_G3dPlttGetRequiredSize +NNS_G3dPlttGetRequiredSize: ; 0x020B7CE4 ldrh r0, [r0, #0x30] mov r0, r0, lsl #0x3 bx lr - arm_func_end FUN_020B7CE4 + arm_func_end NNS_G3dPlttGetRequiredSize - ; _end - arm_func_start FUN_020B7CF0 -FUN_020B7CF0: ; 0x020B7CF0 + arm_func_start NNS_G3dTexReleaseTexKey +NNS_G3dTexReleaseTexKey: ; 0x020B7CF0 ldrh r12, [r0, #0x10] mov r3, #0x0 bic r12, r12, #0x1 @@ -480,11 +466,10 @@ FUN_020B7CF0: ; 0x020B7CF0 str r1, [r2, #0x0] str r3, [r0, #0x18] bx lr - arm_func_end FUN_020B7CF0 + arm_func_end NNS_G3dTexReleaseTexKey - ; NNS_G3dTexLoad - arm_func_start FUN_020B7D28 -FUN_020B7D28: ; 0x020B7D28 + arm_func_start NNS_G3dTexLoad +NNS_G3dTexLoad: ; 0x020B7D28 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 movs r8, r1 @@ -542,53 +527,49 @@ _020B7DDC: .balign 4 _020B7DF4: .word 0x0000FFFF _020B7DF8: .word 0x0001FFFF - arm_func_end FUN_020B7D28 + arm_func_end NNS_G3dTexLoad - ; _end - arm_func_start FUN_020B7DFC -FUN_020B7DFC: ; 0x020B7DFC + arm_func_start NNS_G3dTexSetTexKey +NNS_G3dTexSetTexKey: ; 0x020B7DFC cmp r1, #0x0 strne r1, [r0, #0x8] cmp r2, #0x0 strne r2, [r0, #0x18] bx lr - arm_func_end FUN_020B7DFC + arm_func_end NNS_G3dTexSetTexKey - ; _end - arm_func_start FUN_020B7E10 -FUN_020B7E10: ; 0x020B7E10 + arm_func_start NNS_G3dTex4x4GetRequiredSize +NNS_G3dTex4x4GetRequiredSize: ; 0x020B7E10 ldrh r0, [r0, #0x1c] mov r0, r0, lsl #0x3 bx lr - arm_func_end FUN_020B7E10 + arm_func_end NNS_G3dTex4x4GetRequiredSize - ; _end - arm_func_start FUN_020B7E1C -FUN_020B7E1C: ; 0x020B7E1C + arm_func_start NNS_G3dTexGetRequiredSize +NNS_G3dTexGetRequiredSize: ; 0x020B7E1C ldrh r0, [r0, #0xc] mov r0, r0, lsl #0x3 bx lr - arm_func_end FUN_020B7E1C + arm_func_end NNS_G3dTexGetRequiredSize - ; _end - arm_func_start FUN_020B7E28 -FUN_020B7E28: ; 0x020B7E28 + arm_func_start NNS_G3dRenderObjRemoveAnmObj +NNS_G3dRenderObjRemoveAnmObj: ; 0x020B7E28 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 add r0, r5, #0x8 mov r4, r1 - bl FUN_020B7E88 + bl removeLink_ cmp r0, #0x0 bne _020B7E74 mov r1, r4 add r0, r5, #0x10 - bl FUN_020B7E88 + bl removeLink_ cmp r0, #0x0 bne _020B7E74 mov r1, r4 add r0, r5, #0x18 - bl FUN_020B7E88 + bl removeLink_ cmp r0, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} @@ -598,11 +579,10 @@ _020B7E74: str r0, [r5, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7E28 + arm_func_end NNS_G3dRenderObjRemoveAnmObj - ; _end - arm_func_start FUN_020B7E88 -FUN_020B7E88: ; 0x020B7E88 + arm_func_start removeLink_ +removeLink_: ; 0x020B7E88 ldr r2, [r0, #0x0] cmp r2, #0x0 moveq r0, #0x0 @@ -636,11 +616,10 @@ _020B7EE4: _020B7EF4: mov r0, #0x0 bx lr - arm_func_end FUN_020B7E88 + arm_func_end removeLink_ - ; _end - arm_func_start FUN_020B7EFC -FUN_020B7EFC: ; 0x020B7EFC + arm_func_start NNS_G3dRenderObjAddAnmObj +NNS_G3dRenderObjAddAnmObj: ; 0x020B7EFC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 @@ -657,33 +636,32 @@ FUN_020B7EFC: ; 0x020B7EFC ldmia sp!, {r4-r5,pc} _020B7F34: add r0, r5, #0x3c - bl FUN_020B7F88 + bl updateHintVec_ mov r1, r4 add r0, r5, #0x8 - bl FUN_020B7FF8 + bl addLink_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020B7F50: add r0, r5, #0x44 - bl FUN_020B7F88 + bl updateHintVec_ mov r1, r4 add r0, r5, #0x10 - bl FUN_020B7FF8 + bl addLink_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020B7F6C: add r0, r5, #0x4c - bl FUN_020B7F88 + bl updateHintVec_ mov r1, r4 add r0, r5, #0x18 - bl FUN_020B7FF8 + bl addLink_ add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7EFC + arm_func_end NNS_G3dRenderObjAddAnmObj - ; _end - arm_func_start FUN_020B7F88 -FUN_020B7F88: ; 0x020B7F88 + local_arm_func_start updateHintVec_ +updateHintVec_: ; 0x020B7F88 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -715,11 +693,10 @@ _020B7FE4: bne _020B7FA4 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020B7F88 + arm_func_end updateHintVec_ - ; _end - arm_func_start FUN_020B7FF8 -FUN_020B7FF8: ; 0x020B7FF8 + arm_func_start addLink_ +addLink_: ; 0x020B7FF8 ldr r12, [r0, #0x0] cmp r12, #0x0 streq r1, [r0, #0x0] @@ -776,11 +753,10 @@ _020B809C: _020B80AC: str r1, [r12, #0x10] bx lr - arm_func_end FUN_020B7FF8 + arm_func_end addLink_ - ; NNS_G3dRenderObjInit - arm_func_start FUN_020B80B4 -FUN_020B80B4: ; 0x020B80B4 + arm_func_start NNS_G3dRenderObjInit +NNS_G3dRenderObjInit: ; 0x020B80B4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -789,10 +765,10 @@ FUN_020B80B4: ; 0x020B80B4 mov r0, #0x0 mov r2, #0x54 bl MIi_CpuClear32 - ldr r0, _020B8104 ; =UNK_021065B4 - ldr r1, _020B8108 ; =UNK_021065B0 + ldr r0, _020B8104 ; =NNS_G3dFuncBlendMatDefault + ldr r1, _020B8108 ; =NNS_G3dFuncBlendJntDefault ldr r2, [r0, #0x0] - ldr r0, _020B810C ; =UNK_021065AC + ldr r0, _020B810C ; =NNS_G3dFuncBlendVisDefault str r2, [r5, #0xc] ldr r1, [r1, #0x0] str r1, [r5, #0x14] @@ -802,14 +778,13 @@ FUN_020B80B4: ; 0x020B80B4 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020B8104: .word UNK_021065B4 -_020B8108: .word UNK_021065B0 -_020B810C: .word UNK_021065AC - arm_func_end FUN_020B80B4 +_020B8104: .word NNS_G3dFuncBlendMatDefault +_020B8108: .word NNS_G3dFuncBlendJntDefault +_020B810C: .word NNS_G3dFuncBlendVisDefault + arm_func_end NNS_G3dRenderObjInit - ; NNS_G3dAnmObjInit - arm_func_start FUN_020B8110 -FUN_020B8110: ; 0x020B8110 + arm_func_start NNS_G3dAnmObjInit +NNS_G3dAnmObjInit: ; 0x020B8110 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r12, #0x0 @@ -820,14 +795,14 @@ FUN_020B8110: ; 0x020B8110 strb r4, [r0, #0x18] mov r4, #0x1000 str r4, [r0, #0x4] - ldr lr, _020B81A4 ; =UNK_02106594 + ldr lr, _020B81A4 ; =NNS_G3dAnmFmtNum str r3, [r0, #0x14] ldr r6, [lr, #0x0] cmp r6, #0x0 addls sp, sp, #0x4 ldmlsia sp!, {r4-r7,pc} ldrb r7, [r1, #0x0] - ldr r4, _020B81A8 ; =UNK_021065B8 + ldr r4, _020B81A8 ; =NNS_G3dAnmObjInitFuncArray _020B8158: ldrb r3, [r4, r12, lsl #0x3] mov r5, r12, lsl #0x3 @@ -838,7 +813,7 @@ _020B8158: ldrh r3, [r3, #0x2] cmp lr, r3 bne _020B8190 - ldr r3, _020B81AC ; =UNK_021065BC + ldr r3, _020B81AC ; =NNS_G3dAnmObjInitFuncArray + 0x4 ldr r3, [r3, r5] blx r3 add sp, sp, #0x4 @@ -850,14 +825,13 @@ _020B8190: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020B81A4: .word UNK_02106594 -_020B81A8: .word UNK_021065B8 -_020B81AC: .word UNK_021065BC - arm_func_end FUN_020B8110 +_020B81A4: .word NNS_G3dAnmFmtNum +_020B81A8: .word NNS_G3dAnmObjInitFuncArray +_020B81AC: .word NNS_G3dAnmObjInitFuncArray + 0x4 + arm_func_end NNS_G3dAnmObjInit - ; _end - arm_func_start FUN_020B81B0 -FUN_020B81B0: ; 0x020B81B0 + arm_func_start NNS_G3dAnmObjCalcSizeRequired +NNS_G3dAnmObjCalcSizeRequired: ; 0x020B81B0 ldrb r0, [r0, #0x0] cmp r0, #0x4a beq _020B81E4 @@ -881,5 +855,4 @@ _020B81E4: _020B81F8: mov r0, #0x0 bx lr - arm_func_end FUN_020B81B0 - + arm_func_end NNS_G3dAnmObjCalcSizeRequired diff --git a/arm9/asm/NNS_G3D_maya.s b/arm9/asm/NNS_G3D_maya.s index d7d26b5cc..7a6755336 100644 --- a/arm9/asm/NNS_G3D_maya.s +++ b/arm9/asm/NNS_G3D_maya.s @@ -2,24 +2,20 @@ .include "global.inc" .section .data - - ; calcTexMtx_ - .global UNK_021067B0 -UNK_021067B0: ; 0x021067B0 - .word FUN_020BEBD8 - .word FUN_020BEB00 - .word FUN_020BEA84 - .word FUN_020BEA3C - .word FUN_020BE954 - .word FUN_020BE894 - .word FUN_020BE850 - .word FUN_020BE82C +calcTexMtx_: ; 0x021067B0 + .word texmtxCalc_flag_ + .word texmtxCalc_flagS_ + .word texmtxCalc_flagR_ + .word texmtxCalc_flagRS_ + .word texmtxCalc_flagT_ + .word texmtxCalc_flagTS_ + .word texmtxCalc_flagTR_ + .word texmtxCalc_flagTRS_ .section .text - ; NNSi_G3dSendTexSRTMaya - arm_func_start FUN_020BE6E4 -FUN_020BE6E4: ; 0x020BE6E4 + arm_func_start NNSi_G3dSendTexSRTMaya +NNSi_G3dSendTexSRTMaya: ; 0x020BE6E4 stmdb sp!, {r4,lr} sub sp, sp, #0x50 mov r4, r0 @@ -46,7 +42,7 @@ FUN_020BE6E4: ; 0x020BE6E4 str r1, [sp, #0x14] str r1, [sp, #0x10] ldr r1, [r4, #0x0] - ldr r0, _020BE828 ; =UNK_021067B0 + ldr r0, _020BE828 ; =calcTexMtx_ and r1, r1, #0x7 ldr r2, [r0, r1, lsl #0x2] add r0, sp, #0x8 @@ -98,18 +94,17 @@ _020BE804: ldr r0, [sp, #0x0] add r1, r1, #0x4 mov r2, #0x12 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x50 ldmia sp!, {r4,pc} .balign 4 _020BE820: .word 0x00101610 _020BE824: .word 0x00101810 -_020BE828: .word UNK_021067B0 - arm_func_end FUN_020BE6E4 +_020BE828: .word calcTexMtx_ + arm_func_end NNSi_G3dSendTexSRTMaya - ; _end - arm_func_start FUN_020BE82C -FUN_020BE82C: ; 0x020BE82C + local_arm_func_start texmtxCalc_flagTRS_ +texmtxCalc_flagTRS_: ; 0x020BE82C mov r2, #0x1000 str r2, [r0, #0x0] mov r1, #0x0 @@ -119,11 +114,10 @@ FUN_020BE82C: ; 0x020BE82C str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr - arm_func_end FUN_020BE82C + arm_func_end texmtxCalc_flagTRS_ - ; _end - arm_func_start FUN_020BE850 -FUN_020BE850: ; 0x020BE850 + local_arm_func_start texmtxCalc_flagTR_ +texmtxCalc_flagTR_: ; 0x020BE850 ldr r2, [r1, #0x18] mov r12, #0x0 str r2, [r0, #0x0] @@ -141,11 +135,10 @@ FUN_020BE850: ; 0x020BE850 str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr - arm_func_end FUN_020BE850 + arm_func_end texmtxCalc_flagTR_ - ; _end - arm_func_start FUN_020BE894 -FUN_020BE894: ; 0x020BE894 + local_arm_func_start texmtxCalc_flagTS_ +texmtxCalc_flagTS_: ; 0x020BE894 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -194,11 +187,10 @@ FUN_020BE894: ; 0x020BE894 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BE894 + arm_func_end texmtxCalc_flagTS_ - ; _end - arm_func_start FUN_020BE954 -FUN_020BE954: ; 0x020BE954 + local_arm_func_start texmtxCalc_flagT_ +texmtxCalc_flagT_: ; 0x020BE954 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r9, r1 @@ -257,11 +249,10 @@ FUN_020BE954: ; 0x020BE954 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BE954 + arm_func_end texmtxCalc_flagT_ - ; _end - arm_func_start FUN_020BEA3C -FUN_020BEA3C: ; 0x020BEA3C + local_arm_func_start texmtxCalc_flagRS_ +texmtxCalc_flagRS_: ; 0x020BEA3C mov r2, #0x1000 str r2, [r0, #0x0] str r2, [r0, #0x14] @@ -280,11 +271,10 @@ FUN_020BEA3C: ; 0x020BEA3C str r1, [r0, #0x34] str r12, [r0, #0x10] bx lr - arm_func_end FUN_020BEA3C + arm_func_end texmtxCalc_flagRS_ - ; _end - arm_func_start FUN_020BEA84 -FUN_020BEA84: ; 0x020BEA84 + local_arm_func_start texmtxCalc_flagR_ +texmtxCalc_flagR_: ; 0x020BEA84 stmdb sp!, {r4,lr} ldr r3, [r1, #0x18] mov r2, #0x0 @@ -316,11 +306,10 @@ FUN_020BEA84: ; 0x020BEA84 str r1, [r0, #0x34] str r2, [r0, #0x10] ldmia sp!, {r4,pc} - arm_func_end FUN_020BEA84 + arm_func_end texmtxCalc_flagR_ - ; _end - arm_func_start FUN_020BEB00 -FUN_020BEB00: ; 0x020BEB00 + local_arm_func_start texmtxCalc_flagS_ +texmtxCalc_flagS_: ; 0x020BEB00 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -375,11 +364,10 @@ FUN_020BEB00: ; 0x020BEB00 str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BEB00 + arm_func_end texmtxCalc_flagS_ - ; _end - arm_func_start FUN_020BEBD8 -FUN_020BEBD8: ; 0x020BEBD8 + local_arm_func_start texmtxCalc_flag_ +texmtxCalc_flag_: ; 0x020BEBD8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r9, r1 @@ -449,11 +437,10 @@ FUN_020BEBD8: ; 0x020BEBD8 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BEBD8 + arm_func_end texmtxCalc_flag_ - ; NNSi_G3dGetJointScaleMaya - arm_func_start FUN_020BECEC -FUN_020BECEC: ; 0x020BECEC + arm_func_start NNSi_G3dGetJointScaleMaya +NNSi_G3dGetJointScaleMaya: ; 0x020BECEC stmdb sp!, {r4-r8,lr} mov r12, r0 ands r0, r3, #0x4 @@ -464,7 +451,7 @@ FUN_020BECEC: ; 0x020BECEC orr r0, r1, #0x1 str r0, [r12, #0x0] beq _020BEDB8 - ldr r0, _020BEE2C ; =UNK_021CEF7C + ldr r0, _020BEE2C ; =NNS_G3dRS ldrb r7, [r2, #0x1] ldr r0, [r0, #0x0] mov r1, #0x1 @@ -484,7 +471,7 @@ _020BED40: ldr r0, [r1, #0x8] str r0, [r12, #0xc] beq _020BEDB8 - ldr lr, _020BEE2C ; =UNK_021CEF7C + ldr lr, _020BEE2C ; =NNS_G3dRS ldrb r0, [r2, #0x1] ldr r4, [lr, #0x0] mov lr, #0x18 @@ -498,11 +485,11 @@ _020BED40: and r0, r6, r4 str r0, [r8, r7, lsl #0x2] ldr r4, [r1, #0xc] - ldr r0, _020BEE30 ; =UNK_021CFD8C - ldr lr, _020BEE34 ; =UNK_021CFD90 + ldr r0, _020BEE30 ; =NNS_G3dRSOnGlb + 0xE0C + ldr lr, _020BEE34 ; =NNS_G3dRSOnGlb + 0xE10 str r4, [r0, r5] ldr r4, [r1, #0x10] - ldr r0, _020BEE38 ; =UNK_021CFD94 + ldr r0, _020BEE38 ; =NNS_G3dRSOnGlb + 0xE14 str r4, [lr, r5] ldr r1, [r1, #0x14] str r1, [r0, r5] @@ -511,7 +498,7 @@ _020BEDB8: beq _020BEE1C ldrb r0, [r2, #0x2] ldr r2, [r12, #0x0] - ldr r1, _020BEE2C ; =UNK_021CEF7C + ldr r1, _020BEE2C ; =NNS_G3dRS orr r2, r2, #0x20 str r2, [r12, #0x0] ldr r2, [r1, #0x0] @@ -526,7 +513,7 @@ _020BEDB8: orrne r0, r0, #0x8 strne r0, [r12, #0x0] bne _020BEE1C - ldr r2, _020BEE30 ; =UNK_021CFD8C + ldr r2, _020BEE30 ; =NNS_G3dRSOnGlb + 0xE0C mov r1, #0x18 mla r1, r0, r1, r2 add r3, r12, #0x10 @@ -538,15 +525,14 @@ _020BEE1C: str r0, [r12, #0x0] ldmia sp!, {r4-r8,pc} .balign 4 -_020BEE2C: .word UNK_021CEF7C -_020BEE30: .word UNK_021CFD8C -_020BEE34: .word UNK_021CFD90 -_020BEE38: .word UNK_021CFD94 - arm_func_end FUN_020BECEC +_020BEE2C: .word NNS_G3dRS +_020BEE30: .word NNS_G3dRSOnGlb + 0xE0C +_020BEE34: .word NNS_G3dRSOnGlb + 0xE10 +_020BEE38: .word NNS_G3dRSOnGlb + 0xE14 + arm_func_end NNSi_G3dGetJointScaleMaya - ; _end - arm_func_start FUN_020BEE3C -FUN_020BEE3C: ; 0x020BEE3C + arm_func_start NNSi_G3dSendJointSRTMaya +NNSi_G3dSendJointSRTMaya: ; 0x020BEE3C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -563,13 +549,13 @@ FUN_020BEE3C: ; 0x020BEE3C add r1, r5, #0x4c mov r0, #0x1c mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r4, #0x0 _020BEE84: add r1, r5, #0x10 mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BEE94: ldr r0, [r5, #0x0] ands r0, r0, #0x2 @@ -579,13 +565,13 @@ _020BEE94: add r1, r5, #0x28 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BEEE8 _020BEEBC: add r1, r5, #0x28 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BEEE8 _020BEED0: cmp r4, #0x0 @@ -593,7 +579,7 @@ _020BEED0: add r1, r5, #0x4c mov r0, #0x1c mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BEEE8: ldr r0, [r5, #0x0] ands r0, r0, #0x1 @@ -602,8 +588,7 @@ _020BEEE8: add r1, r5, #0x4 mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BEE3C - + arm_func_end NNSi_G3dSendJointSRTMaya diff --git a/arm9/asm/NNS_G3D_mem.s b/arm9/asm/NNS_G3D_mem.s index 97d2c2241..e01336e50 100644 --- a/arm9/asm/NNS_G3D_mem.s +++ b/arm9/asm/NNS_G3D_mem.s @@ -3,26 +3,23 @@ .section .text - ; NNS_G3dFreeAnmObj - arm_func_start thunk_FUN_020ae84c -thunk_FUN_020ae84c: ; 0x020BB8C4 - ldr ip, _020BB8CC ; =FUN_020AE84C + arm_func_start NNS_G3dFreeAnmObj +NNS_G3dFreeAnmObj: ; 0x020BB8C4 + ldr ip, _020BB8CC ; =NNS_FndFreeToAllocator bx r12 .balign 4 -_020BB8CC: .word FUN_020AE84C - arm_func_end thunk_FUN_020ae84c +_020BB8CC: .word NNS_FndFreeToAllocator + arm_func_end NNS_G3dFreeAnmObj - ; _end - arm_func_start FUN_020BB8D0 -FUN_020BB8D0: ; 0x020BB8D0 + arm_func_start NNS_G3dAllocAnmObj +NNS_G3dAllocAnmObj: ; 0x020BB8D0 stmdb sp!, {r4,lr} mov r4, r0 mov r0, r1 mov r1, r2 - bl FUN_020B81B0 + bl NNS_G3dAnmObjCalcSizeRequired mov r1, r0 mov r0, r4 - bl FUN_020AE868 + bl NNS_FndAllocFromAllocator ldmia sp!, {r4,pc} - arm_func_end FUN_020BB8D0 - + arm_func_end NNS_G3dAllocAnmObj diff --git a/arm9/asm/NNS_G3D_model.s b/arm9/asm/NNS_G3D_model.s index 437290e8a..958a9b8a5 100644 --- a/arm9/asm/NNS_G3D_model.s +++ b/arm9/asm/NNS_G3D_model.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BB8F4 -FUN_020BB8F4: ; 0x020BB8F4 + arm_func_start NNS_G3dMdlSetMdlXLDepthUpdateAll +NNS_G3dMdlSetMdlXLDepthUpdateAll: ; 0x020BB8F4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -17,17 +16,16 @@ _020BB910: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBC74 + bl NNS_G3dMdlSetMdlXLDepthUpdate ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BB910 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB8F4 + arm_func_end NNS_G3dMdlSetMdlXLDepthUpdateAll - ; _end - arm_func_start FUN_020BB934 -FUN_020BB934: ; 0x020BB934 + arm_func_start NNS_G3dMdlSetMdlFarClipAll +NNS_G3dMdlSetMdlFarClipAll: ; 0x020BB934 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -39,17 +37,16 @@ _020BB950: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBCB8 + bl NNS_G3dMdlSetMdlFarClip ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BB950 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB934 + arm_func_end NNS_G3dMdlSetMdlFarClipAll - ; _end - arm_func_start FUN_020BB974 -FUN_020BB974: ; 0x020BB974 + arm_func_start NNS_G3dMdlSetMdl1DotAll +NNS_G3dMdlSetMdl1DotAll: ; 0x020BB974 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -61,17 +58,16 @@ _020BB990: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBCFC + bl NNS_G3dMdlSetMdl1Dot ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BB990 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB974 + arm_func_end NNS_G3dMdlSetMdl1DotAll - ; _end - arm_func_start FUN_020BB9B4 -FUN_020BB9B4: ; 0x020BB9B4 + arm_func_start NNS_G3dMdlSetMdlDepthTestCondAll +NNS_G3dMdlSetMdlDepthTestCondAll: ; 0x020BB9B4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -83,17 +79,16 @@ _020BB9D0: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBD40 + bl NNS_G3dMdlSetMdlDepthTestCond ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BB9D0 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB9B4 + arm_func_end NNS_G3dMdlSetMdlDepthTestCondAll - ; _end - arm_func_start FUN_020BB9F4 -FUN_020BB9F4: ; 0x020BB9F4 + arm_func_start NNS_G3dMdlSetMdlFogEnableFlagAll +NNS_G3dMdlSetMdlFogEnableFlagAll: ; 0x020BB9F4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -105,17 +100,16 @@ _020BBA10: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBD84 + bl NNS_G3dMdlSetMdlFogEnableFlag ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBA10 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BB9F4 + arm_func_end NNS_G3dMdlSetMdlFogEnableFlagAll - ; _end - arm_func_start FUN_020BBA34 -FUN_020BBA34: ; 0x020BBA34 + arm_func_start NNS_G3dMdlSetMdlAlphaAll +NNS_G3dMdlSetMdlAlphaAll: ; 0x020BBA34 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -127,17 +121,16 @@ _020BBA50: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBDC8 + bl NNS_G3dMdlSetMdlAlpha ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBA50 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBA34 + arm_func_end NNS_G3dMdlSetMdlAlphaAll - ; _end - arm_func_start FUN_020BBA74 -FUN_020BBA74: ; 0x020BBA74 + arm_func_start NNS_G3dMdlSetMdlPolygonIDAll +NNS_G3dMdlSetMdlPolygonIDAll: ; 0x020BBA74 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -149,17 +142,16 @@ _020BBA90: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBE0C + bl NNS_G3dMdlSetMdlPolygonID ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBA90 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBA74 + arm_func_end NNS_G3dMdlSetMdlPolygonIDAll - ; _end - arm_func_start FUN_020BBAB4 -FUN_020BBAB4: ; 0x020BBAB4 + arm_func_start NNS_G3dMdlSetMdlCullModeAll +NNS_G3dMdlSetMdlCullModeAll: ; 0x020BBAB4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -171,17 +163,16 @@ _020BBAD0: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBE50 + bl NNS_G3dMdlSetMdlCullMode ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBAD0 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBAB4 + arm_func_end NNS_G3dMdlSetMdlCullModeAll - ; _end - arm_func_start FUN_020BBAF4 -FUN_020BBAF4: ; 0x020BBAF4 + arm_func_start NNS_G3dMdlSetMdlPolygonModeAll +NNS_G3dMdlSetMdlPolygonModeAll: ; 0x020BBAF4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -193,17 +184,16 @@ _020BBB10: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBE94 + bl NNS_G3dMdlSetMdlPolygonMode ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBB10 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBAF4 + arm_func_end NNS_G3dMdlSetMdlPolygonModeAll - ; _end - arm_func_start FUN_020BBB34 -FUN_020BBB34: ; 0x020BBB34 + arm_func_start NNS_G3dMdlSetMdlLightEnableFlagAll +NNS_G3dMdlSetMdlLightEnableFlagAll: ; 0x020BBB34 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -215,17 +205,16 @@ _020BBB50: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBED8 + bl NNS_G3dMdlSetMdlLightEnableFlag ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBB50 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBB34 + arm_func_end NNS_G3dMdlSetMdlLightEnableFlagAll - ; _end - arm_func_start FUN_020BBB74 -FUN_020BBB74: ; 0x020BBB74 + arm_func_start NNS_G3dMdlSetMdlEmiAll +NNS_G3dMdlSetMdlEmiAll: ; 0x020BBB74 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -237,17 +226,16 @@ _020BBB90: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBF1C + bl NNS_G3dMdlSetMdlEmi ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBB90 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBB74 + arm_func_end NNS_G3dMdlSetMdlEmiAll - ; _end - arm_func_start FUN_020BBBB4 -FUN_020BBBB4: ; 0x020BBBB4 + arm_func_start NNS_G3dMdlSetMdlSpecAll +NNS_G3dMdlSetMdlSpecAll: ; 0x020BBBB4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -259,17 +247,16 @@ _020BBBD0: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBF60 + bl NNS_G3dMdlSetMdlSpec ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBBD0 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBBB4 + arm_func_end NNS_G3dMdlSetMdlSpecAll - ; _end - arm_func_start FUN_020BBBF4 -FUN_020BBBF4: ; 0x020BBBF4 + arm_func_start NNS_G3dMdlSetMdlAmbAll +NNS_G3dMdlSetMdlAmbAll: ; 0x020BBBF4 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -281,17 +268,16 @@ _020BBC10: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBFA4 + bl NNS_G3dMdlSetMdlAmb ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBC10 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBBF4 + arm_func_end NNS_G3dMdlSetMdlAmbAll - ; _end - arm_func_start FUN_020BBC34 -FUN_020BBC34: ; 0x020BBC34 + arm_func_start NNS_G3dMdlSetMdlDiffAll +NNS_G3dMdlSetMdlDiffAll: ; 0x020BBC34 stmdb sp!, {r4-r6,lr} mov r6, r0 ldrb r0, [r6, #0x18] @@ -303,17 +289,16 @@ _020BBC50: mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_020BBFE8 + bl NNS_G3dMdlSetMdlDiff ldrb r0, [r6, #0x18] add r4, r4, #0x1 cmp r4, r0 blo _020BBC50 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BBC34 + arm_func_end NNS_G3dMdlSetMdlDiffAll - ; _end - arm_func_start FUN_020BBC74 -FUN_020BBC74: ; 0x020BBC74 + arm_func_start NNS_G3dMdlSetMdlXLDepthUpdate +NNS_G3dMdlSetMdlXLDepthUpdate: ; 0x020BBC74 ldr r3, [r0, #0x8] cmp r2, #0x0 add r12, r0, r3 @@ -331,11 +316,10 @@ FUN_020BBC74: ; 0x020BBC74 biceq r0, r0, #0x800 streq r0, [r1, #0xc] bx lr - arm_func_end FUN_020BBC74 + arm_func_end NNS_G3dMdlSetMdlXLDepthUpdate - ; _end - arm_func_start FUN_020BBCB8 -FUN_020BBCB8: ; 0x020BBCB8 + arm_func_start NNS_G3dMdlSetMdlFarClip +NNS_G3dMdlSetMdlFarClip: ; 0x020BBCB8 ldr r3, [r0, #0x8] cmp r2, #0x0 add r12, r0, r3 @@ -353,11 +337,10 @@ FUN_020BBCB8: ; 0x020BBCB8 biceq r0, r0, #0x1000 streq r0, [r1, #0xc] bx lr - arm_func_end FUN_020BBCB8 + arm_func_end NNS_G3dMdlSetMdlFarClip - ; _end - arm_func_start FUN_020BBCFC -FUN_020BBCFC: ; 0x020BBCFC + arm_func_start NNS_G3dMdlSetMdl1Dot +NNS_G3dMdlSetMdl1Dot: ; 0x020BBCFC ldr r3, [r0, #0x8] cmp r2, #0x0 add r12, r0, r3 @@ -375,11 +358,10 @@ FUN_020BBCFC: ; 0x020BBCFC biceq r0, r0, #0x2000 streq r0, [r1, #0xc] bx lr - arm_func_end FUN_020BBCFC + arm_func_end NNS_G3dMdlSetMdl1Dot - ; _end - arm_func_start FUN_020BBD40 -FUN_020BBD40: ; 0x020BBD40 + arm_func_start NNS_G3dMdlSetMdlDepthTestCond +NNS_G3dMdlSetMdlDepthTestCond: ; 0x020BBD40 ldr r3, [r0, #0x8] cmp r2, #0x0 add r12, r0, r3 @@ -397,11 +379,10 @@ FUN_020BBD40: ; 0x020BBD40 biceq r0, r0, #0x4000 streq r0, [r1, #0xc] bx lr - arm_func_end FUN_020BBD40 + arm_func_end NNS_G3dMdlSetMdlDepthTestCond - ; _end - arm_func_start FUN_020BBD84 -FUN_020BBD84: ; 0x020BBD84 + arm_func_start NNS_G3dMdlSetMdlFogEnableFlag +NNS_G3dMdlSetMdlFogEnableFlag: ; 0x020BBD84 ldr r3, [r0, #0x8] cmp r2, #0x0 add r12, r0, r3 @@ -419,11 +400,10 @@ FUN_020BBD84: ; 0x020BBD84 biceq r0, r0, #0x8000 streq r0, [r1, #0xc] bx lr - arm_func_end FUN_020BBD84 + arm_func_end NNS_G3dMdlSetMdlFogEnableFlag - ; _end - arm_func_start FUN_020BBDC8 -FUN_020BBDC8: ; 0x020BBDC8 + arm_func_start NNS_G3dMdlSetMdlAlpha +NNS_G3dMdlSetMdlAlpha: ; 0x020BBDC8 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x8] @@ -441,11 +421,10 @@ FUN_020BBDC8: ; 0x020BBDC8 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BBDC8 + arm_func_end NNS_G3dMdlSetMdlAlpha - ; _end - arm_func_start FUN_020BBE0C -FUN_020BBE0C: ; 0x020BBE0C + arm_func_start NNS_G3dMdlSetMdlPolygonID +NNS_G3dMdlSetMdlPolygonID: ; 0x020BBE0C stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x8] @@ -463,11 +442,10 @@ FUN_020BBE0C: ; 0x020BBE0C str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BBE0C + arm_func_end NNS_G3dMdlSetMdlPolygonID - ; _end - arm_func_start FUN_020BBE50 -FUN_020BBE50: ; 0x020BBE50 + arm_func_start NNS_G3dMdlSetMdlCullMode +NNS_G3dMdlSetMdlCullMode: ; 0x020BBE50 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x8] @@ -485,11 +463,10 @@ FUN_020BBE50: ; 0x020BBE50 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BBE50 + arm_func_end NNS_G3dMdlSetMdlCullMode - ; _end - arm_func_start FUN_020BBE94 -FUN_020BBE94: ; 0x020BBE94 + arm_func_start NNS_G3dMdlSetMdlPolygonMode +NNS_G3dMdlSetMdlPolygonMode: ; 0x020BBE94 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x8] @@ -507,11 +484,10 @@ FUN_020BBE94: ; 0x020BBE94 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BBE94 + arm_func_end NNS_G3dMdlSetMdlPolygonMode - ; _end - arm_func_start FUN_020BBED8 -FUN_020BBED8: ; 0x020BBED8 + arm_func_start NNS_G3dMdlSetMdlLightEnableFlag +NNS_G3dMdlSetMdlLightEnableFlag: ; 0x020BBED8 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x8] @@ -529,11 +505,10 @@ FUN_020BBED8: ; 0x020BBED8 str r0, [r1, #0xc] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BBED8 + arm_func_end NNS_G3dMdlSetMdlLightEnableFlag - ; NNS_G3dMdlSetMdlEmi - arm_func_start FUN_020BBF1C -FUN_020BBF1C: ; 0x020BBF1C + arm_func_start NNS_G3dMdlSetMdlEmi +NNS_G3dMdlSetMdlEmi: ; 0x020BBF1C stmdb sp!, {r4,lr} ldr r12, [r0, #0x8] ldr r3, _020BBF5C ; =0x8000FFFF @@ -552,11 +527,10 @@ FUN_020BBF1C: ; 0x020BBF1C ldmia sp!, {r4,pc} .balign 4 _020BBF5C: .word 0x8000FFFF - arm_func_end FUN_020BBF1C + arm_func_end NNS_G3dMdlSetMdlEmi - ; _end - arm_func_start FUN_020BBF60 -FUN_020BBF60: ; 0x020BBF60 + arm_func_start NNS_G3dMdlSetMdlSpec +NNS_G3dMdlSetMdlSpec: ; 0x020BBF60 stmdb sp!, {r4,lr} ldr r12, [r0, #0x8] mov r3, #0x8000 @@ -574,11 +548,10 @@ FUN_020BBF60: ; 0x020BBF60 orr r0, r0, r2 str r0, [r3, #0x8] ldmia sp!, {r4,pc} - arm_func_end FUN_020BBF60 + arm_func_end NNS_G3dMdlSetMdlSpec - ; NNS_G3dMdlSetMdlAmb - arm_func_start FUN_020BBFA4 -FUN_020BBFA4: ; 0x020BBFA4 + arm_func_start NNS_G3dMdlSetMdlAmb +NNS_G3dMdlSetMdlAmb: ; 0x020BBFA4 stmdb sp!, {r4,lr} ldr r12, [r0, #0x8] ldr r3, _020BBFE4 ; =0x8000FFFF @@ -597,11 +570,10 @@ FUN_020BBFA4: ; 0x020BBFA4 ldmia sp!, {r4,pc} .balign 4 _020BBFE4: .word 0x8000FFFF - arm_func_end FUN_020BBFA4 + arm_func_end NNS_G3dMdlSetMdlAmb - ; _end - arm_func_start FUN_020BBFE8 -FUN_020BBFE8: ; 0x020BBFE8 + arm_func_start NNS_G3dMdlSetMdlDiff +NNS_G3dMdlSetMdlDiff: ; 0x020BBFE8 stmdb sp!, {r4,lr} ldr r12, [r0, #0x8] mov r3, #0x8000 @@ -619,11 +591,10 @@ FUN_020BBFE8: ; 0x020BBFE8 orr r0, r0, r2 str r0, [r3, #0x4] ldmia sp!, {r4,pc} - arm_func_end FUN_020BBFE8 + arm_func_end NNS_G3dMdlSetMdlDiff - ; _end - arm_func_start FUN_020BC02C -FUN_020BC02C: ; 0x020BC02C + arm_func_start NNSi_G3dModifyPolygonAttrMask +NNSi_G3dModifyPolygonAttrMask: ; 0x020BC02C stmdb sp!, {r4-r6,lr} ldrb r4, [r0, #0x18] ldr r3, [r0, #0x8] @@ -651,11 +622,10 @@ _020BC050: cmp lr, r4 blo _020BC050 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BC02C + arm_func_end NNSi_G3dModifyPolygonAttrMask - ; _end - arm_func_start FUN_020BC094 -FUN_020BC094: ; 0x020BC094 + arm_func_start NNSi_G3dModifyMatFlag +NNSi_G3dModifyMatFlag: ; 0x020BC094 stmdb sp!, {r4-r6,lr} ldrb r4, [r0, #0x18] ldr r3, [r0, #0x8] @@ -683,5 +653,4 @@ _020BC0B8: cmp lr, r4 blo _020BC0B8 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BC094 - + arm_func_end NNSi_G3dModifyMatFlag diff --git a/arm9/asm/NNS_G3D_nsbca.s b/arm9/asm/NNS_G3D_nsbca.s index b88353621..a29deb70c 100644 --- a/arm9/asm/NNS_G3D_nsbca.s +++ b/arm9/asm/NNS_G3D_nsbca.s @@ -3,9 +3,8 @@ .section .rodata - ; pivotUtil_ - .global UNK_020FFA14 -UNK_020FFA14: ; 0x020FFA14 + .global pivotUtil_ +pivotUtil_: ; 0x020FFA14 .byte 0x04, 0x05, 0x07, 0x08 .byte 0x03, 0x05, 0x06, 0x08 .byte 0x03, 0x04, 0x06, 0x07 @@ -18,9 +17,8 @@ UNK_020FFA14: ; 0x020FFA14 .section .text - ; getRotDataByIdx_ - arm_func_start FUN_020BC500 -FUN_020BC500: ; 0x020BC500 + arm_func_start getRotDataByIdx_ +getRotDataByIdx_: ; 0x020BC500 stmdb sp!, {r4,lr} ands r4, r3, #0x8000 beq _020BC5E0 @@ -57,21 +55,21 @@ FUN_020BC500: ; 0x020BC500 rsbne lr, lr, #0x0 moveq lr, #0x1000 str lr, [r0, r1, lsl #0x2] - ldr r4, _020BC688 ; =UNK_020FFA14 - ldr lr, _020BC68C ; =UNK_020FFA14 + 1 + ldr r4, _020BC688 ; =pivotUtil_ + ldr lr, _020BC68C ; =pivotUtil_ + 1 ldrb r4, [r4, r1, lsl #0x2] str r12, [r0, r4, lsl #0x2] ldrb lr, [lr, r1, lsl #0x2] str r3, [r0, lr, lsl #0x2] ldrsh lr, [r2, #0x0] ands lr, lr, #0x20 - ldr lr, _020BC690 ; =UNK_020FFA14 + 2 + ldr lr, _020BC690 ; =pivotUtil_ + 2 rsbne r3, r3, #0x0 ldrb lr, [lr, r1, lsl #0x2] str r3, [r0, lr, lsl #0x2] ldrsh r2, [r2, #0x0] ands r2, r2, #0x40 - ldr r2, _020BC694 ; =UNK_020FFA14 + 3 + ldr r2, _020BC694 ; =pivotUtil_ + 3 rsbne r12, r12, #0x0 ldrb r1, [r2, r1, lsl #0x2] str r12, [r0, r1, lsl #0x2] @@ -121,15 +119,14 @@ _020BC5E0: ldmia sp!, {r4,pc} .balign 4 _020BC684: .word 0x00007FFF -_020BC688: .word UNK_020FFA14 -_020BC68C: .word UNK_020FFA14 + 1 -_020BC690: .word UNK_020FFA14 + 2 -_020BC694: .word UNK_020FFA14 + 3 - arm_func_end FUN_020BC500 +_020BC688: .word pivotUtil_ +_020BC68C: .word pivotUtil_ + 1 +_020BC690: .word pivotUtil_ + 2 +_020BC694: .word pivotUtil_ + 3 + arm_func_end getRotDataByIdx_ - ; getRotDataEx_ - arm_func_start FUN_020BC698 -FUN_020BC698: ; 0x020BC698 + arm_func_start getRotDataEx_ +getRotDataEx_: ; 0x020BC698 stmdb sp!, {r4-r10,lr} sub sp, sp, #0x48 ldrh r4, [r3, #0x4] @@ -162,7 +159,7 @@ _020BC6F0: mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ cmp r0, #0x0 addeq sp, sp, #0x48 ldmeqia sp!, {r4-r10,pc} @@ -231,14 +228,14 @@ _020BC800: add r0, sp, #0x0 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ mov r1, r7, lsl #0x1 ldrh r3, [r8, r1] orr r7, r0, #0x0 add r0, sp, #0x24 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ ldr r3, [sp, #0x0] ldr r1, [sp, #0x24] mul r2, r3, r9 @@ -345,11 +342,10 @@ _020BC9C4: .word 0x1FFF0000 _020BC9C8: .word 0x00001FFF _020BC9CC: .word 0x00003FFF _020BC9D0: .word 0x00000FFF - arm_func_end FUN_020BC698 + arm_func_end getRotDataEx_ - ; getRotData_ - arm_func_start FUN_020BC9D4 -FUN_020BC9D4: ; 0x020BC9D4 + arm_func_start getRotData_ +getRotData_: ; 0x020BC9D4 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4c ldr r5, [r3, #0xc] @@ -398,14 +394,14 @@ _020BCA44: mov r1, r5 mov r2, r4 mov r7, #0x0 - bl FUN_020BC500 + bl getRotDataByIdx_ mov r1, r9, lsl #0x1 ldrh r3, [r8, r1] orr r7, r7, r0 add r0, sp, #0x0 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ ldr r3, [sp, #0x0] ldr r1, [r6, #0x0] mov r2, #0x3 @@ -494,14 +490,14 @@ _020BCBE8: mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ add r1, r8, r7, lsl #0x1 ldrh r3, [r1, #0x2] orr r7, r0, #0x0 add r0, sp, #0x24 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ ldr r2, [r6, #0x0] ldr r1, [sp, #0x24] orr r7, r7, r0 @@ -582,7 +578,7 @@ _020BCD40: mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_020BC500 + bl getRotDataByIdx_ cmp r0, #0x0 addeq sp, sp, #0x4c ldmeqia sp!, {r4-r9,pc} @@ -611,11 +607,10 @@ _020BCD40: ldmia sp!, {r4-r9,pc} .balign 4 _020BCDC0: .word 0x1FFF0000 - arm_func_end FUN_020BC9D4 + arm_func_end getRotData_ - ; getScaleDataEx_ - arm_func_start FUN_020BCDC4 -FUN_020BCDC4: ; 0x020BCDC4 + arm_func_start getScaleDataEx_ +getScaleDataEx_: ; 0x020BCDC4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldrh r4, [r3, #0x4] @@ -732,11 +727,10 @@ _020BCF60: .word 0x1FFF0000 _020BCF64: .word 0x00001FFF _020BCF68: .word 0x00003FFF _020BCF6C: .word 0x00000FFF - arm_func_end FUN_020BCDC4 + arm_func_end getScaleDataEx_ - ; getScaleData_ - arm_func_start FUN_020BCF70 -FUN_020BCF70: ; 0x020BCF70 + arm_func_start getScaleData_ +getScaleData_: ; 0x020BCF70 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldr r4, [r2, #0x4] @@ -880,11 +874,10 @@ _020BD150: ldmia sp!, {r4-r5,pc} .balign 4 _020BD184: .word 0x1FFF0000 - arm_func_end FUN_020BCF70 + arm_func_end getScaleData_ - ; getTransDataEx_ - arm_func_start FUN_020BD188 -FUN_020BD188: ; 0x020BD188 + arm_func_start getTransDataEx_ +getTransDataEx_: ; 0x020BD188 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 ldrh r4, [r3, #0x4] @@ -984,11 +977,10 @@ _020BD2E8: .word 0x00000FFF _020BD2EC: .word 0x1FFF0000 _020BD2F0: .word 0x00001FFF _020BD2F4: .word 0x00003FFF - arm_func_end FUN_020BD188 + arm_func_end getTransDataEx_ - ; getTransData_ - arm_func_start FUN_020BD2F8 -FUN_020BD2F8: ; 0x020BD2F8 + arm_func_start getTransData_ +getTransData_: ; 0x020BD2F8 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r12, [r2, #0x4] @@ -1092,11 +1084,10 @@ _020BD44C: ldmia sp!, {pc} .balign 4 _020BD46C: .word 0x1FFF0000 - arm_func_end FUN_020BD2F8 + arm_func_end getTransData_ - ; getJntSRTAnmResult_ - arm_func_start FUN_020BD470 -FUN_020BD470: ; 0x020BD470 + arm_func_start getJntSRTAnmResult_ +getJntSRTAnmResult_: ; 0x020BD470 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x34 mov r9, r0 @@ -1133,14 +1124,14 @@ _020BD4C8: mov r2, r4 mov r3, r9 add r0, r7, #0x4c - bl FUN_020BD188 + bl getTransDataEx_ b _020BD514 _020BD500: mov r1, r8 mov r2, r4 mov r3, r9 add r0, r7, #0x4c - bl FUN_020BD2F8 + bl getTransData_ _020BD514: add r4, r4, #0x8 b _020BD524 @@ -1156,14 +1147,14 @@ _020BD524: mov r2, r4 mov r3, r9 add r0, r7, #0x50 - bl FUN_020BD188 + bl getTransDataEx_ b _020BD560 _020BD54C: mov r1, r8 mov r2, r4 mov r3, r9 add r0, r7, #0x50 - bl FUN_020BD2F8 + bl getTransData_ _020BD560: add r4, r4, #0x8 b _020BD570 @@ -1179,14 +1170,14 @@ _020BD570: mov r2, r4 mov r3, r9 add r0, r7, #0x54 - bl FUN_020BD188 + bl getTransDataEx_ b _020BD5AC _020BD598: mov r1, r8 mov r2, r4 mov r3, r9 add r0, r7, #0x54 - bl FUN_020BD2F8 + bl getTransData_ _020BD5AC: add r4, r4, #0x8 b _020BD5DC @@ -1201,7 +1192,7 @@ _020BD5C0: strne r0, [r7, #0x0] bne _020BD5DC mov r0, r7 - bl FUN_020BDA08 + bl getMdlTrans_ _020BD5DC: ands r0, r5, #0xc0 bne _020BD6A8 @@ -1213,14 +1204,14 @@ _020BD5DC: mov r2, r4 mov r3, r9 add r0, r7, #0x28 - bl FUN_020BC698 + bl getRotDataEx_ b _020BD620 _020BD60C: mov r1, r8 mov r2, r4 mov r3, r9 add r0, r7, #0x28 - bl FUN_020BC9D4 + bl getRotData_ _020BD620: add r4, r4, #0x8 b _020BD6C4 @@ -1231,7 +1222,7 @@ _020BD628: add r0, r7, #0x28 add r1, r9, r1 add r2, r9, r2 - bl FUN_020BC500 + bl getRotDataByIdx_ cmp r0, #0x0 beq _020BD6A0 ldr r12, [r7, #0x3c] @@ -1265,7 +1256,7 @@ _020BD6A8: strne r0, [r7, #0x0] bne _020BD6C4 mov r0, r7 - bl FUN_020BD850 + bl getMdlRot_ _020BD6C4: ands r0, r5, #0x600 bne _020BD7F0 @@ -1277,14 +1268,14 @@ _020BD6C4: mov r1, r8 mov r2, r4 mov r3, r9 - bl FUN_020BCDC4 + bl getScaleDataEx_ b _020BD708 _020BD6F4: add r0, sp, #0x0 mov r1, r8 mov r2, r4 mov r3, r9 - bl FUN_020BCF70 + bl getScaleData_ _020BD708: ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] @@ -1305,14 +1296,14 @@ _020BD72C: mov r1, r8 mov r3, r9 add r2, r4, #0x8 - bl FUN_020BCDC4 + bl getScaleDataEx_ b _020BD768 _020BD754: add r0, sp, #0x8 mov r1, r8 mov r3, r9 add r2, r4, #0x8 - bl FUN_020BCF70 + bl getScaleData_ _020BD768: ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] @@ -1333,14 +1324,14 @@ _020BD78C: mov r1, r8 mov r3, r9 add r2, r4, #0x10 - bl FUN_020BCDC4 + bl getScaleDataEx_ b _020BD7C8 _020BD7B4: add r0, sp, #0x10 mov r1, r8 mov r3, r9 add r2, r4, #0x10 - bl FUN_020BCF70 + bl getScaleData_ _020BD7C8: ldr r1, [sp, #0x10] ldr r0, [sp, #0x14] @@ -1360,14 +1351,14 @@ _020BD7F0: strne r0, [r7, #0x0] bne _020BD814 mov r0, r7 - bl FUN_020BD9A4 + bl getMdlScale_ add sp, sp, #0x34 ldmia sp!, {r4-r11,pc} _020BD814: ldr r0, [r7, #0x0] add r1, sp, #0x18 ands r0, r0, #0x1 - ldr r0, _020BD84C ; =UNK_021CEF7C + ldr r0, _020BD84C ; =NNS_G3dRS movne r3, #0x4 ldr r4, [r0, #0x0] moveq r3, #0x0 @@ -1379,14 +1370,13 @@ _020BD814: ldmia sp!, {r4-r11,pc} .balign 4 _020BD848: .word 0x00000FFF -_020BD84C: .word UNK_021CEF7C - arm_func_end FUN_020BD470 +_020BD84C: .word NNS_G3dRS + arm_func_end getJntSRTAnmResult_ - ; getMdlRot_ - arm_func_start FUN_020BD850 -FUN_020BD850: ; 0x020BD850 + arm_func_start getMdlRot_ +getMdlRot_: ; 0x020BD850 stmdb sp!, {r4-r8,lr} - ldr r1, _020BD990 ; =UNK_021CEF7C + ldr r1, _020BD990 ; =NNS_G3dRS mov r8, r0 ldr r0, [r1, #0x0] ldr r3, [r0, #0xd4] @@ -1418,10 +1408,10 @@ FUN_020BD850: ; 0x020BD850 movne r0, #0x1000 rsbne r2, r0, #0x0 moveq r2, #0x1000 - ldr r0, _020BD994 ; =UNK_020FFA14 + ldr r0, _020BD994 ; =pivotUtil_ str r2, [r1, #0x28] ldrb r1, [r0, r5, lsl #0x2] - ldr r0, _020BD998 ; =UNK_020FFA14 + 1 + ldr r0, _020BD998 ; =pivotUtil_ + 1 add r1, r8, r1, lsl #0x2 str r7, [r1, #0x28] ldrb r0, [r0, r5, lsl #0x2] @@ -1429,14 +1419,14 @@ FUN_020BD850: ; 0x020BD850 str r6, [r0, #0x28] ldrh r0, [r4, #0x0] ands r0, r0, #0x200 - ldr r0, _020BD99C ; =UNK_020FFA14 + 2 + ldr r0, _020BD99C ; =pivotUtil_ + 2 rsbne r6, r6, #0x0 ldrb r0, [r0, r5, lsl #0x2] add r0, r8, r0, lsl #0x2 str r6, [r0, #0x28] ldrh r0, [r4, #0x0] ands r0, r0, #0x400 - ldr r0, _020BD9A0 ; =UNK_020FFA14 + 3 + ldr r0, _020BD9A0 ; =pivotUtil_ + 3 rsbne r7, r7, #0x0 ldrb r0, [r0, r5, lsl #0x2] add r0, r8, r0, lsl #0x2 @@ -1468,18 +1458,17 @@ _020BD980: str r0, [r8, #0x0] ldmia sp!, {r4-r8,pc} .balign 4 -_020BD990: .word UNK_021CEF7C -_020BD994: .word UNK_020FFA14 -_020BD998: .word UNK_020FFA14 + 1 -_020BD99C: .word UNK_020FFA14 + 2 -_020BD9A0: .word UNK_020FFA14 + 3 - arm_func_end FUN_020BD850 +_020BD990: .word NNS_G3dRS +_020BD994: .word pivotUtil_ +_020BD998: .word pivotUtil_ + 1 +_020BD99C: .word pivotUtil_ + 2 +_020BD9A0: .word pivotUtil_ + 3 + arm_func_end getMdlRot_ - ; getMdlScale_ - arm_func_start FUN_020BD9A4 -FUN_020BD9A4: ; 0x020BD9A4 + arm_func_start getMdlScale_ +getMdlScale_: ; 0x020BD9A4 stmdb sp!, {r4,lr} - ldr r1, _020BDA04 ; =UNK_021CEF7C + ldr r1, _020BDA04 ; =NNS_G3dRS ldr r12, [r1, #0x0] ldr r4, [r12, #0xd4] ldr r2, [r12, #0x0] @@ -1504,13 +1493,12 @@ _020BD9F8: blx r12 ldmia sp!, {r4,pc} .balign 4 -_020BDA04: .word UNK_021CEF7C - arm_func_end FUN_020BD9A4 +_020BDA04: .word NNS_G3dRS + arm_func_end getMdlScale_ - ; getMdlTrans_ - arm_func_start FUN_020BDA08 -FUN_020BDA08: ; 0x020BDA08 - ldr r1, _020BDA6C ; =UNK_021CEF7C + arm_func_start getMdlTrans_ +getMdlTrans_: ; 0x020BDA08 + ldr r1, _020BDA6C ; =NNS_G3dRS ldr r1, [r1, #0x0] ldr r12, [r1, #0xd4] ldr r1, [r1, #0x0] @@ -1536,12 +1524,11 @@ FUN_020BDA08: ; 0x020BDA08 str r1, [r0, #0x54] bx lr .balign 4 -_020BDA6C: .word UNK_021CEF7C - arm_func_end FUN_020BDA08 +_020BDA6C: .word NNS_G3dRS + arm_func_end getMdlTrans_ - ; _end - arm_func_start FUN_020BDA70 -FUN_020BDA70: ; 0x020BDA70 + arm_func_start NNSi_G3dAnmCalcNsBca +NNSi_G3dAnmCalcNsBca: ; 0x020BDA70 stmdb sp!, {lr} sub sp, sp, #0x4 mov r3, r0 @@ -1557,19 +1544,18 @@ FUN_020BDA70: ; 0x020BDA70 _020BDAA0: mov r1, r2 mov r2, r12 - bl FUN_020BD470 + bl getJntSRTAnmResult_ add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BDA70 + arm_func_end NNSi_G3dAnmCalcNsBca - ; NNSi_G3dAnmObjInitNsBca - arm_func_start FUN_020BDAB4 -FUN_020BDAB4: ; 0x020BDAB4 + arm_func_start NNSi_G3dAnmObjInitNsBca +NNSi_G3dAnmObjInitNsBca: ; 0x020BDAB4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 mov r4, r1 - ldr r0, _020BDB3C ; =UNK_0210659C + ldr r0, _020BDB3C ; =NNS_G3dFuncAnmJntNsBcaDefault str r4, [r5, #0x8] ldr r0, [r0, #0x0] add r1, r5, #0x1a @@ -1601,6 +1587,5 @@ _020BDB08: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020BDB3C: .word UNK_0210659C - arm_func_end FUN_020BDAB4 - +_020BDB3C: .word NNS_G3dFuncAnmJntNsBcaDefault + arm_func_end NNSi_G3dAnmObjInitNsBca diff --git a/arm9/asm/NNS_G3D_nsbma.s b/arm9/asm/NNS_G3D_nsbma.s index 67c92e462..acadbe750 100644 --- a/arm9/asm/NNS_G3D_nsbma.s +++ b/arm9/asm/NNS_G3D_nsbma.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BDB40 -FUN_020BDB40: ; 0x020BDB40 + arm_func_start NNSi_G3dAnmCalcNsBma +NNSi_G3dAnmCalcNsBma: ; 0x020BDB40 stmdb sp!, {r4-r8,lr} ldr r7, [r1, #0x8] mov r2, r2, lsl #0x10 @@ -23,12 +22,12 @@ FUN_020BDB40: ; 0x020BDB40 mov r0, r7 mov r2, r6 add r5, r3, r4 - bl FUN_020BDDAC + bl GetMatColAnmValue_ mov r4, r0 ldr r1, [r5, #0x4] mov r0, r7 mov r2, r6 - bl FUN_020BDDAC + bl GetMatColAnmValue_ ldr r1, [r8, #0x4] mov r2, r6 and r1, r1, #0x8000 @@ -37,12 +36,12 @@ FUN_020BDB40: ; 0x020BDB40 str r0, [r8, #0x4] mov r0, r7 ldr r1, [r5, #0xc] - bl FUN_020BDDAC + bl GetMatColAnmValue_ mov r4, r0 mov r0, r7 ldr r1, [r5, #0x8] mov r2, r6 - bl FUN_020BDDAC + bl GetMatColAnmValue_ mov r2, r6 ldr r1, [r8, #0x8] and r1, r1, #0x8000 @@ -51,20 +50,19 @@ FUN_020BDB40: ; 0x020BDB40 str r0, [r8, #0x8] mov r0, r7 ldr r1, [r5, #0x10] - bl FUN_020BDCB8 + bl GetMatColAnmuAlphaValue_ ldr r1, [r8, #0xc] bic r1, r1, #0x1f0000 orr r0, r1, r0, lsl #0x10 str r0, [r8, #0xc] ldmia sp!, {r4-r8,pc} - arm_func_end FUN_020BDB40 + arm_func_end NNSi_G3dAnmCalcNsBma - ; NNSi_G3dAnmObjInitNsBma - arm_func_start FUN_020BDC0C -FUN_020BDC0C: ; 0x020BDC0C + arm_func_start NNSi_G3dAnmObjInitNsBma +NNSi_G3dAnmObjInitNsBma: ; 0x020BDC0C stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 - ldr r3, _020BDCB4 ; =UNK_021065A8 + ldr r3, _020BDCB4 ; =NNS_G3dFuncAnmMatNsBmaDefault ldr r4, [r2, #0x8] ldr r3, [r3, #0x0] mov r9, r0 @@ -93,7 +91,7 @@ _020BDC6C: ldrh r1, [r2, #0x2] add r1, r2, r1 add r1, r1, r6 - bl FUN_020BC14C + bl NNS_G3dGetResDictIdxByName cmp r0, #0x0 orrge r1, r7, #0x100 addge r0, r9, r0, lsl #0x1 @@ -106,12 +104,11 @@ _020BDC6C: add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020BDCB4: .word UNK_021065A8 - arm_func_end FUN_020BDC0C +_020BDCB4: .word NNS_G3dFuncAnmMatNsBmaDefault + arm_func_end NNSi_G3dAnmObjInitNsBma - ; GetMatColAnmuAlphaValue_ - arm_func_start FUN_020BDCB8 -FUN_020BDCB8: ; 0x020BDCB8 + arm_func_start GetMatColAnmuAlphaValue_ +GetMatColAnmuAlphaValue_: ; 0x020BDCB8 ands r3, r1, #0x20000000 movne r0, r1, lsl #0x10 movne r0, r0, lsr #0x10 @@ -178,11 +175,10 @@ _020BDD9C: .balign 4 _020BDDA4: .word 0x0000FFFF _020BDDA8: .word 0x1FFF0000 - arm_func_end FUN_020BDCB8 + arm_func_end GetMatColAnmuAlphaValue_ - ; GetMatColAnmValue_ - arm_func_start FUN_020BDDAC -FUN_020BDDAC: ; 0x020BDDAC + arm_func_start GetMatColAnmValue_ +GetMatColAnmValue_: ; 0x020BDDAC stmdb sp!, {lr} sub sp, sp, #0x4 ands r3, r1, #0x20000000 @@ -288,5 +284,4 @@ _020BDEE0: _020BDF2C: .word 0x0000FFFF _020BDF30: .word 0x1FFF0000 _020BDF34: .word 0x00007C1F - arm_func_end FUN_020BDDAC - + arm_func_end GetMatColAnmValue_ diff --git a/arm9/asm/NNS_G3D_nsbta.s b/arm9/asm/NNS_G3D_nsbta.s index 85d25dca7..a9fde7cbf 100644 --- a/arm9/asm/NNS_G3D_nsbta.s +++ b/arm9/asm/NNS_G3D_nsbta.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BDF38 -FUN_020BDF38: ; 0x020BDF38 + arm_func_start NNSi_G3dAnmCalcNsBta +NNSi_G3dAnmCalcNsBta: ; 0x020BDF38 stmdb sp!, {r4,lr} ldr r12, [r1, #0x0] mov r4, r0 @@ -14,7 +13,7 @@ FUN_020BDF38: ; 0x020BDF38 mov r1, r2, lsr #0x10 mov r3, r4 mov r2, r12, asr #0xc - bl FUN_020BE030 + bl GetTexSRTAnm_ ldr r0, [r4, #0x10] bic r0, r0, #0xc0000000 str r0, [r4, #0x10] @@ -25,14 +24,13 @@ FUN_020BDF38: ; 0x020BDF38 orr r0, r0, #0x8 str r0, [r4, #0x0] ldmia sp!, {r4,pc} - arm_func_end FUN_020BDF38 + arm_func_end NNSi_G3dAnmCalcNsBta - ; NNSi_G3dAnmObjInitNsBta - arm_func_start FUN_020BDF84 -FUN_020BDF84: ; 0x020BDF84 + arm_func_start NNSi_G3dAnmObjInitNsBta +NNSi_G3dAnmObjInitNsBta: ; 0x020BDF84 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 - ldr r3, _020BE02C ; =UNK_021065A0 + ldr r3, _020BE02C ; =NNS_G3dFuncAnmMatNsBtaDefault ldr r4, [r2, #0x8] ldr r3, [r3, #0x0] mov r9, r0 @@ -61,7 +59,7 @@ _020BDFE4: ldrh r1, [r2, #0x2] add r1, r2, r1 add r1, r1, r6 - bl FUN_020BC14C + bl NNS_G3dGetResDictIdxByName cmp r0, #0x0 orrge r1, r7, #0x100 addge r0, r9, r0, lsl #0x1 @@ -74,12 +72,11 @@ _020BDFE4: add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020BE02C: .word UNK_021065A0 - arm_func_end FUN_020BDF84 +_020BE02C: .word NNS_G3dFuncAnmMatNsBtaDefault + arm_func_end NNSi_G3dAnmObjInitNsBta - ; _end - arm_func_start FUN_020BE030 -FUN_020BE030: ; 0x020BE030 + arm_func_start GetTexSRTAnm_ +GetTexSRTAnm_: ; 0x020BE030 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 mov r8, r0 @@ -95,13 +92,13 @@ FUN_020BE030: ; 0x020BE030 ldr r2, [r5, #0x1c] mov r3, r7 ldr r4, [r6, #0x0] - bl FUN_020BE238 + bl GetTexSRTAnmVectorVal_ mov r9, r0 ldr r1, [r5, #0x20] mov r0, r8 ldr r2, [r5, #0x24] mov r3, r7 - bl FUN_020BE238 + bl GetTexSRTAnmVectorVal_ cmp r9, #0x0 bne _020BE09C cmp r0, #0x0 @@ -116,7 +113,7 @@ _020BE0A8: ldr r2, [r5, #0x14] mov r0, r8 mov r3, r7 - bl FUN_020BE12C + bl GetTexSRTAnmSinCosVal_ cmp r0, #0x10000000 strneh r0, [r6, #0x20] movne r0, r0, lsr #0x10 @@ -127,13 +124,13 @@ _020BE0A8: mov r0, r8 mov r3, r7 bicne r4, r4, #0x2 - bl FUN_020BE238 + bl GetTexSRTAnmVectorVal_ mov r9, r0 ldr r1, [r5, #0x8] ldr r2, [r5, #0xc] mov r0, r8 mov r3, r7 - bl FUN_020BE238 + bl GetTexSRTAnmVectorVal_ cmp r9, #0x1000 bne _020BE114 cmp r0, #0x1000 @@ -147,11 +144,10 @@ _020BE120: str r4, [r6, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020BE030 + arm_func_end GetTexSRTAnm_ - ; GetTexSRTAnmSinCosVal_ - arm_func_start FUN_020BE12C -FUN_020BE12C: ; 0x020BE12C + arm_func_start GetTexSRTAnmSinCosVal_ +GetTexSRTAnmSinCosVal_: ; 0x020BE12C ands r12, r1, #0x20000000 movne r0, r2 bxne lr @@ -226,11 +222,10 @@ _020BE200: bx lr .balign 4 _020BE234: .word 0x0000FFFF - arm_func_end FUN_020BE12C + arm_func_end GetTexSRTAnmSinCosVal_ - ; GetTexSRTAnmVectorVal_ - arm_func_start FUN_020BE238 -FUN_020BE238: ; 0x020BE238 + arm_func_start GetTexSRTAnmVectorVal_ +GetTexSRTAnmVectorVal_: ; 0x020BE238 ands r12, r1, #0x20000000 movne r0, r2 bxne lr @@ -301,5 +296,4 @@ _020BE304: bx lr .balign 4 _020BE330: .word 0x0000FFFF - arm_func_end FUN_020BE238 - + arm_func_end GetTexSRTAnmVectorVal_ diff --git a/arm9/asm/NNS_G3D_nsbtp.s b/arm9/asm/NNS_G3D_nsbtp.s index 3701b92eb..0ae2aa133 100644 --- a/arm9/asm/NNS_G3D_nsbtp.s +++ b/arm9/asm/NNS_G3D_nsbtp.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BE334 -FUN_020BE334: ; 0x020BE334 + arm_func_start NNSi_G3dAnmCalcNsBtp +NNSi_G3dAnmCalcNsBtp: ; 0x020BE334 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r6, r1 @@ -17,39 +16,38 @@ FUN_020BE334: ; 0x020BE334 mov r0, r5 mov r1, r1, lsr #0x10 mov r2, r2, lsr #0x10 - bl FUN_020BC42C + bl NNSi_G3dGetTexPatAnmFV mov r4, r0 ldrb r1, [r4, #0x2] mov r0, r5 - bl FUN_020BC4B8 + bl NNSi_G3dGetTexPatAnmTexNameByIdx mov r1, r0 ldr r0, [r6, #0x14] mov r2, r7 - bl FUN_020BE408 + bl SetTexParamaters_ ldrb r1, [r4, #0x3] cmp r1, #0xff addeq sp, sp, #0x4 ldmeqia sp!, {r4-r7,pc} mov r0, r5 - bl FUN_020BC4A8 + bl NNSi_G3dGetTexPatAnmPlttNameByIdx mov r1, r0 ldr r0, [r6, #0x14] mov r2, r7 - bl FUN_020BE3B4 + bl SetPlttParamaters_ add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BE334 + arm_func_end NNSi_G3dAnmCalcNsBtp - ; _end - arm_func_start FUN_020BE3B4 -FUN_020BE3B4: ; 0x020BE3B4 + arm_func_start SetPlttParamaters_ +SetPlttParamaters_: ; 0x020BE3B4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 ldrh r0, [r5, #0x34] mov r4, r2 add r0, r5, r0 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName ldr r1, [r5, #0x2c] ldrh r2, [r0, #0x2] mov r1, r1, lsl #0x10 @@ -64,17 +62,16 @@ FUN_020BE3B4: ; 0x020BE3B4 str r0, [r4, #0x14] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BE3B4 + arm_func_end SetPlttParamaters_ - ; SetTexParamaters_ - arm_func_start FUN_020BE408 -FUN_020BE408: ; 0x020BE408 + arm_func_start SetTexParamaters_ +SetTexParamaters_: ; 0x020BE408 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 add r0, r5, #0x3c mov r4, r2 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName ldr r1, [r0, #0x0] ldr r3, [r4, #0x10] and r1, r1, #0x1c000000 @@ -130,14 +127,13 @@ _020BE4E0: .word 0x0000FFFF _020BE4E4: .word 0xC00F0000 _020BE4E8: .word 0x000007FF _020BE4EC: .word 0x003FF800 - arm_func_end FUN_020BE408 + arm_func_end SetTexParamaters_ - ; NNSi_G3dAnmObjInitNsBtp - arm_func_start FUN_020BE4F0 -FUN_020BE4F0: ; 0x020BE4F0 + arm_func_start NNSi_G3dAnmObjInitNsBtp +NNSi_G3dAnmObjInitNsBtp: ; 0x020BE4F0 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 - ldr r3, _020BE59C ; =UNK_021065A4 + ldr r3, _020BE59C ; =NNS_G3dFuncAnmMatNsBtpDefault ldr r4, [r2, #0x8] ldr r3, [r3, #0x0] mov r9, r0 @@ -167,7 +163,7 @@ _020BE554: ldrh r1, [r2, #0x2] add r1, r2, r1 add r1, r1, r6 - bl FUN_020BC14C + bl NNS_G3dGetResDictIdxByName cmp r0, #0x0 orrge r1, r7, #0x100 addge r0, r9, r0, lsl #0x1 @@ -180,6 +176,5 @@ _020BE554: add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020BE59C: .word UNK_021065A4 - arm_func_end FUN_020BE4F0 - +_020BE59C: .word NNS_G3dFuncAnmMatNsBtpDefault + arm_func_end NNSi_G3dAnmObjInitNsBtp diff --git a/arm9/asm/NNS_G3D_nsbva.s b/arm9/asm/NNS_G3D_nsbva.s index 8b6755456..e8dc75e4e 100644 --- a/arm9/asm/NNS_G3D_nsbva.s +++ b/arm9/asm/NNS_G3D_nsbva.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020BE5A0 -FUN_020BE5A0: ; 0x020BE5A0 + arm_func_start NNSi_G3dAnmCalcNsBva +NNSi_G3dAnmCalcNsBva: ; 0x020BE5A0 stmdb sp!, {lr} sub sp, sp, #0x4 ldr lr, [r1, #0x8] @@ -22,12 +21,11 @@ FUN_020BE5A0: ; 0x020BE5A0 str r1, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BE5A0 + arm_func_end NNSi_G3dAnmCalcNsBva - ; NNSi_G3dAnmObjInitNsBva - arm_func_start FUN_020BE5E0 -FUN_020BE5E0: ; 0x020BE5E0 - ldr r3, _020BE628 ; =UNK_02106598 + arm_func_start NNSi_G3dAnmObjInitNsBva +NNSi_G3dAnmObjInitNsBva: ; 0x020BE5E0 + ldr r3, _020BE628 ; =NNS_G3dFuncAnmVisNsBvaDefault mov r12, #0x0 ldr r3, [r3, #0x0] str r3, [r0, #0xc] @@ -47,6 +45,5 @@ _020BE608: blo _020BE608 bx lr .balign 4 -_020BE628: .word UNK_02106598 - arm_func_end FUN_020BE5E0 - +_020BE628: .word NNS_G3dFuncAnmVisNsBvaDefault + arm_func_end NNSi_G3dAnmObjInitNsBva diff --git a/arm9/asm/NNS_G3D_res_struct_acce.s b/arm9/asm/NNS_G3D_res_struct_acce.s index 1455f0dc6..e0420f9b8 100644 --- a/arm9/asm/NNS_G3D_res_struct_acce.s +++ b/arm9/asm/NNS_G3D_res_struct_acce.s @@ -3,9 +3,8 @@ .section .text - ; NNS_G3dGetTex - arm_func_start FUN_020BC0FC -FUN_020BC0FC: ; 0x020BC0FC + arm_func_start NNS_G3dGetTex +NNS_G3dGetTex: ; 0x020BC0FC ldrh r2, [r0, #0xc] ldrh r1, [r0, #0xe] add r3, r0, r2 @@ -24,20 +23,18 @@ _020BC12C: bx lr .balign 4 _020BC138: .word 0x30585442 - arm_func_end FUN_020BC0FC + arm_func_end NNS_G3dGetTex - ; _end - arm_func_start FUN_020BC13C -FUN_020BC13C: ; 0x020BC13C + arm_func_start NNS_G3dGetMdlSet +NNS_G3dGetMdlSet: ; 0x020BC13C ldrh r1, [r0, #0xc] ldr r1, [r0, r1] add r0, r0, r1 bx lr - arm_func_end FUN_020BC13C + arm_func_end NNS_G3dGetMdlSet - ; _end - arm_func_start FUN_020BC14C -FUN_020BC14C: ; 0x020BC14C + arm_func_start NNS_G3dGetResDictIdxByName +NNS_G3dGetResDictIdxByName: ; 0x020BC14C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldrb r2, [r0, #0x1] @@ -129,11 +126,10 @@ _020BC294: mvn r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BC14C + arm_func_end NNS_G3dGetResDictIdxByName - ; _end - arm_func_start FUN_020BC2A0 -FUN_020BC2A0: ; 0x020BC2A0 + arm_func_start NNS_G3dGetResDataByName +NNS_G3dGetResDataByName: ; 0x020BC2A0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldrb r2, [r0, #0x1] @@ -232,11 +228,10 @@ _020BC404: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BC2A0 + arm_func_end NNS_G3dGetResDataByName - ; _end - arm_func_start FUN_020BC410 -FUN_020BC410: ; 0x020BC410 + arm_func_start NNSi_G3dGetTexPatAnmDataByIdx +NNSi_G3dGetTexPatAnmDataByIdx: ; 0x020BC410 ldrh r3, [r0, #0x12] add r0, r0, #0xc ldrh r2, [r0, r3] @@ -244,16 +239,15 @@ FUN_020BC410: ; 0x020BC410 add r0, r0, #0x4 mla r0, r2, r1, r0 bx lr - arm_func_end FUN_020BC410 + arm_func_end NNSi_G3dGetTexPatAnmDataByIdx - ; _end - arm_func_start FUN_020BC42C -FUN_020BC42C: ; 0x020BC42C + arm_func_start NNSi_G3dGetTexPatAnmFV +NNSi_G3dGetTexPatAnmFV: ; 0x020BC42C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 mov r4, r2 - bl FUN_020BC410 + bl NNSi_G3dGetTexPatAnmDataByIdx ldrsh r1, [r0, #0x4] ldrh r3, [r0, #0x6] mul r2, r1, r4 @@ -286,29 +280,26 @@ _020BC49C: add r0, r3, r2, lsl #0x2 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BC42C + arm_func_end NNSi_G3dGetTexPatAnmFV - ; _end - arm_func_start FUN_020BC4A8 -FUN_020BC4A8: ; 0x020BC4A8 + arm_func_start NNSi_G3dGetTexPatAnmPlttNameByIdx +NNSi_G3dGetTexPatAnmPlttNameByIdx: ; 0x020BC4A8 ldrh r2, [r0, #0xa] add r0, r0, r2 add r0, r0, r1, lsl #0x4 bx lr - arm_func_end FUN_020BC4A8 + arm_func_end NNSi_G3dGetTexPatAnmPlttNameByIdx - ; _end - arm_func_start FUN_020BC4B8 -FUN_020BC4B8: ; 0x020BC4B8 + arm_func_start NNSi_G3dGetTexPatAnmTexNameByIdx +NNSi_G3dGetTexPatAnmTexNameByIdx: ; 0x020BC4B8 ldrh r2, [r0, #0x8] add r0, r0, r2 add r0, r0, r1, lsl #0x4 bx lr - arm_func_end FUN_020BC4B8 + arm_func_end NNSi_G3dGetTexPatAnmTexNameByIdx - ; _end - arm_func_start FUN_020BC4C8 -FUN_020BC4C8: ; 0x020BC4C8 + arm_func_start NNS_G3dGetAnmByIdx +NNS_G3dGetAnmByIdx: ; 0x020BC4C8 ldrh r2, [r0, #0xc] ldr r2, [r0, r2] add r12, r0, r2 @@ -323,5 +314,4 @@ FUN_020BC4C8: ; 0x020BC4C8 addne r0, r12, r0 moveq r0, #0x0 bx lr - arm_func_end FUN_020BC4C8 - + arm_func_end NNS_G3dGetAnmByIdx diff --git a/arm9/asm/NNS_G3D_sbc.s b/arm9/asm/NNS_G3D_sbc.s index 48ad74701..86ee394fe 100644 --- a/arm9/asm/NNS_G3D_sbc.s +++ b/arm9/asm/NNS_G3D_sbc.s @@ -3,16 +3,14 @@ .section .rodata - ; matColorMask_$8998 - .global UNK_020FF9D0 -UNK_020FF9D0: ; 0x020FF9D0 + .global matColorMask_$8998 +matColorMask_$8998: ; 0x020FF9D0 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0x7F .byte 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F - ; static const in function - ; pivotUtil_$9100 - .global UNK_020FF9F0 -UNK_020FF9F0: ; 0x020FF9F0 + + .global pivotUtil_$9100 +pivotUtil_$9100: ; 0x020FF9F0 .byte 0x04, 0x05, 0x07, 0x08 .byte 0x03, 0x05, 0x06, 0x08 .byte 0x03, 0x04, 0x06, 0x07 @@ -22,121 +20,73 @@ UNK_020FF9F0: ; 0x020FF9F0 .byte 0x01, 0x02, 0x04, 0x05 .byte 0x00, 0x02, 0x03, 0x05 .byte 0x00, 0x01, 0x03, 0x04 - ; static const in function + .section .data - ; cmd$9407 - .global UNK_02106630 -UNK_02106630: ; 0x02106630 + .global cmd$9407 +cmd$9407: ; 0x02106630 .byte 0x2A, 0x00, 0x00, 0x00 - - ; cmd$9407 + 0x4 - .global UNK_02106634 -UNK_02106634: ; 0x02106634 .byte 0x00, 0x00, 0x00, 0x00 - ; cmd$9366 - .global UNK_02106638 -UNK_02106638: ; 0x02106638 + .global cmd$9366 +cmd$9366: ; 0x02106638 .byte 0x2A, 0x00, 0x00, 0x00 - - ; cmd$9366 + 0x4 - .global UNK_0210663C -UNK_0210663C: ; 0x0210663C .byte 0x00, 0x00, 0x00, 0x00 - ; NNS_G3dFuncSbcMatTable - .global UNK_02106640 -UNK_02106640: ; 0x02106640 - .word FUN_020BA58C + .global NNS_G3dFuncSbcMatTable +NNS_G3dFuncSbcMatTable: ; 0x02106640 + .word NNSi_G3dFuncSbc_MAT_InternalDefault .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; NNS_G3dFuncSbcShpTable - .global UNK_02106650 -UNK_02106650: ; 0x02106650 - .word FUN_020BA438 + .global NNS_G3dFuncSbcShpTable +NNS_G3dFuncSbcShpTable: ; 0x02106650 + .word NNSi_G3dFuncSbc_SHP_InternalDefault .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; mtx$9412 - .global UNK_02106660 -UNK_02106660: ; 0x02106660 + .global mtx$9412 +mtx$9412: ; 0x02106660 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - ; bbcmd1$9173 - .global UNK_021066A0 -UNK_021066A0: ; 0x021066A0 + .global bbcmd1$9173 +bbcmd1$9173: ; 0x021066A0 .byte 0x12, 0x10, 0x17, 0x1B - - ; bbcmd1$9173 + 0x4 - .global UNK_021066A4 -UNK_021066A4: ; 0x021066A4 .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - ; bbcmd1$9173 + 0xC - .global UNK_021066AC -UNK_021066AC: ; 0x021066AC .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 - - ; bbcmd1$9173 + 0x30 - .global UNK_021066D0 -UNK_021066D0: ; 0x021066D0 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; bbcmd1$9173 + 0x3C - .global UNK_021066DC -UNK_021066DC: ; 0x021066DC - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - ; bbcmd1$9234 - .global UNK_021066E8 -UNK_021066E8: ; 0x021066E8 + .global bbcmd1$9234 +bbcmd1$9234: ; 0x021066E8 .byte 0x12, 0x10, 0x17, 0x1B - - ; bbcmd1$9234 + 0x4 - .global UNK_021066EC -UNK_021066EC: ; 0x021066EC .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - ; bbcmd1$9234 + 0xC - .global UNK_021066F4 -UNK_021066F4: ; 0x021066F4 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 - - ; bbcmd1$9234 + 0x30 - .global UNK_02106718 -UNK_02106718: ; 0x02106718 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; bbcmd1$9234 + 0x3C - .global UNK_02106724 -UNK_02106724: ; 0x02106724 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - ; NNS_G3dFuncSbcTable - .global UNK_02106730 -UNK_02106730: ; 0x02106730 - .word FUN_020BAC70 - .word FUN_020BAC48 - .word FUN_020BAAC0 - .word FUN_020BA9EC - .word FUN_020BA50C - .word FUN_020BA3C4 - .word FUN_020B9F84 - .word FUN_020B9C54 - .word FUN_020B98C4 - .word FUN_020B9258 - .word FUN_020B9178 - .word FUN_020B9110 - .word FUN_020B8DF0 - .word FUN_020B8A60 + .global NNS_G3dFuncSbcTable +NNS_G3dFuncSbcTable: ; 0x02106730 + .word NNSi_G3dFuncSbc_NOP + .word NNSi_G3dFuncSbc_RET + .word NNSi_G3dFuncSbc_NODE + .word NNSi_G3dFuncSbc_MTX + .word NNSi_G3dFuncSbc_MAT + .word NNSi_G3dFuncSbc_SHP + .word NNSi_G3dFuncSbc_NODEDESC + .word NNSi_G3dFuncSbc_BB + .word NNSi_G3dFuncSbc_BBY + .word NNSi_G3dFuncSbc_NODEMIX + .word NNSi_G3dFuncSbc_CALLDL + .word NNSi_G3dFuncSbc_POSSCALE + .word NNSi_G3dFuncSbc_ENVMAP + .word NNSi_G3dFuncSbc_PRJMAP .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -145,71 +95,18 @@ UNK_02106730: ; 0x02106730 .section .bss - ; NNS_G3dRS - .global UNK_021CEF7C -UNK_021CEF7C: ; 0x021CEF7C + .global NNS_G3dRS +NNS_G3dRS: ; 0x021CEF7C .space 0x4 - ; NNS_G3dRSOnGlb - .global UNK_021CEF80 -UNK_021CEF80: ; 0x021CEF80 - .space 0xe00 - - ; NNS_G3dRSOnGlb + 0xE00 - .global UNK_021CFD80 -UNK_021CFD80: ; 0x021CFD80 - .space 0x4 - - ; NNS_G3dRSOnGlb + 0xE04 - .global UNK_021CFD84 -UNK_021CFD84: ; 0x021CFD84 - .space 0x4 - - ; NNS_G3dRSOnGlb + 0xE08 - .global UNK_021CFD88 -UNK_021CFD88: ; 0x021CFD88 - .space 0x4 - - ; NNS_G3dRSOnGlb + 0xE0C - .global UNK_021CFD8C -UNK_021CFD8C: ; 0x021CFD8C - .space 0x4 - - ; NNS_G3dRSOnGlb + 0xE10 - .global UNK_021CFD90 -UNK_021CFD90: ; 0x021CFD90 - .space 0x4 - - ; NNS_G3dRSOnGlb + 0xE14 - .global UNK_021CFD94 -UNK_021CFD94: ; 0x021CFD94 - .space 0x2ba - - ; NNS_G3dRSOnGlb + 0x10CE - .global UNK_021D004E -UNK_021D004E: ; 0x021D004E - .space 0x332 - - ; NNS_G3dRSOnGlb + 0x1400 - .global UNK_021D0380 -UNK_021D0380: ; 0x021D0380 - .space 0x40 - - ; NNS_G3dRSOnGlb + 0x1440 - .global UNK_021D03C0 -UNK_021D03C0: ; 0x021D03C0 - .space 0xb42 - - ; NNS_G3dRSOnGlb + 0x1F82 - .global UNK_021D0F02 -UNK_021D0F02: ; 0x021D0F02 - .space 0xd7e + .global NNS_G3dRSOnGlb +NNS_G3dRSOnGlb: ; 0x021CEF80 + .space 0x2d00 .section .text - ; NNSi_G3dFuncSbc_PRJMAP - arm_func_start FUN_020B8A60 -FUN_020B8A60: ; 0x020B8A60 + arm_func_start NNSi_G3dFuncSbc_PRJMAP +NNSi_G3dFuncSbc_PRJMAP: ; 0x020B8A60 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x80 mov r5, r0 @@ -220,13 +117,13 @@ FUN_020B8A60: ; 0x020B8A60 beq _020B8DB4 add r0, sp, #0x10 mov r1, #0x0 - bl FUN_020BB824 + bl NNS_G3dGetCurrentMtx mov r0, #0x1e str r0, [sp, #0x0] add r1, sp, #0x0 mov r0, #0x13 mov r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r2, [r5, #0xb0] ldr r0, [r2, #0x10] and r1, r0, #0xc0000000 @@ -235,9 +132,9 @@ FUN_020B8A60: ; 0x020B8A60 bic r0, r0, #0xc0000000 str r0, [r2, #0x10] ldr r2, [r5, #0xb0] - ldr r3, _020B8DC8 ; =UNK_02106630 + ldr r3, _020B8DC8 ; =cmd$9407 ldr r0, [r2, #0x10] - ldr r1, _020B8DCC ; =UNK_02106634 + ldr r1, _020B8DCC ; =cmd$9407 + 0x4 orr r0, r0, #0xc0000000 str r0, [r2, #0x10] ldr r2, [r5, #0xb0] @@ -245,7 +142,7 @@ FUN_020B8A60: ; 0x020B8A60 ldr r4, [r2, #0x10] mov r2, #0x1 str r4, [r3, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8AF0: ldr r0, [r5, #0x40] cmp r0, #0x0 @@ -272,7 +169,7 @@ _020B8B40: cmp r0, #0x0 bne _020B8B84 ldr r0, [r5, #0xb0] - ldr r1, _020B8DD0 ; =UNK_02106660 + ldr r1, _020B8DD0 ; =mtx$9412 ldrh r6, [r0, #0x2e] ldrh r3, [r0, #0x2c] mov r0, #0x16 @@ -285,7 +182,7 @@ _020B8B40: str r12, [r1, #0x14] str lr, [r1, #0x30] str r3, [r1, #0x34] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8B84: cmp r4, #0x2 bne _020B8BC0 @@ -329,7 +226,7 @@ _020B8BC4: addeq r1, r1, #0x8 mov r0, #0x18 mov r2, #0x10 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8C28: cmp r4, #0x3 movne r0, #0x0 @@ -345,22 +242,22 @@ _020B8C28: _020B8C54: cmp r0, #0x0 bne _020B8D84 - ldr r0, _020B8DD4 ; =UNK_021CED18 + ldr r0, _020B8DD4 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] ands r0, r1, #0x1 beq _020B8CA0 - ldr r1, _020B8DD8 ; =UNK_021CEDF8 + ldr r1, _020B8DD8 ; =NNS_G3dGlb + 0xE0 mov r0, #0x1c mov r2, #0x3 - bl FUN_020BB1C0 - ldr r1, _020B8DDC ; =UNK_021CEDD4 + bl NNS_G3dGeBufferOP_N + ldr r1, _020B8DDC ; =NNS_G3dGlb + 0xBC mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r1, sp, #0x10 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020B8CE0 _020B8CA0: ands r0, r1, #0x2 @@ -368,20 +265,20 @@ _020B8CA0: add r1, sp, #0x10 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020B8CE0 _020B8CBC: - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV mov r1, r0 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r1, sp, #0x10 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8CE0: - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r0, _020B8DE0 ; =0x04000440 mov r2, #0x0 ldr r1, _020B8DE4 ; =0x04000444 @@ -404,7 +301,7 @@ _020B8D04: add r1, sp, #0x40 mov r0, #0x16 mov r2, #0x10 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r1, [sp, #0x70] ldr r0, [sp, #0x74] mov r2, r1, asr #0x4 @@ -422,20 +319,20 @@ _020B8D04: mov r0, #0x22 mov r2, #0x1 str r3, [sp, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8D84: mov r3, #0x2 add r1, sp, #0x8 mov r0, #0x10 mov r2, #0x1 str r3, [sp, #0x8] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r3, #0x1e add r1, sp, #0xc mov r0, #0x14 mov r2, #0x1 str r3, [sp, #0xc] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8DB4: ldr r0, [r5, #0x0] add r0, r0, #0x3 @@ -443,21 +340,20 @@ _020B8DB4: add sp, sp, #0x80 ldmia sp!, {r4-r6,pc} .balign 4 -_020B8DC8: .word UNK_02106630 -_020B8DCC: .word UNK_02106634 -_020B8DD0: .word UNK_02106660 -_020B8DD4: .word UNK_021CED18 -_020B8DD8: .word UNK_021CEDF8 -_020B8DDC: .word UNK_021CEDD4 +_020B8DC8: .word cmd$9407 +_020B8DCC: .word cmd$9407 + 0x4 +_020B8DD0: .word mtx$9412 +_020B8DD4: .word NNS_G3dGlb +_020B8DD8: .word NNS_G3dGlb + 0xE0 +_020B8DDC: .word NNS_G3dGlb + 0xBC _020B8DE0: .word 0x04000440 _020B8DE4: .word 0x04000444 _020B8DE8: .word 0x04000454 _020B8DEC: .word 0x04000448 - arm_func_end FUN_020B8A60 + arm_func_end NNSi_G3dFuncSbc_PRJMAP - ; NNSi_G3dFuncSbc_ENVMAP - arm_func_start FUN_020B8DF0 -FUN_020B8DF0: ; 0x020B8DF0 + arm_func_start NNSi_G3dFuncSbc_ENVMAP +NNSi_G3dFuncSbc_ENVMAP: ; 0x020B8DF0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x44 mov r7, r0 @@ -474,9 +370,9 @@ FUN_020B8DF0: ; 0x020B8DF0 bic r0, r0, #0xc0000000 str r0, [r2, #0x10] ldr r2, [r7, #0xb0] - ldr r3, _020B90FC ; =UNK_02106638 + ldr r3, _020B90FC ; =cmd$9366 ldr r0, [r2, #0x10] - ldr r1, _020B9100 ; =UNK_0210663C + ldr r1, _020B9100 ; =cmd$9366 + 0x4 orr r0, r0, #0x80000000 str r0, [r2, #0x10] ldr r2, [r7, #0xb0] @@ -484,14 +380,14 @@ FUN_020B8DF0: ; 0x020B8DF0 ldr r4, [r2, #0x10] mov r2, #0x1 str r4, [r3, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8E5C: mov r0, #0x3 str r0, [sp, #0x0] add r1, sp, #0x0 mov r0, #0x10 mov r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r7, #0x3c] cmp r0, #0x0 ldrneb r6, [r7, #0x98] @@ -529,7 +425,7 @@ _020B8EC4: str lr, [sp, #0x38] str r12, [sp, #0x3c] str r3, [sp, #0x40] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, r5, lsl #0x13 mov r1, r4, lsl #0x13 mov r0, r0, asr #0x10 @@ -543,7 +439,7 @@ _020B8EC4: mov r0, #0x22 mov r2, #0x1 str r3, [sp, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8F3C: cmp r6, #0x2 bne _020B8F78 @@ -587,7 +483,7 @@ _020B8F7C: addeq r1, r1, #0x8 mov r0, #0x18 mov r2, #0x10 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B8FE0: cmp r6, #0x3 movne r0, #0x0 @@ -608,57 +504,57 @@ _020B900C: mov r0, #0x10 mov r2, #0x1 str r3, [sp, #0x8] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r1, sp, #0x14 mov r0, #0x0 - bl FUN_020BB824 + bl NNS_G3dGetCurrentMtx mov r3, #0x3 add r1, sp, #0xc mov r0, #0x10 mov r2, #0x1 str r3, [sp, #0xc] - bl FUN_020BB1C0 - ldr r0, _020B9104 ; =UNK_021CED18 + bl NNS_G3dGeBufferOP_N + ldr r0, _020B9104 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] ands r0, r1, #0x1 beq _020B9094 - ldr r1, _020B9108 ; =UNK_021CED64 + ldr r1, _020B9108 ; =NNS_G3dGlb + 0x4C mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 - ldr r1, _020B910C ; =UNK_021CEDD4 + bl NNS_G3dGeBufferOP_N + ldr r1, _020B910C ; =NNS_G3dGlb + 0xBC mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r1, sp, #0x14 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020B90D0 _020B9094: ands r0, r1, #0x2 beq _020B90C0 - ldr r1, _020B9108 ; =UNK_021CED64 + ldr r1, _020B9108 ; =NNS_G3dGlb + 0x4C mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r1, sp, #0x14 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020B90D0 _020B90C0: add r1, sp, #0x14 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B90D0: mov r3, #0x2 add r1, sp, #0x10 mov r0, #0x10 mov r2, #0x1 str r3, [sp, #0x10] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B90E8: ldr r0, [r7, #0x0] add r0, r0, #0x3 @@ -666,16 +562,15 @@ _020B90E8: add sp, sp, #0x44 ldmia sp!, {r4-r7,pc} .balign 4 -_020B90FC: .word UNK_02106638 -_020B9100: .word UNK_0210663C -_020B9104: .word UNK_021CED18 -_020B9108: .word UNK_021CED64 -_020B910C: .word UNK_021CEDD4 - arm_func_end FUN_020B8DF0 +_020B90FC: .word cmd$9366 +_020B9100: .word cmd$9366 + 0x4 +_020B9104: .word NNS_G3dGlb +_020B9108: .word NNS_G3dGlb + 0x4C +_020B910C: .word NNS_G3dGlb + 0xBC + arm_func_end NNSi_G3dFuncSbc_ENVMAP - ; _end - arm_func_start FUN_020B9110 -FUN_020B9110: ; 0x020B9110 + arm_func_start NNSi_G3dFuncSbc_POSSCALE +NNSi_G3dFuncSbc_POSSCALE: ; 0x020B9110 stmdb sp!, {r4,lr} sub sp, sp, #0x10 mov r4, r0 @@ -696,18 +591,17 @@ FUN_020B9110: ; 0x020B9110 strne r0, [sp, #0x4] strne r0, [sp, #0x0] mov r0, #0x1b - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B9164: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] add sp, sp, #0x10 ldmia sp!, {r4,pc} - arm_func_end FUN_020B9110 + arm_func_end NNSi_G3dFuncSbc_POSSCALE - ; _end - arm_func_start FUN_020B9178 -FUN_020B9178: ; 0x020B9178 + arm_func_start NNSi_G3dFuncSbc_CALLDL +NNSi_G3dFuncSbc_CALLDL: ; 0x020B9178 stmdb sp!, {r4-r6,lr} mov r5, r0 ldr r0, [r5, #0x34] @@ -753,7 +647,7 @@ _020B91D0: orr r1, r1, r3, lsl #0x10 add r0, r0, r6 orr r1, r1, r2, lsl #0x18 - bl FUN_020BB2B0 + bl NNS_G3dGeSendDL _020B9228: cmp r4, #0x3 bne _020B9248 @@ -768,11 +662,10 @@ _020B9248: add r0, r0, #0x9 str r0, [r5, #0x0] ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020B9178 + arm_func_end NNSi_G3dFuncSbc_CALLDL - ; NNSi_G3dFuncSbc_NODEMIX - arm_func_start FUN_020B9258 -FUN_020B9258: ; 0x020B9258 + arm_func_start NNSi_G3dFuncSbc_NODEMIX +NNSi_G3dFuncSbc_NODEMIX: ; 0x020B9258 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x8c ldr r1, [r0, #0x4] @@ -791,7 +684,7 @@ FUN_020B9258: ; 0x020B9258 str r3, [sp, #0x4] add r8, r4, #0x3 bl MIi_CpuClearFast - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r0, _020B98AC ; =0x04000440 mov r7, r10 str r7, [r0, #0x0] @@ -811,7 +704,7 @@ FUN_020B9258: ; 0x020B9258 _020B92E4: ldrb r4, [r8, #0x1] mov r0, #0x64 - ldr r3, _020B98B8 ; =UNK_021D0380 + ldr r3, _020B98B8 ; =NNS_G3dRSOnGlb + 0x1400 mul r0, r4, r0 str r0, [sp, #0xc] ldr r0, [sp, #0x0] @@ -1050,7 +943,7 @@ _020B9538: adds r0, r2, r1 str r0, [sp, #0x60] cmp r11, #0x0 - ldr r1, _020B98C0 ; =UNK_021D03C0 + ldr r1, _020B98C0 ; =NNS_G3dRSOnGlb + 0x1440 ldr r0, [sp, #0xc] add r5, r1, r0 add r8, r8, #0x3 @@ -1190,14 +1083,13 @@ _020B96CC: _020B98AC: .word 0x04000440 _020B98B0: .word 0x0400044C _020B98B4: .word 0x04000454 -_020B98B8: .word UNK_021D0380 +_020B98B8: .word NNS_G3dRSOnGlb + 0x1400 _020B98BC: .word 0x04000450 -_020B98C0: .word UNK_021D03C0 - arm_func_end FUN_020B9258 +_020B98C0: .word NNS_G3dRSOnGlb + 0x1440 + arm_func_end NNSi_G3dFuncSbc_NODEMIX - ; NNSi_G3dFuncSbc_BBY - arm_func_start FUN_020B98C4 -FUN_020B98C4: ; 0x020B98C4 + arm_func_start NNSi_G3dFuncSbc_BBY +NNSi_G3dFuncSbc_BBY: ; 0x020B98C4 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xcc mov r10, r0 @@ -1205,9 +1097,9 @@ FUN_020B98C4: ; 0x020B98C4 mov r9, r1 ands r0, r2, #0x200 mov r7, #0x2 - ldr r6, _020B9C28 ; =UNK_02106718 - ldr fp, _020B9C2C ; =UNK_02106724 - ldr r5, _020B9C30 ; =UNK_021066F4 + ldr r6, _020B9C28 ; =bbcmd1$9234 + 0x30 + ldr fp, _020B9C2C ; =bbcmd1$9234 + 0x3C + ldr r5, _020B9C30 ; =bbcmd1$9234 + 0xC beq _020B992C cmp r9, #0x40 beq _020B9900 @@ -1247,7 +1139,7 @@ _020B993C: ldrneb r0, [r0, #0x3] strne r0, [sp, #0x0] mov r0, #0x14 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B9974: ldr r0, [r10, #0x2c] cmp r0, #0x0 @@ -1276,7 +1168,7 @@ _020B99C4: bne _020B9BA4 cmp r1, #0x0 bne _020B9BA4 - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r2, _020B9C34 ; =0x00151110 ldr r1, _020B9C38 ; =0x04000400 mov r0, #0x0 @@ -1289,11 +1181,11 @@ _020B99F8: bl G3X_GetClipMtx cmp r0, #0x0 bne _020B99F8 - ldr r0, _020B9C3C ; =UNK_021CED18 + ldr r0, _020B9C3C ; =NNS_G3dGlb ldr r1, [r0, #0xfc] ands r0, r1, #0x1 beq _020B9A38 - bl FUN_020B82A4 + bl NNS_G3dGlbGetWV add r1, sp, #0x48 bl MTX_Copy43To44_ add r0, sp, #0x8 @@ -1304,7 +1196,7 @@ _020B99F8: _020B9A38: ands r0, r1, #0x2 beq _020B9A5C - ldr r0, _020B9C40 ; =UNK_021CED64 + ldr r0, _020B9C40 ; =NNS_G3dGlb + 0x4C add r1, sp, #0x88 bl MTX_Copy43To44_ add r0, sp, #0x8 @@ -1353,23 +1245,23 @@ _020B9AD4: ldr r0, [r5, #0x20] str r0, [r5, #0x10] _020B9AF4: - ldr r0, _020B9C3C ; =UNK_021CED18 + ldr r0, _020B9C3C ; =NNS_G3dGlb ldr r1, [r0, #0xfc] ands r0, r1, #0x1 beq _020B9B48 ldr r3, _020B9C44 ; =0x00171012 ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C48 ; =UNK_021066EC + ldr r0, _020B9C48 ; =bbcmd1$9234 + 0x4 mov r2, #0x8 str r3, [r1, #0x0] bl MIi_CpuSend32 - bl FUN_020B8264 + bl NNS_G3dGlbGetInvWV ldr r1, _020B9C38 ; =0x04000400 mov r2, #0x30 bl MIi_CpuSend32 ldr r2, _020B9C4C ; =0x00001B19 ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C30 ; =UNK_021066F4 + ldr r0, _020B9C30 ; =bbcmd1$9234 + 0xC str r2, [r1, #0x0] mov r2, #0x3c bl MIi_CpuSend32 @@ -1379,23 +1271,23 @@ _020B9B48: beq _020B9B94 ldr r3, _020B9C44 ; =0x00171012 ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C48 ; =UNK_021066EC + ldr r0, _020B9C48 ; =bbcmd1$9234 + 0x4 mov r2, #0x8 str r3, [r1, #0x0] bl MIi_CpuSend32 - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV ldr r1, _020B9C38 ; =0x04000400 mov r2, #0x30 bl MIi_CpuSend32 ldr r2, _020B9C4C ; =0x00001B19 ldr r1, _020B9C38 ; =0x04000400 - ldr r0, _020B9C30 ; =UNK_021066F4 + ldr r0, _020B9C30 ; =bbcmd1$9234 + 0xC str r2, [r1, #0x0] mov r2, #0x3c bl MIi_CpuSend32 b _020B9BA4 _020B9B94: - ldr r0, _020B9C50 ; =UNK_021066E8 + ldr r0, _020B9C50 ; =bbcmd1$9234 ldr r1, _020B9C38 ; =0x04000400 mov r2, #0x48 bl MIi_CpuSend32 @@ -1429,7 +1321,7 @@ _020B9BE0: mov r0, #0x13 mov r2, #0x1 str r3, [sp, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B9C14: ldr r0, [r10, #0x0] add r0, r0, r7 @@ -1437,22 +1329,21 @@ _020B9C14: add sp, sp, #0xcc ldmia sp!, {r4-r11,pc} .balign 4 -_020B9C28: .word UNK_02106718 -_020B9C2C: .word UNK_02106724 -_020B9C30: .word UNK_021066F4 +_020B9C28: .word bbcmd1$9234 + 0x30 +_020B9C2C: .word bbcmd1$9234 + 0x3C +_020B9C30: .word bbcmd1$9234 + 0xC _020B9C34: .word 0x00151110 _020B9C38: .word 0x04000400 -_020B9C3C: .word UNK_021CED18 -_020B9C40: .word UNK_021CED64 +_020B9C3C: .word NNS_G3dGlb +_020B9C40: .word NNS_G3dGlb + 0x4C _020B9C44: .word 0x00171012 -_020B9C48: .word UNK_021066EC +_020B9C48: .word bbcmd1$9234 + 0x4 _020B9C4C: .word 0x00001B19 -_020B9C50: .word UNK_021066E8 - arm_func_end FUN_020B98C4 +_020B9C50: .word bbcmd1$9234 + arm_func_end NNSi_G3dFuncSbc_BBY - ; NNSi_G3dFuncSbc_BB - arm_func_start FUN_020B9C54 -FUN_020B9C54: ; 0x020B9C54 + arm_func_start NNSi_G3dFuncSbc_BB +NNSi_G3dFuncSbc_BB: ; 0x020B9C54 stmdb sp!, {r4-r10,lr} sub sp, sp, #0xc8 mov r9, r0 @@ -1460,8 +1351,8 @@ FUN_020B9C54: ; 0x020B9C54 mov r8, r1 ands r0, r2, #0x200 mov r6, #0x2 - ldr r5, _020B9F58 ; =UNK_021066D0 - ldr r4, _020B9F5C ; =UNK_021066DC + ldr r5, _020B9F58 ; =bbcmd1$9173 + 0x30 + ldr r4, _020B9F5C ; =bbcmd1$9173 + 0x3C beq _020B9CB8 cmp r8, #0x40 beq _020B9C8C @@ -1501,7 +1392,7 @@ _020B9CC8: ldrneb r0, [r0, #0x3] strne r0, [sp, #0x0] mov r0, #0x14 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B9D00: ldr r0, [r9, #0x28] cmp r0, #0x0 @@ -1530,7 +1421,7 @@ _020B9D50: bne _020B9ED4 cmp r1, #0x0 bne _020B9ED4 - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r2, _020B9F60 ; =0x00151110 ldr r1, _020B9F64 ; =0x04000400 mov r0, #0x0 @@ -1543,11 +1434,11 @@ _020B9D84: bl G3X_GetClipMtx cmp r0, #0x0 bne _020B9D84 - ldr r0, _020B9F68 ; =UNK_021CED18 + ldr r0, _020B9F68 ; =NNS_G3dGlb ldr r1, [r0, #0xfc] ands r0, r1, #0x1 beq _020B9DC4 - bl FUN_020B82A4 + bl NNS_G3dGlbGetWV add r1, sp, #0x48 bl MTX_Copy43To44_ add r0, sp, #0x8 @@ -1558,7 +1449,7 @@ _020B9D84: _020B9DC4: ands r0, r1, #0x2 beq _020B9DE8 - ldr r0, _020B9F6C ; =UNK_021CED64 + ldr r0, _020B9F6C ; =NNS_G3dGlb + 0x4C add r1, sp, #0x88 bl MTX_Copy43To44_ add r0, sp, #0x8 @@ -1580,24 +1471,24 @@ _020B9DE8: str r0, [r4, #0x4] add r0, sp, #0x28 bl VEC_Mag - ldr r1, _020B9F68 ; =UNK_021CED18 + ldr r1, _020B9F68 ; =NNS_G3dGlb str r0, [r4, #0x8] ldr r1, [r1, #0xfc] ands r0, r1, #0x1 beq _020B9E78 ldr r3, _020B9F70 ; =0x00171012 ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F74 ; =UNK_021066A4 + ldr r0, _020B9F74 ; =bbcmd1$9173 + 0x4 mov r2, #0x8 str r3, [r1, #0x0] bl MIi_CpuSend32 - bl FUN_020B8264 + bl NNS_G3dGlbGetInvWV ldr r1, _020B9F64 ; =0x04000400 mov r2, #0x30 bl MIi_CpuSend32 ldr r2, _020B9F78 ; =0x00001B19 ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F7C ; =UNK_021066AC + ldr r0, _020B9F7C ; =bbcmd1$9173 + 0xC str r2, [r1, #0x0] mov r2, #0x3c bl MIi_CpuSend32 @@ -1607,23 +1498,23 @@ _020B9E78: beq _020B9EC4 ldr r3, _020B9F70 ; =0x00171012 ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F74 ; =UNK_021066A4 + ldr r0, _020B9F74 ; =bbcmd1$9173 + 0x4 mov r2, #0x8 str r3, [r1, #0x0] bl MIi_CpuSend32 - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV ldr r1, _020B9F64 ; =0x04000400 mov r2, #0x30 bl MIi_CpuSend32 ldr r2, _020B9F78 ; =0x00001B19 ldr r1, _020B9F64 ; =0x04000400 - ldr r0, _020B9F7C ; =UNK_021066AC + ldr r0, _020B9F7C ; =bbcmd1$9173 + 0xC str r2, [r1, #0x0] mov r2, #0x3c bl MIi_CpuSend32 b _020B9ED4 _020B9EC4: - ldr r0, _020B9F80 ; =UNK_021066A0 + ldr r0, _020B9F80 ; =bbcmd1$9173 ldr r1, _020B9F64 ; =0x04000400 mov r2, #0x48 bl MIi_CpuSend32 @@ -1657,7 +1548,7 @@ _020B9F10: mov r0, #0x13 mov r2, #0x1 str r3, [sp, #0x4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020B9F44: ldr r0, [r9, #0x0] add r0, r0, r6 @@ -1665,22 +1556,21 @@ _020B9F44: add sp, sp, #0xc8 ldmia sp!, {r4-r10,pc} .balign 4 -_020B9F58: .word UNK_021066D0 -_020B9F5C: .word UNK_021066DC +_020B9F58: .word bbcmd1$9173 + 0x30 +_020B9F5C: .word bbcmd1$9173 + 0x3C _020B9F60: .word 0x00151110 _020B9F64: .word 0x04000400 -_020B9F68: .word UNK_021CED18 -_020B9F6C: .word UNK_021CED64 +_020B9F68: .word NNS_G3dGlb +_020B9F6C: .word NNS_G3dGlb + 0x4C _020B9F70: .word 0x00171012 -_020B9F74: .word UNK_021066A4 +_020B9F74: .word bbcmd1$9173 + 0x4 _020B9F78: .word 0x00001B19 -_020B9F7C: .word UNK_021066AC -_020B9F80: .word UNK_021066A0 - arm_func_end FUN_020B9C54 +_020B9F7C: .word bbcmd1$9173 + 0xC +_020B9F80: .word bbcmd1$9173 + arm_func_end NNSi_G3dFuncSbc_BB - ; NNSi_G3dFuncSbc_NODEDESC - arm_func_start FUN_020B9F84 -FUN_020B9F84: ; 0x020B9F84 + arm_func_start NNSi_G3dFuncSbc_NODEDESC +NNSi_G3dFuncSbc_NODEDESC: ; 0x020B9F84 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x14 mov r10, r0 @@ -1716,7 +1606,7 @@ _020B9FE0: mov r0, #0x14 mov r2, #0x1 str r3, [sp, #0x8] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BA008: ldr r0, [r10, #0x0] add sp, sp, #0x14 @@ -1743,7 +1633,7 @@ _020BA02C: add r1, sp, #0xc mov r0, #0x14 mov r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BA068: add r0, r10, #0x12c str r0, [r10, #0xb4] @@ -1847,8 +1737,8 @@ _020BA188: rsbne r2, r0, #0x0 moveq r2, #0x1000 str r2, [r1, #0x28] - ldr r0, _020BA3B4 ; =UNK_020FF9F0 - ldr r1, _020BA3B8 ; =UNK_020FF9F0 + 1 + ldr r0, _020BA3B4 ; =pivotUtil_$9100 + ldr r1, _020BA3B8 ; =pivotUtil_$9100 + 1 ldrb r0, [r0, r11, lsl #0x2] add r2, r6, r0, lsl #0x2 ldr r0, [sp, #0x0] @@ -1862,7 +1752,7 @@ _020BA188: ldrne r0, [sp, #0x4] rsbne r0, r0, #0x0 strne r0, [sp, #0x4] - ldr r0, _020BA3BC ; =UNK_020FF9F0 + 2 + ldr r0, _020BA3BC ; =pivotUtil_$9100 + 2 ldrb r0, [r0, r11, lsl #0x2] add r1, r6, r0, lsl #0x2 ldr r0, [sp, #0x4] @@ -1872,7 +1762,7 @@ _020BA188: ldrne r0, [sp, #0x0] rsbne r0, r0, #0x0 strne r0, [sp, #0x0] - ldr r0, _020BA3C0 ; =UNK_020FF9F0 + 3 + ldr r0, _020BA3C0 ; =pivotUtil_$9100 + 3 ldrb r0, [r0, r11, lsl #0x2] add r1, r6, r0, lsl #0x2 ldr r0, [sp, #0x0] @@ -1965,7 +1855,7 @@ _020BA36C: mov r0, #0x13 mov r2, #0x1 str r3, [sp, #0x10] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BA3A0: ldr r0, [r10, #0x0] add r0, r0, r7 @@ -1973,15 +1863,14 @@ _020BA3A0: add sp, sp, #0x14 ldmia sp!, {r4-r11,pc} .balign 4 -_020BA3B4: .word UNK_020FF9F0 -_020BA3B8: .word UNK_020FF9F0 + 1 -_020BA3BC: .word UNK_020FF9F0 + 2 -_020BA3C0: .word UNK_020FF9F0 + 3 - arm_func_end FUN_020B9F84 +_020BA3B4: .word pivotUtil_$9100 +_020BA3B8: .word pivotUtil_$9100 + 1 +_020BA3BC: .word pivotUtil_$9100 + 2 +_020BA3C0: .word pivotUtil_$9100 + 3 + arm_func_end NNSi_G3dFuncSbc_NODEDESC - ; NNSi_G3dFuncSbc_SHP - arm_func_start FUN_020BA3C4 -FUN_020BA3C4: ; 0x020BA3C4 + arm_func_start NNSi_G3dFuncSbc_SHP +NNSi_G3dFuncSbc_SHP: ; 0x020BA3C4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r0 @@ -1996,7 +1885,7 @@ FUN_020BA3C4: ; 0x020BA3C4 ldr r3, [r4, #0x0] ldrh r2, [r5, #0x6] ldrb r3, [r3, #0x1] - ldr ip, _020BA434 ; =UNK_02106650 + ldr ip, _020BA434 ; =NNS_G3dFuncSbcShpTable ldrh lr, [r5, r2] add r2, r5, r2 mla r2, lr, r3, r2 @@ -2012,12 +1901,11 @@ _020BA420: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020BA434: .word UNK_02106650 - arm_func_end FUN_020BA3C4 +_020BA434: .word NNS_G3dFuncSbcShpTable + arm_func_end NNSi_G3dFuncSbc_SHP - ; _end - arm_func_start FUN_020BA438 -FUN_020BA438: ; 0x020BA438 + arm_func_start NNSi_G3dFuncSbc_SHP_InternalDefault +NNSi_G3dFuncSbc_SHP_InternalDefault: ; 0x020BA438 stmdb sp!, {r4-r6,lr} mov r6, r0 ldr r0, [r6, #0x20] @@ -2051,7 +1939,7 @@ _020BA494: ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] add r0, r5, r0 - bl FUN_020BB2B0 + bl NNS_G3dGeSendDL _020BA4B8: cmp r4, #0x2 bne _020BA4E8 @@ -2075,11 +1963,10 @@ _020BA4E8: ldr r1, [r6, #0x20] blx r1 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BA438 + arm_func_end NNSi_G3dFuncSbc_SHP_InternalDefault - ; NNSi_G3dFuncSbc_MAT - arm_func_start FUN_020BA50C -FUN_020BA50C: ; 0x020BA50C + arm_func_start NNSi_G3dFuncSbc_MAT +NNSi_G3dFuncSbc_MAT: ; 0x020BA50C stmdb sp!, {r4-r6,lr} mov r4, r0 ldr r5, [r4, #0x8] @@ -2096,7 +1983,7 @@ FUN_020BA50C: ; 0x020BA50C beq _020BA578 _020BA544: ldr r6, [r4, #0xd8] - ldr ip, _020BA588 ; =UNK_02106640 + ldr ip, _020BA588 ; =NNS_G3dFuncSbcMatTable ldrh r2, [r6, #0xa] add r5, r6, #0x4 mov r0, r4 @@ -2114,12 +2001,11 @@ _020BA578: str r0, [r4, #0x0] ldmia sp!, {r4-r6,pc} .balign 4 -_020BA588: .word UNK_02106640 - arm_func_end FUN_020BA50C +_020BA588: .word NNS_G3dFuncSbcMatTable + arm_func_end NNSi_G3dFuncSbc_MAT - ; NNSi_G3dFuncSbc_MAT_InternalDefault - arm_func_start FUN_020BA58C -FUN_020BA58C: ; 0x020BA58C + arm_func_start NNSi_G3dFuncSbc_MAT_InternalDefault +NNSi_G3dFuncSbc_MAT_InternalDefault: ; 0x020BA58C stmdb sp!, {r4-r8,lr} sub sp, sp, #0x20 mov r8, r0 @@ -2182,7 +2068,7 @@ _020BA648: cmp r0, #0x0 movne r1, #0x38 mlane r4, r6, r1, r0 - ldreq r1, _020BA9D8 ; =UNK_021CEF80 + ldreq r1, _020BA9D8 ; =NNS_G3dRSOnGlb moveq r0, #0x38 mlaeq r4, r6, r0, r1 b _020BA8BC @@ -2207,7 +2093,7 @@ _020BA6BC: bne _020BA6F0 add lr, r8, #0xbc mov r12, r6, lsr #0x5 - ldr r1, _020BA9D8 ; =UNK_021CEF80 + ldr r1, _020BA9D8 ; =NNS_G3dRSOnGlb ldr r4, [lr, r12, lsl #0x2] mov r0, #0x38 and r2, r6, #0x1f @@ -2225,7 +2111,7 @@ _020BA6F0: add r0, r2, r0 mla r0, r1, r6, r0 ldr r0, [r0, #0x4] - ldr r1, _020BA9DC ; =UNK_021CED18 + ldr r1, _020BA9DC ; =NNS_G3dGlb add r0, r3, r0 ldrh r0, [r0, #0x1e] ands r0, r0, #0x20 @@ -2233,7 +2119,7 @@ _020BA6F0: orrne r0, r0, #0x20 strne r0, [r4, #0x0] ldrh r2, [r7, #0x1e] - ldr r0, _020BA9E0 ; =UNK_020FF9D0 + ldr r0, _020BA9E0 ; =matColorMask_$8998 ldr r12, [r1, #0x94] mov r2, r2, asr #0x6 and r2, r2, #0x7 @@ -2388,7 +2274,7 @@ _020BA900: str r3, [sp, #0x14] ldr r3, [r4, #0x14] str r3, [sp, #0x18] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r4, #0x0] ands r0, r0, #0x18 beq _020BA9AC @@ -2413,16 +2299,15 @@ _020BA9AC: add sp, sp, #0x20 ldmia sp!, {r4-r8,pc} .balign 4 -_020BA9D8: .word UNK_021CEF80 -_020BA9DC: .word UNK_021CED18 -_020BA9E0: .word UNK_020FF9D0 +_020BA9D8: .word NNS_G3dRSOnGlb +_020BA9DC: .word NNS_G3dGlb +_020BA9E0: .word matColorMask_$8998 _020BA9E4: .word 0x00293130 _020BA9E8: .word 0x00002B2A - arm_func_end FUN_020BA58C + arm_func_end NNSi_G3dFuncSbc_MAT_InternalDefault - ; _end - arm_func_start FUN_020BA9EC -FUN_020BA9EC: ; 0x020BA9EC + arm_func_start NNSi_G3dFuncSbc_MTX +NNSi_G3dFuncSbc_MTX: ; 0x020BA9EC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -2464,7 +2349,7 @@ _020BAA5C: add r1, sp, #0x0 mov r0, #0x14 mov r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BAA8C: cmp r4, #0x3 bne _020BAAAC @@ -2480,11 +2365,10 @@ _020BAAAC: str r0, [r5, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BA9EC + arm_func_end NNSi_G3dFuncSbc_MTX - ; _end - arm_func_start FUN_020BAAC0 -FUN_020BAAC0: ; 0x020BAAC0 + arm_func_start NNSi_G3dFuncSbc_NODE +NNSi_G3dFuncSbc_NODE: ; 0x020BAAC0 stmdb sp!, {r4-r6,lr} mov r6, r0 ldr r0, [r6, #0x8] @@ -2591,11 +2475,10 @@ _020BAC38: add r0, r0, #0x3 str r0, [r6, #0x0] ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BAAC0 + arm_func_end NNSi_G3dFuncSbc_NODE - ; _end - arm_func_start FUN_020BAC48 -FUN_020BAC48: ; 0x020BAC48 + arm_func_start NNSi_G3dFuncSbc_RET +NNSi_G3dFuncSbc_RET: ; 0x020BAC48 stmdb sp!, {r4,lr} mov r4, r0 ldr r1, [r4, #0x10] @@ -2607,11 +2490,10 @@ _020BAC60: orr r0, r0, #0x20 str r0, [r4, #0x8] ldmia sp!, {r4,pc} - arm_func_end FUN_020BAC48 + arm_func_end NNSi_G3dFuncSbc_RET - ; _end - arm_func_start FUN_020BAC70 -FUN_020BAC70: ; 0x020BAC70 + arm_func_start NNSi_G3dFuncSbc_NOP +NNSi_G3dFuncSbc_NOP: ; 0x020BAC70 stmdb sp!, {r4,lr} mov r4, r0 ldr r1, [r4, #0xc] @@ -2623,11 +2505,10 @@ _020BAC88: add r0, r0, #0x1 str r0, [r4, #0x0] ldmia sp!, {r4,pc} - arm_func_end FUN_020BAC70 + arm_func_end NNSi_G3dFuncSbc_NOP - ; NNS_G3dDraw - arm_func_start FUN_020BAC98 -FUN_020BAC98: ; 0x020BAC98 + arm_func_start NNS_G3dDraw +NNS_G3dDraw: ; 0x020BAC98 stmdb sp!, {r4,lr} sub sp, sp, #0x188 mov r4, r0 @@ -2651,49 +2532,48 @@ FUN_020BAC98: ; 0x020BAC98 cmp r1, #0x0 beq _020BACF8 add r0, r4, #0x3c - bl FUN_020BAD74 + bl updateHintVec_ _020BACF8: ldr r1, [r4, #0x10] cmp r1, #0x0 beq _020BAD0C add r0, r4, #0x44 - bl FUN_020BAD74 + bl updateHintVec_ _020BAD0C: ldr r1, [r4, #0x18] cmp r1, #0x0 beq _020BAD20 add r0, r4, #0x4c - bl FUN_020BAD74 + bl updateHintVec_ _020BAD20: ldr r0, [r4, #0x0] bic r0, r0, #0x10 str r0, [r4, #0x0] _020BAD2C: - ldr r2, _020BAD70 ; =UNK_021CEF7C + ldr r2, _020BAD70 ; =NNS_G3dRS ldr r0, [r2, #0x0] cmp r0, #0x0 beq _020BAD4C mov r1, r4 - bl FUN_020BADE4 + bl G3dDrawInternal_ add sp, sp, #0x188 ldmia sp!, {r4,pc} _020BAD4C: add r0, sp, #0x0 mov r1, r4 str r0, [r2, #0x0] - bl FUN_020BADE4 - ldr r0, _020BAD70 ; =UNK_021CEF7C + bl G3dDrawInternal_ + ldr r0, _020BAD70 ; =NNS_G3dRS mov r1, #0x0 str r1, [r0, #0x0] add sp, sp, #0x188 ldmia sp!, {r4,pc} .balign 4 -_020BAD70: .word UNK_021CEF7C - arm_func_end FUN_020BAC98 +_020BAD70: .word NNS_G3dRS + arm_func_end NNS_G3dDraw - ; _end - arm_func_start FUN_020BAD74 -FUN_020BAD74: ; 0x020BAD74 + local_arm_func_start updateHintVec_ +updateHintVec_: ; 0x020BAD74 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -2725,11 +2605,10 @@ _020BADD0: bne _020BAD90 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020BAD74 + arm_func_end updateHintVec_ - ; G3dDrawInternal_ - arm_func_start FUN_020BADE4 -FUN_020BADE4: ; 0x020BADE4 + arm_func_start G3dDrawInternal_ +G3dDrawInternal_: ; 0x020BADE4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -2742,7 +2621,7 @@ FUN_020BADE4: ; 0x020BADE4 str r0, [r5, #0xc4] str r0, [r5, #0x8] ldr r0, [r4, #0x30] - ldr r2, _020BAF60 ; =UNK_02106614 + ldr r2, _020BAF60 ; =NNS_G3dGetJointScale_FuncArray cmp r0, #0x0 strne r0, [r5, #0x0] ldreq r1, [r4, #0x4] @@ -2751,11 +2630,11 @@ FUN_020BADE4: ; 0x020BADE4 streq r0, [r5, #0x0] str r4, [r5, #0x4] ldr r0, [r4, #0x4] - ldr r1, _020BAF64 ; =UNK_02106608 + ldr r1, _020BAF64 ; =NNS_G3dSendJointSRT_FuncArray add r0, r0, #0x40 str r0, [r5, #0xd4] ldr r12, [r4, #0x4] - ldr r0, _020BAF68 ; =UNK_02106620 + ldr r0, _020BAF68 ; =NNS_G3dSendTexSRT_FuncArray ldr r3, [r12, #0x8] add r3, r12, r3 str r3, [r5, #0xd8] @@ -2821,24 +2700,23 @@ _020BAEE0: blx r1 _020BAF44: mov r0, r5 - bl FUN_020BAF6C + bl G3dDrawInternal_Loop_ ldr r0, [r4, #0x0] bic r0, r0, #0x1 str r0, [r4, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020BAF60: .word UNK_02106614 -_020BAF64: .word UNK_02106608 -_020BAF68: .word UNK_02106620 - arm_func_end FUN_020BADE4 +_020BAF60: .word NNS_G3dGetJointScale_FuncArray +_020BAF64: .word NNS_G3dSendJointSRT_FuncArray +_020BAF68: .word NNS_G3dSendTexSRT_FuncArray + arm_func_end G3dDrawInternal_ - ; G3dDrawInternal_Loop_ - arm_func_start FUN_020BAF6C -FUN_020BAF6C: ; 0x020BAF6C + arm_func_start G3dDrawInternal_Loop_ +G3dDrawInternal_Loop_: ; 0x020BAF6C stmdb sp!, {r4-r6,lr} mov r5, r0 - ldr r6, _020BAFB4 ; =UNK_02106730 + ldr r6, _020BAFB4 ; =NNS_G3dFuncSbcTable add r4, r5, #0x8 _020BAF7C: ldr r1, [r4, #0x0] @@ -2856,6 +2734,5 @@ _020BAF7C: beq _020BAF7C ldmia sp!, {r4-r6,pc} .balign 4 -_020BAFB4: .word UNK_02106730 - arm_func_end FUN_020BAF6C - +_020BAFB4: .word NNS_G3dFuncSbcTable + arm_func_end G3dDrawInternal_Loop_ diff --git a/arm9/asm/NNS_G3D_si3d.s b/arm9/asm/NNS_G3D_si3d.s index d69867125..66bfe4600 100644 --- a/arm9/asm/NNS_G3D_si3d.s +++ b/arm9/asm/NNS_G3D_si3d.s @@ -3,9 +3,8 @@ .section .text - ; NNSi_G3dSendTexSRTSi3d - arm_func_start FUN_020BEF10 -FUN_020BEF10: ; 0x020BEF10 + arm_func_start NNSi_G3dSendTexSRTSi3d +NNSi_G3dSendTexSRTSi3d: ; 0x020BEF10 stmdb sp!, {lr} sub sp, sp, #0x3c ldr r1, [r0, #0x0] @@ -119,17 +118,16 @@ _020BF0B0: ldr r0, [sp, #0x0] add r1, r1, #0x4 mov r2, #0xe - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x3c ldmia sp!, {pc} .balign 4 _020BF0CC: .word 0x00101710 _020BF0D0: .word 0x00101910 - arm_func_end FUN_020BEF10 + arm_func_end NNSi_G3dSendTexSRTSi3d - ; NNSi_G3dGetJointScaleSi3d - arm_func_start FUN_020BF0D4 -FUN_020BF0D4: ; 0x020BF0D4 + arm_func_start NNSi_G3dGetJointScaleSi3d +NNSi_G3dGetJointScaleSi3d: ; 0x020BF0D4 stmdb sp!, {r4-r8,lr} mov r5, r0 ands r0, r3, #0x4 @@ -137,7 +135,7 @@ FUN_020BF0D4: ; 0x020BF0D4 ldrb r0, [r2, #0x2] beq _020BF174 ldr r2, [r5, #0x0] - ldr r1, _020BF2E0 ; =UNK_021CEF7C + ldr r1, _020BF2E0 ; =NNS_G3dRS orr r2, r2, #0x1 str r2, [r5, #0x0] ldr r3, [r1, #0x0] @@ -160,7 +158,7 @@ FUN_020BF0D4: ; 0x020BF0D4 str r0, [r5, #0x0] ldmia sp!, {r4-r8,pc} _020BF148: - ldr r1, _020BF2E4 ; =UNK_021CFD80 + ldr r1, _020BF2E4 ; =NNS_G3dRSOnGlb + 0xE00 mov r2, #0x18 mla r6, r0, r2, r1 mla r1, r4, r2, r1 @@ -173,7 +171,7 @@ _020BF148: ldmia sp!, {r4-r8,pc} _020BF174: ldr r3, [r1, #0x0] - ldr r2, _020BF2E0 ; =UNK_021CEF7C + ldr r2, _020BF2E0 ; =NNS_G3dRS str r3, [r5, #0x4] ldr r3, [r1, #0x4] mov r7, r0, lsr #0x5 @@ -188,12 +186,12 @@ _020BF174: ldr r2, [r2, #0xc4] ands r2, r7, r2 beq _020BF200 - ldr r3, _020BF2E4 ; =UNK_021CFD80 + ldr r3, _020BF2E4 ; =NNS_G3dRSOnGlb + 0xE00 mov r2, #0x18 mov r0, r1 mla r1, r4, r2, r3 bl MIi_CpuCopy32 - ldr r0, _020BF2E0 ; =UNK_021CEF7C + ldr r0, _020BF2E0 ; =NNS_G3dRS mov r2, r4, lsr #0x5 ldr r1, [r0, #0x0] and r0, r4, #0x1f @@ -211,7 +209,7 @@ _020BF200: mov r2, #0x18 mul r12, r0, r2 and r7, r4, #0x1f - ldr r0, _020BF2E4 ; =UNK_021CFD80 + ldr r0, _020BF2E4 ; =NNS_G3dRSOnGlb + 0xE00 add r6, r6, #0xc4 mov lr, r4, lsr #0x5 mvn r7, r3, lsl r7 @@ -221,35 +219,35 @@ _020BF200: str r4, [r6, lr, lsl #0x2] ldr r7, [r1, #0x0] ldr r4, [r0, r12] - ldr r6, _020BF2E8 ; =UNK_021CFD84 + ldr r6, _020BF2E8 ; =NNS_G3dRSOnGlb + 0xE04 smull r8, r4, r7, r4 mov r7, r8, lsr #0xc orr r7, r7, r4, lsl #0x14 str r7, [r0, r3] ldr r8, [r1, #0x4] ldr r4, [r6, r12] - ldr r7, _020BF2EC ; =UNK_021CFD88 + ldr r7, _020BF2EC ; =NNS_G3dRSOnGlb + 0xE08 smull lr, r4, r8, r4 mov r8, lr, lsr #0xc orr r8, r8, r4, lsl #0x14 str r8, [r6, r3] ldr r8, [r1, #0x8] ldr r4, [r7, r12] - ldr r6, _020BF2F0 ; =UNK_021CFD8C + ldr r6, _020BF2F0 ; =NNS_G3dRSOnGlb + 0xE0C smull lr, r4, r8, r4 mov r8, lr, lsr #0xc orr r8, r8, r4, lsl #0x14 str r8, [r7, r3] ldr r7, [r1, #0xc] ldr r4, [r6, r12] - ldr lr, _020BF2F4 ; =UNK_021CFD90 + ldr lr, _020BF2F4 ; =NNS_G3dRSOnGlb + 0xE10 smull r8, r4, r7, r4 mov r7, r8, lsr #0xc orr r7, r7, r4, lsl #0x14 str r7, [r6, r3] ldr r7, [r1, #0x10] ldr r4, [lr, r12] - ldr r6, _020BF2F8 ; =UNK_021CFD94 + ldr r6, _020BF2F8 ; =NNS_G3dRSOnGlb + 0xE14 smull r8, r4, r7, r4 add r0, r0, r12 mov r7, r8, lsr #0xc @@ -265,18 +263,17 @@ _020BF200: bl MIi_CpuCopy32 ldmia sp!, {r4-r8,pc} .balign 4 -_020BF2E0: .word UNK_021CEF7C -_020BF2E4: .word UNK_021CFD80 -_020BF2E8: .word UNK_021CFD84 -_020BF2EC: .word UNK_021CFD88 -_020BF2F0: .word UNK_021CFD8C -_020BF2F4: .word UNK_021CFD90 -_020BF2F8: .word UNK_021CFD94 - arm_func_end FUN_020BF0D4 +_020BF2E0: .word NNS_G3dRS +_020BF2E4: .word NNS_G3dRSOnGlb + 0xE00 +_020BF2E8: .word NNS_G3dRSOnGlb + 0xE04 +_020BF2EC: .word NNS_G3dRSOnGlb + 0xE08 +_020BF2F0: .word NNS_G3dRSOnGlb + 0xE0C +_020BF2F4: .word NNS_G3dRSOnGlb + 0xE10 +_020BF2F8: .word NNS_G3dRSOnGlb + 0xE14 + arm_func_end NNSi_G3dGetJointScaleSi3d - ; _end - arm_func_start FUN_020BF2FC -FUN_020BF2FC: ; 0x020BF2FC + arm_func_start NNSi_G3dSendJointSRTSi3d +NNSi_G3dSendJointSRTSi3d: ; 0x020BF2FC stmdb sp!, {r4-r6,lr} sub sp, sp, #0x10 mov r6, r0 @@ -287,7 +284,7 @@ FUN_020BF2FC: ; 0x020BF2FC add r1, r6, #0x1c mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BF328: ldr r0, [r6, #0x0] ands r0, r0, #0x4 @@ -316,7 +313,7 @@ _020BF328: mov r12, lr, lsr #0xc orr r12, r12, r3, lsl #0x14 str r12, [sp, #0x8] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BF398: ldr r0, [r6, #0x0] ands r0, r0, #0x2 @@ -326,13 +323,13 @@ _020BF398: add r1, r6, #0x28 mov r0, #0x19 mov r2, #0xc - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BF3EC _020BF3C0: add r1, r6, #0x28 mov r0, #0x1a mov r2, #0x9 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N b _020BF3EC _020BF3D4: cmp r5, #0x0 @@ -340,14 +337,14 @@ _020BF3D4: add r1, r6, #0x4c mov r0, #0x1c mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BF3EC: cmp r4, #0x0 bne _020BF404 add r1, r6, #0x10 mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _020BF404: ldr r0, [r6, #0x0] ands r0, r0, #0x1 @@ -356,8 +353,7 @@ _020BF404: add r1, r6, #0x4 mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x10 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020BF2FC - + arm_func_end NNSi_G3dSendJointSRTSi3d diff --git a/arm9/asm/NNS_G3D_util.s b/arm9/asm/NNS_G3D_util.s index f6f204d48..932cf8717 100644 --- a/arm9/asm/NNS_G3D_util.s +++ b/arm9/asm/NNS_G3D_util.s @@ -3,15 +3,14 @@ .section .text - ; NNS_G3dWorldPosToScrPos - arm_func_start FUN_020BB408 -FUN_020BB408: ; 0x020BB408 + arm_func_start NNS_G3dWorldPosToScrPos +NNS_G3dWorldPosToScrPos: ; 0x020BB408 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x1c mov r5, r1 mov r4, r2 - ldr r6, _020BB594 ; =UNK_021CED20 - ldr r1, _020BB598 ; =UNK_021CED64 + ldr r6, _020BB594 ; =NNS_G3dGlb + 0x8 + ldr r1, _020BB598 ; =NNS_G3dGlb + 0x4C add r2, sp, #0x10 bl MTX_MultVec43 ldr r1, [sp, #0x14] @@ -87,7 +86,7 @@ _020BB534: add r1, sp, #0x4 add r2, sp, #0x8 add r3, sp, #0xc - bl FUN_020B8200 + bl NNS_G3dGlbGetViewPort ldr r2, [sp, #0x0] ldr r0, [sp, #0x8] ldr r12, [sp, #0xc] @@ -108,13 +107,12 @@ _020BB534: add sp, sp, #0x1c ldmia sp!, {r4-r9,pc} .balign 4 -_020BB594: .word UNK_021CED20 -_020BB598: .word UNK_021CED64 - arm_func_end FUN_020BB408 +_020BB594: .word NNS_G3dGlb + 0x8 +_020BB598: .word NNS_G3dGlb + 0x4C + arm_func_end NNS_G3dWorldPosToScrPos - ; NNS_G3dResDefaultSetup - arm_func_start FUN_020BB59C -FUN_020BB59C: ; 0x020BB59C + arm_func_start NNS_G3dResDefaultSetup +NNS_G3dResDefaultSetup: ; 0x020BB59C stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r5, r0 @@ -157,20 +155,20 @@ _020BB624: mov r0, r5 mov r9, r11 mov r8, r11 - bl FUN_020BC0FC + bl NNS_G3dGetTex movs r4, r0 beq _020BB77C - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize mov r7, r0 mov r0, r4 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize mov r6, r0 mov r0, r4 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize mov r10, r0 cmp r7, #0x0 beq _020BB68C - ldr r0, _020BB7E4 ; =UNK_021064B8 + ldr r0, _020BB7E4 ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x0 ldr r3, [r0, #0x0] mov r0, r7 @@ -184,7 +182,7 @@ _020BB68C: _020BB690: cmp r6, #0x0 beq _020BB6BC - ldr r1, _020BB7E4 ; =UNK_021064B8 + ldr r1, _020BB7E4 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, r6 ldr r3, [r1, #0x0] mov r1, #0x1 @@ -198,7 +196,7 @@ _020BB6BC: _020BB6C0: cmp r10, #0x0 beq _020BB6F0 - ldr r1, _020BB7E8 ; =UNK_021064C0 + ldr r1, _020BB7E8 ; =NNS_GfdDefaultFuncAllocPlttVram ldrh r2, [r4, #0x20] ldr r3, [r1, #0x0] mov r0, r10 @@ -218,15 +216,15 @@ _020BB6F4: cmp r8, #0x0 bne _020BB748 _020BB70C: - ldr r1, _020BB7EC ; =UNK_021064C4 + ldr r1, _020BB7EC ; =NNS_GfdDefaultFuncFreePlttVram mov r0, r10 ldr r1, [r1, #0x0] blx r1 - ldr r1, _020BB7F0 ; =UNK_021064BC + ldr r1, _020BB7F0 ; =NNS_GfdDefaultFuncFreeTexVram mov r0, r6 ldr r1, [r1, #0x0] blx r1 - ldr r1, _020BB7F0 ; =UNK_021064BC + ldr r1, _020BB7F0 ; =NNS_GfdDefaultFuncFreeTexVram mov r0, r7 ldr r1, [r1, #0x0] blx r1 @@ -237,27 +235,27 @@ _020BB748: mov r0, r4 mov r1, r7 mov r2, r6 - bl FUN_020B7DFC + bl NNS_G3dTexSetTexKey mov r0, r4 mov r1, r10 - bl FUN_020B7CDC + bl NNS_G3dPlttSetPlttKey mov r0, r4 mov r1, #0x1 - bl FUN_020B7D28 + bl NNS_G3dTexLoad mov r0, r4 mov r1, #0x1 - bl FUN_020B7C78 + bl NNS_G3dPlttLoad _020BB77C: ldr r1, [r5, #0x0] ldr r0, _020BB7DC ; =0x30444D42 cmp r1, r0 bne _020BB7A4 mov r0, r5 - bl FUN_020BC13C + bl NNS_G3dGetMdlSet cmp r4, #0x0 beq _020BB7A4 mov r1, r4 - bl FUN_020B7790 + bl NNS_G3dBindMdlSet _020BB7A4: add sp, sp, #0x4 mov r0, #0x1 @@ -278,19 +276,18 @@ _020BB7D4: .word 0x30415442 _020BB7D8: .word 0x30505442 _020BB7DC: .word 0x30444D42 _020BB7E0: .word 0x30585442 -_020BB7E4: .word UNK_021064B8 -_020BB7E8: .word UNK_021064C0 -_020BB7EC: .word UNK_021064C4 -_020BB7F0: .word UNK_021064BC - arm_func_end FUN_020BB59C +_020BB7E4: .word NNS_GfdDefaultFuncAllocTexVram +_020BB7E8: .word NNS_GfdDefaultFuncAllocPlttVram +_020BB7EC: .word NNS_GfdDefaultFuncFreePlttVram +_020BB7F0: .word NNS_GfdDefaultFuncFreeTexVram + arm_func_end NNS_G3dResDefaultSetup - ; NNS_G3dInit - arm_func_start FUN_020BB7F4 -FUN_020BB7F4: ; 0x020BB7F4 + arm_func_start NNS_G3dInit +NNS_G3dInit: ; 0x020BB7F4 stmdb sp!, {lr} sub sp, sp, #0x4 bl G3X_Init - bl FUN_020B84D8 + bl NNS_G3dGlbInit ldr r1, _020BB820 ; =0x04000600 ldr r0, [r1, #0x0] bic r0, r0, #0xc0000000 @@ -300,16 +297,15 @@ FUN_020BB7F4: ; 0x020BB7F4 ldmia sp!, {pc} .balign 4 _020BB820: .word 0x04000600 - arm_func_end FUN_020BB7F4 + arm_func_end NNS_G3dInit - ; NNS_G3dGetCurrentMtx - arm_func_start FUN_020BB824 -FUN_020BB824: ; 0x020BB824 + arm_func_start NNS_G3dGetCurrentMtx +NNS_G3dGetCurrentMtx: ; 0x020BB824 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x40 mov r6, r0 mov r5, r1 - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r0, _020BB8B4 ; =0x04000440 mov r2, #0x0 ldr r1, _020BB8B8 ; =0x04000444 @@ -350,5 +346,4 @@ _020BB8B4: .word 0x04000440 _020BB8B8: .word 0x04000444 _020BB8BC: .word 0x04000454 _020BB8C0: .word 0x04000448 - arm_func_end FUN_020BB824 - + arm_func_end NNS_G3dGetCurrentMtx diff --git a/arm9/asm/NNS_G3D_xsi.s b/arm9/asm/NNS_G3D_xsi.s index bc0315c13..637879263 100644 --- a/arm9/asm/NNS_G3D_xsi.s +++ b/arm9/asm/NNS_G3D_xsi.s @@ -3,23 +3,21 @@ .section .data - ; calcTexMtx_ - .global UNK_021067F0 -UNK_021067F0: ; 0x021067F0 - .word FUN_020BFFD4 - .word FUN_020BFEEC - .word FUN_020BFE68 - .word FUN_020BFE0C - .word FUN_020BFD38 - .word FUN_020BFC8C - .word FUN_020BFC4C - .word FUN_020BFC28 + .global calcTexMtx_ +calcTexMtx_: ; 0x021067F0 + .word texmtxCalc_flag_ + .word texmtxCalc_flagS_ + .word texmtxCalc_flagR_ + .word texmtxCalc_flagRS_ + .word texmtxCalc_flagT_ + .word texmtxCalc_flagTS_ + .word texmtxCalc_flagTR_ + .word texmtxCalc_flagTRS_ .section .text - ; NNSi_G3dSendTexSRTXsi - arm_func_start FUN_020BFA9C -FUN_020BFA9C: ; 0x020BFA9C + arm_func_start NNSi_G3dSendTexSRTXsi +NNSi_G3dSendTexSRTXsi: ; 0x020BFA9C stmdb sp!, {r4,lr} sub sp, sp, #0x50 mov r4, r0 @@ -63,7 +61,7 @@ FUN_020BFA9C: ; 0x020BFA9C ldrne r0, [r4, #0x28] strne r0, [r4, #0x24] ldr r1, [r4, #0x0] - ldr r0, _020BFC24 ; =UNK_021067F0 + ldr r0, _020BFC24 ; =calcTexMtx_ and r1, r1, #0x7 ldr r2, [r0, r1, lsl #0x2] add r0, sp, #0x8 @@ -115,18 +113,17 @@ _020BFC00: ldr r0, [sp, #0x0] add r1, r1, #0x4 mov r2, #0x12 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, sp, #0x50 ldmia sp!, {r4,pc} .balign 4 _020BFC1C: .word 0x00101610 _020BFC20: .word 0x00101810 -_020BFC24: .word UNK_021067F0 - arm_func_end FUN_020BFA9C +_020BFC24: .word calcTexMtx_ + arm_func_end NNSi_G3dSendTexSRTXsi - ; _end - arm_func_start FUN_020BFC28 -FUN_020BFC28: ; 0x020BFC28 + arm_func_start texmtxCalc_flagTRS_ +texmtxCalc_flagTRS_: ; 0x020BFC28 mov r2, #0x1000 str r2, [r0, #0x0] mov r1, #0x0 @@ -136,11 +133,10 @@ FUN_020BFC28: ; 0x020BFC28 str r1, [r0, #0x30] str r1, [r0, #0x34] bx lr - arm_func_end FUN_020BFC28 + arm_func_end texmtxCalc_flagTRS_ - ; _end - arm_func_start FUN_020BFC4C -FUN_020BFC4C: ; 0x020BFC4C + arm_func_start texmtxCalc_flagTR_ +texmtxCalc_flagTR_: ; 0x020BFC4C ldr r2, [r1, #0x18] mov r3, #0x0 str r2, [r0, #0x0] @@ -157,11 +153,10 @@ FUN_020BFC4C: ; 0x020BFC4C str r1, [r0, #0x34] str r3, [r0, #0x10] bx lr - arm_func_end FUN_020BFC4C + arm_func_end texmtxCalc_flagTR_ - ; _end - arm_func_start FUN_020BFC8C -FUN_020BFC8C: ; 0x020BFC8C + arm_func_start texmtxCalc_flagTS_ +texmtxCalc_flagTS_: ; 0x020BFC8C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -205,11 +200,10 @@ FUN_020BFC8C: ; 0x020BFC8C str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BFC8C + arm_func_end texmtxCalc_flagTS_ - ; _end - arm_func_start FUN_020BFD38 -FUN_020BFD38: ; 0x020BFD38 + arm_func_start texmtxCalc_flagT_ +texmtxCalc_flagT_: ; 0x020BFD38 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r9, r1 @@ -263,11 +257,10 @@ FUN_020BFD38: ; 0x020BFD38 str r0, [r10, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BFD38 + arm_func_end texmtxCalc_flagT_ - ; _end - arm_func_start FUN_020BFE0C -FUN_020BFE0C: ; 0x020BFE0C + arm_func_start texmtxCalc_flagRS_ +texmtxCalc_flagRS_: ; 0x020BFE0C stmdb sp!, {lr} sub sp, sp, #0x4 mov r2, #0x1000 @@ -291,11 +284,10 @@ FUN_020BFE0C: ; 0x020BFE0C str lr, [r0, #0x10] add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020BFE0C + arm_func_end texmtxCalc_flagRS_ - ; _end - arm_func_start FUN_020BFE68 -FUN_020BFE68: ; 0x020BFE68 + arm_func_start texmtxCalc_flagR_ +texmtxCalc_flagR_: ; 0x020BFE68 stmdb sp!, {r4,lr} ldr r3, [r1, #0x18] mov r2, #0x0 @@ -329,11 +321,10 @@ FUN_020BFE68: ; 0x020BFE68 str r1, [r0, #0x34] str r2, [r0, #0x10] ldmia sp!, {r4,pc} - arm_func_end FUN_020BFE68 + arm_func_end texmtxCalc_flagR_ - ; _end - arm_func_start FUN_020BFEEC -FUN_020BFEEC: ; 0x020BFEEC + arm_func_start texmtxCalc_flagS_ +texmtxCalc_flagS_: ; 0x020BFEEC stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r1 @@ -392,11 +383,10 @@ FUN_020BFEEC: ; 0x020BFEEC str r0, [r6, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - arm_func_end FUN_020BFEEC + arm_func_end texmtxCalc_flagS_ - ; _end - arm_func_start FUN_020BFFD4 -FUN_020BFFD4: ; 0x020BFFD4 + arm_func_start texmtxCalc_flag_ +texmtxCalc_flag_: ; 0x020BFFD4 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r6, r1 @@ -484,4 +474,4 @@ FUN_020BFFD4: ; 0x020BFFD4 str r0, [r7, #0x10] add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - arm_func_end FUN_020BFFD4 + arm_func_end texmtxCalc_flag_ diff --git a/arm9/asm/NNS_GFD_gfd_frameplttvr.s b/arm9/asm/NNS_GFD_gfd_frameplttvr.s index de838ccd7..63d32aec9 100644 --- a/arm9/asm/NNS_GFD_gfd_frameplttvr.s +++ b/arm9/asm/NNS_GFD_gfd_frameplttvr.s @@ -3,62 +3,56 @@ .section .bss - ; s_managerState_ - .global UNK_021CCD4C -UNK_021CCD4C: ; 0x021CCD4C + .global s_managerState_ +s_managerState_: ; 0x021CCD4C .space 0xc .section .text - ; NNS_GfdResetFrmPlttVramState - arm_func_start FUN_020AEC60 -FUN_020AEC60: ; 0x020AEC60 - ldr r0, _020AEC78 ; =UNK_021CCD4C + arm_func_start NNS_GfdResetFrmPlttVramState +NNS_GfdResetFrmPlttVramState: ; 0x020AEC60 + ldr r0, _020AEC78 ; =s_managerState_ mov r2, #0x0 ldr r1, [r0, #0x8] str r2, [r0, #0x0] str r1, [r0, #0x4] bx lr .balign 4 -_020AEC78: .word UNK_021CCD4C - arm_func_end FUN_020AEC60 +_020AEC78: .word s_managerState_ + arm_func_end NNS_GfdResetFrmPlttVramState - ; NNS_GfdSetFrmPlttVramState - arm_func_start FUN_020AEC7C -FUN_020AEC7C: ; 0x020AEC7C + arm_func_start NNS_GfdSetFrmPlttVramState +NNS_GfdSetFrmPlttVramState: ; 0x020AEC7C ldr r2, [r0, #0x0] - ldr r1, _020AEC94 ; =UNK_021CCD4C + ldr r1, _020AEC94 ; =s_managerState_ str r2, [r1, #0x0] ldr r0, [r0, #0x4] str r0, [r1, #0x4] bx lr .balign 4 -_020AEC94: .word UNK_021CCD4C - arm_func_end FUN_020AEC7C +_020AEC94: .word s_managerState_ + arm_func_end NNS_GfdSetFrmPlttVramState - ; NNS_GfdGetFrmPlttVramState - arm_func_start FUN_020AEC98 -FUN_020AEC98: ; 0x020AEC98 - ldr r1, _020AECB0 ; =UNK_021CCD4C + arm_func_start NNS_GfdGetFrmPlttVramState +NNS_GfdGetFrmPlttVramState: ; 0x020AEC98 + ldr r1, _020AECB0 ; =s_managerState_ ldr r2, [r1, #0x0] str r2, [r0, #0x0] ldr r1, [r1, #0x4] str r1, [r0, #0x4] bx lr .balign 4 -_020AECB0: .word UNK_021CCD4C - arm_func_end FUN_020AEC98 +_020AECB0: .word s_managerState_ + arm_func_end NNS_GfdGetFrmPlttVramState - ; _end - arm_func_start FUN_020AECB4 -FUN_020AECB4: ; 0x020AECB4 + arm_func_start NNS_GfdFreeFrmPlttVram +NNS_GfdFreeFrmPlttVram: ; 0x020AECB4 mov r0, #0x0 bx lr - arm_func_end FUN_020AECB4 + arm_func_end NNS_GfdFreeFrmPlttVram - ; NNS_GfdAllocFrmPlttVram - arm_func_start FUN_020AECBC -FUN_020AECBC: ; 0x020AECBC + arm_func_start NNS_GfdAllocFrmPlttVram +NNS_GfdAllocFrmPlttVram: ; 0x020AECBC stmdb sp!, {r4,lr} cmp r0, #0x0 moveq r0, #0x8 @@ -71,7 +65,7 @@ FUN_020AECBC: ; 0x020AECBC ldmcsia sp!, {r4,pc} cmp r2, #0x1 bne _020AED64 - ldr r2, _020AEDEC ; =UNK_021CCD4C + ldr r2, _020AEDEC ; =s_managerState_ cmp r1, #0x0 ldr r12, [r2, #0x0] andne r2, r12, #0x7 @@ -80,7 +74,7 @@ FUN_020AECBC: ; 0x020AECBC andeq r2, r12, #0xf rsbeq r2, r2, #0x10 andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =UNK_021CCD4C + ldr r2, _020AEDEC ; =s_managerState_ add lr, r0, r4 ldr r2, [r2, #0x4] sub r2, r2, r12 @@ -93,7 +87,7 @@ FUN_020AECBC: ; 0x020AECBC movhi r12, #0x0 bhi _020AEDCC _020AED40: - ldr r1, _020AEDEC ; =UNK_021CCD4C + ldr r1, _020AEDEC ; =s_managerState_ add r3, r12, r4 ldr r2, [r1, #0x0] mov r12, #0x1 @@ -104,7 +98,7 @@ _020AED5C: mov r12, #0x0 b _020AEDCC _020AED64: - ldr r2, _020AEDEC ; =UNK_021CCD4C + ldr r2, _020AEDEC ; =s_managerState_ ldr r12, [r2, #0x4] cmp r12, r0 blo _020AEDC8 @@ -112,7 +106,7 @@ _020AED64: cmp r1, #0x0 andne r4, r2, #0x7 andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =UNK_021CCD4C + ldr r2, _020AEDEC ; =s_managerState_ add lr, r0, r4 ldr r2, [r2, #0x0] sub r2, r12, r2 @@ -124,7 +118,7 @@ _020AED64: movhi r12, #0x0 bhi _020AEDCC _020AEDB0: - ldr r1, _020AEDEC ; =UNK_021CCD4C + ldr r1, _020AEDEC ; =s_managerState_ mov r12, #0x1 ldr r2, [r1, #0x4] sub r3, r2, lr @@ -142,32 +136,30 @@ _020AEDCC: ldmia sp!, {r4,pc} .balign 4 _020AEDE8: .word 0x0007FFF8 -_020AEDEC: .word UNK_021CCD4C +_020AEDEC: .word s_managerState_ _020AEDF0: .word 0x0000FFFF - arm_func_end FUN_020AECBC + arm_func_end NNS_GfdAllocFrmPlttVram - ; NNS_GfdInitFrmPlttVramManager - arm_func_start FUN_020AEDF4 -FUN_020AEDF4: ; 0x020AEDF4 + arm_func_start NNS_GfdInitFrmPlttVramManager +NNS_GfdInitFrmPlttVramManager: ; 0x020AEDF4 stmdb sp!, {r4,lr} - ldr r2, _020AEE2C ; =UNK_021CCD4C + ldr r2, _020AEE2C ; =s_managerState_ mov r4, r1 str r0, [r2, #0x8] - bl FUN_020AEC60 + bl NNS_GfdResetFrmPlttVramState cmp r4, #0x0 ldmeqia sp!, {r4,pc} - ldr r3, _020AEE30 ; =FUN_020AECBC - ldr r1, _020AEE34 ; =UNK_021064C0 - ldr r2, _020AEE38 ; =FUN_020AECB4 - ldr r0, _020AEE3C ; =UNK_021064C4 + ldr r3, _020AEE30 ; =NNS_GfdAllocFrmPlttVram + ldr r1, _020AEE34 ; =NNS_GfdDefaultFuncAllocPlttVram + ldr r2, _020AEE38 ; =NNS_GfdFreeFrmPlttVram + ldr r0, _020AEE3C ; =NNS_GfdDefaultFuncFreePlttVram str r3, [r1, #0x0] str r2, [r0, #0x0] ldmia sp!, {r4,pc} .balign 4 -_020AEE2C: .word UNK_021CCD4C -_020AEE30: .word FUN_020AECBC -_020AEE34: .word UNK_021064C0 -_020AEE38: .word FUN_020AECB4 -_020AEE3C: .word UNK_021064C4 - arm_func_end FUN_020AEDF4 - +_020AEE2C: .word s_managerState_ +_020AEE30: .word NNS_GfdAllocFrmPlttVram +_020AEE34: .word NNS_GfdDefaultFuncAllocPlttVram +_020AEE38: .word NNS_GfdFreeFrmPlttVram +_020AEE3C: .word NNS_GfdDefaultFuncFreePlttVram + arm_func_end NNS_GfdInitFrmPlttVramManager diff --git a/arm9/asm/NNS_GFD_gfd_frametexvra.s b/arm9/asm/NNS_GFD_gfd_frametexvra.s index 7d9f5874e..6cc4da870 100644 --- a/arm9/asm/NNS_GFD_gfd_frametexvra.s +++ b/arm9/asm/NNS_GFD_gfd_frametexvra.s @@ -3,67 +3,46 @@ .section .data - ; tex4x4SearchArray_ - .global UNK_021064C8 -UNK_021064C8: ; 0x021064C8 - .word UNK_021064E4 - .word UNK_0210652C + .global tex4x4SearchArray_ +tex4x4SearchArray_: ; 0x021064C8 + .word vramRegions_ + .word vramRegions_ + 0x48 - ; texNrmSearchArray_ - .global UNK_021064D0 -UNK_021064D0: ; 0x021064D0 - .word UNK_02106544 - .word UNK_0210652C - .word UNK_021064E4 - .word UNK_02106514 - .word UNK_021064FC + .global texNrmSearchArray_ +texNrmSearchArray_: ; 0x021064D0 + .word vramRegions_ + 0x60 + .word vramRegions_ + 0x48 + .word vramRegions_ + .word vramRegions_ + 0x30 + .word vramRegions_ + 0x18 - ; vramRegions_ - .global UNK_021064E4 -UNK_021064E4: ; 0x021064E4 + .global vramRegions_ +vramRegions_: ; 0x021064E4 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 - - ; vramRegions_ + 0x18 - .global UNK_021064FC -UNK_021064FC: ; 0x021064FC .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x02, 0x00 - - ; vramRegions_ + 0x30 - .global UNK_02106514 -UNK_02106514: ; 0x02106514 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x02, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x03, 0x00 - - ; vramRegions_ + 0x48 - .global UNK_0210652C -UNK_0210652C: ; 0x0210652C .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x04, 0x00 - - ; vramRegions_ + 0x60 - .global UNK_02106544 -UNK_02106544: ; 0x02106544 .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x06, 0x00 .section .bss - ; frmExVramMan_ - .global UNK_021CCD48 -UNK_021CCD48: ; 0x021CCD48 + .global frmExVramMan_ +frmExVramMan_: ; 0x021CCD48 .space 0x4 .section .text - ; NNS_GfdSetFrmTexVramState - arm_func_start FUN_020AE8CC -FUN_020AE8CC: ; 0x020AE8CC + arm_func_start NNS_GfdSetFrmTexVramState +NNS_GfdSetFrmTexVramState: ; 0x020AE8CC stmdb sp!, {lr} sub sp, sp, #0x4 mov lr, #0x0 - ldr r3, _020AE914 ; =UNK_021064E4 + ldr r3, _020AE914 ; =vramRegions_ mov r12, lr mov r2, #0x1 _020AE8E4: @@ -80,16 +59,15 @@ _020AE8E4: add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020AE914: .word UNK_021064E4 - arm_func_end FUN_020AE8CC +_020AE914: .word vramRegions_ + arm_func_end NNS_GfdSetFrmTexVramState - ; NNS_GfdGetFrmTexVramState - arm_func_start FUN_020AE918 -FUN_020AE918: ; 0x020AE918 + arm_func_start NNS_GfdGetFrmTexVramState +NNS_GfdGetFrmTexVramState: ; 0x020AE918 stmdb sp!, {lr} sub sp, sp, #0x4 mov lr, #0x0 - ldr ip, _020AE960 ; =UNK_021064E4 + ldr ip, _020AE960 ; =vramRegions_ mov r3, lr mov r2, #0x1 _020AE930: @@ -106,19 +84,17 @@ _020AE930: add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020AE960: .word UNK_021064E4 - arm_func_end FUN_020AE918 +_020AE960: .word vramRegions_ + arm_func_end NNS_GfdGetFrmTexVramState - ; _end - arm_func_start FUN_020AE964 -FUN_020AE964: ; 0x020AE964 + arm_func_start NNS_GfdFreeFrmTexVram +NNS_GfdFreeFrmTexVram: ; 0x020AE964 mov r0, #0x0 bx lr - arm_func_end FUN_020AE964 + arm_func_end NNS_GfdFreeFrmTexVram - ; NNS_GfdAllocFrmTexVram - arm_func_start FUN_020AE96C -FUN_020AE96C: ; 0x020AE96C + arm_func_start NNS_GfdAllocFrmTexVram +NNS_GfdAllocFrmTexVram: ; 0x020AE96C stmdb sp!, {r4-r10,lr} cmp r0, #0x0 moveq r7, #0x10 @@ -132,9 +108,9 @@ FUN_020AE96C: ; 0x020AE96C beq _020AEA5C mov lr, r7, lsr #0x1 mov r6, #0x0 - ldr r2, _020AEAE0 ; =UNK_02106514 - ldr r3, _020AEAE4 ; =UNK_021064FC - ldr ip, _020AEAE8 ; =UNK_021064C8 + ldr r2, _020AEAE0 ; =vramRegions_ + 0x30 + ldr r3, _020AEAE4 ; =vramRegions_ + 0x18 + ldr ip, _020AEAE8 ; =tex4x4SearchArray_ mov r0, r6 _020AE9B0: ldr r5, [r12, r6, lsl #0x2] @@ -186,7 +162,7 @@ _020AEA48: mov r0, #0x0 b _020AEAB8 _020AEA5C: - ldr r3, _020AEAEC ; =UNK_021064D0 + ldr r3, _020AEAEC ; =texNrmSearchArray_ mov r5, #0x0 _020AEA64: ldr r4, [r3, r5, lsl #0x2] @@ -223,22 +199,21 @@ _020AEAB8: ldmia sp!, {r4-r10,pc} .balign 4 _020AEADC: .word 0x0007FFF0 -_020AEAE0: .word UNK_02106514 -_020AEAE4: .word UNK_021064FC -_020AEAE8: .word UNK_021064C8 -_020AEAEC: .word UNK_021064D0 +_020AEAE0: .word vramRegions_ + 0x30 +_020AEAE4: .word vramRegions_ + 0x18 +_020AEAE8: .word tex4x4SearchArray_ +_020AEAEC: .word texNrmSearchArray_ _020AEAF0: .word 0x0000FFFF - arm_func_end FUN_020AE96C + arm_func_end NNS_GfdAllocFrmTexVram - ; NNS_GfdResetFrmTexVramState - arm_func_start FUN_020AEAF4 -FUN_020AEAF4: ; 0x020AEAF4 + arm_func_start NNS_GfdResetFrmTexVramState +NNS_GfdResetFrmTexVramState: ; 0x020AEAF4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr r0, _020AEB68 ; =UNK_021CCD48 + ldr r0, _020AEB68 ; =frmExVramMan_ mov r6, #0x0 ldrh r7, [r0, #0x0] - ldr r5, _020AEB6C ; =UNK_021064E4 + ldr r5, _020AEB6C ; =vramRegions_ mov lr, r6 cmp r7, #0x1 addhi r7, r7, #0x1 @@ -264,13 +239,12 @@ _020AEB2C: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020AEB68: .word UNK_021CCD48 -_020AEB6C: .word UNK_021064E4 - arm_func_end FUN_020AEAF4 +_020AEB68: .word frmExVramMan_ +_020AEB6C: .word vramRegions_ + arm_func_end NNS_GfdResetFrmTexVramState - ; NNS_GfdInitFrmTexVramManager - arm_func_start FUN_020AEB70 -FUN_020AEB70: ; 0x020AEB70 + arm_func_start NNS_GfdInitFrmTexVramManager +NNS_GfdInitFrmTexVramManager: ; 0x020AEB70 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -283,7 +257,7 @@ FUN_020AEB70: ; 0x020AEB70 mov r2, #0x2 mov r3, #0x0 str r12, [sp, #0x0] - bl FUN_020AEC10 + bl NNSi_GfdSetTexNrmSearchArray b _020AEBC4 _020AEBA8: mov r12, #0x1 @@ -292,40 +266,39 @@ _020AEBA8: mov r2, #0x0 mov r3, #0x2 str r12, [sp, #0x0] - bl FUN_020AEC10 + bl NNSi_GfdSetTexNrmSearchArray _020AEBC4: - ldr r0, _020AEBFC ; =UNK_021CCD48 + ldr r0, _020AEBFC ; =frmExVramMan_ strh r5, [r0, #0x0] - bl FUN_020AEAF4 + bl NNS_GfdResetFrmTexVramState cmp r4, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {r4-r5,pc} - ldr r3, _020AEC00 ; =FUN_020AE96C - ldr r1, _020AEC04 ; =UNK_021064B8 - ldr r2, _020AEC08 ; =FUN_020AE964 - ldr r0, _020AEC0C ; =UNK_021064BC + ldr r3, _020AEC00 ; =NNS_GfdAllocFrmTexVram + ldr r1, _020AEC04 ; =NNS_GfdDefaultFuncAllocTexVram + ldr r2, _020AEC08 ; =NNS_GfdFreeFrmTexVram + ldr r0, _020AEC0C ; =NNS_GfdDefaultFuncFreeTexVram str r3, [r1, #0x0] str r2, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020AEBFC: .word UNK_021CCD48 -_020AEC00: .word FUN_020AE96C -_020AEC04: .word UNK_021064B8 -_020AEC08: .word FUN_020AE964 -_020AEC0C: .word UNK_021064BC - arm_func_end FUN_020AEB70 +_020AEBFC: .word frmExVramMan_ +_020AEC00: .word NNS_GfdAllocFrmTexVram +_020AEC04: .word NNS_GfdDefaultFuncAllocTexVram +_020AEC08: .word NNS_GfdFreeFrmTexVram +_020AEC0C: .word NNS_GfdDefaultFuncFreeTexVram + arm_func_end NNS_GfdInitFrmTexVramManager - ; NNSi_GfdSetTexNrmSearchArray - arm_func_start FUN_020AEC10 -FUN_020AEC10: ; 0x020AEC10 + arm_func_start NNSi_GfdSetTexNrmSearchArray +NNSi_GfdSetTexNrmSearchArray: ; 0x020AEC10 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 ldr lr, [sp, #0x18] - ldr r6, _020AEC58 ; =UNK_021064E4 + ldr r6, _020AEC58 ; =vramRegions_ mov r12, #0x18 mla r7, r0, r12, r6 - ldr r0, _020AEC5C ; =UNK_021064D0 + ldr r0, _020AEC5C ; =texNrmSearchArray_ mla r5, r1, r12, r6 mla r4, r2, r12, r6 mla r2, r3, r12, r6 @@ -338,7 +311,6 @@ FUN_020AEC10: ; 0x020AEC10 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020AEC58: .word UNK_021064E4 -_020AEC5C: .word UNK_021064D0 - arm_func_end FUN_020AEC10 - +_020AEC58: .word vramRegions_ +_020AEC5C: .word texNrmSearchArray_ + arm_func_end NNSi_GfdSetTexNrmSearchArray diff --git a/arm9/asm/NNS_GFD_gfd_linkedlistp.s b/arm9/asm/NNS_GFD_gfd_linkedlistp.s index 4ef85974b..dd1af2f99 100644 --- a/arm9/asm/NNS_GFD_gfd_linkedlistp.s +++ b/arm9/asm/NNS_GFD_gfd_linkedlistp.s @@ -3,47 +3,38 @@ .section .bss - ; mgr_ - .global UNK_021CCD88 -UNK_021CCD88: ; 0x021CCD88 - .space 0x4 - - ; mgr_ + 0x4 - .global UNK_021CCD8C -UNK_021CCD8C: ; 0x021CCD8C - .space 0x10 +mgr_: ; 0x021CCD88 + .space 0x14 .section .text - ; NNS_GfdResetLnkPlttVramState - arm_func_start FUN_020AFA30 -FUN_020AFA30: ; 0x020AFA30 + arm_func_start NNS_GfdResetLnkPlttVramState +NNS_GfdResetLnkPlttVramState: ; 0x020AFA30 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020AFA78 ; =UNK_021CCD88 + ldr r0, _020AFA78 ; =mgr_ ldr r1, [r0, #0x10] ldr r0, [r0, #0xc] mov r1, r1, lsr #0x4 - bl FUN_020AF64C - ldr r1, _020AFA78 ; =UNK_021CCD88 + bl NNSi_GfdInitLnkVramBlockPool + ldr r1, _020AFA78 ; =mgr_ str r0, [r1, #0x4] mov r0, r1 - bl FUN_020AF698 - ldr r0, _020AFA78 ; =UNK_021CCD88 - ldr r1, _020AFA7C ; =UNK_021CCD8C + bl NNSi_GfdInitLnkVramMan + ldr r0, _020AFA78 ; =mgr_ + ldr r1, _020AFA7C ; =mgr_ + 0x4 ldr r3, [r0, #0x8] mov r2, #0x0 - bl FUN_020AF5E0 + bl NNSi_GfdAddNewFreeBlock add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020AFA78: .word UNK_021CCD88 -_020AFA7C: .word UNK_021CCD8C - arm_func_end FUN_020AFA30 +_020AFA78: .word mgr_ +_020AFA7C: .word mgr_ + 0x4 + arm_func_end NNS_GfdResetLnkPlttVramState - ; NNS_GfdFreeLnkPlttVram - arm_func_start FUN_020AFA80 -FUN_020AFA80: ; 0x020AFA80 + arm_func_start NNS_GfdFreeLnkPlttVram +NNS_GfdFreeLnkPlttVram: ; 0x020AFA80 stmdb sp!, {lr} sub sp, sp, #0x4 mov r1, #0x10000 @@ -52,11 +43,11 @@ FUN_020AFA80: ; 0x020AFA80 and r2, r0, r2 and r12, r0, r1 mov r3, r2, lsr #0x10 - ldr r0, _020AFACC ; =UNK_021CCD88 - ldr r1, _020AFAD0 ; =UNK_021CCD8C + ldr r0, _020AFACC ; =mgr_ + ldr r1, _020AFAD0 ; =mgr_ + 0x4 mov r2, r12, lsl #0x3 mov r3, r3, lsl #0x3 - bl FUN_020AF334 + bl NNSi_GfdFreeLnkVram cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 @@ -64,13 +55,12 @@ FUN_020AFA80: ; 0x020AFA80 ldmia sp!, {pc} .balign 4 _020AFAC8: .word 0x0000FFFF -_020AFACC: .word UNK_021CCD88 -_020AFAD0: .word UNK_021CCD8C - arm_func_end FUN_020AFA80 +_020AFACC: .word mgr_ +_020AFAD0: .word mgr_ + 0x4 + arm_func_end NNS_GfdFreeLnkPlttVram - ; NNS_GfdAllocLnkPlttVram - arm_func_start FUN_020AFAD4 -FUN_020AFAD4: ; 0x020AFAD4 + arm_func_start NNS_GfdAllocLnkPlttVram +NNS_GfdAllocLnkPlttVram: ; 0x020AFAD4 stmdb sp!, {r4,lr} sub sp, sp, #0x8 cmp r0, #0x0 @@ -85,31 +75,31 @@ FUN_020AFAD4: ; 0x020AFAD4 cmp r1, #0x0 beq _020AFB50 mov r12, #0x8 - ldr r0, _020AFB9C ; =UNK_021CCD88 - ldr r1, _020AFBA0 ; =UNK_021CCD8C + ldr r0, _020AFB9C ; =mgr_ + ldr r1, _020AFBA0 ; =mgr_ + 0x4 add r2, sp, #0x4 mov r3, r4 str r12, [sp, #0x0] - bl FUN_020AF488 + bl NNSi_GfdAllocLnkVramAligned ldr r2, [sp, #0x4] add r1, r2, r4 cmp r1, #0x10000 bls _020AFB6C - ldr r0, _020AFB9C ; =UNK_021CCD88 - ldr r1, _020AFBA0 ; =UNK_021CCD8C + ldr r0, _020AFB9C ; =mgr_ + ldr r1, _020AFBA0 ; =mgr_ + 0x4 mov r3, r4 - bl FUN_020AF334 + bl NNSi_GfdFreeLnkVram add sp, sp, #0x8 mov r0, #0x0 ldmia sp!, {r4,pc} _020AFB50: - ldr r0, _020AFB9C ; =UNK_021CCD88 + ldr r0, _020AFB9C ; =mgr_ mov r12, #0x10 - ldr r1, _020AFBA0 ; =UNK_021CCD8C + ldr r1, _020AFBA0 ; =mgr_ + 0x4 add r2, sp, #0x4 mov r3, r4 str r12, [sp, #0x0] - bl FUN_020AF488 + bl NNSi_GfdAllocLnkVramAligned _020AFB6C: cmp r0, #0x0 addeq sp, sp, #0x8 @@ -124,42 +114,39 @@ _020AFB6C: ldmia sp!, {r4,pc} .balign 4 _020AFB98: .word 0x0007FFF8 -_020AFB9C: .word UNK_021CCD88 -_020AFBA0: .word UNK_021CCD8C +_020AFB9C: .word mgr_ +_020AFBA0: .word mgr_ + 0x4 _020AFBA4: .word 0x0000FFFF - arm_func_end FUN_020AFAD4 + arm_func_end NNS_GfdAllocLnkPlttVram - ; NNS_GfdInitLnkPlttVramManager - arm_func_start FUN_020AFBA8 -FUN_020AFBA8: ; 0x020AFBA8 + arm_func_start NNS_GfdInitLnkPlttVramManager +NNS_GfdInitLnkPlttVramManager: ; 0x020AFBA8 stmdb sp!, {r4,lr} - ldr ip, _020AFBE8 ; =UNK_021CCD88 + ldr ip, _020AFBE8 ; =mgr_ mov r4, r3 str r0, [r12, #0x8] str r1, [r12, #0xc] str r2, [r12, #0x10] - bl FUN_020AFA30 + bl NNS_GfdResetLnkPlttVramState cmp r4, #0x0 ldmeqia sp!, {r4,pc} - ldr r3, _020AFBEC ; =FUN_020AFAD4 - ldr r1, _020AFBF0 ; =UNK_021064C0 - ldr r2, _020AFBF4 ; =FUN_020AFA80 - ldr r0, _020AFBF8 ; =UNK_021064C4 + ldr r3, _020AFBEC ; =NNS_GfdAllocLnkPlttVram + ldr r1, _020AFBF0 ; =NNS_GfdDefaultFuncAllocPlttVram + ldr r2, _020AFBF4 ; =NNS_GfdFreeLnkPlttVram + ldr r0, _020AFBF8 ; =NNS_GfdDefaultFuncFreePlttVram str r3, [r1, #0x0] str r2, [r0, #0x0] ldmia sp!, {r4,pc} .balign 4 -_020AFBE8: .word UNK_021CCD88 -_020AFBEC: .word FUN_020AFAD4 -_020AFBF0: .word UNK_021064C0 -_020AFBF4: .word FUN_020AFA80 -_020AFBF8: .word UNK_021064C4 - arm_func_end FUN_020AFBA8 +_020AFBE8: .word mgr_ +_020AFBEC: .word NNS_GfdAllocLnkPlttVram +_020AFBF0: .word NNS_GfdDefaultFuncAllocPlttVram +_020AFBF4: .word NNS_GfdFreeLnkPlttVram +_020AFBF8: .word NNS_GfdDefaultFuncFreePlttVram + arm_func_end NNS_GfdInitLnkPlttVramManager - ; _end - arm_func_start FUN_020AFBFC -FUN_020AFBFC: ; 0x020AFBFC + arm_func_start NNS_GfdGetLnkPlttVramManagerWorkSize +NNS_GfdGetLnkPlttVramManagerWorkSize: ; 0x020AFBFC mov r0, r0, lsl #0x4 bx lr - arm_func_end FUN_020AFBFC - + arm_func_end NNS_GfdGetLnkPlttVramManagerWorkSize diff --git a/arm9/asm/NNS_GFD_gfd_linkedlistt.s b/arm9/asm/NNS_GFD_gfd_linkedlistt.s index 1c611a0ed..6522bf3b4 100644 --- a/arm9/asm/NNS_GFD_gfd_linkedlistt.s +++ b/arm9/asm/NNS_GFD_gfd_linkedlistt.s @@ -3,45 +3,31 @@ .section .rodata - ; @7929 - .global UNK_020FF864 -UNK_020FF864: ; 0x020FF864 + .global __LOCAL_LABEL__$7929 +__LOCAL_LABEL__$7929: ; 0x020FF864 .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .section .bss - ; mgr_ - .global UNK_021CCD6C -UNK_021CCD6C: ; 0x021CCD6C - .space 0x4 - - ; mgr_ + 0x4 - .global UNK_021CCD70 -UNK_021CCD70: ; 0x021CCD70 - .space 0x4 - - ; mgr_ + 0x8 - .global UNK_021CCD74 -UNK_021CCD74: ; 0x021CCD74 - .space 0x14 +mgr_: ; 0x021CCD6C + .space 0x1C .section .text - ; NNS_GfdResetLnkTexVramState - arm_func_start FUN_020AF6A4 -FUN_020AF6A4: ; 0x020AF6A4 + arm_func_start NNS_GfdResetLnkTexVramState +NNS_GfdResetLnkTexVramState: ; 0x020AF6A4 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x30 - ldr r6, _020AF884 ; =UNK_020FF864 + ldr r6, _020AF884 ; =__LOCAL_LABEL__$7929 add r5, sp, #0x0 ldmia r6!, {r0-r3} mov r12, r5 stmia r5!, {r0-r3} ldmia r6!, {r0-r3} stmia r5!, {r0-r3} - ldr r4, _020AF888 ; =UNK_021CCD6C + ldr r4, _020AF888 ; =mgr_ ldmia r6, {r0-r3} stmia r5, {r0-r3} ldr lr, [r4, #0x10] @@ -100,78 +86,77 @@ _020AF790: cmp r3, #0x4 add r5, r5, #0xc blo _020AF758 - ldr r0, _020AF888 ; =UNK_021CCD6C - bl FUN_020AF698 - ldr r0, _020AF88C ; =UNK_021CCD70 - bl FUN_020AF698 - ldr r0, _020AF888 ; =UNK_021CCD6C + ldr r0, _020AF888 ; =mgr_ + bl NNSi_GfdInitLnkVramMan + ldr r0, _020AF88C ; =mgr_ + 0x4 + bl NNSi_GfdInitLnkVramMan + ldr r0, _020AF888 ; =mgr_ ldr r1, [r0, #0x18] ldr r0, [r0, #0x14] mov r1, r1, lsr #0x4 - bl FUN_020AF64C + bl NNSi_GfdInitLnkVramBlockPool ldr r3, [sp, #0x8] - ldr r1, _020AF888 ; =UNK_021CCD6C + ldr r1, _020AF888 ; =mgr_ cmp r3, #0x0 str r0, [r1, #0x8] beq _020AF7E8 - ldr r0, _020AF88C ; =UNK_021CCD70 - ldr r1, _020AF890 ; =UNK_021CCD74 + ldr r0, _020AF88C ; =mgr_ + 0x4 + ldr r1, _020AF890 ; =mgr_ + 0x8 mov r2, #0x0 - bl FUN_020AF5E0 + bl NNSi_GfdAddNewFreeBlock _020AF7E8: ldr r3, [sp, #0x4] ldr r2, [sp, #0x8] cmp r3, #0x0 beq _020AF804 - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - bl FUN_020AF5E0 + ldr r0, _020AF888 ; =mgr_ + ldr r1, _020AF890 ; =mgr_ + 0x8 + bl NNSi_GfdAddNewFreeBlock _020AF804: ldr r3, [sp, #0x20] cmp r3, #0x0 beq _020AF820 - ldr r0, _020AF88C ; =UNK_021CCD70 - ldr r1, _020AF890 ; =UNK_021CCD74 + ldr r0, _020AF88C ; =mgr_ + 0x4 + ldr r1, _020AF890 ; =mgr_ + 0x8 mov r2, #0x40000 - bl FUN_020AF5E0 + bl NNSi_GfdAddNewFreeBlock _020AF820: ldr r3, [sp, #0x1c] ldr r0, [sp, #0x20] cmp r3, #0x0 add r2, r0, #0x40000 beq _020AF840 - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 - bl FUN_020AF5E0 + ldr r0, _020AF888 ; =mgr_ + ldr r1, _020AF890 ; =mgr_ + 0x8 + bl NNSi_GfdAddNewFreeBlock _020AF840: ldr r3, [sp, #0x28] cmp r3, #0x0 beq _020AF85C - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 + ldr r0, _020AF888 ; =mgr_ + ldr r1, _020AF890 ; =mgr_ + 0x8 mov r2, #0x60000 - bl FUN_020AF5E0 + bl NNSi_GfdAddNewFreeBlock _020AF85C: ldr r3, [sp, #0x10] cmp r3, #0x0 addeq sp, sp, #0x30 ldmeqia sp!, {r4-r6,pc} - ldr r0, _020AF888 ; =UNK_021CCD6C - ldr r1, _020AF890 ; =UNK_021CCD74 + ldr r0, _020AF888 ; =mgr_ + ldr r1, _020AF890 ; =mgr_ + 0x8 add r2, r4, #0x20000 - bl FUN_020AF5E0 + bl NNSi_GfdAddNewFreeBlock add sp, sp, #0x30 ldmia sp!, {r4-r6,pc} .balign 4 -_020AF884: .word UNK_020FF864 -_020AF888: .word UNK_021CCD6C -_020AF88C: .word UNK_021CCD70 -_020AF890: .word UNK_021CCD74 - arm_func_end FUN_020AF6A4 +_020AF884: .word __LOCAL_LABEL__$7929 +_020AF888: .word mgr_ +_020AF88C: .word mgr_ + 0x4 +_020AF890: .word mgr_ + 0x8 + arm_func_end NNS_GfdResetLnkTexVramState - ; NNS_GfdFreeLnkTexVram - arm_func_start FUN_020AF894 -FUN_020AF894: ; 0x020AF894 + arm_func_start NNS_GfdFreeLnkTexVram +NNS_GfdFreeLnkTexVram: ; 0x020AF894 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, _020AF908 ; =0x7FFF0000 @@ -186,14 +171,14 @@ FUN_020AF894: ; 0x020AF894 beq _020AF8FC cmp r0, #0x0 beq _020AF8DC - ldr r0, _020AF910 ; =UNK_021CCD70 - ldr r1, _020AF914 ; =UNK_021CCD74 - bl FUN_020AF334 + ldr r0, _020AF910 ; =mgr_ + 0x4 + ldr r1, _020AF914 ; =mgr_ + 0x8 + bl NNSi_GfdFreeLnkVram b _020AF8E8 _020AF8DC: - ldr r0, _020AF918 ; =UNK_021CCD6C - ldr r1, _020AF914 ; =UNK_021CCD74 - bl FUN_020AF334 + ldr r0, _020AF918 ; =mgr_ + ldr r1, _020AF914 ; =mgr_ + 0x8 + bl NNSi_GfdFreeLnkVram _020AF8E8: cmp r0, #0x0 movne r0, #0x0 @@ -207,14 +192,13 @@ _020AF8FC: .balign 4 _020AF908: .word 0x7FFF0000 _020AF90C: .word 0x0000FFFF -_020AF910: .word UNK_021CCD70 -_020AF914: .word UNK_021CCD74 -_020AF918: .word UNK_021CCD6C - arm_func_end FUN_020AF894 +_020AF910: .word mgr_ + 0x4 +_020AF914: .word mgr_ + 0x8 +_020AF918: .word mgr_ + arm_func_end NNS_GfdFreeLnkTexVram - ; NNS_GfdAllocLnkTexVram - arm_func_start FUN_020AF91C -FUN_020AF91C: ; 0x020AF91C + arm_func_start NNS_GfdAllocLnkTexVram +NNS_GfdAllocLnkTexVram: ; 0x020AF91C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 cmp r0, #0x0 @@ -229,18 +213,18 @@ FUN_020AF91C: ; 0x020AF91C ldmcsia sp!, {r4-r5,pc} cmp r4, #0x0 beq _020AF96C - ldr r0, _020AF9B4 ; =UNK_021CCD70 - ldr r1, _020AF9B8 ; =UNK_021CCD74 + ldr r0, _020AF9B4 ; =mgr_ + 0x4 + ldr r1, _020AF9B8 ; =mgr_ + 0x8 add r2, sp, #0x0 mov r3, r5 - bl FUN_020AF5C4 + bl NNSi_GfdAllocLnkVram b _020AF980 _020AF96C: - ldr r0, _020AF9BC ; =UNK_021CCD6C - ldr r1, _020AF9B8 ; =UNK_021CCD74 + ldr r0, _020AF9BC ; =mgr_ + ldr r1, _020AF9B8 ; =mgr_ + 0x8 add r2, sp, #0x0 mov r3, r5 - bl FUN_020AF5C4 + bl NNSi_GfdAllocLnkVram _020AF980: cmp r0, #0x0 addeq sp, sp, #0x4 @@ -256,47 +240,44 @@ _020AF980: ldmia sp!, {r4-r5,pc} .balign 4 _020AF9B0: .word 0x0007FFF0 -_020AF9B4: .word UNK_021CCD70 -_020AF9B8: .word UNK_021CCD74 -_020AF9BC: .word UNK_021CCD6C +_020AF9B4: .word mgr_ + 0x4 +_020AF9B8: .word mgr_ + 0x8 +_020AF9BC: .word mgr_ _020AF9C0: .word 0x0000FFFF - arm_func_end FUN_020AF91C + arm_func_end NNS_GfdAllocLnkTexVram - ; NNS_GfdInitLnkTexVramManager - arm_func_start FUN_020AF9C4 -FUN_020AF9C4: ; 0x020AF9C4 + arm_func_start NNS_GfdInitLnkTexVramManager +NNS_GfdInitLnkTexVramManager: ; 0x020AF9C4 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr ip, _020AFA14 ; =UNK_021CCD6C + ldr ip, _020AFA14 ; =mgr_ str r0, [r12, #0xc] str r1, [r12, #0x10] str r2, [r12, #0x14] str r3, [r12, #0x18] - bl FUN_020AF6A4 + bl NNS_GfdResetLnkTexVramState ldr r0, [sp, #0x8] cmp r0, #0x0 addeq sp, sp, #0x4 ldmeqia sp!, {pc} - ldr r3, _020AFA18 ; =FUN_020AF91C - ldr r1, _020AFA1C ; =UNK_021064B8 - ldr r2, _020AFA20 ; =FUN_020AF894 - ldr r0, _020AFA24 ; =UNK_021064BC + ldr r3, _020AFA18 ; =NNS_GfdAllocLnkTexVram + ldr r1, _020AFA1C ; =NNS_GfdDefaultFuncAllocTexVram + ldr r2, _020AFA20 ; =NNS_GfdFreeLnkTexVram + ldr r0, _020AFA24 ; =NNS_GfdDefaultFuncFreeTexVram str r3, [r1, #0x0] str r2, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020AFA14: .word UNK_021CCD6C -_020AFA18: .word FUN_020AF91C -_020AFA1C: .word UNK_021064B8 -_020AFA20: .word FUN_020AF894 -_020AFA24: .word UNK_021064BC - arm_func_end FUN_020AF9C4 +_020AFA14: .word mgr_ +_020AFA18: .word NNS_GfdAllocLnkTexVram +_020AFA1C: .word NNS_GfdDefaultFuncAllocTexVram +_020AFA20: .word NNS_GfdFreeLnkTexVram +_020AFA24: .word NNS_GfdDefaultFuncFreeTexVram + arm_func_end NNS_GfdInitLnkTexVramManager - ; _end - arm_func_start FUN_020AFA28 -FUN_020AFA28: ; 0x020AFA28 + arm_func_start NNS_GfdGetLnkTexVramManagerWorkSize +NNS_GfdGetLnkTexVramManagerWorkSize: ; 0x020AFA28 mov r0, r0, lsl #0x4 bx lr - arm_func_end FUN_020AFA28 - + arm_func_end NNS_GfdGetLnkTexVramManagerWorkSize diff --git a/arm9/asm/NNS_GFD_gfd_plttvramman.s b/arm9/asm/NNS_GFD_gfd_plttvramman.s index d1a9c3cc0..c869a9a18 100644 --- a/arm9/asm/NNS_GFD_gfd_plttvramman.s +++ b/arm9/asm/NNS_GFD_gfd_plttvramman.s @@ -3,29 +3,24 @@ .section .data - ; NNS_GfdDefaultFuncAllocPlttVram - .global UNK_021064C0 -UNK_021064C0: ; 0x021064C0 - .word FUN_020AE8C4 + .global NNS_GfdDefaultFuncAllocPlttVram +NNS_GfdDefaultFuncAllocPlttVram: ; 0x021064C0 + .word AllocPlttVram_ - ; NNS_GfdDefaultFuncFreePlttVram - .global UNK_021064C4 -UNK_021064C4: ; 0x021064C4 - .word FUN_020AE8BC + .global NNS_GfdDefaultFuncFreePlttVram +NNS_GfdDefaultFuncFreePlttVram: ; 0x021064C4 + .word FreePlttVram_ .section .text - ; _end - arm_func_start FUN_020AE8BC -FUN_020AE8BC: ; 0x020AE8BC + arm_func_start FreePlttVram_ +FreePlttVram_: ; 0x020AE8BC mvn r0, #0x0 bx lr - arm_func_end FUN_020AE8BC + arm_func_end FreePlttVram_ - ; _end - arm_func_start FUN_020AE8C4 -FUN_020AE8C4: ; 0x020AE8C4 + arm_func_start AllocPlttVram_ +AllocPlttVram_: ; 0x020AE8C4 mov r0, #0x0 bx lr - arm_func_end FUN_020AE8C4 - + arm_func_end AllocPlttVram_ diff --git a/arm9/asm/NNS_GFD_gfd_texvramman.s b/arm9/asm/NNS_GFD_gfd_texvramman.s index e647619d3..d2f6c88fd 100644 --- a/arm9/asm/NNS_GFD_gfd_texvramman.s +++ b/arm9/asm/NNS_GFD_gfd_texvramman.s @@ -3,29 +3,24 @@ .section .data - ; NNS_GfdDefaultFuncAllocTexVram - .global UNK_021064B8 -UNK_021064B8: ; 0x021064B8 - .word FUN_020AE8B4 + .global NNS_GfdDefaultFuncAllocTexVram +NNS_GfdDefaultFuncAllocTexVram: ; 0x021064B8 + .word AllocTexVram_ - ; NNS_GfdDefaultFuncFreeTexVram - .global UNK_021064BC -UNK_021064BC: ; 0x021064BC - .word FUN_020AE8AC + .global NNS_GfdDefaultFuncFreeTexVram +NNS_GfdDefaultFuncFreeTexVram: ; 0x021064BC + .word FreeTexVram_ .section .text - ; _end - arm_func_start FUN_020AE8AC -FUN_020AE8AC: ; 0x020AE8AC + arm_func_start FreeTexVram_ +FreeTexVram_: ; 0x020AE8AC mvn r0, #0x0 bx lr - arm_func_end FUN_020AE8AC + arm_func_end FreeTexVram_ - ; _end - arm_func_start FUN_020AE8B4 -FUN_020AE8B4: ; 0x020AE8B4 + arm_func_start AllocTexVram_ +AllocTexVram_: ; 0x020AE8B4 mov r0, #0x0 bx lr - arm_func_end FUN_020AE8B4 - + arm_func_end AllocTexVram_ diff --git a/arm9/asm/NNS_GFD_gfd_vramtransfe.s b/arm9/asm/NNS_GFD_gfd_vramtransfe.s index 86c628414..9e3a8863c 100644 --- a/arm9/asm/NNS_GFD_gfd_vramtransfe.s +++ b/arm9/asm/NNS_GFD_gfd_vramtransfe.s @@ -3,81 +3,78 @@ .section .rodata - ; transFunc$7934 - .global UNK_020FF7D4 -UNK_020FF7D4: ; 0x020FF7D4 - .word FUN_020AF2B4 - .word FUN_020AF288 - .word FUN_020AF25C - .word FUN_020AF230 - .word GX_LoadBG0Char_2 - .word GX_LoadBG1Char_2 - .word GX_LoadBG2Char_2 - .word GX_LoadBG3Char_2 - .word GX_LoadBG0Scr_2 - .word GX_LoadBG1Scr_2 - .word GX_LoadBG2Scr_2 - .word GX_LoadBG3Scr_2 - .word GX_LoadBG2Scr_3 - .word GX_LoadBG3Scr_3 - .word GX_LoadOBJPltt_2 - .word GX_LoadBGPltt_2 - .word FUN_020AF174 - .word FUN_020AF148 - .word GX_LoadOAM_2 - .word GX_LoadOBJ_2 - .word GXS_LoadBG0Char_2 - .word GXS_LoadBG1Char_2 - .word GXS_LoadBG2Char_2 - .word GXS_LoadBG3Char_2 - .word GXS_LoadBG0Scr_2 - .word GXS_LoadBG1Scr_2 - .word GXS_LoadBG2Scr_2 - .word GXS_LoadBG3Scr_2 - .word GXS_LoadBG2Scr_3 - .word GXS_LoadBG3Scr_3 - .word GXS_LoadOBJPltt_2 - .word GXS_LoadBGPltt_2 - .word FUN_020AF074 - .word FUN_020AF048 - .word GXS_LoadOAM_2 - .word GXS_LoadOBJ_2 - + .global transFunc$7934 +transFunc$7934: ; 0x020FF7D4 + .word DoTransfer3dTex + .word DoTransfer3dTexPltt + .word DoTransfer3dClearImageColor + .word DoTransfer3dClearImageDepth + .word DoTransfer2dBG0CharMain + .word DoTransfer2dBG1CharMain + .word DoTransfer2dBG2CharMain + .word DoTransfer2dBG3CharMain + .word DoTransfer2dBG0ScrMain + .word DoTransfer2dBG1ScrMain + .word DoTransfer2dBG2ScrMain + .word DoTransfer2dBG3ScrMain + .word DoTransfer2dBG2BmpMain + .word DoTransfer2dBG3BmpMain + .word DoTransfer2dObjPlttMain + .word DoTransfer2dBGPlttMain + .word DoTransfer2dObjExtPlttMain + .word DoTransfer2dBGExtPlttMain + .word DoTransfer2dObjOamMain + .word DoTransfer2dObjCharMain + .word DoTransfer2dBG0CharSub + .word DoTransfer2dBG1CharSub + .word DoTransfer2dBG2CharSub + .word DoTransfer2dBG3CharSub + .word DoTransfer2dBG0ScrSub + .word DoTransfer2dBG1ScrSub + .word DoTransfer2dBG2ScrSub + .word DoTransfer2dBG3ScrSub + .word DoTransfer2dBG2BmpSub + .word DoTransfer2dBG3BmpSub + .word DoTransfer2dObjPlttSub + .word DoTransfer2dBGPlttSub + .word DoTransfer2dObjExtPlttSub + .word DoTransfer2dBGExtPlttSub + .word DoTransfer2dObjOamSub + .word DoTransfer2dObjCharSub ; const initializer + .section .bss - ; s_VramTransferManager - .global UNK_021CCD58 -UNK_021CCD58: ; 0x021CCD58 + .global s_VramTransferManager +s_VramTransferManager: ; 0x021CCD58 .space 0x14 .section .text - ; NNS_GfdRegisterNewVramTransferTask - arm_func_start FUN_020AEE40 -FUN_020AEE40: ; 0x020AEE40 + arm_func_start NNS_GfdRegisterNewVramTransferTask +NNS_GfdRegisterNewVramTransferTask: ; 0x020AEE40 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 - ldr r5, _020AEEB4 ; =UNK_021CCD58 + ldr r5, _020AEEB4 ; =s_VramTransferManager mov r9, r0 mov r0, r5 mov r8, r1 mov r7, r2 mov r6, r3 - bl FUN_020AF2F4 + bl IsVramTransferTaskQueueFull_ cmp r0, #0x0 addne sp, sp, #0x4 movne r0, #0x0 ldmneia sp!, {r4-r9,pc} mov r0, r5 - bl FUN_020AEF78 + bl NNSi_GfdGetEndVramTransferTaskQueue mov r4, r0 str r9, [r4, #0x0] str r7, [r4, #0x4] str r8, [r4, #0x8] mov r0, r5 str r6, [r4, #0xc] - bl FUN_020AEF98 + bl NNSi_GfdPushVramTransferTaskQueue ldr r2, [r5, #0x10] ldr r1, [r4, #0xc] mov r0, #0x1 @@ -86,116 +83,109 @@ FUN_020AEE40: ; 0x020AEE40 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020AEEB4: .word UNK_021CCD58 - arm_func_end FUN_020AEE40 +_020AEEB4: .word s_VramTransferManager + arm_func_end NNS_GfdRegisterNewVramTransferTask - ; NNS_GfdDoVramTransfer - arm_func_start FUN_020AEEB8 -FUN_020AEEB8: ; 0x020AEEB8 + arm_func_start NNS_GfdDoVramTransfer +NNS_GfdDoVramTransfer: ; 0x020AEEB8 stmdb sp!, {r4-r6,lr} - ldr r6, _020AEF18 ; =UNK_021CCD58 + ldr r6, _020AEF18 ; =s_VramTransferManager mov r0, r6 - bl FUN_020AEF88 + bl NNSi_GfdGetFrontVramTransferTaskQueue mov r5, r0 mov r0, r6 - bl FUN_020AEF3C + bl NNSi_GfdPopVramTransferTaskQueue cmp r0, #0x0 ldmeqia sp!, {r4-r6,pc} add r4, r6, #0x10 _020AEEE0: mov r0, r5 - bl FUN_020AEFF0 + bl DoTransfer_ ldr r2, [r4, #0x0] ldr r1, [r5, #0xc] mov r0, r6 sub r1, r2, r1 str r1, [r4, #0x0] - bl FUN_020AEF88 + bl NNSi_GfdGetFrontVramTransferTaskQueue mov r5, r0 mov r0, r6 - bl FUN_020AEF3C + bl NNSi_GfdPopVramTransferTaskQueue cmp r0, #0x0 bne _020AEEE0 ldmia sp!, {r4-r6,pc} .balign 4 -_020AEF18: .word UNK_021CCD58 - arm_func_end FUN_020AEEB8 +_020AEF18: .word s_VramTransferManager + arm_func_end NNS_GfdDoVramTransfer - ; NNS_GfdInitVramTransferManager - arm_func_start FUN_020AEF1C -FUN_020AEF1C: ; 0x020AEF1C - ldr r2, _020AEF34 ; =UNK_021CCD58 - ldr ip, _020AEF38 ; =FUN_020AEFD4 + arm_func_start NNS_GfdInitVramTransferManager +NNS_GfdInitVramTransferManager: ; 0x020AEF1C + ldr r2, _020AEF34 ; =s_VramTransferManager + ldr ip, _020AEF38 ; =ResetTaskQueue_ str r0, [r2, #0x0] mov r0, r2 str r1, [r2, #0x4] bx r12 .balign 4 -_020AEF34: .word UNK_021CCD58 -_020AEF38: .word FUN_020AEFD4 - arm_func_end FUN_020AEF1C +_020AEF34: .word s_VramTransferManager +_020AEF38: .word ResetTaskQueue_ + arm_func_end NNS_GfdInitVramTransferManager - ; _end - arm_func_start FUN_020AEF3C -FUN_020AEF3C: ; 0x020AEF3C + arm_func_start NNSi_GfdPopVramTransferTaskQueue +NNSi_GfdPopVramTransferTaskQueue: ; 0x020AEF3C stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020AF2E0 + bl IsVramTransferTaskQueueEmpty_ cmp r0, #0x0 movne r0, #0x0 ldmneia sp!, {r4,pc} ldrh r1, [r4, #0x8] mov r0, r4 - bl FUN_020AF30C + bl GetNextIndex_ strh r0, [r4, #0x8] ldrh r1, [r4, #0xc] mov r0, #0x1 sub r1, r1, #0x1 strh r1, [r4, #0xc] ldmia sp!, {r4,pc} - arm_func_end FUN_020AEF3C + arm_func_end NNSi_GfdPopVramTransferTaskQueue - ; _end - arm_func_start FUN_020AEF78 -FUN_020AEF78: ; 0x020AEF78 + arm_func_start NNSi_GfdGetEndVramTransferTaskQueue +NNSi_GfdGetEndVramTransferTaskQueue: ; 0x020AEF78 ldrh r1, [r0, #0xa] ldr r0, [r0, #0x0] add r0, r0, r1, lsl #0x4 bx lr - arm_func_end FUN_020AEF78 + arm_func_end NNSi_GfdGetEndVramTransferTaskQueue - ; _end - arm_func_start FUN_020AEF88 -FUN_020AEF88: ; 0x020AEF88 + arm_func_start NNSi_GfdGetFrontVramTransferTaskQueue +NNSi_GfdGetFrontVramTransferTaskQueue: ; 0x020AEF88 ldrh r1, [r0, #0x8] ldr r0, [r0, #0x0] add r0, r0, r1, lsl #0x4 bx lr - arm_func_end FUN_020AEF88 + arm_func_end NNSi_GfdGetFrontVramTransferTaskQueue - ; _end - arm_func_start FUN_020AEF98 -FUN_020AEF98: ; 0x020AEF98 + arm_func_start NNSi_GfdPushVramTransferTaskQueue +NNSi_GfdPushVramTransferTaskQueue: ; 0x020AEF98 stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020AF2F4 + bl IsVramTransferTaskQueueFull_ cmp r0, #0x0 movne r0, #0x0 ldmneia sp!, {r4,pc} ldrh r1, [r4, #0xa] mov r0, r4 - bl FUN_020AF30C + bl GetNextIndex_ strh r0, [r4, #0xa] ldrh r1, [r4, #0xc] mov r0, #0x1 add r1, r1, #0x1 strh r1, [r4, #0xc] ldmia sp!, {r4,pc} - arm_func_end FUN_020AEF98 + arm_func_end NNSi_GfdPushVramTransferTaskQueue - ; _end - arm_func_start FUN_020AEFD4 -FUN_020AEFD4: ; 0x020AEFD4 + arm_func_start ResetTaskQueue_ +ResetTaskQueue_: ; 0x020AEFD4 mov r2, #0x0 strh r2, [r0, #0xa] ldrh r1, [r0, #0xa] @@ -203,16 +193,15 @@ FUN_020AEFD4: ; 0x020AEFD4 strh r2, [r0, #0xc] str r2, [r0, #0x10] bx lr - arm_func_end FUN_020AEFD4 + arm_func_end ResetTaskQueue_ - ; DoTransfer_ - arm_func_start FUN_020AEFF0 -FUN_020AEFF0: ; 0x020AEFF0 + arm_func_start DoTransfer_ +DoTransfer_: ; 0x020AEFF0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 ldr r3, [r5, #0x0] - ldr r2, _020AF02C ; =UNK_020FF7D4 + ldr r2, _020AF02C ; =transFunc$7934 ldr r0, [r5, #0x4] ldr r1, [r5, #0xc] ldr r4, [r2, r3, lsl #0x2] @@ -224,28 +213,25 @@ FUN_020AEFF0: ; 0x020AEFF0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020AF02C: .word UNK_020FF7D4 - arm_func_end FUN_020AEFF0 - -GXS_LoadOBJ_2: +_020AF02C: .word transFunc$7934 + arm_func_end DoTransfer_ +DoTransfer2dObjCharSub: ldr ip, _020AF038 ; =GXS_LoadOBJ bx r12 .balign 4 _020AF038: .word GXS_LoadOBJ - arm_func_end GXS_LoadOBJ_2 + arm_func_end DoTransfer2dObjCharSub - ; DoTransfer2dObjOamSub - arm_func_start GXS_LoadOAM_2 -GXS_LoadOAM_2: ; 0x020AF03C + arm_func_start DoTransfer2dObjOamSub +DoTransfer2dObjOamSub: ; 0x020AF03C ldr ip, _020AF044 ; =GXS_LoadOAM bx r12 .balign 4 _020AF044: .word GXS_LoadOAM - arm_func_end GXS_LoadOAM_2 + arm_func_end DoTransfer2dObjOamSub - ; _end - arm_func_start FUN_020AF048 -FUN_020AF048: ; 0x020AF048 + arm_func_start DoTransfer2dBGExtPlttSub +DoTransfer2dBGExtPlttSub: ; 0x020AF048 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -257,11 +243,10 @@ FUN_020AF048: ; 0x020AF048 bl GXS_LoadBGExtPltt bl GXS_EndLoadBGExtPltt ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF048 + arm_func_end DoTransfer2dBGExtPlttSub - ; _end - arm_func_start FUN_020AF074 -FUN_020AF074: ; 0x020AF074 + arm_func_start DoTransfer2dObjExtPlttSub +DoTransfer2dObjExtPlttSub: ; 0x020AF074 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -273,137 +258,122 @@ FUN_020AF074: ; 0x020AF074 bl GXS_LoadOBJExtPltt bl GXS_EndLoadOBJExtPltt ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF074 + arm_func_end DoTransfer2dObjExtPlttSub - ; DoTransfer2dBGPlttSub - arm_func_start GXS_LoadBGPltt_2 -GXS_LoadBGPltt_2: ; 0x020AF0A0 + arm_func_start DoTransfer2dBGPlttSub +DoTransfer2dBGPlttSub: ; 0x020AF0A0 ldr ip, _020AF0A8 ; =GXS_LoadBGPltt bx r12 .balign 4 _020AF0A8: .word GXS_LoadBGPltt - arm_func_end GXS_LoadBGPltt_2 + arm_func_end DoTransfer2dBGPlttSub - ; DoTransfer2dObjPlttSub - arm_func_start GXS_LoadOBJPltt_2 -GXS_LoadOBJPltt_2: ; 0x020AF0AC + arm_func_start DoTransfer2dObjPlttSub +DoTransfer2dObjPlttSub: ; 0x020AF0AC ldr ip, _020AF0B4 ; =GXS_LoadOBJPltt bx r12 .balign 4 _020AF0B4: .word GXS_LoadOBJPltt - arm_func_end GXS_LoadOBJPltt_2 + arm_func_end DoTransfer2dObjPlttSub - ; DoTransfer2dBG3BmpSub - arm_func_start GXS_LoadBG3Scr_3 -GXS_LoadBG3Scr_3: ; 0x020AF0B8 + arm_func_start DoTransfer2dBG3BmpSub +DoTransfer2dBG3BmpSub: ; 0x020AF0B8 ldr ip, _020AF0C0 ; =GXS_LoadBG3Scr bx r12 .balign 4 _020AF0C0: .word GXS_LoadBG3Scr - arm_func_end GXS_LoadBG3Scr_3 + arm_func_end DoTransfer2dBG3BmpSub - ; DoTransfer2dBG2BmpSub - arm_func_start GXS_LoadBG2Scr_3 -GXS_LoadBG2Scr_3: ; 0x020AF0C4 + arm_func_start DoTransfer2dBG2BmpSub +DoTransfer2dBG2BmpSub: ; 0x020AF0C4 ldr ip, _020AF0CC ; =GXS_LoadBG2Scr bx r12 .balign 4 _020AF0CC: .word GXS_LoadBG2Scr - arm_func_end GXS_LoadBG2Scr_3 + arm_func_end DoTransfer2dBG2BmpSub - ; DoTransfer2dBG3ScrSub - arm_func_start GXS_LoadBG3Scr_2 -GXS_LoadBG3Scr_2: ; 0x020AF0D0 + arm_func_start DoTransfer2dBG3ScrSub +DoTransfer2dBG3ScrSub: ; 0x020AF0D0 ldr ip, _020AF0D8 ; =GXS_LoadBG3Scr bx r12 .balign 4 _020AF0D8: .word GXS_LoadBG3Scr - arm_func_end GXS_LoadBG3Scr_2 + arm_func_end DoTransfer2dBG3ScrSub - ; DoTransfer2dBG2ScrSub - arm_func_start GXS_LoadBG2Scr_2 -GXS_LoadBG2Scr_2: ; 0x020AF0DC + arm_func_start DoTransfer2dBG2ScrSub +DoTransfer2dBG2ScrSub: ; 0x020AF0DC ldr ip, _020AF0E4 ; =GXS_LoadBG2Scr bx r12 .balign 4 _020AF0E4: .word GXS_LoadBG2Scr - arm_func_end GXS_LoadBG2Scr_2 + arm_func_end DoTransfer2dBG2ScrSub - ; DoTransfer2dBG1ScrSub - arm_func_start GXS_LoadBG1Scr_2 -GXS_LoadBG1Scr_2: ; 0x020AF0E8 + arm_func_start DoTransfer2dBG1ScrSub +DoTransfer2dBG1ScrSub: ; 0x020AF0E8 ldr ip, _020AF0F0 ; =GXS_LoadBG1Scr bx r12 .balign 4 _020AF0F0: .word GXS_LoadBG1Scr - arm_func_end GXS_LoadBG1Scr_2 + arm_func_end DoTransfer2dBG1ScrSub - ; DoTransfer2dBG0ScrSub - arm_func_start GXS_LoadBG0Scr_2 -GXS_LoadBG0Scr_2: ; 0x020AF0F4 + arm_func_start DoTransfer2dBG0ScrSub +DoTransfer2dBG0ScrSub: ; 0x020AF0F4 ldr ip, _020AF0FC ; =GXS_LoadBG0Scr bx r12 .balign 4 _020AF0FC: .word GXS_LoadBG0Scr - arm_func_end GXS_LoadBG0Scr_2 + arm_func_end DoTransfer2dBG0ScrSub - ; DoTransfer2dBG3CharSub - arm_func_start GXS_LoadBG3Char_2 -GXS_LoadBG3Char_2: ; 0x020AF100 + arm_func_start DoTransfer2dBG3CharSub +DoTransfer2dBG3CharSub: ; 0x020AF100 ldr ip, _020AF108 ; =GXS_LoadBG3Char bx r12 .balign 4 _020AF108: .word GXS_LoadBG3Char - arm_func_end GXS_LoadBG3Char_2 + arm_func_end DoTransfer2dBG3CharSub - ; DoTransfer2dBG2CharSub - arm_func_start GXS_LoadBG2Char_2 -GXS_LoadBG2Char_2: ; 0x020AF10C + arm_func_start DoTransfer2dBG2CharSub +DoTransfer2dBG2CharSub: ; 0x020AF10C ldr ip, _020AF114 ; =GXS_LoadBG2Char bx r12 .balign 4 _020AF114: .word GXS_LoadBG2Char - arm_func_end GXS_LoadBG2Char_2 + arm_func_end DoTransfer2dBG2CharSub - ; DoTransfer2dBG1CharSub - arm_func_start GXS_LoadBG1Char_2 -GXS_LoadBG1Char_2: ; 0x020AF118 + arm_func_start DoTransfer2dBG1CharSub +DoTransfer2dBG1CharSub: ; 0x020AF118 ldr ip, _020AF120 ; =GXS_LoadBG1Char bx r12 .balign 4 _020AF120: .word GXS_LoadBG1Char - arm_func_end GXS_LoadBG1Char_2 + arm_func_end DoTransfer2dBG1CharSub - ; DoTransfer2dBG0CharSub - arm_func_start GXS_LoadBG0Char_2 -GXS_LoadBG0Char_2: ; 0x020AF124 + arm_func_start DoTransfer2dBG0CharSub +DoTransfer2dBG0CharSub: ; 0x020AF124 ldr ip, _020AF12C ; =GXS_LoadBG0Char bx r12 .balign 4 _020AF12C: .word GXS_LoadBG0Char - arm_func_end GXS_LoadBG0Char_2 + arm_func_end DoTransfer2dBG0CharSub - ; DoTransfer2dObjCharMain - arm_func_start GX_LoadOBJ_2 -GX_LoadOBJ_2: ; 0x020AF130 + arm_func_start DoTransfer2dObjCharMain +DoTransfer2dObjCharMain: ; 0x020AF130 ldr ip, _020AF138 ; =GX_LoadOBJ bx r12 .balign 4 _020AF138: .word GX_LoadOBJ - arm_func_end GX_LoadOBJ_2 + arm_func_end DoTransfer2dObjCharMain - ; DoTransfer2dObjOamMain - arm_func_start GX_LoadOAM_2 -GX_LoadOAM_2: ; 0x020AF13C + arm_func_start DoTransfer2dObjOamMain +DoTransfer2dObjOamMain: ; 0x020AF13C ldr ip, _020AF144 ; =GX_LoadOAM bx r12 .balign 4 _020AF144: .word GX_LoadOAM - arm_func_end GX_LoadOAM_2 + arm_func_end DoTransfer2dObjOamMain - ; _end - arm_func_start FUN_020AF148 -FUN_020AF148: ; 0x020AF148 + arm_func_start DoTransfer2dBGExtPlttMain +DoTransfer2dBGExtPlttMain: ; 0x020AF148 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -415,11 +385,10 @@ FUN_020AF148: ; 0x020AF148 bl GX_LoadBGExtPltt bl GX_EndLoadBGExtPltt ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF148 + arm_func_end DoTransfer2dBGExtPlttMain - ; _end - arm_func_start FUN_020AF174 -FUN_020AF174: ; 0x020AF174 + arm_func_start DoTransfer2dObjExtPlttMain +DoTransfer2dObjExtPlttMain: ; 0x020AF174 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -431,119 +400,106 @@ FUN_020AF174: ; 0x020AF174 bl GX_LoadOBJExtPltt bl GX_EndLoadOBJExtPltt ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF174 + arm_func_end DoTransfer2dObjExtPlttMain - ; DoTransfer2dBGPlttMain - arm_func_start GX_LoadBGPltt_2 -GX_LoadBGPltt_2: ; 0x020AF1A0 + arm_func_start DoTransfer2dBGPlttMain +DoTransfer2dBGPlttMain: ; 0x020AF1A0 ldr ip, _020AF1A8 ; =GX_LoadBGPltt bx r12 .balign 4 _020AF1A8: .word GX_LoadBGPltt - arm_func_end GX_LoadBGPltt_2 + arm_func_end DoTransfer2dBGPlttMain - ; DoTransfer2dObjPlttMain - arm_func_start GX_LoadOBJPltt_2 -GX_LoadOBJPltt_2: ; 0x020AF1AC + arm_func_start DoTransfer2dObjPlttMain +DoTransfer2dObjPlttMain: ; 0x020AF1AC ldr ip, _020AF1B4 ; =GX_LoadOBJPltt bx r12 .balign 4 _020AF1B4: .word GX_LoadOBJPltt - arm_func_end GX_LoadOBJPltt_2 + arm_func_end DoTransfer2dObjPlttMain - ; DoTransfer2dBG3BmpMain - arm_func_start GX_LoadBG3Scr_3 -GX_LoadBG3Scr_3: ; 0x020AF1B8 + arm_func_start DoTransfer2dBG3BmpMain +DoTransfer2dBG3BmpMain: ; 0x020AF1B8 ldr ip, _020AF1C0 ; =GX_LoadBG3Scr bx r12 .balign 4 _020AF1C0: .word GX_LoadBG3Scr - arm_func_end GX_LoadBG3Scr_3 + arm_func_end DoTransfer2dBG3BmpMain - ; DoTransfer2dBG2BmpMain - arm_func_start GX_LoadBG2Scr_3 -GX_LoadBG2Scr_3: ; 0x020AF1C4 + arm_func_start DoTransfer2dBG2BmpMain +DoTransfer2dBG2BmpMain: ; 0x020AF1C4 ldr ip, _020AF1CC ; =GX_LoadBG2Scr bx r12 .balign 4 _020AF1CC: .word GX_LoadBG2Scr - arm_func_end GX_LoadBG2Scr_3 + arm_func_end DoTransfer2dBG2BmpMain - ; DoTransfer2dBG3ScrMain - arm_func_start GX_LoadBG3Scr_2 -GX_LoadBG3Scr_2: ; 0x020AF1D0 + arm_func_start DoTransfer2dBG3ScrMain +DoTransfer2dBG3ScrMain: ; 0x020AF1D0 ldr ip, _020AF1D8 ; =GX_LoadBG3Scr bx r12 .balign 4 _020AF1D8: .word GX_LoadBG3Scr - arm_func_end GX_LoadBG3Scr_2 + arm_func_end DoTransfer2dBG3ScrMain - ; DoTransfer2dBG2ScrMain - arm_func_start GX_LoadBG2Scr_2 -GX_LoadBG2Scr_2: ; 0x020AF1DC + arm_func_start DoTransfer2dBG2ScrMain +DoTransfer2dBG2ScrMain: ; 0x020AF1DC ldr ip, _020AF1E4 ; =GX_LoadBG2Scr bx r12 .balign 4 _020AF1E4: .word GX_LoadBG2Scr - arm_func_end GX_LoadBG2Scr_2 + arm_func_end DoTransfer2dBG2ScrMain - ; DoTransfer2dBG1ScrMain - arm_func_start GX_LoadBG1Scr_2 -GX_LoadBG1Scr_2: ; 0x020AF1E8 + arm_func_start DoTransfer2dBG1ScrMain +DoTransfer2dBG1ScrMain: ; 0x020AF1E8 ldr ip, _020AF1F0 ; =GX_LoadBG1Scr bx r12 .balign 4 _020AF1F0: .word GX_LoadBG1Scr - arm_func_end GX_LoadBG1Scr_2 + arm_func_end DoTransfer2dBG1ScrMain - ; DoTransfer2dBG0ScrMain - arm_func_start GX_LoadBG0Scr_2 -GX_LoadBG0Scr_2: ; 0x020AF1F4 + arm_func_start DoTransfer2dBG0ScrMain +DoTransfer2dBG0ScrMain: ; 0x020AF1F4 ldr ip, _020AF1FC ; =GX_LoadBG0Scr bx r12 .balign 4 _020AF1FC: .word GX_LoadBG0Scr - arm_func_end GX_LoadBG0Scr_2 + arm_func_end DoTransfer2dBG0ScrMain - ; DoTransfer2dBG3CharMain - arm_func_start GX_LoadBG3Char_2 -GX_LoadBG3Char_2: ; 0x020AF200 + arm_func_start DoTransfer2dBG3CharMain +DoTransfer2dBG3CharMain: ; 0x020AF200 ldr ip, _020AF208 ; =GX_LoadBG3Char bx r12 .balign 4 _020AF208: .word GX_LoadBG3Char - arm_func_end GX_LoadBG3Char_2 + arm_func_end DoTransfer2dBG3CharMain - ; DoTransfer2dBG2CharMain - arm_func_start GX_LoadBG2Char_2 -GX_LoadBG2Char_2: ; 0x020AF20C + arm_func_start DoTransfer2dBG2CharMain +DoTransfer2dBG2CharMain: ; 0x020AF20C ldr ip, _020AF214 ; =GX_LoadBG2Char bx r12 .balign 4 _020AF214: .word GX_LoadBG2Char - arm_func_end GX_LoadBG2Char_2 + arm_func_end DoTransfer2dBG2CharMain - ; DoTransfer2dBG1CharMain - arm_func_start GX_LoadBG1Char_2 -GX_LoadBG1Char_2: ; 0x020AF218 + arm_func_start DoTransfer2dBG1CharMain +DoTransfer2dBG1CharMain: ; 0x020AF218 ldr ip, _020AF220 ; =GX_LoadBG1Char bx r12 .balign 4 _020AF220: .word GX_LoadBG1Char - arm_func_end GX_LoadBG1Char_2 + arm_func_end DoTransfer2dBG1CharMain - ; DoTransfer2dBG0CharMain - arm_func_start GX_LoadBG0Char_2 -GX_LoadBG0Char_2: ; 0x020AF224 + arm_func_start DoTransfer2dBG0CharMain +DoTransfer2dBG0CharMain: ; 0x020AF224 ldr ip, _020AF22C ; =GX_LoadBG0Char bx r12 .balign 4 _020AF22C: .word GX_LoadBG0Char - arm_func_end GX_LoadBG0Char_2 + arm_func_end DoTransfer2dBG0CharMain - ; _end - arm_func_start FUN_020AF230 -FUN_020AF230: ; 0x020AF230 + arm_func_start DoTransfer3dClearImageDepth +DoTransfer3dClearImageDepth: ; 0x020AF230 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -555,11 +511,10 @@ FUN_020AF230: ; 0x020AF230 bl GX_EndLoadClearImage add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AF230 + arm_func_end DoTransfer3dClearImageDepth - ; _end - arm_func_start FUN_020AF25C -FUN_020AF25C: ; 0x020AF25C + arm_func_start DoTransfer3dClearImageColor +DoTransfer3dClearImageColor: ; 0x020AF25C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -571,11 +526,10 @@ FUN_020AF25C: ; 0x020AF25C bl GX_EndLoadClearImage add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020AF25C + arm_func_end DoTransfer3dClearImageColor - ; _end - arm_func_start FUN_020AF288 -FUN_020AF288: ; 0x020AF288 + arm_func_start DoTransfer3dTexPltt +DoTransfer3dTexPltt: ; 0x020AF288 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -587,11 +541,10 @@ FUN_020AF288: ; 0x020AF288 bl GX_LoadTexPltt bl GX_EndLoadTexPltt ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF288 + arm_func_end DoTransfer3dTexPltt - ; _end - arm_func_start FUN_020AF2B4 -FUN_020AF2B4: ; 0x020AF2B4 + arm_func_start DoTransfer3dTex +DoTransfer3dTex: ; 0x020AF2B4 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 @@ -603,32 +556,29 @@ FUN_020AF2B4: ; 0x020AF2B4 bl GX_LoadTex bl GX_EndLoadTex ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF2B4 + arm_func_end DoTransfer3dTex - ; _end - arm_func_start FUN_020AF2E0 -FUN_020AF2E0: ; 0x020AF2E0 + arm_func_start IsVramTransferTaskQueueEmpty_ +IsVramTransferTaskQueueEmpty_: ; 0x020AF2E0 ldrh r0, [r0, #0xc] cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 bx lr - arm_func_end FUN_020AF2E0 + arm_func_end IsVramTransferTaskQueueEmpty_ - ; _end - arm_func_start FUN_020AF2F4 -FUN_020AF2F4: ; 0x020AF2F4 + arm_func_start IsVramTransferTaskQueueFull_ +IsVramTransferTaskQueueFull_: ; 0x020AF2F4 ldrh r1, [r0, #0xc] ldr r0, [r0, #0x4] cmp r1, r0 moveq r0, #0x1 movne r0, #0x0 bx lr - arm_func_end FUN_020AF2F4 + arm_func_end IsVramTransferTaskQueueFull_ - ; _end - arm_func_start FUN_020AF30C -FUN_020AF30C: ; 0x020AF30C + arm_func_start GetNextIndex_ +GetNextIndex_: ; 0x020AF30C stmdb sp!, {lr} sub sp, sp, #0x4 mov r2, r0 @@ -639,5 +589,4 @@ FUN_020AF30C: ; 0x020AF30C mov r0, r0, lsr #0x10 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AF30C - + arm_func_end GetNextIndex_ diff --git a/arm9/asm/NNS_GFD_gfdi_linkedlist.s b/arm9/asm/NNS_GFD_gfdi_linkedlist.s index 793cbf04d..125a146e1 100644 --- a/arm9/asm/NNS_GFD_gfdi_linkedlist.s +++ b/arm9/asm/NNS_GFD_gfdi_linkedlist.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020AF334 -FUN_020AF334: ; 0x020AF334 + arm_func_start NNSi_GfdFreeLnkVram +NNSi_GfdFreeLnkVram: ; 0x020AF334 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x10 add r3, r2, r3 @@ -95,11 +94,10 @@ _020AF418: mov r0, #0x1 add sp, sp, #0x10 ldmia sp!, {r4-r6,pc} - arm_func_end FUN_020AF334 + arm_func_end NNSi_GfdFreeLnkVram - ; _end - arm_func_start FUN_020AF488 -FUN_020AF488: ; 0x020AF488 + arm_func_start NNSi_GfdAllocLnkVramAligned +NNSi_GfdAllocLnkVramAligned: ; 0x020AF488 stmdb sp!, {r4-r10,lr} ldr r4, [r0, #0x0] ldr r9, [sp, #0x20] @@ -185,23 +183,21 @@ _020AF5B8: mov r0, #0x0 str r0, [r2, #0x0] ldmia sp!, {r4-r10,pc} - arm_func_end FUN_020AF488 + arm_func_end NNSi_GfdAllocLnkVramAligned - ; _end - arm_func_start FUN_020AF5C4 -FUN_020AF5C4: ; 0x020AF5C4 + arm_func_start NNSi_GfdAllocLnkVram +NNSi_GfdAllocLnkVram: ; 0x020AF5C4 stmdb sp!, {lr} sub sp, sp, #0x4 mov r12, #0x0 str r12, [sp, #0x0] - bl FUN_020AF488 + bl NNSi_GfdAllocLnkVramAligned add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AF5C4 + arm_func_end NNSi_GfdAllocLnkVram - ; _end - arm_func_start FUN_020AF5E0 -FUN_020AF5E0: ; 0x020AF5E0 + arm_func_start NNSi_GfdAddNewFreeBlock +NNSi_GfdAddNewFreeBlock: ; 0x020AF5E0 stmdb sp!, {lr} sub sp, sp, #0x4 ldr lr, [r1, #0x0] @@ -230,11 +226,10 @@ _020AF640: mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end FUN_020AF5E0 + arm_func_end NNSi_GfdAddNewFreeBlock - ; _end - arm_func_start FUN_020AF64C -FUN_020AF64C: ; 0x020AF64C + arm_func_start NNSi_GfdInitLnkVramBlockPool +NNSi_GfdInitLnkVramBlockPool: ; 0x020AF64C stmdb sp!, {r4,lr} subs lr, r1, #0x1 mov r2, #0x0 @@ -256,13 +251,11 @@ _020AF684: add r1, r0, r1, lsl #0x4 str r2, [r1, #-0x4] ldmia sp!, {r4,pc} - arm_func_end FUN_020AF64C + arm_func_end NNSi_GfdInitLnkVramBlockPool - ; _end - arm_func_start FUN_020AF698 -FUN_020AF698: ; 0x020AF698 + arm_func_start NNSi_GfdInitLnkVramMan +NNSi_GfdInitLnkVramMan: ; 0x020AF698 mov r1, #0x0 str r1, [r0, #0x0] bx lr - arm_func_end FUN_020AF698 - + arm_func_end NNSi_GfdInitLnkVramMan diff --git a/arm9/asm/NNS_SND_capture.s b/arm9/asm/NNS_SND_capture.s index a30a85f11..a4e04212c 100644 --- a/arm9/asm/NNS_SND_capture.s +++ b/arm9/asm/NNS_SND_capture.s @@ -3,42 +3,36 @@ .section .bss - ; sIsThreadCreated - .global UNK_021D27A4 -UNK_021D27A4: ; 0x021D27A4 + .global sIsThreadCreated +sIsThreadCreated: ; 0x021D27A4 .space 0x4 - ; sCurEffectInfo - .global UNK_021D27A8 -UNK_021D27A8: ; 0x021D27A8 + .global sCurEffectInfo +sCurEffectInfo: ; 0x021D27A8 .space 0x4 - ; sMesgQ - .global UNK_021D27AC -UNK_021D27AC: ; 0x021D27AC + .global sMesgQ +sMesgQ: ; 0x021D27AC .space 0x20 - ; sCapParam - .global UNK_021D27CC -UNK_021D27CC: ; 0x021D27CC + .global sCapParam +sCapParam: ; 0x021D27CC .space 0x54 - ; sEffectInfoBuffer - .global UNK_021D2820 -UNK_021D2820: ; 0x021D2820 + .global sEffectInfoBuffer +sEffectInfoBuffer: ; 0x021D2820 .space 0xa0 .section .text - ; AlarmCallback - arm_func_start FUN_020C177C -FUN_020C177C: ; 0x020C177C + local_arm_func_start AlarmCallback +AlarmCallback: ; 0x020C177C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 ldr r4, [r7, #0x18] ldr r0, [r7, #0x1c] - ldr r1, _020C186C ; =UNK_021D27A4 + ldr r1, _020C186C ; =sIsThreadCreated mul r0, r4, r0 ldr r3, [r7, #0xc] ldr r2, [r7, #0x10] @@ -47,21 +41,21 @@ FUN_020C177C: ; 0x020C177C cmp r1, #0x0 add r5, r2, r0 beq _020C180C - ldr r2, _020C1870 ; =UNK_021D27A8 + ldr r2, _020C1870 ; =sCurEffectInfo mov r1, #0x14 ldr r2, [r2, #0x0] - ldr r3, _020C1874 ; =UNK_021D2820 + ldr r3, _020C1874 ; =sEffectInfoBuffer mul r1, r2, r1 str r7, [r3, r1] add r1, r3, r1 str r4, [r1, #0x4] str r0, [r1, #0x8] str r6, [r1, #0xc] - ldr r0, _020C1878 ; =UNK_021D27AC + ldr r0, _020C1878 ; =sMesgQ mov r2, #0x0 str r5, [r1, #0x10] bl OS_SendMessage - ldr r0, _020C1870 ; =UNK_021D27A8 + ldr r0, _020C1870 ; =sCurEffectInfo ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] @@ -96,16 +90,15 @@ _020C1844: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C186C: .word UNK_021D27A4 -_020C1870: .word UNK_021D27A8 -_020C1874: .word UNK_021D2820 -_020C1878: .word UNK_021D27AC +_020C186C: .word sIsThreadCreated +_020C1870: .word sCurEffectInfo +_020C1874: .word sEffectInfoBuffer +_020C1878: .word sMesgQ - ; NNSi_SndCaptureEndSleep - arm_func_start FUN_020C187C -FUN_020C187C: ; 0x020C187C + arm_func_start NNSi_SndCaptureEndSleep +NNSi_SndCaptureEndSleep: ; 0x020C187C stmdb sp!, {r4,lr} - ldr r4, _020C18F4 ; =UNK_021D27CC + ldr r4, _020C18F4 ; =sCapParam ldr r0, [r4, #0x0] cmp r0, #0x0 ldmeqia sp!, {r4,pc} @@ -135,13 +128,12 @@ FUN_020C187C: ; 0x020C187C bl SND_StartTimer ldmia sp!, {r4,pc} .balign 4 -_020C18F4: .word UNK_021D27CC +_020C18F4: .word sCapParam - ; NNSi_SndCaptureBeginSleep - arm_func_start FUN_020C18F8 -FUN_020C18F8: ; 0x020C18F8 + arm_func_start NNSi_SndCaptureBeginSleep +NNSi_SndCaptureBeginSleep: ; 0x020C18F8 stmdb sp!, {r4,lr} - ldr r3, _020C194C ; =UNK_021D27CC + ldr r3, _020C194C ; =sCapParam ldr r0, [r3, #0x0] cmp r0, #0x0 ldmeqia sp!, {r4,pc} @@ -162,14 +154,13 @@ FUN_020C18F8: ; 0x020C18F8 bl SND_WaitForCommandProc ldmia sp!, {r4,pc} .balign 4 -_020C194C: .word UNK_021D27CC +_020C194C: .word sCapParam - ; NNSi_SndCaptureStop - arm_func_start FUN_020C1950 -FUN_020C1950: ; 0x020C1950 + arm_func_start NNSi_SndCaptureStop +NNSi_SndCaptureStop: ; 0x020C1950 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr r4, _020C1A3C ; =UNK_021D27CC + ldr r4, _020C1A3C ; =sCapParam ldr r0, [r4, #0x0] cmp r0, #0x0 addeq sp, sp, #0x4 @@ -194,7 +185,7 @@ FUN_020C1950: ; 0x020C1950 bl SND_FlushCommand mov r0, r5 bl SND_WaitForCommandProc - ldr r6, _020C1A40 ; =UNK_021D27AC + ldr r6, _020C1A40 ; =sMesgQ mov r5, #0x0 _020C19C4: mov r0, r6 @@ -207,17 +198,17 @@ _020C19DC: ldr r0, [r4, #0x28] cmp r0, #0x0 beq _020C19EC - bl FUN_020C0300 + bl NNS_SndUnlockCapture _020C19EC: ldr r0, [r4, #0x20] cmp r0, #0x0 beq _020C19FC - bl FUN_020C0340 + bl NNS_SndUnlockChannel _020C19FC: cmp r7, #0x0 beq _020C1A0C ldr r0, [r4, #0x2c] - bl FUN_020C029C + bl NNS_SndFreeAlarm _020C1A0C: ldr r0, [r4, #0x4] cmp r0, #0x1 @@ -233,12 +224,11 @@ _020C1A2C: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C1A3C: .word UNK_021D27CC -_020C1A40: .word UNK_021D27AC +_020C1A3C: .word sCapParam +_020C1A40: .word sMesgQ - ; NNSi_SndCaptureStart - arm_func_start FUN_020C1A44 -FUN_020C1A44: ; 0x020C1A44 + arm_func_start NNSi_SndCaptureStart +NNSi_SndCaptureStart: ; 0x020C1A44 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x3c mov r10, r3 @@ -252,7 +242,7 @@ FUN_020C1A44: ; 0x020C1A44 ldr r8, [sp, #0x74] str r2, [sp, #0x2c] mvn r6, #0x0 - ldr r4, _020C1D90 ; =UNK_021D27CC + ldr r4, _020C1D90 ; =sCapParam bl DC_FlushRange ldr r0, [sp, #0x20] mov r1, r10 @@ -304,36 +294,36 @@ _020C1B00: ldr r0, [sp, #0x84] cmp r0, #0x0 beq _020C1B58 - bl FUN_020C02BC + bl NNS_SndAllocAlarm movs r6, r0 addmi sp, sp, #0x3c movmi r0, #0x0 ldmmiia sp!, {r4-r11,pc} _020C1B58: mov r0, #0x3 - bl FUN_020C031C + bl NNS_SndLockCapture cmp r0, #0x0 bne _020C1B84 cmp r6, #0x0 blt _020C1B78 mov r0, r6 - bl FUN_020C029C + bl NNS_SndFreeAlarm _020C1B78: add sp, sp, #0x3c mov r0, #0x0 ldmia sp!, {r4-r11,pc} _020C1B84: mov r0, #0xa - bl FUN_020C0370 + bl NNS_SndLockChannel cmp r0, #0x0 bne _020C1BB8 cmp r6, #0x0 blt _020C1BA4 mov r0, r6 - bl FUN_020C029C + bl NNS_SndFreeAlarm _020C1BA4: mov r0, #0x3 - bl FUN_020C0300 + bl NNS_SndUnlockCapture add sp, sp, #0x3c mov r0, #0x0 ldmia sp!, {r4-r11,pc} @@ -392,7 +382,7 @@ _020C1BB8: cmp r6, #0x0 blt _020C1CA8 ldr r2, [sp, #0x30] - ldr r3, _020C1D98 ; =FUN_020C177C + ldr r3, _020C1D98 ; =AlarmCallback mov r1, r2 mov r0, r6 add r1, r1, r5 @@ -448,27 +438,26 @@ _020C1CC8: str r0, [r4, #0x38] add r0, r4, #0x3c str r8, [r4, #0x50] - bl FUN_020C3E6C + bl NNSi_SndFaderInit add r0, r4, #0x3c mov r1, r8, lsl #0x8 mov r2, #0x1 - bl FUN_020C3E40 + bl NNSi_SndFaderSet mov r0, #0x0 str r0, [r4, #0x4c] mov r0, #0x1 add sp, sp, #0x3c ldmia sp!, {r4-r11,pc} .balign 4 -_020C1D90: .word UNK_021D27CC +_020C1D90: .word sCapParam _020C1D94: .word 0x00FFB0FF -_020C1D98: .word FUN_020C177C +_020C1D98: .word AlarmCallback - ; NNSi_SndCaptureMain - arm_func_start FUN_020C1D9C -FUN_020C1D9C: ; 0x020C1D9C + arm_func_start NNSi_SndCaptureMain +NNSi_SndCaptureMain: ; 0x020C1D9C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 - ldr r5, _020C1E34 ; =UNK_021D27CC + ldr r5, _020C1E34 ; =sCapParam ldr r0, [r5, #0x0] cmp r0, #0x0 addeq sp, sp, #0x4 @@ -479,20 +468,20 @@ FUN_020C1D9C: ; 0x020C1D9C ldmneia sp!, {r4-r5,pc} add r4, r5, #0x3c mov r0, r4 - bl FUN_020C3DF4 + bl NNSi_SndFaderUpdate ldr r0, [r5, #0x4c] cmp r0, #0x0 beq _020C1DFC mov r0, r4 - bl FUN_020C3DDC + bl NNSi_SndFaderIsFinished cmp r0, #0x0 beq _020C1DFC - bl FUN_020C1950 + bl NNSi_SndCaptureStop add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} _020C1DFC: mov r0, r4 - bl FUN_020C3E0C + bl NNSi_SndFaderGet ldr r1, [r5, #0x50] mov r4, r0, asr #0x8 cmp r4, r1 @@ -506,36 +495,33 @@ _020C1DFC: add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C1E34: .word UNK_021D27CC +_020C1E34: .word sCapParam - ; NNSi_SndCaptureInit - arm_func_start FUN_020C1E38 -FUN_020C1E38: ; 0x020C1E38 - ldr r1, _020C1E50 ; =UNK_021D27A4 + arm_func_start NNSi_SndCaptureInit +NNSi_SndCaptureInit: ; 0x020C1E38 + ldr r1, _020C1E50 ; =sIsThreadCreated mov r2, #0x0 - ldr r0, _020C1E54 ; =UNK_021D27CC + ldr r0, _020C1E54 ; =sCapParam str r2, [r1, #0x0] str r2, [r0, #0x0] bx lr .balign 4 -_020C1E50: .word UNK_021D27A4 -_020C1E54: .word UNK_021D27CC +_020C1E50: .word sIsThreadCreated +_020C1E54: .word sCapParam - ; NNS_SndCaptureIsActive - arm_func_start FUN_020C1E58 -FUN_020C1E58: ; 0x020C1E58 - ldr r0, _020C1E64 ; =UNK_021D27CC + arm_func_start NNS_SndCaptureIsActive +NNS_SndCaptureIsActive: ; 0x020C1E58 + ldr r0, _020C1E64 ; =sCapParam ldr r0, [r0, #0x0] bx lr .balign 4 -_020C1E64: .word UNK_021D27CC +_020C1E64: .word sCapParam - ; NNS_SndCaptureStopEffect - arm_func_start FUN_020C1E68 -FUN_020C1E68: ; 0x020C1E68 + arm_func_start NNS_SndCaptureStopEffect +NNS_SndCaptureStopEffect: ; 0x020C1E68 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020C1EA0 ; =UNK_021D27CC + ldr r0, _020C1EA0 ; =sCapParam ldr r1, [r0, #0x0] cmp r1, #0x0 addeq sp, sp, #0x4 @@ -544,23 +530,22 @@ FUN_020C1E68: ; 0x020C1E68 cmp r0, #0x1 addne sp, sp, #0x4 ldmneia sp!, {pc} - bl FUN_020C1950 + bl NNSi_SndCaptureStop add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020C1EA0: .word UNK_021D27CC +_020C1EA0: .word sCapParam - ; NNS_SndCaptureStartEffect - arm_func_start FUN_020C1EA4 -FUN_020C1EA4: ; 0x020C1EA4 + arm_func_start NNS_SndCaptureStartEffect +NNS_SndCaptureStartEffect: ; 0x020C1EA4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x2c mov r5, r0 mov r4, r1 mov r7, r2 mov r6, r3 - bl FUN_020C1E68 - ldr r0, _020C1F50 ; =UNK_021D27CC + bl NNS_SndCaptureStopEffect + ldr r0, _020C1F50 ; =sCapParam ldr r0, [r0, #0x0] cmp r0, #0x0 addne sp, sp, #0x2c @@ -593,17 +578,16 @@ FUN_020C1EA4: ; 0x020C1EA4 mov r3, r4, lsr #0x1 add r2, r5, r4, lsr #0x1 str r12, [sp, #0x28] - bl FUN_020C1A44 + bl NNSi_SndCaptureStart add sp, sp, #0x2c ldmia sp!, {r4-r7,pc} .balign 4 -_020C1F50: .word UNK_021D27CC +_020C1F50: .word sCapParam - ; NNS_SndCaptureStopReverb - arm_func_start FUN_020C1F54 -FUN_020C1F54: ; 0x020C1F54 + arm_func_start NNS_SndCaptureStopReverb +NNS_SndCaptureStopReverb: ; 0x020C1F54 stmdb sp!, {r4,lr} - ldr r4, _020C1FA0 ; =UNK_021D27CC + ldr r4, _020C1FA0 ; =sCapParam mov r2, r0 ldr r0, [r4, #0x0] cmp r0, #0x0 @@ -613,24 +597,23 @@ FUN_020C1F54: ; 0x020C1F54 ldmneia sp!, {r4,pc} cmp r2, #0x0 bne _020C1F88 - bl FUN_020C1950 + bl NNSi_SndCaptureStop ldmia sp!, {r4,pc} _020C1F88: add r0, r4, #0x3c mov r1, #0x0 - bl FUN_020C3E40 + bl NNSi_SndFaderSet mov r0, #0x1 str r0, [r4, #0x4c] ldmia sp!, {r4,pc} .balign 4 -_020C1FA0: .word UNK_021D27CC +_020C1FA0: .word sCapParam - ; NNS_SndCaptureSetReverbVolume - arm_func_start FUN_020C1FA4 -FUN_020C1FA4: ; 0x020C1FA4 + arm_func_start NNS_SndCaptureSetReverbVolume +NNS_SndCaptureSetReverbVolume: ; 0x020C1FA4 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r3, _020C1FEC ; =UNK_021D27CC + ldr r3, _020C1FEC ; =sCapParam mov r12, r0 ldr r0, [r3, #0x0] mov r2, r1 @@ -643,15 +626,14 @@ FUN_020C1FA4: ; 0x020C1FA4 ldmneia sp!, {pc} add r0, r3, #0x3c mov r1, r12, lsl #0x8 - bl FUN_020C3E40 + bl NNSi_SndFaderSet add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020C1FEC: .word UNK_021D27CC +_020C1FEC: .word sCapParam - ; NNS_SndCaptureStartReverb - arm_func_start FUN_020C1FF0 -FUN_020C1FF0: ; 0x020C1FF0 + arm_func_start NNS_SndCaptureStartReverb +NNS_SndCaptureStartReverb: ; 0x020C1FF0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x2c mov r5, r0 @@ -659,8 +641,8 @@ FUN_020C1FF0: ; 0x020C1FF0 mov r4, r1 mov r7, r2 mov r6, r3 - bl FUN_020C1F54 - ldr r0, _020C2098 ; =UNK_021D27CC + bl NNS_SndCaptureStopReverb + ldr r0, _020C2098 ; =sCapParam ldr r0, [r0, #0x0] cmp r0, #0x0 addne sp, sp, #0x2c @@ -691,9 +673,8 @@ FUN_020C1FF0: ; 0x020C1FF0 mov r3, r4, lsr #0x1 add r2, r5, r4, lsr #0x1 str r0, [sp, #0x28] - bl FUN_020C1A44 + bl NNSi_SndCaptureStart add sp, sp, #0x2c ldmia sp!, {r4-r7,pc} .balign 4 -_020C2098: .word UNK_021D27CC - +_020C2098: .word sCapParam diff --git a/arm9/asm/NNS_SND_fader.s b/arm9/asm/NNS_SND_fader.s index b36093a28..938456a92 100644 --- a/arm9/asm/NNS_SND_fader.s +++ b/arm9/asm/NNS_SND_fader.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020C3DDC -FUN_020C3DDC: ; 0x020C3DDC + arm_func_start NNSi_SndFaderIsFinished +NNSi_SndFaderIsFinished: ; 0x020C3DDC ldr r1, [r0, #0x8] ldr r0, [r0, #0xc] cmp r1, r0 @@ -13,9 +12,8 @@ FUN_020C3DDC: ; 0x020C3DDC movlt r0, #0x0 bx lr - ; _end - arm_func_start FUN_020C3DF4 -FUN_020C3DF4: ; 0x020C3DF4 + arm_func_start NNSi_SndFaderUpdate +NNSi_SndFaderUpdate: ; 0x020C3DF4 ldr r2, [r0, #0x8] ldr r1, [r0, #0xc] cmp r2, r1 @@ -23,9 +21,8 @@ FUN_020C3DF4: ; 0x020C3DF4 strlt r1, [r0, #0x8] bx lr - ; _end - arm_func_start FUN_020C3E0C -FUN_020C3E0C: ; 0x020C3E0C + arm_func_start NNSi_SndFaderGet +NNSi_SndFaderGet: ; 0x020C3E0C stmdb sp!, {r4,lr} ldr r1, [r0, #0xc] ldr r2, [r0, #0x8] @@ -40,14 +37,13 @@ FUN_020C3E0C: ; 0x020C3E0C add r0, r4, r0 ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C3E40 -FUN_020C3E40: ; 0x020C3E40 + arm_func_start NNSi_SndFaderSet +NNSi_SndFaderSet: ; 0x020C3E40 stmdb sp!, {r4-r6,lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_020C3E0C + bl NNSi_SndFaderGet str r0, [r6, #0x0] str r5, [r6, #0x4] str r4, [r6, #0xc] @@ -55,9 +51,8 @@ FUN_020C3E40: ; 0x020C3E40 str r0, [r6, #0x8] ldmia sp!, {r4-r6,pc} - ; _end - arm_func_start FUN_020C3E6C -FUN_020C3E6C: ; 0x020C3E6C + arm_func_start NNSi_SndFaderInit +NNSi_SndFaderInit: ; 0x020C3E6C mov r2, #0x0 str r2, [r0, #0x4] ldr r1, [r0, #0x4] diff --git a/arm9/asm/NNS_SND_heap.s b/arm9/asm/NNS_SND_heap.s index 5d2efe32c..554c6bab3 100644 --- a/arm9/asm/NNS_SND_heap.s +++ b/arm9/asm/NNS_SND_heap.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020C2774 -FUN_020C2774: ; 0x020C2774 + arm_func_start EraseSync +EraseSync: ; 0x020C2774 stmdb sp!, {r4,lr} bl SND_GetCurrentCommandTag mov r4, r0 @@ -15,59 +14,55 @@ FUN_020C2774: ; 0x020C2774 bl SND_WaitForCommandProc ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C2794 -FUN_020C2794: ; 0x020C2794 + arm_func_start NewSection +NewSection: ; 0x020C2794 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 ldr r0, [r5, #0x0] mov r1, #0x14 mov r2, #0x4 - bl FUN_020AE638 + bl NNS_FndAllocFromFrmHeapEx movs r4, r0 addeq sp, sp, #0x4 moveq r0, #0x0 ldmeqia sp!, {r4-r5,pc} - bl FUN_020C2818 + bl InitHeapSection mov r1, r4 add r0, r5, #0x4 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject mov r0, #0x1 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C27DC -FUN_020C27DC: ; 0x020C27DC + arm_func_start InitHeap +InitHeap: ; 0x020C27DC stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 mov r4, r1 add r0, r5, #0x4 mov r1, #0xc - bl FUN_020ADC74 + bl NNS_FndInitList mov r0, r5 str r4, [r5, #0x0] - bl FUN_020C2794 + bl NewSection cmp r0, #0x0 movne r0, #0x1 moveq r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; InitHeapSection - arm_func_start FUN_020C2818 -FUN_020C2818: ; 0x020C2818 - ldr ip, _020C2824 ; =FUN_020ADC74 + arm_func_start InitHeapSection +InitHeapSection: ; 0x020C2818 + ldr ip, _020C2824 ; =NNS_FndInitList mov r1, #0x0 bx r12 .balign 4 -_020C2824: .word FUN_020ADC74 +_020C2824: .word NNS_FndInitList - ; _end - arm_func_start FUN_020C2828 -FUN_020C2828: ; 0x020C2828 + arm_func_start NNS_SndHeapLoadState +NNS_SndHeapLoadState: ; 0x020C2828 stmdb sp!, {r4-r11,lr} sub sp, sp, #0x4 mov r7, #0x0 @@ -75,7 +70,7 @@ FUN_020C2828: ; 0x020C2828 mov r10, r0 mov r6, r7 bne _020C2850 - bl FUN_020C29C0 + bl NNS_SndHeapClear add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} _020C2850: @@ -88,10 +83,10 @@ _020C2850: _020C2868: mov r0, r5 mov r1, r11 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject mov r1, r7 mov r8, r0 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r7, r0 beq _020C28C0 _020C2888: @@ -107,58 +102,56 @@ _020C2888: _020C28AC: mov r0, r8 mov r1, r7 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r7, r0 bne _020C2888 _020C28C0: mov r0, r5 mov r1, r8 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject ldrh r0, [r10, #0xc] cmp r9, r0 blt _020C2868 _020C28D8: ldr r0, [r10, #0x0] mov r1, r9 - bl FUN_020AE554 + bl NNS_FndFreeByStateToFrmHeap cmp r6, #0x0 beq _020C28F0 - bl FUN_020C2774 + bl EraseSync _020C28F0: ldrh r1, [r10, #0xc] ldr r0, [r10, #0x0] - bl FUN_020AE5B0 + bl NNS_FndRecordStateForFrmHeap mov r0, r10 - bl FUN_020C2794 + bl NewSection add sp, sp, #0x4 ldmia sp!, {r4-r11,pc} - ; _end - arm_func_start FUN_020C290C -FUN_020C290C: ; 0x020C290C + arm_func_start NNS_SndHeapSaveState +NNS_SndHeapSaveState: ; 0x020C290C stmdb sp!, {r4,lr} mov r4, r0 ldrh r1, [r4, #0xc] ldr r0, [r4, #0x0] - bl FUN_020AE5B0 + bl NNS_FndRecordStateForFrmHeap cmp r0, #0x0 mvneq r0, #0x0 ldmeqia sp!, {r4,pc} mov r0, r4 - bl FUN_020C2794 + bl NewSection cmp r0, #0x0 ldrneh r0, [r4, #0xc] subne r0, r0, #0x1 ldmneia sp!, {r4,pc} ldr r0, [r4, #0x0] mov r1, #0x0 - bl FUN_020AE554 + bl NNS_FndFreeByStateToFrmHeap mvn r0, #0x0 ldmia sp!, {r4,pc} - ; _end - arm_func_start SDATi_AllocAndInitChunk -SDATi_AllocAndInitChunk: ; 0x020C2958 + arm_func_start NNS_SndHeapAlloc +NNS_SndHeapAlloc: ; 0x020C2958 stmdb sp!, {r4-r8,lr} mov r7, r1 mov r8, r0 @@ -169,32 +162,31 @@ SDATi_AllocAndInitChunk: ; 0x020C2958 add r1, r1, #0x20 mov r2, #0x20 mov r5, r3 - bl FUN_020AE638 // some allocator? + bl NNS_FndAllocFromFrmHeapEx // some allocator? movs r4, r0 moveq r0, #0x0 ldmeqia sp!, {r4-r8,pc} add r0, r8, #0x4 mov r1, #0x0 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject str r7, [r4, #0x8] str r6, [r4, #0xc] ldr r2, [sp, #0x18] str r5, [r4, #0x10] mov r1, r4 str r2, [r4, #0x14] - bl FUN_020ADBE8 + bl NNS_FndAppendListObject add r0, r4, #0x20 ldmia sp!, {r4-r8,pc} - ; _end - arm_func_start FUN_020C29C0 -FUN_020C29C0: ; 0x020C29C0 + arm_func_start NNS_SndHeapClear +NNS_SndHeapClear: ; 0x020C29C0 stmdb sp!, {r4-r10,lr} mov r8, r0 mov r5, #0x0 mov r1, r5 add r0, r8, #0x4 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r7, r0 beq _020C2A58 add r9, r8, #0x4 @@ -203,7 +195,7 @@ FUN_020C29C0: ; 0x020C29C0 _020C29EC: mov r0, r7 mov r1, r4 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r6, r0 beq _020C2A38 _020C2A00: @@ -219,43 +211,41 @@ _020C2A00: _020C2A24: mov r0, r7 mov r1, r6 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r6, r0 bne _020C2A00 _020C2A38: mov r0, r9 mov r1, r7 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject mov r0, r9 mov r1, r4 - bl FUN_020ADA84 + bl NNS_FndGetPrevListObject movs r7, r0 bne _020C29EC _020C2A58: ldr r0, [r8, #0x0] mov r1, #0x3 - bl FUN_020AE600 + bl NNS_FndFreeToFrmHeap cmp r5, #0x0 beq _020C2A70 - bl FUN_020C2774 + bl EraseSync _020C2A70: mov r0, r8 - bl FUN_020C2794 + bl NewSection ldmia sp!, {r4-r10,pc} - ; _end - arm_func_start FUN_020C2A7C -FUN_020C2A7C: ; 0x020C2A7C + arm_func_start NNS_SndHeapDestroy +NNS_SndHeapDestroy: ; 0x020C2A7C stmdb sp!, {r4,lr} mov r4, r0 - bl FUN_020C29C0 + bl NNS_SndHeapClear ldr r0, [r4, #0x0] - bl thunk_FUN_020adc8c_2 + bl NNS_FndDestroyFrmHeap ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C2A94 -FUN_020C2A94: ; 0x020C2A94 + arm_func_start NNS_SndHeapCreate +NNS_SndHeapCreate: ; 0x020C2A94 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 add r2, r0, #0x3 @@ -273,21 +263,20 @@ FUN_020C2A94: ; 0x020C2A94 add r0, r5, #0x10 sub r1, r1, #0x10 mov r2, #0x0 - bl FUN_020AE684 + bl NNS_FndCreateFrmHeapEx movs r4, r0 addeq sp, sp, #0x4 moveq r0, #0x0 ldmeqia sp!, {r4-r5,pc} mov r0, r5 mov r1, r4 - bl FUN_020C27DC + bl InitHeap cmp r0, #0x0 addne sp, sp, #0x4 movne r0, r5 ldmneia sp!, {r4-r5,pc} mov r0, r4 - bl thunk_FUN_020adc8c_2 + bl NNS_FndDestroyFrmHeap mov r0, #0x0 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - diff --git a/arm9/asm/NNS_SND_main.s b/arm9/asm/NNS_SND_main.s index 94817a22e..4cbe3d65c 100644 --- a/arm9/asm/NNS_SND_main.s +++ b/arm9/asm/NNS_SND_main.s @@ -3,46 +3,39 @@ .section .bss - ; sCurDriverInfo - .global UNK_021D1C8C -UNK_021D1C8C: ; 0x021D1C8C + .global sCurDriverInfo +sCurDriverInfo: ; 0x021D1C8C .space 0x4 - ; sDriverInfoFirstFlag - .global UNK_021D1C90 -UNK_021D1C90: ; 0x021D1C90 + .global sDriverInfoFirstFlag +sDriverInfoFirstFlag: ; 0x021D1C90 .space 0x4 - ; initialized$8127 - .global UNK_021D1C94 -UNK_021D1C94: ; 0x021D1C94 + .global initialized$8127 +initialized$8127: ; 0x021D1C94 .space 0x4 - ; sPreSleepCallback - .global UNK_021D1C98 -UNK_021D1C98: ; 0x021D1C98 + .global sPreSleepCallback +sPreSleepCallback: ; 0x021D1C98 .space 0xc - ; sPostSleepCallback - .global UNK_021D1CA4 -UNK_021D1CA4: ; 0x021D1CA4 + .global sPostSleepCallback +sPostSleepCallback: ; 0x021D1CA4 .space 0xc .section .text - ; EndSleep - arm_func_start FUN_020C0130 -FUN_020C0130: ; 0x020C0130 - ldr ip, _020C0138 ; =FUN_020C187C + local_arm_func_start EndSleep +EndSleep: ; 0x020C0130 + ldr ip, _020C0138 ; =NNSi_SndCaptureEndSleep bx r12 .balign 4 -_020C0138: .word FUN_020C187C +_020C0138: .word NNSi_SndCaptureEndSleep - ; _end - arm_func_start FUN_020C013C -FUN_020C013C: ; 0x020C013C + local_arm_func_start BeginSleep +BeginSleep: ; 0x020C013C stmdb sp!, {r4,lr} - bl FUN_020C18F8 + bl NNSi_SndCaptureBeginSleep mov r0, #0x0 mov r1, r0 mov r2, r0 @@ -56,9 +49,8 @@ FUN_020C013C: ; 0x020C013C bl SND_WaitForCommandProc ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C0174 -FUN_020C0174: ; 0x020C0174 + arm_func_start NNS_SndSetMonoFlag +NNS_SndSetMonoFlag: ; 0x020C0174 stmdb sp!, {lr} sub sp, sp, #0x4 cmp r0, #0x0 @@ -72,9 +64,8 @@ _020C0194: add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C01A0 -FUN_020C01A0: ; 0x020C01A0 + arm_func_start NNS_SndMain +NNS_SndMain: ; 0x020C01A0 stmdb sp!, {r4,lr} mov r4, #0x0 _020C01A8: @@ -82,19 +73,18 @@ _020C01A8: bl SND_RecvCommandReply cmp r0, #0x0 bne _020C01A8 - bl FUN_020C0BA0 - bl FUN_020C1D9C - bl FUN_020C3C88 + bl NNSi_SndPlayerMain + bl NNSi_SndCaptureMain + bl NNSi_SndArcStrmMain mov r0, #0x0 bl SND_FlushCommand ldmia sp!, {r4,pc} - ; NNS_SndInit - arm_func_start SDAT_Init -SDAT_Init: ; 0x020C01D0 + arm_func_start NNS_SndInit +NNS_SndInit: ; 0x020C01D0 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r0, _020C0254 ; =UNK_021D1C94 + ldr r0, _020C0254 ; =initialized$8127 ldr r1, [r0, #0x0] cmp r1, #0x0 addne sp, sp, #0x4 @@ -102,35 +92,34 @@ SDAT_Init: ; 0x020C01D0 mov r1, #0x1 str r1, [r0, #0x0] bl SND_Init - ldr ip, _020C0258 ; =FUN_020C013C - ldr r0, _020C025C ; =UNK_021D1C98 + ldr ip, _020C0258 ; =BeginSleep + ldr r0, _020C025C ; =sPreSleepCallback mov r3, #0x0 - ldr r1, _020C0260 ; =UNK_021D1CA4 - ldr r2, _020C0264 ; =FUN_020C0130 + ldr r1, _020C0260 ; =sPostSleepCallback + ldr r2, _020C0264 ; =EndSleep str r12, [r0, #0x0] str r3, [r0, #0x4] str r2, [r1, #0x0] str r3, [r1, #0x4] bl PM_PrependPreSleepCallback - ldr r0, _020C0260 ; =UNK_021D1CA4 + ldr r0, _020C0260 ; =sPostSleepCallback bl PM_AppendPostSleepCallback - bl FUN_020C0270 - bl FUN_020C1E38 - bl FUN_020C0D20 - ldr r1, _020C0268 ; =UNK_021D1C8C + bl NNSi_SndInitResourceMgr + bl NNSi_SndCaptureInit + bl NNSi_SndPlayerInit + ldr r1, _020C0268 ; =sCurDriverInfo mvn r3, #0x0 - ldr r0, _020C026C ; =UNK_021D1C90 + ldr r0, _020C026C ; =sDriverInfoFirstFlag mov r2, #0x1 strb r3, [r1, #0x0] str r2, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {pc} .balign 4 -_020C0254: .word UNK_021D1C94 -_020C0258: .word FUN_020C013C -_020C025C: .word UNK_021D1C98 -_020C0260: .word UNK_021D1CA4 -_020C0264: .word FUN_020C0130 -_020C0268: .word UNK_021D1C8C -_020C026C: .word UNK_021D1C90 - +_020C0254: .word initialized$8127 +_020C0258: .word BeginSleep +_020C025C: .word sPreSleepCallback +_020C0260: .word sPostSleepCallback +_020C0264: .word EndSleep +_020C0268: .word sCurDriverInfo +_020C026C: .word sDriverInfoFirstFlag diff --git a/arm9/asm/NNS_SND_player.s b/arm9/asm/NNS_SND_player.s index 557afb1be..caaf345ee 100644 --- a/arm9/asm/NNS_SND_player.s +++ b/arm9/asm/NNS_SND_player.s @@ -3,51 +3,26 @@ .section .bss - ; sFreeList - .global UNK_021D1DFC -UNK_021D1DFC: ; 0x021D1DFC + .global sFreeList +sFreeList: ; 0x021D1DFC .space 0xc - ; sPrioList - .global UNK_021D1E08 -UNK_021D1E08: ; 0x021D1E08 + .global sPrioList +sPrioList: ; 0x021D1E08 .space 0xc - ; sSeqPlayer - .global UNK_021D1E14 -UNK_021D1E14: ; 0x021D1E14 + .global sSeqPlayer +sSeqPlayer: ; 0x021D1E14 .space 0x440 - ; sPlayer - .global UNK_021D2254 -UNK_021D2254: ; 0x021D2254 - .space 0x8 - - ; sPlayer + 0x8 - .global UNK_021D225C -UNK_021D225C: ; 0x021D225C - .space 0x10 - - ; sPlayer + 0x18 - .global UNK_021D226C -UNK_021D226C: ; 0x021D226C - .space 0x4 - - ; sPlayer + 0x1C - .global UNK_021D2270 -UNK_021D2270: ; 0x021D2270 - .space 0x4 - - ; sPlayer + 0x20 - .global UNK_021D2274 -UNK_021D2274: ; 0x021D2274 - .space 0x460 + .global sPlayer +sPlayer: ; 0x021D2254 + .space 0x480 .section .text - ; SetPlayerPriority - arm_func_start FUN_020C06CC -FUN_020C06CC: ; 0x020C06CC + arm_func_start SetPlayerPriority +SetPlayerPriority: ; 0x020C06CC stmdb sp!, {r4-r6,lr} mov r6, r0 ldr r4, [r6, #0x4] @@ -56,54 +31,52 @@ FUN_020C06CC: ; 0x020C06CC beq _020C06F8 mov r0, r4 mov r1, r6 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject mov r0, #0x0 str r0, [r6, #0x4] _020C06F8: - ldr r0, _020C0728 ; =UNK_021D1E08 + ldr r0, _020C0728 ; =sPrioList mov r1, r6 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject strb r5, [r6, #0x3d] cmp r4, #0x0 beq _020C071C mov r0, r4 mov r1, r6 - bl FUN_020C0910 + bl InsertPlayerList _020C071C: mov r0, r6 - bl FUN_020C08B4 + bl InsertPrioList ldmia sp!, {r4-r6,pc} .balign 4 -_020C0728: .word UNK_021D1E08 +_020C0728: .word sPrioList - ; PlayerHeapDisposeCallback - arm_func_start FUN_020C072C -FUN_020C072C: ; 0x020C072C + arm_func_start PlayerHeapDisposeCallback +PlayerHeapDisposeCallback: ; 0x020C072C stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x8] cmp r0, #0x0 ldmeqia sp!, {r4,pc} - bl FUN_020C2A7C + bl NNS_SndHeapDestroy ldr r1, [r4, #0xc] cmp r1, #0x0 movne r0, #0x0 strne r0, [r1, #0x8] ldmneia sp!, {r4,pc} ldr r1, [r4, #0x10] - ldr r2, _020C0778 ; =UNK_021D2254 + ldr r2, _020C0778 ; =sPlayer mov r0, #0x24 mla r0, r1, r0, r2 mov r1, r4 add r0, r0, #0xc - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject ldmia sp!, {r4,pc} .balign 4 -_020C0778: .word UNK_021D2254 +_020C0778: .word sPlayer - ; ShutdownPlayer - arm_func_start FUN_020C077C -FUN_020C077C: ; 0x020C077C + local_arm_func_start ShutdownPlayer +ShutdownPlayer: ; 0x020C077C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r0 @@ -115,71 +88,69 @@ FUN_020C077C: ; 0x020C077C ldr r5, [r4, #0x4] mov r1, r4 mov r0, r5 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject mov r0, #0x0 str r0, [r4, #0x4] ldr r1, [r4, #0x8] cmp r1, #0x0 beq _020C07D8 add r0, r5, #0xc - bl FUN_020ADBE8 + bl NNS_FndAppendListObject ldr r0, [r4, #0x8] mov r1, #0x0 str r1, [r0, #0xc] str r1, [r4, #0x8] _020C07D8: - ldr r0, _020C0800 ; =UNK_021D1E08 + ldr r0, _020C0800 ; =sPrioList mov r1, r4 - bl FUN_020ADAB0 - ldr r0, _020C0804 ; =UNK_021D1DFC + bl NNS_FndRemoveListObject + ldr r0, _020C0804 ; =sFreeList mov r1, r4 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject mov r0, #0x0 strb r0, [r4, #0x2c] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C0800: .word UNK_021D1E08 -_020C0804: .word UNK_021D1DFC +_020C0800: .word sPrioList +_020C0804: .word sFreeList - ; AllocSeqPlayer - arm_func_start FUN_020C0808 -FUN_020C0808: ; 0x020C0808 + arm_func_start AllocSeqPlayer +AllocSeqPlayer: ; 0x020C0808 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 - ldr r0, _020C0874 ; =UNK_021D1DFC + ldr r0, _020C0874 ; =sFreeList mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r4, r0 bne _020C0850 - ldr r0, _020C0878 ; =UNK_021D1E08 + ldr r0, _020C0878 ; =sPrioList mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject mov r4, r0 ldrb r1, [r4, #0x3d] cmp r5, r1 addlt sp, sp, #0x4 movlt r0, #0x0 ldmltia sp!, {r4-r5,pc} - bl FUN_020C087C + bl ForceStopSeq _020C0850: - ldr r0, _020C0874 ; =UNK_021D1DFC + ldr r0, _020C0874 ; =sFreeList mov r1, r4 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject mov r0, r4 strb r5, [r4, #0x3d] - bl FUN_020C08B4 + bl InsertPrioList mov r0, r4 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C0874: .word UNK_021D1DFC -_020C0878: .word UNK_021D1E08 +_020C0874: .word sFreeList +_020C0878: .word sPrioList - ; ForceStopSeq - arm_func_start FUN_020C087C -FUN_020C087C: ; 0x020C087C + arm_func_start ForceStopSeq +ForceStopSeq: ; 0x020C087C stmdb sp!, {r4,lr} mov r4, r0 ldrb r0, [r4, #0x2c] @@ -192,50 +163,48 @@ _020C089C: ldrb r0, [r4, #0x3c] bl SND_StopSeq mov r0, r4 - bl FUN_020C077C + bl ShutdownPlayer ldmia sp!, {r4,pc} .balign 4 _020C08B0: .word 0xFFFFFD2D - ; InsertPrioList - arm_func_start FUN_020C08B4 -FUN_020C08B4: ; 0x020C08B4 + arm_func_start InsertPrioList +InsertPrioList: ; 0x020C08B4 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 - ldr r0, _020C090C ; =UNK_021D1E08 + ldr r0, _020C090C ; =sPrioList mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r1, r0 beq _020C08F8 - ldr r4, _020C090C ; =UNK_021D1E08 + ldr r4, _020C090C ; =sPrioList _020C08D8: ldrb r2, [r5, #0x3d] ldrb r0, [r1, #0x3d] cmp r2, r0 blo _020C08F8 mov r0, r4 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r1, r0 bne _020C08D8 _020C08F8: - ldr r0, _020C090C ; =UNK_021D1E08 + ldr r0, _020C090C ; =sPrioList mov r2, r5 - bl FUN_020ADB18 + bl NNS_FndInsertListObject add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C090C: .word UNK_021D1E08 +_020C090C: .word sPrioList - ; _end - arm_func_start FUN_020C0910 -FUN_020C0910: ; 0x020C0910 + arm_func_start InsertPlayerList +InsertPlayerList: ; 0x020C0910 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 mov r1, #0x0 mov r5, r0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r1, r0 beq _020C0950 _020C0930: @@ -244,20 +213,19 @@ _020C0930: cmp r2, r0 blo _020C0950 mov r0, r5 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r1, r0 bne _020C0930 _020C0950: mov r0, r5 mov r2, r4 - bl FUN_020ADB18 + bl NNS_FndInsertListObject str r5, [r4, #0x4] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C0968 -FUN_020C0968: ; 0x020C0968 + arm_func_start InitPlayer +InitPlayer: ; 0x020C0968 stmdb sp!, {r4,lr} mov r4, r0 mov r0, #0x0 @@ -270,42 +238,40 @@ FUN_020C0968: ; 0x020C0968 strb r1, [r4, #0x40] add r0, r4, #0x1c strb r1, [r4, #0x41] - bl FUN_020C3E6C + bl NNSi_SndFaderInit add r0, r4, #0x1c mov r1, #0x7f00 mov r2, #0x1 - bl FUN_020C3E40 + bl NNSi_SndFaderSet ldmia sp!, {r4,pc} - ; NNSi_SndPlayerAllocHeap - arm_func_start FUN_020C09B0 -FUN_020C09B0: ; 0x020C09B0 + arm_func_start NNSi_SndPlayerAllocHeap +NNSi_SndPlayerAllocHeap: ; 0x020C09B0 stmdb sp!, {r4-r6,lr} - ldr r3, _020C0A00 ; =UNK_021D2254 + ldr r3, _020C0A00 ; =sPlayer mov r2, #0x24 mla r5, r0, r2, r3 mov r6, r1 add r0, r5, #0xc mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r4, r0 moveq r0, #0x0 ldmeqia sp!, {r4-r6,pc} mov r1, r4 add r0, r5, #0xc - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject str r6, [r4, #0xc] str r4, [r6, #0x8] ldr r0, [r4, #0x8] - bl FUN_020C29C0 + bl NNS_SndHeapClear ldr r0, [r4, #0x8] ldmia sp!, {r4-r6,pc} .balign 4 -_020C0A00: .word UNK_021D2254 +_020C0A00: .word sPlayer - ; _end - arm_func_start FUN_020C0A04 -FUN_020C0A04: ; 0x020C0A04 + arm_func_start NNSi_SndPlayerPause +NNSi_SndPlayerPause: ; 0x020C0A04 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 movs r5, r0 @@ -322,9 +288,8 @@ FUN_020C0A04: ; 0x020C0A04 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C0A40 -FUN_020C0A40: ; 0x020C0A40 + arm_func_start NNSi_SndPlayerStopSeq +NNSi_SndPlayerStopSeq: ; 0x020C0A40 stmdb sp!, {r4,lr} movs r4, r0 mov r2, r1 @@ -334,22 +299,21 @@ FUN_020C0A40: ; 0x020C0A40 ldmeqia sp!, {r4,pc} cmp r2, #0x0 bne _020C0A6C - bl FUN_020C087C + bl ForceStopSeq ldmia sp!, {r4,pc} _020C0A6C: add r0, r4, #0x1c mov r1, #0x0 - bl FUN_020C3E40 + bl NNSi_SndFaderSet mov r0, r4 mov r1, #0x0 - bl FUN_020C06CC + bl SetPlayerPriority mov r0, #0x2 strb r0, [r4, #0x2c] ldmia sp!, {r4,pc} - ; NNSi_SndPlayerStartSeq - arm_func_start FUN_020C0A90 -FUN_020C0A90: ; 0x020C0A90 + arm_func_start NNSi_SndPlayerStartSeq +NNSi_SndPlayerStartSeq: ; 0x020C0A90 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -364,7 +328,7 @@ FUN_020C0A90: ; 0x020C0A90 bl SND_SetTrackAllocatableChannel _020C0AC0: mov r0, r5 - bl FUN_020C0968 + bl InitPlayer bl SND_GetCurrentCommandTag str r0, [r5, #0x30] mov r0, #0x1 @@ -375,20 +339,18 @@ _020C0AC0: .balign 4 _020C0AE4: .word 0x0000FFFF - ; NNSi_SndPlayerFreeSeqPlayer - arm_func_start thunk_FUN_020c077c -thunk_FUN_020c077c: ; 0x020C0AE8 - ldr ip, _020C0AF0 ; =FUN_020C077C + arm_func_start NNSi_SndPlayerFreeSeqPlayer +NNSi_SndPlayerFreeSeqPlayer: ; 0x020C0AE8 + ldr ip, _020C0AF0 ; =ShutdownPlayer bx r12 .balign 4 -_020C0AF0: .word FUN_020C077C +_020C0AF0: .word ShutdownPlayer - ; NNSi_SndPlayerAllocSeqPlayer - arm_func_start FUN_020C0AF4 -FUN_020C0AF4: ; 0x020C0AF4 + arm_func_start NNSi_SndPlayerAllocSeqPlayer +NNSi_SndPlayerAllocSeqPlayer: ; 0x020C0AF4 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr ip, _020C0B9C ; =UNK_021D2254 + ldr ip, _020C0B9C ; =sPlayer mov r3, #0x24 mov r4, r0 ldr r5, [r4, #0x0] @@ -396,7 +358,7 @@ FUN_020C0AF4: ; 0x020C0AF4 mov r7, r2 cmp r5, #0x0 beq _020C0B20 - bl FUN_020C0F68 + bl NNS_SndHandleReleaseSeq _020C0B20: ldrh r1, [r6, #0x8] ldr r0, [r6, #0x18] @@ -404,7 +366,7 @@ _020C0B20: blo _020C0B64 mov r0, r6 mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject cmp r0, #0x0 addeq sp, sp, #0x4 moveq r0, #0x0 @@ -414,35 +376,34 @@ _020C0B20: addlt sp, sp, #0x4 movlt r0, #0x0 ldmltia sp!, {r4-r7,pc} - bl FUN_020C087C + bl ForceStopSeq _020C0B64: mov r0, r7 - bl FUN_020C0808 + bl AllocSeqPlayer movs r5, r0 addeq sp, sp, #0x4 moveq r0, #0x0 ldmeqia sp!, {r4-r7,pc} mov r0, r6 mov r1, r5 - bl FUN_020C0910 + bl InsertPlayerList str r4, [r5, #0x0] mov r0, r5 str r5, [r4, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C0B9C: .word UNK_021D2254 +_020C0B9C: .word sPlayer - ; NNSi_SndPlayerMain - arm_func_start FUN_020C0BA0 -FUN_020C0BA0: ; 0x020C0BA0 + arm_func_start NNSi_SndPlayerMain +NNSi_SndPlayerMain: ; 0x020C0BA0 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc bl SND_GetPlayerStatus str r0, [sp, #0x0] - ldr r0, _020C0D14 ; =UNK_021D1E08 + ldr r0, _020C0D14 ; =sPrioList mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r10, r0 addeq sp, sp, #0xc ldmeqia sp!, {r4-r11,pc} @@ -453,9 +414,9 @@ FUN_020C0BA0: ; 0x020C0BA0 mov r5, #0x1 mov r11, #0x0 _020C0BE0: - ldr r0, _020C0D14 ; =UNK_021D1E08 + ldr r0, _020C0D14 ; =sPrioList mov r1, r10 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject ldrb r1, [r10, #0x2d] mov r9, r0 cmp r1, #0x0 @@ -474,11 +435,11 @@ _020C0C0C: ands r0, r0, r1 bne _020C0C38 mov r0, r10 - bl FUN_020C077C + bl ShutdownPlayer b _020C0D00 _020C0C38: add r0, r10, #0x1c - bl FUN_020C3DF4 + bl NNSi_SndFaderUpdate ldr r0, [r10, #0x4] ldrb r2, [r10, #0x41] ldrb r1, [r10, #0x40] @@ -490,7 +451,7 @@ _020C0C38: ldrsh r8, [r4, r3] ldrsh r7, [r4, r2] ldrsh r6, [r4, r1] - bl FUN_020C3E0C + bl NNSi_SndFaderGet mov r0, r0, asr #0x8 mov r2, r0, lsl #0x1 add r1, r7, r8 @@ -518,11 +479,11 @@ _020C0CC4: cmp r0, #0x2 bne _020C0CE8 add r0, r10, #0x1c - bl FUN_020C3DDC + bl NNSi_SndFaderIsFinished cmp r0, #0x0 beq _020C0CE8 mov r0, r10 - bl FUN_020C087C + bl ForceStopSeq _020C0CE8: ldrb r0, [r10, #0x2f] cmp r0, #0x0 @@ -537,35 +498,34 @@ _020C0D00: add sp, sp, #0xc ldmia sp!, {r4-r11,pc} .balign 4 -_020C0D14: .word UNK_021D1E08 +_020C0D14: .word sPrioList _020C0D18: .word SNDi_DecibelTable _020C0D1C: .word 0x00007FFF - ; NNSi_SndPlayerInit - arm_func_start FUN_020C0D20 -FUN_020C0D20: ; 0x020C0D20 + arm_func_start NNSi_SndPlayerInit +NNSi_SndPlayerInit: ; 0x020C0D20 stmdb sp!, {r4-r10,lr} - ldr r0, _020C0DC4 ; =UNK_021D1E08 + ldr r0, _020C0DC4 ; =sPrioList mov r1, #0x14 - bl FUN_020ADC74 - ldr r0, _020C0DC8 ; =UNK_021D1DFC + bl NNS_FndInitList + ldr r0, _020C0DC8 ; =sFreeList mov r1, #0x14 - bl FUN_020ADC74 - ldr r6, _020C0DCC ; =UNK_021D1E14 + bl NNS_FndInitList + ldr r6, _020C0DCC ; =sSeqPlayer mov r7, #0x0 - ldr r4, _020C0DC8 ; =UNK_021D1DFC + ldr r4, _020C0DC8 ; =sFreeList mov r5, r7 _020C0D4C: strb r5, [r6, #0x2c] mov r0, r4 mov r1, r6 strb r7, [r6, #0x3c] - bl FUN_020ADBE8 + bl NNS_FndAppendListObject add r7, r7, #0x1 cmp r7, #0x10 add r6, r6, #0x44 blt _020C0D4C - ldr sl, _020C0DD0 ; =UNK_021D2254 + ldr sl, _020C0DD0 ; =sPlayer mov r9, #0x0 mov r7, r9 mov r4, r9 @@ -575,10 +535,10 @@ _020C0D4C: _020C0D8C: mov r0, r10 mov r1, r8 - bl FUN_020ADC74 + bl NNS_FndInitList mov r1, r7 add r0, r10, #0xc - bl FUN_020ADC74 + bl NNS_FndInitList strb r6, [r10, #0x20] str r5, [r10, #0x18] add r9, r9, #0x1 @@ -588,14 +548,13 @@ _020C0D8C: blt _020C0D8C ldmia sp!, {r4-r10,pc} .balign 4 -_020C0DC4: .word UNK_021D1E08 -_020C0DC8: .word UNK_021D1DFC -_020C0DCC: .word UNK_021D1E14 -_020C0DD0: .word UNK_021D2254 +_020C0DC4: .word sPrioList +_020C0DC8: .word sFreeList +_020C0DCC: .word sSeqPlayer +_020C0DD0: .word sPlayer - ; _end - arm_func_start FUN_020C0DD4 -FUN_020C0DD4: ; 0x020C0DD4 + arm_func_start NNS_SndPlayerGetTick +NNS_SndPlayerGetTick: ; 0x020C0DD4 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r1, [r0, #0x0] @@ -613,9 +572,8 @@ FUN_020C0DD4: ; 0x020C0DD4 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0E14 -FUN_020C0E14: ; 0x020C0E14 + arm_func_start NNS_SndPlayerGetSeqNo +NNS_SndPlayerGetSeqNo: ; 0x020C0E14 ldr r1, [r0, #0x0] cmp r1, #0x0 mvneq r0, #0x0 @@ -626,9 +584,8 @@ FUN_020C0E14: ; 0x020C0E14 ldreqh r0, [r1, #0x38] bx lr - ; _end - arm_func_start FUN_020C0E38 -FUN_020C0E38: ; 0x020C0E38 + arm_func_start NNS_SndPlayerSetSeqArcNo +NNS_SndPlayerSetSeqArcNo: ; 0x020C0E38 ldr r12, [r0, #0x0] cmp r12, #0x0 bxeq lr @@ -640,9 +597,8 @@ FUN_020C0E38: ; 0x020C0E38 strh r2, [r0, #0x3a] bx lr - ; _end - arm_func_start FUN_020C0E60 -FUN_020C0E60: ; 0x020C0E60 + arm_func_start NNS_SndPlayerSetSeqNo +NNS_SndPlayerSetSeqNo: ; 0x020C0E60 ldr r3, [r0, #0x0] cmp r3, #0x0 movne r2, #0x1 @@ -651,9 +607,8 @@ FUN_020C0E60: ; 0x020C0E60 strneh r1, [r0, #0x38] bx lr - ; _end - arm_func_start FUN_020C0E7C -FUN_020C0E7C: ; 0x020C0E7C + arm_func_start NNS_SndPlayerSetTrackPan +NNS_SndPlayerSetTrackPan: ; 0x020C0E7C stmdb sp!, {lr} sub sp, sp, #0x4 ldr r0, [r0, #0x0] @@ -665,9 +620,8 @@ FUN_020C0E7C: ; 0x020C0E7C add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0EA4 -FUN_020C0EA4: ; 0x020C0EA4 + arm_func_start NNS_SndPlayerSetTrackPitch +NNS_SndPlayerSetTrackPitch: ; 0x020C0EA4 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r0, [r0, #0x0] @@ -679,9 +633,8 @@ FUN_020C0EA4: ; 0x020C0EA4 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0ECC -FUN_020C0ECC: ; 0x020C0ECC + arm_func_start NNS_SndPlayerSetChannelPriority +NNS_SndPlayerSetChannelPriority: ; 0x020C0ECC stmdb sp!, {lr} sub sp, sp, #0x4 ldr r0, [r0, #0x0] @@ -693,9 +646,8 @@ FUN_020C0ECC: ; 0x020C0ECC add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0EF4 -FUN_020C0EF4: ; 0x020C0EF4 + arm_func_start NNS_SndPlayerMoveVolume +NNS_SndPlayerMoveVolume: ; 0x020C0EF4 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r3, [r0, #0x0] @@ -708,40 +660,36 @@ FUN_020C0EF4: ; 0x020C0EF4 ldmeqia sp!, {pc} add r0, r3, #0x1c mov r1, r1, lsl #0x8 - bl FUN_020C3E40 + bl NNSi_SndFaderSet add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0F30 -FUN_020C0F30: ; 0x020C0F30 + arm_func_start NNS_SndPlayerSetInitialVolume +NNS_SndPlayerSetInitialVolume: ; 0x020C0F30 ldr r0, [r0, #0x0] cmp r0, #0x0 strneb r1, [r0, #0x40] bx lr - ; _end - arm_func_start FUN_020C0F40 -FUN_020C0F40: ; 0x020C0F40 + arm_func_start NNS_SndPlayerSetVolume +NNS_SndPlayerSetVolume: ; 0x020C0F40 ldr r0, [r0, #0x0] cmp r0, #0x0 strneb r1, [r0, #0x41] bx lr - ; NNS_SndPlayerCountPlayingSeqByPlayerNo - arm_func_start FUN_020C0F50 -FUN_020C0F50: ; 0x020C0F50 + arm_func_start NNS_SndPlayerCountPlayingSeqByPlayerNo +NNS_SndPlayerCountPlayingSeqByPlayerNo: ; 0x020C0F50 mov r1, #0x24 mul r1, r0, r1 - ldr r0, _020C0F64 ; =UNK_021D225C + ldr r0, _020C0F64 ; =sPlayer + 0x8 ldrh r0, [r0, r1] bx lr .balign 4 -_020C0F64: .word UNK_021D225C +_020C0F64: .word sPlayer + 0x8 - ; _end - arm_func_start FUN_020C0F68 -FUN_020C0F68: ; 0x020C0F68 + arm_func_start NNS_SndHandleReleaseSeq +NNS_SndHandleReleaseSeq: ; 0x020C0F68 ldr r2, [r0, #0x0] cmp r2, #0x0 movne r1, #0x0 @@ -749,27 +697,24 @@ FUN_020C0F68: ; 0x020C0F68 strne r1, [r0, #0x0] bx lr - ; _end - arm_func_start FUN_020C0F80 -FUN_020C0F80: ; 0x020C0F80 + arm_func_start NNS_SndHandleInit +NNS_SndHandleInit: ; 0x020C0F80 mov r1, #0x0 str r1, [r0, #0x0] bx lr - ; NNS_SndPlayerPause - arm_func_start FUN_020C0F8C -FUN_020C0F8C: ; 0x020C0F8C - ldr ip, _020C0F98 ; =FUN_020C0A04 + arm_func_start NNS_SndPlayerPause +NNS_SndPlayerPause: ; 0x020C0F8C + ldr ip, _020C0F98 ; =NNSi_SndPlayerPause ldr r0, [r0, #0x0] bx r12 .balign 4 -_020C0F98: .word FUN_020C0A04 +_020C0F98: .word NNSi_SndPlayerPause - ; NNS_SndPlayerStopSeqAll - arm_func_start FUN_020C0F9C -FUN_020C0F9C: ; 0x020C0F9C + arm_func_start NNS_SndPlayerStopSeqAll +NNS_SndPlayerStopSeqAll: ; 0x020C0F9C stmdb sp!, {r4-r6,lr} - ldr r4, _020C0FD8 ; =UNK_021D1E14 + ldr r4, _020C0FD8 ; =sSeqPlayer mov r6, r0 mov r5, #0x0 _020C0FAC: @@ -778,7 +723,7 @@ _020C0FAC: beq _020C0FC4 mov r0, r4 mov r1, r6 - bl FUN_020C0A40 + bl NNSi_SndPlayerStopSeq _020C0FC4: add r5, r5, #0x1 cmp r5, #0x10 @@ -786,14 +731,13 @@ _020C0FC4: blt _020C0FAC ldmia sp!, {r4-r6,pc} .balign 4 -_020C0FD8: .word UNK_021D1E14 +_020C0FD8: .word sSeqPlayer - ; NNS_SndPlayerStopSeqBySeqNo - arm_func_start FUN_020C0FDC -FUN_020C0FDC: ; 0x020C0FDC + arm_func_start NNS_SndPlayerStopSeqBySeqNo +NNS_SndPlayerStopSeqBySeqNo: ; 0x020C0FDC stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr r4, _020C103C ; =UNK_021D1E14 + ldr r4, _020C103C ; =sSeqPlayer mov r7, r0 mov r6, r1 mov r5, #0x0 @@ -809,7 +753,7 @@ _020C0FF4: bne _020C1024 mov r0, r4 mov r1, r6 - bl FUN_020C0A40 + bl NNSi_SndPlayerStopSeq _020C1024: add r5, r5, #0x1 cmp r5, #0x10 @@ -818,17 +762,16 @@ _020C1024: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C103C: .word UNK_021D1E14 +_020C103C: .word sSeqPlayer - ; NNS_SndPlayerStopSeqByPlayerNo - arm_func_start FUN_020C1040 -FUN_020C1040: ; 0x020C1040 + arm_func_start NNS_SndPlayerStopSeqByPlayerNo +NNS_SndPlayerStopSeqByPlayerNo: ; 0x020C1040 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr r3, _020C109C ; =UNK_021D2254 + ldr r3, _020C109C ; =sPlayer mov r2, #0x24 mla r4, r0, r2, r3 - ldr r5, _020C10A0 ; =UNK_021D1E14 + ldr r5, _020C10A0 ; =sSeqPlayer mov r7, r1 mov r6, #0x0 _020C1060: @@ -840,7 +783,7 @@ _020C1060: bne _020C1084 mov r0, r5 mov r1, r7 - bl FUN_020C0A40 + bl NNSi_SndPlayerStopSeq _020C1084: add r6, r6, #0x1 cmp r6, #0x10 @@ -849,31 +792,29 @@ _020C1084: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C109C: .word UNK_021D2254 -_020C10A0: .word UNK_021D1E14 +_020C109C: .word sPlayer +_020C10A0: .word sSeqPlayer - ; NNS_SndPlayerStopSeq - arm_func_start FUN_020C10A4 -FUN_020C10A4: ; 0x020C10A4 - ldr ip, _020C10B0 ; =FUN_020C0A40 + arm_func_start NNS_SndPlayerStopSeq +NNS_SndPlayerStopSeq: ; 0x020C10A4 + ldr ip, _020C10B0 ; =NNSi_SndPlayerStopSeq ldr r0, [r0, #0x0] bx r12 .balign 4 -_020C10B0: .word FUN_020C0A40 +_020C10B0: .word NNSi_SndPlayerStopSeq - ; NNS_SndPlayerCreateHeap - arm_func_start FUN_020C10B4 -FUN_020C10B4: ; 0x020C10B4 + arm_func_start NNS_SndPlayerCreateHeap +NNS_SndPlayerCreateHeap: ; 0x020C10B4 stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 mov r5, r2 mov r6, r0 mov r0, r1 mov r3, #0x0 - ldr r2, _020C1140 ; =FUN_020C072C + ldr r2, _020C1140 ; =PlayerHeapDisposeCallback add r1, r5, #0x14 str r3, [sp, #0x0] - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc movs r4, r0 addeq sp, sp, #0x8 moveq r0, #0x0 @@ -884,57 +825,53 @@ FUN_020C10B4: ; 0x020C10B4 mov r1, r5 add r0, r4, #0x14 str r2, [r4, #0x8] - bl FUN_020C2A94 + bl NNS_SndHeapCreate cmp r0, #0x0 addeq sp, sp, #0x8 moveq r0, #0x0 ldmeqia sp!, {r4-r6,pc} - ldr r2, _020C1144 ; =UNK_021D2254 + ldr r2, _020C1144 ; =sPlayer mov r1, #0x24 mla r2, r6, r1, r2 str r0, [r4, #0x8] mov r1, r4 add r0, r2, #0xc - bl FUN_020ADBE8 + bl NNS_FndAppendListObject mov r0, #0x1 add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020C1140: .word FUN_020C072C -_020C1144: .word UNK_021D2254 +_020C1140: .word PlayerHeapDisposeCallback +_020C1144: .word sPlayer - ; NNS_SndPlayerSetAllocatableChannel - arm_func_start FUN_020C1148 -FUN_020C1148: ; 0x020C1148 + arm_func_start NNS_SndPlayerSetAllocatableChannel +NNS_SndPlayerSetAllocatableChannel: ; 0x020C1148 mov r2, #0x24 mul r2, r0, r2 - ldr r0, _020C115C ; =UNK_021D2270 + ldr r0, _020C115C ; =sPlayer + 0x1C str r1, [r0, r2] bx lr .balign 4 -_020C115C: .word UNK_021D2270 +_020C115C: .word sPlayer + 0x1C - ; NNS_SndPlayerSetPlayableSeqCount - arm_func_start FUN_020C1160 -FUN_020C1160: ; 0x020C1160 + arm_func_start NNS_SndPlayerSetPlayableSeqCount +NNS_SndPlayerSetPlayableSeqCount: ; 0x020C1160 mov r2, #0x24 mul r2, r0, r2 mov r0, r1, lsl #0x10 - ldr r1, _020C117C ; =UNK_021D226C + ldr r1, _020C117C ; =sPlayer + 0x18 mov r0, r0, lsr #0x10 str r0, [r1, r2] bx lr .balign 4 -_020C117C: .word UNK_021D226C +_020C117C: .word sPlayer + 0x18 - ; NNS_SndPlayerSetPlayerVolume - arm_func_start FUN_020C1180 -FUN_020C1180: ; 0x020C1180 + arm_func_start NNS_SndPlayerSetPlayerVolume +NNS_SndPlayerSetPlayerVolume: ; 0x020C1180 mov r2, #0x24 mul r2, r0, r2 - ldr r0, _020C1194 ; =UNK_021D2274 + ldr r0, _020C1194 ; =sPlayer + 0x20 strb r1, [r0, r2] bx lr .balign 4 -_020C1194: .word UNK_021D2274 - +_020C1194: .word sPlayer + 0x20 diff --git a/arm9/asm/NNS_SND_resource_mgr.s b/arm9/asm/NNS_SND_resource_mgr.s index 482b8e811..944754cca 100644 --- a/arm9/asm/NNS_SND_resource_mgr.s +++ b/arm9/asm/NNS_SND_resource_mgr.s @@ -3,43 +3,38 @@ .section .bss - ; sCaptureLock - .global UNK_021D1CB0 -UNK_021D1CB0: ; 0x021D1CB0 + .global sCaptureLock +sCaptureLock: ; 0x021D1CB0 .space 0x4 - ; sAlarmLock - .global UNK_021D1CB4 -UNK_021D1CB4: ; 0x021D1CB4 + .global sAlarmLock +sAlarmLock: ; 0x021D1CB4 .space 0x4 - ; sChannelLock - .global UNK_021D1CB8 -UNK_021D1CB8: ; 0x021D1CB8 + .global sChannelLock +sChannelLock: ; 0x021D1CB8 .space 0x4 .section .text - ; NNSi_SndInitResourceMgr - arm_func_start FUN_020C0270 -FUN_020C0270: ; 0x020C0270 - ldr r2, _020C0290 ; =UNK_021D1CB8 + arm_func_start NNSi_SndInitResourceMgr +NNSi_SndInitResourceMgr: ; 0x020C0270 + ldr r2, _020C0290 ; =sChannelLock mov r3, #0x0 - ldr r1, _020C0294 ; =UNK_021D1CB0 - ldr r0, _020C0298 ; =UNK_021D1CB4 + ldr r1, _020C0294 ; =sCaptureLock + ldr r0, _020C0298 ; =sAlarmLock str r3, [r2, #0x0] str r3, [r1, #0x0] str r3, [r0, #0x0] bx lr .balign 4 -_020C0290: .word UNK_021D1CB8 -_020C0294: .word UNK_021D1CB0 -_020C0298: .word UNK_021D1CB4 +_020C0290: .word sChannelLock +_020C0294: .word sCaptureLock +_020C0298: .word sAlarmLock - ; NNS_SndFreeAlarm - arm_func_start FUN_020C029C -FUN_020C029C: ; 0x020C029C - ldr r1, _020C02B8 ; =UNK_021D1CB4 + arm_func_start NNS_SndFreeAlarm +NNS_SndFreeAlarm: ; 0x020C029C + ldr r1, _020C02B8 ; =sAlarmLock mov r2, #0x1 mvn r0, r2, lsl r0 ldr r2, [r1, #0x0] @@ -47,18 +42,17 @@ FUN_020C029C: ; 0x020C029C str r0, [r1, #0x0] bx lr .balign 4 -_020C02B8: .word UNK_021D1CB4 +_020C02B8: .word sAlarmLock - ; NNS_SndAllocAlarm - arm_func_start FUN_020C02BC -FUN_020C02BC: ; 0x020C02BC - ldr r0, _020C02FC ; =UNK_021D1CB4 + arm_func_start NNS_SndAllocAlarm +NNS_SndAllocAlarm: ; 0x020C02BC + ldr r0, _020C02FC ; =sAlarmLock mov r3, #0x1 ldr r2, [r0, #0x0] mov r0, #0x0 _020C02CC: ands r1, r2, r3 - ldreq r1, _020C02FC ; =UNK_021D1CB4 + ldreq r1, _020C02FC ; =sAlarmLock ldreq r2, [r1, #0x0] orreq r2, r2, r3 streq r2, [r1, #0x0] @@ -70,24 +64,22 @@ _020C02CC: mvn r0, #0x0 bx lr .balign 4 -_020C02FC: .word UNK_021D1CB4 +_020C02FC: .word sAlarmLock - ; NNS_SndUnlockCapture - arm_func_start FUN_020C0300 -FUN_020C0300: ; 0x020C0300 - ldr r1, _020C0318 ; =UNK_021D1CB0 + arm_func_start NNS_SndUnlockCapture +NNS_SndUnlockCapture: ; 0x020C0300 + ldr r1, _020C0318 ; =sCaptureLock mvn r0, r0 ldr r2, [r1, #0x0] and r0, r2, r0 str r0, [r1, #0x0] bx lr .balign 4 -_020C0318: .word UNK_021D1CB0 +_020C0318: .word sCaptureLock - ; NNS_SndLockCapture - arm_func_start FUN_020C031C -FUN_020C031C: ; 0x020C031C - ldr r1, _020C033C ; =UNK_021D1CB0 + arm_func_start NNS_SndLockCapture +NNS_SndLockCapture: ; 0x020C031C + ldr r1, _020C033C ; =sCaptureLock ldr r2, [r1, #0x0] ands r3, r0, r2 movne r0, #0x0 @@ -96,45 +88,42 @@ FUN_020C031C: ; 0x020C031C moveq r0, #0x1 bx lr .balign 4 -_020C033C: .word UNK_021D1CB0 +_020C033C: .word sCaptureLock - ; NNS_SndUnlockChannel - arm_func_start FUN_020C0340 -FUN_020C0340: ; 0x020C0340 + arm_func_start NNS_SndUnlockChannel +NNS_SndUnlockChannel: ; 0x020C0340 stmdb sp!, {r4,lr} movs r4, r0 ldmeqia sp!, {r4,pc} mov r1, #0x0 bl SND_UnlockChannel - ldr r0, _020C036C ; =UNK_021D1CB8 + ldr r0, _020C036C ; =sChannelLock mvn r1, r4 ldr r2, [r0, #0x0] and r1, r2, r1 str r1, [r0, #0x0] ldmia sp!, {r4,pc} .balign 4 -_020C036C: .word UNK_021D1CB8 +_020C036C: .word sChannelLock - ; NNS_SndLockChannel - arm_func_start FUN_020C0370 -FUN_020C0370: ; 0x020C0370 + arm_func_start NNS_SndLockChannel +NNS_SndLockChannel: ; 0x020C0370 stmdb sp!, {r4,lr} movs r4, r0 moveq r0, #0x1 ldmeqia sp!, {r4,pc} - ldr r1, _020C03B4 ; =UNK_021D1CB8 + ldr r1, _020C03B4 ; =sChannelLock ldr r1, [r1, #0x0] ands r1, r4, r1 movne r0, #0x0 ldmneia sp!, {r4,pc} mov r1, #0x0 bl SND_LockChannel - ldr r1, _020C03B4 ; =UNK_021D1CB8 + ldr r1, _020C03B4 ; =sChannelLock mov r0, #0x1 ldr r2, [r1, #0x0] orr r2, r2, r4 str r2, [r1, #0x0] ldmia sp!, {r4,pc} .balign 4 -_020C03B4: .word UNK_021D1CB8 - +_020C03B4: .word sChannelLock diff --git a/arm9/asm/NNS_SND_seqdata.s b/arm9/asm/NNS_SND_seqdata.s index 86a4217c8..60cf24201 100644 --- a/arm9/asm/NNS_SND_seqdata.s +++ b/arm9/asm/NNS_SND_seqdata.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020C3D9C -FUN_020C3D9C: ; 0x020C3D9C + arm_func_start NNSi_SndSeqArcGetSeqInfo +NNSi_SndSeqArcGetSeqInfo: ; 0x020C3D9C cmp r1, #0x0 movlt r0, #0x0 bxlt lr @@ -22,4 +21,3 @@ FUN_020C3D9C: ; 0x020C3D9C add r0, r3, r2 moveq r0, #0x0 bx lr - diff --git a/arm9/asm/NNS_SND_sndarc.s b/arm9/asm/NNS_SND_sndarc.s index 1f7816317..aa46de464 100644 --- a/arm9/asm/NNS_SND_sndarc.s +++ b/arm9/asm/NNS_SND_sndarc.s @@ -3,50 +3,44 @@ .section .bss - ; sCurrent - .global UNK_021D28C0 -UNK_021D28C0: ; 0x021D28C0 + .global sCurrent +sCurrent: ; 0x021D28C0 .space 0x4 .section .text - ; _end - arm_func_start SDATi_SymbDtor -SDATi_SymbDtor: ; 0x020C209C + arm_func_start SymbolDisposeCallback +SymbolDisposeCallback: ; 0x020C209C mov r0, #0x0 str r0, [r2, #0x88] bx lr - ; _end - arm_func_start SDATi_FatDtor -SDATi_FatDtor: ; 0x020C20A8 + arm_func_start FatDisposeCallback +FatDisposeCallback: ; 0x020C20A8 mov r0, #0x0 str r0, [r2, #0x84] bx lr - ; _end - arm_func_start SDATi_InfoDtor -SDATi_InfoDtor: ; 0x020C20B4 + arm_func_start InfoDisposeCallback +InfoDisposeCallback: ; 0x020C20B4 mov r0, #0x0 str r0, [r2, #0x8c] bx lr - ; NNS_SndArcSetFileAddress - arm_func_start FUN_020C20C0 -FUN_020C20C0: ; 0x020C20C0 - ldr r2, _020C20D8 ; =UNK_021D28C0 + arm_func_start NNS_SndArcSetFileAddress +NNS_SndArcSetFileAddress: ; 0x020C20C0 + ldr r2, _020C20D8 ; =sCurrent ldr r2, [r2, #0x0] ldr r2, [r2, #0x84] add r0, r2, r0, lsl #0x4 str r1, [r0, #0x14] bx lr .balign 4 -_020C20D8: .word UNK_021D28C0 +_020C20D8: .word sCurrent - ; NNS_SndArcGetFileAddress - arm_func_start FUN_020C20DC -FUN_020C20DC: ; 0x020C20DC - ldr r1, _020C2100 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetFileAddress +NNS_SndArcGetFileAddress: ; 0x020C20DC + ldr r1, _020C2100 ; =sCurrent ldr r1, [r1, #0x0] ldr r2, [r1, #0x84] ldr r1, [r2, #0x8] @@ -56,13 +50,12 @@ FUN_020C20DC: ; 0x020C20DC ldrcc r0, [r0, #0x14] bx lr .balign 4 -_020C2100: .word UNK_021D28C0 +_020C2100: .word sCurrent - ; NNS_SndArcReadFile - arm_func_start FUN_020C2104 -FUN_020C2104: ; 0x020C2104 + arm_func_start NNS_SndArcReadFile +NNS_SndArcReadFile: ; 0x020C2104 stmdb sp!, {r4-r6,lr} - ldr r4, _020C2178 ; =UNK_021D28C0 + ldr r4, _020C2178 ; =sCurrent mov r5, r2 ldr r4, [r4, #0x0] mov r6, r1 @@ -91,12 +84,11 @@ FUN_020C2104: ; 0x020C2104 bl FS_ReadFile ldmia sp!, {r4-r6,pc} .balign 4 -_020C2178: .word UNK_021D28C0 +_020C2178: .word sCurrent - ; NNS_SndArcGetFileSize - arm_func_start FUN_020C217C -FUN_020C217C: ; 0x020C217C - ldr r1, _020C21A0 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetFileSize +NNS_SndArcGetFileSize: ; 0x020C217C + ldr r1, _020C21A0 ; =sCurrent ldr r1, [r1, #0x0] ldr r2, [r1, #0x84] ldr r1, [r2, #0x8] @@ -106,12 +98,11 @@ FUN_020C217C: ; 0x020C217C ldrcc r0, [r0, #0x10] bx lr .balign 4 -_020C21A0: .word UNK_021D28C0 +_020C21A0: .word sCurrent - ; NNS_SndArcGetGroupInfo - arm_func_start FUN_020C21A4 -FUN_020C21A4: ; 0x020C21A4 - ldr r1, _020C2204 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetGroupInfo +NNS_SndArcGetGroupInfo: ; 0x020C21A4 + ldr r1, _020C2204 ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0x1c] @@ -136,12 +127,11 @@ FUN_020C21A4: ; 0x020C21A4 addne r0, r0, r1 bx lr .balign 4 -_020C2204: .word UNK_021D28C0 +_020C2204: .word sCurrent - ; NNS_SndArcGetPlayerInfo - arm_func_start FUN_020C2208 -FUN_020C2208: ; 0x020C2208 - ldr r1, _020C2268 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetPlayerInfo +NNS_SndArcGetPlayerInfo: ; 0x020C2208 + ldr r1, _020C2268 ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0x18] @@ -166,12 +156,11 @@ FUN_020C2208: ; 0x020C2208 addne r0, r0, r1 bx lr .balign 4 -_020C2268: .word UNK_021D28C0 +_020C2268: .word sCurrent - ; NNS_SndArcGetWaveArcInfo - arm_func_start FUN_020C226C -FUN_020C226C: ; 0x020C226C - ldr r1, _020C22CC ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetWaveArcInfo +NNS_SndArcGetWaveArcInfo: ; 0x020C226C + ldr r1, _020C22CC ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0x14] @@ -196,12 +185,11 @@ FUN_020C226C: ; 0x020C226C addne r0, r0, r1 bx lr .balign 4 -_020C22CC: .word UNK_021D28C0 +_020C22CC: .word sCurrent - ; NNS_SndArcGetBankInfo - arm_func_start FUN_020C22D0 -FUN_020C22D0: ; 0x020C22D0 - ldr r1, _020C2330 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetBankInfo +NNS_SndArcGetBankInfo: ; 0x020C22D0 + ldr r1, _020C2330 ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0x10] @@ -226,12 +214,11 @@ FUN_020C22D0: ; 0x020C22D0 addne r0, r0, r1 bx lr .balign 4 -_020C2330: .word UNK_021D28C0 +_020C2330: .word sCurrent - ; NNS_SndArcGetSeqArcInfo - arm_func_start FUN_020C2334 -FUN_020C2334: ; 0x020C2334 - ldr r1, _020C2394 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetSeqArcInfo +NNS_SndArcGetSeqArcInfo: ; 0x020C2334 + ldr r1, _020C2394 ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0xc] @@ -256,12 +243,11 @@ FUN_020C2334: ; 0x020C2334 addne r0, r0, r1 bx lr .balign 4 -_020C2394: .word UNK_021D28C0 +_020C2394: .word sCurrent - ; NNS_SndArcGetSeqInfo - arm_func_start FUN_020C2398 -FUN_020C2398: ; 0x020C2398 - ldr r1, _020C23F8 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetSeqInfo +NNS_SndArcGetSeqInfo: ; 0x020C2398 + ldr r1, _020C23F8 ; =sCurrent ldr r3, [r1, #0x0] ldr r2, [r3, #0x8c] ldr r1, [r2, #0x8] @@ -286,43 +272,39 @@ FUN_020C2398: ; 0x020C2398 addne r0, r0, r1 bx lr .balign 4 -_020C23F8: .word UNK_021D28C0 +_020C23F8: .word sCurrent - ; _end - arm_func_start FUN_020C23FC -FUN_020C23FC: ; 0x020C23FC + arm_func_start NNS_SndArcGetSeqParam +NNS_SndArcGetSeqParam: ; 0x020C23FC stmdb sp!, {lr} sub sp, sp, #0x4 - bl FUN_020C2398 + bl NNS_SndArcGetSeqInfo cmp r0, #0x0 moveq r0, #0x0 addne r0, r0, #0x4 add sp, sp, #0x4 ldmia sp!, {pc} - ; NNS_SndArcGetCurrent - arm_func_start FUN_020C241C -FUN_020C241C: ; 0x020C241C - ldr r0, _020C2428 ; =UNK_021D28C0 + arm_func_start NNS_SndArcGetCurrent +NNS_SndArcGetCurrent: ; 0x020C241C + ldr r0, _020C2428 ; =sCurrent ldr r0, [r0, #0x0] bx lr .balign 4 -_020C2428: .word UNK_021D28C0 +_020C2428: .word sCurrent - ; NNS_SndArcSetCurrent - arm_func_start FUN_020C242C -FUN_020C242C: ; 0x020C242C - ldr r1, _020C2440 ; =UNK_021D28C0 + arm_func_start NNS_SndArcSetCurrent +NNS_SndArcSetCurrent: ; 0x020C242C + ldr r1, _020C2440 ; =sCurrent ldr r2, [r1, #0x0] str r0, [r1, #0x0] mov r0, r2 bx lr .balign 4 -_020C2440: .word UNK_021D28C0 +_020C2440: .word sCurrent - ; NNS_SndArcInitOnMemory - arm_func_start FUN_020C2444 -FUN_020C2444: ; 0x020C2444 + arm_func_start NNS_SndArcInitOnMemory +NNS_SndArcInitOnMemory: ; 0x020C2444 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -369,14 +351,13 @@ _020C24BC: blo _020C24BC _020C24F0: mov r1, #0x0 - ldr r0, _020C2508 ; =UNK_021D28C0 + ldr r0, _020C2508 ; =sCurrent str r1, [r5, #0x30] str r5, [r0, #0x0] add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C2508: .word UNK_021D28C0 - +_020C2508: .word sCurrent SDATi_ReadHeaders: stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 @@ -404,10 +385,10 @@ SDATi_ReadHeaders: mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [r6, #0x1c] - ldr r2, _020C26EC ; =SDATi_InfoDtor + ldr r2, _020C26EC ; =InfoDisposeCallback mov r0, r5 mov r3, r6 - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc str r0, [r6, #0x8c] ldr r0, [r6, #0x8c] cmp r0, #0x0 @@ -434,10 +415,10 @@ SDATi_ReadHeaders: mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [r6, #0x24] - ldr r2, _020C26F0 ; =SDATi_FatDtor + ldr r2, _020C26F0 ; =FatDisposeCallback mov r0, r5 mov r3, r6 - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc str r0, [r6, #0x84] ldr r0, [r6, #0x84] cmp r0, #0x0 @@ -467,11 +448,11 @@ SDATi_ReadHeaders: cmp r1, #0x0 beq _020C26E0 mov r4, #0x0 - ldr r2, _020C26F4 ; =SDATi_SymbDtor + ldr r2, _020C26F4 ; =SymbolDisposeCallback mov r0, r5 mov r3, r6 str r4, [sp, #0x0] - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc str r0, [r6, #0x88] ldr r0, [r6, #0x88] cmp r0, #0x0 @@ -500,13 +481,12 @@ _020C26E0: add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 -_020C26EC: .word SDATi_InfoDtor -_020C26F0: .word SDATi_FatDtor -_020C26F4: .word SDATi_SymbDtor +_020C26EC: .word InfoDisposeCallback +_020C26F0: .word FatDisposeCallback +_020C26F4: .word SymbolDisposeCallback - ; NNS_SndArcInit - arm_func_start SDAT_Open -SDAT_Open: ; 0x020C26F8 + arm_func_start NNS_SndArcInit +NNS_SndArcInit: ; 0x020C26F8 ; r0: &sSoundDataBuffer ; r1: char* filename ; r2: (&sSoundDataBuffer)->unk_0090 @@ -538,9 +518,8 @@ SDAT_Open: ; 0x020C26F8 str r3, [r6, #0x30] bl SDATi_ReadHeaders cmp r0, #0x0 - ldrne r0, _020C2770 ; =UNK_021D28C0 + ldrne r0, _020C2770 ; =sCurrent strne r6, [r0, #0x0] ldmia sp!, {r4-r6,pc} .balign 4 -_020C2770: .word UNK_021D28C0 - +_020C2770: .word sCurrent diff --git a/arm9/asm/NNS_SND_sndarc_loader.s b/arm9/asm/NNS_SND_sndarc_loader.s index 918a296bf..266363056 100644 --- a/arm9/asm/NNS_SND_sndarc_loader.s +++ b/arm9/asm/NNS_SND_sndarc_loader.s @@ -3,16 +3,14 @@ .section .bss - ; waveArcHeader$8213 - .global UNK_021D28C4 -UNK_021D28C4: ; 0x021D28C4 + .global waveArcHeader$8213 +waveArcHeader$8213: ; 0x021D28C4 .space 0x3c .section .text - ; _end - arm_func_start FUN_020C2B1C -FUN_020C2B1C: ; 0x020C2B1C + arm_func_start LoadSingleWaves +LoadSingleWaves: ; 0x020C2B1C stmdb sp!, {r4-r10,lr} sub sp, sp, #0x20 mov r8, r0 @@ -49,7 +47,7 @@ _020C2B80: mov r0, r8 mov r2, r5 mov r3, r4 - bl FUN_020C2BE0 + bl LoadSingleWave cmp r0, #0x0 addeq sp, sp, #0x20 moveq r0, #0x0 @@ -66,9 +64,8 @@ _020C2BD4: add sp, sp, #0x20 ldmia sp!, {r4-r10,pc} - ; LoadSingleWave - arm_func_start FUN_020C2BE0 -FUN_020C2BE0: ; 0x020C2BE0 + arm_func_start LoadSingleWave +LoadSingleWave: ; 0x020C2BE0 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 mov r7, r0 @@ -95,12 +92,12 @@ FUN_020C2BE0: ; 0x020C2BE0 addeq sp, sp, #0x4 moveq r0, #0x0 ldmeqia sp!, {r4-r9,pc} - ldr r2, _020C2CBC ; =FUN_020C2CC0 + ldr r2, _020C2CBC ; =SingleWaveDisposeCallback mov r0, r4 mov r3, r7 add r1, r9, #0x20 str r6, [sp, #0x0] - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc movs r4, r0 addeq sp, sp, #0x4 moveq r0, #0x0 @@ -109,7 +106,7 @@ FUN_020C2BE0: ; 0x020C2BE0 mov r1, r4 mov r2, r9 mov r3, r8 - bl FUN_020C2104 + bl NNS_SndArcReadFile cmp r9, r0 addne sp, sp, #0x4 movne r0, #0x0 @@ -125,11 +122,10 @@ FUN_020C2BE0: ; 0x020C2BE0 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020C2CBC: .word FUN_020C2CC0 +_020C2CBC: .word SingleWaveDisposeCallback - ; _end - arm_func_start FUN_020C2CC0 -FUN_020C2CC0: ; 0x020C2CC0 + arm_func_start SingleWaveDisposeCallback +SingleWaveDisposeCallback: ; 0x020C2CC0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r5, r2 @@ -152,28 +148,26 @@ _020C2CFC: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - ; _end - arm_func_start FUN_020C2D10 -FUN_020C2D10: ; 0x020C2D10 + arm_func_start WaveArcTableDisposeCallback +WaveArcTableDisposeCallback: ; 0x020C2D10 stmdb sp!, {r4,lr} mov r1, r2 mov r4, r0 mov r2, r3 - bl FUN_020C2DD0 + bl DisposeCallback mov r0, r4 bl SND_DestroyWaveArc ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C2D30 -FUN_020C2D30: ; 0x020C2D30 + arm_func_start WaveArcDisposeCallback +WaveArcDisposeCallback: ; 0x020C2D30 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 mov r1, r2 mov r5, r0 mov r2, r3 - bl FUN_020C2DD0 + bl DisposeCallback mov r0, r5 add r1, r5, r4 bl SND_InvalidateWaveData @@ -182,16 +176,15 @@ FUN_020C2D30: ; 0x020C2D30 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C2D68 -FUN_020C2D68: ; 0x020C2D68 + arm_func_start BankDisposeCallback +BankDisposeCallback: ; 0x020C2D68 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 mov r1, r2 mov r5, r0 mov r2, r3 - bl FUN_020C2DD0 + bl DisposeCallback mov r0, r5 add r1, r5, r4 bl SND_InvalidateBankData @@ -200,25 +193,23 @@ FUN_020C2D68: ; 0x020C2D68 add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C2DA0 -FUN_020C2DA0: ; 0x020C2DA0 + arm_func_start SeqDisposeCallback +SeqDisposeCallback: ; 0x020C2DA0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r1 mov r1, r2 mov r5, r0 mov r2, r3 - bl FUN_020C2DD0 + bl DisposeCallback mov r0, r5 add r1, r5, r4 bl SND_InvalidateSeqData add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C2DD0 -FUN_020C2DD0: ; 0x020C2DD0 + arm_func_start DisposeCallback +DisposeCallback: ; 0x020C2DD0 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 movs r5, r1 @@ -229,44 +220,43 @@ FUN_020C2DD0: ; 0x020C2DD0 bl OS_DisableInterrupts mov r4, r0 mov r0, r5 - bl FUN_020C242C + bl NNS_SndArcSetCurrent mov r5, r0 mov r0, r6 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress cmp r7, r0 bne _020C2E1C mov r0, r6 mov r1, #0x0 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C2E1C: mov r0, r5 - bl FUN_020C242C + bl NNS_SndArcSetCurrent mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - ; LoadWaveArcTable - arm_func_start FUN_020C2E34 -FUN_020C2E34: ; 0x020C2E34 + arm_func_start LoadWaveArcTable +LoadWaveArcTable: ; 0x020C2E34 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 mov r9, r0 mov r8, r1 mov r7, r2 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r6, r0 bne _020C2F40 - ldr r1, _020C2F4C ; =UNK_021D28C4 + ldr r1, _020C2F4C ; =waveArcHeader$8213 mov r0, r9 mov r2, #0x3c mov r3, #0x0 - bl FUN_020C2104 + bl NNS_SndArcReadFile cmp r0, #0x3c addne sp, sp, #0x4 movne r0, #0x0 ldmneia sp!, {r4-r9,pc} - ldr r0, _020C2F4C ; =UNK_021D28C4 + ldr r0, _020C2F4C ; =waveArcHeader$8213 cmp r8, #0x0 ldr r0, [r0, #0x38] addeq sp, sp, #0x4 @@ -278,14 +268,14 @@ FUN_020C2E34: ; 0x020C2E34 cmp r7, #0x0 moveq r3, #0x0 beq _020C2EB0 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r3, r0 _020C2EB0: - ldr r2, _020C2F50 ; =FUN_020C2D10 + ldr r2, _020C2F50 ; =WaveArcTableDisposeCallback mov r0, r8 add r1, r5, #0x20 str r9, [sp, #0x0] - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc movs r6, r0 addeq sp, sp, #0x4 moveq r0, #0x0 @@ -294,7 +284,7 @@ _020C2EB0: mov r1, r6 add r2, r4, #0x3c mov r3, #0x0 - bl FUN_020C2104 + bl NNS_SndArcReadFile add r1, r4, #0x3c cmp r0, r1 addne sp, sp, #0x4 @@ -316,37 +306,36 @@ _020C2EB0: beq _020C2F40 mov r0, r9 mov r1, r6 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C2F40: mov r0, r6 add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} .balign 4 -_020C2F4C: .word UNK_021D28C4 -_020C2F50: .word FUN_020C2D10 +_020C2F4C: .word waveArcHeader$8213 +_020C2F50: .word WaveArcTableDisposeCallback - ; LoadWaveArc - arm_func_start FUN_020C2F54 -FUN_020C2F54: ; 0x020C2F54 + arm_func_start LoadWaveArc +LoadWaveArc: ; 0x020C2F54 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r4, r0 bne _020C2FBC cmp r5, #0x0 moveq r2, #0x0 beq _020C2F88 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r2, r0 _020C2F88: - ldr r1, _020C2FC8 ; =FUN_020C2D30 + ldr r1, _020C2FC8 ; =WaveArcDisposeCallback mov r0, r7 mov r3, r7 str r6, [sp, #0x0] - bl FUN_020C3134 + bl NNSi_SndArcLoadFile mov r4, r0 cmp r5, #0x0 beq _020C2FBC @@ -354,36 +343,35 @@ _020C2F88: beq _020C2FBC mov r0, r7 mov r1, r4 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C2FBC: mov r0, r4 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C2FC8: .word FUN_020C2D30 +_020C2FC8: .word WaveArcDisposeCallback - ; LoadBank - arm_func_start FUN_020C2FCC -FUN_020C2FCC: ; 0x020C2FCC + arm_func_start LoadBank +LoadBank: ; 0x020C2FCC stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r4, r0 bne _020C3034 cmp r5, #0x0 moveq r2, #0x0 beq _020C3000 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r2, r0 _020C3000: - ldr r1, _020C3040 ; =FUN_020C2D68 + ldr r1, _020C3040 ; =BankDisposeCallback mov r0, r7 mov r3, r7 str r6, [sp, #0x0] - bl FUN_020C3134 + bl NNSi_SndArcLoadFile mov r4, r0 cmp r5, #0x0 beq _020C3034 @@ -391,36 +379,35 @@ _020C3000: beq _020C3034 mov r0, r7 mov r1, r4 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C3034: mov r0, r4 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C3040: .word FUN_020C2D68 +_020C3040: .word BankDisposeCallback - ; LoadSeqArc - arm_func_start FUN_020C3044 -FUN_020C3044: ; 0x020C3044 + arm_func_start LoadSeqArc +LoadSeqArc: ; 0x020C3044 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r4, r0 bne _020C30AC cmp r5, #0x0 moveq r2, #0x0 beq _020C3078 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r2, r0 _020C3078: - ldr r1, _020C30B8 ; =FUN_020C2DA0 + ldr r1, _020C30B8 ; =SeqDisposeCallback mov r0, r7 mov r3, r7 str r6, [sp, #0x0] - bl FUN_020C3134 + bl NNSi_SndArcLoadFile mov r4, r0 cmp r5, #0x0 beq _020C30AC @@ -428,36 +415,35 @@ _020C3078: beq _020C30AC mov r0, r7 mov r1, r4 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C30AC: mov r0, r4 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C30B8: .word FUN_020C2DA0 +_020C30B8: .word SeqDisposeCallback - ; LoadSeq - arm_func_start FUN_020C30BC -FUN_020C30BC: ; 0x020C30BC + arm_func_start LoadSeq +LoadSeq: ; 0x020C30BC stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r4, r0 bne _020C3124 cmp r5, #0x0 moveq r2, #0x0 beq _020C30F0 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r2, r0 _020C30F0: - ldr r1, _020C3130 ; =FUN_020C2DA0 + ldr r1, _020C3130 ; =SeqDisposeCallback mov r0, r7 mov r3, r7 str r6, [sp, #0x0] - bl FUN_020C3134 + bl NNSi_SndArcLoadFile mov r4, r0 cmp r5, #0x0 beq _020C3124 @@ -465,24 +451,23 @@ _020C30F0: beq _020C3124 mov r0, r7 mov r1, r4 - bl FUN_020C20C0 + bl NNS_SndArcSetFileAddress _020C3124: mov r0, r4 add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C3130: .word FUN_020C2DA0 +_020C3130: .word SeqDisposeCallback - ; _end - arm_func_start FUN_020C3134 -FUN_020C3134: ; 0x020C3134 + arm_func_start NNSi_SndArcLoadFile +NNSi_SndArcLoadFile: ; 0x020C3134 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x8 mov r8, r0 mov r7, r1 mov r6, r2 mov r4, r3 - bl FUN_020C217C + bl NNS_SndArcGetFileSize movs r5, r0 addeq sp, sp, #0x8 moveq r0, #0x0 @@ -496,7 +481,7 @@ FUN_020C3134: ; 0x020C3134 mov r3, r6 add r1, r5, #0x20 str r4, [sp, #0x0] - bl SDATi_AllocAndInitChunk + bl NNS_SndHeapAlloc movs r4, r0 addeq sp, sp, #0x8 moveq r0, #0x0 @@ -505,7 +490,7 @@ FUN_020C3134: ; 0x020C3134 mov r1, r4 mov r2, r5 mov r3, #0x0 - bl FUN_020C2104 + bl NNS_SndArcReadFile cmp r5, r0 addne sp, sp, #0x8 movne r0, #0x0 @@ -517,14 +502,13 @@ FUN_020C3134: ; 0x020C3134 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} - ; _end - arm_func_start FUN_020C31D4 -FUN_020C31D4: ; 0x020C31D4 + arm_func_start NNSi_SndArcLoadWaveArc +NNSi_SndArcLoadWaveArc: ; 0x020C31D4 stmdb sp!, {r4-r6,lr} mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_020C226C + bl NNS_SndArcGetWaveArcInfo cmp r0, #0x0 moveq r0, #0x5 ldmeqia sp!, {r4-r6,pc} @@ -538,7 +522,7 @@ FUN_020C31D4: ; 0x020C31D4 mov r0, r0, lsl #0x8 mov r2, r4 mov r0, r0, lsr #0x8 - bl FUN_020C2E34 + bl LoadWaveArcTable b _020C323C _020C3224: ldr r0, [r0, #0x0] @@ -546,7 +530,7 @@ _020C3224: mov r0, r0, lsl #0x8 mov r2, r4 mov r0, r0, lsr #0x8 - bl FUN_020C2F54 + bl LoadWaveArc _020C323C: cmp r0, #0x0 bne _020C325C @@ -556,7 +540,7 @@ _020C324C: ldr r0, [r0, #0x0] mov r0, r0, lsl #0x8 mov r0, r0, lsr #0x8 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress _020C325C: ldr r1, [sp, #0x10] cmp r1, #0x0 @@ -564,15 +548,14 @@ _020C325C: mov r0, #0x0 ldmia sp!, {r4-r6,pc} - ; NNSi_SndArcLoadBank - arm_func_start FUN_020C3270 -FUN_020C3270: ; 0x020C3270 + arm_func_start NNSi_SndArcLoadBank +NNSi_SndArcLoadBank: ; 0x020C3270 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r10, r1 mov r9, r2 mov r11, r3 - bl FUN_020C22D0 + bl NNS_SndArcGetBankInfo movs r8, r0 addeq sp, sp, #0xc moveq r0, #0x4 @@ -582,7 +565,7 @@ FUN_020C3270: ; 0x020C3270 ldr r0, [r8, #0x0] mov r1, r9 mov r2, r11 - bl FUN_020C2FCC + bl LoadBank movs r7, r0 bne _020C32D0 add sp, sp, #0xc @@ -590,7 +573,7 @@ FUN_020C3270: ; 0x020C3270 ldmia sp!, {r4-r11,pc} _020C32C4: ldr r0, [r8, #0x0] - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress mov r7, r0 _020C32D0: and r5, r10, #0x4 @@ -601,7 +584,7 @@ _020C32D8: ldr r1, _020C33B4 ; =0x0000FFFF cmp r0, r1 beq _020C3390 - bl FUN_020C226C + bl NNS_SndArcGetWaveArcInfo movs r4, r0 addeq sp, sp, #0xc moveq r0, #0x5 @@ -613,7 +596,7 @@ _020C32D8: mov r1, r10 mov r2, r9 mov r3, r11 - bl FUN_020C31D4 + bl NNSi_SndArcLoadWaveArc cmp r0, #0x0 addne sp, sp, #0xc ldmneia sp!, {r4-r11,pc} @@ -629,7 +612,7 @@ _020C32D8: mov r1, r7 mov r2, r6 mov r3, r3, lsr #0x8 - bl FUN_020C2B1C + bl LoadSingleWaves cmp r0, #0x0 addeq sp, sp, #0xc moveq r0, #0x9 @@ -656,14 +639,13 @@ _020C3390: .balign 4 _020C33B4: .word 0x0000FFFF - ; _end - arm_func_start FUN_020C33B8 -FUN_020C33B8: ; 0x020C33B8 + arm_func_start NNSi_SndArcLoadSeqArc +NNSi_SndArcLoadSeqArc: ; 0x020C33B8 stmdb sp!, {r4-r6,lr} mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_020C2334 + bl NNS_SndArcGetSeqArcInfo cmp r0, #0x0 moveq r0, #0x3 ldmeqia sp!, {r4-r6,pc} @@ -672,14 +654,14 @@ FUN_020C33B8: ; 0x020C33B8 ldr r0, [r0, #0x0] mov r1, r5 mov r2, r4 - bl FUN_020C3044 + bl LoadSeqArc cmp r0, #0x0 bne _020C3408 mov r0, #0x7 ldmia sp!, {r4-r6,pc} _020C3400: ldr r0, [r0, #0x0] - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress _020C3408: ldr r1, [sp, #0x10] cmp r1, #0x0 @@ -687,15 +669,14 @@ _020C3408: mov r0, #0x0 ldmia sp!, {r4-r6,pc} - ; _end - arm_func_start FUN_020C341C -FUN_020C341C: ; 0x020C341C + arm_func_start NNSi_SndArcLoadSeq +NNSi_SndArcLoadSeq: ; 0x020C341C stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 mov r7, r1 mov r6, r2 mov r5, r3 - bl FUN_020C2398 + bl NNS_SndArcGetSeqInfo movs r4, r0 addeq sp, sp, #0x4 moveq r0, #0x2 @@ -706,7 +687,7 @@ FUN_020C341C: ; 0x020C341C mov r1, r7 mov r2, r6 mov r3, r5 - bl FUN_020C3270 + bl NNSi_SndArcLoadBank cmp r0, #0x0 addne sp, sp, #0x4 ldmneia sp!, {r4-r7,pc} @@ -715,7 +696,7 @@ FUN_020C341C: ; 0x020C341C ldr r0, [r4, #0x0] mov r1, r6 mov r2, r5 - bl FUN_020C30BC + bl LoadSeq cmp r0, #0x0 bne _020C34A0 add sp, sp, #0x4 @@ -723,7 +704,7 @@ FUN_020C341C: ; 0x020C341C ldmia sp!, {r4-r7,pc} _020C3498: ldr r0, [r4, #0x0] - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress _020C34A0: ldr r1, [sp, #0x18] cmp r1, #0x0 @@ -732,13 +713,12 @@ _020C34A0: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} - ; _end - arm_func_start FUN_020C34B8 -FUN_020C34B8: ; 0x020C34B8 + arm_func_start NNSi_SndArcLoadGroup +NNSi_SndArcLoadGroup: ; 0x020C34B8 stmdb sp!, {r4-r11,lr} sub sp, sp, #0xc mov r9, r1 - bl FUN_020C21A4 + bl NNS_SndArcGetGroupInfo movs r8, r0 addeq sp, sp, #0xc moveq r0, #0x1 @@ -769,7 +749,7 @@ _020C3520: ldr r0, [r6, #0x4] mov r2, r9 mov r3, r4 - bl FUN_020C341C + bl NNSi_SndArcLoadSeq cmp r0, #0x0 beq _020C35C0 add sp, sp, #0xc @@ -780,7 +760,7 @@ _020C3548: ldr r0, [r6, #0x4] mov r2, r9 mov r3, r4 - bl FUN_020C33B8 + bl NNSi_SndArcLoadSeqArc cmp r0, #0x0 beq _020C35C0 add sp, sp, #0xc @@ -791,7 +771,7 @@ _020C3570: ldr r0, [r6, #0x4] mov r2, r9 mov r3, r4 - bl FUN_020C3270 + bl NNSi_SndArcLoadBank cmp r0, #0x0 beq _020C35C0 add sp, sp, #0xc @@ -803,7 +783,7 @@ _020C3598: ldrb r1, [r6, #0x1] ldr r0, [r6, #0x4] mov r3, r4 - bl FUN_020C31D4 + bl NNSi_SndArcLoadWaveArc cmp r0, #0x0 addne sp, sp, #0xc ldmneia sp!, {r4-r11,pc} @@ -818,24 +798,22 @@ _020C35D4: add sp, sp, #0xc ldmia sp!, {r4-r11,pc} - ; _end - arm_func_start FUN_020C35E0 -FUN_020C35E0: ; 0x020C35E0 + arm_func_start NNS_SndArcLoadSeqEx +NNS_SndArcLoadSeqEx: ; 0x020C35E0 stmdb sp!, {lr} sub sp, sp, #0x4 mov r12, #0x0 mov r3, #0x1 str r12, [sp, #0x0] - bl FUN_020C341C + bl NNSi_SndArcLoadSeq cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C360C -FUN_020C360C: ; 0x020C360C + arm_func_start NNS_SndArcLoadWaveArc +NNS_SndArcLoadWaveArc: ; 0x020C360C stmdb sp!, {lr} sub sp, sp, #0x4 mov r2, r1 @@ -843,16 +821,15 @@ FUN_020C360C: ; 0x020C360C mov r1, #0xff mov r3, #0x1 str r12, [sp, #0x0] - bl FUN_020C31D4 + bl NNSi_SndArcLoadWaveArc cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C3640 -FUN_020C3640: ; 0x020C3640 + arm_func_start NNS_SndArcLoadBank +NNS_SndArcLoadBank: ; 0x020C3640 stmdb sp!, {lr} sub sp, sp, #0x4 mov r2, r1 @@ -860,16 +837,15 @@ FUN_020C3640: ; 0x020C3640 mov r1, #0xff mov r3, #0x1 str r12, [sp, #0x0] - bl FUN_020C3270 + bl NNSi_SndArcLoadBank cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C3674 -FUN_020C3674: ; 0x020C3674 + arm_func_start NNS_SndArcLoadSeq +NNS_SndArcLoadSeq: ; 0x020C3674 stmdb sp!, {lr} sub sp, sp, #0x4 mov r2, r1 @@ -877,22 +853,20 @@ FUN_020C3674: ; 0x020C3674 mov r1, #0xff mov r3, #0x1 str r12, [sp, #0x0] - bl FUN_020C341C + bl NNSi_SndArcLoadSeq cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C36A8 -FUN_020C36A8: ; 0x020C36A8 + arm_func_start NNS_SndArcLoadGroup +NNS_SndArcLoadGroup: ; 0x020C36A8 stmdb sp!, {lr} sub sp, sp, #0x4 - bl FUN_020C34B8 + bl NNSi_SndArcLoadGroup cmp r0, #0x0 moveq r0, #0x1 movne r0, #0x0 add sp, sp, #0x4 ldmia sp!, {pc} - diff --git a/arm9/asm/NNS_SND_sndarc_player.s b/arm9/asm/NNS_SND_sndarc_player.s index 8657cdfc9..c043967bd 100644 --- a/arm9/asm/NNS_SND_sndarc_player.s +++ b/arm9/asm/NNS_SND_sndarc_player.s @@ -3,9 +3,8 @@ .section .text - ; _end - arm_func_start FUN_020C36C8 -FUN_020C36C8: ; 0x020C36C8 + arm_func_start StartSeqArc +StartSeqArc: ; 0x020C36C8 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x8 mov r7, r2 @@ -13,25 +12,25 @@ FUN_020C36C8: ; 0x020C36C8 ldr r6, [sp, #0x20] mov r4, r0 mov r8, r1 - bl FUN_020C0AF4 + bl NNSi_SndPlayerAllocSeqPlayer movs r5, r0 addeq sp, sp, #0x8 moveq r0, #0x0 ldmeqia sp!, {r4-r8,pc} mov r0, r8 mov r1, r5 - bl FUN_020C09B0 + bl NNSi_SndPlayerAllocHeap add r12, sp, #0x4 mov r2, r0 mov r0, r7 mov r1, #0x6 mov r3, #0x0 str r12, [sp, #0x0] - bl FUN_020C3270 + bl NNSi_SndArcLoadBank cmp r0, #0x0 beq _020C373C mov r0, r5 - bl thunk_FUN_020c077c + bl NNSi_SndPlayerFreeSeqPlayer add sp, sp, #0x8 mov r0, #0x0 ldmia sp!, {r4-r8,pc} @@ -42,24 +41,23 @@ _020C373C: ldr r3, [sp, #0x4] mov r0, r5 add r1, r12, r1 - bl FUN_020C0A90 + bl NNSi_SndPlayerStartSeq ldrb r1, [r6, #0x6] mov r0, r4 - bl FUN_020C0F30 + bl NNS_SndPlayerSetInitialVolume ldrb r1, [r6, #0x7] mov r0, r4 - bl FUN_020C0ECC + bl NNS_SndPlayerSetChannelPriority ldr r1, [sp, #0x28] ldr r2, [sp, #0x2c] mov r0, r4 - bl FUN_020C0E38 + bl NNS_SndPlayerSetSeqArcNo mov r0, #0x1 add sp, sp, #0x8 ldmia sp!, {r4-r8,pc} - ; _end - arm_func_start FUN_020C378C -FUN_020C378C: ; 0x020C378C + arm_func_start StartSeq +StartSeq: ; 0x020C378C stmdb sp!, {r4-r8,lr} sub sp, sp, #0x10 mov r8, r2 @@ -67,14 +65,14 @@ FUN_020C378C: ; 0x020C378C ldr r5, [sp, #0x28] mov r6, r0 mov r7, r1 - bl FUN_020C0AF4 + bl NNSi_SndPlayerAllocSeqPlayer movs r4, r0 addeq sp, sp, #0x10 moveq r0, #0x0 ldmeqia sp!, {r4-r8,pc} mov r0, r7 mov r1, r4 - bl FUN_020C09B0 + bl NNSi_SndPlayerAllocHeap mov r7, r0 add r12, sp, #0x8 mov r0, r8 @@ -82,11 +80,11 @@ FUN_020C378C: ; 0x020C378C mov r1, #0x6 mov r3, #0x0 str r12, [sp, #0x0] - bl FUN_020C3270 + bl NNSi_SndArcLoadBank cmp r0, #0x0 beq _020C3804 mov r0, r4 - bl thunk_FUN_020c077c + bl NNSi_SndPlayerFreeSeqPlayer add sp, sp, #0x10 mov r0, #0x0 ldmia sp!, {r4-r8,pc} @@ -97,11 +95,11 @@ _020C3804: mov r1, #0x1 mov r3, #0x0 str r12, [sp, #0x0] - bl FUN_020C341C + bl NNSi_SndArcLoadSeq cmp r0, #0x0 beq _020C383C mov r0, r4 - bl thunk_FUN_020c077c + bl NNSi_SndPlayerFreeSeqPlayer add sp, sp, #0x10 mov r0, #0x0 ldmia sp!, {r4-r8,pc} @@ -112,42 +110,41 @@ _020C383C: mov r0, r4 add r1, r2, r1 mov r2, #0x0 - bl FUN_020C0A90 + bl NNSi_SndPlayerStartSeq ldrb r1, [r5, #0x6] mov r0, r6 - bl FUN_020C0F30 + bl NNS_SndPlayerSetInitialVolume ldrb r1, [r5, #0x7] mov r0, r6 - bl FUN_020C0ECC + bl NNS_SndPlayerSetChannelPriority ldr r1, [sp, #0x2c] mov r0, r6 - bl FUN_020C0E60 + bl NNS_SndPlayerSetSeqNo mov r0, #0x1 add sp, sp, #0x10 ldmia sp!, {r4-r8,pc} - ; _end - arm_func_start FUN_020C3888 -FUN_020C3888: ; 0x020C3888 + arm_func_start NNS_SndArcPlayerStartSeqArc +NNS_SndArcPlayerStartSeqArc: ; 0x020C3888 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x14 mov r6, r1 mov r7, r0 mov r0, r6 mov r5, r2 - bl FUN_020C2334 + bl NNS_SndArcGetSeqArcInfo cmp r0, #0x0 addeq sp, sp, #0x14 moveq r0, #0x0 ldmeqia sp!, {r4-r7,pc} ldr r0, [r0, #0x0] - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress movs r4, r0 addeq sp, sp, #0x14 moveq r0, #0x0 ldmeqia sp!, {r4-r7,pc} mov r1, r5 - bl FUN_020C3D9C + bl NNSi_SndSeqArcGetSeqInfo cmp r0, #0x0 addeq sp, sp, #0x14 moveq r0, #0x0 @@ -160,13 +157,12 @@ FUN_020C3888: ; 0x020C3888 ldrh r2, [r0, #0x4] ldrb r3, [r0, #0x8] mov r0, r7 - bl FUN_020C36C8 + bl StartSeqArc add sp, sp, #0x14 ldmia sp!, {r4-r7,pc} - ; _end - arm_func_start FUN_020C3910 -FUN_020C3910: ; 0x020C3910 + arm_func_start NNS_SndArcPlayerStartSeqEx +NNS_SndArcPlayerStartSeqEx: ; 0x020C3910 stmdb sp!, {r4-r7,lr} sub sp, sp, #0xc mov r7, r0 @@ -174,7 +170,7 @@ FUN_020C3910: ; 0x020C3910 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_020C2398 + bl NNS_SndArcGetSeqInfo cmp r0, #0x0 addeq sp, sp, #0xc moveq r0, #0x0 @@ -192,19 +188,18 @@ FUN_020C3910: ; 0x020C3910 mov r1, r6 mov r3, r4 str r12, [sp, #0x4] - bl FUN_020C378C + bl StartSeq add sp, sp, #0xc ldmia sp!, {r4-r7,pc} - ; _end - arm_func_start FUN_020C3980 -FUN_020C3980: ; 0x020C3980 + arm_func_start NNS_SndArcPlayerStartSeq +NNS_SndArcPlayerStartSeq: ; 0x020C3980 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc mov r4, r1 mov r5, r0 mov r0, r4 - bl FUN_020C2398 + bl NNS_SndArcGetSeqInfo cmp r0, #0x0 addeq sp, sp, #0xc moveq r0, #0x0 @@ -215,29 +210,28 @@ FUN_020C3980: ; 0x020C3980 ldrh r2, [r0, #0x4] ldrb r3, [r0, #0x8] mov r0, r5 - bl FUN_020C378C + bl StartSeq add sp, sp, #0xc ldmia sp!, {r4-r5,pc} - ; _end - arm_func_start FUN_020C39CC -FUN_020C39CC: ; 0x020C39CC + arm_func_start NNS_SndArcPlayerSetup +NNS_SndArcPlayerSetup: ; 0x020C39CC stmdb sp!, {r4-r8,lr} mov r6, r0 - bl FUN_020C241C + bl NNS_SndArcGetCurrent mov r5, #0x0 mov r7, r5 _020C39E0: mov r0, r5 - bl FUN_020C2208 + bl NNS_SndArcGetPlayerInfo movs r4, r0 beq _020C3A58 ldrb r1, [r4, #0x0] mov r0, r5 - bl FUN_020C1160 + bl NNS_SndPlayerSetPlayableSeqCount ldrh r1, [r4, #0x2] mov r0, r5 - bl FUN_020C1148 + bl NNS_SndPlayerSetAllocatableChannel ldr r0, [r4, #0x4] cmp r0, #0x0 beq _020C3A58 @@ -251,7 +245,7 @@ _020C3A2C: ldr r2, [r4, #0x4] mov r0, r5 mov r1, r6 - bl FUN_020C10B4 + bl NNS_SndPlayerCreateHeap cmp r0, #0x0 moveq r0, #0x0 ldmeqia sp!, {r4-r8,pc} @@ -265,4 +259,3 @@ _020C3A58: blt _020C39E0 mov r0, #0x1 ldmia sp!, {r4-r8,pc} - diff --git a/arm9/asm/NNS_SND_sndarc_stream.s b/arm9/asm/NNS_SND_sndarc_stream.s index 8b6ad0b98..1962bdcca 100644 --- a/arm9/asm/NNS_SND_sndarc_stream.s +++ b/arm9/asm/NNS_SND_sndarc_stream.s @@ -3,54 +3,43 @@ .section .bss - ; sPrepareThread - .global UNK_021D2900 -UNK_021D2900: ; 0x021D2900 + .global sPrepareThread +sPrepareThread: ; 0x021D2900 .space 0x4 - ; sFreeCommandList - .global UNK_021D2904 -UNK_021D2904: ; 0x021D2904 - .space 0x4d4 + .global sFreeCommandList +sFreeCommandList: ; 0x021D2904 + .space 0xC + ; sStrmThread + .global sStrmThread +sStrmThread: ; 0x021D2910 + .space 0x4EC - ; sFreeCommandList + 0x4D4 - .global UNK_021D2DD8 -UNK_021D2DD8: ; 0x021D2DD8 - .space 0x18 - - ; sFreeCommandList + 0x4EC - .global UNK_021D2DF0 -UNK_021D2DF0: ; 0x021D2DF0 - .space 0xc - - ; sStrmPlayer - .global UNK_021D2DFC -UNK_021D2DFC: ; 0x021D2DFC + .global sStrmPlayer +sStrmPlayer: ; 0x021D2DFC .space 0x5c0 .section .text - ; FreeCommandBuffer - arm_func_start FUN_020C3A6C -FUN_020C3A6C: ; 0x020C3A6C + arm_func_start FreeCommandBuffer +FreeCommandBuffer: ; 0x020C3A6C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 bl OS_DisableInterrupts mov r4, r0 - ldr r0, _020C3A9C ; =UNK_021D2904 + ldr r0, _020C3A9C ; =sFreeCommandList mov r1, r5 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} .balign 4 -_020C3A9C: .word UNK_021D2904 +_020C3A9C: .word sFreeCommandList - ; _end - arm_func_start FUN_020C3AA0 -FUN_020C3AA0: ; 0x020C3AA0 + arm_func_start RemoveCommandByPlayer +RemoveCommandByPlayer: ; 0x020C3AA0 stmdb sp!, {r4-r8,lr} mov r8, r0 mov r7, r1 @@ -58,22 +47,22 @@ FUN_020C3AA0: ; 0x020C3AA0 mov r6, r0 mov r0, r8 mov r1, #0x0 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject movs r5, r0 beq _020C3B04 _020C3AC8: mov r0, r8 mov r1, r5 - bl FUN_020ADA98 + bl NNS_FndGetNextListObject ldr r1, [r5, #0x8] mov r4, r0 cmp r1, r7 bne _020C3AF8 mov r0, r8 mov r1, r5 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject mov r0, r5 - bl FUN_020C3A6C + bl FreeCommandBuffer _020C3AF8: mov r5, r4 cmp r4, #0x0 @@ -83,9 +72,8 @@ _020C3B04: bl OS_RestoreInterrupts ldmia sp!, {r4-r8,pc} - ; _end - arm_func_start FUN_020C3B10 -FUN_020C3B10: ; 0x020C3B10 + arm_func_start FreeChannel +FreeChannel: ; 0x020C3B10 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r1, [r0, #0x120] @@ -98,49 +86,47 @@ FUN_020C3B10: ; 0x020C3B10 cmp r1, #0x0 addne sp, sp, #0x4 ldmneia sp!, {pc} - bl FUN_020C1674 + bl NNS_SndStrmFreeChannel add sp, sp, #0x4 ldmia sp!, {pc} - ; ShutdownPlayer - arm_func_start FUN_020C3B4C -FUN_020C3B4C: ; 0x020C3B4C + local_arm_func_start ShutdownPlayer +ShutdownPlayer: ; 0x020C3B4C stmdb sp!, {r4,lr} mov r4, r0 ldr r1, [r4, #0x110] mov r1, r1, lsl #0x1f movs r1, r1, asr #0x1f ldmeqia sp!, {r4,pc} - bl FUN_020C3B10 + bl FreeChannel ldr r1, [r4, #0x164] mov r0, r4 blx r1 - ldr r0, _020C3BA8 ; =UNK_021D2DF0 + ldr r0, _020C3BA8 ; =sStrmThread + 0x4E0 mov r1, r4 - bl FUN_020C3AA0 - ldr r0, _020C3BAC ; =UNK_021D2900 + bl RemoveCommandByPlayer + ldr r0, _020C3BAC ; =sPrepareThread ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020C3B9C mov r1, r4 add r0, r0, #0x4e0 - bl FUN_020C3AA0 + bl RemoveCommandByPlayer _020C3B9C: mov r0, r4 - bl FUN_020C3C4C + bl FreePlayer ldmia sp!, {r4,pc} .balign 4 -_020C3BA8: .word UNK_021D2DF0 -_020C3BAC: .word UNK_021D2900 +_020C3BA8: .word sStrmThread + 0x4E0 +_020C3BAC: .word sPrepareThread - ; ForceStopStrm - arm_func_start FUN_020C3BB0 -FUN_020C3BB0: ; 0x020C3BB0 + local_arm_func_start ForceStopStrm +ForceStopStrm: ; 0x020C3BB0 stmdb sp!, {r4,lr} mov r4, r0 - ldr r0, _020C3C40 ; =UNK_021D2DD8 + ldr r0, _020C3C40 ; =sStrmThread + 0x4C8 bl OS_LockMutex - ldr r0, _020C3C44 ; =UNK_021D2900 + ldr r0, _020C3C44 ; =sPrepareThread ldr r1, [r0, #0x0] cmp r1, #0x0 beq _020C3BDC @@ -153,7 +139,7 @@ _020C3BDC: movs r0, r0, asr #0x1f beq _020C3BF4 mov r0, r4 - bl FUN_020C1430 + bl NNS_SndStrmStop _020C3BF4: ldr r0, [r4, #0x110] mov r0, r0, lsl #0x1f @@ -164,10 +150,10 @@ _020C3BF4: blx r1 _020C3C10: mov r0, r4 - bl FUN_020C3B4C - ldr r0, _020C3C40 ; =UNK_021D2DD8 + bl ShutdownPlayer + ldr r0, _020C3C40 ; =sStrmThread + 0x4C8 bl OS_UnlockMutex - ldr r0, _020C3C44 ; =UNK_021D2900 + ldr r0, _020C3C44 ; =sPrepareThread ldr r1, [r0, #0x0] cmp r1, #0x0 ldmeqia sp!, {r4,pc} @@ -176,13 +162,12 @@ _020C3C10: bl OS_UnlockMutex ldmia sp!, {r4,pc} .balign 4 -_020C3C40: .word UNK_021D2DD8 -_020C3C44: .word UNK_021D2900 +_020C3C40: .word sStrmThread + 0x4C8 +_020C3C44: .word sPrepareThread _020C3C48: .word 0x000004C8 - ; _end - arm_func_start FUN_020C3C4C -FUN_020C3C4C: ; 0x020C3C4C + arm_func_start FreePlayer +FreePlayer: ; 0x020C3C4C ldr r2, [r0, #0x14c] cmp r2, #0x0 movne r1, #0x0 @@ -199,12 +184,11 @@ FUN_020C3C4C: ; 0x020C3C4C str r1, [r0, #0x110] bx lr - ; NNSi_SndArcStrmMain - arm_func_start FUN_020C3C88 -FUN_020C3C88: ; 0x020C3C88 + arm_func_start NNSi_SndArcStrmMain +NNSi_SndArcStrmMain: ; 0x020C3C88 stmdb sp!, {r4-r7,lr} sub sp, sp, #0x4 - ldr r5, _020C3D94 ; =UNK_021D2DFC + ldr r5, _020C3D94 ; =sStrmPlayer mov r7, #0x0 ldr r4, _020C3D98 ; =SNDi_DecibelTable _020C3C9C: @@ -216,7 +200,7 @@ _020C3C9C: cmp r0, #0x0 bne _020C3CC4 mov r0, r5 - bl FUN_020C3BB0 + bl ForceStopStrm b _020C3D7C _020C3CC4: mov r0, r1, lsl #0x1d @@ -226,7 +210,7 @@ _020C3CC4: cmp r0, #0x0 beq _020C3CFC mov r0, r5 - bl FUN_020C1458 + bl NNS_SndStrmStart ldr r0, [r5, #0x110] orr r0, r0, #0x2 str r0, [r5, #0x110] @@ -239,12 +223,12 @@ _020C3CFC: movs r0, r0, asr #0x1f beq _020C3D7C add r0, r5, #0xe8 - bl FUN_020C3DF4 + bl NNSi_SndFaderUpdate ldr r1, [r5, #0x154] add r0, r5, #0xe8 mov r1, r1, lsl #0x1 ldrsh r6, [r4, r1] - bl FUN_020C3E0C + bl NNSi_SndFaderGet mov r0, r0, asr #0x8 mov r0, r0, lsl #0x1 ldrsh r1, [r4, r0] @@ -254,7 +238,7 @@ _020C3CFC: beq _020C3D54 mov r0, r5 mov r1, r6 - bl FUN_020C13C4 + bl NNS_SndStrmSetVolume str r6, [r5, #0x158] _020C3D54: ldr r0, [r5, #0x110] @@ -262,11 +246,11 @@ _020C3D54: movs r0, r0, asr #0x1f beq _020C3D7C add r0, r5, #0xe8 - bl FUN_020C3DDC + bl NNSi_SndFaderIsFinished cmp r0, #0x0 beq _020C3D7C mov r0, r5 - bl FUN_020C3BB0 + bl ForceStopStrm _020C3D7C: add r7, r7, #0x1 cmp r7, #0x4 @@ -275,6 +259,5 @@ _020C3D7C: add sp, sp, #0x4 ldmia sp!, {r4-r7,pc} .balign 4 -_020C3D94: .word UNK_021D2DFC +_020C3D94: .word sStrmPlayer _020C3D98: .word SNDi_DecibelTable - diff --git a/arm9/asm/NNS_SND_stream.s b/arm9/asm/NNS_SND_stream.s index 752fcab01..534327427 100644 --- a/arm9/asm/NNS_SND_stream.s +++ b/arm9/asm/NNS_SND_stream.s @@ -3,31 +3,26 @@ .section .bss - ; bInitialized$7761 - .global UNK_021D26D4 -UNK_021D26D4: ; 0x021D26D4 + .global bInitialized$7761 +bInitialized$7761: ; 0x021D26D4 .space 0x4 - ; sStrmList - .global UNK_021D26D8 -UNK_021D26D8: ; 0x021D26D8 + .global sStrmList +sStrmList: ; 0x021D26D8 .space 0xc - ; buffer$7877 - .global UNK_021D26E4 -UNK_021D26E4: ; 0x021D26E4 + .global buffer$7877 +buffer$7877: ; 0x021D26E4 .space 0x40 - ; sStrmChannel - .global UNK_021D2724 -UNK_021D2724: ; 0x021D2724 + .global sStrmChannel +sStrmChannel: ; 0x021D2724 .space 0x80 .section .text - ; _end - arm_func_start FUN_020C1198 -FUN_020C1198: ; 0x020C1198 + local_arm_func_start EndSleep +EndSleep: ; 0x020C1198 stmdb sp!, {r4-r6,lr} mov r4, r0 ldr r0, [r4, #0x24] @@ -43,7 +38,7 @@ _020C11C0: mov r6, r0 mov r0, r4 mov r1, r5 - bl FUN_020C1254 + bl StrmCallback mov r0, r6 bl OS_RestoreInterrupts ldr r0, [r4, #0x38] @@ -59,9 +54,8 @@ _020C11E8: bl SND_StartTimer ldmia sp!, {r4-r6,pc} - ; _end - arm_func_start FUN_020C1208 -FUN_020C1208: ; 0x020C1208 + local_arm_func_start BeginSleep +BeginSleep: ; 0x020C1208 stmdb sp!, {r4,lr} ldr r1, [r0, #0x24] mov r1, r1, lsl #0x1e @@ -82,9 +76,8 @@ FUN_020C1208: ; 0x020C1208 bl SND_WaitForCommandProc ldmia sp!, {r4,pc} - ; StrmCallback - arm_func_start FUN_020C1254 -FUN_020C1254: ; 0x020C1254 + arm_func_start StrmCallback +StrmCallback: ; 0x020C1254 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc mov r5, r0 @@ -99,8 +92,8 @@ FUN_020C1254: ; 0x020C1254 cmp r1, #0x0 mov r12, #0x0 ble _020C12B8 - ldr r2, _020C1300 ; =UNK_021D2724 - ldr r0, _020C1304 ; =UNK_021D26E4 + ldr r2, _020C1300 ; =sStrmChannel + ldr r0, _020C1304 ; =buffer$7877 _020C1294: add r1, r5, r12 ldrb r1, [r1, #0x4c] @@ -113,7 +106,7 @@ _020C1294: blt _020C1294 _020C12B8: ldr r0, [r5, #0x20] - ldr r2, _020C1304 ; =UNK_021D26E4 + ldr r2, _020C1304 ; =buffer$7877 str r0, [sp, #0x0] ldr r12, [r5, #0x34] mov r0, r4 @@ -131,38 +124,35 @@ _020C12B8: add sp, sp, #0xc ldmia sp!, {r4-r5,pc} .balign 4 -_020C1300: .word UNK_021D2724 -_020C1304: .word UNK_021D26E4 +_020C1300: .word sStrmChannel +_020C1304: .word buffer$7877 - ; AlarmCallback - arm_func_start FUN_020C1308 -FUN_020C1308: ; 0x020C1308 - ldr ip, _020C1314 ; =FUN_020C1254 + local_arm_func_start AlarmCallback +AlarmCallback: ; 0x020C1308 + ldr ip, _020C1314 ; =StrmCallback mov r1, #0x1 bx r12 .balign 4 -_020C1314: .word FUN_020C1254 +_020C1314: .word StrmCallback - ; ShutdownStrm - arm_func_start FUN_020C1318 -FUN_020C1318: ; 0x020C1318 + arm_func_start ShutdownStrm +ShutdownStrm: ; 0x020C1318 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x40] - bl FUN_020C029C - ldr r0, _020C1344 ; =UNK_021D26D8 + bl NNS_SndFreeAlarm + ldr r0, _020C1344 ; =sStrmList mov r1, r4 - bl FUN_020ADAB0 + bl NNS_FndRemoveListObject ldr r0, [r4, #0x24] bic r0, r0, #0x1 str r0, [r4, #0x24] ldmia sp!, {r4,pc} .balign 4 -_020C1344: .word UNK_021D26D8 +_020C1344: .word sStrmList - ; _end - arm_func_start FUN_020C1348 -FUN_020C1348: ; 0x020C1348 + local_arm_func_start ForceStopStrm +ForceStopStrm: ; 0x020C1348 stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r4, r0 @@ -192,13 +182,12 @@ FUN_020C1348: ; 0x020C1348 bl SND_WaitForCommandProc _020C13B4: mov r0, r4 - bl FUN_020C1318 + bl ShutdownStrm add sp, sp, #0x4 ldmia sp!, {r4-r5,pc} - ; NNS_SndStrmSetVolume - arm_func_start FUN_020C13C4 -FUN_020C13C4: ; 0x020C13C4 + arm_func_start NNS_SndStrmSetVolume +NNS_SndStrmSetVolume: ; 0x020C13C4 stmdb sp!, {r4-r8,lr} mov r7, r0 str r1, [r7, #0x3c] @@ -206,7 +195,7 @@ FUN_020C13C4: ; 0x020C13C4 mov r5, #0x0 cmp r0, #0x0 ldmleia sp!, {r4-r8,pc} - ldr r4, _020C142C ; =UNK_021D2724 + ldr r4, _020C142C ; =sStrmChannel mov r8, #0x1 _020C13E8: add r0, r7, r5 @@ -227,11 +216,10 @@ _020C13E8: blt _020C13E8 ldmia sp!, {r4-r8,pc} .balign 4 -_020C142C: .word UNK_021D2724 +_020C142C: .word sStrmChannel - ; _end - arm_func_start FUN_020C1430 -FUN_020C1430: ; 0x020C1430 + arm_func_start NNS_SndStrmStop +NNS_SndStrmStop: ; 0x020C1430 stmdb sp!, {lr} sub sp, sp, #0x4 ldr r1, [r0, #0x24] @@ -239,13 +227,12 @@ FUN_020C1430: ; 0x020C1430 movs r1, r1, asr #0x1f addeq sp, sp, #0x4 ldmeqia sp!, {pc} - bl FUN_020C1348 + bl ForceStopStrm add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C1458 -FUN_020C1458: ; 0x020C1458 + arm_func_start NNS_SndStrmStart +NNS_SndStrmStart: ; 0x020C1458 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x40] @@ -268,9 +255,8 @@ FUN_020C1458: ; 0x020C1458 str r0, [r4, #0x24] ldmia sp!, {r4,pc} - ; NNS_SndStrmSetup - arm_func_start FUN_020C14AC -FUN_020C14AC: ; 0x020C14AC + arm_func_start NNS_SndStrmSetup +NNS_SndStrmSetup: ; 0x020C14AC stmdb sp!, {r4-r11,lr} sub sp, sp, #0x24 mov r10, r0 @@ -283,7 +269,7 @@ FUN_020C14AC: ; 0x020C14AC mov r4, r3 str r1, [sp, #0x4c] beq _020C14E0 - bl FUN_020C1430 + bl NNS_SndStrmStop _020C14E0: ldr r0, [sp, #0x4c] ldr r2, [r10, #0x48] @@ -303,7 +289,7 @@ _020C14E0: ldr r1, [sp, #0x4c] bl _u32_div_f str r0, [sp, #0x1c] - bl FUN_020C02BC + bl NNS_SndAllocAlarm str r0, [r10, #0x40] ldr r0, [r10, #0x40] cmp r0, #0x0 @@ -316,7 +302,7 @@ _020C14E0: ble _020C15D4 ldr r0, [sp, #0x48] mov r7, r0, lsl #0x5 - ldr r6, _020C1668 ; =UNK_021D2724 + ldr r6, _020C1668 ; =sStrmChannel mov r5, r8 mov r4, #0x7f mov r11, #0x40 @@ -351,12 +337,12 @@ _020C15D4: str r10, [sp, #0x0] ldr r1, [sp, #0x1c] ldr r0, [r10, #0x40] - ldr r3, _020C166C ; =FUN_020C1308 + ldr r3, _020C166C ; =AlarmCallback mov r2, r1 bl SND_SetupAlarm - ldr r0, _020C1670 ; =UNK_021D26D8 + ldr r0, _020C1670 ; =sStrmList mov r1, r10 - bl FUN_020ADBE8 + bl NNS_FndAppendListObject ldr r0, [sp, #0x4c] str r9, [r10, #0x20] str r0, [r10, #0x2c] @@ -377,7 +363,7 @@ _020C15D4: mov r0, r10 mov r1, #0x0 str r2, [r10, #0x2c] - bl FUN_020C1254 + bl StrmCallback ldr r1, [sp, #0x4c] mov r0, r4 str r1, [r10, #0x2c] @@ -386,27 +372,25 @@ _020C15D4: add sp, sp, #0x24 ldmia sp!, {r4-r11,pc} .balign 4 -_020C1668: .word UNK_021D2724 -_020C166C: .word FUN_020C1308 -_020C1670: .word UNK_021D26D8 +_020C1668: .word sStrmChannel +_020C166C: .word AlarmCallback +_020C1670: .word sStrmList - ; _end - arm_func_start FUN_020C1674 -FUN_020C1674: ; 0x020C1674 + arm_func_start NNS_SndStrmFreeChannel +NNS_SndStrmFreeChannel: ; 0x020C1674 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x44] cmp r0, #0x0 ldmeqia sp!, {r4,pc} - bl FUN_020C0340 + bl NNS_SndUnlockChannel mov r0, #0x0 str r0, [r4, #0x44] str r0, [r4, #0x48] ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C169C -FUN_020C169C: ; 0x020C169C + arm_func_start NNS_SndStrmAllocChannel +NNS_SndStrmAllocChannel: ; 0x020C169C stmdb sp!, {r4-r6,lr} mov r5, r1 mov r4, #0x0 @@ -426,7 +410,7 @@ _020C16BC: blt _020C16BC _020C16DC: mov r0, r4 - bl FUN_020C0370 + bl NNS_SndLockChannel cmp r0, #0x0 moveq r0, #0x0 strne r5, [r6, #0x48] @@ -434,24 +418,23 @@ _020C16DC: movne r0, #0x1 ldmia sp!, {r4-r6,pc} - ; NNS_SndStrmInit - arm_func_start FUN_020C16FC -FUN_020C16FC: ; 0x020C16FC + arm_func_start NNS_SndStrmInit +NNS_SndStrmInit: ; 0x020C16FC stmdb sp!, {r4,lr} - ldr r1, _020C176C ; =UNK_021D26D4 + ldr r1, _020C176C ; =bInitialized$7761 mov r4, r0 ldr r0, [r1, #0x0] cmp r0, #0x0 bne _020C172C - ldr r0, _020C1770 ; =UNK_021D26D8 + ldr r0, _020C1770 ; =sStrmList mov r1, #0x0 - bl FUN_020ADC74 - ldr r0, _020C176C ; =UNK_021D26D4 + bl NNS_FndInitList + ldr r0, _020C176C ; =bInitialized$7761 mov r1, #0x1 str r1, [r0, #0x0] _020C172C: - ldr r1, _020C1774 ; =FUN_020C1208 - ldr r0, _020C1778 ; =FUN_020C1198 + ldr r1, _020C1774 ; =BeginSleep + ldr r0, _020C1778 ; =EndSleep str r1, [r4, #0x8] str r4, [r4, #0xc] str r0, [r4, #0x14] @@ -467,8 +450,7 @@ _020C172C: str r0, [r4, #0x24] ldmia sp!, {r4,pc} .balign 4 -_020C176C: .word UNK_021D26D4 -_020C1770: .word UNK_021D26D8 -_020C1774: .word FUN_020C1208 -_020C1778: .word FUN_020C1198 - +_020C176C: .word bInitialized$7761 +_020C1770: .word sStrmList +_020C1774: .word BeginSleep +_020C1778: .word EndSleep diff --git a/arm9/asm/NNS_SND_waveout.s b/arm9/asm/NNS_SND_waveout.s index 4d5a536db..b3c6591fd 100644 --- a/arm9/asm/NNS_SND_waveout.s +++ b/arm9/asm/NNS_SND_waveout.s @@ -3,16 +3,14 @@ .section .bss - ; sWaveOut - .global UNK_021D1CBC -UNK_021D1CBC: ; 0x021D1CBC + .global sWaveOut +sWaveOut: ; 0x021D1CBC .space 0x140 .section .text - ; _end - arm_func_start FUN_020C03B8 -FUN_020C03B8: ; 0x020C03B8 + arm_func_start NNS_SndWaveOutIsPlaying +NNS_SndWaveOutIsPlaying: ; 0x020C03B8 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x8] @@ -40,9 +38,8 @@ _020C03F8: streq r0, [r4, #0x8] ldmia sp!, {r4,pc} - ; _end - arm_func_start FUN_020C041C -FUN_020C041C: ; 0x020C041C + arm_func_start NNS_SndWaveOutSetPan +NNS_SndWaveOutSetPan: ; 0x020C041C stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x8] @@ -56,9 +53,8 @@ FUN_020C041C: ; 0x020C041C add sp, sp, #0x4 ldmia sp!, {pc} - ; NNS_SndWaveOutSetSpeed - arm_func_start FUN_020C044C -FUN_020C044C: ; 0x020C044C + arm_func_start NNS_SndWaveOutSetSpeed +NNS_SndWaveOutSetSpeed: ; 0x020C044C stmdb sp!, {r4-r5,lr} sub sp, sp, #0x4 mov r5, r0 @@ -98,9 +94,8 @@ _020C04B8: _020C04D4: .word 0xD87F8000 _020C04D8: .word 0x0000FFFF - ; _end - arm_func_start FUN_020C04DC -FUN_020C04DC: ; 0x020C04DC + arm_func_start NNS_SndWaveOutSetVolume +NNS_SndWaveOutSetVolume: ; 0x020C04DC stmdb sp!, {lr} sub sp, sp, #0x4 ldr r2, [r0, #0x8] @@ -115,9 +110,8 @@ FUN_020C04DC: ; 0x020C04DC add sp, sp, #0x4 ldmia sp!, {pc} - ; _end - arm_func_start FUN_020C0510 -FUN_020C0510: ; 0x020C0510 + arm_func_start NNS_SndWaveOutStop +NNS_SndWaveOutStop: ; 0x020C0510 stmdb sp!, {r4,lr} mov r4, r0 ldr r0, [r4, #0x8] @@ -134,9 +128,8 @@ FUN_020C0510: ; 0x020C0510 str r0, [r4, #0x8] ldmia sp!, {r4,pc} - ; NNS_SndWaveOutStart - arm_func_start FUN_020C054C -FUN_020C054C: ; 0x020C054C + arm_func_start NNS_SndWaveOutStart +NNS_SndWaveOutStart: ; 0x020C054C stmdb sp!, {r4-r9,lr} sub sp, sp, #0x1c movs r8, r1 @@ -215,36 +208,33 @@ _020C05E0: _020C0668: .word 0xD87F8000 _020C066C: .word 0x0000FFFF - ; NNS_SndWaveOutFreeChannel - arm_func_start FUN_020C0670 -FUN_020C0670: ; 0x020C0670 + arm_func_start NNS_SndWaveOutFreeChannel +NNS_SndWaveOutFreeChannel: ; 0x020C0670 ldr r0, [r0, #0x0] mov r1, #0x1 - ldr ip, _020C0684 ; =FUN_020C0340 + ldr ip, _020C0684 ; =NNS_SndUnlockChannel mov r0, r1, lsl r0 bx r12 .balign 4 -_020C0684: .word FUN_020C0340 +_020C0684: .word NNS_SndUnlockChannel - ; NNS_SndWaveOutAllocChannel - arm_func_start FUN_020C0688 -FUN_020C0688: ; 0x020C0688 + arm_func_start NNS_SndWaveOutAllocChannel +NNS_SndWaveOutAllocChannel: ; 0x020C0688 stmdb sp!, {r4,lr} mov r4, r0 mov r0, #0x1 mov r0, r0, lsl r4 - bl FUN_020C0370 + bl NNS_SndLockChannel cmp r0, #0x0 moveq r0, #0x0 ldmeqia sp!, {r4,pc} mov r0, #0x14 mul r0, r4, r0 - ldr r2, _020C06C8 ; =UNK_021D1CBC + ldr r2, _020C06C8 ; =sWaveOut mov r1, #0x0 str r4, [r2, r0] add r0, r2, r0 str r1, [r0, #0x8] ldmia sp!, {r4,pc} .balign 4 -_020C06C8: .word UNK_021D1CBC - +_020C06C8: .word sWaveOut diff --git a/arm9/asm/macros/function.inc b/arm9/asm/macros/function.inc index 6b9e5f40e..3323f53eb 100644 --- a/arm9/asm/macros/function.inc +++ b/arm9/asm/macros/function.inc @@ -4,6 +4,11 @@ .arm .endm + .macro local_arm_func_start name + .balign 4, 0 + .arm + .endm + .macro arm_func_end name .size \name, .-\name .endm diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s index e2418c144..5e62cb809 100644 --- a/arm9/asm/unk_020040F4.s +++ b/arm9/asm/unk_020040F4.s @@ -922,7 +922,7 @@ _02004800: add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C0F8C + bl NNS_SndPlayerPause strb r5, [r6, #0x0] _0200480E: pop {r4-r6, pc} @@ -948,7 +948,7 @@ FUN_02004828: ; 0x02004828 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - bl FUN_020C0EF4 + bl NNS_SndPlayerMoveVolume pop {r3-r5, pc} thumb_func_start FUN_0200483C @@ -964,7 +964,7 @@ _02004844: _0200484A: bl FUN_02003FF4 add r1, r4, #0x0 - bl FUN_020C0F30 + bl NNS_SndPlayerSetInitialVolume pop {r4, pc} .balign 4 @@ -972,7 +972,7 @@ _0200484A: FUN_02004858: ; 0x02004858 push {r3-r5, lr} add r5, r1, #0x0 - bl FUN_020C23FC + bl NNS_SndArcGetSeqParam cmp r5, #0x1 beq _02004868 cmp r5, #0x8 @@ -1018,7 +1018,7 @@ FUN_020048A0: ; 0x020048A0 add r1, r5, #0x0 add r3, r2, #0x0 str r4, [sp, #0x0] - bl FUN_020C3910 + bl NNS_SndArcPlayerStartSeqEx pop {r3-r5, pc} .balign 4 @@ -1030,7 +1030,7 @@ FUN_020048BC: ; 0x020048BC bl ErrorHandling _020048C6: add r0, r4, #0x0 - bl FUN_020C0F50 + bl NNS_SndPlayerCountPlayingSeqByPlayerNo pop {r4, pc} .balign 4 @@ -1042,7 +1042,7 @@ FUN_020048D0: ; 0x020048D0 mov r0, #0xff pop {r3, pc} _020048DA: - bl FUN_020C23FC + bl NNS_SndArcGetSeqParam cmp r0, #0x0 bne _020048E6 mov r0, #0xff @@ -1054,22 +1054,22 @@ _020048E6: thumb_func_start FUN_020048EC FUN_020048EC: ; 0x020048EC - ldr r3, _020048F0 ; =FUN_020C0E14 + ldr r3, _020048F0 ; =NNS_SndPlayerGetSeqNo bx r3 .balign 4 -_020048F0: .word FUN_020C0E14 +_020048F0: .word NNS_SndPlayerGetSeqNo thumb_func_start FUN_020048F4 FUN_020048F4: ; 0x020048F4 push {r3, lr} bl FUN_02004900 - bl FUN_020C22D0 + bl NNS_SndArcGetBankInfo pop {r3, pc} thumb_func_start FUN_02004900 FUN_02004900: ; 0x02004900 push {r3, lr} - bl FUN_020C23FC + bl NNS_SndArcGetSeqParam cmp r0, #0x0 bne _0200490E mov r0, #0x0 @@ -1166,7 +1166,7 @@ _020049A8: bl FUN_02003D38 add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_020C0688 + bl NNS_SndWaveOutAllocChannel str r0, [r4, #0x0] cmp r0, #0x0 bne _020049CA @@ -1187,7 +1187,7 @@ _020049D6: bl FUN_02003D38 add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_020C0688 + bl NNS_SndWaveOutAllocChannel str r0, [r6, #0x0] cmp r0, #0x0 bne _020049F4 @@ -1230,7 +1230,7 @@ _02004A2A: add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] - bl FUN_020C0670 + bl NNS_SndWaveOutFreeChannel mov r0, #0x0 strb r0, [r6, #0x0] pop {r4-r6, pc} @@ -1244,7 +1244,7 @@ _02004A4C: add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] - bl FUN_020C0670 + bl NNS_SndWaveOutFreeChannel mov r0, #0x0 strb r0, [r4, #0x0] pop {r4-r6, pc} @@ -1276,7 +1276,7 @@ FUN_02004A6C: ; 0x02004A6C ldr r2, [r3, #0x8] ldr r0, [r0, #0x0] ldr r3, [r3, #0xc] - bl FUN_020C054C + bl NNS_SndWaveOutStart add r5, r0, #0x0 bne _02004AA4 add r0, r4, #0x0 @@ -1292,7 +1292,7 @@ FUN_02004AAC: ; 0x02004AAC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] - bl FUN_020C0510 + bl NNS_SndWaveOutStop pop {r3, pc} .balign 4 @@ -1301,7 +1301,7 @@ FUN_02004ABC: ; 0x02004ABC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] - bl FUN_020C03B8 + bl NNS_SndWaveOutIsPlaying pop {r3, pc} .balign 4 @@ -1316,7 +1316,7 @@ _02004AD6: bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 - bl FUN_020C041C + bl NNS_SndWaveOutSetPan pop {r4, pc} thumb_func_start FUN_02004AE4 @@ -1326,7 +1326,7 @@ FUN_02004AE4: ; 0x02004AE4 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 - bl FUN_020C044C + bl NNS_SndWaveOutSetSpeed pop {r4, pc} .balign 4 @@ -1346,14 +1346,14 @@ FUN_02004AF8: ; 0x02004AF8 bl _s32_div_f add r1, r0, #0x0 ldr r0, [r4, #0x0] - bl FUN_020C04DC + bl NNS_SndWaveOutSetVolume pop {r3-r5, pc} _02004B20: add r0, r4, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r5, #0x0 - bl FUN_020C04DC + bl NNS_SndWaveOutSetVolume pop {r3-r5, pc} thumb_func_start FUN_02004B30 @@ -1375,7 +1375,7 @@ FUN_02004B30: ; 0x02004B30 bl ErrorHandling _02004B54: add r0, r6, #0x0 - bl FUN_020C226C + bl NNS_SndArcGetWaveArcInfo add r7, r0, #0x0 bne _02004B68 bl ErrorHandling @@ -1386,7 +1386,7 @@ _02004B68: ldr r0, [r7, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 - bl FUN_020C217C + bl NNS_SndArcGetFileSize add r6, r0, #0x0 bne _02004B80 bl ErrorHandling @@ -1416,7 +1416,7 @@ _02004B9C: lsr r0, r0, #0x8 add r2, r6, #0x0 mov r3, #0x0 - bl FUN_020C2104 + bl NNS_SndArcReadFile mov r1, #0x0 mvn r1, r1 cmp r0, r1 @@ -1518,10 +1518,10 @@ _02004C76: thumb_func_start FUN_02004C78 FUN_02004C78: ; 0x02004C78 - ldr r3, _02004C7C ; =FUN_020C1E58 + ldr r3, _02004C7C ; =NNS_SndCaptureIsActive bx r3 .balign 4 -_02004C7C: .word FUN_020C1E58 +_02004C7C: .word NNS_SndCaptureIsActive thumb_func_start FUN_02004C80 FUN_02004C80: ; 0x02004C80 @@ -1537,23 +1537,23 @@ FUN_02004C80: ; 0x02004C80 mov r2, #0x0 lsl r3, r3, #0x6 str r4, [sp, #0x0] - bl FUN_020C1FF0 + bl NNS_SndCaptureStartReverb add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02004CA4 FUN_02004CA4: ; 0x02004CA4 - ldr r3, _02004CA8 ; =FUN_020C1F54 + ldr r3, _02004CA8 ; =NNS_SndCaptureStopReverb bx r3 .balign 4 -_02004CA8: .word FUN_020C1F54 +_02004CA8: .word NNS_SndCaptureStopReverb thumb_func_start FUN_02004CAC FUN_02004CAC: ; 0x02004CAC - ldr r3, _02004CB0 ; =FUN_020C1FA4 + ldr r3, _02004CB0 ; =NNS_SndCaptureSetReverbVolume bx r3 .balign 4 -_02004CB0: .word FUN_020C1FA4 +_02004CB0: .word NNS_SndCaptureSetReverbVolume thumb_func_start FUN_02004CB4 FUN_02004CB4: ; 0x02004CB4 @@ -1579,7 +1579,7 @@ FUN_02004CB4: ; 0x02004CB4 ldr r3, _02004CF8 ; =0x000055F0 add r0, r4, #0x0 mov r2, #0x0 - bl FUN_020C1EA4 + bl NNS_SndCaptureStartEffect add sp, #0xc pop {r3-r4, pc} nop @@ -1588,10 +1588,10 @@ _02004CF8: .word 0x000055F0 thumb_func_start FUN_02004CFC FUN_02004CFC: ; 0x02004CFC - ldr r3, _02004D00 ; =FUN_020C1E68 + ldr r3, _02004D00 ; =NNS_SndCaptureStopEffect bx r3 .balign 4 -_02004D00: .word FUN_020C1E68 +_02004D00: .word NNS_SndCaptureStopEffect thumb_func_start FUN_02004D04 FUN_02004D04: ; 0x02004D04 @@ -1619,7 +1619,7 @@ FUN_02004D20: ; 0x02004D20 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - bl FUN_020C0EA4 + bl NNS_SndPlayerSetTrackPitch pop {r3-r5, pc} thumb_func_start FUN_02004D34 @@ -1642,14 +1642,14 @@ FUN_02004D4C: ; 0x02004D4C bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - bl FUN_020C0E7C + bl NNS_SndPlayerSetTrackPan pop {r3-r5, pc} thumb_func_start FUN_02004D60 FUN_02004D60: ; 0x02004D60 push {r4, lr} add r4, r0, #0x0 - bl FUN_020C0174 + bl NNS_SndSetMonoFlag ldr r0, _02004D70 ; =UNK_021C3DD8 str r4, [r0, #0x0] pop {r4, pc} @@ -1866,7 +1866,7 @@ FUN_02004ED0: ; 0x02004ED0 _02004EF0: mov r0, #0x1 _02004EF2: - bl FUN_020C226C + bl NNS_SndArcGetWaveArcInfo cmp r0, #0x0 bne _02004F02 bl ErrorHandling @@ -1876,7 +1876,7 @@ _02004F02: ldr r0, [r0, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 - bl FUN_020C20DC + bl NNS_SndArcGetFileAddress cmp r0, #0x0 bne _02004F18 bl ErrorHandling @@ -1928,7 +1928,7 @@ _02004F62: FUN_02004F64: ; 0x02004F64 push {r3, lr} bl FUN_02003FF4 - bl FUN_020C0DD4 + bl NNS_SndPlayerGetTick pop {r3, pc} thumb_func_start FUN_02004F70 @@ -2216,12 +2216,12 @@ _0200515A: thumb_func_start FUN_02005160 FUN_02005160: ; 0x02005160 - ldr r3, _02005168 ; =FUN_020C1148 + ldr r3, _02005168 ; =NNS_SndPlayerSetAllocatableChannel add r1, r0, #0x0 mov r0, #0x7 bx r3 .balign 4 -_02005168: .word FUN_020C1148 +_02005168: .word NNS_SndPlayerSetAllocatableChannel thumb_func_start FUN_0200516C FUN_0200516C: ; 0x0200516C @@ -2282,7 +2282,7 @@ _020051E8: .word 0x0000047E thumb_func_start FUN_020051EC FUN_020051EC: ; 0x020051EC - ldr r3, _020051F0 ; =FUN_020C1180 + ldr r3, _020051F0 ; =NNS_SndPlayerSetPlayerVolume bx r3 .balign 4 -_020051F0: .word FUN_020C1180 +_020051F0: .word NNS_SndPlayerSetPlayerVolume diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s index ccb8d2722..12b0c8cb2 100644 --- a/arm9/asm/unk_020051F4.s +++ b/arm9/asm/unk_020051F4.s @@ -12,7 +12,7 @@ FUN_020051F4: ; 0x020051F4 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C3980 + bl NNS_SndArcPlayerStartSeq add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -90,7 +90,7 @@ FUN_02005288: ; 0x02005288 add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C3980 + bl NNS_SndArcPlayerStartSeq pop {r3-r5, pc} .balign 4 @@ -123,7 +123,7 @@ FUN_020052B8: ; 0x020052B8 add r0, r6, #0x0 add r3, r1, #0x0 str r5, [sp, #0x0] - bl FUN_020C3910 + bl NNS_SndArcPlayerStartSeqEx add sp, #0x4 pop {r3-r6, pc} .balign 4 @@ -152,7 +152,7 @@ _0200532A: mov r0, #0x7 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C3980 + bl NNS_SndArcPlayerStartSeq add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02004110 @@ -165,14 +165,14 @@ _0200532A: FUN_02005350: ; 0x02005350 push {r4, lr} add r4, r0, #0x0 - bl FUN_020C0FDC + bl NNS_SndPlayerStopSeqBySeqNo add r0, r4, #0x0 bl FUN_020048D0 cmp r0, #0xff beq _0200536E bl FUN_02004018 bl FUN_02003FF4 - bl FUN_020C0F68 + bl NNS_SndHandleReleaseSeq _0200536E: bl FUN_02005374 pop {r4, pc} @@ -270,7 +270,7 @@ FUN_0200541C: ; 0x0200541C bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x0 - bl FUN_020C0F9C + bl NNS_SndPlayerStopSeqAll ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _02005440 @@ -299,7 +299,7 @@ FUN_02005454: ; 0x02005454 mov r0, #0x7 bl FUN_02003FF4 mov r1, #0x0 - bl FUN_020C10A4 + bl NNS_SndPlayerStopSeq bl FUN_02005374 mov r5, #0x0 add r4, r5, #0x0 @@ -351,7 +351,7 @@ FUN_020054C8: ; 0x020054C8 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C3980 + bl NNS_SndArcPlayerStartSeq add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -362,10 +362,10 @@ FUN_020054C8: ; 0x020054C8 thumb_func_start FUN_020054F0 FUN_020054F0: ; 0x020054F0 - ldr r3, _020054F4 ; =FUN_020C0FDC + ldr r3, _020054F4 ; =NNS_SndPlayerStopSeqBySeqNo bx r3 .balign 4 -_020054F4: .word FUN_020C0FDC +_020054F4: .word NNS_SndPlayerStopSeqBySeqNo thumb_func_start FUN_020054F8 FUN_020054F8: ; 0x020054F8 @@ -373,7 +373,7 @@ FUN_020054F8: ; 0x020054F8 add r4, r1, #0x0 bl FUN_02003FF4 add r1, r4, #0x0 - bl FUN_020C10A4 + bl NNS_SndPlayerStopSeq pop {r4, pc} thumb_func_start FUN_02005508 @@ -411,7 +411,7 @@ FUN_02005530: ; 0x02005530 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - bl FUN_020C0E7C + bl NNS_SndPlayerSetTrackPan pop {r3-r5, pc} thumb_func_start FUN_0200554C @@ -428,7 +428,7 @@ _0200555C: bl FUN_02003FF4 add r1, r7, #0x0 add r2, r6, #0x0 - bl FUN_020C0E7C + bl NNS_SndPlayerSetTrackPan add r5, r5, #0x1 cmp r5, #0x4 blt _0200555C @@ -483,7 +483,7 @@ _020055BC: sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 - bl FUN_020C3910 + bl NNS_SndArcPlayerStartSeqEx add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 @@ -497,7 +497,7 @@ _020055E8: sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 - bl FUN_020C3910 + bl NNS_SndArcPlayerStartSeqEx add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 @@ -525,11 +525,11 @@ FUN_02005614: ; 0x02005614 mov r0, #0x1 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C10A4 + bl NNS_SndPlayerStopSeq mov r0, #0x8 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C10A4 + bl NNS_SndPlayerStopSeq ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02005658 @@ -1239,7 +1239,7 @@ _02005C48: mov r0, #0x2 bl FUN_02003FF4 add r1, r5, #0x0 - bl FUN_020C3980 + bl NNS_SndArcPlayerStartSeq add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x2 @@ -1279,7 +1279,7 @@ FUN_02005CA0: ; 0x02005CA0 mov r0, #0x2 bl FUN_02003FF4 add r1, r4, #0x0 - bl FUN_020C10A4 + bl NNS_SndPlayerStopSeq mov r0, #0x6 bl FUN_02004748 bl FUN_02003F64 diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index 5bd62750d..75adbe923 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -5,8 +5,8 @@ .global UNK_020ECB98 UNK_020ECB98: ; 0x020ECB98 - .word FUN_020B1768 - .word FUN_020B1528 + .word NNS_G2dLoadImage1DMapping + .word NNS_G2dLoadImage2DMapping .global UNK_020ECBA0 UNK_020ECBA0: ; 0x020ECBA0 @@ -14,7 +14,7 @@ UNK_020ECBA0: ; 0x020ECBA0 .global UNK_020ECBA8 UNK_020ECBA8: ; 0x020ECBA8 - .word FUN_020B1768, FUN_020B1528 + .word NNS_G2dLoadImage1DMapping, NNS_G2dLoadImage2DMapping .global UNK_020ECBB0 UNK_020ECBB0: ; 0x020ECBB0 @@ -38,7 +38,7 @@ FUN_0200687C: ; 0x0200687C add r7, r0, #0x0 beq _020068C2 add r1, sp, #0x4 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0x0 beq _020068BC cmp r4, #0x0 @@ -78,7 +78,7 @@ FUN_020068C8: ; 0x020068C8 add r7, r0, #0x0 beq _0200692C add r1, sp, #0x4 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData cmp r0, #0x0 beq _02006926 cmp r4, #0x0 @@ -147,7 +147,7 @@ FUN_02006948: ; 0x02006948 cmp r0, #0x0 beq _02006A2A add r1, sp, #0x8 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0x0 beq _02006A24 ldr r0, [sp, #0x8] @@ -262,7 +262,7 @@ FUN_02006A34: ; 0x02006A34 add r7, r0, #0x0 beq _02006A80 add r1, sp, #0x4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r0, #0x0 beq _02006A7A cmp r4, #0x0 @@ -306,11 +306,11 @@ FUN_02006A8C: ; 0x02006A8C add r6, r0, #0x0 beq _02006AE0 add r1, sp, #0x4 - bl FUN_020B00F0 + bl NNS_G2dGetUnpackedPaletteCompressInfo add r7, r0, #0x0 add r0, r6, #0x0 add r1, sp, #0x8 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0x0 beq _02006ADA cmp r7, #0x0 @@ -321,14 +321,14 @@ FUN_02006A8C: ; 0x02006A8C ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r3, r5, #0x0 - bl FUN_020B10E8 + bl NNS_G2dLoadPaletteEx b _02006ADA _02006ACE: ldr r0, [sp, #0x8] ldr r3, [sp, #0x24] add r1, r4, #0x0 add r2, r5, #0x0 - bl FUN_020B1240 + bl NNS_G2dLoadPalette _02006ADA: add r0, r6, #0x0 bl FreeToHeap @@ -349,7 +349,7 @@ FUN_02006AE4: ; 0x02006AE4 ldr r4, _02006B30 ; =0x00000000 beq _02006B28 add r1, sp, #0x4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r0, #0x0 beq _02006B22 ldr r1, [sp, #0x18] @@ -391,7 +391,7 @@ FUN_02006B38: ; 0x02006B38 add r4, r0, #0x0 beq _02006B9E add r1, sp, #0x4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r0, #0x0 beq _02006B98 ldr r1, [sp, #0x18] @@ -453,7 +453,7 @@ FUN_02006BB0: ; 0x02006BB0 add r5, r0, #0x0 beq _02006BD6 add r1, r4, #0x0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0x0 bne _02006BD6 add r0, r5, #0x0 @@ -476,7 +476,7 @@ FUN_02006BDC: ; 0x02006BDC add r5, r0, #0x0 beq _02006C02 add r1, r4, #0x0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData cmp r0, #0x0 bne _02006C02 add r0, r5, #0x0 @@ -498,7 +498,7 @@ FUN_02006C08: ; 0x02006C08 add r4, r0, #0x0 beq _02006C2C add r1, r5, #0x0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0x0 bne _02006C2C add r0, r4, #0x0 @@ -520,7 +520,7 @@ FUN_02006C30: ; 0x02006C30 add r5, r0, #0x0 beq _02006C56 add r1, r4, #0x0 - bl FUN_020AFEB8 + bl NNS_G2dGetUnpackedCellBank cmp r0, #0x0 bne _02006C56 add r0, r5, #0x0 @@ -543,7 +543,7 @@ FUN_02006C5C: ; 0x02006C5C add r5, r0, #0x0 beq _02006C82 add r1, r4, #0x0 - bl thunk_FUN_020afda0_2 + bl NNS_G2dGetUnpackedAnimBank cmp r0, #0x0 bne _02006C82 add r0, r5, #0x0 diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index c1e95596f..4b0a737d9 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -144,7 +144,7 @@ _02006E12: add r5, #0x98 cmp r6, #0x4 blt _02006E12 - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera ldr r2, _02006EC8 ; =0x000002E3 mov r0, #0x0 strb r0, [r4, r2] @@ -155,7 +155,7 @@ _02006E12: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0xc str r0, [sp, #0x4] - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0xc] mov r1, #0xaf ldr r0, [r0, #0x4] @@ -235,7 +235,7 @@ FUN_02006ED4: ; 0x02006ED4 bl FUN_020082A8 add r0, r5, #0x0 bl FUN_020086F4 - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer mov r6, #0x9f mov r0, #0x0 ldr r4, _02007250 ; =0x04000444 @@ -295,7 +295,7 @@ _02006F48: add r1, #0x24 blx r2 _02006F56: - bl FUN_020BB394 + bl NNS_G3dGeFlushBuffer ldr r0, _02007258 ; =0x000002E3 ldrb r0, [r5, r0] cmp r0, #0x1 @@ -505,7 +505,7 @@ _02006F7E: add r2, r3, r2 asr r1, r1, #0x10 mov r3, r12 - bl FUN_020B0250 + bl NNS_G2dDrawSpriteFast b _02007174 _02007104: mov r0, #0x34 @@ -562,7 +562,7 @@ _02007104: lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r6, r2 - bl FUN_020B0250 + bl NNS_G2dDrawSpriteFast _02007174: add r0, r4, #0x0 add r0, #0x6c @@ -725,7 +725,7 @@ _0200727C: lsl r1, r1, #0x10 ldr r2, _020072E0 ; =0xFFFFFC18 asr r1, r1, #0x10 - bl FUN_020B0250 + bl NNS_G2dDrawSpriteFast _020072BC: ldr r0, [sp, #0x14] add r4, #0x98 @@ -2884,7 +2884,7 @@ FUN_020081C4: ; 0x020081C4 strb r1, [r4, r0] sub r0, #0x81 add r0, r4, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0xae lsl r3, r3, #0x2 mov r1, #0x20 @@ -2910,7 +2910,7 @@ FUN_020081C4: ; 0x020081C4 ldr r1, [r4, r1] mov r2, #0x0 add r3, r4, r3 - bl FUN_020B1528 + bl NNS_G2dLoadImage2DMapping _02008212: ldr r0, _02008258 ; =0x000002E2 ldrb r1, [r4, r0] @@ -2920,7 +2920,7 @@ _02008212: strb r1, [r4, r0] sub r0, #0x5e add r0, r4, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r3, #0xaa lsl r3, r3, #0x2 add r0, r3, #0x0 @@ -2941,7 +2941,7 @@ _02008212: add r0, r4, r0 mov r2, #0x0 add r3, r4, r3 - bl FUN_020B1240 + bl NNS_G2dLoadPalette _02008252: pop {r4, pc} .balign 4 @@ -3037,7 +3037,7 @@ _020082CC: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x58 str r0, [sp, #0x4c] - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0x58] mov r1, #0xaf ldr r0, [r0, #0x4] @@ -3600,7 +3600,7 @@ _02008706: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x18 str r0, [sp, #0x10] - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [sp, #0x18] mov r7, #0x0 ldr r1, [r0, #0x0] @@ -3646,7 +3646,7 @@ _0200874A: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x18 str r0, [sp, #0x4] - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [sp, #0x18] mov r7, #0xad ldr r0, [r0, #0xc] diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index 1b0161ae1..b05df5ca1 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -1457,7 +1457,7 @@ FUN_0200986C: ; 0x0200986C add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData str r5, [r4, #0x4] add r0, r4, #0x0 pop {r4-r6, pc} @@ -1475,7 +1475,7 @@ FUN_0200988C: ; 0x0200988C add r4, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData str r5, [r4, #0x4] str r6, [r4, #0x8] add r0, r4, #0x0 @@ -1492,7 +1492,7 @@ FUN_020098B0: ; 0x020098B0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 - bl FUN_020AFEB8 + bl NNS_G2dGetUnpackedCellBank add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 @@ -1507,7 +1507,7 @@ FUN_020098CC: ; 0x020098CC add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 - bl thunk_FUN_020afda0_2 + bl NNS_G2dGetUnpackedAnimBank add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 @@ -1522,7 +1522,7 @@ FUN_020098E8: ; 0x020098E8 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 - bl FUN_020AFFD8 + bl NNS_G2dGetUnpackedMultiCellBank add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 @@ -1537,7 +1537,7 @@ FUN_02009904: ; 0x02009904 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 - bl thunk_FUN_020afda0 + bl NNS_G2dGetUnpackedMCAnimBank add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 @@ -2266,7 +2266,7 @@ FUN_02009E88: ; 0x02009E88 mov r1, #0x0 bl FUN_02009E54 add r1, r4, #0x0 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation mov r1, #0x0 mvn r1, r1 cmp r0, r1 diff --git a/arm9/asm/unk_02009EAC.s b/arm9/asm/unk_02009EAC.s index a6a7e7d7d..2c51446be 100644 --- a/arm9/asm/unk_02009EAC.s +++ b/arm9/asm/unk_02009EAC.s @@ -95,7 +95,7 @@ _02009F1C: lsl r2, r4, #0x10 lsr r1, r1, #0x10 lsr r2, r2, #0x10 - bl FUN_020B0E34 + bl NNS_G2dGetNewOamManagerInstance cmp r0, #0x0 bne _02009F48 bl ErrorHandling @@ -118,7 +118,7 @@ _02009F48: lsr r1, r1, #0x10 lsr r2, r2, #0x10 lsr r3, r3, #0x10 - bl FUN_020B0E34 + bl NNS_G2dGetNewOamManagerInstance cmp r0, #0x0 bne _02009F78 bl ErrorHandling @@ -135,11 +135,11 @@ FUN_02009F80: ; 0x02009F80 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02009F98 - bl FUN_020B0870 + bl NNS_G2dApplyAndResetOamManagerBuffer ldr r0, _02009F9C ; =UNK_021C4670 ldr r0, [r0, #0x0] add r0, #0x1c - bl FUN_020B0870 + bl NNS_G2dApplyAndResetOamManagerBuffer _02009F98: pop {r3, pc} nop @@ -264,7 +264,7 @@ FUN_0200A074: ; 0x0200A074 add r2, r1, #0x0 ldr r0, [r0, #0x0] add r1, r3, #0x0 - bl FUN_020B0C7C + bl NNS_G2dEntryOamManagerOamWithAffineIdx add r4, r0, #0x0 bne _0200A08C bl ErrorHandling @@ -283,7 +283,7 @@ FUN_0200A094: ; 0x0200A094 ldr r0, [r0, #0x0] add r1, r3, #0x0 add r0, #0x1c - bl FUN_020B0C7C + bl NNS_G2dEntryOamManagerOamWithAffineIdx add r4, r0, #0x0 bne _0200A0AE bl ErrorHandling @@ -299,7 +299,7 @@ FUN_0200A0B8: ; 0x0200A0B8 add r1, r0, #0x0 ldr r0, _0200A0D4 ; =UNK_021C4670 ldr r0, [r0, #0x0] - bl FUN_020B0BB0 + bl NNS_G2dEntryOamManagerAffine add r4, r0, #0x0 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 @@ -319,7 +319,7 @@ FUN_0200A0DC: ; 0x0200A0DC ldr r0, _0200A0FC ; =UNK_021C4670 ldr r0, [r0, #0x0] add r0, #0x1c - bl FUN_020B0BB0 + bl NNS_G2dEntryOamManagerAffine add r4, r0, #0x0 ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 diff --git a/arm9/asm/unk_0200BB14.s b/arm9/asm/unk_0200BB14.s index 04f67c6ef..7a041be2e 100644 --- a/arm9/asm/unk_0200BB14.s +++ b/arm9/asm/unk_0200BB14.s @@ -90,7 +90,7 @@ _0200BB8A: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0201E00C - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule ldr r0, [r5, #0x8] cmp r0, #0x1 bne _0200BBD6 diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 27b27a76b..bf4889d8b 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -1084,7 +1084,7 @@ FUN_0200D300: ; 0x0200D300 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x18 str r0, [sp, #0x14] - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData add r2, sp, #0x20 ldr r1, [sp, #0x18] ldrb r2, [r2, #0x10] @@ -2574,7 +2574,7 @@ FUN_0200DEF4: ; 0x0200DEF4 bl FUN_02009C5C mov r1, #0x1 str r0, [sp, #0x4] - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation mov r1, #0x19 add r7, r0, #0x0 add r0, r4, #0x0 @@ -2601,7 +2601,7 @@ FUN_0200DEF4: ; 0x0200DEF4 ldr r1, [sp, #0x4] bl FUN_02009E54 mov r1, #0x1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x20 diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index fc5c7b329..ff9364c93 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -870,7 +870,7 @@ _02011D52: beq _02011D92 _02011D68: add r0, r5, #0x0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy str r7, [sp, #0x0] ldr r0, [sp, #0x30] str r6, [sp, #0x4] diff --git a/arm9/asm/unk_02012004.s b/arm9/asm/unk_02012004.s index 042302c64..e43e4bb2a 100644 --- a/arm9/asm/unk_02012004.s +++ b/arm9/asm/unk_02012004.s @@ -82,7 +82,7 @@ FUN_02012044: ; 0x02012044 _02012054: add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 @@ -309,7 +309,7 @@ FUN_020121E8: ; 0x020121E8 _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r0, #0x0 bne _02012214 bl ErrorHandling @@ -649,7 +649,7 @@ FUN_02012470: ; 0x02012470 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x0 add r5, r0, #0x0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0x1 beq _0201249C bl ErrorHandling diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index 781d1d6d8..2961eba77 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1,7 +1,7 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021CED64 + .extern NNS_G3dGlb .section .rodata @@ -205,7 +205,7 @@ FUN_02012DE4: ; 0x02012DE4 beq _02012E02 add r0, r5, #0x0 add r0, #0x58 - bl FUN_020AE8CC + bl NNS_GfdSetFrmTexVramState b _02012E22 _02012E02: mov r0, #0x2 @@ -218,7 +218,7 @@ _02012E0E: ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02012E1A - bl FUN_020AF894 + bl NNS_GfdFreeLnkTexVram str r7, [r4, #0x58] _02012E1A: add r6, r6, #0x1 @@ -234,7 +234,7 @@ _02012E22: beq _02012E38 add r0, r5, #0x0 add r0, #0x98 - bl FUN_020AEC7C + bl NNS_GfdSetFrmPlttVramState b _02012E60 _02012E38: mov r0, #0x8 @@ -249,7 +249,7 @@ _02012E44: ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02012E58 - bl FUN_020AFA80 + bl NNS_GfdFreeLnkPlttVram add r0, r4, #0x0 add r0, #0x98 str r7, [r0, #0x0] @@ -766,7 +766,7 @@ _020131B2: beq _020131C8 add r0, r5, #0x0 add r0, #0x58 - bl FUN_020AE918 + bl NNS_GfdGetFrmTexVramState b _020131DE _020131C8: mov r0, #0x2 @@ -787,7 +787,7 @@ _020131DE: beq _020131EE add r0, r5, #0x0 add r0, #0x98 - bl FUN_020AEC98 + bl NNS_GfdGetFrmPlttVramState b _02013208 _020131EE: mov r0, #0x8 @@ -952,19 +952,19 @@ FUN_02013300: ; 0x02013300 bl FUN_0201EB8C bl FUN_0201EBA4 _0201331C: - bl FUN_020B849C + bl NNS_G3dGlbFlushP ldr r0, [r4, #0x0] - ldr r1, _02013338 ; =UNK_021CED64 + ldr r1, _02013338 ; =NNS_G3dGlb + 0x4C bl FUN_0208AD80 ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02013332 bl FUN_0201EB98 _02013332: - bl FUN_020B849C + bl NNS_G3dGlbFlushP pop {r4, pc} .balign 4 -_02013338: .word UNK_021CED64 +_02013338: .word NNS_G3dGlb + 0x4C thumb_func_start FUN_0201333C FUN_0201333C: ; 0x0201333C diff --git a/arm9/asm/unk_02013CD4.s b/arm9/asm/unk_02013CD4.s index f4fc4db42..330a8c95e 100644 --- a/arm9/asm/unk_02013CD4.s +++ b/arm9/asm/unk_02013CD4.s @@ -1,11 +1,11 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021064C0 + .extern NNS_GfdDefaultFuncAllocPlttVram .extern FX_SinCosTable_ - .extern UNK_021064B8 - .extern UNK_021064C4 - .extern UNK_021064BC + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncFreePlttVram + .extern NNS_GfdDefaultFuncFreeTexVram .text @@ -141,7 +141,7 @@ _02013DC6: thumb_func_start FUN_02013DD4 FUN_02013DD4: ; 0x02013DD4 push {r4, lr} - ldr r1, _02013DE8 ; =UNK_021064BC + ldr r1, _02013DE8 ; =NNS_GfdDefaultFuncFreeTexVram add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] @@ -150,7 +150,7 @@ FUN_02013DD4: ; 0x02013DD4 bl FUN_02013F50 pop {r4, pc} .balign 4 -_02013DE8: .word UNK_021064BC +_02013DE8: .word NNS_GfdDefaultFuncFreeTexVram thumb_func_start FUN_02013DEC FUN_02013DEC: ; 0x02013DEC @@ -204,7 +204,7 @@ _02013E36: thumb_func_start FUN_02013E44 FUN_02013E44: ; 0x02013E44 push {r4, lr} - ldr r1, _02013E58 ; =UNK_021064C4 + ldr r1, _02013E58 ; =NNS_GfdDefaultFuncFreePlttVram add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] @@ -213,7 +213,7 @@ FUN_02013E44: ; 0x02013E44 bl FUN_02013F5C pop {r4, pc} .balign 4 -_02013E58: .word UNK_021064C4 +_02013E58: .word NNS_GfdDefaultFuncFreePlttVram thumb_func_start FUN_02013E5C FUN_02013E5C: ; 0x02013E5C @@ -401,21 +401,21 @@ _02013F4C: .word 0x00007FFF thumb_func_start FUN_02013F50 FUN_02013F50: ; 0x02013F50 - ldr r3, _02013F58 ; =FUN_020B1A24 + ldr r3, _02013F58 ; =NNS_G2dInitImageProxy mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 -_02013F58: .word FUN_020B1A24 +_02013F58: .word NNS_G2dInitImageProxy thumb_func_start FUN_02013F5C FUN_02013F5C: ; 0x02013F5C - ldr r3, _02013F64 ; =FUN_020B19DC + ldr r3, _02013F64 ; =NNS_G2dInitImagePaletteProxy mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 -_02013F64: .word FUN_020B19DC +_02013F64: .word NNS_G2dInitImagePaletteProxy thumb_func_start FUN_02013F68 FUN_02013F68: ; 0x02013F68 @@ -585,7 +585,7 @@ _02014076: thumb_func_start FUN_0201407C FUN_0201407C: ; 0x0201407C push {r3, lr} - ldr r3, _0201408C ; =UNK_021064B8 + ldr r3, _0201408C ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x0 ldr r0, [r0, #0x10] ldr r3, [r3, #0x0] @@ -593,12 +593,12 @@ FUN_0201407C: ; 0x0201407C blx r3 pop {r3, pc} .balign 4 -_0201408C: .word UNK_021064B8 +_0201408C: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start FUN_02014090 FUN_02014090: ; 0x02014090 push {r3, lr} - ldr r3, _020140A0 ; =UNK_021064C0 + ldr r3, _020140A0 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0x5 @@ -606,7 +606,7 @@ FUN_02014090: ; 0x02014090 blx r3 pop {r3, pc} .balign 4 -_020140A0: .word UNK_021064C0 +_020140A0: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_020140A4 FUN_020140A4: ; 0x020140A4 @@ -615,7 +615,7 @@ FUN_020140A4: ; 0x020140A4 add r3, r2, #0x0 lsr r1, r1, #0xd mov r2, #0x0 - bl FUN_020B1528 + bl NNS_G2dLoadImage2DMapping pop {r3, pc} thumb_func_start FUN_020140B4 @@ -632,7 +632,7 @@ FUN_020140B4: ; 0x020140B4 str r2, [r5, #0x8] lsr r1, r1, #0xd mov r2, #0x0 - bl FUN_020B1240 + bl NNS_G2dLoadPalette str r4, [r5, #0x8] pop {r3-r5, pc} .balign 4 @@ -781,7 +781,7 @@ _02014172: str r4, [sp, #0x10] ldrsh r3, [r5, r3] add r1, r0, #0x0 - bl FUN_020B0250 + bl NNS_G2dDrawSpriteFast ldr r0, _02014214 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] @@ -868,14 +868,14 @@ _0201424C: ldr r0, [r5, #0x4] mov r1, #0x0 add r0, r0, #0x4 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F14 ldr r0, [r5, #0x8] mov r1, #0x0 add r0, r0, #0x4 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F18 diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 0a68dea2a..5d6f0073a 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -8797,7 +8797,7 @@ FUN_0201AB28: ; 0x0201AB28 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} @@ -8812,7 +8812,7 @@ FUN_0201AB44: ; 0x0201AB44 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} diff --git a/arm9/asm/unk_0201B1A8.s b/arm9/asm/unk_0201B1A8.s index 05245bc61..28308d534 100644 --- a/arm9/asm/unk_0201B1A8.s +++ b/arm9/asm/unk_0201B1A8.s @@ -1,12 +1,12 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021CED98 - .extern UNK_021CEDD4 - .extern UNK_021064C0 - .extern UNK_021064B8 - .extern UNK_021064C4 - .extern UNK_021064BC + .extern NNS_G3dGlb + .extern NNS_G3dGlb + .extern NNS_GfdDefaultFuncAllocPlttVram + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncFreePlttVram + .extern NNS_GfdDefaultFuncFreeTexVram .section .bss @@ -23,7 +23,7 @@ FUN_0201B1A8: ; 0x0201B1A8 add r4, r2, #0x0 bl FUN_020161A4 str r0, [r5, #0x0] - bl FUN_020BC0FC + bl NNS_G3dGetTex cmp r0, #0x0 beq _0201B1D2 bl FUN_0201B254 @@ -33,10 +33,10 @@ FUN_0201B1A8: ; 0x0201B1A8 ldr r1, [r0, #0x8] bl DC_FlushRange ldr r0, [r5, #0x0] - bl FUN_020BB59C + bl NNS_G3dResDefaultSetup _0201B1D2: ldr r0, [r5, #0x0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -50,7 +50,7 @@ FUN_0201B1E4: ; 0x0201B1E4 add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0x0] - bl FUN_020BC0FC + bl NNS_G3dGetTex cmp r0, #0x0 beq _0201B20A bl FUN_0201B254 @@ -60,10 +60,10 @@ FUN_0201B1E4: ; 0x0201B1E4 ldr r1, [r0, #0x8] bl DC_FlushRange ldr r0, [r5, #0x0] - bl FUN_020BB59C + bl NNS_G3dResDefaultSetup _0201B20A: ldr r0, [r5, #0x0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -81,7 +81,7 @@ FUN_0201B21C: ; 0x0201B21C bl FUN_0201B1A8 ldr r1, [r4, #0x0] add r0, r5, #0x0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit pop {r3-r5, pc} thumb_func_start FUN_0201B234 @@ -98,7 +98,7 @@ FUN_0201B234: ; 0x0201B234 _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit pop {r3-r5, pc} thumb_func_start FUN_0201B254 @@ -125,24 +125,24 @@ FUN_0201B26C: ; 0x0201B26C add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 - bl FUN_020B8474 - ldr r1, _0201B2A0 ; =UNK_021CEDD4 + bl NNS_G3dGlbSetBaseTrans + ldr r1, _0201B2A0 ; =NNS_G3dGlb + 0xBC add r0, r4, #0x0 bl MI_Copy36B - ldr r1, _0201B2A4 ; =UNK_021CED98 + ldr r1, _0201B2A4 ; =NNS_G3dGlb + 0x80 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r6, #0x0 str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C + bl NNS_G3dGlbSetBaseScale + bl NNS_G3dGlbFlushP add r0, r5, #0x0 - bl FUN_020BAC98 + bl NNS_G3dDraw pop {r4-r6, pc} nop -_0201B2A0: .word UNK_021CEDD4 -_0201B2A4: .word UNK_021CED98 +_0201B2A0: .word NNS_G3dGlb + 0xBC +_0201B2A4: .word NNS_G3dGlb + 0x80 thumb_func_start FUN_0201B2A8 FUN_0201B2A8: ; 0x0201B2A8 @@ -151,28 +151,28 @@ FUN_0201B2A8: ; 0x0201B2A8 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 - bl FUN_020B8474 - ldr r1, _0201B2E4 ; =UNK_021CEDD4 + bl NNS_G3dGlbSetBaseTrans + ldr r1, _0201B2E4 ; =NNS_G3dGlb + 0xBC add r0, r4, #0x0 bl MI_Copy36B - ldr r1, _0201B2E8 ; =UNK_021CED98 + ldr r1, _0201B2E8 ; =NNS_G3dGlb + 0x80 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] add r0, r6, #0x0 - bl FUN_020B844C - bl FUN_020B849C + bl NNS_G3dGlbSetBaseScale + bl NNS_G3dGlbFlushP mov r1, #0x0 ldr r0, [r5, #0x4] add r2, r1, #0x0 mov r3, #0x1 - bl FUN_020BAFB8 - bl FUN_020BB394 + bl NNS_G3dDraw1Mat1Shp + bl NNS_G3dGeFlushBuffer pop {r4-r6, pc} .balign 4 -_0201B2E4: .word UNK_021CEDD4 -_0201B2E8: .word UNK_021CED98 +_0201B2E4: .word NNS_G3dGlb + 0xBC +_0201B2E8: .word NNS_G3dGlb + 0x80 thumb_func_start FUN_0201B2EC FUN_0201B2EC: ; 0x0201B2EC @@ -269,11 +269,11 @@ _0201B3A4: .word FUN_020223BC FUN_0201B3A8: ; 0x0201B3A8 push {r4, lr} add r4, r1, #0x0 - bl FUN_020BC13C + bl NNS_G3dGetMdlSet cmp r4, #0x0 beq _0201B3BE add r1, r4, #0x0 - bl FUN_020B7790 + bl NNS_G3dBindMdlSet mov r0, #0x1 pop {r4, pc} _0201B3BE: @@ -299,17 +299,17 @@ _0201B3D2: str r1, [sp, #0x0] cmp r5, #0x0 beq _0201B4D0 - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize str r0, [sp, #0xc] cmp r6, #0x0 beq _0201B412 - ldr r3, _0201B4D8 ; =UNK_021064B8 + ldr r3, _0201B4D8 ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r6, #0x0 @@ -325,7 +325,7 @@ _0201B412: _0201B414: cmp r4, #0x0 beq _0201B42E - ldr r3, _0201B4D8 ; =UNK_021064B8 + ldr r3, _0201B4D8 ; =NNS_GfdDefaultFuncAllocTexVram add r0, r4, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 @@ -342,7 +342,7 @@ _0201B430: ldr r0, [sp, #0xc] cmp r0, #0x0 beq _0201B450 - ldr r3, _0201B4DC ; =UNK_021064C0 + ldr r3, _0201B4DC ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe @@ -361,7 +361,7 @@ _0201B452: ldr r0, [sp, #0x8] cmp r0, #0x0 bne _0201B46E - ldr r1, _0201B4E0 ; =UNK_021064BC + ldr r1, _0201B4E0 ; =NNS_GfdDefaultFuncFreeTexVram add r0, r7, #0x0 ldr r1, [r1, #0x0] blx r1 @@ -376,7 +376,7 @@ _0201B46E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _0201B48A - ldr r1, _0201B4E0 ; =UNK_021064BC + ldr r1, _0201B4E0 ; =NNS_GfdDefaultFuncFreeTexVram add r0, r6, #0x0 ldr r1, [r1, #0x0] blx r1 @@ -391,7 +391,7 @@ _0201B48A: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0201B4A6 - ldr r1, _0201B4E4 ; =UNK_021064C4 + ldr r1, _0201B4E4 ; =NNS_GfdDefaultFuncFreePlttVram add r0, r4, #0x0 ldr r1, [r1, #0x0] blx r1 @@ -406,25 +406,25 @@ _0201B4A6: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 - bl FUN_020B7DFC + bl NNS_G3dTexSetTexKey add r0, r5, #0x0 add r1, r4, #0x0 - bl FUN_020B7CDC + bl NNS_G3dPlttSetPlttKey ldr r1, [r5, #0x4] add r0, r5, #0x0 bl DC_FlushRange add r0, r5, #0x0 mov r1, #0x1 - bl FUN_020B7D28 + bl NNS_G3dTexLoad add r0, r5, #0x0 mov r1, #0x1 - bl FUN_020B7C78 + bl NNS_G3dPlttLoad _0201B4D0: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop -_0201B4D8: .word UNK_021064B8 -_0201B4DC: .word UNK_021064C0 -_0201B4E0: .word UNK_021064BC -_0201B4E4: .word UNK_021064C4 +_0201B4D8: .word NNS_GfdDefaultFuncAllocTexVram +_0201B4DC: .word NNS_GfdDefaultFuncAllocPlttVram +_0201B4E0: .word NNS_GfdDefaultFuncFreeTexVram +_0201B4E4: .word NNS_GfdDefaultFuncFreePlttVram diff --git a/arm9/asm/unk_0201B6D0.s b/arm9/asm/unk_0201B6D0.s index b65b38705..1d795e17c 100644 --- a/arm9/asm/unk_0201B6D0.s +++ b/arm9/asm/unk_0201B6D0.s @@ -1,8 +1,8 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021CEDD4 - .extern UNK_021CED98 + .extern NNS_G3dGlb + .extern NNS_G3dGlb .text @@ -38,22 +38,22 @@ FUN_0201B6D0: ; 0x0201B6D0 ldrsh r3, [r4, r3] bl FUN_0201B808 add r0, sp, #0x1c - bl FUN_020B8474 - ldr r1, _0201B764 ; =UNK_021CEDD4 + bl NNS_G3dGlbSetBaseTrans + ldr r1, _0201B764 ; =NNS_G3dGlb + 0xBC add r0, r5, #0x0 bl MI_Copy36B - ldr r1, _0201B768 ; =UNK_021CED98 + ldr r1, _0201B768 ; =NNS_G3dGlb + 0x80 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r7, #0x0 str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C + bl NNS_G3dGlbSetBaseScale + bl NNS_G3dGlbFlushP mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r4, #0x24] add r1, sp, #0x10 str r0, [sp, #0x10] @@ -61,7 +61,7 @@ FUN_0201B6D0: ; 0x0201B6D0 str r0, [sp, #0x18] mov r0, #0x1b mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r0, sp, #0x28 bl FUN_0201B82C add r4, r0, #0x0 @@ -69,13 +69,13 @@ FUN_0201B6D0: ; 0x0201B6D0 mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r0, r4, #0x0 add sp, #0x34 pop {r4-r7, pc} .balign 4 -_0201B764: .word UNK_021CEDD4 -_0201B768: .word UNK_021CED98 +_0201B764: .word NNS_G3dGlb + 0xBC +_0201B768: .word NNS_G3dGlb + 0x80 thumb_func_start FUN_0201B76C FUN_0201B76C: ; 0x0201B76C @@ -97,12 +97,12 @@ FUN_0201B76C: ; 0x0201B76C add r2, r0, #0x0 bl FUN_0201B808 add r0, r5, #0x0 - bl FUN_020B8474 - bl FUN_020B849C + bl NNS_G3dGlbSetBaseTrans + bl NNS_G3dGlbFlushP mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r4, #0x10] lsl r2, r0, #0xc ldr r0, [r4, #0xc] @@ -115,7 +115,7 @@ FUN_0201B76C: ; 0x0201B76C mov r0, #0x1b add r1, sp, #0x10 mov r2, #0x3 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r0, sp, #0x1c bl FUN_0201B82C add r4, r0, #0x0 @@ -123,7 +123,7 @@ FUN_0201B76C: ; 0x0201B76C mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r0, r4, #0x0 add sp, #0x28 pop {r3-r5, pc} @@ -183,22 +183,22 @@ FUN_0201B82C: ; 0x0201B82C mov r0, #0x29 add r1, sp, #0x4 str r2, [sp, #0x8] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x40 add r1, sp, #0x0 mov r2, #0x1 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r1, #0x0 mov r0, #0x41 add r2, r1, #0x0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, #0x70 add r1, r4, #0x0 mov r2, #0x3 - bl FUN_020BB1C0 - bl FUN_020BB394 + bl NNS_G3dGeBufferOP_N + bl NNS_G3dGeFlushBuffer add r4, sp, #0x8 _0201B86A: add r0, r4, #0x0 diff --git a/arm9/asm/unk_0201C24C.s b/arm9/asm/unk_0201C24C.s index 36817113a..9e5cd227e 100644 --- a/arm9/asm/unk_0201C24C.s +++ b/arm9/asm/unk_0201C24C.s @@ -43,7 +43,7 @@ _0201C272: ldr r1, [r1, #0x0] ldr r0, [r1, #0x8] ldr r1, [r1, #0x0] - bl FUN_020AEF1C + bl NNS_GfdInitVramTransferManager pop {r3-r5, pc} nop _0201C298: .word UNK_021C5934 @@ -102,7 +102,7 @@ _0201C2FA: add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 - bl FUN_020AEE40 + bl NNS_GfdRegisterNewVramTransferTask pop {r3-r7, pc} .balign 4 _0201C308: .word UNK_021C5934 @@ -114,7 +114,7 @@ FUN_0201C30C: ; 0x0201C30C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C322 - bl FUN_020AEEB8 + bl NNS_GfdDoVramTransfer ldr r0, _0201C324 ; =UNK_021C5934 mov r1, #0x0 ldr r0, [r0, #0x0] @@ -135,7 +135,7 @@ FUN_0201C328: ; 0x0201C328 ldr r2, _0201C344 ; =FUN_0201C358 add r1, r4, #0x0 add r5, r0, #0x0 - bl FUN_020B4568 + bl NNS_G2dInitCellTransferStateManager add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 @@ -143,10 +143,10 @@ _0201C344: .word FUN_0201C358 thumb_func_start FUN_0201C348 FUN_0201C348: ; 0x0201C348 - ldr r3, _0201C34C ; =FUN_020B442C + ldr r3, _0201C34C ; =NNS_G2dUpdateCellTransferStateManager bx r3 .balign 4 -_0201C34C: .word FUN_020B442C +_0201C34C: .word NNS_G2dUpdateCellTransferStateManager thumb_func_start FUN_0201C350 FUN_0201C350: ; 0x0201C350 diff --git a/arm9/asm/unk_0201C360.s b/arm9/asm/unk_0201C360.s index 5f8ccb52c..078b3ee3f 100644 --- a/arm9/asm/unk_0201C360.s +++ b/arm9/asm/unk_0201C360.s @@ -321,7 +321,7 @@ FUN_0201C578: ; 0x0201C578 add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName add r1, r0, #0x0 bne _0201C598 add sp, #0x10 @@ -397,7 +397,7 @@ FUN_0201C5FC: ; 0x0201C5FC add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 - bl FUN_020BC2A0 + bl NNS_G3dGetResDataByName add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201C5A4 diff --git a/arm9/asm/unk_0201D040.s b/arm9/asm/unk_0201D040.s index ba8c7b757..ab0c07c9a 100644 --- a/arm9/asm/unk_0201D040.s +++ b/arm9/asm/unk_0201D040.s @@ -858,11 +858,11 @@ FUN_0201D690: ; 0x0201D690 add r1, #0x3c strb r2, [r1, #0x0] str r2, [r0, #0x40] - ldr r3, _0201D6B0 ; =FUN_020B1A24 + ldr r3, _0201D6B0 ; =NNS_G2dInitImageProxy add r0, #0x10 bx r3 nop -_0201D6B0: .word FUN_020B1A24 +_0201D6B0: .word NNS_G2dInitImageProxy thumb_func_start FUN_0201D6B4 FUN_0201D6B4: ; 0x0201D6B4 @@ -1277,7 +1277,7 @@ FUN_0201D9B0: ; 0x0201D9B0 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201D9C8 @@ -1325,13 +1325,13 @@ _0201DA04: add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 - bl FUN_020B1528 + bl NNS_G2dLoadImage2DMapping b _0201DA20 _0201DA16: add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping _0201DA20: cmp r4, #0x1 bne _0201DA2C @@ -1351,7 +1351,7 @@ FUN_0201DA38: ; 0x0201DA38 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201DA50 @@ -1394,7 +1394,7 @@ _0201DA88: add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 - bl FUN_020B1340 + bl NNS_G2dLoadImageVramTransfer cmp r4, #0x1 bne _0201DAA0 mov r0, #0x1 @@ -1932,7 +1932,7 @@ FUN_0201DE4C: ; 0x0201DE4C beq _0201DE8A add r0, r4, #0x0 add r0, #0x10 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation ldr r1, _0201DECC ; =UNK_021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x1c] @@ -1958,7 +1958,7 @@ _0201DE8A: beq _0201DEC4 add r0, r4, #0x0 add r0, #0x10 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation ldr r1, _0201DECC ; =UNK_021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x20] diff --git a/arm9/asm/unk_0201E00C.s b/arm9/asm/unk_0201E00C.s index 744cbe955..ae49b439e 100644 --- a/arm9/asm/unk_0201E00C.s +++ b/arm9/asm/unk_0201E00C.s @@ -378,7 +378,7 @@ _0201E2A4: _0201E2A6: cmp r4, #0x0 beq _0201E2B6 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r1, r4, #0x0 bl _u32_div_f pop {r4, pc} @@ -434,7 +434,7 @@ FUN_0201E2F8: ; 0x0201E2F8 str r0, [r4, #0xc] add r4, #0x10 add r0, r4, #0x0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy pop {r4, pc} thumb_func_start FUN_0201E314 @@ -675,7 +675,7 @@ FUN_0201E4BC: ; 0x0201E4BC push {r4, lr} add r4, r0, #0x0 add r0, #0x10 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy ldr r0, [r4, #0x4] mov r2, #0x1 tst r0, r2 @@ -684,7 +684,7 @@ FUN_0201E4BC: ; 0x0201E4BC ldr r0, [r4, #0x0] ldr r1, [r4, #0x24] add r3, #0x10 - bl FUN_020B1240 + bl NNS_G2dLoadPalette _0201E4DA: ldr r0, [r4, #0x4] mov r2, #0x2 @@ -694,7 +694,7 @@ _0201E4DA: ldr r1, [r4, #0x28] add r4, #0x10 add r3, r4, #0x0 - bl FUN_020B1240 + bl NNS_G2dLoadPalette _0201E4EE: pop {r4, pc} diff --git a/arm9/asm/unk_0201E7D8.s b/arm9/asm/unk_0201E7D8.s index 4f183c7e3..32f01a13a 100644 --- a/arm9/asm/unk_0201E7D8.s +++ b/arm9/asm/unk_0201E7D8.s @@ -1,13 +1,13 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021CED98 - .extern UNK_021CEF64 - .extern UNK_021CED20 + .extern NNS_G3dGlb + .extern NNS_G3dGlb + .extern NNS_G3dGlb .extern FX_SinCosTable_ - .extern UNK_021CEF58 - .extern UNK_021CEF70 - .extern UNK_021CED64 + .extern NNS_G3dGlb + .extern NNS_G3dGlb + .extern NNS_G3dGlb .section .data @@ -576,7 +576,7 @@ FUN_0201EBA4: ; 0x0201EBA4 str r0, [r3, #0x0] _0201EBEE: ldr r0, _0201EC40 ; =UNK_021C59A4 - ldr r5, _0201EC44 ; =UNK_021CEF58 + ldr r5, _0201EC44 ; =NNS_G3dGlb + 0x240 ldr r4, [r0, #0x0] add r3, r4, #0x0 add r2, r4, #0x0 @@ -588,26 +588,26 @@ _0201EBEE: add r2, #0x2c str r0, [r5, #0x0] add r6, r2, #0x0 - ldr r5, _0201EC48 ; =UNK_021CEF64 + ldr r5, _0201EC48 ; =NNS_G3dGlb + 0x24C ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r3, #0x20 str r0, [r5, #0x0] add r6, r3, #0x0 - ldr r5, _0201EC4C ; =UNK_021CEF70 + ldr r5, _0201EC4C ; =NNS_G3dGlb + 0x258 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r1, r2, #0x0 str r0, [r5, #0x0] - ldr r0, _0201EC50 ; =UNK_021CED64 + ldr r0, _0201EC50 ; =NNS_G3dGlb + 0x4C add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl G3i_LookAt_ - ldr r1, _0201EC54 ; =UNK_021CED98 + ldr r1, _0201EC54 ; =NNS_G3dGlb + 0x80 mov r0, #0xe8 ldr r2, [r1, #0x7c] bic r2, r0 @@ -617,11 +617,11 @@ _0201EC3A: pop {r3-r6, pc} nop _0201EC40: .word UNK_021C59A4 -_0201EC44: .word UNK_021CEF58 -_0201EC48: .word UNK_021CEF64 -_0201EC4C: .word UNK_021CEF70 -_0201EC50: .word UNK_021CED64 -_0201EC54: .word UNK_021CED98 +_0201EC44: .word NNS_G3dGlb + 0x240 +_0201EC48: .word NNS_G3dGlb + 0x24C +_0201EC4C: .word NNS_G3dGlb + 0x258 +_0201EC50: .word NNS_G3dGlb + 0x4C +_0201EC54: .word NNS_G3dGlb + 0x80 thumb_func_start FUN_0201EC58 FUN_0201EC58: ; 0x0201EC58 @@ -882,14 +882,14 @@ FUN_0201EE2C: ; 0x0201EE2C str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] - ldr r0, _0201EEE4 ; =UNK_021CED20 + ldr r0, _0201EEE4 ; =NNS_G3dGlb + 0x8 str r0, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] ldr r3, [r5, #0xc] bl G3i_PerspectiveW_ - ldr r1, _0201EEE8 ; =UNK_021CED98 + ldr r1, _0201EEE8 ; =NNS_G3dGlb + 0x80 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 @@ -939,12 +939,12 @@ _0201EE6C: lsl r0, r6, #0x1 str r0, [sp, #0x8] str r2, [sp, #0xc] - ldr r0, _0201EEE4 ; =UNK_021CED20 + ldr r0, _0201EEE4 ; =NNS_G3dGlb + 0x8 neg r2, r3 str r0, [sp, #0x10] add r0, r4, #0x0 bl G3i_OrthoW_ - ldr r1, _0201EEE8 ; =UNK_021CED98 + ldr r1, _0201EEE8 ; =NNS_G3dGlb + 0x80 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 @@ -958,8 +958,8 @@ _0201EE6C: add sp, #0x14 pop {r3-r6, pc} nop -_0201EEE4: .word UNK_021CED20 -_0201EEE8: .word UNK_021CED98 +_0201EEE4: .word NNS_G3dGlb + 0x8 +_0201EEE8: .word NNS_G3dGlb + 0x80 _0201EEEC: .word UNK_02105BB8 thumb_func_start FUN_0201EEF0 diff --git a/arm9/asm/unk_0201F06C.s b/arm9/asm/unk_0201F06C.s index c032ba646..84b326347 100644 --- a/arm9/asm/unk_0201F06C.s +++ b/arm9/asm/unk_0201F06C.s @@ -2,10 +2,10 @@ .include "global.inc" .extern FX_SinCosTable_ - .extern UNK_021064C0 - .extern UNK_021064B8 - .extern UNK_021064BC - .extern UNK_021064C4 + .extern NNS_GfdDefaultFuncAllocPlttVram + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncFreeTexVram + .extern NNS_GfdDefaultFuncFreePlttVram .section .rodata @@ -569,18 +569,18 @@ FUN_0201F454: ; 0x0201F454 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize str r0, [sp, #0x8] add r0, r5, #0x0 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize str r0, [sp, #0x4] add r0, r5, #0x0 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize str r0, [sp, #0x0] ldr r0, [sp, #0x8] cmp r0, #0x0 beq _0201F492 - ldr r3, _0201F4E4 ; =UNK_021064B8 + ldr r3, _0201F4E4 ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x0 ldr r3, [r3, #0x0] add r2, r1, #0x0 @@ -597,7 +597,7 @@ _0201F496: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0201F4B2 - ldr r3, _0201F4E4 ; =UNK_021064B8 + ldr r3, _0201F4E4 ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x1 ldr r3, [r3, #0x0] mov r2, #0x0 @@ -614,7 +614,7 @@ _0201F4B6: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0201F4DA - ldr r3, _0201F4E8 ; =UNK_021064C0 + ldr r3, _0201F4E8 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe @@ -635,17 +635,17 @@ _0201F4DE: add sp, #0xc pop {r4-r7, pc} nop -_0201F4E4: .word UNK_021064B8 -_0201F4E8: .word UNK_021064C0 +_0201F4E4: .word NNS_GfdDefaultFuncAllocTexVram +_0201F4E8: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_0201F4EC FUN_0201F4EC: ; 0x0201F4EC push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 - bl FUN_020B7CF0 + bl NNS_G3dTexReleaseTexKey add r0, r5, #0x0 - bl FUN_020B7C58 + bl NNS_G3dPlttReleasePlttKey str r0, [r4, #0x0] pop {r3-r5, pc} @@ -656,14 +656,14 @@ FUN_0201F500: ; 0x0201F500 ldr r1, [r2, #0x0] ldr r2, [r3, #0x0] add r5, r0, #0x0 - bl FUN_020B7DFC + bl NNS_G3dTexSetTexKey ldr r1, [sp, #0x10] add r0, r5, #0x0 ldr r1, [r1, #0x0] - bl FUN_020B7CDC + bl NNS_G3dPlttSetPlttKey add r0, r4, #0x0 add r1, r5, #0x0 - bl FUN_020B7790 + bl NNS_G3dBindMdlSet pop {r3-r5, pc} .balign 4 @@ -675,28 +675,28 @@ FUN_0201F524: ; 0x0201F524 add r4, r2, #0x0 cmp r0, #0x0 beq _0201F536 - ldr r1, _0201F550 ; =UNK_021064BC + ldr r1, _0201F550 ; =NNS_GfdDefaultFuncFreeTexVram ldr r1, [r1, #0x0] blx r1 _0201F536: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0201F542 - ldr r1, _0201F550 ; =UNK_021064BC + ldr r1, _0201F550 ; =NNS_GfdDefaultFuncFreeTexVram ldr r1, [r1, #0x0] blx r1 _0201F542: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0201F54E - ldr r1, _0201F554 ; =UNK_021064C4 + ldr r1, _0201F554 ; =NNS_GfdDefaultFuncFreePlttVram ldr r1, [r1, #0x0] blx r1 _0201F54E: pop {r3-r5, pc} .balign 4 -_0201F550: .word UNK_021064BC -_0201F554: .word UNK_021064C4 +_0201F550: .word NNS_GfdDefaultFuncFreeTexVram +_0201F554: .word NNS_GfdDefaultFuncFreePlttVram thumb_func_start FUN_0201F558 FUN_0201F558: ; 0x0201F558 @@ -713,22 +713,22 @@ _0201F568: mov r0, #0x0 pop {r3-r7, pc} _0201F56E: - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize str r0, [sp, #0x0] add r0, r4, #0x0 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize str r0, [sp, #0x4] add r0, r4, #0x0 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize ldr r1, [sp, #0x0] cmp r1, r6 bne _0201F5AA @@ -780,7 +780,7 @@ FUN_0201F5D4: ; 0x0201F5D4 add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] @@ -882,7 +882,7 @@ FUN_0201F69C: ; 0x0201F69C add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit add r0, r4, #0x0 bl FUN_0201FBCC add r5, #0x84 @@ -1602,7 +1602,7 @@ FUN_0201FB9C: ; 0x0201FB9C add r5, r2, #0x0 bl FUN_0201FC90 add r7, r0, #0x0 - bl FUN_020BC13C + bl NNS_G3dGetMdlSet add r4, r0, #0x0 ldrh r0, [r4, #0xe] add r0, r4, r0 @@ -1612,7 +1612,7 @@ FUN_0201FB9C: ; 0x0201FB9C cmp r5, #0x0 beq _0201FBC6 add r0, r7, #0x0 - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r5, #0x0] _0201FBC6: add r0, r4, #0x0 @@ -1724,7 +1724,7 @@ FUN_0201FC70: ; 0x0201FC70 sub sp, #0xc add r4, r0, #0x0 ldr r0, [r4, #0x78] - bl FUN_020B772C + bl NNS_G3dReleaseMdlSet add r4, #0x80 ldr r0, [r4, #0x0] add r1, sp, #0x4 @@ -1828,7 +1828,7 @@ _0201FD0C: ldr r0, [r4, r1] add r1, r1, #0x4 add r1, r4, r1 - bl thunk_FUN_020afda0_2 + bl NNS_G2dGetUnpackedAnimBank mov r0, #0x12 mov r1, #0x1 lsl r0, r0, #0x4 @@ -2002,10 +2002,10 @@ FUN_0201FE6C: ; 0x0201FE6C bl memset add r0, r4, #0x0 add r0, #0xb4 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r4, #0x0 add r0, #0xd8 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0x0 str r0, [r4, #0x30] pop {r4, pc} @@ -2072,7 +2072,7 @@ _0201FEA6: add r1, r4, #0x0 add r1, #0x26 ldrb r1, [r1, #0x0] - bl FUN_020B502C + bl NNS_G2dSetRndCoreAffineOverwriteMode add r0, r4, #0x0 add r0, #0x27 ldrb r2, [r0, #0x0] @@ -2084,7 +2084,7 @@ _0201FEA6: mov r3, #0x2 and r1, r2 and r2, r3 - bl FUN_020B4F38 + bl NNS_G2dSetRndCoreFlipMode add r0, r4, #0x0 mov r2, #0x1 add r0, #0x34 @@ -2193,13 +2193,13 @@ _0201FFE4: ldr r1, [r1, #0x0] add r0, #0xb4 add r4, #0x40 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0202000E ldr r0, [r4, #0x5c] - bl FUN_020B4358 + bl NNS_G2dFreeCellTransferStateHandle _0202000E: add r0, r5, #0x0 add r0, #0xec @@ -2409,11 +2409,11 @@ _0202014A: lsl r1, r1, #0x10 ldr r0, [r4, #0x4] lsr r1, r1, #0x10 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 - bl FUN_020B1EE4 + bl NNS_G2dSetCellAnimationSequence mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} @@ -2422,11 +2422,11 @@ _02020168: add r4, #0x40 ldr r0, [r4, #0x6c] add r1, r3, #0x0 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 - bl FUN_020B242C + bl NNS_G2dSetAnimSequenceToMCAnimation mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} @@ -2459,7 +2459,7 @@ _020201A8: add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 - bl FUN_020B0448 + bl NNS_G2dResetAnimCtrlState mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 @@ -2471,7 +2471,7 @@ _020201C2: add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 - bl FUN_020B0448 + bl NNS_G2dResetAnimCtrlState mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 @@ -2499,12 +2499,12 @@ FUN_020201E4: ; 0x020201E4 _020201F4: add r0, #0x40 add r0, #0x8 - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation pop {r3, pc} _020201FE: add r0, #0x40 add r0, #0x8 - bl FUN_020B224C + bl NNS_G2dTickMCAnimation pop {r3, pc} thumb_func_start FUN_02020208 @@ -2520,22 +2520,22 @@ FUN_02020208: ; 0x02020208 _02020218: add r0, #0x40 add r0, #0x8 - bl FUN_020B1EA4 + bl NNS_G2dSetCellAnimationCurrentFrame pop {r3, pc} _02020222: add r0, #0x40 add r0, #0x8 - bl FUN_020B2194 + bl NNS_G2dSetMCAnimationCurrentFrame pop {r3, pc} thumb_func_start FUN_0202022C FUN_0202022C: ; 0x0202022C - ldr r3, _02020234 ; =FUN_020B04FC + ldr r3, _02020234 ; =NNS_G2dGetAnimCtrlCurrentFrame add r0, #0x40 add r0, #0x8 bx r3 .balign 4 -_02020234: .word FUN_020B04FC +_02020234: .word NNS_G2dGetAnimCtrlCurrentFrame thumb_func_start FUN_02020238 FUN_02020238: ; 0x02020238 @@ -2969,12 +2969,12 @@ FUN_0202050C: ; 0x0202050C add r4, #0x40 ldr r0, [r4, #0x4] mov r1, #0x0 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx add r4, #0x8 add r1, r0, #0x0 ldr r2, [r5, #0x40] add r0, r4, #0x0 - bl FUN_020B1F80 + bl NNS_G2dInitCellAnimation pop {r3-r5, pc} .balign 4 @@ -2986,22 +2986,22 @@ FUN_0202052C: ; 0x0202052C add r4, r6, #0x0 add r4, #0x40 add r5, r0, #0x0 - bl FUN_020B43A4 + bl NNS_G2dGetNewCellTransferStateHandle str r0, [r4, #0x5c] ldr r0, [r4, #0x4] mov r1, #0x0 ldr r5, [r5, #0x4] - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx str r0, [sp, #0x18] add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x1 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation add r7, r0, #0x0 add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x2 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation mov r1, #0x0 mvn r1, r1 str r1, [sp, #0x0] @@ -3018,7 +3018,7 @@ FUN_0202052C: ; 0x0202052C ldr r2, [r6, #0x40] ldr r3, [r4, #0x5c] add r0, #0x8 - bl FUN_020B1EFC + bl NNS_G2dInitCellAnimationVramTransfered add sp, #0x1c pop {r4-r7, pc} @@ -3032,10 +3032,10 @@ FUN_02020588: ; 0x02020588 ldr r0, [r4, #0x6c] add r7, r1, #0x0 mov r1, #0x0 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx str r0, [sp, #0xc] ldr r0, [r4, #0x68] - bl FUN_020B23D8 + bl NNS_G2dGetMCBankNumNodesRequired add r6, r0, #0x0 mov r1, #0x28 add r0, r7, #0x0 @@ -3058,11 +3058,11 @@ FUN_02020588: ; 0x02020588 ldr r1, [r4, #0x70] ldr r2, [r4, #0x74] add r0, #0x8 - bl FUN_020B20C8 + bl NNS_G2dInitMCAnimation add r4, #0x8 ldr r1, [sp, #0xc] add r0, r4, #0x0 - bl FUN_020B242C + bl NNS_G2dSetAnimSequenceToMCAnimation add sp, #0x10 pop {r3-r7, pc} .balign 4 @@ -3087,7 +3087,7 @@ _02020600: _02020602: cmp r4, #0x0 beq _02020612 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r1, r4, #0x0 bl _u32_div_f pop {r4, pc} @@ -3115,19 +3115,19 @@ FUN_02020618: ; 0x02020618 ldr r0, [r5, r0] add r1, #0xb4 add r2, #0xd8 - bl thunk_FUN_020b5040 + bl NNS_G2dSetRendererImageProxy mov r0, #0x45 lsl r0, r0, #0x2 ldr r0, [r5, r0] - bl FUN_020B326C - bl FUN_020B2B58 + bl NNS_G2dBeginRendering + bl NNS_G2dPushMtx add r1, r4, #0x0 mov r0, #0x45 add r1, #0x26 lsl r0, r0, #0x2 ldrb r1, [r1, #0x0] ldr r0, [r5, r0] - bl FUN_020B502C + bl NNS_G2dSetRndCoreAffineOverwriteMode add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] @@ -3143,7 +3143,7 @@ FUN_02020618: ; 0x02020618 mov r3, #0x2 and r1, r2 and r2, r3 - bl FUN_020B4F38 + bl NNS_G2dSetRndCoreFlipMode b _0202068E _02020680: mov r0, #0x45 @@ -3151,12 +3151,12 @@ _02020680: mov r1, #0x0 ldr r0, [r5, r0] add r2, r1, #0x0 - bl FUN_020B4F38 + bl NNS_G2dSetRndCoreFlipMode _0202068E: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] - bl FUN_020B2A08 + bl NNS_G2dTranslate add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] @@ -3165,11 +3165,11 @@ _0202068E: ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] - bl FUN_020B2A08 + bl NNS_G2dTranslate ldr r0, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r2, [r4, #0x20] - bl FUN_020B28B4 + bl NNS_G2dScale ldrh r0, [r4, #0x24] ldr r2, _02020770 ; =FX_SinCosTable_ asr r0, r0, #0x4 @@ -3179,14 +3179,14 @@ _0202068E: lsl r1, r1, #0x1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] - bl FUN_020B2794 + bl NNS_G2dRotZ ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] neg r0, r0 neg r1, r1 neg r2, r2 - bl FUN_020B2A08 + bl NNS_G2dTranslate _020206DC: add r0, r4, #0x0 add r0, #0x28 @@ -3249,16 +3249,16 @@ _0202074E: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 - bl FUN_020B317C + bl NNS_G2dDrawCellAnimation b _02020764 _0202075A: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 - bl FUN_020B2D9C + bl NNS_G2dDrawMultiCellAnimation _02020764: - bl FUN_020B2B08 - bl FUN_020B31F0 + bl NNS_G2dPopMtx + bl NNS_G2dEndRendering add sp, #0xc pop {r3-r6, pc} .balign 4 diff --git a/arm9/asm/unk_02020C44.s b/arm9/asm/unk_02020C44.s index c1870c5ac..4c6cb725f 100644 --- a/arm9/asm/unk_02020C44.s +++ b/arm9/asm/unk_02020C44.s @@ -1,10 +1,10 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021064B8 - .extern UNK_021064C0 - .extern UNK_021064C4 - .extern UNK_021064BC + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncAllocPlttVram + .extern NNS_GfdDefaultFuncFreePlttVram + .extern NNS_GfdDefaultFuncFreeTexVram .text @@ -488,7 +488,7 @@ _02020FA4: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02020FB8 - ldr r1, _02020FE8 ; =UNK_021064BC + ldr r1, _02020FE8 ; =NNS_GfdDefaultFuncFreeTexVram ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 @@ -498,7 +498,7 @@ _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02020FCC - ldr r1, _02020FE8 ; =UNK_021064BC + ldr r1, _02020FE8 ; =NNS_GfdDefaultFuncFreeTexVram ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 @@ -508,7 +508,7 @@ _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02020FE0 - ldr r1, _02020FEC ; =UNK_021064C4 + ldr r1, _02020FEC ; =NNS_GfdDefaultFuncFreePlttVram ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 @@ -519,8 +519,8 @@ _02020FE0: bl FUN_0202120C pop {r3-r5, pc} .balign 4 -_02020FE8: .word UNK_021064BC -_02020FEC: .word UNK_021064C4 +_02020FE8: .word NNS_GfdDefaultFuncFreeTexVram +_02020FEC: .word NNS_GfdDefaultFuncFreePlttVram thumb_func_start FUN_02020FF0 FUN_02020FF0: ; 0x02020FF0 @@ -842,7 +842,7 @@ FUN_02021220: ; 0x02021220 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_02020E0C - bl FUN_020BC0FC + bl NNS_G3dGetTex pop {r3, pc} .balign 4 @@ -858,7 +858,7 @@ FUN_02021230: ; 0x02021230 _02021240: ldr r0, [r0, #0x10] _02021242: - bl FUN_020BC0FC + bl NNS_G3dGetTex pop {r3, pc} thumb_func_start FUN_02021248 @@ -869,17 +869,17 @@ FUN_02021248: ; 0x02021248 str r1, [sp, #0x0] str r2, [sp, #0x4] str r3, [sp, #0x8] - bl FUN_020B7E1C + bl NNS_G3dTexGetRequiredSize add r7, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7E10 + bl NNS_G3dTex4x4GetRequiredSize add r6, r0, #0x0 add r0, r5, #0x0 - bl FUN_020B7CE4 + bl NNS_G3dPlttGetRequiredSize add r4, r0, #0x0 cmp r7, #0x0 beq _0202127E - ldr r3, _020212B0 ; =UNK_021064B8 + ldr r3, _020212B0 ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r7, #0x0 @@ -890,7 +890,7 @@ FUN_02021248: ; 0x02021248 _0202127E: cmp r6, #0x0 beq _02021292 - ldr r3, _020212B0 ; =UNK_021064B8 + ldr r3, _020212B0 ; =NNS_GfdDefaultFuncAllocTexVram add r0, r6, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 @@ -901,7 +901,7 @@ _0202127E: _02021292: cmp r4, #0x0 beq _020212AC - ldr r3, _020212B4 ; =UNK_021064C0 + ldr r3, _020212B4 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe @@ -916,8 +916,8 @@ _020212AC: add sp, #0xc pop {r4-r7, pc} .balign 4 -_020212B0: .word UNK_021064B8 -_020212B4: .word UNK_021064C0 +_020212B0: .word NNS_GfdDefaultFuncAllocTexVram +_020212B4: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_020212B8 FUN_020212B8: ; 0x020212B8 @@ -933,10 +933,10 @@ FUN_020212B8: ; 0x020212B8 bl DC_FlushRange add r0, r4, #0x0 mov r1, #0x1 - bl FUN_020B7D28 + bl NNS_G3dTexLoad add r0, r4, #0x0 mov r1, #0x1 - bl FUN_020B7C78 + bl NNS_G3dPlttLoad pop {r4, pc} .balign 4 @@ -945,10 +945,10 @@ FUN_020212E4: ; 0x020212E4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 - bl FUN_020B7DFC + bl NNS_G3dTexSetTexKey add r0, r5, #0x0 add r1, r4, #0x0 - bl FUN_020B7CDC + bl NNS_G3dPlttSetPlttKey pop {r3-r5, pc} thumb_func_start FUN_020212F8 @@ -958,9 +958,9 @@ FUN_020212F8: ; 0x020212F8 add r4, r0, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 - bl FUN_020B7CF0 + bl NNS_G3dTexReleaseTexKey add r0, r4, #0x0 - bl FUN_020B7C58 + bl NNS_G3dPlttReleasePlttKey add sp, #0x8 pop {r4, pc} @@ -986,7 +986,7 @@ FUN_02021310: ; 0x02021310 FUN_02021334: ; 0x02021334 push {r3-r5, lr} add r5, r0, #0x0 - bl FUN_020BC0FC + bl NNS_G3dGetTex add r4, r0, #0x0 bne _02021344 bl ErrorHandling diff --git a/arm9/asm/unk_0202134C.s b/arm9/asm/unk_0202134C.s index 30aa1d51b..b45f4e912 100644 --- a/arm9/asm/unk_0202134C.s +++ b/arm9/asm/unk_0202134C.s @@ -8,7 +8,7 @@ FUN_0202134C: ; 0x0202134C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 - bl FUN_020B33A0 + bl NNS_G2dInitRenderer add r5, #0x80 str r4, [r5, #0x0] pop {r3-r5, pc} @@ -20,7 +20,7 @@ FUN_0202135C: ; 0x0202135C add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 - bl FUN_020B3334 + bl NNS_G2dInitRenderSurface add r2, r5, #0x0 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} @@ -36,7 +36,7 @@ FUN_0202135C: ; 0x0202135C cmp r0, #0x0 beq _0202138C add r1, r5, #0x0 - bl FUN_020B3390 + bl NNS_G2dAddRendererTargetSurface _0202138C: pop {r3-r7, pc} .balign 4 diff --git a/arm9/asm/unk_02022318.s b/arm9/asm/unk_02022318.s index cf87cdb92..9564742c0 100644 --- a/arm9/asm/unk_02022318.s +++ b/arm9/asm/unk_02022318.s @@ -15,7 +15,7 @@ FUN_02022318: ; 0x02022318 bl AllocFromHeap add r4, r0, #0x0 str r6, [r4, #0x0] - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack mov r1, #0x2 ldr r0, _020223B8 ; =0x04000540 @@ -23,7 +23,7 @@ FUN_02022318: ; 0x02022318 str r1, [r0, #0x0] bne _02022364 lsl r0, r5, #0x7 - bl FUN_020AFA28 + bl NNS_GfdGetLnkTexVramManagerWorkSize add r6, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 @@ -35,20 +35,20 @@ FUN_02022318: ; 0x02022318 lsl r0, r5, #0x11 mov r1, #0x0 add r3, r6, #0x0 - bl FUN_020AF9C4 + bl NNS_GfdInitLnkTexVramManager b _0202236E _02022364: lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager _0202236E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _02022398 ldr r0, [sp, #0x20] lsl r0, r0, #0x8 - bl FUN_020AFBFC + bl NNS_GfdGetLnkPlttVramManagerWorkSize add r5, r0, #0x0 ldr r0, [r4, #0x0] add r1, r5, #0x0 @@ -59,14 +59,14 @@ _0202236E: lsl r0, r0, #0xd add r2, r5, #0x0 mov r3, #0x1 - bl FUN_020AFBA8 + bl NNS_GfdInitLnkPlttVramManager b _020223A4 _02022398: ldr r0, [sp, #0x20] mov r1, #0x1 lsl r0, r0, #0x1d lsr r0, r0, #0x10 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager _020223A4: ldr r0, [sp, #0x24] cmp r0, #0x0 diff --git a/arm9/asm/unk_02033B68.s b/arm9/asm/unk_02033B68.s index 39125d06c..9e2043777 100644 --- a/arm9/asm/unk_02033B68.s +++ b/arm9/asm/unk_02033B68.s @@ -333,7 +333,7 @@ FUN_02033D3C: ; 0x02033D3C bl DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r5, #0x1 bne _02033D80 ldr r0, [sp, #0x0] @@ -386,7 +386,7 @@ _02033DC8: bl DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r5, #0x1 bne _02033DF0 mov r0, #0x1 diff --git a/arm9/asm/unk_020607D4.s b/arm9/asm/unk_020607D4.s index 45fc311a5..c017c5613 100644 --- a/arm9/asm/unk_020607D4.s +++ b/arm9/asm/unk_020607D4.s @@ -556,7 +556,7 @@ _02060BF6: add r0, r4, #0x0 bl MOD05_021F4BD0 ldr r0, [r0, #0x0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r2, sp, #0x20 mov r3, #0x0 diff --git a/arm9/asm/unk_0206DE24.s b/arm9/asm/unk_0206DE24.s index 0bc45eb27..32d784c49 100644 --- a/arm9/asm/unk_0206DE24.s +++ b/arm9/asm/unk_0206DE24.s @@ -1,8 +1,8 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021064C0 - .extern UNK_021064B8 + .extern NNS_GfdDefaultFuncAllocPlttVram + .extern NNS_GfdDefaultFuncAllocTexVram .text @@ -128,14 +128,14 @@ _0206DF14: .word 0x04000580 thumb_func_start FUN_0206DF18 FUN_0206DF18: ; 0x0206DF18 push {r3-r5, lr} - ldr r3, _0206DF50 ; =UNK_021064B8 + ldr r3, _0206DF50 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #0x2 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0xe add r2, r1, #0x0 blx r3 - ldr r3, _0206DF54 ; =UNK_021064C0 + ldr r3, _0206DF54 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x0 add r4, r0, #0x0 ldr r3, [r3, #0x0] @@ -154,8 +154,8 @@ _0206DF48: bl FUN_02012CC8 pop {r3-r5, pc} nop -_0206DF50: .word UNK_021064B8 -_0206DF54: .word UNK_021064C0 +_0206DF50: .word NNS_GfdDefaultFuncAllocTexVram +_0206DF54: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_0206DF58 FUN_0206DF58: ; 0x0206DF58 @@ -165,7 +165,7 @@ FUN_0206DF58: ; 0x0206DF58 cmp r0, #0x0 ble _0206DF6E bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera _0206DF6E: bl FUN_02013388 mov r0, #0x1 @@ -176,7 +176,7 @@ _0206DF6E: thumb_func_start FUN_0206DF7C FUN_0206DF7C: ; 0x0206DF7C push {r4, lr} - ldr r3, _0206DF94 ; =UNK_021064B8 + ldr r3, _0206DF94 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -186,12 +186,12 @@ FUN_0206DF7C: ; 0x0206DF7C lsr r0, r0, #0xd pop {r4, pc} nop -_0206DF94: .word UNK_021064B8 +_0206DF94: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start FUN_0206DF98 FUN_0206DF98: ; 0x0206DF98 push {r4, lr} - ldr r3, _0206DFB0 ; =UNK_021064C0 + ldr r3, _0206DFB0 ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -201,7 +201,7 @@ FUN_0206DF98: ; 0x0206DF98 lsr r0, r0, #0xd pop {r4, pc} nop -_0206DFB0: .word UNK_021064C0 +_0206DFB0: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_0206DFB4 FUN_0206DFB4: ; 0x0206DFB4 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index 1a62b92b5..a50d92bf9 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1274,7 +1274,7 @@ FUN_0206FD24: ; 0x0206FD24 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x10 add r4, r0, #0x0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r2, [sp, #0x10] mov r0, #0x3 ldr r1, [r2, #0xc] @@ -6204,7 +6204,7 @@ FUN_020724D4: ; 0x020724D4 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0xc str r0, [sp, #0x8] - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r0, [sp, #0xc] mov r4, #0x0 str r0, [sp, #0x4] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 16a7190fd..703233b32 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -2418,7 +2418,7 @@ FUN_02078140: ; 0x02078140 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x80 diff --git a/arm9/asm/unk_020799E8.s b/arm9/asm/unk_020799E8.s index 7f35d1a7f..9227ca82a 100644 --- a/arm9/asm/unk_020799E8.s +++ b/arm9/asm/unk_020799E8.s @@ -264,7 +264,7 @@ FUN_02079B60: ; 0x02079B60 _02079B9A: add r0, r7, #0x0 add r1, sp, #0x10 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData cmp r4, #0x0 bne _02079BAE ldr r0, [sp, #0x10] @@ -286,7 +286,7 @@ _02079BAE: _02079BC6: add r0, r7, #0x0 add r1, sp, #0xc - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData cmp r4, #0x0 bne _02079BDA ldr r0, [sp, #0xc] @@ -322,7 +322,7 @@ _02079BF8: _02079C10: add r0, r7, #0x0 add r1, sp, #0x8 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r4, #0x0 bne _02079C24 ldr r0, [sp, #0x8] @@ -363,6 +363,6 @@ FUN_02079C40: ; 0x02079C40 bl NARC_ReadWholeMember add r0, r4, #0x0 add r1, r7, #0x0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData add r0, r4, #0x0 pop {r3-r7, pc} diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 617a122a6..625807ae0 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -2750,7 +2750,7 @@ _0207B256: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0xc add r4, r0, #0x0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x20 diff --git a/arm9/asm/unk_0207EF6C.s b/arm9/asm/unk_0207EF6C.s index 8fcaed0cc..e4e292590 100644 --- a/arm9/asm/unk_0207EF6C.s +++ b/arm9/asm/unk_0207EF6C.s @@ -99,7 +99,7 @@ UNK_020FB6E6: ; 0x020FB6E6 FUN_0207EF6C: ; 0x0207EF6C push {r3-r4, lr} sub sp, #0x4 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_Init bl G3X_InitMtxStack ldr r0, _0207EFEC ; =0x04000060 @@ -183,16 +183,16 @@ FUN_0207F008: ; 0x0207F008 mov r0, #0x2 str r0, [r2, #0x0] str r3, [r1, #0x0] - bl FUN_020B849C + bl NNS_G3dGlbFlushP mov r0, #0xb7 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0207F108 - bl FUN_020B849C + bl NNS_G3dGlbFlushP add r0, r4, #0x0 bl FUN_0207F1A4 _0207F046: - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 949452596..7ae623511 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -1,8 +1,8 @@ .include "asm/macros.inc" .include "global.inc" - .extern UNK_021064B8 - .extern UNK_021064C0 + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncAllocPlttVram .section .rodata @@ -217,14 +217,14 @@ _02086508: .word 0x04000580 thumb_func_start FUN_0208650C FUN_0208650C: ; 0x0208650C push {r3-r5, lr} - ldr r3, _02086544 ; =UNK_021064B8 + ldr r3, _02086544 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #0x2 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0xe add r2, r1, #0x0 blx r3 - ldr r3, _02086548 ; =UNK_021064C0 + ldr r3, _02086548 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0x0 add r4, r0, #0x0 ldr r3, [r3, #0x0] @@ -243,8 +243,8 @@ _0208653C: bl FUN_02012CC8 pop {r3-r5, pc} nop -_02086544: .word UNK_021064B8 -_02086548: .word UNK_021064C0 +_02086544: .word NNS_GfdDefaultFuncAllocTexVram +_02086548: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_0208654C FUN_0208654C: ; 0x0208654C @@ -400,7 +400,7 @@ FUN_02086698: ; 0x02086698 cmp r0, #0x0 ble _020866AE bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera _020866AE: bl FUN_02013388 mov r0, #0x1 @@ -845,7 +845,7 @@ FUN_020869F0: ; 0x020869F0 thumb_func_start FUN_02086A48 FUN_02086A48: ; 0x02086A48 push {r4, lr} - ldr r3, _02086A60 ; =UNK_021064B8 + ldr r3, _02086A60 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -855,12 +855,12 @@ FUN_02086A48: ; 0x02086A48 lsr r0, r0, #0xd pop {r4, pc} nop -_02086A60: .word UNK_021064B8 +_02086A60: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start FUN_02086A64 FUN_02086A64: ; 0x02086A64 push {r4, lr} - ldr r3, _02086A7C ; =UNK_021064C0 + ldr r3, _02086A7C ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -870,7 +870,7 @@ FUN_02086A64: ; 0x02086A64 lsr r0, r0, #0xd pop {r4, pc} nop -_02086A7C: .word UNK_021064C0 +_02086A7C: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start FUN_02086A80 FUN_02086A80: ; 0x02086A80 diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s index 058f8c32f..2f1ab9a66 100644 --- a/arm9/asm/unk_0208AC14.s +++ b/arm9/asm/unk_0208AC14.s @@ -2,8 +2,8 @@ .include "global.inc" .extern FX_SinCosTable_ - .extern UNK_021064B8 - .extern UNK_021064C0 + .extern NNS_GfdDefaultFuncAllocTexVram + .extern NNS_GfdDefaultFuncAllocPlttVram .section .data .global UNK_02106158 @@ -773,7 +773,7 @@ _0208B60C: FUN_0208B630: ; 0x0208B630 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r3, _0208B660 ; =UNK_021064C0 + ldr r3, _0208B660 ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -784,14 +784,14 @@ FUN_0208B630: ; 0x0208B630 ldmia sp!, {lr} bx lr .balign 4 -_0208B660: .word UNK_021064C0 +_0208B660: .word NNS_GfdDefaultFuncAllocPlttVram _0208B664: .word 0x0000FFFF arm_func_start FUN_0208B668 FUN_0208B668: ; 0x0208B668 stmdb sp!, {lr} sub sp, sp, #0x4 - ldr r3, _0208B698 ; =UNK_021064B8 + ldr r3, _0208B698 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 @@ -802,7 +802,7 @@ FUN_0208B668: ; 0x0208B668 ldmia sp!, {lr} bx lr .balign 4 -_0208B698: .word UNK_021064B8 +_0208B698: .word NNS_GfdDefaultFuncAllocTexVram _0208B69C: .word 0x0000FFFF arm_func_start FUN_0208B6A0 diff --git a/arm9/global.inc b/arm9/global.inc index f2731c79f..f389ad93c 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5572,229 +5572,229 @@ .extern VCT_Main .extern VCT_Cleanup .extern VCT_Init -.extern FUN_020ADA84 -.extern FUN_020ADA98 -.extern FUN_020ADAB0 -.extern FUN_020ADB18 -.extern FUN_020ADBE8 -.extern FUN_020ADC74 -.extern FUN_020ADDC0 -.extern FUN_020ADDC8 -.extern FUN_020ADDF0 -.extern FUN_020ADE2C -.extern FUN_020AE554 -.extern FUN_020AE5B0 -.extern FUN_020AE600 -.extern FUN_020AE638 -.extern FUN_020AE684 -.extern FUN_020AE82C -.extern FUN_020AE84C -.extern FUN_020AE868 -.extern FUN_020AE8CC -.extern FUN_020AE918 -.extern FUN_020AEAF4 -.extern FUN_020AEB70 -.extern FUN_020AEC60 -.extern FUN_020AEC7C -.extern FUN_020AEC98 -.extern FUN_020AEDF4 -.extern FUN_020AEE40 -.extern FUN_020AEEB8 -.extern FUN_020AEF1C -.extern FUN_020AF2E0 -.extern FUN_020AF2F4 -.extern FUN_020AF30C -.extern FUN_020AF6A4 -.extern FUN_020AF894 -.extern FUN_020AF9C4 -.extern FUN_020AFA28 -.extern FUN_020AFA30 -.extern FUN_020AFA80 -.extern FUN_020AFBA8 -.extern FUN_020AFBFC -.extern FUN_020AFC04 -.extern FUN_020AFEB8 -.extern FUN_020AFFD8 -.extern FUN_020B0030 -.extern FUN_020B0088 -.extern FUN_020B00F0 -.extern FUN_020B0138 -.extern FUN_020B0180 -.extern FUN_020B0250 -.extern FUN_020B02C8 -.extern FUN_020B0448 -.extern FUN_020B04FC -.extern FUN_020B0830 -.extern FUN_020B0870 -.extern FUN_020B0888 -.extern FUN_020B0BB0 -.extern FUN_020B0C7C -.extern FUN_020B0D58 -.extern FUN_020B0E34 -.extern FUN_020B0FC0 -.extern FUN_020B10E8 -.extern FUN_020B1240 -.extern FUN_020B1340 -.extern FUN_020B1528 -.extern FUN_020B1768 -.extern FUN_020B19C4 -.extern FUN_020B19DC -.extern FUN_020B1A14 -.extern FUN_020B1A1C -.extern FUN_020B1A24 -.extern FUN_020B1AF8 -.extern FUN_020B1EA4 -.extern FUN_020B1EC4 -.extern FUN_020B1EE4 -.extern FUN_020B1EFC -.extern FUN_020B1F80 -.extern FUN_020B20C8 -.extern FUN_020B2194 -.extern FUN_020B224C -.extern FUN_020B23D8 -.extern FUN_020B242C -.extern FUN_020B2794 -.extern FUN_020B28B4 -.extern FUN_020B2A08 -.extern FUN_020B2B08 -.extern FUN_020B2B58 -.extern FUN_020B2D9C -.extern FUN_020B317C -.extern FUN_020B31F0 -.extern FUN_020B326C -.extern FUN_020B3334 -.extern FUN_020B3390 -.extern FUN_020B33A0 -.extern FUN_020B4358 -.extern FUN_020B43A4 -.extern FUN_020B442C -.extern FUN_020B4568 -.extern FUN_020B4F38 -.extern FUN_020B502C -.extern FUN_020B5C88 -.extern FUN_020B5CE4 -.extern FUN_020B5D3C -.extern FUN_020B5E50 -.extern FUN_020B6180 -.extern FUN_020B6240 -.extern FUN_020B62F8 -.extern FUN_020B6388 -.extern FUN_020B63CC -.extern FUN_020B7168 -.extern FUN_020B7218 -.extern FUN_020B772C -.extern FUN_020B7790 -.extern FUN_020B7C58 -.extern FUN_020B7C78 -.extern FUN_020B7CDC -.extern FUN_020B7CE4 -.extern FUN_020B7CF0 -.extern FUN_020B7D28 -.extern FUN_020B7DFC -.extern FUN_020B7E10 -.extern FUN_020B7E1C -.extern FUN_020B7E28 -.extern FUN_020B7EFC -.extern FUN_020B80B4 -.extern FUN_020B8110 -.extern FUN_020B8344 -.extern FUN_020B8390 -.extern FUN_020B83BC -.extern FUN_020B83E0 -.extern FUN_020B8404 -.extern FUN_020B8418 -.extern FUN_020B844C -.extern FUN_020B8474 -.extern FUN_020B849C -.extern FUN_020BAC98 -.extern FUN_020BAFB8 -.extern FUN_020BB1C0 -.extern FUN_020BB394 -.extern FUN_020BB408 -.extern FUN_020BB59C -.extern FUN_020BB7F4 -.extern FUN_020BB8D0 -.extern FUN_020BB8F4 -.extern FUN_020BB934 -.extern FUN_020BB974 -.extern FUN_020BB9B4 -.extern FUN_020BB9F4 -.extern FUN_020BBA34 -.extern FUN_020BBA74 -.extern FUN_020BBAB4 -.extern FUN_020BBAF4 -.extern FUN_020BBB34 -.extern FUN_020BBB74 -.extern FUN_020BBBB4 -.extern FUN_020BBBF4 -.extern FUN_020BBC34 -.extern FUN_020BC02C -.extern FUN_020BC094 -.extern FUN_020BC0FC -.extern FUN_020BC13C -.extern FUN_020BC2A0 -.extern FUN_020BC4C8 -.extern FUN_020C0174 -.extern FUN_020C01A0 -.extern SDAT_Init -.extern FUN_020C03B8 -.extern FUN_020C041C -.extern FUN_020C044C -.extern FUN_020C04DC -.extern FUN_020C0510 -.extern FUN_020C054C -.extern FUN_020C0670 -.extern FUN_020C0688 -.extern FUN_020C0DD4 -.extern FUN_020C0E14 -.extern FUN_020C0E7C -.extern FUN_020C0EA4 -.extern FUN_020C0EF4 -.extern FUN_020C0F30 -.extern FUN_020C0F40 -.extern FUN_020C0F50 -.extern FUN_020C0F68 -.extern FUN_020C0F80 -.extern FUN_020C0F8C -.extern FUN_020C0F9C -.extern FUN_020C0FDC -.extern FUN_020C1040 -.extern FUN_020C10A4 -.extern FUN_020C1148 -.extern FUN_020C1180 -.extern FUN_020C13C4 -.extern FUN_020C1430 -.extern FUN_020C1458 -.extern FUN_020C14AC -.extern FUN_020C1674 -.extern FUN_020C169C -.extern FUN_020C16FC -.extern FUN_020C1E58 -.extern FUN_020C1E68 -.extern FUN_020C1EA4 -.extern FUN_020C1F54 -.extern FUN_020C1FA4 -.extern FUN_020C1FF0 -.extern FUN_020C20DC -.extern FUN_020C2104 -.extern FUN_020C217C -.extern FUN_020C226C -.extern FUN_020C22D0 -.extern FUN_020C23FC -.extern FUN_020C2444 -.extern SDAT_Open -.extern FUN_020C2828 -.extern FUN_020C290C -.extern FUN_020C2A94 -.extern FUN_020C35E0 -.extern FUN_020C360C -.extern FUN_020C3640 -.extern FUN_020C3674 -.extern FUN_020C36A8 -.extern FUN_020C3888 -.extern FUN_020C3910 -.extern FUN_020C3980 -.extern FUN_020C39CC +.extern NNS_FndGetPrevListObject +.extern NNS_FndGetNextListObject +.extern NNS_FndRemoveListObject +.extern NNS_FndInsertListObject +.extern NNS_FndAppendListObject +.extern NNS_FndInitList +.extern NNS_FndGetSizeForMBlockExpHeap +.extern NNS_FndGetTotalFreeSizeForExpHeap +.extern NNS_FndFreeToExpHeap +.extern NNS_FndResizeForMBlockExpHeap +.extern NNS_FndFreeByStateToFrmHeap +.extern NNS_FndRecordStateForFrmHeap +.extern NNS_FndFreeToFrmHeap +.extern NNS_FndAllocFromFrmHeapEx +.extern NNS_FndCreateFrmHeapEx +.extern NNS_FndInitAllocatorForExpHeap +.extern NNS_FndFreeToAllocator +.extern NNS_FndAllocFromAllocator +.extern NNS_GfdSetFrmTexVramState +.extern NNS_GfdGetFrmTexVramState +.extern NNS_GfdResetFrmTexVramState +.extern NNS_GfdInitFrmTexVramManager +.extern NNS_GfdResetFrmPlttVramState +.extern NNS_GfdSetFrmPlttVramState +.extern NNS_GfdGetFrmPlttVramState +.extern NNS_GfdInitFrmPlttVramManager +.extern NNS_GfdRegisterNewVramTransferTask +.extern NNS_GfdDoVramTransfer +.extern NNS_GfdInitVramTransferManager +.extern IsVramTransferTaskQueueEmpty_ +.extern IsVramTransferTaskQueueFull_ +.extern GetNextIndex_ +.extern NNS_GfdResetLnkTexVramState +.extern NNS_GfdFreeLnkTexVram +.extern NNS_GfdInitLnkTexVramManager +.extern NNS_GfdGetLnkTexVramManagerWorkSize +.extern NNS_GfdResetLnkPlttVramState +.extern NNS_GfdFreeLnkPlttVram +.extern NNS_GfdInitLnkPlttVramManager +.extern NNS_GfdGetLnkPlttVramManagerWorkSize +.extern NNS_G2dGetAnimSequenceByIdx +.extern NNS_G2dGetUnpackedCellBank +.extern NNS_G2dGetUnpackedMultiCellBank +.extern NNS_G2dGetUnpackedBGCharacterData +.extern NNS_G2dGetUnpackedCharacterData +.extern NNS_G2dGetUnpackedPaletteCompressInfo +.extern NNS_G2dGetUnpackedPaletteData +.extern NNS_G2dGetUnpackedScreenData +.extern NNS_G2dDrawSpriteFast +.extern NNS_G2dSetupSoftwareSpriteCamera +.extern NNS_G2dResetAnimCtrlState +.extern NNS_G2dGetAnimCtrlCurrentFrame +.extern NNS_G2dGetOamManagerOamCapacity +.extern NNS_G2dApplyAndResetOamManagerBuffer +.extern NNS_G2dResetOamManagerBuffer +.extern NNS_G2dEntryOamManagerAffine +.extern NNS_G2dEntryOamManagerOamWithAffineIdx +.extern NNS_G2dEntryOamManagerOam +.extern NNS_G2dGetNewOamManagerInstance +.extern NNS_G2dInitOamManagerModule +.extern NNS_G2dLoadPaletteEx +.extern NNS_G2dLoadPalette +.extern NNS_G2dLoadImageVramTransfer +.extern NNS_G2dLoadImage2DMapping +.extern NNS_G2dLoadImage1DMapping +.extern NNS_G2dGetImagePaletteLocation +.extern NNS_G2dInitImagePaletteProxy +.extern NNS_G2dGetImageLocation +.extern NNS_G2dSetImageLocation +.extern NNS_G2dInitImageProxy +.extern NNS_G2dMakeCellToOams +.extern NNS_G2dSetCellAnimationCurrentFrame +.extern NNS_G2dTickCellAnimation +.extern NNS_G2dSetCellAnimationSequence +.extern NNS_G2dInitCellAnimationVramTransfered +.extern NNS_G2dInitCellAnimation +.extern NNS_G2dInitMCAnimation +.extern NNS_G2dSetMCAnimationCurrentFrame +.extern NNS_G2dTickMCAnimation +.extern NNS_G2dGetMCBankNumNodesRequired +.extern NNS_G2dSetAnimSequenceToMCAnimation +.extern NNS_G2dRotZ +.extern NNS_G2dScale +.extern NNS_G2dTranslate +.extern NNS_G2dPopMtx +.extern NNS_G2dPushMtx +.extern NNS_G2dDrawMultiCellAnimation +.extern NNS_G2dDrawCellAnimation +.extern NNS_G2dEndRendering +.extern NNS_G2dBeginRendering +.extern NNS_G2dInitRenderSurface +.extern NNS_G2dAddRendererTargetSurface +.extern NNS_G2dInitRenderer +.extern NNS_G2dFreeCellTransferStateHandle +.extern NNS_G2dGetNewCellTransferStateHandle +.extern NNS_G2dUpdateCellTransferStateManager +.extern NNS_G2dInitCellTransferStateManager +.extern NNS_G2dSetRndCoreFlipMode +.extern NNS_G2dSetRndCoreAffineOverwriteMode +.extern NNS_G2dFontGetCharWidthsFromIndex +.extern NNS_G2dFontFindGlyphIndex +.extern NNS_G2dFontInitUTF16 +.extern NNS_G2dArrangeOBJ1D +.extern NNSi_G2dCalcRequiredOBJ +.extern NNS_G2dMapScrToCharText +.extern NNS_G2dCharCanvasInitForOBJ1D +.extern NNS_G2dCharCanvasInitForBG +.extern NNS_G2dCharCanvasDrawChar +.extern NNSi_G2dTextCanvasDrawTextRect +.extern NNSi_G2dTextCanvasDrawText +.extern NNS_G3dReleaseMdlSet +.extern NNS_G3dBindMdlSet +.extern NNS_G3dPlttReleasePlttKey +.extern NNS_G3dPlttLoad +.extern NNS_G3dPlttSetPlttKey +.extern NNS_G3dPlttGetRequiredSize +.extern NNS_G3dTexReleaseTexKey +.extern NNS_G3dTexLoad +.extern NNS_G3dTexSetTexKey +.extern NNS_G3dTex4x4GetRequiredSize +.extern NNS_G3dTexGetRequiredSize +.extern NNS_G3dRenderObjRemoveAnmObj +.extern NNS_G3dRenderObjAddAnmObj +.extern NNS_G3dRenderObjInit +.extern NNS_G3dAnmObjInit +.extern NNS_G3dGlbGetInvV +.extern NNS_G3dGlbPolygonAttr +.extern NNS_G3dGlbMaterialColorSpecEmi +.extern NNS_G3dGlbMaterialColorDiffAmb +.extern NNS_G3dGlbLightColor +.extern NNS_G3dGlbLightVector +.extern NNS_G3dGlbSetBaseScale +.extern NNS_G3dGlbSetBaseTrans +.extern NNS_G3dGlbFlushP +.extern NNS_G3dDraw +.extern NNS_G3dDraw1Mat1Shp +.extern NNS_G3dGeBufferOP_N +.extern NNS_G3dGeFlushBuffer +.extern NNS_G3dWorldPosToScrPos +.extern NNS_G3dResDefaultSetup +.extern NNS_G3dInit +.extern NNS_G3dAllocAnmObj +.extern NNS_G3dMdlSetMdlXLDepthUpdateAll +.extern NNS_G3dMdlSetMdlFarClipAll +.extern NNS_G3dMdlSetMdl1DotAll +.extern NNS_G3dMdlSetMdlDepthTestCondAll +.extern NNS_G3dMdlSetMdlFogEnableFlagAll +.extern NNS_G3dMdlSetMdlAlphaAll +.extern NNS_G3dMdlSetMdlPolygonIDAll +.extern NNS_G3dMdlSetMdlCullModeAll +.extern NNS_G3dMdlSetMdlPolygonModeAll +.extern NNS_G3dMdlSetMdlLightEnableFlagAll +.extern NNS_G3dMdlSetMdlEmiAll +.extern NNS_G3dMdlSetMdlSpecAll +.extern NNS_G3dMdlSetMdlAmbAll +.extern NNS_G3dMdlSetMdlDiffAll +.extern NNSi_G3dModifyPolygonAttrMask +.extern NNSi_G3dModifyMatFlag +.extern NNS_G3dGetTex +.extern NNS_G3dGetMdlSet +.extern NNS_G3dGetResDataByName +.extern NNS_G3dGetAnmByIdx +.extern NNS_SndSetMonoFlag +.extern NNS_SndMain +.extern NNS_SndInit +.extern NNS_SndWaveOutIsPlaying +.extern NNS_SndWaveOutSetPan +.extern NNS_SndWaveOutSetSpeed +.extern NNS_SndWaveOutSetVolume +.extern NNS_SndWaveOutStop +.extern NNS_SndWaveOutStart +.extern NNS_SndWaveOutFreeChannel +.extern NNS_SndWaveOutAllocChannel +.extern NNS_SndPlayerGetTick +.extern NNS_SndPlayerGetSeqNo +.extern NNS_SndPlayerSetTrackPan +.extern NNS_SndPlayerSetTrackPitch +.extern NNS_SndPlayerMoveVolume +.extern NNS_SndPlayerSetInitialVolume +.extern NNS_SndPlayerSetVolume +.extern NNS_SndPlayerCountPlayingSeqByPlayerNo +.extern NNS_SndHandleReleaseSeq +.extern NNS_SndHandleInit +.extern NNS_SndPlayerPause +.extern NNS_SndPlayerStopSeqAll +.extern NNS_SndPlayerStopSeqBySeqNo +.extern NNS_SndPlayerStopSeqByPlayerNo +.extern NNS_SndPlayerStopSeq +.extern NNS_SndPlayerSetAllocatableChannel +.extern NNS_SndPlayerSetPlayerVolume +.extern NNS_SndStrmSetVolume +.extern NNS_SndStrmStop +.extern NNS_SndStrmStart +.extern NNS_SndStrmSetup +.extern NNS_SndStrmFreeChannel +.extern NNS_SndStrmAllocChannel +.extern NNS_SndStrmInit +.extern NNS_SndCaptureIsActive +.extern NNS_SndCaptureStopEffect +.extern NNS_SndCaptureStartEffect +.extern NNS_SndCaptureStopReverb +.extern NNS_SndCaptureSetReverbVolume +.extern NNS_SndCaptureStartReverb +.extern NNS_SndArcGetFileAddress +.extern NNS_SndArcReadFile +.extern NNS_SndArcGetFileSize +.extern NNS_SndArcGetWaveArcInfo +.extern NNS_SndArcGetBankInfo +.extern NNS_SndArcGetSeqParam +.extern NNS_SndArcInitOnMemory +.extern NNS_SndArcInit +.extern NNS_SndHeapLoadState +.extern NNS_SndHeapSaveState +.extern NNS_SndHeapCreate +.extern NNS_SndArcLoadSeqEx +.extern NNS_SndArcLoadWaveArc +.extern NNS_SndArcLoadBank +.extern NNS_SndArcLoadSeq +.extern NNS_SndArcLoadGroup +.extern NNS_SndArcPlayerStartSeqArc +.extern NNS_SndArcPlayerStartSeqEx +.extern NNS_SndArcPlayerStartSeq +.extern NNS_SndArcPlayerSetup .extern FUN_020C5D8C .extern FUN_020C5E04 .extern FUN_020C6034 @@ -8191,8 +8191,8 @@ .extern UNK_020FB764 .extern UNK_020FD144 .extern UNK_020FD6D4 -.extern UNK_021064B8 -.extern UNK_021064C0 +.extern NNS_GfdDefaultFuncAllocTexVram +.extern NNS_GfdDefaultFuncAllocPlttVram .extern gMain .extern UNK_021C8ECC .extern UNK_021C8ED0 @@ -8238,12 +8238,8 @@ .extern UNK_020FF3D4 .extern FX_SinCosTable_ .extern UNK_02105BB8 -.extern UNK_021064BC -.extern UNK_021064C4 -.extern UNK_021CED20 -.extern UNK_021CED98 -.extern UNK_021CEDD4 -.extern UNK_021CEF70 +.extern NNS_GfdDefaultFuncFreeTexVram +.extern NNS_GfdDefaultFuncFreePlttVram .extern UnloadOverlayByID .extern VEC_Add .extern VEC_CrossProduct @@ -8465,16 +8461,16 @@ .extern sys_exit .extern sys_readc .extern sys_writec -.extern tempName_NNS_FndAllocFromExpHeapEx -.extern tempName_NNS_FndCreateExpHeapEx +.extern NNS_FndAllocFromExpHeapEx +.extern NNS_FndCreateExpHeapEx .extern DWC_ClearDirtyFlag .extern DWC_CreateUserData -.extern thunk_FUN_020adc8c -.extern thunk_FUN_020adc8c_2 -.extern thunk_FUN_020ae84c -.extern thunk_FUN_020afda0 -.extern thunk_FUN_020afda0_2 -.extern thunk_FUN_020b5040 +.extern NNS_FndDestroyExpHeap +.extern NNS_FndDestroyFrmHeap +.extern NNS_G3dFreeAnmObj +.extern NNS_G2dGetUnpackedMCAnimBank +.extern NNS_G2dGetUnpackedAnimBank +.extern NNS_G2dSetRendererImageProxy .extern vsnprintf .extern vsscanf .extern vswprintf @@ -8499,8 +8495,8 @@ .extern DWCi_BACKUPlWriteAll .extern DWCi_BM_SetWiFiInfo .extern DWC_Auth_CheckWiFiIDNeedCreate -.extern UNK_021064B8 -.extern UNK_021064C0 +.extern NNS_GfdDefaultFuncAllocTexVram +.extern NNS_GfdDefaultFuncAllocPlttVram .extern MOD18_0224CA58 .extern MOD18_0223DFB4 .extern MOD18_02245FA0 @@ -8520,160 +8516,152 @@ .extern FUN_020254A0 .extern FUN_020254B4 .extern FUN_02041464 -.extern FUN_020AFE8C -.extern FUN_020B0438 -.extern FUN_020B04C0 -.extern FUN_020B0518 -.extern FUN_020B0534 -.extern FUN_020B06E0 -.extern FUN_020B1A68 -.extern FUN_020B1A78 -.extern FUN_020B1A98 -.extern FUN_020B1AB4 -.extern FUN_020B4400 -.extern FUN_020B45F0 -.extern UNK_020FF894 -.extern UNK_020FF8AC -.extern FUN_020B10BC -.extern FUN_020B10C4 -.extern FUN_020B10CC -.extern FUN_020B76B0 -.extern FUN_020B7558 -.extern FUN_020B7718 -.extern FUN_020AFF34 -.extern FUN_020B0408 -.extern FUN_020B1AD4 -.extern FUN_020B01F8 -.extern FUN_020B01B0 +.extern NNS_G2dGetCellDataByIdx +.extern NNS_G2dBindAnimCtrl +.extern NNS_G2dInitAnimCtrl +.extern NNS_G2dSetAnimCtrlCurrentFrame +.extern NNS_G2dTickAnimCtrl +.extern NNS_G2dGetAnimCtrlCurrentElement +.extern NNSi_G2dSrtcInitControl +.extern NNSi_G2dSrtcSetSRTScale +.extern NNSi_G2dSrtcSetSRTRotZ +.extern NNSi_G2dSrtcSetTrans +.extern NNS_G2dSetCellTransferStateRequested +.extern NNSi_G2dInitCellTransferState +.extern NNSi_objSizeHTbl +.extern NNSi_objSizeWTbl +.extern NNSi_G2dGetVramLocation +.extern NNSi_G2dSetVramLocation +.extern NNSi_G2dInitializeVRamLocation +.extern NNSi_G2dBitReaderRead +.extern NNSi_G2dGetUnpackedFont +.extern NNSi_G2dSplitCharUTF16 +.extern NNS_G2dGetMultiCellDataByIdx +.extern NNSi_G2dIsAnimCtrlLoopAnim +.extern NNSi_G2dInitializeNode +.extern NNS_G2dFindBinaryBlock +.extern NNSi_G2dUnpackUserExCellAttrBank .extern GXi_DmaId -.extern FUN_020B10B0 -.extern FUN_020B423C -.extern FUN_020B4948 -.extern FUN_020B4958 -.extern FUN_020B4968 -.extern FUN_020B497C -.extern FUN_020B4BF4 -.extern FUN_020B4CDC -.extern FUN_020B4DA0 -.extern FUN_020B4E0C -.extern FUN_020B4F74 -.extern FUN_020B4F88 -.extern FUN_020B4F9C -.extern FUN_020B4FA4 -.extern FUN_020B4FAC -.extern FUN_020B4FC4 -.extern FUN_020B5034 -.extern FUN_020B5040 -.extern FUN_020B504C -.extern FUN_020B19A8 -.extern FUN_020B19FC -.extern FUN_020B469C -.extern FUN_020B46B4 -.extern FUN_020B5ABC -.extern FUN_020B5B54 -.extern FUN_020B5BC8 -.extern FUN_020BB2B0 -.extern UNK_02106620 -.extern FUN_020BDA70 -.extern FUN_020BDAB4 -.extern FUN_020BDB40 -.extern FUN_020BDC0C -.extern FUN_020BDF38 -.extern FUN_020BDF84 -.extern FUN_020BE334 -.extern FUN_020BE4F0 -.extern FUN_020BE5A0 -.extern FUN_020BE5E0 -.extern FUN_020BE62C -.extern FUN_020BE668 -.extern FUN_020BE6E4 -.extern FUN_020BECEC -.extern FUN_020BEE3C -.extern FUN_020BEF10 -.extern FUN_020BF0D4 -.extern FUN_020BF2FC -.extern FUN_020BF42C -.extern FUN_020BFA9C -.extern UNK_02106594 -.extern UNK_021065AC -.extern UNK_021065B0 -.extern UNK_021065B4 -.extern UNK_021065B8 -.extern UNK_021065BC -.extern UNK_021CEF7C -.extern UNK_021CFD8C -.extern UNK_021CFD90 -.extern UNK_021CFD94 -.extern FUN_020B81B0 -.extern UNK_0210659C -.extern FUN_020BC14C -.extern UNK_021065A8 -.extern UNK_021065A0 -.extern FUN_020BC42C -.extern FUN_020BC4A8 -.extern FUN_020BC4B8 -.extern UNK_021065A4 -.extern UNK_02106598 -.extern FUN_020B8264 -.extern FUN_020B82A4 -.extern FUN_020BB824 -.extern UNK_02106608 -.extern UNK_02106614 -.extern UNK_021CED18 -.extern UNK_021CED64 -.extern UNK_021CEDF8 -.extern UNK_021CFD80 -.extern UNK_021CFD84 -.extern UNK_021CFD88 -.extern FUN_020B8200 -.extern FUN_020B84D8 -.extern FUN_020AF334 -.extern FUN_020AF488 -.extern FUN_020AF5E0 -.extern FUN_020AF64C -.extern FUN_020AF698 -.extern FUN_020AF5C4 -.extern FUN_020C029C -.extern FUN_020C02BC -.extern FUN_020C0300 -.extern FUN_020C031C -.extern FUN_020C0340 -.extern FUN_020C0370 -.extern FUN_020C3DDC -.extern FUN_020C3DF4 -.extern FUN_020C3E0C -.extern FUN_020C3E40 -.extern FUN_020C3E6C -.extern FUN_020C2CC0 -.extern FUN_020C0270 -.extern FUN_020C0BA0 -.extern FUN_020C0D20 -.extern FUN_020C187C -.extern FUN_020C18F8 -.extern FUN_020C1D9C -.extern FUN_020C1E38 -.extern FUN_020C3C88 -.extern FUN_020C29C0 -.extern FUN_020C2A7C -.extern SDATi_AllocAndInitChunk -.extern SNDi_DecibelTable -.extern FUN_020C20C0 -.extern FUN_020C21A4 -.extern FUN_020C2334 -.extern FUN_020C2398 -.extern FUN_020C241C -.extern FUN_020C242C -.extern FUN_020C2B1C -.extern FUN_020C09B0 -.extern FUN_020C0A90 -.extern FUN_020C0AF4 -.extern FUN_020C0E38 -.extern FUN_020C0E60 -.extern FUN_020C0ECC -.extern FUN_020C10B4 -.extern FUN_020C1160 -.extern FUN_020C2208 -.extern FUN_020C3270 -.extern FUN_020C341C -.extern FUN_020C3D9C -.extern thunk_FUN_020c077c +.extern NNS_G2dGetPaletteTableValue +.extern NNSi_G2dMtxConcat32 +.extern NNSi_G2dGetOamSoftEmuAutoZOffsetStep +.extern NNSi_G2dSetOamSoftEmuAutoZOffsetStep +.extern NNSi_G2dResetOamSoftEmuAutoZOffset +.extern NNSi_G2dSetOamSoftEmuAutoZOffsetFlag +.extern NNS_G2dRndCoreDrawCellVramTransfer +.extern NNS_G2dRndCoreDrawCell +.extern NNS_G2dRndCoreEndRendering +.extern NNS_G2dRndCoreBeginRendering +.extern NNS_G2dIsRndCoreFlipV +.extern NNS_G2dIsRndCoreFlipH +.extern NNS_G2dSetRndCoreSurface +.extern NNS_G2dSetRndCore3DSoftSpriteZvalue +.extern NNS_G2dSetRndCoreCurrentMtx2D +.extern NNS_G2dSetRndCoreCurrentMtx3D +.extern NNS_G2dSetRndCoreOamRegisterFunc +.extern NNS_G2dSetRndCoreImageProxy +.extern NNS_G2dInitRndCore +.extern NNS_G2dIsImagePaletteReadyToUse +.extern NNS_G2dIsImageReadyToUse +.extern NNSi_G2dGetCellTransferState +.extern NNS_G2dDrawOneOam3DDirectWithPosFast +.extern NNSi_G2dFontGetTextRect +.extern NNSi_G2dFontGetTextHeight +.extern NNSi_G2dFontGetStringWidth +.extern NNS_G3dGeSendDL +.extern NNS_G3dSendTexSRT_FuncArray +.extern NNSi_G3dAnmCalcNsBca +.extern NNSi_G3dAnmObjInitNsBca +.extern NNSi_G3dAnmCalcNsBma +.extern NNSi_G3dAnmObjInitNsBma +.extern NNSi_G3dAnmCalcNsBta +.extern NNSi_G3dAnmObjInitNsBta +.extern NNSi_G3dAnmCalcNsBtp +.extern NNSi_G3dAnmObjInitNsBtp +.extern NNSi_G3dAnmCalcNsBva +.extern NNSi_G3dAnmObjInitNsBva +.extern NNSi_G3dGetJointScaleBasic +.extern NNSi_G3dSendJointSRTBasic +.extern NNSi_G3dSendTexSRTMaya +.extern NNSi_G3dGetJointScaleMaya +.extern NNSi_G3dSendJointSRTMaya +.extern NNSi_G3dSendTexSRTSi3d +.extern NNSi_G3dGetJointScaleSi3d +.extern NNSi_G3dSendJointSRTSi3d +.extern NNSi_G3dSendTexSRT3dsMax +.extern NNSi_G3dSendTexSRTXsi +.extern NNS_G3dAnmFmtNum +.extern NNS_G3dFuncBlendVisDefault +.extern NNS_G3dFuncBlendJntDefault +.extern NNS_G3dFuncBlendMatDefault +.extern NNS_G3dAnmObjInitFuncArray +.extern NNS_G3dRS +.extern NNS_G3dAnmObjCalcSizeRequired +.extern NNS_G3dFuncAnmJntNsBcaDefault +.extern NNS_G3dGetResDictIdxByName +.extern NNS_G3dFuncAnmMatNsBmaDefault +.extern NNS_G3dFuncAnmMatNsBtaDefault +.extern NNSi_G3dGetTexPatAnmFV +.extern NNSi_G3dGetTexPatAnmPlttNameByIdx +.extern NNSi_G3dGetTexPatAnmTexNameByIdx +.extern NNS_G3dFuncAnmMatNsBtpDefault +.extern NNS_G3dFuncAnmVisNsBvaDefault +.extern NNS_G3dGlbGetInvWV +.extern NNS_G3dGlbGetWV +.extern NNS_G3dGetCurrentMtx +.extern NNS_G3dSendJointSRT_FuncArray +.extern NNS_G3dGetJointScale_FuncArray +.extern NNS_G3dGlb +.extern NNS_G3dGlbGetViewPort +.extern NNS_G3dGlbInit +.extern NNSi_GfdFreeLnkVram +.extern NNSi_GfdAllocLnkVramAligned +.extern NNSi_GfdAddNewFreeBlock +.extern NNSi_GfdInitLnkVramBlockPool +.extern NNSi_GfdInitLnkVramMan +.extern NNSi_GfdAllocLnkVram +.extern NNS_SndFreeAlarm +.extern NNS_SndAllocAlarm +.extern NNS_SndUnlockCapture +.extern NNS_SndLockCapture +.extern NNS_SndUnlockChannel +.extern NNS_SndLockChannel +.extern NNSi_SndFaderIsFinished +.extern NNSi_SndFaderUpdate +.extern NNSi_SndFaderGet +.extern NNSi_SndFaderSet +.extern NNS_G3dRSOnGlb +.extern NNSi_SndFaderInit +.extern SingleWaveDisposeCallback +.extern NNSi_SndInitResourceMgr +.extern NNSi_SndPlayerMain +.extern NNSi_SndPlayerInit +.extern NNSi_SndCaptureEndSleep +.extern NNSi_SndCaptureBeginSleep +.extern NNSi_SndCaptureMain +.extern NNSi_SndCaptureInit +.extern NNSi_SndArcStrmMain +.extern NNS_SndHeapClear +.extern NNS_SndHeapDestroy +.extern NNS_SndHeapAlloc +.extern SNDi_DecibelTable +.extern NNS_SndArcSetFileAddress +.extern NNS_SndArcGetGroupInfo +.extern NNS_SndArcGetSeqArcInfo +.extern NNS_SndArcGetSeqInfo +.extern NNS_SndArcGetCurrent +.extern NNS_SndArcSetCurrent +.extern LoadSingleWaves +.extern NNSi_SndPlayerAllocHeap +.extern NNSi_SndPlayerStartSeq +.extern NNSi_SndPlayerAllocSeqPlayer +.extern NNS_SndPlayerSetSeqArcNo +.extern NNS_SndPlayerSetSeqNo +.extern NNS_SndPlayerSetChannelPriority +.extern NNS_SndPlayerCreateHeap +.extern NNS_SndPlayerSetPlayableSeqCount +.extern NNS_SndArcGetPlayerInfo +.extern NNSi_SndArcLoadBank +.extern NNSi_SndArcLoadSeq +.extern NNSi_SndSeqArcGetSeqInfo +.extern NNSi_SndPlayerFreeSeqPlayer diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s index 12374ec56..db78d4fce 100644 --- a/arm9/modules/04/asm/thumb_04.s +++ b/arm9/modules/04/asm/thumb_04.s @@ -61,7 +61,7 @@ _021D74F2: bic r0, r1 mov r1, #0x2b lsl r1, r1, #0xc - bl tempName_NNS_FndCreateExpHeapEx + bl NNS_FndCreateExpHeapEx ldr r1, _021D7644 ; =UNK04_0220FBC0 ldr r3, _021D7654 ; =0x00001F08 ldr r2, [r1] @@ -195,7 +195,7 @@ MOD04_021D7660: ; 0x021D7660 beq _021D7698 ldr r0, _021D76A4 ; =0x00001F08 ldr r0, [r1, r0] - bl thunk_FUN_020adc8c + bl NNS_FndDestroyExpHeap ldr r0, _021D76A0 ; =UNK04_0220FBC0 ldr r1, _021D76A8 ; =0x00001F54 ldr r2, [r0] @@ -1130,7 +1130,7 @@ MOD04_021D7DA8: ; 0x021D7DA8 ldr r0, _021D7DE8 ; =0x00001F08 ldr r0, [r1, r0] add r1, r5, #0 - bl tempName_NNS_FndAllocFromExpHeapEx + bl NNS_FndAllocFromExpHeapEx add r5, r0, #0 bne _021D7DD8 mov r0, #1 @@ -1160,7 +1160,7 @@ MOD04_021D7DEC: ; 0x021D7DEC ldr r0, _021D7E14 ; =0x00001F08 ldr r0, [r1, r0] add r1, r5, #0 - bl FUN_020ADDF0 + bl NNS_FndFreeToExpHeap add r0, r4, #0 bl OS_RestoreInterrupts _021D7E0C: @@ -2347,12 +2347,12 @@ _021D86CE: str r1, [r2, r0] mov r0, #1 bl FUN_020AA770 - bl SDAT_Init + bl NNS_SndInit ldr r0, _021D8718 ; =UNK04_0220FBC8 ldr r1, [r0, #4] ldr r0, _021D8728 ; =0x00003504 add r0, r1, r0 - bl FUN_020C16FC + bl NNS_SndStrmInit ldr r1, _021D8718 ; =UNK04_0220FBC8 mov r0, #0 ldr r2, [r1, #4] @@ -2887,13 +2887,13 @@ _021D8ACA: ldr r0, [r5, #4] add r2, sp, #0x10 add r0, r0, r3 - bl FUN_020C169C + bl NNS_SndStrmAllocChannel add r0, r5, #0 ldr r1, [r0, #4] ldr r0, _021D8BDC ; =0x00003504 add r0, r1, r0 mov r1, #0 - bl FUN_020C13C4 + bl NNS_SndStrmSetVolume mov r0, #0x41 str r0, [sp] mov r0, #2 @@ -2914,7 +2914,7 @@ _021D8ACA: add r2, r3, r2 mov r1, #1 lsl r3, r7, #1 - bl FUN_020C14AC + bl NNS_SndStrmSetup ldr r2, _021D8BCC ; =UNK04_0220FBC8 ldr r1, _021D8BE4 ; =0x000034F8 ldr r0, [r2, #4] @@ -2975,14 +2975,14 @@ _021D8BEC: .word 0x000034FC thumb_func_start MOD04_021D8BF0 MOD04_021D8BF0: ; 0x021D8BF0 ldr r0, _021D8BFC ; =UNK04_0220FBC8 - ldr r3, _021D8C00 ; =FUN_020C1458 + ldr r3, _021D8C00 ; =NNS_SndStrmStart ldr r1, [r0, #4] ldr r0, _021D8C04 ; =0x00003504 add r0, r1, r0 bx r3 .align 2, 0 _021D8BFC: .word UNK04_0220FBC8 -_021D8C00: .word FUN_020C1458 +_021D8C00: .word NNS_SndStrmStart _021D8C04: .word 0x00003504 thumb_func_start MOD04_021D8C08 @@ -3052,12 +3052,12 @@ MOD04_021D8C6C: ; 0x021D8C6C ldr r1, [r0, #4] ldr r0, _021D8CC4 ; =0x00003504 add r0, r1, r0 - bl FUN_020C1430 + bl NNS_SndStrmStop ldr r0, _021D8CBC ; =UNK04_0220FBC8 ldr r1, [r0, #4] ldr r0, _021D8CC4 ; =0x00003504 add r0, r1, r0 - bl FUN_020C1674 + bl NNS_SndStrmFreeChannel bl VCT_Cleanup ldr r1, _021D8CBC ; =UNK04_0220FBC8 mov r0, #0x35 diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index e66ad6aa8..ec0e0a0e4 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -727,7 +727,7 @@ MOD05_021D7B10: ; 0x021D7B10 MOD05_021D7B38: ; 0x021D7B38 push {lr} sub sp, #0x14 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7c @@ -826,7 +826,7 @@ MOD05_021D7BE0: ; 0x021D7BE0 ldr r0, [r0] ldr r1, [r4, #0x2c] bl MOD05_021E805C - ldr r5, _021D7C98 ; =UNK_021CED20 + ldr r5, _021D7C98 ; =NNS_G3dGlb + 0x8 add r3, sp, #0x40 mov r2, #8 _021D7C0E: @@ -859,29 +859,29 @@ _021D7C1C: orr r2, r0 add r0, r1, r2 str r0, [sp, #0x38] - ldr r1, _021D7C98 ; =UNK_021CED20 + ldr r1, _021D7C98 ; =NNS_G3dGlb + 0x8 add r0, sp, #0 mov r2, #0x40 bl MIi_CpuCopyFast - ldr r1, _021D7C9C ; =UNK_021CED98 + ldr r1, _021D7C9C ; =NNS_G3dGlb + 0x80 mov r0, #0x50 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] - bl FUN_020B849C + bl NNS_G3dGlbFlushP ldr r0, [r4, #0x3c] bl MOD05_021E4BA0 bl FUN_0201F178 - ldr r1, _021D7C98 ; =UNK_021CED20 + ldr r1, _021D7C98 ; =NNS_G3dGlb + 0x8 add r0, sp, #0x40 mov r2, #0x40 bl MIi_CpuCopyFast - ldr r1, _021D7C9C ; =UNK_021CED98 + ldr r1, _021D7C9C ; =NNS_G3dGlb + 0x80 mov r0, #0x50 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] - bl FUN_020B849C + bl NNS_G3dGlbFlushP ldr r0, [r4, #4] ldr r0, [r0, #4] bl MOD05_021D7FD0 @@ -892,8 +892,8 @@ _021D7C1C: add sp, #0x80 pop {r3, r4, r5, pc} nop -_021D7C98: .word UNK_021CED20 -_021D7C9C: .word UNK_021CED98 +_021D7C98: .word NNS_G3dGlb + 0x8 +_021D7C9C: .word NNS_G3dGlb + 0x80 _021D7CA0: .word UNK_02105BB8 thumb_func_start MOD05_021D7CA4 diff --git a/arm9/modules/05/asm/mod05_021D9A48.s b/arm9/modules/05/asm/mod05_021D9A48.s index 2e5469f95..85ba30d11 100644 --- a/arm9/modules/05/asm/mod05_021D9A48.s +++ b/arm9/modules/05/asm/mod05_021D9A48.s @@ -82,7 +82,7 @@ _021D9ABE: _021D9AD0: add r0, r4, #0 mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx add r6, r0, #0 bne _021D9AE0 bl ErrorHandling @@ -90,7 +90,7 @@ _021D9AE0: ldr r0, [sp, #0x1c] add r1, r6, #0 add r2, r7, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r5] cmp r5, #0 bne _021D9AF4 @@ -100,7 +100,7 @@ _021D9AF4: ldr r3, [sp, #0x18] add r1, r6, #0 add r2, r7, #0 - bl FUN_020B8110 + bl NNS_G3dAnmObjInit add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} @@ -117,7 +117,7 @@ _021D9B0E: mov r0, #0 pop {r3, pc} _021D9B16: - bl FUN_020B7E28 + bl NNS_G3dRenderObjRemoveAnmObj mov r0, #1 pop {r3, pc} .balign 4, 0 @@ -571,7 +571,7 @@ _021D9E58: add r1, r6, r1 ldr r0, [sp] ldr r1, [r1, #0x10] - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj _021D9E6A: add sp, #0x18 mov r0, #1 @@ -671,7 +671,7 @@ _021D9F12: add r1, r4, r1 ldr r0, [sp, #0xc] ldr r1, [r1, #0x10] - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj mov r0, #1 str r0, [sp] b _021D9F32 @@ -709,7 +709,7 @@ _021D9F54: bne _021D9F6E ldr r1, [r5, #0x10] add r0, r6, #0 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj str r7, [r5, #0x10] ldr r0, [r5, #0x24] bl FreeToHeap @@ -743,7 +743,7 @@ _021D9F90: bne _021D9FAC ldr r1, [r5] add r0, r4, #0 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj mov r0, #0 str r0, [r5] ldr r0, [r5, #0x14] @@ -1320,7 +1320,7 @@ _021DA360: bl MOD05_021D9B04 ldr r0, [r6, #0x14] ldr r1, [sp] - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj _021DA378: add r0, r4, #1 lsl r0, r0, #0x18 diff --git a/arm9/modules/05/asm/mod05_021DB44C.s b/arm9/modules/05/asm/mod05_021DB44C.s index 039db6a9b..6da3dfc50 100644 --- a/arm9/modules/05/asm/mod05_021DB44C.s +++ b/arm9/modules/05/asm/mod05_021DB44C.s @@ -229,21 +229,21 @@ MOD05_021DB5EC: ; 0x021DB5EC add r4, r0, #0 mov r1, #0 mov r2, #0x40 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag add r0, r4, #0 mov r1, #0 mov r2, #0x80 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #2 add r0, r4, #0 mov r1, #0 lsl r2, r2, #8 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #1 add r0, r4, #0 mov r1, #0 lsl r2, r2, #0xa - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag pop {r4, pc} thumb_func_start MOD05_021DB61C diff --git a/arm9/modules/05/asm/mod05_021DBABC.s b/arm9/modules/05/asm/mod05_021DBABC.s index 0481b9ebc..2c2bb7d61 100644 --- a/arm9/modules/05/asm/mod05_021DBABC.s +++ b/arm9/modules/05/asm/mod05_021DBABC.s @@ -51,7 +51,7 @@ _021DBAFA: ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] add r0, r4, #0 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector _021DBB14: add r1, r4, #4 mov r0, #1 @@ -60,7 +60,7 @@ _021DBB14: beq _021DBB26 ldrh r1, [r6, #0x18] add r0, r4, #0 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor _021DBB26: add r4, r4, #1 add r5, r5, #6 @@ -77,7 +77,7 @@ _021DBB26: ldrh r0, [r0, #0x20] ldrh r1, [r1, #0x22] ldr r2, [r2, #0x28] - bl FUN_020B83E0 + bl NNS_G3dGlbMaterialColorDiffAmb _021DBB48: mov r0, #3 lsl r0, r0, #0xa @@ -89,7 +89,7 @@ _021DBB48: ldrh r0, [r0, #0x24] ldrh r1, [r1, #0x26] ldr r2, [r2, #0x2c] - bl FUN_020B83BC + bl NNS_G3dGlbMaterialColorSpecEmi _021DBB60: mov r0, #1 lsl r0, r0, #0xc @@ -109,7 +109,7 @@ _021DBB60: ldr r0, [r0, #0x30] ldr r2, [r2, #0x38] ldr r3, [r3, #0x3c] - bl FUN_020B8390 + bl NNS_G3dGlbPolygonAttr _021DBB88: add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -126,7 +126,7 @@ MOD05_021DBB8C: ; 0x021DBB8C beq _021DBBA4 ldrh r1, [r5, #0x20] add r0, r6, #0 - bl FUN_020BBC34 + bl NNS_G3dMdlSetMdlDiffAll _021DBBA4: mov r0, #2 lsl r0, r0, #8 @@ -134,7 +134,7 @@ _021DBBA4: beq _021DBBB4 ldrh r1, [r5, #0x22] add r0, r6, #0 - bl FUN_020BBBF4 + bl NNS_G3dMdlSetMdlAmbAll _021DBBB4: mov r0, #1 lsl r0, r0, #0xa @@ -142,7 +142,7 @@ _021DBBB4: beq _021DBBC4 ldrh r1, [r5, #0x24] add r0, r6, #0 - bl FUN_020BBBB4 + bl NNS_G3dMdlSetMdlSpecAll _021DBBC4: mov r0, #2 lsl r0, r0, #0xa @@ -150,7 +150,7 @@ _021DBBC4: beq _021DBBD4 ldrh r1, [r5, #0x26] add r0, r6, #0 - bl FUN_020BBB74 + bl NNS_G3dMdlSetMdlEmiAll _021DBBD4: mov r0, #1 lsl r0, r0, #0xc @@ -158,7 +158,7 @@ _021DBBD4: beq _021DBBE4 ldr r1, [r5, #0x30] add r0, r6, #0 - bl FUN_020BBB34 + bl NNS_G3dMdlSetMdlLightEnableFlagAll _021DBBE4: mov r0, #2 lsl r0, r0, #0xc @@ -166,7 +166,7 @@ _021DBBE4: beq _021DBBF4 ldr r1, [r5, #0x34] add r0, r6, #0 - bl FUN_020BBAF4 + bl NNS_G3dMdlSetMdlPolygonModeAll _021DBBF4: mov r0, #1 lsl r0, r0, #0xe @@ -174,7 +174,7 @@ _021DBBF4: beq _021DBC04 ldr r1, [r5, #0x38] add r0, r6, #0 - bl FUN_020BBAB4 + bl NNS_G3dMdlSetMdlCullModeAll _021DBC04: mov r0, #2 lsl r0, r0, #0xe @@ -182,7 +182,7 @@ _021DBC04: beq _021DBC14 ldr r1, [r5, #0x3c] add r0, r6, #0 - bl FUN_020BBA74 + bl NNS_G3dMdlSetMdlPolygonIDAll _021DBC14: mov r0, #1 lsl r0, r0, #0x10 @@ -190,7 +190,7 @@ _021DBC14: beq _021DBC24 ldr r1, [r5, #0x40] add r0, r6, #0 - bl FUN_020BBA34 + bl NNS_G3dMdlSetMdlAlphaAll _021DBC24: mov r1, #2 lsl r1, r1, #0x10 @@ -201,7 +201,7 @@ _021DBC24: lsr r1, r1, #2 add r0, r6, #0 and r1, r2 - bl FUN_020BB9F4 + bl NNS_G3dMdlSetMdlFogEnableFlagAll _021DBC3A: mov r1, #1 lsl r1, r1, #0x12 @@ -212,7 +212,7 @@ _021DBC3A: lsr r1, r1, #4 add r0, r6, #0 and r1, r2 - bl FUN_020BB9B4 + bl NNS_G3dMdlSetMdlDepthTestCondAll _021DBC50: mov r1, #2 lsl r1, r1, #0x12 @@ -223,7 +223,7 @@ _021DBC50: lsr r1, r1, #6 add r0, r6, #0 and r1, r2 - bl FUN_020BB974 + bl NNS_G3dMdlSetMdl1DotAll _021DBC66: mov r1, #1 lsl r1, r1, #0x14 @@ -234,7 +234,7 @@ _021DBC66: lsr r1, r1, #8 add r0, r6, #0 and r1, r2 - bl FUN_020BB934 + bl NNS_G3dMdlSetMdlFarClipAll _021DBC7C: mov r1, #2 lsl r1, r1, #0x14 @@ -245,7 +245,7 @@ _021DBC7C: lsr r1, r1, #0xa add r0, r6, #0 and r1, r2 - bl FUN_020BB8F4 + bl NNS_G3dMdlSetMdlXLDepthUpdateAll _021DBC92: pop {r4, r5, r6, pc} @@ -268,7 +268,7 @@ MOD05_021DBC94: ; 0x021DBC94 ldrsh r1, [r5, r4] ldrsh r2, [r2, r4] ldrsh r3, [r3, r4] - bl FUN_020B8418 + bl NNS_G3dGlbLightVector pop {r4, r5, r6, pc} thumb_func_start MOD05_021DBCBC @@ -280,7 +280,7 @@ MOD05_021DBCBC: ; 0x021DBCBC strh r2, [r4, r3] add r0, r1, #0 ldrh r1, [r4, r3] - bl FUN_020B8404 + bl NNS_G3dGlbLightColor pop {r4, pc} thumb_func_start MOD05_021DBCD0 diff --git a/arm9/modules/05/asm/mod05_021DBEF4.s b/arm9/modules/05/asm/mod05_021DBEF4.s index 1d56d13e1..f65de9d84 100644 --- a/arm9/modules/05/asm/mod05_021DBEF4.s +++ b/arm9/modules/05/asm/mod05_021DBEF4.s @@ -133,7 +133,7 @@ _021DBFA8: str r0, [r1, r5] add r0, r1, #0 ldr r0, [r0, r5] - bl FUN_020BC0FC + bl NNS_G3dGetTex add r1, r6, r5 str r0, [r1, #8] add r0, r4, #0 diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index 1714cbec3..b637fb932 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -1220,7 +1220,7 @@ _021DC998: str r2, [r1, r0] ldr r1, [r4, #0xc] add r0, r3, #4 - ldr r6, _021DCA38 ; =UNK_021CEF70 + ldr r6, _021DCA38 ; =NNS_G3dGlb + 0x258 add r5, r1, r0 ldmia r6!, {r0, r1} stmia r5!, {r0, r1} @@ -1271,7 +1271,7 @@ _021DCA30: pop {r4, r5, r6, pc} .balign 4, 0 _021DCA34: .word 0x00000F48 -_021DCA38: .word UNK_021CEF70 +_021DCA38: .word NNS_G3dGlb + 0x258 _021DCA3C: .word 0x00000F58 _021DCA40: .word 0x0400000C @@ -1897,7 +1897,7 @@ MOD05_021DCECC: ; 0x021DCECC bl NARC_AllocAndReadWholeMember add r1, sp, #0x14 str r0, [sp] - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, [sp, #0x14] mov r0, #2 ldr r1, [r1, #0xc] @@ -1934,7 +1934,7 @@ MOD05_021DCF14: ; 0x021DCF14 bl NARC_AllocAndReadWholeMember add r1, sp, #0x14 str r0, [sp, #8] - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r3, [sp, #0x14] mov r0, #0 str r0, [sp] @@ -1985,7 +1985,7 @@ MOD05_021DCF68: ; 0x021DCF68 _021DCFA0: ldr r0, [sp, #0x14] add r1, sp, #0x18 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r3, [sp, #0x18] mov r0, #0 str r0, [sp] @@ -2285,7 +2285,7 @@ MOD05_021DD180: ; 0x021DD180 ldr r0, [sp, #0xc] lsl r1, r1, #0x12 bl FX_Div - ldr r3, _021DD2B0 ; =UNK_021CEF70 + ldr r3, _021DD2B0 ; =NNS_G3dGlb + 0x258 str r0, [sp, #0xc] ldmia r3!, {r0, r1} add r2, sp, #0x14 @@ -2391,7 +2391,7 @@ _021DD2A4: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 -_021DD2B0: .word UNK_021CEF70 +_021DD2B0: .word NNS_G3dGlb + 0x258 _021DD2B4: .word 0x00000F4C _021DD2B8: .word 0xFFFFF000 diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index c8dbfb165..d8a138884 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1652,7 +1652,7 @@ MOD05_021E40F0: ; 0x021E40F0 bl DC_FlushRange add r0, r6, #0 mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 @@ -1671,7 +1671,7 @@ MOD05_021E4118: ; 0x021E4118 bl DC_FlushRange add r0, r6, #0 mov r1, #1 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation add r1, r0, #0 add r0, r5, #0 add r2, r4, #0 diff --git a/arm9/modules/05/asm/mod05_021E4AE4.s b/arm9/modules/05/asm/mod05_021E4AE4.s index b05969ea8..635d46f69 100644 --- a/arm9/modules/05/asm/mod05_021E4AE4.s +++ b/arm9/modules/05/asm/mod05_021E4AE4.s @@ -573,7 +573,7 @@ _021E4EC0: add r0, r4, #0 bl FUN_0201F8E0 mov r1, #1 - bl FUN_020BB9F4 + bl NNS_G3dMdlSetMdlFogEnableFlagAll add r0, r4, #0 bl FUN_0201F8E0 bl MOD05_021DB5EC @@ -969,7 +969,7 @@ MOD05_021E5198: ; 0x021E5198 ldr r0, [r4] add r6, r1, #0 add r5, r2, #0 - bl FUN_020BC0FC + bl NNS_G3dGetTex cmp r0, #0 beq _021E51C8 bl FUN_0201B254 @@ -979,13 +979,13 @@ MOD05_021E5198: ; 0x021E5198 ldr r1, [r0, #8] bl DC_FlushRange ldr r0, [r4] - bl FUN_020BB59C + bl NNS_G3dResDefaultSetup cmp r0, #0 bne _021E51C8 bl ErrorHandling _021E51C8: ldr r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -997,7 +997,7 @@ _021E51C8: _021E51E0: ldr r1, [r5] add r0, r6, #0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit pop {r4, r5, r6, pc} .balign 4, 0 @@ -1038,7 +1038,7 @@ MOD05_021E5224: ; 0x021E5224 add r2, r3, #0 bl MOD05_021E4C6C str r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r4, #4] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -1046,7 +1046,7 @@ MOD05_021E5224: ; 0x021E5224 add r0, r0, r1 str r0, [r4, #8] ldr r0, [r4] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r4, #0xc] cmp r0, #0 beq _021E525A @@ -1071,17 +1071,17 @@ MOD05_021E5260: ; 0x021E5260 bl MOD05_021E4C6C str r0, [r5] mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx str r0, [r5, #4] ldr r1, [r5, #4] ldr r2, [r4, #8] add r0, r6, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r5, #8] ldr r1, [r5, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit pop {r4, r5, r6, pc} .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021E55BC.s b/arm9/modules/05/asm/mod05_021E55BC.s index 43186ebe4..9c3842616 100644 --- a/arm9/modules/05/asm/mod05_021E55BC.s +++ b/arm9/modules/05/asm/mod05_021E55BC.s @@ -207,7 +207,7 @@ _021E5716: lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 diff --git a/arm9/modules/05/asm/mod05_021E577C.s b/arm9/modules/05/asm/mod05_021E577C.s index bf86c095f..6ae8f9eda 100644 --- a/arm9/modules/05/asm/mod05_021E577C.s +++ b/arm9/modules/05/asm/mod05_021E577C.s @@ -186,7 +186,7 @@ _021E58B2: lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 diff --git a/arm9/modules/05/asm/mod05_021E5918.s b/arm9/modules/05/asm/mod05_021E5918.s index 0322f00ee..8459b0214 100644 --- a/arm9/modules/05/asm/mod05_021E5918.s +++ b/arm9/modules/05/asm/mod05_021E5918.s @@ -188,7 +188,7 @@ _021E5A4E: lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x5c] - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 diff --git a/arm9/modules/05/asm/mod05_021E5AB4.s b/arm9/modules/05/asm/mod05_021E5AB4.s index ff3779f59..3b0d6a5f7 100644 --- a/arm9/modules/05/asm/mod05_021E5AB4.s +++ b/arm9/modules/05/asm/mod05_021E5AB4.s @@ -131,13 +131,13 @@ MOD05_021E5B80: ; 0x021E5B80 add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 @@ -146,7 +146,7 @@ MOD05_021E5B80: ; 0x021E5B80 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C @@ -166,7 +166,7 @@ MOD05_021E5BF8: ; 0x021E5BF8 ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} @@ -209,7 +209,7 @@ _021E5C40: bne _021E5C40 ldr r0, [r5] str r0, [r3] - bl FUN_020B8344 + bl NNS_G3dGlbGetInvV mov r2, #0 add r5, r0, #0 add r0, sp, #0x24 diff --git a/arm9/modules/05/asm/mod05_021E5C8C.s b/arm9/modules/05/asm/mod05_021E5C8C.s index ab321b6f4..dc59dcec9 100644 --- a/arm9/modules/05/asm/mod05_021E5C8C.s +++ b/arm9/modules/05/asm/mod05_021E5C8C.s @@ -129,13 +129,13 @@ MOD05_021E5D50: ; 0x021E5D50 add r0, r4, #4 ldr r1, [r2, #0x1c] ldr r2, [r2, #0x10] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x1c] ldr r2, [r3, #0x10] ldr r3, [r3, #0x14] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 @@ -144,7 +144,7 @@ MOD05_021E5D50: ; 0x021E5D50 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C @@ -164,7 +164,7 @@ MOD05_021E5DC8: ; 0x021E5DC8 ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021E5E10.s b/arm9/modules/05/asm/mod05_021E5E10.s index e2e6814ec..f5f3ef70b 100644 --- a/arm9/modules/05/asm/mod05_021E5E10.s +++ b/arm9/modules/05/asm/mod05_021E5E10.s @@ -165,13 +165,13 @@ MOD05_021E5F18: ; 0x021E5F18 add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 @@ -180,7 +180,7 @@ MOD05_021E5F18: ; 0x021E5F18 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C @@ -200,7 +200,7 @@ MOD05_021E5F90: ; 0x021E5F90 ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021E7C00.s b/arm9/modules/05/asm/mod05_021E7C00.s index 2e968e4fb..686fe6982 100644 --- a/arm9/modules/05/asm/mod05_021E7C00.s +++ b/arm9/modules/05/asm/mod05_021E7C00.s @@ -448,14 +448,14 @@ MOD05_021E7F10: ; 0x021E7F10 add r4, r3, #0 bl MOD05_021F4BD0 ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r1, r0, r1 add r0, r5, #0 str r1, [r4] - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit pop {r3, r4, r5, pc} .balign 4, 0 @@ -466,18 +466,18 @@ MOD05_021E7F34: ; 0x021E7F34 add r0, r1, #0 add r4, r2, #0 add r5, r3, #0 - bl FUN_020B8474 - ldr r1, _021E7FB4 ; =UNK_021CEDD4 + bl NNS_G3dGlbSetBaseTrans + ldr r1, _021E7FB4 ; =NNS_G3dGlb + 0xBC add r0, r4, #0 bl MI_Copy36B - ldr r1, _021E7FB8 ; =UNK_021CED98 + ldr r1, _021E7FB8 ; =NNS_G3dGlb + 0x80 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r5, #0 str r2, [r1, #0x7c] - bl FUN_020B844C - bl FUN_020B849C + bl NNS_G3dGlbSetBaseScale + bl NNS_G3dGlbFlushP add r2, sp, #0 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] @@ -511,7 +511,7 @@ _021E7F98: ldrh r2, [r2, #2] add r0, r7, #0 add r1, r5, #0 - bl FUN_020BAFB8 + bl NNS_G3dDraw1Mat1Shp add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -522,8 +522,8 @@ _021E7F98: _021E7FB0: pop {r3, r4, r5, r6, r7, pc} nop -_021E7FB4: .word UNK_021CEDD4 -_021E7FB8: .word UNK_021CED98 +_021E7FB4: .word NNS_G3dGlb + 0xBC +_021E7FB8: .word NNS_G3dGlb + 0x80 thumb_func_start MOD05_021E7FBC MOD05_021E7FBC: ; 0x021E7FBC diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index fd20ac806..ebf46a487 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -12073,7 +12073,7 @@ _021EE78C: bne _021EE7C4 sub r0, #0x10 ldr r0, [r2, r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet add r7, r0, #0 ldrh r0, [r7, #0xe] add r0, r7, r0 @@ -13883,8 +13883,8 @@ MOD05_021EF514: ; 0x021EF514 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 bl FUN_020162FC - bl FUN_020AF6A4 - bl FUN_020AFA30 + bl NNS_GfdResetLnkTexVramState + bl NNS_GfdResetLnkPlttVramState mov r4, #0 add r6, r5, #4 mov r7, #0x30 @@ -14531,7 +14531,7 @@ _021EF9B0: _021EF9B6: ldr r0, [r4, #0xc] ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet add r5, r0, #0 ldrb r0, [r5, #9] cmp r0, #1 @@ -14547,7 +14547,7 @@ _021EF9CA: _021EF9D8: ldr r0, [r4, #8] add r1, r5, #0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit ldr r0, [r4, #0x18] mov r1, #1 str r1, [r0] @@ -14621,14 +14621,14 @@ MOD05_021EFA40: ; 0x021EFA40 bl ErrorHandling _021EFA6A: ldr r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrb r0, [r0, #9] cmp r0, #1 beq _021EFA7A bl ErrorHandling _021EFA7A: ldr r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -14638,7 +14638,7 @@ _021EFA7A: _021EFA8E: add r0, r5, #0 add r1, r4, #0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit add r0, r4, #0 pop {r3, r4, r5, pc} .balign 4, 0 @@ -21368,7 +21368,7 @@ MOD05_021F2E70: ; 0x021F2E70 add r0, r4, #0 bl FUN_0201F8E0 mov r1, #1 - bl FUN_020BB9F4 + bl NNS_G3dMdlSetMdlFogEnableFlagAll add r0, r4, #0 bl FUN_0201F8E0 bl MOD05_021DB5EC @@ -22303,7 +22303,7 @@ _021F3596: mov r2, #0 bl MOD05_021F2DB0 str r0, [r5, #0x10] - bl FUN_020BC0FC + bl NNS_G3dGetTex add r4, r0, #0 add r0, r6, #0 bl MOD05_021F2E00 @@ -25006,7 +25006,7 @@ _021F49E4: str r0, [r5, r1] sub r0, r1, #4 ldr r0, [r5, r0] - bl FUN_020BC0FC + bl NNS_G3dGetTex ldr r1, _021F4BA8 ; =0x000008A4 str r0, [r5, r1] ldrh r0, [r7, #8] @@ -25014,7 +25014,7 @@ _021F49E4: beq _021F4A2C sub r0, r1, #4 ldr r0, [r5, r0] - bl FUN_020BC0FC + bl NNS_G3dGetTex ldr r1, _021F4BB0 ; =0x000008A8 str r0, [r5, r1] b _021F4A32 @@ -25099,7 +25099,7 @@ _021F4ABE: cmp r6, r0 bge _021F4AEC ldr r0, [r4, #4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet add r1, r0, #0 ldrh r2, [r1, #0xe] ldr r3, [r7, #4] @@ -25137,7 +25137,7 @@ _021F4B10: mov r2, #4 bl NARC_AllocAndReadWholeMember str r0, [r5, #4] - bl FUN_020BC0FC + bl NNS_G3dGetTex add r4, r0, #0 beq _021F4B46 bl FUN_0201B3C4 @@ -26120,7 +26120,7 @@ MOD05_021F5268: ; 0x021F5268 add r2, r5, #0 bl UncompressFromNarc str r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r4, #4] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -26128,7 +26128,7 @@ MOD05_021F5268: ; 0x021F5268 add r0, r0, r1 str r0, [r4, #8] ldr r0, [r4] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r4, #0xc] cmp r0, #0 beq _021F52A4 @@ -26166,18 +26166,18 @@ MOD05_021F52C8: ; 0x021F52C8 beq _021F52F8 add r1, sp, #4 add r2, sp, #0 - bl FUN_020B7CF0 - ldr r1, _021F5314 ; =UNK_021064BC + bl NNS_G3dTexReleaseTexKey + ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram ldr r0, [sp, #4] ldr r1, [r1] blx r1 - ldr r1, _021F5314 ; =UNK_021064BC + ldr r1, _021F5314 ; =NNS_GfdDefaultFuncFreeTexVram ldr r0, [sp] ldr r1, [r1] blx r1 ldr r0, [r4, #0xc] - bl FUN_020B7C58 - ldr r1, _021F5318 ; =UNK_021064C4 + bl NNS_G3dPlttReleasePlttKey + ldr r1, _021F5318 ; =NNS_GfdDefaultFuncFreePlttVram ldr r1, [r1] blx r1 _021F52F8: @@ -26196,8 +26196,8 @@ _021F5306: add sp, #8 pop {r4, pc} nop -_021F5314: .word UNK_021064BC -_021F5318: .word UNK_021064C4 +_021F5314: .word NNS_GfdDefaultFuncFreeTexVram +_021F5318: .word NNS_GfdDefaultFuncFreePlttVram thumb_func_start MOD05_021F531C MOD05_021F531C: ; 0x021F531C @@ -26241,7 +26241,7 @@ MOD05_021F5358: ; 0x021F5358 beq _021F5376 add r0, r1, #0 ldr r1, [r4, #8] - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj ldr r0, [r4, #0x10] cmp r0, #0 bne _021F5376 @@ -26343,7 +26343,7 @@ MOD05_021F5400: ; 0x021F5400 bl memset ldr r1, [r5, #8] add r0, r4, #0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit mov r0, #1 str r0, [r4, #0x6c] lsl r0, r0, #0xc @@ -26354,11 +26354,11 @@ MOD05_021F5400: ; 0x021F5400 thumb_func_start MOD05_021F5424 MOD05_021F5424: ; 0x021F5424 - ldr r3, _021F542C ; =FUN_020B7EFC + ldr r3, _021F542C ; =NNS_G3dRenderObjAddAnmObj ldr r1, [r1, #8] bx r3 nop -_021F542C: .word FUN_020B7EFC +_021F542C: .word NNS_G3dRenderObjAddAnmObj thumb_func_start MOD05_021F5430 MOD05_021F5430: ; 0x021F5430 @@ -26471,17 +26471,17 @@ MOD05_021F54EC: ; 0x021F54EC add r0, r2, #0 mov r1, #0 add r6, r3, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx str r0, [r5, #4] ldr r1, [r5, #4] ldr r2, [r4, #8] add r0, r6, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r5, #8] ldr r1, [r5, #4] ldr r2, [r4, #8] ldr r3, [r4, #0xc] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit pop {r4, r5, r6, pc} thumb_func_start MOD05_021F5518 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 62cd7742e..9679d0e05 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -2393,7 +2393,7 @@ MOD06_0223A828: ; 0x0223A828 str r1, [r0] mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r4, #0x40 add r0, r4, #0 bl MOD06_0223A400 @@ -2401,7 +2401,7 @@ MOD06_0223A828: ; 0x0223A828 mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N _0223A860: add sp, #4 pop {r3, r4, pc} @@ -23537,11 +23537,11 @@ MOD06_02244F84: ; 0x02244F84 add r7, r0, #0 add r0, r5, #0 mov r1, #1 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation str r0, [sp] add r0, r7, #0 mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation mov r1, #0x32 add r5, r0, #0 add r0, r4, #0 @@ -24040,7 +24040,7 @@ _02245392: ldr r1, [r5, #0x2c] bl MOD05_021F4BD0 ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -28490,7 +28490,7 @@ MOD06_02247544: ; 0x02247544 bl NARC_AllocAndReadWholeMember add r1, r5, #0 add r4, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, [r5] mov r0, #3 ldr r1, [r1, #0xc] @@ -28513,7 +28513,7 @@ MOD06_0224756C: ; 0x0224756C bl NARC_AllocAndReadWholeMember add r1, r4, #0 add r6, r0, #0 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r3, [r4] mov r0, #0 str r0, [sp] @@ -28551,7 +28551,7 @@ MOD06_022475A4: ; 0x022475A4 bl NARC_AllocAndReadWholeMember add r1, r4, #0 add r6, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r3, [r4] add r0, r5, #0 add r2, r3, #0 @@ -28870,7 +28870,7 @@ MOD06_02247808: ; 0x02247808 bl FUN_020094F0 bl FUN_02009C5C mov r1, #1 - bl FUN_020B1A14 + bl NNS_G2dGetImageLocation mov r1, #0x32 add r5, r0, #0 add r0, r4, #0 @@ -28923,7 +28923,7 @@ MOD06_02247860: ; 0x02247860 add r1, r6, #0 bl FUN_02009E54 mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r5, r0, #0 add r0, r4, #0 mov r1, #0x20 @@ -32641,12 +32641,12 @@ MOD06_022494E4: ; 0x022494E4 ldr r0, [r5, r0] mov r1, #1 lsl r2, r2, #0x10 - bl FUN_020BC02C + bl NNSi_G3dModifyPolygonAttrMask mov r0, #0x49 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r4, #0 - bl FUN_020BBA34 + bl NNS_G3dMdlSetMdlAlphaAll pop {r3, r4, r5, pc} thumb_func_start MOD06_02249508 @@ -34087,10 +34087,10 @@ _0224A000: ldr r0, [r4, #0x18] mov r1, #1 lsl r2, r2, #0x10 - bl FUN_020BC02C + bl NNSi_G3dModifyPolygonAttrMask ldr r0, [r4, #0x18] ldr r1, [r4, #0xc] - bl FUN_020BBA34 + bl NNS_G3dMdlSetMdlAlphaAll ldr r0, [r4, #0x14] add r1, sp, #0x30 add r2, sp, #0 @@ -35048,13 +35048,13 @@ MOD06_0224A710: ; 0x0224A710 add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #0x14] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #0x14] add r0, r4, #0 add r0, #0x18 @@ -35063,7 +35063,7 @@ MOD06_0224A710: ; 0x0224A710 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj ldr r0, [r5, #0x18] bl FUN_02058448 str r0, [r5, #4] @@ -35108,7 +35108,7 @@ MOD06_0224A7C8: ; 0x0224A7C8 ldr r4, [r1, #0x1c] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} @@ -36429,13 +36429,13 @@ MOD06_0224B188: ; 0x0224B188 add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 @@ -36444,7 +36444,7 @@ MOD06_0224B188: ; 0x0224B188 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C @@ -36464,7 +36464,7 @@ MOD06_0224B200: ; 0x0224B200 ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} @@ -36635,13 +36635,13 @@ MOD06_0224B324: ; 0x0224B324 add r0, r4, #4 ldr r1, [r2, #0x18] ldr r2, [r2, #0xc] - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4] ldr r3, [r5, #8] ldr r1, [r3, #0x18] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #8] add r0, r4, #0 add r0, #0x18 @@ -36650,7 +36650,7 @@ MOD06_0224B324: ; 0x0224B324 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C @@ -36670,7 +36670,7 @@ MOD06_0224B39C: ; 0x0224B39C ldr r4, [r1] ldr r1, [r4] add r0, r4, #4 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj add r0, r4, #0 bl MOD05_021E4C00 pop {r4, pc} @@ -38617,14 +38617,14 @@ _0224C328: bl MOD05_021F4BD0 str r0, [sp, #0x18] ldr r0, [r6] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r7, r0, r1 ldr r0, [sp, #0x18] ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -38901,7 +38901,7 @@ _0224C590: ldr r1, [r5, #0x2c] bl MOD05_021F4BD0 ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r2, sp, #0x18 mov r3, #0 @@ -43012,7 +43012,7 @@ _0224E604: ldr r1, [r6, #0x2c] bl MOD05_021F4BD0 ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 1110fa5c9..e810c6200 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -3155,7 +3155,7 @@ _0221380C: .word 0x00000B58 thumb_func_start MOD07_02213810 MOD07_02213810: ; 0x02213810 push {r4, lr} - ldr r3, _02213830 ; =UNK_021064B8 + ldr r3, _02213830 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0 ldr r3, [r3] blx r3 @@ -3169,12 +3169,12 @@ _02213828: lsr r0, r0, #0xd pop {r4, pc} nop -_02213830: .word UNK_021064B8 +_02213830: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start MOD07_02213834 MOD07_02213834: ; 0x02213834 push {r4, lr} - ldr r3, _02213854 ; =UNK_021064C0 + ldr r3, _02213854 ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #1 ldr r3, [r3] blx r3 @@ -3188,7 +3188,7 @@ _0221384C: lsr r0, r0, #0xd pop {r4, pc} nop -_02213854: .word UNK_021064C0 +_02213854: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD07_02213858 MOD07_02213858: ; 0x02213858 @@ -3319,7 +3319,7 @@ MOD07_02213924: ; 0x02213924 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x10 add r4, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r2, [sp, #0x10] mov r0, #3 ldr r1, [r2, #0xc] diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 8004f1a48..0ff32867e 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -8063,7 +8063,7 @@ MOD08_02215A44: ; 0x02215A44 cmp r0, #0 ble _02215A62 bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera _02215A62: bl FUN_02013388 _02215A66: @@ -8072,7 +8072,7 @@ _02215A66: thumb_func_start MOD08_02215A68 MOD08_02215A68: ; 0x02215A68 push {r4, lr} - ldr r3, _02215A80 ; =UNK_021064B8 + ldr r3, _02215A80 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0 ldr r3, [r3] blx r3 @@ -8082,12 +8082,12 @@ MOD08_02215A68: ; 0x02215A68 lsr r0, r0, #0xd pop {r4, pc} nop -_02215A80: .word UNK_021064B8 +_02215A80: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start MOD08_02215A84 MOD08_02215A84: ; 0x02215A84 push {r4, lr} - ldr r3, _02215A9C ; =UNK_021064C0 + ldr r3, _02215A9C ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #0 ldr r3, [r3] blx r3 @@ -8097,7 +8097,7 @@ MOD08_02215A84: ; 0x02215A84 lsr r0, r0, #0xd pop {r4, pc} nop -_02215A9C: .word UNK_021064C0 +_02215A9C: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD08_02215AA0 MOD08_02215AA0: ; 0x02215AA0 diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 63e3d1e0d..a30852473 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2185,7 +2185,7 @@ MOD09_02212F8C: ; 0x02212F8C bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x10 add r4, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r1, [sp, #0x10] add r0, r5, #0 add r1, #0xc @@ -2199,7 +2199,7 @@ MOD09_02212F8C: ; 0x02212F8C bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x10 add r4, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r1, [sp, #0x10] add r0, r5, #0 add r1, #0xc @@ -3409,7 +3409,7 @@ _02213976: bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0xc add r7, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -14010,7 +14010,7 @@ MOD09_022191C0: ; 0x022191C0 bl AllocAndReadWholeNarcMemberByIdPair add r1, sp, #0x10 add r4, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r1, [sp, #0x10] add r0, r5, #0 add r1, #0xc diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 1bc8e471d..42f3f7546 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -3061,14 +3061,14 @@ _0222EFD8: .word FUN_020223BC thumb_func_start MOD11_0222EFDC MOD11_0222EFDC: ; 0x0222EFDC push {r3, r4, r5, lr} - ldr r3, _0222F014 ; =UNK_021064B8 + ldr r3, _0222F014 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _0222F018 ; =UNK_021064C0 + ldr r3, _0222F018 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0 add r4, r0, #0 ldr r3, [r3] @@ -3087,8 +3087,8 @@ _0222F00C: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop -_0222F014: .word UNK_021064B8 -_0222F018: .word UNK_021064C0 +_0222F014: .word NNS_GfdDefaultFuncAllocTexVram +_0222F018: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD11_0222F01C MOD11_0222F01C: ; 0x0222F01C diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 01de211a4..7d0a23a34 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -744,14 +744,14 @@ MOD12_0222DC80: ; 0x0222DC80 thumb_func_start MOD12_0222DCAC MOD12_0222DCAC: ; 0x0222DCAC push {r3, r4, r5, lr} - ldr r3, _0222DCE4 ; =UNK_021064B8 + ldr r3, _0222DCE4 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _0222DCE8 ; =UNK_021064C0 + ldr r3, _0222DCE8 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0 add r4, r0, #0 ldr r3, [r3] @@ -770,8 +770,8 @@ _0222DCDC: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop -_0222DCE4: .word UNK_021064B8 -_0222DCE8: .word UNK_021064C0 +_0222DCE4: .word NNS_GfdDefaultFuncAllocTexVram +_0222DCE8: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD12_0222DCEC MOD12_0222DCEC: ; 0x0222DCEC @@ -3999,14 +3999,14 @@ MOD12_0222F6B4: ; 0x0222F6B4 thumb_func_start MOD12_0222F6E0 MOD12_0222F6E0: ; 0x0222F6E0 push {r3, r4, r5, lr} - ldr r3, _0222F718 ; =UNK_021064B8 + ldr r3, _0222F718 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _0222F71C ; =UNK_021064C0 + ldr r3, _0222F71C ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0 add r4, r0, #0 ldr r3, [r3] @@ -4025,8 +4025,8 @@ _0222F710: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop -_0222F718: .word UNK_021064B8 -_0222F71C: .word UNK_021064C0 +_0222F718: .word NNS_GfdDefaultFuncAllocTexVram +_0222F71C: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD12_0222F720 MOD12_0222F720: ; 0x0222F720 @@ -6350,7 +6350,7 @@ MOD12_02230A40: ; 0x02230A40 thumb_func_start MOD12_02230A60 MOD12_02230A60: ; 0x02230A60 push {r4, lr} - ldr r3, _02230A78 ; =UNK_021064B8 + ldr r3, _02230A78 ; =NNS_GfdDefaultFuncAllocTexVram mov r2, #0 ldr r3, [r3] blx r3 @@ -6360,12 +6360,12 @@ MOD12_02230A60: ; 0x02230A60 lsr r0, r0, #0xd pop {r4, pc} nop -_02230A78: .word UNK_021064B8 +_02230A78: .word NNS_GfdDefaultFuncAllocTexVram thumb_func_start MOD12_02230A7C MOD12_02230A7C: ; 0x02230A7C push {r4, lr} - ldr r3, _02230A94 ; =UNK_021064C0 + ldr r3, _02230A94 ; =NNS_GfdDefaultFuncAllocPlttVram mov r2, #0 ldr r3, [r3] blx r3 @@ -6375,7 +6375,7 @@ MOD12_02230A7C: ; 0x02230A7C lsr r0, r0, #0xd pop {r4, pc} nop -_02230A94: .word UNK_021064C0 +_02230A94: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD12_02230A98 MOD12_02230A98: ; 0x02230A98 @@ -42062,14 +42062,14 @@ _02241B08: .word 0x00000133 thumb_func_start MOD12_02241B0C MOD12_02241B0C: ; 0x02241B0C push {r3, r4, r5, lr} - ldr r3, _02241B44 ; =UNK_021064B8 + ldr r3, _02241B44 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _02241B48 ; =UNK_021064C0 + ldr r3, _02241B48 ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0 add r4, r0, #0 ldr r3, [r3] @@ -42088,8 +42088,8 @@ _02241B3C: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop -_02241B44: .word UNK_021064B8 -_02241B48: .word UNK_021064C0 +_02241B44: .word NNS_GfdDefaultFuncAllocTexVram +_02241B48: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_start MOD12_02241B4C MOD12_02241B4C: ; 0x02241B4C diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s index 0e89d90f9..5aee0b463 100644 --- a/arm9/modules/13/asm/module_13_arm2.s +++ b/arm9/modules/13/asm/module_13_arm2.s @@ -25937,27 +25937,27 @@ _022341D8: .word 0x0000A001 arm_func_start MOD13_022341DC MOD13_022341DC: ; 0x022341DC - ldr ip, _022341E4 ; =FUN_020C01A0 + ldr ip, _022341E4 ; =NNS_SndMain bx ip .align 2, 0 -_022341E4: .word FUN_020C01A0 +_022341E4: .word NNS_SndMain arm_func_start MOD13_022341E8 MOD13_022341E8: ; 0x022341E8 ldr r0, _02234200 ; =0x02243154 - ldr ip, _02234204 ; =FUN_020C10A4 + ldr ip, _02234204 ; =NNS_SndPlayerStopSeq ldr r0, [r0] mov r1, #0 add r0, r0, #0x90 bx ip .align 2, 0 _02234200: .word MOD13_02243154 -_02234204: .word FUN_020C10A4 +_02234204: .word NNS_SndPlayerStopSeq arm_func_start MOD13_02234208 MOD13_02234208: ; 0x02234208 ldr r2, _02234224 ; =0x02243154 - ldr ip, _02234228 ; =FUN_020C0EA4 + ldr ip, _02234228 ; =NNS_SndPlayerSetTrackPitch ldr r3, [r2] mov r2, r1 mov r1, r0 @@ -25965,32 +25965,32 @@ MOD13_02234208: ; 0x02234208 bx ip .align 2, 0 _02234224: .word MOD13_02243154 -_02234228: .word FUN_020C0EA4 +_02234228: .word NNS_SndPlayerSetTrackPitch arm_func_start MOD13_0223422C MOD13_0223422C: ; 0x0223422C ldr r2, _02234244 ; =0x02243154 mov r1, r0 ldr r0, [r2] - ldr ip, _02234248 ; =FUN_020C0F40 + ldr ip, _02234248 ; =NNS_SndPlayerSetVolume add r0, r0, #0x90 bx ip .align 2, 0 _02234244: .word MOD13_02243154 -_02234248: .word FUN_020C0F40 +_02234248: .word NNS_SndPlayerSetVolume arm_func_start MOD13_0223424C MOD13_0223424C: ; 0x0223424C ldr r1, _02234268 ; =0x02243154 mov r2, r0 ldr r0, [r1] - ldr ip, _0223426C ; =FUN_020C3888 + ldr ip, _0223426C ; =NNS_SndArcPlayerStartSeqArc mov r1, #0 add r0, r0, #0x90 bx ip .align 2, 0 _02234268: .word MOD13_02243154 -_0223426C: .word FUN_020C3888 +_0223426C: .word NNS_SndArcPlayerStartSeqArc arm_func_start MOD13_02234270 MOD13_02234270: ; 0x02234270 @@ -26024,17 +26024,17 @@ MOD13_022342A0: ; 0x022342A0 ldr r1, _0223432C ; =0x02243154 ldr r1, [r1] str r0, [r1, #0x94] - bl SDAT_Init + bl NNS_SndInit ldr r0, _0223432C ; =0x02243154 ldr r0, [r0] ldr r1, [r0, #0x94] - bl FUN_020C2444 + bl NNS_SndArcInitOnMemory mov r0, #0 - bl FUN_020C39CC + bl NNS_SndArcPlayerSetup ldr r0, _0223432C ; =0x02243154 ldr r0, [r0] add r0, r0, #0x90 - bl FUN_020C0F80 + bl NNS_SndHandleInit mov r0, #0 ldr r1, _02234334 ; =MOD13_022341DC mov r2, r0 @@ -33219,7 +33219,7 @@ MOD13_0223A440: ; 0x0223A440 str r1, [sp, #0xc] ldrb r1, [r4, #0x36] ldrb r2, [r4, #0x37] - bl FUN_020B5E50 + bl NNS_G2dArrangeOBJ1D add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -33245,7 +33245,7 @@ MOD13_0223A4F0: ; 0x0223A4F0 str lr, [sp, #8] add r0, r0, #0x20 str ip, [sp, #0xc] - bl FUN_020B7168 + bl NNSi_G2dTextCanvasDrawTextRect add sp, sp, #0x14 ldmia sp!, {pc} @@ -33271,14 +33271,14 @@ _0223A564: ldr r0, [r0] add r5, r0, r4 mov r0, r5 - bl FUN_020B5CE4 + bl NNS_G2dFontFindGlyphIndex mov r1, r0 ldr r0, _0223A5EC ; =0x0000FFFF cmp r1, r0 ldreq r0, [r5] ldreqh r1, [r0, #2] mov r0, r5 - bl FUN_020B5C88 + bl NNS_G2dFontGetCharWidthsFromIndex ldrh r1, [r5, #8] ldrh r2, [r7] ldr r3, [sp, #8] @@ -33319,7 +33319,7 @@ MOD13_0223A5F0: ; 0x0223A5F0 mla r1, ip, r3, lr mov r3, r2 mov r2, r4 - bl FUN_020B63CC + bl NNS_G2dCharCanvasDrawChar add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 @@ -33334,7 +33334,7 @@ MOD13_0223A634: ; 0x0223A634 str lr, [sp] add r0, r0, #0x20 str ip, [sp, #4] - bl FUN_020B7218 + bl NNSi_G2dTextCanvasDrawText add sp, sp, #0xc ldmia sp!, {pc} @@ -33504,7 +33504,7 @@ _0223A88C: mov r0, r6 mov r2, r4 mov r3, r5 - bl FUN_020B6388 + bl NNS_G2dCharCanvasInitForBG ldr r1, _0223A954 ; =0x022431A4 mov r0, #0xc ldr r2, [r1] @@ -33533,7 +33533,7 @@ _0223A8E0: str r7, [sp, #8] mov r4, #0xf str r4, [sp, #0xc] - bl FUN_020B6240 + bl NNS_G2dMapScrToCharText mov r0, r6 mov r1, #0 bl MOD13_0223A4D8 @@ -33601,7 +33601,7 @@ MOD13_0223A9A4: ; 0x0223A9A4 mov r0, r6 strh r1, [r4, #0x34] mov r1, r5 - bl FUN_020B6180 + bl NNSi_G2dCalcRequiredOBJ ldr r1, [sp, #0x20] cmp r7, #1 str r0, [r1] @@ -33614,7 +33614,7 @@ MOD13_0223A9A4: ; 0x0223A9A4 mov r2, r6 mov r3, r5 add r1, ip, r7, lsl #7 - bl FUN_020B62F8 + bl NNS_G2dCharCanvasInitForOBJ1D ldr r2, [r4, #0x18] mov r0, r4 mov r1, #0 @@ -33694,7 +33694,7 @@ _0223AB20: add r0, r2, r8, lsl #2 ldr r1, [r0, #0x78c] add r0, r2, r7 - bl FUN_020B5D3C + bl NNS_G2dFontInitUTF16 add r8, r8, #1 cmp r8, #2 add r7, r7, #0xc @@ -34004,7 +34004,7 @@ MOD13_0223AF48: ; 0x0223AF48 ldr r0, _0223AF8C ; =0x022431A8 mov r1, r5 ldr r0, [r0] - bl FUN_020ADDF0 + bl NNS_FndFreeToExpHeap mov r0, r4 bl OS_EnableIrqMask add sp, sp, #4 @@ -34026,7 +34026,7 @@ MOD13_0223AF90: ; 0x0223AF90 ldmeqia sp!, {r4, r5, pc} ldr r0, _0223AFDC ; =0x022431A8 ldr r0, [r0] - bl FUN_020ADDF0 + bl NNS_FndFreeToExpHeap mov r0, r4 bl OS_EnableIrqMask mov r0, #0 @@ -34060,7 +34060,7 @@ MOD13_0223B004: ; 0x0223B004 ldr r0, [r1] mov r1, r6 mov r2, r5 - bl tempName_NNS_FndAllocFromExpHeapEx + bl NNS_FndAllocFromExpHeapEx movs r5, r0 bne _0223B03C bl OS_Terminate @@ -34078,7 +34078,7 @@ MOD13_0223B050: ; 0x0223B050 sub sp, sp, #4 ldr r0, _0223B078 ; =0x022431A8 ldr r0, [r0] - bl thunk_FUN_020adc8c + bl NNS_FndDestroyExpHeap ldr r0, _0223B078 ; =0x022431A8 mov r1, #0 str r1, [r0] @@ -34097,7 +34097,7 @@ MOD13_0223B07C: ; 0x0223B07C mov r0, r4 mov r1, #0x40000 mov r2, #0 - bl tempName_NNS_FndCreateExpHeapEx + bl NNS_FndCreateExpHeapEx ldr r1, _0223B0B8 ; =0x022431A8 cmp r0, #0 str r0, [r1] diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 3a3217433..b95ab0d61 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -10519,7 +10519,7 @@ _021DC79C: mov r1, #0x10 orr r1, r2 str r1, [r0] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r2, #0x80 @@ -10547,7 +10547,7 @@ _021DC79C: mov r0, #0x51 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0xa str r0, [sp] mov r0, #0x51 @@ -10765,7 +10765,7 @@ MOD14_021DCA0C: ; 0x021DCA0C bl MOD14_021DDEF4 bl G3X_ResetMtxStack bl G3X_ResetMtxStack_2 - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -13079,7 +13079,7 @@ _021DDC74: .word 0x0000B22C thumb_func_start MOD14_021DDC78 MOD14_021DDC78: ; 0x021DDC78 push {r3, lr} - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 @@ -13815,7 +13815,7 @@ MOD14_021DE1D0: ; 0x021DE1D0 cmp r0, #0 beq _021DE268 add r1, sp, #0x14 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 beq _021DE262 mov r0, #0xa @@ -13895,7 +13895,7 @@ MOD14_021DE278: ; 0x021DE278 cmp r0, #0 beq _021DE2DC add r1, sp, #8 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r0, _021DE2E4 ; =0x00005984 mov r1, #3 ldr r0, [r5, r0] @@ -15793,7 +15793,7 @@ MOD14_021DF144: ; 0x021DF144 sub sp, #0x38 add r4, r0, #0 add r0, #0x24 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -18635,7 +18635,7 @@ MOD14_021E078C: ; 0x021E078C add r4, r1, #0 add r6, r2, #0 str r3, [sp, #8] - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy bl FUN_0206B888 add r1, r0, #0 mov r0, #0xa @@ -18656,10 +18656,10 @@ MOD14_021E078C: ; 0x021E078C cmp r0, #0 beq _021E0818 add r0, sp, #0x18 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy ldr r0, [sp, #0xc] add r1, sp, #0x10 - bl FUN_020B00F0 + bl NNS_G2dGetUnpackedPaletteCompressInfo ldr r2, [sp, #0x14] add r7, r0, #0 ldr r0, [r2, #0xc] @@ -18678,14 +18678,14 @@ MOD14_021E078C: ; 0x021E078C ldr r1, [sp, #0x10] mov r2, #0xc0 mov r3, #1 - bl FUN_020B10E8 + bl NNS_G2dLoadPaletteEx b _021E0812 _021E0806: ldr r0, [sp, #0x14] mov r1, #0xc0 mov r2, #1 add r3, sp, #0x18 - bl FUN_020B1240 + bl NNS_G2dLoadPalette _021E0812: ldr r0, [sp, #0xc] bl FreeToHeap @@ -18805,7 +18805,7 @@ MOD14_021E08E4: ; 0x021E08E4 _021E08F4: add r0, r5, #4 str r6, [r5] - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r4, #0 add r5, #0x34 sub r4, r4, #1 @@ -18913,7 +18913,7 @@ MOD14_021E0940: ; 0x021E0940 bl GetBoxMonData strh r0, [r4, #0x2e] add r0, r4, #4 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r5, #0 add r0, #0x4c str r0, [sp] @@ -18926,7 +18926,7 @@ MOD14_021E0940: ; 0x021E0940 add r0, r5, #0 add r0, #0x4c add r1, sp, #0x1c - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -18942,7 +18942,7 @@ MOD14_021E0940: ; 0x021E0940 ldr r1, [sp, #0x60] ldr r0, [sp, #0x1c] lsl r1, r1, #5 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping add r0, r4, #4 str r0, [sp, #0x20] ldr r0, [sp, #0x5c] @@ -19031,10 +19031,10 @@ MOD14_021E0A60: ; 0x021E0A60 bl GetBoxMonData strh r0, [r4, #0x2e] add r0, r4, #4 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r0, [sp, #0x58] add r1, sp, #0x18 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -19050,7 +19050,7 @@ MOD14_021E0A60: ; 0x021E0A60 ldr r1, [sp, #0x6c] ldr r0, [sp, #0x18] lsl r1, r1, #5 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping add r0, r4, #4 str r0, [sp, #0x1c] ldr r0, [sp, #0x68] @@ -19160,7 +19160,7 @@ MOD14_021E0BBC: ; 0x021E0BBC cmp r0, #0 beq _021E0C18 add r0, r4, #4 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r5, #0 add r0, #0x4c str r0, [sp] @@ -19173,7 +19173,7 @@ MOD14_021E0BBC: ; 0x021E0BBC add r5, #0x4c add r0, r5, #0 add r1, sp, #4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] @@ -19188,7 +19188,7 @@ MOD14_021E0BBC: ; 0x021E0BBC str r1, [r0, #0x10] ldr r0, [sp, #4] lsl r1, r6, #5 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping ldr r0, [r4] add r1, r4, #4 bl FUN_02020334 @@ -19309,7 +19309,7 @@ MOD14_021E0CCC: ; 0x021E0CCC sub sp, #0x38 add r4, r0, #0 add r0, #0x18 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 mov r0, #0x9d str r3, [sp] @@ -19705,7 +19705,7 @@ MOD14_021E0FA8: ; 0x021E0FA8 add r4, r5, #0 _021E0FE0: add r0, sp, #0x44 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0 str r0, [sp] mov r0, #1 @@ -19758,7 +19758,7 @@ _021E103E: cmp r0, #2 blo _021E0FE0 add r0, sp, #0x44 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 mov r0, #0xb9 str r3, [sp] @@ -21925,7 +21925,7 @@ _021E211E: ldr r2, [sp, #0x14] ldr r3, [sp, #0x48] lsl r1, r1, #5 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping add sp, #0x34 pop {r4, r5, r6, r7, pc} _021E2132: @@ -22053,7 +22053,7 @@ MOD14_021E21E4: ; 0x021E21E4 pop {r4, r5, r6, pc} _021E2214: add r0, sp, #4 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #4 str r0, [sp] add r0, r5, #0 @@ -22100,7 +22100,7 @@ MOD14_021E223C: ; 0x021E223C mov r5, #0x20 _021E227C: add r0, sp, #0x1c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #0x1c str r0, [sp] ldr r2, [sp, #8] @@ -22987,7 +22987,7 @@ MOD14_021E2940: ; 0x021E2940 add r0, sp, #0x30 bl MOD14_021DDDB4 add r0, sp, #0xc - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy lsl r0, r4, #0x10 lsr r0, r0, #0x10 mov r1, #1 @@ -23012,7 +23012,7 @@ MOD14_021E2940: ; 0x021E2940 mov r1, #0xbe ldr r0, [sp, #8] lsl r1, r1, #8 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping lsl r0, r4, #0x10 lsr r0, r0, #0x10 mov r1, #2 @@ -24714,7 +24714,7 @@ MOD14_021E3664: ; 0x021E3664 add r4, r0, #0 bl MOD14_021E36FC add r0, sp, #0x14 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r0, #2 @@ -24829,7 +24829,7 @@ MOD14_021E36FC: ; 0x021E36FC str r0, [r1] add r0, r4, #0 add r0, #0x18 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0xa str r0, [sp] add r4, #0x18 @@ -25553,7 +25553,7 @@ _021E3CB2: str r0, [sp, #0x10] _021E3CC2: add r0, sp, #0x14 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #0x14 str r0, [sp] add r0, r7, #0 @@ -25752,7 +25752,7 @@ MOD14_021E3E1C: ; 0x021E3E1C bl MOD14_021DC484 str r0, [sp, #0x14] add r0, sp, #0x18 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r0, #2 @@ -27198,12 +27198,12 @@ MOD14_021E4890: ; 0x021E4890 add r5, r6, #0 _021E48EA: add r0, sp, #0x10 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r0, [sp, #0xc] ldr r1, [r4] mov r2, #1 add r3, sp, #0x10 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping mov r0, #0 str r0, [sp] mov r0, #1 @@ -29425,7 +29425,7 @@ MOD14_021E5A08: ; 0x021E5A08 mov r3, #0 bl FUN_02006930 add r0, sp, #0x48 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r0, #2 @@ -29583,11 +29583,11 @@ _021E5BA0: add r0, r0, r6 str r0, [r4, #0x18] add r0, sp, #0x34 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r2, [r4, #0x18] add r0, sp, #0x34 mov r1, #2 - bl FUN_020B1A1C + bl NNS_G2dSetImageLocation ldr r0, _021E5BFC ; =0x04001000 mov r2, #0 ldr r1, [r0] @@ -29711,7 +29711,7 @@ MOD14_021E5C68: ; 0x021E5C68 add r0, r5, #0 add r0, #0xe8 add r1, sp, #4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #4] mov r1, #2 ldr r0, [r0, #0x14] diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index cd1cb9eb3..bd42feb3e 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2592,7 +2592,7 @@ MOD15_021D87F8: ; 0x021D87F8 bl FUN_02015F1C str r5, [r4, #0x18] str r6, [r4, #0x1c] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -2925,19 +2925,19 @@ MOD15_021D8AB4: ; 0x021D8AB4 mov r0, #0x66 lsl r0, r0, #2 add r0, r4, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0x6b lsl r0, r0, #2 add r0, r4, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0x15 lsl r0, r0, #4 add r0, r4, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0x5d lsl r0, r0, #2 add r0, r4, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -7801,9 +7801,9 @@ MOD15_021DB154: ; 0x021DB154 sub sp, #0x4c add r4, r0, #0 add r0, sp, #0x38 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x14 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0x23 str r0, [sp] add r0, sp, #0x38 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index e5c8bf914..4588def65 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -1996,7 +1996,7 @@ MOD16_021D8424: ; 0x021D8424 push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -2053,7 +2053,7 @@ _021D849C: .word 0x000019FC thumb_func_start MOD16_021D84A0 MOD16_021D84A0: ; 0x021D84A0 push {r3, lr} - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _021D8500 ; =0x04000060 ldr r2, _021D8504 ; =0xFFFFCFFD @@ -2089,11 +2089,11 @@ MOD16_021D84A0: ; 0x021D84A0 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager pop {r3, pc} .align 2, 0 _021D8500: .word 0x04000060 @@ -2106,8 +2106,8 @@ _021D8510: .word 0xBFFF0000 thumb_func_start MOD16_021D8514 MOD16_021D8514: ; 0x021D8514 push {r3, lr} - bl FUN_020AEAF4 - bl FUN_020AEC60 + bl NNS_GfdResetFrmTexVramState + bl NNS_GfdResetFrmPlttVramState pop {r3, pc} thumb_func_end MOD16_021D8514 @@ -2313,7 +2313,7 @@ MOD16_021D86B4: ; 0x021D86B4 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FDEC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera mov r0, #0x55 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -3182,7 +3182,7 @@ MOD16_021D8CB4: ; 0x021D8CB4 add r7, r0, #0 beq _021D8CF6 add r1, sp, #4 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 beq _021D8CF0 cmp r4, #0 @@ -3220,7 +3220,7 @@ MOD16_021D8CFC: ; 0x021D8CFC add r7, r0, #0 beq _021D8D42 add r1, sp, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0 beq _021D8D3C cmp r4, #0 @@ -3258,7 +3258,7 @@ MOD16_021D8D48: ; 0x021D8D48 add r4, r0, #0 beq _021D8D6A add r1, r5, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData cmp r0, #0 bne _021D8D6A add r0, r4, #0 @@ -3280,7 +3280,7 @@ MOD16_021D8D70: ; 0x021D8D70 add r4, r0, #0 beq _021D8D92 add r1, r5, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0 bne _021D8D92 add r0, r4, #0 @@ -3302,7 +3302,7 @@ MOD16_021D8D98: ; 0x021D8D98 add r4, r0, #0 beq _021D8DBA add r1, r5, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _021D8DBA add r0, r4, #0 @@ -3545,14 +3545,14 @@ MOD16_021D8F9C: ; 0x021D8F9C mov r1, #0x55 lsl r1, r1, #2 str r0, [r5, r1] - ldr r3, _021D9030 ; =UNK_021064B8 + ldr r3, _021D9030 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _021D9034 ; =UNK_021064C0 + ldr r3, _021D9034 ; =NNS_GfdDefaultFuncAllocPlttVram add r4, r0, #0 ldr r3, [r3] mov r0, #0x80 @@ -3607,8 +3607,8 @@ _021D9004: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop -_021D9030: .word UNK_021064B8 -_021D9034: .word UNK_021064C0 +_021D9030: .word NNS_GfdDefaultFuncAllocTexVram +_021D9034: .word NNS_GfdDefaultFuncAllocPlttVram _021D9038: .word 0x7FFF0000 _021D903C: .word 0xFFFF0000 _021D9040: .word MOD16_021FF490 @@ -49737,7 +49737,7 @@ MOD16_021EE5D0: ; 0x021EE5D0 bl FUN_02003974 ldr r0, [sp, #4] mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r2, r5, #0 add r2, #0xbc add r1, r0, #0 @@ -49762,7 +49762,7 @@ MOD16_021EE5D0: ; 0x021EE5D0 bl FUN_02003974 ldr r0, [sp, #8] mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r5, #0xc0 add r1, r0, #0 ldr r2, [r5] diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 5d834cfae..234719b29 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -508,7 +508,7 @@ MOD17_021D786C: ; 0x021D786C push {r4, lr} add r4, r0, #0 bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0x1c] cmp r0, #0 beq _021D7884 @@ -768,7 +768,7 @@ MOD17_021D7A2C: ; 0x021D7A2C lsl r5, r5, #2 add r0, r6, #0 add r1, r1, r5 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [r4, #0x30] ldr r0, [r0, r5] pop {r4, r5, r6, pc} @@ -1046,7 +1046,7 @@ MOD17_021D7C28: ; 0x021D7C28 add r6, r2, #0 ldr r7, [sp, #0x18] str r1, [r0] - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera ldr r1, _021D7CB0 ; =0x04000470 lsl r0, r4, #0xc str r0, [r1] @@ -1173,7 +1173,7 @@ _021D7D24: .word MOD17_021DE32C thumb_func_start MOD17_021D7D28 MOD17_021D7D28: ; 0x021D7D28 push {r3, lr} - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 @@ -1218,11 +1218,11 @@ MOD17_021D7D28: ; 0x021D7D28 str r0, [r2] str r1, [r2, #0x40] mov r1, #1 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager pop {r3, pc} .align 2, 0 _021D7D9C: .word 0x04000008 @@ -1253,7 +1253,7 @@ MOD17_021D7DB0: ; 0x021D7DB0 mov r0, #0x10 orr r0, r1 str r0, [r2] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule bl GX_DisableEngineALayers bl GX_DisableEngineBLayers mov r0, #0x1f @@ -1272,8 +1272,8 @@ _021D7DFC: .word 0xFFCFFFEF thumb_func_start MOD17_021D7E00 MOD17_021D7E00: ; 0x021D7E00 push {r3, lr} - bl FUN_020AEAF4 - bl FUN_020AEC60 + bl NNS_GfdResetFrmTexVramState + bl NNS_GfdResetFrmPlttVramState pop {r3, pc} thumb_func_end MOD17_021D7E00 @@ -1282,7 +1282,7 @@ MOD17_021D7E0C: ; 0x021D7E0C push {r3, lr} bl GX_DisableEngineALayers bl GX_DisableEngineBLayers - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule pop {r3, pc} thumb_func_end MOD17_021D7E0C @@ -1658,7 +1658,7 @@ MOD17_021D80CC: ; 0x021D80CC bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7c @@ -1787,7 +1787,7 @@ _021D81C6: ldr r1, [r6, #8] add r0, r4, #0 add r1, r1, #4 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, [r7] ldr r0, [r6, #8] str r1, [r0] @@ -1851,7 +1851,7 @@ _021D822A: ldr r0, [sp, #0xc] add r1, r1, r6 add r1, r1, #4 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [r5, #8] add r0, r0, r6 ldr r0, [r0, #4] @@ -1914,13 +1914,13 @@ MOD17_021D82E4: ; 0x021D82E4 add r6, r3, #0 bl FUN_02006D98 str r0, [r5, #0x20] - ldr r3, _021D833C ; =UNK_021064B8 + ldr r3, _021D833C ; =NNS_GfdDefaultFuncAllocTexVram mov r1, #0 ldr r3, [r3] add r0, r4, #0 add r2, r1, #0 blx r3 - ldr r3, _021D8340 ; =UNK_021064C0 + ldr r3, _021D8340 ; =NNS_GfdDefaultFuncAllocPlttVram add r4, r0, #0 ldr r3, [r3] add r0, r6, #0 @@ -1948,8 +1948,8 @@ MOD17_021D82E4: ; 0x021D82E4 str r0, [r5, #0x24] pop {r4, r5, r6, pc} nop -_021D833C: .word UNK_021064B8 -_021D8340: .word UNK_021064C0 +_021D833C: .word NNS_GfdDefaultFuncAllocTexVram +_021D8340: .word NNS_GfdDefaultFuncAllocPlttVram _021D8344: .word 0x7FFF0000 _021D8348: .word 0xFFFF0000 thumb_func_end MOD17_021D82E4 @@ -8916,7 +8916,7 @@ MOD17_021DB700: ; 0x021DB700 bl UncompressFromNarc add r1, sp, #0x10 add r6, r0, #0 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0x10] ldr r0, [r0, #0x14] bl FUN_02008A74 @@ -13727,7 +13727,7 @@ _021DDAC6: add r1, r1, r5 add r0, r7, #0 add r1, r1, #4 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #4] ldr r1, [r0] ldr r0, [r4] @@ -13758,7 +13758,7 @@ _021DDB1E: ldr r1, [r4, #8] add r0, r5, #0 add r1, r1, #4 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [sp, #4] ldr r1, [r0] ldr r0, [r4, #8] @@ -13875,7 +13875,7 @@ MOD17_021DDC30: ; 0x021DDC30 bl OverlayManager_GetData add r5, r0, #0 bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r5, #0x10] bl MOD17_021DD518 mov r0, #0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 86075a843..d90cf62c9 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -5780,7 +5780,7 @@ MOD18_0223C37C: ; 0x0223C37C ldr r1, [r0] ldr r0, _0223C56C ; =0x000009EB strb r2, [r1, r0] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7c @@ -21387,7 +21387,7 @@ _02243B16: str r0, [sp, #0x24] add r0, sp, #0x1c add r1, sp, #0x18 - bl FUN_020BB408 + bl NNS_G3dWorldPosToScrPos ldr r0, [sp, #0x18] lsl r0, r0, #0xc str r0, [sp, #0x1c] diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index 317de1aa3..6b339173f 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -1223,7 +1223,7 @@ MOD20_02252C5C: ; 0x02252C5C lsl r0, r0, #4 str r7, [r4, r0] ldr r0, [r4, r0] - bl FUN_020B0888 + bl NNS_G2dResetOamManagerBuffer mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r4, r0] @@ -3062,7 +3062,7 @@ _02253A4E: bl NARC_ReadFromMember add r0, r7, #0 add r1, sp, #0x20 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0x20] add r1, r5, #0 ldr r0, [r0, #0x14] @@ -3239,7 +3239,7 @@ MOD20_02253BA4: ; 0x02253BA4 str r7, [r4] str r5, [r4, #0x18] add r0, r7, #0 - bl FUN_020B0830 + bl NNS_G2dGetOamManagerOamCapacity strh r0, [r4, #0x10] ldrh r1, [r4, #0x10] add r0, r5, #0 @@ -3354,7 +3354,7 @@ _02253C96: mov r1, #2 add r0, #8 lsl r1, r1, #0xc - bl FUN_020B1EC4 + bl NNS_G2dTickCellAnimation add r0, r4, #0 add r0, #0x86 ldrb r0, [r0] @@ -3391,7 +3391,7 @@ _02253CAE: ldr r2, [r4, #0x34] add r0, r5, #0 lsr r1, r1, #0x10 - bl FUN_020B1AF8 + bl NNS_G2dMakeCellToOams b _02253D86 _02253CEE: ldr r0, [r4, #0x6c] @@ -3452,7 +3452,7 @@ _02253D62: ldr r0, [sp, #0xc] ldr r1, [r4, #0x6c] ldr r0, [r0] - bl FUN_020B0BB0 + bl NNS_G2dEntryOamManagerAffine add r1, sp, #0x18 str r1, [sp] str r0, [sp, #4] @@ -3464,7 +3464,7 @@ _02253D62: ldr r3, [r4, #0x6c] add r0, r5, #0 lsr r1, r1, #0x10 - bl FUN_020B1AF8 + bl NNS_G2dMakeCellToOams _02253D86: ldr r1, [sp, #0x10] sub r1, r1, r0 @@ -3569,7 +3569,7 @@ _02253E38: lsl r2, r2, #0xd ldr r0, [r0] lsr r2, r2, #0x10 - bl FUN_020B0D58 + bl NNS_G2dEntryOamManagerOam _02253E52: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} @@ -3607,12 +3607,12 @@ MOD20_02253E74: ; 0x02253E74 ldr r0, [r6, #0xc] str r0, [r4, #4] ldrh r1, [r5, #8] - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx add r1, r0, #0 add r0, r4, #0 ldr r2, [r4] add r0, #8 - bl FUN_020B1F80 + bl NNS_G2dInitCellAnimation ldr r1, [r5] ldr r0, [r5, #4] str r1, [r4, #0x64] @@ -3686,12 +3686,12 @@ MOD20_02253F28: ; 0x02253F28 lsl r1, r1, #0x10 ldr r0, [r4, #4] lsr r1, r1, #0x10 - bl FUN_020AFC04 + bl NNS_G2dGetAnimSequenceByIdx add r1, r0, #0 add r0, r4, #0 ldr r2, [r4] add r0, #8 - bl FUN_020B1F80 + bl NNS_G2dInitCellAnimation pop {r4, pc} thumb_func_end MOD20_02253F28 @@ -3820,7 +3820,7 @@ MOD20_02253FBC: ; 0x02253FBC beq _0225400E add r1, r5, #0 add r1, #8 - bl FUN_020AFEB8 + bl NNS_G2dGetUnpackedCellBank cmp r0, #0 bne _02253FFC mov r0, #0 @@ -3829,7 +3829,7 @@ _02253FFC: ldr r0, [r5, #4] add r5, #0xc add r1, r5, #0 - bl thunk_FUN_020afda0 + bl NNS_G2dGetUnpackedMCAnimBank cmp r0, #0 bne _0225400E mov r0, #0 diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 7d7fa32ad..0bb87572a 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -1015,7 +1015,7 @@ _02254FFC: bl NARC_ReadFromMember ldr r0, [sp, #0x18] add r1, sp, #0x20 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0x20] mov r1, #2 ldr r0, [r0, #0x14] diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 618309d1d..07792cafe 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -670,7 +670,7 @@ _02254D24: bl NARC_AllocAndReadWholeMember add r1, sp, #0x2c str r0, [sp, #0x20] - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, [sp, #0x2c] mov r1, #1 ldr r0, [r0, #0x14] diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index f49ce02cb..67dd59d44 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -898,7 +898,7 @@ MOD53_021D7C84: ; 0x021D7C84 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 1131a268c..0469af07c 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -819,7 +819,7 @@ MOD54_021D7BBC: ; 0x021D7BBC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index c221c2d0e..d9a9cad6a 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -865,7 +865,7 @@ MOD55_021D7C20: ; 0x021D7C20 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e @@ -4013,7 +4013,7 @@ _021D9570: .word MOD55_021DA314 thumb_func_start MOD55_021D9574 MOD55_021D9574: ; 0x021D9574 push {r3, lr} - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 @@ -4807,7 +4807,7 @@ MOD55_021D9C50: ; 0x021D9C50 add r4, r1, #0 bl G3X_ResetMtxStack bl G3X_ResetMtxStack_2 - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera add r0, r5, #0 add r0, #0xdc ldr r0, [r0] @@ -4862,7 +4862,7 @@ MOD55_021D9CC4: ; 0x021D9CC4 add r4, r1, #0 bl G3X_ResetMtxStack bl G3X_ResetMtxStack_2 - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera add r0, r5, #0 add r0, #0xdc ldr r0, [r0] diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index 8626dac26..e9abf575a 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -1085,7 +1085,7 @@ MOD56_022126E0: ; 0x022126E0 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 463396abd..4f7db66f1 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -1022,7 +1022,7 @@ _021D7D4C: ldr r0, [r4, r1] add r1, r1, #4 add r1, r4, r1 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _021D7D60 bl ErrorHandling @@ -1076,7 +1076,7 @@ _021D7DBC: ldr r0, [r4, r1] add r1, r1, #4 add r1, r4, r1 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _021D7DD0 bl ErrorHandling @@ -3573,7 +3573,7 @@ MOD57_021D9184: ; 0x021D9184 sub sp, #0x3c add r7, r0, #0 bl MOD57_021D9578 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -3709,7 +3709,7 @@ _021D9290: beq _021D92CA ldr r1, [sp, #0x18] add r1, r1, r6 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0 bne _021D92CE mov r0, #0x1e @@ -4024,7 +4024,7 @@ _021D9536: ldr r0, [r1, r0] bl FUN_02020354 mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation str r0, [sp] lsl r0, r4, #5 str r0, [sp, #4] diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 7f3bd998a..b47aeeba4 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -715,7 +715,7 @@ MOD58_021DA044: ; 0x021DA044 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s index fa7752a8a..8c6d04fcb 100644 --- a/arm9/modules/60/asm/module_60.s +++ b/arm9/modules/60/asm/module_60.s @@ -403,7 +403,7 @@ MOD60_021D77D4: ; 0x021D77D4 str r0, [r4, #0x10] _021D7804: bl FUN_0200BC30 - bl FUN_020AEEB8 + bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x14] bl FUN_0201AB60 ldr r3, _021D782C ; =0x027E0000 @@ -688,7 +688,7 @@ MOD60_021D7A40: ; 0x021D7A40 bl NARC_ReadWholeMember add r0, r6, #0 add r1, sp, #0x20 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r3, [sp, #0x20] mov r1, #0 str r1, [sp] @@ -719,7 +719,7 @@ MOD60_021D7A40: ; 0x021D7A40 bl NARC_ReadWholeMember add r0, r6, #0 add r1, sp, #0x1c - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, [sp, #0x1c] mov r0, #0 ldr r1, [r1, #0xc] @@ -748,7 +748,7 @@ MOD60_021D7A40: ; 0x021D7A40 add r1, r5, #0 ldr r0, [r5, #0x24] add r1, #0x28 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData add r0, r4, #0 bl NARC_dtor mov r3, #0 diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s index 54af7ce16..ed9e0e05a 100644 --- a/arm9/modules/61/asm/module_61.s +++ b/arm9/modules/61/asm/module_61.s @@ -737,7 +737,7 @@ _021D7A7A: beq _021D7A88 bl FUN_0200BC30 _021D7A88: - bl FUN_020AEEB8 + bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x18] bl FUN_0201AB60 ldr r3, _021D7AA0 ; =0x027E0000 @@ -1087,7 +1087,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 bl NARC_ReadWholeMember add r0, r7, #0 add r1, sp, #0x28 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r3, [sp, #0x28] mov r0, #0 str r0, [sp] @@ -1119,7 +1119,7 @@ MOD61_021D7CE8: ; 0x021D7CE8 bl NARC_ReadWholeMember add r0, r4, #0 add r1, sp, #0x24 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r2, [sp, #0x24] mov r0, #4 ldr r1, [r2, #0xc] @@ -1253,7 +1253,7 @@ _021D7E00: add r1, r5, #0 ldr r0, [r5, #0x34] add r1, #0x3c - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r0, #0x4f mov r1, #0x24 bl GetNarcMemberSizeByIdPair @@ -1268,7 +1268,7 @@ _021D7E00: add r1, r5, #0 ldr r0, [r5, #0x38] add r1, #0x40 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData add r0, r6, #0 bl NARC_dtor mov r3, #0 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index f1eb2a704..3d0ee0fd8 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -1815,14 +1815,14 @@ _0222E35C: .word 0x04000580 thumb_func_start MOD62_0222E360 MOD62_0222E360: ; 0x0222E360 push {r3, r4, r5, lr} - ldr r3, _0222E398 ; =UNK_021064B8 + ldr r3, _0222E398 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _0222E39C ; =UNK_021064C0 + ldr r3, _0222E39C ; =NNS_GfdDefaultFuncAllocPlttVram mov r1, #0 add r4, r0, #0 ldr r3, [r3] @@ -1841,8 +1841,8 @@ _0222E390: bl FUN_02012CC8 pop {r3, r4, r5, pc} nop -_0222E398: .word UNK_021064B8 -_0222E39C: .word UNK_021064C0 +_0222E398: .word NNS_GfdDefaultFuncAllocTexVram +_0222E39C: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_end MOD62_0222E360 thumb_func_start MOD62_0222E3A0 @@ -1853,7 +1853,7 @@ MOD62_0222E3A0: ; 0x0222E3A0 cmp r0, #0 ble _0222E3B6 bl FUN_020222AC - bl FUN_020B02C8 + bl NNS_G2dSetupSoftwareSpriteCamera _0222E3B6: bl FUN_02013388 mov r0, #1 diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index 11daacd01..ab30c4e02 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -519,24 +519,24 @@ MOD63_021D78BC: ; 0x021D78BC bl FUN_0201B234 ldr r0, [r5, #0x60] mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx add r4, r0, #0 add r0, r5, #0 ldr r2, [r5, #0x58] add r0, #0x68 add r1, r4, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r5, #0x64] ldr r0, [r5, #0x5c] - bl FUN_020BC0FC + bl NNS_G3dGetTex add r3, r0, #0 ldr r0, [r5, #0x64] ldr r2, [r5, #0x58] add r1, r4, #0 - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r5, #0x64] add r0, r5, #4 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r4, r5, #0 add r6, sp, #0xc mov r3, #0 @@ -579,7 +579,7 @@ MOD63_021D7970: ; 0x021D7970 add r4, r0, #0 ldr r1, [r4, #0x64] add r0, #0x68 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj ldr r0, [r4, #0x60] bl FreeToHeap ldr r0, [r4, #0x5c] @@ -1006,10 +1006,10 @@ _021D7C52: ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] mov r0, #0 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector ldr r1, _021D7D68 ; =0x00007FFF mov r0, #0 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor ldr r3, _021D7D6C ; =0x0000010E mov r0, #1 add r2, r3, #2 @@ -1017,10 +1017,10 @@ _021D7C52: add r3, r3, #4 ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] - bl FUN_020B8418 + bl NNS_G3dGlbLightVector ldr r1, _021D7D68 ; =0x00007FFF mov r0, #1 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor ldr r2, _021D7D60 ; =0x04000060 ldr r0, _021D7D64 ; =0xFFFFCFFF ldrh r1, [r2] @@ -1770,7 +1770,7 @@ _021D8272: str r1, [r0] ldr r1, _021D835C ; =0x00007FFF mov r0, #1 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor add r0, r5, #0 add r1, r4, #0 add r0, #0xa8 @@ -2260,7 +2260,7 @@ _021D86B2: lsl r1, r1, #0x10 mov r0, #1 lsr r1, r1, #0x10 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor pop {r4, pc} .align 2, 0 _021D86DC: .word 0x00000116 diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index e501157bc..ccd31d013 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -417,14 +417,14 @@ MOD63_021D8BD8: ; 0x021D8BD8 add r3, r1, #0 bl FUN_02022318 str r0, [r4, #0x10] - ldr r3, _021D8C18 ; =UNK_021064B8 + ldr r3, _021D8C18 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #2 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _021D8C1C ; =UNK_021064C0 + ldr r3, _021D8C1C ; =NNS_GfdDefaultFuncAllocPlttVram mov r0, #0x80 ldr r3, [r3] mov r1, #0 @@ -434,8 +434,8 @@ MOD63_021D8BD8: ; 0x021D8BD8 pop {r4, pc} nop _021D8C14: .word MOD63_021D8C20 -_021D8C18: .word UNK_021064B8 -_021D8C1C: .word UNK_021064C0 +_021D8C18: .word NNS_GfdDefaultFuncAllocTexVram +_021D8C1C: .word NNS_GfdDefaultFuncAllocPlttVram thumb_func_end MOD63_021D8BD8 thumb_func_start MOD63_021D8C20 @@ -1565,11 +1565,11 @@ _021D950C: asr r1, r1, #0x10 asr r2, r2, #0x10 asr r3, r3, #0x10 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector lsl r1, r4, #1 ldrh r1, [r7, r1] add r0, r4, #0 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -1578,11 +1578,11 @@ _021D950C: ldr r0, _021D9594 ; =0x00004210 ldr r1, _021D9598 ; =0x0000318A mov r2, #0 - bl FUN_020B83E0 + bl NNS_G3dGlbMaterialColorDiffAmb ldr r0, _021D959C ; =0x00004A52 ldr r1, _021D95A0 ; =0x000039CE mov r2, #0 - bl FUN_020B83BC + bl NNS_G3dGlbMaterialColorSpecEmi mov r0, #0x1f str r0, [sp] mov r0, #2 @@ -1592,7 +1592,7 @@ _021D950C: mov r0, #0xd mov r2, #2 add r3, r1, #0 - bl FUN_020B8390 + bl NNS_G3dGlbPolygonAttr ldr r0, _021D95A4 ; =MOD63_021D8CB0 add r1, r5, #0 bl Main_SetVBlankIntrCB @@ -1767,7 +1767,7 @@ _021D96C6: beq _021D96F4 ldr r1, [sp, #0x14] add r1, r1, r7 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0 bne _021D96F8 ldr r0, [r6, #0x2c] @@ -1912,7 +1912,7 @@ MOD63_021D9810: ; 0x021D9810 mov r2, #0x4c bl AllocAndReadWholeNarcMemberByIdPair str r0, [r5, #0x3c] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r5, #0x40] bl FUN_0201B3C4 cmp r0, #0 @@ -1965,7 +1965,7 @@ _021D9890: add r0, r5, r6 add r0, #0x9c ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrb r0, [r0, #9] cmp r0, #1 beq _021D98A4 @@ -1974,7 +1974,7 @@ _021D98A4: add r0, r5, r6 add r0, #0x9c ldr r0, [r0] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] @@ -1985,29 +1985,29 @@ _021D98BC: ldr r0, [sp, #0x10] add r1, r4, #0 add r0, r0, r6 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit add r0, r4, #0 mov r1, #0 mov r2, #0x40 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag add r0, r4, #0 mov r1, #0 mov r2, #0x80 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #2 add r0, r4, #0 mov r1, #0 lsl r2, r2, #8 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #1 add r0, r4, #0 mov r1, #0 lsl r2, r2, #0xa - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag add r0, r4, #0 mov r1, #0 mov r2, #0xf - bl FUN_020BC02C + bl NNSi_G3dModifyPolygonAttrMask add r0, r7, #1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 @@ -3038,7 +3038,7 @@ MOD63_021DA158: ; 0x021DA158 beq _021DA18E add r1, r4, #0 add r1, #0x14 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData cmp r0, #0 bne _021DA192 ldr r0, [r4, #0x14] diff --git a/arm9/modules/63/asm/mod63_021DA640.s b/arm9/modules/63/asm/mod63_021DA640.s index 6095d832f..5bcdfbd23 100644 --- a/arm9/modules/63/asm/mod63_021DA640.s +++ b/arm9/modules/63/asm/mod63_021DA640.s @@ -108,7 +108,7 @@ MOD63_021DA6E8: ; 0x021DA6E8 orr r0, r1 str r0, [r2] bl MOD63_021DA640 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -876,7 +876,7 @@ MOD63_021DAD18: ; 0x021DAD18 add r6, r2, #0 bl FUN_02020354 mov r1, #1 - bl FUN_020B19C4 + bl NNS_G2dGetImagePaletteLocation add r7, r0, #0 cmp r6, #0 bne _021DAD44 diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s index 52b453e2a..77623c5ce 100644 --- a/arm9/modules/63/asm/mod63_021DAE5C.s +++ b/arm9/modules/63/asm/mod63_021DAE5C.s @@ -239,7 +239,7 @@ MOD63_021DAFEC: ; 0x021DAFEC orr r0, r1 str r0, [r3] bl MOD63_021DAE5C - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 diff --git a/arm9/modules/63/src/mod63_021DB450.c b/arm9/modules/63/src/mod63_021DB450.c index 6f9e7036a..84461fe11 100644 --- a/arm9/modules/63/src/mod63_021DB450.c +++ b/arm9/modules/63/src/mod63_021DB450.c @@ -5,8 +5,8 @@ #include "mod63_021DB450.h" //todo resolve to static code -extern u32 (*UNK_021064B8)(u32 param0, u32 param1, u32 param2); -extern u32 (*UNK_021064C0)(u32 param0, u32 param1, u32 param2); +extern u32 (*NNS_GfdDefaultFuncAllocTexVram)(u32 param0, u32 param1, u32 param2); +extern u32 (*NNS_GfdDefaultFuncAllocPlttVram)(u32 param0, u32 param1, u32 param2); extern void FUN_0201327C(u32 param0); extern void FUN_020132BC(u32 param0); @@ -29,7 +29,7 @@ extern void FUN_020072E8(struct UnkStruct63_021DB450 *); extern void FUN_020081C4(struct UnkStruct63_021DB450 *); extern void FUN_020222AC(void); -extern void FUN_020B02C8(void); +extern void NNS_G2dSetupSoftwareSpriteCamera(void); extern u32 FUN_02006ED4(struct UnkStruct63_021DB450 *); extern void FUN_020222B4(u32, u32); @@ -50,7 +50,7 @@ const struct UnkStruct63_021DBEF0 MOD63_021DBEF0[3]; THUMB_FUNC u32 MOD63_021DB450(u32 param0, u32 param1) { - u32 res0 = (UNK_021064B8)(param0, param1, 0); + u32 res0 = (NNS_GfdDefaultFuncAllocTexVram)(param0, param1, 0); FUN_0201327C(res0); GF_ASSERT(res0); return (u32)((u16)res0 * 8); @@ -58,7 +58,7 @@ THUMB_FUNC u32 MOD63_021DB450(u32 param0, u32 param1) THUMB_FUNC u32 MOD63_021DB474(u32 param0, u32 param1) { - u32 res0 = (UNK_021064C0)(param0, param1, 1); + u32 res0 = (NNS_GfdDefaultFuncAllocPlttVram)(param0, param1, 1); GF_ASSERT(res0); FUN_020132BC(res0); return (u32)((u16)res0 * 8); @@ -114,7 +114,7 @@ THUMB_FUNC void MOD63_021DB5A8(UnkStruct63_021DB450 *param0) return; } FUN_020222AC(); - FUN_020B02C8(); + NNS_G2dSetupSoftwareSpriteCamera(); (void)FUN_02006ED4(param0->field_00); MOD63_021DB934(); FUN_020222B4(1, 0); diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 41a37952d..fa1d5be34 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -416,7 +416,7 @@ MOD64_021D785C: ; 0x021D785C push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -456,7 +456,7 @@ MOD64_021D78B4: ; 0x021D78B4 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _021D7940 ; =0x04000060 ldr r1, _021D7944 ; =0xFFFFCFFD @@ -511,11 +511,11 @@ _021D7900: str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager add sp, #4 pop {r3, r4, pc} .align 2, 0 @@ -533,8 +533,8 @@ _021D7960: .word 0xBFFF0000 thumb_func_start MOD64_021D7964 MOD64_021D7964: ; 0x021D7964 push {r3, lr} - bl FUN_020AEAF4 - bl FUN_020AEC60 + bl NNS_GfdResetFrmTexVramState + bl NNS_GfdResetFrmPlttVramState pop {r3, pc} thumb_func_end MOD64_021D7964 @@ -741,13 +741,13 @@ MOD64_021D7B04: ; 0x021D7B04 mov r1, #2 lsl r1, r1, #8 str r0, [r5, r1] - ldr r3, _021D7BA4 ; =UNK_021064B8 + ldr r3, _021D7BA4 ; =NNS_GfdDefaultFuncAllocTexVram lsl r0, r1, #6 mov r1, #0 ldr r3, [r3] add r2, r1, #0 blx r3 - ldr r3, _021D7BA8 ; =UNK_021064C0 + ldr r3, _021D7BA8 ; =NNS_GfdDefaultFuncAllocPlttVram add r4, r0, #0 ldr r3, [r3] mov r0, #0x80 @@ -808,8 +808,8 @@ _021D7B8E: blt _021D7B8E pop {r3, r4, r5, r6, r7, pc} nop -_021D7BA4: .word UNK_021064B8 -_021D7BA8: .word UNK_021064C0 +_021D7BA4: .word NNS_GfdDefaultFuncAllocTexVram +_021D7BA8: .word NNS_GfdDefaultFuncAllocPlttVram _021D7BAC: .word 0x7FFF0000 _021D7BB0: .word 0xFFFF0000 thumb_func_end MOD64_021D7B04 @@ -1059,7 +1059,7 @@ MOD64_021D7D7C: ; 0x021D7D7C mov r0, #0x52 bl UncompressFromNarc str r0, [r4, #0x54] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r4, #0x58] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -1067,7 +1067,7 @@ MOD64_021D7D7C: ; 0x021D7D7C add r0, r0, r1 str r0, [r4, #0x5c] ldr r0, [r4, #0x54] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r4, #0x60] bl FUN_0201B3C4 ldr r0, [r4, #0x54] @@ -1075,7 +1075,7 @@ MOD64_021D7D7C: ; 0x021D7D7C bl FUN_0201B3A8 ldr r1, [r4, #0x5c] add r0, r4, #0 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit add sp, #4 pop {r3, r4, pc} thumb_func_end MOD64_021D7D7C @@ -1094,20 +1094,20 @@ MOD64_021D7DC0: ; 0x021D7DC0 bl UncompressFromNarc str r0, [r4, #0x64] mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx str r0, [r4, #0x68] ldr r1, [r4, #0x68] ldr r2, [r4, #0x5c] add r0, r5, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4, #0x6c] ldr r1, [r4, #0x68] ldr r2, [r4, #0x5c] ldr r3, [r4, #0x60] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit ldr r1, [r4, #0x6c] add r0, r4, #0 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -1128,7 +1128,7 @@ _021D7E14: beq _021D7E28 ldr r1, [r5, #0x6c] add r0, r4, #0 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj ldr r0, [r5, #0x64] bl FreeToHeap _021D7E28: @@ -1442,18 +1442,18 @@ MOD64_021D8058: ; 0x021D8058 ldr r2, _021D809C ; =0xFFFFF000 add r1, r0, #0 add r3, r0, #0 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector ldr r1, _021D80A0 ; =0x00007FFF mov r0, #0 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor ldr r0, _021D80A0 ; =0x00007FFF mov r2, #0 add r1, r0, #0 - bl FUN_020B83E0 + bl NNS_G3dGlbMaterialColorDiffAmb ldr r0, _021D80A0 ; =0x00007FFF mov r2, #0 add r1, r0, #0 - bl FUN_020B83BC + bl NNS_G3dGlbMaterialColorSpecEmi mov r0, #0x26 lsl r0, r0, #4 mov r4, #0 @@ -1634,9 +1634,9 @@ MOD64_021D81D8: ; 0x021D81D8 mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 - bl FUN_020BB394 - bl FUN_020B02C8 + bl NNS_G3dGeBufferOP_N + bl NNS_G3dGeFlushBuffer + bl NNS_G2dSetupSoftwareSpriteCamera mov r0, #2 lsl r0, r0, #8 ldr r0, [r4, r0] @@ -1648,11 +1648,11 @@ MOD64_021D81D8: ; 0x021D81D8 mov r0, #0x12 add r1, sp, #4 str r2, [sp, #4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N bl FUN_0201EBA4 add r0, r4, #0 bl MOD64_021D8058 @@ -1660,7 +1660,7 @@ MOD64_021D81D8: ; 0x021D81D8 mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, #0 add r1, r0, #0 bl FUN_020222B4 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s index b3f219dca..e9e1ed782 100644 --- a/arm9/modules/65/asm/module_65.s +++ b/arm9/modules/65/asm/module_65.s @@ -5301,7 +5301,7 @@ MOD65_021D9E98: ; 0x021D9E98 mov r2, #0x1c add r5, r0, #0 bl MI_CpuFill8 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_Init bl G3X_InitMtxStack ldr r0, _021D9F34 ; =0x04000060 @@ -5388,8 +5388,8 @@ MOD65_021D9F50: ; 0x021D9F50 mov r0, #2 str r0, [r2] str r3, [r1] - bl FUN_020B849C - bl FUN_020B02C8 + bl NNS_G3dGlbFlushP + bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #4] bl FUN_02006ED4 ldr r0, _021D9F88 ; =0x04000540 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index 0dda816f2..2fc19d083 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -138,7 +138,7 @@ MOD66_021D75C8: ; 0x021D75C8 beq _021D75DE blx r1 _021D75DE: - bl FUN_020AEEB8 + bl NNS_GfdDoVramTransfer add r0, r4, #0 bl MOD66_021D9220 ldr r0, [r4, #0x28] diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index ca1a771aa..b62037b86 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -686,7 +686,7 @@ MOD69_0222DB2C: ; 0x0222DB2C mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, _0222DB98 ; =0x00001B38 ldr r0, [r4, r0] bl MOD69_0222F11C @@ -694,11 +694,11 @@ MOD69_0222DB2C: ; 0x0222DB2C mov r0, #0x12 add r1, sp, #4 str r2, [sp, #4] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, _0222DB9C ; =0x00001B3C ldr r0, [r4, r0] bl MOD69_0222F63C @@ -706,7 +706,7 @@ MOD69_0222DB2C: ; 0x0222DB2C mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, _0222DBA0 ; =0x04000540 mov r1, #1 str r1, [r0] @@ -921,7 +921,7 @@ MOD69_0222DD54: ; 0x0222DD54 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _0222DDE4 ; =0x04000060 ldr r2, _0222DDE8 ; =0xFFFFCFFD @@ -957,11 +957,11 @@ MOD69_0222DD54: ; 0x0222DD54 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -1071,7 +1071,7 @@ MOD69_0222DE98: ; 0x0222DE98 push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -1193,19 +1193,19 @@ _0222DF72: str r0, [sp, #0x34] _0222DF98: add r0, sp, #0x5c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #0x48 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy ldr r0, [sp, #0x44] add r1, r7, #0 mov r2, #1 add r3, sp, #0x5c - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping ldr r0, [sp, #0x40] add r1, r6, #0 mov r2, #1 add r3, sp, #0x48 - bl FUN_020B1240 + bl NNS_G2dLoadPalette ldr r0, [sp, #0x20] add r0, r0, #1 str r0, [sp, #0x94] @@ -1333,20 +1333,20 @@ _0222DF98: b _0222DF98 _0222E0D4: add r0, sp, #0x5c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #0x48 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r1, #0x96 ldr r0, [sp, #0x44] lsl r1, r1, #8 mov r2, #1 add r3, sp, #0x5c - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping ldr r0, [sp, #0x40] mov r1, #0xc0 mov r2, #1 add r3, sp, #0x48 - bl FUN_020B1240 + bl NNS_G2dLoadPalette ldr r0, [sp, #0x14] ldr r0, [r0, #0xc] ldr r0, [r0] @@ -2169,7 +2169,7 @@ _0222E77E: str r0, [r3] add r0, r4, #0 add r0, #0x48 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0x19 add r0, r4, #0 lsl r3, r3, #8 @@ -2179,7 +2179,7 @@ _0222E77E: add r0, #0x48 mov r1, #1 add r2, r2, r3 - bl FUN_020B1A1C + bl NNS_G2dSetImageLocation ldr r0, _0222E7BC ; =MOD69_0222E7C0 add r1, r4, #0 mov r2, #0 diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index eb5ef9736..f6d3dc58d 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -407,7 +407,7 @@ MOD70_021D77CC: ; 0x021D77CC mov r0, #0x3d bl FUN_02016B94 str r0, [r4, #0x10] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -1462,19 +1462,19 @@ MOD70_021D7FF8: ; 0x021D7FF8 add r7, r4, #0 _021D8050: add r0, sp, #0x2c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, sp, #0x18 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy ldr r0, [sp, #0x14] add r1, r4, #0 mov r2, #1 add r3, sp, #0x2c - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping ldr r0, [sp, #0x10] add r1, r7, #0 mov r2, #1 add r3, sp, #0x18 - bl FUN_020B1240 + bl NNS_G2dLoadPalette ldr r0, [r6] lsl r0, r0, #0xc str r0, [sp, #0x58] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index d5c1ec6fc..b9d99cf41 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -2224,7 +2224,7 @@ MOD71_0222E884: ; 0x0222E884 add r6, r0, #0 beq _0222E8D6 add r1, sp, #4 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData cmp r0, #0 beq _0222E8D0 ldr r0, [sp, #0x1c] @@ -2449,7 +2449,7 @@ MOD71_0222EA68: ; 0x0222EA68 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7f diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index bfb0199d8..f00d35cfa 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -2366,9 +2366,9 @@ MOD73_021D8858: ; 0x021D8858 mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 - bl FUN_020BB394 - bl FUN_020B02C8 + bl NNS_G3dGeBufferOP_N + bl NNS_G3dGeFlushBuffer + bl NNS_G2dSetupSoftwareSpriteCamera mov r0, #0xaf lsl r0, r0, #2 ldr r0, [r4, r0] @@ -2380,7 +2380,7 @@ _021D8882: mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, #0 add r1, r0, #0 bl FUN_020222B4 @@ -2595,7 +2595,7 @@ MOD73_021D8A18: ; 0x021D8A18 push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -2754,7 +2754,7 @@ _021D8B3A: MOD73_021D8B4C: ; 0x021D8B4C push {r3, r4, lr} sub sp, #4 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _021D8BB8 ; =0x04000060 ldr r2, _021D8BBC ; =0xFFFFCFFD @@ -2793,11 +2793,11 @@ MOD73_021D8B4C: ; 0x021D8B4C str r0, [r2] str r1, [r2, #0x40] mov r1, #1 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #2 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager add sp, #4 pop {r3, r4, pc} nop @@ -2812,8 +2812,8 @@ _021D8BCC: .word 0xBFFF0000 thumb_func_start MOD73_021D8BD0 MOD73_021D8BD0: ; 0x021D8BD0 push {r3, lr} - bl FUN_020AEAF4 - bl FUN_020AEC60 + bl NNS_GfdResetFrmTexVramState + bl NNS_GfdResetFrmPlttVramState pop {r3, pc} thumb_func_end MOD73_021D8BD0 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s index 0189a34da..651527c15 100644 --- a/arm9/modules/74/asm/module_74.s +++ b/arm9/modules/74/asm/module_74.s @@ -341,7 +341,7 @@ MOD74_021D7784: ; 0x021D7784 push {r4, lr} add r4, r0, #0 bl MOD74_021D82E8 - bl FUN_020AEEB8 + bl NNS_GfdDoVramTransfer ldr r0, [r4, #0x10] bl FUN_0201AB60 ldr r3, _021D77A4 ; =0x027E0000 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index 82294cbf9..f84a1de72 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -7834,7 +7834,7 @@ MOD75_021EA950: ; 0x021EA950 bl NARC_AllocAndReadWholeMember add r1, r5, #0 add r4, r0, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD75_021EA950 @@ -8587,7 +8587,7 @@ MOD75_021EAF54: ; 0x021EAF54 bl NARC_AllocAndReadWholeMember add r1, r5, #0 add r4, r0, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD75_021EAF54 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index cafcb158c..bdbf644f6 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -2554,7 +2554,7 @@ MOD77_021D89F4: ; 0x021D89F4 asr r1, r1, #0x10 asr r2, r2, #0x10 asr r3, r3, #0x10 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector pop {r4, pc} nop _021D8A28: .word 0x0000C2DC diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s index 5d9f46251..7fc7439a6 100644 --- a/arm9/modules/78/asm/module_78.s +++ b/arm9/modules/78/asm/module_78.s @@ -66,13 +66,13 @@ _021D7558: ldrsh r2, [r3, r7] ldrsh r3, [r3, r6] add r0, r4, #0 - bl FUN_020B8418 + bl NNS_G3dGlbLightVector ldr r2, [r5, #4] lsl r1, r4, #1 add r1, r2, r1 ldrh r1, [r1, #0x18] add r0, r4, #0 - bl FUN_020B8404 + bl NNS_G3dGlbLightColor add r0, r4, #1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 @@ -82,12 +82,12 @@ _021D7558: ldrh r0, [r2, #0x20] ldrh r1, [r2, #0x22] ldr r2, [r2, #0x28] - bl FUN_020B83E0 + bl NNS_G3dGlbMaterialColorDiffAmb ldr r2, [r5, #4] ldrh r0, [r2, #0x24] ldrh r1, [r2, #0x26] ldr r2, [r2, #0x2c] - bl FUN_020B83BC + bl NNS_G3dGlbMaterialColorSpecEmi ldr r3, [r5, #4] ldr r0, [r3, #0x40] str r0, [sp] @@ -97,7 +97,7 @@ _021D7558: ldr r1, [r3, #0x34] ldr r2, [r3, #0x38] ldr r3, [r3, #0x3c] - bl FUN_020B8390 + bl NNS_G3dGlbPolygonAttr mov r0, #0 mov r1, #0x48 bl FUN_02079A70 @@ -243,7 +243,7 @@ _021D76C8: add r1, #0x80 ldr r1, [r1] add r0, r7, #0 - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj ldr r0, [r5, #0x60] bl FreeToHeap add r0, r4, #1 @@ -358,26 +358,26 @@ MOD78_021D778C: ; 0x021D778C add r2, #0x5c bl FUN_0201B234 ldr r0, [r5, #0x5c] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [sp, #4] ldr r0, [r5, #0x58] mov r1, #0 mov r2, #0x40 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag ldr r0, [r5, #0x58] mov r1, #0 mov r2, #0x80 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #2 ldr r0, [r5, #0x58] mov r1, #0 lsl r2, r2, #8 - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag mov r2, #1 ldr r0, [r5, #0x58] mov r1, #0 lsl r2, r2, #0xa - bl FUN_020BC094 + bl NNSi_G3dModifyMatFlag add r0, r5, #0 str r0, [sp, #8] add r0, #0x70 @@ -402,12 +402,12 @@ _021D780E: bl NARC_AllocAndReadWholeMember str r0, [r4, #0x60] mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx add r7, r0, #0 ldr r0, [sp, #8] ldr r2, [r5, #0x58] add r1, r7, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj add r1, r4, #0 add r1, #0x80 str r0, [r1] @@ -417,11 +417,11 @@ _021D780E: ldr r2, [r5, #0x58] ldr r3, [sp, #4] add r1, r7, #0 - bl FUN_020B8110 + bl NNS_G3dAnmObjInit add r4, #0x80 ldr r1, [r4] add r0, r5, #4 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index ea6a3c138..9abe50f0b 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -1473,7 +1473,7 @@ _0222DFE4: mov r1, #2 lsl r1, r1, #0x10 mov r2, #0 - bl tempName_NNS_FndCreateExpHeapEx + bl NNS_FndCreateExpHeapEx str r0, [r4, #0x4c] mov r0, #1 str r0, [r5] @@ -1830,7 +1830,7 @@ MOD80_0222E3CC: ; 0x0222E3CC push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e @@ -2269,7 +2269,7 @@ MOD80_0222E750: ; 0x0222E750 add r1, r5, #0 ldr r0, [r0] add r2, r4, #0 - bl tempName_NNS_FndAllocFromExpHeapEx + bl NNS_FndAllocFromExpHeapEx add r4, r0, #0 add r0, r6, #0 bl OS_RestoreInterrupts @@ -2289,7 +2289,7 @@ MOD80_0222E778: ; 0x0222E778 ldr r0, _0222E798 ; =0x02237E24 add r1, r5, #0 ldr r0, [r0] - bl FUN_020ADDF0 + bl NNS_FndFreeToExpHeap add r0, r4, #0 bl OS_RestoreInterrupts _0222E794: @@ -10717,7 +10717,7 @@ MOD80_02232BAC: ; 0x02232BAC add r4, r0, #0 beq _02232BCE add r1, r5, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _02232BCE add r0, r4, #0 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 8ea0a1a63..5074a352e 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -106,7 +106,7 @@ _02237F0A: lsl r1, r1, #2 str r0, [r4, r1] _02237F22: - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #1 str r0, [sp] mov r0, #0x7f @@ -1479,7 +1479,7 @@ MOD81_02238940: ; 0x02238940 add r5, r0, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N bl FUN_0201EBA4 ldr r0, [r5, #0x1c] mov r6, #0 @@ -1504,7 +1504,7 @@ _02238976: mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -1579,7 +1579,7 @@ MOD81_02238988: ; 0x02238988 add r2, r0, #0 add r3, r0, #0 str r0, [sp, #4] - bl FUN_020B8390 + bl NNS_G3dGlbPolygonAttr _02238A20: add r1, r4, #0 add r0, r4, #4 @@ -1668,7 +1668,7 @@ MOD81_02238A84: ; 0x02238A84 ldr r0, [r4, r6] cmp r0, #0 beq _02238B02 - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r5, #0x58] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -1676,7 +1676,7 @@ MOD81_02238A84: ; 0x02238A84 add r0, r0, r1 str r0, [r5, #0x5c] ldr r0, [r5] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r5, #0x60] bl FUN_0201B3C4 ldr r0, [r5] @@ -1684,7 +1684,7 @@ MOD81_02238A84: ; 0x02238A84 bl FUN_0201B3A8 ldr r1, [r5, #0x5c] add r0, r5, #4 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit ldr r0, [sp, #0x20] mov r1, #0x1f str r0, [r5, #0x68] @@ -1777,13 +1777,13 @@ MOD81_02238B5C: ; 0x02238B5C mov r2, #0x1f mov r1, #0 lsl r2, r2, #0x10 - bl FUN_020BC02C + bl NNSi_G3dModifyPolygonAttrMask pop {r3, pc} _02238B76: mov r2, #0x1f mov r1, #1 lsl r2, r2, #0x10 - bl FUN_020BC02C + bl NNSi_G3dModifyPolygonAttrMask pop {r3, pc} .align 2, 0 thumb_func_end MOD81_02238B5C @@ -1857,7 +1857,7 @@ MOD81_02238B8C: ; 0x02238B8C mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N bl FUN_0201EBA4 add r1, r4, #0 ldr r0, [r4, #0x5c] @@ -1871,7 +1871,7 @@ MOD81_02238B8C: ; 0x02238B8C mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N add r0, r4, #0 add sp, #0x4c pop {r3, r4, pc} @@ -2123,9 +2123,9 @@ MOD81_02238DFC: ; 0x02238DFC mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 - bl FUN_020BB394 - bl FUN_020B02C8 + bl NNS_G3dGeBufferOP_N + bl NNS_G3dGeFlushBuffer + bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0xc] bl FUN_020081C4 ldr r0, [r4, #0xc] @@ -2134,7 +2134,7 @@ MOD81_02238DFC: ; 0x02238DFC str r2, [sp] mov r0, #0x12 add r1, sp, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r4, #0x5c] bl MOD81_02238940 mov r0, #0 @@ -2694,7 +2694,7 @@ MOD81_022392D8: ; 0x022392D8 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _02239380 ; =0x04000060 ldr r2, _02239384 ; =0xFFFFCFFD @@ -2730,19 +2730,19 @@ MOD81_022392D8: ; 0x022392D8 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 - ldr r3, _02239394 ; =UNK_021064B8 + bl NNS_GfdInitFrmPlttVramManager + ldr r3, _02239394 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #1 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _02239398 ; =UNK_021064C0 + ldr r3, _02239398 ; =NNS_GfdDefaultFuncAllocPlttVram add r4, r0, #0 ldr r3, [r3] mov r0, #0x80 @@ -2774,8 +2774,8 @@ _02239384: .word 0xFFFFCFFD _02239388: .word 0x0000CFFB _0223938C: .word 0x04000540 _02239390: .word 0xBFFF0000 -_02239394: .word UNK_021064B8 -_02239398: .word UNK_021064C0 +_02239394: .word NNS_GfdDefaultFuncAllocTexVram +_02239398: .word NNS_GfdDefaultFuncAllocPlttVram _0223939C: .word 0x7FFF0000 _022393A0: .word 0xFFFF0000 thumb_func_end MOD81_022392D8 @@ -2829,9 +2829,9 @@ MOD81_022393F4: ; 0x022393F4 mov r3, #8 bl MOD81_0223874C add r0, sp, #0x5c - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x38 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -3962,7 +3962,7 @@ MOD81_02239CDC: ; 0x02239CDC push {r4, lr} sub sp, #0x10 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _02239DBC ; =0x04000060 ldr r1, _02239DC0 ; =0xFFFFCFFD @@ -4006,11 +4006,11 @@ MOD81_02239CDC: ; 0x02239CDC str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -4099,9 +4099,9 @@ MOD81_02239E00: ; 0x02239E00 mov r3, #0xc bl MOD81_0223874C add r0, sp, #0x60 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x3c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -5879,7 +5879,7 @@ MOD81_0223ABD8: ; 0x0223ABD8 push {r3, r4, lr} sub sp, #0x24 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _0223ACAC ; =0x04000060 ldr r1, _0223ACB0 ; =0xFFFFCFFD @@ -5923,11 +5923,11 @@ MOD81_0223ABD8: ; 0x0223ABD8 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -6006,9 +6006,9 @@ MOD81_0223ACE8: ; 0x0223ACE8 mov r3, #8 bl MOD81_0223874C add r0, sp, #0x5c - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x38 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -7391,7 +7391,7 @@ MOD81_0223B7E8: ; 0x0223B7E8 push {r3, r4, lr} sub sp, #0x24 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _0223B8C8 ; =0x04000060 ldr r1, _0223B8CC ; =0xFFFFCFFD @@ -7435,11 +7435,11 @@ MOD81_0223B7E8: ; 0x0223B7E8 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -7525,9 +7525,9 @@ MOD81_0223B908: ; 0x0223B908 mov r3, #8 bl MOD81_0223874C add r0, sp, #0x5c - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x38 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 @@ -8643,7 +8643,7 @@ MOD81_0223C1DC: ; 0x0223C1DC push {r4, lr} sub sp, #0x10 add r4, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _0223C2C0 ; =0x04000060 ldr r1, _0223C2C4 ; =0xFFFFCFFD @@ -8687,11 +8687,11 @@ MOD81_0223C1DC: ; 0x0223C1DC str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -9177,9 +9177,9 @@ MOD81_0223C60C: ; 0x0223C60C mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 - bl FUN_020BB394 - bl FUN_020B02C8 + bl NNS_G3dGeBufferOP_N + bl NNS_G3dGeFlushBuffer + bl NNS_G2dSetupSoftwareSpriteCamera ldr r0, [r4, #0x10] bl FUN_020081C4 ldr r0, [r4, #0x10] @@ -9188,7 +9188,7 @@ MOD81_0223C60C: ; 0x0223C60C str r2, [sp] mov r0, #0x12 add r1, sp, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N ldr r0, [r4, #0x60] cmp r0, #0 beq _0223C64A @@ -9746,7 +9746,7 @@ MOD81_0223CAC4: ; 0x0223CAC4 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _0223CB6C ; =0x04000060 ldr r2, _0223CB70 ; =0xFFFFCFFD @@ -9782,19 +9782,19 @@ MOD81_0223CAC4: ; 0x0223CAC4 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 - ldr r3, _0223CB80 ; =UNK_021064B8 + bl NNS_GfdInitFrmPlttVramManager + ldr r3, _0223CB80 ; =NNS_GfdDefaultFuncAllocTexVram mov r0, #1 mov r1, #0 ldr r3, [r3] lsl r0, r0, #0xe add r2, r1, #0 blx r3 - ldr r3, _0223CB84 ; =UNK_021064C0 + ldr r3, _0223CB84 ; =NNS_GfdDefaultFuncAllocPlttVram add r4, r0, #0 ldr r3, [r3] mov r0, #0x80 @@ -9826,8 +9826,8 @@ _0223CB70: .word 0xFFFFCFFD _0223CB74: .word 0x0000CFFB _0223CB78: .word 0x04000540 _0223CB7C: .word 0xBFFF0000 -_0223CB80: .word UNK_021064B8 -_0223CB84: .word UNK_021064C0 +_0223CB80: .word NNS_GfdDefaultFuncAllocTexVram +_0223CB84: .word NNS_GfdDefaultFuncAllocPlttVram _0223CB88: .word 0x7FFF0000 _0223CB8C: .word 0xFFFF0000 thumb_func_end MOD81_0223CAC4 @@ -9881,9 +9881,9 @@ MOD81_0223CBE0: ; 0x0223CBE0 mov r3, #8 bl MOD81_0223874C add r0, sp, #0x5c - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy add r0, sp, #0x38 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r3, #0 str r3, [sp] mov r2, #1 diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index 6af5c4447..7b00d33af 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -715,7 +715,7 @@ _0222DA48: mov r1, #2 lsl r1, r1, #0x10 mov r2, #0 - bl tempName_NNS_FndCreateExpHeapEx + bl NNS_FndCreateExpHeapEx str r0, [r4, #0x28] mov r0, #1 str r0, [r5] @@ -984,7 +984,7 @@ MOD82_0222DD54: ; 0x0222DD54 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e @@ -1256,7 +1256,7 @@ MOD82_0222DF74: ; 0x0222DF74 add r1, r5, #0 ldr r0, [r0, #4] add r2, r4, #0 - bl tempName_NNS_FndAllocFromExpHeapEx + bl NNS_FndAllocFromExpHeapEx add r4, r0, #0 add r0, r6, #0 bl OS_RestoreInterrupts @@ -1276,7 +1276,7 @@ MOD82_0222DF9C: ; 0x0222DF9C ldr r0, _0222DFBC ; =0x0222FC0C add r1, r5, #0 ldr r0, [r0, #4] - bl FUN_020ADDF0 + bl NNS_FndFreeToExpHeap add r0, r4, #0 bl OS_RestoreInterrupts _0222DFB8: diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index 233b529ae..f067a6f16 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -9385,7 +9385,7 @@ MOD83_022320D8: ; 0x022320D8 bl UncompressFromNarc add r1, sp, #4 add r7, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r0, _02232114 ; =0x0000299C ldr r2, [sp, #4] lsl r1, r4, #0x18 @@ -15684,7 +15684,7 @@ MOD83_022350EC: ; 0x022350EC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e @@ -15971,7 +15971,7 @@ MOD83_022352FC: ; 0x022352FC bl ReadWholeNarcMemberByIdPair add r0, r4, #0 add r1, r7, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _02235330 add r0, r4, #0 @@ -15994,7 +15994,7 @@ MOD83_02235334: ; 0x02235334 bl NARC_ReadWholeMember add r0, r4, #0 add r1, r5, #0 - bl FUN_020B0030 + bl NNS_G2dGetUnpackedBGCharacterData pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD83_02235334 @@ -23333,7 +23333,7 @@ MOD83_02238B4C: ; 0x02238B4C push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r6, _02238BB4 ; =MOD83_0223BC30 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x7e @@ -24223,7 +24223,7 @@ MOD83_022391EC: ; 0x022391EC bl UncompressFromNarc add r1, sp, #0x14 str r0, [sp, #0x10] - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData ldr r2, [sp, #0x14] mov r3, #6 add r0, r5, #0 diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index ae3f7c4a7..2f29a2a9a 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -55,7 +55,7 @@ _021D7516: str r0, [r4, #0x18] mov r0, #0 str r0, [r4, #0x1c] - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -727,7 +727,7 @@ MOD84_021D7AB8: ; 0x021D7AB8 thumb_func_start MOD84_021D7AC8 MOD84_021D7AC8: ; 0x021D7AC8 push {r3, lr} - bl FUN_020BB7F4 + bl NNS_G3dInit bl G3X_InitMtxStack ldr r0, _021D7B3C ; =0x04000060 ldr r2, _021D7B40 ; =0xFFFFCFFD @@ -761,11 +761,11 @@ MOD84_021D7AC8: ; 0x021D7AC8 str r0, [r1, #0x40] mov r0, #1 add r1, r0, #0 - bl FUN_020AEB70 + bl NNS_GfdInitFrmTexVramManager mov r0, #1 lsl r0, r0, #0xe mov r1, #1 - bl FUN_020AEDF4 + bl NNS_GfdInitFrmPlttVramManager mov r0, #1 add r1, r0, #0 bl GX_EngineAToggleLayers @@ -899,7 +899,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 add r0, #0x98 strh r1, [r0] ldr r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r4, #0x5c] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -907,7 +907,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 add r0, r0, r1 str r0, [r4, #0x60] ldr r0, [r4] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r4, #0x64] bl FUN_0201B3C4 ldr r0, [r4] @@ -916,7 +916,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 add r0, r4, #0 ldr r1, [r4, #0x60] add r0, #8 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit mov r2, #0 str r2, [sp] add r0, sp, #8 @@ -937,22 +937,22 @@ MOD84_021D7BC8: ; 0x021D7BC8 bl FUN_02016B20 ldr r0, [r4, #4] mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx add r5, r0, #0 add r0, r4, #0 ldr r2, [r4, #0x60] add r0, #0x6c add r1, r5, #0 - bl FUN_020BB8D0 + bl NNS_G3dAllocAnmObj str r0, [r4, #0x68] ldr r2, [r4, #0x60] ldr r3, [r4, #0x64] add r1, r5, #0 - bl FUN_020B8110 + bl NNS_G3dAnmObjInit add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #8 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r4, #0 mov r1, #0 add r0, #0x9c @@ -981,7 +981,7 @@ MOD84_021D7CD4: ; 0x021D7CD4 add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #0x6c - bl thunk_FUN_020ae84c + bl NNS_G3dFreeAnmObj ldr r0, [r4, #4] bl FreeToHeap _021D7CF0: @@ -1002,7 +1002,7 @@ MOD84_021D7CFC: ; 0x021D7CFC mov r1, #0 mov r0, #0x11 add r2, r1, #0 - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N bl FUN_0201EBA4 add r4, #0x38 add r0, sp, #0x28 @@ -1098,7 +1098,7 @@ _021D7DBA: mov r0, #0x12 add r1, sp, #0 str r2, [sp] - bl FUN_020BB1C0 + bl NNS_G3dGeBufferOP_N mov r0, #0 mov r1, #1 bl FUN_020222B4 @@ -1168,7 +1168,7 @@ _021D7E08: add r0, #0x98 strh r1, [r0] ldr r0, [r4] - bl FUN_020BC13C + bl NNS_G3dGetMdlSet str r0, [r4, #0x5c] ldrh r1, [r0, #0xe] add r1, r0, r1 @@ -1176,7 +1176,7 @@ _021D7E08: add r0, r0, r1 str r0, [r4, #0x60] ldr r0, [r4] - bl FUN_020BC0FC + bl NNS_G3dGetTex str r0, [r4, #0x64] bl FUN_0201B3C4 ldr r0, [r4] @@ -1185,22 +1185,22 @@ _021D7E08: add r0, r4, #0 ldr r1, [r4, #0x60] add r0, #8 - bl FUN_020B80B4 + bl NNS_G3dRenderObjInit _021D7E9A: ldr r0, [r4, #4] cmp r0, #0 beq _021D7ED0 mov r1, #0 - bl FUN_020BC4C8 + bl NNS_G3dGetAnmByIdx add r1, r0, #0 ldr r0, [r4, #0x68] ldr r2, [r4, #0x60] ldr r3, [r4, #0x64] - bl FUN_020B8110 + bl NNS_G3dAnmObjInit add r0, r4, #0 ldr r1, [r4, #0x68] add r0, #8 - bl FUN_020B7EFC + bl NNS_G3dRenderObjAddAnmObj add r0, r4, #0 mov r1, #0 add r0, #0x9c @@ -1227,27 +1227,27 @@ MOD84_021D7EDC: ; 0x021D7EDC mov r0, #0x82 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0x8b lsl r0, r0, #2 add r0, r5, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0x25 lsl r0, r0, #4 add r0, r5, r0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r0, #0x9d lsl r0, r0, #2 add r0, r5, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0xa2 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0xa7 lsl r0, r0, #2 add r0, r5, r0 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy ldr r0, [r5, #0x18] ldr r0, [r0] cmp r0, #1 diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 82d292c62..6a42cff9a 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -1836,10 +1836,10 @@ _021D8ECE: _021D8EF2: add r0, r4, #0 add r0, #0x10 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r4, #0 add r0, #0x34 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r2, #0 str r2, [sp] mov r0, #1 @@ -1922,12 +1922,12 @@ _021D8F86: lsr r7, r5, #1 _021D8FA6: add r0, r4, #0 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy ldr r0, [sp, #0x20] add r1, r5, #0 mov r2, #1 add r3, r4, #0 - bl FUN_020B1768 + bl NNS_G2dLoadImage1DMapping add r6, r6, #1 add r4, #0x24 add r5, r5, r7 @@ -3164,7 +3164,7 @@ _021D995A: str r0, [r4, #0x48] add r0, r4, #0 add r0, #0x10 - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy mov r2, #0 str r2, [sp] mov r0, #1 @@ -3181,7 +3181,7 @@ _021D995A: bl FUN_02006AE4 add r0, r4, #0 add r0, #0x34 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r0, #0x4b str r0, [sp] add r0, r4, #0 @@ -4259,10 +4259,10 @@ _021DA1E2: str r0, [r4, #0x54] add r0, r4, #0 add r0, #0x1c - bl FUN_020B1A24 + bl NNS_G2dInitImageProxy add r0, r4, #0 add r0, #0x40 - bl FUN_020B19DC + bl NNS_G2dInitImagePaletteProxy mov r2, #0 str r2, [sp] mov r0, #1 diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index a77983407..bad84718a 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -570,7 +570,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, _021D7B1C ; =0x00000448 add r5, r0, #0 add r1, r4, r1 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, _021D7B1C ; =0x00000448 mov r2, #0x1a ldr r1, [r4, r1] @@ -588,7 +588,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] @@ -609,7 +609,7 @@ MOD85_021D797C: ; 0x021D797C lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] @@ -633,7 +633,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] @@ -654,7 +654,7 @@ MOD85_021D797C: ; 0x021D797C lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] @@ -678,7 +678,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, _021D7B1C ; =0x00000448 add r5, r0, #0 add r1, r4, r1 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r1, _021D7B1C ; =0x00000448 mov r2, #0x1a ldr r1, [r4, r1] @@ -696,7 +696,7 @@ MOD85_021D797C: ; 0x021D797C ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 - bl FUN_020B0088 + bl NNS_G2dGetUnpackedCharacterData ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] @@ -717,7 +717,7 @@ MOD85_021D797C: ; 0x021D797C lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 - bl FUN_020B0180 + bl NNS_G2dGetUnpackedScreenData mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] @@ -933,7 +933,7 @@ MOD85_021D7CB0: ; 0x021D7CB0 push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 - bl FUN_020B0FC0 + bl NNS_G2dInitOamManagerModule mov r0, #0 str r0, [sp] mov r1, #0x80 @@ -8587,7 +8587,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData ldr r0, [sp] mov r1, #1 add r2, r4, #4 @@ -8627,7 +8627,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData add r2, r4, #0 ldr r0, [sp] mov r1, #0 @@ -8641,7 +8641,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData add r2, r4, #0 ldr r0, [sp] mov r1, #0 @@ -8655,7 +8655,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData add r2, r4, #0 ldr r0, [sp] mov r1, #0 @@ -8669,7 +8669,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData mov r2, #0x51 lsl r2, r2, #2 ldr r0, [sp] @@ -8684,7 +8684,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData mov r2, #0x59 lsl r2, r2, #2 ldr r0, [sp] @@ -8705,7 +8705,7 @@ MOD85_021DB494: ; 0x021DB494 bl MOD85_021D8144 add r1, sp, #0 add r5, r0, #0 - bl FUN_020B0138 + bl NNS_G2dGetUnpackedPaletteData mov r2, #0x69 lsl r2, r2, #2 ldr r0, [sp] diff --git a/arm9/src/heap.c b/arm9/src/heap.c index f28b4f888..7ae25c3ba 100644 --- a/arm9/src/heap.c +++ b/arm9/src/heap.c @@ -3,14 +3,14 @@ #include "unk_02031734.h" -extern void *tempName_NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2); -extern void *tempName_NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2); -extern void thunk_FUN_020adc8c(); -extern void FUN_020ADDF0(void *ptr1, void *ptr2); -extern u32 FUN_020ADDC8(void *param0); -extern void FUN_020AE82C(u32 param0, void *param1, u32 param2); -extern u32 FUN_020ADDC0(void *param0); -extern void FUN_020ADE2C(void *ptr1, void *ptr2, u32 param2); +extern void *NNS_FndCreateExpHeapEx(void *param0, u32 param1, u32 param2); +extern void *NNS_FndAllocFromExpHeapEx(void *param0, u32 param1, s32 param2); +extern void NNS_FndDestroyExpHeap(); +extern void NNS_FndFreeToExpHeap(void *ptr1, void *ptr2); +extern u32 NNS_FndGetTotalFreeSizeForExpHeap(void *param0); +extern void NNS_FndInitAllocatorForExpHeap(u32 param0, void *param1, u32 param2); +extern u32 NNS_FndGetSizeForMBlockExpHeap(void *param0); +extern void NNS_FndResizeForMBlockExpHeap(void *ptr1, void *ptr2, u32 param2); struct UnkStruct_020166C8 UNK_021C4D28; @@ -68,7 +68,7 @@ THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size) if (ptr != 0) { - UNK_021C4D28.unk00[r7] = tempName_NNS_FndCreateExpHeapEx(ptr, param0[0], 0); + UNK_021C4D28.unk00[r7] = NNS_FndCreateExpHeapEx(ptr, param0[0], 0); UNK_021C4D28.unk10[r7] = (u8)r7; } else @@ -143,13 +143,13 @@ THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3) void *ptr2 = UNK_021C4D28.unk00[ptr[param0]]; if (ptr2 != 0) { - void *ptr3 = tempName_NNS_FndAllocFromExpHeapEx(ptr2, param2, param3); + void *ptr3 = NNS_FndAllocFromExpHeapEx(ptr2, param2, param3); if (ptr3 != 0) { param3 = FUN_020167F4(); if (param3 >= 0) { - UNK_021C4D28.unk00[param3] = tempName_NNS_FndCreateExpHeapEx(ptr3, param2, 0); + UNK_021C4D28.unk00[param3] = NNS_FndCreateExpHeapEx(ptr3, param2, 0); if (UNK_021C4D28.unk00[param3] != 0) @@ -193,14 +193,14 @@ THUMB_FUNC void FUN_020168D0(u32 heap_id) if (UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] != 0) { - thunk_FUN_020adc8c(); + NNS_FndDestroyExpHeap(); u8 index = UNK_021C4D28.unk10[heap_id]; void *ptr1 = UNK_021C4D28.unk04[index]; void *ptr2 = UNK_021C4D28.unk08[index]; if (ptr1 != 0 && ptr2 != 0) { - FUN_020ADDF0(ptr1, ptr2); + NNS_FndFreeToExpHeap(ptr1, ptr2); } else { @@ -221,7 +221,7 @@ THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3) OSIntrMode intr_mode = OS_DisableInterrupts(); param1 += 16; - u32 *ptr = (u32 *)tempName_NNS_FndAllocFromExpHeapEx(param0, param1, param2); + u32 *ptr = (u32 *)NNS_FndAllocFromExpHeapEx(param0, param1, param2); OS_RestoreInterrupts(intr_mode); if (ptr != 0) @@ -301,7 +301,7 @@ void FreeToHeap(void *ptr) UNK_021C4D28.unk0c[heap_id]--; OSIntrMode intr_mode = OS_DisableInterrupts(); - FUN_020ADDF0(ptr2, ptr - 16); + NNS_FndFreeToExpHeap(ptr2, ptr - 16); OS_RestoreInterrupts(intr_mode); return; } @@ -322,7 +322,7 @@ void FreeToHeapExplicit(u32 param0, void *param1) u8 heap_id = (u8)((u32 *)param1)[-1]; GF_ASSERT (heap_id == param0); - FUN_020ADDF0(ptr, param1 - 16); + NNS_FndFreeToExpHeap(ptr, param1 - 16); GF_ASSERT (UNK_021C4D28.unk0c[param0]); UNK_021C4D28.unk0c[param0]--; @@ -337,7 +337,7 @@ THUMB_FUNC u32 FUN_02016AF8(u32 param0) if (param0 < UNK_021C4D28.unk14) { u8 index = UNK_021C4D28.unk10[param0]; - return FUN_020ADDC8(UNK_021C4D28.unk00[index]); + return NNS_FndGetTotalFreeSizeForExpHeap(UNK_021C4D28.unk00[index]); } ErrorHandling(); @@ -350,7 +350,7 @@ THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2) { u8 index = UNK_021C4D28.unk10[param1]; - FUN_020AE82C(param0, UNK_021C4D28.unk00[index], param2); + NNS_FndInitAllocatorForExpHeap(param0, UNK_021C4D28.unk00[index], param2); return; } @@ -362,13 +362,13 @@ THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1) GF_ASSERT (OS_GetProcMode() != OS_PROCMODE_IRQ); param1 += 16; - if (FUN_020ADDC0(ptr - 16) >= param1) + if (NNS_FndGetSizeForMBlockExpHeap(ptr - 16) >= param1) { u8 heap_id = (u8)((u32 *)ptr)[-1]; u8 index = UNK_021C4D28.unk10[heap_id]; - FUN_020ADE2C(UNK_021C4D28.unk00[index], ptr - 16, param1); + NNS_FndResizeForMBlockExpHeap(UNK_021C4D28.unk00[index], ptr - 16, param1); return; } ErrorHandling(); diff --git a/arm9/src/sound.c b/arm9/src/sound.c index a1e31bbdb..35710f247 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -28,12 +28,12 @@ extern void FUN_02005CFC(void); void InitSoundData(void * a0, struct Options * a1) { struct SoundData * sdat = GetSoundDataPointer(); - SDAT_Init(); + NNS_SndInit(); FUN_020040C8(); FUN_02004064(sdat); - sdat->unk_00090 = FUN_020C2A94(sdat->unk_00094, sizeof(sdat->unk_00094)); - SDAT_Open(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0); - FUN_020C39CC(sdat->unk_00090); + sdat->unk_00090 = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094)); + NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0); + NNS_SndArcPlayerSetup(sdat->unk_00090); FUN_02004088(sdat); FUN_020040A4(sdat); UNK_02107070[1] = 0; @@ -51,7 +51,7 @@ void DoSoundUpdateFrame(void) FUN_02003C40(); } FUN_02005CFC(); - FUN_020C01A0(); + NNS_SndMain(); } void FUN_02003C40(void) @@ -202,7 +202,7 @@ void * FUN_02003D38(u32 a0) int FUN_02003F3C(int * a0) { struct SoundData * sdat = GetSoundDataPointer(); - int r4 = FUN_020C290C(sdat->unk_00090); + int r4 = NNS_SndHeapSaveState(sdat->unk_00090); GF_ASSERT(r4 != -1); if (a0 != NULL) *a0 = r4; @@ -212,37 +212,37 @@ int FUN_02003F3C(int * a0) void FUN_02003F64(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - FUN_020C2828(sdat->unk_00090, a0); + NNS_SndHeapLoadState(sdat->unk_00090, a0); } BOOL FUN_02003F78(u32 * a0) { struct SoundData * sdat = GetSoundDataPointer(); - return FUN_020C36A8(a0, sdat->unk_00090); + return NNS_SndArcLoadGroup(a0, sdat->unk_00090); } BOOL FUN_02003F90(u32 * a0) { struct SoundData * sdat = GetSoundDataPointer(); - return FUN_020C3674(a0, sdat->unk_00090); + return NNS_SndArcLoadSeq(a0, sdat->unk_00090); } BOOL FUN_02003FA8(u32 * a0, u32 * a1) { struct SoundData * sdat = GetSoundDataPointer(); - return FUN_020C35E0(a0, a1, sdat->unk_00090); + return NNS_SndArcLoadSeqEx(a0, a1, sdat->unk_00090); } BOOL FUN_02003FC4(u32 * a0) { struct SoundData * sdat = GetSoundDataPointer(); - return FUN_020C360C(a0, sdat->unk_00090); + return NNS_SndArcLoadWaveArc(a0, sdat->unk_00090); } BOOL FUN_02003FDC(u32 * a0) { struct SoundData * sdat = GetSoundDataPointer(); - return FUN_020C3640(a0, sdat->unk_00090); + return NNS_SndArcLoadBank(a0, sdat->unk_00090); } u32 * FUN_02003FF4(int a0) @@ -295,7 +295,7 @@ void FUN_02004088(struct SoundData * sdat) int i; for (i = 0; i < 9; i++) { - FUN_020C0F80(&sdat->unk_BBC94[i]); + NNS_SndHandleInit(&sdat->unk_BBC94[i]); } } @@ -315,7 +315,7 @@ void FUN_020040C8(void) void FUN_020040DC(void) { - FUN_020C1040(7, 0); + NNS_SndPlayerStopSeqByPlayerNo(7, 0); FUN_02003FF4(7); - FUN_020C0F68(); + NNS_SndHandleReleaseSeq(); } diff --git a/include/sdat.h b/include/sdat.h index 3ba8583c9..db60e13e2 100644 --- a/include/sdat.h +++ b/include/sdat.h @@ -28,20 +28,20 @@ struct SDATFileMgr void * info_p; }; -void SDAT_Init(void); -void * FUN_020C2A94(void *, u32); -void SDAT_Open(struct SDATFileMgr *, char *, void *, u32); -void FUN_020C39CC(void *); -void FUN_020C01A0(void); -int FUN_020C290C(void *); -void FUN_020C2828(void *, int); -BOOL FUN_020C36A8(u32 *, void *); -BOOL FUN_020C3674(u32 *, void *); -BOOL FUN_020C35E0(u32 *, u32 *, void *); -BOOL FUN_020C360C(u32 *, void *); -BOOL FUN_020C3640(u32 *, void *); -void FUN_020C0F80(u32 *); -void FUN_020C1040(int, int); -void FUN_020C0F68(void); +void NNS_SndInit(void); +void * NNS_SndHeapCreate(void *, u32); +void NNS_SndArcInit(struct SDATFileMgr *, char *, void *, u32); +void NNS_SndArcPlayerSetup(void *); +void NNS_SndMain(void); +int NNS_SndHeapSaveState(void *); +void NNS_SndHeapLoadState(void *, int); +BOOL NNS_SndArcLoadGroup(u32 *, void *); +BOOL NNS_SndArcLoadSeq(u32 *, void *); +BOOL NNS_SndArcLoadSeqEx(u32 *, u32 *, void *); +BOOL NNS_SndArcLoadWaveArc(u32 *, void *); +BOOL NNS_SndArcLoadBank(u32 *, void *); +void NNS_SndHandleInit(u32 *); +void NNS_SndPlayerStopSeqByPlayerNo(int, int); +void NNS_SndHandleReleaseSeq(void); #endif //GUARD_LIBSDAT_H From 76c52b48ebc318c72906fb6d8d7876c0915f5e17 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 17:09:37 -0400 Subject: [PATCH 104/134] Replace SDATHeader etc with NNSSndArc --- arm9/src/sound.c | 9 +++++---- include/sdat.h | 49 ++++++++++++++++++++++++------------------------ include/sound.h | 2 +- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/arm9/src/sound.c b/arm9/src/sound.c index 35710f247..4927a5758 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -6,7 +6,8 @@ #pragma thumb on static struct SoundData sSoundDataBuffer; -static u32 UNK_02107070[2]; +static u32 UNK_02107070; +static u32 UNK_02107074; void FUN_02003C40(void); BOOL FUN_02003D04(void); @@ -36,7 +37,7 @@ void InitSoundData(void * a0, struct Options * a1) NNS_SndArcPlayerSetup(sdat->unk_00090); FUN_02004088(sdat); FUN_020040A4(sdat); - UNK_02107070[1] = 0; + UNK_02107074 = 0; sdat->unk_BCD4C = a0; FUN_02004D60(a1->soundMethod); } @@ -57,7 +58,7 @@ void DoSoundUpdateFrame(void) void FUN_02003C40(void) { struct SoundData * sdat = GetSoundDataPointer(); - switch (UNK_02107070[0]) + switch (UNK_02107070) { case 1: FUN_02003CE8(2); @@ -92,7 +93,7 @@ void FUN_02003CE8(int a0) { struct SoundData * sdat = GetSoundDataPointer(); sdat->unk_BCCFC = 0; - UNK_02107070[0] = (u32)a0; + UNK_02107070 = (u32)a0; } BOOL FUN_02003D04(void) diff --git a/include/sdat.h b/include/sdat.h index db60e13e2..53e0a7293 100644 --- a/include/sdat.h +++ b/include/sdat.h @@ -1,36 +1,35 @@ #ifndef GUARD_LIBSDAT_H #define GUARD_LIBSDAT_H -struct SDATHeader -{ - // Generic header - char magic[4]; - u16 bom; - u16 version; - u32 filesize; - u16 header_size; - u16 section_count; - // SDAT chunks - u32 symb_offset, symb_size; - u32 info_offset, info_size; - u32 fat_offset, fat_size; - u32 file_offset, file_size; -}; +#include "SND_main.h" -struct SDATFileMgr +typedef struct NNSSndArcHeader { - struct SDATHeader header; - BOOL is_init; - FSFile file; // 00034 - FSFileID fileID; // 7C - void * fat_p; - void * symb_p; - void * info_p; -}; + struct SNDBinaryFileHeader fileHeader; + u32 symbolDataOffset; + u32 symbolDataSize; + u32 infoOffset; + u32 infoSize; + u32 fatOffset; + u32 fatSize; + u32 fileImageOffset; + u32 fileImageSize; +} NNSSndArcHeader; + +typedef struct NNSSndArc +{ + NNSSndArcHeader header; + BOOL file_open; + FSFile file; + FSFileID fileId; + struct NNSSndArcFat* fat; + struct NNSSndArcSymbol* symbol; + struct NNSSndArcInfo* info; +} NNSSndArc; void NNS_SndInit(void); void * NNS_SndHeapCreate(void *, u32); -void NNS_SndArcInit(struct SDATFileMgr *, char *, void *, u32); +void NNS_SndArcInit(NNSSndArc *, const char *, void *, u32); void NNS_SndArcPlayerSetup(void *); void NNS_SndMain(void); int NNS_SndHeapSaveState(void *); diff --git a/include/sound.h b/include/sound.h index 9b50542fd..d48dd9acb 100644 --- a/include/sound.h +++ b/include/sound.h @@ -7,7 +7,7 @@ struct SoundData { - struct SDATFileMgr header; + NNSSndArc header; void * unk_00090; u8 unk_00094[0xBBC00]; u32 unk_BBC94[9]; From 3835a9b1a55a2d8ce6f4159bb0e7f1fecf08b7f1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 17:20:38 -0400 Subject: [PATCH 105/134] NNS SND heap type --- .../sdat.h => arm9/lib/include/NNS_SND_arc.h | 14 ++------ arm9/lib/include/NNS_SND_arc_loader.h | 12 +++++++ arm9/lib/include/NNS_SND_heap.h | 11 +++++++ arm9/src/sound.c | 32 +++++++++---------- include/sound.h | 16 ++++++---- 5 files changed, 51 insertions(+), 34 deletions(-) rename include/sdat.h => arm9/lib/include/NNS_SND_arc.h (66%) create mode 100644 arm9/lib/include/NNS_SND_arc_loader.h create mode 100644 arm9/lib/include/NNS_SND_heap.h diff --git a/include/sdat.h b/arm9/lib/include/NNS_SND_arc.h similarity index 66% rename from include/sdat.h rename to arm9/lib/include/NNS_SND_arc.h index 53e0a7293..656c87283 100644 --- a/include/sdat.h +++ b/arm9/lib/include/NNS_SND_arc.h @@ -1,5 +1,5 @@ -#ifndef GUARD_LIBSDAT_H -#define GUARD_LIBSDAT_H +#ifndef GUARD_NNS_SND_ARC_H +#define GUARD_NNS_SND_ARC_H #include "SND_main.h" @@ -28,19 +28,11 @@ typedef struct NNSSndArc } NNSSndArc; void NNS_SndInit(void); -void * NNS_SndHeapCreate(void *, u32); void NNS_SndArcInit(NNSSndArc *, const char *, void *, u32); void NNS_SndArcPlayerSetup(void *); void NNS_SndMain(void); -int NNS_SndHeapSaveState(void *); -void NNS_SndHeapLoadState(void *, int); -BOOL NNS_SndArcLoadGroup(u32 *, void *); -BOOL NNS_SndArcLoadSeq(u32 *, void *); -BOOL NNS_SndArcLoadSeqEx(u32 *, u32 *, void *); -BOOL NNS_SndArcLoadWaveArc(u32 *, void *); -BOOL NNS_SndArcLoadBank(u32 *, void *); void NNS_SndHandleInit(u32 *); void NNS_SndPlayerStopSeqByPlayerNo(int, int); void NNS_SndHandleReleaseSeq(void); -#endif //GUARD_LIBSDAT_H +#endif //GUARD_NNS_SND_ARC_H diff --git a/arm9/lib/include/NNS_SND_arc_loader.h b/arm9/lib/include/NNS_SND_arc_loader.h new file mode 100644 index 000000000..851c08abb --- /dev/null +++ b/arm9/lib/include/NNS_SND_arc_loader.h @@ -0,0 +1,12 @@ +#ifndef GUARD_NNS_SND_ARC_LOADER_H +#define GUARD_NNS_SND_ARC_LOADER_H + +#include "NNS_SND_heap.h" + +BOOL NNS_SndArcLoadGroup(int groupNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadSeq(int seqNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadSeqEx(int seqNo, u32 loadFlag, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadWaveArc(int waveArcNo, NNSSndHeapHandle * heap); +BOOL NNS_SndArcLoadBank(int bankNo, NNSSndHeapHandle * heap); + +#endif //GUARD_NNS_SND_ARC_LOADER_H diff --git a/arm9/lib/include/NNS_SND_heap.h b/arm9/lib/include/NNS_SND_heap.h new file mode 100644 index 000000000..9dc06a242 --- /dev/null +++ b/arm9/lib/include/NNS_SND_heap.h @@ -0,0 +1,11 @@ +#ifndef GUARD_NNS_SND_HEAP_H +#define GUARD_NNS_SND_HEAP_H + +struct NNSSndHeap; +typedef struct NNSSndHeap* NNSSndHeapHandle; + +NNSSndHeapHandle * NNS_SndHeapCreate(void *, u32); +int NNS_SndHeapSaveState(NNSSndHeapHandle *); +void NNS_SndHeapLoadState(NNSSndHeapHandle *, int); + +#endif //GUARD_NNS_SND_HEAP_H diff --git a/arm9/src/sound.c b/arm9/src/sound.c index 4927a5758..95d14c64c 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -32,9 +32,9 @@ void InitSoundData(void * a0, struct Options * a1) NNS_SndInit(); FUN_020040C8(); FUN_02004064(sdat); - sdat->unk_00090 = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094)); - NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->unk_00090, 0); - NNS_SndArcPlayerSetup(sdat->unk_00090); + sdat->heap = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094)); + NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->heap, 0); + NNS_SndArcPlayerSetup(sdat->heap); FUN_02004088(sdat); FUN_020040A4(sdat); UNK_02107074 = 0; @@ -203,7 +203,7 @@ void * FUN_02003D38(u32 a0) int FUN_02003F3C(int * a0) { struct SoundData * sdat = GetSoundDataPointer(); - int r4 = NNS_SndHeapSaveState(sdat->unk_00090); + int r4 = NNS_SndHeapSaveState(sdat->heap); GF_ASSERT(r4 != -1); if (a0 != NULL) *a0 = r4; @@ -213,37 +213,37 @@ int FUN_02003F3C(int * a0) void FUN_02003F64(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - NNS_SndHeapLoadState(sdat->unk_00090, a0); + NNS_SndHeapLoadState(sdat->heap, a0); } -BOOL FUN_02003F78(u32 * a0) +BOOL FUN_02003F78(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadGroup(a0, sdat->unk_00090); + return NNS_SndArcLoadGroup(a0, sdat->heap); } -BOOL FUN_02003F90(u32 * a0) +BOOL FUN_02003F90(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadSeq(a0, sdat->unk_00090); + return NNS_SndArcLoadSeq(a0, sdat->heap); } -BOOL FUN_02003FA8(u32 * a0, u32 * a1) +BOOL FUN_02003FA8(int a0, u32 a1) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadSeqEx(a0, a1, sdat->unk_00090); + return NNS_SndArcLoadSeqEx(a0, a1, sdat->heap); } -BOOL FUN_02003FC4(u32 * a0) +BOOL FUN_02003FC4(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadWaveArc(a0, sdat->unk_00090); + return NNS_SndArcLoadWaveArc(a0, sdat->heap); } -BOOL FUN_02003FDC(u32 * a0) +BOOL FUN_02003FDC(int a0) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadBank(a0, sdat->unk_00090); + return NNS_SndArcLoadBank(a0, sdat->heap); } u32 * FUN_02003FF4(int a0) @@ -303,7 +303,7 @@ void FUN_02004088(struct SoundData * sdat) void FUN_020040A4(struct SoundData * sdat) { FUN_02003F3C(&sdat->unk_BCD1C[0]); - FUN_02003F78(NULL); + FUN_02003F78(0); FUN_02003F3C(&sdat->unk_BCD1C[1]); } diff --git a/include/sound.h b/include/sound.h index d48dd9acb..9e1716346 100644 --- a/include/sound.h +++ b/include/sound.h @@ -2,13 +2,15 @@ #define POKEDIAMOND_SOUND_H #include "FS_file.h" -#include "sdat.h" +#include "NNS_SND_arc.h" +#include "NNS_SND_heap.h" +#include "NNS_SND_arc_loader.h" #include "player_data.h" struct SoundData { NNSSndArc header; - void * unk_00090; + NNSSndHeapHandle * heap; // 0x00090 u8 unk_00094[0xBBC00]; u32 unk_BBC94[9]; u32 unk_BBCB8; @@ -54,11 +56,11 @@ void InitSoundData(void * a0, struct Options * a1); void * FUN_02003D38(u32 a0); int FUN_02003F3C(int * a0); void FUN_02003F64(int a0); -BOOL FUN_02003F78(u32 * a0); -BOOL FUN_02003F90(u32 * a0); -BOOL FUN_02003FA8(u32 * a0, u32 * a1); -BOOL FUN_02003FC4(u32 * a0); -BOOL FUN_02003FDC(u32 * a0); +BOOL FUN_02003F78(int a0); +BOOL FUN_02003F90(int a0); +BOOL FUN_02003FA8(int a0, u32 a1); +BOOL FUN_02003FC4(int a0); +BOOL FUN_02003FDC(int a0); u32 * FUN_02003FF4(int a0); u32 FUN_02004018(u32 a0); void DoSoundUpdateFrame(void); From d9808a376ee20a2e6dd57d1f272886f2ad192302 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 23 May 2021 18:48:50 -0400 Subject: [PATCH 106/134] Start decompiling Chatot sound data func --- arm9/arm9.lsf | 1 + arm9/asm/unk_020040F4.s | 98 ++++++++++++++++----------------- arm9/asm/unk_020051F4.s | 14 ++--- arm9/asm/unk_02029EC4.s | 57 ------------------- arm9/global.inc | 14 ++--- arm9/lib/include/NNS_SND_arc.h | 2 +- arm9/lib/include/NNS_SND_heap.h | 6 +- arm9/src/sav_chatot.c | 49 +++++++++++++++++ arm9/src/sound.c | 64 ++++++++++----------- include/sound.h | 18 +++--- 10 files changed, 158 insertions(+), 165 deletions(-) create mode 100644 arm9/src/sav_chatot.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 5d1426c31..b89ac7ce3 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -111,6 +111,7 @@ Static arm9 Object seal_case.o Object unk_02029CEC.o Object igt.o + Object sav_chatot.o Object unk_02029EC4.o Object unk_02029FB0.o Object unk_0202A1E0.o diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s index 5e62cb809..86e069f9d 100644 --- a/arm9/asm/unk_020040F4.s +++ b/arm9/asm/unk_020040F4.s @@ -203,133 +203,133 @@ _0200421A: ; jump table (using 16-bit offset) .short _020042AE - _0200421A - 2; case 3 _02004222: mov r0, #0x1 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200422C: mov r0, #0x2 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004236: mov r0, #0xd - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004240: mov r0, #0x1 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200424A: mov r0, #0x2 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004254: mov r0, #0x1 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200425E: mov r0, #0xb - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004268: mov r0, #0x1 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004272: mov r0, #0xe - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200427C: mov r0, #0x3 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004286: mov r0, #0x6 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004290: mov r0, #0x5 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200429A: mov r0, #0x9 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042A4: mov r0, #0xa - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042AE: ldr r0, _02004330 ; =0x000005E5 - bl FUN_02003FDC + bl GF_Snd_LoadBank ldr r0, _02004330 ; =0x000005E5 - bl FUN_02003FC4 + bl GF_Snd_LoadWaveArc add r1, r0, #0x0 b _0200432C _020042BE: mov r0, #0xc - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042C8: mov r0, #0x7 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042D2: mov r0, #0x8 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042DC: mov r0, #0xf - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042E6: mov r0, #0x3 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042F0: mov r0, #0x5 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _020042FA: mov r0, #0xf - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _02004304: mov r0, #0x4 - bl FUN_02003F78 + bl GF_Snd_LoadGroup add r1, r0, #0x0 b _0200432C _0200430E: ldr r0, _02004334 ; =0x000005ED - bl FUN_02003FDC + bl GF_Snd_LoadBank ldr r0, _02004334 ; =0x000005ED - bl FUN_02003FC4 + bl GF_Snd_LoadWaveArc add r1, r0, #0x0 b _0200432C _0200431E: ldr r0, _02004338 ; =0x000005EC - bl FUN_02003FDC + bl GF_Snd_LoadBank ldr r0, _02004338 ; =0x000005EC - bl FUN_02003FC4 + bl GF_Snd_LoadWaveArc add r1, r0, #0x0 _0200432C: add r0, r1, #0x0 @@ -536,15 +536,15 @@ FUN_020044A8: ; 0x020044A8 mov r0, #0x17 bl FUN_02003D38 ldr r0, [r0, #0x0] - bl FUN_02003F64 + bl GF_Snd_RestoreState mov r0, #0x18 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState add r0, r4, #0x0 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState pop {r4, pc} thumb_func_start FUN_020044D4 @@ -588,12 +588,12 @@ _02004528: bne _02004560 mov r0, #0x2 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState mov r0, #0x4 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState cmp r4, r5 beq _02004554 mov r0, #0x1 @@ -628,17 +628,17 @@ FUN_02004568: ; 0x02004568 beq _02004594 add r0, r5, #0x0 mov r1, #0x4 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx bl ErrorHandling b _0200459C _02004594: ldrh r0, [r4, #0x0] mov r1, #0x6 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx _0200459C: mov r0, #0x1a bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState mov r0, #0x1 mov r1, #0x0 bl FUN_020047C8 @@ -671,18 +671,18 @@ FUN_020045C4: ; 0x020045C4 _020045E4: mov r0, #0x1 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState ldrh r0, [r4, #0x0] mov r1, #0x2 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx mov r0, #0x18 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState mov r0, #0x4 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState ldrh r0, [r4, #0x0] bl FUN_02004900 ldr r1, _02004644 ; =0x000003E9 @@ -693,17 +693,17 @@ _020045E4: beq _02004630 add r0, r7, #0x0 mov r1, #0x4 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx bl ErrorHandling b _02004638 _02004630: ldrh r0, [r4, #0x0] mov r1, #0x4 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx _02004638: mov r0, #0x1a bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState _02004642: pop {r3-r7, pc} .balign 4 @@ -718,12 +718,12 @@ FUN_02004648: ; 0x02004648 bl FUN_020051AC mov r0, #0x2 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState mov r0, #0x5 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState mov r0, #0x1 bl FUN_02004DBC add r0, r4, #0x0 @@ -786,7 +786,7 @@ FUN_020046E8: ; 0x020046E8 bl FUN_02004180 mov r0, #0x1b bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState pop {r4, pc} .balign 4 @@ -820,7 +820,7 @@ FUN_02004738: ; 0x02004738 push {r3, lr} mov r0, #0x4 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState pop {r3, pc} .balign 4 @@ -1824,7 +1824,7 @@ FUN_02004E98: ; 0x02004E98 add r5, r0, #0x0 mov r0, #0x5 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState lsl r0, r5, #0x10 lsr r4, r0, #0x10 ldr r0, _02004ECC ; =0x000001B9 @@ -1839,7 +1839,7 @@ _02004EBA: mov r4, #0x1 _02004EBC: add r0, r4, #0x0 - bl FUN_02003FC4 + bl GF_Snd_LoadWaveArc add r0, r4, #0x0 bl FUN_02004ED0 pop {r3-r5, pc} diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s index 12b0c8cb2..843ae7b66 100644 --- a/arm9/asm/unk_020051F4.s +++ b/arm9/asm/unk_020051F4.s @@ -81,12 +81,12 @@ FUN_02005288: ; 0x02005288 mov r0, #0x3 add r4, r2, #0x0 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState add r0, r5, #0x0 - bl FUN_02003F90 + bl GF_Snd_LoadSeq mov r0, #0x1a bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 @@ -148,7 +148,7 @@ _02005318: _0200532A: add r0, r5, #0x0 mov r1, #0x1 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx mov r0, #0x7 bl FUN_02003FF4 add r1, r5, #0x0 @@ -1232,10 +1232,10 @@ PlayBGM: ; 0x02005C28 _02005C48: mov r0, #0x1c bl FUN_02003D38 - bl FUN_02003F3C + bl GF_Snd_SaveState add r0, r5, #0x0 mov r1, #0x3 - bl FUN_02003FA8 + bl GF_Snd_LoadSeqEx mov r0, #0x2 bl FUN_02003FF4 add r1, r5, #0x0 @@ -1282,7 +1282,7 @@ FUN_02005CA0: ; 0x02005CA0 bl NNS_SndPlayerStopSeq mov r0, #0x6 bl FUN_02004748 - bl FUN_02003F64 + bl GF_Snd_RestoreState pop {r4, pc} thumb_func_start FUN_02005CBC diff --git a/arm9/asm/unk_02029EC4.s b/arm9/asm/unk_02029EC4.s index 03893faba..2c4bdd91e 100644 --- a/arm9/asm/unk_02029EC4.s +++ b/arm9/asm/unk_02029EC4.s @@ -3,63 +3,6 @@ .text - thumb_func_start FUN_02029EC4 -FUN_02029EC4: ; 0x02029EC4 - mov r0, #0xfb - lsl r0, r0, #0x2 - bx lr - .balign 4 - - thumb_func_start FUN_02029ECC -FUN_02029ECC: ; 0x02029ECC - push {r4, lr} - add r4, r0, #0x0 - mov r2, #0xfb - mov r0, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x2 - bl MIi_CpuClear32 - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02029EE4 -FUN_02029EE4: ; 0x02029EE4 - push {r4, lr} - mov r1, #0xfb - lsl r1, r1, #0x2 - bl AllocFromHeap - add r4, r0, #0x0 - bl FUN_02029ECC - add r0, r4, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02029EF8 -FUN_02029EF8: ; 0x02029EF8 - ldr r3, _02029F00 ; =SavArray_get - mov r1, #0x16 - bx r3 - nop -_02029F00: .word SavArray_get - - thumb_func_start FUN_02029F04 -FUN_02029F04: ; 0x02029F04 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_02029F08 -FUN_02029F08: ; 0x02029F08 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 - - thumb_func_start FUN_02029F10 -FUN_02029F10: ; 0x02029F10 - add r0, r0, #0x4 - bx lr - thumb_func_start FUN_02029F14 FUN_02029F14: ; 0x02029F14 push {r4-r7} diff --git a/arm9/global.inc b/arm9/global.inc index f389ad93c..6a3b9a32d 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -269,13 +269,13 @@ .extern DoSoundUpdateFrame .extern FUN_02003CE8 .extern FUN_02003D38 -.extern FUN_02003F3C -.extern FUN_02003F64 -.extern FUN_02003F78 -.extern FUN_02003F90 -.extern FUN_02003FA8 -.extern FUN_02003FC4 -.extern FUN_02003FDC +.extern GF_Snd_SaveState +.extern GF_Snd_RestoreState +.extern GF_Snd_LoadGroup +.extern GF_Snd_LoadSeq +.extern GF_Snd_LoadSeqEx +.extern GF_Snd_LoadWaveArc +.extern GF_Snd_LoadBank .extern FUN_02003FF4 .extern FUN_02004018 .extern FUN_020040F4 diff --git a/arm9/lib/include/NNS_SND_arc.h b/arm9/lib/include/NNS_SND_arc.h index 656c87283..95b331412 100644 --- a/arm9/lib/include/NNS_SND_arc.h +++ b/arm9/lib/include/NNS_SND_arc.h @@ -32,7 +32,7 @@ void NNS_SndArcInit(NNSSndArc *, const char *, void *, u32); void NNS_SndArcPlayerSetup(void *); void NNS_SndMain(void); void NNS_SndHandleInit(u32 *); -void NNS_SndPlayerStopSeqByPlayerNo(int, int); +void NNS_SndPlayerStopSeqByPlayerNo(int playerNo, int fadeFrame); void NNS_SndHandleReleaseSeq(void); #endif //GUARD_NNS_SND_ARC_H diff --git a/arm9/lib/include/NNS_SND_heap.h b/arm9/lib/include/NNS_SND_heap.h index 9dc06a242..2929d1bb1 100644 --- a/arm9/lib/include/NNS_SND_heap.h +++ b/arm9/lib/include/NNS_SND_heap.h @@ -4,8 +4,8 @@ struct NNSSndHeap; typedef struct NNSSndHeap* NNSSndHeapHandle; -NNSSndHeapHandle * NNS_SndHeapCreate(void *, u32); -int NNS_SndHeapSaveState(NNSSndHeapHandle *); -void NNS_SndHeapLoadState(NNSSndHeapHandle *, int); +NNSSndHeapHandle * NNS_SndHeapCreate(void * start, u32 size); +int NNS_SndHeapSaveState(NNSSndHeapHandle * heap); +void NNS_SndHeapLoadState(NNSSndHeapHandle * heap, int level); #endif //GUARD_NNS_SND_HEAP_H diff --git a/arm9/src/sav_chatot.c b/arm9/src/sav_chatot.c new file mode 100644 index 000000000..f27078210 --- /dev/null +++ b/arm9/src/sav_chatot.c @@ -0,0 +1,49 @@ +#include "global.h" +#include "MI_memory.h" +#include "heap.h" +#include "save_block_2.h" + +struct SaveChatotSoundClip +{ + // TODO: Fill this in + BOOL exists; + s8 data[1000]; +}; + +THUMB_FUNC u32 FUN_02029EC4(void) +{ + return sizeof(struct SaveChatotSoundClip); +} + +THUMB_FUNC void FUN_02029ECC(struct SaveChatotSoundClip * chatot) +{ + MIi_CpuClear32(0, chatot, sizeof(struct SaveChatotSoundClip)); + chatot->exists = FALSE; +} + +THUMB_FUNC struct SaveChatotSoundClip * FUN_02029EE4(u32 heap_id) +{ + struct SaveChatotSoundClip * ret = (struct SaveChatotSoundClip *)AllocFromHeap(heap_id, sizeof(struct SaveChatotSoundClip)); + FUN_02029ECC(ret); + return ret; +} + +THUMB_FUNC struct SaveChatotSoundClip * FUN_02029EF8(struct SaveBlock2 * sav2) +{ + return (struct SaveChatotSoundClip *) SavArray_get(sav2, 22); +} + +THUMB_FUNC u32 FUN_02029F04(struct SaveChatotSoundClip * chatot) +{ + return chatot->exists; +} + +THUMB_FUNC void FUN_02029F08(struct SaveChatotSoundClip * chatot) +{ + chatot->exists = FALSE; +} + +THUMB_FUNC s8 * FUN_02029F10(struct SaveChatotSoundClip * chatot) +{ + return chatot->data; +} diff --git a/arm9/src/sound.c b/arm9/src/sound.c index 95d14c64c..79eb21f00 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -11,8 +11,8 @@ static u32 UNK_02107074; void FUN_02003C40(void); BOOL FUN_02003D04(void); -void FUN_020040C8(void); -void FUN_02004064(struct SoundData *); +void GF_InitMic(void); +void GF_SoundDataInit(struct SoundData *); void FUN_02004088(struct SoundData *); void FUN_020040A4(struct SoundData *); void FUN_02003CE8(int); @@ -30,8 +30,8 @@ void InitSoundData(void * a0, struct Options * a1) { struct SoundData * sdat = GetSoundDataPointer(); NNS_SndInit(); - FUN_020040C8(); - FUN_02004064(sdat); + GF_InitMic(); + GF_SoundDataInit(sdat); sdat->heap = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094)); NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->heap, 0); NNS_SndArcPlayerSetup(sdat->heap); @@ -200,61 +200,61 @@ void * FUN_02003D38(u32 a0) } } -int FUN_02003F3C(int * a0) +int GF_Snd_SaveState(int * level_p) { struct SoundData * sdat = GetSoundDataPointer(); - int r4 = NNS_SndHeapSaveState(sdat->heap); - GF_ASSERT(r4 != -1); - if (a0 != NULL) - *a0 = r4; - return r4; + int level = NNS_SndHeapSaveState(sdat->heap); + GF_ASSERT(level != -1); + if (level_p != NULL) + *level_p = level; + return level; } -void FUN_02003F64(int a0) +void GF_Snd_RestoreState(int level) { struct SoundData * sdat = GetSoundDataPointer(); - NNS_SndHeapLoadState(sdat->heap, a0); + NNS_SndHeapLoadState(sdat->heap, level); } -BOOL FUN_02003F78(int a0) +BOOL GF_Snd_LoadGroup(int groupNo) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadGroup(a0, sdat->heap); + return NNS_SndArcLoadGroup(groupNo, sdat->heap); } -BOOL FUN_02003F90(int a0) +BOOL GF_Snd_LoadSeq(int seqNo) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadSeq(a0, sdat->heap); + return NNS_SndArcLoadSeq(seqNo, sdat->heap); } -BOOL FUN_02003FA8(int a0, u32 a1) +BOOL GF_Snd_LoadSeqEx(int seqNo, u32 loadFlag) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadSeqEx(a0, a1, sdat->heap); + return NNS_SndArcLoadSeqEx(seqNo, loadFlag, sdat->heap); } -BOOL FUN_02003FC4(int a0) +BOOL GF_Snd_LoadWaveArc(int waveArcNo) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadWaveArc(a0, sdat->heap); + return NNS_SndArcLoadWaveArc(waveArcNo, sdat->heap); } -BOOL FUN_02003FDC(int a0) +BOOL GF_Snd_LoadBank(int bankNo) { struct SoundData * sdat = GetSoundDataPointer(); - return NNS_SndArcLoadBank(a0, sdat->heap); + return NNS_SndArcLoadBank(bankNo, sdat->heap); } -u32 * FUN_02003FF4(int a0) +u32 * FUN_02003FF4(int playerNo) { struct SoundData * sdat = GetSoundDataPointer(); - if (a0 >= 9) + if (playerNo >= (s32)NELEMS(sdat->players)) { GF_ASSERT(0); - a0 = 0; + playerNo = 0; } - return &sdat->unk_BBC94[a0]; + return &sdat->players[playerNo]; } u32 FUN_02004018(u32 a0) @@ -283,7 +283,7 @@ u32 FUN_02004018(u32 a0) } } -void FUN_02004064(struct SoundData * sdat) +void GF_SoundDataInit(struct SoundData * sdat) { int i; memset(sdat, 0, sizeof(*sdat)); @@ -296,18 +296,18 @@ void FUN_02004088(struct SoundData * sdat) int i; for (i = 0; i < 9; i++) { - NNS_SndHandleInit(&sdat->unk_BBC94[i]); + NNS_SndHandleInit(&sdat->players[i]); } } void FUN_020040A4(struct SoundData * sdat) { - FUN_02003F3C(&sdat->unk_BCD1C[0]); - FUN_02003F78(0); - FUN_02003F3C(&sdat->unk_BCD1C[1]); + GF_Snd_SaveState(&sdat->unk_BCD1C[0]); + GF_Snd_LoadGroup(0); + GF_Snd_SaveState(&sdat->unk_BCD1C[1]); } -void FUN_020040C8(void) +void GF_InitMic(void) { MIC_Init(); PM_SetAmp(1); diff --git a/include/sound.h b/include/sound.h index 9e1716346..adefe938d 100644 --- a/include/sound.h +++ b/include/sound.h @@ -12,7 +12,7 @@ struct SoundData NNSSndArc header; NNSSndHeapHandle * heap; // 0x00090 u8 unk_00094[0xBBC00]; - u32 unk_BBC94[9]; + u32 players[9]; u32 unk_BBCB8; u32 unk_BBCBC; u8 unk_BBCC0[0x20]; @@ -54,14 +54,14 @@ struct SoundData struct SoundData * GetSoundDataPointer(void); void InitSoundData(void * a0, struct Options * a1); void * FUN_02003D38(u32 a0); -int FUN_02003F3C(int * a0); -void FUN_02003F64(int a0); -BOOL FUN_02003F78(int a0); -BOOL FUN_02003F90(int a0); -BOOL FUN_02003FA8(int a0, u32 a1); -BOOL FUN_02003FC4(int a0); -BOOL FUN_02003FDC(int a0); -u32 * FUN_02003FF4(int a0); +int GF_Snd_SaveState(int * level_p); +void GF_Snd_RestoreState(int level); +BOOL GF_Snd_LoadGroup(int groupNo); +BOOL GF_Snd_LoadSeq(int seqNo); +BOOL GF_Snd_LoadSeqEx(int seqNo, u32 loadFlag); +BOOL GF_Snd_LoadWaveArc(int waveArcNo); +BOOL GF_Snd_LoadBank(int bankNo); +u32 * FUN_02003FF4(int playerNo); u32 FUN_02004018(u32 a0); void DoSoundUpdateFrame(void); From eb511d34eab6bdbb157a998b9aa5617b7679c242 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 24 May 2021 09:31:37 -0400 Subject: [PATCH 107/134] Finish decomping sav_chatot --- arm9/arm9.lsf | 1 - arm9/asm/scrcmd_3.s | 2 +- arm9/asm/unk_02005CFC.s | 12 ++--- arm9/asm/unk_02029EC4.s | 92 --------------------------------- arm9/asm/unk_020476CC.s | 12 ++--- arm9/asm/unk_0206BF90.s | 2 +- arm9/asm/unk_02080C38.s | 6 +-- arm9/asm/unk_020834D0.s | 4 +- arm9/global.inc | 20 +++---- arm9/modules/05/asm/module_05.s | 4 +- arm9/modules/14/asm/module_14.s | 4 +- arm9/modules/71/asm/module_71.s | 8 +-- arm9/modules/80/asm/module_80.s | 4 +- arm9/src/main.c | 4 +- arm9/src/sav_chatot.c | 81 +++++++++++++++++++++++------ arm9/src/save_arrays.c | 6 +-- arm9/src/scrcmd_sound.c | 6 +-- include/sav_chatot.h | 24 +++++++++ 18 files changed, 136 insertions(+), 156 deletions(-) delete mode 100644 arm9/asm/unk_02029EC4.s create mode 100644 include/sav_chatot.h diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index b89ac7ce3..7a8f19f13 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -112,7 +112,6 @@ Static arm9 Object unk_02029CEC.o Object igt.o Object sav_chatot.o - Object unk_02029EC4.o Object unk_02029FB0.o Object unk_0202A1E0.o Object unk_0202A8F4.o diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s index 28df24449..4568c5909 100644 --- a/arm9/asm/scrcmd_3.s +++ b/arm9/asm/scrcmd_3.s @@ -173,7 +173,7 @@ FUN_0203FF10: ; 0x0203FF10 str r0, [sp, #0x30] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029EF8 + bl Sav2_Chatot_get str r0, [sp, #0x34] add r0, sp, #0x14 bl FUN_02081214 diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s index 6a601c58e..7a7010b0d 100644 --- a/arm9/asm/unk_02005CFC.s +++ b/arm9/asm/unk_02005CFC.s @@ -30,7 +30,7 @@ FUN_02005D20: ; 0x02005D20 bl FUN_02003D38 add r4, r0, #0x0 add r0, r5, #0x0 - bl FUN_02029F04 + bl Chatot_exists cmp r0, #0x0 bne _02005D3A mov r0, #0x0 @@ -80,10 +80,10 @@ _02005D70: lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0x0 - bl FUN_02029F10 + bl Chatot_GetData add r1, r0, #0x0 ldr r0, [sp, #0x0] - bl FUN_02029F14 + bl Chatot_Decode mov r0, #0xe bl FUN_02004930 str r0, [sp, #0x8] @@ -192,7 +192,7 @@ FUN_02005E6C: ; 0x02005E6C bl FUN_02004DB4 add r1, r0, #0x0 add r0, r4, #0x0 - bl FUN_02029F4C + bl Chatot_Encode pop {r4, pc} .balign 4 @@ -250,14 +250,14 @@ _02005EDC: .word 0x000001B9 FUN_02005EE0: ; 0x02005EE0 push {r4, lr} add r4, r0, #0x0 - bl FUN_02029F04 + bl Chatot_exists cmp r0, #0x0 bne _02005EF0 mov r0, #0x0 pop {r4, pc} _02005EF0: add r0, r4, #0x0 - bl FUN_02029F10 + bl Chatot_GetData mov r1, #0xf ldrsb r0, [r0, r1] sub r1, #0x2d diff --git a/arm9/asm/unk_02029EC4.s b/arm9/asm/unk_02029EC4.s deleted file mode 100644 index 2c4bdd91e..000000000 --- a/arm9/asm/unk_02029EC4.s +++ /dev/null @@ -1,92 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02029F14 -FUN_02029F14: ; 0x02029F14 - push {r4-r7} - mov r5, #0x0 - mov r2, #0xfa - add r4, r5, #0x0 - mov r6, #0xf - lsl r2, r2, #0x2 -_02029F20: - ldrsb r7, [r1, r4] - add r3, r0, r5 - and r7, r6 - lsl r7, r7, #0x18 - lsr r7, r7, #0x18 - sub r7, #0x8 - lsl r7, r7, #0x18 - asr r7, r7, #0x14 - strb r7, [r0, r5] - ldrsb r7, [r1, r4] - add r4, r4, #0x1 - add r5, r5, #0x2 - lsl r7, r7, #0x14 - lsr r7, r7, #0x18 - sub r7, #0x8 - lsl r7, r7, #0x18 - asr r7, r7, #0x14 - strb r7, [r3, #0x1] - cmp r4, r2 - blt _02029F20 - pop {r4-r7} - bx lr - - thumb_func_start FUN_02029F4C -FUN_02029F4C: ; 0x02029F4C - push {r4-r7} - add r3, r0, #0x0 - add r2, r1, #0x0 - mov r0, #0x1 - mov r1, #0x0 - str r0, [r3, #0x0] - add r0, r1, #0x0 -_02029F5A: - ldrsb r4, [r2, r0] - add r6, r3, r1 - add r7, r2, r0 - asr r5, r4, #0x3 - lsr r5, r5, #0x1c - add r5, r4, r5 - lsl r4, r5, #0x14 - asr r4, r4, #0x18 - add r4, #0x8 - strb r4, [r6, #0x4] - mov r4, #0x4 - ldrsb r5, [r6, r4] - mov r4, #0x1 - ldrsb r4, [r7, r4] - add r0, r0, #0x2 - add r1, r1, #0x1 - asr r7, r4, #0x3 - lsr r7, r7, #0x1c - add r7, r4, r7 - lsl r4, r7, #0x14 - asr r4, r4, #0x18 - add r4, #0x8 - lsl r4, r4, #0x18 - lsr r4, r4, #0x14 - orr r4, r5 - strb r4, [r6, #0x4] - mov r4, #0x7d - lsl r4, r4, #0x4 - cmp r0, r4 - blt _02029F5A - pop {r4-r7} - bx lr - .balign 4 - - thumb_func_start FUN_02029F9C -FUN_02029F9C: ; 0x02029F9C - add r2, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - mov r2, #0xfb - ldr r3, _02029FAC ; =MIi_CpuCopyFast - lsl r2, r2, #0x2 - bx r3 - nop -_02029FAC: .word MIi_CpuCopyFast diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 7e25689fc..546792596 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -97,7 +97,7 @@ _0204775C: add r4, r7, #0x0 _02047774: add r0, r5, #0x0 - bl FUN_02029EE4 + bl Chatot_new mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r4, r1] @@ -455,11 +455,11 @@ FUN_02047A64: ; 0x02047A64 add r2, r0, r2 mov r0, #0x46 lsl r0, r0, #0x2 - ldr r3, _02047A74 ; =FUN_02029F9C + ldr r3, _02047A74 ; =Chatot_copy ldr r0, [r2, r0] bx r3 nop -_02047A74: .word FUN_02029F9C +_02047A74: .word Chatot_copy thumb_func_start FUN_02047A78 FUN_02047A78: ; 0x02047A78 @@ -480,7 +480,7 @@ FUN_02047A78: ; 0x02047A78 bl Sav2_Pokedex_get str r0, [sp, #0x4] ldr r0, [r4, #0xc] - bl FUN_02029EF8 + bl Sav2_Chatot_get str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl Sav2_PlayerData_GetOptionsAddr @@ -628,7 +628,7 @@ FUN_02047BC0: ; 0x02047BC0 str r0, [sp, #0xc] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029EF8 + bl Sav2_Chatot_get str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] @@ -795,7 +795,7 @@ FUN_02047D48: ; 0x02047D48 str r0, [sp, #0x18] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02029EF8 + bl Sav2_Chatot_get str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] diff --git a/arm9/asm/unk_0206BF90.s b/arm9/asm/unk_0206BF90.s index d672d875e..acf847388 100644 --- a/arm9/asm/unk_0206BF90.s +++ b/arm9/asm/unk_0206BF90.s @@ -572,7 +572,7 @@ _0206C350: add r0, r4, #0x0 ldr r1, [r2, r1] add r0, #0x20 - bl FUN_02029F9C + bl Chatot_copy mov r0, #0x1 pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 0f1630ed9..36539633c 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -916,7 +916,7 @@ _020812F2: add r5, r4, #0x0 _02081304: mov r0, #0x14 - bl FUN_02029EE4 + bl Chatot_new mov r1, #0x57 lsl r1, r1, #0x2 str r0, [r5, r1] @@ -927,7 +927,7 @@ _02081304: add r0, r1, #0x0 ldr r0, [r4, r0] ldr r1, [r6, #0x20] - bl FUN_02029F9C + bl Chatot_copy ldr r0, [r6, #0x8] ldr r1, [r4, #0x0] bl CopyPokemonToPokemon @@ -1900,7 +1900,7 @@ _02081A7C: strb r0, [r4, r2] pop {r3-r7, pc} _02081A8A: - bl FUN_02029EC4 + bl Sav2_Chatot_sizeof add r2, r0, #0x0 mov r0, #0x57 lsl r0, r0, #0x2 diff --git a/arm9/asm/unk_020834D0.s b/arm9/asm/unk_020834D0.s index e86c6f2de..39062a81c 100644 --- a/arm9/asm/unk_020834D0.s +++ b/arm9/asm/unk_020834D0.s @@ -830,7 +830,7 @@ FUN_02083AA8: ; 0x02083AA8 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 - bl FUN_02029EC4 + bl Sav2_Chatot_sizeof add r2, r0, #0x0 ldrb r1, [r5, r2] add r0, r5, #0x0 @@ -854,7 +854,7 @@ FUN_02083AD4: ; 0x02083AD4 add r4, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 - bl FUN_02029EC4 + bl Sav2_Chatot_sizeof add r5, r0, #0x0 ldr r0, _02083B0C ; =0x00000585 add r4, r4, r0 diff --git a/arm9/global.inc b/arm9/global.inc index 6a3b9a32d..e4c261964 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -1977,16 +1977,16 @@ .extern AddIGTSeconds .extern GetIGTHours .extern GetIGTMinutes -.extern FUN_02029EC4 -.extern FUN_02029ECC -.extern FUN_02029EE4 -.extern FUN_02029EF8 -.extern FUN_02029F04 -.extern FUN_02029F08 -.extern FUN_02029F10 -.extern FUN_02029F14 -.extern FUN_02029F4C -.extern FUN_02029F9C +.extern Sav2_Chatot_sizeof +.extern Sav2_Chatot_init +.extern Chatot_new +.extern Sav2_Chatot_get +.extern Chatot_exists +.extern Chatot_invalidate +.extern Chatot_GetData +.extern Chatot_Decode +.extern Chatot_Encode +.extern Chatot_copy .extern FUN_02029FB0 .extern FUN_02029FB8 .extern FUN_02029FC8 diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index ebf46a487..ffb9dbe26 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -7747,8 +7747,8 @@ _021EC544: cmp r0, #0 bne _021EC572 add r0, r7, #0 - bl FUN_02029EF8 - bl FUN_02029F08 + bl Sav2_Chatot_get + bl Chatot_invalidate _021EC572: add sp, #0x24 pop {r4, r5, r6, r7, pc} diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index b95ab0d61..65c146088 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -122,8 +122,8 @@ StoragePC_Overlay_Teardown: ; 0x021D75B8 mov r0, #0x47 lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_02029EF8 - bl FUN_02029F08 + bl Sav2_Chatot_get + bl Chatot_invalidate _021D75DE: mov r0, #0x45 lsl r0, r0, #2 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index b9d99cf41..4b488741c 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -1161,7 +1161,7 @@ _0222DF74: b _0222E0E8 _0222DF80: ldr r0, [r4, #4] - bl FUN_02029EF8 + bl Sav2_Chatot_get bl MOD71_0222F528 ldr r0, [r4, #0x4c] add r0, r0, #1 @@ -3446,7 +3446,7 @@ MOD71_0222F264: ; 0x0222F264 cmp r0, r1 bne _0222F2AE ldr r0, [r4, #4] - bl FUN_02029EF8 + bl Sav2_Chatot_get mov r1, #0 mov r2, #0x64 add r3, r1, #0 @@ -6379,8 +6379,8 @@ _02230A40: cmp r0, #0 bne _02230A98 ldr r0, [r5, #0x10] - bl FUN_02029EF8 - bl FUN_02029F08 + bl Sav2_Chatot_get + bl Chatot_invalidate _02230A98: ldr r0, [r5, #0x10] add r1, r4, #0 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 9abe50f0b..512cdc80b 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -16126,8 +16126,8 @@ _02235590: bne _022355DC ldr r0, [r5] ldr r0, [r0, #0x20] - bl FUN_02029EF8 - bl FUN_02029F08 + bl Sav2_Chatot_get + bl Chatot_invalidate _022355DC: cmp r6, #0 beq _022355EA diff --git a/arm9/src/main.c b/arm9/src/main.c index c05fa1f32..863cb6543 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -33,7 +33,7 @@ extern void GF_InitRTCWork(void); extern void FUN_02002C14(void); extern void FUN_02002C50(int, int); extern struct SaveBlock2 * SaveBlock2_new(void); -extern void * FUN_02029EF8(struct SaveBlock2 *); +extern void * Sav2_Chatot_get(struct SaveBlock2 *); extern int FUN_020337E8(int); extern void FUN_02034188(int, int); extern int FUN_020227FC(struct SaveBlock2 *); @@ -73,7 +73,7 @@ THUMB_FUNC void NitroMain(void) FUN_02002C50(3, 3); UNK_02016FA8.unk10 = -1; UNK_02016FA8.unk18 = SaveBlock2_new(); - InitSoundData(FUN_02029EF8(UNK_02016FA8.unk18), Sav2_PlayerData_GetOptionsAddr(UNK_02016FA8.unk18)); + InitSoundData(Sav2_Chatot_get(UNK_02016FA8.unk18), Sav2_PlayerData_GetOptionsAddr(UNK_02016FA8.unk18)); Init_Timer3(); if (FUN_020337E8(3) == 3) FUN_02034188(3, 0); diff --git a/arm9/src/sav_chatot.c b/arm9/src/sav_chatot.c index f27078210..7b240a993 100644 --- a/arm9/src/sav_chatot.c +++ b/arm9/src/sav_chatot.c @@ -1,49 +1,98 @@ #include "global.h" #include "MI_memory.h" #include "heap.h" -#include "save_block_2.h" +#include "sav_chatot.h" -struct SaveChatotSoundClip -{ - // TODO: Fill this in - BOOL exists; - s8 data[1000]; -}; - -THUMB_FUNC u32 FUN_02029EC4(void) +THUMB_FUNC u32 Sav2_Chatot_sizeof(void) { return sizeof(struct SaveChatotSoundClip); } -THUMB_FUNC void FUN_02029ECC(struct SaveChatotSoundClip * chatot) +THUMB_FUNC void Sav2_Chatot_init(struct SaveChatotSoundClip * chatot) { MIi_CpuClear32(0, chatot, sizeof(struct SaveChatotSoundClip)); chatot->exists = FALSE; } -THUMB_FUNC struct SaveChatotSoundClip * FUN_02029EE4(u32 heap_id) +THUMB_FUNC struct SaveChatotSoundClip * Chatot_new(u32 heap_id) { struct SaveChatotSoundClip * ret = (struct SaveChatotSoundClip *)AllocFromHeap(heap_id, sizeof(struct SaveChatotSoundClip)); - FUN_02029ECC(ret); + Sav2_Chatot_init(ret); return ret; } -THUMB_FUNC struct SaveChatotSoundClip * FUN_02029EF8(struct SaveBlock2 * sav2) +THUMB_FUNC struct SaveChatotSoundClip * Sav2_Chatot_get(struct SaveBlock2 * sav2) { return (struct SaveChatotSoundClip *) SavArray_get(sav2, 22); } -THUMB_FUNC u32 FUN_02029F04(struct SaveChatotSoundClip * chatot) +THUMB_FUNC BOOL Chatot_exists(struct SaveChatotSoundClip * chatot) { return chatot->exists; } -THUMB_FUNC void FUN_02029F08(struct SaveChatotSoundClip * chatot) +THUMB_FUNC void Chatot_invalidate(struct SaveChatotSoundClip * chatot) { chatot->exists = FALSE; } -THUMB_FUNC s8 * FUN_02029F10(struct SaveChatotSoundClip * chatot) +THUMB_FUNC s8 * Chatot_GetData(struct SaveChatotSoundClip * chatot) { return chatot->data; } + +static inline s8 transform(u8 value) +{ + return (s8)(value - 8); +} + +THUMB_FUNC void Chatot_Decode(s8 * dest, const s8 * data) +{ + s32 i; + s32 dest_i; + u8 val; + s8 val2; + + for (dest_i = 0, i = 0; i < 1000; i++, dest_i += 2) + { + val = (u8)(data[i] & 0xF); + val2 = transform(val); + dest[dest_i + 0] = (s8)(val2 << 4); + val = (u8)(data[i] >> 4); + val2 = transform(val); + dest[dest_i + 1] = (s8)(val2 << 4); + } +} + +static inline u8 untransform(s8 val) +{ + val /= 16; + return (u8)(val + 8); +} + +THUMB_FUNC void Chatot_Encode(struct SaveChatotSoundClip * chatot, const s8 * data) +{ + s32 src_i; + s32 i = 0; + u8 val2; + s8 val; + chatot->exists = TRUE; + + for (src_i = 0; src_i < 2000; src_i += 2) + { + val = data[src_i + 0]; + val2 = untransform(val); + chatot->data[i] = (s8)val2; + + val = data[src_i + 1]; + val2 = untransform(val); + chatot->data[i] |= val2 << 4; + + i++; + } +} + +THUMB_FUNC void Chatot_copy(struct SaveChatotSoundClip * dest, const struct SaveChatotSoundClip * src) +{ + MIi_CpuCopyFast(src, dest, sizeof(struct SaveChatotSoundClip)); +} diff --git a/arm9/src/save_arrays.c b/arm9/src/save_arrays.c index 8520f2c11..f4b18b86d 100644 --- a/arm9/src/save_arrays.c +++ b/arm9/src/save_arrays.c @@ -15,6 +15,7 @@ #include "seal.h" #include "unk_020139D8.h" #include "unk_02024E64.h" +#include "sav_chatot.h" extern u32 FUN_0202AC20(void); extern u32 FUN_02034D7C(void); @@ -26,7 +27,7 @@ extern u32 FUN_02028054(void); extern u32 FUN_02028980(void); extern u32 FUN_02029A84(void); extern u32 FUN_02029FB0(void); -extern u32 FUN_02029EC4(void); +extern u32 Sav2_Chatot_sizeof(void); extern u32 FUN_0202A89C(void); extern u32 FUN_0202A8F4(void); extern u32 FUN_0202A924(void); @@ -47,7 +48,6 @@ extern void FUN_0202805C(void *); extern void FUN_02028994(void *); extern void FUN_02029A8C(void *); extern void FUN_02029FB8(void *); -extern void FUN_02029ECC(void *); extern void FUN_0202A8A4(void *); extern void FUN_0202A8F8(void *); extern void FUN_0202A92C(void *); @@ -87,7 +87,7 @@ const struct SaveChunkHeader UNK_020EE700[] = { { 19, 0, (SAVSIZEFN)FUN_02029A84, (SAVINITFN)FUN_02029A8C }, { 20, 0, (SAVSIZEFN)FUN_02029FB0, (SAVINITFN)FUN_02029FB8 }, { 21, 0, (SAVSIZEFN)Sav2_SealCase_sizeof, (SAVINITFN)Sav2_SealCase_init }, - { 22, 0, (SAVSIZEFN)FUN_02029EC4, (SAVINITFN)FUN_02029ECC }, + { 22, 0, (SAVSIZEFN)Sav2_Chatot_sizeof, (SAVINITFN)Sav2_Chatot_init }, { 23, 0, (SAVSIZEFN)FUN_0202A89C, (SAVINITFN)FUN_0202A8A4 }, { 24, 0, (SAVSIZEFN)FUN_0202A8F4, (SAVINITFN)FUN_0202A8F8 }, { 25, 0, (SAVSIZEFN)FUN_0202A924, (SAVINITFN)FUN_0202A92C }, diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index 5acaae1ea..df611ec75 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -1,6 +1,6 @@ #include "scrcmd.h" -extern void* FUN_02029EF8(struct SaveBlock2* sav2); +extern void* Sav2_Chatot_get(struct SaveBlock2* sav2); extern u32 FUN_02005D20(void *); extern void FUN_02005E6C(void *); extern void FUN_0200433C(u32, u32, u32); @@ -203,7 +203,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0059(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + void* unk = Sav2_Chatot_get(ctx->unk80->saveBlock2); if (FUN_02005D20(unk) == 1) { *ret_ptr = 1; @@ -241,7 +241,7 @@ THUMB_FUNC BOOL ScrCmd_Unk005B(struct ScriptContext* ctx) THUMB_FUNC BOOL ScrCmd_Unk005C(struct ScriptContext* ctx) { - void* unk = FUN_02029EF8(ctx->unk80->saveBlock2); + void* unk = Sav2_Chatot_get(ctx->unk80->saveBlock2); FUN_02005E6C(unk); return TRUE; diff --git a/include/sav_chatot.h b/include/sav_chatot.h new file mode 100644 index 000000000..858423c58 --- /dev/null +++ b/include/sav_chatot.h @@ -0,0 +1,24 @@ +#ifndef POKEDIAMOND_SAV_CHATOT_H +#define POKEDIAMOND_SAV_CHATOT_H + +#include "save_block_2.h" + +struct SaveChatotSoundClip +{ + // TODO: Fill this in + BOOL exists; + s8 data[1000]; +}; + +u32 Sav2_Chatot_sizeof(void); +void Sav2_Chatot_init(struct SaveChatotSoundClip * chatot); +struct SaveChatotSoundClip * Chatot_new(u32 heap_id); +struct SaveChatotSoundClip * Sav2_Chatot_get(struct SaveBlock2 * sav2); +BOOL Chatot_exists(struct SaveChatotSoundClip * chatot); +void Chatot_invalidate(struct SaveChatotSoundClip * chatot); +s8 * Chatot_GetData(struct SaveChatotSoundClip * chatot); +void Chatot_Decode(s8 * dest, const s8 * data); +void Chatot_Encode(struct SaveChatotSoundClip * chatot, const s8 * data); +void Chatot_copy(struct SaveChatotSoundClip * dest, const struct SaveChatotSoundClip * src); + +#endif //POKEDIAMOND_SAV_CHATOT_H From 3188237ddaf9aefcbea90967a15df7b78fe8e336 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 24 May 2021 09:47:29 -0400 Subject: [PATCH 108/134] Propagate type changes to sound.c, main.c --- arm9/src/main.c | 5 ----- arm9/src/sound.c | 10 +++++----- include/sound.h | 7 ++++--- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/arm9/src/main.c b/arm9/src/main.c index 863cb6543..314c4509c 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -26,17 +26,12 @@ s32 UNK_02016FA4; PMBackLightSwitch gBacklightTop; struct UnkStruct_02016FA8 UNK_02016FA8; -extern void InitSystemForTheGame(void); -extern void InitGraphicMemory(void); extern void FUN_02022294(void); extern void GF_InitRTCWork(void); extern void FUN_02002C14(void); extern void FUN_02002C50(int, int); -extern struct SaveBlock2 * SaveBlock2_new(void); -extern void * Sav2_Chatot_get(struct SaveBlock2 *); extern int FUN_020337E8(int); extern void FUN_02034188(int, int); -extern int FUN_020227FC(struct SaveBlock2 *); extern void FUN_02089D90(int); extern void FUN_0200A2AC(void); extern void FUN_02015E30(void); diff --git a/arm9/src/sound.c b/arm9/src/sound.c index 79eb21f00..a5228dab5 100644 --- a/arm9/src/sound.c +++ b/arm9/src/sound.c @@ -26,20 +26,20 @@ extern void FUN_0200538C(int, int, int); extern BOOL FUN_02005404(void); extern void FUN_02005CFC(void); -void InitSoundData(void * a0, struct Options * a1) +void InitSoundData(struct SaveChatotSoundClip * chatot, struct Options * options) { struct SoundData * sdat = GetSoundDataPointer(); NNS_SndInit(); GF_InitMic(); GF_SoundDataInit(sdat); - sdat->heap = NNS_SndHeapCreate(sdat->unk_00094, sizeof(sdat->unk_00094)); + sdat->heap = NNS_SndHeapCreate(sdat->heapBuffer, sizeof(sdat->heapBuffer)); NNS_SndArcInit(&sdat->header, "data/sound/sound_data.sdat", sdat->heap, 0); NNS_SndArcPlayerSetup(sdat->heap); FUN_02004088(sdat); FUN_020040A4(sdat); UNK_02107074 = 0; - sdat->unk_BCD4C = a0; - FUN_02004D60(a1->soundMethod); + sdat->chatot = chatot; + FUN_02004D60(options->soundMethod); } void DoSoundUpdateFrame(void) @@ -185,7 +185,7 @@ void * FUN_02003D38(u32 a0) case 34: return &sdat->unk_BCD48; case 35: - return &sdat->unk_BCD4C; + return &sdat->chatot; case 36: return &sdat->unk_BCD50; case 37: diff --git a/include/sound.h b/include/sound.h index adefe938d..781c6b5b1 100644 --- a/include/sound.h +++ b/include/sound.h @@ -6,12 +6,13 @@ #include "NNS_SND_heap.h" #include "NNS_SND_arc_loader.h" #include "player_data.h" +#include "sav_chatot.h" struct SoundData { NNSSndArc header; NNSSndHeapHandle * heap; // 0x00090 - u8 unk_00094[0xBBC00]; + u8 heapBuffer[0xBBC00]; u32 players[9]; u32 unk_BBCB8; u32 unk_BBCBC; @@ -44,7 +45,7 @@ struct SoundData u32 unk_BCD3C; u64 unk_BCD40; u32 unk_BCD48; - void * unk_BCD4C; + struct SaveChatotSoundClip * chatot; u32 unk_BCD50; u32 unk_BCD54; u32 unk_BCD58; @@ -52,7 +53,7 @@ struct SoundData }; struct SoundData * GetSoundDataPointer(void); -void InitSoundData(void * a0, struct Options * a1); +void InitSoundData(struct SaveChatotSoundClip * chatot, struct Options * options); void * FUN_02003D38(u32 a0); int GF_Snd_SaveState(int * level_p); void GF_Snd_RestoreState(int level); From cde6e91b693c77f93546b8fc23dde1c53dcb0a4f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 24 May 2021 11:08:11 -0400 Subject: [PATCH 109/134] Don't use MI internals in GF code --- arm9/lib/include/MI_memory.h | 10 ++++++++++ arm9/src/game_init.c | 10 +++++----- arm9/src/pokemon.c | 10 +++++----- arm9/src/sav_chatot.c | 4 ++-- arm9/src/save.c | 2 +- arm9/src/text.c | 2 +- arm9/src/unk_0200BA78.c | 2 +- arm9/src/unk_02016B94.c | 19 ++++++++++--------- arm9/src/unk_02024E64.c | 6 +++--- arm9/src/unk_0202ABBC.c | 6 +++--- 10 files changed, 41 insertions(+), 30 deletions(-) diff --git a/arm9/lib/include/MI_memory.h b/arm9/lib/include/MI_memory.h index 339ff9b84..4e5722bb6 100644 --- a/arm9/lib/include/MI_memory.h +++ b/arm9/lib/include/MI_memory.h @@ -25,6 +25,11 @@ static inline void MI_CpuClear8(void *dest, u32 size) { MI_CpuFill8(dest, 0, size); } +static inline void MI_CpuFill16(void *dest, u16 data, u32 size) +{ + MIi_CpuClear16(data, dest, size); +} + static inline void MI_CpuClear16(void * destp, u32 size) { MIi_CpuClear16(0, destp, size); @@ -55,4 +60,9 @@ static inline void MI_CpuFillFast(void *dest, u32 data, u32 size) MIi_CpuClearFast(data, dest, size); } +static inline void MI_CpuCopyFast(const void *src, void *dest, u32 size) +{ + MIi_CpuCopyFast(src, dest, size); +} + #endif //POKEDIAMOND_ARM9_MI_MEMORY_H diff --git a/arm9/src/game_init.c b/arm9/src/game_init.c index 12d18629d..64ea7a546 100644 --- a/arm9/src/game_init.c +++ b/arm9/src/game_init.c @@ -181,12 +181,12 @@ void InitSystemForTheGame(void) void InitGraphicMemory(void) { GX_SetBankForLCDC(0x1FF); - MIi_CpuClearFast(0, (void *)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE); + MI_CpuClearFast((void *)HW_LCDC_VRAM, HW_LCDC_VRAM_SIZE); GX_DisableBankForLCDC(); - MIi_CpuClearFast(0xC0, (void *)HW_OAM, HW_OAM_SIZE); - MIi_CpuClearFast(0xC0, (void *)HW_DB_OAM, HW_DB_OAM_SIZE); - MIi_CpuClearFast(0, (void *)HW_PLTT, HW_PLTT_SIZE); - MIi_CpuClearFast(0, (void *)HW_DB_PLTT, HW_DB_PLTT_SIZE); + MI_CpuFillFast((void *)HW_OAM, 0xC0, HW_OAM_SIZE); + MI_CpuFillFast((void *)HW_DB_OAM, 0xC0, HW_DB_OAM_SIZE); + MI_CpuClearFast((void *)HW_PLTT, HW_PLTT_SIZE); + MI_CpuClearFast((void *)HW_DB_PLTT, HW_DB_PLTT_SIZE); } void * FUN_020161A4(u32 heap_id, const char * path) diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index b3e53d1ab..29075833c 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -176,14 +176,14 @@ const s8 sNatureStatMods[][5] = { void ZeroMonData(struct Pokemon * pokemon) { - MIi_CpuClearFast(0, pokemon, sizeof(struct Pokemon)); + MI_CpuClearFast(pokemon, sizeof(struct Pokemon)); ENCRYPT_BOX(&pokemon->box); ENCRYPT_PTY(pokemon); } void ZeroBoxMonData(struct BoxPokemon * boxmon) { - MIi_CpuClearFast(0, boxmon, sizeof(struct BoxPokemon)); + MI_CpuClearFast(boxmon, sizeof(struct BoxPokemon)); ENCRYPT_BOX(boxmon); } @@ -272,7 +272,7 @@ void CreateMon(struct Pokemon * pokemon, int species, int level, int fixedIV, in FreeToHeap(mail); capsule = 0; SetMonData(pokemon, MON_DATA_CAPSULE, &capsule); - MIi_CpuClearFast(0, seal_coords, sizeof(seal_coords)); + MI_CpuClearFast(seal_coords, sizeof(seal_coords)); SetMonData(pokemon, MON_DATA_SEAL_COORDS, seal_coords); CalcMonLevelAndStats(pokemon); } @@ -3004,7 +3004,7 @@ void CopyBoxPokemonToPokemon(struct BoxPokemon * src, struct Pokemon * dest) SetMonData(dest, MON_DATA_MAIL_STRUCT, mail); FreeToHeap(mail); SetMonData(dest, MON_DATA_CAPSULE, &sp0); - MIi_CpuClearFast(0, &sp4, sizeof(sp4)); + MI_CpuClearFast(&sp4, sizeof(sp4)); SetMonData(dest, MON_DATA_SEAL_COORDS, &sp4); CalcMonLevelAndStats(dest); } @@ -3724,7 +3724,7 @@ void Pokemon_RemoveCapsule(struct Pokemon * pokemon) { u8 sp0 = 0; CapsuleArray sp1; - MIi_CpuClearFast(0, &sp1, sizeof(sp1)); + MI_CpuClearFast(&sp1, sizeof(sp1)); SetMonData(pokemon, MON_DATA_CAPSULE, &sp0); SetMonData(pokemon, MON_DATA_SEAL_COORDS, &sp1); } diff --git a/arm9/src/sav_chatot.c b/arm9/src/sav_chatot.c index 7b240a993..86786e661 100644 --- a/arm9/src/sav_chatot.c +++ b/arm9/src/sav_chatot.c @@ -10,7 +10,7 @@ THUMB_FUNC u32 Sav2_Chatot_sizeof(void) THUMB_FUNC void Sav2_Chatot_init(struct SaveChatotSoundClip * chatot) { - MIi_CpuClear32(0, chatot, sizeof(struct SaveChatotSoundClip)); + MI_CpuClear32(chatot, sizeof(struct SaveChatotSoundClip)); chatot->exists = FALSE; } @@ -94,5 +94,5 @@ THUMB_FUNC void Chatot_Encode(struct SaveChatotSoundClip * chatot, const s8 * da THUMB_FUNC void Chatot_copy(struct SaveChatotSoundClip * dest, const struct SaveChatotSoundClip * src) { - MIi_CpuCopyFast(src, dest, sizeof(struct SaveChatotSoundClip)); + MI_CpuCopyFast(src, dest, sizeof(struct SaveChatotSoundClip)); } diff --git a/arm9/src/save.c b/arm9/src/save.c index 85d18d066..89bd8374e 100644 --- a/arm9/src/save.c +++ b/arm9/src/save.c @@ -82,7 +82,7 @@ BOOL FUN_0202263C(struct SaveBlock2 * sav2) FlashClobberChunkFooter(sav2, 1, (u32)(sav2->unk_20220[1] == 0 ? 1 : 0)); FlashClobberChunkFooter(sav2, 0, (u32)(sav2->unk_20220[0])); FlashClobberChunkFooter(sav2, 1, (u32)(sav2->unk_20220[1])); - MIi_CpuClearFast(-1u, r6, 0x1000); + MI_CpuFillFast(r6, -1u, 0x1000); for (int i = 0; i < 64; i++) { FlashWriteChunk((u32)(0x1000 * i), r6, 0x1000); diff --git a/arm9/src/text.c b/arm9/src/text.c index 5078f229d..8676cbcc0 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -331,7 +331,7 @@ THUMB_FUNC u16 *FUN_0201C1B0(void) void *res = AllocFromHeap(0, 32 * 24 * sizeof(u16)); struct UnkStruct_0200B870_sub * var; void *tmp = FUN_02006BB0(NARC_GRAPHIC_FONT, 5, 0, &var, 0); - MIi_CpuCopy32(var->unk_14, res, 32 * 24 * sizeof(u16)); + MI_CpuCopy32(var->unk_14, res, 32 * 24 * sizeof(u16)); FreeToHeap(tmp); return res; } diff --git a/arm9/src/unk_0200BA78.c b/arm9/src/unk_0200BA78.c index d98b5374a..457001efc 100644 --- a/arm9/src/unk_0200BA78.c +++ b/arm9/src/unk_0200BA78.c @@ -25,7 +25,7 @@ THUMB_FUNC void FUN_0200BAAC( { if (param0->data[i] >= 0xa2 && param0->data[i] <= 0xab) { - MIi_CpuCopy32( + MI_CpuCopy32( ¶m0->unk_4->unk_14[(param0->data[i] - 0xa2) << 5], dest + i * 0x20, 0x20); } else diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index a8be59589..e01b31334 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -312,7 +312,7 @@ THUMB_FUNC void FUN_02016C18( { param0->unk08[param1].unk08 = AllocFromHeap(param0->unk00, param2->unk08); - MIi_CpuClear16(0, param0->unk08[param1].unk08, param2->unk08); + MI_CpuClear16(param0->unk08[param1].unk08, param2->unk08); param0->unk08[param1].unk0c = param2->unk08; param0->unk08[param1].unk10 = param2->unk0c; @@ -2580,11 +2580,11 @@ THUMB_FUNC void FUN_02017C98(const void *param0, void *param1, u32 param2) if (((u32)param0 % 4) == 0 && ((u32)param1 % 4) == 0 && ((u16)param2 % 4) == 0) { - MIi_CpuCopy32(param0, param1, param2); + MI_CpuCopy32(param0, param1, param2); return; } - MIi_CpuCopy16(param0, param1, param2); + MI_CpuCopy16(param0, param1, param2); } THUMB_FUNC void FUN_02017CD0(struct UnkStruct_02016B94_2 *param0, u32 param1) @@ -2749,7 +2749,7 @@ THUMB_FUNC void FUN_02017F48( r5 = r5 << 0x18 | r5 << 0x10 | r5 << 8 | r5; } - MIi_CpuClearFast(r5, st4, st0); + MI_CpuFillFast(st4, r5, st0); FUN_02017E84((u8)param1, st4, param0->unk08[param1].unk1f * param4, st0); FreeToHeap(st4); @@ -3285,7 +3285,7 @@ THUMB_FUNC void FUN_02018744(struct UnkStruct_02016B94_2 *param0, u32 param1) { if (param0->unk08[param1].unk08 != NULL) { - MIi_CpuClear16(0, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + MI_CpuClear16(param0->unk08[param1].unk08, param0->unk08[param1].unk0c); FUN_02017CD0(param0, param1); } } @@ -3294,7 +3294,7 @@ THUMB_FUNC void FUN_02018768(struct UnkStruct_02016B94_2 *param0, u32 param1, u1 { if (param0->unk08[param1].unk08 != NULL) { - MIi_CpuClear16(param2, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c); FUN_02017CD0(param0, param1); } } @@ -3303,7 +3303,7 @@ THUMB_FUNC void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u1 { if (param0->unk08[param1].unk08 != NULL) { - MIi_CpuClear16(param2, param0->unk08[param1].unk08, param0->unk08[param1].unk0c); + MI_CpuFill16(param0->unk08[param1].unk08, param2, param0->unk08[param1].unk0c); FUN_0201AC68(param0, param1); } } @@ -4905,9 +4905,10 @@ THUMB_FUNC void FillWindowPixelBuffer(struct Window *window, u8 param1) param1 |= param1 << 4; } - MIi_CpuClearFast((u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), + MI_CpuFillFast( window->unk0c, - (u32)(window->unk00->unk08[window->unk04].unk1f * window->width * window->height)); + (u32)((param1 << 0x18) | (param1 << 0x10) | (param1 << 0x8) | param1), + (u32)(window->unk00->unk08[window->unk04].unk1f * window->width * window->height)); } THUMB_FUNC void BlitBitmapRectToWindow(struct Window *window, diff --git a/arm9/src/unk_02024E64.c b/arm9/src/unk_02024E64.c index d8682531e..ad6a7eace 100644 --- a/arm9/src/unk_02024E64.c +++ b/arm9/src/unk_02024E64.c @@ -10,14 +10,14 @@ THUMB_FUNC u32 FUN_02024E64() THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0) { - MIi_CpuClearFast(0, param0, sizeof(struct UnkStruct_02024E64)); + MI_CpuClearFast(param0, sizeof(struct UnkStruct_02024E64)); FUN_020250A4(param0->unk0); FUN_02025484(param0->unk700); - MIi_CpuClear16(0xFFFF, param0->rival_name_buf, sizeof(param0->rival_name_buf) / sizeof(u16)); - MIi_CpuClear16(0xFFFF, param0->unk734, sizeof(param0->unk734) / sizeof(u16)); + MI_CpuFill16(param0->rival_name_buf, EOS, sizeof(param0->rival_name_buf) / sizeof(u16)); + MI_CpuFill16(param0->unk734, EOS, sizeof(param0->unk734) / sizeof(u16)); } THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2) diff --git a/arm9/src/unk_0202ABBC.c b/arm9/src/unk_0202ABBC.c index 7bc9d3fc0..75a43f604 100644 --- a/arm9/src/unk_0202ABBC.c +++ b/arm9/src/unk_0202ABBC.c @@ -15,7 +15,7 @@ THUMB_FUNC u32 FUN_0202ABC8() THUMB_FUNC void FUN_0202ABCC(struct Unk0202ABBC* unk) { - MIi_CpuClearFast(0, unk, 0xf4); + MI_CpuClearFast(unk, sizeof(struct Unk0202ABBC)); } THUMB_FUNC u16 FUN_0202ABDC(struct Unk0202ABBC* unk) @@ -30,12 +30,12 @@ THUMB_FUNC void FUN_0202ABE4(struct Unk0202ABBC* unk, u16 data) THUMB_FUNC void FUN_0202ABEC(void *srcp, void *destp) { - MIi_CpuCopyFast(srcp, destp, 0xec); + MI_CpuCopyFast(srcp, destp, 0xec); } THUMB_FUNC void FUN_0202ABF8(void *destp, void *srcp) { - MIi_CpuCopyFast(srcp, destp, 0xec); + MI_CpuCopyFast(srcp, destp, 0xec); } THUMB_FUNC u32 FUN_0202AC08(struct Unk0202ABBC* unk) From d523142098cb0d0fb37eca7d91931859776b085d Mon Sep 17 00:00:00 2001 From: tgsm Date: Mon, 24 May 2021 18:23:47 -0400 Subject: [PATCH 110/134] Decompile unk_0206439C --- arm9/asm/unk_0206439C.s | 22 ---------------------- arm9/src/unk_0206439C.c | 16 ++++++++++++++++ include/unk_0206439C.h | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 22 deletions(-) delete mode 100644 arm9/asm/unk_0206439C.s create mode 100644 arm9/src/unk_0206439C.c create mode 100644 include/unk_0206439C.h diff --git a/arm9/asm/unk_0206439C.s b/arm9/asm/unk_0206439C.s deleted file mode 100644 index 4cc91f4f5..000000000 --- a/arm9/asm/unk_0206439C.s +++ /dev/null @@ -1,22 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0206439C -FUN_0206439C: ; 0x0206439C - push {r4-r6, lr} - add r5, r1, #0x0 - add r6, r2, #0x0 - mov r1, #0x8 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - add r0, r6, #0x0 - bl SavArray_PlayerParty_get - add r1, r5, #0x0 - bl GetPartyMonByIndex - str r0, [r4, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - add r0, r4, #0x0 - pop {r4-r6, pc} diff --git a/arm9/src/unk_0206439C.c b/arm9/src/unk_0206439C.c new file mode 100644 index 000000000..80d935575 --- /dev/null +++ b/arm9/src/unk_0206439C.c @@ -0,0 +1,16 @@ +#include "global.h" +#include "heap.h" +#include "party.h" +#include "save_block_2.h" +#include "unk_0206439C.h" + +THUMB_FUNC struct UnkStruct_0206439C* FUN_0206439C(u32 heap_id, u8 mon_idx, struct SaveBlock2* sav2) +{ + struct UnkStruct_0206439C* ret = AllocFromHeapAtEnd(heap_id, sizeof(struct UnkStruct_0206439C)); + struct PlayerParty* party = SavArray_PlayerParty_get(sav2); + + ret->pokemon = GetPartyMonByIndex(party, mon_idx); + ret->unk4 = NULL; + + return ret; +} diff --git a/include/unk_0206439C.h b/include/unk_0206439C.h new file mode 100644 index 000000000..6d094e5c1 --- /dev/null +++ b/include/unk_0206439C.h @@ -0,0 +1,15 @@ +#ifndef POKEDIAMOND_UNK_0206439C_H +#define POKEDIAMOND_UNK_0206439C_H + +struct Pokemon; +struct SaveBlock2; + +struct UnkStruct_0206439C +{ + struct Pokemon* pokemon; + void* unk4; +}; + +struct UnkStruct_0206439C* FUN_0206439C(u32 heap_id, u8 mon_idx, struct SaveBlock2* sav2); + +#endif From 8169654ed22031b0aba942913aae72d296c2c83a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 25 May 2021 17:19:59 -0400 Subject: [PATCH 111/134] Decompile gf_rtc.c --- arm9/CMakeLists.txt | 1 + arm9/Makefile | 2 +- arm9/asm/gf_rtc.s | 410 ------------------- arm9/asm/scrcmd_asm.s | 40 +- arm9/asm/unk_020023C0.s | 2 +- arm9/asm/unk_02002C14.s | 14 +- arm9/asm/unk_02002F08.s | 8 +- arm9/asm/unk_020030E8.s | 14 +- arm9/asm/unk_020040F4.s | 42 +- arm9/asm/unk_020051F4.s | 8 +- arm9/asm/unk_02006D98.s | 8 +- arm9/asm/unk_02008AA4.s | 26 +- arm9/asm/unk_02008DEC.s | 234 +++++------ arm9/asm/unk_02009EAC.s | 24 +- arm9/asm/unk_0200BB14.s | 24 +- arm9/asm/unk_0200E1D0.s | 12 +- arm9/asm/unk_0200E850.s | 28 +- arm9/asm/unk_02011744.s | 56 +-- arm9/asm/unk_02012004.s | 20 +- arm9/asm/unk_02012944.s | 14 +- arm9/asm/unk_02012CC8.s | 54 +-- arm9/asm/unk_02013CD4.s | 30 +- arm9/asm/unk_02014590.s | 2 +- arm9/asm/unk_02014BF4.s | 66 +-- arm9/asm/unk_0201B1A8.s | 8 +- arm9/asm/unk_0201B4E8.s | 2 +- arm9/asm/unk_0201C24C.s | 10 +- arm9/asm/unk_0201CC08.s | 12 +- arm9/asm/unk_0201D040.s | 42 +- arm9/asm/unk_0201E00C.s | 22 +- arm9/asm/unk_0201E7D8.s | 2 +- arm9/asm/unk_0201F06C.s | 88 ++-- arm9/asm/unk_02020C44.s | 102 ++--- arm9/asm/unk_02021590.s | 4 +- arm9/asm/unk_02023AC4.s | 2 +- arm9/asm/unk_020250A4.s | 2 +- arm9/asm/unk_02025954.s | 42 +- arm9/asm/unk_02026CD0.s | 164 ++++---- arm9/asm/unk_020281E0.s | 24 +- arm9/asm/unk_02029AE0.s | 14 +- arm9/asm/unk_02029FB0.s | 8 +- arm9/asm/unk_0202A924.s | 14 +- arm9/asm/unk_0202AC20.s | 18 +- arm9/asm/unk_0202B374.s | 10 +- arm9/asm/unk_0202B870.s | 2 +- arm9/asm/unk_0202BE98.s | 6 +- arm9/asm/unk_0202D394.s | 2 +- arm9/asm/unk_0202D4C4.s | 2 +- arm9/asm/unk_0202D8D0.s | 4 +- arm9/asm/unk_0202DB14.s | 2 +- arm9/asm/unk_020336C0.s | 8 +- arm9/asm/unk_02033874.s | 2 +- arm9/asm/unk_020343A8.s | 26 +- arm9/asm/unk_02034A28.s | 20 +- arm9/asm/unk_02034E84.s | 2 +- arm9/asm/unk_02034FE4.s | 2 +- arm9/asm/unk_020372D4.s | 6 +- arm9/asm/unk_020377F0.s | 6 +- arm9/asm/unk_02038C78.s | 16 +- arm9/asm/unk_02047500.s | 4 +- arm9/asm/unk_020476CC.s | 16 +- arm9/asm/unk_02048120.s | 2 +- arm9/asm/unk_02048904.s | 26 +- arm9/asm/unk_0204A368.s | 2 +- arm9/asm/unk_0204A498.s | 6 +- arm9/asm/unk_0204AF24.s | 8 +- arm9/asm/unk_0204B34C.s | 4 +- arm9/asm/unk_0204B9EC.s | 12 +- arm9/asm/unk_0204C1B4.s | 12 +- arm9/asm/unk_0204CB20.s | 24 +- arm9/asm/unk_0204FBA8.s | 2 +- arm9/asm/unk_020520AC.s | 8 +- arm9/asm/unk_02052EE8.s | 10 +- arm9/asm/unk_0205363C.s | 2 +- arm9/asm/unk_02053750.s | 2 +- arm9/asm/unk_02055068.s | 16 +- arm9/asm/unk_020557F4.s | 10 +- arm9/asm/unk_02057380.s | 54 +-- arm9/asm/unk_02058EE8.s | 4 +- arm9/asm/unk_02059F04.s | 12 +- arm9/asm/unk_0205AD98.s | 12 +- arm9/asm/unk_0205BEF8.s | 2 +- arm9/asm/unk_0205C334.s | 2 +- arm9/asm/unk_0205C598.s | 12 +- arm9/asm/unk_0205DD18.s | 18 +- arm9/asm/unk_0205EC84.s | 4 +- arm9/asm/unk_0205F314.s | 6 +- arm9/asm/unk_0205F7A0.s | 4 +- arm9/asm/unk_02060344.s | 2 +- arm9/asm/unk_020603B0.s | 12 +- arm9/asm/unk_020607D4.s | 10 +- arm9/asm/unk_02060CCC.s | 42 +- arm9/asm/unk_02063888.s | 2 +- arm9/asm/unk_02063948.s | 2 +- arm9/asm/unk_020643C0.s | 8 +- arm9/asm/unk_020647A4.s | 8 +- arm9/asm/unk_02064CA8.s | 6 +- arm9/asm/unk_0206C700.s | 2 +- arm9/asm/unk_0206DE24.s | 6 +- arm9/asm/unk_0206E0F0.s | 8 +- arm9/asm/unk_020772F0.s | 4 +- arm9/asm/unk_02080C38.s | 20 +- arm9/asm/unk_020828BC.s | 22 +- arm9/asm/unk_020834D0.s | 12 +- arm9/asm/unk_02083D48.s | 2 +- arm9/asm/unk_020859C0.s | 16 +- arm9/asm/unk_02086414.s | 10 +- arm9/asm/unk_02086FA8.s | 2 +- arm9/asm/unk_02087A6C.s | 36 +- arm9/asm/unk_02088320.s | 10 +- arm9/asm/unk_02088AAC.s | 4 +- arm9/asm/unk_02088D1C.s | 10 +- arm9/asm/unk_020893E0.s | 8 +- arm9/global.inc | 2 +- arm9/lib/include/RTC_api.h | 83 +++- arm9/modules/04/asm/thumb_04.s | 2 +- arm9/modules/05/asm/mod05_021D74E0.s | 8 +- arm9/modules/05/asm/mod05_021D7F4C.s | 6 +- arm9/modules/05/asm/mod05_021D80E8.s | 6 +- arm9/modules/05/asm/mod05_021D9320.s | 20 +- arm9/modules/05/asm/mod05_021D9A48.s | 74 ++-- arm9/modules/05/asm/mod05_021DA5B8.s | 36 +- arm9/modules/05/asm/mod05_021DB44C.s | 6 +- arm9/modules/05/asm/mod05_021DB900.s | 16 +- arm9/modules/05/asm/mod05_021DBD84.s | 2 +- arm9/modules/05/asm/mod05_021DBE04.s | 4 +- arm9/modules/05/asm/mod05_021DC0B8.s | 38 +- arm9/modules/05/asm/mod05_021E1374.s | 6 +- arm9/modules/05/asm/mod05_021E2E88.s | 2 +- arm9/modules/05/asm/mod05_021E3444.s | 16 +- arm9/modules/05/asm/mod05_021E4AE4.s | 28 +- arm9/modules/05/asm/mod05_021E55BC.s | 2 +- arm9/modules/05/asm/mod05_021E577C.s | 2 +- arm9/modules/05/asm/mod05_021E5FD8.s | 22 +- arm9/modules/05/asm/mod05_021E779C.s | 6 +- arm9/modules/05/asm/mod05_021E7C00.s | 8 +- arm9/modules/05/asm/module_05.s | 218 +++++----- arm9/modules/05/src/mod05_021E72FC.c | 2 +- arm9/modules/06/asm/module_06.s | 264 ++++++------ arm9/modules/07/asm/module_07.s | 4 +- arm9/modules/08/asm/module_08.s | 234 +++++------ arm9/modules/11/asm/module_11_thumb1.s | 6 +- arm9/modules/11/asm/module_11_thumb2.s | 154 +++---- arm9/modules/12/asm/module_12.s | 166 ++++---- arm9/modules/14/asm/module_14.s | 36 +- arm9/modules/15/asm/module_15.s | 24 +- arm9/modules/16/asm/module_16.s | 530 ++++++++++++------------- arm9/modules/17/asm/module_17.s | 92 ++--- arm9/modules/18/asm/module_18.s | 108 ++--- arm9/modules/20/asm/module_20.s | 32 +- arm9/modules/24/asm/module_24.s | 20 +- arm9/modules/28/asm/module_28.s | 2 +- arm9/modules/36/asm/module_36.s | 8 +- arm9/modules/53/asm/module_53.s | 6 +- arm9/modules/54/asm/module_54.s | 18 +- arm9/modules/57/asm/module_57.s | 22 +- arm9/modules/58/asm/module_58.s | 2 +- arm9/modules/62/asm/module_62.s | 16 +- arm9/modules/63/asm/mod63_021D8890.s | 22 +- arm9/modules/63/asm/mod63_021DAE5C.s | 4 +- arm9/modules/64/asm/module_64.s | 28 +- arm9/modules/66/asm/module_66.s | 4 +- arm9/modules/69/asm/module_69.s | 2 +- arm9/modules/71/asm/module_71.s | 4 +- arm9/modules/73/asm/module_73.s | 94 ++--- arm9/modules/80/asm/module_80.s | 8 +- arm9/modules/81/asm/module_81.s | 2 +- arm9/modules/85/asm/module_85.s | 102 ++--- arm9/src/error_handling.c | 2 +- arm9/src/filesystem.c | 20 +- arm9/src/gf_rtc.c | 181 +++++++++ arm9/src/heap.c | 24 +- arm9/src/main.c | 2 +- arm9/src/poke_overlay.c | 16 +- arm9/src/scrcmd_24.c | 6 +- arm9/src/script.c | 2 +- arm9/src/script_pokemon_util.c | 2 +- arm9/src/unk_0202E29C.c | 2 +- arm9/src/unk_0202F150.c | 8 +- include/error_handling.h | 2 +- include/gf_rtc.h | 31 ++ include/global.h | 2 +- 182 files changed, 2602 insertions(+), 2722 deletions(-) delete mode 100644 arm9/asm/gf_rtc.s create mode 100644 arm9/src/gf_rtc.c create mode 100644 include/gf_rtc.h diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt index 9170d823c..fce2106f2 100644 --- a/arm9/CMakeLists.txt +++ b/arm9/CMakeLists.txt @@ -16,3 +16,4 @@ file(GLOB MODULE_INC modules/*/include) add_executable(DP_Arm9 ${SOURCES}) target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC}) +target_compile_definitions(DP_Arm9 PUBLIC __CLION_IDE__) diff --git a/arm9/Makefile b/arm9/Makefile index 6f05d1c58..09766c82a 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -110,7 +110,7 @@ ASM_PROCESSOR := $(ASM_PROCESSOR_DIR)/compile.sh # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W most,implicit -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start LIBS := -Llib -lsyscall diff --git a/arm9/asm/gf_rtc.s b/arm9/asm/gf_rtc.s deleted file mode 100644 index a73a4801e..000000000 --- a/arm9/asm/gf_rtc.s +++ /dev/null @@ -1,410 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .rodata - - .global sMaxTime -sMaxTime: ; 0x020ED498 - ; 23:59:59 - .word 23, 59, 59 - - .global sMaxDate -sMaxDate: ; 0x020ED4A4 - ; 31 December, 2099 - .word 99, 12, 31, 0 - - .global sGF_DaysPerMonth -sGF_DaysPerMonth: ; 0x020ED4B2 - .short 0 - .short 31 - .short 59 - .short 90 - .short 120 - .short 151 - .short 181 - .short 212 - .short 243 - .short 273 - .short 304 - .short 334 - - .global sTimeOfDayByHour -sTimeOfDayByHour: ; 0x020ED4CC - ; 00:00 - 03:59 - .byte 0x04, 0x04, 0x04, 0x04 - ; 04:00 - 09:59 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ; 10:00 - 16:59 - .byte 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 - ; 17:00 - 19:59 - .byte 0x02, 0x02, 0x02 - ; 20:00 - 23:59 - .byte 0x03, 0x03, 0x03, 0x03 - - .section .bss - - .global sGFRTCWork -sGFRTCWork: ; 0x021C4808 - .space 0x48 - - .text - - thumb_func_start GF_InitRTCWork -GF_InitRTCWork: ; 0x0201259C - push {r3, lr} - bl RTC_Init - ldr r3, _020125CC ; =sGFRTCWork - mov r0, #0x0 - add r2, r3, #0x0 - add r1, r0, #0x0 - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - stmia r2!, {r0-r1} - ldr r1, _020125D0 ; =sGFRTCWork - str r0, [r1, #0x0] - str r0, [r1, #0x4] - str r0, [r1, #0x8] - add r0, r3, #0x0 - bl GF_RTC_GetDateTime - pop {r3, pc} - .balign 4 -_020125CC: .word sGFRTCWork -_020125D0: .word sGFRTCWork - - thumb_func_start GF_RTC_UpdateOnFrame -GF_RTC_UpdateOnFrame: ; 0x020125D4 - push {r3, lr} - ldr r0, _020125F4 ; =sGFRTCWork - ldr r1, [r0, #0x4] - cmp r1, #0x0 - bne _020125F2 - ldr r1, [r0, #0x8] - add r1, r1, #0x1 - str r1, [r0, #0x8] - cmp r1, #0xa - ble _020125F2 - mov r1, #0x0 - str r1, [r0, #0x8] - ldr r0, _020125F8 ; =sGFRTCWork - bl GF_RTC_GetDateTime -_020125F2: - pop {r3, pc} - .balign 4 -_020125F4: .word sGFRTCWork -_020125F8: .word sGFRTCWork - - thumb_func_start GF_RTC_GetDateTime_Callback -GF_RTC_GetDateTime_Callback: ; 0x020125FC - push {r4, lr} - add r4, r1, #0x0 - str r0, [r4, #0xc] - cmp r0, #0x0 - beq _0201260A - bl ErrorHandling -_0201260A: - add r3, r4, #0x0 - mov r0, #0x1 - add r2, r4, #0x0 - add r3, #0x2c - str r0, [r4, #0x0] - ldmia r3!, {r0-r1} - add r2, #0x10 - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - add r3, r4, #0x0 - add r3, #0x3c - add r2, r4, #0x0 - ldmia r3!, {r0-r1} - add r2, #0x20 - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - str r0, [r2, #0x0] - mov r0, #0x0 - str r0, [r4, #0x4] - pop {r4, pc} - - thumb_func_start GF_RTC_GetDateTime -GF_RTC_GetDateTime: ; 0x02012634 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1 - str r0, [r4, #0x4] - add r0, r4, #0x0 - add r1, r4, #0x0 - ldr r2, _02012658 ; =GF_RTC_GetDateTime_Callback - add r0, #0x2c - add r1, #0x3c - add r3, r4, #0x0 - bl RTC_GetDateTimeAsync - str r0, [r4, #0xc] - cmp r0, #0x0 - beq _02012656 - bl ErrorHandling -_02012656: - pop {r4, pc} - .balign 4 -_02012658: .word GF_RTC_GetDateTime_Callback - - thumb_func_start GF_RTC_CopyDateTime -GF_RTC_CopyDateTime: ; 0x0201265C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _02012684 ; =sGFRTCWork - add r4, r1, #0x0 - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _0201266E - bl ErrorHandling -_0201266E: - ldr r2, _02012688 ; =sGFRTCWork + 16 - ldmia r2!, {r0-r1} - stmia r5!, {r0-r1} - ldmia r2!, {r0-r1} - ldr r2, _0201268C ; =sGFRTCWork + 32 - stmia r5!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 -_02012684: .word sGFRTCWork -_02012688: .word sGFRTCWork + 16 -_0201268C: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_CopyTime -GF_RTC_CopyTime: ; 0x02012690 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020126AC ; =sGFRTCWork - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _020126A0 - bl ErrorHandling -_020126A0: - ldr r2, _020126B0 ; =sGFRTCWork + 32 - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldr r0, [r2, #0x0] - str r0, [r4, #0x0] - pop {r4, pc} - .balign 4 -_020126AC: .word sGFRTCWork -_020126B0: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_CopyDate -GF_RTC_CopyDate: ; 0x020126B4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020126D0 ; =sGFRTCWork - ldr r0, [r0, #0x0] - cmp r0, #0x1 - beq _020126C4 - bl ErrorHandling -_020126C4: - ldr r2, _020126D4 ; =sGFRTCWork + 16 - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - ldmia r2!, {r0-r1} - stmia r4!, {r0-r1} - pop {r4, pc} - .balign 4 -_020126D0: .word sGFRTCWork -_020126D4: .word sGFRTCWork + 16 - - thumb_func_start GF_RTC_TimeToSec -GF_RTC_TimeToSec: ; 0x020126D8 - push {r3-r4} - ldr r4, _020126F8 ; =sGFRTCWork + 32 - mov r0, #0x3c - ldr r1, [r4, #0x4] - ldr r3, [r4, #0x8] - add r2, r1, #0x0 - mul r2, r0 - mov r0, #0xe1 - ldr r1, [r4, #0x0] - lsl r0, r0, #0x4 - mul r0, r1 - add r0, r2, r0 - add r0, r3, r0 - pop {r3-r4} - bx lr - nop -_020126F8: .word sGFRTCWork + 32 - - thumb_func_start GF_RTC_DateTimeToSec -GF_RTC_DateTimeToSec: ; 0x020126FC - ldr r3, _02012704 ; =RTC_ConvertDateTimeToSecond - ldr r0, _02012708 ; =sGFRTCWork + 16 - ldr r1, _0201270C ; =sGFRTCWork + 32 - bx r3 - .balign 4 -_02012704: .word RTC_ConvertDateTimeToSecond -_02012708: .word sGFRTCWork + 16 -_0201270C: .word sGFRTCWork + 32 - - thumb_func_start FUN_02012710 -FUN_02012710: ; 0x02012710 - push {r4-r6, lr} - sub sp, #0x10 - add r5, r0, #0x0 - ldr r2, [r5, #0x4] - ldr r0, _02012778 ; =sGF_DaysPerMonth - 2 - lsl r1, r2, #0x1 - ldrh r0, [r0, r1] - ldr r3, [r5, #0x8] - add r4, r3, r0 - cmp r2, #0x3 - blo _02012752 - ldr r6, [r5, #0x0] - mov r0, #0x1e - lsr r2, r6, #0x1f - lsl r1, r6, #0x1e - sub r1, r1, r2 - ror r1, r0 - add r0, r2, r1 - bne _02012742 - add r0, r6, #0x0 - mov r1, #0x64 - bl _s32_div_f - cmp r1, #0x0 - bne _02012750 -_02012742: - mov r1, #0x19 - add r0, r6, #0x0 - lsl r1, r1, #0x4 - bl _s32_div_f - cmp r1, #0x0 - bne _02012752 -_02012750: - add r4, r4, #0x1 -_02012752: - add r6, r5, #0x0 - add r3, sp, #0x0 - add r2, r3, #0x0 - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - ldmia r6!, {r0-r1} - stmia r3!, {r0-r1} - mov r0, #0x1 - str r0, [sp, #0x4] - str r0, [sp, #0x8] - add r0, r2, #0x0 - bl RTC_ConvertDateToDay - add r0, r5, #0x0 - bl RTC_ConvertDateToDay - add r0, r4, #0x0 - add sp, #0x10 - pop {r4-r6, pc} - .balign 4 -_02012778: .word sGF_DaysPerMonth - 2 - - thumb_func_start IsNighttime -IsNighttime: ; 0x0201277C - push {r3, lr} - bl GF_RTC_GetTimeOfDay - cmp r0, #0x3 - beq _0201278A - cmp r0, #0x4 - bne _0201278E -_0201278A: - mov r0, #0x1 - pop {r3, pc} -_0201278E: - mov r0, #0x0 - pop {r3, pc} - .balign 4 - - thumb_func_start GF_RTC_GetTimeOfDay -GF_RTC_GetTimeOfDay: ; 0x02012794 - push {lr} - sub sp, #0xc - add r0, sp, #0x0 - bl GF_RTC_CopyTime - ldr r0, [sp, #0x0] - bl GF_RTC_GetTimeOfDayByHour - add sp, #0xc - pop {pc} - - thumb_func_start GF_RTC_GetTimeOfDayByHour -GF_RTC_GetTimeOfDayByHour: ; 0x020127A8 - push {r4, lr} - add r4, r0, #0x0 - bmi _020127B2 - cmp r4, #0x18 - blt _020127B6 -_020127B2: - bl ErrorHandling -_020127B6: - ldr r0, _020127BC ; =sTimeOfDayByHour - ldrb r0, [r0, r4] - pop {r4, pc} - .balign 4 -_020127BC: .word sTimeOfDayByHour - - thumb_func_start FUN_020127C0 -FUN_020127C0: ; 0x020127C0 - push {r4-r7, lr} - sub sp, #0x24 - add r6, r3, #0x0 - ldr r3, _0201282C ; =sMaxDate - add r4, r0, #0x0 - add r7, r1, #0x0 - add r5, r2, #0x0 - add r2, sp, #0x14 - ldmia r3!, {r0-r1} - str r2, [sp, #0x0] - stmia r2!, {r0-r1} - ldmia r3!, {r0-r1} - stmia r2!, {r0-r1} - ldr r3, _02012830 ; =sMaxTime - add r2, sp, #0x8 - ldmia r3!, {r0-r1} - str r2, [sp, #0x4] - stmia r2!, {r0-r1} - ldr r0, [r3, #0x0] - ldr r1, [sp, #0x4] - str r0, [r2, #0x0] - ldr r0, [sp, #0x0] - bl RTC_ConvertDateTimeToSecond - add r2, r1, #0x0 - add r3, r0, #0x0 - mov r1, #0x0 - ldr r0, _02012834 ; =0xBC19137F - eor r1, r2 - eor r0, r3 - orr r0, r1 - beq _02012804 - bl ErrorHandling -_02012804: - sub r0, r4, r5 - mov r12, r7 - mov r0, r12 - sbc r0, r6 - bge _02012818 - sub r0, r5, r4 - sbc r6, r7 - add sp, #0x24 - add r1, r6, #0x0 - pop {r4-r7, pc} -_02012818: - ldr r0, _02012834 ; =0xBC19137F - mov r1, #0x0 - sub r0, r0, r4 - sbc r1, r7 - add r0, r5, r0 - adc r6, r1 - add r1, r6, #0x0 - add sp, #0x24 - pop {r4-r7, pc} - nop -_0201282C: .word sMaxDate -_02012830: .word sMaxTime -_02012834: .word 0xBC19137F diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index 71187dd6a..d648ac526 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -50,7 +50,7 @@ FUN_0203B024: ; 0x0203B024 str r0, [sp, #0x4] cmp r0, #0x0 bne _0203B07A - bl ErrorHandling + bl GF_AssertFail _0203B07A: mov r0, #0x4 add r1, r0, #0x0 @@ -194,7 +194,7 @@ FUN_0203B174: ; 0x0203B174 bl AllocFromHeap add r4, r0, #0x0 bne _0203B18E - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _0203B18E: str r5, [r4, #0xc] @@ -235,7 +235,7 @@ _0203B1D6: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _0203B1E8 - bl ErrorHandling + bl GF_AssertFail pop {r3-r5, pc} _0203B1E8: sub r0, r0, #0x1 @@ -521,7 +521,7 @@ FUN_0203B3F8: ; 0x0203B3F8 bl FUN_020575D4 cmp r0, #0x0 bne _0203B43A - bl ErrorHandling + bl GF_AssertFail _0203B43A: mov r0, #0x0 add sp, #0x4 @@ -1153,7 +1153,7 @@ FUN_0203B968: ; 0x0203B968 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203B994 - bl ErrorHandling + bl GF_AssertFail _0203B994: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -1258,7 +1258,7 @@ FUN_0203BA3C: ; 0x0203BA3C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BA7C - bl ErrorHandling + bl GF_AssertFail _0203BA7C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -1337,7 +1337,7 @@ FUN_0203BAF4: ; 0x0203BAF4 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BB20 - bl ErrorHandling + bl GF_AssertFail _0203BB20: ldr r0, [r4, #0x0] bl FUN_02037A78 @@ -2548,7 +2548,7 @@ _0203C476: ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0203C492 - bl ErrorHandling + bl GF_AssertFail _0203C492: add r0, r5, #0x0 add r0, #0x80 @@ -2583,7 +2583,7 @@ FUN_0203C4B0: ; 0x0203C4B0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203C4DC - bl ErrorHandling + bl GF_AssertFail _0203C4DC: ldr r0, [r4, #0x0] bl FUN_020378FC @@ -5396,7 +5396,7 @@ FUN_0203DB88: ; 0x0203DB88 bl FUN_02058060 add r5, r0, #0x0 bne _0203DBC6 - bl ErrorHandling + bl GF_AssertFail _0203DBC6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -5819,7 +5819,7 @@ FUN_0203DEC4: ; 0x0203DEC4 bl FUN_02058060 add r4, r0, #0x0 bne _0203DEEC - bl ErrorHandling + bl GF_AssertFail _0203DEEC: add r0, r4, #0x0 mov r1, #0x0 @@ -5844,7 +5844,7 @@ FUN_0203DEF8: ; 0x0203DEF8 bl FUN_02058060 add r4, r0, #0x0 bne _0203DF20 - bl ErrorHandling + bl GF_AssertFail _0203DF20: add r0, r4, #0x0 mov r1, #0x1 @@ -7161,7 +7161,7 @@ _0203E9AE: strh r0, [r6, #0x0] b _0203E9C8 _0203E9C4: - bl ErrorHandling + bl GF_AssertFail _0203E9C8: mov r0, #0x0 pop {r4-r6, pc} @@ -8056,7 +8056,7 @@ FUN_0203F07C: ; 0x0203F07C bl FUN_02058060 add r7, r0, #0x0 bne _0203F0FA - bl ErrorHandling + bl GF_AssertFail _0203F0FA: str r6, [sp, #0x0] str r4, [sp, #0x4] @@ -8104,7 +8104,7 @@ FUN_0203F110: ; 0x0203F110 bl FUN_02058060 add r5, r0, #0x0 bne _0203F164 - bl ErrorHandling + bl GF_AssertFail _0203F164: ldr r0, [r4, #0x74] add r1, r5, #0x0 @@ -8200,7 +8200,7 @@ _0203F212: _0203F21A: cmp r4, #0x10 blt _0203F222 - bl ErrorHandling + bl GF_AssertFail _0203F222: ldr r0, [sp, #0x0] add r4, #0x22 @@ -8855,7 +8855,7 @@ FUN_0203F720: ; 0x0203F720 add r5, r0, #0x0 cmp r4, #0x3 bls _0203F752 - bl ErrorHandling + bl GF_AssertFail _0203F752: add r0, r5, #0x0 add r1, r4, #0x0 @@ -8974,7 +8974,7 @@ FUN_0203F80C: ; 0x0203F80C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203F84C - bl ErrorHandling + bl GF_AssertFail _0203F84C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -9081,7 +9081,7 @@ _0203F910: bl MOD06_0224F12C b _0203F91E _0203F91A: - bl ErrorHandling + bl GF_AssertFail _0203F91E: mov r0, #0x1 pop {r3-r5, pc} @@ -9468,7 +9468,7 @@ FUN_0203FC1C: ; 0x0203FC1C bl FUN_02058060 add r5, r0, #0x0 bne _0203FC4C - bl ErrorHandling + bl GF_AssertFail _0203FC4C: add r0, r5, #0x0 add r1, r4, #0x0 diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index a4223e537..dc3046392 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -147,7 +147,7 @@ _0200248C: lsl r0, r0, #0x8 cmp r5, r0 bne _020024B0 - bl ErrorHandling + bl GF_AssertFail _020024B0: ldr r0, _02002664 ; =0x0000F0FD cmp r5, r0 diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s index 740dca10d..3f62a449d 100644 --- a/arm9/asm/unk_02002C14.s +++ b/arm9/asm/unk_02002C14.s @@ -92,7 +92,7 @@ FUN_02002C84: ; 0x02002C84 add r5, r1, #0x0 cmp r4, #0x4 blt _02002C92 - bl ErrorHandling + bl GF_AssertFail _02002C92: ldr r0, _02002CBC ; =UNK_02106FC8 lsl r4, r4, #0x2 @@ -102,7 +102,7 @@ _02002C92: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CA6 - bl ErrorHandling + bl GF_AssertFail _02002CA6: ldr r0, _02002CBC ; =UNK_02106FC8 mov r1, #0x0 @@ -122,7 +122,7 @@ FUN_02002CC0: ; 0x02002CC0 add r4, r0, #0x0 cmp r4, #0x4 blt _02002CCC - bl ErrorHandling + bl GF_AssertFail _02002CCC: ldr r0, _02002CF4 ; =UNK_02106FC8 lsl r4, r4, #0x2 @@ -132,7 +132,7 @@ _02002CCC: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CE0 - bl ErrorHandling + bl GF_AssertFail _02002CE0: ldr r0, _02002CF4 ; =UNK_02106FC8 mov r1, #0x1 @@ -152,7 +152,7 @@ FUN_02002CF8: ; 0x02002CF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02002D04 - bl ErrorHandling + bl GF_AssertFail _02002D04: ldr r0, _02002D8C ; =UNK_02106FC8 lsl r6, r4, #0x2 @@ -284,7 +284,7 @@ FUN_02002DE0: ; 0x02002DE0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002DFA - bl ErrorHandling + bl GF_AssertFail _02002DFA: ldr r0, _02002E10 ; =UNK_02106FC8 add r1, r5, #0x0 @@ -311,7 +311,7 @@ FUN_02002E14: ; 0x02002E14 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002E2E - bl ErrorHandling + bl GF_AssertFail _02002E2E: add r0, r5, #0x0 bl String_c_str diff --git a/arm9/asm/unk_02002F08.s b/arm9/asm/unk_02002F08.s index b844da171..c37869ed8 100644 --- a/arm9/asm/unk_02002F08.s +++ b/arm9/asm/unk_02002F08.s @@ -18,7 +18,7 @@ FUN_02002F08: ; 0x02002F08 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002F22 - bl ErrorHandling + bl GF_AssertFail _02002F22: add r0, r5, #0x0 bl String_c_str @@ -103,7 +103,7 @@ FUN_02002F9C: ; 0x02002F9C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002FB4 - bl ErrorHandling + bl GF_AssertFail _02002FB4: add r0, r5, #0x0 bl String_c_str @@ -229,7 +229,7 @@ FUN_02003084: ; 0x02003084 bl FUN_02006C08 add r6, r0, #0x0 bne _0200309E - bl ErrorHandling + bl GF_AssertFail _0200309E: cmp r4, #0x0 bne _020030A6 @@ -247,7 +247,7 @@ _020030A6: add r0, r4, r0 cmp r0, r1 bls _020030C0 - bl ErrorHandling + bl GF_AssertFail _020030C0: lsl r0, r4, #0x10 lsr r0, r0, #0x10 diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s index 8e1d3360a..30d0ea435 100644 --- a/arm9/asm/unk_020030E8.s +++ b/arm9/asm/unk_020030E8.s @@ -18,7 +18,7 @@ FUN_02003108: ; 0x02003108 add r0, r7, r0 cmp r0, r1 bls _02003126 - bl ErrorHandling + bl GF_AssertFail _02003126: cmp r4, #0x3 bhi _0200315E @@ -50,7 +50,7 @@ _02003156: add r1, r0, #0x0 b _02003164 _0200315E: - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _02003164: lsl r0, r7, #0x10 @@ -75,7 +75,7 @@ FUN_0200317C: ; 0x0200317C bl FUN_02006C08 add r4, r0, #0x0 bne _02003192 - bl ErrorHandling + bl GF_AssertFail _02003192: cmp r5, #0x0 bne _0200319A @@ -1089,7 +1089,7 @@ FUN_02003914: ; 0x02003914 ldr r0, [r0, #0x8] cmp r1, r0 bls _0200393A - bl ErrorHandling + bl GF_AssertFail _0200393A: sub r0, r7, #0x1 cmp r0, #0x1 @@ -1207,7 +1207,7 @@ FUN_020039E8: ; 0x020039E8 _02003A0A: cmp r0, #0x0 bne _02003A12 - bl ErrorHandling + bl GF_AssertFail _02003A12: add r3, sp, #0x10 ldrh r0, [r3, #0x14] @@ -1281,7 +1281,7 @@ FUN_02003A64: ; 0x02003A64 _02003A8E: cmp r0, #0x0 bne _02003A96 - bl ErrorHandling + bl GF_AssertFail _02003A96: cmp r5, #0x0 beq _02003AC0 @@ -1390,7 +1390,7 @@ FUN_02003B40: ; 0x02003B40 bl FUN_02006C08 add r4, r0, #0x0 bne _02003B58 - bl ErrorHandling + bl GF_AssertFail _02003B58: ldr r0, [sp, #0x1c] cmp r0, #0x0 diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s index 86e069f9d..cfd9551f3 100644 --- a/arm9/asm/unk_020040F4.s +++ b/arm9/asm/unk_020040F4.s @@ -629,7 +629,7 @@ FUN_02004568: ; 0x02004568 add r0, r5, #0x0 mov r1, #0x4 bl GF_Snd_LoadSeqEx - bl ErrorHandling + bl GF_AssertFail b _0200459C _02004594: ldrh r0, [r4, #0x0] @@ -694,7 +694,7 @@ _020045E4: add r0, r7, #0x0 mov r1, #0x4 bl GF_Snd_LoadSeqEx - bl ErrorHandling + bl GF_AssertFail b _02004638 _02004630: ldrh r0, [r4, #0x0] @@ -831,7 +831,7 @@ FUN_02004748: ; 0x02004748 bl GetSoundDataPointer cmp r4, #0x7 blt _02004762 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x1a bl FUN_02003D38 ldr r0, [r0, #0x0] @@ -1027,7 +1027,7 @@ FUN_020048BC: ; 0x020048BC push {r4, lr} add r4, r0, #0x0 bpl _020048C6 - bl ErrorHandling + bl GF_AssertFail _020048C6: add r0, r4, #0x0 bl NNS_SndPlayerCountPlayingSeqByPlayerNo @@ -1114,21 +1114,21 @@ FUN_02004930: ; 0x02004930 beq _02004954 cmp r5, #0xf beq _02004954 - bl ErrorHandling + bl GF_AssertFail _02004954: cmp r5, #0xe bne _02004962 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _02004962 - bl ErrorHandling + bl GF_AssertFail _02004962: cmp r5, #0xf bne _02004970 ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02004970 - bl ErrorHandling + bl GF_AssertFail _02004970: cmp r5, #0xe bne _0200497C @@ -1155,7 +1155,7 @@ FUN_02004984: ; 0x02004984 beq _020049A8 cmp r5, #0xf beq _020049A8 - bl ErrorHandling + bl GF_AssertFail _020049A8: cmp r5, #0xe bne _020049D6 @@ -1177,7 +1177,7 @@ _020049CA: strb r0, [r6, #0x0] b _020049FE _020049D0: - bl ErrorHandling + bl GF_AssertFail b _020049FE _020049D6: ldrb r0, [r4, #0x0] @@ -1198,7 +1198,7 @@ _020049F4: strb r0, [r4, #0x0] b _020049FE _020049FA: - bl ErrorHandling + bl GF_AssertFail _020049FE: mov r0, #0x1 pop {r4-r6, pc} @@ -1219,7 +1219,7 @@ FUN_02004A04: ; 0x02004A04 beq _02004A2A cmp r5, #0xf beq _02004A2A - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _02004A2A: cmp r5, #0xe @@ -1235,7 +1235,7 @@ _02004A2A: strb r0, [r6, #0x0] pop {r4-r6, pc} _02004A46: - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _02004A4C: ldrb r0, [r4, #0x0] @@ -1249,7 +1249,7 @@ _02004A4C: strb r0, [r4, #0x0] pop {r4-r6, pc} _02004A64: - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} .balign 4 @@ -1372,13 +1372,13 @@ FUN_02004B30: ; 0x02004B30 beq _02004B54 cmp r5, #0xf beq _02004B54 - bl ErrorHandling + bl GF_AssertFail _02004B54: add r0, r6, #0x0 bl NNS_SndArcGetWaveArcInfo add r7, r0, #0x0 bne _02004B68 - bl ErrorHandling + bl GF_AssertFail add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -1389,7 +1389,7 @@ _02004B68: bl NNS_SndArcGetFileSize add r6, r0, #0x0 bne _02004B80 - bl ErrorHandling + bl GF_AssertFail add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -1402,7 +1402,7 @@ _02004B80: str r0, [r4, #0x0] cmp r0, #0x0 bne _02004B9C - bl ErrorHandling + bl GF_AssertFail add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -1421,7 +1421,7 @@ _02004B9C: mvn r1, r1 cmp r0, r1 bne _02004BC6 - bl ErrorHandling + bl GF_AssertFail add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -1502,7 +1502,7 @@ FUN_02004C3C: ; 0x02004C3C beq _02004C60 cmp r5, #0xf beq _02004C60 - bl ErrorHandling + bl GF_AssertFail _02004C60: add r0, r5, #0x0 bl FUN_02004AAC @@ -1869,7 +1869,7 @@ _02004EF2: bl NNS_SndArcGetWaveArcInfo cmp r0, #0x0 bne _02004F02 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _02004F02: @@ -1879,7 +1879,7 @@ _02004F02: bl NNS_SndArcGetFileAddress cmp r0, #0x0 bne _02004F18 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _02004F18: diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s index 843ae7b66..215e56c07 100644 --- a/arm9/asm/unk_020051F4.s +++ b/arm9/asm/unk_020051F4.s @@ -47,7 +47,7 @@ _0200523E: add r4, r0, #0x0 b _02005258 _02005250: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4-r6, pc} _02005258: @@ -134,7 +134,7 @@ FUN_02005308: ; 0x02005308 add r5, r1, #0x0 cmp r0, #0x4 beq _02005318 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _02005318: @@ -142,7 +142,7 @@ _02005318: bl FUN_020048D0 cmp r0, #0x7 beq _0200532A - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0200532A: @@ -1072,7 +1072,7 @@ FUN_02005AE0: ; 0x02005AE0 bl AllocFromHeap add r4, r0, #0x0 bne _02005B04 - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _02005B04: mov r2, #0x0 diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s index 4b0a737d9..07650c045 100644 --- a/arm9/asm/unk_02006D98.s +++ b/arm9/asm/unk_02006D98.s @@ -873,7 +873,7 @@ _020073AE: _020073BE: cmp r4, #0x4 bne _020073C6 - bl ErrorHandling + bl GF_AssertFail _020073C6: ldr r0, [sp, #0x30] ldr r3, [sp, #0x14] @@ -908,7 +908,7 @@ FUN_020073E8: ; 0x020073E8 str r3, [sp, #0x4] lsr r0, r0, #0x1f beq _02007408 - bl ErrorHandling + bl GF_AssertFail _02007408: add r5, r4, r6 mov r0, #0x0 @@ -1747,7 +1747,7 @@ _020079CC: lsr r0, r0, #0x1e pop {r3, pc} _020079D6: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 @@ -2961,7 +2961,7 @@ FUN_02008268: ; 0x02008268 push {r4, lr} add r4, r0, #0x0 bne _02008272 - bl ErrorHandling + bl GF_AssertFail _02008272: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f diff --git a/arm9/asm/unk_02008AA4.s b/arm9/asm/unk_02008AA4.s index 45b460799..e6b5abccc 100644 --- a/arm9/asm/unk_02008AA4.s +++ b/arm9/asm/unk_02008AA4.s @@ -18,33 +18,33 @@ FUN_02008AA4: ; 0x02008AA4 str r4, [sp, #0xc] cmp r0, #0x0 bne _02008AC2 - bl ErrorHandling + bl GF_AssertFail _02008AC2: ldr r0, [sp, #0x48] cmp r0, #0x0 bne _02008ACC - bl ErrorHandling + bl GF_AssertFail _02008ACC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _02008AD6 - bl ErrorHandling + bl GF_AssertFail _02008AD6: ldr r0, [sp, #0x4c] cmp r0, #0x0 bne _02008AE0 - bl ErrorHandling + bl GF_AssertFail _02008AE0: cmp r5, #0x0 bne _02008AE8 - bl ErrorHandling + bl GF_AssertFail _02008AE8: ldr r0, [sp, #0x44] add r1, r6, #0x0 bl FUN_020094F0 add r7, r0, #0x0 bne _02008AF8 - bl ErrorHandling + bl GF_AssertFail _02008AF8: ldr r0, [sp, #0x48] ldr r1, [sp, #0x0] @@ -52,7 +52,7 @@ _02008AF8: str r0, [sp, #0x14] cmp r0, #0x0 bne _02008B0A - bl ErrorHandling + bl GF_AssertFail _02008B0A: ldr r0, [sp, #0x4c] ldr r1, [sp, #0x4] @@ -60,7 +60,7 @@ _02008B0A: str r0, [sp, #0x10] cmp r0, #0x0 bne _02008B1C - bl ErrorHandling + bl GF_AssertFail _02008B1C: ldr r0, [sp, #0x50] cmp r0, #0x0 @@ -74,7 +74,7 @@ _02008B1C: str r0, [sp, #0xc] cmp r0, #0x0 bne _02008B3A - bl ErrorHandling + bl GF_AssertFail _02008B3A: ldr r0, [sp, #0x54] cmp r0, #0x0 @@ -104,7 +104,7 @@ _02008B62: bl FUN_02009C80 add r6, r0, #0x0 bne _02008B78 - bl ErrorHandling + bl GF_AssertFail _02008B78: add r0, r7, #0x0 bl FUN_02009544 @@ -115,7 +115,7 @@ _02008B82: bl FUN_02009C5C add r6, r0, #0x0 bne _02008B90 - bl ErrorHandling + bl GF_AssertFail _02008B90: mov r0, #0x0 str r0, [r5, #0x4] @@ -247,7 +247,7 @@ FUN_02008C80: ; 0x02008C80 push {r4, lr} add r4, r0, #0x0 bne _02008C8A - bl ErrorHandling + bl GF_AssertFail _02008C8A: ldr r0, [r4, #0x0] cmp r0, #0x0 @@ -409,7 +409,7 @@ _02008DB6: bl FUN_0201D194 pop {r4, pc} _02008DC4: - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} nop _02008DCC: .word 0x00100010 diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index b05df5ca1..92341f16d 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -39,17 +39,17 @@ FUN_02008E2C: ; 0x02008E2C push {r4, lr} add r4, r0, #0x0 bne _02008E36 - bl ErrorHandling + bl GF_AssertFail _02008E36: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02008E40 - bl ErrorHandling + bl GF_AssertFail _02008E40: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02008E4A - bl ErrorHandling + bl GF_AssertFail _02008E4A: add r0, r4, #0x0 bl FUN_020094C4 @@ -75,29 +75,29 @@ FUN_02008E6C: ; 0x02008E6C add r7, r3, #0x0 cmp r5, #0x0 bne _02008E80 - bl ErrorHandling + bl GF_AssertFail _02008E80: cmp r4, #0x0 bne _02008E88 - bl ErrorHandling + bl GF_AssertFail _02008E88: ldr r0, [r4, #0x4] cmp r0, r6 bgt _02008E92 - bl ErrorHandling + bl GF_AssertFail _02008E92: ldr r1, [r5, #0x10] ldr r0, [r4, #0x8] cmp r1, r0 beq _02008E9E - bl ErrorHandling + bl GF_AssertFail _02008E9E: add r0, r5, #0x0 bl FUN_020097D0 str r0, [sp, #0x1c] cmp r0, #0x0 bne _02008EAE - bl ErrorHandling + bl GF_AssertFail _02008EAE: ldrb r0, [r4, #0xc] cmp r0, #0x0 @@ -112,7 +112,7 @@ _02008EAE: bl FUN_0200945C cmp r0, #0x1 beq _02008ECE - bl ErrorHandling + bl GF_AssertFail _02008ECE: ldr r0, [r6, #0x44] ldr r1, [sp, #0x1c] @@ -137,7 +137,7 @@ _02008EEA: bl FUN_0200945C cmp r0, #0x1 beq _02008F02 - bl ErrorHandling + bl GF_AssertFail _02008F02: ldr r0, [r6, #0x8] ldr r1, [sp, #0x1c] @@ -175,18 +175,18 @@ FUN_02008F34: ; 0x02008F34 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008F48 - bl ErrorHandling + bl GF_AssertFail _02008F48: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008F52 - bl ErrorHandling + bl GF_AssertFail _02008F52: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008F60 - bl ErrorHandling + bl GF_AssertFail _02008F60: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -222,18 +222,18 @@ FUN_02008F90: ; 0x02008F90 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008FA4 - bl ErrorHandling + bl GF_AssertFail _02008FA4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008FAE - bl ErrorHandling + bl GF_AssertFail _02008FAE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008FBC - bl ErrorHandling + bl GF_AssertFail _02008FBC: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -269,18 +269,18 @@ FUN_02008FEC: ; 0x02008FEC str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009000 - bl ErrorHandling + bl GF_AssertFail _02009000: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200900A - bl ErrorHandling + bl GF_AssertFail _0200900A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009018 - bl ErrorHandling + bl GF_AssertFail _02009018: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -318,18 +318,18 @@ FUN_0200904C: ; 0x0200904C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009060 - bl ErrorHandling + bl GF_AssertFail _02009060: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200906A - bl ErrorHandling + bl GF_AssertFail _0200906A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009078 - bl ErrorHandling + bl GF_AssertFail _02009078: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -367,13 +367,13 @@ FUN_020090AC: ; 0x020090AC str r2, [sp, #0x1c] cmp r5, #0x0 bne _020090C0 - bl ErrorHandling + bl GF_AssertFail _020090C0: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020090CE - bl ErrorHandling + bl GF_AssertFail _020090CE: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -408,21 +408,21 @@ FUN_020090FC: ; 0x020090FC str r3, [sp, #0x20] cmp r5, #0x0 bne _02009110 - bl ErrorHandling + bl GF_AssertFail _02009110: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200911A - bl ErrorHandling + bl GF_AssertFail _0200911A: cmp r4, #0x0 bne _02009122 - bl ErrorHandling + bl GF_AssertFail _02009122: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200912C - bl ErrorHandling + bl GF_AssertFail _0200912C: add r0, r4, #0x0 bl FUN_02009530 @@ -461,21 +461,21 @@ FUN_02009168: ; 0x02009168 str r3, [sp, #0x20] cmp r5, #0x0 bne _0200917C - bl ErrorHandling + bl GF_AssertFail _0200917C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009186 - bl ErrorHandling + bl GF_AssertFail _02009186: cmp r4, #0x0 bne _0200918E - bl ErrorHandling + bl GF_AssertFail _0200918E: ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02009198 - bl ErrorHandling + bl GF_AssertFail _02009198: add r0, r4, #0x0 bl FUN_02009530 @@ -519,18 +519,18 @@ FUN_020091E0: ; 0x020091E0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020091F4 - bl ErrorHandling + bl GF_AssertFail _020091F4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _020091FE - bl ErrorHandling + bl GF_AssertFail _020091FE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200920C - bl ErrorHandling + bl GF_AssertFail _0200920C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -566,18 +566,18 @@ FUN_0200923C: ; 0x0200923C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009250 - bl ErrorHandling + bl GF_AssertFail _02009250: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200925A - bl ErrorHandling + bl GF_AssertFail _0200925A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009268 - bl ErrorHandling + bl GF_AssertFail _02009268: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -613,18 +613,18 @@ FUN_02009298: ; 0x02009298 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020092AC - bl ErrorHandling + bl GF_AssertFail _020092AC: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _020092B6 - bl ErrorHandling + bl GF_AssertFail _020092B6: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020092C4 - bl ErrorHandling + bl GF_AssertFail _020092C4: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -662,18 +662,18 @@ FUN_020092F8: ; 0x020092F8 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200930C - bl ErrorHandling + bl GF_AssertFail _0200930C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009316 - bl ErrorHandling + bl GF_AssertFail _02009316: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009324 - bl ErrorHandling + bl GF_AssertFail _02009324: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -711,13 +711,13 @@ FUN_02009358: ; 0x02009358 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200936C - bl ErrorHandling + bl GF_AssertFail _0200936C: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200937A - bl ErrorHandling + bl GF_AssertFail _0200937A: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -752,11 +752,11 @@ FUN_020093A8: ; 0x020093A8 add r7, r3, #0x0 cmp r5, #0x0 bne _020093BC - bl ErrorHandling + bl GF_AssertFail _020093BC: cmp r4, #0x0 bne _020093C4 - bl ErrorHandling + bl GF_AssertFail _020093C4: str r6, [sp, #0x0] str r7, [sp, #0x4] @@ -848,7 +848,7 @@ FUN_0200945C: ; 0x0200945C add r4, r1, #0x0 cmp r5, #0x0 bne _0200946A - bl ErrorHandling + bl GF_AssertFail _0200946A: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -860,7 +860,7 @@ FUN_02009474: ; 0x02009474 push {r4, lr} add r4, r0, #0x0 bne _0200947E - bl ErrorHandling + bl GF_AssertFail _0200947E: add r0, r4, #0x0 bl FUN_02009920 @@ -877,12 +877,12 @@ FUN_02009490: ; 0x02009490 add r4, r1, #0x0 cmp r5, #0x0 bne _0200949E - bl ErrorHandling + bl GF_AssertFail _0200949E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020094A8 - bl ErrorHandling + bl GF_AssertFail _020094A8: add r0, r4, #0x0 bl FUN_02009920 @@ -931,7 +931,7 @@ FUN_020094F0: ; 0x020094F0 add r7, r1, #0x0 cmp r5, #0x0 bne _020094FE - bl ErrorHandling + bl GF_AssertFail _020094FE: ldr r0, [r5, #0x8] mov r6, #0x0 @@ -966,7 +966,7 @@ FUN_02009530: ; 0x02009530 push {r4, lr} add r4, r0, #0x0 bne _0200953A - bl ErrorHandling + bl GF_AssertFail _0200953A: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -980,7 +980,7 @@ FUN_02009544: ; 0x02009544 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02009552 - bl ErrorHandling + bl GF_AssertFail _02009552: add r0, r4, #0x0 bl FUN_02009934 @@ -994,7 +994,7 @@ FUN_0200955C: ; 0x0200955C ldr r0, [r4, #0x4] cmp r0, #0x1 beq _0200956A - bl ErrorHandling + bl GF_AssertFail _0200956A: add r0, r4, #0x0 bl FUN_02009934 @@ -1008,7 +1008,7 @@ FUN_02009574: ; 0x02009574 ldr r0, [r4, #0x4] cmp r0, #0x2 beq _02009582 - bl ErrorHandling + bl GF_AssertFail _02009582: add r0, r4, #0x0 bl FUN_02009934 @@ -1022,7 +1022,7 @@ FUN_0200958C: ; 0x0200958C ldr r0, [r4, #0x4] cmp r0, #0x3 beq _0200959A - bl ErrorHandling + bl GF_AssertFail _0200959A: add r0, r4, #0x0 bl FUN_02009934 @@ -1036,7 +1036,7 @@ FUN_020095A4: ; 0x020095A4 ldr r0, [r4, #0x4] cmp r0, #0x4 beq _020095B2 - bl ErrorHandling + bl GF_AssertFail _020095B2: add r0, r4, #0x0 bl FUN_02009934 @@ -1050,7 +1050,7 @@ FUN_020095BC: ; 0x020095BC ldr r0, [r4, #0x4] cmp r0, #0x5 beq _020095CA - bl ErrorHandling + bl GF_AssertFail _020095CA: add r0, r4, #0x0 bl FUN_02009934 @@ -1062,7 +1062,7 @@ FUN_020095D4: ; 0x020095D4 push {r4, lr} add r4, r0, #0x0 bne _020095DE - bl ErrorHandling + bl GF_AssertFail _020095DE: ldr r0, [r4, #0x4] pop {r4, pc} @@ -1073,7 +1073,7 @@ FUN_020095E4: ; 0x020095E4 push {r4, lr} add r4, r0, #0x0 bne _020095EE - bl ErrorHandling + bl GF_AssertFail _020095EE: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -1098,7 +1098,7 @@ FUN_02009610: ; 0x02009610 push {r4, lr} add r4, r0, #0x0 bne _0200961A - bl ErrorHandling + bl GF_AssertFail _0200961A: ldr r0, [r4, #0x4] cmp r0, #0x1 @@ -1119,7 +1119,7 @@ FUN_02009630: ; 0x02009630 add r4, r1, #0x0 cmp r5, #0x0 bne _0200963E - bl ErrorHandling + bl GF_AssertFail _0200963E: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -1157,7 +1157,7 @@ FUN_02009668: ; 0x02009668 add r6, r2, #0x0 cmp r4, #0x0 bne _02009678 - bl ErrorHandling + bl GF_AssertFail _02009678: ldr r0, [r5, #0x0] str r0, [r4, #0x8] @@ -1210,7 +1210,7 @@ FUN_020096CC: ; 0x020096CC push {r4, lr} add r4, r0, #0x0 bne _020096D6 - bl ErrorHandling + bl GF_AssertFail _020096D6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -1223,12 +1223,12 @@ FUN_020096DC: ; 0x020096DC add r4, r1, #0x0 cmp r5, #0x0 bne _020096EA - bl ErrorHandling + bl GF_AssertFail _020096EA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020096F4 - bl ErrorHandling + bl GF_AssertFail _020096F4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -1253,12 +1253,12 @@ FUN_02009710: ; 0x02009710 add r4, r1, #0x0 cmp r5, #0x0 bne _0200971E - bl ErrorHandling + bl GF_AssertFail _0200971E: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009728 - bl ErrorHandling + bl GF_AssertFail _02009728: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -1279,12 +1279,12 @@ FUN_0200973C: ; 0x0200973C add r4, r1, #0x0 cmp r5, #0x0 bne _0200974A - bl ErrorHandling + bl GF_AssertFail _0200974A: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009754 - bl ErrorHandling + bl GF_AssertFail _02009754: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -1305,12 +1305,12 @@ FUN_02009768: ; 0x02009768 add r4, r1, #0x0 cmp r5, #0x0 bne _02009776 - bl ErrorHandling + bl GF_AssertFail _02009776: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009780 - bl ErrorHandling + bl GF_AssertFail _02009780: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -1335,12 +1335,12 @@ FUN_0200979C: ; 0x0200979C add r4, r1, #0x0 cmp r5, #0x0 bne _020097AA - bl ErrorHandling + bl GF_AssertFail _020097AA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020097B4 - bl ErrorHandling + bl GF_AssertFail _020097B4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -1560,12 +1560,12 @@ FUN_02009934: ; 0x02009934 push {r4, lr} add r4, r0, #0x0 bne _0200993E - bl ErrorHandling + bl GF_AssertFail _0200993E: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02009948 - bl ErrorHandling + bl GF_AssertFail _02009948: ldr r0, [r4, #0x8] pop {r4, pc} @@ -1714,13 +1714,13 @@ FUN_02009A50: ; 0x02009A50 sub sp, #0x10 add r4, r0, #0x0 bne _02009A5C - bl ErrorHandling + bl GF_AssertFail _02009A5C: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009A6A - bl ErrorHandling + bl GF_AssertFail _02009A6A: add r0, r4, #0x0 bl FUN_02009544 @@ -1743,7 +1743,7 @@ FUN_02009A90: ; 0x02009A90 push {r4-r6, lr} add r5, r0, #0x0 bne _02009A9A - bl ErrorHandling + bl GF_AssertFail _02009A9A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -1758,7 +1758,7 @@ _02009AA4: bl FUN_02009A50 cmp r0, #0x0 bne _02009AB8 - bl ErrorHandling + bl GF_AssertFail _02009AB8: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -1774,13 +1774,13 @@ FUN_02009AC4: ; 0x02009AC4 sub sp, #0x10 add r4, r0, #0x0 bne _02009AD0 - bl ErrorHandling + bl GF_AssertFail _02009AD0: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009ADE - bl ErrorHandling + bl GF_AssertFail _02009ADE: add r0, r4, #0x0 bl FUN_02009544 @@ -1804,13 +1804,13 @@ FUN_02009B04: ; 0x02009B04 sub sp, #0x10 add r4, r0, #0x0 bne _02009B10 - bl ErrorHandling + bl GF_AssertFail _02009B10: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B1E - bl ErrorHandling + bl GF_AssertFail _02009B1E: add r0, r4, #0x0 bl FUN_02009544 @@ -1833,7 +1833,7 @@ FUN_02009B44: ; 0x02009B44 push {r4-r6, lr} add r5, r0, #0x0 bne _02009B4E - bl ErrorHandling + bl GF_AssertFail _02009B4E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -1848,7 +1848,7 @@ _02009B58: bl FUN_02009B04 cmp r0, #0x0 bne _02009B6C - bl ErrorHandling + bl GF_AssertFail _02009B6C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -1864,13 +1864,13 @@ FUN_02009B78: ; 0x02009B78 sub sp, #0x10 add r4, r0, #0x0 bne _02009B84 - bl ErrorHandling + bl GF_AssertFail _02009B84: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B92 - bl ErrorHandling + bl GF_AssertFail _02009B92: add r0, r4, #0x0 bl FUN_02009544 @@ -1895,11 +1895,11 @@ FUN_02009BB8: ; 0x02009BB8 add r5, r1, #0x0 cmp r4, #0x0 bne _02009BC6 - bl ErrorHandling + bl GF_AssertFail _02009BC6: cmp r5, #0x0 bne _02009BCE - bl ErrorHandling + bl GF_AssertFail _02009BCE: add r0, r4, #0x0 bl FUN_02009530 @@ -1917,7 +1917,7 @@ FUN_02009BE8: ; 0x02009BE8 push {r3-r5, lr} add r5, r0, #0x0 bne _02009BF2 - bl ErrorHandling + bl GF_AssertFail _02009BF2: add r0, r5, #0x0 bl FUN_02009530 @@ -1935,13 +1935,13 @@ FUN_02009C0C: ; 0x02009C0C push {r4, lr} add r4, r0, #0x0 bne _02009C16 - bl ErrorHandling + bl GF_AssertFail _02009C16: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C24 - bl ErrorHandling + bl GF_AssertFail _02009C24: add r0, r4, #0x0 bl FUN_02009530 @@ -1953,7 +1953,7 @@ FUN_02009C30: ; 0x02009C30 push {r4-r6, lr} add r5, r0, #0x0 bne _02009C3A - bl ErrorHandling + bl GF_AssertFail _02009C3A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -1980,13 +1980,13 @@ FUN_02009C5C: ; 0x02009C5C push {r4, lr} add r4, r0, #0x0 bne _02009C66 - bl ErrorHandling + bl GF_AssertFail _02009C66: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C74 - bl ErrorHandling + bl GF_AssertFail _02009C74: add r0, r4, #0x0 bl FUN_02009530 @@ -2000,23 +2000,23 @@ FUN_02009C80: ; 0x02009C80 add r5, r1, #0x0 cmp r4, #0x0 bne _02009C8E - bl ErrorHandling + bl GF_AssertFail _02009C8E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C9C - bl ErrorHandling + bl GF_AssertFail _02009C9C: cmp r5, #0x0 bne _02009CA4 - bl ErrorHandling + bl GF_AssertFail _02009CA4: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x2 beq _02009CB2 - bl ErrorHandling + bl GF_AssertFail _02009CB2: add r0, r4, #0x0 bl FUN_02009530 @@ -2041,7 +2041,7 @@ FUN_02009CDC: ; 0x02009CDC push {r4, lr} add r4, r0, #0x0 bne _02009CE6 - bl ErrorHandling + bl GF_AssertFail _02009CE6: add r0, r4, #0x0 bl FUN_0201D4F0 @@ -2054,13 +2054,13 @@ FUN_02009CF0: ; 0x02009CF0 sub sp, #0x10 add r4, r0, #0x0 bne _02009CFC - bl ErrorHandling + bl GF_AssertFail _02009CFC: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D0A - bl ErrorHandling + bl GF_AssertFail _02009D0A: add r0, r4, #0x0 bl FUN_0200955C @@ -2084,7 +2084,7 @@ FUN_02009D34: ; 0x02009D34 push {r4-r6, lr} add r5, r0, #0x0 bne _02009D3E - bl ErrorHandling + bl GF_AssertFail _02009D3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -2099,7 +2099,7 @@ _02009D48: bl FUN_02009CF0 cmp r0, #0x0 bne _02009D5C - bl ErrorHandling + bl GF_AssertFail _02009D5C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -2115,13 +2115,13 @@ FUN_02009D68: ; 0x02009D68 sub sp, #0x10 add r4, r0, #0x0 bne _02009D74 - bl ErrorHandling + bl GF_AssertFail _02009D74: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D82 - bl ErrorHandling + bl GF_AssertFail _02009D82: add r0, r4, #0x0 bl FUN_0200955C @@ -2145,7 +2145,7 @@ FUN_02009DAC: ; 0x02009DAC push {r4-r6, lr} add r5, r0, #0x0 bne _02009DB6 - bl ErrorHandling + bl GF_AssertFail _02009DB6: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -2160,7 +2160,7 @@ _02009DC0: bl FUN_02009D68 cmp r0, #0x0 bne _02009DD4 - bl ErrorHandling + bl GF_AssertFail _02009DD4: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -2175,7 +2175,7 @@ FUN_02009DE0: ; 0x02009DE0 push {r3-r5, lr} add r5, r0, #0x0 bne _02009DEA - bl ErrorHandling + bl GF_AssertFail _02009DEA: add r0, r5, #0x0 bl FUN_02009530 @@ -2193,13 +2193,13 @@ FUN_02009E04: ; 0x02009E04 push {r4, lr} add r4, r0, #0x0 bne _02009E0E - bl ErrorHandling + bl GF_AssertFail _02009E0E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E1C - bl ErrorHandling + bl GF_AssertFail _02009E1C: add r0, r4, #0x0 bl FUN_02009530 @@ -2211,7 +2211,7 @@ FUN_02009E28: ; 0x02009E28 push {r4-r6, lr} add r5, r0, #0x0 bne _02009E32 - bl ErrorHandling + bl GF_AssertFail _02009E32: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -2240,13 +2240,13 @@ FUN_02009E54: ; 0x02009E54 add r4, r1, #0x0 cmp r5, #0x0 bne _02009E62 - bl ErrorHandling + bl GF_AssertFail _02009E62: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E70 - bl ErrorHandling + bl GF_AssertFail _02009E70: add r0, r5, #0x0 bl FUN_02009530 diff --git a/arm9/asm/unk_02009EAC.s b/arm9/asm/unk_02009EAC.s index 2c51446be..95a1773a9 100644 --- a/arm9/asm/unk_02009EAC.s +++ b/arm9/asm/unk_02009EAC.s @@ -68,7 +68,7 @@ FUN_02009EF0: ; 0x02009EF0 add r7, r3, #0x0 cmp r0, #0x0 beq _02009F08 - bl ErrorHandling + bl GF_AssertFail _02009F08: ldr r0, [sp, #0x30] mov r1, #0x3c @@ -77,7 +77,7 @@ _02009F08: cmp r0, #0x0 str r0, [r1, #0x0] bne _02009F1C - bl ErrorHandling + bl GF_AssertFail _02009F1C: ldr r1, _02009F7C ; =UNK_021C4670 lsl r3, r6, #0x10 @@ -98,7 +98,7 @@ _02009F1C: bl NNS_G2dGetNewOamManagerInstance cmp r0, #0x0 bne _02009F48 - bl ErrorHandling + bl GF_AssertFail _02009F48: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x20] @@ -121,7 +121,7 @@ _02009F48: bl NNS_G2dGetNewOamManagerInstance cmp r0, #0x0 bne _02009F78 - bl ErrorHandling + bl GF_AssertFail _02009F78: add sp, #0x8 pop {r3-r7, pc} @@ -152,7 +152,7 @@ FUN_02009FA0: ; 0x02009FA0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02009FAE - bl ErrorHandling + bl GF_AssertFail _02009FAE: ldr r0, _02009FD4 ; =UNK_021C4670 ldr r0, [r0, #0x0] @@ -184,7 +184,7 @@ FUN_02009FD8: ; 0x02009FD8 add r4, r3, #0x0 cmp r0, #0x0 bne _02009FF0 - bl ErrorHandling + bl GF_AssertFail _02009FF0: cmp r5, #0x1 bne _0200A00C @@ -227,7 +227,7 @@ FUN_0200A03C: ; 0x0200A03C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0200A04C - bl ErrorHandling + bl GF_AssertFail _0200A04C: cmp r4, #0x0 bne _0200A056 @@ -267,7 +267,7 @@ FUN_0200A074: ; 0x0200A074 bl NNS_G2dEntryOamManagerOamWithAffineIdx add r4, r0, #0x0 bne _0200A08C - bl ErrorHandling + bl GF_AssertFail _0200A08C: add r0, r4, #0x0 pop {r4, pc} @@ -286,7 +286,7 @@ FUN_0200A094: ; 0x0200A094 bl NNS_G2dEntryOamManagerOamWithAffineIdx add r4, r0, #0x0 bne _0200A0AE - bl ErrorHandling + bl GF_AssertFail _0200A0AE: add r0, r4, #0x0 pop {r4, pc} @@ -304,7 +304,7 @@ FUN_0200A0B8: ; 0x0200A0B8 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 bne _0200A0D0 - bl ErrorHandling + bl GF_AssertFail _0200A0D0: add r0, r4, #0x0 pop {r4, pc} @@ -324,7 +324,7 @@ FUN_0200A0DC: ; 0x0200A0DC ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 bne _0200A0F6 - bl ErrorHandling + bl GF_AssertFail _0200A0F6: add r0, r4, #0x0 pop {r4, pc} @@ -426,7 +426,7 @@ FUN_0200A1A0: ; 0x0200A1A0 add r7, r3, #0x0 cmp r0, #0x0 beq _0200A1B4 - bl ErrorHandling + bl GF_AssertFail _0200A1B4: ldr r1, [sp, #0x18] mov r0, #0x1 diff --git a/arm9/asm/unk_0200BB14.s b/arm9/asm/unk_0200BB14.s index 7a041be2e..b8a6eab56 100644 --- a/arm9/asm/unk_0200BB14.s +++ b/arm9/asm/unk_0200BB14.s @@ -27,7 +27,7 @@ FUN_0200BB34: ; 0x0200BB34 push {r4, lr} add r4, r0, #0x0 bne _0200BB3E - bl ErrorHandling + bl GF_AssertFail _0200BB3E: ldr r0, [r4, #0x0] mov r1, #0x58 @@ -67,7 +67,7 @@ FUN_0200BB6C: ; 0x0200BB6C add r7, r3, #0x0 cmp r5, #0x0 bne _0200BB80 - bl ErrorHandling + bl GF_AssertFail _0200BB80: cmp r5, #0x0 bne _0200BB8A @@ -155,7 +155,7 @@ FUN_0200BC1C: ; 0x0200BC1C push {r4, lr} add r4, r0, #0x0 bne _0200BC26 - bl ErrorHandling + bl GF_AssertFail _0200BC26: ldr r0, [r4, #0x0] bl FUN_0201FDEC @@ -288,7 +288,7 @@ FUN_0200BD04: ; 0x0200BD04 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200BD12 - bl ErrorHandling + bl GF_AssertFail _0200BD12: add r0, r4, #0x0 bl FUN_0200BCB0 @@ -708,7 +708,7 @@ _0200C02A: mov r0, #0x1 pop {r4-r7, pc} _0200C058: - bl ErrorHandling + bl GF_AssertFail cmp r5, #0x0 beq _0200C066 add sp, #0xc @@ -755,7 +755,7 @@ _0200C08C: bl FUN_02009D68 cmp r0, #0x1 beq _0200C0B8 - bl ErrorHandling + bl GF_AssertFail _0200C0B8: ldr r0, [r4, #0x28] add r1, r5, #0x0 @@ -768,7 +768,7 @@ _0200C0B8: asr r0, r0, #0x18 pop {r3-r7, pc} _0200C0D0: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 mvn r0, r0 add sp, #0x10 @@ -1067,7 +1067,7 @@ _0200C2E0: bl FUN_02020248 b _0200C32C _0200C328: - bl ErrorHandling + bl GF_AssertFail _0200C32C: add r0, r4, #0x0 add sp, #0x74 @@ -1232,13 +1232,13 @@ _0200C42A: add r4, r0, #0x0 cmp r4, #0x1 beq _0200C45A - bl ErrorHandling + bl GF_AssertFail _0200C45A: add sp, #0x14 add r0, r4, #0x0 pop {r4-r7, pc} _0200C460: - bl ErrorHandling + bl GF_AssertFail cmp r5, #0x0 beq _0200C46E add sp, #0x14 @@ -2017,7 +2017,7 @@ _0200C936: mov r0, #0x1 pop {r4-r7, pc} _0200C964: - bl ErrorHandling + bl GF_AssertFail cmp r5, #0x0 beq _0200C972 add sp, #0xc @@ -2066,7 +2066,7 @@ _0200C996: mov r0, #0x1 pop {r4-r7, pc} _0200C9C4: - bl ErrorHandling + bl GF_AssertFail cmp r5, #0x0 beq _0200C9D2 add sp, #0xc diff --git a/arm9/asm/unk_0200E1D0.s b/arm9/asm/unk_0200E1D0.s index 85f4bfc25..3690752c7 100644 --- a/arm9/asm/unk_0200E1D0.s +++ b/arm9/asm/unk_0200E1D0.s @@ -95,18 +95,18 @@ FUN_0200E1D0: ; 0x0200E1D0 add r6, r3, #0x0 cmp r0, #0x0 bne _0200E1E6 - bl ErrorHandling + bl GF_AssertFail _0200E1E6: ldr r0, [sp, #0x34] cmp r0, #0x0 bne _0200E1F0 - bl ErrorHandling + bl GF_AssertFail _0200E1F0: ldr r0, _0200E2AC ; =UNK_021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E1FC - bl ErrorHandling + bl GF_AssertFail _0200E1FC: ldr r0, _0200E2B0 ; =UNK_021C46B4 bl FUN_0200E808 @@ -672,14 +672,14 @@ FUN_0200E628: ; 0x0200E628 str r1, [sp, #0x0] cmp r0, #0x0 beq _0200E64A - bl ErrorHandling + bl GF_AssertFail _0200E64A: add r6, r5, #0x0 add r6, #0x8 ldr r0, [r6, r4] cmp r0, #0x0 bne _0200E658 - bl ErrorHandling + bl GF_AssertFail _0200E658: ldr r0, [r5, #0x10] cmp r0, #0x0 @@ -697,7 +697,7 @@ _0200E672: ldr r0, [sp, #0x4] cmp r0, #0x1 beq _0200E67C - bl ErrorHandling + bl GF_AssertFail _0200E67C: ldr r0, [sp, #0x0] cmp r7, #0x0 diff --git a/arm9/asm/unk_0200E850.s b/arm9/asm/unk_0200E850.s index f42d0a24d..1919f15dc 100644 --- a/arm9/asm/unk_0200E850.s +++ b/arm9/asm/unk_0200E850.s @@ -1572,7 +1572,7 @@ _0200F248: mov r7, #0xf mvn r7, r7 mov r6, #0x0 - bl ErrorHandling + bl GF_AssertFail b _0200F274 _0200F254: cmp r1, r0 @@ -1591,7 +1591,7 @@ _0200F26A: mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 - bl ErrorHandling + bl GF_AssertFail _0200F274: ldr r0, [r5, #0x10] add r1, r7, #0x0 @@ -1701,7 +1701,7 @@ FUN_0200F330: ; 0x0200F330 push {r4-r6, lr} add r4, r0, #0x0 bne _0200F33A - bl ErrorHandling + bl GF_AssertFail _0200F33A: ldr r0, _0200F54C ; =0x04000006 ldrh r0, [r0, #0x0] @@ -2062,7 +2062,7 @@ FUN_0200F5D8: ; 0x0200F5D8 add r4, r1, #0x0 cmp r0, r4 bgt _0200F5E8 - bl ErrorHandling + bl GF_AssertFail _0200F5E8: ldr r0, _0200F5F4 ; =0x00000604 ldr r1, [r5, #0x0] @@ -2304,7 +2304,7 @@ FUN_0200F7AC: ; 0x0200F7AC push {r3-r5, lr} add r4, r0, #0x0 bne _0200F7B6 - bl ErrorHandling + bl GF_AssertFail _0200F7B6: ldr r0, _0200FAC0 ; =0x04000006 ldrh r0, [r0, #0x0] @@ -3371,7 +3371,7 @@ _0200FF9E: mov r6, #0x1 b _0200FFA6 _0200FFA2: - bl ErrorHandling + bl GF_AssertFail _0200FFA6: add r0, r6, #0x0 pop {r4-r6, pc} @@ -3740,7 +3740,7 @@ _02010272: mov r6, #0x1 b _0201027A _02010276: - bl ErrorHandling + bl GF_AssertFail _0201027A: add r0, r6, #0x0 pop {r4-r6, pc} @@ -4189,7 +4189,7 @@ FUN_020105A0: ; 0x020105A0 str r0, [sp, #0x4] cmp r0, #0xc0 blt _0201060C - bl ErrorHandling + bl GF_AssertFail _0201060C: ldr r2, [sp, #0x4] add r0, r4, #0x0 @@ -4326,7 +4326,7 @@ _02010714: mov r6, #0x1 b _0201071C _02010718: - bl ErrorHandling + bl GF_AssertFail _0201071C: add r0, r6, #0x0 pop {r4-r6, pc} @@ -4350,7 +4350,7 @@ FUN_02010720: ; 0x02010720 str r0, [r7, #0xc] cmp r0, #0x0 bne _02010748 - bl ErrorHandling + bl GF_AssertFail _02010748: ldrb r0, [r5, #0x8] str r0, [r7, #0x10] @@ -4689,7 +4689,7 @@ _020109DC: mov r6, #0x1 b _020109E4 _020109E0: - bl ErrorHandling + bl GF_AssertFail _020109E4: add r0, r6, #0x0 pop {r4-r6, pc} @@ -5102,7 +5102,7 @@ _02010D10: mov r6, #0x1 b _02010D18 _02010D14: - bl ErrorHandling + bl GF_AssertFail _02010D18: add r0, r6, #0x0 pop {r4-r6, pc} @@ -5448,7 +5448,7 @@ _02010FC4: mov r6, #0x1 b _02010FCC _02010FC8: - bl ErrorHandling + bl GF_AssertFail _02010FCC: add r0, r6, #0x0 pop {r4-r6, pc} @@ -5809,7 +5809,7 @@ _0201126A: mov r4, #0x1 b _02011272 _0201126E: - bl ErrorHandling + bl GF_AssertFail _02011272: add r0, r4, #0x0 pop {r3-r5, pc} diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index ff9364c93..8ee30228e 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -34,7 +34,7 @@ FUN_02011744: ; 0x02011744 str r0, [sp, #0x8] cmp r0, #0x0 bne _0201175E - bl ErrorHandling + bl GF_AssertFail _0201175E: ldr r4, [sp, #0x8] ldr r5, [sp, #0x8] @@ -50,7 +50,7 @@ _02011766: str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E - bl ErrorHandling + bl GF_AssertFail _0201177E: add r6, r6, #0x1 add r4, r4, #0x4 @@ -68,7 +68,7 @@ _0201177E: cmp r0, #0x0 str r0, [r1, #0x60] bne _020117A4 - bl ErrorHandling + bl GF_AssertFail _020117A4: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] @@ -87,7 +87,7 @@ FUN_020117BC: ; 0x020117BC push {r4-r6, lr} add r6, r0, #0x0 bne _020117C6 - bl ErrorHandling + bl GF_AssertFail _020117C6: mov r4, #0x0 add r5, r6, #0x0 @@ -111,13 +111,13 @@ FUN_020117E8: ; 0x020117E8 sub sp, #0x1c add r5, r0, #0x0 bne _020117F4 - bl ErrorHandling + bl GF_AssertFail _020117F4: ldr r0, [r5, #0x0] bl FUN_02011BA0 add r4, r0, #0x0 bne _02011802 - bl ErrorHandling + bl GF_AssertFail _02011802: ldr r0, [r5, #0x10] add r3, sp, #0x8 @@ -173,12 +173,12 @@ FUN_02011870: ; 0x02011870 push {r4, lr} add r4, r0, #0x0 bne _0201187A - bl ErrorHandling + bl GF_AssertFail _0201187A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02011884 - bl ErrorHandling + bl GF_AssertFail _02011884: add r0, r4, #0x0 bl FUN_02011F00 @@ -219,7 +219,7 @@ FUN_020118C4: ; 0x020118C4 str r1, [sp, #0x0] cmp r5, #0x0 bne _020118D6 - bl ErrorHandling + bl GF_AssertFail _020118D6: ldr r0, [sp, #0x0] str r0, [r5, #0xc] @@ -278,7 +278,7 @@ FUN_02011938: ; 0x02011938 sub sp, #0x10 add r5, r0, #0x0 bne _02011944 - bl ErrorHandling + bl GF_AssertFail _02011944: ldr r0, [r5, #0x8] cmp r0, #0x0 @@ -337,15 +337,15 @@ FUN_020119A4: ; 0x020119A4 add r6, r2, #0x0 cmp r5, #0x0 bne _020119B4 - bl ErrorHandling + bl GF_AssertFail _020119B4: cmp r4, #0x0 bne _020119BC - bl ErrorHandling + bl GF_AssertFail _020119BC: cmp r6, #0x0 bne _020119C4 - bl ErrorHandling + bl GF_AssertFail _020119C4: ldr r0, [r5, #0xc] str r0, [r4, #0x0] @@ -361,7 +361,7 @@ FUN_020119D0: ; 0x020119D0 add r7, r1, #0x0 cmp r5, #0x0 bne _020119DE - bl ErrorHandling + bl GF_AssertFail _020119DE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -389,7 +389,7 @@ FUN_02011A00: ; 0x02011A00 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A0E - bl ErrorHandling + bl GF_AssertFail _02011A0E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -417,7 +417,7 @@ FUN_02011A30: ; 0x02011A30 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A3E - bl ErrorHandling + bl GF_AssertFail _02011A3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -445,7 +445,7 @@ FUN_02011A60: ; 0x02011A60 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A6E - bl ErrorHandling + bl GF_AssertFail _02011A6E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -473,7 +473,7 @@ FUN_02011A90: ; 0x02011A90 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A9E - bl ErrorHandling + bl GF_AssertFail _02011A9E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -501,7 +501,7 @@ FUN_02011AC0: ; 0x02011AC0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011ACE - bl ErrorHandling + bl GF_AssertFail _02011ACE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -529,7 +529,7 @@ FUN_02011AF0: ; 0x02011AF0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011AFE - bl ErrorHandling + bl GF_AssertFail _02011AFE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -567,7 +567,7 @@ FUN_02011B20: ; 0x02011B20 str r3, [sp, #0x4] cmp r1, r0 bge _02011B42 - bl ErrorHandling + bl GF_AssertFail _02011B42: ldrb r2, [r6, #0x8] ldr r1, [sp, #0x0] @@ -575,7 +575,7 @@ _02011B42: add r0, r1, r0 cmp r2, r0 bge _02011B52 - bl ErrorHandling + bl GF_AssertFail _02011B52: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -719,7 +719,7 @@ FUN_02011BF4: ; 0x02011BF4 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C54 - bl ErrorHandling + bl GF_AssertFail _02011C54: add r0, r5, #0x0 mov r1, #0x1 @@ -774,12 +774,12 @@ FUN_02011CA4: ; 0x02011CA4 add r6, r3, #0x0 cmp r7, #0x0 bne _02011CB8 - bl ErrorHandling + bl GF_AssertFail _02011CB8: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02011CC2 - bl ErrorHandling + bl GF_AssertFail _02011CC2: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -1053,7 +1053,7 @@ _02011EC2: ldr r0, [r0, r5] cmp r0, #0x0 bne _02011EDC - bl ErrorHandling + bl GF_AssertFail _02011EDC: ldr r0, [r4, #0x0] add r7, #0x24 @@ -1174,7 +1174,7 @@ FUN_02011FAC: ; 0x02011FAC bl AllocFromHeapAtEnd add r4, r0, #0x0 bne _02011FBC - bl ErrorHandling + bl GF_AssertFail _02011FBC: mov r0, #0x0 str r0, [r4, #0xc] @@ -1188,7 +1188,7 @@ FUN_02011FC8: ; 0x02011FC8 push {r4, lr} add r4, r0, #0x0 bne _02011FD2 - bl ErrorHandling + bl GF_AssertFail _02011FD2: add r0, r4, #0x0 bl FreeToHeap diff --git a/arm9/asm/unk_02012004.s b/arm9/asm/unk_02012004.s index e43e4bb2a..8c38ae935 100644 --- a/arm9/asm/unk_02012004.s +++ b/arm9/asm/unk_02012004.s @@ -78,7 +78,7 @@ FUN_02012044: ; 0x02012044 bl AllocAndReadWholeNarcMemberByIdPair add r4, r0, #0x0 bne _02012054 - bl ErrorHandling + bl GF_AssertFail _02012054: add r0, r4, #0x0 add r1, r5, #0x0 @@ -86,11 +86,11 @@ _02012054: add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 - bl ErrorHandling + bl GF_AssertFail _02012066: cmp r6, #0x0 bne _0201206E - bl ErrorHandling + bl GF_AssertFail _0201206E: add r0, r4, #0x0 bl FreeToHeap @@ -109,7 +109,7 @@ FUN_02012078: ; 0x02012078 add r5, r3, #0x0 cmp r0, r6 bge _02012090 - bl ErrorHandling + bl GF_AssertFail _02012090: ldr r0, [sp, #0xc] ldrh r1, [r4, #0x0] @@ -117,7 +117,7 @@ _02012090: str r0, [sp, #0x14] cmp r1, r0 bge _020120A0 - bl ErrorHandling + bl GF_AssertFail _020120A0: ldr r0, [r4, #0x14] str r0, [sp, #0x20] @@ -305,14 +305,14 @@ FUN_020121E8: ; 0x020121E8 str r0, [sp, #0x20] cmp r0, #0x0 bne _02012204 - bl ErrorHandling + bl GF_AssertFail _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c bl NNS_G2dGetUnpackedCharacterData cmp r0, #0x0 bne _02012214 - bl ErrorHandling + bl GF_AssertFail _02012214: ldr r1, [sp, #0x4c] ldr r0, [sp, #0x8] @@ -321,7 +321,7 @@ _02012214: ldrh r0, [r0, #0x2] cmp r0, r6 bge _02012226 - bl ErrorHandling + bl GF_AssertFail _02012226: ldr r1, [sp, #0x50] ldr r0, [sp, #0x48] @@ -332,7 +332,7 @@ _02012226: ldr r0, [sp, #0x10] cmp r1, r0 bge _0201223C - bl ErrorHandling + bl GF_AssertFail _0201223C: ldr r0, [sp, #0x2c] ldr r0, [r0, #0x14] @@ -652,7 +652,7 @@ FUN_02012470: ; 0x02012470 bl NNS_G2dGetUnpackedPaletteData cmp r0, #0x1 beq _0201249C - bl ErrorHandling + bl GF_AssertFail _0201249C: ldr r0, [sp, #0x0] add r1, r4, #0x0 diff --git a/arm9/asm/unk_02012944.s b/arm9/asm/unk_02012944.s index 1c1f2ab29..8b3029f20 100644 --- a/arm9/asm/unk_02012944.s +++ b/arm9/asm/unk_02012944.s @@ -34,7 +34,7 @@ FUN_02012974: ; 0x02012974 push {r4, lr} add r4, r0, #0x0 bne _0201297E - bl ErrorHandling + bl GF_AssertFail _0201297E: add r0, r4, #0x0 bl FreeToHeap @@ -46,7 +46,7 @@ FUN_02012988: ; 0x02012988 push {r4, lr} add r4, r0, #0x0 bne _02012992 - bl ErrorHandling + bl GF_AssertFail _02012992: ldrb r0, [r4, #0x8] lsl r0, r0, #0x2 @@ -59,7 +59,7 @@ FUN_0201299C: ; 0x0201299C push {r4, lr} add r4, r0, #0x0 bne _020129A6 - bl ErrorHandling + bl GF_AssertFail _020129A6: ldrb r1, [r4, #0x8] mov r0, #0x1 @@ -147,13 +147,13 @@ FUN_02012A30: ; 0x02012A30 add r7, r3, #0x0 cmp r5, #0x0 bne _02012A42 - bl ErrorHandling + bl GF_AssertFail _02012A42: ldr r0, _02012AB0 ; =0x00000604 ldr r0, [r5, r0] cmp r0, #0x0 beq _02012A4E - bl ErrorHandling + bl GF_AssertFail _02012A4E: ldr r0, _02012AB4 ; =0x0000078C mov r2, #0x0 @@ -212,7 +212,7 @@ FUN_02012AC4: ; 0x02012AC4 push {r4, lr} add r4, r0, #0x0 bne _02012ACE - bl ErrorHandling + bl GF_AssertFail _02012ACE: ldr r0, _02012AF8 ; =0x00000604 ldr r0, [r4, r0] @@ -451,7 +451,7 @@ FUN_02012C98: ; 0x02012C98 push {r3-r5, lr} add r4, r0, #0x0 bne _02012CA2 - bl ErrorHandling + bl GF_AssertFail _02012CA2: mov r0, #0x6 lsl r0, r0, #0x8 diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index 2961eba77..5f0f01c66 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -96,7 +96,7 @@ _02012D04: bl AllocFromHeap add r4, r0, #0x0 bne _02012D14 - bl ErrorHandling + bl GF_AssertFail _02012D14: add r0, r4, #0x0 mov r1, #0x0 @@ -337,7 +337,7 @@ _02012EE4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012EF0 - bl ErrorHandling + bl GF_AssertFail _02012EF0: add r0, r4, #0x0 pop {r4, pc} @@ -363,7 +363,7 @@ _02012F10: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F1C - bl ErrorHandling + bl GF_AssertFail _02012F1C: add r0, r4, #0x0 pop {r4, pc} @@ -389,7 +389,7 @@ _02012F3C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F48 - bl ErrorHandling + bl GF_AssertFail _02012F48: add r0, r4, #0x0 pop {r4, pc} @@ -415,7 +415,7 @@ _02012F68: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F74 - bl ErrorHandling + bl GF_AssertFail _02012F74: add r0, r4, #0x0 pop {r4, pc} @@ -441,7 +441,7 @@ _02012F94: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FA0 - bl ErrorHandling + bl GF_AssertFail _02012FA0: add r0, r4, #0x0 pop {r4, pc} @@ -467,7 +467,7 @@ _02012FC0: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FCC - bl ErrorHandling + bl GF_AssertFail _02012FCC: add r0, r4, #0x0 pop {r4, pc} @@ -493,7 +493,7 @@ _02012FEC: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FF8 - bl ErrorHandling + bl GF_AssertFail _02012FF8: add r0, r4, #0x0 pop {r4, pc} @@ -519,7 +519,7 @@ _02013018: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013024 - bl ErrorHandling + bl GF_AssertFail _02013024: add r0, r4, #0x0 pop {r4, pc} @@ -545,7 +545,7 @@ _02013044: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013050 - bl ErrorHandling + bl GF_AssertFail _02013050: add r0, r4, #0x0 pop {r4, pc} @@ -571,7 +571,7 @@ _02013070: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201307C - bl ErrorHandling + bl GF_AssertFail _0201307C: add r0, r4, #0x0 pop {r4, pc} @@ -597,7 +597,7 @@ _0201309C: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130A8 - bl ErrorHandling + bl GF_AssertFail _020130A8: add r0, r4, #0x0 pop {r4, pc} @@ -623,7 +623,7 @@ _020130C8: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130D4 - bl ErrorHandling + bl GF_AssertFail _020130D4: add r0, r4, #0x0 pop {r4, pc} @@ -649,7 +649,7 @@ _020130F4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013100 - bl ErrorHandling + bl GF_AssertFail _02013100: add r0, r4, #0x0 pop {r4, pc} @@ -675,7 +675,7 @@ _02013120: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201312C - bl ErrorHandling + bl GF_AssertFail _0201312C: add r0, r4, #0x0 pop {r4, pc} @@ -701,7 +701,7 @@ _0201314C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013158 - bl ErrorHandling + bl GF_AssertFail _02013158: add r0, r4, #0x0 pop {r4, pc} @@ -727,7 +727,7 @@ _02013178: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013184 - bl ErrorHandling + bl GF_AssertFail _02013184: add r0, r4, #0x0 pop {r4, pc} @@ -751,12 +751,12 @@ FUN_02013194: ; 0x02013194 add r7, r3, #0x0 cmp r0, #0x0 bne _020131A8 - bl ErrorHandling + bl GF_AssertFail _020131A8: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _020131B2 - bl ErrorHandling + bl GF_AssertFail _020131B2: add r0, r5, #0x0 add r0, #0xd8 @@ -870,13 +870,13 @@ FUN_0201327C: ; 0x0201327C push {r4, lr} add r4, r0, #0x0 bne _02013286 - bl ErrorHandling + bl GF_AssertFail _02013286: ldr r0, _020132B8 ; =UNK_021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02013292 - bl ErrorHandling + bl GF_AssertFail _02013292: ldr r0, _020132B8 ; =UNK_021C4850 mov r1, #0x0 @@ -895,7 +895,7 @@ _020132A8: add r2, r2, #0x4 cmp r1, #0x10 blt _0201329A - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} nop _020132B8: .word UNK_021C4850 @@ -905,13 +905,13 @@ FUN_020132BC: ; 0x020132BC push {r4, lr} add r4, r0, #0x0 bne _020132C6 - bl ErrorHandling + bl GF_AssertFail _020132C6: ldr r0, _020132FC ; =UNK_021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132D2 - bl ErrorHandling + bl GF_AssertFail _020132D2: ldr r0, _020132FC ; =UNK_021C4850 mov r1, #0x0 @@ -933,7 +933,7 @@ _020132EE: add r2, r2, #0x4 cmp r1, #0x10 blt _020132DA - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} .balign 4 _020132FC: .word UNK_021C4850 @@ -1516,7 +1516,7 @@ DestroyListMenuCursorObj: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA - bl ErrorHandling + bl GF_AssertFail _020136CA: cmp r4, #0x0 beq _020136DE @@ -1537,7 +1537,7 @@ ListMenuCursorSetColor: ; 0x020136E0 add r4, r1, #0x0 cmp r5, #0x0 bne _020136EE - bl ErrorHandling + bl GF_AssertFail _020136EE: cmp r5, #0x0 beq _020136F4 diff --git a/arm9/asm/unk_02013CD4.s b/arm9/asm/unk_02013CD4.s index 330a8c95e..8b8466785 100644 --- a/arm9/asm/unk_02013CD4.s +++ b/arm9/asm/unk_02013CD4.s @@ -18,7 +18,7 @@ FUN_02013CD4: ; 0x02013CD4 bl AllocFromHeap add r4, r0, #0x0 bne _02013CE8 - bl ErrorHandling + bl GF_AssertFail _02013CE8: ldr r0, [r5, #0x0] ldr r1, [r5, #0xc] @@ -47,22 +47,22 @@ FUN_02013D18: ; 0x02013D18 push {r4, lr} add r4, r0, #0x0 bne _02013D22 - bl ErrorHandling + bl GF_AssertFail _02013D22: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02013D2C - bl ErrorHandling + bl GF_AssertFail _02013D2C: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02013D36 - bl ErrorHandling + bl GF_AssertFail _02013D36: ldr r0, [r4, #0x10] cmp r0, #0x0 bne _02013D40 - bl ErrorHandling + bl GF_AssertFail _02013D40: ldr r0, [r4, #0x0] bl FreeToHeap @@ -116,20 +116,20 @@ FUN_02013D98: ; 0x02013D98 bl FUN_02014024 add r4, r0, #0x0 bne _02013DAA - bl ErrorHandling + bl GF_AssertFail _02013DAA: ldr r0, [r5, #0x4] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02013DB6 - bl ErrorHandling + bl GF_AssertFail _02013DB6: ldr r0, [r5, #0x4] bl FUN_0201407C str r0, [r4, #0x0] cmp r0, #0x0 bne _02013DC6 - bl ErrorHandling + bl GF_AssertFail _02013DC6: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -185,14 +185,14 @@ FUN_02013E14: ; 0x02013E14 bl FUN_02014050 add r4, r0, #0x0 bne _02013E26 - bl ErrorHandling + bl GF_AssertFail _02013E26: ldr r0, [r5, #0x8] bl FUN_02014090 str r0, [r4, #0x0] cmp r0, #0x0 bne _02013E36 - bl ErrorHandling + bl GF_AssertFail _02013E36: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -248,7 +248,7 @@ FUN_02013E84: ; 0x02013E84 bl FUN_02013FF8 add r4, r0, #0x0 bne _02013E96 - bl ErrorHandling + bl GF_AssertFail _02013E96: add r0, r4, #0x0 add r1, r5, #0x0 @@ -273,7 +273,7 @@ FUN_02013EB0: ; 0x02013EB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02013EBE - bl ErrorHandling + bl GF_AssertFail _02013EBE: str r4, [r5, #0x20] pop {r3-r5, pc} @@ -426,7 +426,7 @@ FUN_02013F68: ; 0x02013F68 bl AllocFromHeap add r7, r0, #0x0 bne _02013F7C - bl ErrorHandling + bl GF_AssertFail _02013F7C: mov r4, #0x0 cmp r6, #0x0 @@ -454,7 +454,7 @@ FUN_02013F98: ; 0x02013F98 bl AllocFromHeap add r7, r0, #0x0 bne _02013FAE - bl ErrorHandling + bl GF_AssertFail _02013FAE: mov r4, #0x0 cmp r6, #0x0 @@ -481,7 +481,7 @@ FUN_02013FC8: ; 0x02013FC8 bl AllocFromHeap add r7, r0, #0x0 bne _02013FDE - bl ErrorHandling + bl GF_AssertFail _02013FDE: mov r4, #0x0 cmp r6, #0x0 diff --git a/arm9/asm/unk_02014590.s b/arm9/asm/unk_02014590.s index ae4eadbd4..aa2f249ba 100644 --- a/arm9/asm/unk_02014590.s +++ b/arm9/asm/unk_02014590.s @@ -129,7 +129,7 @@ FUN_0201466C: ; 0x0201466C lsr r0, r0, #0x1c cmp r0, #0x1 beq _02014680 - bl ErrorHandling + bl GF_AssertFail _02014680: add r0, r4, #0x0 add r0, #0x9a diff --git a/arm9/asm/unk_02014BF4.s b/arm9/asm/unk_02014BF4.s index a8205c887..566b85140 100644 --- a/arm9/asm/unk_02014BF4.s +++ b/arm9/asm/unk_02014BF4.s @@ -116,7 +116,7 @@ FUN_02014C3C: ; 0x02014C3C add r4, r0, #0x0 cmp r4, #0x19 blo _02014C48 - bl ErrorHandling + bl GF_AssertFail _02014C48: ldr r0, _02014C50 ; =UNK_020ED64C ldrb r0, [r0, r4] @@ -140,7 +140,7 @@ FUN_02014C54: ; 0x02014C54 str r2, [sp, #0x0] cmp r0, r1 blo _02014C74 - bl ErrorHandling + bl GF_AssertFail _02014C74: ldr r0, [sp, #0x4] mov r1, #0x1d @@ -152,7 +152,7 @@ _02014C74: ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02014C8C - bl ErrorHandling + bl GF_AssertFail _02014C8C: ldr r0, [r5, #0x0] mov r2, #0x1d @@ -280,7 +280,7 @@ FUN_02014D7C: ; 0x02014D7C add r4, r1, #0x0 cmp r4, r0 blo _02014D8C - bl ErrorHandling + bl GF_AssertFail _02014D8C: mov r0, #0x1d lsl r0, r0, #0x4 @@ -440,7 +440,7 @@ _02014EA0: ldr r0, [r0, #0x0] cmp r0, #0x22 blo _02014EB2 - bl ErrorHandling + bl GF_AssertFail _02014EB2: ldr r1, [r5, #0xc] add r0, r5, #0x0 @@ -472,7 +472,7 @@ _02014EE6: lsl r0, r0, #0x8 cmp r1, r0 blt _02014EA0 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x1 str r0, [r5, #0x1c] _02014EF8: @@ -489,7 +489,7 @@ FUN_02014F08: ; 0x02014F08 ldr r4, [r0, r1] cmp r2, #0x1 beq _02014F16 - bl ErrorHandling + bl GF_AssertFail _02014F16: add r0, r4, #0x0 pop {r4, pc} @@ -546,7 +546,7 @@ _02014F68: lsr r3, r1, #0x18 cmp r3, #0x4 blo _02014F3E - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} nop @@ -589,7 +589,7 @@ FUN_02014FA8: ; 0x02014FA8 ldrb r0, [r4, #0x0] cmp r0, #0x8 blo _02014FC4 - bl ErrorHandling + bl GF_AssertFail _02014FC4: pop {r4, pc} .balign 4 @@ -658,7 +658,7 @@ _0201501C: str r0, [r6, #0x0] pop {r3-r6, pc} _02015048: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4 pop {r3-r6, pc} @@ -700,7 +700,7 @@ _02015082: str r0, [r4, #0x0] b _020150A2 _0201509E: - bl ErrorHandling + bl GF_AssertFail _020150A2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] @@ -727,7 +727,7 @@ _020150B6: str r0, [r6, #0x0] pop {r3-r6, pc} _020150D4: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4 pop {r3-r6, pc} @@ -772,7 +772,7 @@ _02015112: str r0, [r6, #0x0] b _02015132 _0201512E: - bl ErrorHandling + bl GF_AssertFail _02015132: add r0, r5, #0x0 add r1, sp, #0x0 @@ -800,7 +800,7 @@ _0201514C: str r0, [sp, #0x4] b _0201516C _02015168: - bl ErrorHandling + bl GF_AssertFail _0201516C: ldr r0, [sp, #0x4] add r0, r7, r0 @@ -1071,7 +1071,7 @@ _02015334: str r0, [sp, #0x8] b _02015362 _0201535E: - bl ErrorHandling + bl GF_AssertFail _02015362: add r1, sp, #0x0 add r0, r5, #0x0 @@ -1081,7 +1081,7 @@ _02015362: ldrb r0, [r0, #0x1] cmp r0, #0x11 bls _02015378 - bl ErrorHandling + bl GF_AssertFail _02015378: add r0, sp, #0xc add r1, sp, #0x8 @@ -1119,7 +1119,7 @@ _020153A6: str r0, [sp, #0x4] b _020153CA _020153C6: - bl ErrorHandling + bl GF_AssertFail _020153CA: add r0, sp, #0x0 ldrb r1, [r0, #0x1] @@ -1160,7 +1160,7 @@ FUN_02015404: ; 0x02015404 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _02015412 - bl ErrorHandling + bl GF_AssertFail _02015412: ldr r0, [r4, #0xc] add r0, r0, #0x4 @@ -1269,7 +1269,7 @@ _020154C4: str r0, [sp, #0x4] b _020154E4 _020154E0: - bl ErrorHandling + bl GF_AssertFail _020154E4: add r0, r4, #0x0 add r1, sp, #0x0 @@ -1294,7 +1294,7 @@ _02015502: add sp, #0xc pop {r3-r4, pc} _02015514: - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r3-r4, pc} @@ -1387,7 +1387,7 @@ _020155B4: str r0, [r4, #0x64] pop {r3-r4, pc} _020155C6: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -1429,7 +1429,7 @@ _02015600: str r0, [r4, #0x64] pop {r3-r4, pc} _02015616: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -1486,7 +1486,7 @@ _0201566E: add r4, #0x78 b _0201567C _02015678: - bl ErrorHandling + bl GF_AssertFail _0201567C: add r1, sp, #0x0 add r0, r5, #0x0 @@ -1515,7 +1515,7 @@ _02015698: str r0, [sp, #0x4] b _020156B8 _020156B4: - bl ErrorHandling + bl GF_AssertFail _020156B8: add r0, r5, #0x0 add r1, sp, #0x0 @@ -1538,7 +1538,7 @@ _020156D0: str r0, [r4, #0x0] pop {r3-r5, pc} _020156E0: - bl ErrorHandling + bl GF_AssertFail add sp, #0x8 pop {r3-r5, pc} @@ -1626,7 +1626,7 @@ _02015778: _0201578A: cmp r0, #0x1c beq _02015792 - bl ErrorHandling + bl GF_AssertFail _02015792: pop {r4, pc} .balign 4 @@ -1673,7 +1673,7 @@ _020157D2: str r0, [r4, #0x6c] pop {r3-r4, pc} _020157E2: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -1771,7 +1771,7 @@ _02015886: _02015890: cmp r1, #0x0 bne _02015898 - bl ErrorHandling + bl GF_AssertFail _02015898: pop {r4, pc} nop @@ -1842,7 +1842,7 @@ _020158F6: str r0, [r3, #0x0] pop {r3, pc} _02015904: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 @@ -1915,7 +1915,7 @@ _02015972: str r0, [r1, #0x30] pop {r3, pc} _02015984: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 @@ -2080,7 +2080,7 @@ _02015AA6: str r1, [r0, #0x0] b _02015AC4 _02015AC0: - bl ErrorHandling + bl GF_AssertFail _02015AC4: add r0, r4, #0x0 add r0, #0x2c @@ -2183,7 +2183,7 @@ _02015B64: str r1, [r0, #0x0] b _02015B82 _02015B7E: - bl ErrorHandling + bl GF_AssertFail _02015B82: add r0, r4, #0x0 add r0, #0x2c @@ -2340,7 +2340,7 @@ _02015C90: str r0, [r4, #0x0] b _02015CA4 _02015CA0: - bl ErrorHandling + bl GF_AssertFail _02015CA4: add r0, r4, #0x0 add r0, #0x2c diff --git a/arm9/asm/unk_0201B1A8.s b/arm9/asm/unk_0201B1A8.s index 28308d534..359f9bfe4 100644 --- a/arm9/asm/unk_0201B1A8.s +++ b/arm9/asm/unk_0201B1A8.s @@ -94,7 +94,7 @@ FUN_0201B234: ; 0x0201B234 bl FUN_0201B1E4 cmp r4, #0x0 bne _0201B24A - bl ErrorHandling + bl GF_AssertFail _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 @@ -367,7 +367,7 @@ _0201B452: blx r1 cmp r0, #0x0 beq _0201B468 - bl ErrorHandling + bl GF_AssertFail _0201B468: add sp, #0x10 mov r0, #0x0 @@ -382,7 +382,7 @@ _0201B46E: blx r1 cmp r0, #0x0 beq _0201B484 - bl ErrorHandling + bl GF_AssertFail _0201B484: add sp, #0x10 mov r0, #0x0 @@ -397,7 +397,7 @@ _0201B48A: blx r1 cmp r0, #0x0 beq _0201B4A0 - bl ErrorHandling + bl GF_AssertFail _0201B4A0: add sp, #0x10 mov r0, #0x0 diff --git a/arm9/asm/unk_0201B4E8.s b/arm9/asm/unk_0201B4E8.s index 4309da513..42074f954 100644 --- a/arm9/asm/unk_0201B4E8.s +++ b/arm9/asm/unk_0201B4E8.s @@ -103,7 +103,7 @@ FUN_0201B580: ; 0x0201B580 add r5, r0, #0x0 add r4, r1, #0x0 bne _0201B58C - bl ErrorHandling + bl GF_AssertFail _0201B58C: add r1, r4, #0x0 add r1, #0x34 diff --git a/arm9/asm/unk_0201C24C.s b/arm9/asm/unk_0201C24C.s index 9e5cd227e..b0c55e930 100644 --- a/arm9/asm/unk_0201C24C.s +++ b/arm9/asm/unk_0201C24C.s @@ -18,7 +18,7 @@ FUN_0201C24C: ; 0x0201C24C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C25E - bl ErrorHandling + bl GF_AssertFail _0201C25E: add r0, r4, #0x0 mov r1, #0xc @@ -27,7 +27,7 @@ _0201C25E: cmp r0, #0x0 str r0, [r1, #0x0] bne _0201C272 - bl ErrorHandling + bl GF_AssertFail _0201C272: add r0, r4, #0x0 lsl r1, r5, #0x4 @@ -55,7 +55,7 @@ FUN_0201C29C: ; 0x0201C29C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201C2AA - bl ErrorHandling + bl GF_AssertFail _0201C2AA: ldr r0, _0201C2C4 ; =UNK_021C5934 ldr r0, [r0, #0x0] @@ -82,7 +82,7 @@ FUN_0201C2C8: ; 0x0201C2C8 add r7, r3, #0x0 cmp r0, #0x0 bne _0201C2DE - bl ErrorHandling + bl GF_AssertFail _0201C2DE: ldr r1, _0201C308 ; =UNK_021C5934 ldr r0, [r1, #0x0] @@ -94,7 +94,7 @@ _0201C2DE: ldr r0, [r0, #0x0] cmp r1, r0 blo _0201C2FA - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} _0201C2FA: diff --git a/arm9/asm/unk_0201CC08.s b/arm9/asm/unk_0201CC08.s index c35c4b238..15457b234 100644 --- a/arm9/asm/unk_0201CC08.s +++ b/arm9/asm/unk_0201CC08.s @@ -26,7 +26,7 @@ FUN_0201CC08: ; 0x0201CC08 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC16 - bl ErrorHandling + bl GF_AssertFail _0201CC16: ldr r0, _0201CC20 ; =UNK_021C5978 mov r1, #0x0 @@ -45,7 +45,7 @@ FUN_0201CC24: ; 0x0201CC24 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC36 - bl ErrorHandling + bl GF_AssertFail _0201CC36: cmp r4, #0x5 bhs _0201CC3E @@ -168,7 +168,7 @@ FUN_0201CD04: ; 0x0201CD04 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CD14 - bl ErrorHandling + bl GF_AssertFail _0201CD14: bl FUN_0201CCC0 add r4, r0, #0x0 @@ -199,7 +199,7 @@ FUN_0201CD38: ; 0x0201CD38 mov r5, #0x3 cmp r0, #0x0 beq _0201CD4E - bl ErrorHandling + bl GF_AssertFail _0201CD4E: ldr r0, _0201CD8C ; =UNK_021C5978 ldrh r0, [r0, #0x18] @@ -285,7 +285,7 @@ FUN_0201CDD0: ; 0x0201CDD0 bl FUN_0201CE2C cmp r0, #0x1 beq _0201CDF2 - bl ErrorHandling + bl GF_AssertFail _0201CDF2: ldr r0, _0201CDFC ; =UNK_021C5978 mov r1, #0x0 @@ -309,7 +309,7 @@ FUN_0201CE04: ; 0x0201CE04 bl FUN_0201CCC0 cmp r0, #0x1 beq _0201CE20 - bl ErrorHandling + bl GF_AssertFail _0201CE20: ldr r0, _0201CE28 ; =UNK_021C5978 mov r1, #0x1 diff --git a/arm9/asm/unk_0201D040.s b/arm9/asm/unk_0201D040.s index ab0c07c9a..b41b069c5 100644 --- a/arm9/asm/unk_0201D040.s +++ b/arm9/asm/unk_0201D040.s @@ -230,12 +230,12 @@ FUN_0201D1F8: ; 0x0201D1F8 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D20A - bl ErrorHandling + bl GF_AssertFail _0201D20A: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D21A - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201D21A: @@ -274,12 +274,12 @@ FUN_0201D250: ; 0x0201D250 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D262 - bl ErrorHandling + bl GF_AssertFail _0201D262: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D272 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201D272: @@ -348,13 +348,13 @@ FUN_0201D2DC: ; 0x0201D2DC add r4, r0, #0x0 add r5, r1, #0x0 bne _0201D2E8 - bl ErrorHandling + bl GF_AssertFail _0201D2E8: add r0, r4, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D2F6 - bl ErrorHandling + bl GF_AssertFail _0201D2F6: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -391,7 +391,7 @@ _0201D32C: bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D33A - bl ErrorHandling + bl GF_AssertFail _0201D33A: add r0, r4, #0x0 add r0, #0x3c @@ -465,7 +465,7 @@ FUN_0201D3B0: ; 0x0201D3B0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3BE - bl ErrorHandling + bl GF_AssertFail _0201D3BE: add r0, r4, #0x0 add r0, #0x3c @@ -488,7 +488,7 @@ FUN_0201D3D4: ; 0x0201D3D4 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3E6 - bl ErrorHandling + bl GF_AssertFail _0201D3E6: add r0, r4, #0x0 add r0, #0x3c @@ -553,12 +553,12 @@ FUN_0201D458: ; 0x0201D458 bl FUN_0201D6D8 add r4, r0, #0x0 bne _0201D468 - bl ErrorHandling + bl GF_AssertFail _0201D468: bl FUN_0201DAAC add r5, r0, #0x0 bne _0201D474 - bl ErrorHandling + bl GF_AssertFail _0201D474: add r0, r4, #0x0 add r0, #0x3c @@ -818,7 +818,7 @@ FUN_0201D658: ; 0x0201D658 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201D666 - bl ErrorHandling + bl GF_AssertFail _0201D666: ldr r1, _0201D670 ; =UNK_021C5994 mov r2, #0x0 @@ -836,7 +836,7 @@ FUN_0201D674: ; 0x0201D674 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D684 - bl ErrorHandling + bl GF_AssertFail _0201D684: ldr r0, _0201D68C ; =UNK_021C5994 str r4, [r0, #0x0] @@ -1145,7 +1145,7 @@ FUN_0201D86C: ; 0x0201D86C str r0, [r4, #0x0] cmp r0, r1 bne _0201D8B8 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} _0201D8B8: @@ -1179,7 +1179,7 @@ _0201D8C4: str r0, [r6, #0x0] cmp r0, r1 bne _0201D902 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} _0201D902: @@ -1613,7 +1613,7 @@ _0201DBD6: _0201DC12: cmp r2, #0x0 bne _0201DC1A - bl ErrorHandling + bl GF_AssertFail _0201DC1A: ldr r0, _0201DC38 ; =UNK_021C5994 mov r2, #0x0 @@ -1628,7 +1628,7 @@ _0201DC1A: _0201DC2E: cmp r2, #0x0 bne _0201DC36 - bl ErrorHandling + bl GF_AssertFail _0201DC36: pop {r3, pc} .balign 4 @@ -1783,7 +1783,7 @@ _0201DD32: ldrb r1, [r4, r1] tst r0, r1 beq _0201DD54 - bl ErrorHandling + bl GF_AssertFail _0201DD54: add r2, sp, #0x0 ldrb r3, [r2, #0x0] @@ -1901,7 +1901,7 @@ _0201DE0E: ldrb r1, [r4, r1] tst r0, r1 bne _0201DE2A - bl ErrorHandling + bl GF_AssertFail _0201DE2A: ldrb r0, [r7, #0x0] mov r1, #0x1 @@ -2077,7 +2077,7 @@ FUN_0201DF44: ; 0x0201DF44 add r3, r6, r5 cmp r3, r2 bls _0201DF6C - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 b _0201DF6E _0201DF6C: @@ -2093,7 +2093,7 @@ _0201DF6E: add r2, r3, r5 cmp r2, r1 bls _0201DF8A - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} _0201DF8A: diff --git a/arm9/asm/unk_0201E00C.s b/arm9/asm/unk_0201E00C.s index ae49b439e..d46fd5e04 100644 --- a/arm9/asm/unk_0201E00C.s +++ b/arm9/asm/unk_0201E00C.s @@ -134,7 +134,7 @@ FUN_0201E0E4: ; 0x0201E0E4 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E0F8 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201E0F8: @@ -168,7 +168,7 @@ FUN_0201E128: ; 0x0201E128 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E13C - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201E13C: @@ -200,13 +200,13 @@ FUN_0201E168: ; 0x0201E168 add r4, r0, #0x0 add r5, r1, #0x0 bne _0201E174 - bl ErrorHandling + bl GF_AssertFail _0201E174: add r0, r4, #0x0 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E182 - bl ErrorHandling + bl GF_AssertFail _0201E182: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -253,7 +253,7 @@ FUN_0201E1C8: ; 0x0201E1C8 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E1D6 - bl ErrorHandling + bl GF_AssertFail _0201E1D6: add r0, r4, #0x0 add r0, #0x2c @@ -310,7 +310,7 @@ FUN_0201E230: ; 0x0201E230 cmp r0, #0x0 bne _0201E244 bne _0201E240 - bl ErrorHandling + bl GF_AssertFail _0201E240: mov r0, #0x0 pop {r3, pc} @@ -335,7 +335,7 @@ FUN_0201E258: ; 0x0201E258 cmp r0, #0x0 bne _0201E26E bne _0201E26A - bl ErrorHandling + bl GF_AssertFail _0201E26A: mov r0, #0x0 pop {r4, pc} @@ -405,7 +405,7 @@ FUN_0201E2C4: ; 0x0201E2C4 bl FUN_0201E1B4 cmp r0, #0x1 bne _0201E2E0 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201E2E0: @@ -490,7 +490,7 @@ FUN_0201E36C: ; 0x0201E36C ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E37C - bl ErrorHandling + bl GF_AssertFail _0201E37C: ldr r1, [r5, #0x4] mov r0, #0x1 @@ -868,7 +868,7 @@ FUN_0201E5F4: ; 0x0201E5F4 add r2, r1, r2 cmp r2, r3 bls _0201E618 - bl ErrorHandling + bl GF_AssertFail bl FUN_0201E0B8 mov r0, #0x0 b _0201E61A @@ -885,7 +885,7 @@ _0201E61A: ldr r1, [sp, #0x10] cmp r2, r1 bls _0201E63A - bl ErrorHandling + bl GF_AssertFail bl FUN_0201E0B8 mov r0, #0x0 pop {r3-r5, pc} diff --git a/arm9/asm/unk_0201E7D8.s b/arm9/asm/unk_0201E7D8.s index 32f01a13a..43dcd2544 100644 --- a/arm9/asm/unk_0201E7D8.s +++ b/arm9/asm/unk_0201E7D8.s @@ -415,7 +415,7 @@ FUN_0201EABC: ; 0x0201EABC add r0, r7, #0x1 cmp r0, r5 ble _0201EADA - bl ErrorHandling + bl GF_AssertFail _0201EADA: ldr r0, [sp, #0x0] mov r1, #0x24 diff --git a/arm9/asm/unk_0201F06C.s b/arm9/asm/unk_0201F06C.s index 84b326347..03e1404ee 100644 --- a/arm9/asm/unk_0201F06C.s +++ b/arm9/asm/unk_0201F06C.s @@ -121,7 +121,7 @@ FUN_0201F100: ; 0x0201F100 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F112 - bl ErrorHandling + bl GF_AssertFail _0201F112: mov r1, #0xd4 add r0, r4, #0x0 @@ -219,7 +219,7 @@ FUN_0201F1B4: ; 0x0201F1B4 bl FUN_0201F2E4 add r4, r0, #0x0 bne _0201F1C8 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0201F1C8: @@ -280,7 +280,7 @@ FUN_0201F23C: ; 0x0201F23C push {r4, lr} add r4, r0, #0x0 bne _0201F24A - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4, pc} _0201F24A: @@ -315,7 +315,7 @@ FUN_0201F284: ; 0x0201F284 cmp r0, #0x0 bne _0201F294 bne _0201F290 - bl ErrorHandling + bl GF_AssertFail _0201F290: mov r0, #0x0 pop {r3-r5, pc} @@ -349,7 +349,7 @@ FUN_0201F2C0: ; 0x0201F2C0 push {r4, lr} add r4, r0, #0x0 bne _0201F2CA - bl ErrorHandling + bl GF_AssertFail _0201F2CA: ldrb r0, [r4, #0x3] cmp r0, #0x0 @@ -407,7 +407,7 @@ FUN_0201F318: ; 0x0201F318 sub sp, #0x24 add r5, r0, #0x0 bne _0201F324 - bl ErrorHandling + bl GF_AssertFail _0201F324: add r0, sp, #0x0 bl MTX_Identity33_ @@ -588,7 +588,7 @@ FUN_0201F454: ; 0x0201F454 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201F496 - bl ErrorHandling + bl GF_AssertFail b _0201F496 _0201F492: mov r0, #0x0 @@ -605,7 +605,7 @@ _0201F496: str r0, [r6, #0x0] cmp r0, #0x0 bne _0201F4B6 - bl ErrorHandling + bl GF_AssertFail b _0201F4B6 _0201F4B2: mov r0, #0x0 @@ -625,7 +625,7 @@ _0201F4B6: str r0, [r7, #0x0] cmp r0, #0x0 bne _0201F4DE - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r4-r7, pc} _0201F4DA: @@ -962,14 +962,14 @@ FUN_0201F744: ; 0x0201F744 push {r3-r5, lr} add r5, r0, #0x0 bne _0201F74E - bl ErrorHandling + bl GF_AssertFail _0201F74E: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F75C - bl ErrorHandling + bl GF_AssertFail _0201F75C: add r0, r5, #0x0 add r0, #0xa8 @@ -1034,7 +1034,7 @@ FUN_0201F7C8: ; 0x0201F7C8 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7D6 - bl ErrorHandling + bl GF_AssertFail _0201F7D6: ldmia r5!, {r0-r1} stmia r4!, {r0-r1} @@ -1047,7 +1047,7 @@ FUN_0201F7E0: ; 0x0201F7E0 push {r4, lr} add r4, r0, #0x0 bne _0201F7EA - bl ErrorHandling + bl GF_AssertFail _0201F7EA: add r0, r4, #0x0 pop {r4, pc} @@ -1060,7 +1060,7 @@ FUN_0201F7F0: ; 0x0201F7F0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7FE - bl ErrorHandling + bl GF_AssertFail _0201F7FE: ldmia r5!, {r0-r1} add r4, #0xc @@ -1077,7 +1077,7 @@ FUN_0201F80C: ; 0x0201F80C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F81A - bl ErrorHandling + bl GF_AssertFail _0201F81A: strb r4, [r5, #0x18] pop {r3-r5, pc} @@ -1088,7 +1088,7 @@ FUN_0201F820: ; 0x0201F820 push {r4, lr} add r4, r0, #0x0 bne _0201F82A - bl ErrorHandling + bl GF_AssertFail _0201F82A: ldrb r0, [r4, #0x18] pop {r4, pc} @@ -1101,7 +1101,7 @@ FUN_0201F830: ; 0x0201F830 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F83E - bl ErrorHandling + bl GF_AssertFail _0201F83E: add r5, #0xaa strh r4, [r5, #0x0] @@ -1112,7 +1112,7 @@ FUN_0201F844: ; 0x0201F844 push {r4, lr} add r4, r0, #0x0 bne _0201F84E - bl ErrorHandling + bl GF_AssertFail _0201F84E: add r4, #0xaa ldrh r0, [r4, #0x0] @@ -1125,7 +1125,7 @@ FUN_0201F854: ; 0x0201F854 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F862 - bl ErrorHandling + bl GF_AssertFail _0201F862: add r0, r5, #0x0 add r1, r4, #0x0 @@ -1139,7 +1139,7 @@ FUN_0201F86C: ; 0x0201F86C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F87A - bl ErrorHandling + bl GF_AssertFail _0201F87A: add r5, #0xac str r4, [r5, #0x0] @@ -1150,7 +1150,7 @@ FUN_0201F880: ; 0x0201F880 push {r4, lr} add r4, r0, #0x0 bne _0201F88A - bl ErrorHandling + bl GF_AssertFail _0201F88A: add r4, #0xac ldr r0, [r4, #0x0] @@ -1163,7 +1163,7 @@ FUN_0201F890: ; 0x0201F890 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F89E - bl ErrorHandling + bl GF_AssertFail _0201F89E: add r1, r5, #0x0 add r1, #0xaa @@ -1187,7 +1187,7 @@ FUN_0201F8C0: ; 0x0201F8C0 push {r4, lr} add r4, r0, #0x0 bne _0201F8CA - bl ErrorHandling + bl GF_AssertFail _0201F8CA: add r1, r4, #0x0 add r1, #0xaa @@ -1205,7 +1205,7 @@ FUN_0201F8E0: ; 0x0201F8E0 push {r4, lr} add r4, r0, #0x0 bne _0201F8EA - bl ErrorHandling + bl GF_AssertFail _0201F8EA: ldr r0, [r4, #0x7c] pop {r4, pc} @@ -1346,7 +1346,7 @@ _0201F9C4: ldr r0, _0201FA00 ; =0x0000FFFF cmp r1, r0 bls _0201F9EC - bl ErrorHandling + bl GF_AssertFail _0201F9EC: ldr r0, [r5, #0x14] add r4, r4, #0x1 @@ -1449,7 +1449,7 @@ _0201FA7C: ldr r0, _0201FAB8 ; =0x00001FFF cmp r1, r0 bls _0201FAA4 - bl ErrorHandling + bl GF_AssertFail _0201FAA4: ldrh r0, [r5, #0x1c] add r4, r4, #0x1 @@ -1765,12 +1765,12 @@ FUN_0201FCB0: ; 0x0201FCB0 push {r3-r5, lr} add r5, r0, #0x0 bne _0201FCBA - bl ErrorHandling + bl GF_AssertFail _0201FCBA: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0201FCC4 - bl ErrorHandling + bl GF_AssertFail _0201FCC4: mov r1, #0x49 ldr r0, [r5, #0x8] @@ -1778,7 +1778,7 @@ _0201FCC4: bl AllocFromHeap add r4, r0, #0x0 bne _0201FCD6 - bl ErrorHandling + bl GF_AssertFail _0201FCD6: add r0, r4, #0x0 bl FUN_0201FE44 @@ -1791,7 +1791,7 @@ _0201FCD6: str r0, [r4, #0x0] cmp r0, #0x0 bne _0201FCF4 - bl ErrorHandling + bl GF_AssertFail _0201FCF4: ldr r0, [r5, #0x0] str r0, [r4, #0x4] @@ -1802,7 +1802,7 @@ _0201FCF4: str r0, [r4, #0x8] cmp r0, #0x0 bne _0201FD0C - bl ErrorHandling + bl GF_AssertFail _0201FD0C: add r0, r4, #0x0 bl FUN_0202083C @@ -1927,7 +1927,7 @@ FUN_0201FDEC: ; 0x0201FDEC push {r3-r7, lr} add r5, r0, #0x0 bne _0201FDF6 - bl ErrorHandling + bl GF_AssertFail _0201FDF6: mov r0, #0x12 lsl r0, r0, #0x4 @@ -2296,11 +2296,11 @@ FUN_020200A0: ; 0x020200A0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200AE - bl ErrorHandling + bl GF_AssertFail _020200AE: cmp r4, #0x2 blt _020200B6 - bl ErrorHandling + bl GF_AssertFail _020200B6: add r5, #0x34 strb r4, [r5, #0x0] @@ -2313,11 +2313,11 @@ FUN_020200BC: ; 0x020200BC add r4, r1, #0x0 cmp r5, #0x0 bne _020200CA - bl ErrorHandling + bl GF_AssertFail _020200CA: cmp r4, #0x2 blt _020200D2 - bl ErrorHandling + bl GF_AssertFail _020200D2: add r5, #0x35 strb r4, [r5, #0x0] @@ -2330,7 +2330,7 @@ FUN_020200D8: ; 0x020200D8 add r4, r1, #0x0 cmp r5, #0x0 bne _020200E6 - bl ErrorHandling + bl GF_AssertFail _020200E6: str r4, [r5, #0x38] pop {r3-r5, pc} @@ -2343,7 +2343,7 @@ FUN_020200EC: ; 0x020200EC add r4, r1, #0x0 cmp r5, #0x0 bne _020200FA - bl ErrorHandling + bl GF_AssertFail _020200FA: add r5, #0x26 strb r4, [r5, #0x0] @@ -2356,7 +2356,7 @@ FUN_02020100: ; 0x02020100 add r4, r1, #0x0 cmp r5, #0x0 bne _0202010E - bl ErrorHandling + bl GF_AssertFail _0202010E: add r0, r5, #0x0 add r0, #0x27 @@ -2558,7 +2558,7 @@ FUN_02020248: ; 0x02020248 add r4, r1, #0x0 cmp r5, #0x0 bne _02020256 - bl ErrorHandling + bl GF_AssertFail _02020256: add r0, r5, #0x0 add r0, #0x29 @@ -2613,7 +2613,7 @@ FUN_020202A8: ; 0x020202A8 add r4, r1, #0x0 cmp r5, #0x0 bne _020202B6 - bl ErrorHandling + bl GF_AssertFail _020202B6: add r0, r5, #0x0 add r0, #0x2a @@ -2659,7 +2659,7 @@ FUN_02020300: ; 0x02020300 push {r4, lr} add r4, r0, #0x0 bne _0202030A - bl ErrorHandling + bl GF_AssertFail _0202030A: add r4, #0x2a ldrb r0, [r4, #0x0] @@ -2751,7 +2751,7 @@ FUN_02020388: ; 0x02020388 push {r4, lr} add r4, r0, #0x0 bne _02020392 - bl ErrorHandling + bl GF_AssertFail _02020392: ldr r0, [r4, #0x50] pop {r4, pc} @@ -2764,7 +2764,7 @@ FUN_02020398: ; 0x02020398 add r5, r1, #0x0 cmp r4, #0x0 bne _020203A6 - bl ErrorHandling + bl GF_AssertFail _020203A6: str r5, [r4, #0x30] cmp r5, #0x0 diff --git a/arm9/asm/unk_02020C44.s b/arm9/asm/unk_02020C44.s index 4c6cb725f..235543ee0 100644 --- a/arm9/asm/unk_02020C44.s +++ b/arm9/asm/unk_02020C44.s @@ -18,7 +18,7 @@ FUN_02020C44: ; 0x02020C44 bl AllocFromHeap add r6, r0, #0x0 bne _02020C5A - bl ErrorHandling + bl GF_AssertFail _02020C5A: add r0, r4, #0x0 lsl r1, r7, #0x3 @@ -26,7 +26,7 @@ _02020C5A: str r0, [r6, #0x0] cmp r0, #0x0 bne _02020C6C - bl ErrorHandling + bl GF_AssertFail _02020C6C: mov r4, #0x0 cmp r7, #0x0 @@ -53,7 +53,7 @@ FUN_02020C90: ; 0x02020C90 push {r4, lr} add r4, r0, #0x0 bne _02020C9A - bl ErrorHandling + bl GF_AssertFail _02020C9A: add r0, r4, #0x0 bl FUN_02020D9C @@ -71,7 +71,7 @@ FUN_02020CB0: ; 0x02020CB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020CBE - bl ErrorHandling + bl GF_AssertFail _02020CBE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -93,20 +93,20 @@ FUN_02020CD4: ; 0x02020CD4 add r6, r2, #0x0 cmp r5, #0x0 bne _02020CE4 - bl ErrorHandling + bl GF_AssertFail _02020CE4: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020CF2 - bl ErrorHandling + bl GF_AssertFail _02020CF2: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D02 - bl ErrorHandling + bl GF_AssertFail _02020D02: str r7, [r4, #0x4] str r6, [r4, #0x0] @@ -125,24 +125,24 @@ FUN_02020D10: ; 0x02020D10 str r3, [sp, #0x0] cmp r5, #0x0 bne _02020D22 - bl ErrorHandling + bl GF_AssertFail _02020D22: cmp r6, #0x0 bne _02020D2A - bl ErrorHandling + bl GF_AssertFail _02020D2A: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020D38 - bl ErrorHandling + bl GF_AssertFail _02020D38: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D48 - bl ErrorHandling + bl GF_AssertFail _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 @@ -150,7 +150,7 @@ _02020D48: str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A - bl ErrorHandling + bl GF_AssertFail _02020D5A: str r7, [r4, #0x0] ldr r0, [r5, #0x8] @@ -167,11 +167,11 @@ FUN_02020D68: ; 0x02020D68 add r4, r1, #0x0 cmp r5, #0x0 bne _02020D76 - bl ErrorHandling + bl GF_AssertFail _02020D76: cmp r4, #0x0 bne _02020D7E - bl ErrorHandling + bl GF_AssertFail _02020D7E: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -194,12 +194,12 @@ FUN_02020D9C: ; 0x02020D9C push {r3-r7, lr} add r5, r0, #0x0 bne _02020DA6 - bl ErrorHandling + bl GF_AssertFail _02020DA6: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02020DB0 - bl ErrorHandling + bl GF_AssertFail _02020DB0: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -231,7 +231,7 @@ FUN_02020DD8: ; 0x02020DD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020DE6 - bl ErrorHandling + bl GF_AssertFail _02020DE6: ldr r6, [r5, #0x4] mov r1, #0x0 @@ -261,7 +261,7 @@ FUN_02020E0C: ; 0x02020E0C push {r4, lr} add r4, r0, #0x0 bne _02020E16 - bl ErrorHandling + bl GF_AssertFail _02020E16: ldr r0, [r4, #0x4] pop {r4, pc} @@ -274,7 +274,7 @@ FUN_02020E1C: ; 0x02020E1C add r4, r1, #0x0 cmp r5, #0x0 bne _02020E2A - bl ErrorHandling + bl GF_AssertFail _02020E2A: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -289,7 +289,7 @@ FUN_02020E38: ; 0x02020E38 push {r4, lr} add r4, r0, #0x0 bne _02020E42 - bl ErrorHandling + bl GF_AssertFail _02020E42: ldr r0, [r4, #0x0] pop {r4, pc} @@ -300,7 +300,7 @@ FUN_02020E48: ; 0x02020E48 push {r3-r5, lr} add r4, r0, #0x0 bne _02020E52 - bl ErrorHandling + bl GF_AssertFail _02020E52: ldr r5, [r4, #0x4] mov r2, #0x0 @@ -330,7 +330,7 @@ FUN_02020E78: ; 0x02020E78 push {r4, lr} add r4, r0, #0x0 bne _02020E82 - bl ErrorHandling + bl GF_AssertFail _02020E82: mov r0, #0x0 mvn r0, r0 @@ -380,7 +380,7 @@ FUN_02020ED4: ; 0x02020ED4 push {r4, lr} add r4, r0, #0x0 bne _02020EDE - bl ErrorHandling + bl GF_AssertFail _02020EDE: add r0, r4, #0x0 bl FUN_02021010 @@ -399,7 +399,7 @@ FUN_02020EF8: ; 0x02020EF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F06 - bl ErrorHandling + bl GF_AssertFail _02020F06: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -415,7 +415,7 @@ FUN_02020F10: ; 0x02020F10 str r2, [sp, #0x0] cmp r5, #0x0 bne _02020F22 - bl ErrorHandling + bl GF_AssertFail _02020F22: add r0, r5, #0x0 bl FUN_020211DC @@ -462,11 +462,11 @@ FUN_02020F6C: ; 0x02020F6C add r4, r1, #0x0 cmp r5, #0x0 bne _02020F7A - bl ErrorHandling + bl GF_AssertFail _02020F7A: cmp r4, #0x0 bne _02020F82 - bl ErrorHandling + bl GF_AssertFail _02020F82: ldrh r0, [r4, #0x16] cmp r0, #0x1 @@ -493,7 +493,7 @@ _02020FA4: blx r1 cmp r0, #0x0 beq _02020FB8 - bl ErrorHandling + bl GF_AssertFail _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 @@ -503,7 +503,7 @@ _02020FB8: blx r1 cmp r0, #0x0 beq _02020FCC - bl ErrorHandling + bl GF_AssertFail _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 @@ -513,7 +513,7 @@ _02020FCC: blx r1 cmp r0, #0x0 beq _02020FE0 - bl ErrorHandling + bl GF_AssertFail _02020FE0: add r0, r4, #0x0 bl FUN_0202120C @@ -529,7 +529,7 @@ FUN_02020FF0: ; 0x02020FF0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020FFE - bl ErrorHandling + bl GF_AssertFail _02020FFE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -544,12 +544,12 @@ FUN_02021010: ; 0x02021010 push {r4-r6, lr} add r5, r0, #0x0 bne _0202101A - bl ErrorHandling + bl GF_AssertFail _0202101A: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02021024 - bl ErrorHandling + bl GF_AssertFail _02021024: ldr r0, [r5, #0x0] mov r6, #0x0 @@ -583,7 +583,7 @@ FUN_02021050: ; 0x02021050 add r7, r1, #0x0 cmp r6, #0x0 bne _0202105E - bl ErrorHandling + bl GF_AssertFail _0202105E: ldr r0, [r6, #0x0] mov r4, #0x0 @@ -622,7 +622,7 @@ FUN_02021098: ; 0x02021098 push {r4, lr} add r4, r0, #0x0 bne _020210A2 - bl ErrorHandling + bl GF_AssertFail _020210A2: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -634,7 +634,7 @@ FUN_020210AC: ; 0x020210AC push {r4, lr} add r4, r0, #0x0 bne _020210B6 - bl ErrorHandling + bl GF_AssertFail _020210B6: add r0, r4, #0x0 bl FUN_02021220 @@ -646,17 +646,17 @@ FUN_020210C0: ; 0x020210C0 push {r4, lr} add r4, r0, #0x0 bne _020210CA - bl ErrorHandling + bl GF_AssertFail _020210CA: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _020210D4 - bl ErrorHandling + bl GF_AssertFail _020210D4: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _020210E0 - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} _020210E0: add r0, r4, #0x0 @@ -673,7 +673,7 @@ FUN_020210F0: ; 0x020210F0 add r4, r1, #0x0 cmp r5, #0x0 bne _020210FE - bl ErrorHandling + bl GF_AssertFail _020210FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -686,18 +686,18 @@ FUN_0202110C: ; 0x0202110C push {r4, lr} add r4, r0, #0x0 bne _02021116 - bl ErrorHandling + bl GF_AssertFail _02021116: ldrh r0, [r4, #0x16] cmp r0, #0x0 bne _02021122 - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} _02021122: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _0202112E - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} _0202112E: add r0, r4, #0x0 @@ -724,7 +724,7 @@ FUN_02021158: ; 0x02021158 add r4, r1, #0x0 cmp r5, #0x0 bne _02021166 - bl ErrorHandling + bl GF_AssertFail _02021166: add r0, r5, #0x0 add r1, r4, #0x0 @@ -737,17 +737,17 @@ FUN_02021174: ; 0x02021174 push {r4, lr} add r4, r0, #0x0 bne _0202117E - bl ErrorHandling + bl GF_AssertFail _0202117E: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _02021188 - bl ErrorHandling + bl GF_AssertFail _02021188: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02021194 - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} _02021194: add r0, r4, #0x0 @@ -766,7 +766,7 @@ FUN_020211AC: ; 0x020211AC push {r4, lr} add r4, r0, #0x0 bne _020211B6 - bl ErrorHandling + bl GF_AssertFail _020211B6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -777,7 +777,7 @@ FUN_020211BC: ; 0x020211BC push {r4, lr} add r4, r0, #0x0 bne _020211C6 - bl ErrorHandling + bl GF_AssertFail _020211C6: ldr r0, [r4, #0x8] pop {r4, pc} @@ -788,7 +788,7 @@ FUN_020211CC: ; 0x020211CC push {r4, lr} add r4, r0, #0x0 bne _020211D6 - bl ErrorHandling + bl GF_AssertFail _020211D6: ldr r0, [r4, #0xc] pop {r4, pc} @@ -989,7 +989,7 @@ FUN_02021334: ; 0x02021334 bl NNS_G3dGetTex add r4, r0, #0x0 bne _02021344 - bl ErrorHandling + bl GF_AssertFail _02021344: ldr r0, [r4, #0x14] add r0, r4, r0 diff --git a/arm9/asm/unk_02021590.s b/arm9/asm/unk_02021590.s index 67d46c657..ee27fc884 100644 --- a/arm9/asm/unk_02021590.s +++ b/arm9/asm/unk_02021590.s @@ -108,7 +108,7 @@ _02021638: ldr r0, [r5, #0x60] cmp r0, #0x0 bne _02021642 - bl ErrorHandling + bl GF_AssertFail _02021642: ldr r0, [sp, #0x18] ldr r1, [r5, #0x64] @@ -135,7 +135,7 @@ _02021660: cmp r0, #0x2 bls _02021678 _02021674: - bl ErrorHandling + bl GF_AssertFail _02021678: add r0, r5, #0x0 add r0, #0x6a diff --git a/arm9/asm/unk_02023AC4.s b/arm9/asm/unk_02023AC4.s index 31d23446f..daa3a9a3b 100644 --- a/arm9/asm/unk_02023AC4.s +++ b/arm9/asm/unk_02023AC4.s @@ -171,7 +171,7 @@ FUN_02023BA4: ; 0x02023BA4 add r4, r0, #0x0 cmp r5, #0x1 blt _02023BB2 - bl ErrorHandling + bl GF_AssertFail _02023BB2: add r0, r4, #0x0 mov r1, #0xd diff --git a/arm9/asm/unk_020250A4.s b/arm9/asm/unk_020250A4.s index 76e0e8ce8..60cd41653 100644 --- a/arm9/asm/unk_020250A4.s +++ b/arm9/asm/unk_020250A4.s @@ -391,7 +391,7 @@ _0202531E: ; jump table (using 16-bit offset) .short _02025336 - _0202531E - 2; case 4 .short _0202534E - _0202531E - 2; case 5 _0202532A: - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} _02025330: add r0, r2, #0x1 diff --git a/arm9/asm/unk_02025954.s b/arm9/asm/unk_02025954.s index 8cbf5483a..40c1b236e 100644 --- a/arm9/asm/unk_02025954.s +++ b/arm9/asm/unk_02025954.s @@ -482,7 +482,7 @@ _02025C50: ldr r0, [sp, #0x0] cmp r0, #0x5 blt _02025C72 - bl ErrorHandling + bl GF_AssertFail _02025C72: add r0, r6, #0x0 bl PlayerProfile_GetNamePtr @@ -593,11 +593,11 @@ FUN_02025D48: ; 0x02025D48 add r4, r0, #0x0 cmp r4, #0xb bge _02025D54 - bl ErrorHandling + bl GF_AssertFail _02025D54: cmp r4, #0x3c blt _02025D5C - bl ErrorHandling + bl GF_AssertFail _02025D5C: sub r4, #0xb ldr r0, _02025D68 ; =UNK_02105C74 @@ -685,7 +685,7 @@ FUN_02025DD4: ; 0x02025DD4 bl FUN_02025F0C cmp r0, #0x0 beq _02025DE6 - bl ErrorHandling + bl GF_AssertFail _02025DE6: mov r0, #0x81 add r1, r5, r4 @@ -827,11 +827,11 @@ FUN_02025EDC: ; 0x02025EDC add r4, r1, #0x0 cmp r6, #0x1 bge _02025EEC - bl ErrorHandling + bl GF_AssertFail _02025EEC: cmp r6, #0xf ble _02025EF4 - bl ErrorHandling + bl GF_AssertFail _02025EF4: sub r0, r6, #0x1 add r1, r5, r0 @@ -1458,7 +1458,7 @@ FUN_0202630C: ; 0x0202630C add r6, r3, #0x0 cmp r4, #0x40 blt _0202631E - bl ErrorHandling + bl GF_AssertFail _0202631E: ldr r0, _02026350 ; =0x0000010F add r1, r5, r4 @@ -1494,7 +1494,7 @@ FUN_02026354: ; 0x02026354 add r5, r0, #0x0 cmp r4, #0x40 blt _02026362 - bl ErrorHandling + bl GF_AssertFail _02026362: ldr r0, _0202636C ; =0x0000010F add r1, r5, r4 @@ -1510,7 +1510,7 @@ FUN_02026370: ; 0x02026370 add r5, r0, #0x0 cmp r4, #0x40 blt _0202637E - bl ErrorHandling + bl GF_AssertFail _0202637E: lsl r0, r4, #0x1 add r0, r4, r0 @@ -1535,7 +1535,7 @@ FUN_0202639C: ; 0x0202639C add r5, r0, #0x0 cmp r4, #0x40 blt _020263AA - bl ErrorHandling + bl GF_AssertFail _020263AA: lsl r0, r4, #0x1 add r0, r4, r0 @@ -1560,7 +1560,7 @@ FUN_020263C8: ; 0x020263C8 add r5, r0, #0x0 cmp r4, #0x40 blt _020263D6 - bl ErrorHandling + bl GF_AssertFail _020263D6: ldr r0, _020263F0 ; =0x0000010F mov r1, #0x0 @@ -1586,7 +1586,7 @@ FUN_020263F4: ; 0x020263F4 add r6, r3, #0x0 cmp r4, #0x10 blt _02026406 - bl ErrorHandling + bl GF_AssertFail _02026406: lsl r2, r4, #0x1 ldr r1, _02026440 ; =0x0000050C @@ -1682,7 +1682,7 @@ FUN_0202649C: ; 0x0202649C add r7, r3, #0x0 cmp r4, #0x64 blt _020264AE - bl ErrorHandling + bl GF_AssertFail _020264AE: ldr r1, _020264E8 ; =0x0000055C add r0, r5, r4 @@ -1840,7 +1840,7 @@ FUN_020265B8: ; 0x020265B8 add r5, r0, #0x0 cmp r4, #0xff blt _020265C6 - bl ErrorHandling + bl GF_AssertFail _020265C6: ldr r0, _020265DC ; =0x0000020F mov r2, #0x3 @@ -2059,20 +2059,20 @@ FUN_0202671C: ; 0x0202671C add r6, r3, #0x0 cmp r4, #0x20 blt _0202672E - bl ErrorHandling + bl GF_AssertFail _0202672E: cmp r6, #0x20 blt _02026736 - bl ErrorHandling + bl GF_AssertFail _02026736: ldr r0, [sp, #0x18] cmp r0, #0x20 blt _02026740 - bl ErrorHandling + bl GF_AssertFail _02026740: cmp r5, #0x0 bne _02026748 - bl ErrorHandling + bl GF_AssertFail _02026748: cmp r4, #0x0 beq _02026774 @@ -2154,7 +2154,7 @@ FUN_020267C4: ; 0x020267C4 add r4, r0, #0x0 cmp r5, #0x20 blt _020267D2 - bl ErrorHandling + bl GF_AssertFail _020267D2: cmp r5, #0x0 bne _020267DE @@ -2197,7 +2197,7 @@ FUN_02026810: ; 0x02026810 add r4, r0, #0x0 cmp r5, #0x20 blt _0202681E - bl ErrorHandling + bl GF_AssertFail _0202681E: cmp r5, #0x0 bne _02026826 @@ -2226,7 +2226,7 @@ FUN_02026840: ; 0x02026840 add r4, r0, #0x0 cmp r5, #0x20 blt _0202684E - bl ErrorHandling + bl GF_AssertFail _0202684E: cmp r5, #0x0 bne _02026856 diff --git a/arm9/asm/unk_02026CD0.s b/arm9/asm/unk_02026CD0.s index 1cfea1361..28a1f682c 100644 --- a/arm9/asm/unk_02026CD0.s +++ b/arm9/asm/unk_02026CD0.s @@ -72,20 +72,20 @@ FUN_02026D34: ; 0x02026D34 lsl r0, r0, #0x8 cmp r1, r0 blt _02026D5E - bl ErrorHandling + bl GF_AssertFail _02026D5E: mov r0, #0x1 ldr r1, [sp, #0x8] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D6C - bl ErrorHandling + bl GF_AssertFail _02026D6C: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _02026D78 - bl ErrorHandling + bl GF_AssertFail _02026D78: lsl r0, r4, #0x18 asr r0, r0, #0x18 @@ -138,7 +138,7 @@ FUN_02026DC4: ; 0x02026DC4 add r6, r1, #0x0 cmp r4, #0x3d blo _02026DD4 - bl ErrorHandling + bl GF_AssertFail _02026DD4: lsr r2, r4, #0x1f lsl r1, r4, #0x1d @@ -174,7 +174,7 @@ FUN_02026E08: ; 0x02026E08 add r5, r0, #0x0 cmp r4, #0x3d blo _02026E16 - bl ErrorHandling + bl GF_AssertFail _02026E16: lsr r3, r4, #0x1f lsl r2, r4, #0x1d @@ -211,7 +211,7 @@ FUN_02026E48: ; 0x02026E48 add r6, r2, #0x0 cmp r4, #0x2 blo _02026E58 - bl ErrorHandling + bl GF_AssertFail _02026E58: lsr r2, r6, #0x1f lsl r1, r6, #0x1b @@ -269,7 +269,7 @@ FUN_02026EB0: ; 0x02026EB0 add r6, r2, #0x0 cmp r4, #0x12 bls _02026EC0 - bl ErrorHandling + bl GF_AssertFail _02026EC0: lsr r2, r6, #0x1f lsl r1, r6, #0x1e @@ -459,7 +459,7 @@ FUN_02027008: ; 0x02027008 add r5, r0, #0x0 cmp r6, #0xb blt _02027016 - bl ErrorHandling + bl GF_AssertFail _02027016: mov r0, #0x74 add r4, r6, #0x0 @@ -479,7 +479,7 @@ _0202702E: _02027030: cmp r0, #0x0 bne _02027038 - bl ErrorHandling + bl GF_AssertFail _02027038: add r0, r5, r4 pop {r4-r6, pc} @@ -494,7 +494,7 @@ FUN_02027044: ; 0x02027044 add r5, r0, #0x0 cmp r6, #0x5 blt _02027052 - bl ErrorHandling + bl GF_AssertFail _02027052: mov r0, #0x98 add r4, r6, #0x0 @@ -516,7 +516,7 @@ _0202706E: _02027070: cmp r0, #0x0 bne _02027078 - bl ErrorHandling + bl GF_AssertFail _02027078: ldr r0, _02027080 ; =0x000004FC add r0, r5, r0 @@ -542,7 +542,7 @@ FUN_02027098: ; 0x02027098 add r5, r0, #0x0 cmp r4, #0xb blt _020270A6 - bl ErrorHandling + bl GF_AssertFail _020270A6: mov r0, #0x74 mul r0, r4 @@ -558,7 +558,7 @@ FUN_020270B4: ; 0x020270B4 add r5, r0, #0x0 cmp r4, #0x5 blt _020270C2 - bl ErrorHandling + bl GF_AssertFail _020270C2: ldr r0, _020270D4 ; =0x000004FC add r1, r5, r0 @@ -614,7 +614,7 @@ FUN_02027114: ; 0x02027114 add r4, r0, #0x0 cmp r5, #0x64 blo _02027122 - bl ErrorHandling + bl GF_AssertFail _02027122: cmp r5, #0x3d bhs _02027132 @@ -625,7 +625,7 @@ _02027122: pop {r3-r5, pc} _02027132: bhs _02027138 - bl ErrorHandling + bl GF_AssertFail _02027138: sub r5, #0x3d lsl r0, r5, #0x18 @@ -644,7 +644,7 @@ FUN_0202714C: ; 0x0202714C add r5, r0, #0x0 cmp r4, #0x12 blo _0202715A - bl ErrorHandling + bl GF_AssertFail _0202715A: add r5, #0x28 lsl r1, r4, #0x18 @@ -698,7 +698,7 @@ FUN_020271A4: ; 0x020271A4 add r6, r2, #0x0 cmp r4, #0x64 blo _020271B4 - bl ErrorHandling + bl GF_AssertFail _020271B4: cmp r4, #0x3d bhs _020271DA @@ -733,7 +733,7 @@ _020271DA: _020271F2: cmp r4, #0x3d bhs _020271FA - bl ErrorHandling + bl GF_AssertFail _020271FA: sub r4, #0x3d lsl r0, r4, #0x18 @@ -754,7 +754,7 @@ FUN_02027210: ; 0x02027210 add r6, r2, #0x0 cmp r4, #0x64 blo _02027220 - bl ErrorHandling + bl GF_AssertFail _02027220: cmp r4, #0x3d bhs _02027248 @@ -778,7 +778,7 @@ _0202723C: pop {r4-r6, pc} _02027248: bhs _0202724E - bl ErrorHandling + bl GF_AssertFail _0202724E: sub r4, #0x3d lsl r0, r4, #0x18 @@ -798,7 +798,7 @@ FUN_02027264: ; 0x02027264 add r5, r0, #0x0 cmp r4, #0x12 blo _02027272 - bl ErrorHandling + bl GF_AssertFail _02027272: add r0, r5, #0x0 lsl r1, r4, #0x18 @@ -839,7 +839,7 @@ _020272B2: _020272B4: cmp r0, #0x0 bne _020272BC - bl ErrorHandling + bl GF_AssertFail _020272BC: ldr r1, [r4, #0x0] ldr r0, _020272D0 ; =0x00002345 @@ -873,7 +873,7 @@ _020272EA: _020272EC: cmp r0, #0x0 bne _020272F4 - bl ErrorHandling + bl GF_AssertFail _020272F4: ldr r0, _02027308 ; =0x00002345 str r0, [r4, #0x0] @@ -906,7 +906,7 @@ _02027326: _02027328: cmp r0, #0x0 bne _02027330 - bl ErrorHandling + bl GF_AssertFail _02027330: add r0, r4, #0x0 mov r1, #0x0 @@ -940,7 +940,7 @@ _02027362: _02027364: cmp r0, #0x0 bne _0202736C - bl ErrorHandling + bl GF_AssertFail _0202736C: add r0, r5, #0x4 add r1, r4, #0x0 @@ -973,7 +973,7 @@ FUN_02027380: ; 0x02027380 str r0, [sp, #0x8] cmp r6, #0xa blt _020273B0 - bl ErrorHandling + bl GF_AssertFail _020273B0: add r1, sp, #0xc mov r0, #0x4 @@ -981,7 +981,7 @@ _020273B0: add r0, #0xfc cmp r1, r0 blt _020273C0 - bl ErrorHandling + bl GF_AssertFail _020273C0: add r1, sp, #0xc mov r0, #0x6 @@ -989,14 +989,14 @@ _020273C0: add r0, #0xfa cmp r7, r0 blt _020273D0 - bl ErrorHandling + bl GF_AssertFail _020273D0: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _020273DE - bl ErrorHandling + bl GF_AssertFail _020273DE: mov r0, #0x1 lsl r0, r6 @@ -1004,7 +1004,7 @@ _020273DE: str r0, [sp, #0x4] tst r0, r1 beq _020273EE - bl ErrorHandling + bl GF_AssertFail _020273EE: ldr r1, [r5, #0x0] ldr r0, _02027440 ; =0x00001234 @@ -1021,7 +1021,7 @@ _02027400: _02027402: cmp r0, #0x0 bne _0202740A - bl ErrorHandling + bl GF_AssertFail _0202740A: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -1072,7 +1072,7 @@ _02027460: _02027462: cmp r0, #0x0 bne _0202746A - bl ErrorHandling + bl GF_AssertFail _0202746A: add r5, #0x70 strb r4, [r5, #0x0] @@ -1101,7 +1101,7 @@ _02027490: _02027492: cmp r0, #0x0 bne _0202749A - bl ErrorHandling + bl GF_AssertFail _0202749A: add r0, r5, #0x0 add r0, #0x40 @@ -1136,7 +1136,7 @@ _020274D0: _020274D2: cmp r0, #0x0 bne _020274DA - bl ErrorHandling + bl GF_AssertFail _020274DA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -1168,7 +1168,7 @@ _0202750A: _0202750C: cmp r0, #0x0 bne _02027514 - bl ErrorHandling + bl GF_AssertFail _02027514: add r0, r5, #0x4 add r1, r4, #0x0 @@ -1186,7 +1186,7 @@ FUN_02027528: ; 0x02027528 add r5, r0, #0x0 cmp r4, #0xa blt _02027536 - bl ErrorHandling + bl GF_AssertFail _02027536: ldr r1, [r5, #0x0] ldr r0, _0202755C ; =0x00001234 @@ -1203,7 +1203,7 @@ _02027548: _0202754A: cmp r0, #0x0 bne _02027552 - bl ErrorHandling + bl GF_AssertFail _02027552: mov r0, #0x1 ldr r1, [r5, #0x3c] @@ -1233,7 +1233,7 @@ _0202757A: _0202757C: cmp r0, #0x0 bne _02027584 - bl ErrorHandling + bl GF_AssertFail _02027584: add r0, r4, #0x4 pop {r4, pc} @@ -1248,14 +1248,14 @@ FUN_02027590: ; 0x02027590 add r5, r0, #0x0 cmp r4, #0xa blt _0202759E - bl ErrorHandling + bl GF_AssertFail _0202759E: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 tst r0, r1 bne _020275AC - bl ErrorHandling + bl GF_AssertFail _020275AC: ldr r1, [r5, #0x0] ldr r0, _020275D0 ; =0x00001234 @@ -1272,7 +1272,7 @@ _020275BE: _020275C0: cmp r0, #0x0 bne _020275C8 - bl ErrorHandling + bl GF_AssertFail _020275C8: add r5, #0x48 lsl r0, r4, #0x2 @@ -1301,7 +1301,7 @@ _020275EE: _020275F0: cmp r0, #0x0 bne _020275F8 - bl ErrorHandling + bl GF_AssertFail _020275F8: add r0, r4, #0x4 bl FUN_02027C84 @@ -1330,7 +1330,7 @@ _02027620: _02027622: cmp r0, #0x0 bne _0202762A - bl ErrorHandling + bl GF_AssertFail _0202762A: add r0, r5, #0x4 add r1, r4, #0x0 @@ -1359,7 +1359,7 @@ _02027652: _02027654: cmp r0, #0x0 bne _0202765C - bl ErrorHandling + bl GF_AssertFail _0202765C: add r0, r4, #0x4 bl FUN_02027C98 @@ -1387,7 +1387,7 @@ _02027682: _02027684: cmp r0, #0x0 bne _0202768C - bl ErrorHandling + bl GF_AssertFail _0202768C: add r4, #0x70 ldrb r0, [r4, #0x0] @@ -1424,7 +1424,7 @@ _020276BE: _020276C0: cmp r0, #0x0 bne _020276C8 - bl ErrorHandling + bl GF_AssertFail _020276C8: add r4, #0x71 ldrb r0, [r4, #0x0] @@ -1452,7 +1452,7 @@ _020276EE: _020276F0: cmp r0, #0x0 bne _020276F8 - bl ErrorHandling + bl GF_AssertFail _020276F8: ldr r1, [r4, #0x0] ldr r0, _0202770C ; =0x00002345 @@ -1486,7 +1486,7 @@ _02027726: _02027728: cmp r0, #0x0 bne _02027730 - bl ErrorHandling + bl GF_AssertFail _02027730: ldr r0, _0202773C ; =0x00002345 str r0, [r4, #0x0] @@ -1514,7 +1514,7 @@ _02027756: _02027758: cmp r0, #0x0 bne _02027760 - bl ErrorHandling + bl GF_AssertFail _02027760: add r0, r4, #0x0 mov r1, #0x0 @@ -1548,7 +1548,7 @@ _02027792: _02027794: cmp r0, #0x0 bne _0202779C - bl ErrorHandling + bl GF_AssertFail _0202779C: add r5, #0x8 add r0, r5, #0x0 @@ -1582,7 +1582,7 @@ FUN_020277B4: ; 0x020277B4 str r0, [sp, #0x8] cmp r6, #0x14 blt _020277E4 - bl ErrorHandling + bl GF_AssertFail _020277E4: add r1, sp, #0xc mov r0, #0x4 @@ -1590,7 +1590,7 @@ _020277E4: add r0, #0xfc cmp r1, r0 blt _020277F4 - bl ErrorHandling + bl GF_AssertFail _020277F4: add r1, sp, #0xc mov r0, #0x6 @@ -1598,14 +1598,14 @@ _020277F4: add r0, #0xfa cmp r7, r0 blt _02027804 - bl ErrorHandling + bl GF_AssertFail _02027804: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _02027812 - bl ErrorHandling + bl GF_AssertFail _02027812: mov r0, #0x1 lsl r0, r6 @@ -1613,7 +1613,7 @@ _02027812: str r0, [sp, #0x4] tst r0, r1 beq _02027822 - bl ErrorHandling + bl GF_AssertFail _02027822: ldr r1, [r5, #0x0] ldr r0, _02027874 ; =0x00001234 @@ -1630,7 +1630,7 @@ _02027834: _02027836: cmp r0, #0x0 bne _0202783E - bl ErrorHandling + bl GF_AssertFail _0202783E: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -1681,7 +1681,7 @@ _02027894: _02027896: cmp r0, #0x0 bne _0202789E - bl ErrorHandling + bl GF_AssertFail _0202789E: add r5, #0x94 strb r4, [r5, #0x0] @@ -1710,7 +1710,7 @@ _020278C4: _020278C6: cmp r0, #0x0 bne _020278CE - bl ErrorHandling + bl GF_AssertFail _020278CE: str r4, [r5, #0x4] pop {r3-r5, pc} @@ -1738,7 +1738,7 @@ _020278F4: _020278F6: cmp r0, #0x0 bne _020278FE - bl ErrorHandling + bl GF_AssertFail _020278FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -1771,7 +1771,7 @@ _02027930: _02027932: cmp r0, #0x0 bne _0202793A - bl ErrorHandling + bl GF_AssertFail _0202793A: add r1, sp, #0x4 add r0, r4, #0x0 @@ -1803,18 +1803,18 @@ FUN_02027964: ; 0x02027964 ldr r4, [sp, #0x24] cmp r6, #0x14 blo _0202797A - bl ErrorHandling + bl GF_AssertFail _0202797A: cmp r7, #0x64 blo _02027982 - bl ErrorHandling + bl GF_AssertFail _02027982: mov r1, #0x1 ldr r0, [sp, #0x4] lsl r1, r1, #0x8 cmp r0, r1 blt _02027990 - bl ErrorHandling + bl GF_AssertFail _02027990: add r0, sp, #0x10 ldrb r1, [r0, #0x10] @@ -1822,13 +1822,13 @@ _02027990: lsl r0, r0, #0x8 cmp r1, r0 blt _020279A0 - bl ErrorHandling + bl GF_AssertFail _020279A0: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _020279AC - bl ErrorHandling + bl GF_AssertFail _020279AC: mov r0, #0x1 lsl r0, r6 @@ -1836,7 +1836,7 @@ _020279AC: str r0, [sp, #0x8] tst r0, r1 beq _020279BC - bl ErrorHandling + bl GF_AssertFail _020279BC: ldr r1, [r5, #0x0] ldr r0, _02027A0C ; =0x00001234 @@ -1853,7 +1853,7 @@ _020279CE: _020279D0: cmp r0, #0x0 bne _020279D8 - bl ErrorHandling + bl GF_AssertFail _020279D8: mov r0, #0x38 ldrsb r0, [r5, r0] @@ -1892,7 +1892,7 @@ FUN_02027A14: ; 0x02027A14 add r5, r0, #0x0 cmp r4, #0x14 blt _02027A22 - bl ErrorHandling + bl GF_AssertFail _02027A22: ldr r1, [r5, #0x0] ldr r0, _02027A50 ; =0x00001234 @@ -1909,7 +1909,7 @@ _02027A34: _02027A36: cmp r0, #0x0 bne _02027A3E - bl ErrorHandling + bl GF_AssertFail _02027A3E: mov r0, #0x1 add r1, r0, #0x0 @@ -1945,7 +1945,7 @@ _02027A72: _02027A74: cmp r0, #0x0 bne _02027A7C - bl ErrorHandling + bl GF_AssertFail _02027A7C: add r5, #0x8 add r0, r5, #0x0 @@ -1976,7 +1976,7 @@ _02027AAA: _02027AAC: cmp r0, #0x0 bne _02027AB4 - bl ErrorHandling + bl GF_AssertFail _02027AB4: add r4, #0x8 add r0, r4, #0x0 @@ -1992,14 +1992,14 @@ FUN_02027AC4: ; 0x02027AC4 add r5, r0, #0x0 cmp r4, #0x14 blt _02027AD2 - bl ErrorHandling + bl GF_AssertFail _02027AD2: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027AE0 - bl ErrorHandling + bl GF_AssertFail _02027AE0: ldr r1, [r5, #0x0] ldr r0, _02027B04 ; =0x00001234 @@ -2016,7 +2016,7 @@ _02027AF2: _02027AF4: cmp r0, #0x0 bne _02027AFC - bl ErrorHandling + bl GF_AssertFail _02027AFC: add r5, #0x44 lsl r0, r4, #0x2 @@ -2046,7 +2046,7 @@ _02027B24: _02027B26: cmp r0, #0x0 bne _02027B2E - bl ErrorHandling + bl GF_AssertFail _02027B2E: add r5, #0x8 add r0, r5, #0x0 @@ -2076,7 +2076,7 @@ _02027B5A: _02027B5C: cmp r0, #0x0 bne _02027B64 - bl ErrorHandling + bl GF_AssertFail _02027B64: add r4, #0x8 add r0, r4, #0x0 @@ -2107,7 +2107,7 @@ _02027B92: _02027B94: cmp r0, #0x0 bne _02027B9C - bl ErrorHandling + bl GF_AssertFail _02027B9C: mov r1, #0x1 str r1, [sp, #0x0] @@ -2144,14 +2144,14 @@ FUN_02027BDC: ; 0x02027BDC add r5, r0, #0x0 cmp r4, #0x14 blt _02027BEA - bl ErrorHandling + bl GF_AssertFail _02027BEA: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027BF8 - bl ErrorHandling + bl GF_AssertFail _02027BF8: ldr r1, [r5, #0x0] ldr r0, _02027C20 ; =0x00001234 @@ -2168,7 +2168,7 @@ _02027C0A: _02027C0C: cmp r0, #0x0 bne _02027C14 - bl ErrorHandling + bl GF_AssertFail _02027C14: add r5, #0x44 lsl r0, r4, #0x2 @@ -2198,7 +2198,7 @@ _02027C3E: _02027C40: cmp r0, #0x0 bne _02027C48 - bl ErrorHandling + bl GF_AssertFail _02027C48: add r4, #0x94 ldrb r0, [r4, #0x0] @@ -2226,7 +2226,7 @@ _02027C6E: _02027C70: cmp r0, #0x0 bne _02027C78 - bl ErrorHandling + bl GF_AssertFail _02027C78: ldr r0, [r4, #0x4] pop {r4, pc} diff --git a/arm9/asm/unk_020281E0.s b/arm9/asm/unk_020281E0.s index e1a5729db..23822bb15 100644 --- a/arm9/asm/unk_020281E0.s +++ b/arm9/asm/unk_020281E0.s @@ -56,7 +56,7 @@ FUN_0202822C: ; 0x0202822C add r7, r2, #0x0 cmp r4, #0x20 blt _0202823C - bl ErrorHandling + bl GF_AssertFail _0202823C: cmp r7, #0x8 bhi _020282D0 @@ -161,7 +161,7 @@ FUN_020282E8: ; 0x020282E8 add r6, r3, #0x0 cmp r4, #0x20 blt _020282FA - bl ErrorHandling + bl GF_AssertFail _020282FA: cmp r7, #0x8 bhi _02028378 @@ -190,13 +190,13 @@ _0202831C: str r6, [r1, r0] pop {r3-r7, pc} _0202832A: - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _02028330: - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _02028336: - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _0202833C: mov r0, #0x30 @@ -248,7 +248,7 @@ FUN_0202838C: ; 0x0202838C add r5, r0, #0x0 cmp r4, #0x20 blt _0202839A - bl ErrorHandling + bl GF_AssertFail _0202839A: mov r0, #0xc add r5, #0x40 @@ -263,7 +263,7 @@ FUN_020283A4: ; 0x020283A4 add r5, r0, #0x0 cmp r4, #0x20 blt _020283B2 - bl ErrorHandling + bl GF_AssertFail _020283B2: mov r0, #0x1d lsl r0, r0, #0x4 @@ -281,7 +281,7 @@ FUN_020283C0: ; 0x020283C0 add r6, r2, #0x0 cmp r4, #0x20 blt _020283D0 - bl ErrorHandling + bl GF_AssertFail _020283D0: mov r1, #0x1d lsl r1, r1, #0x4 @@ -302,7 +302,7 @@ FUN_020283E8: ; 0x020283E8 add r5, r0, #0x0 cmp r4, #0x20 blt _020283F6 - bl ErrorHandling + bl GF_AssertFail _020283F6: mov r0, #0x7 lsl r0, r0, #0x6 @@ -320,7 +320,7 @@ FUN_02028404: ; 0x02028404 add r6, r2, #0x0 cmp r4, #0x20 blt _02028414 - bl ErrorHandling + bl GF_AssertFail _02028414: mov r1, #0x7 lsl r1, r1, #0x6 @@ -341,7 +341,7 @@ FUN_0202842C: ; 0x0202842C add r5, r0, #0x0 cmp r4, #0x20 blt _0202843A - bl ErrorHandling + bl GF_AssertFail _0202843A: mov r0, #0xc add r5, #0x40 @@ -378,7 +378,7 @@ FUN_02028468: ; 0x02028468 str r0, [sp, #0x0] cmp r5, #0x20 blt _02028478 - bl ErrorHandling + bl GF_AssertFail _02028478: cmp r5, #0x1f bge _020284D2 diff --git a/arm9/asm/unk_02029AE0.s b/arm9/asm/unk_02029AE0.s index 9e318412a..3e6f8a2e9 100644 --- a/arm9/asm/unk_02029AE0.s +++ b/arm9/asm/unk_02029AE0.s @@ -39,11 +39,11 @@ FUN_02029B08: ; 0x02029B08 add r4, r2, #0x0 cmp r5, r0 blt _02029B1C - bl ErrorHandling + bl GF_AssertFail _02029B1C: cmp r4, #0x40 blt _02029B24 - bl ErrorHandling + bl GF_AssertFail _02029B24: strb r5, [r6, #0x5] add r0, r6, #0x0 @@ -75,11 +75,11 @@ FUN_02029B40: ; 0x02029B40 add r4, r2, #0x0 cmp r5, r0 blt _02029B54 - bl ErrorHandling + bl GF_AssertFail _02029B54: cmp r4, #0x40 blt _02029B5C - bl ErrorHandling + bl GF_AssertFail _02029B5C: cmp r5, #0x0 bne _02029B64 @@ -118,17 +118,17 @@ FUN_02029B90: ; 0x02029B90 str r3, [sp, #0x0] cmp r3, #0x4 blt _02029BA2 - bl ErrorHandling + bl GF_AssertFail _02029BA2: mov r0, #0x1 lsl r0, r0, #0x8 cmp r5, r0 blt _02029BAE - bl ErrorHandling + bl GF_AssertFail _02029BAE: cmp r4, #0x40 blt _02029BB6 - bl ErrorHandling + bl GF_AssertFail _02029BB6: cmp r5, #0x0 beq _02029BFE diff --git a/arm9/asm/unk_02029FB0.s b/arm9/asm/unk_02029FB0.s index ac4571058..c98b57b74 100644 --- a/arm9/asm/unk_02029FB0.s +++ b/arm9/asm/unk_02029FB0.s @@ -70,7 +70,7 @@ _02029FE0: ldrh r0, [r0, #0x0] pop {r3, pc} _02029FF0: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -95,7 +95,7 @@ _0202A008: strh r2, [r0, #0x0] b _0202A01E _0202A01A: - bl ErrorHandling + bl GF_AssertFail _0202A01E: add r0, r5, #0x0 add r1, r4, #0x0 @@ -129,7 +129,7 @@ _0202A04E: ldr r0, _0202A06C ; =0x0000270F pop {r3, pc} _0202A052: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} nop @@ -282,7 +282,7 @@ FUN_0202A170: ; 0x0202A170 add r5, r0, #0x0 cmp r4, #0x26 blt _0202A17E - bl ErrorHandling + bl GF_AssertFail _0202A17E: add r0, r5, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_0202A924.s b/arm9/asm/unk_0202A924.s index d1dffcaf2..f87841535 100644 --- a/arm9/asm/unk_0202A924.s +++ b/arm9/asm/unk_0202A924.s @@ -77,7 +77,7 @@ _0202A9A0: ldr r0, [r0, #0x4] pop {r3, pc} _0202A9A4: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -192,7 +192,7 @@ FUN_0202AA40: ; 0x0202AA40 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA4E - bl ErrorHandling + bl GF_AssertFail _0202AA4E: mov r0, #0x43 add r1, r5, r4 @@ -208,7 +208,7 @@ FUN_0202AA58: ; 0x0202AA58 add r6, r2, #0x0 cmp r4, #0x3 blo _0202AA68 - bl ErrorHandling + bl GF_AssertFail _0202AA68: mov r0, #0x43 add r1, r5, r4 @@ -224,7 +224,7 @@ FUN_0202AA74: ; 0x0202AA74 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA82 - bl ErrorHandling + bl GF_AssertFail _0202AA82: mov r0, #0x14 mul r0, r4 @@ -253,7 +253,7 @@ FUN_0202AAA0: ; 0x0202AAA0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AAAE - bl ErrorHandling + bl GF_AssertFail _0202AAAE: mov r0, #0x14 add r5, #0xd0 @@ -391,7 +391,7 @@ FUN_0202AB68: ; 0x0202AB68 add r5, r0, #0x0 cmp r4, #0x2 bls _0202AB76 - bl ErrorHandling + bl GF_AssertFail _0202AB76: ldr r0, _0202AB7C ; =0x00000112 strb r4, [r5, r0] @@ -427,7 +427,7 @@ FUN_0202ABA0: ; 0x0202ABA0 add r4, r0, #0x0 cmp r5, #0x10 blo _0202ABB2 - bl ErrorHandling + bl GF_AssertFail _0202ABB2: ldrh r0, [r4, #0xc] strh r0, [r4, #0xe] diff --git a/arm9/asm/unk_0202AC20.s b/arm9/asm/unk_0202AC20.s index e200b3385..843845eb6 100644 --- a/arm9/asm/unk_0202AC20.s +++ b/arm9/asm/unk_0202AC20.s @@ -28,7 +28,7 @@ FUN_0202AC2C: ; 0x0202AC2C add r5, r0, #0x0 cmp r4, #0x8 blt _0202AC3A - bl ErrorHandling + bl GF_AssertFail _0202AC3A: mov r0, #0x1 lsl r0, r0, #0x8 @@ -59,7 +59,7 @@ FUN_0202AC64: ; 0x0202AC64 add r5, r0, #0x0 cmp r4, #0x3 blt _0202AC72 - bl ErrorHandling + bl GF_AssertFail _0202AC72: lsl r0, r4, #0x2 add r1, r5, r0 @@ -220,7 +220,7 @@ FUN_0202AD94: ; 0x0202AD94 sub r0, r4, #0x1 cmp r0, #0x8 blt _0202ADA4 - bl ErrorHandling + bl GF_AssertFail _0202ADA4: sub r4, r4, #0x1 lsl r0, r4, #0x2 @@ -248,7 +248,7 @@ FUN_0202ADC8: ; 0x0202ADC8 add r5, r0, #0x0 cmp r4, #0x3 blt _0202ADD6 - bl ErrorHandling + bl GF_AssertFail _0202ADD6: lsl r0, r4, #0x2 add r1, r5, r0 @@ -308,7 +308,7 @@ FUN_0202AE28: ; 0x0202AE28 add r4, r0, #0x0 cmp r5, #0x8 blt _0202AE36 - bl ErrorHandling + bl GF_AssertFail _0202AE36: lsl r0, r5, #0x2 add r1, r4, r0 @@ -330,7 +330,7 @@ FUN_0202AE4C: ; 0x0202AE4C add r4, r0, #0x0 cmp r5, #0x3 blt _0202AE5A - bl ErrorHandling + bl GF_AssertFail _0202AE5A: lsl r0, r5, #0x2 add r1, r4, r0 @@ -434,7 +434,7 @@ FUN_0202AEF4: ; 0x0202AEF4 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF06 - bl ErrorHandling + bl GF_AssertFail _0202AF06: mov r0, #0x1 mov r1, #0x7 @@ -462,7 +462,7 @@ FUN_0202AF24: ; 0x0202AF24 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF36 - bl ErrorHandling + bl GF_AssertFail _0202AF36: asr r0, r4, #0x2 lsr r0, r0, #0x1d @@ -557,7 +557,7 @@ _0202AFCA: sub r0, r4, #0x1 cmp r0, #0x8 blt _0202AFD4 - bl ErrorHandling + bl GF_AssertFail _0202AFD4: ldr r0, _0202AFF8 ; =UNK_021C59D4 sub r1, r4, #0x1 diff --git a/arm9/asm/unk_0202B374.s b/arm9/asm/unk_0202B374.s index 67c01b0a6..2becea262 100644 --- a/arm9/asm/unk_0202B374.s +++ b/arm9/asm/unk_0202B374.s @@ -112,7 +112,7 @@ _0202B422: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B418 - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 @@ -324,7 +324,7 @@ _0202B574: add r4, #0xcc b _0202B57E _0202B57A: - bl ErrorHandling + bl GF_AssertFail _0202B57E: add r0, r4, #0x0 pop {r4, pc} @@ -362,7 +362,7 @@ _0202B5B0: add r4, r0, r1 b _0202B5BA _0202B5B6: - bl ErrorHandling + bl GF_AssertFail _0202B5BA: add r0, r4, #0x0 pop {r4, pc} @@ -672,7 +672,7 @@ FUN_0202B7C8: ; 0x0202B7C8 bl FUN_0202B820 cmp r0, #0x1 beq _0202B7DE - bl ErrorHandling + bl GF_AssertFail _0202B7DE: add r0, r5, #0x0 add r1, r6, #0x0 @@ -695,7 +695,7 @@ FUN_0202B7F4: ; 0x0202B7F4 bl FUN_0202B820 cmp r0, #0x0 beq _0202B80A - bl ErrorHandling + bl GF_AssertFail _0202B80A: add r0, r5, #0x0 add r1, r6, #0x0 diff --git a/arm9/asm/unk_0202B870.s b/arm9/asm/unk_0202B870.s index ad45d5672..55229d73b 100644 --- a/arm9/asm/unk_0202B870.s +++ b/arm9/asm/unk_0202B870.s @@ -109,7 +109,7 @@ FUN_0202B8F0: ; 0x0202B8F0 cmp r2, #0x6 blo _0202B8FE blo _0202B930 - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _0202B8FE: mov r3, #0x90 diff --git a/arm9/asm/unk_0202BE98.s b/arm9/asm/unk_0202BE98.s index 37bc1c4ef..52f6b9ad6 100644 --- a/arm9/asm/unk_0202BE98.s +++ b/arm9/asm/unk_0202BE98.s @@ -30,7 +30,7 @@ _0202BEB4: bl GetMonData cmp r0, #0x0 beq _0202BECC - bl ErrorHandling + bl GF_AssertFail _0202BECC: add r4, r4, #0x1 add r5, #0xec @@ -60,7 +60,7 @@ _0202BEF0: bl GetMonData cmp r0, #0x0 beq _0202BF08 - bl ErrorHandling + bl GF_AssertFail _0202BF08: add r4, r4, #0x1 add r5, #0xec @@ -178,7 +178,7 @@ FUN_0202BFD8: ; 0x0202BFD8 add r4, r2, #0x0 cmp r5, #0x6 blt _0202BFE8 - bl ErrorHandling + bl GF_AssertFail _0202BFE8: mov r0, #0xec mul r0, r5 diff --git a/arm9/asm/unk_0202D394.s b/arm9/asm/unk_0202D394.s index 1a6f2b872..ce635a799 100644 --- a/arm9/asm/unk_0202D394.s +++ b/arm9/asm/unk_0202D394.s @@ -38,7 +38,7 @@ _0202D3BC: _0202D3CC: cmp r7, #0x0 bne _0202D3D4 - bl ErrorHandling + bl GF_AssertFail _0202D3D4: add r0, r5, #0x0 add r1, r4, #0x0 diff --git a/arm9/asm/unk_0202D4C4.s b/arm9/asm/unk_0202D4C4.s index deb9a6eae..a809e579e 100644 --- a/arm9/asm/unk_0202D4C4.s +++ b/arm9/asm/unk_0202D4C4.s @@ -276,7 +276,7 @@ _0202D69E: ldr r0, _0202D710 ; =0x0000FFFE cmp r7, r0 blt _0202D6A8 - bl ErrorHandling + bl GF_AssertFail _0202D6A8: ldr r0, [sp, #0x0] bl FUN_0202D9A0 diff --git a/arm9/asm/unk_0202D8D0.s b/arm9/asm/unk_0202D8D0.s index d457ca4a6..13ed76b8e 100644 --- a/arm9/asm/unk_0202D8D0.s +++ b/arm9/asm/unk_0202D8D0.s @@ -110,7 +110,7 @@ _0202D94C: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D958 - bl ErrorHandling + bl GF_AssertFail _0202D958: ldr r0, _0202D99C ; =UNK_021C59E0 ldr r1, [r0, #0x0] @@ -169,7 +169,7 @@ _0202D9B6: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D9C2 - bl ErrorHandling + bl GF_AssertFail _0202D9C2: ldr r0, _0202DA00 ; =UNK_021C59E0 ldr r1, [r0, #0x0] diff --git a/arm9/asm/unk_0202DB14.s b/arm9/asm/unk_0202DB14.s index 22ffb2e4f..490da58fd 100644 --- a/arm9/asm/unk_0202DB14.s +++ b/arm9/asm/unk_0202DB14.s @@ -942,7 +942,7 @@ _0202E1EE: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _0202E1F8 - bl ErrorHandling + bl GF_AssertFail _0202E1F8: ldr r0, _0202E254 ; =UNK_021C59E4 mov r2, #0xda diff --git a/arm9/asm/unk_020336C0.s b/arm9/asm/unk_020336C0.s index ac3863f2b..4f2d4dc3d 100644 --- a/arm9/asm/unk_020336C0.s +++ b/arm9/asm/unk_020336C0.s @@ -55,11 +55,11 @@ _02033714: add r5, r0, #0x0 cmp r5, #0x2 bne _02033722 - bl ErrorHandling + bl GF_AssertFail _02033722: cmp r5, #0x3 bne _0203372A - bl ErrorHandling + bl GF_AssertFail _0203372A: cmp r5, #0x1 bne _02033774 @@ -81,11 +81,11 @@ _0203374A: add r5, r0, #0x0 cmp r5, #0x3 bne _02033758 - bl ErrorHandling + bl GF_AssertFail _02033758: cmp r5, #0x1 bne _02033760 - bl ErrorHandling + bl GF_AssertFail _02033760: cmp r5, #0x2 bne _02033774 diff --git a/arm9/asm/unk_02033874.s b/arm9/asm/unk_02033874.s index ddd4483bf..dfad7db23 100644 --- a/arm9/asm/unk_02033874.s +++ b/arm9/asm/unk_02033874.s @@ -191,7 +191,7 @@ _020339D8: str r0, [r6, #0x0] cmp r0, #0x3 bne _020339FE - bl ErrorHandling + bl GF_AssertFail _020339FE: ldr r0, [r6, #0x0] cmp r0, #0x0 diff --git a/arm9/asm/unk_020343A8.s b/arm9/asm/unk_020343A8.s index 88fd25600..a4cac7e7f 100644 --- a/arm9/asm/unk_020343A8.s +++ b/arm9/asm/unk_020343A8.s @@ -53,7 +53,7 @@ _020343D8: ldrb r7, [r6, #0x4] cmp r7, #0x10 bls _0203440A - bl ErrorHandling + bl GF_AssertFail _0203440A: ldr r1, _02034490 ; =0x00001196 add r0, r5, #0x0 @@ -170,7 +170,7 @@ FUN_020344D8: ; 0x020344D8 mul r0, r1 cmp r5, r0 blt _020344EC - bl ErrorHandling + bl GF_AssertFail _020344EC: lsl r0, r5, #0x1 add r1, r4, r0 @@ -185,7 +185,7 @@ FUN_020344FC: ; 0x020344FC push {r4, lr} add r4, r0, #0x0 bne _02034506 - bl ErrorHandling + bl GF_AssertFail _02034506: ldrb r0, [r4, #0x0] pop {r4, pc} @@ -196,7 +196,7 @@ FUN_0203450C: ; 0x0203450C push {r4, lr} add r4, r0, #0x0 bne _02034516 - bl ErrorHandling + bl GF_AssertFail _02034516: ldrb r0, [r4, #0x1] pop {r4, pc} @@ -216,7 +216,7 @@ FUN_0203451C: ; 0x0203451C cmp r5, r6 blt _02034536 _02034532: - bl ErrorHandling + bl GF_AssertFail _02034536: cmp r4, #0x0 blt _02034540 @@ -224,7 +224,7 @@ _02034536: cmp r4, r0 blt _02034544 _02034540: - bl ErrorHandling + bl GF_AssertFail _02034544: add r0, r4, #0x0 mul r0, r6 @@ -248,7 +248,7 @@ FUN_02034554: ; 0x02034554 cmp r4, r0 blt _0203456C _02034568: - bl ErrorHandling + bl GF_AssertFail _0203456C: lsl r0, r4, #0x1 add r0, r5, r0 @@ -269,7 +269,7 @@ FUN_02034578: ; 0x02034578 add r6, r3, #0x0 cmp r4, r0 blt _0203458A - bl ErrorHandling + bl GF_AssertFail _0203458A: ldr r0, [sp, #0x10] mul r0, r6 @@ -278,7 +278,7 @@ _0203458A: lsl r0, r0, #0x2 cmp r4, r0 blt _0203459C - bl ErrorHandling + bl GF_AssertFail _0203459C: ldr r0, _020345A4 ; =0x0000070E add r1, r5, r4 @@ -317,7 +317,7 @@ FUN_020345DC: ; 0x020345DC push {r4, lr} add r4, r0, #0x0 bne _020345E6 - bl ErrorHandling + bl GF_AssertFail _020345E6: add r0, r4, #0x0 bl FreeToHeap @@ -357,13 +357,13 @@ FUN_020345FC: ; 0x020345FC ldrb r0, [r0, #0x1] cmp r5, r0 blt _0203462E - bl ErrorHandling + bl GF_AssertFail _0203462E: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r4, r0 blt _0203463A - bl ErrorHandling + bl GF_AssertFail _0203463A: add r0, sp, #0x0 ldrb r0, [r0, #0x1] @@ -391,7 +391,7 @@ FUN_02034660: ; 0x02034660 add r5, r0, #0x0 add r4, r1, #0x0 bne _0203466C - bl ErrorHandling + bl GF_AssertFail _0203466C: add r0, r5, #0x0 add r1, r4, #0x0 diff --git a/arm9/asm/unk_02034A28.s b/arm9/asm/unk_02034A28.s index e4c8097ac..19d0db80b 100644 --- a/arm9/asm/unk_02034A28.s +++ b/arm9/asm/unk_02034A28.s @@ -11,7 +11,7 @@ FUN_02034A28: ; 0x02034A28 add r4, r1, #0x0 cmp r0, #0x0 beq _02034A38 - bl ErrorHandling + bl GF_AssertFail _02034A38: ldr r1, _02034A44 ; =0x00000AC8 add r0, r4, #0x0 @@ -28,7 +28,7 @@ FUN_02034A48: ; 0x02034A48 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034A56 - bl ErrorHandling + bl GF_AssertFail _02034A56: ldr r0, [r4, #0x14] bl FreeToHeap @@ -43,7 +43,7 @@ FUN_02034A60: ; 0x02034A60 add r4, r1, #0x0 cmp r0, #0x0 bne _02034A70 - bl ErrorHandling + bl GF_AssertFail _02034A70: ldr r0, [r5, #0x14] add r1, r4, #0x0 @@ -76,7 +76,7 @@ FUN_02034A98: ; 0x02034A98 lsl r1, r1, #0xa cmp r0, r1 blo _02034AB8 - bl ErrorHandling + bl GF_AssertFail _02034AB8: add r5, #0x20 add r0, r5, #0x0 @@ -94,7 +94,7 @@ FUN_02034AC8: ; 0x02034AC8 ldr r4, [r0, #0x4] cmp r0, #0x0 bne _02034AD8 - bl ErrorHandling + bl GF_AssertFail _02034AD8: cmp r4, #0x0 beq _02034AEC @@ -232,7 +232,7 @@ _02034B9C: cmp r2, r5 blo _02034B8A _02034BA4: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} @@ -261,7 +261,7 @@ _02034BCC: cmp r3, r5 blo _02034BBC _02034BD4: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4-r6, pc} @@ -290,7 +290,7 @@ _02034BFC: cmp r3, r5 blo _02034BEC _02034C04: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4-r6, pc} @@ -452,7 +452,7 @@ FUN_02034CEC: ; 0x02034CEC lsl r1, r1, #0x8 cmp r0, r1 blo _02034D1C - bl ErrorHandling + bl GF_AssertFail _02034D1C: mov r0, #0x82 lsl r0, r0, #0x4 @@ -469,7 +469,7 @@ FUN_02034D2C: ; 0x02034D2C ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034D3A - bl ErrorHandling + bl GF_AssertFail _02034D3A: mov r0, #0x82 ldr r1, [r4, #0x14] diff --git a/arm9/asm/unk_02034E84.s b/arm9/asm/unk_02034E84.s index 2a2e5e37b..45f0b5d0b 100644 --- a/arm9/asm/unk_02034E84.s +++ b/arm9/asm/unk_02034E84.s @@ -75,7 +75,7 @@ FUN_02034E78: ; 0x02034E78 cmp r0, #0x14 bls _02034E88 _02034E82: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x1 _02034E88: sub r0, r0, #0x1 diff --git a/arm9/asm/unk_02034FE4.s b/arm9/asm/unk_02034FE4.s index 8ff7abe02..128cfb9d2 100644 --- a/arm9/asm/unk_02034FE4.s +++ b/arm9/asm/unk_02034FE4.s @@ -143,7 +143,7 @@ FUN_02034FE4: ; 0x02034FE4 cmp r5, r0 blt _02035010 _0203500C: - bl ErrorHandling + bl GF_AssertFail _02035010: ldr r0, [r6, #0x8] cmp r0, #0x2 diff --git a/arm9/asm/unk_020372D4.s b/arm9/asm/unk_020372D4.s index c2bab3d00..26a505555 100644 --- a/arm9/asm/unk_020372D4.s +++ b/arm9/asm/unk_020372D4.s @@ -83,13 +83,13 @@ LoadOverlay_MODULE_05: ; 0x02037350 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02037360 - bl ErrorHandling + bl GF_AssertFail _02037360: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203736C - bl ErrorHandling + bl GF_AssertFail _0203736C: ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID mov r1, #0x2 @@ -166,7 +166,7 @@ FUN_020373D4: ; 0x020373D4 add r6, r2, #0x0 cmp r0, #0x0 beq _020373E8 - bl ErrorHandling + bl GF_AssertFail _020373E8: add r0, r5, #0x0 bl FUN_02037394 diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index 7c45ad7a3..c501c604c 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -322,7 +322,7 @@ _020378BC: str r1, [r0, #0x0] b _020378C8 _020378C4: - bl ErrorHandling + bl GF_AssertFail _020378C8: ldr r1, _020378F4 ; =UNK_02105DB8 add r0, r6, #0x0 @@ -357,7 +357,7 @@ FUN_020378FC: ; 0x020378FC bl FUN_0206E384 cmp r0, #0x5 bne _02037916 - bl ErrorHandling + bl GF_AssertFail _02037916: add r0, r4, #0x0 pop {r3-r5, pc} @@ -2333,7 +2333,7 @@ FUN_020388B4: ; 0x020388B4 bl MOD05_021ED49C add r5, r0, #0x0 bne _020388CC - bl ErrorHandling + bl GF_AssertFail _020388CC: add r0, r4, #0x0 add r1, r5, #0x0 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index b60088a5e..bcf7b7cfa 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -1035,7 +1035,7 @@ _02038DA8: ldrb r0, [r4, #0x9] cmp r0, #0x0 bne _02038DC8 - bl ErrorHandling + bl GF_AssertFail _02038DC8: mov r0, #0x0 str r0, [r5, #0x38] @@ -1089,7 +1089,7 @@ CreateFieldContext: ; 0x02038E20 bl AllocFromHeap add r4, r0, #0x0 bne _02038E32 - bl ErrorHandling + bl GF_AssertFail _02038E32: add r0, r4, #0x0 mov r1, #0x0 @@ -1164,7 +1164,7 @@ CreateScriptContext: ; 0x02038EB0 bl AllocFromHeap add r4, r0, #0x0 bne _02038EC6 - bl ErrorHandling + bl GF_AssertFail _02038EC6: ldr r2, _02038EE4 ; =sNumScriptCmds ldr r1, _02038EE8 ; =gScriptCmdTable @@ -1865,7 +1865,7 @@ _02039426: add r0, r0, r1 pop {r3, pc} _02039430: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -1880,7 +1880,7 @@ FUN_02039438: ; 0x02039438 ldr r0, _0203945C ; =0x0003643F cmp r1, r0 beq _02039450 - bl ErrorHandling + bl GF_AssertFail _02039450: add r0, r4, #0x0 add r1, r5, #0x0 @@ -1989,7 +1989,7 @@ FUN_02039504: ; 0x02039504 add r5, r0, #0x0 cmp r4, #0x10 blo _02039512 - bl ErrorHandling + bl GF_AssertFail _02039512: ldr r1, _02039524 ; =0x00004020 add r0, r5, #0x0 @@ -2236,7 +2236,7 @@ _020396C0: _020396CE: cmp r1, #0xe5 blo _020396DA - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4, pc} _020396DA: @@ -2280,7 +2280,7 @@ _02039718: _02039726: cmp r1, #0xe5 blo _02039732 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} _02039732: diff --git a/arm9/asm/unk_02047500.s b/arm9/asm/unk_02047500.s index 905cf7b1f..4a5b00a0a 100644 --- a/arm9/asm/unk_02047500.s +++ b/arm9/asm/unk_02047500.s @@ -79,7 +79,7 @@ FUN_0204755C: ; 0x0204755C add r4, r1, #0x0 cmp r5, #0x1f blo _0204756A - bl ErrorHandling + bl GF_AssertFail _0204756A: ldr r0, _02047580 ; =UNK_020F457C lsl r1, r5, #0x2 @@ -101,7 +101,7 @@ FUN_02047588: ; 0x02047588 add r4, r0, #0x0 cmp r4, #0x1f blo _02047594 - bl ErrorHandling + bl GF_AssertFail _02047594: ldr r0, _0204759C ; =UNK_020F457E lsl r1, r4, #0x2 diff --git a/arm9/asm/unk_020476CC.s b/arm9/asm/unk_020476CC.s index 546792596..a06056dde 100644 --- a/arm9/asm/unk_020476CC.s +++ b/arm9/asm/unk_020476CC.s @@ -327,7 +327,7 @@ _0204796C: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02047976 - bl ErrorHandling + bl GF_AssertFail _02047976: ldr r0, [r5, #0x4] bl FreeToHeap @@ -343,7 +343,7 @@ _02047988: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02047996 - bl ErrorHandling + bl GF_AssertFail _02047996: add r0, r4, #0x0 add r0, #0xf8 @@ -361,7 +361,7 @@ _020479B0: ldr r0, [r4, r6] cmp r0, #0x0 bne _020479BA - bl ErrorHandling + bl GF_AssertFail _020479BA: mov r0, #0x46 lsl r0, r0, #0x2 @@ -399,7 +399,7 @@ FUN_020479FC: ; 0x020479FC add r6, r1, #0x0 cmp r4, #0x4 blt _02047A0C - bl ErrorHandling + bl GF_AssertFail _02047A0C: lsl r0, r4, #0x2 add r0, r5, r0 @@ -408,7 +408,7 @@ _02047A0C: bl AddMonToParty cmp r0, #0x0 bne _02047A20 - bl ErrorHandling + bl GF_AssertFail _02047A20: pop {r4-r6, pc} .balign 4 @@ -421,7 +421,7 @@ FUN_02047A24: ; 0x02047A24 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A34 - bl ErrorHandling + bl GF_AssertFail _02047A34: lsl r1, r4, #0x2 add r1, r5, r1 @@ -439,7 +439,7 @@ FUN_02047A44: ; 0x02047A44 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A54 - bl ErrorHandling + bl GF_AssertFail _02047A54: lsl r1, r4, #0x2 add r1, r5, r1 @@ -1144,7 +1144,7 @@ _02048054: ldr r0, [r0, r1] pop {r3-r5, pc} _02048060: - bl ErrorHandling + bl GF_AssertFail mov r0, #0xc pop {r3-r5, pc} .balign 4 diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 7c046e254..96cfbab63 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -67,7 +67,7 @@ FUN_02048164: ; 0x02048164 bl AllocFromHeap add r4, r0, #0x0 bne _0204817A - bl ErrorHandling + bl GF_AssertFail _0204817A: add r0, r4, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_02048904.s b/arm9/asm/unk_02048904.s index 1fcababed..f926f7221 100644 --- a/arm9/asm/unk_02048904.s +++ b/arm9/asm/unk_02048904.s @@ -140,7 +140,7 @@ FUN_020489DC: ; 0x020489DC ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _020489EA - bl ErrorHandling + bl GF_AssertFail _020489EA: ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] @@ -226,7 +226,7 @@ _02048A82: bl MapHeader_GetCameraType cmp r6, r0 beq _02048AB4 - bl ErrorHandling + bl GF_AssertFail b _02048AB4 _02048AA6: add r0, r7, #0x0 @@ -341,7 +341,7 @@ FUN_02048B90: ; 0x02048B90 ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02048BA2 - bl ErrorHandling + bl GF_AssertFail _02048BA2: ldr r0, [r4, #0x1c] ldr r1, [r4, #0x28] @@ -368,7 +368,7 @@ _02048BD8: ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _02048BE2 - bl ErrorHandling + bl GF_AssertFail _02048BE2: ldr r0, [r4, #0x6c] ldr r1, _02048C28 ; =UNK_020F46E0 @@ -413,7 +413,7 @@ FUN_02048C2C: ; 0x02048C2C ldr r0, [r4, #0x58] cmp r0, #0x0 bne _02048C3A - bl ErrorHandling + bl GF_AssertFail _02048C3A: mov r0, #0x0 str r0, [r4, #0x58] @@ -1064,7 +1064,7 @@ FUN_02049160: ; 0x02049160 bl FUN_0203739C cmp r0, #0x0 beq _02049186 - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _02049186: mov r0, #0x0 @@ -1431,7 +1431,7 @@ FUN_02049430: ; 0x02049430 bl FUN_0203739C cmp r0, #0x0 bne _02049452 - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _02049452: ldr r0, [r5, #0x38] @@ -1561,7 +1561,7 @@ _0204954A: bl FUN_020637E0 b _0204955A _02049556: - bl ErrorHandling + bl GF_AssertFail _0204955A: add r0, r7, #0x0 bl FUN_020495B0 @@ -1682,7 +1682,7 @@ FUN_0204961C: ; 0x0204961C bl FUN_0203739C cmp r0, #0x0 bne _0204963E - bl ErrorHandling + bl GF_AssertFail pop {r4-r6, pc} _0204963E: ldr r2, [r6, #0x4] @@ -1883,11 +1883,11 @@ _020497A4: sub r4, r0, #0x6 cmp r6, #0x0 bge _020497D4 - bl ErrorHandling + bl GF_AssertFail _020497D4: cmp r4, #0x0 bge _020497DC - bl ErrorHandling + bl GF_AssertFail _020497DC: lsr r2, r6, #0x1f lsl r1, r6, #0x1f @@ -2395,7 +2395,7 @@ _02049BF4: ldr r0, _02049C08 ; =FUN_02049ACC pop {r3, pc} _02049BFC: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 @@ -2502,7 +2502,7 @@ FUN_02049CB0: ; 0x02049CB0 bl FUN_0203739C cmp r0, #0x0 beq _02049CD6 - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _02049CD6: mov r0, #0x0 diff --git a/arm9/asm/unk_0204A368.s b/arm9/asm/unk_0204A368.s index 6a4e5e9b6..f1f197465 100644 --- a/arm9/asm/unk_0204A368.s +++ b/arm9/asm/unk_0204A368.s @@ -160,7 +160,7 @@ _0204A478: _0204A482: cmp r4, #0x10 blo _0204A48A - bl ErrorHandling + bl GF_AssertFail _0204A48A: lsl r0, r4, #0x1 strh r5, [r6, r0] diff --git a/arm9/asm/unk_0204A498.s b/arm9/asm/unk_0204A498.s index 4a255af1a..67863650b 100644 --- a/arm9/asm/unk_0204A498.s +++ b/arm9/asm/unk_0204A498.s @@ -295,7 +295,7 @@ _0204A69C: str r1, [r0, #0x0] pop {r3, pc} _0204A6A6: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 _0204A6AC: .word UNK_020F4708 @@ -404,7 +404,7 @@ _0204A754: blt _0204A768 cmp r4, #0x0 bne _0204A76A - bl ErrorHandling + bl GF_AssertFail b _0204A76A _0204A768: mov r4, #0x0 @@ -542,7 +542,7 @@ FUN_0204A840: ; 0x0204A840 cmp r7, #0x0 bge _0204A868 _0204A864: - bl ErrorHandling + bl GF_AssertFail _0204A868: lsl r0, r6, #0x10 str r0, [r5, #0x0] diff --git a/arm9/asm/unk_0204AF24.s b/arm9/asm/unk_0204AF24.s index e6593c724..fb084cbcb 100644 --- a/arm9/asm/unk_0204AF24.s +++ b/arm9/asm/unk_0204AF24.s @@ -26,7 +26,7 @@ FUN_0204AF3C: ; 0x0204AF3C bl FUN_0203739C cmp r0, #0x0 bne _0204AF54 - bl ErrorHandling + bl GF_AssertFail pop {r3-r5, pc} _0204AF54: add r0, r4, #0x0 @@ -62,7 +62,7 @@ FUN_0204AF84: ; 0x0204AF84 bl FUN_0203739C cmp r0, #0x0 beq _0204AF9C - bl ErrorHandling + bl GF_AssertFail pop {r3-r5, pc} _0204AF9C: add r0, r4, #0x0 @@ -97,7 +97,7 @@ FUN_0204AFC8: ; 0x0204AFC8 bl FUN_0203739C cmp r0, #0x0 bne _0204AFE2 - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r3-r4, pc} _0204AFE2: @@ -130,7 +130,7 @@ FUN_0204B00C: ; 0x0204B00C bl FUN_0203739C cmp r0, #0x0 bne _0204B026 - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r3-r4, pc} _0204B026: diff --git a/arm9/asm/unk_0204B34C.s b/arm9/asm/unk_0204B34C.s index fe9cc3fd0..ff93214d8 100644 --- a/arm9/asm/unk_0204B34C.s +++ b/arm9/asm/unk_0204B34C.s @@ -532,7 +532,7 @@ _0204B73A: add r4, r4, #0x1 b _0204B746 _0204B742: - bl ErrorHandling + bl GF_AssertFail _0204B746: add r0, r7, #0x0 add r1, r6, #0x0 @@ -604,7 +604,7 @@ _0204B7C0: add r4, r4, #0x1 b _0204B7CC _0204B7C8: - bl ErrorHandling + bl GF_AssertFail _0204B7CC: ldr r0, [r5, #0x34] add r1, r7, #0x0 diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s index 04b6134b8..e8d193271 100644 --- a/arm9/asm/unk_0204B9EC.s +++ b/arm9/asm/unk_0204B9EC.s @@ -157,7 +157,7 @@ FUN_0204BAF4: ; 0x0204BAF4 cmp r5, r0 bls _0204BB08 _0204BB04: - bl ErrorHandling + bl GF_AssertFail _0204BB08: mov r3, #0x6 add r0, r4, #0x0 @@ -267,7 +267,7 @@ FUN_0204BBC4: ; 0x0204BBC4 lsr r5, r0, #0x10 cmp r5, #0xa blo _0204BBDE - bl ErrorHandling + bl GF_AssertFail _0204BBDE: add r0, r5, #0x5 str r0, [r4, #0x38] @@ -373,7 +373,7 @@ _0204BC86: lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _0204BC94 - bl ErrorHandling + bl GF_AssertFail _0204BC94: add r0, r6, #0x0 add r0, #0x14 @@ -405,7 +405,7 @@ _0204BCA4: lsr r0, r0, #0x10 cmp r4, r0 blo _0204BCD8 - bl ErrorHandling + bl GF_AssertFail _0204BCD8: cmp r4, #0x14 bge _0204BCE0 @@ -437,7 +437,7 @@ _0204BD04: add r0, #0x8 cmp r1, #0x6 blt _0204BCE6 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r7, pc} .balign 4 @@ -463,7 +463,7 @@ _0204BD28: strb r1, [r0, #0x0] pop {r4, pc} _0204BD3A: - bl ErrorHandling + bl GF_AssertFail _0204BD3E: pop {r4, pc} diff --git a/arm9/asm/unk_0204C1B4.s b/arm9/asm/unk_0204C1B4.s index 73f9c7a52..6efee84e2 100644 --- a/arm9/asm/unk_0204C1B4.s +++ b/arm9/asm/unk_0204C1B4.s @@ -186,7 +186,7 @@ _0204C2F4: mov r4, #0x6 b _0204C36A _0204C302: - bl ErrorHandling + bl GF_AssertFail b _0204C36A _0204C308: ldr r0, [sp, #0x8] @@ -207,7 +207,7 @@ _0204C320: mov r4, #0x6 b _0204C36A _0204C32E: - bl ErrorHandling + bl GF_AssertFail b _0204C36A _0204C334: ldr r0, [sp, #0x8] @@ -229,10 +229,10 @@ _0204C356: bl FUN_02034930 cmp r0, #0x0 bne _0204C36A - bl ErrorHandling + bl GF_AssertFail b _0204C36A _0204C366: - bl ErrorHandling + bl GF_AssertFail _0204C36A: ldr r1, _0204C37C ; =FUN_0204C380 add r0, r7, #0x0 @@ -556,7 +556,7 @@ _0204C5E6: bl FUN_0205ADDC b _0204C5F6 _0204C5F2: - bl ErrorHandling + bl GF_AssertFail _0204C5F6: ldr r0, [r4, #0x4] add r0, r0, #0x1 @@ -926,7 +926,7 @@ _0204C8EA: bl FUN_0205ADDC b _0204C8FC _0204C8F8: - bl ErrorHandling + bl GF_AssertFail _0204C8FC: ldr r0, [r4, #0x4] add r0, r0, #0x1 diff --git a/arm9/asm/unk_0204CB20.s b/arm9/asm/unk_0204CB20.s index 52fbcfa75..a0dc5ce29 100644 --- a/arm9/asm/unk_0204CB20.s +++ b/arm9/asm/unk_0204CB20.s @@ -360,7 +360,7 @@ FUN_0204CD78: ; 0x0204CD78 bl FUN_02064520 b _0204CDA2 _0204CD9E: - bl ErrorHandling + bl GF_AssertFail _0204CDA2: ldr r0, _0204CDB0 ; =UNK_021C5A68 mov r1, #0x0 @@ -1129,7 +1129,7 @@ _0204D37C: bl FUN_02055068 add r7, r0, #0x0 bne _0204D3B2 - bl ErrorHandling + bl GF_AssertFail _0204D3B2: ldr r0, _0204D430 ; =UNK_021C5A68 ldr r0, [r0, #0x0] @@ -1503,11 +1503,11 @@ FUN_0204D67C: ; 0x0204D67C beq _0204D6B8 cmp r1, #0x1 beq _0204D692 - bl ErrorHandling + bl GF_AssertFail _0204D692: cmp r5, #0x8 blt _0204D69A - bl ErrorHandling + bl GF_AssertFail _0204D69A: ldrb r0, [r4, #0x0] mov r1, #0x1 @@ -1519,7 +1519,7 @@ _0204D69A: _0204D6A8: cmp r1, #0x0 bne _0204D6B0 - bl ErrorHandling + bl GF_AssertFail _0204D6B0: ldrb r1, [r4, #0x0] add r0, r5, #0x0 @@ -1773,7 +1773,7 @@ FUN_0204D870: ; 0x0204D870 cmp r4, #0x5 str r0, [r2, #0x0] blt _0204D88E - bl ErrorHandling + bl GF_AssertFail _0204D88E: lsl r1, r4, #0x2 add r0, sp, #0x0 @@ -2180,7 +2180,7 @@ _0204DB5A: bl FUN_0204A6B4 cmp r0, #0x0 beq _0204DBBC - bl ErrorHandling + bl GF_AssertFail _0204DBBC: pop {r3-r7, pc} nop @@ -4023,7 +4023,7 @@ FUN_0204E96C: ; 0x0204E96C ldrb r0, [r5, #0x1] cmp r0, #0x8 blo _0204E988 - bl ErrorHandling + bl GF_AssertFail _0204E988: ldrb r0, [r5, #0x0] cmp r0, #0x4 @@ -5605,7 +5605,7 @@ _0204F62A: mov r0, #0x2 pop {r3, pc} _0204F632: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x2 pop {r3, pc} .balign 4 @@ -6052,11 +6052,11 @@ _0204F96E: add r5, r0, #0x0 cmp r4, #0x0 bne _0204F988 - bl ErrorHandling + bl GF_AssertFail _0204F988: cmp r5, #0x0 bne _0204F990 - bl ErrorHandling + bl GF_AssertFail _0204F990: add r0, r4, #0x0 add r1, r5, #0x0 @@ -6150,7 +6150,7 @@ _0204FA26: strb r2, [r1, r0] pop {r3-r7, pc} _0204FA4C: - bl ErrorHandling + bl GF_AssertFail add sp, #0x8 pop {r3-r7, pc} .balign 4 diff --git a/arm9/asm/unk_0204FBA8.s b/arm9/asm/unk_0204FBA8.s index 32c2e3c1f..f1101a82c 100644 --- a/arm9/asm/unk_0204FBA8.s +++ b/arm9/asm/unk_0204FBA8.s @@ -2093,7 +2093,7 @@ FUN_02050BF8: ; 0x02050BF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02050C04 - bl ErrorHandling + bl GF_AssertFail _02050C04: ldr r0, _02050C10 ; =UNK_021C5A6C ldr r1, [r0, #0x0] diff --git a/arm9/asm/unk_020520AC.s b/arm9/asm/unk_020520AC.s index d29ed8371..8ff9a9a1e 100644 --- a/arm9/asm/unk_020520AC.s +++ b/arm9/asm/unk_020520AC.s @@ -125,7 +125,7 @@ FUN_020520AC: ; 0x020520AC push {r3-r5, lr} add r4, r0, #0x0 bne _020520B6 - bl ErrorHandling + bl GF_AssertFail _020520B6: ldr r0, [r4, #0x78] cmp r0, #0x0 @@ -814,7 +814,7 @@ _020525F4: mov r0, #0x5 pop {r4-r6, pc} _020525F8: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r4-r6, pc} .balign 4 @@ -1144,7 +1144,7 @@ FUN_02052814: ; 0x02052814 mvn r0, r0 cmp r4, r0 bne _02052836 - bl ErrorHandling + bl GF_AssertFail b _02052836 _02052834: add r5, r4, #0x0 @@ -1516,7 +1516,7 @@ _02052AF2: ldr r0, [r0, r1] pop {r4-r6, pc} _02052AFA: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x28 pop {r4-r6, pc} nop diff --git a/arm9/asm/unk_02052EE8.s b/arm9/asm/unk_02052EE8.s index 3d8839c2d..0c163fd85 100644 --- a/arm9/asm/unk_02052EE8.s +++ b/arm9/asm/unk_02052EE8.s @@ -300,7 +300,7 @@ FUN_02053104: ; 0x02053104 ldr r0, [r0, r5] cmp r3, r0 beq _02053120 - bl ErrorHandling + bl GF_AssertFail _02053120: pop {r4-r6, pc} nop @@ -426,7 +426,7 @@ _02053206: bl FUN_02058060 add r5, r0, #0x0 bne _02053216 - bl ErrorHandling + bl GF_AssertFail _02053216: ldrb r0, [r4, #0xd] cmp r0, #0x4 @@ -761,7 +761,7 @@ _020534AC: bl FUN_02058060 add r4, r0, #0x0 bne _020534BC - bl ErrorHandling + bl GF_AssertFail _020534BC: add r0, r4, #0x0 mov r1, #0x1 @@ -787,7 +787,7 @@ FUN_020534DC: ; 0x020534DC bl FUN_02058060 add r4, r0, #0x0 bne _020534F0 - bl ErrorHandling + bl GF_AssertFail _020534F0: add r0, r4, #0x0 bl FUN_0205AD98 @@ -811,7 +811,7 @@ _0205350E: bl FUN_02058060 add r4, r0, #0x0 bne _02053524 - bl ErrorHandling + bl GF_AssertFail _02053524: ldrb r1, [r5, #0x8] add r0, r4, #0x0 diff --git a/arm9/asm/unk_0205363C.s b/arm9/asm/unk_0205363C.s index 3b13ed24d..2e5f334e7 100644 --- a/arm9/asm/unk_0205363C.s +++ b/arm9/asm/unk_0205363C.s @@ -148,7 +148,7 @@ _020536EE: ldr r0, [r0, r1] pop {r4, pc} _020536F8: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 _020536FE: pop {r4, pc} diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 0cf428b23..38f594ef1 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -1222,7 +1222,7 @@ FUN_02054008: ; 0x02054008 bl FUN_0201FE94 add r4, r0, #0x0 bne _02054064 - bl ErrorHandling + bl GF_AssertFail _02054064: add r0, r4, #0x0 add sp, #0x30 diff --git a/arm9/asm/unk_02055068.s b/arm9/asm/unk_02055068.s index 7db8d152d..61561cbec 100644 --- a/arm9/asm/unk_02055068.s +++ b/arm9/asm/unk_02055068.s @@ -82,7 +82,7 @@ FUN_02055108: ; 0x02055108 bl FUN_020553A0 add r4, r0, #0x0 bne _02055118 - bl ErrorHandling + bl GF_AssertFail _02055118: add r0, r4, #0x0 bl FUN_02058578 @@ -139,7 +139,7 @@ FUN_0205517C: ; 0x0205517C bl AllocFromHeap add r4, r0, #0x0 bne _0205518E - bl ErrorHandling + bl GF_AssertFail _0205518E: add r0, r4, #0x0 mov r1, #0x0 @@ -208,7 +208,7 @@ FUN_02055208: ; 0x02055208 bl FUN_0205753C add r5, r0, #0x0 bne _02055228 - bl ErrorHandling + bl GF_AssertFail _02055228: add r0, r5, #0x0 mov r1, #0xff @@ -300,7 +300,7 @@ FUN_020552E4: ; 0x020552E4 bl FUN_020552A4 add r4, r0, #0x0 bne _020552F2 - bl ErrorHandling + bl GF_AssertFail _020552F2: add r0, r4, #0x0 pop {r4, pc} @@ -432,7 +432,7 @@ FUN_020553A8: ; 0x020553A8 add r5, r0, #0x0 cmp r4, #0x3 blt _020553B6 - bl ErrorHandling + bl GF_AssertFail _020553B6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -446,7 +446,7 @@ FUN_020553C4: ; 0x020553C4 push {r4, lr} add r4, r0, #0x0 bne _020553CE - bl ErrorHandling + bl GF_AssertFail _020553CE: ldr r0, [r4, #0x18] pop {r4, pc} @@ -884,7 +884,7 @@ _0205563A: mov r0, #0xc9 pop {r3, pc} _0205563E: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 @@ -937,7 +937,7 @@ _0205568A: lsl r0, r0, #0x8 pop {r3, pc} _02055690: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x1 pop {r3, pc} diff --git a/arm9/asm/unk_020557F4.s b/arm9/asm/unk_020557F4.s index c2c01f1c3..0a5c6e31c 100644 --- a/arm9/asm/unk_020557F4.s +++ b/arm9/asm/unk_020557F4.s @@ -1157,7 +1157,7 @@ _0205614C: add sp, #0xc pop {r4-r7, pc} _02056162: - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -1248,7 +1248,7 @@ _02056204: mov r0, #0x2 pop {r3, pc} _02056208: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -1709,7 +1709,7 @@ _0205657E: mov r0, #0x1 pop {r3, pc} _02056582: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 @@ -2096,7 +2096,7 @@ _0205689A: mov r0, #0x1 pop {r3, pc} _0205689E: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 @@ -3227,7 +3227,7 @@ _02057172: b _0205718E _02057188: mov r4, #0x0 - bl ErrorHandling + bl GF_AssertFail _0205718E: add r0, r4, #0x0 pop {r3-r5, pc} diff --git a/arm9/asm/unk_02057380.s b/arm9/asm/unk_02057380.s index ef4050e39..adfa2f078 100644 --- a/arm9/asm/unk_02057380.s +++ b/arm9/asm/unk_02057380.s @@ -110,7 +110,7 @@ FUN_02057444: ; 0x02057444 bl AllocFromHeap add r5, r0, #0x0 bne _0205745A - bl ErrorHandling + bl GF_AssertFail _0205745A: mov r2, #0x4b add r0, r5, #0x0 @@ -126,7 +126,7 @@ _0205745A: bl AllocFromHeap add r4, r0, #0x0 bne _0205747E - bl ErrorHandling + bl GF_AssertFail _0205747E: add r0, r4, #0x0 mov r1, #0x0 @@ -455,7 +455,7 @@ FUN_02057750: ; 0x02057750 bl FUN_020587E0 cmp r0, #0x1 beq _02057760 - bl ErrorHandling + bl GF_AssertFail _02057760: add r0, r5, #0x0 mov r4, #0x0 @@ -497,7 +497,7 @@ FUN_020577A8: ; 0x020577A8 bl FUN_020587E0 cmp r0, #0x1 beq _020577B8 - bl ErrorHandling + bl GF_AssertFail _020577B8: add r0, r5, #0x0 mov r4, #0x0 @@ -559,7 +559,7 @@ _02057820: add r5, #0x50 cmp r4, #0x0 bgt _02057836 - bl ErrorHandling + bl GF_AssertFail _02057836: add r0, r6, #0x0 add r1, sp, #0x0 @@ -597,7 +597,7 @@ _02057866: bl FUN_02057C64 add r4, r0, #0x0 bne _0205787C - bl ErrorHandling + bl GF_AssertFail _0205787C: add r0, r4, #0x0 add r1, r5, #0x0 @@ -961,7 +961,7 @@ FUN_02057BAC: ; 0x02057BAC str r1, [sp, #0x0] cmp r5, #0x0 bne _02057BC0 - bl ErrorHandling + bl GF_AssertFail _02057BC0: lsl r0, r5, #0x5 str r0, [sp, #0x4] @@ -970,7 +970,7 @@ _02057BC0: bl AllocFromHeapAtEnd add r6, r0, #0x0 bne _02057BD4 - bl ErrorHandling + bl GF_AssertFail _02057BD4: ldr r2, [sp, #0x4] add r0, r6, #0x0 @@ -981,7 +981,7 @@ _02057BD4: bl AllocFromHeapAtEnd add r4, r0, #0x0 bne _02057BEE - bl ErrorHandling + bl GF_AssertFail _02057BEE: ldr r0, [sp, #0x0] str r0, [r4, #0x0] @@ -1023,7 +1023,7 @@ _02057C30: bl FUN_02057494 cmp r0, #0x0 bne _02057C42 - bl ErrorHandling + bl GF_AssertFail _02057C42: ldr r0, [r6, #0x0] add r4, #0x20 @@ -1135,7 +1135,7 @@ _02057D0A: bl FUN_0200CA44 add r5, r0, #0x0 bne _02057D1C - bl ErrorHandling + bl GF_AssertFail _02057D1C: add r0, r4, #0x0 add r1, r5, #0x0 @@ -1512,7 +1512,7 @@ FUN_02058060: ; 0x02058060 add r6, r1, #0x0 cmp r5, #0x0 bne _0205806E - bl ErrorHandling + bl GF_AssertFail _0205806E: add r0, r5, #0x0 bl FUN_02058368 @@ -1745,7 +1745,7 @@ FUN_02058214: ; 0x02058214 bl FUN_020589CC cmp r0, #0x1 beq _02058228 - bl ErrorHandling + bl GF_AssertFail _02058228: add r0, r5, #0x0 mov r1, #0x0 @@ -1776,7 +1776,7 @@ FUN_02058258: ; 0x02058258 bl FUN_02058CE0 cmp r0, #0x1 beq _0205826E - bl ErrorHandling + bl GF_AssertFail _0205826E: add r0, r5, #0x0 mov r1, #0x1 @@ -2046,7 +2046,7 @@ FUN_020583F4: ; 0x020583F4 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02058402 - bl ErrorHandling + bl GF_AssertFail _02058402: ldr r0, [r4, #0x14] pop {r4, pc} @@ -2279,7 +2279,7 @@ _02058504: str r1, [r0, #0x40] pop {r3, pc} _02058508: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 @@ -2303,7 +2303,7 @@ _02058528: ldr r0, [r0, #0x40] pop {r3, pc} _0205852C: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -2392,7 +2392,7 @@ FUN_0205858C: ; 0x0205858C add r4, r0, #0x0 cmp r5, #0x10 ble _0205859A - bl ErrorHandling + bl GF_AssertFail _0205859A: add r0, r4, #0x0 bl FUN_020585B0 @@ -2416,7 +2416,7 @@ FUN_020585B4: ; 0x020585B4 add r4, r0, #0x0 cmp r5, #0x10 ble _020585C2 - bl ErrorHandling + bl GF_AssertFail _020585C2: add r0, r4, #0x0 bl FUN_020585D8 @@ -2440,7 +2440,7 @@ FUN_020585DC: ; 0x020585DC add r4, r0, #0x0 cmp r5, #0x10 ble _020585EA - bl ErrorHandling + bl GF_AssertFail _020585EA: add r0, r4, #0x0 bl FUN_02058600 @@ -2464,7 +2464,7 @@ FUN_02058604: ; 0x02058604 add r4, r0, #0x0 cmp r5, #0x20 ble _02058612 - bl ErrorHandling + bl GF_AssertFail _02058612: add r0, r4, #0x0 bl FUN_02058628 @@ -2712,7 +2712,7 @@ FUN_02058750: ; 0x02058750 bl FUN_020589CC cmp r0, #0x1 beq _02058760 - bl ErrorHandling + bl GF_AssertFail _02058760: add r0, r4, #0x0 bl FUN_02058490 @@ -3583,7 +3583,7 @@ _02058C4C: strh r1, [r0, #0x12] pop {r3, pc} _02058C50: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4 @@ -3607,7 +3607,7 @@ _02058C70: ldrh r0, [r0, #0x12] pop {r3, pc} _02058C74: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} @@ -3718,7 +3718,7 @@ FUN_02058CFC: ; 0x02058CFC bl FUN_02058CE0 cmp r0, #0x1 beq _02058D0C - bl ErrorHandling + bl GF_AssertFail _02058D0C: add r0, r4, #0x0 bl FUN_02058C1C @@ -3730,7 +3730,7 @@ FUN_02058D14: ; 0x02058D14 add r4, r0, #0x0 cmp r4, #0x37 blo _02058D20 - bl ErrorHandling + bl GF_AssertFail _02058D20: ldr r0, _02058D28 ; =UNK_020F6364 lsl r1, r4, #0x2 @@ -3795,7 +3795,7 @@ _02058D5C: ldr r2, [r3, #0x0] cmp r2, r1 bne _02058D52 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_02058EE8.s b/arm9/asm/unk_02058EE8.s index 70e6414ed..b021f2bd0 100644 --- a/arm9/asm/unk_02058EE8.s +++ b/arm9/asm/unk_02058EE8.s @@ -2621,11 +2621,11 @@ FUN_02059A60: ; 0x02059A60 mvn r0, r0 cmp r5, r0 bne _02059A92 - bl ErrorHandling + bl GF_AssertFail _02059A92: cmp r5, #0x4 blt _02059A9A - bl ErrorHandling + bl GF_AssertFail _02059A9A: ldr r1, _02059ABC ; =UNK_020F6630 lsl r5, r5, #0x2 diff --git a/arm9/asm/unk_02059F04.s b/arm9/asm/unk_02059F04.s index 310d4f035..26971d97e 100644 --- a/arm9/asm/unk_02059F04.s +++ b/arm9/asm/unk_02059F04.s @@ -480,7 +480,7 @@ _0205A254: str r0, [r4, #0xc] pop {r3-r7, pc} _0205A268: - bl ErrorHandling + bl GF_AssertFail add sp, #0x8 pop {r3-r7, pc} @@ -785,7 +785,7 @@ _0205A486: mvn r0, r0 cmp r1, r0 bne _0205A496 - bl ErrorHandling + bl GF_AssertFail _0205A496: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -942,7 +942,7 @@ _0205A5A2: mvn r0, r0 cmp r1, r0 bne _0205A5B2 - bl ErrorHandling + bl GF_AssertFail _0205A5B2: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -1617,7 +1617,7 @@ _0205AA9A: _0205AAA4: cmp r4, #0x0 bne _0205AAAC - bl ErrorHandling + bl GF_AssertFail _0205AAAC: add r0, r4, #0x0 pop {r4, pc} @@ -1674,7 +1674,7 @@ _0205AB0A: ldr r2, [r1, #0x0] cmp r2, #0x27 bne _0205AB02 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3, pc} nop @@ -1965,7 +1965,7 @@ _0205AD26: _0205AD36: cmp r4, #0x4 blt _0205AD3E - bl ErrorHandling + bl GF_AssertFail _0205AD3E: add r0, r4, #0x1 lsr r2, r0, #0x1f diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s index 54448e617..b780cf260 100644 --- a/arm9/asm/unk_0205AD98.s +++ b/arm9/asm/unk_0205AD98.s @@ -54,7 +54,7 @@ FUN_0205ADDC: ; 0x0205ADDC add r5, r0, #0x0 cmp r4, #0x69 blt _0205ADEA - bl ErrorHandling + bl GF_AssertFail _0205ADEA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -160,7 +160,7 @@ FUN_0205AEA4: ; 0x0205AEA4 bl AllocFromHeapAtEnd add r4, r0, #0x0 bne _0205AEBA - bl ErrorHandling + bl GF_AssertFail _0205AEBA: add r2, r4, #0x0 mov r1, #0x14 @@ -179,7 +179,7 @@ _0205AEC0: bl FUN_0200CA44 add r7, r0, #0x0 bne _0205AEE4 - bl ErrorHandling + bl GF_AssertFail _0205AEE4: str r5, [r4, #0xc] str r6, [r4, #0x10] @@ -206,7 +206,7 @@ FUN_0205AEFC: ; 0x0205AEFC bl FUN_0205AE28 cmp r0, #0x1 beq _0205AF14 - bl ErrorHandling + bl GF_AssertFail _0205AF14: ldr r0, [r4, #0xc] bl FUN_0205AE50 @@ -335,7 +335,7 @@ FUN_0205AFDC: ; 0x0205AFDC add r4, r1, #0x0 cmp r7, #0x4 blt _0205AFEA - bl ErrorHandling + bl GF_AssertFail _0205AFEA: ldr r3, _0205B01C ; =UNK_020F6308 ldr r6, [r3, #0x0] @@ -362,7 +362,7 @@ _0205B004: cmp r6, #0x0 bne _0205AFF4 _0205B014: - bl ErrorHandling + bl GF_AssertFail add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 diff --git a/arm9/asm/unk_0205BEF8.s b/arm9/asm/unk_0205BEF8.s index bb032e3da..3df9f7d72 100644 --- a/arm9/asm/unk_0205BEF8.s +++ b/arm9/asm/unk_0205BEF8.s @@ -530,7 +530,7 @@ _0205C266: _0205C276: cmp r5, #0x4 blt _0205C27E - bl ErrorHandling + bl GF_AssertFail _0205C27E: add r0, r5, #0x1 lsr r2, r0, #0x1f diff --git a/arm9/asm/unk_0205C334.s b/arm9/asm/unk_0205C334.s index b975a3f03..22bba4430 100644 --- a/arm9/asm/unk_0205C334.s +++ b/arm9/asm/unk_0205C334.s @@ -316,7 +316,7 @@ _0205C584: ldr r0, [r2, #0x8] pop {r3, pc} _0205C588: - bl ErrorHandling + bl GF_AssertFail ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s index d80c26b43..b40cf1a72 100644 --- a/arm9/asm/unk_0205C598.s +++ b/arm9/asm/unk_0205C598.s @@ -153,7 +153,7 @@ _0205C650: mov r0, #0x1 pop {r3-r7, pc} _0205C6AE: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 add sp, #0x58 pop {r3-r7, pc} @@ -627,7 +627,7 @@ _0205CA30: cmp r0, #0x0 bne _0205CA10 _0205CA40: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} @@ -652,7 +652,7 @@ FUN_0205CA64: ; 0x0205CA64 push {r4, lr} add r4, r0, #0x0 bne _0205CA6E - bl ErrorHandling + bl GF_AssertFail _0205CA6E: add r0, r4, #0x0 bl FUN_0205CAD4 @@ -678,7 +678,7 @@ FUN_0205CA80: ; 0x0205CA80 bl AllocFromHeapAtEnd add r4, r0, #0x0 bne _0205CA9A - bl ErrorHandling + bl GF_AssertFail _0205CA9A: add r0, r4, #0x0 mov r1, #0x0 @@ -701,7 +701,7 @@ _0205CA9A: bl FUN_0200CA44 add r4, r0, #0x0 bne _0205CACC - bl ErrorHandling + bl GF_AssertFail _0205CACC: add r0, r4, #0x0 pop {r3-r7, pc} @@ -840,7 +840,7 @@ _0205CBB6: mvn r0, r0 cmp r1, r0 bne _0205CBC4 - bl ErrorHandling + bl GF_AssertFail _0205CBC4: ldr r0, [r4, #0x8] mov r1, #0x0 diff --git a/arm9/asm/unk_0205DD18.s b/arm9/asm/unk_0205DD18.s index 80b7ca1aa..890feee8e 100644 --- a/arm9/asm/unk_0205DD18.s +++ b/arm9/asm/unk_0205DD18.s @@ -101,7 +101,7 @@ _0205DDB6: ldrb r4, [r0, r5] cmp r4, #0x0 bne _0205DDC2 - bl ErrorHandling + bl GF_AssertFail _0205DDC2: cmp r4, #0x1 bhi _0205DDCA @@ -123,7 +123,7 @@ _0205DDCA: lsr r6, r0, #0x10 cmp r6, r4 blo _0205DDF2 - bl ErrorHandling + bl GF_AssertFail _0205DDF2: lsl r1, r5, #0x1 mov r0, #0x9 @@ -158,7 +158,7 @@ _0205DE30: lsl r7, r4, #0x1 cmp r6, r7 bge _0205DE3A - bl ErrorHandling + bl GF_AssertFail _0205DE3A: sub r0, r6, r7 lsl r0, r0, #0x18 @@ -267,7 +267,7 @@ _0205DEE0: lsr r7, r0, #0x10 cmp r7, #0x64 blo _0205DF12 - bl ErrorHandling + bl GF_AssertFail _0205DF12: cmp r7, #0x32 bhs _0205DF1A @@ -477,7 +477,7 @@ FUN_0205E080: ; 0x0205E080 add r6, r2, #0x0 cmp r4, #0x0 bne _0205E090 - bl ErrorHandling + bl GF_AssertFail _0205E090: str r4, [r5, #0x8] str r6, [r5, #0xc] @@ -726,7 +726,7 @@ _0205E24C: add r1, r1, #0x1 cmp r1, #0x3 blt _0205E23A - bl ErrorHandling + bl GF_AssertFail _0205E256: pop {r4-r6, pc} @@ -814,7 +814,7 @@ _0205E2DC: lsr r4, r0, #0x10 cmp r4, #0x64 blo _0205E2F4 - bl ErrorHandling + bl GF_AssertFail _0205E2F4: ldrb r0, [r6, r5] cmp r4, r0 @@ -970,7 +970,7 @@ _0205E426: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bne _0205E430 - bl ErrorHandling + bl GF_AssertFail _0205E430: lsl r0, r5, #0x10 lsr r0, r0, #0x10 @@ -997,7 +997,7 @@ _0205E43C: lsr r0, r0, #0x10 cmp r4, r0 blo _0205E46A - bl ErrorHandling + bl GF_AssertFail _0205E46A: cmp r4, #0x0 bne _0205E472 diff --git a/arm9/asm/unk_0205EC84.s b/arm9/asm/unk_0205EC84.s index 74662b87c..a0c7d1475 100644 --- a/arm9/asm/unk_0205EC84.s +++ b/arm9/asm/unk_0205EC84.s @@ -50,7 +50,7 @@ _0205ECC0: bl FUN_0205EC94 pop {r3, pc} _0205ECCA: - bl ErrorHandling + bl GF_AssertFail _0205ECCE: mov r0, #0x0 pop {r3, pc} @@ -886,7 +886,7 @@ FUN_0205F2E4: ; 0x0205F2E4 add r6, r1, #0x0 cmp r4, #0x45 blo _0205F2F4 - bl ErrorHandling + bl GF_AssertFail _0205F2F4: mov r2, #0x9b lsl r2, r2, #0x4 diff --git a/arm9/asm/unk_0205F314.s b/arm9/asm/unk_0205F314.s index d6c97cedc..548cd5a40 100644 --- a/arm9/asm/unk_0205F314.s +++ b/arm9/asm/unk_0205F314.s @@ -27,7 +27,7 @@ FUN_0205F314: ; 0x0205F314 cmp r5, r1 bls _0205F334 _0205F32C: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x0 pop {r3-r5, pc} _0205F334: @@ -212,7 +212,7 @@ FUN_0205F45C: ; 0x0205F45C cmp r4, #0x3 blo _0205F46A _0205F466: - bl ErrorHandling + bl GF_AssertFail _0205F46A: ldr r0, _0205F474 ; =UNK_020F7430 lsl r1, r4, #0x1 @@ -271,7 +271,7 @@ FUN_0205F4C8: ; 0x0205F4C8 cmp r4, #0x4 blt _0205F4D6 _0205F4D2: - bl ErrorHandling + bl GF_AssertFail _0205F4D6: ldr r0, _0205F4E0 ; =UNK_020F7436 lsl r1, r4, #0x1 diff --git a/arm9/asm/unk_0205F7A0.s b/arm9/asm/unk_0205F7A0.s index b781112b9..624176f94 100644 --- a/arm9/asm/unk_0205F7A0.s +++ b/arm9/asm/unk_0205F7A0.s @@ -173,7 +173,7 @@ FUN_0205F8CC: ; 0x0205F8CC bl FS_OpenFile cmp r0, #0x0 bne _0205F8F8 - bl ErrorHandling + bl GF_AssertFail add sp, #0x70 pop {r3-r7, pc} _0205F8F8: @@ -183,7 +183,7 @@ _0205F8F8: bl FS_ReadFile cmp r0, #0x0 bge _0205F90A - bl ErrorHandling + bl GF_AssertFail _0205F90A: mov r0, #0xb mov r1, #0x4 diff --git a/arm9/asm/unk_02060344.s b/arm9/asm/unk_02060344.s index 8f67bca35..9dcfde2ef 100644 --- a/arm9/asm/unk_02060344.s +++ b/arm9/asm/unk_02060344.s @@ -40,7 +40,7 @@ _0206036A: _0206038C: cmp r1, #0xc8 blt _02060394 - bl ErrorHandling + bl GF_AssertFail _02060394: mov r1, #0x0 _02060396: diff --git a/arm9/asm/unk_020603B0.s b/arm9/asm/unk_020603B0.s index 7550dc1d7..d4aa42f5c 100644 --- a/arm9/asm/unk_020603B0.s +++ b/arm9/asm/unk_020603B0.s @@ -100,7 +100,7 @@ _020603F6: lsr r6, r0, #0x10 cmp r6, #0x10 blo _02060412 - bl ErrorHandling + bl GF_AssertFail _02060412: cmp r6, #0x0 bne _02060420 @@ -129,7 +129,7 @@ FUN_0206043C: ; 0x0206043C add r4, r0, #0x0 cmp r4, #0x1d blo _02060448 - bl ErrorHandling + bl GF_AssertFail _02060448: ldr r0, _02060450 ; =UNK_020F7460 lsl r1, r4, #0x2 @@ -206,7 +206,7 @@ _020604C2: mov r6, #0x28 b _020604D0 _020604C8: - bl ErrorHandling + bl GF_AssertFail add sp, #0x20 pop {r3-r7, pc} _020604D0: @@ -303,7 +303,7 @@ _0206059C: lsr r5, r0, #0x10 cmp r5, #0x1d blo _020605B2 - bl ErrorHandling + bl GF_AssertFail _020605B2: lsl r0, r5, #0x18 lsr r2, r0, #0x18 @@ -361,7 +361,7 @@ _0206061E: ldrh r5, [r4, #0x0] cmp r5, #0x0 bne _02060628 - bl ErrorHandling + bl GF_AssertFail _02060628: cmp r5, #0x1 bhi _02060630 @@ -383,7 +383,7 @@ _02060630: lsr r6, r0, #0x10 cmp r6, r5 blo _02060658 - bl ErrorHandling + bl GF_AssertFail _02060658: lsl r0, r6, #0x18 lsr r0, r0, #0x17 diff --git a/arm9/asm/unk_020607D4.s b/arm9/asm/unk_020607D4.s index c017c5613..2e2c4e219 100644 --- a/arm9/asm/unk_020607D4.s +++ b/arm9/asm/unk_020607D4.s @@ -149,7 +149,7 @@ _020608F0: bl FUN_020054C8 b _0206090A _020608F8: - bl ErrorHandling + bl GF_AssertFail add r0, r4, #0x0 bl FreeToHeap add sp, #0x28 @@ -472,7 +472,7 @@ _02060B6A: str r0, [r4, #0x24] b _02060B86 _02060B7C: - bl ErrorHandling + bl GF_AssertFail add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} @@ -569,7 +569,7 @@ _02060BF6: bl FUN_0204A9F0 cmp r0, #0x0 bne _02060C38 - bl ErrorHandling + bl GF_AssertFail _02060C38: ldr r0, [sp, #0x20] bl MOD05_021E7EC8 @@ -594,7 +594,7 @@ _02060C38: bl MOD05_021DA464 b _02060C6E _02060C6A: - bl ErrorHandling + bl GF_AssertFail _02060C6E: add r0, r6, #0x1 lsl r0, r0, #0x18 @@ -644,7 +644,7 @@ _02060CA8: str r1, [r0, #0x8] pop {r3, pc} _02060CC4: - bl ErrorHandling + bl GF_AssertFail _02060CC8: pop {r3, pc} .balign 4 diff --git a/arm9/asm/unk_02060CCC.s b/arm9/asm/unk_02060CCC.s index b6692f244..918488c57 100644 --- a/arm9/asm/unk_02060CCC.s +++ b/arm9/asm/unk_02060CCC.s @@ -153,7 +153,7 @@ FUN_02060CCC: ; 0x02060CCC cmp r5, #0x5 blt _02060CDC _02060CD8: - bl ErrorHandling + bl GF_AssertFail _02060CDC: sub r1, r5, #0x1 ldr r6, _02060CF4 ; =UNK_020F767C @@ -163,7 +163,7 @@ _02060CDC: ldr r0, [r6, r4] cmp r0, r5 beq _02060CF0 - bl ErrorHandling + bl GF_AssertFail _02060CF0: add r0, r6, r4 pop {r4-r6, pc} @@ -183,7 +183,7 @@ FUN_02060CF8: ; 0x02060CF8 cmp r4, r0 blt _02060D12 _02060D0E: - bl ErrorHandling + bl GF_AssertFail _02060D12: sub r0, r4, #0x1 ldr r1, [r5, #0x8] @@ -206,7 +206,7 @@ FUN_02060D1C: ; 0x02060D1C ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02060D3E - bl ErrorHandling + bl GF_AssertFail _02060D3E: add r0, r6, #0x0 add r1, r7, #0x0 @@ -629,7 +629,7 @@ FUN_02061028: ; 0x02061028 ldrh r0, [r5, #0x22] cmp r0, #0x0 bne _0206106C - bl ErrorHandling + bl GF_AssertFail _0206106C: add r2, r5, #0x0 add r5, #0xc @@ -1207,7 +1207,7 @@ FUN_02061498: ; 0x02061498 lsr r4, r0, #0x10 cmp r4, #0x5 blo _020614F0 - bl ErrorHandling + bl GF_AssertFail _020614F0: add r4, #0x11 add r0, r4, #0x0 @@ -1615,7 +1615,7 @@ FUN_020617D8: ; 0x020617D8 lsr r4, r0, #0x10 cmp r4, #0x3 blo _02061826 - bl ErrorHandling + bl GF_AssertFail _02061826: add r4, #0x21 add r0, r4, #0x0 @@ -1663,7 +1663,7 @@ FUN_02061868: ; 0x02061868 ldr r1, [r4, #0x0] cmp r1, r0 beq _02061884 - bl ErrorHandling + bl GF_AssertFail _02061884: add r0, r5, #0x0 mov r1, #0x0 @@ -2724,7 +2724,7 @@ FUN_020620A0: ; 0x020620A0 add r4, r0, #0x0 cmp r4, #0x0 bgt _020620BE - bl ErrorHandling + bl GF_AssertFail _020620BE: cmp r4, #0x1 ble _020620D0 @@ -2760,7 +2760,7 @@ _020620F0: _020620F8: cmp r5, #0x0 beq _02062100 - bl ErrorHandling + bl GF_AssertFail _02062100: bl LCRandom mov r1, #0xf1 @@ -2770,7 +2770,7 @@ _02062100: lsr r4, r0, #0x10 cmp r4, #0x11 blo _02062118 - bl ErrorHandling + bl GF_AssertFail _02062118: cmp r4, #0x9 blt _0206211E @@ -2828,7 +2828,7 @@ FUN_02062170: ; 0x02062170 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0206218C - bl ErrorHandling + bl GF_AssertFail _0206218C: ldr r0, _02062238 ; =UNK_02105FBC lsl r1, r4, #0x1 @@ -2870,7 +2870,7 @@ _020621D4: lsr r4, r0, #0x10 cmp r4, #0x4 blo _020621E4 - bl ErrorHandling + bl GF_AssertFail _020621E4: cmp r4, #0x3 bhi _0206220C @@ -2922,7 +2922,7 @@ _02062228: mov r0, #0xc pop {r3-r7, pc} _0206222C: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x1 pop {r3-r7, pc} .balign 4 @@ -3014,7 +3014,7 @@ FUN_020622C4: ; 0x020622C4 lsr r5, r0, #0x10 cmp r5, #0x11 blo _020622E0 - bl ErrorHandling + bl GF_AssertFail _020622E0: cmp r5, #0x9 blt _020622E6 @@ -3028,7 +3028,7 @@ _020622E6: lsr r4, r0, #0x10 cmp r4, #0x11 blo _020622FE - bl ErrorHandling + bl GF_AssertFail _020622FE: cmp r4, #0x9 blt _02062304 @@ -3121,7 +3121,7 @@ _02062392: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bne _020623A4 - bl ErrorHandling + bl GF_AssertFail _020623A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -3148,7 +3148,7 @@ _020623B0: lsr r0, r0, #0x10 cmp r5, r0 blo _020623DE - bl ErrorHandling + bl GF_AssertFail _020623DE: add r0, sp, #0x10 add r0, #0x2 @@ -3244,7 +3244,7 @@ FUN_02062474: ; 0x02062474 lsl r0, r0, #0x10 lsr r4, r0, #0x10 bne _02062496 - bl ErrorHandling + bl GF_AssertFail _02062496: cmp r4, #0x1 bhi _0206249E @@ -3266,7 +3266,7 @@ _0206249E: lsr r5, r0, #0x10 cmp r5, r4 blo _020624C6 - bl ErrorHandling + bl GF_AssertFail _020624C6: lsl r4, r5, #0x2 add r0, sp, #0x4 @@ -3363,7 +3363,7 @@ _0206256C: _02062572: cmp r4, #0xb blt _0206257A - bl ErrorHandling + bl GF_AssertFail _0206257A: ldr r1, [sp, #0x8] add r0, r6, #0x0 diff --git a/arm9/asm/unk_02063888.s b/arm9/asm/unk_02063888.s index 0e213436c..19cd07cc0 100644 --- a/arm9/asm/unk_02063888.s +++ b/arm9/asm/unk_02063888.s @@ -77,7 +77,7 @@ _020638F8: lsl r0, r0, #0x10 lsr r6, r0, #0x10 bne _02063920 - bl ErrorHandling + bl GF_AssertFail _02063920: add r0, r6, #0x0 add r1, sp, #0x8 diff --git a/arm9/asm/unk_02063948.s b/arm9/asm/unk_02063948.s index 854eaedd2..b111b655a 100644 --- a/arm9/asm/unk_02063948.s +++ b/arm9/asm/unk_02063948.s @@ -189,7 +189,7 @@ FUN_02063A80: ; 0x02063A80 ldr r0, _02063A98 ; =0x19740205 cmp r1, r0 beq _02063A90 - bl ErrorHandling + bl GF_AssertFail _02063A90: add r0, r4, #0x0 bl FreeToHeap diff --git a/arm9/asm/unk_020643C0.s b/arm9/asm/unk_020643C0.s index 4a7b92d3e..9215f8163 100644 --- a/arm9/asm/unk_020643C0.s +++ b/arm9/asm/unk_020643C0.s @@ -175,7 +175,7 @@ FUN_02064520: ; 0x02064520 push {r4, lr} add r4, r0, #0x0 bne _0206452A - bl ErrorHandling + bl GF_AssertFail _0206452A: add r0, r4, #0x0 bl FUN_020646A0 @@ -254,7 +254,7 @@ FUN_020645B0: ; 0x020645B0 bl FUN_0200CA44 add r4, r0, #0x0 bne _020645C6 - bl ErrorHandling + bl GF_AssertFail _020645C6: add r0, r4, #0x0 pop {r4, pc} @@ -276,7 +276,7 @@ FUN_020645DC: ; 0x020645DC bl AllocFromHeap add r4, r0, #0x0 bne _020645EC - bl ErrorHandling + bl GF_AssertFail _020645EC: add r2, r4, #0x0 mov r1, #0x10 @@ -309,7 +309,7 @@ FUN_0206460C: ; 0x0206460C bl AllocFromHeap add r4, r0, #0x0 bne _02064622 - bl ErrorHandling + bl GF_AssertFail _02064622: add r0, r4, #0x0 mov r1, #0x0 diff --git a/arm9/asm/unk_020647A4.s b/arm9/asm/unk_020647A4.s index cba184098..7476df71c 100644 --- a/arm9/asm/unk_020647A4.s +++ b/arm9/asm/unk_020647A4.s @@ -105,7 +105,7 @@ _0206480A: bl FUN_0204AA5C cmp r0, #0x0 bne _0206482C - bl ErrorHandling + bl GF_AssertFail _0206482C: ldr r1, [sp, #0x14] add r0, sp, #0x18 @@ -316,7 +316,7 @@ _02064996: str r1, [r0, #0x8] pop {r3-r5, pc} _020649A0: - bl ErrorHandling + bl GF_AssertFail pop {r3-r5, pc} nop _020649A8: .word 0x00000123 @@ -474,7 +474,7 @@ _02064ACA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064AEC - bl ErrorHandling + bl GF_AssertFail _02064AEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 @@ -598,7 +598,7 @@ _02064BCA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064BEC - bl ErrorHandling + bl GF_AssertFail _02064BEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 diff --git a/arm9/asm/unk_02064CA8.s b/arm9/asm/unk_02064CA8.s index 851aec529..c81aafece 100644 --- a/arm9/asm/unk_02064CA8.s +++ b/arm9/asm/unk_02064CA8.s @@ -127,7 +127,7 @@ FUN_02064D88: ; 0x02064D88 add r7, r0, #0x0 cmp r5, #0x3 blo _02064D96 - bl ErrorHandling + bl GF_AssertFail _02064D96: add r0, r7, #0x0 bl ScriptEnvironment_GetSav2Ptr @@ -163,7 +163,7 @@ _02064DD2: mov r6, #0x19 b _02064DDE _02064DDA: - bl ErrorHandling + bl GF_AssertFail _02064DDE: ldr r0, [r7, #0x1c] ldr r0, [r0, #0xc] @@ -182,7 +182,7 @@ FUN_02064DEC: ; 0x02064DEC add r6, r2, #0x0 cmp r4, #0x1 bls _02064DFC - bl ErrorHandling + bl GF_AssertFail _02064DFC: mov r0, #0x0 mvn r0, r0 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 3124976ed..2499c1083 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -743,7 +743,7 @@ _0206CCCE: lsl r1, r1, #0xe cmp r0, r1 bhi _0206CD16 - bl ErrorHandling + bl GF_AssertFail _0206CD16: ldr r0, _0206CE24 ; =0x000005F9 bl FUN_020054C8 diff --git a/arm9/asm/unk_0206DE24.s b/arm9/asm/unk_0206DE24.s index 32d784c49..3203cc10a 100644 --- a/arm9/asm/unk_0206DE24.s +++ b/arm9/asm/unk_0206DE24.s @@ -145,11 +145,11 @@ FUN_0206DF18: ; 0x0206DF18 add r5, r0, #0x0 cmp r4, #0x0 bne _0206DF40 - bl ErrorHandling + bl GF_AssertFail _0206DF40: cmp r5, #0x0 bne _0206DF48 - bl ErrorHandling + bl GF_AssertFail _0206DF48: bl FUN_02012CC8 pop {r3-r5, pc} @@ -313,7 +313,7 @@ FUN_0206E07C: ; 0x0206E07C bl AllocFromHeap add r4, r0, #0x0 bne _0206E090 - bl ErrorHandling + bl GF_AssertFail _0206E090: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] diff --git a/arm9/asm/unk_0206E0F0.s b/arm9/asm/unk_0206E0F0.s index 533ddc308..d00119f86 100644 --- a/arm9/asm/unk_0206E0F0.s +++ b/arm9/asm/unk_0206E0F0.s @@ -33,7 +33,7 @@ FUN_0206E0F0: ; 0x0206E0F0 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E0FC - bl ErrorHandling + bl GF_AssertFail _0206E0FC: ldr r0, _0206E104 ; =UNK_020F83E0 lsl r1, r4, #0x2 @@ -63,7 +63,7 @@ FUN_0206E114: ; 0x0206E114 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E120 - bl ErrorHandling + bl GF_AssertFail _0206E120: ldr r0, _0206E128 ; =UNK_020F843C ldrb r0, [r0, r4] @@ -255,7 +255,7 @@ FUN_0206E278: ; 0x0206E278 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E284 - bl ErrorHandling + bl GF_AssertFail _0206E284: ldr r0, _0206E28C ; =UNK_020F83D4 lsl r1, r4, #0x2 @@ -270,7 +270,7 @@ FUN_0206E290: ; 0x0206E290 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E29C - bl ErrorHandling + bl GF_AssertFail _0206E29C: ldr r0, _0206E2A4 ; =UNK_020F83D0 ldrb r0, [r0, r4] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 703233b32..34c0bc897 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1639,11 +1639,11 @@ FUN_02077AC4: ; 0x02077AC4 ldr r0, [r4, #0x18] cmp r0, #0x0 bne _02077AD2 - bl ErrorHandling + bl GF_AssertFail _02077AD2: cmp r4, #0x0 bne _02077ADA - bl ErrorHandling + bl GF_AssertFail _02077ADA: ldr r0, [r4, #0x18] bl String_dtor diff --git a/arm9/asm/unk_02080C38.s b/arm9/asm/unk_02080C38.s index 36539633c..3e0d058cb 100644 --- a/arm9/asm/unk_02080C38.s +++ b/arm9/asm/unk_02080C38.s @@ -246,7 +246,7 @@ _02080DD4: str r0, [r4, #0x4] b _02080DF2 _02080DE2: - bl ErrorHandling + bl GF_AssertFail _02080DE6: add r0, r4, #0x0 bl FreeToHeap @@ -497,7 +497,7 @@ _02080FC0: str r0, [r4, #0x4] b _02080FDC _02080FCE: - bl ErrorHandling + bl GF_AssertFail _02080FD2: add r0, r4, #0x0 bl FreeToHeap @@ -747,7 +747,7 @@ _02081196: str r0, [r4, #0x4] b _020811B4 _020811A4: - bl ErrorHandling + bl GF_AssertFail _020811A8: add r0, r4, #0x0 bl FreeToHeap @@ -1259,7 +1259,7 @@ _020815A6: add r6, r0, #0x0 b _020815BA _020815B6: - bl ErrorHandling + bl GF_AssertFail _020815BA: cmp r6, #0x0 beq _020815CA @@ -2347,7 +2347,7 @@ _02081DEC: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081DFA - bl ErrorHandling + bl GF_AssertFail _02081DFA: add r0, r7, #0x0 bl PlayerProfile_GetGameClearFlag @@ -2374,7 +2374,7 @@ _02081E1E: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081E2C - bl ErrorHandling + bl GF_AssertFail _02081E2C: add r0, r7, #0x0 bl PlayerProfile_GetNatDexFlag @@ -2471,7 +2471,7 @@ FUN_02081ED4: ; 0x02081ED4 ldr r0, [r4, r0] cmp r0, #0x0 beq _02081EE6 - bl ErrorHandling + bl GF_AssertFail _02081EE6: ldr r0, _02081F00 ; =0x00000176 mov r1, #0x0 @@ -3031,7 +3031,7 @@ _020822C8: add r0, #0x31 b _020822D6 _020822D0: - bl ErrorHandling + bl GF_AssertFail pop {r3-r5, pc} _020822D6: lsl r0, r0, #0x18 @@ -3229,7 +3229,7 @@ _02082412: _02082414: cmp r4, #0x64 bne _0208241C - bl ErrorHandling + bl GF_AssertFail _0208241C: ldr r0, _02082440 ; =0x0000198C ldr r0, [r5, r0] @@ -3258,7 +3258,7 @@ FUN_02082444: ; 0x02082444 ldr r0, [r5, r0] cmp r0, #0x0 beq _02082456 - bl ErrorHandling + bl GF_AssertFail _02082456: mov r0, #0x4 mov r1, #0x10 diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index f63a493ee..58dba10d7 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -311,7 +311,7 @@ _02082A26: ldr r0, [sp, #0x8] cmp r6, r0 bge _02082A30 - bl ErrorHandling + bl GF_AssertFail _02082A30: mov r0, #0x0 str r0, [sp, #0x10] @@ -469,7 +469,7 @@ _02082B44: _02082B4E: cmp r6, #0x4 bhs _02082B56 - bl ErrorHandling + bl GF_AssertFail _02082B56: mov r6, #0x0 mov r7, #0x30 @@ -633,7 +633,7 @@ _02082C66: ldrb r2, [r0, #0x0] b _02082C74 _02082C6E: - bl ErrorHandling + bl GF_AssertFail mov r2, #0x0 _02082C74: mov r0, #0x54 @@ -891,7 +891,7 @@ FUN_02082E64: ; 0x02082E64 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02082E98 - bl ErrorHandling + bl GF_AssertFail _02082E98: add r1, sp, #0x14 ldrh r0, [r1, #0x0] @@ -1094,7 +1094,7 @@ _0208300A: strb r1, [r0, r4] cmp r5, #0x2 bhs _0208301A - bl ErrorHandling + bl GF_AssertFail _0208301A: ldr r2, [sp, #0x4] mov r3, #0x0 @@ -1126,7 +1126,7 @@ _0208301E: blt _0208301E cmp r4, #0x1 bhs _02083058 - bl ErrorHandling + bl GF_AssertFail _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 @@ -1224,7 +1224,7 @@ FUN_02083114: ; 0x02083114 add r4, r0, #0x0 cmp r4, #0x18 blo _02083120 - bl ErrorHandling + bl GF_AssertFail _02083120: mov r0, #0x1a add r1, r4, #0x0 @@ -1243,7 +1243,7 @@ FUN_02083130: ; 0x02083130 add r6, r2, #0x0 cmp r5, #0x18 blo _02083140 - bl ErrorHandling + bl GF_AssertFail _02083140: mov r0, #0x1a add r1, r5, #0x0 @@ -1265,7 +1265,7 @@ FUN_0208315C: ; 0x0208315C add r4, r0, #0x0 cmp r4, #0x18 blo _02083168 - bl ErrorHandling + bl GF_AssertFail _02083168: add r4, #0x2d add r0, r4, #0x0 @@ -1281,7 +1281,7 @@ FUN_02083170: ; 0x02083170 add r6, r3, #0x0 cmp r4, #0x18 blo _02083182 - bl ErrorHandling + bl GF_AssertFail _02083182: cmp r7, #0x4 bhi _0208319C @@ -1702,7 +1702,7 @@ _02083448: add r0, #0x8a pop {r3, pc} _0208344C: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x7a pop {r3, pc} diff --git a/arm9/asm/unk_020834D0.s b/arm9/asm/unk_020834D0.s index 39062a81c..88308c6e9 100644 --- a/arm9/asm/unk_020834D0.s +++ b/arm9/asm/unk_020834D0.s @@ -43,7 +43,7 @@ FUN_020834E4: ; 0x020834E4 add r4, r1, #0x0 cmp r2, r0 blt _020834F6 - bl ErrorHandling + bl GF_AssertFail _020834F6: ldr r0, _02083500 ; =0x00000985 add r1, r4, r0 @@ -110,21 +110,21 @@ _0208354A: add r4, r1, r0 b _0208355E _02083558: - bl ErrorHandling + bl GF_AssertFail pop {r3-r7, pc} _0208355E: mov r0, #0x2 lsl r0, r0, #0x8 cmp r6, r0 ble _0208356A - bl ErrorHandling + bl GF_AssertFail _0208356A: ldr r0, _0208359C ; =0x00000A11 add r7, r4, r0 ldrb r0, [r7, r5] cmp r0, #0x0 beq _02083578 - bl ErrorHandling + bl GF_AssertFail _02083578: mov r1, #0x21 lsl r1, r1, #0x4 @@ -666,7 +666,7 @@ FUN_02083970: ; 0x02083970 lsl r0, r0, #0xa cmp r1, r0 blt _0208398C - bl ErrorHandling + bl GF_AssertFail _0208398C: mov r7, #0x0 ldr r4, [sp, #0x4] @@ -709,7 +709,7 @@ FUN_020839C0: ; 0x020839C0 str r0, [sp, #0x0] cmp r0, r1 blt _020839DE - bl ErrorHandling + bl GF_AssertFail _020839DE: ldr r0, _02083A18 ; =0x00000585 mov r7, #0x0 diff --git a/arm9/asm/unk_02083D48.s b/arm9/asm/unk_02083D48.s index 4a15e685d..1974ae4bd 100644 --- a/arm9/asm/unk_02083D48.s +++ b/arm9/asm/unk_02083D48.s @@ -472,7 +472,7 @@ FUN_02083FDC: ; 0x02083FDC bl FUN_02031190 cmp r0, #0x0 beq _02083FEE - bl ErrorHandling + bl GF_AssertFail _02083FEE: bl FUN_02031190 cmp r0, #0x0 diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s index 2e98e9cfb..a2f90e0ac 100644 --- a/arm9/asm/unk_020859C0.s +++ b/arm9/asm/unk_020859C0.s @@ -586,7 +586,7 @@ FUN_02085D6C: ; 0x02085D6C ldr r0, [r4, #0x0] cmp r0, r1 bge _02085D7C - bl ErrorHandling + bl GF_AssertFail mov r1, #0x0 _02085D7C: lsl r0, r1, #0x2 @@ -712,7 +712,7 @@ _02085E48: beq _02085E5A cmp r0, #0x1 beq _02085E60 - bl ErrorHandling + bl GF_AssertFail _02085E5A: mov r0, #0x5 str r0, [r6, #0x14] @@ -874,7 +874,7 @@ FUN_02085FAC: ; 0x02085FAC ldr r0, _02085FC8 ; =0x0000032A cmp r4, r0 blo _02085FBA - bl ErrorHandling + bl GF_AssertFail _02085FBA: mov r0, #0xa add r1, r4, #0x0 @@ -893,7 +893,7 @@ FUN_02085FD0: ; 0x02085FD0 ldr r0, _02085FEC ; =0x0000032A cmp r4, r0 blo _02085FDE - bl ErrorHandling + bl GF_AssertFail _02085FDE: mov r0, #0xa add r1, r4, #0x0 @@ -912,7 +912,7 @@ FUN_02085FF4: ; 0x02085FF4 ldr r0, _02086010 ; =0x0000032A cmp r4, r0 blo _02086002 - bl ErrorHandling + bl GF_AssertFail _02086002: mov r0, #0xa add r1, r4, #0x0 @@ -931,7 +931,7 @@ FUN_02086018: ; 0x02086018 ldr r0, _02086034 ; =0x0000032A cmp r4, r0 blo _02086026 - bl ErrorHandling + bl GF_AssertFail _02086026: mov r0, #0xa add r1, r4, #0x0 @@ -950,7 +950,7 @@ FUN_0208603C: ; 0x0208603C ldr r0, _02086058 ; =0x0000032A cmp r4, r0 blo _0208604A - bl ErrorHandling + bl GF_AssertFail _0208604A: mov r0, #0xa add r1, r4, #0x0 @@ -969,7 +969,7 @@ FUN_02086060: ; 0x02086060 ldr r0, _0208607C ; =0x0000032A cmp r4, r0 blo _0208606E - bl ErrorHandling + bl GF_AssertFail _0208606E: mov r0, #0xa add r1, r4, #0x0 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index 7ae623511..e5739d5b7 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -234,11 +234,11 @@ FUN_0208650C: ; 0x0208650C add r5, r0, #0x0 cmp r4, #0x0 bne _02086534 - bl ErrorHandling + bl GF_AssertFail _02086534: cmp r5, #0x0 bne _0208653C - bl ErrorHandling + bl GF_AssertFail _0208653C: bl FUN_02012CC8 pop {r3-r5, pc} @@ -978,7 +978,7 @@ FUN_02086B40: ; 0x02086B40 bl AllocFromHeap add r4, r0, #0x0 bne _02086B54 - bl ErrorHandling + bl GF_AssertFail _02086B54: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] @@ -1403,7 +1403,7 @@ FUN_02086E48: ; 0x02086E48 bl FUN_0200BBF0 cmp r0, #0x0 bne _02086EB2 - bl ErrorHandling + bl GF_AssertFail _02086EB2: ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -1411,7 +1411,7 @@ _02086EB2: bl FUN_0200BF60 cmp r0, #0x0 bne _02086EC4 - bl ErrorHandling + bl GF_AssertFail _02086EC4: add sp, #0x4c pop {r3-r6, pc} diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index 2ccd040d3..f164c88f5 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -463,7 +463,7 @@ _02087322: str r0, [r4, #0x5c] b _02087486 _0208735C: - bl ErrorHandling + bl GF_AssertFail b _02087486 _02087362: bl FUN_02005670 diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s index b343ac2c4..c508e9783 100644 --- a/arm9/asm/unk_02087A6C.s +++ b/arm9/asm/unk_02087A6C.s @@ -29,7 +29,7 @@ FUN_02087A84: ; 0x02087A84 push {r4, lr} add r4, r0, #0x0 bne _02087A8E - bl ErrorHandling + bl GF_AssertFail _02087A8E: add r0, r4, #0x0 bl FreeToHeap @@ -44,17 +44,17 @@ FUN_02087A98: ; 0x02087A98 add r4, r2, #0x0 cmp r5, #0x0 bne _02087AA8 - bl ErrorHandling + bl GF_AssertFail _02087AA8: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02087AB2 - bl ErrorHandling + bl GF_AssertFail _02087AB2: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02087ABC - bl ErrorHandling + bl GF_AssertFail _02087ABC: add r0, r4, #0x0 bl FUN_02087C18 @@ -99,12 +99,12 @@ FUN_02087B0C: ; 0x02087B0C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02087B1A - bl ErrorHandling + bl GF_AssertFail _02087B1A: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02087B24 - bl ErrorHandling + bl GF_AssertFail _02087B24: ldr r0, [r4, #0x0] bl FreeToHeap @@ -134,12 +134,12 @@ FUN_02087B58: ; 0x02087B58 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B66 - bl ErrorHandling + bl GF_AssertFail _02087B66: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02087B70 - bl ErrorHandling + bl GF_AssertFail _02087B70: ldr r1, [r5, #0x0] lsl r0, r4, #0x2 @@ -153,12 +153,12 @@ FUN_02087B78: ; 0x02087B78 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B86 - bl ErrorHandling + bl GF_AssertFail _02087B86: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02087B90 - bl ErrorHandling + bl GF_AssertFail _02087B90: ldr r1, [r5, #0x4] lsl r0, r4, #0x2 @@ -172,12 +172,12 @@ FUN_02087B98: ; 0x02087B98 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BA6 - bl ErrorHandling + bl GF_AssertFail _02087BA6: ldr r0, [r5, #0x8] cmp r0, #0x0 bne _02087BB0 - bl ErrorHandling + bl GF_AssertFail _02087BB0: ldr r1, [r5, #0x8] lsl r0, r4, #0x1 @@ -191,12 +191,12 @@ FUN_02087BB8: ; 0x02087BB8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BC6 - bl ErrorHandling + bl GF_AssertFail _02087BC6: ldr r0, [r5, #0xc] cmp r0, #0x0 bne _02087BD0 - bl ErrorHandling + bl GF_AssertFail _02087BD0: ldr r1, [r5, #0xc] lsl r0, r4, #0x1 @@ -210,12 +210,12 @@ FUN_02087BD8: ; 0x02087BD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BE6 - bl ErrorHandling + bl GF_AssertFail _02087BE6: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02087BF0 - bl ErrorHandling + bl GF_AssertFail _02087BF0: ldr r1, [r5, #0x10] lsl r0, r4, #0x1 @@ -229,12 +229,12 @@ FUN_02087BF8: ; 0x02087BF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087C06 - bl ErrorHandling + bl GF_AssertFail _02087C06: ldr r0, [r5, #0x14] cmp r0, #0x0 bne _02087C10 - bl ErrorHandling + bl GF_AssertFail _02087C10: ldr r1, [r5, #0x14] lsl r0, r4, #0x1 diff --git a/arm9/asm/unk_02088320.s b/arm9/asm/unk_02088320.s index 92381e593..aa0801439 100644 --- a/arm9/asm/unk_02088320.s +++ b/arm9/asm/unk_02088320.s @@ -209,7 +209,7 @@ FUN_02088490: ; 0x02088490 str r0, [sp, #0x3c] cmp r0, #0x0 bge _020884B4 - bl ErrorHandling + bl GF_AssertFail add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} @@ -404,7 +404,7 @@ _02088612: bl FUN_02020248 b _02088656 _02088652: - bl ErrorHandling + bl GF_AssertFail _02088656: ldr r0, [sp, #0x38] str r4, [r0, #0x4] @@ -495,7 +495,7 @@ FUN_020886CC: ; 0x020886CC ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088704 - bl ErrorHandling + bl GF_AssertFail _02088704: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -546,7 +546,7 @@ _02088734: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088768 - bl ErrorHandling + bl GF_AssertFail _02088768: add r4, r4, #0x1 add r6, r6, #0x4 @@ -584,7 +584,7 @@ _02088780: ldr r0, [r0, r4] cmp r0, #0x0 bne _020887B4 - bl ErrorHandling + bl GF_AssertFail _020887B4: ldr r0, [r6, #0x0] ldr r0, [r0, r4] diff --git a/arm9/asm/unk_02088AAC.s b/arm9/asm/unk_02088AAC.s index 65ce7a609..6f47b8646 100644 --- a/arm9/asm/unk_02088AAC.s +++ b/arm9/asm/unk_02088AAC.s @@ -217,7 +217,7 @@ _02088C12: mov r0, #0x5 pop {r3-r5, pc} _02088C16: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x95 str r0, [r4, #0x8] _02088C1E: @@ -231,7 +231,7 @@ _02088C1E: bl Bag_TakeItem cmp r0, #0x0 bne _02088C38 - bl ErrorHandling + bl GF_AssertFail _02088C38: mov r0, #0x4 pop {r3-r5, pc} diff --git a/arm9/asm/unk_02088D1C.s b/arm9/asm/unk_02088D1C.s index a7a41701b..f82d04980 100644 --- a/arm9/asm/unk_02088D1C.s +++ b/arm9/asm/unk_02088D1C.s @@ -209,7 +209,7 @@ FUN_02088D4C: ; 0x02088D4C add r4, r0, #0x0 cmp r4, #0x13 blo _02088D58 - bl ErrorHandling + bl GF_AssertFail _02088D58: mov r0, #0xc add r1, r4, #0x0 @@ -226,7 +226,7 @@ FUN_02088D68: ; 0x02088D68 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D74 - bl ErrorHandling + bl GF_AssertFail _02088D74: mov r0, #0xc add r1, r4, #0x0 @@ -243,7 +243,7 @@ FUN_02088D84: ; 0x02088D84 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D90 - bl ErrorHandling + bl GF_AssertFail _02088D90: mov r0, #0xc add r1, r4, #0x0 @@ -260,7 +260,7 @@ FUN_02088DA0: ; 0x02088DA0 add r4, r0, #0x0 cmp r4, #0x13 blo _02088DAC - bl ErrorHandling + bl GF_AssertFail _02088DAC: mov r0, #0xc add r1, r4, #0x0 @@ -277,7 +277,7 @@ FUN_02088DBC: ; 0x02088DBC add r4, r0, #0x0 cmp r4, #0x13 blo _02088DC8 - bl ErrorHandling + bl GF_AssertFail _02088DC8: mov r0, #0xc add r1, r4, #0x0 diff --git a/arm9/asm/unk_020893E0.s b/arm9/asm/unk_020893E0.s index d1cbe3de2..566bab929 100644 --- a/arm9/asm/unk_020893E0.s +++ b/arm9/asm/unk_020893E0.s @@ -40,7 +40,7 @@ FUN_020893F0: ; 0x020893F0 str r4, [r0, #0x0] pop {r4, pc} _0208940A: - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} .balign 4 _02089410: .word UNK_021C5C58 @@ -62,7 +62,7 @@ FUN_02089418: ; 0x02089418 mov r0, #0x1 pop {r3, pc} _02089434: - bl ErrorHandling + bl GF_AssertFail _02089438: mov r0, #0x0 pop {r3, pc} @@ -85,7 +85,7 @@ FUN_02089444: ; 0x02089444 str r4, [r0, #0x0] pop {r4, pc} _0208945E: - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} .balign 4 _02089464: .word UNK_021C5C58 @@ -107,7 +107,7 @@ FUN_0208946C: ; 0x0208946C mov r0, #0x1 pop {r3, pc} _02089488: - bl ErrorHandling + bl GF_AssertFail _0208948C: mov r0, #0x0 pop {r3, pc} diff --git a/arm9/global.inc b/arm9/global.inc index e4c261964..f94670a16 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -143,7 +143,7 @@ .extern DGT_Hash2SetSource .extern DGTi_Hash2CalcHmac .extern DGTi_hash2_arm4_small -.extern ErrorHandling +.extern GF_AssertFail .extern FS_ChangeDir .extern FS_CloseFile .extern FS_ConvertPathToFileID diff --git a/arm9/lib/include/RTC_api.h b/arm9/lib/include/RTC_api.h index d2577cdfc..09efde7e5 100644 --- a/arm9/lib/include/RTC_api.h +++ b/arm9/lib/include/RTC_api.h @@ -1,6 +1,29 @@ #ifndef NITRO_RTC_API_H_ #define NITRO_RTC_API_H_ +typedef enum RTCAlarmChan +{ + RTC_ALARM_CHAN_1 = 0, + RTC_ALARM_CHAN_2, + RTC_ALARM_CHAN_MAX +} +RTCAlarmChan; + +// Alarm status definitions +typedef enum RTCAlarmStatus +{ + RTC_ALARM_STATUS_OFF = 0, + RTC_ALARM_STATUS_ON, + RTC_ALARM_STATUS_MAX +} +RTCAlarmStatus; + +#define RTC_ALARM_ENABLE_NONE 0x0000 +#define RTC_ALARM_ENABLE_WEEK 0x0001 +#define RTC_ALARM_ENABLE_HOUR 0x0002 +#define RTC_ALARM_ENABLE_MINUTE 0x0004 +#define RTC_ALARM_ENABLE_ALL ( RTC_ALARM_ENABLE_WEEK | RTC_ALARM_ENABLE_HOUR | RTC_ALARM_ENABLE_MINUTE ) + typedef enum RTCWeek { RTC_WEEK_SUNDAY = 0, @@ -12,7 +35,7 @@ typedef enum RTCWeek RTC_WEEK_SATURDAY, RTC_WEEK_MAX } - RTCWeek; +RTCWeek; typedef struct RTCDate { @@ -21,7 +44,7 @@ typedef struct RTCDate u32 day; RTCWeek week; } - RTCDate; +RTCDate; typedef struct RTCTime { @@ -29,6 +52,60 @@ typedef struct RTCTime u32 minute; u32 second; } - RTCTime; +RTCTime; + +typedef struct RTCAlarmParam +{ + RTCWeek week; // Day of the week + u32 hour; // Hour ( 0 ~ 23 ) + u32 minute; // Minute ( 0 ~ 59 ) + u32 enable; // Alarm enable flag ( RTC_ALARM_ENABLE_* ) + +} +RTCAlarmParam; + +typedef enum RTCResult +{ + RTC_RESULT_SUCCESS = 0, + RTC_RESULT_BUSY, + RTC_RESULT_ILLEGAL_PARAMETER, + RTC_RESULT_SEND_ERROR, + RTC_RESULT_INVALID_COMMAND, + RTC_RESULT_ILLEGAL_STATUS, + RTC_RESULT_FATAL_ERROR, + RTC_RESULT_MAX +} +RTCResult; + +typedef void (*RTCCallback) (RTCResult result, void *arg); +typedef void (*RTCInterrupt) (void); + +void RTC_Init(void); +RTCResult RTC_GetDate(RTCDate *date); +RTCResult RTC_GetTime(RTCTime *time); +RTCResult RTC_GetDateTime(RTCDate *date, RTCTime *time); +RTCResult RTC_SetDate(const RTCDate *date); +RTCResult RTC_SetTime(const RTCTime *time); +RTCResult RTC_SetDateTime(const RTCDate *date, const RTCTime *time); +RTCResult RTC_GetAlarmStatus(RTCAlarmChan chan, RTCAlarmStatus *status); +RTCResult RTC_GetAlarmParam(RTCAlarmChan chan, RTCAlarmParam *param); +RTCResult RTC_SetAlarmStatus(RTCAlarmChan chan, const RTCAlarmStatus *status); +RTCResult RTC_SetAlarmParam(RTCAlarmChan chan, const RTCAlarmParam *param); +RTCResult RTC_GetDateAsync(RTCDate *date, RTCCallback callback, void *arg); +RTCResult RTC_GetTimeAsync(RTCTime *time, RTCCallback callback, void *arg); +RTCResult RTC_GetDateTimeAsync(RTCDate *date, RTCTime *time, RTCCallback callback, void *arg); +RTCResult RTC_SetDateAsync(const RTCDate *date, RTCCallback callback, void *arg); +RTCResult RTC_SetTimeAsync(const RTCTime *time, RTCCallback callback, void *arg); +RTCResult RTC_SetDateTimeAsync(const RTCDate *date, const RTCTime *time, RTCCallback callback, + void *arg); +RTCResult RTC_GetAlarmStatusAsync(RTCAlarmChan chan, RTCAlarmStatus *status, RTCCallback callback, + void *arg); +RTCResult RTC_GetAlarmParamAsync(RTCAlarmChan chan, RTCAlarmParam *param, RTCCallback callback, + void *arg); +void RTC_SetAlarmInterrupt(RTCInterrupt interrupt); +RTCResult RTC_SetAlarmStatusAsync(RTCAlarmChan chan, const RTCAlarmStatus *status, + RTCCallback callback, void *arg); +RTCResult RTC_SetAlarmParamAsync(RTCAlarmChan chan, const RTCAlarmParam *param, + RTCCallback callback, void *arg); #endif //NITRO_RTC_API_H_ diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s index db78d4fce..6f673fe86 100644 --- a/arm9/modules/04/asm/thumb_04.s +++ b/arm9/modules/04/asm/thumb_04.s @@ -12,7 +12,7 @@ MOD04_021D74E0: ; 0x021D74E0 ldr r0, [r0, #4] cmp r0, #0 beq _021D74F2 - bl ErrorHandling + bl GF_AssertFail _021D74F2: ldr r1, _021D7648 ; =0x00001FAC add r0, r4, #0 diff --git a/arm9/modules/05/asm/mod05_021D74E0.s b/arm9/modules/05/asm/mod05_021D74E0.s index ec0e0a0e4..730bfc005 100644 --- a/arm9/modules/05/asm/mod05_021D74E0.s +++ b/arm9/modules/05/asm/mod05_021D74E0.s @@ -73,7 +73,7 @@ _021D7564: ldr r0, [r4, #4] cmp r0, #0 beq _021D757A - bl ErrorHandling + bl GF_AssertFail _021D757A: mov r0, #4 mov r1, #0x28 @@ -250,7 +250,7 @@ _021D76E2: ldr r0, [r4, #0x4c] cmp r0, #0 bne _021D7720 - bl ErrorHandling + bl GF_AssertFail _021D7720: ldr r0, [r4, #0x24] bl MOD05_021EF514 @@ -931,7 +931,7 @@ _021D7CC6: add sp, #0xc pop {pc} _021D7CE6: - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {pc} .balign 4, 0 @@ -965,7 +965,7 @@ MOD05_021D7CF0: ; 0x021D7CF0 ldr r0, [r5, #0x30] cmp r0, #0 beq _021D7D36 - bl ErrorHandling + bl GF_AssertFail _021D7D36: mov r0, #4 add r1, r4, #0 diff --git a/arm9/modules/05/asm/mod05_021D7F4C.s b/arm9/modules/05/asm/mod05_021D7F4C.s index 2ba8b6684..fd877faf4 100644 --- a/arm9/modules/05/asm/mod05_021D7F4C.s +++ b/arm9/modules/05/asm/mod05_021D7F4C.s @@ -147,12 +147,12 @@ _021D8034: ldr r0, [r4, #4] cmp r0, #0 bne _021D8062 - bl ErrorHandling + bl GF_AssertFail _021D8062: ldr r0, [r4, #8] cmp r0, #0 bne _021D806C - bl ErrorHandling + bl GF_AssertFail _021D806C: ldrh r1, [r6, #4] cmp r1, #0 @@ -177,7 +177,7 @@ _021D808C: cmp r1, r2 blt _021D8034 _021D8094: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, r5, r6, pc} .balign 4, 0 diff --git a/arm9/modules/05/asm/mod05_021D80E8.s b/arm9/modules/05/asm/mod05_021D80E8.s index c00cb45f8..e228ee0a9 100644 --- a/arm9/modules/05/asm/mod05_021D80E8.s +++ b/arm9/modules/05/asm/mod05_021D80E8.s @@ -1674,7 +1674,7 @@ _021D8E84: mov r0, #2 b _021D8E96 _021D8E8C: - bl ErrorHandling + bl GF_AssertFail add sp, #0x20 mov r0, #0 pop {r3, r4, r5, pc} @@ -1702,7 +1702,7 @@ _021D8EB0: beq _021D8ED2 cmp r0, #3 beq _021D8ED2 - bl ErrorHandling + bl GF_AssertFail add sp, #0x20 mov r0, #0 pop {r3, r4, r5, pc} @@ -2118,7 +2118,7 @@ _021D91DC: ldr r0, _021D9244 ; =0x00000FFF cmp r1, r0 beq _021D91F2 - bl ErrorHandling + bl GF_AssertFail _021D91F2: ldr r0, [r4, #0xc] bl FUN_02034E30 diff --git a/arm9/modules/05/asm/mod05_021D9320.s b/arm9/modules/05/asm/mod05_021D9320.s index 4d0220e56..ec304548a 100644 --- a/arm9/modules/05/asm/mod05_021D9320.s +++ b/arm9/modules/05/asm/mod05_021D9320.s @@ -295,7 +295,7 @@ MOD05_021D9510: ; 0x021D9510 bl FUN_0201FE94 add r5, r0, #0 bne _021D9580 - bl ErrorHandling + bl GF_AssertFail _021D9580: ldrh r1, [r4, #0xa] add r0, r5, #0 @@ -444,7 +444,7 @@ MOD05_021D967C: ; 0x021D967C bl FUN_0200945C cmp r0, #0 bne _021D96A0 - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D96A0: @@ -468,7 +468,7 @@ _021D96A0: bl FUN_02009D68 cmp r0, #1 beq _021D96D0 - bl ErrorHandling + bl GF_AssertFail _021D96D0: mov r0, #0x53 lsl r0, r0, #2 @@ -481,7 +481,7 @@ _021D96D0: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021D96E8: - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 @@ -526,7 +526,7 @@ MOD05_021D971C: ; 0x021D971C bl FUN_0200945C cmp r0, #0 bne _021D9740 - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r4, r5, r6, r7, pc} _021D9740: @@ -554,7 +554,7 @@ _021D9740: add sp, #0xc pop {r4, r5, r6, r7, pc} _021D9774: - bl ErrorHandling + bl GF_AssertFail add sp, #0xc pop {r4, r5, r6, r7, pc} .balign 4, 0 @@ -610,7 +610,7 @@ MOD05_021D97B4: ; 0x021D97B4 bl FUN_0200945C cmp r0, #0 bne _021D97DE - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} _021D97DE: @@ -635,11 +635,11 @@ _021D97DE: bl MOD05_021D9780 cmp r0, #1 beq _021D9818 - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} _021D9814: - bl ErrorHandling + bl GF_AssertFail _021D9818: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -865,7 +865,7 @@ _021D99A6: bl FUN_02020248 b _021D99EE _021D99EA: - bl ErrorHandling + bl GF_AssertFail _021D99EE: add r0, r6, #0 add sp, #0x74 diff --git a/arm9/modules/05/asm/mod05_021D9A48.s b/arm9/modules/05/asm/mod05_021D9A48.s index 85ba30d11..ee169f984 100644 --- a/arm9/modules/05/asm/mod05_021D9A48.s +++ b/arm9/modules/05/asm/mod05_021D9A48.s @@ -15,7 +15,7 @@ MOD05_021D9A48: ; 0x021D9A48 add r4, r3, #0 cmp r1, r0 bne _021D9A60 - bl ErrorHandling + bl GF_AssertFail _021D9A60: mov r0, #0 add r1, r6, #0 @@ -70,7 +70,7 @@ MOD05_021D9AA8: ; 0x021D9AA8 add r5, r3, #0 cmp r4, r0 bne _021D9ABE - bl ErrorHandling + bl GF_AssertFail _021D9ABE: add r0, r6, #0 add r1, r4, #0 @@ -78,14 +78,14 @@ _021D9ABE: bl NARC_AllocAndReadWholeMember add r4, r0, #0 bne _021D9AD0 - bl ErrorHandling + bl GF_AssertFail _021D9AD0: add r0, r4, #0 mov r1, #0 bl NNS_G3dGetAnmByIdx add r6, r0, #0 bne _021D9AE0 - bl ErrorHandling + bl GF_AssertFail _021D9AE0: ldr r0, [sp, #0x1c] add r1, r6, #0 @@ -94,7 +94,7 @@ _021D9AE0: str r0, [r5] cmp r5, #0 bne _021D9AF4 - bl ErrorHandling + bl GF_AssertFail _021D9AF4: ldr r0, [r5] ldr r3, [sp, #0x18] @@ -257,7 +257,7 @@ MOD05_021D9C00: ; 0x021D9C00 ldr r0, [r4, #4] cmp r0, #1 beq _021D9C0E - bl ErrorHandling + bl GF_AssertFail _021D9C0E: ldr r0, [r4, #0x1c] pop {r4, pc} @@ -280,7 +280,7 @@ MOD05_021D9C14: ; 0x021D9C14 bl NARC_ReadWholeMember cmp r4, #4 blt _021D9C38 - bl ErrorHandling + bl GF_AssertFail _021D9C38: lsl r1, r4, #2 add r0, sp, #0x14 @@ -312,7 +312,7 @@ _021D9C66: ldr r0, [r4, #0x34] cmp r5, r0 bne _021D9C74 - bl ErrorHandling + bl GF_AssertFail _021D9C74: add r6, r6, #1 add r4, #0x28 @@ -368,7 +368,7 @@ _021D9CD8: add r1, #0x28 cmp r2, #0x10 blt _021D9C80 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 add sp, #0x24 pop {r4, r5, r6, r7, pc} @@ -470,7 +470,7 @@ _021D9D9C: _021D9DA4: cmp r4, #0x10 bne _021D9DAC - bl ErrorHandling + bl GF_AssertFail _021D9DAC: ldr r0, [sp, #0x10] add r0, r0, #4 @@ -495,7 +495,7 @@ MOD05_021D9DC0: ; 0x021D9DC0 str r3, [sp] cmp r6, #0 bne _021D9DDC - bl ErrorHandling + bl GF_AssertFail add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -516,7 +516,7 @@ _021D9DEC: bl NARC_ReadWholeMember cmp r4, #4 blt _021D9E02 - bl ErrorHandling + bl GF_AssertFail _021D9E02: lsl r1, r4, #2 add r0, sp, #8 @@ -596,7 +596,7 @@ MOD05_021D9E80: ; 0x021D9E80 add r4, r2, #0 str r0, [sp] bne _021D9E94 - bl ErrorHandling + bl GF_AssertFail _021D9E94: add r0, r4, #0 bl MOD05_021DA220 @@ -734,7 +734,7 @@ MOD05_021D9F80: ; 0x021D9F80 beq _021D9FB2 cmp r5, #0 bne _021D9F90 - bl ErrorHandling + bl GF_AssertFail _021D9F90: ldr r0, [r5, #4] cmp r0, #0 @@ -770,7 +770,7 @@ MOD05_021D9FB4: ; 0x021D9FB4 bl NARC_ReadWholeMember cmp r5, #4 blt _021D9FD4 - bl ErrorHandling + bl GF_AssertFail _021D9FD4: lsl r1, r5, #2 add r0, sp, #4 @@ -779,7 +779,7 @@ _021D9FD4: mvn r0, r0 cmp r5, r0 bne _021D9FE6 - bl ErrorHandling + bl GF_AssertFail _021D9FE6: mov r0, #0 mov r2, #0x28 @@ -834,7 +834,7 @@ MOD05_021DA03C: ; 0x021DA03C add r4, r1, #0 cmp r5, #0 bne _021DA04A - bl ErrorHandling + bl GF_AssertFail _021DA04A: mov r6, #0 add r1, r6, #0 @@ -850,7 +850,7 @@ _021DA050: ldr r0, [r6, #4] cmp r0, #0 bne _021DA072 - bl ErrorHandling + bl GF_AssertFail b _021DA072 _021DA06A: add r1, r1, #1 @@ -860,7 +860,7 @@ _021DA06A: _021DA072: cmp r6, #0 bne _021DA07A - bl ErrorHandling + bl GF_AssertFail _021DA07A: add r0, r6, #0 pop {r4, r5, r6, pc} @@ -881,7 +881,7 @@ MOD05_021DA080: ; 0x021DA080 bl NARC_ReadWholeMember cmp r4, #4 blt _021DA0A0 - bl ErrorHandling + bl GF_AssertFail _021DA0A0: lsl r1, r4, #2 add r0, sp, #4 @@ -900,7 +900,7 @@ _021DA0AC: ldr r0, [r4, #4] cmp r0, #0 bne _021DA0CE - bl ErrorHandling + bl GF_AssertFail b _021DA0CE _021DA0C6: add r2, r2, #1 @@ -910,7 +910,7 @@ _021DA0C6: _021DA0CE: cmp r4, #0 bne _021DA0D6 - bl ErrorHandling + bl GF_AssertFail _021DA0D6: add r0, r4, #0 add sp, #0x14 @@ -1171,7 +1171,7 @@ MOD05_021DA26C: ; 0x021DA26C add r5, r0, #0 add r4, r1, #0 bne _021DA278 - bl ErrorHandling + bl GF_AssertFail _021DA278: mov r1, #0x10 mov r0, #0 @@ -1203,7 +1203,7 @@ _021DA292: strb r4, [r0] b _021DA2B6 _021DA2AE: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} _021DA2B6: @@ -1265,7 +1265,7 @@ MOD05_021DA304: ; 0x021DA304 add r6, r2, #0 cmp r4, #4 ble _021DA314 - bl ErrorHandling + bl GF_AssertFail _021DA314: cmp r5, #0 beq _021DA31A @@ -1284,7 +1284,7 @@ MOD05_021DA320: ; 0x021DA320 add r6, r2, #0 cmp r4, r0 blt _021DA332 - bl ErrorHandling + bl GF_AssertFail _021DA332: lsl r0, r4, #2 str r6, [r5, r0] @@ -1299,7 +1299,7 @@ MOD05_021DA338: ; 0x021DA338 add r4, r1, #0 cmp r4, r0 blt _021DA34A - bl ErrorHandling + bl GF_AssertFail _021DA34A: lsl r0, r4, #2 ldr r0, [r5, r0] @@ -1368,7 +1368,7 @@ _021DA3AC: bl MOD05_021D9C14 add r4, r0, #0 bne _021DA3D2 - bl ErrorHandling + bl GF_AssertFail _021DA3D2: ldr r0, [sp, #0x4c] add r1, r5, #0 @@ -1464,7 +1464,7 @@ MOD05_021DA464: ; 0x021DA464 bl MOD05_021DA26C add r5, r0, #0 bne _021DA482 - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021DA482: @@ -1476,7 +1476,7 @@ _021DA482: ldrb r4, [r0] cmp r4, #0 bne _021DA498 - bl ErrorHandling + bl GF_AssertFail _021DA498: cmp r4, #0 bne _021DA49E @@ -1506,7 +1506,7 @@ MOD05_021DA4BC: ; 0x021DA4BC add r6, r3, #0 cmp r4, #6 blo _021DA4CE - bl ErrorHandling + bl GF_AssertFail _021DA4CE: add r0, r5, #0 add r1, r7, #0 @@ -1517,7 +1517,7 @@ _021DA4CE: ldr r0, [r5, r4] cmp r0, #0 beq _021DA4E6 - bl ErrorHandling + bl GF_AssertFail _021DA4E6: str r6, [r5, r4] pop {r3, r4, r5, r6, r7, pc} @@ -1531,7 +1531,7 @@ MOD05_021DA4EC: ; 0x021DA4EC add r6, r2, #0 cmp r4, #0 bne _021DA4FC - bl ErrorHandling + bl GF_AssertFail _021DA4FC: add r0, r5, #0 add r1, r4, #0 @@ -1552,7 +1552,7 @@ MOD05_021DA514: ; 0x021DA514 add r4, r3, #0 cmp r5, #0 bne _021DA526 - bl ErrorHandling + bl GF_AssertFail _021DA526: add r0, r6, #0 add r1, r5, #0 @@ -1578,7 +1578,7 @@ MOD05_021DA54C: ; 0x021DA54C add r4, r1, #0 add r6, r2, #0 bne _021DA55A - bl ErrorHandling + bl GF_AssertFail _021DA55A: add r0, r4, #0 add r1, r6, #0 @@ -1597,7 +1597,7 @@ MOD05_021DA574: ; 0x021DA574 add r5, r0, #0 add r4, r1, #0 bne _021DA580 - bl ErrorHandling + bl GF_AssertFail _021DA580: add r0, r5, #0 add r1, r4, #0 @@ -1611,7 +1611,7 @@ MOD05_021DA58C: ; 0x021DA58C bl MOD05_021DA574 add r4, r0, #0 bne _021DA59A - bl ErrorHandling + bl GF_AssertFail _021DA59A: add r0, r4, #0 bl MOD05_021DA20C diff --git a/arm9/modules/05/asm/mod05_021DA5B8.s b/arm9/modules/05/asm/mod05_021DA5B8.s index e961bb5a1..b4648ab3f 100644 --- a/arm9/modules/05/asm/mod05_021DA5B8.s +++ b/arm9/modules/05/asm/mod05_021DA5B8.s @@ -115,7 +115,7 @@ _021DA606: bl MOD05_021DA464 b _021DA692 _021DA688: - bl ErrorHandling + bl GF_AssertFail add sp, #0x84 mov r0, #1 pop {r4, r5, r6, r7, pc} @@ -156,7 +156,7 @@ _021DA6CC: mov r2, #0 b _021DA6DA _021DA6D4: - bl ErrorHandling + bl GF_AssertFail mov r2, #0 _021DA6DA: ldr r0, [r5, #0x50] @@ -220,7 +220,7 @@ _021DA752: mov r2, #1 b _021DA760 _021DA75A: - bl ErrorHandling + bl GF_AssertFail mov r2, #1 _021DA760: ldr r0, [r5, #0x50] @@ -350,7 +350,7 @@ _021DA7E4: bl MOD05_021DA464 b _021DA878 _021DA864: - bl ErrorHandling + bl GF_AssertFail mov r0, #1 bl MOD05_021D7CA4 mov r0, #6 @@ -412,7 +412,7 @@ _021DA8D6: mov r2, #2 b _021DA8E4 _021DA8DE: - bl ErrorHandling + bl GF_AssertFail mov r2, #0 _021DA8E4: ldr r0, [r5, #0x50] @@ -477,7 +477,7 @@ _021DA960: mov r2, #3 b _021DA96E _021DA968: - bl ErrorHandling + bl GF_AssertFail mov r2, #1 _021DA96E: ldr r0, [r5, #0x50] @@ -737,7 +737,7 @@ _021DAB10: bl MOD05_021DA464 b _021DAB68 _021DAB5E: - bl ErrorHandling + bl GF_AssertFail add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} @@ -753,7 +753,7 @@ _021DAB68: bl FUN_0205ADDC b _021DAB86 _021DAB82: - bl ErrorHandling + bl GF_AssertFail _021DAB86: ldr r0, [r4] add r0, r0, #1 @@ -784,7 +784,7 @@ _021DABBA: bl FUN_0205ADDC b _021DABC6 _021DABC2: - bl ErrorHandling + bl GF_AssertFail _021DABC6: ldr r0, [r4] add r0, r0, #1 @@ -958,7 +958,7 @@ _021DACDA: bl MOD05_021DA464 b _021DAD34 _021DAD2A: - bl ErrorHandling + bl GF_AssertFail add sp, #0x40 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} @@ -974,7 +974,7 @@ _021DAD34: bl FUN_0205ADDC b _021DAD52 _021DAD4E: - bl ErrorHandling + bl GF_AssertFail _021DAD52: ldr r0, [r4] add r0, r0, #1 @@ -1003,7 +1003,7 @@ _021DAD80: bl FUN_0205ADDC b _021DAD8C _021DAD88: - bl ErrorHandling + bl GF_AssertFail _021DAD8C: ldr r0, [r4] add r0, r0, #1 @@ -1152,7 +1152,7 @@ _021DAE50: add sp, #0x84 pop {r4, r5, r6, r7, pc} _021DAEC8: - bl ErrorHandling + bl GF_AssertFail add sp, #0x84 pop {r4, r5, r6, r7, pc} .balign 4, 0 @@ -1189,7 +1189,7 @@ _021DAF04: mov r2, #0 b _021DAF12 _021DAF0C: - bl ErrorHandling + bl GF_AssertFail mov r2, #0 _021DAF12: ldr r0, [r5, #0x50] @@ -1232,7 +1232,7 @@ _021DAF58: mov r2, #1 b _021DAF66 _021DAF60: - bl ErrorHandling + bl GF_AssertFail mov r2, #1 _021DAF66: ldr r0, [r5, #0x50] @@ -1302,7 +1302,7 @@ MOD05_021DAFA8: ; 0x021DAFA8 bl FUN_0204A94C cmp r0, #0 bne _021DAFEA - bl ErrorHandling + bl GF_AssertFail _021DAFEA: ldr r0, [sp, #0x18] bl MOD05_021E7EC8 @@ -1315,7 +1315,7 @@ _021DAFEA: bl MOD05_021D9DC0 cmp r0, #0 bne _021DB008 - bl ErrorHandling + bl GF_AssertFail _021DB008: ldr r0, [sp, #0x14] ldr r2, [r4, #0x4c] @@ -1675,7 +1675,7 @@ _021DB2E6: mov r6, #0x27 b _021DB2EE _021DB2EA: - bl ErrorHandling + bl GF_AssertFail _021DB2EE: mov r1, #0 str r1, [sp] diff --git a/arm9/modules/05/asm/mod05_021DB44C.s b/arm9/modules/05/asm/mod05_021DB44C.s index 6da3dfc50..eaee32f87 100644 --- a/arm9/modules/05/asm/mod05_021DB44C.s +++ b/arm9/modules/05/asm/mod05_021DB44C.s @@ -10,7 +10,7 @@ MOD05_021DB44C: ; 0x021DB44C add r5, r0, #0 cmp r6, #3 blo _021DB45A - bl ErrorHandling + bl GF_AssertFail _021DB45A: mov r0, #4 mov r1, #0x14 @@ -60,7 +60,7 @@ MOD05_021DB4B0: ; 0x021DB4B0 push {r4, lr} add r4, r0, #0 bne _021DB4BA - bl ErrorHandling + bl GF_AssertFail _021DB4BA: ldr r0, [r4] add r0, r0, #4 @@ -77,7 +77,7 @@ MOD05_021DB4D0: ; 0x021DB4D0 push {r3, r4, r5, lr} add r4, r0, #0 bne _021DB4DA - bl ErrorHandling + bl GF_AssertFail _021DB4DA: bl GF_RTC_TimeToSec lsr r1, r0, #0x1f diff --git a/arm9/modules/05/asm/mod05_021DB900.s b/arm9/modules/05/asm/mod05_021DB900.s index 9edf9e7c2..931fcfad7 100644 --- a/arm9/modules/05/asm/mod05_021DB900.s +++ b/arm9/modules/05/asm/mod05_021DB900.s @@ -11,7 +11,7 @@ MOD05_021DB900: ; 0x021DB900 bl AllocFromHeap add r4, r0, #0 bne _021DB912 - bl ErrorHandling + bl GF_AssertFail _021DB912: add r0, r4, #0 pop {r4, pc} @@ -37,7 +37,7 @@ MOD05_021DB918: ; 0x021DB918 bl FS_ReadFile cmp r0, #0 bge _021DB946 - bl ErrorHandling + bl GF_AssertFail _021DB946: add r0, sp, #4 add r1, sp, #0 @@ -45,7 +45,7 @@ _021DB946: bl FS_ReadFile cmp r0, #0 bge _021DB958 - bl ErrorHandling + bl GF_AssertFail _021DB958: add r0, sp, #0 ldrh r1, [r0, #2] @@ -58,7 +58,7 @@ _021DB958: str r0, [r5] cmp r0, #0 bne _021DB974 - bl ErrorHandling + bl GF_AssertFail _021DB974: mov r0, #4 add r1, r4, #0 @@ -66,7 +66,7 @@ _021DB974: str r0, [r5, #4] cmp r0, #0 bne _021DB986 - bl ErrorHandling + bl GF_AssertFail _021DB986: ldr r1, [r5] add r0, sp, #4 @@ -74,7 +74,7 @@ _021DB986: bl FS_ReadFile cmp r0, #0 bge _021DB998 - bl ErrorHandling + bl GF_AssertFail _021DB998: ldr r1, [r5, #4] add r0, sp, #4 @@ -82,14 +82,14 @@ _021DB998: bl FS_ReadFile cmp r0, #0 bge _021DB9AA - bl ErrorHandling + bl GF_AssertFail _021DB9AA: add r0, sp, #4 bl FS_CloseFile add sp, #0x4c pop {r3, r4, r5, r6, pc} _021DB9B4: - bl ErrorHandling + bl GF_AssertFail add sp, #0x4c pop {r3, r4, r5, r6, pc} diff --git a/arm9/modules/05/asm/mod05_021DBD84.s b/arm9/modules/05/asm/mod05_021DBD84.s index 7c1073148..9a6cb8471 100644 --- a/arm9/modules/05/asm/mod05_021DBD84.s +++ b/arm9/modules/05/asm/mod05_021DBD84.s @@ -16,7 +16,7 @@ MOD05_021DBD84: ; 0x021DBD84 add r4, r1, r0 cmp r2, #0x10 blo _021DBD9E - bl ErrorHandling + bl GF_AssertFail _021DBD9E: mov r0, #4 bl FUN_0201EB64 diff --git a/arm9/modules/05/asm/mod05_021DBE04.s b/arm9/modules/05/asm/mod05_021DBE04.s index 4b4b51772..873fd4820 100644 --- a/arm9/modules/05/asm/mod05_021DBE04.s +++ b/arm9/modules/05/asm/mod05_021DBE04.s @@ -9,11 +9,11 @@ MOD05_021DBE04: ; 0x021DBE04 ldr r4, [r0, #0x18] cmp r4, #0 bne _021DBE10 - bl ErrorHandling + bl GF_AssertFail _021DBE10: cmp r4, #5 blt _021DBE18 - bl ErrorHandling + bl GF_AssertFail _021DBE18: sub r0, r4, #1 pop {r4, pc} diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index b637fb932..8d4f91fae 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -68,7 +68,7 @@ MOD05_021DC124: ; 0x021DC124 add r4, r1, #0 cmp r0, #6 beq _021DC134 - bl ErrorHandling + bl GF_AssertFail _021DC134: ldr r2, [r5, #4] cmp r2, r4 @@ -78,7 +78,7 @@ _021DC134: bl MOD05_021DC608 cmp r0, #0 bne _021DC14A - bl ErrorHandling + bl GF_AssertFail _021DC14A: ldr r0, [r5] mov r1, #0 @@ -86,7 +86,7 @@ _021DC14A: bl MOD05_021DC608 cmp r0, #0 bne _021DC15C - bl ErrorHandling + bl GF_AssertFail _021DC15C: ldr r0, [r5] mov r1, #3 @@ -94,7 +94,7 @@ _021DC15C: bl MOD05_021DC608 cmp r0, #0 bne _021DC16E - bl ErrorHandling + bl GF_AssertFail _021DC16E: str r4, [r5, #4] _021DC170: @@ -122,7 +122,7 @@ _021DC190: ldr r0, [r5, #0x14] cmp r0, #0 beq _021DC19A - bl ErrorHandling + bl GF_AssertFail _021DC19A: str r4, [r5, #8] ldr r0, [r5, #4] @@ -182,7 +182,7 @@ _021DC1F6: bl MOD05_021DC608 cmp r0, #0 bne _021DC208 - bl ErrorHandling + bl GF_AssertFail _021DC208: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -200,7 +200,7 @@ _021DC210: bl MOD05_021DC608 cmp r0, #0 bne _021DC22E - bl ErrorHandling + bl GF_AssertFail _021DC22E: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -213,7 +213,7 @@ _021DC236: bl MOD05_021DC608 cmp r0, #0 bne _021DC248 - bl ErrorHandling + bl GF_AssertFail _021DC248: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -236,7 +236,7 @@ _021DC264: bl MOD05_021DC608 cmp r0, #0 bne _021DC276 - bl ErrorHandling + bl GF_AssertFail _021DC276: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -288,7 +288,7 @@ _021DC2C4: bl MOD05_021DC608 cmp r0, #0 bne _021DC2D6 - bl ErrorHandling + bl GF_AssertFail _021DC2D6: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -311,7 +311,7 @@ _021DC2F2: bl MOD05_021DC608 cmp r0, #0 bne _021DC304 - bl ErrorHandling + bl GF_AssertFail _021DC304: ldr r0, [r4] ldr r2, [r4, #8] @@ -319,7 +319,7 @@ _021DC304: bl MOD05_021DC608 cmp r0, #0 bne _021DC316 - bl ErrorHandling + bl GF_AssertFail _021DC316: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -337,7 +337,7 @@ _021DC31E: bl MOD05_021DC608 cmp r0, #0 bne _021DC33C - bl ErrorHandling + bl GF_AssertFail _021DC33C: ldr r0, [r4, #0xc] add r0, r0, #1 @@ -1559,7 +1559,7 @@ _021DCC66: bl MOD05_021DCD68 cmp r0, #0 bne _021DCC74 - bl ErrorHandling + bl GF_AssertFail _021DCC74: ldr r0, [r4, #0x18] add r0, r0, #1 @@ -1981,7 +1981,7 @@ MOD05_021DCF68: ; 0x021DCF68 str r0, [sp, #0x14] cmp r0, #0 bne _021DCFA0 - bl ErrorHandling + bl GF_AssertFail _021DCFA0: ldr r0, [sp, #0x14] add r1, sp, #0x18 @@ -2043,15 +2043,15 @@ MOD05_021DD010: ; 0x021DD010 add r4, r1, #0 cmp r0, #0 beq _021DD020 - bl ErrorHandling + bl GF_AssertFail _021DD020: cmp r4, #0 bgt _021DD028 - bl ErrorHandling + bl GF_AssertFail _021DD028: cmp r4, #0x28 bls _021DD030 - bl ErrorHandling + bl GF_AssertFail _021DD030: add r0, r5, #0 add r0, #0xc @@ -10147,7 +10147,7 @@ MOD05_021E0FA4: ; 0x021E0FA4 ldr r0, [r5, r0] cmp r0, #0 beq _021E0FB6 - bl ErrorHandling + bl GF_AssertFail _021E0FB6: ldr r1, _021E0FCC ; =0x00000F5C mov r0, #1 diff --git a/arm9/modules/05/asm/mod05_021E1374.s b/arm9/modules/05/asm/mod05_021E1374.s index a0192db68..0e1a6b449 100644 --- a/arm9/modules/05/asm/mod05_021E1374.s +++ b/arm9/modules/05/asm/mod05_021E1374.s @@ -17,7 +17,7 @@ MOD05_021E1374: ; 0x021E1374 bl AllocFromHeap add r4, r0, #0 bne _021E1396 - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _021E1396: mov r2, #0x47 @@ -493,7 +493,7 @@ MOD05_021E1724: ; 0x021E1724 bl AllocFromHeap add r4, r0, #0 bne _021E173C - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _021E173C: ldr r0, _021E1750 ; =MOD05_021E1754 @@ -520,7 +520,7 @@ MOD05_021E1754: ; 0x021E1754 ldrh r0, [r1, r0] cmp r0, #0 bne _021E1770 - bl ErrorHandling + bl GF_AssertFail _021E1770: ldr r2, [r4, #8] ldr r0, _021E1790 ; =0x00000112 diff --git a/arm9/modules/05/asm/mod05_021E2E88.s b/arm9/modules/05/asm/mod05_021E2E88.s index 75d92e5b5..a81ba2f1d 100644 --- a/arm9/modules/05/asm/mod05_021E2E88.s +++ b/arm9/modules/05/asm/mod05_021E2E88.s @@ -568,7 +568,7 @@ _021E32E0: str r0, [r4, #0x14] pop {r4, pc} _021E32E6: - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} .balign 4, 0 _021E32EC: .word MOD05_021E3124 diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index d8a138884..73ee60ca2 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -495,7 +495,7 @@ MOD05_021E37CC: ; 0x021E37CC ldr r4, [sp, #0x20] cmp r0, #0 beq _021E37E4 - bl ErrorHandling + bl GF_AssertFail _021E37E4: mov r0, #0 str r0, [r6, #0x18] @@ -587,7 +587,7 @@ MOD05_021E3888: ; 0x021E3888 bl MOD05_021E35AC cmp r0, #0 beq _021E389E - bl ErrorHandling + bl GF_AssertFail _021E389E: str r4, [r5, #0x18] mov r0, #0 @@ -837,7 +837,7 @@ MOD05_021E3A70: ; 0x021E3A70 add r7, r3, #0 cmp r0, #0 beq _021E3A84 - bl ErrorHandling + bl GF_AssertFail _021E3A84: mov r1, #0 str r1, [r5, #0x18] @@ -1508,7 +1508,7 @@ MOD05_021E3FC4: ; 0x021E3FC4 bl FUN_0201FF84 add r4, r0, #0 bne _021E3FF2 - bl ErrorHandling + bl GF_AssertFail _021E3FF2: add r0, r4, #0 add sp, #0x20 @@ -1709,7 +1709,7 @@ MOD05_021E4160: ; 0x021E4160 add r7, r3, #0 cmp r0, #0 beq _021E4176 - bl ErrorHandling + bl GF_AssertFail _021E4176: ldr r3, [sp, #0x1c] add r0, r5, #0 @@ -1827,7 +1827,7 @@ MOD05_021E4240: ; 0x021E4240 add r7, r3, #0 cmp r0, #0 beq _021E4256 - bl ErrorHandling + bl GF_AssertFail _021E4256: ldr r3, [sp, #0x1c] add r0, r5, #0 @@ -2569,7 +2569,7 @@ MOD05_021E47BC: ; 0x021E47BC add r5, r3, #0 cmp r0, #0 beq _021E47D8 - bl ErrorHandling + bl GF_AssertFail _021E47D8: mov r1, #0 str r1, [r4, #0x18] @@ -2787,7 +2787,7 @@ _021E4976: mov r6, #0 b _021E4980 _021E497A: - bl ErrorHandling + bl GF_AssertFail mov r6, #0 _021E4980: ldr r0, [r5, #4] diff --git a/arm9/modules/05/asm/mod05_021E4AE4.s b/arm9/modules/05/asm/mod05_021E4AE4.s index 635d46f69..98146a9c2 100644 --- a/arm9/modules/05/asm/mod05_021E4AE4.s +++ b/arm9/modules/05/asm/mod05_021E4AE4.s @@ -76,7 +76,7 @@ MOD05_021E4B64: ; 0x021E4B64 bl MOD05_021E4D2C cmp r0, #0 beq _021E4B78 - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} _021E4B78: add r0, r5, #0 @@ -166,7 +166,7 @@ MOD05_021E4C08: ; 0x021E4C08 bl MOD05_021E4D2C cmp r0, #0 bne _021E4C1A - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} _021E4C1A: @@ -333,7 +333,7 @@ _021E4D1C: sub r4, r4, #1 bne _021E4D0E _021E4D22: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} .balign 4, 0 @@ -402,7 +402,7 @@ _021E4D7A: cmp r2, #0x20 bne _021E4D72 _021E4D82: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} nop @@ -454,7 +454,7 @@ MOD05_021E4DC4: ; 0x021E4DC4 bl FUN_020644E4 add r4, r0, #0 bne _021E4DDE - bl ErrorHandling + bl GF_AssertFail _021E4DDE: add r0, r4, #0 add sp, #8 @@ -566,7 +566,7 @@ MOD05_021E4E90: ; 0x021E4E90 bl FUN_0201F6E8 add r4, r0, #0 bne _021E4EC0 - bl ErrorHandling + bl GF_AssertFail _021E4EC0: cmp r4, #0 beq _021E4EDA @@ -618,7 +618,7 @@ MOD05_021E4EFC: ; 0x021E4EFC bl FUN_02021050 add r4, r0, #0 bne _021E4F2E - bl ErrorHandling + bl GF_AssertFail _021E4F2E: add r0, r4, #0 bl FUN_020210AC @@ -638,7 +638,7 @@ _021E4F3C: bl MOD05_021E4FC8 add r4, r0, #0 bne _021E4F58 - bl ErrorHandling + bl GF_AssertFail _021E4F58: add r0, r4, #0 add sp, #0x1c @@ -700,7 +700,7 @@ _021E4FBA: add r3, #8 sub r2, r2, #1 bne _021E4FAE - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} .balign 4, 0 @@ -742,7 +742,7 @@ _021E4FFC: _021E5002: cmp r4, #0 bne _021E500A - bl ErrorHandling + bl GF_AssertFail _021E500A: add r0, r4, #0 mov r1, #0 @@ -790,7 +790,7 @@ _021E505C: add r3, #8 sub r2, r2, #1 bne _021E5052 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .balign 4, 0 @@ -884,7 +884,7 @@ MOD05_021E50D4: ; 0x021E50D4 bl FUN_02020F54 cmp r0, #0 bne _021E5106 - bl ErrorHandling + bl GF_AssertFail _021E5106: ldr r2, [r4, #0x18] add r0, r5, #0 @@ -982,7 +982,7 @@ MOD05_021E5198: ; 0x021E5198 bl NNS_G3dResDefaultSetup cmp r0, #0 bne _021E51C8 - bl ErrorHandling + bl GF_AssertFail _021E51C8: ldr r0, [r4] bl NNS_G3dGetMdlSet @@ -993,7 +993,7 @@ _021E51C8: str r0, [r5] cmp r5, #0 bne _021E51E0 - bl ErrorHandling + bl GF_AssertFail _021E51E0: ldr r1, [r5] add r0, r6, #0 diff --git a/arm9/modules/05/asm/mod05_021E55BC.s b/arm9/modules/05/asm/mod05_021E55BC.s index 9c3842616..517222fbe 100644 --- a/arm9/modules/05/asm/mod05_021E55BC.s +++ b/arm9/modules/05/asm/mod05_021E55BC.s @@ -134,7 +134,7 @@ MOD05_021E569C: ; 0x021E569C bl FUN_020582A8 cmp r0, #0 bne _021E56B8 - bl ErrorHandling + bl GF_AssertFail _021E56B8: ldr r0, [r4] cmp r0, #0 diff --git a/arm9/modules/05/asm/mod05_021E577C.s b/arm9/modules/05/asm/mod05_021E577C.s index 6ae8f9eda..bad97efed 100644 --- a/arm9/modules/05/asm/mod05_021E577C.s +++ b/arm9/modules/05/asm/mod05_021E577C.s @@ -134,7 +134,7 @@ MOD05_021E585C: ; 0x021E585C bl FUN_020582A8 cmp r0, #0 bne _021E5878 - bl ErrorHandling + bl GF_AssertFail _021E5878: add r0, r5, #0 add r1, sp, #0 diff --git a/arm9/modules/05/asm/mod05_021E5FD8.s b/arm9/modules/05/asm/mod05_021E5FD8.s index ab5f7010b..f341dfd88 100644 --- a/arm9/modules/05/asm/mod05_021E5FD8.s +++ b/arm9/modules/05/asm/mod05_021E5FD8.s @@ -825,7 +825,7 @@ MOD05_021E6638: ; 0x021E6638 str r0, [r4, #0x14] cmp r0, #0 bne _021E6666 - bl ErrorHandling + bl GF_AssertFail _021E6666: ldr r1, _021E6674 ; =MOD05_021E6678 add r0, r5, #0 @@ -1685,13 +1685,13 @@ MOD05_021E6CC4: ; 0x021E6CC4 ldr r0, [r5, #0x30] cmp r1, r0 bgt _021E6D2A - bl ErrorHandling + bl GF_AssertFail _021E6D2A: ldr r1, [sp, #0x10] ldr r0, [r5, #0x2c] cmp r1, r0 blt _021E6D36 - bl ErrorHandling + bl GF_AssertFail _021E6D36: mov r0, #0 str r0, [sp] @@ -1807,13 +1807,13 @@ _021E6E06: ldr r0, [r4, #0x30] cmp r1, r0 beq _021E6E12 - bl ErrorHandling + bl GF_AssertFail _021E6E12: ldr r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 beq _021E6E1E - bl ErrorHandling + bl GF_AssertFail _021E6E1E: ldr r0, [r4, #0x3c] ldr r1, [r4, #0xc] @@ -1918,13 +1918,13 @@ MOD05_021E6E90: ; 0x021E6E90 ldr r0, [r5, #0x30] cmp r1, r0 blt _021E6EFA - bl ErrorHandling + bl GF_AssertFail _021E6EFA: ldr r1, [sp, #0x10] ldr r0, [r5, #0x2c] cmp r1, r0 bgt _021E6F06 - bl ErrorHandling + bl GF_AssertFail _021E6F06: mov r0, #0 str r0, [sp] @@ -2053,13 +2053,13 @@ _021E6FEC: ldr r0, [r4, #0x30] cmp r1, r0 beq _021E6FF8 - bl ErrorHandling + bl GF_AssertFail _021E6FF8: ldr r1, [sp, #4] ldr r0, [r4, #0x2c] cmp r1, r0 beq _021E7004 - bl ErrorHandling + bl GF_AssertFail _021E7004: ldr r0, [r4, #0x3c] ldr r1, [r4, #0xc] @@ -2274,7 +2274,7 @@ _021E7198: bl FUN_0200CA44 add r4, r0, #0 bne _021E71DA - bl ErrorHandling + bl GF_AssertFail _021E71DA: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} @@ -2397,7 +2397,7 @@ MOD05_021E72B8: ; 0x021E72B8 bl AllocFromHeapAtEnd add r4, r0, #0 bne _021E72CC - bl ErrorHandling + bl GF_AssertFail _021E72CC: add r0, r4, #0 mov r1, #0 diff --git a/arm9/modules/05/asm/mod05_021E779C.s b/arm9/modules/05/asm/mod05_021E779C.s index ad4118ff1..7c09387c9 100644 --- a/arm9/modules/05/asm/mod05_021E779C.s +++ b/arm9/modules/05/asm/mod05_021E779C.s @@ -38,7 +38,7 @@ MOD05_021E77C8: ; 0x021E77C8 sub r1, r1, #1 str r1, [r0] bpl _021E77D6 - bl ErrorHandling + bl GF_AssertFail _021E77D6: pop {r3, pc} @@ -56,7 +56,7 @@ MOD05_021E77E0: ; 0x021E77E0 sub r1, r1, #1 str r1, [r0, #4] bpl _021E77EE - bl ErrorHandling + bl GF_AssertFail _021E77EE: pop {r3, pc} @@ -544,7 +544,7 @@ MOD05_021E7B78: ; 0x021E7B78 bl FUN_020582A8 cmp r0, #0 bne _021E7B94 - bl ErrorHandling + bl GF_AssertFail _021E7B94: add r0, r6, #0 add r1, sp, #0 diff --git a/arm9/modules/05/asm/mod05_021E7C00.s b/arm9/modules/05/asm/mod05_021E7C00.s index 686fe6982..aaa4fb707 100644 --- a/arm9/modules/05/asm/mod05_021E7C00.s +++ b/arm9/modules/05/asm/mod05_021E7C00.s @@ -83,7 +83,7 @@ MOD05_021E7C80: ; 0x021E7C80 add r4, r1, #0 cmp r5, #0x20 blt _021E7C90 - bl ErrorHandling + bl GF_AssertFail _021E7C90: add r6, sp, #0 mov r3, #0 @@ -427,7 +427,7 @@ MOD05_021E7EEC: ; 0x021E7EEC add r5, r0, #0 cmp r4, #0x20 blt _021E7EFA - bl ErrorHandling + bl GF_AssertFail _021E7EFA: mov r0, #0x8c mul r0, r4 @@ -435,7 +435,7 @@ _021E7EFA: ldr r0, [r4, #4] cmp r0, #0 bne _021E7F0A - bl ErrorHandling + bl GF_AssertFail _021E7F0A: add r0, r4, #0 pop {r3, r4, r5, pc} @@ -602,7 +602,7 @@ _021E8044: lsr r4, r1, #0x18 cmp r4, #0x20 blo _021E7FD4 - bl ErrorHandling + bl GF_AssertFail mov r0, #0x20 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index ffb9dbe26..4662c7cca 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -11065,7 +11065,7 @@ _021EDFA6: str r0, [r4] pop {r3, r4, r5, r6, r7, pc} _021EDFB6: - bl ErrorHandling + bl GF_AssertFail _021EDFBA: pop {r3, r4, r5, r6, r7, pc} @@ -11212,7 +11212,7 @@ MOD05_021EE0C0: ; 0x021EE0C0 bl NARC_ReadFromMember b _021EE0FC _021EE0E6: - bl ErrorHandling + bl GF_AssertFail mov r0, #0x10 str r0, [sp] mov r0, #0x43 @@ -11664,7 +11664,7 @@ MOD05_021EE470: ; 0x021EE470 ldr r0, [r0, r5] cmp r0, #0 beq _021EE498 - bl ErrorHandling + bl GF_AssertFail _021EE498: ldr r0, [sp, #4] mov r1, #1 @@ -11768,7 +11768,7 @@ MOD05_021EE52C: ; 0x021EE52C ldr r0, [r0] cmp r1, r0 ble _021EE560 - bl ErrorHandling + bl GF_AssertFail _021EE560: ldr r0, [r4, #0x10] ldr r1, [r0] @@ -11819,7 +11819,7 @@ _021EE5B2: ror r1, r0 add r0, r2, r1 beq _021EE5C6 - bl ErrorHandling + bl GF_AssertFail _021EE5C6: mov r0, #0 str r0, [r4, #0x18] @@ -11836,7 +11836,7 @@ _021EE5D0: ldr r0, [r2, #8] cmp r1, r0 beq _021EE5E8 - bl ErrorHandling + bl GF_AssertFail b _021EE6B0 _021EE5E8: cmp r3, r7 @@ -11887,7 +11887,7 @@ _021EE632: ror r1, r0 add r0, r2, r1 beq _021EE6A8 - bl ErrorHandling + bl GF_AssertFail b _021EE6A8 _021EE648: add r1, r5, #0 @@ -11939,7 +11939,7 @@ _021EE694: ror r1, r0 add r0, r2, r1 beq _021EE6A8 - bl ErrorHandling + bl GF_AssertFail _021EE6A8: ldrb r0, [r4, #0x1c] add r1, r5, #0 @@ -12233,7 +12233,7 @@ MOD05_021EE8CC: ; 0x021EE8CC ldr r6, [sp, #0x30] cmp r0, #1 bne _021EE8E6 - bl ErrorHandling + bl GF_AssertFail _021EE8E6: add r0, r6, #0 add r1, r4, #0 @@ -12310,7 +12310,7 @@ _021EE964: bl MOD05_021EE470 cmp r0, #1 beq _021EE984 - bl ErrorHandling + bl GF_AssertFail _021EE984: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -12470,7 +12470,7 @@ _021EEA9E: mvn r4, r4 b _021EEAB4 _021EEAB0: - bl ErrorHandling + bl GF_AssertFail _021EEAB4: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] @@ -12578,7 +12578,7 @@ _021EEB7C: mvn r4, r4 b _021EEB86 _021EEB82: - bl ErrorHandling + bl GF_AssertFail _021EEB86: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] @@ -12782,7 +12782,7 @@ _021EED0A: mvn r4, r4 b _021EED14 _021EED10: - bl ErrorHandling + bl GF_AssertFail _021EED14: ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] @@ -12799,7 +12799,7 @@ _021EED14: add sp, #0x14 pop {r4, r5, r6, r7, pc} _021EED32: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} .balign 4, 0 @@ -12954,7 +12954,7 @@ _021EEE4E: mov r0, #0 pop {r3, pc} _021EEE56: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .balign 4, 0 @@ -13015,7 +13015,7 @@ _021EEEB8: add r0, r4, #0 pop {r3, r4, r5, pc} _021EEEC0: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 _021EEEC6: pop {r3, r4, r5, pc} @@ -13084,7 +13084,7 @@ _021EEF22: lsr r6, r0, #0x18 b _021EEF62 _021EEF30: - bl ErrorHandling + bl GF_AssertFail b _021EEF62 _021EEF36: cmp r5, r0 @@ -13106,10 +13106,10 @@ _021EEF4A: lsr r6, r0, #0x18 b _021EEF62 _021EEF58: - bl ErrorHandling + bl GF_AssertFail b _021EEF62 _021EEF5E: - bl ErrorHandling + bl GF_AssertFail _021EEF62: strb r6, [r4] pop {r4, r5, r6, pc} @@ -13145,7 +13145,7 @@ _021EEF90: mov r0, #1 pop {r3, pc} _021EEF94: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -13193,7 +13193,7 @@ MOD05_021EEFD0: ; 0x021EEFD0 add r4, #0x64 cmp r0, #0 beq _021EEFEC - bl ErrorHandling + bl GF_AssertFail _021EEFEC: add r1, r5, #0 add r1, #0xa1 @@ -13290,13 +13290,13 @@ MOD05_021EF094: ; 0x021EF094 add r4, #0x64 cmp r0, #2 blo _021EF0A8 - bl ErrorHandling + bl GF_AssertFail _021EF0A8: add r0, r5, #0 bl MOD05_021EEFD0 cmp r0, #1 beq _021EF0B6 - bl ErrorHandling + bl GF_AssertFail _021EF0B6: mov r0, #0x86 ldr r2, [r4, #0x10] @@ -13694,7 +13694,7 @@ _021EF39A: mov r7, #0 b _021EF3AE _021EF3AA: - bl ErrorHandling + bl GF_AssertFail _021EF3AE: add r0, r7, #0 bl MOD05_021F3BC0 @@ -14073,7 +14073,7 @@ _021EF66A: mvn r0, r0 cmp r5, r0 bne _021EF676 - bl ErrorHandling + bl GF_AssertFail _021EF676: add r0, r4, #0 add r0, #0xac @@ -14309,7 +14309,7 @@ MOD05_021EF824: ; 0x021EF824 add r4, r0, #0 cmp r5, #4 blo _021EF832 - bl ErrorHandling + bl GF_AssertFail _021EF832: lsl r0, r5, #2 add r0, r4, r0 @@ -14363,7 +14363,7 @@ _021EF882: mul r0, r1 cmp r7, r0 blo _021EF898 - bl ErrorHandling + bl GF_AssertFail _021EF898: add r0, r5, #0 add r0, #0xc8 @@ -14536,14 +14536,14 @@ _021EF9B6: ldrb r0, [r5, #9] cmp r0, #1 beq _021EF9CA - bl ErrorHandling + bl GF_AssertFail _021EF9CA: ldrh r0, [r5, #0xe] add r0, r5, r0 ldr r0, [r0, #0xc] add r5, r5, r0 bne _021EF9D8 - bl ErrorHandling + bl GF_AssertFail _021EF9D8: ldr r0, [r4, #8] add r1, r5, #0 @@ -14618,14 +14618,14 @@ MOD05_021EFA40: ; 0x021EFA40 bl FUN_0201B3A8 cmp r0, #0 bne _021EFA6A - bl ErrorHandling + bl GF_AssertFail _021EFA6A: ldr r0, [r4] bl NNS_G3dGetMdlSet ldrb r0, [r0, #9] cmp r0, #1 beq _021EFA7A - bl ErrorHandling + bl GF_AssertFail _021EFA7A: ldr r0, [r4] bl NNS_G3dGetMdlSet @@ -14634,7 +14634,7 @@ _021EFA7A: ldr r1, [r1, #0xc] add r4, r0, r1 bne _021EFA8E - bl ErrorHandling + bl GF_AssertFail _021EFA8E: add r0, r5, #0 add r1, r4, #0 @@ -15935,7 +15935,7 @@ MOD05_021F04F8: ; 0x021F04F8 cmp r0, #0 beq _021F0512 bne _021F0508 - bl ErrorHandling + bl GF_AssertFail _021F0508: ldr r0, [r4] bl FreeToHeap @@ -16156,7 +16156,7 @@ MOD05_021F067C: ; 0x021F067C add r5, r0, #0 cmp r5, #9 blt _021F06B6 - bl ErrorHandling + bl GF_AssertFail _021F06B6: lsl r6, r5, #2 ldr r5, _021F06EC ; UNK05_021FC4B4 @@ -16608,7 +16608,7 @@ MOD05_021F0A28: ; 0x021F0A28 add r5, r0, #0 cmp r5, #0xa blt _021F0A3E - bl ErrorHandling + bl GF_AssertFail _021F0A3E: lsl r6, r5, #2 ldr r5, _021F0A74 ; =UNK05_021FC528 @@ -17068,7 +17068,7 @@ MOD05_021F0DB4: ; 0x021F0DB4 add r5, r0, #0 cmp r5, #0xa blt _021F0DEE - bl ErrorHandling + bl GF_AssertFail _021F0DEE: lsl r6, r5, #2 ldr r5, _021F0E24 ; =UNK05_021FC500 @@ -17634,7 +17634,7 @@ MOD05_021F1234: ; 0x021F1234 str r0, [sp, #4] cmp r0, #0xc blt _021F1272 - bl ErrorHandling + bl GF_AssertFail _021F1272: mov r1, #2 ldrsb r2, [r4, r1] @@ -17886,7 +17886,7 @@ MOD05_021F1440: ; 0x021F1440 add r5, r0, #0 cmp r5, #4 blt _021F147A - bl ErrorHandling + bl GF_AssertFail _021F147A: lsl r6, r5, #2 ldr r5, _021F14B8 ; =UNK05_021FC40C @@ -18654,7 +18654,7 @@ MOD05_021F1A78: ; 0x021F1A78 ldr r0, [r4] cmp r0, #0 beq _021F1A8C - bl ErrorHandling + bl GF_AssertFail _021F1A8C: add r0, r5, #0 bl MOD06_0224A130 @@ -18671,7 +18671,7 @@ MOD05_021F1A98: ; 0x021F1A98 ldr r0, [r4] cmp r0, #0 beq _021F1AAC - bl ErrorHandling + bl GF_AssertFail _021F1AAC: add r0, r5, #0 bl MOD06_0224A6B8 @@ -18688,7 +18688,7 @@ MOD05_021F1AB8: ; 0x021F1AB8 ldr r0, [r4] cmp r0, #0 beq _021F1ACC - bl ErrorHandling + bl GF_AssertFail _021F1ACC: add r0, r5, #0 bl MOD06_0224A8D4 @@ -18705,7 +18705,7 @@ MOD05_021F1AD8: ; 0x021F1AD8 ldr r0, [r4] cmp r0, #0 beq _021F1AEC - bl ErrorHandling + bl GF_AssertFail _021F1AEC: add r0, r5, #0 bl MOD06_0224AA40 @@ -18968,7 +18968,7 @@ MOD05_021F1CB8: ; 0x021F1CB8 bl FUN_02058390 cmp r0, #0 beq _021F1CD2 - bl ErrorHandling + bl GF_AssertFail _021F1CD2: add r0, r5, #0 bl MOD05_021F1D68 @@ -19014,7 +19014,7 @@ MOD05_021F1D2C: ; 0x021F1D2C bl FUN_020587E0 cmp r0, #1 beq _021F1D3C - bl ErrorHandling + bl GF_AssertFail _021F1D3C: add r0, r4, #0 bl FUN_020583A0 @@ -19104,7 +19104,7 @@ _021F1DE4: ldr r2, [r3] cmp r2, r1 bne _021F1DDA - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .balign 4, 0 @@ -19382,7 +19382,7 @@ MOD05_021F1FE0: ; 0x021F1FE0 bl MOD05_021F21CC add r4, r0, #0 bne _021F200C - bl ErrorHandling + bl GF_AssertFail _021F200C: add r0, r6, #0 add r1, sp, #0 @@ -19393,7 +19393,7 @@ _021F200C: bl MOD05_021F2E70 add r4, r0, #0 bne _021F2026 - bl ErrorHandling + bl GF_AssertFail _021F2026: add r0, r4, #0 add sp, #0xc @@ -19567,7 +19567,7 @@ MOD05_021F2160: ; 0x021F2160 str r4, [r0] cmp r4, #0 bne _021F2180 - bl ErrorHandling + bl GF_AssertFail _021F2180: mov r0, #4 lsl r1, r6, #3 @@ -19577,7 +19577,7 @@ _021F2180: str r5, [r7] cmp r5, #0 bne _021F2196 - bl ErrorHandling + bl GF_AssertFail _021F2196: ldr r0, _021F21A8 ; =0x0000FFFF _021F2198: @@ -19875,7 +19875,7 @@ _021F23BE: bl _021F238C add r7, r0, #0 bne _021F23D0 - bl ErrorHandling + bl GF_AssertFail _021F23D0: mov r0, #0x41 lsl r0, r0, #2 @@ -20217,7 +20217,7 @@ MOD05_021F2628: ; 0x021F2628 bl MOD05_021F25C8 cmp r0, #0 bne _021F264C - bl ErrorHandling + bl GF_AssertFail _021F264C: pop {r4, r5, r6, pc} nop @@ -20256,7 +20256,7 @@ MOD05_021F2670: ; 0x021F2670 bl MOD05_021F25C8 cmp r0, #0 bne _021F269E - bl ErrorHandling + bl GF_AssertFail _021F269E: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 @@ -20370,7 +20370,7 @@ MOD05_021F2764: ; 0x021F2764 bl MOD05_021F25C8 cmp r0, #0 bne _021F2788 - bl ErrorHandling + bl GF_AssertFail _021F2788: pop {r4, r5, r6, pc} nop @@ -20409,7 +20409,7 @@ MOD05_021F27AC: ; 0x021F27AC bl MOD05_021F25C8 cmp r0, #0 bne _021F27DA - bl ErrorHandling + bl GF_AssertFail _021F27DA: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 @@ -20523,7 +20523,7 @@ MOD05_021F28A0: ; 0x021F28A0 bl MOD05_021F25C8 cmp r0, #0 bne _021F28C4 - bl ErrorHandling + bl GF_AssertFail _021F28C4: pop {r4, r5, r6, pc} nop @@ -20586,7 +20586,7 @@ MOD05_021F2914: ; 0x021F2914 bl MOD05_021F25C8 cmp r0, #0 bne _021F2942 - bl ErrorHandling + bl GF_AssertFail _021F2942: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 @@ -21247,7 +21247,7 @@ _021F2DD0: ldr r2, [r3] cmp r2, r1 bne _021F2DC6 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .balign 4, 0 @@ -21557,7 +21557,7 @@ _021F301C: cmp r2, r3 blt _021F3004 _021F3024: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021F302C: @@ -21769,7 +21769,7 @@ MOD05_021F317C: ; 0x021F317C bl FUN_02020F54 cmp r0, #0 bne _021F31A2 - bl ErrorHandling + bl GF_AssertFail _021F31A2: add r0, r5, #0 add r1, r4, #0 @@ -21820,7 +21820,7 @@ _021F31F4: cmp r2, r6 blt _021F31DE _021F31FC: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} .balign 4, 0 @@ -21963,7 +21963,7 @@ _021F32EA: cmp r4, r6 blt _021F32CE _021F32F2: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD05_021F32F8 @@ -22050,7 +22050,7 @@ MOD05_021F3364: ; 0x021F3364 ldr r0, [r0] cmp r0, #0 bne _021F338A - bl ErrorHandling + bl GF_AssertFail _021F338A: ldr r0, [r4, #4] mov r1, #0 @@ -22095,7 +22095,7 @@ MOD05_021F33B4: ; 0x021F33B4 bl AllocFromHeap add r4, r0, #0 bne _021F33E2 - bl ErrorHandling + bl GF_AssertFail _021F33E2: ldr r2, [sp, #8] add r0, r4, #0 @@ -22249,7 +22249,7 @@ _021F352E: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3538 - bl ErrorHandling + bl GF_AssertFail _021F3538: ldr r0, [sp, #0x18] ldr r1, [r4, #4] @@ -22272,7 +22272,7 @@ _021F355C: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3566 - bl ErrorHandling + bl GF_AssertFail _021F3566: ldr r0, [sp, #0x18] ldr r1, [r4, #4] @@ -22296,7 +22296,7 @@ _021F358C: ldr r0, _021F36C8 ; =0x0000FFFF cmp r1, r0 bne _021F3596 - bl ErrorHandling + bl GF_AssertFail _021F3596: ldr r0, [sp, #0x18] ldr r1, [r4, #4] @@ -22333,7 +22333,7 @@ _021F3596: str r0, [r5, #0x24] cmp r0, #0 bne _021F35EC - bl ErrorHandling + bl GF_AssertFail _021F35EC: ldr r0, [sp, #0x10] bl FUN_0201F844 @@ -22415,7 +22415,7 @@ _021F367A: bl FUN_0200CA98 add r4, r0, #0 bne _021F36B6 - bl ErrorHandling + bl GF_AssertFail _021F36B6: add r0, r4, #0 add r1, r5, #0 @@ -22536,7 +22536,7 @@ MOD05_021F37AC: ; 0x021F37AC bl AllocFromHeap add r4, r0, #0 bne _021F37BC - bl ErrorHandling + bl GF_AssertFail _021F37BC: add r2, r4, #0 mov r1, #0x10 @@ -22606,7 +22606,7 @@ MOD05_021F3810: ; 0x021F3810 str r0, [r4, #0xc] cmp r0, #0 bne _021F382E - bl ErrorHandling + bl GF_AssertFail _021F382E: ldr r0, [r4, #0xc] mov r1, #0 @@ -23816,7 +23816,7 @@ _021F4174: lsl r0, r0, #0xc cmp r3, r0 ble _021F4180 - bl ErrorHandling + bl GF_AssertFail _021F4180: pop {r4, r5, r6, pc} .balign 4, 0 @@ -24324,7 +24324,7 @@ MOD05_021F4520: ; 0x021F4520 str r3, [sp] cmp r3, #0 bne _021F4532 - bl ErrorHandling + bl GF_AssertFail _021F4532: ldr r0, [r5] mov r4, #0 @@ -24364,7 +24364,7 @@ MOD05_021F4568: ; 0x021F4568 ldr r0, [r4] cmp r5, r0 blt _021F4578 - bl ErrorHandling + bl GF_AssertFail _021F4578: mov r0, #0x18 add r6, r5, #0 @@ -24374,7 +24374,7 @@ _021F4578: ldr r0, [r0, #0x14] cmp r0, #0 bne _021F458C - bl ErrorHandling + bl GF_AssertFail _021F458C: ldr r0, [r4, #4] add r0, r0, r6 @@ -24390,7 +24390,7 @@ MOD05_021F4594: ; 0x021F4594 add r4, r1, #0 cmp r5, r0 blt _021F45A6 - bl ErrorHandling + bl GF_AssertFail _021F45A6: mov r0, #0x18 ldr r1, [r6, #4] @@ -24438,7 +24438,7 @@ MOD05_021F45E8: ; 0x021F45E8 bl FUN_02015F34 cmp r0, #1 beq _021F45FC - bl ErrorHandling + bl GF_AssertFail _021F45FC: mov r0, #1 str r0, [r4] @@ -24455,7 +24455,7 @@ MOD05_021F4608: ; 0x021F4608 bl FUN_02015F34 cmp r0, #1 beq _021F461C - bl ErrorHandling + bl GF_AssertFail _021F461C: mov r0, #0 str r0, [r4] @@ -24470,7 +24470,7 @@ MOD05_021F4624: ; 0x021F4624 bl MOD05_021F46A8 add r4, r0, #0 bne _021F4636 - bl ErrorHandling + bl GF_AssertFail _021F4636: cmp r4, #0 beq _021F4642 @@ -24623,7 +24623,7 @@ MOD05_021F4724: ; 0x021F4724 ldr r0, [r4] cmp r0, #0 beq _021F4732 - bl ErrorHandling + bl GF_AssertFail _021F4732: mov r0, #0x31 lsl r0, r0, #4 @@ -24984,7 +24984,7 @@ MOD05_021F49AC: ; 0x021F49AC strh r1, [r7, #8] cmp r1, r0 blo _021F49E4 - bl ErrorHandling + bl GF_AssertFail _021F49E4: ldr r1, _021F4BA8 ; =0x000008A4 mov r0, #0 @@ -25028,7 +25028,7 @@ _021F4A32: bl FUN_0201B3C4 cmp r0, #0 bne _021F4A42 - bl ErrorHandling + bl GF_AssertFail _021F4A42: ldr r1, _021F4BAC ; =0x0000089C ldr r0, [r5, r1] @@ -25042,7 +25042,7 @@ _021F4A42: bl FUN_0201B3C4 cmp r0, #0 bne _021F4A62 - bl ErrorHandling + bl GF_AssertFail _021F4A62: mov r1, #0x8a lsl r1, r1, #4 @@ -25088,7 +25088,7 @@ _021F4AA6: ldr r0, [r4, #4] cmp r0, #0 beq _021F4ABE - bl ErrorHandling + bl GF_AssertFail _021F4ABE: ldr r0, [sp, #0xc] add r1, r6, #0 @@ -25117,7 +25117,7 @@ _021F4AEC: bl FUN_0201B3A8 cmp r0, #0 bne _021F4AFE - bl ErrorHandling + bl GF_AssertFail _021F4AFE: ldr r0, [sp] ldrh r1, [r7, #8] @@ -25143,14 +25143,14 @@ _021F4B10: bl FUN_0201B3C4 cmp r0, #0 bne _021F4B36 - bl ErrorHandling + bl GF_AssertFail _021F4B36: ldr r0, [r5, #4] add r1, r4, #0 bl FUN_0201B3A8 cmp r0, #0 bne _021F4B46 - bl ErrorHandling + bl GF_AssertFail _021F4B46: ldr r0, [sp, #0xc] bl NARC_dtor @@ -25211,7 +25211,7 @@ MOD05_021F4BD0: ; 0x021F4BD0 add r5, r0, #0 add r4, r1, #0 bne _021F4BDC - bl ErrorHandling + bl GF_AssertFail _021F4BDC: add r2, r4, #4 lsl r1, r5, #2 @@ -25221,7 +25221,7 @@ _021F4BDC: ldr r0, [r4, #4] cmp r0, #0 bne _021F4BF0 - bl ErrorHandling + bl GF_AssertFail _021F4BF0: add r0, r4, #4 pop {r3, r4, r5, pc} @@ -25292,7 +25292,7 @@ MOD05_021F4C74: ; 0x021F4C74 push {r4, lr} add r4, r0, #0 bne _021F4C7E - bl ErrorHandling + bl GF_AssertFail _021F4C7E: ldr r0, _021F4C84 ; =0x000008A4 ldr r0, [r4, r0] @@ -25305,7 +25305,7 @@ MOD05_021F4C88: ; 0x021F4C88 push {r4, lr} add r4, r0, #0 bne _021F4C92 - bl ErrorHandling + bl GF_AssertFail _021F4C92: ldr r0, _021F4C98 ; =0x000008A8 ldr r0, [r4, r0] @@ -25458,7 +25458,7 @@ MOD05_021F4D80: ; 0x021F4D80 add r5, r0, #0 cmp r5, #0x15 bne _021F4D96 - bl ErrorHandling + bl GF_AssertFail _021F4D96: ldr r0, [r4, #0xc] bl FUN_0202A9B0 @@ -25494,7 +25494,7 @@ MOD05_021F4DC8: ; 0x021F4DC8 add r5, r0, #0 cmp r5, #0x15 bne _021F4DDE - bl ErrorHandling + bl GF_AssertFail _021F4DDE: ldr r0, [r6, #0xc] bl FUN_0202A9B0 @@ -25525,7 +25525,7 @@ _021F4DDE: lsr r6, r0, #0x10 cmp r6, #0x64 blo _021F4E2E - bl ErrorHandling + bl GF_AssertFail _021F4E2E: cmp r6, #0x5a bhs _021F4E42 @@ -25574,7 +25574,7 @@ MOD05_021F4E7C: ; 0x021F4E7C add r4, r0, #0 cmp r4, #0x15 bne _021F4E94 - bl ErrorHandling + bl GF_AssertFail _021F4E94: add r0, r5, #0 add r0, #0xa4 @@ -25627,7 +25627,7 @@ MOD05_021F4EE4: ; 0x021F4EE4 lsr r4, r0, #0x10 cmp r4, #0x64 blo _021F4F02 - bl ErrorHandling + bl GF_AssertFail _021F4F02: cmp r6, #0 beq _021F4F2A @@ -25681,7 +25681,7 @@ MOD05_021F4F44: ; 0x021F4F44 lsr r5, r0, #0x10 cmp r5, #0x64 blo _021F4F60 - bl ErrorHandling + bl GF_AssertFail _021F4F60: cmp r5, #5 bge _021F4F6A @@ -25744,7 +25744,7 @@ MOD05_021F4FAC: ; 0x021F4FAC lsr r5, r0, #0x10 cmp r5, #0x64 blo _021F4FC8 - bl ErrorHandling + bl GF_AssertFail _021F4FC8: cmp r4, #3 bne _021F4FE8 @@ -26044,7 +26044,7 @@ MOD05_021F51D0: ; 0x021F51D0 add r5, r0, #0 cmp r5, #0x15 bne _021F51E6 - bl ErrorHandling + bl GF_AssertFail _021F51E6: ldr r0, [r4, #0xc] bl FUN_0202A9B0 @@ -26090,7 +26090,7 @@ MOD05_021F522C: ; 0x021F522C add r4, r0, #0 cmp r4, #0x15 bne _021F5242 - bl ErrorHandling + bl GF_AssertFail _021F5242: add r0, r5, #0 add r0, #0xa4 @@ -27024,7 +27024,7 @@ _021F5924: bl MOD06_0223BE70 cmp r0, #0 bne _021F5980 - bl ErrorHandling + bl GF_AssertFail b _021F5980 _021F5936: mov r0, #0xa @@ -27062,7 +27062,7 @@ _021F5978: mov r0, #1 pop {r4, r5, r6, pc} _021F597C: - bl ErrorHandling + bl GF_AssertFail _021F5980: mov r0, #0 pop {r4, r5, r6, pc} @@ -27087,7 +27087,7 @@ MOD05_021F5990: ; 0x021F5990 bl FUN_0201681C cmp r0, #1 beq _021F59B2 - bl ErrorHandling + bl GF_AssertFail _021F59B2: sub r5, r6, r5 add r0, r7, #0 @@ -27095,7 +27095,7 @@ _021F59B2: bl AllocFromHeap add r4, r0, #0 bne _021F59C4 - bl ErrorHandling + bl GF_AssertFail _021F59C4: add r0, r4, #0 mov r1, #0 @@ -27164,7 +27164,7 @@ MOD05_021F5A28: ; 0x021F5A28 str r0, [sp] cmp r0, #0 bne _021F5A40 - bl ErrorHandling + bl GF_AssertFail _021F5A40: add r0, r5, #0 add r1, r6, #0 @@ -27198,7 +27198,7 @@ MOD05_021F5A74: ; 0x021F5A74 bl MOD05_021F5B3C add r4, r0, #0 bne _021F5A82 - bl ErrorHandling + bl GF_AssertFail _021F5A82: ldr r0, [r4] bl MOD05_021F5B34 @@ -27212,7 +27212,7 @@ MOD05_021F5A90: ; 0x021F5A90 bl MOD05_021F5B3C add r4, r0, #0 bne _021F5A9E - bl ErrorHandling + bl GF_AssertFail _021F5A9E: ldr r0, [r4] pop {r4, pc} @@ -27291,7 +27291,7 @@ _021F5B26: add r4, r0, #0 cmp r4, #0 bne _021F5B30 - bl ErrorHandling + bl GF_AssertFail _021F5B30: add r0, r4, #0 pop {r4, pc} @@ -28037,7 +28037,7 @@ MOD05_021F6074: ; 0x021F6074 bl AllocFromHeapAtEnd add r4, r0, #0 bne _021F6088 - bl ErrorHandling + bl GF_AssertFail _021F6088: add r0, r4, #0 mov r1, #0 @@ -28198,7 +28198,7 @@ MOD05_021F61B0: ; 0x021F61B0 beq _021F61C6 cmp r0, #2 beq _021F61CA - bl ErrorHandling + bl GF_AssertFail _021F61C2: ldr r0, _021F61D0 ; =0x000001BD pop {r3, pc} diff --git a/arm9/modules/05/src/mod05_021E72FC.c b/arm9/modules/05/src/mod05_021E72FC.c index 7284224c3..73fddb7e3 100644 --- a/arm9/modules/05/src/mod05_021E72FC.c +++ b/arm9/modules/05/src/mod05_021E72FC.c @@ -148,7 +148,7 @@ THUMB_FUNC UnkStruct021E7358 *MOD05_021E74D4(u32 param0) UnkStruct021E7358 *res = (UnkStruct021E7358 *)AllocFromHeapAtEnd(4, param0); if (res == NULL) { - ErrorHandling(); + GF_AssertFail(); } memset((void *)res, 0, param0); return res; diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 9679d0e05..628900447 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -75,7 +75,7 @@ MOD06_02239714: ; 0x02239714 ldr r0, [r4, #0x38] cmp r0, #2 beq _02239722 - bl ErrorHandling + bl GF_AssertFail _02239722: mov r0, #3 str r0, [r4, #0x38] @@ -1124,7 +1124,7 @@ MOD06_02239F04: ; 0x02239F04 bl FUN_02058060 add r5, r0, #0 bne _02239F18 - bl ErrorHandling + bl GF_AssertFail _02239F18: add r0, r5, #0 bl FUN_02058B2C @@ -2298,7 +2298,7 @@ MOD06_0223A790: ; 0x0223A790 ldr r0, [r4, r0] cmp r0, #5 beq _0223A7A2 - bl ErrorHandling + bl GF_AssertFail _0223A7A2: add r0, r4, #0 bl FreeToHeap @@ -2339,7 +2339,7 @@ MOD06_0223A7DC: ; 0x0223A7DC ldr r0, [r4, r0] cmp r0, #2 beq _0223A7EE - bl ErrorHandling + bl GF_AssertFail _0223A7EE: mov r0, #0x4b mov r1, #3 @@ -3119,7 +3119,7 @@ MOD06_0223ADB4: ; 0x0223ADB4 str r0, [r4] cmp r0, #0 bne _0223ADCA - bl ErrorHandling + bl GF_AssertFail _0223ADCA: mov r0, #0 str r0, [r4, #0x24] @@ -3693,7 +3693,7 @@ MOD06_0223B20C: ; 0x0223B20C add r7, r3, #0 cmp r0, #0 beq _0223B224 - bl ErrorHandling + bl GF_AssertFail _0223B224: mov r0, #0x71 mov r1, #0 @@ -3749,7 +3749,7 @@ MOD06_0223B268: ; 0x0223B268 bl MOD06_0223B438 add r4, r0, #0 bne _0223B290 - bl ErrorHandling + bl GF_AssertFail _0223B290: mov r1, #0x73 lsl r1, r1, #2 @@ -3897,7 +3897,7 @@ MOD06_0223B378: ; 0x0223B378 add r7, r3, #0 cmp r0, #0 beq _0223B38C - bl ErrorHandling + bl GF_AssertFail _0223B38C: add r0, r5, #0 add r0, #0x7c @@ -4562,7 +4562,7 @@ MOD06_0223B814: ; 0x0223B814 ldr r0, [r4, #0x14] cmp r0, #2 beq _0223B822 - bl ErrorHandling + bl GF_AssertFail _0223B822: mov r0, #3 str r0, [r4, #0x14] @@ -5133,7 +5133,7 @@ _0223BC90: bl MOD06_0223C438 b _0223BCCC _0223BCBC: - bl ErrorHandling + bl GF_AssertFail ldr r0, [sp, #0x2c] bl FUN_02047964 add sp, #0xb4 @@ -5154,13 +5154,13 @@ _0223BCDE: bl FUN_02016B90 cmp r0, #0 bne _0223BCEC - bl ErrorHandling + bl GF_AssertFail _0223BCEC: mov r0, #0xb bl FUN_02016B90 cmp r0, #0 bne _0223BCFA - bl ErrorHandling + bl GF_AssertFail _0223BCFA: ldr r0, [sp, #0x10] cmp r0, #0 @@ -5222,7 +5222,7 @@ _0223BD2E: lsr r5, r0, #0x10 cmp r5, #0x64 blo _0223BD80 - bl ErrorHandling + bl GF_AssertFail _0223BD80: cmp r5, r6 blt _0223BD8A @@ -5570,7 +5570,7 @@ _0223C034: bl MOD06_0223C438 b _0223C06A _0223C060: - bl ErrorHandling + bl GF_AssertFail add sp, #0xac mov r0, #0 pop {r4, r5, r6, r7, pc} @@ -5583,7 +5583,7 @@ _0223C06A: bl FUN_02046A20 b _0223C07E _0223C07A: - bl ErrorHandling + bl GF_AssertFail _0223C07E: mov r0, #0 add r5, #0x74 @@ -5851,7 +5851,7 @@ _0223C2A2: bl MOD06_0223C3F4 b _0223C2DC _0223C2CC: - bl ErrorHandling + bl GF_AssertFail ldr r0, [r4] bl FUN_02047964 add sp, #0xac @@ -5867,13 +5867,13 @@ _0223C2E4: bl FUN_02016B90 cmp r0, #0 bne _0223C2F2 - bl ErrorHandling + bl GF_AssertFail _0223C2F2: mov r0, #0xb bl FUN_02016B90 cmp r0, #0 bne _0223C300 - bl ErrorHandling + bl GF_AssertFail _0223C300: ldr r0, [sp, #0x10] cmp r0, #0 @@ -6089,7 +6089,7 @@ MOD06_0223C470: ; 0x0223C470 lsr r4, r0, #0x10 cmp r4, #0x64 blo _0223C4A8 - bl ErrorHandling + bl GF_AssertFail _0223C4A8: cmp r4, #5 blo _0223C4B0 @@ -6133,7 +6133,7 @@ _0223C4EC: lsr r6, r0, #0x10 cmp r6, #0x64 blo _0223C504 - bl ErrorHandling + bl GF_AssertFail _0223C504: cmp r6, r4 bge _0223C518 @@ -6217,7 +6217,7 @@ MOD06_0223C584: ; 0x0223C584 lsr r5, r0, #0x10 cmp r5, #0x64 blo _0223C5A0 - bl ErrorHandling + bl GF_AssertFail _0223C5A0: cmp r5, r4 blo _0223C5A8 @@ -6238,7 +6238,7 @@ MOD06_0223C5AC: ; 0x0223C5AC lsr r4, r0, #0x10 cmp r4, #0x64 blo _0223C5C6 - bl ErrorHandling + bl GF_AssertFail _0223C5C6: lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -6328,7 +6328,7 @@ MOD06_0223C648: ; 0x0223C648 lsr r4, r0, #0x10 cmp r4, #0x64 blo _0223C662 - bl ErrorHandling + bl GF_AssertFail _0223C662: lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -6373,7 +6373,7 @@ MOD06_0223C694: ; 0x0223C694 lsr r6, r0, #0x10 cmp r6, #0x64 blo _0223C6B2 - bl ErrorHandling + bl GF_AssertFail _0223C6B2: lsl r0, r6, #0x18 lsr r0, r0, #0x18 @@ -6454,7 +6454,7 @@ _0223C72C: mov r4, #4 b _0223C734 _0223C730: - bl ErrorHandling + bl GF_AssertFail _0223C734: add r0, r4, #0 pop {r4, r5, r6, pc} @@ -6522,7 +6522,7 @@ MOD06_0223C78C: ; 0x0223C78C lsr r5, r0, #0x10 cmp r5, #2 blo _0223C7AC - bl ErrorHandling + bl GF_AssertFail _0223C7AC: cmp r5, #0 bne _0223C7C6 @@ -6543,7 +6543,7 @@ _0223C7C6: lsr r4, r0, #0x10 cmp r4, #0x19 blo _0223C7DC - bl ErrorHandling + bl GF_AssertFail _0223C7DC: lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -6593,7 +6593,7 @@ _0223C82C: lsr r7, r0, #0x10 cmp r7, #2 blo _0223C83C - bl ErrorHandling + bl GF_AssertFail _0223C83C: cmp r7, #0 bne _0223C848 @@ -6646,7 +6646,7 @@ MOD06_0223C854: ; 0x0223C854 lsr r4, r0, #0x10 cmp r4, #3 blo _0223C8A6 - bl ErrorHandling + bl GF_AssertFail _0223C8A6: cmp r4, #0 beq _0223C8E0 @@ -6667,7 +6667,7 @@ _0223C8BE: lsr r4, r0, #0x10 cmp r4, #2 blo _0223C8D2 - bl ErrorHandling + bl GF_AssertFail _0223C8D2: cmp r4, #0 bne _0223C8E0 @@ -6691,7 +6691,7 @@ _0223C8EC: add r7, r0, #0 cmp r7, #2 bne _0223C904 - bl ErrorHandling + bl GF_AssertFail _0223C904: ldr r0, [sp, #0x24] cmp r7, r0 @@ -6731,7 +6731,7 @@ _0223C92E: bl MOD06_0223D1BC cmp r0, #0 bne _0223C95A - bl ErrorHandling + bl GF_AssertFail _0223C95A: ldr r0, [sp, #0x1c] bl FreeToHeap @@ -6780,7 +6780,7 @@ _0223C998: lsr r6, r0, #0x10 cmp r6, #3 blo _0223C9BE - bl ErrorHandling + bl GF_AssertFail _0223C9BE: cmp r6, #0 beq _0223CA28 @@ -6800,7 +6800,7 @@ _0223C9D8: mov r6, #1 b _0223C9E4 _0223C9E0: - bl ErrorHandling + bl GF_AssertFail _0223C9E4: ldr r0, [sp, #0x28] add r1, r5, #0 @@ -6825,7 +6825,7 @@ _0223C9E4: bl MOD06_0223D1BC cmp r0, #0 bne _0223CA1E - bl ErrorHandling + bl GF_AssertFail _0223CA1E: add r0, r4, #0 bl FreeToHeap @@ -6852,7 +6852,7 @@ _0223CA28: bl MOD06_0223D1BC cmp r0, #0 bne _0223CA5C - bl ErrorHandling + bl GF_AssertFail _0223CA5C: add r0, r4, #0 bl FreeToHeap @@ -6999,7 +6999,7 @@ _0223CB74: add r7, r0, #0 b _0223CB8A _0223CB86: - bl ErrorHandling + bl GF_AssertFail _0223CB8A: add r0, r5, #0 add r1, r6, #0 @@ -7048,7 +7048,7 @@ MOD06_0223CBD4: ; 0x0223CBD4 add r7, r3, #0 cmp r5, #0 bne _0223CBE8 - bl ErrorHandling + bl GF_AssertFail _0223CBE8: lsl r0, r4, #0x18 lsr r1, r0, #0x18 @@ -7197,7 +7197,7 @@ MOD06_0223CCDC: ; 0x0223CCDC lsr r6, r0, #0x10 cmp r6, #0xb blo _0223CD1A - bl ErrorHandling + bl GF_AssertFail _0223CD1A: add r0, r6, #5 lsl r0, r0, #0x18 @@ -7219,7 +7219,7 @@ _0223CD36: lsr r6, r0, #0x10 cmp r6, #2 blo _0223CD46 - bl ErrorHandling + bl GF_AssertFail _0223CD46: cmp r6, #0 beq _0223CD4C @@ -7353,7 +7353,7 @@ _0223CE32: ldr r0, [r0, r1] pop {r4, pc} _0223CE3A: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, pc} .align 2, 0 @@ -7454,7 +7454,7 @@ MOD06_0223CED4: ; 0x0223CED4 lsr r4, r0, #0x10 cmp r4, #2 blo _0223CEFA - bl ErrorHandling + bl GF_AssertFail _0223CEFA: cmp r4, #0 bne _0223CF0E @@ -7569,7 +7569,7 @@ _0223CFAC: lsr r4, r0, #0x10 cmp r4, #2 blo _0223CFC2 - bl ErrorHandling + bl GF_AssertFail _0223CFC2: cmp r4, #0 bne _0223CFCA @@ -7705,7 +7705,7 @@ MOD06_0223D044: ; 0x0223D044 bl AddMonToParty cmp r0, #0 bne _0223D0D8 - bl ErrorHandling + bl GF_AssertFail _0223D0D8: add r0, r4, #0 bl FreeToHeap @@ -7768,7 +7768,7 @@ _0223D148: lsr r4, r0, #0x10 cmp r4, #2 blo _0223D158 - bl ErrorHandling + bl GF_AssertFail _0223D158: cmp r4, #0 bne _0223D162 @@ -7780,7 +7780,7 @@ _0223D162: bls _0223D1AA cmp r5, #0 bne _0223D16E - bl ErrorHandling + bl GF_AssertFail _0223D16E: cmp r5, #1 bhi _0223D176 @@ -7802,7 +7802,7 @@ _0223D176: lsr r4, r0, #0x10 cmp r4, r5 blo _0223D19E - bl ErrorHandling + bl GF_AssertFail _0223D19E: lsl r1, r4, #2 add r0, sp, #8 @@ -7940,7 +7940,7 @@ _0223D296: lsr r6, r0, #0x10 cmp r6, #2 blo _0223D2A6 - bl ErrorHandling + bl GF_AssertFail _0223D2A6: cmp r6, #0 bne _0223D2AE @@ -8020,7 +8020,7 @@ _0223D308: beq _0223D342 cmp r1, #8 ble _0223D338 - bl ErrorHandling + bl GF_AssertFail _0223D338: add r5, #0xa0 ldr r0, [r5] @@ -11412,7 +11412,7 @@ MOD06_0223EF18: ; 0x0223EF18 ldr r0, [r0] cmp r0, #0 beq _0223EF28 - bl ErrorHandling + bl GF_AssertFail _0223EF28: mov r0, #4 mov r1, #0x9c @@ -12651,7 +12651,7 @@ _0223F966: ldrb r0, [r0] cmp r0, #0x11 blo _0223F982 - bl ErrorHandling + bl GF_AssertFail _0223F982: ldr r0, _0223F9D4 ; =0x02252420 ldr r0, [r0] @@ -15741,7 +15741,7 @@ _022412C8: strb r0, [r5] pop {r4, r5, pc} _022412DC: - bl ErrorHandling + bl GF_AssertFail _022412E0: add sp, #0x2c pop {r4, r5, pc} @@ -15994,7 +15994,7 @@ _022414DA: str r0, [r5] b _02241580 _022414E6: - bl ErrorHandling + bl GF_AssertFail b _02241580 _022414EC: add r4, #0xa0 @@ -16251,7 +16251,7 @@ _022416EA: str r7, [sp, #0xc] b _02241702 _022416F6: - bl ErrorHandling + bl GF_AssertFail mov r5, #0 mov r6, #1 add r7, r6, #0 @@ -16360,7 +16360,7 @@ _022417E4: mov r5, #2 b _022417F4 _022417F0: - bl ErrorHandling + bl GF_AssertFail _022417F4: add r0, r6, #0 add r1, r7, #0 @@ -16460,7 +16460,7 @@ _022418D0: lsl r4, r4, #0x10 b _022418DC _022418D6: - bl ErrorHandling + bl GF_AssertFail mov r4, #0 _022418DC: add r0, r5, #0 @@ -17241,7 +17241,7 @@ _02241F00: str r0, [r4] b _02241F2E _02241F2A: - bl ErrorHandling + bl GF_AssertFail _02241F2E: ldr r0, [r6, #0x38] ldr r1, [sp, #4] @@ -17393,7 +17393,7 @@ _0224205A: bl FUN_0205ADDC b _02242072 _0224206E: - bl ErrorHandling + bl GF_AssertFail _02242072: ldr r0, [sp] add r1, sp, #0x10 @@ -17553,7 +17553,7 @@ _022421AA: bl FUN_0205ADDC b _022421C2 _022421BE: - bl ErrorHandling + bl GF_AssertFail _022421C2: ldr r0, [sp] add r1, sp, #0x10 @@ -17886,7 +17886,7 @@ MOD06_02242458: ; 0x02242458 lsr r5, r0, #0x18 cmp r5, #3 bls _02242478 - bl ErrorHandling + bl GF_AssertFail _02242478: ldr r1, _02242498 ; =0x0224FC00 lsl r0, r5, #0xa @@ -17897,7 +17897,7 @@ _02242478: lsl r0, r0, #0xa cmp r4, r0 blt _0224248E - bl ErrorHandling + bl GF_AssertFail _0224248E: ldrb r1, [r5, r4] ldr r0, [sp, #0x10] @@ -18344,7 +18344,7 @@ _022427DC: str r0, [r4] b _022427FE _022427FA: - bl ErrorHandling + bl GF_AssertFail _022427FE: add r0, r6, #0 add r1, sp, #0 @@ -18399,7 +18399,7 @@ _0224285C: mov r0, #0xd pop {r3, pc} _02242860: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -18423,7 +18423,7 @@ _02242882: add r7, r2, #0 b _0224288A _02242886: - bl ErrorHandling + bl GF_AssertFail _0224288A: ldrb r0, [r5, #7] mov r4, #0 @@ -18431,7 +18431,7 @@ _0224288A: lsr r0, r0, #0x1e cmp r0, #3 bls _0224289A - bl ErrorHandling + bl GF_AssertFail _0224289A: ldrb r0, [r5, #7] lsl r0, r0, #0x1e @@ -18442,7 +18442,7 @@ _0224289A: asr r4, r0, #0x10 cmp r6, #3 bls _022428B0 - bl ErrorHandling + bl GF_AssertFail _022428B0: lsl r0, r6, #0x1e asr r1, r0, #0x10 @@ -18462,7 +18462,7 @@ _022428C4: asr r4, r0, #0x10 b _022428D4 _022428D0: - bl ErrorHandling + bl GF_AssertFail _022428D4: str r4, [r7] pop {r3, r4, r5, r6, r7, pc} @@ -18719,7 +18719,7 @@ _02242AAA: asr r0, r0, #0x18 b _02242ACE _02242AC8: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _02242ACE: str r0, [r6] @@ -18829,7 +18829,7 @@ _02242B96: add r6, r0, #0 b _02242B9E _02242B9A: - bl ErrorHandling + bl GF_AssertFail _02242B9E: ldr r0, [r6] lsl r0, r0, #0x10 @@ -18885,7 +18885,7 @@ MOD06_02242BE0: ; 0x02242BE0 bl AllocFromHeap add r4, r0, #0 bne _02242C0E - bl ErrorHandling + bl GF_AssertFail add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02242C0E: @@ -20044,7 +20044,7 @@ MOD06_022434BC: ; 0x022434BC ldr r0, [r4] cmp r0, #0 beq _022434CA - bl ErrorHandling + bl GF_AssertFail _022434CA: mov r0, #0 str r0, [r4] @@ -20265,7 +20265,7 @@ MOD06_02243694: ; 0x02243694 ldr r0, _022436C0 ; =0x12345678 cmp r1, r0 beq _022436A6 - bl ErrorHandling + bl GF_AssertFail _022436A6: ldr r2, _022436C4 ; =0x000008CC ldr r5, [r4, #4] @@ -22907,7 +22907,7 @@ MOD06_02244AEC: ; 0x02244AEC ldrb r0, [r0, #0x10] cmp r0, #4 bls _02244B18 - bl ErrorHandling + bl GF_AssertFail _02244B18: add r0, sp, #0x80 ldrb r6, [r0, #0x10] @@ -23683,7 +23683,7 @@ _02245098: lsr r4, r0, #0x10 cmp r4, #0xc blo _02245104 - bl ErrorHandling + bl GF_AssertFail _02245104: lsl r1, r4, #2 add r0, sp, #4 @@ -23716,7 +23716,7 @@ _02245132: lsr r6, r0, #0x10 cmp r6, #0x24 blo _02245148 - bl ErrorHandling + bl GF_AssertFail _02245148: lsl r0, r6, #0x18 lsr r2, r0, #0x16 @@ -23962,7 +23962,7 @@ _02245302: str r0, [r5, #0x10] b _02245316 _02245312: - bl ErrorHandling + bl GF_AssertFail _02245316: ldr r0, [sp] str r0, [r5, #8] @@ -24454,7 +24454,7 @@ _022456DC: mov r4, #5 b _022456E4 _022456E0: - bl ErrorHandling + bl GF_AssertFail _022456E4: add r0, r4, #0 pop {r4, pc} @@ -24553,7 +24553,7 @@ _02245790: str r0, [r1] b _022457A0 _0224579C: - bl ErrorHandling + bl GF_AssertFail _022457A0: mov r0, #0 pop {r3, pc} @@ -24589,7 +24589,7 @@ MOD06_022457CC: ; 0x022457CC add r5, r0, #0 cmp r4, #3 blo _022457DC - bl ErrorHandling + bl GF_AssertFail _022457DC: ldr r0, [r5, #0xc] bl FUN_0202A9B0 @@ -24611,7 +24611,7 @@ MOD06_022457F8: ; 0x022457F8 add r5, r0, #0 cmp r4, #3 blo _02245808 - bl ErrorHandling + bl GF_AssertFail _02245808: ldr r0, [r5, #0xc] bl FUN_0202A9B0 @@ -25141,7 +25141,7 @@ _02245BF2: cmp r2, r5 blt _02245BB6 _02245BFA: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -25173,7 +25173,7 @@ _02245C2A: cmp r2, r3 blt _02245C18 _02245C32: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD06_02245C38 @@ -25203,7 +25203,7 @@ _02245C5E: cmp r2, r3 blt _02245C4C _02245C66: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD06_02245C6C @@ -25262,7 +25262,7 @@ _02245CCC: cmp r2, r5 blt _02245C8E _02245CD4: - bl ErrorHandling + bl GF_AssertFail add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -25293,7 +25293,7 @@ _02245D02: cmp r2, r3 blt _02245CF0 _02245D0A: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD06_02245D10 @@ -25323,7 +25323,7 @@ _02245D36: cmp r2, r3 blt _02245D24 _02245D3E: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD06_02245D44 @@ -25381,7 +25381,7 @@ _02245DA2: cmp r2, r5 blt _02245D66 _02245DAA: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -25441,7 +25441,7 @@ _02245E12: cmp r2, r5 blt _02245DD6 _02245E1A: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -25510,7 +25510,7 @@ _02245E3E: bl FUN_0201FF84 add r4, r0, #0 bne _02245EA6 - bl ErrorHandling + bl GF_AssertFail _02245EA6: add r0, r4, #0 add sp, #0x70 @@ -28280,7 +28280,7 @@ _02247392: bl FUN_0201FF84 add r4, r0, #0 bne _022473BE - bl ErrorHandling + bl GF_AssertFail _022473BE: add r0, r4, #0 add sp, #0x70 @@ -28438,7 +28438,7 @@ _022474E4: _022474EC: cmp r5, #4 blt _022474F4 - bl ErrorHandling + bl GF_AssertFail _022474F4: mov r0, #0x72 mov r5, #0 @@ -28474,7 +28474,7 @@ _02247528: _02247530: cmp r5, #4 blt _02247538 - bl ErrorHandling + bl GF_AssertFail _02247538: add r0, r6, #0 bl NARC_dtor @@ -28656,7 +28656,7 @@ MOD06_0224767C: ; 0x0224767C ldr r0, [r4, r0] cmp r0, #0 beq _0224768E - bl ErrorHandling + bl GF_AssertFail _0224768E: ldr r0, _022476A0 ; =MOD06_022476D4 add r1, r4, #0 @@ -28678,7 +28678,7 @@ MOD06_022476A4: ; 0x022476A4 ldr r0, [r4, r0] cmp r0, #0 bne _022476B6 - bl ErrorHandling + bl GF_AssertFail _022476B6: mov r0, #0x86 lsl r0, r0, #2 @@ -28805,7 +28805,7 @@ MOD06_0224778C: ; 0x0224778C bl AllocFromHeap add r4, r0, #0 bne _022477A8 - bl ErrorHandling + bl GF_AssertFail _022477A8: mov r1, #0 add r0, r6, #0 @@ -28974,7 +28974,7 @@ _022478E6: _022478EE: cmp r0, #4 blt _022478F6 - bl ErrorHandling + bl GF_AssertFail _022478F6: mov r0, #0x1a lsl r0, r0, #4 @@ -29011,7 +29011,7 @@ _02247930: _02247938: cmp r0, #3 blt _02247940 - bl ErrorHandling + bl GF_AssertFail _02247940: mov r0, #0x69 lsl r0, r0, #2 @@ -29048,7 +29048,7 @@ _0224797A: _02247982: cmp r0, #4 blt _0224798A - bl ErrorHandling + bl GF_AssertFail _0224798A: pop {r3, r4, r5, pc} @@ -30697,7 +30697,7 @@ MOD06_02248634: ; 0x02248634 bl AllocFromHeapAtEnd add r4, r0, #0 bne _02248644 - bl ErrorHandling + bl GF_AssertFail _02248644: add r0, r4, #0 mov r1, #0 @@ -30891,7 +30891,7 @@ _022487AC: lsr r4, r0, #0x10 cmp r4, #0x64 blo _022487C4 - bl ErrorHandling + bl GF_AssertFail _022487C4: cmp r4, #0x1e bhs _022487D2 @@ -30973,7 +30973,7 @@ MOD06_0224884C: ; 0x0224884C add r5, r0, #0 cmp r6, #4 blo _0224885C - bl ErrorHandling + bl GF_AssertFail _0224885C: add r0, r5, #0 mov r1, #0x14 @@ -31284,7 +31284,7 @@ CreateInGameTradeMon: ; 0x022489D4 bl MonIsShiny cmp r0, #0 beq _02248B08 - bl ErrorHandling + bl GF_AssertFail _02248B08: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -31596,7 +31596,7 @@ MOD06_02248D00: ; 0x02248D00 cmp r4, #9 blo _02248D5A _02248D56: - bl ErrorHandling + bl GF_AssertFail _02248D5A: add r0, r4, #0 add sp, #0xc @@ -31619,7 +31619,7 @@ MOD06_02248D60: ; 0x02248D60 ldrb r0, [r0] cmp r0, #5 blo _02248D84 - bl ErrorHandling + bl GF_AssertFail _02248D84: add r0, sp, #4 ldrb r0, [r0] @@ -31983,7 +31983,7 @@ MOD06_02249018: ; 0x02249018 add r4, r0, #0 cmp r4, #8 bls _02249028 - bl ErrorHandling + bl GF_AssertFail _02249028: ldr r2, _02249034 ; =0x02251738 sub r1, r4, #1 @@ -32019,7 +32019,7 @@ _0224905E: ; jump table .short _02249096 - _0224905E - 2 ; case 2 .short _0224909A - _0224905E - 2 ; case 3 _02249066: - bl ErrorHandling + bl GF_AssertFail _0224906A: bl GF_RTC_GetTimeOfDay cmp r0, #0 @@ -32286,12 +32286,12 @@ _02249244: ldr r0, [sp, #4] cmp r0, #0 bne _02249254 - bl ErrorHandling + bl GF_AssertFail _02249254: ldr r0, [sp, #4] cmp r0, #0xc bls _0224925E - bl ErrorHandling + bl GF_AssertFail _0224925E: ldr r0, [sp, #4] ldr r3, _022492A8 ; =0x0225181C @@ -33786,7 +33786,7 @@ _02249DD6: _02249DEC: cmp r4, #0 bne _02249DF4 - bl ErrorHandling + bl GF_AssertFail _02249DF4: add r0, r4, #0 pop {r3, r4, r5, pc} @@ -33846,7 +33846,7 @@ _02249E40: _02249E52: cmp r4, #0 bne _02249E5A - bl ErrorHandling + bl GF_AssertFail _02249E5A: add r0, r4, #0 pop {r4, pc} @@ -34240,7 +34240,7 @@ _0224A124: mov r0, #5 pop {r3, pc} _0224A128: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -34683,7 +34683,7 @@ MOD06_0224A478: ; 0x0224A478 sub r1, r1, #1 str r1, [r0] bpl _0224A486 - bl ErrorHandling + bl GF_AssertFail _0224A486: pop {r3, pc} @@ -35970,7 +35970,7 @@ MOD06_0224AE3C: ; 0x0224AE3C sub r1, r1, #1 str r1, [r0] bpl _0224AE4A - bl ErrorHandling + bl GF_AssertFail _0224AE4A: pop {r3, pc} @@ -38573,7 +38573,7 @@ MOD06_0224C27C: ; 0x0224C27C add sp, #0x20 pop {r4, r5, r6, pc} _0224C2E8: - bl ErrorHandling + bl GF_AssertFail add sp, #0x20 pop {r4, r5, r6, pc} .align 2, 0 @@ -38651,7 +38651,7 @@ _0224C328: bl FUN_0204A9F0 cmp r0, #0 bne _0224C390 - bl ErrorHandling + bl GF_AssertFail _0224C390: ldr r0, [sp, #0x1c] bl MOD05_021E7EC8 @@ -38865,7 +38865,7 @@ MOD06_0224C520: ; 0x0224C520 bl FUN_0204640C pop {r4, r5, r6, pc} _0224C552: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} .align 2, 0 _0224C558: .word 0x000001F2 @@ -38913,7 +38913,7 @@ _0224C590: bl FUN_0204A9F0 cmp r0, #0 bne _0224C5BA - bl ErrorHandling + bl GF_AssertFail _0224C5BA: ldr r0, [sp, #0x18] bl MOD05_021E7EC8 @@ -38949,7 +38949,7 @@ _0224C5EE: _0224C5FC: cmp r1, #0 bne _0224C604 - bl ErrorHandling + bl GF_AssertFail _0224C604: ldrb r2, [r4, #1] ldr r0, [r5, #0x50] @@ -39050,7 +39050,7 @@ MOD06_0224C678: ; 0x0224C678 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} _0224C6DA: - bl ErrorHandling + bl GF_AssertFail add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop @@ -39670,7 +39670,7 @@ MOD06_0224CB90: ; 0x0224CB90 bl AllocFromHeapAtEnd add r4, r0, #0 bne _0224CBA0 - bl ErrorHandling + bl GF_AssertFail _0224CBA0: add r0, r4, #0 mov r1, #0 @@ -39722,7 +39722,7 @@ _0224CBF2: lsr r5, r0, #0x10 cmp r5, #0x10 blo _0224CC02 - bl ErrorHandling + bl GF_AssertFail _0224CC02: lsl r0, r5, #2 ldr r0, [r4, r0] @@ -39753,7 +39753,7 @@ MOD06_0224CC24: ; 0x0224CC24 ldr r0, _0224CC5C ; =0x0000FFFF cmp r1, r0 bne _0224CC40 - bl ErrorHandling + bl GF_AssertFail _0224CC40: mov r0, #0x6a mov r1, #8 @@ -39780,7 +39780,7 @@ MOD06_0224CC60: ; 0x0224CC60 lsr r4, r0, #0x10 cmp r4, #2 blo _0224CC76 - bl ErrorHandling + bl GF_AssertFail _0224CC76: cmp r4, #0 bne _0224CC80 @@ -39853,7 +39853,7 @@ _0224CCEA: str r0, [sp, #0x10] cmp r0, r1 blt _0224CD0C - bl ErrorHandling + bl GF_AssertFail _0224CD0C: lsr r2, r4, #0x1f lsl r1, r4, #0x1e @@ -41135,7 +41135,7 @@ _0224D6FE: sub r0, r4, r0 pop {r4, r5, r6, pc} _0224D702: - bl ErrorHandling + bl GF_AssertFail add r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 @@ -41855,7 +41855,7 @@ MOD06_0224DCD8: ; 0x0224DCD8 add r6, r2, #0 cmp r0, #0 beq _0224DCEC - bl ErrorHandling + bl GF_AssertFail _0224DCEC: ldr r0, [r5, #4] mov r1, #0xf @@ -42916,7 +42916,7 @@ MOD06_0224E520: ; 0x0224E520 bl Bag_TakeItem cmp r0, #1 beq _0224E550 - bl ErrorHandling + bl GF_AssertFail _0224E550: pop {r4, r5, r6, pc} .align 2, 0 @@ -42972,7 +42972,7 @@ MOD06_0224E554: ; 0x0224E554 add sp, #0x20 pop {r4, r5, r6, pc} _0224E5C0: - bl ErrorHandling + bl GF_AssertFail add sp, #0x20 pop {r4, r5, r6, pc} .align 2, 0 @@ -43336,7 +43336,7 @@ _0224E8A4: add r5, r5, #1 b _0224E8AC _0224E8A8: - bl ErrorHandling + bl GF_AssertFail _0224E8AC: mov r3, #2 lsl r1, r5, #0x10 @@ -43392,7 +43392,7 @@ _0224E90C: add r5, r5, #1 b _0224E914 _0224E910: - bl ErrorHandling + bl GF_AssertFail _0224E914: mov r3, #2 lsl r1, r5, #0x10 @@ -44042,7 +44042,7 @@ MOD06_0224EDB0: ; 0x0224EDB0 add r5, r3, #0 cmp r0, #0 beq _0224EDC8 - bl ErrorHandling + bl GF_AssertFail _0224EDC8: add r0, r6, #0 add r1, sp, #0 @@ -44265,7 +44265,7 @@ _0224EF70: add r1, #0xcc cmp r2, #0x10 blt _0224EF44 - bl ErrorHandling + bl GF_AssertFail pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index e810c6200..215c03c6e 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -3163,7 +3163,7 @@ MOD07_02213810: ; 0x02213810 bl FUN_0201327C cmp r4, #0 bne _02213828 - bl ErrorHandling + bl GF_AssertFail _02213828: lsl r0, r4, #0x10 lsr r0, r0, #0xd @@ -3182,7 +3182,7 @@ MOD07_02213834: ; 0x02213834 bl FUN_020132BC cmp r4, #0 bne _0221384C - bl ErrorHandling + bl GF_AssertFail _0221384C: lsl r0, r4, #0x10 lsr r0, r0, #0xd diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 0ff32867e..3c0363b47 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -110,7 +110,7 @@ _02211F06: strh r0, [r1] b _02211F18 _02211F14: - bl ErrorHandling + bl GF_AssertFail _02211F18: ldr r2, [sp, #0x10] add r0, r5, #0 @@ -144,7 +144,7 @@ _02211F40: strh r0, [r1] b _02211F52 _02211F4E: - bl ErrorHandling + bl GF_AssertFail _02211F52: add r0, r4, #0 bl FUN_0200CAB4 @@ -162,7 +162,7 @@ MOD08_02211F5C: ; 0x02211F5C bne _02211F78 cmp r4, #0 bne _02211F74 - bl ErrorHandling + bl GF_AssertFail _02211F74: mov r0, #0 pop {r3, r4, r5, pc} @@ -187,7 +187,7 @@ _02211F78: cmp r0, #0 bne _02211FAC bne _02211FA8 - bl ErrorHandling + bl GF_AssertFail _02211FA8: mov r0, #0 pop {r3, r4, r5, pc} @@ -235,7 +235,7 @@ MOD08_02211FF0: ; 0x02211FF0 add r4, r1, #0 cmp r5, #0 bne _02211FFE - bl ErrorHandling + bl GF_AssertFail _02211FFE: str r4, [r5, #8] pop {r3, r4, r5, pc} @@ -246,7 +246,7 @@ MOD08_02212004: ; 0x02212004 push {r4, lr} add r4, r0, #0 bne _0221200E - bl ErrorHandling + bl GF_AssertFail _0221200E: ldr r0, [r4, #8] pop {r4, pc} @@ -257,7 +257,7 @@ MOD08_02212014: ; 0x02212014 push {r4, lr} add r4, r0, #0 bne _0221201E - bl ErrorHandling + bl GF_AssertFail _0221201E: ldr r0, [r4] pop {r4, pc} @@ -412,7 +412,7 @@ _02212096: ldr r0, [r0] cmp r0, #0 bne _02212148 - bl ErrorHandling + bl GF_AssertFail _02212148: ldr r0, [sp, #4] mov r5, #0 @@ -605,7 +605,7 @@ _022122A6: cmp r0, #0 bne _022122C6 bne _022122C0 - bl ErrorHandling + bl GF_AssertFail _022122C0: add sp, #0x3c mov r0, #0 @@ -737,7 +737,7 @@ MOD08_022123B0: ; 0x022123B0 cmp r0, #0 bne _022123C2 bne _022123BE - bl ErrorHandling + bl GF_AssertFail _022123BE: mov r0, #0 pop {r3, pc} @@ -891,7 +891,7 @@ MOD08_02212498: ; 0x02212498 add r4, r0, #0 cmp r5, #0xa blt _022124A6 - bl ErrorHandling + bl GF_AssertFail _022124A6: lsl r0, r5, #2 add r0, r4, r0 @@ -906,18 +906,18 @@ MOD08_022124B0: ; 0x022124B0 add r5, r0, #0 cmp r4, #0xa blt _022124BE - bl ErrorHandling + bl GF_AssertFail _022124BE: cmp r5, #0 bne _022124C6 - bl ErrorHandling + bl GF_AssertFail _022124C6: add r5, #0xdc lsl r4, r4, #2 ldr r0, [r5, r4] cmp r0, #0 bne _022124D4 - bl ErrorHandling + bl GF_AssertFail _022124D4: ldr r0, [r5, r4] pop {r3, r4, r5, pc} @@ -929,11 +929,11 @@ MOD08_022124D8: ; 0x022124D8 add r5, r0, #0 cmp r4, #5 blt _022124E6 - bl ErrorHandling + bl GF_AssertFail _022124E6: cmp r5, #0 bne _022124EE - bl ErrorHandling + bl GF_AssertFail _022124EE: mov r0, #0x4f lsl r0, r0, #2 @@ -942,7 +942,7 @@ _022124EE: ldr r0, [r5, r4] cmp r0, #0 bne _02212500 - bl ErrorHandling + bl GF_AssertFail _02212500: ldr r0, [r5, r4] pop {r3, r4, r5, pc} @@ -952,7 +952,7 @@ MOD08_02212504: ; 0x02212504 push {r4, lr} add r4, r0, #0 bne _0221250E - bl ErrorHandling + bl GF_AssertFail _0221250E: mov r0, #0x4e lsl r0, r0, #2 @@ -985,7 +985,7 @@ MOD08_0221252C: ; 0x0221252C bl AllocFromHeap add r4, r0, #0 bne _02212544 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} _02212544: @@ -1494,7 +1494,7 @@ _022128A4: str r1, [r0, #4] pop {r3, r4, r5, r6, r7, pc} _022128B8: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -2079,7 +2079,7 @@ _02212D04: ldr r4, [r1, r0] cmp r4, #0xff bne _02212D44 - bl ErrorHandling + bl GF_AssertFail _02212D44: sub r0, r4, #1 add sp, #0x90 @@ -2122,7 +2122,7 @@ _02212D5C: ldr r4, [r1, r0] cmp r4, #0xff bne _02212D9C - bl ErrorHandling + bl GF_AssertFail _02212D9C: add r0, r4, #0 add sp, #0x90 @@ -2369,7 +2369,7 @@ MOD08_02212F58: ; 0x02212F58 ldr r0, [r0, #0x1c] cmp r0, #0 beq _02212F7C - bl ErrorHandling + bl GF_AssertFail _02212F7C: ldr r0, [r5, #0x18] mov r2, #0 @@ -2413,7 +2413,7 @@ MOD08_02212FAC: ; 0x02212FAC ldr r0, [r0, #0x1c] cmp r0, #0 beq _02212FD2 - bl ErrorHandling + bl GF_AssertFail _02212FD2: ldr r0, [r5, #0x18] mov r1, #0x64 @@ -3660,7 +3660,7 @@ _02213926: ldr r0, [r6, r5] cmp r0, #0 beq _0221393A - bl ErrorHandling + bl GF_AssertFail _0221393A: mov r0, #0x15 str r7, [r6, r5] @@ -4271,7 +4271,7 @@ MOD08_02213DA8: ; 0x02213DA8 bl AllocFromHeap add r4, r0, #0 bne _02213DC0 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} _02213DC0: @@ -5230,7 +5230,7 @@ MOD08_02214524: ; 0x02214524 push {r4, lr} add r4, r0, #0 bne _0221452E - bl ErrorHandling + bl GF_AssertFail _0221452E: mov r0, #6 lsl r0, r0, #6 @@ -6523,7 +6523,7 @@ MOD08_02214ED4: ; 0x02214ED4 ldr r0, [r6, r4] cmp r0, #0 beq _02214EFC - bl ErrorHandling + bl GF_AssertFail _02214EFC: add r0, r5, #0 add r0, #0xc0 @@ -6535,7 +6535,7 @@ _02214EFC: ldr r0, [r6, r4] cmp r0, #0 bne _02214F16 - bl ErrorHandling + bl GF_AssertFail _02214F16: add r0, r5, #0 add r0, #0xc0 @@ -6953,7 +6953,7 @@ _0221521A: ldr r0, [r5, r4] cmp r0, #0 beq _0221524E - bl ErrorHandling + bl GF_AssertFail _0221524E: str r6, [r5, r4] add sp, #0x34 @@ -7009,10 +7009,10 @@ _022152A4: .word FUN_0200C644 thumb_func_start MOD08_022152A8 MOD08_022152A8: ; 0x022152A8 - ldr r3, _022152AC ; =ErrorHandling + ldr r3, _022152AC ; =GF_AssertFail bx r3 .align 2, 0 -_022152AC: .word ErrorHandling +_022152AC: .word GF_AssertFail thumb_func_start MOD08_022152B0 MOD08_022152B0: ; 0x022152B0 @@ -7234,7 +7234,7 @@ MOD08_02215434: ; 0x02215434 beq _02215456 cmp r5, r2 beq _02215452 - bl ErrorHandling + bl GF_AssertFail _02215452: mov r0, #0 pop {r3, r4, r5, pc} @@ -7964,7 +7964,7 @@ MOD08_02215988: ; 0x02215988 push {r4, lr} add r4, r0, #0 bne _02215992 - bl ErrorHandling + bl GF_AssertFail _02215992: ldr r0, [r4, #4] add r0, r4, r0 @@ -12531,7 +12531,7 @@ _02217BE8: ldrsh r0, [r1, r0] pop {r3, r4, r5, r6, r7, pc} _02217BF8: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -12724,7 +12724,7 @@ MOD08_02217D44: ; 0x02217D44 str r3, [sp] cmp r5, #0 bne _02217D56 - bl ErrorHandling + bl GF_AssertFail _02217D56: cmp r4, r7 bls _02217D62 @@ -12764,7 +12764,7 @@ MOD08_02217D98: ; 0x02217D98 push {r4, lr} add r4, r0, #0 bne _02217DA2 - bl ErrorHandling + bl GF_AssertFail _02217DA2: ldr r0, [r4, #4] cmp r0, #0 @@ -12890,7 +12890,7 @@ MOD08_02217E80: ; 0x02217E80 str r2, [sp] cmp r5, #0 bne _02217E94 - bl ErrorHandling + bl GF_AssertFail _02217E94: strh r4, [r5] strh r6, [r5, #2] @@ -12924,7 +12924,7 @@ MOD08_02217ECC: ; 0x02217ECC push {r4, lr} add r4, r0, #0 bne _02217ED6 - bl ErrorHandling + bl GF_AssertFail _02217ED6: ldr r0, [r4, #4] cmp r0, #0 @@ -13037,11 +13037,11 @@ MOD08_02217F9C: ; 0x02217F9C add r4, r1, #0 cmp r5, #0 bne _02217FAA - bl ErrorHandling + bl GF_AssertFail _02217FAA: cmp r4, #0 bne _02217FB2 - bl ErrorHandling + bl GF_AssertFail _02217FB2: add r0, r5, #0 bl MOD08_02217ECC @@ -13097,7 +13097,7 @@ MOD08_02218008: ; 0x02218008 add r4, r3, #0 cmp r5, #0 bne _0221801A - bl ErrorHandling + bl GF_AssertFail _0221801A: str r6, [r5] lsl r0, r6, #0xc @@ -13119,7 +13119,7 @@ MOD08_02218030: ; 0x02218030 add r4, r3, #0 cmp r5, #0 bne _02218042 - bl ErrorHandling + bl GF_AssertFail _02218042: str r6, [r5] lsl r6, r6, #0xc @@ -13137,7 +13137,7 @@ MOD08_02218058: ; 0x02218058 push {r4, lr} add r4, r0, #0 bne _02218062 - bl ErrorHandling + bl GF_AssertFail _02218062: ldr r0, [r4, #4] cmp r0, #0 @@ -13161,7 +13161,7 @@ MOD08_02218080: ; 0x02218080 push {r4, lr} add r4, r0, #0 bne _0221808A - bl ErrorHandling + bl GF_AssertFail _0221808A: ldr r0, [r4, #4] cmp r0, #0 @@ -13201,7 +13201,7 @@ MOD08_022180C4: ; 0x022180C4 push {r4, lr} add r4, r0, #0 bne _022180CE - bl ErrorHandling + bl GF_AssertFail _022180CE: ldr r0, [r4, #4] cmp r0, #0 @@ -13253,7 +13253,7 @@ MOD08_02218120: ; 0x02218120 add r7, r3, #0 cmp r4, #0 bne _02218132 - bl ErrorHandling + bl GF_AssertFail _02218132: ldr r0, [sp, #0x18] add r1, r6, #0 @@ -13289,7 +13289,7 @@ MOD08_02218170: ; 0x02218170 push {r4, lr} add r4, r0, #0 bne _0221817A - bl ErrorHandling + bl GF_AssertFail _0221817A: ldr r0, [r4, #4] cmp r0, #0 @@ -13325,7 +13325,7 @@ MOD08_022181A8: ; 0x022181A8 str r3, [sp] cmp r5, #0 bne _022181BA - bl ErrorHandling + bl GF_AssertFail _022181BA: ldr r0, [sp, #0x20] add r1, sp, #8 @@ -13380,7 +13380,7 @@ MOD08_02218224: ; 0x02218224 push {r4, lr} add r4, r0, #0 bne _0221822E - bl ErrorHandling + bl GF_AssertFail _0221822E: ldr r0, [r4, #4] cmp r0, #0 @@ -13602,7 +13602,7 @@ MOD08_022183C0: ; 0x022183C0 add r7, r3, #0 cmp r5, #0 bne _022183D2 - bl ErrorHandling + bl GF_AssertFail _022183D2: str r7, [r5, #4] ldr r0, [sp, #0x18] @@ -13625,7 +13625,7 @@ MOD08_022183F0: ; 0x022183F0 push {r4, lr} add r4, r0, #0 bne _022183FA - bl ErrorHandling + bl GF_AssertFail _022183FA: ldr r0, [r4, #0xc] cmp r0, #0 @@ -14094,7 +14094,7 @@ MOD08_02218740: ; 0x02218740 add r7, r3, #0 cmp r5, #0 bne _02218752 - bl ErrorHandling + bl GF_AssertFail _02218752: mov r0, #1 str r0, [r5, #8] @@ -14122,7 +14122,7 @@ MOD08_02218780: ; 0x02218780 push {r4, lr} add r4, r0, #0 bne _0221878A - bl ErrorHandling + bl GF_AssertFail _0221878A: ldr r0, [r4, #4] cmp r0, #0 @@ -14142,7 +14142,7 @@ MOD08_022187A4: ; 0x022187A4 push {r4, lr} add r4, r0, #0 bne _022187AE - bl ErrorHandling + bl GF_AssertFail _022187AE: mov r0, #0 str r0, [r4, #8] @@ -14199,7 +14199,7 @@ MOD08_022187F4: ; 0x022187F4 bl memset cmp r4, #0 bne _02218816 - bl ErrorHandling + bl GF_AssertFail _02218816: mov r2, #0x32 add r1, r4, #0 @@ -14211,7 +14211,7 @@ _02218816: str r0, [r4, #0x1c] cmp r0, #0 bne _02218830 - bl ErrorHandling + bl GF_AssertFail _02218830: mov r0, #0x62 lsl r0, r0, #4 @@ -14245,7 +14245,7 @@ MOD08_02218870: ; 0x02218870 push {r4, lr} add r4, r0, #0 bne _0221887A - bl ErrorHandling + bl GF_AssertFail _0221887A: add r0, r4, #0 bl MOD08_02218780 @@ -14264,7 +14264,7 @@ MOD08_02218894: ; 0x02218894 push {r4, lr} add r4, r0, #0 bne _0221889E - bl ErrorHandling + bl GF_AssertFail _0221889E: ldr r0, [r4, #0x1c] bl FUN_02012988 @@ -14276,7 +14276,7 @@ MOD08_022188A8: ; 0x022188A8 push {r4, lr} add r4, r0, #0 bne _022188B2 - bl ErrorHandling + bl GF_AssertFail _022188B2: add r0, r4, #0 bl MOD08_022187A4 @@ -14315,7 +14315,7 @@ MOD08_022188DC: ; 0x022188DC bl AllocFromHeap add r4, r0, #0 bne _022188F8 - bl ErrorHandling + bl GF_AssertFail _022188F8: add r0, r4, #0 mov r1, #0 @@ -14359,7 +14359,7 @@ MOD08_0221894C: ; 0x0221894C push {r4, lr} add r4, r0, #0 bne _02218956 - bl ErrorHandling + bl GF_AssertFail _02218956: add r0, r4, #0 bl MOD08_02218780 @@ -14378,7 +14378,7 @@ MOD08_02218970: ; 0x02218970 push {r4, lr} add r4, r0, #0 bne _0221897A - bl ErrorHandling + bl GF_AssertFail _0221897A: ldr r0, [r4, #0x1c] bl FUN_02012B20 @@ -14390,7 +14390,7 @@ MOD08_02218984: ; 0x02218984 push {r4, lr} add r4, r0, #0 bne _0221898E - bl ErrorHandling + bl GF_AssertFail _0221898E: add r0, r4, #0 bl MOD08_022187A4 @@ -14606,7 +14606,7 @@ MOD08_02218AF8: ; 0x02218AF8 push {r4, lr} add r4, r0, #0 bne _02218B02 - bl ErrorHandling + bl GF_AssertFail _02218B02: ldr r0, [r4] pop {r4, pc} @@ -14617,7 +14617,7 @@ MOD08_02218B08: ; 0x02218B08 push {r4, lr} add r4, r0, #0 bne _02218B12 - bl ErrorHandling + bl GF_AssertFail _02218B12: ldr r0, [r4, #4] bl FUN_0200CAB4 @@ -14636,7 +14636,7 @@ MOD08_02218B20: ; 0x02218B20 bl AllocFromHeap add r4, r0, #0 bne _02218B38 - bl ErrorHandling + bl GF_AssertFail _02218B38: str r5, [r4, #0x18] str r6, [r4, #8] @@ -15003,7 +15003,7 @@ MOD08_02218DCC: ; 0x02218DCC bl AllocFromHeap add r4, r0, #0 bne _02218DEA - bl ErrorHandling + bl GF_AssertFail _02218DEA: mov r0, #0 strb r0, [r4] @@ -16348,7 +16348,7 @@ _02219886: str r0, [r4, #0x28] b _022198A4 _022198A0: - bl ErrorHandling + bl GF_AssertFail _022198A4: ldr r0, [r4, #0x28] mov r1, #0 @@ -16667,7 +16667,7 @@ _02219B18: lsl r6, r6, #8 b _02219B22 _02219B1E: - bl ErrorHandling + bl GF_AssertFail _02219B22: add r0, r5, #0 mov r1, #1 @@ -17003,7 +17003,7 @@ _02219D98: str r0, [r6, #4] b _02219DA8 _02219DA4: - bl ErrorHandling + bl GF_AssertFail _02219DA8: ldr r0, [r6, #4] cmp r0, #0 @@ -18152,7 +18152,7 @@ _0221A6CA: add r6, r0, #0 b _0221A6EA _0221A6E6: - bl ErrorHandling + bl GF_AssertFail _0221A6EA: cmp r6, #0xff bne _0221A6F6 @@ -18353,7 +18353,7 @@ _0221A866: add r6, r0, #0 b _0221A886 _0221A882: - bl ErrorHandling + bl GF_AssertFail _0221A886: cmp r6, #0xff bne _0221A892 @@ -19226,7 +19226,7 @@ _0221AFC0: add r6, r0, #0 b _0221AFE0 _0221AFDC: - bl ErrorHandling + bl GF_AssertFail _0221AFE0: cmp r6, #0xff bne _0221AFEC @@ -19478,7 +19478,7 @@ _0221B1DA: str r0, [sp, #8] b _0221B1F0 _0221B1EC: - bl ErrorHandling + bl GF_AssertFail _0221B1F0: add r2, r5, #0 ldr r1, [sp, #8] @@ -19599,7 +19599,7 @@ _0221B2D8: str r0, [sp, #8] b _0221B2EE _0221B2EA: - bl ErrorHandling + bl GF_AssertFail _0221B2EE: add r2, r4, #0 ldr r1, [sp, #8] @@ -19727,7 +19727,7 @@ _0221B3DA: add r6, r0, #0 b _0221B3F0 _0221B3EC: - bl ErrorHandling + bl GF_AssertFail _0221B3F0: add r0, r5, #0 add r1, r6, #0 @@ -20004,7 +20004,7 @@ _0221B622: add r7, r0, #0 b _0221B638 _0221B634: - bl ErrorHandling + bl GF_AssertFail _0221B638: add r0, r5, #0 mov r1, #1 @@ -20139,7 +20139,7 @@ _0221B744: add r4, r0, #0 b _0221B758 _0221B754: - bl ErrorHandling + bl GF_AssertFail _0221B758: add r0, r4, #0 pop {r3, r4, r5, pc} @@ -20834,7 +20834,7 @@ _0221BCEE: ldr r0, [r4, #0x38] cmp r0, #0 bne _0221BCF8 - bl ErrorHandling + bl GF_AssertFail _0221BCF8: pop {r3, r4, r5, pc} nop @@ -21182,7 +21182,7 @@ _0221BFBE: ldr r0, [r4, #0x38] cmp r0, #0 bne _0221BFCA - bl ErrorHandling + bl GF_AssertFail _0221BFCA: ldr r1, [r4, #0x14] add r0, r5, #0 @@ -23309,7 +23309,7 @@ MOD08_0221D0EC: ; 0x0221D0EC bl AllocFromHeap add r4, r0, #0 bne _0221D10A - bl ErrorHandling + bl GF_AssertFail _0221D10A: mov r0, #0 strb r0, [r4, #4] @@ -28315,7 +28315,7 @@ MOD08_0221FA44: ; 0x0221FA44 bl AllocFromHeap add r4, r0, #0 bne _0221FA62 - bl ErrorHandling + bl GF_AssertFail _0221FA62: mov r0, #0 strb r0, [r4, #4] @@ -28769,7 +28769,7 @@ MOD08_0221FDE4: ; 0x0221FDE4 bl AllocFromHeap add r4, r0, #0 bne _0221FE02 - bl ErrorHandling + bl GF_AssertFail _0221FE02: mov r0, #0 strb r0, [r4, #7] @@ -29234,7 +29234,7 @@ MOD08_02220180: ; 0x02220180 bl AllocFromHeap add r4, r0, #0 bne _0222019E - bl ErrorHandling + bl GF_AssertFail _0222019E: mov r0, #0 strb r0, [r4, #1] @@ -36026,7 +36026,7 @@ _02223A38: add sp, #8 pop {r3, pc} _02223A50: - bl ErrorHandling + bl GF_AssertFail add sp, #8 pop {r3, pc} @@ -36292,7 +36292,7 @@ _02223C50: add sp, #8 pop {r3, pc} _02223C6A: - bl ErrorHandling + bl GF_AssertFail add sp, #8 pop {r3, pc} .align 2, 0 @@ -43300,7 +43300,7 @@ _02227514: add r4, r4, #1 cmp r4, #4 blt _022274D0 - bl ErrorHandling + bl GF_AssertFail add r0, r5, #0 _02227520: pop {r4, r5, r6, pc} @@ -43343,7 +43343,7 @@ _02227556: mov r0, #4 pop {r3, pc} _0222755A: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 @@ -43450,7 +43450,7 @@ _02227616: mov r5, #7 b _0222761E _0222761A: - bl ErrorHandling + bl GF_AssertFail _0222761E: mov r0, #0x12 lsl r0, r0, #4 @@ -44755,7 +44755,7 @@ MOD08_02228064: ; 0x02228064 add r5, r1, #0 cmp r4, #0 bne _02228072 - bl ErrorHandling + bl GF_AssertFail _02228072: add r0, r4, #0 bl MOD08_02212014 @@ -44763,7 +44763,7 @@ _02228072: bl AllocFromHeap add r4, r0, #0 bne _02228086 - bl ErrorHandling + bl GF_AssertFail _02228086: add r0, r4, #0 mov r1, #0 @@ -44777,7 +44777,7 @@ MOD08_02228094: ; 0x02228094 push {r4, lr} add r4, r0, #0 bne _0222809E - bl ErrorHandling + bl GF_AssertFail _0222809E: add r0, r4, #0 bl FreeToHeap @@ -44989,7 +44989,7 @@ MOD08_022281F4: ; 0x022281F4 bl AllocFromHeap cmp r0, #0 bne _0222820A - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, pc} _0222820A: @@ -45047,7 +45047,7 @@ MOD08_02228244: ; 0x02228244 ldr r0, [r0] cmp r0, #0xd blt _02228272 - bl ErrorHandling + bl GF_AssertFail _02228272: add r0, r4, #0 add r0, #0x9c @@ -45146,7 +45146,7 @@ _022282F8: ldr r0, [r0, #0x14] cmp r0, #0 beq _02228332 - bl ErrorHandling + bl GF_AssertFail _02228332: add r0, r4, #0 add r0, #0x8c @@ -45165,7 +45165,7 @@ _02228332: ldr r0, [r0, #0x14] cmp r0, #0 bne _0222835A - bl ErrorHandling + bl GF_AssertFail _0222835A: ldr r0, [r6] add r0, r0, #1 @@ -45215,7 +45215,7 @@ _02228384: ldr r0, [r0, #0x14] cmp r0, #0 beq _022283BE - bl ErrorHandling + bl GF_AssertFail _022283BE: add r0, r4, #0 add r0, #0x8c @@ -45234,7 +45234,7 @@ _022283BE: ldr r0, [r0, #0x14] cmp r0, #0 bne _022283E6 - bl ErrorHandling + bl GF_AssertFail _022283E6: ldr r0, [r6] add r0, r0, #1 @@ -45284,7 +45284,7 @@ _02228410: ldr r0, [r0, #0x14] cmp r0, #0 beq _0222844A - bl ErrorHandling + bl GF_AssertFail _0222844A: add r0, r4, #0 add r0, #0x8c @@ -45303,7 +45303,7 @@ _0222844A: ldr r0, [r0, #0x14] cmp r0, #0 bne _02228472 - bl ErrorHandling + bl GF_AssertFail _02228472: ldr r0, [r6] add r0, r0, #1 @@ -45353,7 +45353,7 @@ _0222849C: ldr r0, [r0, #0x14] cmp r0, #0 beq _022284D6 - bl ErrorHandling + bl GF_AssertFail _022284D6: add r0, r4, #0 add r0, #0x8c @@ -45372,7 +45372,7 @@ _022284D6: ldr r0, [r0, #0x14] cmp r0, #0 bne _022284FE - bl ErrorHandling + bl GF_AssertFail _022284FE: ldr r0, [r6] add r0, r0, #1 @@ -45485,7 +45485,7 @@ MOD08_022285BC: ; 0x022285BC mov r7, #0 cmp r0, #9 ble _022285CE - bl ErrorHandling + bl GF_AssertFail _022285CE: ldr r0, [r6, #0x10] mov r4, #0 @@ -45612,7 +45612,7 @@ _022286AC: bl AllocFromHeap add r4, r0, #0 bne _022286BC - bl ErrorHandling + bl GF_AssertFail _022286BC: str r7, [r4] ldr r0, [r6, #4] @@ -45629,7 +45629,7 @@ _022286BC: str r0, [r4, #0x14] cmp r0, #0 bne _022286DE - bl ErrorHandling + bl GF_AssertFail _022286DE: ldr r0, [r4, #0x14] bl MOD08_0222A078 @@ -45856,7 +45856,7 @@ MOD08_02228880: ; 0x02228880 bl AllocFromHeap add r4, r0, #0 bne _02228894 - bl ErrorHandling + bl GF_AssertFail _02228894: ldmia r5!, {r0, r1} add r2, r4, #0 @@ -46681,7 +46681,7 @@ _02228E64: ldr r0, [r5, #0x18] cmp r0, #3 blt _02228E6E - bl ErrorHandling + bl GF_AssertFail _02228E6E: ldr r0, [r5, #8] add r0, r0, #1 @@ -48093,7 +48093,7 @@ MOD08_02229918: ; 0x02229918 bl MI_CpuFill8 cmp r4, #0 bne _02229936 - bl ErrorHandling + bl GF_AssertFail _02229936: add r3, r4, #0 add r3, #0x90 @@ -48184,7 +48184,7 @@ MOD08_022299E8: ; 0x022299E8 push {r4, lr} add r4, r0, #0 bne _022299F2 - bl ErrorHandling + bl GF_AssertFail _022299F2: ldr r0, [r4, #0x1c] cmp r0, #0 @@ -48200,7 +48200,7 @@ MOD08_02229A00: ; 0x02229A00 push {r4, lr} add r4, r0, #0 bne _02229A0A - bl ErrorHandling + bl GF_AssertFail _02229A0A: ldr r0, [r4, #0x28] cmp r0, #0 @@ -48233,7 +48233,7 @@ MOD08_02229A2C: ; 0x02229A2C push {r4, lr} add r4, r0, #0 bne _02229A36 - bl ErrorHandling + bl GF_AssertFail _02229A36: add r0, r4, #0 add r0, #0xac @@ -48276,7 +48276,7 @@ MOD08_02229A80: ; 0x02229A80 push {r4, lr} add r4, r0, #0 bne _02229A8A - bl ErrorHandling + bl GF_AssertFail _02229A8A: add r4, #0x98 ldr r0, [r4] @@ -49118,7 +49118,7 @@ MOD08_0222A0D4: ; 0x0222A0D4 bl AllocFromHeap add r4, r0, #0 bne _0222A0EC - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, r5, r6, pc} _0222A0EC: @@ -49172,7 +49172,7 @@ _0222A138: _0222A140: cmp r4, #0 bne _0222A148 - bl ErrorHandling + bl GF_AssertFail _0222A148: add r0, r4, #0 pop {r4, r5, r6, pc} @@ -49234,7 +49234,7 @@ MOD08_0222A1A0: ; 0x0222A1A0 bl AllocFromHeap add r4, r0, #0 bne _0222A1B8 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, r5, r6, pc} _0222A1B8: @@ -49346,7 +49346,7 @@ _0222A26C: sub r0, r5, #5 cmp r0, #0x16 blo _0222A284 - bl ErrorHandling + bl GF_AssertFail add sp, #0x58 mov r0, #0 pop {r3, r4, r5, pc} diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 42f3f7546..9fedcb0a3 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -1898,7 +1898,7 @@ _0222E532: ldr r0, [r0, r1] cmp r0, #0 bne _0222E67E - bl ErrorHandling + bl GF_AssertFail _0222E67E: ldr r5, [sp, #4] mov r0, #0 @@ -3078,11 +3078,11 @@ MOD11_0222EFDC: ; 0x0222EFDC add r5, r0, #0 cmp r4, #0 bne _0222F004 - bl ErrorHandling + bl GF_AssertFail _0222F004: cmp r5, #0 bne _0222F00C - bl ErrorHandling + bl GF_AssertFail _0222F00C: bl FUN_02012CC8 pop {r3, r4, r5, pc} diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index 3a852eef9..b22a9a771 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -2073,7 +2073,7 @@ _02230250: ldr r0, [r6, #0x44] cmp r4, r0 blt _0223025A - bl ErrorHandling + bl GF_AssertFail _0223025A: add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} @@ -3553,7 +3553,7 @@ MOD11_02230DE0: ; 0x02230DE0 ldr r0, [r4, #0x30] cmp r0, #0 bne _02230DEE - bl ErrorHandling + bl GF_AssertFail _02230DEE: ldr r1, [r4, #0x30] add r0, r4, #0 @@ -4278,7 +4278,7 @@ MOD11_022312DC: ; 0x022312DC add r4, r0, #0 cmp r5, #4 blt _022312EA - bl ErrorHandling + bl GF_AssertFail _022312EA: lsl r0, r5, #4 ldr r0, [r4, r0] @@ -4292,7 +4292,7 @@ MOD11_022312F0: ; 0x022312F0 add r6, r2, #0 cmp r4, #4 blt _02231300 - bl ErrorHandling + bl GF_AssertFail _02231300: lsl r0, r4, #4 add r0, r5, r0 @@ -4307,7 +4307,7 @@ MOD11_02231308: ; 0x02231308 add r6, r2, #0 cmp r4, #4 blt _02231318 - bl ErrorHandling + bl GF_AssertFail _02231318: lsl r0, r4, #4 add r0, r5, r0 @@ -4322,7 +4322,7 @@ MOD11_02231320: ; 0x02231320 add r6, r2, #0 cmp r4, #4 blt _02231330 - bl ErrorHandling + bl GF_AssertFail _02231330: lsl r0, r4, #4 add r0, r5, r0 @@ -4559,7 +4559,7 @@ MOD11_022314B0: ; 0x022314B0 add r5, r0, #0 cmp r4, #0xf blo _022314BE - bl ErrorHandling + bl GF_AssertFail _022314BE: ldr r1, _022314D0 ; =0x000023FB mov r0, #0xe0 @@ -5292,7 +5292,7 @@ _02231A22: strh r0, [r4, #2] pop {r4, r5, r6, pc} _02231A46: - bl ErrorHandling + bl GF_AssertFail _02231A4A: pop {r4, r5, r6, pc} @@ -6036,7 +6036,7 @@ _02232086: bl MOD11_022320C8 pop {r3, r4, r5, pc} _022320C2: - bl ErrorHandling + bl GF_AssertFail _022320C6: pop {r3, r4, r5, pc} @@ -9941,7 +9941,7 @@ _02233F10: str r0, [r4] b _02233F42 _02233F1A: - bl ErrorHandling + bl GF_AssertFail b _02233F42 _02233F20: ldr r0, [r4] @@ -9962,7 +9962,7 @@ _02233F36: str r0, [r4] b _02233F42 _02233F3E: - bl ErrorHandling + bl GF_AssertFail _02233F42: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -10847,7 +10847,7 @@ _0223461C: str r0, [sp, #0xc] b _02234648 _02234626: - bl ErrorHandling + bl GF_AssertFail b _02234648 _0223462C: sub r0, r0, r4 @@ -10865,7 +10865,7 @@ _0223463E: str r0, [sp, #0xc] b _02234648 _02234644: - bl ErrorHandling + bl GF_AssertFail _02234648: cmp r6, #0x1a bne _0223465E @@ -11207,7 +11207,7 @@ _022348E8: str r0, [r4] b _022348F6 _022348F2: - bl ErrorHandling + bl GF_AssertFail _022348F6: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -11368,7 +11368,7 @@ _02234A18: str r0, [sp, #0xc] b _02234A26 _02234A22: - bl ErrorHandling + bl GF_AssertFail _02234A26: cmp r5, #0x11 beq _02234A56 @@ -20606,7 +20606,7 @@ _02239324: ldr r0, [sp, #0xc] cmp r0, #0xa blt _0223932E - bl ErrorHandling + bl GF_AssertFail _0223932E: bl LCRandom mov r1, #0x64 @@ -21264,7 +21264,7 @@ _02239872: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _0223987E: - bl ErrorHandling + bl GF_AssertFail _02239882: ldr r0, _022398B0 ; =0x00002D90 add r1, r5, r6 @@ -21323,7 +21323,7 @@ _022398E6: _022398F0: cmp r4, #0 bne _022398F8 - bl ErrorHandling + bl GF_AssertFail _022398F8: bl LCRandom mov r1, #0x64 @@ -36327,7 +36327,7 @@ _02240F28: ldr r0, [r4, r0] cmp r0, #0 blt _02240F4A - bl ErrorHandling + bl GF_AssertFail _02240F4A: ldr r1, [r4, #0x64] add r0, r5, #0 @@ -40690,7 +40690,7 @@ MOD11_022431DC: ; 0x022431DC lsl r1, r1, #6 cmp r0, r1 blo _022431F8 - bl ErrorHandling + bl GF_AssertFail _022431F8: add r0, r5, #0 add r0, #0xac @@ -40723,14 +40723,14 @@ MOD11_0224321C: ; 0x0224321C lsl r1, r1, #6 cmp r0, r1 blo _02243238 - bl ErrorHandling + bl GF_AssertFail _02243238: add r0, r5, #0 add r0, #0xb8 ldr r0, [r0] cmp r0, #4 blt _02243246 - bl ErrorHandling + bl GF_AssertFail _02243246: add r1, r5, #0 add r1, #0xb8 @@ -40861,7 +40861,7 @@ _0224332C: _02243334: cmp r3, #0x10 blt _0224333C - bl ErrorHandling + bl GF_AssertFail _0224333C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -40874,7 +40874,7 @@ MOD11_02243340: ; 0x02243340 str r2, [sp] add r4, r3, #0 bne _02243350 - bl ErrorHandling + bl GF_AssertFail _02243350: ldr r0, [sp] lsl r6, r5, #6 @@ -40904,7 +40904,7 @@ _02243376: _0224337E: cmp r2, #0x10 blt _02243386 - bl ErrorHandling + bl GF_AssertFail _02243386: pop {r3, r4, r5, r6, r7, pc} @@ -41520,7 +41520,7 @@ _0224378A: bl MOD11_02243420 pop {r4, r5, r6, pc} _02243794: - bl ErrorHandling + bl GF_AssertFail _02243798: mov r0, #0 pop {r4, r5, r6, pc} @@ -41821,7 +41821,7 @@ _022439A8: strb r1, [r0] pop {r4, r5, r6, pc} _022439B4: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _022439BA: ldrb r0, [r3] @@ -42357,7 +42357,7 @@ _02243D94: bl MOD11_0224379C pop {r4, r5, r6, pc} _02243D9E: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} .align 2, 0 _02243DA4: .word 0xF7FFFFFF @@ -42968,7 +42968,7 @@ _022441E8: str r0, [r4, #0x28] pop {r4, r5, r6, pc} _02244200: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} nop _02244208: .word 0xFFFFFC1F @@ -44124,7 +44124,7 @@ _02244AEA: _02244AF4: cmp r6, #0 bne _02244AFC - bl ErrorHandling + bl GF_AssertFail _02244AFC: bl LCRandom mov r1, #0x64 @@ -44193,7 +44193,7 @@ _02244B72: _02244B7C: cmp r7, #0 bne _02244B84 - bl ErrorHandling + bl GF_AssertFail _02244B84: bl LCRandom mov r1, #0x64 @@ -57811,7 +57811,7 @@ MOD11_0224B310: ; 0x0224B310 cmp r0, #1 beq _0224B334 bhi _0224B334 - bl ErrorHandling + bl GF_AssertFail _0224B334: add r0, sp, #0x90 ldrb r0, [r0, #0x1c] @@ -58063,7 +58063,7 @@ _0224B558: ldr r0, [r5, r0] cmp r0, #0xa bge _0224B564 - bl ErrorHandling + bl GF_AssertFail _0224B564: ldr r0, _0224B75C ; =0x00002158 mov r1, #0xa @@ -60136,7 +60136,7 @@ _0224C51E: ldr r0, [r1, r0] pop {r4, pc} _0224C528: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, pc} .align 2, 0 @@ -60219,7 +60219,7 @@ _0224C5C2: strb r4, [r1, r0] pop {r3, r4, r5, pc} _0224C5CA: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 _0224C5D0: .word 0xFFFF8FFF @@ -60275,7 +60275,7 @@ _0224C628: _0224C62E: cmp r4, #0x91 blo _0224C636 - bl ErrorHandling + bl GF_AssertFail _0224C636: ldr r0, _0224C644 ; =MOD11_0225E4C8 lsl r1, r4, #2 @@ -60450,7 +60450,7 @@ _0224C756: ldrb r4, [r1, r0] b _0224C76A _0224C766: - bl ErrorHandling + bl GF_AssertFail _0224C76A: mov r0, #0xc0 mul r0, r6 @@ -64173,7 +64173,7 @@ MOD11_0224E410: ; 0x0224E410 add r5, r2, #0 cmp r0, #0 bne _0224E422 - bl ErrorHandling + bl GF_AssertFail _0224E422: add r4, r6, #0 add r4, #0x28 @@ -64241,7 +64241,7 @@ MOD11_0224E49C: ; 0x0224E49C add r5, r2, #0 cmp r0, #0 bne _0224E4AE - bl ErrorHandling + bl GF_AssertFail _0224E4AE: add r4, r6, #0 add r4, #0x28 @@ -64552,7 +64552,7 @@ MOD11_0224E6FC: ; 0x0224E6FC add r4, r2, #0 cmp r0, #0 bne _0224E70E - bl ErrorHandling + bl GF_AssertFail _0224E70E: ldrb r1, [r4, #1] add r0, r5, #0 @@ -69424,7 +69424,7 @@ _02250EB6: bl MOD11_02258820 b _02250EC8 _02250EC4: - bl ErrorHandling + bl GF_AssertFail _02250EC8: add r0, r6, #0 bl MOD11_02258E30 @@ -69807,7 +69807,7 @@ _022511FA: bl FUN_02033590 cmp r0, #0 beq _02251206 - bl ErrorHandling + bl GF_AssertFail _02251206: ldrb r1, [r6, #0x1d] ldr r0, [r6] @@ -70085,7 +70085,7 @@ MOD11_02251420: ; 0x02251420 add r4, r0, #1 cmp r4, #5 blt _02251442 - bl ErrorHandling + bl GF_AssertFail _02251442: ldrb r1, [r5, #0xd] ldr r0, [r5] @@ -72340,7 +72340,7 @@ _02252664: bl MOD11_02258820 b _02252676 _02252672: - bl ErrorHandling + bl GF_AssertFail _02252676: mov r0, #2 add sp, #0x2c @@ -74388,7 +74388,7 @@ MOD11_022536D4: ; 0x022536D4 ldr r0, [r0] cmp r0, #0 beq _022536EE - bl ErrorHandling + bl GF_AssertFail _022536EE: ldrb r2, [r4, #0xd] ldr r0, [r4] @@ -74423,7 +74423,7 @@ MOD11_02253720: ; 0x02253720 ldr r0, [r0] cmp r0, #0 bne _02253734 - bl ErrorHandling + bl GF_AssertFail _02253734: ldr r0, [r4, #4] add r0, #0x8c @@ -81452,7 +81452,7 @@ MOD11_02256D70: ; 0x02256D70 add r4, r2, #0 cmp r0, #0 bne _02256D82 - bl ErrorHandling + bl GF_AssertFail _02256D82: add r0, r5, #0 add r0, #0x25 @@ -82159,7 +82159,7 @@ MOD11_022572C8: ; 0x022572C8 add r7, r2, #0 cmp r0, #0 bne _022572DA - bl ErrorHandling + bl GF_AssertFail _022572DA: add r0, r5, #0 add r0, #0x25 @@ -82211,12 +82211,12 @@ MOD11_02257334: ; 0x02257334 add r5, r1, #0 cmp r4, #0 bne _02257342 - bl ErrorHandling + bl GF_AssertFail _02257342: ldr r0, [r4, #4] cmp r0, #0 bne _0225734C - bl ErrorHandling + bl GF_AssertFail _0225734C: add r0, r4, #0 add r0, #0x4f @@ -83788,7 +83788,7 @@ _02257FB4: mov r0, #5 pop {r3, pc} _02257FB8: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -83834,7 +83834,7 @@ _02257FFA: ldr r0, _02258020 ; =MOD11_0225EBB8 pop {r3, pc} _02257FFE: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} nop @@ -83873,7 +83873,7 @@ _0225804A: mov r0, #0 pop {r3, pc} _0225804E: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} nop @@ -84339,7 +84339,7 @@ MOD11_022583D8: ; 0x022583D8 strb r7, [r5, #9] cmp r7, #0xc blt _022583FE - bl ErrorHandling + bl GF_AssertFail mov r0, #0 strb r0, [r5, #9] _022583FE: @@ -84986,7 +84986,7 @@ MOD11_02258958: ; 0x02258958 cmp r0, #0 beq _02258974 _02258970: - bl ErrorHandling + bl GF_AssertFail _02258974: ldr r0, [sp, #0x14] ldr r0, [r0] @@ -85108,7 +85108,7 @@ _02258A12: ldr r0, [r0, #4] cmp r0, #0 beq _02258A82 - bl ErrorHandling + bl GF_AssertFail _02258A82: ldr r0, _02258AFC ; =MOD11_02258BE0 ldr r1, [sp, #0x14] @@ -85179,7 +85179,7 @@ MOD11_02258B10: ; 0x02258B10 cmp r0, #0 bne _02258B28 _02258B24: - bl ErrorHandling + bl GF_AssertFail _02258B28: ldr r0, [r6] bl MOD11_02230078 @@ -85519,7 +85519,7 @@ MOD11_02258DD0: ; 0x02258DD0 cmp r0, #0 bne _02258DE8 _02258DE4: - bl ErrorHandling + bl GF_AssertFail _02258DE8: ldr r7, _02258E28 ; =0x000005D4 mov r6, #0 @@ -85569,7 +85569,7 @@ MOD11_02258E30: ; 0x02258E30 cmp r0, #0 bne _02258E48 _02258E44: - bl ErrorHandling + bl GF_AssertFail _02258E48: ldr r7, _02258E70 ; =0x000005D4 mov r4, #0 @@ -85602,7 +85602,7 @@ MOD11_02258E74: ; 0x02258E74 sub r0, r6, #1 cmp r1, r0 bne _02258E88 - bl ErrorHandling + bl GF_AssertFail _02258E88: ldr r0, _02258F4C ; =0x0000069F ldr r3, _02258F50 ; =MOD11_0225FAAC @@ -85625,7 +85625,7 @@ _02258EA8: ldr r0, [r4, #0x18] cmp r0, #0 bne _02258EB2 - bl ErrorHandling + bl GF_AssertFail _02258EB2: ldr r0, [r5] bl MOD11_0222FF74 @@ -85833,7 +85833,7 @@ _02259020: mov r0, #0xb pop {r3, pc} _02259024: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -86090,7 +86090,7 @@ MOD11_0225916C: ; 0x0225916C bl FUN_02015F34 cmp r0, #1 beq _02259232 - bl ErrorHandling + bl GF_AssertFail _02259232: ldr r0, _0225926C ; =MOD11_0225B538 add r1, r4, #0 @@ -86503,7 +86503,7 @@ MOD11_022595C8: ; 0x022595C8 add r6, r5, #0 add r6, #0x18 bne _022595D8 - bl ErrorHandling + bl GF_AssertFail _022595D8: ldrb r1, [r6, #0x10] ldr r0, _02259854 ; =0x0000069E @@ -88010,7 +88010,7 @@ _0225A286: ldr r0, [r1, r0] cmp r0, #0 beq _0225A296 - bl ErrorHandling + bl GF_AssertFail _0225A296: lsl r0, r5, #2 add r1, r4, r0 @@ -88018,7 +88018,7 @@ _0225A296: ldr r0, [r1, r0] cmp r0, #0 beq _0225A2A6 - bl ErrorHandling + bl GF_AssertFail _0225A2A6: cmp r6, #5 bhi _0225A2CE @@ -88045,7 +88045,7 @@ _0225A2CA: ldr r6, _0225A3E0 ; =0x00004E42 b _0225A2D8 _0225A2CE: - bl ErrorHandling + bl GF_AssertFail add sp, #0x50 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -88255,7 +88255,7 @@ MOD11_0225A458: ; 0x0225A458 ldr r4, [sp, #0xa8] cmp r0, #0 beq _0225A472 - bl ErrorHandling + bl GF_AssertFail _0225A472: ldr r0, [r7] bl MOD11_02230080 @@ -88981,7 +88981,7 @@ _0225AA14: ldr r0, [r1, r0] cmp r0, #0 beq _0225AA24 - bl ErrorHandling + bl GF_AssertFail _0225AA24: ldr r0, [sp, #4] lsl r1, r4, #1 @@ -89425,7 +89425,7 @@ MOD11_0225AD80: ; 0x0225AD80 ldr r0, [r4, #8] cmp r0, #0 beq _0225AD90 - bl ErrorHandling + bl GF_AssertFail _0225AD90: mov r0, #0x6b lsl r0, r0, #4 @@ -92883,7 +92883,7 @@ MOD11_0225C784: ; 0x0225C784 ldrb r0, [r4, r0] cmp r0, #2 blo _0225C7B0 - bl ErrorHandling + bl GF_AssertFail _0225C7B0: ldr r1, _0225C7E4 ; =0x000006FC add r0, r4, #0 @@ -93175,7 +93175,7 @@ MOD11_0225C9F0: ; 0x0225C9F0 ldr r0, [r4, #4] cmp r0, #0 beq _0225C9FE - bl ErrorHandling + bl GF_AssertFail _0225C9FE: add r0, r4, #0 bl FreeToHeap @@ -93264,7 +93264,7 @@ MOD11_0225CA90: ; 0x0225CA90 add r7, r2, #0 cmp r6, #0 bne _0225CAA0 - bl ErrorHandling + bl GF_AssertFail _0225CAA0: add r0, r6, #0 add r1, r4, #0 @@ -93347,7 +93347,7 @@ MOD11_0225CB10: ; 0x0225CB10 _0225CB2A: cmp r1, #0 bne _0225CB32 - bl ErrorHandling + bl GF_AssertFail _0225CB32: add r0, r5, #0 mov r1, #0 @@ -93508,7 +93508,7 @@ MOD11_0225CC68: ; 0x0225CC68 cmp r0, #0 beq _0225CC7E _0225CC7A: - bl ErrorHandling + bl GF_AssertFail _0225CC7E: mov r0, #0 strb r0, [r5, #0x1a] @@ -93682,7 +93682,7 @@ MOD11_0225CDB0: ; 0x0225CDB0 _0225CDCC: cmp r1, #0 bne _0225CDD4 - bl ErrorHandling + bl GF_AssertFail _0225CDD4: add r0, r5, #0 mov r1, #0 @@ -94193,7 +94193,7 @@ MOD11_0225D1A8: ; 0x0225D1A8 cmp r0, #0 beq _0225D1C2 _0225D1BE: - bl ErrorHandling + bl GF_AssertFail _0225D1C2: add r0, r5, #0 mov r1, #0 diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 7d0a23a34..1448f650e 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -761,11 +761,11 @@ MOD12_0222DCAC: ; 0x0222DCAC add r5, r0, #0 cmp r4, #0 bne _0222DCD4 - bl ErrorHandling + bl GF_AssertFail _0222DCD4: cmp r5, #0 bne _0222DCDC - bl ErrorHandling + bl GF_AssertFail _0222DCDC: bl FUN_02012CC8 pop {r3, r4, r5, pc} @@ -780,7 +780,7 @@ MOD12_0222DCEC: ; 0x0222DCEC ldr r0, [r4] cmp r0, #0 bne _0222DCFA - bl ErrorHandling + bl GF_AssertFail _0222DCFA: ldr r1, _0222DD1C ; =0x00000172 mov r0, #0 @@ -4016,11 +4016,11 @@ MOD12_0222F6E0: ; 0x0222F6E0 add r5, r0, #0 cmp r4, #0 bne _0222F708 - bl ErrorHandling + bl GF_AssertFail _0222F708: cmp r5, #0 bne _0222F710 - bl ErrorHandling + bl GF_AssertFail _0222F710: bl FUN_02012CC8 pop {r3, r4, r5, pc} @@ -4035,7 +4035,7 @@ MOD12_0222F720: ; 0x0222F720 ldr r0, [r4] cmp r0, #0 bne _0222F72E - bl ErrorHandling + bl GF_AssertFail _0222F72E: mov r3, #0 mov r0, #3 @@ -5408,7 +5408,7 @@ MOD12_0223023C: ; 0x0223023C bl FUN_020133C8 cmp r0, #0 beq _02230254 - bl ErrorHandling + bl GF_AssertFail _02230254: add r0, r4, #0 bl MOD12_02230A40 @@ -5945,7 +5945,7 @@ MOD12_022306F8: ; 0x022306F8 ldr r0, [r5] cmp r0, #0 bne _02230706 - bl ErrorHandling + bl GF_AssertFail _02230706: mov r4, #0xad lsl r4, r4, #4 @@ -6292,7 +6292,7 @@ MOD12_022309D8: ; 0x022309D8 ldr r0, [r4, #0xc] cmp r0, #0 beq _022309E8 - bl ErrorHandling + bl GF_AssertFail _022309E8: mov r1, #0x12 mov r0, #0x17 @@ -7947,7 +7947,7 @@ _022316A6: mov r6, #0x69 b _022316B2 _022316AA: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} _022316B2: @@ -8241,7 +8241,7 @@ MOD12_022318DC: ; 0x022318DC ldr r0, [r4] cmp r0, #0 bne _022318EA - bl ErrorHandling + bl GF_AssertFail _022318EA: ldr r0, [r4] bl FUN_0200CAB4 @@ -8711,7 +8711,7 @@ MOD12_02231C80: ; 0x02231C80 sub r0, r6, #1 cmp r1, r0 bne _02231C96 - bl ErrorHandling + bl GF_AssertFail _02231C96: mov r0, #0x2e lsl r0, r0, #4 @@ -8730,7 +8730,7 @@ _02231CB0: ldr r0, [r4, #0x18] cmp r0, #0 bne _02231CBA - bl ErrorHandling + bl GF_AssertFail _02231CBA: ldr r0, [r4, #0x14] bl FUN_02020988 @@ -9148,7 +9148,7 @@ _02231FC0: ldrb r0, [r6, r0] cmp r0, #0xff beq _02232000 - bl ErrorHandling + bl GF_AssertFail _02232000: ldr r0, _022320A0 ; =0x000002E1 strb r4, [r6, r0] @@ -9181,7 +9181,7 @@ _02232030: str r0, [sp, #0x1c] cmp r0, #6 ble _02232040 - bl ErrorHandling + bl GF_AssertFail _02232040: mov r0, #0x18 mul r0, r4 @@ -9201,7 +9201,7 @@ _02232054: ldr r0, [r1, r0] cmp r0, #0 beq _02232066 - bl ErrorHandling + bl GF_AssertFail _02232066: ldr r0, [sp, #0x20] ldr r3, _022320BC ; =MOD12_02244E50 @@ -9516,7 +9516,7 @@ MOD12_022322C0: ; 0x022322C0 ldr r4, [sp, #0xa8] cmp r0, #0 beq _022322DA - bl ErrorHandling + bl GF_AssertFail _022322DA: ldr r1, [r7, #4] cmp r4, #0 @@ -9759,7 +9759,7 @@ _0223249A: ldr r0, [r1, r0] cmp r0, #0 beq _022324AC - bl ErrorHandling + bl GF_AssertFail _022324AC: lsl r0, r4, #1 ldrh r0, [r7, r0] @@ -9989,7 +9989,7 @@ MOD12_02232654: ; 0x02232654 ldr r0, [r4, #0x10] cmp r0, #0 beq _02232664 - bl ErrorHandling + bl GF_AssertFail _02232664: mov r0, #0xb9 lsl r0, r0, #2 @@ -10516,7 +10516,7 @@ MOD12_02232A68: ; 0x02232A68 ldr r0, [r4, #0x14] cmp r0, #0 beq _02232A78 - bl ErrorHandling + bl GF_AssertFail _02232A78: mov r0, #0xc1 lsl r0, r0, #2 @@ -12081,7 +12081,7 @@ MOD12_0223361C: ; 0x0223361C ldrb r0, [r4, #0xb] cmp r0, #0 beq _0223362A - bl ErrorHandling + bl GF_AssertFail _0223362A: ldr r0, [r4, #4] bl FUN_0200CAB4 @@ -12174,7 +12174,7 @@ MOD12_022336AC: ; 0x022336AC ldr r0, [r0, #0x58] cmp r0, #0 bne _022336D4 - bl ErrorHandling + bl GF_AssertFail _022336D4: add r2, r5, #0 add r2, #0x58 @@ -12256,7 +12256,7 @@ _02233772: ldr r0, [r7, #0x58] cmp r0, #0 beq _0223377C - bl ErrorHandling + bl GF_AssertFail _0223377C: mov r1, #0x32 mov r0, #0x15 @@ -12322,7 +12322,7 @@ _022337E6: ldr r0, [r0] cmp r0, #0 beq _0223380C - bl ErrorHandling + bl GF_AssertFail _0223380C: mov r1, #0x32 mov r0, #0x15 @@ -12802,7 +12802,7 @@ MOD12_02233BBC: ; 0x02233BBC ldr r0, [r4, r0] cmp r0, #0 bne _02233BCE - bl ErrorHandling + bl GF_AssertFail _02233BCE: mov r0, #0x5f lsl r0, r0, #2 @@ -12826,7 +12826,7 @@ MOD12_02233BE4: ; 0x02233BE4 add r5, r2, #0 cmp r0, #0 bne _02233BFA - bl ErrorHandling + bl GF_AssertFail _02233BFA: ldr r1, _02233C60 ; =MOD12_02245200 lsl r2, r6, #2 @@ -12893,7 +12893,7 @@ MOD12_02233C74: ; 0x02233C74 ldr r0, [r4, r0] cmp r0, #0 bne _02233C86 - bl ErrorHandling + bl GF_AssertFail _02233C86: mov r0, #0x5f lsl r0, r0, #2 @@ -13217,7 +13217,7 @@ MOD12_02233EEC: ; 0x02233EEC add r4, r1, #0 cmp r0, #0 beq _02233F00 - bl ErrorHandling + bl GF_AssertFail _02233F00: mov r0, #1 str r0, [sp] @@ -14137,7 +14137,7 @@ MOD12_02234628: ; 0x02234628 str r0, [sp, #4] cmp r0, #5 ble _02234644 - bl ErrorHandling + bl GF_AssertFail _02234644: ldr r0, [sp] mov r1, #0x14 @@ -14681,7 +14681,7 @@ MOD12_02234A60: ; 0x02234A60 blt _02234A78 cmp r5, #0 bne _02234A78 - bl ErrorHandling + bl GF_AssertFail _02234A78: cmp r7, #0x1c bls _02234A7E @@ -15213,7 +15213,7 @@ _02234ECC: add sp, #8 pop {r3, r4, r5, r6, r7, pc} _02234EF2: - bl ErrorHandling + bl GF_AssertFail _02234EF6: add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -15317,7 +15317,7 @@ MOD12_02234FB0: ; 0x02234FB0 add r6, r3, #0 cmp r5, #0x2f blo _02234FC4 - bl ErrorHandling + bl GF_AssertFail _02234FC4: ldr r0, _02234FE4 ; =MOD12_0224540C + 3 lsl r3, r5, #2 @@ -15734,11 +15734,11 @@ _022352D6: ldr r4, [r0, r1] cmp r4, #0 bge _022352E4 - bl ErrorHandling + bl GF_AssertFail _022352E4: cmp r4, #0x7f ble _022352EC - bl ErrorHandling + bl GF_AssertFail _022352EC: add r0, r4, #0 pop {r4, pc} @@ -24466,13 +24466,13 @@ _02239404: ldrh r0, [r0] cmp r0, #0 bne _02239428 - bl ErrorHandling + bl GF_AssertFail _02239428: ldr r0, [sp, #0x58] ldrb r0, [r0] cmp r0, #3 blo _02239434 - bl ErrorHandling + bl GF_AssertFail _02239434: add sp, #0x44 pop {r4, r5, r6, r7, pc} @@ -25164,7 +25164,7 @@ MOD12_02239838: ; 0x02239838 ldr r0, [r0, #0x48] cmp r0, #0 beq _02239872 - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _02239858: bl FUN_02007534 @@ -25390,7 +25390,7 @@ MOD12_02239A10: ; 0x02239A10 add r4, r1, #0 cmp r0, #0 beq _02239A22 - bl ErrorHandling + bl GF_AssertFail _02239A22: mov r1, #0x30 ldr r2, [r5] @@ -25442,7 +25442,7 @@ MOD12_02239A6C: ; 0x02239A6C beq _02239A82 cmp r6, #0 bne _02239A82 - bl ErrorHandling + bl GF_AssertFail _02239A82: cmp r4, #0 beq _02239ACC @@ -25477,7 +25477,7 @@ _02239A82: add sp, #8 pop {r4, r5, r6, pc} _02239AC8: - bl ErrorHandling + bl GF_AssertFail _02239ACC: add sp, #8 pop {r4, r5, r6, pc} @@ -25547,7 +25547,7 @@ MOD12_02239B48: ; 0x02239B48 add r4, r2, #0 cmp r5, #0xf blo _02239B5A - bl ErrorHandling + bl GF_AssertFail _02239B5A: str r4, [sp] ldr r2, _02239B74 ; =MOD12_02245F48 @@ -27277,7 +27277,7 @@ _0223A886: ldr r0, [r0, #0x24] cmp r0, #0 bne _0223A892 - bl ErrorHandling + bl GF_AssertFail _0223A892: ldr r0, [r4] mov r1, #0 @@ -27863,7 +27863,7 @@ _0223AD20: ldr r0, [r0, #0x24] cmp r0, #0 bne _0223AD2C - bl ErrorHandling + bl GF_AssertFail _0223AD2C: ldrb r0, [r4, #0xf] add r0, r0, #1 @@ -29305,7 +29305,7 @@ MOD12_0223B878: ; 0x0223B878 sub r0, #0x97 cmp r1, r0 bne _0223B88A - bl ErrorHandling + bl GF_AssertFail _0223B88A: mov r0, #0x96 ldrsb r1, [r5, r0] @@ -29323,7 +29323,7 @@ _0223B8A2: ldr r0, [r4, #0x18] cmp r0, #0 bne _0223B8AC - bl ErrorHandling + bl GF_AssertFail _0223B8AC: ldr r0, [r4, #0x14] bl FUN_02020988 @@ -29881,7 +29881,7 @@ MOD12_0223BCD8: ; 0x0223BCD8 ldr r4, [sp, #0x9c] cmp r0, #0 beq _0223BCF0 - bl ErrorHandling + bl GF_AssertFail _0223BCF0: ldr r0, [sp, #0x18] mov r2, #0 @@ -30080,7 +30080,7 @@ MOD12_0223BE64: ; 0x0223BE64 ldr r0, [r4, #0xc] cmp r0, #0 beq _0223BE74 - bl ErrorHandling + bl GF_AssertFail _0223BE74: add r0, r4, #0 add r0, #0x98 @@ -30605,7 +30605,7 @@ _0223C252: ldr r0, [r0] cmp r0, #0 beq _0223C262 - bl ErrorHandling + bl GF_AssertFail _0223C262: add r4, r4, #1 _0223C264: @@ -31107,7 +31107,7 @@ _0223C618: add r2, r2, #4 cmp r0, #0x44 blt _0223C602 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 add sp, #0x34 pop {r4, r5, r6, r7, pc} @@ -33052,7 +33052,7 @@ _0223D532: mvn r4, r4 cmp r0, r4 bne _0223D540 - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _0223D540: strb r3, [r1, r0] @@ -33295,7 +33295,7 @@ _0223D6DA: add r7, r0, #0 b _0223D70C _0223D708: - bl ErrorHandling + bl GF_AssertFail _0223D70C: cmp r7, #1 bne _0223D750 @@ -33988,7 +33988,7 @@ MOD12_0223DC28: ; 0x0223DC28 str r2, [sp] cmp r0, #0 beq _0223DC46 - bl ErrorHandling + bl GF_AssertFail _0223DC46: ldr r0, _0223DCB0 ; =0x0000106C mov r2, #0x28 @@ -34173,7 +34173,7 @@ _0223DD92: strb r0, [r2, r3] pop {r3, r4, r5, pc} _0223DDA4: - bl ErrorHandling + bl GF_AssertFail _0223DDA8: pop {r3, r4, r5, pc} nop @@ -34549,7 +34549,7 @@ MOD12_0223E068: ; 0x0223E068 beq _0223E07E cmp r5, #0 bne _0223E07E - bl ErrorHandling + bl GF_AssertFail _0223E07E: cmp r6, #6 bls _0223E084 @@ -34722,7 +34722,7 @@ _0223E16A: add sp, #8 pop {r4, r5, r6, pc} _0223E1E4: - bl ErrorHandling + bl GF_AssertFail _0223E1E8: add sp, #8 pop {r4, r5, r6, pc} @@ -34799,7 +34799,7 @@ MOD12_0223E274: ; 0x0223E274 add r6, r2, #0 cmp r4, #8 blo _0223E286 - bl ErrorHandling + bl GF_AssertFail _0223E286: lsl r3, r4, #2 ldr r2, _0223E2A0 ; =MOD12_02246224 @@ -34891,7 +34891,7 @@ MOD12_0223E32C: ; 0x0223E32C ldr r0, [r5, r0] cmp r0, #0 beq _0223E33E - bl ErrorHandling + bl GF_AssertFail _0223E33E: mov r0, #0x17 mov r1, #0x10 @@ -35065,7 +35065,7 @@ MOD12_0223E488: ; 0x0223E488 add r7, r2, #0 cmp r4, #8 blo _0223E49A - bl ErrorHandling + bl GF_AssertFail _0223E49A: ldr r0, _0223E51C ; =0x00001BF1 ldrb r0, [r5, r0] @@ -35570,7 +35570,7 @@ MOD12_0223E868: ; 0x0223E868 ldr r0, [r4, r0] cmp r0, #0 beq _0223E87A - bl ErrorHandling + bl GF_AssertFail _0223E87A: mov r0, #0x81 lsl r0, r0, #2 @@ -35613,7 +35613,7 @@ MOD12_0223E8B4: ; 0x0223E8B4 ldr r0, [r4, #4] cmp r0, #0 bne _0223E8C8 - bl ErrorHandling + bl GF_AssertFail _0223E8C8: cmp r5, #0 bne _0223E8D0 @@ -35753,7 +35753,7 @@ MOD12_0223E9C4: ; 0x0223E9C4 add r6, r2, #0 cmp r5, #0x21 blo _0223E9D6 - bl ErrorHandling + bl GF_AssertFail _0223E9D6: ldr r0, _0223EA3C ; =MOD12_0224637C lsl r1, r5, #2 @@ -38064,7 +38064,7 @@ _0223FBA6: mov r0, #4 pop {r3, pc} _0223FBAA: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 @@ -38099,7 +38099,7 @@ _0223FBDC: mov r0, #3 pop {r3, pc} _0223FBE0: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} @@ -39925,7 +39925,7 @@ MOD12_022409CC: ; 0x022409CC add r4, r0, #0 cmp r5, #4 blo _022409DA - bl ErrorHandling + bl GF_AssertFail _022409DA: ldr r0, _02240A0C ; =MOD12_022464C0 cmp r4, #3 @@ -39967,7 +39967,7 @@ MOD12_02240A10: ; 0x02240A10 add r4, r3, #0 cmp r7, #4 blo _02240A22 - bl ErrorHandling + bl GF_AssertFail _02240A22: mov r0, #0 mvn r0, r0 @@ -40469,7 +40469,7 @@ MOD12_02240DC4: ; 0x02240DC4 add r4, r0, #0 cmp r4, #5 blo _02240DD0 - bl ErrorHandling + bl GF_AssertFail _02240DD0: ldr r0, _02240DD8 ; =MOD12_022464D0 lsl r1, r4, #2 @@ -40494,7 +40494,7 @@ MOD12_02240DE4: ; 0x02240DE4 add r4, r0, #0 cmp r4, #5 blo _02240DF0 - bl ErrorHandling + bl GF_AssertFail _02240DF0: ldr r0, _02240DF8 ; =MOD12_022464C8 ldrb r0, [r0, r4] @@ -40660,7 +40660,7 @@ _02240F14: add r4, r4, #1 cmp r4, #0x20 blt _02240F00 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -40695,7 +40695,7 @@ MOD12_02240F3C: ; 0x02240F3C str r3, [sp] cmp r4, r0 bls _02240F5A - bl ErrorHandling + bl GF_AssertFail _02240F5A: add r0, r5, #0 mov r2, #2 @@ -40750,7 +40750,7 @@ MOD12_02240FB0: ; 0x02240FB0 str r3, [sp] cmp r7, r0 bls _02240FCC - bl ErrorHandling + bl GF_AssertFail _02240FCC: add r0, r5, #0 mov r2, #2 @@ -40840,7 +40840,7 @@ _02241066: ldrh r0, [r5, #4] cmp r4, r0 blt _02241070 - bl ErrorHandling + bl GF_AssertFail _02241070: add r0, r5, #0 add r1, r6, #0 @@ -42079,11 +42079,11 @@ MOD12_02241B0C: ; 0x02241B0C add r5, r0, #0 cmp r4, #0 bne _02241B34 - bl ErrorHandling + bl GF_AssertFail _02241B34: cmp r5, #0 bne _02241B3C - bl ErrorHandling + bl GF_AssertFail _02241B3C: bl FUN_02012CC8 pop {r3, r4, r5, pc} @@ -42098,7 +42098,7 @@ MOD12_02241B4C: ; 0x02241B4C ldr r0, [r4] cmp r0, #0 bne _02241B5A - bl ErrorHandling + bl GF_AssertFail _02241B5A: mov r1, #0xf3 mov r5, #0 @@ -42233,7 +42233,7 @@ _02241C1E: _02241C2C: cmp r5, #4 bne _02241C34 - bl ErrorHandling + bl GF_AssertFail _02241C34: ldr r0, _02241CE8 ; =0x00000438 ldr r1, _02241CEC ; =0x00000439 @@ -43323,7 +43323,7 @@ _02242462: ldr r0, [r0] cmp r0, #0 beq _0224247A - bl ErrorHandling + bl GF_AssertFail _0224247A: mov r1, #0x32 mov r0, #0x18 @@ -43404,7 +43404,7 @@ MOD12_02242500: ; 0x02242500 beq _02242516 cmp r5, #0 bne _02242516 - bl ErrorHandling + bl GF_AssertFail _02242516: cmp r6, #3 bhi _022425EC @@ -43509,7 +43509,7 @@ _02242596: add sp, #8 pop {r4, r5, r6, pc} _022425EC: - bl ErrorHandling + bl GF_AssertFail _022425F0: add sp, #8 pop {r4, r5, r6, pc} @@ -43586,7 +43586,7 @@ MOD12_02242678: ; 0x02242678 add r6, r2, #0 cmp r4, #7 blo _0224268A - bl ErrorHandling + bl GF_AssertFail _0224268A: lsl r3, r4, #2 ldr r2, _022426A4 ; =MOD12_0224664C @@ -44869,7 +44869,7 @@ _022430EC: add r4, r2, r0 b _02243114 _0224310C: - bl ErrorHandling + bl GF_AssertFail add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _02243114: @@ -44901,7 +44901,7 @@ _02243144: ldr r0, [sp, #0xc] cmp r0, #0xc ble _0224314E - bl ErrorHandling + bl GF_AssertFail _0224314E: mov r0, #0 str r0, [sp, #8] @@ -45562,7 +45562,7 @@ _02243628: str r0, [r4] b _02243638 _02243630: - bl ErrorHandling + bl GF_AssertFail add sp, #0x34 pop {r4, r5, r6, r7, pc} _02243638: @@ -47498,7 +47498,7 @@ _022444C4: blt _022444C4 b _022444D8 _022444D4: - bl ErrorHandling + bl GF_AssertFail _022444D8: ldr r0, _022444F0 ; =MOD12_022444F8 ldr r2, _022444F4 ; =0x00007530 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 65c146088..af35772e3 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -101,7 +101,7 @@ _021D759E: blx r1 pop {r4, pc} _021D75AA: - bl ErrorHandling + bl GF_AssertFail mov r0, #1 pop {r4, pc} nop @@ -3418,7 +3418,7 @@ _021D90B0: str r0, [r5] pop {r3, r4, r5, pc} _021D90F2: - bl ErrorHandling + bl GF_AssertFail mov r0, #1 str r0, [r5] pop {r3, r4, r5, pc} @@ -7587,7 +7587,7 @@ MOD14_021DB220: ; 0x021DB220 ldr r0, [r5, r0] cmp r0, #0 bne _021DB2C8 - bl ErrorHandling + bl GF_AssertFail _021DB2C8: mov r0, #0x69 lsl r0, r0, #2 @@ -8399,7 +8399,7 @@ _021DB8B6: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB8C6: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -10910,7 +10910,7 @@ _021DCB3A: str r0, [r1, #8] pop {r3, r4, r5, r6, r7, pc} _021DCB78: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _021DCB7E: add r4, r4, #1 @@ -10919,7 +10919,7 @@ _021DCB7E: blo _021DCB3A pop {r3, r4, r5, r6, r7, pc} _021DCB88: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} nop _021DCB90: .word MOD14_021E63D0 @@ -13475,7 +13475,7 @@ MOD14_021DDF30: ; 0x021DDF30 add r6, r2, #0 cmp r0, #0x20 blo _021DDF44 - bl ErrorHandling + bl GF_AssertFail _021DDF44: ldr r2, _021DDF60 ; =MOD14_021E6A0C mov r1, #0xc @@ -18957,7 +18957,7 @@ MOD14_021E0940: ; 0x021E0940 str r0, [r4] cmp r0, #0 bne _021E0A36 - bl ErrorHandling + bl GF_AssertFail _021E0A36: ldrh r1, [r4, #0x2c] ldr r0, [r4] @@ -19065,7 +19065,7 @@ MOD14_021E0A60: ; 0x021E0A60 str r0, [r4] cmp r0, #0 bne _021E0B28 - bl ErrorHandling + bl GF_AssertFail _021E0B28: ldrh r1, [r4, #0x2c] ldr r0, [r4] @@ -19744,7 +19744,7 @@ _021E0FE0: str r0, [r4, #0x3c] cmp r0, #0 bne _021E103E - bl ErrorHandling + bl GF_AssertFail _021E103E: ldr r0, [r4, #0x3c] mov r1, #0 @@ -19829,7 +19829,7 @@ _021E10D8: str r0, [r5, #0x4c] pop {r3, r4, r5, pc} _021E10EA: - bl ErrorHandling + bl GF_AssertFail _021E10EE: pop {r3, r4, r5, pc} .align 2, 0 @@ -22123,7 +22123,7 @@ _021E227C: str r0, [r4, #0x48] cmp r0, #0 bne _021E22B6 - bl ErrorHandling + bl GF_AssertFail _021E22B6: ldr r0, [r4, #0x48] mov r1, #0 @@ -24045,7 +24045,7 @@ MOD14_021E3158: ; 0x021E3158 add r5, r0, #0 cmp r4, #6 blo _021E3166 - bl ErrorHandling + bl GF_AssertFail _021E3166: mov r0, #0x34 add r5, #0x3c @@ -25586,7 +25586,7 @@ _021E3CC2: str r0, [r5, #0x54] cmp r0, #0 bne _021E3D14 - bl ErrorHandling + bl GF_AssertFail _021E3D14: sub r4, r4, #1 bpl _021E3D1A @@ -25799,7 +25799,7 @@ _021E3E58: str r0, [r4, #0x34] cmp r0, #0 bne _021E3E94 - bl ErrorHandling + bl GF_AssertFail _021E3E94: ldr r1, [sp, #0x14] add r0, r6, #0 @@ -26004,7 +26004,7 @@ MOD14_021E4010: ; 0x021E4010 ldrb r0, [r4, r0] cmp r0, #0 bne _021E4022 - bl ErrorHandling + bl GF_AssertFail _021E4022: ldr r0, _021E4034 ; =0x000001CB ldrb r1, [r4, r0] @@ -26026,7 +26026,7 @@ MOD14_021E4038: ; 0x021E4038 ldr r4, [sp, #0x20] cmp r7, #0 bne _021E404C - bl ErrorHandling + bl GF_AssertFail _021E404C: cmp r4, #0 beq _021E4052 @@ -30126,7 +30126,7 @@ _021E601A: strb r0, [r4] pop {r4, r5, r6, pc} _021E6032: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} thumb_func_start MOD14_021E6038 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index bd42feb3e..3bc1378b7 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2745,7 +2745,7 @@ _021D8944: blt _021D8928 pop {r4, r5, r6, pc} _021D894E: - bl ErrorHandling + bl GF_AssertFail _021D8952: pop {r4, r5, r6, pc} .align 2, 0 @@ -5998,7 +5998,7 @@ _021DA310: ldr r0, _021DA3B0 ; =0x000003EE cmp r6, r0 blo _021DA31A - bl ErrorHandling + bl GF_AssertFail _021DA31A: ldr r0, [sp, #0x24] lsl r3, r7, #0x18 @@ -6077,7 +6077,7 @@ MOD15_021DA3B4: ; 0x021DA3B4 str r2, [sp, #0x14] cmp r0, r1 blo _021DA3CC - bl ErrorHandling + bl GF_AssertFail _021DA3CC: mov r0, #0xa str r0, [sp] @@ -6191,7 +6191,7 @@ _021DA4B6: lsl r0, r0, #4 cmp r5, r0 blo _021DA4C2 - bl ErrorHandling + bl GF_AssertFail _021DA4C2: ldrh r0, [r4, #2] add r1, r6, #0 @@ -8609,7 +8609,7 @@ MOD15_021DB774: ; 0x021DB774 add r5, r1, #0 cmp r4, #0x1b blo _021DB782 - bl ErrorHandling + bl GF_AssertFail _021DB782: mov r1, #0xa ldr r2, _021DB794 ; =0x021DBA4C @@ -8630,7 +8630,7 @@ MOD15_021DB798: ; 0x021DB798 add r6, r2, #0 cmp r5, #0x1b blo _021DB7A8 - bl ErrorHandling + bl GF_AssertFail _021DB7A8: mov r0, #0xa add r1, r5, #0 @@ -8652,7 +8652,7 @@ MOD15_021DB7C4: ; 0x021DB7C4 add r4, r0, #0 cmp r4, #0x1b blo _021DB7D0 - bl ErrorHandling + bl GF_AssertFail _021DB7D0: mov r0, #0xa add r1, r4, #0 @@ -8669,7 +8669,7 @@ MOD15_021DB7E0: ; 0x021DB7E0 add r4, r0, #0 cmp r4, #0x1b blo _021DB7EC - bl ErrorHandling + bl GF_AssertFail _021DB7EC: mov r0, #0xa add r1, r4, #0 @@ -8686,7 +8686,7 @@ MOD15_021DB7FC: ; 0x021DB7FC add r4, r0, #0 cmp r4, #0x1b blo _021DB808 - bl ErrorHandling + bl GF_AssertFail _021DB808: mov r0, #0xa add r1, r4, #0 @@ -8703,7 +8703,7 @@ MOD15_021DB818: ; 0x021DB818 add r4, r0, #0 cmp r4, #0x1b blo _021DB824 - bl ErrorHandling + bl GF_AssertFail _021DB824: mov r0, #0xa add r1, r4, #0 @@ -8720,7 +8720,7 @@ MOD15_021DB834: ; 0x021DB834 add r4, r0, #0 cmp r4, #0x1b blo _021DB840 - bl ErrorHandling + bl GF_AssertFail _021DB840: mov r0, #0xa add r1, r4, #0 @@ -8737,7 +8737,7 @@ MOD15_021DB850: ; 0x021DB850 add r4, r0, #0 cmp r4, #0x1b blo _021DB85C - bl ErrorHandling + bl GF_AssertFail _021DB85C: mov r0, #0xa add r1, r4, #0 diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 4588def65..2f05ad9ae 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -23,7 +23,7 @@ MOD16_021D74E0: ; 0x021D74E0 bl OverlayManager_CreateAndGetData add r4, r0, #0 bne _021D750E - bl ErrorHandling + bl GF_AssertFail _021D750E: mov r0, #0 strb r0, [r4] @@ -45,7 +45,7 @@ _021D750E: bl FUN_0201CC24 cmp r0, #1 beq _021D7546 - bl ErrorHandling + bl GF_AssertFail _021D7546: mov r0, #0x25 bl MOD16_021D79FC @@ -161,7 +161,7 @@ MOD16_021D7614: ; 0x021D7614 bl FUN_0201CD04 cmp r0, #1 beq _021D7630 - bl ErrorHandling + bl GF_AssertFail _021D7630: bl MOD16_021D7A10 bl FUN_0201C29C @@ -245,7 +245,7 @@ MOD16_021D76AC: ; 0x021D76AC bl AllocFromHeap add r4, r0, #0 bne _021D76C2 - bl ErrorHandling + bl GF_AssertFail _021D76C2: ldr r2, _021D77D0 ; =0x00001D10 add r0, r4, #0 @@ -391,7 +391,7 @@ MOD16_021D7804: ; 0x021D7804 push {r4, lr} add r4, r0, #0 bne _021D780E - bl ErrorHandling + bl GF_AssertFail _021D780E: add r0, r4, #0 add r0, #0xc @@ -638,7 +638,7 @@ MOD16_021D7A38: ; 0x021D7A38 push {r4, lr} add r4, r0, #0 bne _021D7A42 - bl ErrorHandling + bl GF_AssertFail _021D7A42: mov r0, #0x1d lsl r0, r0, #8 @@ -652,7 +652,7 @@ MOD16_021D7A4C: ; 0x021D7A4C push {r4, lr} add r4, r0, #0 bne _021D7A56 - bl ErrorHandling + bl GF_AssertFail _021D7A56: ldr r0, _021D7A5C ; =0x00001D04 ldr r0, [r4, r0] @@ -666,7 +666,7 @@ MOD16_021D7A60: ; 0x021D7A60 push {r4, lr} add r4, r0, #0 bne _021D7A6A - bl ErrorHandling + bl GF_AssertFail _021D7A6A: ldr r0, _021D7A70 ; =0x00001D08 ldr r0, [r4, r0] @@ -680,7 +680,7 @@ MOD16_021D7A74: ; 0x021D7A74 push {r4, lr} add r4, r0, #0 bne _021D7A7E - bl ErrorHandling + bl GF_AssertFail _021D7A7E: ldr r0, _021D7A84 ; =0x00001D0C ldr r0, [r4, r0] @@ -694,7 +694,7 @@ MOD16_021D7A88: ; 0x021D7A88 push {r4, lr} add r4, r0, #0 bne _021D7A92 - bl ErrorHandling + bl GF_AssertFail _021D7A92: ldr r0, _021D7A98 ; =0x00001A0C ldr r0, [r4, r0] @@ -708,7 +708,7 @@ MOD16_021D7A9C: ; 0x021D7A9C push {r4, lr} add r4, r0, #0 bne _021D7AA6 - bl ErrorHandling + bl GF_AssertFail _021D7AA6: ldr r0, _021D7AAC ; =0x00001A10 ldr r0, [r4, r0] @@ -722,7 +722,7 @@ MOD16_021D7AB0: ; 0x021D7AB0 push {r4, lr} add r4, r0, #0 bne _021D7ABA - bl ErrorHandling + bl GF_AssertFail _021D7ABA: ldr r0, _021D7AC0 ; =0x00001A14 ldr r0, [r4, r0] @@ -736,7 +736,7 @@ MOD16_021D7AC4: ; 0x021D7AC4 push {r4, lr} add r4, r0, #0 bne _021D7ACE - bl ErrorHandling + bl GF_AssertFail _021D7ACE: ldr r0, _021D7AD4 ; =0x00001A18 ldr r0, [r4, r0] @@ -750,7 +750,7 @@ MOD16_021D7AD8: ; 0x021D7AD8 push {r4, lr} add r4, r0, #0 bne _021D7AE2 - bl ErrorHandling + bl GF_AssertFail _021D7AE2: ldr r0, _021D7AE8 ; =0x000019FC add r0, r4, r0 @@ -764,7 +764,7 @@ MOD16_021D7AEC: ; 0x021D7AEC push {r4, lr} add r4, r0, #0 bne _021D7AF6 - bl ErrorHandling + bl GF_AssertFail _021D7AF6: mov r0, #0x1a lsl r0, r0, #8 @@ -778,7 +778,7 @@ MOD16_021D7B00: ; 0x021D7B00 push {r4, lr} add r4, r0, #0 bne _021D7B0A - bl ErrorHandling + bl GF_AssertFail _021D7B0A: ldr r0, _021D7B10 ; =0x00001A04 add r0, r4, r0 @@ -792,7 +792,7 @@ MOD16_021D7B14: ; 0x021D7B14 push {r4, lr} add r4, r0, #0 bne _021D7B1E - bl ErrorHandling + bl GF_AssertFail _021D7B1E: ldr r0, _021D7B24 ; =0x00001A08 add r0, r4, r0 @@ -806,7 +806,7 @@ MOD16_021D7B28: ; 0x021D7B28 push {r4, lr} add r4, r0, #0 bne _021D7B32 - bl ErrorHandling + bl GF_AssertFail _021D7B32: add r0, r4, #0 pop {r4, pc} @@ -818,7 +818,7 @@ MOD16_021D7B38: ; 0x021D7B38 push {r4, lr} add r4, r0, #0 bne _021D7B42 - bl ErrorHandling + bl GF_AssertFail _021D7B42: add r4, #0xc add r0, r4, #0 @@ -830,7 +830,7 @@ MOD16_021D7B48: ; 0x021D7B48 push {r4, lr} add r4, r0, #0 bne _021D7B52 - bl ErrorHandling + bl GF_AssertFail _021D7B52: ldr r0, _021D7B58 ; =0x0000177C add r0, r4, r0 @@ -846,7 +846,7 @@ MOD16_021D7B5C: ; 0x021D7B5C add r5, r0, #0 cmp r4, #0xa blt _021D7B6A - bl ErrorHandling + bl GF_AssertFail _021D7B6A: ldr r0, _021D7B78 ; =0x00001A30 add r1, r5, r0 @@ -865,7 +865,7 @@ MOD16_021D7B7C: ; 0x021D7B7C add r5, r0, #0 cmp r4, #8 blt _021D7B8A - bl ErrorHandling + bl GF_AssertFail _021D7B8A: mov r0, #0x6f lsl r0, r0, #6 @@ -1265,7 +1265,7 @@ MOD16_021D7E68: ; 0x021D7E68 add r7, r0, #0 cmp r7, #0 bgt _021D7E82 - bl ErrorHandling + bl GF_AssertFail _021D7E82: add r0, r4, #0 mov r1, #0xf @@ -1820,7 +1820,7 @@ MOD16_021D8298: ; 0x021D8298 ldr r0, [r6, r0] cmp r0, #0 bne _021D82B0 - bl ErrorHandling + bl GF_AssertFail _021D82B0: ldr r0, _021D83D8 ; =0x00001A0C ldr r0, [r6, r0] @@ -1829,7 +1829,7 @@ _021D82B0: ldr r0, [r6, r0] cmp r0, #0 bne _021D82C4 - bl ErrorHandling + bl GF_AssertFail _021D82C4: ldr r0, _021D83DC ; =0x00001A10 ldr r0, [r6, r0] @@ -1838,7 +1838,7 @@ _021D82C4: ldr r0, [r6, r0] cmp r0, #0 bne _021D82D8 - bl ErrorHandling + bl GF_AssertFail _021D82D8: ldr r0, _021D83E0 ; =0x00001A14 ldr r0, [r6, r0] @@ -1847,7 +1847,7 @@ _021D82D8: ldr r0, [r6, r0] cmp r0, #0 bne _021D82EC - bl ErrorHandling + bl GF_AssertFail _021D82EC: ldr r0, _021D83E4 ; =0x00001A18 ldr r0, [r6, r0] @@ -1857,7 +1857,7 @@ _021D82EC: ldr r0, [r6, r0] cmp r0, #0 bne _021D8302 - bl ErrorHandling + bl GF_AssertFail _021D8302: mov r0, #0x1d lsl r0, r0, #8 @@ -1867,7 +1867,7 @@ _021D8302: ldr r0, [r6, r0] cmp r0, #0 bne _021D8318 - bl ErrorHandling + bl GF_AssertFail _021D8318: ldr r0, _021D83E8 ; =0x00001D04 ldr r0, [r6, r0] @@ -1876,7 +1876,7 @@ _021D8318: ldr r0, [r6, r0] cmp r0, #0 bne _021D832C - bl ErrorHandling + bl GF_AssertFail _021D832C: ldr r0, _021D83EC ; =0x00001D08 ldr r0, [r6, r0] @@ -1885,7 +1885,7 @@ _021D832C: ldr r0, [r6, r0] cmp r0, #0 bne _021D8340 - bl ErrorHandling + bl GF_AssertFail _021D8340: ldr r0, _021D83F0 ; =0x00001D0C ldr r0, [r6, r0] @@ -2534,7 +2534,7 @@ MOD16_021D8838: ; 0x021D8838 ldr r0, [r4, r0] cmp r0, #0 bne _021D884A - bl ErrorHandling + bl GF_AssertFail _021D884A: mov r0, #0x6d lsl r0, r0, #2 @@ -2552,7 +2552,7 @@ MOD16_021D8854: ; 0x021D8854 ldr r0, [r4, r0] cmp r0, #0 bne _021D8866 - bl ErrorHandling + bl GF_AssertFail _021D8866: mov r0, #0x6e lsl r0, r0, #2 @@ -2624,7 +2624,7 @@ MOD16_021D88D4: ; 0x021D88D4 add r4, r0, #0 cmp r5, #3 ble _021D88E2 - bl ErrorHandling + bl GF_AssertFail _021D88E2: lsl r0, r5, #2 add r1, r4, r0 @@ -4618,7 +4618,7 @@ _021D97EE: bl MOD16_021D9CB0 cmp r0, #0 bne _021D980C - bl ErrorHandling + bl GF_AssertFail _021D980C: ldr r1, [r4, #0x1c] add r0, r5, #0 @@ -4728,7 +4728,7 @@ MOD16_021D98EC: ; 0x021D98EC add r5, r0, #0 cmp r4, #0x1c blt _021D98FA - bl ErrorHandling + bl GF_AssertFail _021D98FA: ldr r0, [r5] add r1, r4, #0 @@ -4743,7 +4743,7 @@ MOD16_021D9904: ; 0x021D9904 add r5, r0, #0 cmp r4, #2 blt _021D9912 - bl ErrorHandling + bl GF_AssertFail _021D9912: ldr r0, [r5] add r1, r4, #0 @@ -4758,7 +4758,7 @@ MOD16_021D991C: ; 0x021D991C add r5, r0, #0 cmp r4, #2 blt _021D992A - bl ErrorHandling + bl GF_AssertFail _021D992A: ldr r0, [r5] add r1, r4, #0 @@ -4773,7 +4773,7 @@ MOD16_021D9934: ; 0x021D9934 add r5, r0, #0 cmp r4, #3 blt _021D9942 - bl ErrorHandling + bl GF_AssertFail _021D9942: ldr r0, [r5] add r1, r4, #0 @@ -4788,7 +4788,7 @@ MOD16_021D994C: ; 0x021D994C add r5, r0, #0 cmp r4, #3 blt _021D995A - bl ErrorHandling + bl GF_AssertFail _021D995A: ldr r0, [r5] add r1, r4, #0 @@ -5012,7 +5012,7 @@ MOD16_021D9A90: ; 0x021D9A90 bl AllocFromHeapAtEnd add r6, r0, #0 bne _021D9AAE - bl ErrorHandling + bl GF_AssertFail _021D9AAE: ldr r2, _021D9CA8 ; =0x000003DA add r0, r6, #0 @@ -5025,7 +5025,7 @@ _021D9AAE: bl AllocFromHeapAtEnd add r4, r0, #0 bne _021D9ACC - bl ErrorHandling + bl GF_AssertFail _021D9ACC: ldr r2, _021D9CA8 ; =0x000003DA add r0, r4, #0 @@ -6017,7 +6017,7 @@ MOD16_021DA184: ; 0x021DA184 add r4, r2, #0 cmp r5, #0x2f blt _021DA196 - bl ErrorHandling + bl GF_AssertFail _021DA196: mov r2, #0 add r5, #0xb @@ -6095,7 +6095,7 @@ _021DA216: add r6, r0, #0 b _021DA226 _021DA222: - bl ErrorHandling + bl GF_AssertFail _021DA226: cmp r6, #0 beq _021DA24E @@ -6214,7 +6214,7 @@ _021DA2FA: add r4, r0, #0 b _021DA30A _021DA306: - bl ErrorHandling + bl GF_AssertFail _021DA30A: cmp r4, #0 beq _021DA332 @@ -6389,7 +6389,7 @@ _021DA44E: add r4, r0, #0 b _021DA45E _021DA45A: - bl ErrorHandling + bl GF_AssertFail _021DA45E: cmp r4, #0 beq _021DA486 @@ -6543,7 +6543,7 @@ _021DA578: add r4, r0, #0 b _021DA588 _021DA584: - bl ErrorHandling + bl GF_AssertFail _021DA588: cmp r4, #0 beq _021DA5B0 @@ -6618,7 +6618,7 @@ MOD16_021DA5FC: ; 0x021DA5FC bl AllocFromHeap add r4, r0, #0 bne _021DA60E - bl ErrorHandling + bl GF_AssertFail _021DA60E: add r0, r4, #0 mov r1, #0 @@ -6639,17 +6639,17 @@ MOD16_021DA624: ; 0x021DA624 add r4, r1, #0 cmp r5, #0 bne _021DA632 - bl ErrorHandling + bl GF_AssertFail _021DA632: cmp r4, #0 bne _021DA63A - bl ErrorHandling + bl GF_AssertFail _021DA63A: add r0, r5, #0 bl MOD16_021DA7C4 cmp r0, #0 bne _021DA648 - bl ErrorHandling + bl GF_AssertFail _021DA648: ldr r0, [r4] str r0, [r5] @@ -6694,7 +6694,7 @@ MOD16_021DA694: ; 0x021DA694 push {r4, lr} add r4, r0, #0 bne _021DA69E - bl ErrorHandling + bl GF_AssertFail _021DA69E: ldr r0, [r4, #8] cmp r0, #5 @@ -6757,7 +6757,7 @@ _021DA70E: mov r0, #1 pop {r4, pc} _021DA712: - bl ErrorHandling + bl GF_AssertFail _021DA716: mov r0, #0 pop {r4, pc} @@ -6770,7 +6770,7 @@ MOD16_021DA71C: ; 0x021DA71C sub sp, #4 add r4, r0, #0 bne _021DA728 - bl ErrorHandling + bl GF_AssertFail _021DA728: ldr r0, [r4, #8] cmp r0, #5 @@ -6838,7 +6838,7 @@ _021DA7A0: mov r0, #1 pop {r3, r4, pc} _021DA7A6: - bl ErrorHandling + bl GF_AssertFail _021DA7AA: mov r0, #0 add sp, #4 @@ -6856,7 +6856,7 @@ MOD16_021DA7B4: ; 0x021DA7B4 push {r4, lr} add r4, r0, #0 bne _021DA7BE - bl ErrorHandling + bl GF_AssertFail _021DA7BE: mov r0, #1 str r0, [r4, #0x18] @@ -6868,7 +6868,7 @@ MOD16_021DA7C4: ; 0x021DA7C4 push {r4, lr} add r4, r0, #0 bne _021DA7CE - bl ErrorHandling + bl GF_AssertFail _021DA7CE: ldr r0, [r4, #8] cmp r0, #5 @@ -6885,7 +6885,7 @@ MOD16_021DA7DC: ; 0x021DA7DC push {r4, lr} add r4, r0, #0 bne _021DA7E6 - bl ErrorHandling + bl GF_AssertFail _021DA7E6: ldr r0, [r4, #8] cmp r0, #2 @@ -6923,11 +6923,11 @@ MOD16_021DA808: ; 0x021DA808 add r6, r2, #0 cmp r5, #0 bne _021DA818 - bl ErrorHandling + bl GF_AssertFail _021DA818: cmp r4, #0 bne _021DA820 - bl ErrorHandling + bl GF_AssertFail _021DA820: add r0, r4, #0 add r1, r6, #0 @@ -6944,16 +6944,16 @@ MOD16_021DA828: ; 0x021DA828 add r7, r3, #0 cmp r5, #0 bne _021DA83A - bl ErrorHandling + bl GF_AssertFail _021DA83A: cmp r4, #0 bne _021DA842 - bl ErrorHandling + bl GF_AssertFail _021DA842: ldr r0, [sp, #0x18] cmp r0, #0 bne _021DA84C - bl ErrorHandling + bl GF_AssertFail _021DA84C: ldr r3, [sp, #0x18] add r0, r6, #0 @@ -6970,7 +6970,7 @@ MOD16_021DA858: ; 0x021DA858 bl AllocFromHeap add r4, r0, #0 bne _021DA868 - bl ErrorHandling + bl GF_AssertFail _021DA868: mov r0, #0 strb r0, [r4] @@ -6998,7 +6998,7 @@ MOD16_021DA888: ; 0x021DA888 add r6, r2, #0 cmp r5, #0 bne _021DA898 - bl ErrorHandling + bl GF_AssertFail _021DA898: str r4, [r5] str r6, [r5, #4] @@ -7013,7 +7013,7 @@ MOD16_021DA8A0: ; 0x021DA8A0 add r5, r1, #0 cmp r4, #0 bne _021DA8AE - bl ErrorHandling + bl GF_AssertFail _021DA8AE: add r0, r4, #0 bl MOD16_021DA908 @@ -7052,7 +7052,7 @@ MOD16_021DA8F0: ; 0x021DA8F0 push {r4, lr} add r4, r0, #0 bne _021DA8FA - bl ErrorHandling + bl GF_AssertFail _021DA8FA: ldr r0, [r4, #8] cmp r0, #0 @@ -7091,7 +7091,7 @@ _021DA928: ldr r0, [r5] cmp r0, #0 bne _021DA932 - bl ErrorHandling + bl GF_AssertFail _021DA932: ldr r0, [r5] ldr r1, [r0, r4] @@ -7175,7 +7175,7 @@ _021DA9AE: mov r0, #1 pop {r4, pc} _021DA9BC: - bl ErrorHandling + bl GF_AssertFail _021DA9C0: mov r0, #0 pop {r4, pc} @@ -7245,7 +7245,7 @@ _021DAA3A: add sp, #0x10 pop {r3, r4, r5, pc} _021DAA44: - bl ErrorHandling + bl GF_AssertFail _021DAA48: mov r0, #0 add sp, #0x10 @@ -7397,7 +7397,7 @@ _021DAB5E: mov r0, #1 pop {r3, r4, r5, pc} _021DAB68: - bl ErrorHandling + bl GF_AssertFail _021DAB6C: mov r0, #0 add sp, #0x10 @@ -7511,7 +7511,7 @@ _021DAC2E: mov r0, #1 pop {r3, r4, r5, pc} _021DAC38: - bl ErrorHandling + bl GF_AssertFail _021DAC3C: mov r0, #0 add sp, #8 @@ -7557,7 +7557,7 @@ MOD16_021DAC7C: ; 0x021DAC7C ldr r0, [r4, #0x10] cmp r0, #0 bne _021DAC8A - bl ErrorHandling + bl GF_AssertFail _021DAC8A: ldr r0, [r4, #0x10] bl FreeToHeap @@ -7579,7 +7579,7 @@ MOD16_021DAC98: ; 0x021DAC98 bl AllocFromHeap add r4, r0, #0 bne _021DACB2 - bl ErrorHandling + bl GF_AssertFail _021DACB2: add r0, r4, #0 mov r1, #0 @@ -7638,7 +7638,7 @@ MOD16_021DAD20: ; 0x021DAD20 bl AllocFromHeap add r4, r0, #0 bne _021DAD3A - bl ErrorHandling + bl GF_AssertFail _021DAD3A: add r2, r4, #0 mov r1, #0x14 @@ -7681,7 +7681,7 @@ MOD16_021DAD78: ; 0x021DAD78 bl AllocFromHeap add r4, r0, #0 bne _021DAD92 - bl ErrorHandling + bl GF_AssertFail _021DAD92: add r0, r4, #0 mov r1, #0 @@ -7745,7 +7745,7 @@ MOD16_021DAE0C: ; 0x021DAE0C bl AllocFromHeap add r4, r0, #0 bne _021DAE26 - bl ErrorHandling + bl GF_AssertFail _021DAE26: add r0, r4, #0 mov r1, #0 @@ -7805,7 +7805,7 @@ MOD16_021DAE94: ; 0x021DAE94 bl AllocFromHeap add r4, r0, #0 bne _021DAEB0 - bl ErrorHandling + bl GF_AssertFail _021DAEB0: add r0, r6, #0 mov r1, #0 @@ -7835,7 +7835,7 @@ MOD16_021DAED4: ; 0x021DAED4 bl AllocFromHeap add r4, r0, #0 bne _021DAEEE - bl ErrorHandling + bl GF_AssertFail _021DAEEE: add r2, r4, #0 mov r1, #0x18 @@ -7883,7 +7883,7 @@ MOD16_021DAF38: ; 0x021DAF38 bl AllocFromHeap add r4, r0, #0 bne _021DAF52 - bl ErrorHandling + bl GF_AssertFail _021DAF52: add r2, r4, #0 mov r1, #0x18 @@ -7931,7 +7931,7 @@ MOD16_021DAF9C: ; 0x021DAF9C bl AllocFromHeap add r4, r0, #0 bne _021DAFB6 - bl ErrorHandling + bl GF_AssertFail _021DAFB6: add r2, r4, #0 mov r1, #0x18 @@ -7979,7 +7979,7 @@ MOD16_021DB000: ; 0x021DB000 bl AllocFromHeap add r4, r0, #0 bne _021DB01A - bl ErrorHandling + bl GF_AssertFail _021DB01A: mov r0, #0 strb r0, [r4] @@ -8022,7 +8022,7 @@ MOD16_021DB058: ; 0x021DB058 bl AllocFromHeap add r4, r0, #0 bne _021DB072 - bl ErrorHandling + bl GF_AssertFail _021DB072: mov r0, #0 strb r0, [r4] @@ -8065,7 +8065,7 @@ MOD16_021DB0B0: ; 0x021DB0B0 bl AllocFromHeap add r4, r0, #0 bne _021DB0CA - bl ErrorHandling + bl GF_AssertFail _021DB0CA: add r2, r4, #0 mov r1, #0x18 @@ -8113,7 +8113,7 @@ MOD16_021DB114: ; 0x021DB114 bl AllocFromHeap add r4, r0, #0 bne _021DB12E - bl ErrorHandling + bl GF_AssertFail _021DB12E: mov r0, #0 strb r0, [r4] @@ -8156,7 +8156,7 @@ MOD16_021DB16C: ; 0x021DB16C bl AllocFromHeap add r4, r0, #0 bne _021DB186 - bl ErrorHandling + bl GF_AssertFail _021DB186: add r2, r4, #0 mov r1, #0x18 @@ -8204,7 +8204,7 @@ MOD16_021DB1D0: ; 0x021DB1D0 bl AllocFromHeap add r4, r0, #0 bne _021DB1EA - bl ErrorHandling + bl GF_AssertFail _021DB1EA: mov r0, #0 strb r0, [r4] @@ -8244,7 +8244,7 @@ MOD16_021DB228: ; 0x021DB228 bl AllocFromHeap add r4, r0, #0 bne _021DB23C - bl ErrorHandling + bl GF_AssertFail _021DB23C: add r2, r4, #0 mov r1, #0x18 @@ -8265,7 +8265,7 @@ _021DB242: str r0, [r4, #0xc] cmp r0, #0 bne _021DB268 - bl ErrorHandling + bl GF_AssertFail _021DB268: ldr r2, [r5, #8] ldr r0, [r4, #0xc] @@ -8289,7 +8289,7 @@ MOD16_021DB288: ; 0x021DB288 push {r4, lr} add r4, r0, #0 bne _021DB292 - bl ErrorHandling + bl GF_AssertFail _021DB292: add r0, r4, #0 bl MOD16_021DB358 @@ -8335,7 +8335,7 @@ MOD16_021DB2D4: ; 0x021DB2D4 bl MOD16_021DB460 add r4, r0, #0 bne _021DB2EA - bl ErrorHandling + bl GF_AssertFail _021DB2EA: ldr r2, [r5, #0x20] add r0, r6, #0 @@ -8473,7 +8473,7 @@ MOD16_021DB3C8: ; 0x021DB3C8 bl NewMsgDataFromNarc add r5, r0, #0 bne _021DB3E4 - bl ErrorHandling + bl GF_AssertFail _021DB3E4: add r0, r5, #0 add r1, r4, #0 @@ -8649,7 +8649,7 @@ _021DB4FC: cmp r4, r0 blt _021DB50A _021DB506: - bl ErrorHandling + bl GF_AssertFail _021DB50A: str r4, [r5, #0xc] pop {r3, r4, r5, pc} @@ -8660,7 +8660,7 @@ _021DB50E: cmp r4, r0 blt _021DB51C _021DB518: - bl ErrorHandling + bl GF_AssertFail _021DB51C: str r4, [r5, #0x10] pop {r3, r4, r5, pc} @@ -8805,7 +8805,7 @@ MOD16_021DB5EC: ; 0x021DB5EC beq _021DB602 cmp r4, #1 beq _021DB602 - bl ErrorHandling + bl GF_AssertFail _021DB602: ldr r0, [r5, #0xc] mov r1, #0x1c @@ -8852,7 +8852,7 @@ MOD16_021DB63C: ; 0x021DB63C beq _021DB652 cmp r4, #1 beq _021DB652 - bl ErrorHandling + bl GF_AssertFail _021DB652: ldr r0, [r5, #0x10] mov r1, #0x1c @@ -9655,7 +9655,7 @@ _021DBBA0: mov r4, #0x2f b _021DBBA8 _021DBBA4: - bl ErrorHandling + bl GF_AssertFail _021DBBA8: add r0, r4, #0 pop {r4, pc} @@ -9767,7 +9767,7 @@ MOD16_021DBC48: ; 0x021DBC48 bne _021DBC74 cmp r4, #1 blt _021DBC6C - bl ErrorHandling + bl GF_AssertFail _021DBC6C: add r0, r5, r4 str r0, [sp, #4] @@ -9781,7 +9781,7 @@ _021DBC6C: _021DBC74: cmp r4, #1 blt _021DBC7C - bl ErrorHandling + bl GF_AssertFail _021DBC7C: ldr r0, [sp, #4] ldr r1, [sp, #0xc] @@ -9851,7 +9851,7 @@ MOD16_021DBCE0: ; 0x021DBCE0 str r0, [r5] cmp r0, #6 blt _021DBCFA - bl ErrorHandling + bl GF_AssertFail _021DBCFA: add r0, r7, #0 bl GetMeisterSpeciesIdx @@ -9859,7 +9859,7 @@ _021DBCFA: ldr r5, [r5] cmp r5, #6 blt _021DBD0C - bl ErrorHandling + bl GF_AssertFail _021DBD0C: cmp r5, #1 bne _021DBD12 @@ -9878,7 +9878,7 @@ _021DBD22: _021DBD24: cmp r0, #0 bne _021DBD2C - bl ErrorHandling + bl GF_AssertFail _021DBD2C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -9972,12 +9972,12 @@ MOD16_021DBDC0: ; 0x021DBDC0 push {r4, lr} add r4, r0, #0 bne _021DBDCA - bl ErrorHandling + bl GF_AssertFail _021DBDCA: ldr r0, [r4] cmp r0, #0 bne _021DBDD4 - bl ErrorHandling + bl GF_AssertFail _021DBDD4: ldr r0, [r4] bl FreeToHeap @@ -10059,7 +10059,7 @@ MOD16_021DBE3C: ; 0x021DBE3C add r0, r1, r0 cmp r0, r2 blt _021DBE54 - bl ErrorHandling + bl GF_AssertFail _021DBE54: ldrb r1, [r4] ldrb r0, [r4, #2] @@ -10067,7 +10067,7 @@ _021DBE54: ldr r0, [sp, #4] cmp r1, r0 blt _021DBE64 - bl ErrorHandling + bl GF_AssertFail _021DBE64: ldrb r7, [r4, #1] ldrb r0, [r4, #3] @@ -10154,7 +10154,7 @@ _021DBEF2: ldr r0, [r0, r7] cmp r0, #0 bne _021DBF00 - bl ErrorHandling + bl GF_AssertFail _021DBF00: mov r1, #0 cmp r4, #0 @@ -10282,13 +10282,13 @@ _021DBFE0: ldr r0, [r0, r6] cmp r0, #0 bne _021DBFEC - bl ErrorHandling + bl GF_AssertFail _021DBFEC: ldr r1, [sp, #0x10] ldr r0, [sp, #0x14] cmp r1, r0 blt _021DBFF8 - bl ErrorHandling + bl GF_AssertFail _021DBFF8: mov r1, #0 cmp r4, #0 @@ -10442,7 +10442,7 @@ MOD16_021DC10C: ; 0x021DC10C bl AllocFromHeap add r4, r0, #0 bne _021DC11E - bl ErrorHandling + bl GF_AssertFail _021DC11E: add r0, r4, #0 mov r1, #0 @@ -10469,7 +10469,7 @@ MOD16_021DC148: ; 0x021DC148 push {r4, lr} add r4, r0, #0 bne _021DC152 - bl ErrorHandling + bl GF_AssertFail _021DC152: add r0, r4, #0 bl FreeToHeap @@ -10485,7 +10485,7 @@ MOD16_021DC15C: ; 0x021DC15C bl AllocFromHeap add r4, r0, #0 bne _021DC16E - bl ErrorHandling + bl GF_AssertFail _021DC16E: mov r0, #0 strb r0, [r4] @@ -10504,7 +10504,7 @@ MOD16_021DC184: ; 0x021DC184 push {r4, lr} add r4, r0, #0 bne _021DC18E - bl ErrorHandling + bl GF_AssertFail _021DC18E: add r0, r4, #0 bl FreeToHeap @@ -10562,7 +10562,7 @@ MOD16_021DC1F8: ; 0x021DC1F8 push {r4, lr} add r4, r0, #0 bne _021DC202 - bl ErrorHandling + bl GF_AssertFail _021DC202: add r0, r4, #0 bl MOD16_021DAC7C @@ -10600,7 +10600,7 @@ MOD16_021DC234: ; 0x021DC234 str r0, [r5, #8] cmp r0, #0 bne _021DC24C - bl ErrorHandling + bl GF_AssertFail _021DC24C: ldr r0, [r5, #8] mov r1, #0 @@ -10698,7 +10698,7 @@ _021DC2E8: bl AllocFromHeap add r7, r0, #0 bne _021DC2FA - bl ErrorHandling + bl GF_AssertFail _021DC2FA: str r7, [r4, #8] add r0, r7, #0 @@ -10782,7 +10782,7 @@ _021DC388: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DC39C: - bl ErrorHandling + bl GF_AssertFail _021DC3A0: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -10933,7 +10933,7 @@ _021DC4C2: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DC4C6: - bl ErrorHandling + bl GF_AssertFail _021DC4CA: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} @@ -12746,7 +12746,7 @@ MOD16_021DD2F4: ; 0x021DD2F4 str r0, [sp] cmp r0, #0 bne _021DD312 - bl ErrorHandling + bl GF_AssertFail _021DD312: mov r0, #0x15 lsl r0, r0, #4 @@ -14019,7 +14019,7 @@ MOD16_021DDCA4: ; 0x021DDCA4 bl AllocFromHeap add r4, r0, #0 bne _021DDCB8 - bl ErrorHandling + bl GF_AssertFail _021DDCB8: add r0, r4, #0 mov r1, #0 @@ -14055,7 +14055,7 @@ MOD16_021DDCEC: ; 0x021DDCEC bl AllocFromHeap add r4, r0, #0 bne _021DDCFE - bl ErrorHandling + bl GF_AssertFail _021DDCFE: mov r0, #0 strb r0, [r4] @@ -14083,7 +14083,7 @@ MOD16_021DDD14: ; 0x021DDD14 bl AllocFromHeap add r4, r0, #0 bne _021DDD34 - bl ErrorHandling + bl GF_AssertFail _021DDD34: add r0, r4, #0 mov r1, #0 @@ -14104,7 +14104,7 @@ MOD16_021DDD50: ; 0x021DDD50 push {r4, lr} add r4, r0, #0 bne _021DDD5A - bl ErrorHandling + bl GF_AssertFail _021DDD5A: add r0, r4, #0 bl FreeToHeap @@ -14117,7 +14117,7 @@ MOD16_021DDD64: ; 0x021DDD64 push {r4, lr} add r4, r0, #0 bne _021DDD6E - bl ErrorHandling + bl GF_AssertFail _021DDD6E: add r0, r4, #0 bl FreeToHeap @@ -14130,7 +14130,7 @@ MOD16_021DDD78: ; 0x021DDD78 push {r4, lr} add r4, r0, #0 bne _021DDD82 - bl ErrorHandling + bl GF_AssertFail _021DDD82: add r0, r4, #0 bl MOD16_021DAC7C @@ -14156,7 +14156,7 @@ MOD16_021DDD94: ; 0x021DDD94 str r0, [r5, #8] cmp r0, #0 bne _021DDDAC - bl ErrorHandling + bl GF_AssertFail _021DDDAC: ldr r0, [r5, #8] mov r1, #0 @@ -14266,7 +14266,7 @@ _021DDE60: str r0, [r4, #8] cmp r0, #0 bne _021DDE72 - bl ErrorHandling + bl GF_AssertFail _021DDE72: ldr r0, [r4, #8] mov r1, #0 @@ -15179,7 +15179,7 @@ MOD16_021DE594: ; 0x021DE594 ldr r4, [r1] cmp r0, #0 bne _021DE5AA - bl ErrorHandling + bl GF_AssertFail _021DE5AA: mov r0, #0x51 lsl r0, r0, #2 @@ -15981,7 +15981,7 @@ MOD16_021DEBA4: ; 0x021DEBA4 ldr r4, [r0] cmp r5, #4 blt _021DEBB2 - bl ErrorHandling + bl GF_AssertFail _021DEBB2: str r5, [r4, #0xc] pop {r3, r4, r5, pc} @@ -16003,7 +16003,7 @@ MOD16_021DEBC0: ; 0x021DEBC0 ldr r4, [r0] cmp r5, #6 blt _021DEBCE - bl ErrorHandling + bl GF_AssertFail _021DEBCE: str r5, [r4, #0x10] pop {r3, r4, r5, pc} @@ -16025,7 +16025,7 @@ MOD16_021DEBDC: ; 0x021DEBDC ldr r4, [r0] cmp r5, #0xa blt _021DEBEA - bl ErrorHandling + bl GF_AssertFail _021DEBEA: str r5, [r4, #0x14] pop {r3, r4, r5, pc} @@ -16048,7 +16048,7 @@ MOD16_021DEBF8: ; 0x021DEBF8 ldr r4, [r0] cmp r5, #0x12 blt _021DEC08 - bl ErrorHandling + bl GF_AssertFail _021DEC08: cmp r6, #0 bne _021DEC10 @@ -16079,7 +16079,7 @@ MOD16_021DEC24: ; 0x021DEC24 ldr r4, [r0] cmp r5, #0xf blt _021DEC32 - bl ErrorHandling + bl GF_AssertFail _021DEC32: str r5, [r4, #0x20] pop {r3, r4, r5, pc} @@ -16136,7 +16136,7 @@ MOD16_021DEC64: ; 0x021DEC64 bl AllocFromHeap add r4, r0, #0 bne _021DEC76 - bl ErrorHandling + bl GF_AssertFail _021DEC76: add r0, r4, #0 mov r1, #0 @@ -16165,7 +16165,7 @@ MOD16_021DECA0: ; 0x021DECA0 bl AllocFromHeap add r4, r0, #0 bne _021DECB2 - bl ErrorHandling + bl GF_AssertFail _021DECB2: mov r0, #0 strb r0, [r4] @@ -16193,7 +16193,7 @@ MOD16_021DECC8: ; 0x021DECC8 bl AllocFromHeap add r4, r0, #0 bne _021DECE8 - bl ErrorHandling + bl GF_AssertFail _021DECE8: add r0, r4, #0 mov r1, #0 @@ -16214,7 +16214,7 @@ MOD16_021DED04: ; 0x021DED04 push {r4, lr} add r4, r0, #0 bne _021DED0E - bl ErrorHandling + bl GF_AssertFail _021DED0E: add r0, r4, #0 bl FreeToHeap @@ -16227,7 +16227,7 @@ MOD16_021DED18: ; 0x021DED18 push {r4, lr} add r4, r0, #0 bne _021DED22 - bl ErrorHandling + bl GF_AssertFail _021DED22: add r0, r4, #0 bl FreeToHeap @@ -16240,7 +16240,7 @@ MOD16_021DED2C: ; 0x021DED2C push {r4, lr} add r4, r0, #0 bne _021DED36 - bl ErrorHandling + bl GF_AssertFail _021DED36: add r0, r4, #0 bl MOD16_021DAC7C @@ -16265,7 +16265,7 @@ MOD16_021DED48: ; 0x021DED48 bl AllocFromHeap add r6, r0, #0 bne _021DED5E - bl ErrorHandling + bl GF_AssertFail _021DED5E: mov r0, #0 strb r0, [r6] @@ -16435,7 +16435,7 @@ _021DEE84: str r0, [r5] b _021DEE9A _021DEE96: - bl ErrorHandling + bl GF_AssertFail _021DEE9A: mov r0, #0 add sp, #0x14 @@ -18023,7 +18023,7 @@ MOD16_021DFAA0: ; 0x021DFAA0 bl AllocFromHeap add r4, r0, #0 bne _021DFAB2 - bl ErrorHandling + bl GF_AssertFail _021DFAB2: add r2, r4, #0 mov r1, #0x10 @@ -18059,7 +18059,7 @@ MOD16_021DFAE8: ; 0x021DFAE8 bl AllocFromHeap add r4, r0, #0 bne _021DFAFA - bl ErrorHandling + bl GF_AssertFail _021DFAFA: mov r0, #0 strb r0, [r4] @@ -18092,7 +18092,7 @@ MOD16_021DFB24: ; 0x021DFB24 push {r4, lr} add r4, r0, #0 bne _021DFB2E - bl ErrorHandling + bl GF_AssertFail _021DFB2E: add r0, r4, #0 bl FreeToHeap @@ -18105,7 +18105,7 @@ MOD16_021DFB38: ; 0x021DFB38 push {r4, lr} add r4, r0, #0 bne _021DFB42 - bl ErrorHandling + bl GF_AssertFail _021DFB42: add r0, r4, #0 bl FreeToHeap @@ -18135,7 +18135,7 @@ MOD16_021DFB54: ; 0x021DFB54 bl AllocFromHeap add r4, r0, #0 bne _021DFB6A - bl ErrorHandling + bl GF_AssertFail _021DFB6A: add r0, r4, #0 mov r1, #0 @@ -22376,7 +22376,7 @@ _021E195A: mov r4, #4 b _021E1962 _021E195E: - bl ErrorHandling + bl GF_AssertFail _021E1962: ldr r0, [r5, #0x18] mov r1, #4 @@ -25366,7 +25366,7 @@ MOD16_021E2F38: ; 0x021E2F38 ldr r4, [r0] cmp r5, #3 blt _021E2F46 - bl ErrorHandling + bl GF_AssertFail _021E2F46: str r5, [r4, #4] pop {r3, r4, r5, pc} @@ -25405,7 +25405,7 @@ MOD16_021E2F64: ; 0x021E2F64 bl AllocFromHeap add r4, r0, #0 bne _021E2F76 - bl ErrorHandling + bl GF_AssertFail _021E2F76: mov r0, #0 strb r0, [r4] @@ -25440,7 +25440,7 @@ MOD16_021E2FA8: ; 0x021E2FA8 bl AllocFromHeap add r4, r0, #0 bne _021E2FBA - bl ErrorHandling + bl GF_AssertFail _021E2FBA: add r2, r4, #0 mov r1, #0x14 @@ -25462,7 +25462,7 @@ MOD16_021E2FD4: ; 0x021E2FD4 push {r4, lr} add r4, r0, #0 bne _021E2FDE - bl ErrorHandling + bl GF_AssertFail _021E2FDE: add r0, r4, #0 bl FreeToHeap @@ -25475,7 +25475,7 @@ MOD16_021E2FE8: ; 0x021E2FE8 push {r4, lr} add r4, r0, #0 bne _021E2FF2 - bl ErrorHandling + bl GF_AssertFail _021E2FF2: add r0, r4, #0 bl FreeToHeap @@ -25499,7 +25499,7 @@ MOD16_021E3000: ; 0x021E3000 bl AllocFromHeap add r4, r0, #0 bne _021E3016 - bl ErrorHandling + bl GF_AssertFail _021E3016: add r0, r4, #0 mov r1, #0 @@ -26488,7 +26488,7 @@ MOD16_021E37E8: ; 0x021E37E8 ldr r7, [r4] cmp r0, #0 bne _021E3800 - bl ErrorHandling + bl GF_AssertFail _021E3800: mov r0, #0x51 ldr r1, [r4] @@ -27541,7 +27541,7 @@ _021E3FFA: str r0, [sp] b _021E4008 _021E4004: - bl ErrorHandling + bl GF_AssertFail _021E4008: add r0, r5, #0 ldr r2, [sp, #4] @@ -27894,7 +27894,7 @@ MOD16_021E42AC: ; 0x021E42AC bl AllocFromHeap add r4, r0, #0 bne _021E42BE - bl ErrorHandling + bl GF_AssertFail _021E42BE: mov r0, #0 strb r0, [r4] @@ -27925,7 +27925,7 @@ MOD16_021E42E8: ; 0x021E42E8 bl AllocFromHeap add r4, r0, #0 bne _021E42FA - bl ErrorHandling + bl GF_AssertFail _021E42FA: mov r0, #0 strb r0, [r4] @@ -27950,7 +27950,7 @@ MOD16_021E4314: ; 0x021E4314 push {r4, lr} add r4, r0, #0 bne _021E431E - bl ErrorHandling + bl GF_AssertFail _021E431E: add r0, r4, #0 bl FreeToHeap @@ -27963,7 +27963,7 @@ MOD16_021E4328: ; 0x021E4328 push {r4, lr} add r4, r0, #0 bne _021E4332 - bl ErrorHandling + bl GF_AssertFail _021E4332: add r0, r4, #0 bl FreeToHeap @@ -27993,7 +27993,7 @@ MOD16_021E4344: ; 0x021E4344 bl AllocFromHeap add r4, r0, #0 bne _021E435A - bl ErrorHandling + bl GF_AssertFail _021E435A: add r0, r4, #0 mov r1, #0 @@ -28963,7 +28963,7 @@ _021E4A6C: bl FUN_0201C2C8 cmp r0, #0 bne _021E4A86 - bl ErrorHandling + bl GF_AssertFail _021E4A86: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD16_021E49B8 @@ -29157,7 +29157,7 @@ MOD16_021E4BCC: ; 0x021E4BCC bl AllocFromHeap add r4, r0, #0 bne _021E4BDE - bl ErrorHandling + bl GF_AssertFail _021E4BDE: add r0, r4, #0 mov r1, #0 @@ -29186,7 +29186,7 @@ MOD16_021E4C08: ; 0x021E4C08 bl AllocFromHeap add r4, r0, #0 bne _021E4C1A - bl ErrorHandling + bl GF_AssertFail _021E4C1A: mov r0, #0 strb r0, [r4] @@ -29205,7 +29205,7 @@ MOD16_021E4C30: ; 0x021E4C30 push {r4, lr} add r4, r0, #0 bne _021E4C3A - bl ErrorHandling + bl GF_AssertFail _021E4C3A: add r0, r4, #0 bl FreeToHeap @@ -29218,7 +29218,7 @@ MOD16_021E4C44: ; 0x021E4C44 push {r4, lr} add r4, r0, #0 bne _021E4C4E - bl ErrorHandling + bl GF_AssertFail _021E4C4E: add r0, r4, #0 bl FreeToHeap @@ -31367,7 +31367,7 @@ MOD16_021E5C88: ; 0x021E5C88 bl AllocFromHeap add r4, r0, #0 bne _021E5C9A - bl ErrorHandling + bl GF_AssertFail _021E5C9A: add r2, r4, #0 mov r1, #0x18 @@ -31400,7 +31400,7 @@ MOD16_021E5CC8: ; 0x021E5CC8 bl AllocFromHeap add r4, r0, #0 bne _021E5CDA - bl ErrorHandling + bl GF_AssertFail _021E5CDA: mov r0, #0 strb r0, [r4] @@ -31427,7 +31427,7 @@ MOD16_021E5D00: ; 0x021E5D00 push {r4, lr} add r4, r0, #0 bne _021E5D0A - bl ErrorHandling + bl GF_AssertFail _021E5D0A: add r0, r4, #0 bl FreeToHeap @@ -31440,7 +31440,7 @@ MOD16_021E5D14: ; 0x021E5D14 push {r4, lr} add r4, r0, #0 bne _021E5D1E - bl ErrorHandling + bl GF_AssertFail _021E5D1E: add r0, r4, #0 bl FreeToHeap @@ -31676,7 +31676,7 @@ _021E5E94: str r0, [r4] b _021E5EC4 _021E5EC0: - bl ErrorHandling + bl GF_AssertFail _021E5EC4: add r0, r6, #0 bl MOD16_021E6E44 @@ -31940,7 +31940,7 @@ MOD16_021E60A8: ; 0x021E60A8 ldr r4, [sp, #0x2c] cmp r5, #2 ble _021E60C0 - bl ErrorHandling + bl GF_AssertFail _021E60C0: ldr r0, [sp, #0x28] cmp r0, #9 @@ -32033,7 +32033,7 @@ _021E615E: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} _021E6172: - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -32809,7 +32809,7 @@ _021E6718: mvn r0, r0 cmp r4, r0 bne _021E673C - bl ErrorHandling + bl GF_AssertFail _021E673C: cmp r4, #0 bne _021E6744 @@ -32871,7 +32871,7 @@ _021E6784: mvn r1, r1 cmp r0, r1 bne _021E67AA - bl ErrorHandling + bl GF_AssertFail _021E67AA: add r0, r4, #1 add r1, sp, #0x18 @@ -32902,7 +32902,7 @@ _021E67C4: mvn r1, r1 cmp r0, r1 bne _021E67EA - bl ErrorHandling + bl GF_AssertFail _021E67EA: add sp, #0x1c pop {r4, r5, r6, r7, pc} @@ -32947,7 +32947,7 @@ _021E681A: mvn r1, r1 cmp r0, r1 bne _021E683C - bl ErrorHandling + bl GF_AssertFail _021E683C: add r0, r4, #1 add r1, sp, #0x10 @@ -32976,7 +32976,7 @@ _021E6856: mvn r1, r1 cmp r0, r1 bne _021E6878 - bl ErrorHandling + bl GF_AssertFail _021E6878: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33020,7 +33020,7 @@ _021E68A6: mvn r1, r1 cmp r0, r1 bne _021E68C8 - bl ErrorHandling + bl GF_AssertFail _021E68C8: add r0, r4, #1 add r1, sp, #0x10 @@ -33049,7 +33049,7 @@ _021E68E2: mvn r1, r1 cmp r0, r1 bne _021E6904 - bl ErrorHandling + bl GF_AssertFail _021E6904: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33093,7 +33093,7 @@ _021E6932: mvn r1, r1 cmp r0, r1 bne _021E6954 - bl ErrorHandling + bl GF_AssertFail _021E6954: add r0, r4, #1 add r1, sp, #0x10 @@ -33122,7 +33122,7 @@ _021E696E: mvn r1, r1 cmp r0, r1 bne _021E6990 - bl ErrorHandling + bl GF_AssertFail _021E6990: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33166,7 +33166,7 @@ _021E69BE: mvn r1, r1 cmp r0, r1 bne _021E69E0 - bl ErrorHandling + bl GF_AssertFail _021E69E0: add r0, r4, #1 add r1, sp, #0x10 @@ -33195,7 +33195,7 @@ _021E69FA: mvn r1, r1 cmp r0, r1 bne _021E6A1C - bl ErrorHandling + bl GF_AssertFail _021E6A1C: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33239,7 +33239,7 @@ _021E6A4A: mvn r1, r1 cmp r0, r1 bne _021E6A6C - bl ErrorHandling + bl GF_AssertFail _021E6A6C: add r0, r4, #1 add r1, sp, #0x10 @@ -33268,7 +33268,7 @@ _021E6A86: mvn r1, r1 cmp r0, r1 bne _021E6AA8 - bl ErrorHandling + bl GF_AssertFail _021E6AA8: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33310,7 +33310,7 @@ _021E6AD6: bl MOD16_021D822C cmp r0, #0xf bne _021E6AF4 - bl ErrorHandling + bl GF_AssertFail _021E6AF4: add r0, r4, #1 add r1, sp, #0x10 @@ -33337,7 +33337,7 @@ _021E6B0E: bl MOD16_021D822C cmp r0, #0xf bne _021E6B2C - bl ErrorHandling + bl GF_AssertFail _021E6B2C: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33468,7 +33468,7 @@ MOD16_021E6C04: ; 0x021E6C04 ldr r5, [r6] cmp r0, #0 bne _021E6C20 - bl ErrorHandling + bl GF_AssertFail _021E6C20: ldr r1, [sp, #8] ldr r2, [sp, #0x58] @@ -33553,7 +33553,7 @@ MOD16_021E6CB4: ; 0x021E6CB4 mvn r0, r0 cmp r5, r0 bne _021E6CD8 - bl ErrorHandling + bl GF_AssertFail _021E6CD8: cmp r5, #0 beq _021E6CE2 @@ -33567,7 +33567,7 @@ _021E6CE6: mov r4, #0xe b _021E6CEE _021E6CEA: - bl ErrorHandling + bl GF_AssertFail _021E6CEE: add r0, r4, #0 pop {r4, r5, r6, pc} @@ -33688,7 +33688,7 @@ _021E6D80: mov r5, #0x58 b _021E6D8E _021E6D8A: - bl ErrorHandling + bl GF_AssertFail _021E6D8E: str r4, [r6] str r5, [r7] @@ -33933,7 +33933,7 @@ MOD16_021E6F18: ; 0x021E6F18 bl AllocFromHeap add r4, r0, #0 bne _021E6F2A - bl ErrorHandling + bl GF_AssertFail _021E6F2A: add r0, r4, #0 mov r1, #0 @@ -33962,7 +33962,7 @@ MOD16_021E6F54: ; 0x021E6F54 bl AllocFromHeap add r4, r0, #0 bne _021E6F66 - bl ErrorHandling + bl GF_AssertFail _021E6F66: mov r0, #0 strb r0, [r4] @@ -33981,7 +33981,7 @@ MOD16_021E6F7C: ; 0x021E6F7C push {r4, lr} add r4, r0, #0 bne _021E6F86 - bl ErrorHandling + bl GF_AssertFail _021E6F86: add r0, r4, #0 bl FreeToHeap @@ -33994,7 +33994,7 @@ MOD16_021E6F90: ; 0x021E6F90 push {r4, lr} add r4, r0, #0 bne _021E6F9A - bl ErrorHandling + bl GF_AssertFail _021E6F9A: add r0, r4, #0 bl FreeToHeap @@ -34471,7 +34471,7 @@ MOD16_021E72E4: ; 0x021E72E4 cmp r0, #2 beq _021E731E mov r7, #0 - bl ErrorHandling + bl GF_AssertFail _021E731E: ldr r0, [r4, #0x18] bl MOD16_021E7A70 @@ -35467,7 +35467,7 @@ _021E7AA6: mov r4, #0x1a b _021E7AAE _021E7AAA: - bl ErrorHandling + bl GF_AssertFail _021E7AAE: add r0, r4, #0 pop {r4, pc} @@ -35605,7 +35605,7 @@ MOD16_021E7BB0: ; 0x021E7BB0 bl AllocFromHeap add r4, r0, #0 bne _021E7BC2 - bl ErrorHandling + bl GF_AssertFail _021E7BC2: add r2, r4, #0 mov r1, #0x18 @@ -35651,7 +35651,7 @@ MOD16_021E7C10: ; 0x021E7C10 bl AllocFromHeap add r4, r0, #0 bne _021E7C22 - bl ErrorHandling + bl GF_AssertFail _021E7C22: mov r0, #0 strb r0, [r4] @@ -35679,7 +35679,7 @@ MOD16_021E7C38: ; 0x021E7C38 bl AllocFromHeap add r4, r0, #0 bne _021E7C58 - bl ErrorHandling + bl GF_AssertFail _021E7C58: add r0, r4, #0 mov r1, #0 @@ -35712,7 +35712,7 @@ MOD16_021E7C90: ; 0x021E7C90 push {r4, lr} add r4, r0, #0 bne _021E7C9A - bl ErrorHandling + bl GF_AssertFail _021E7C9A: add r0, r4, #0 bl FreeToHeap @@ -35725,7 +35725,7 @@ MOD16_021E7CA4: ; 0x021E7CA4 push {r4, lr} add r4, r0, #0 bne _021E7CAE - bl ErrorHandling + bl GF_AssertFail _021E7CAE: add r0, r4, #0 bl FreeToHeap @@ -35738,7 +35738,7 @@ MOD16_021E7CB8: ; 0x021E7CB8 push {r4, lr} add r4, r0, #0 bne _021E7CC2 - bl ErrorHandling + bl GF_AssertFail _021E7CC2: add r0, r4, #0 bl MOD16_021DAC7C @@ -37007,7 +37007,7 @@ MOD16_021E868C: ; 0x021E868C ldr r4, [r1] cmp r0, #0 bne _021E86A0 - bl ErrorHandling + bl GF_AssertFail _021E86A0: mov r0, #0x51 lsl r0, r0, #2 @@ -37367,7 +37367,7 @@ _021E8934: bl FUN_0201C2C8 cmp r0, #0 bne _021E895C - bl ErrorHandling + bl GF_AssertFail _021E895C: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -37714,7 +37714,7 @@ MOD16_021E8BB8: ; 0x021E8BB8 cmp r4, #8 blt _021E8BCC _021E8BC8: - bl ErrorHandling + bl GF_AssertFail _021E8BCC: sub r0, r4, #2 lsl r1, r0, #2 @@ -37806,7 +37806,7 @@ MOD16_021E8C70: ; 0x021E8C70 bl AllocFromHeap add r4, r0, #0 bne _021E8C82 - bl ErrorHandling + bl GF_AssertFail _021E8C82: add r0, r4, #0 mov r1, #0 @@ -37865,7 +37865,7 @@ MOD16_021E8CF4: ; 0x021E8CF4 bl AllocFromHeap add r4, r0, #0 bne _021E8D06 - bl ErrorHandling + bl GF_AssertFail _021E8D06: mov r0, #0 strb r0, [r4] @@ -37893,7 +37893,7 @@ MOD16_021E8D1C: ; 0x021E8D1C bl AllocFromHeap add r4, r0, #0 bne _021E8D3C - bl ErrorHandling + bl GF_AssertFail _021E8D3C: add r0, r4, #0 mov r1, #0 @@ -37957,7 +37957,7 @@ MOD16_021E8DBC: ; 0x021E8DBC push {r4, lr} add r4, r0, #0 bne _021E8DC6 - bl ErrorHandling + bl GF_AssertFail _021E8DC6: add r0, r4, #0 bl FreeToHeap @@ -37970,7 +37970,7 @@ MOD16_021E8DD0: ; 0x021E8DD0 push {r4, lr} add r4, r0, #0 bne _021E8DDA - bl ErrorHandling + bl GF_AssertFail _021E8DDA: add r0, r4, #0 bl FreeToHeap @@ -37983,7 +37983,7 @@ MOD16_021E8DE4: ; 0x021E8DE4 push {r4, lr} add r4, r0, #0 bne _021E8DEE - bl ErrorHandling + bl GF_AssertFail _021E8DEE: add r0, r4, #0 bl MOD16_021DAC7C @@ -38147,7 +38147,7 @@ _021E8F0E: mov r0, #1 pop {r4, r5, r6, r7, pc} _021E8F1A: - bl ErrorHandling + bl GF_AssertFail _021E8F1E: mov r0, #0 add sp, #0x14 @@ -38276,7 +38276,7 @@ _021E9002: mov r0, #1 pop {r4, r5, pc} _021E9008: - bl ErrorHandling + bl GF_AssertFail _021E900C: mov r0, #0 add sp, #0x14 @@ -38525,7 +38525,7 @@ _021E91D0: str r0, [sp, #4] b _021E91DA _021E91D6: - bl ErrorHandling + bl GF_AssertFail _021E91DA: ldr r0, [sp] cmp r0, #4 @@ -38612,7 +38612,7 @@ _021E927E: bl MOD16_021EA25C b _021E928E _021E928A: - bl ErrorHandling + bl GF_AssertFail _021E928E: ldr r0, [sp, #4] add sp, #8 @@ -39050,7 +39050,7 @@ MOD16_021E95D0: ; 0x021E95D0 bl AllocFromHeap add r4, r0, #0 bne _021E95E2 - bl ErrorHandling + bl GF_AssertFail _021E95E2: add r0, r4, #0 mov r1, #0 @@ -39079,7 +39079,7 @@ MOD16_021E960C: ; 0x021E960C bl AllocFromHeap add r4, r0, #0 bne _021E961E - bl ErrorHandling + bl GF_AssertFail _021E961E: mov r0, #0 strb r0, [r4] @@ -39104,7 +39104,7 @@ MOD16_021E9638: ; 0x021E9638 push {r4, lr} add r4, r0, #0 bne _021E9642 - bl ErrorHandling + bl GF_AssertFail _021E9642: add r0, r4, #0 bl FreeToHeap @@ -39117,7 +39117,7 @@ MOD16_021E964C: ; 0x021E964C push {r4, lr} add r4, r0, #0 bne _021E9656 - bl ErrorHandling + bl GF_AssertFail _021E9656: add r0, r4, #0 bl FreeToHeap @@ -39593,7 +39593,7 @@ _021E99AE: str r0, [r4, #0x1c] pop {r4, pc} _021E99BA: - bl ErrorHandling + bl GF_AssertFail _021E99BE: pop {r4, pc} thumb_func_end MOD16_021E9940 @@ -40777,7 +40777,7 @@ MOD16_021EA274: ; 0x021EA274 bl AllocFromHeap add r4, r0, #0 bne _021EA286 - bl ErrorHandling + bl GF_AssertFail _021EA286: add r2, r4, #0 mov r1, #0x10 @@ -40813,7 +40813,7 @@ MOD16_021EA2BC: ; 0x021EA2BC bl AllocFromHeap add r4, r0, #0 bne _021EA2CE - bl ErrorHandling + bl GF_AssertFail _021EA2CE: add r2, r4, #0 mov r1, #0x14 @@ -40835,7 +40835,7 @@ MOD16_021EA2E8: ; 0x021EA2E8 push {r4, lr} add r4, r0, #0 bne _021EA2F2 - bl ErrorHandling + bl GF_AssertFail _021EA2F2: add r0, r4, #0 bl FreeToHeap @@ -40848,7 +40848,7 @@ MOD16_021EA2FC: ; 0x021EA2FC push {r4, lr} add r4, r0, #0 bne _021EA306 - bl ErrorHandling + bl GF_AssertFail _021EA306: add r0, r4, #0 bl FreeToHeap @@ -40875,7 +40875,7 @@ MOD16_021EA314: ; 0x021EA314 bl AllocFromHeap add r4, r0, #0 bne _021EA332 - bl ErrorHandling + bl GF_AssertFail _021EA332: add r2, r4, #0 mov r1, #0x18 @@ -42482,7 +42482,7 @@ MOD16_021EAF18: ; 0x021EAF18 bl AllocFromHeap add r4, r0, #0 bne _021EAF2A - bl ErrorHandling + bl GF_AssertFail _021EAF2A: add r2, r4, #0 mov r1, #0x10 @@ -42515,7 +42515,7 @@ MOD16_021EAF58: ; 0x021EAF58 bl AllocFromHeap add r4, r0, #0 bne _021EAF6A - bl ErrorHandling + bl GF_AssertFail _021EAF6A: mov r0, #0 strb r0, [r4] @@ -42540,7 +42540,7 @@ MOD16_021EAF84: ; 0x021EAF84 push {r4, lr} add r4, r0, #0 bne _021EAF8E - bl ErrorHandling + bl GF_AssertFail _021EAF8E: add r0, r4, #0 bl FreeToHeap @@ -42553,7 +42553,7 @@ MOD16_021EAF98: ; 0x021EAF98 push {r4, lr} add r4, r0, #0 bne _021EAFA2 - bl ErrorHandling + bl GF_AssertFail _021EAFA2: add r0, r4, #0 bl FreeToHeap @@ -45063,7 +45063,7 @@ MOD16_021EC274: ; 0x021EC274 bl AllocFromHeap add r4, r0, #0 bne _021EC286 - bl ErrorHandling + bl GF_AssertFail _021EC286: mov r0, #0 strb r0, [r4] @@ -45101,7 +45101,7 @@ MOD16_021EC2C0: ; 0x021EC2C0 bl AllocFromHeap add r4, r0, #0 bne _021EC2D2 - bl ErrorHandling + bl GF_AssertFail _021EC2D2: mov r0, #0 strb r0, [r4] @@ -45126,7 +45126,7 @@ MOD16_021EC2EC: ; 0x021EC2EC push {r4, lr} add r4, r0, #0 bne _021EC2F6 - bl ErrorHandling + bl GF_AssertFail _021EC2F6: add r0, r4, #0 bl FreeToHeap @@ -45139,7 +45139,7 @@ MOD16_021EC300: ; 0x021EC300 push {r4, lr} add r4, r0, #0 bne _021EC30A - bl ErrorHandling + bl GF_AssertFail _021EC30A: add r0, r4, #0 bl FreeToHeap @@ -45168,7 +45168,7 @@ MOD16_021EC31C: ; 0x021EC31C bl AllocFromHeap add r4, r0, #0 bne _021EC330 - bl ErrorHandling + bl GF_AssertFail _021EC330: mov r0, #0 strb r0, [r4] @@ -46227,7 +46227,7 @@ MOD16_021ECB54: ; 0x021ECB54 bl AllocFromHeap add r4, r0, #0 bne _021ECB66 - bl ErrorHandling + bl GF_AssertFail _021ECB66: add r2, r4, #0 mov r1, #0x10 @@ -46262,7 +46262,7 @@ MOD16_021ECB98: ; 0x021ECB98 bl AllocFromHeap add r4, r0, #0 bne _021ECBAA - bl ErrorHandling + bl GF_AssertFail _021ECBAA: mov r0, #0 strb r0, [r4] @@ -46290,7 +46290,7 @@ MOD16_021ECBC0: ; 0x021ECBC0 bl AllocFromHeap add r4, r0, #0 bne _021ECBE0 - bl ErrorHandling + bl GF_AssertFail _021ECBE0: add r0, r4, #0 mov r1, #0 @@ -46316,7 +46316,7 @@ MOD16_021ECC08: ; 0x021ECC08 push {r4, lr} add r4, r0, #0 bne _021ECC12 - bl ErrorHandling + bl GF_AssertFail _021ECC12: add r0, r4, #0 bl FreeToHeap @@ -46329,7 +46329,7 @@ MOD16_021ECC1C: ; 0x021ECC1C push {r4, lr} add r4, r0, #0 bne _021ECC26 - bl ErrorHandling + bl GF_AssertFail _021ECC26: add r0, r4, #0 bl FreeToHeap @@ -46342,7 +46342,7 @@ MOD16_021ECC30: ; 0x021ECC30 push {r4, lr} add r4, r0, #0 bne _021ECC3A - bl ErrorHandling + bl GF_AssertFail _021ECC3A: add r0, r4, #0 bl MOD16_021DAC7C @@ -47231,7 +47231,7 @@ MOD16_021ED2B4: ; 0x021ED2B4 ldr r4, [r1] cmp r0, #0 bne _021ED2C8 - bl ErrorHandling + bl GF_AssertFail _021ED2C8: mov r0, #0x51 lsl r0, r0, #2 @@ -47425,7 +47425,7 @@ _021ED430: bl FUN_0201C2C8 cmp r0, #0 bne _021ED458 - bl ErrorHandling + bl GF_AssertFail _021ED458: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -47642,7 +47642,7 @@ MOD16_021ED5C8: ; 0x021ED5C8 bl AllocFromHeap add r4, r0, #0 bne _021ED5DA - bl ErrorHandling + bl GF_AssertFail _021ED5DA: mov r0, #0 strb r0, [r4] @@ -47674,7 +47674,7 @@ MOD16_021ED604: ; 0x021ED604 bl AllocFromHeap add r4, r0, #0 bne _021ED618 - bl ErrorHandling + bl GF_AssertFail _021ED618: add r0, r4, #0 mov r1, #0 @@ -47702,7 +47702,7 @@ MOD16_021ED648: ; 0x021ED648 push {r4, lr} add r4, r0, #0 bne _021ED652 - bl ErrorHandling + bl GF_AssertFail _021ED652: add r0, r4, #0 bl FreeToHeap @@ -47715,7 +47715,7 @@ MOD16_021ED65C: ; 0x021ED65C push {r4, lr} add r4, r0, #0 bne _021ED666 - bl ErrorHandling + bl GF_AssertFail _021ED666: add r0, r4, #0 bl MOD16_021EE0F0 @@ -47743,7 +47743,7 @@ MOD16_021ED680: ; 0x021ED680 bl AllocFromHeap add r4, r0, #0 bne _021ED696 - bl ErrorHandling + bl GF_AssertFail _021ED696: mov r0, #0 strb r0, [r4] @@ -48398,7 +48398,7 @@ MOD16_021EDAE4: ; 0x021EDAE4 bl FUN_02009D68 cmp r0, #0 bne _021EDB82 - bl ErrorHandling + bl GF_AssertFail _021EDB82: add r0, r4, #0 mov r1, #0x60 @@ -49837,7 +49837,7 @@ MOD16_021EE6CC: ; 0x021EE6CC bl AllocFromHeap add r4, r0, #0 bne _021EE6DE - bl ErrorHandling + bl GF_AssertFail _021EE6DE: add r2, r4, #0 mov r1, #0x10 @@ -49873,7 +49873,7 @@ MOD16_021EE714: ; 0x021EE714 bl AllocFromHeap add r4, r0, #0 bne _021EE726 - bl ErrorHandling + bl GF_AssertFail _021EE726: mov r0, #0 strb r0, [r4] @@ -49898,7 +49898,7 @@ MOD16_021EE740: ; 0x021EE740 push {r4, lr} add r4, r0, #0 bne _021EE74A - bl ErrorHandling + bl GF_AssertFail _021EE74A: add r0, r4, #0 bl FreeToHeap @@ -49911,7 +49911,7 @@ MOD16_021EE754: ; 0x021EE754 push {r4, lr} add r4, r0, #0 bne _021EE75E - bl ErrorHandling + bl GF_AssertFail _021EE75E: add r0, r4, #0 bl FreeToHeap @@ -50697,7 +50697,7 @@ MOD16_021EED04: ; 0x021EED04 ldr r4, [r1] cmp r0, #0 bne _021EED18 - bl ErrorHandling + bl GF_AssertFail _021EED18: mov r0, #0x51 lsl r0, r0, #2 @@ -50853,7 +50853,7 @@ _021EEE2C: bl FUN_0201C2C8 cmp r0, #0 bne _021EEE54 - bl ErrorHandling + bl GF_AssertFail _021EEE54: add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -51809,7 +51809,7 @@ MOD16_021EF598: ; 0x021EF598 str r0, [r5] cmp r0, #0 bne _021EF5DA - bl ErrorHandling + bl GF_AssertFail _021EF5DA: add sp, #0x44 pop {r3, r4, r5, r6, pc} @@ -51856,7 +51856,7 @@ MOD16_021EF5EC: ; 0x021EF5EC str r0, [r5] cmp r0, #0 bne _021EF62E - bl ErrorHandling + bl GF_AssertFail _021EF62E: ldr r0, [r5] mov r1, #0x11 @@ -52280,7 +52280,7 @@ _021EF958: bl FUN_020056AC cmp r0, #0 bne _021EF976 - bl ErrorHandling + bl GF_AssertFail _021EF976: mov r0, #0x6e lsl r0, r0, #2 @@ -54602,7 +54602,7 @@ _021F0AEC: str r0, [r4, r1] pop {r3, r4, r5, pc} _021F0B0C: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} nop _021F0B14: .word 0x000003CF @@ -58151,7 +58151,7 @@ _021F266A: str r0, [r1] pop {r4, r5, r6, pc} _021F2688: - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} nop _021F2690: .word 0x000003CF @@ -58355,11 +58355,11 @@ MOD16_021F2808: ; 0x021F2808 add r6, r0, #0 cmp r4, #1 bne _021F282C - bl ErrorHandling + bl GF_AssertFail _021F282C: cmp r4, #0 bne _021F2834 - bl ErrorHandling + bl GF_AssertFail _021F2834: lsl r1, r4, #0x18 add r0, r5, #0 @@ -58394,11 +58394,11 @@ MOD16_021F2858: ; 0x021F2858 add r6, r0, #0 cmp r4, #1 bne _021F287C - bl ErrorHandling + bl GF_AssertFail _021F287C: cmp r4, #0 bne _021F2884 - bl ErrorHandling + bl GF_AssertFail _021F2884: lsl r1, r4, #0x18 add r0, r5, #0 @@ -58962,7 +58962,7 @@ MOD16_021F2C8C: ; 0x021F2C8C ldrb r0, [r4, r0] cmp r0, #8 bls _021F2CBC - bl ErrorHandling + bl GF_AssertFail _021F2CBC: pop {r3, r4, r5, pc} nop diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 234719b29..74c324578 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -46,7 +46,7 @@ MOD17_021D7520: ; 0x021D7520 bl MOD17_021D76E0 add r4, r0, #0 bne _021D7532 - bl ErrorHandling + bl GF_AssertFail _021D7532: ldr r0, [r5, #0x18] str r0, [r4] @@ -1357,7 +1357,7 @@ _021D7E8E: ldr r0, [r5, #8] cmp r1, r0 blt _021D7E9A - bl ErrorHandling + bl GF_AssertFail _021D7E9A: ldr r0, [r4, #4] cmp r0, #0 @@ -1412,7 +1412,7 @@ _021D7EEE: ldr r0, [r5, #0x14] cmp r1, r0 blt _021D7EFA - bl ErrorHandling + bl GF_AssertFail _021D7EFA: ldr r0, [r4, #4] cmp r0, #0 @@ -1756,7 +1756,7 @@ _021D81AC: str r0, [sp, #4] cmp r0, #0 bne _021D81C6 - bl ErrorHandling + bl GF_AssertFail _021D81C6: ldr r1, [sp, #4] add r0, r7, #0 @@ -1857,7 +1857,7 @@ _021D822A: ldr r0, [r0, #4] cmp r0, #0 bne _021D8298 - bl ErrorHandling + bl GF_AssertFail _021D8298: ldr r1, [r7] ldr r0, [r5, #8] @@ -2506,7 +2506,7 @@ _021D8780: bl FUN_0201CD04 cmp r0, #1 beq _021D87F0 - bl ErrorHandling + bl GF_AssertFail _021D87F0: add r0, r6, #0 bl OverlayManager_FreeData @@ -3114,7 +3114,7 @@ MOD17_021D8C9C: ; 0x021D8C9C bl FUN_0201CD04 cmp r0, #1 beq _021D8D30 - bl ErrorHandling + bl GF_AssertFail _021D8D30: add r0, r5, #0 bl OverlayManager_FreeData @@ -3905,7 +3905,7 @@ _021D9312: bl MOD17_021DA870 cmp r0, #0 bne _021D932A - bl ErrorHandling + bl GF_AssertFail _021D932A: ldr r0, [r4, #0xc] add sp, #4 @@ -4201,7 +4201,7 @@ _021D955E: bl MOD17_021DA870 cmp r0, #0 bne _021D9576 - bl ErrorHandling + bl GF_AssertFail _021D9576: ldr r0, [r4, #0xc] add sp, #4 @@ -4813,7 +4813,7 @@ MOD17_021D9A68: ; 0x021D9A68 add r4, r1, #0 cmp r0, #0 beq _021D9A7E - bl ErrorHandling + bl GF_AssertFail _021D9A7E: ldr r0, _021D9B08 ; =0x000006A8 mov r1, #0xf @@ -5061,7 +5061,7 @@ _021D9C2E: mov r4, #0x14 b _021D9C36 _021D9C32: - bl ErrorHandling + bl GF_AssertFail _021D9C36: add r0, r4, #0 pop {r4, pc} @@ -5167,7 +5167,7 @@ MOD17_021D9CE0: ; 0x021D9CE0 add r6, r2, #0 cmp r4, #0 bne _021D9CF0 - bl ErrorHandling + bl GF_AssertFail _021D9CF0: add r0, r5, #0 add r0, #0xa8 @@ -5252,7 +5252,7 @@ MOD17_021D9D70: ; 0x021D9D70 add r4, r0, #0 cmp r5, #0x15 blo _021D9D7E - bl ErrorHandling + bl GF_AssertFail _021D9D7E: lsl r0, r5, #3 ldr r0, [r4, r0] @@ -5266,7 +5266,7 @@ MOD17_021D9D84: ; 0x021D9D84 add r4, r0, #0 cmp r5, #0x15 blo _021D9D92 - bl ErrorHandling + bl GF_AssertFail _021D9D92: lsl r0, r5, #3 add r0, r4, r0 @@ -5762,7 +5762,7 @@ MOD17_021DA0E8: ; 0x021DA0E8 sub r0, r0, #1 str r0, [r4, #0x24] bpl _021DA0FE - bl ErrorHandling + bl GF_AssertFail _021DA0FE: pop {r4, pc} thumb_func_end MOD17_021DA0E8 @@ -6674,7 +6674,7 @@ _021DA73E: str r1, [sp, #0x44] b _021DA750 _021DA74C: - bl ErrorHandling + bl GF_AssertFail _021DA750: ldr r0, [sp, #0xc] ldr r1, [r5, #0x48] @@ -6687,12 +6687,12 @@ _021DA750: ldr r1, [r2, r1] str r1, [sp, #0x34] bne _021DA76A - bl ErrorHandling + bl GF_AssertFail _021DA76A: ldr r0, [sp, #0x34] cmp r0, #0 bne _021DA774 - bl ErrorHandling + bl GF_AssertFail _021DA774: ldr r2, [r5, #4] add r0, r6, #0 @@ -7122,7 +7122,7 @@ MOD17_021DAA6C: ; 0x021DAA6C push {r4, lr} add r4, r0, #0 bne _021DAA76 - bl ErrorHandling + bl GF_AssertFail _021DAA76: ldr r0, [r4] pop {r4, pc} @@ -7137,7 +7137,7 @@ MOD17_021DAA7C: ; 0x021DAA7C add r4, r1, #0 cmp r5, #0 bne _021DAA8C - bl ErrorHandling + bl GF_AssertFail _021DAA8C: mov r0, #0xc mul r0, r4 @@ -7499,7 +7499,7 @@ MOD17_021DACA4: ; 0x021DACA4 str r0, [r4, #0x28] cmp r0, #0 bne _021DAD04 - bl ErrorHandling + bl GF_AssertFail _021DAD04: ldr r3, [r4, #0x2c] mov r2, #0xc @@ -7689,7 +7689,7 @@ _021DAE40: add sp, #4 pop {r3, r4, r5, r6, pc} _021DAE74: - bl ErrorHandling + bl GF_AssertFail _021DAE78: ldr r0, [r4, #0x28] ldr r1, [r4, #0x2c] @@ -7932,7 +7932,7 @@ MOD17_021DAFF4: ; 0x021DAFF4 add r4, r0, #0 cmp r5, #0x64 blo _021DB002 - bl ErrorHandling + bl GF_AssertFail _021DB002: lsl r0, r5, #2 ldr r0, [r4, r0] @@ -8180,7 +8180,7 @@ MOD17_021DB1D0: ; 0x021DB1D0 ldr r0, [r0, #4] cmp r0, #1 beq _021DB1E6 - bl ErrorHandling + bl GF_AssertFail _021DB1E6: ldr r0, [r4, #0x10] mov r2, #0x1c @@ -8536,7 +8536,7 @@ MOD17_021DB4AC: ; 0x021DB4AC ldr r0, [r0, #4] cmp r0, #1 beq _021DB4C0 - bl ErrorHandling + bl GF_AssertFail _021DB4C0: ldr r0, [r4, #0x10] ldr r5, [r0] @@ -9277,7 +9277,7 @@ MOD17_021DB9F4: ; 0x021DB9F4 str r0, [r5] cmp r0, #0 bne _021DBA0E - bl ErrorHandling + bl GF_AssertFail _021DBA0E: ldr r0, [r5] mov r1, #0 @@ -9309,12 +9309,12 @@ MOD17_021DBA30: ; 0x021DBA30 add r7, r2, #0 cmp r0, #0 bne _021DBA42 - bl ErrorHandling + bl GF_AssertFail _021DBA42: ldr r0, [r5, #4] cmp r0, #0 bne _021DBA4C - bl ErrorHandling + bl GF_AssertFail _021DBA4C: ldr r2, [r5, #4] mov r4, #0 @@ -9332,7 +9332,7 @@ _021DBA56: _021DBA64: cmp r2, r4 bgt _021DBA6C - bl ErrorHandling + bl GF_AssertFail _021DBA6C: ldr r0, [r5] lsl r1, r4, #4 @@ -10332,18 +10332,18 @@ MOD17_021DC1A0: ; 0x021DC1A0 add r4, r1, #0 cmp r5, #0 bne _021DC1AE - bl ErrorHandling + bl GF_AssertFail _021DC1AE: cmp r4, #0 bne _021DC1B6 - bl ErrorHandling + bl GF_AssertFail _021DC1B6: ldr r0, [r4] bl FUN_0201FE94 str r0, [r5] cmp r0, #0 bne _021DC1C6 - bl ErrorHandling + bl GF_AssertFail _021DC1C6: ldr r0, [r4, #0xc] str r0, [r5, #4] @@ -10496,7 +10496,7 @@ MOD17_021DC2C0: ; 0x021DC2C0 add r7, r3, #0 cmp r5, #0 bne _021DC2D2 - bl ErrorHandling + bl GF_AssertFail _021DC2D2: str r7, [r5, #4] str r6, [r5, #8] @@ -10756,7 +10756,7 @@ MOD17_021DC4CC: ; 0x021DC4CC ldr r0, [r4, #0x68] cmp r0, #0 bne _021DC4DA - bl ErrorHandling + bl GF_AssertFail _021DC4DA: ldr r0, [r4, #0x68] bl FUN_02022144 @@ -10819,7 +10819,7 @@ MOD17_021DC538: ; 0x021DC538 add r7, r3, #0 cmp r5, #0 bne _021DC54A - bl ErrorHandling + bl GF_AssertFail _021DC54A: cmp r4, #4 bge _021DC55E @@ -10921,7 +10921,7 @@ _021DC5E6: bl MOD17_021DC264 pop {r4, r5, r6, pc} _021DC618: - bl ErrorHandling + bl GF_AssertFail _021DC61C: pop {r4, r5, r6, pc} nop @@ -11061,7 +11061,7 @@ MOD17_021DC698: ; 0x021DC698 bl FUN_0201D568 cmp r0, #0 bne _021DC736 - bl ErrorHandling + bl GF_AssertFail _021DC736: ldr r0, [r5, #0x18] add r1, sp, #0x80 @@ -11257,7 +11257,7 @@ MOD17_021DC880: ; 0x021DC880 bl NewMsgDataFromNarc add r6, r0, #0 bne _021DC898 - bl ErrorHandling + bl GF_AssertFail _021DC898: add r0, r6, #0 add r1, r4, #0 @@ -11622,7 +11622,7 @@ MOD17_021DCB48: ; 0x021DCB48 add r7, r3, #0 tst r0, r1 bne _021DCB64 - bl ErrorHandling + bl GF_AssertFail _021DCB64: mov r0, #0 str r0, [sp] @@ -11653,7 +11653,7 @@ MOD17_021DCB80: ; 0x021DCB80 add r7, r3, #0 tst r0, r1 bne _021DCB9C - bl ErrorHandling + bl GF_AssertFail _021DCB9C: mov r0, #0 str r0, [sp] @@ -11936,7 +11936,7 @@ MOD17_021DCD80: ; 0x021DCD80 bl NewMsgDataFromNarc add r5, r0, #0 bne _021DCD98 - bl ErrorHandling + bl GF_AssertFail _021DCD98: add r0, r5, #0 add r1, r4, #0 @@ -11978,7 +11978,7 @@ MOD17_021DCDD4: ; 0x021DCDD4 str r3, [sp, #0x10] cmp r0, #0 beq _021DCDEC - bl ErrorHandling + bl GF_AssertFail _021DCDEC: mov r0, #0 add r1, r5, #0 @@ -11987,7 +11987,7 @@ _021DCDEC: bl NewMsgDataFromNarc add r5, r0, #0 bne _021DCE00 - bl ErrorHandling + bl GF_AssertFail _021DCE00: ldr r1, [sp, #0x10] add r0, r5, #0 @@ -12522,7 +12522,7 @@ _021DD21A: str r0, [sp, #4] cmp r0, #0xa ble _021DD22C - bl ErrorHandling + bl GF_AssertFail _021DD22C: ldr r0, [r5, #0x10] ldr r1, [sp, #4] @@ -14344,7 +14344,7 @@ MOD17_021DDFDC: ; 0x021DDFDC str r0, [sp, #0x10] cmp r0, #0 bne _021DDFF8 - bl ErrorHandling + bl GF_AssertFail _021DDFF8: mov r0, #0xd bl ScrStrBufs_new @@ -14522,7 +14522,7 @@ MOD17_021DE0F4: ; 0x021DE0F4 str r0, [sp, #0x10] cmp r0, #0 bne _021DE1A0 - bl ErrorHandling + bl GF_AssertFail _021DE1A0: ldr r0, [sp, #0x10] mov r1, #0x2b diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index d90cf62c9..15b805549 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -2808,7 +2808,7 @@ _0223AD00: add r5, #0xc cmp r1, #8 blt _0223ACB6 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -3116,7 +3116,7 @@ _0223AF18: cmp r4, #0x55 blo _0223AF04 _0223AF20: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, r5, r6, pc} .align 2, 0 @@ -6327,7 +6327,7 @@ MOD18_0223C7D4: ; 0x0223C7D4 ldr r0, [r1, r0] cmp r0, #0 beq _0223C7E6 - bl ErrorHandling + bl GF_AssertFail _0223C7E6: ldr r0, _0223C834 ; =0x02251380 ldr r1, [r0] @@ -6335,7 +6335,7 @@ _0223C7E6: ldr r0, [r1, r0] cmp r0, #0 beq _0223C7F6 - bl ErrorHandling + bl GF_AssertFail _0223C7F6: mov r1, #0x5e mov r0, #0xb @@ -7102,7 +7102,7 @@ MOD18_0223CD74: ; 0x0223CD74 add r4, r0, #0 cmp r4, #0x64 blt _0223CD9E - bl ErrorHandling + bl GF_AssertFail _0223CD9E: mov r5, #0x63 cmp r4, #0x63 @@ -7552,7 +7552,7 @@ _0223D106: mvn r0, r0 cmp r1, r0 bne _0223D112 - bl ErrorHandling + bl GF_AssertFail _0223D112: cmp r4, #0x63 bge _0223D132 @@ -7602,7 +7602,7 @@ MOD18_0223D14C: ; 0x0223D14C bl MOD18_0223CE14 add r5, r0, #0 bne _0223D178 - bl ErrorHandling + bl GF_AssertFail _0223D178: add r0, r4, #0 add r1, r5, #0 @@ -7830,7 +7830,7 @@ MOD18_0223D30C: ; 0x0223D30C ldr r0, [r1, r0] cmp r0, #0 beq _0223D31E - bl ErrorHandling + bl GF_AssertFail _0223D31E: ldr r0, _0223D364 ; =0x02251384 ldr r1, [r0] @@ -7839,7 +7839,7 @@ _0223D31E: ldr r0, [r1, r0] cmp r0, #0 beq _0223D330 - bl ErrorHandling + bl GF_AssertFail _0223D330: mov r0, #0xb mov r1, #4 @@ -10255,7 +10255,7 @@ _0223E5DE: add r2, #8 cmp r6, #0x14 blt _0223E5BC - bl ErrorHandling + bl GF_AssertFail _0223E5EA: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -10464,7 +10464,7 @@ _0223E746: ldr r0, [r1, r0] cmp r0, #0x64 ble _0223E764 - bl ErrorHandling + bl GF_AssertFail _0223E764: mov r0, #0 pop {r3, r4, r5, pc} @@ -12184,7 +12184,7 @@ MOD18_0223F428: ; 0x0223F428 bne _0223F49E cmp r4, #0x60 beq _0223F456 - bl ErrorHandling + bl GF_AssertFail _0223F456: mov r0, #0 add r4, r0, #0 @@ -12402,7 +12402,7 @@ MOD18_0223F5CC: ; 0x0223F5CC lsr r0, r0, #0x1c cmp r0, #8 blo _0223F5DE - bl ErrorHandling + bl GF_AssertFail _0223F5DE: ldrb r3, [r4, #7] lsl r0, r3, #0x19 @@ -12543,7 +12543,7 @@ _0223F714: add r1, r1, #6 cmp r3, #0xc0 blt _0223F706 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 @@ -14057,7 +14057,7 @@ MOD18_02240210: ; 0x02240210 ldr r0, [r1, r0] cmp r0, #0 beq _0224023E - bl ErrorHandling + bl GF_AssertFail _0224023E: ldr r0, _02240268 ; =0x022513A0 mov r2, #0x64 @@ -23521,7 +23521,7 @@ _02244BEC: _02244BFA: cmp r4, #2 blt _02244C02 - bl ErrorHandling + bl GF_AssertFail _02244C02: cmp r4, #0 bne _02244C14 @@ -23720,7 +23720,7 @@ MOD18_02244D40: ; 0x02244D40 add r5, r0, #0 cmp r4, #8 blt _02244D4E - bl ErrorHandling + bl GF_AssertFail _02244D4E: mov r0, #0xc add r5, #0x18 @@ -23978,7 +23978,7 @@ _02244EE0: bl FUN_0202595C cmp r0, #0x94 beq _02244EEC - bl ErrorHandling + bl GF_AssertFail _02244EEC: ldr r0, _02245000 ; =0x022513EC ldr r2, _02245004 ; =0x000013E8 @@ -24736,7 +24736,7 @@ MOD18_022454BC: ; 0x022454BC bl FUN_02031190 cmp r0, #0 beq _022454D4 - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} _022454D4: ldrb r0, [r4, #1] @@ -25463,7 +25463,7 @@ MOD18_02245A50: ; 0x02245A50 ldr r0, [r0] cmp r0, #2 beq _02245A9A - bl ErrorHandling + bl GF_AssertFail _02245A9A: mov r0, #2 str r0, [r4, #0x14] @@ -26171,7 +26171,7 @@ _02246020: ldrb r5, [r6] cmp r5, #0x11 blt _02246034 - bl ErrorHandling + bl GF_AssertFail _02246034: ldr r0, _022460EC ; =0x022513EC mov r2, #0x96 @@ -29117,7 +29117,7 @@ _02247774: cmp r4, #0 bne _022477A6 _022477A2: - bl ErrorHandling + bl GF_AssertFail _022477A6: add r0, r7, #0 bl FUN_02059BF4 @@ -31922,7 +31922,7 @@ MOD18_02248DF8: ; 0x02248DF8 add r6, r2, #0 cmp r0, #0 beq _02248E0C - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _02248E0C: mov r0, #0x21 @@ -32001,7 +32001,7 @@ MOD18_02248E84: ; 0x02248E84 beq _02248EAE cmp r5, #2 beq _02248EA4 - bl ErrorHandling + bl GF_AssertFail _02248EA4: ldr r0, _02248EB0 ; =0x022513F0 ldrb r1, [r4, #1] @@ -32029,13 +32029,13 @@ MOD18_02248EB4: ; 0x02248EB4 beq _02248EEA cmp r5, #2 beq _02248ED4 - bl ErrorHandling + bl GF_AssertFail _02248ED4: ldr r0, _02248EEC ; =0x022513F0 ldr r0, [r0, #4] cmp r0, #0 bne _02248EE0 - bl ErrorHandling + bl GF_AssertFail _02248EE0: ldr r0, _02248EEC ; =0x022513F0 ldrb r1, [r4, #1] @@ -32078,7 +32078,7 @@ MOD18_02248F00: ; 0x02248F00 ldr r0, [r0] cmp r0, #0 bne _02248F1E - bl ErrorHandling + bl GF_AssertFail _02248F1E: add r0, r4, #0 add r0, #0x34 @@ -32703,7 +32703,7 @@ MOD18_022493A4: ; 0x022493A4 ldrb r1, [r1, #5] cmp r1, r0 beq _022493B4 - bl ErrorHandling + bl GF_AssertFail _022493B4: ldr r0, _022493C4 ; =0x022513F8 ldr r1, [r0] @@ -32796,7 +32796,7 @@ MOD18_02249450: ; 0x02249450 add r4, r1, #0 cmp r5, #0xb blt _0224945E - bl ErrorHandling + bl GF_AssertFail _0224945E: cmp r5, #6 blt _02249464 @@ -32823,7 +32823,7 @@ MOD18_02249480: ; 0x02249480 add r4, r0, #0 cmp r4, #0x3c blt _0224948C - bl ErrorHandling + bl GF_AssertFail _0224948C: ldr r0, _0224949C ; =0x022513F8 add r1, r4, #0 @@ -34060,7 +34060,7 @@ MOD18_02249E98: ; 0x02249E98 ldrb r1, [r1, #5] cmp r1, r0 beq _02249EA8 - bl ErrorHandling + bl GF_AssertFail _02249EA8: ldr r0, _02249EB8 ; =0x022513F8 ldr r1, [r0] @@ -39599,7 +39599,7 @@ _0224CBF0: add r5, r5, #6 cmp r3, #0x14 blt _0224CBD6 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -41024,11 +41024,11 @@ MOD18_0224D79C: ; 0x0224D79C cmp r5, #0x20 ldr r4, [r0, r1] bge _0224D7B4 - bl ErrorHandling + bl GF_AssertFail _0224D7B4: cmp r5, #0x2d ble _0224D7BC - bl ErrorHandling + bl GF_AssertFail _0224D7BC: bl FUN_0204F7E4 bl MOD18_0223D658 @@ -41488,7 +41488,7 @@ MOD18_0224DB80: ; 0x0224DB80 str r0, [r5, #0x24] cmp r0, #0 bne _0224DBAC - bl ErrorHandling + bl GF_AssertFail _0224DBAC: pop {r4, r5, r6, pc} .align 2, 0 @@ -43100,7 +43100,7 @@ MOD18_0224E764: ; 0x0224E764 add r7, r2, #0 cmp r5, #0 bne _0224E776 - bl ErrorHandling + bl GF_AssertFail _0224E776: add r4, r7, #0 add r4, #0x3c @@ -43178,7 +43178,7 @@ MOD18_0224E7F4: ; 0x0224E7F4 ldr r0, [r0, #0x5c] cmp r0, #0 bne _0224E80A - bl ErrorHandling + bl GF_AssertFail _0224E80A: add r2, r5, r4 add r2, #0x60 @@ -43592,7 +43592,7 @@ _0224EB6C: str r0, [r4, #4] b _0224EDBA _0224EB82: - bl ErrorHandling + bl GF_AssertFail b _0224EDBA _0224EB88: ldr r0, _0224EDC4 ; =0x000004DC @@ -44132,14 +44132,14 @@ _0224EFD6: ldr r0, [r0, #0x64] cmp r0, #0x20 blt _0224EFEA - bl ErrorHandling + bl GF_AssertFail _0224EFEA: ldr r0, _0224F14C ; =0x000004FC ldr r0, [r4, r0] ldr r0, [r0, #0x68] cmp r0, #0x20 blt _0224EFF8 - bl ErrorHandling + bl GF_AssertFail _0224EFF8: ldr r0, _0224F14C ; =0x000004FC add r2, r4, #0 @@ -44210,7 +44210,7 @@ _0224F06E: ldrb r0, [r4, r0] cmp r0, #0 bne _0224F08A - bl ErrorHandling + bl GF_AssertFail _0224F08A: ldr r0, _0224F158 ; =0x00000522 ldrb r1, [r4, r0] @@ -44241,7 +44241,7 @@ _0224F09E: ldrb r0, [r4, r0] cmp r0, #0 bne _0224F0CE - bl ErrorHandling + bl GF_AssertFail _0224F0CE: ldr r0, _0224F160 ; =0x00000521 ldrb r1, [r4, r0] @@ -44317,7 +44317,7 @@ _0224F164: ldrb r0, [r4, r0] sub r5, r1, r0 bpl _0224F172 - bl ErrorHandling + bl GF_AssertFail _0224F172: cmp r5, #0 bne _0224F184 @@ -44679,14 +44679,14 @@ _0224F442: ldr r0, [r0, #0x64] cmp r0, #0x20 blt _0224F456 - bl ErrorHandling + bl GF_AssertFail _0224F456: ldr r0, _0224F51C ; =0x000004FC ldr r0, [r5, r0] ldr r0, [r0, #0x68] cmp r0, #0x20 blt _0224F464 - bl ErrorHandling + bl GF_AssertFail _0224F464: ldr r0, _0224F51C ; =0x000004FC add r2, r5, #0 @@ -45216,7 +45216,7 @@ _0224F880: add r4, #0x24 cmp r2, #0x20 blt _0224F858 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, pc} thumb_func_end MOD18_0224F850 @@ -45229,7 +45229,7 @@ MOD18_0224F890: ; 0x0224F890 add r4, r2, #0 cmp r7, #0x20 blt _0224F8A0 - bl ErrorHandling + bl GF_AssertFail _0224F8A0: mov r0, #0x24 add r6, r7, #0 @@ -45237,7 +45237,7 @@ _0224F8A0: ldr r0, [r4, r6] cmp r0, #0 beq _0224F8B0 - bl ErrorHandling + bl GF_AssertFail _0224F8B0: mov r0, #1 str r0, [r4, r6] @@ -45262,11 +45262,11 @@ MOD18_0224F8CC: ; 0x0224F8CC add r4, r1, #0 cmp r5, #0x20 blt _0224F8DA - bl ErrorHandling + bl GF_AssertFail _0224F8DA: cmp r5, #0 bne _0224F8E2 - bl ErrorHandling + bl GF_AssertFail _0224F8E2: mov r0, #0x24 add r6, r5, #0 @@ -45274,7 +45274,7 @@ _0224F8E2: ldr r0, [r4, r6] cmp r0, #0 bne _0224F8F2 - bl ErrorHandling + bl GF_AssertFail _0224F8F2: mov r1, #0 add r0, r4, r6 @@ -45555,7 +45555,7 @@ MOD18_0224FAEC: ; 0x0224FAEC add r5, r0, #0 add r4, r1, #0 bne _0224FAF8 - bl ErrorHandling + bl GF_AssertFail _0224FAF8: ldr r0, [r5, #0x2c] add r1, r4, #0 @@ -45577,7 +45577,7 @@ MOD18_0224FB04: ; 0x0224FB04 ldr r0, [r0, #0x5c] cmp r0, #0 bne _0224FB1E - bl ErrorHandling + bl GF_AssertFail _0224FB1E: add r0, r5, #0 add r0, #0x60 @@ -45625,7 +45625,7 @@ MOD18_0224FB64: ; 0x0224FB64 ldr r0, [r0, #0x5c] cmp r0, #0 bne _0224FB7A - bl ErrorHandling + bl GF_AssertFail _0224FB7A: mov r0, #5 lsl r0, r0, #8 diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index 6b339173f..23481e5a5 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -226,7 +226,7 @@ _022525B2: pop {r3, r4, r5, pc} _022525C0: beq _022525C6 - bl ErrorHandling + bl GF_AssertFail _022525C6: ldr r0, [r4, #0x34] mov r1, #0 @@ -629,7 +629,7 @@ LoadPoketchApp: ; 0x022528B0 cmp r4, #0x19 blo _022528C0 _022528BC: - bl ErrorHandling + bl GF_AssertFail _022528C0: mov r0, #0 ldr r1, [r5, #0x14] @@ -688,7 +688,7 @@ MOD20_02252918: ; 0x02252918 ldrb r0, [r4, #2] cmp r0, #0 beq _02252926 - bl ErrorHandling + bl GF_AssertFail _02252926: add r0, r4, #0 ldr r2, [r4, #0x4c] @@ -723,7 +723,7 @@ MOD20_0225294C: ; 0x0225294C ldrb r0, [r4, #2] cmp r0, #2 beq _0225295A - bl ErrorHandling + bl GF_AssertFail _0225295A: ldr r0, [r4, #0x24] ldr r1, [r4, #0x40] @@ -767,7 +767,7 @@ MOD20_0225298C: ; 0x0225298C ldrb r0, [r4, #2] cmp r0, #1 beq _0225299A - bl ErrorHandling + bl GF_AssertFail _0225299A: mov r0, #2 strb r0, [r4, #2] @@ -781,7 +781,7 @@ MOD20_022529A0: ; 0x022529A0 ldrb r0, [r4, #2] cmp r0, #3 beq _022529AE - bl ErrorHandling + bl GF_AssertFail _022529AE: mov r0, #0 strb r0, [r4, #2] @@ -2587,7 +2587,7 @@ MOD20_02253714: ; 0x02253714 ldr r0, _02253750 ; =0x12345678 cmp r1, r0 beq _02253726 - bl ErrorHandling + bl GF_AssertFail _02253726: ldr r6, [r5] mov r2, #0 @@ -2625,7 +2625,7 @@ MOD20_02253754: ; 0x02253754 ldr r0, _02253790 ; =0x12345678 cmp r1, r0 beq _02253766 - bl ErrorHandling + bl GF_AssertFail _02253766: ldr r3, [r5] mov r2, #0 @@ -2648,7 +2648,7 @@ _02253782: cmp r2, r3 blo _02253770 _0225378A: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 _02253790: .word 0x12345678 @@ -2781,7 +2781,7 @@ _02253866: add sp, #0xc pop {r4, r5, r6, r7, pc} _02253870: - bl ErrorHandling + bl GF_AssertFail b _02253880 _02253876: add r3, #0xc @@ -2790,7 +2790,7 @@ _02253876: cmp r2, r1 bne _022537FA _02253880: - bl ErrorHandling + bl GF_AssertFail _02253884: add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -4035,7 +4035,7 @@ MOD20_02254130: ; 0x02254130 str r3, [sp, #4] ldr r5, [sp, #0x20] bne _02254144 - bl ErrorHandling + bl GF_AssertFail _02254144: add r0, r5, #0 mov r1, #0x18 @@ -4085,7 +4085,7 @@ MOD20_02254198: ; 0x02254198 push {r4, lr} add r4, r0, #0 bne _022541A2 - bl ErrorHandling + bl GF_AssertFail _022541A2: ldr r0, [r4, #8] ldr r1, [r4, #0x14] @@ -4481,11 +4481,11 @@ MOD20_02254420: ; 0x02254420 add r7, r3, #0 cmp r5, #0x1e blo _02254432 - bl ErrorHandling + bl GF_AssertFail _02254432: cmp r4, #0x21 blo _0225443A - bl ErrorHandling + bl GF_AssertFail _0225443A: cmp r5, #0x1e blo _02254440 @@ -4517,7 +4517,7 @@ MOD20_02254460: ; 0x02254460 add r6, r2, #0 cmp r5, #4 blo _02254470 - bl ErrorHandling + bl GF_AssertFail _02254470: ldr r0, _02254480 ; =MOD20_02254724 lsl r1, r5, #3 diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index 07a7285cc..16b8766a2 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -624,7 +624,7 @@ MOD24_02254CA0: ; 0x02254CA0 bl FUN_02016B90 cmp r0, #0 bne _02254CC0 - bl ErrorHandling + bl GF_AssertFail _02254CC0: add r0, r4, #0 add r0, #8 @@ -634,7 +634,7 @@ _02254CC0: bl FUN_02016B90 cmp r0, #0 bne _02254CD8 - bl ErrorHandling + bl GF_AssertFail _02254CD8: str r6, [r4] bl MOD20_02252D34 @@ -645,7 +645,7 @@ _02254CD8: bl FUN_02016B90 cmp r0, #0 bne _02254CF4 - bl ErrorHandling + bl GF_AssertFail _02254CF4: str r4, [r5] mov r0, #1 @@ -702,7 +702,7 @@ MOD24_02254D48: ; 0x02254D48 bl FUN_02016B90 cmp r0, #0 bne _02254D5C - bl ErrorHandling + bl GF_AssertFail _02254D5C: ldr r2, [r4, #0x70] cmp r2, #0 @@ -786,7 +786,7 @@ MOD24_02254DDC: ; 0x02254DDC bl FUN_02016B90 cmp r0, #0 bne _02254DF0 - bl ErrorHandling + bl GF_AssertFail _02254DF0: add r0, r4, #0 bl MOD20_022538A0 @@ -805,7 +805,7 @@ _02254DF0: bl FUN_02016B90 cmp r0, #0 bne _02254E1E - bl ErrorHandling + bl GF_AssertFail _02254E1E: mov r0, #0 str r0, [sp] @@ -838,7 +838,7 @@ _02254E1E: bl FUN_02016B90 cmp r0, #0 bne _02254E68 - bl ErrorHandling + bl GF_AssertFail _02254E68: add r0, r5, #0 bl MOD24_02254D00 @@ -848,7 +848,7 @@ _02254E68: bl FUN_02016B90 cmp r0, #0 bne _02254E82 - bl ErrorHandling + bl GF_AssertFail _02254E82: add r0, r5, #0 bl MOD24_02255078 @@ -856,7 +856,7 @@ _02254E82: bl FUN_02016B90 cmp r0, #0 bne _02254E96 - bl ErrorHandling + bl GF_AssertFail _02254E96: ldr r0, [r5, #4] mov r1, #7 @@ -880,7 +880,7 @@ _02254E96: bl FUN_02016B90 cmp r0, #0 bne _02254ECC - bl ErrorHandling + bl GF_AssertFail _02254ECC: add sp, #0x14 pop {r4, r5, pc} diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 07792cafe..3d1890e79 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -744,7 +744,7 @@ _02254D24: bl MOD20_02253F9C b _02254DE0 _02254DDC: - bl ErrorHandling + bl GF_AssertFail _02254DE0: ldrh r0, [r4, #8] mov r1, #0x1c ; BASE_FLIP diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index 6a1e0245a..b0353507d 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -984,7 +984,7 @@ MOD36_02254F5C: ; 0x02254F5C bl FUN_02016B90 cmp r0, #0 bne _02254F70 - bl ErrorHandling + bl GF_AssertFail _02254F70: add r0, r5, #0 bl MOD20_022538A0 @@ -1003,7 +1003,7 @@ _02254F70: bl FUN_02016B90 cmp r0, #0 bne _02254F9E - bl ErrorHandling + bl GF_AssertFail _02254F9E: mov r0, #0 str r0, [sp] @@ -1037,7 +1037,7 @@ _02254F9E: bl FUN_02016B90 cmp r0, #0 bne _02254FEA - bl ErrorHandling + bl GF_AssertFail _02254FEA: add r0, r4, #0 lsr r1, r6, #5 @@ -1064,7 +1064,7 @@ _02254FEA: bl FUN_02016B90 cmp r0, #0 bne _02255028 - bl ErrorHandling + bl GF_AssertFail _02255028: add sp, #0x14 pop {r3, r4, r5, r6, pc} diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 67dd59d44..1866a427a 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -1981,7 +1981,7 @@ MOD53_021D852C: ; 0x021D852C bl MOD53_021D941C cmp r0, #0 bne _021D8568 - bl ErrorHandling + bl GF_AssertFail _021D8568: add r0, r5, #0 mov r1, #6 @@ -2372,7 +2372,7 @@ MOD53_021D8860: ; 0x021D8860 bl MOD53_021D941C cmp r0, #0 bne _021D889C - bl ErrorHandling + bl GF_AssertFail _021D889C: add r0, r5, #0 mov r1, #0xe @@ -3870,7 +3870,7 @@ _021D9374: _021D93C0: cmp r0, #0 bne _021D93C8 - bl ErrorHandling + bl GF_AssertFail _021D93C8: mov r0, #1 pop {r3, r4, r5, pc} diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 0469af07c..422330026 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -1848,7 +1848,7 @@ _021D83DE: strb r0, [r5, r1] b _021D83FC _021D83F8: - bl ErrorHandling + bl GF_AssertFail _021D83FC: mov r0, #0x32 mov r1, #0 @@ -2688,7 +2688,7 @@ _021D8A5A: str r4, [r5, r0] pop {r3, r4, r5, r6, pc} _021D8A64: - bl ErrorHandling + bl GF_AssertFail add sp, #4 pop {r3, r4, r5, r6, pc} _021D8A6C: @@ -3131,7 +3131,7 @@ _021D8D90: ldr r0, [r6, r0] cmp r0, #0 bne _021D8D9E - bl ErrorHandling + bl GF_AssertFail _021D8D9E: mov r0, #0xd9 lsl r0, r0, #2 @@ -3583,7 +3583,7 @@ MOD54_021D90E0: ; 0x021D90E0 cmp r5, #5 ble _021D90F2 _021D90EE: - bl ErrorHandling + bl GF_AssertFail _021D90F2: add r2, r5, #1 cmp r2, #5 @@ -3786,7 +3786,7 @@ MOD54_021D9238: ; 0x021D9238 bl MOD54_021D91AC cmp r4, r0 beq _021D925E - bl ErrorHandling + bl GF_AssertFail _021D925E: mov r2, #0x63 lsl r2, r2, #2 @@ -3816,7 +3816,7 @@ MOD54_021D9274: ; 0x021D9274 bl MOD54_021D91B4 cmp r4, r0 beq _021D929A - bl ErrorHandling + bl GF_AssertFail _021D929A: add r6, #0xc add r0, r5, #0 @@ -3844,7 +3844,7 @@ MOD54_021D92AC: ; 0x021D92AC bl MOD54_021D91BC cmp r4, r0 beq _021D92D2 - bl ErrorHandling + bl GF_AssertFail _021D92D2: add r6, #0xcc add r0, r5, #0 @@ -4260,7 +4260,7 @@ _021D9580: add r7, r0, #0 cmp r6, r4 bhi _021D959C - bl ErrorHandling + bl GF_AssertFail _021D959C: ldr r1, [sp, #4] add r0, r7, #0 @@ -4317,7 +4317,7 @@ _021D95F8: str r0, [sp, #0x14] cmp r1, r0 bhi _021D960C - bl ErrorHandling + bl GF_AssertFail _021D960C: mov r6, #0 ldr r4, [sp, #4] diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 4f7db66f1..38bd1306b 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -1016,7 +1016,7 @@ MOD57_021D7CA4: ; 0x021D7CA4 ldr r0, [r4, r1] cmp r0, #0 bne _021D7D4C - bl ErrorHandling + bl GF_AssertFail _021D7D4C: ldr r1, _021D7ECC ; =0x000030B8 ldr r0, [r4, r1] @@ -1025,7 +1025,7 @@ _021D7D4C: bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _021D7D60 - bl ErrorHandling + bl GF_AssertFail _021D7D60: add r0, r4, #0 add r0, #0xb4 @@ -1070,7 +1070,7 @@ _021D7D9C: ldr r0, [r4, r1] cmp r0, #0 bne _021D7DBC - bl ErrorHandling + bl GF_AssertFail _021D7DBC: ldr r1, _021D7ECC ; =0x000030B8 ldr r0, [r4, r1] @@ -1079,7 +1079,7 @@ _021D7DBC: bl NNS_G2dGetUnpackedBGCharacterData cmp r0, #0 bne _021D7DD0 - bl ErrorHandling + bl GF_AssertFail _021D7DD0: ldr r3, _021D7ED0 ; =0x000032FC mov r0, #0x19 @@ -2000,7 +2000,7 @@ MOD57_021D84AC: ; 0x021D84AC add r6, r0, #0 cmp r7, r6 bls _021D850C - bl ErrorHandling + bl GF_AssertFail _021D850C: cmp r7, r6 bhs _021D8578 @@ -2292,7 +2292,7 @@ _021D8732: mov r0, #4 pop {r3, pc} _021D873A: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 @@ -3442,7 +3442,7 @@ MOD57_021D905C: ; 0x021D905C ldr r0, [r5, #0x18] cmp r0, #0 bne _021D906E - bl ErrorHandling + bl GF_AssertFail _021D906E: ldr r0, [r5, #0x18] bl GetIGTHours @@ -3716,10 +3716,10 @@ _021D9290: lsl r0, r0, #4 ldr r0, [r5, r0] bl FreeToHeap - bl ErrorHandling + bl GF_AssertFail b _021D92CE _021D92CA: - bl ErrorHandling + bl GF_AssertFail _021D92CE: add r0, r4, #1 lsl r0, r0, #0x18 @@ -4011,11 +4011,11 @@ MOD57_021D951C: ; 0x021D951C add r6, r2, #0 cmp r4, #8 blo _021D952E - bl ErrorHandling + bl GF_AssertFail _021D952E: cmp r6, #3 bls _021D9536 - bl ErrorHandling + bl GF_AssertFail _021D9536: lsl r7, r4, #2 mov r0, #0x57 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index b47aeeba4..501480eb9 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -2306,7 +2306,7 @@ _021DAC62: lsl r0, r0, #0xa cmp r7, r0 blt _021DAC6E - bl ErrorHandling + bl GF_AssertFail _021DAC6E: mov r0, #6 add r6, r6, #1 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index 3d0ee0fd8..e697563fc 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -550,7 +550,7 @@ MOD62_0222D9A0: ; 0x0222D9A0 ldr r1, [r2, r1] cmp r1, #1 bne _0222D9CC - bl ErrorHandling + bl GF_AssertFail add sp, #0x34 mov r0, #0 pop {r4, r5, r6, r7, pc} @@ -690,7 +690,7 @@ _0222DADA: str r0, [r4] b _0222DAE6 _0222DAE2: - bl ErrorHandling + bl GF_AssertFail _0222DAE6: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} @@ -1832,11 +1832,11 @@ MOD62_0222E360: ; 0x0222E360 add r5, r0, #0 cmp r4, #0 bne _0222E388 - bl ErrorHandling + bl GF_AssertFail _0222E388: cmp r5, #0 bne _0222E390 - bl ErrorHandling + bl GF_AssertFail _0222E390: bl FUN_02012CC8 pop {r3, r4, r5, pc} @@ -2454,7 +2454,7 @@ MOD62_0222E7E8: ; 0x0222E7E8 bl FUN_0200BBF0 cmp r0, #0 bne _0222E852 - bl ErrorHandling + bl GF_AssertFail _0222E852: ldr r0, [r4, #8] ldr r1, [r4, #0xc] @@ -2462,7 +2462,7 @@ _0222E852: bl FUN_0200BF60 cmp r0, #0 bne _0222E864 - bl ErrorHandling + bl GF_AssertFail _0222E864: add sp, #0x4c pop {r3, r4, r5, r6, pc} @@ -5166,7 +5166,7 @@ _0222FD9A: bl FUN_0200C61C pop {r3, pc} _0222FDA2: - bl ErrorHandling + bl GF_AssertFail pop {r3, pc} thumb_func_end MOD62_0222FD70 @@ -5540,7 +5540,7 @@ _02230074: bl FUN_020054C8 pop {r4, r5, r6, pc} _022300A4: - bl ErrorHandling + bl GF_AssertFail _022300A8: pop {r4, r5, r6, pc} nop diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index ccd31d013..db8325312 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -708,7 +708,7 @@ _021D8E36: mov r0, #1 pop {r3, r4, r5, pc} _021D8E42: - bl ErrorHandling + bl GF_AssertFail _021D8E46: ldr r0, [r5, #8] cmp r0, #0 @@ -1227,7 +1227,7 @@ _021D9286: ldr r0, [r4, #8] cmp r0, #0 bne _021D9296 - bl ErrorHandling + bl GF_AssertFail _021D9296: ldr r0, [r4, #0x28] bl FUN_0200CAB4 @@ -1772,10 +1772,10 @@ _021D96C6: bne _021D96F8 ldr r0, [r6, #0x2c] bl FreeToHeap - bl ErrorHandling + bl GF_AssertFail b _021D96F8 _021D96F4: - bl ErrorHandling + bl GF_AssertFail _021D96F8: add r0, r4, #1 lsl r0, r0, #0x18 @@ -1917,13 +1917,13 @@ MOD63_021D9810: ; 0x021D9810 bl FUN_0201B3C4 cmp r0, #0 bne _021D9834 - bl ErrorHandling + bl GF_AssertFail _021D9834: ldr r0, [r5, #0x40] ldr r0, [r0, #0x14] cmp r0, #0 bne _021D9840 - bl ErrorHandling + bl GF_AssertFail _021D9840: ldr r2, [r5, #0x40] ldr r0, [r5, #0x3c] @@ -1960,7 +1960,7 @@ _021D9862: bl FUN_0201B3A8 cmp r0, #0 bne _021D9890 - bl ErrorHandling + bl GF_AssertFail _021D9890: add r0, r5, r6 add r0, #0x9c @@ -1969,7 +1969,7 @@ _021D9890: ldrb r0, [r0, #9] cmp r0, #1 beq _021D98A4 - bl ErrorHandling + bl GF_AssertFail _021D98A4: add r0, r5, r6 add r0, #0x9c @@ -1980,7 +1980,7 @@ _021D98A4: ldr r1, [r1, #0xc] add r4, r0, r1 bne _021D98BC - bl ErrorHandling + bl GF_AssertFail _021D98BC: ldr r0, [sp, #0x10] add r1, r4, #0 @@ -3043,10 +3043,10 @@ MOD63_021DA158: ; 0x021DA158 bne _021DA192 ldr r0, [r4, #0x14] bl FreeToHeap - bl ErrorHandling + bl GF_AssertFail b _021DA192 _021DA18E: - bl ErrorHandling + bl GF_AssertFail _021DA192: add r0, r5, #0 bl NARC_dtor diff --git a/arm9/modules/63/asm/mod63_021DAE5C.s b/arm9/modules/63/asm/mod63_021DAE5C.s index 77623c5ce..efa1a0332 100644 --- a/arm9/modules/63/asm/mod63_021DAE5C.s +++ b/arm9/modules/63/asm/mod63_021DAE5C.s @@ -165,7 +165,7 @@ MOD63_021DAF80: ; 0x021DAF80 add r4, r1, #0 cmp r4, r0 blt _021DAF90 - bl ErrorHandling + bl GF_AssertFail _021DAF90: mov r0, #0xc ldr r1, [r5, #4] @@ -603,7 +603,7 @@ _021DB2E6: lsr r4, r1, #0x18 cmp r4, #0xa blo _021DB2CE - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r4, pc} thumb_func_end MOD63_021DB2C8 diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index fa1d5be34..16c3724be 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -19,7 +19,7 @@ MOD64_021D74E0: ; 0x021D74E0 bl OverlayManager_CreateAndGetData add r5, r0, #0 bne _021D7504 - bl ErrorHandling + bl GF_AssertFail _021D7504: ldr r2, _021D7630 ; =0x000006B4 add r0, r5, #0 @@ -54,7 +54,7 @@ _021D7504: bl FUN_0201CC24 cmp r0, #1 beq _021D755E - bl ErrorHandling + bl GF_AssertFail _021D755E: add r0, r5, #0 mov r1, #0x2f @@ -254,7 +254,7 @@ MOD64_021D76F4: ; 0x021D76F4 bl FUN_0201CD04 cmp r0, #1 beq _021D7726 - bl ErrorHandling + bl GF_AssertFail _021D7726: mov r0, #0x65 lsl r0, r0, #4 @@ -2310,7 +2310,7 @@ MOD64_021D86DC: ; 0x021D86DC bl NewMsgDataFromNarc add r4, r0, #0 bne _021D86F8 - bl ErrorHandling + bl GF_AssertFail _021D86F8: add r0, r4, #0 add r1, r6, #0 @@ -2358,7 +2358,7 @@ MOD64_021D8744: ; 0x021D8744 str r3, [sp, #0x10] cmp r0, #0 beq _021D875C - bl ErrorHandling + bl GF_AssertFail _021D875C: mov r0, #0 mov r1, #0x1a @@ -2367,7 +2367,7 @@ _021D875C: bl NewMsgDataFromNarc add r6, r0, #0 bne _021D8770 - bl ErrorHandling + bl GF_AssertFail _021D8770: ldr r1, [sp, #0x10] add r0, r6, #0 @@ -2510,7 +2510,7 @@ MOD64_021D8864: ; 0x021D8864 add r6, r2, #0 cmp r0, #0 beq _021D8876 - bl ErrorHandling + bl GF_AssertFail _021D8876: ldr r1, _021D88B8 ; =0xFFFFEAAB ldr r2, _021D88BC ; =0xFFFFDC72 @@ -2828,7 +2828,7 @@ MOD64_021D8AE0: ; 0x021D8AE0 ldr r0, [r4, #0x28] cmp r0, #0 beq _021D8AEE - bl ErrorHandling + bl GF_AssertFail _021D8AEE: add r0, r4, #0 mov r1, #2 @@ -3016,7 +3016,7 @@ MOD64_021D8C3C: ; 0x021D8C3C str r3, [sp] cmp r0, #0 beq _021D8C50 - bl ErrorHandling + bl GF_AssertFail _021D8C50: ldr r4, [sp, #0x24] add r0, r5, #0 @@ -3057,7 +3057,7 @@ MOD64_021D8C94: ; 0x021D8C94 ldr r0, [r4, #0x54] cmp r0, #0 beq _021D8CA2 - bl ErrorHandling + bl GF_AssertFail _021D8CA2: mov r0, #1 mvn r0, r0 @@ -3240,7 +3240,7 @@ MOD64_021D8DDC: ; 0x021D8DDC str r3, [sp] cmp r0, #0 beq _021D8DF0 - bl ErrorHandling + bl GF_AssertFail _021D8DF0: ldr r4, [sp, #0x28] ldr r2, [sp] @@ -3281,7 +3281,7 @@ MOD64_021D8E34: ; 0x021D8E34 ldr r0, [r4, #0x3c] cmp r0, #0 beq _021D8E42 - bl ErrorHandling + bl GF_AssertFail _021D8E42: mov r0, #1 mvn r0, r0 @@ -3501,7 +3501,7 @@ MOD64_021D8FD0: ; 0x021D8FD0 bl NewMsgDataFromNarc add r4, r0, #0 bne _021D8FEC - bl ErrorHandling + bl GF_AssertFail _021D8FEC: add r0, r4, #0 add r1, r6, #0 @@ -3567,7 +3567,7 @@ _021D905C: ldr r0, _021D9070 ; =0x00000189 pop {r3, pc} _021D9060: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s index 2fc19d083..c902cd22c 100644 --- a/arm9/modules/66/asm/module_66.s +++ b/arm9/modules/66/asm/module_66.s @@ -4094,7 +4094,7 @@ MOD66_021D94A4: ; 0x021D94A4 bl FS_OpenFile cmp r0, #0 bne _021D94C8 - bl ErrorHandling + bl GF_AssertFail add sp, #0x4c mov r0, #0 pop {r4, r5, r6, r7, pc} @@ -4105,7 +4105,7 @@ _021D94C8: bl FS_ReadFile cmp r0, #0 bge _021D94DA - bl ErrorHandling + bl GF_AssertFail _021D94DA: add r0, r4, #0 mov r1, #8 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index b62037b86..2a478ef53 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -3935,7 +3935,7 @@ _0222F5E2: lsl r0, r0, #0xa cmp r1, r0 blo _0222F608 - bl ErrorHandling + bl GF_AssertFail _0222F608: mov r0, #1 str r0, [r7, #4] diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 4b488741c..00f887bba 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -964,7 +964,7 @@ _0222DDD8: lsr r5, r0, #0x10 cmp r5, #0x3c blo _0222DDF8 - bl ErrorHandling + bl GF_AssertFail _0222DDF8: bl FUN_02031190 mov r1, #0x1f @@ -3551,7 +3551,7 @@ MOD71_0222F350: ; 0x0222F350 add r4, r2, #0 cmp r5, #0xd blt _0222F362 - bl ErrorHandling + bl GF_AssertFail _0222F362: ldr r1, _0222F3C8 ; =0x02231220 lsl r0, r5, #3 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index f00d35cfa..f8da52562 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -661,7 +661,7 @@ MOD73_021D79E8: ; 0x021D79E8 bl MOD73_021D90D0 cmp r0, #0 bne _021D7A3C - bl ErrorHandling + bl GF_AssertFail _021D7A3C: ldr r0, [r4, #0xc] pop {r4, pc} @@ -869,7 +869,7 @@ _021D7BC6: bl MOD73_021D90D0 cmp r0, #0 bne _021D7C0C - bl ErrorHandling + bl GF_AssertFail _021D7C0C: add r0, r6, #0 bl FreeToHeap @@ -902,14 +902,14 @@ _021D7C1A: bl MOD73_021D90D0 cmp r0, #0 bne _021D7C54 - bl ErrorHandling + bl GF_AssertFail _021D7C54: ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D7C5C: - bl ErrorHandling + bl GF_AssertFail _021D7C60: ldr r0, [r4, #0xc] add sp, #0xc @@ -1204,7 +1204,7 @@ _021D7EA8: bl MOD73_021D90D0 cmp r0, #0 bne _021D7ECE - bl ErrorHandling + bl GF_AssertFail _021D7ECE: ldr r0, [r4, #0xc] add sp, #0xc @@ -1255,14 +1255,14 @@ _021D7F0C: bl MOD73_021D90D0 cmp r0, #0 bne _021D7F32 - bl ErrorHandling + bl GF_AssertFail _021D7F32: ldr r0, [r4, #0xc] add sp, #0xc add r0, r0, #1 pop {r3, r4, r5, r6, pc} _021D7F3A: - bl ErrorHandling + bl GF_AssertFail _021D7F3E: ldr r0, [r4, #0xc] add sp, #0xc @@ -2019,7 +2019,7 @@ MOD73_021D856C: ; 0x021D856C ldr r0, [r4, r0] cmp r0, #0 bne _021D857C - bl ErrorHandling + bl GF_AssertFail _021D857C: ldr r0, _021D858C ; =0x0000152C ldr r0, [r4, r0] @@ -3622,7 +3622,7 @@ _021D91F2: _021D91FA: cmp r4, #0 bne _021D9202 - bl ErrorHandling + bl GF_AssertFail _021D9202: mov r0, #0x1a lsl r0, r0, #4 @@ -3636,11 +3636,11 @@ _021D9202: blx r0 cmp r0, r5 beq _021D921E - bl ErrorHandling + bl GF_AssertFail _021D921E: cmp r5, #0x26 blt _021D9226 - bl ErrorHandling + bl GF_AssertFail _021D9226: sub r7, #0x16 str r7, [r4, #4] @@ -3865,7 +3865,7 @@ MOD73_021D9340: ; 0x021D9340 bl FUN_02009B78 cmp r0, #0 bne _021D93D0 - bl ErrorHandling + bl GF_AssertFail _021D93D0: ldr r0, [r4] bl FUN_02009474 @@ -3873,7 +3873,7 @@ _021D93D0: bl FUN_02009D68 cmp r0, #0 bne _021D93E4 - bl ErrorHandling + bl GF_AssertFail _021D93E4: ldr r0, [r4, #4] bl FUN_02009474 @@ -3969,7 +3969,7 @@ MOD73_021D942C: ; 0x021D942C bl FUN_02009B78 cmp r0, #0 bne _021D94AA - bl ErrorHandling + bl GF_AssertFail _021D94AA: ldr r0, [r4] bl FUN_02009474 @@ -4072,7 +4072,7 @@ MOD73_021D9540: ; 0x021D9540 bl FUN_0201FF84 add r4, r0, #0 bne _021D956E - bl ErrorHandling + bl GF_AssertFail _021D956E: add r0, r4, #0 add sp, #0x20 @@ -4274,7 +4274,7 @@ MOD73_021D96C8: ; 0x021D96C8 ldr r0, [r4] cmp r0, #0 beq _021D96D6 - bl ErrorHandling + bl GF_AssertFail _021D96D6: mov r2, #0x1f add r0, r4, #0 @@ -4389,7 +4389,7 @@ MOD73_021D97A4: ; 0x021D97A4 str r1, [sp] cmp r0, #1 beq _021D97B4 - bl ErrorHandling + bl GF_AssertFail _021D97B4: mov r0, #0x42 lsl r0, r0, #2 @@ -4430,7 +4430,7 @@ MOD73_021D97F0: ; 0x021D97F0 ldr r0, [r0, #4] cmp r0, #0 beq _021D9800 - bl ErrorHandling + bl GF_AssertFail _021D9800: mov r0, #0 str r0, [sp, #0xc] @@ -4668,7 +4668,7 @@ _021D99BE: str r1, [r4, r0] b _021D99E4 _021D99E0: - bl ErrorHandling + bl GF_AssertFail _021D99E4: ldr r0, [sp] add r4, r4, #4 @@ -4735,7 +4735,7 @@ MOD73_021D9A4C: ; 0x021D9A4C ldr r0, [r4, #0x30] cmp r0, #0 beq _021D9A5A - bl ErrorHandling + bl GF_AssertFail _021D9A5A: add r0, r4, #0 mov r1, #0 @@ -4754,7 +4754,7 @@ MOD73_021D9A68: ; 0x021D9A68 add r6, r2, #0 cmp r0, #0 beq _021D9A7A - bl ErrorHandling + bl GF_AssertFail _021D9A7A: add r0, r5, #0 add r1, r6, #0 @@ -4776,7 +4776,7 @@ MOD73_021D9A94: ; 0x021D9A94 ldr r0, [r4, #0x30] cmp r0, #1 beq _021D9AA2 - bl ErrorHandling + bl GF_AssertFail _021D9AA2: add r0, r4, #0 bl MOD73_021D9C7C @@ -5172,7 +5172,7 @@ MOD73_021D9DA0: ; 0x021D9DA0 ldr r0, [r4] cmp r0, #0 beq _021D9DAE - bl ErrorHandling + bl GF_AssertFail _021D9DAE: mov r0, #0 strb r0, [r4] @@ -5229,7 +5229,7 @@ MOD73_021D9E08: ; 0x021D9E08 ldr r0, [r4] cmp r0, #1 beq _021D9E16 - bl ErrorHandling + bl GF_AssertFail _021D9E16: ldr r0, [r4, #8] bl FUN_0201FFC8 @@ -5309,7 +5309,7 @@ MOD73_021D9E8C: ; 0x021D9E8C ldr r0, [r4, #0x74] cmp r0, #0 beq _021D9E9A - bl ErrorHandling + bl GF_AssertFail _021D9E9A: add r0, r4, #0 mov r1, #0 @@ -5329,7 +5329,7 @@ MOD73_021D9EA8: ; 0x021D9EA8 str r1, [sp, #0xc] cmp r0, #0 beq _021D9EBC - bl ErrorHandling + bl GF_AssertFail _021D9EBC: ldr r4, _021D9F5C ; =0x021DBDE4 ldr r5, [sp, #8] @@ -5425,7 +5425,7 @@ MOD73_021D9F74: ; 0x021D9F74 ldr r0, [r6, #0x74] cmp r0, #1 beq _021D9F82 - bl ErrorHandling + bl GF_AssertFail _021D9F82: mov r4, #0 add r5, r6, #0 @@ -5468,7 +5468,7 @@ MOD73_021D9FC0: ; 0x021D9FC0 add r6, r2, #0 cmp r4, #8 blo _021D9FD0 - bl ErrorHandling + bl GF_AssertFail _021D9FD0: lsl r0, r4, #2 add r0, r5, r0 @@ -5525,7 +5525,7 @@ MOD73_021DA01C: ; 0x021DA01C add r6, r2, #0 cmp r4, #8 blo _021DA02C - bl ErrorHandling + bl GF_AssertFail _021DA02C: lsl r0, r4, #2 add r0, r5, r0 @@ -5616,7 +5616,7 @@ _021DA0B2: str r0, [r5, #0x6c] pop {r3, r4, r5, r6, r7, pc} _021DA0CE: - bl ErrorHandling + bl GF_AssertFail _021DA0D2: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -5649,7 +5649,7 @@ MOD73_021DA0FC: ; 0x021DA0FC ldr r0, [r4] cmp r0, #0 beq _021DA10A - bl ErrorHandling + bl GF_AssertFail _021DA10A: add r0, r4, #0 mov r1, #0 @@ -5826,7 +5826,7 @@ MOD73_021DA234: ; 0x021DA234 ldr r0, [r4, #0x28] cmp r0, #0 beq _021DA242 - bl ErrorHandling + bl GF_AssertFail _021DA242: add r0, r4, #0 bl MOD73_021DA4AC @@ -5846,7 +5846,7 @@ MOD73_021DA254: ; 0x021DA254 add r6, r2, #0 cmp r0, #0 beq _021DA266 - bl ErrorHandling + bl GF_AssertFail _021DA266: add r0, r5, #0 add r1, r6, #0 @@ -5874,7 +5874,7 @@ MOD73_021DA290: ; 0x021DA290 ldr r0, [r4, #0x28] cmp r0, #1 beq _021DA29E - bl ErrorHandling + bl GF_AssertFail _021DA29E: add r0, r4, #0 bl MOD73_021DA354 @@ -6088,7 +6088,7 @@ MOD73_021DA434: ; 0x021DA434 add r4, r1, #0 cmp r0, #0 beq _021DA446 - bl ErrorHandling + bl GF_AssertFail _021DA446: mov r2, #1 ldr r0, _021DA494 ; =MOD73_021DA408 @@ -6597,7 +6597,7 @@ MOD73_021DA82C: ; 0x021DA82C ldr r0, [r4] cmp r0, #0 beq _021DA83A - bl ErrorHandling + bl GF_AssertFail _021DA83A: ldr r2, _021DA848 ; =0x00000414 add r0, r4, #0 @@ -6709,7 +6709,7 @@ MOD73_021DA8BC: ; 0x021DA8BC str r0, [sp, #0x60] cmp r0, #0 bne _021DA900 - bl ErrorHandling + bl GF_AssertFail _021DA900: ldr r0, [sp, #0x60] bl MOD73_021DAB30 @@ -7001,7 +7001,7 @@ MOD73_021DAB30: ; 0x021DAB30 ldr r0, [r4, #0x78] cmp r0, #0 bne _021DAB3E - bl ErrorHandling + bl GF_AssertFail _021DAB3E: ldr r0, [r4, #0x78] bl FUN_0201FFC8 @@ -7236,7 +7236,7 @@ MOD73_021DAC9C: ; 0x021DAC9C str r0, [r5, #0x78] cmp r0, #0 bne _021DAD14 - bl ErrorHandling + bl GF_AssertFail _021DAD14: ldr r0, [r5, #0xc] cmp r0, #0 @@ -7307,7 +7307,7 @@ MOD73_021DAD84: ; 0x021DAD84 ldr r0, [r4, #0x7c] cmp r0, #0 beq _021DAD92 - bl ErrorHandling + bl GF_AssertFail _021DAD92: add r0, r4, #0 mov r1, #0 @@ -7327,7 +7327,7 @@ MOD73_021DADA0: ; 0x021DADA0 str r2, [sp, #0x18] cmp r0, #0 beq _021DADB4 - bl ErrorHandling + bl GF_AssertFail _021DADB4: str r7, [r6] mov r0, #2 @@ -7391,7 +7391,7 @@ MOD73_021DAE24: ; 0x021DAE24 ldr r0, [r6, #0x7c] cmp r0, #1 beq _021DAE32 - bl ErrorHandling + bl GF_AssertFail _021DAE32: mov r4, #0 add r5, r6, #0 @@ -7444,7 +7444,7 @@ MOD73_021DAE7C: ; 0x021DAE7C add r4, r0, #0 cmp r5, #4 blt _021DAE8A - bl ErrorHandling + bl GF_AssertFail _021DAE8A: cmp r5, #2 beq _021DAE92 @@ -7472,7 +7472,7 @@ MOD73_021DAEAC: ; 0x021DAEAC add r4, r0, #0 cmp r5, #4 blt _021DAEBA - bl ErrorHandling + bl GF_AssertFail _021DAEBA: lsl r0, r5, #4 mov r1, #0 @@ -7491,7 +7491,7 @@ MOD73_021DAECC: ; 0x021DAECC add r4, r0, #0 cmp r5, #4 blt _021DAEDA - bl ErrorHandling + bl GF_AssertFail _021DAEDA: lsl r0, r5, #4 add r0, r4, r0 @@ -7609,7 +7609,7 @@ MOD73_021DAF88: ; 0x021DAF88 ldr r0, [r4] cmp r0, #0 beq _021DAF96 - bl ErrorHandling + bl GF_AssertFail _021DAF96: ldr r2, _021DAFA4 ; =0x0000090C add r0, r4, #0 @@ -8442,7 +8442,7 @@ MOD73_021DB56C: ; 0x021DB56C add r4, r0, #0 cmp r5, #3 blt _021DB57A - bl ErrorHandling + bl GF_AssertFail _021DB57A: str r5, [r4] mov r0, #0 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 512cdc80b..9f5fda4b0 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -14039,7 +14039,7 @@ MOD80_02234640: ; 0x02234640 add r4, r0, #0 cmp r5, #0xc blt _0223464E - bl ErrorHandling + bl GF_AssertFail _0223464E: ldr r0, _02234660 ; =0x02237498 lsl r1, r5, #3 @@ -14600,7 +14600,7 @@ _02234A8A: str r0, [r4, #0x2c] b _02234AA8 _02234AA4: - bl ErrorHandling + bl GF_AssertFail _02234AA8: add r0, r4, #0 bl MOD80_0222E8BC @@ -15866,7 +15866,7 @@ MOD80_022353B4: ; 0x022353B4 lsr r5, r0, #0x10 cmp r5, #0x3c blo _022353E0 - bl ErrorHandling + bl GF_AssertFail _022353E0: ldr r0, _022353F0 ; =0x00000FDC add r1, r5, #2 @@ -17695,7 +17695,7 @@ _02236208: add r0, #0xd4 pop {r3, pc} _02236210: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} thumb_func_end MOD80_022361E8 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 5074a352e..1d4b48dec 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -1388,7 +1388,7 @@ MOD81_02238898: ; 0x02238898 ldr r0, [r0] cmp r0, #0x20 blt _022388A8 - bl ErrorHandling + bl GF_AssertFail _022388A8: ldr r0, _022388B8 ; =0x0223D3C0 ldr r2, [r0] diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s index bad84718a..221d2f9d0 100644 --- a/arm9/modules/85/asm/module_85.s +++ b/arm9/modules/85/asm/module_85.s @@ -1477,7 +1477,7 @@ MOD85_021D80F8: ; 0x021D80F8 bl AllocFromHeap add r4, r0, #0 bne _021D810C - bl ErrorHandling + bl GF_AssertFail _021D810C: add r0, r4, #0 mov r1, #0 @@ -1535,7 +1535,7 @@ _021D8168: add r5, r0, #0 cmp r5, #0 bne _021D8172 - bl ErrorHandling + bl GF_AssertFail _021D8172: ldr r0, _021D8184 ; =0x00000438 add r1, r6, #0 @@ -2477,7 +2477,7 @@ MOD85_021D885C: ; 0x021D885C ldr r0, [r4, #0x50] cmp r0, #6 blt _021D886A - bl ErrorHandling + bl GF_AssertFail _021D886A: mov r0, #0x19 str r0, [r4] @@ -2493,7 +2493,7 @@ MOD85_021D8874: ; 0x021D8874 ldr r0, [r4, #0x50] cmp r0, #6 blt _021D8882 - bl ErrorHandling + bl GF_AssertFail _021D8882: mov r0, #0x1c str r0, [r4] @@ -3175,7 +3175,7 @@ MOD85_021D8D88: ; 0x021D8D88 str r0, [r4, #0x10] cmp r0, #1 bge _021D8D9A - bl ErrorHandling + bl GF_AssertFail _021D8D9A: add r0, r4, #0 mov r1, #0 @@ -3715,7 +3715,7 @@ MOD85_021D91A4: ; 0x021D91A4 sub r0, r0, #1 str r0, [r4, #0x10] beq _021D91B4 - bl ErrorHandling + bl GF_AssertFail _021D91B4: ldr r0, [r4, #0x2c] cmp r0, #1 @@ -4226,7 +4226,7 @@ _021D950C: bl MOD85_021D95B4 pop {r3, pc} _021D9512: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, pc} .align 2, 0 @@ -5579,7 +5579,7 @@ _021D9F0C: add r5, r5, #1 cmp r5, #0x15 ble _021D9EFC - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _021D9F18: cmp r1, #0 @@ -5604,7 +5604,7 @@ _021D9F3A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F28 - bl ErrorHandling + bl GF_AssertFail pop {r4, r5, r6, pc} _021D9F46: mov r5, #1 @@ -5621,7 +5621,7 @@ _021D9F5A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F48 - bl ErrorHandling + bl GF_AssertFail b _021D9F84 _021D9F66: mov r5, #1 @@ -5638,9 +5638,9 @@ _021D9F7A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F68 - bl ErrorHandling + bl GF_AssertFail _021D9F84: - bl ErrorHandling + bl GF_AssertFail _021D9F88: pop {r4, r5, r6, pc} .align 2, 0 @@ -5678,7 +5678,7 @@ _021D9FC0: add r5, r5, #1 cmp r5, #0x15 blt _021D9FAE - bl ErrorHandling + bl GF_AssertFail _021D9FCA: ldr r0, [r6, #0x10] cmp r0, #0 @@ -5703,7 +5703,7 @@ _021D9FEE: add r5, r5, #1 cmp r5, #0x15 blt _021D9FDC - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _021D9FFA: mov r5, #0 @@ -5720,7 +5720,7 @@ _021DA00E: add r5, r5, #1 cmp r5, #0x15 ble _021D9FFC - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, r6, r7, pc} _021DA01A: mov r5, #0 @@ -5737,9 +5737,9 @@ _021DA02E: add r5, r5, #1 cmp r5, #0x15 ble _021DA01C - bl ErrorHandling + bl GF_AssertFail _021DA038: - bl ErrorHandling + bl GF_AssertFail _021DA03C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -6044,7 +6044,7 @@ _021DA238: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA240: - bl ErrorHandling + bl GF_AssertFail mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -7075,7 +7075,7 @@ _021DA9EE: ldr r0, _021DAA20 ; =0x021DFCC4 ldr r0, [r0, r1] str r0, [r5, #0x18] - bl ErrorHandling + bl GF_AssertFail add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -7158,7 +7158,7 @@ _021DAAA4: mov r1, #1 lsl r0, r0, #2 str r1, [r6, r0] - bl ErrorHandling + bl GF_AssertFail add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -7254,7 +7254,7 @@ _021DAB52: str r1, [r4, r0] pop {r3, r4, r5, pc} _021DAB6A: - bl ErrorHandling + bl GF_AssertFail mov r0, #2 ldr r1, [r4, #0x74] lsl r0, r0, #8 @@ -7470,7 +7470,7 @@ _021DACF8: add r2, #0x10 cmp r1, #9 blt _021DACC8 - bl ErrorHandling + bl GF_AssertFail mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 @@ -7686,7 +7686,7 @@ MOD85_021DAE70: ; 0x021DAE70 ldr r6, [r7, #0x48] cmp r6, #0 bne _021DAE80 - bl ErrorHandling + bl GF_AssertFail _021DAE80: mov r4, #0 _021DAE82: @@ -7713,7 +7713,7 @@ _021DAE9C: str r0, [r5, #0x18] b _021DAEB4 _021DAEB0: - bl ErrorHandling + bl GF_AssertFail _021DAEB4: add r4, r4, #1 lsr r6, r6, #1 @@ -9228,7 +9228,7 @@ MOD85_021DB95C: ; 0x021DB95C ldr r0, [r4, r0] cmp r0, #0 beq _021DB97A - bl ErrorHandling + bl GF_AssertFail _021DB97A: str r4, [sp] mov r0, #0x8f @@ -10066,7 +10066,7 @@ MOD85_021DBF48: ; 0x021DBF48 beq _021DBF6A cmp r4, #2 beq _021DBF62 - bl ErrorHandling + bl GF_AssertFail _021DBF62: ldr r1, [r5] mov r0, #1 @@ -10106,7 +10106,7 @@ _021DBF92: add r0, r2, #0 pop {r3, pc} _021DBF9C: - bl ErrorHandling + bl GF_AssertFail mov r0, #4 pop {r3, pc} thumb_func_end MOD85_021DBF70 @@ -10142,7 +10142,7 @@ _021DBFBE: _021DBFCC: cmp r4, #3 blt _021DBFD4 - bl ErrorHandling + bl GF_AssertFail _021DBFD4: lsl r0, r4, #2 add r0, r5, r0 @@ -10297,7 +10297,7 @@ MOD85_021DC0D8: ; 0x021DC0D8 ldr r5, [r0, #0x48] cmp r4, #6 bne _021DC0E6 - bl ErrorHandling + bl GF_AssertFail _021DC0E6: ldr r3, _021DC104 ; =0x021DFCAC lsl r2, r4, #2 @@ -11585,7 +11585,7 @@ MOD85_021DCA68: ; 0x021DCA68 ldr r4, [r6, #0x38] cmp r5, #5 blt _021DCA78 - bl ErrorHandling + bl GF_AssertFail _021DCA78: mov r1, #2 mov r2, #0x45 @@ -11630,7 +11630,7 @@ _021DCA78: bl FUN_0200CA60 cmp r0, #0 bne _021DCADC - bl ErrorHandling + bl GF_AssertFail _021DCADC: ldr r0, _021DCAFC ; =MOD85_021DCB44 ldr r2, _021DCAF8 ; =0x00000101 @@ -11638,7 +11638,7 @@ _021DCADC: bl FUN_0200CA98 cmp r0, #0 bne _021DCAEE - bl ErrorHandling + bl GF_AssertFail _021DCAEE: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -12012,7 +12012,7 @@ MOD85_021DCD50: ; 0x021DCD50 bl FUN_0200CA60 cmp r0, #0 bne _021DCDB8 - bl ErrorHandling + bl GF_AssertFail _021DCDB8: ldr r0, _021DCDD4 ; =MOD85_021DCD28 ldr r2, _021DCDD0 ; =0x00000101 @@ -12020,7 +12020,7 @@ _021DCDB8: bl FUN_0200CA98 cmp r0, #0 bne _021DCDCA - bl ErrorHandling + bl GF_AssertFail _021DCDCA: pop {r3, r4, r5, pc} .align 2, 0 @@ -12126,7 +12126,7 @@ MOD85_021DCE2C: ; 0x021DCE2C bl FUN_0200CA60 cmp r0, #0 bne _021DCE9C - bl ErrorHandling + bl GF_AssertFail _021DCE9C: ldr r0, _021DCEBC ; =MOD85_021DCE04 ldr r2, _021DCEB8 ; =0x00000101 @@ -12134,7 +12134,7 @@ _021DCE9C: bl FUN_0200CA98 cmp r0, #0 bne _021DCEAE - bl ErrorHandling + bl GF_AssertFail _021DCEAE: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -12967,7 +12967,7 @@ MOD85_021DD4C4: ; 0x021DD4C4 bl FUN_0200CA60 cmp r0, #0 bne _021DD52C - bl ErrorHandling + bl GF_AssertFail _021DD52C: ldr r0, _021DD548 ; =MOD85_021DD498 ldr r2, _021DD544 ; =0x00000101 @@ -12975,7 +12975,7 @@ _021DD52C: bl FUN_0200CA98 cmp r0, #0 bne _021DD53E - bl ErrorHandling + bl GF_AssertFail _021DD53E: pop {r3, r4, r5, pc} .align 2, 0 @@ -14780,7 +14780,7 @@ _021DE2BC: ldr r0, [r4, #0x1c] cmp r0, #5 blt _021DE2C6 - bl ErrorHandling + bl GF_AssertFail _021DE2C6: add r0, r4, #0 bl MOD85_021DE4F0 @@ -15154,7 +15154,7 @@ _021DE572: bl FUN_0200CA60 cmp r0, #0 bne _021DE584 - bl ErrorHandling + bl GF_AssertFail _021DE584: ldr r0, _021DE5A0 ; =MOD85_021DE4C8 ldr r2, _021DE59C ; =0x00000101 @@ -15162,7 +15162,7 @@ _021DE584: bl FUN_0200CA98 cmp r0, #0 bne _021DE596 - bl ErrorHandling + bl GF_AssertFail _021DE596: pop {r3, r4, r5, pc} .align 2, 0 @@ -15188,7 +15188,7 @@ MOD85_021DE5A4: ; 0x021DE5A4 bl AllocFromHeap add r4, r0, #0 bne _021DE5C8 - bl ErrorHandling + bl GF_AssertFail _021DE5C8: ldr r0, [sp] add r1, r4, #0 @@ -15558,7 +15558,7 @@ _021DE898: cmp r1, r5 blo _021DE85E _021DE8A0: - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE840 @@ -15589,7 +15589,7 @@ _021DE8CC: cmp r4, r2 blo _021DE8BA _021DE8D4: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE8A8 @@ -15620,7 +15620,7 @@ _021DE900: cmp r4, r2 blo _021DE8EE _021DE908: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE8DC @@ -15679,7 +15679,7 @@ _021DE96C: cmp r1, r5 blo _021DE92E _021DE974: - bl ErrorHandling + bl GF_AssertFail add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE910 @@ -15710,7 +15710,7 @@ _021DE9A0: cmp r4, r2 blo _021DE98E _021DE9A8: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE97C @@ -15741,7 +15741,7 @@ _021DE9D4: cmp r4, r2 blo _021DE9C2 _021DE9DC: - bl ErrorHandling + bl GF_AssertFail pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE9B0 @@ -15798,7 +15798,7 @@ _021DEA3C: cmp r1, r5 blo _021DEA02 _021DEA44: - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE9E4 @@ -15855,7 +15855,7 @@ _021DEAA4: cmp r1, r5 blo _021DEA6A _021DEAAC: - bl ErrorHandling + bl GF_AssertFail add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DEA4C @@ -16112,7 +16112,7 @@ _021DEC6C: str r0, [r4, #4] cmp r0, #0 bne _021DEC9A - bl ErrorHandling + bl GF_AssertFail _021DEC9A: add sp, #0x70 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/src/error_handling.c b/arm9/src/error_handling.c index 7f006039e..0b76ccff4 100644 --- a/arm9/src/error_handling.c +++ b/arm9/src/error_handling.c @@ -5,7 +5,7 @@ -THUMB_FUNC void ErrorHandling(void) +THUMB_FUNC void GF_AssertFail(void) { if (FUN_02031810()) { diff --git a/arm9/src/filesystem.c b/arm9/src/filesystem.c index 3775b0b8c..ed82acb9f 100644 --- a/arm9/src/filesystem.c +++ b/arm9/src/filesystem.c @@ -176,7 +176,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3 FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); if (num_files <= file_idx) - ErrorHandling(); + GF_AssertFail(); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -191,7 +191,7 @@ THUMB_FUNC void ReadFromNarcMemberByPathAndId(void * dest, const char * path, s3 else chunk_size = size; if (chunk_size == 0) - ErrorHandling(); + GF_AssertFail(); FS_ReadFile(&file, dest, (s32)chunk_size); FS_CloseFile(&file); } @@ -217,7 +217,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); if (num_files <= file_idx) - ErrorHandling(); + GF_AssertFail(); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -232,7 +232,7 @@ THUMB_FUNC void * AllocAndReadFromNarcMemberByPathAndId(const char * path, s32 f else chunk_size = size; if (chunk_size == 0) - ErrorHandling(); + GF_AssertFail(); switch (r4) { case 0: @@ -297,7 +297,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx) FS_ReadFile(&file, &chunk_size, 4); FS_ReadFile(&file, &num_files, 2); if (num_files <= file_idx) - ErrorHandling(); + GF_AssertFail(); chunk_starts[1] = chunk_starts[0] + chunk_size; FS_SeekFile(&file, (s32)(chunk_starts[1] + 4), FS_SEEK_SET); FS_ReadFile(&file, &chunk_size, 4); @@ -309,7 +309,7 @@ THUMB_FUNC u32 GetNarcMemberSizeByIdPair(NarcId narc_id, s32 file_idx) FS_SeekFile(&file, (s32)(chunk_starts[2] + 8 + file_start + 0), FS_SEEK_SET); chunk_size = file_end - file_start; if (chunk_size == 0) - ErrorHandling(); + GF_AssertFail(); // Bug: File is never closed return chunk_size; } @@ -349,7 +349,7 @@ THUMB_FUNC void * NARC_AllocAndReadWholeMember(NARC * narc, u32 file_id, u32 hea u32 file_end; void * dest; if (narc->num_files <= file_id) - ErrorHandling(); + GF_AssertFail(); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -367,7 +367,7 @@ THUMB_FUNC void NARC_ReadWholeMember(NARC * narc, u32 file_id, void * dest) u32 file_start; u32 file_end; if (narc->num_files <= file_id) - ErrorHandling(); + GF_AssertFail(); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -380,7 +380,7 @@ THUMB_FUNC u32 NARC_GetMemberSize(NARC * narc, u32 file_id) u32 file_start; u32 file_end; if (narc->num_files <= file_id) - ErrorHandling(); + GF_AssertFail(); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_ReadFile(&narc->file, &file_end, 4); @@ -391,7 +391,7 @@ THUMB_FUNC void NARC_ReadFromMember(NARC * narc, u32 file_id, u32 pos, u32 size, { u32 file_start; if (narc->num_files <= file_id) - ErrorHandling(); + GF_AssertFail(); FS_SeekFile(&narc->file, (s32)(narc->btaf_start + 12 + 8 * file_id), FS_SEEK_SET); FS_ReadFile(&narc->file, &file_start, 4); FS_SeekFile(&narc->file, (s32)(narc->gmif_start + 8 + file_start + pos), FS_SEEK_SET); diff --git a/arm9/src/gf_rtc.c b/arm9/src/gf_rtc.c new file mode 100644 index 000000000..0fc77efbc --- /dev/null +++ b/arm9/src/gf_rtc.c @@ -0,0 +1,181 @@ +#include "global.h" +#include "MI_memory.h" +#include "gf_rtc.h" +#include "RTC_convert.h" + +typedef struct GF_RTC_Work +{ + BOOL getDateTimeSuccess; + BOOL getDateTimeLock; + s32 getDateTimeSleep; + RTCResult getDateTimeErrorCode; + RTCDate date; // 10 + RTCTime time; // 20 + RTCDate date_async; // 2C + RTCTime time_async; // 3C +} GF_RTC_Work; + +GF_RTC_Work sGFRTCWork; + +void GF_RTC_GetDateTime(GF_RTC_Work * work); + +THUMB_FUNC void GF_InitRTCWork(void) +{ + RTC_Init(); + __clear(&sGFRTCWork, sizeof(sGFRTCWork)); + sGFRTCWork.getDateTimeSuccess = FALSE; + sGFRTCWork.getDateTimeLock = FALSE; + sGFRTCWork.getDateTimeSleep = 0; + GF_RTC_GetDateTime(&sGFRTCWork); +} + +THUMB_FUNC void GF_RTC_UpdateOnFrame(void) +{ + if (!sGFRTCWork.getDateTimeLock) + { + if (++sGFRTCWork.getDateTimeSleep > 10) + { + sGFRTCWork.getDateTimeSleep = 0; + GF_RTC_GetDateTime(&sGFRTCWork); + } + } +} + +THUMB_FUNC void GF_RTC_GetDateTime_Callback(RTCResult result, void * data) +{ + GF_RTC_Work * work = (GF_RTC_Work *)data; + work->getDateTimeErrorCode = result; + GF_ASSERT(result == RTC_RESULT_SUCCESS); + work->getDateTimeSuccess = TRUE; + work->date = work->date_async; + work->time = work->time_async; + work->getDateTimeLock = FALSE; +} + +THUMB_FUNC void GF_RTC_GetDateTime(GF_RTC_Work * work) +{ + work->getDateTimeLock = TRUE; + RTCResult result = RTC_GetDateTimeAsync(&work->date_async, &work->time_async, GF_RTC_GetDateTime_Callback, work); + work->getDateTimeErrorCode = result; + GF_ASSERT(result == RTC_RESULT_SUCCESS); +} + +THUMB_FUNC void GF_RTC_CopyDateTime(RTCDate * date, RTCTime * time) +{ + GF_ASSERT(sGFRTCWork.getDateTimeSuccess == TRUE); + *date = sGFRTCWork.date; + *time = sGFRTCWork.time; +} + +THUMB_FUNC void GF_RTC_CopyTime(RTCTime * time) +{ + GF_ASSERT(sGFRTCWork.getDateTimeSuccess == TRUE); + *time = sGFRTCWork.time; +} + +THUMB_FUNC void GF_RTC_CopyDate(RTCDate * date) +{ + GF_ASSERT(sGFRTCWork.getDateTimeSuccess == TRUE); + *date = sGFRTCWork.date; +} + +THUMB_FUNC s32 GF_RTC_TimeToSec(void) +{ + RTCTime* time = &sGFRTCWork.time; + return 60 * time->minute + 3600 * time->hour + time->second; +} + +THUMB_FUNC s64 GF_RTC_DateTimeToSec(void) +{ + return RTC_ConvertDateTimeToSecond(&sGFRTCWork.date, &sGFRTCWork.time); +} + +static inline BOOL IsLeapYear(s32 year) +{ + return ((year % 4) == 0 && (year % 100) != 0) || ((year % 400) == 0); +} + +THUMB_FUNC s32 FUN_02012710(const RTCDate * date) +{ + RTCDate date_stack; + s32 days; + static const u16 sGF_DaysPerMonth[] = { + 0, // Jan + 31, // Feb + 59, // Mar + 90, // Apr + 120, // May + 151, // Jun + 181, // Jul + 212, // Aug + 243, // Sep + 273, // Oct + 304, // Nov + 334, // Dec + }; + + days = date->day; + days += sGF_DaysPerMonth[date->month - 1]; + if (date->month >= RTC_MONTH_MARCH && IsLeapYear(date->year)) + days++; + date_stack = *date; + date_stack.month = RTC_MONTH_JANUARY; + date_stack.day = 1; + RTC_ConvertDateToDay(&date_stack); + RTC_ConvertDateToDay(date); + return days; +} + +enum RTC_TimeOfDay GF_RTC_GetTimeOfDay(void); +enum RTC_TimeOfDay GF_RTC_GetTimeOfDayByHour(s32 hour); + +THUMB_FUNC BOOL IsNighttime(void) +{ + switch (GF_RTC_GetTimeOfDay()) + { + case RTC_TIMEOFDAY_NITE: + case RTC_TIMEOFDAY_LATE: + return TRUE; + default: + return FALSE; + } +} + +THUMB_FUNC enum RTC_TimeOfDay GF_RTC_GetTimeOfDay(void) +{ + RTCTime time; + GF_RTC_CopyTime(&time); + return GF_RTC_GetTimeOfDayByHour(time.hour); +} + +THUMB_FUNC enum RTC_TimeOfDay GF_RTC_GetTimeOfDayByHour(s32 hour) +{ + static const u8 sTimeOfDayByHour[] = { + // 00:00 - 03:59 + RTC_TIMEOFDAY_LATE, RTC_TIMEOFDAY_LATE, RTC_TIMEOFDAY_LATE, RTC_TIMEOFDAY_LATE, + // 04:00 - 09:59 + RTC_TIMEOFDAY_MORN, RTC_TIMEOFDAY_MORN, RTC_TIMEOFDAY_MORN, RTC_TIMEOFDAY_MORN, RTC_TIMEOFDAY_MORN, RTC_TIMEOFDAY_MORN, + // 10:00 - 16:59 + RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, RTC_TIMEOFDAY_DAY, + // 17:00 - 19:59 + RTC_TIMEOFDAY_EVE, RTC_TIMEOFDAY_EVE, RTC_TIMEOFDAY_EVE, + // 20:00 - 23:59 + RTC_TIMEOFDAY_NITE, RTC_TIMEOFDAY_NITE, RTC_TIMEOFDAY_NITE, RTC_TIMEOFDAY_NITE, + }; + + GF_ASSERT(hour >= 0 && hour < 24); + return sTimeOfDayByHour[hour]; +} + +THUMB_FUNC s64 FUN_020127C0(s64 r4r7, s64 r5r6) +{ + RTCDate maxDate = { 99, 12, 31, 0 }; + RTCTime maxTime = { 23, 59, 59 }; + + s64 r2r3 = RTC_ConvertDateTimeToSecond(&maxDate, &maxTime); + GF_ASSERT(r2r3 == 3155759999ll); + if (r4r7 < r5r6) + return r5r6 - r4r7; + else + return r5r6 + (3155759999ll - r4r7); +} diff --git a/arm9/src/heap.c b/arm9/src/heap.c index 7ae25c3ba..7f35fdcc8 100644 --- a/arm9/src/heap.c +++ b/arm9/src/heap.c @@ -73,7 +73,7 @@ THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size) } else { - ErrorHandling(); + GF_AssertFail(); } param0 += 2; @@ -162,27 +162,27 @@ THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3) } else { - ErrorHandling(); + GF_AssertFail(); } } else { - ErrorHandling(); + GF_AssertFail(); } } else { - ErrorHandling(); + GF_AssertFail(); } } else { - ErrorHandling(); + GF_AssertFail(); } } else { - ErrorHandling(); + GF_AssertFail(); } return 0; } @@ -204,7 +204,7 @@ THUMB_FUNC void FUN_020168D0(u32 heap_id) } else { - ErrorHandling(); + GF_AssertFail(); } UNK_021C4D28.unk00[UNK_021C4D28.unk10[heap_id]] = 0; @@ -306,7 +306,7 @@ void FreeToHeap(void *ptr) return; } - ErrorHandling(); + GF_AssertFail(); } void FreeToHeapExplicit(u32 param0, void *param1) @@ -329,7 +329,7 @@ void FreeToHeapExplicit(u32 param0, void *param1) return; } - ErrorHandling(); + GF_AssertFail(); } THUMB_FUNC u32 FUN_02016AF8(u32 param0) @@ -340,7 +340,7 @@ THUMB_FUNC u32 FUN_02016AF8(u32 param0) return NNS_FndGetTotalFreeSizeForExpHeap(UNK_021C4D28.unk00[index]); } - ErrorHandling(); + GF_AssertFail(); return 0; } @@ -354,7 +354,7 @@ THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2) return; } - ErrorHandling(); + GF_AssertFail(); } THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1) @@ -371,7 +371,7 @@ THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1) NNS_FndResizeForMBlockExpHeap(UNK_021C4D28.unk00[index], ptr - 16, param1); return; } - ErrorHandling(); + GF_AssertFail(); } THUMB_FUNC u32 FUN_02016B90(u32 param0) diff --git a/arm9/src/main.c b/arm9/src/main.c index 314c4509c..7a8a14d80 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -170,7 +170,7 @@ THUMB_FUNC void Main_RunOverlayManager(void) THUMB_FUNC void RegisterMainOverlay(FSOverlayID id, const struct Unk21DBE18 * arg1) { if (UNK_02016FA8.unkC != NULL) - ErrorHandling(); + GF_AssertFail(); UNK_02016FA8.unk8 = id; UNK_02016FA8.unkC = arg1; } diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c index 4dd986707..e11ecbb63 100644 --- a/arm9/src/poke_overlay.c +++ b/arm9/src/poke_overlay.c @@ -9,9 +9,9 @@ static struct LoadedOverlay gLoadedOverlays[3][8]; THUMB_FUNC void FreeOverlayAllocation(struct LoadedOverlay * loaded) { if (loaded->active != TRUE) - ErrorHandling(); + GF_AssertFail(); if (FS_UnloadOverlay(MI_PROCESSOR_ARM9, loaded->id) != TRUE) - ErrorHandling(); + GF_AssertFail(); loaded->active = FALSE; } @@ -35,7 +35,7 @@ THUMB_FUNC s32 GetOverlayLoadDestination(FSOverlayID id) u8 *end; u8 *start; if (FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id) != TRUE) - ErrorHandling(); + GF_AssertFail(); start = (u8 *)HW_ITCM_IMAGE; end = (u8 *)HW_ITCM_END; if (info.header.ram_address <= end && info.header.ram_address >= start) @@ -72,7 +72,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) } if (r6 >= 8) { - ErrorHandling(); + GF_AssertFail(); return FALSE; } if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM) @@ -91,7 +91,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) result = LoadOverlayNoInitAsync(MI_PROCESSOR_ARM9, id); break; default: - ErrorHandling(); + GF_AssertFail(); return FALSE; } if (r7 == OVERLAY_LOAD_ITCM || r7 == OVERLAY_LOAD_DTCM) @@ -100,7 +100,7 @@ THUMB_FUNC BOOL HandleLoadOverlay(FSOverlayID id, s32 a1) } if (result == 0) { - ErrorHandling(); + GF_AssertFail(); return FALSE; } return TRUE; @@ -120,7 +120,7 @@ THUMB_FUNC BOOL CanOverlayBeLoaded(FSOverlayID id) { if ((start >= start2 && start < end2) || (end > start2 && end <= end2) || (start <= start2 && end >= end2)) { - ErrorHandling(); + GF_AssertFail(); return FALSE; } } @@ -146,7 +146,7 @@ THUMB_FUNC BOOL GetOverlayRamBounds(FSOverlayID id, void ** start, void ** end) { FSOverlayInfo info; if (!FS_LoadOverlayInfo(&info, MI_PROCESSOR_ARM9, id)) { - ErrorHandling(); + GF_AssertFail(); return FALSE; } *start = (void *)info.header.ram_address; diff --git a/arm9/src/scrcmd_24.c b/arm9/src/scrcmd_24.c index d3f955d0f..9c8f8d4b9 100644 --- a/arm9/src/scrcmd_24.c +++ b/arm9/src/scrcmd_24.c @@ -62,7 +62,7 @@ THUMB_FUNC asm BOOL ScrCmd_Unk01C7(struct ScriptContext* ctx) ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02045DFC - bl ErrorHandling + bl GF_AssertFail _02045DFC: ldr r0, [r4, #0x0] bl FUN_02037D5C @@ -199,7 +199,7 @@ THUMB_FUNC asm BOOL ScrCmd_Unk0223(struct ScriptContext* ctx) ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FB2 - bl ErrorHandling + bl GF_AssertFail _02045FB2: ldrb r0, [r4, #0x16] cmp r0, #0x0 @@ -257,7 +257,7 @@ THUMB_FUNC asm BOOL ScrCmd_Unk0225(struct ScriptContext* ctx) ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FB2 - bl ErrorHandling + bl GF_AssertFail _02045FB2: ldrb r0, [r4, #0x16] cmp r0, #0x0 diff --git a/arm9/src/script.c b/arm9/src/script.c index 2fa80058e..3de2ee733 100644 --- a/arm9/src/script.c +++ b/arm9/src/script.c @@ -76,7 +76,7 @@ THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx) cmdCode = ScriptReadHalfword(ctx); if (cmdCode >= ctx->cmdCount) { - ErrorHandling(); + GF_AssertFail(); ctx->mode = 0; return FALSE; } diff --git a/arm9/src/script_pokemon_util.c b/arm9/src/script_pokemon_util.c index a3518bf45..55519ca3b 100644 --- a/arm9/src/script_pokemon_util.c +++ b/arm9/src/script_pokemon_util.c @@ -109,7 +109,7 @@ struct Pokemon * GetFirstAliveMonInParty_CrashIfNone(struct PlayerParty * party) if(MonNotFaintedOrEgg(mon)) return mon; } - ErrorHandling(); + GF_AssertFail(); return 0; } diff --git a/arm9/src/unk_0202E29C.c b/arm9/src/unk_0202E29C.c index 938107f2d..2b088d6f1 100644 --- a/arm9/src/unk_0202E29C.c +++ b/arm9/src/unk_0202E29C.c @@ -432,7 +432,7 @@ THUMB_FUNC s32 FUN_0202E844(u32 param0) count++; } - ErrorHandling(); + GF_AssertFail(); return 0; } diff --git a/arm9/src/unk_0202F150.c b/arm9/src/unk_0202F150.c index 1586dae5f..09b5b56f5 100644 --- a/arm9/src/unk_0202F150.c +++ b/arm9/src/unk_0202F150.c @@ -95,7 +95,7 @@ THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1) r4 = 1; if (UNK_021C59F4.unk04 == 0) { - ErrorHandling(); + GF_AssertFail(); } } @@ -1191,7 +1191,7 @@ THUMB_FUNC void FUN_020304D4(u32 param0) return; } - ErrorHandling(); + GF_AssertFail(); } THUMB_FUNC void FUN_020304F0(u32 param0) @@ -1202,7 +1202,7 @@ THUMB_FUNC void FUN_020304F0(u32 param0) return; } - ErrorHandling(); + GF_AssertFail(); } THUMB_FUNC void FUN_0203050C() @@ -1741,7 +1741,7 @@ THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2) { if (FUN_02031190() != 0) { - ErrorHandling(); + GF_AssertFail(); return 0; } diff --git a/include/error_handling.h b/include/error_handling.h index 1299fcba0..c14c93fe5 100644 --- a/include/error_handling.h +++ b/include/error_handling.h @@ -1,6 +1,6 @@ #ifndef POKEDIAMOND_ERROR_HANDLING_H #define POKEDIAMOND_ERROR_HANDLING_H -void ErrorHandling(void); +void GF_AssertFail(void); #endif //POKEDIAMOND_ERROR_HANDLING_H diff --git a/include/gf_rtc.h b/include/gf_rtc.h new file mode 100644 index 000000000..f7a4e2a7b --- /dev/null +++ b/include/gf_rtc.h @@ -0,0 +1,31 @@ +#ifndef POKEDIAMOND_GF_RTC_H +#define POKEDIAMOND_GF_RTC_H + +#include "RTC_api.h" + +enum RTC_Month +{ + RTC_MONTH_JANUARY = 1, + RTC_MONTH_FEBRUARY, + RTC_MONTH_MARCH, + RTC_MONTH_APRIL, + RTC_MONTH_MAY, + RTC_MONTH_JUNE, + RTC_MONTH_JULY, + RTC_MONTH_AUGUST, + RTC_MONTH_SEPTEMBER, + RTC_MONTH_OCTOBER, + RTC_MONTH_NOVEMBER, + RTC_MONTH_DECEMBER, +}; + +enum RTC_TimeOfDay +{ + RTC_TIMEOFDAY_MORN = 0, + RTC_TIMEOFDAY_DAY, + RTC_TIMEOFDAY_EVE, + RTC_TIMEOFDAY_NITE, + RTC_TIMEOFDAY_LATE, +}; + +#endif //POKEDIAMOND_GF_RTC_H diff --git a/include/global.h b/include/global.h index 1c92a1ec6..1853dbc36 100644 --- a/include/global.h +++ b/include/global.h @@ -11,7 +11,7 @@ #define NELEMS(a) (sizeof(a) / sizeof(*(a))) -#define GF_ASSERT(expr) do {if (!(expr)) ErrorHandling();} while (0) +#define GF_ASSERT(expr) do {if (!(expr)) GF_AssertFail();} while (0) #ifndef IN_MAIN_C extern const u8 gGameLanguage; From 419d45f5750aa79048b8cc12b30315fe655988af Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 25 May 2021 17:29:52 -0400 Subject: [PATCH 112/134] Use __builtin__clear instead of __clear --- arm9/Makefile | 2 +- arm9/src/gf_rtc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arm9/Makefile b/arm9/Makefile index 09766c82a..6f05d1c58 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -110,7 +110,7 @@ ASM_PROCESSOR := $(ASM_PROCESSOR_DIR)/compile.sh # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE) -CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W most,implicit -D$(GAME_VERSION) -D$(GAME_LANGUAGE) +CFLAGS = -O4,p -gccext,on -proc arm946e -ipa file -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off $(foreach dir,$(INCLUDE_DIRS),-i $(dir)) $(foreach dir,$(INCLUDE_RECURSIVE_DIRS),-ir $(dir)) -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE) LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start LIBS := -Llib -lsyscall diff --git a/arm9/src/gf_rtc.c b/arm9/src/gf_rtc.c index 0fc77efbc..9a1c13934 100644 --- a/arm9/src/gf_rtc.c +++ b/arm9/src/gf_rtc.c @@ -22,7 +22,7 @@ void GF_RTC_GetDateTime(GF_RTC_Work * work); THUMB_FUNC void GF_InitRTCWork(void) { RTC_Init(); - __clear(&sGFRTCWork, sizeof(sGFRTCWork)); + __builtin__clear(&sGFRTCWork, sizeof(sGFRTCWork)); sGFRTCWork.getDateTimeSuccess = FALSE; sGFRTCWork.getDateTimeLock = FALSE; sGFRTCWork.getDateTimeSleep = 0; From e7f5fc640c8217e7fb86aca8a470a456660da388 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 25 May 2021 17:39:39 -0400 Subject: [PATCH 113/134] Define MAX_SECONDS --- arm9/asm/unk_02028980.s | 4 ++-- arm9/asm/unk_02034FE4.s | 2 +- arm9/asm/unk_020377F0.s | 2 +- arm9/asm/unk_0204B9EC.s | 2 +- arm9/global.inc | 4 ++-- arm9/src/gf_rtc.c | 16 +++++++++------- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/arm9/asm/unk_02028980.s b/arm9/asm/unk_02028980.s index 8c9178e7d..664e39e7a 100644 --- a/arm9/asm/unk_02028980.s +++ b/arm9/asm/unk_02028980.s @@ -163,10 +163,10 @@ _02028A30: lsr r0, r0, #0x1d str r0, [sp, #0x1c] add r0, sp, #0x0 - bl FUN_02012710 + bl GF_RTC_GetDayOfYear add r4, r0, #0x0 add r0, sp, #0x10 - bl FUN_02012710 + bl GF_RTC_GetDayOfYear ldr r2, [sp, #0x4] sub r0, r4, r0 cmp r2, #0xc diff --git a/arm9/asm/unk_02034FE4.s b/arm9/asm/unk_02034FE4.s index 128cfb9d2..81135415e 100644 --- a/arm9/asm/unk_02034FE4.s +++ b/arm9/asm/unk_02034FE4.s @@ -136,7 +136,7 @@ FUN_02034FE4: ; 0x02034FE4 bl Sav2_SysInfo_RTC_get add r6, r0, #0x0 add r0, r6, #0x4 - bl FUN_02012710 + bl GF_RTC_GetDayOfYear sub r5, r0, #0x1 bmi _0203500C ldr r0, _02035060 ; =0x0000016E diff --git a/arm9/asm/unk_020377F0.s b/arm9/asm/unk_020377F0.s index c501c604c..9c2132bf1 100644 --- a/arm9/asm/unk_020377F0.s +++ b/arm9/asm/unk_020377F0.s @@ -2417,7 +2417,7 @@ _02038956: ldr r1, [r5, #0x8] ldr r2, [sp, #0x4] add r3, r6, #0x0 - bl FUN_020127C0 + bl GF_RTC_TimeDelta mov r2, #0x3c mov r3, #0x0 bl _ll_sdiv diff --git a/arm9/asm/unk_0204B9EC.s b/arm9/asm/unk_0204B9EC.s index e8d193271..2511f1820 100644 --- a/arm9/asm/unk_0204B9EC.s +++ b/arm9/asm/unk_0204B9EC.s @@ -44,7 +44,7 @@ FUN_0204BA1C: ; 0x0204BA1C add r2, r0, #0x0 ldr r0, [r1, #0x40] ldr r1, [r1, #0x44] - bl FUN_020127C0 + bl GF_RTC_TimeDelta mov r2, #0xfa mov r3, #0x0 lsl r2, r2, #0x2 diff --git a/arm9/global.inc b/arm9/global.inc index f94670a16..d4d6b78cd 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -805,11 +805,11 @@ .extern GF_RTC_CopyDate .extern GF_RTC_TimeToSec .extern GF_RTC_DateTimeToSec -.extern FUN_02012710 +.extern GF_RTC_GetDayOfYear .extern IsNighttime .extern GF_RTC_GetTimeOfDay .extern GF_RTC_GetTimeOfDayByHour -.extern FUN_020127C0 +.extern GF_RTC_TimeDelta .extern ListMenuItems_ctor .extern ListMenuItems_dtor .extern ListMenuItems_AppendFromMsgData diff --git a/arm9/src/gf_rtc.c b/arm9/src/gf_rtc.c index 9a1c13934..02fa735f3 100644 --- a/arm9/src/gf_rtc.c +++ b/arm9/src/gf_rtc.c @@ -17,6 +17,8 @@ typedef struct GF_RTC_Work GF_RTC_Work sGFRTCWork; +#define MAX_SECONDS (3155759999ll) + void GF_RTC_GetDateTime(GF_RTC_Work * work); THUMB_FUNC void GF_InitRTCWork(void) @@ -95,7 +97,7 @@ static inline BOOL IsLeapYear(s32 year) return ((year % 4) == 0 && (year % 100) != 0) || ((year % 400) == 0); } -THUMB_FUNC s32 FUN_02012710(const RTCDate * date) +THUMB_FUNC s32 GF_RTC_GetDayOfYear(const RTCDate * date) { RTCDate date_stack; s32 days; @@ -167,15 +169,15 @@ THUMB_FUNC enum RTC_TimeOfDay GF_RTC_GetTimeOfDayByHour(s32 hour) return sTimeOfDayByHour[hour]; } -THUMB_FUNC s64 FUN_020127C0(s64 r4r7, s64 r5r6) +THUMB_FUNC s64 GF_RTC_TimeDelta(s64 first, s64 last) { RTCDate maxDate = { 99, 12, 31, 0 }; RTCTime maxTime = { 23, 59, 59 }; - s64 r2r3 = RTC_ConvertDateTimeToSecond(&maxDate, &maxTime); - GF_ASSERT(r2r3 == 3155759999ll); - if (r4r7 < r5r6) - return r5r6 - r4r7; + s64 check = RTC_ConvertDateTimeToSecond(&maxDate, &maxTime); + GF_ASSERT(check == MAX_SECONDS); + if (first < last) + return last - first; else - return r5r6 + (3155759999ll - r4r7); + return last + (MAX_SECONDS - first); } From 73e48106d014792276f46e185b1a7ccd30bf4f00 Mon Sep 17 00:00:00 2001 From: tgsm Date: Tue, 25 May 2021 18:37:22 -0400 Subject: [PATCH 114/134] Decompile unk_0208A300 --- arm9/asm/unk_0208A300.s | 49 ----------------------------------------- arm9/src/unk_0208A300.c | 38 ++++++++++++++++++++++++++++++++ include/unk_0208A300.h | 17 ++++++++++++++ 3 files changed, 55 insertions(+), 49 deletions(-) delete mode 100644 arm9/asm/unk_0208A300.s create mode 100644 arm9/src/unk_0208A300.c create mode 100644 include/unk_0208A300.h diff --git a/arm9/asm/unk_0208A300.s b/arm9/asm/unk_0208A300.s deleted file mode 100644 index fe273a335..000000000 --- a/arm9/asm/unk_0208A300.s +++ /dev/null @@ -1,49 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0208A300 -FUN_0208A300: ; 0x0208A300 - push {r3, lr} - mov r1, #0x8 - bl AllocFromHeap - mov r1, #0x0 - strb r1, [r0, #0x0] - strb r1, [r0, #0x1] - strb r1, [r0, #0x2] - strb r1, [r0, #0x3] - strb r1, [r0, #0x4] - strb r1, [r0, #0x5] - strb r1, [r0, #0x6] - strb r1, [r0, #0x7] - mov r1, #0x2 - str r1, [r0, #0x4] - pop {r3, pc} - - thumb_func_start FUN_0208A320 -FUN_0208A320: ; 0x0208A320 - ldr r3, _0208A324 ; =FreeToHeap - bx r3 - .balign 4 -_0208A324: .word FreeToHeap - - thumb_func_start FUN_0208A328 -FUN_0208A328: ; 0x0208A328 - ldr r0, [r0, #0x0] - bx lr - - thumb_func_start FUN_0208A32C -FUN_0208A32C: ; 0x0208A32C - str r1, [r0, #0x0] - bx lr - - thumb_func_start FUN_0208A330 -FUN_0208A330: ; 0x0208A330 - ldr r0, [r0, #0x4] - bx lr - - thumb_func_start FUN_0208A334 -FUN_0208A334: ; 0x0208A334 - str r1, [r0, #0x4] - bx lr diff --git a/arm9/src/unk_0208A300.c b/arm9/src/unk_0208A300.c new file mode 100644 index 000000000..3c4a496b7 --- /dev/null +++ b/arm9/src/unk_0208A300.c @@ -0,0 +1,38 @@ +#include "global.h" +#include "heap.h" +#include "unk_0208A300.h" + +THUMB_FUNC struct UnkStruct_0208A300* FUN_0208A300(u32 heap_id) +{ + struct UnkStruct_0208A300* ret = AllocFromHeap(heap_id, sizeof(struct UnkStruct_0208A300)); + + __builtin__clear(ret, sizeof(struct UnkStruct_0208A300)); + ret->unk4 = 2; + + return ret; +} + +THUMB_FUNC void FUN_0208A320(struct UnkStruct_0208A300* unk) +{ + FreeToHeap(unk); +} + +THUMB_FUNC u32 FUN_0208A328(struct UnkStruct_0208A300* unk) +{ + return unk->unk0; +} + +THUMB_FUNC void FUN_0208A32C(struct UnkStruct_0208A300* unk, u32 a1) +{ + unk->unk0 = a1; +} + +THUMB_FUNC u32 FUN_0208A330(struct UnkStruct_0208A300* unk) +{ + return unk->unk4; +} + +THUMB_FUNC void FUN_0208A334(struct UnkStruct_0208A300* unk, u32 a1) +{ + unk->unk4 = a1; +} diff --git a/include/unk_0208A300.h b/include/unk_0208A300.h new file mode 100644 index 000000000..9c2ae8981 --- /dev/null +++ b/include/unk_0208A300.h @@ -0,0 +1,17 @@ +#ifndef POKEDIAMOND_UNK_0208A300_H +#define POKEDIAMOND_UNK_0208A300_H + +struct UnkStruct_0208A300 +{ + u32 unk0; + u32 unk4; +}; + +struct UnkStruct_0208A300* FUN_0208A300(u32 heap_id); +void FUN_0208A320(struct UnkStruct_0208A300* unk); +u32 FUN_0208A328(struct UnkStruct_0208A300* unk); +void FUN_0208A32C(struct UnkStruct_0208A300* unk, u32 a1); +u32 FUN_0208A330(struct UnkStruct_0208A300* unk); +void FUN_0208A334(struct UnkStruct_0208A300* unk, u32 a1); + +#endif From 059a3d1496fc192b35e3a6779195d28ad35cc499 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 26 May 2021 17:37:14 -0400 Subject: [PATCH 115/134] Decompile FUN_0203FCF4 --- arm9/arm9.lsf | 1 + arm9/asm/scrcmd_2.s | 278 +------------------- arm9/modules/06/include/module_06.h | 6 + arm9/modules/18/asm/module_18.s | 29 +- arm9/src/scrcmd_mart.c | 395 ++++++++++++++++++++++++++++ 5 files changed, 420 insertions(+), 289 deletions(-) create mode 100644 arm9/modules/06/include/module_06.h create mode 100644 arm9/src/scrcmd_mart.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 7a8f19f13..cceff08bd 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -157,6 +157,7 @@ Static arm9 Object unk_02038C78.o Object scrcmd.o Object scrcmd_asm.o + Object scrcmd_mart.o Object scrcmd_2.o Object scrcmd_3.o Object scrcmd_names.o diff --git a/arm9/asm/scrcmd_2.s b/arm9/asm/scrcmd_2.s index d7d98c66b..418d10bf0 100644 --- a/arm9/asm/scrcmd_2.s +++ b/arm9/asm/scrcmd_2.s @@ -1,284 +1,12 @@ .include "asm/macros.inc" .include "global.inc" - .section .rodata - - .global UNK_020F40A0 -UNK_020F40A0: ; 0x020F40A0 - .byte 0x8E, 0x00, 0x0B, 0x00, 0xFF, 0xFF - - .global UNK_020F40A6 -UNK_020F40A6: ; 0x020F40A6 - .byte 0x92, 0x00, 0x0E, 0x00, 0xFF, 0xFF - - .global UNK_020F40AC -UNK_020F40AC: ; 0x020F40AC - .byte 0x8C, 0x00, 0x0E, 0x00, 0x06, 0x00, 0xFF, 0xFF - - .global UNK_020F40B4 -UNK_020F40B4: ; 0x020F40B4 - .byte 0x8D, 0x00, 0x0E, 0x00, 0x06, 0x00, 0xFF, 0xFF - - .global UNK_020F40BC -UNK_020F40BC: ; 0x020F40BC - .byte 0x92, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFF, 0xFF - - .global UNK_020F40C6 -UNK_020F40C6: ; 0x020F40C6 - .byte 0x24, 0x00, 0x22, 0x00, 0x23, 0x00, 0x25, 0x00, 0xFF, 0xFF - - .global UNK_020F40D0 -UNK_020F40D0: ; 0x020F40D0 - .byte 0x90, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0xFF, 0xFF - - .global UNK_020F40DA -UNK_020F40DA: ; 0x020F40DA - .byte 0x92, 0x00, 0x06, 0x00, 0x08, 0x00, 0x0D, 0x00, 0xFF, 0xFF - - .global UNK_020F40E4 -UNK_020F40E4: ; 0x020F40E4 - .byte 0x92, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0xFF, 0xFF - - .global UNK_020F40EE -UNK_020F40EE: ; 0x020F40EE - .byte 0x92, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0xFF, 0xFF - - .global UNK_020F40F8 -UNK_020F40F8: ; 0x020F40F8 - .byte 0x8F, 0x00, 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFF, 0xFF - - .global UNK_020F4102 -UNK_020F4102: ; 0x020F4102 - .byte 0x92, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x09, 0x00, 0xFF, 0xFF - - .global UNK_020F410C -UNK_020F410C: ; 0x020F410C - .byte 0x07, 0x00, 0x16, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0xFF, 0xFF - - .global UNK_020F4118 -UNK_020F4118: ; 0x020F4118 - .byte 0x73, 0x00, 0x74, 0x00, 0x75, 0x00, 0x77, 0x00, 0x78, 0x00, 0x79, 0x00, 0xFF, 0xFF - - .global UNK_020F4126 -UNK_020F4126: ; 0x020F4126 - .byte 0x2E, 0x00, 0x2F, 0x00, 0x31, 0x00, 0x34, 0x00, 0x30, 0x00, 0x2D, 0x00, 0xFF, 0xFF - - .global UNK_020F4134 -UNK_020F4134: ; 0x020F4134 - .byte 0x6D, 0x01, 0x60, 0x01, 0x55, 0x01, 0x5D, 0x01, 0x7B, 0x01, 0x56, 0x01, 0xFF, 0xFF - - .global UNK_020F4142 -UNK_020F4142: ; 0x020F4142 - .byte 0x02, 0x00, 0x09, 0x00, 0x1E, 0x00, 0x25, 0x00, 0x2C, 0x00, 0x10, 0x00, 0x17, 0x00, 0xFF, 0xFF - - .global UNK_020F4152 -UNK_020F4152: ; 0x020F4152 - .byte 0x1B, 0x00, 0x22, 0x00, 0x29, 0x00, 0x30, 0x00, 0x06, 0x00, 0x0D, 0x00, 0x14, 0x00, 0xFF, 0xFF - - .global UNK_020F4162 -UNK_020F4162: ; 0x020F4162 - .byte 0x03, 0x00, 0x0A, 0x00, 0x1F, 0x00, 0x26, 0x00, 0x2D, 0x00, 0x11, 0x00, 0x18, 0x00, 0xFF, 0xFF - - .global UNK_020F4172 -UNK_020F4172: ; 0x020F4172 - .byte 0x04, 0x00, 0x19, 0x00, 0x20, 0x00, 0x27, 0x00, 0x2E, 0x00, 0x0B, 0x00, 0x12, 0x00, 0xFF, 0xFF - - .global UNK_020F4182 -UNK_020F4182: ; 0x020F4182 - .byte 0x9A, 0x01, 0x58, 0x01, 0x7D, 0x01, 0x5B, 0x01, 0x68, 0x01, 0x57, 0x01, 0x8D, 0x01, 0xFF, 0xFF - - .global UNK_020F4192 -UNK_020F4192: ; 0x020F4192 - .byte 0x01, 0x00, 0x08, 0x00, 0x1D, 0x00, 0x2B, 0x00, 0x0F, 0x00, 0x16, 0x00, 0x24, 0x00, 0xFF, 0xFF - - .global UNK_020F41A2 -UNK_020F41A2: ; 0x020F41A2 - .byte 0x1A, 0x00, 0x21, 0x00, 0x28, 0x00, 0x2F, 0x00, 0x05, 0x00, 0x0C, 0x00, 0x13, 0x00, 0xFF, 0xFF - - .global UNK_020F41B2 -UNK_020F41B2: ; 0x020F41B2 - .byte 0x07, 0x00, 0x31, 0x00, 0x1C, 0x00, 0x2A, 0x00, 0x0E, 0x00, 0x15, 0x00, 0x23, 0x00, 0xFF, 0xFF - - .global UNK_020F41C2 -UNK_020F41C2: ; 0x020F41C2 - .byte 0x0E, 0x00, 0x06, 0x00, 0x08, 0x00, 0x0D, 0x00, 0x0F, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x0B, 0x00 - .byte 0xFF, 0xFF - - .global UNK_020F41D4 -UNK_020F41D4: ; 0x020F41D4 - .byte 0x3B, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x37, 0x00, 0x38, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00 - .byte 0xFF, 0xFF - - .global UNK_020F41E6 -UNK_020F41E6: ; 0x020F41E6 - .byte 0x11, 0x00, 0x1A, 0x00, 0x19, 0x00, 0x18, 0x00, 0x1C, 0x00, 0x12, 0x00, 0x16, 0x00, 0x13, 0x00 - .byte 0x14, 0x00, 0x15, 0x00, 0x1B, 0x00, 0xFF, 0xFF - - .global UNK_020F41FE -UNK_020F41FE: ; 0x020F41FE - .byte 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x4E, 0x00, 0x3F, 0x00, 0x4F, 0x00, 0x4C, 0x00, 0x4D, 0x00 - .byte 0x89, 0x00, 0x8A, 0x00, 0x8B, 0x00, 0x91, 0x00, 0xFF, 0xFF - - .global UNK_020F4218 -UNK_020F4218: ; 0x020F4218 - .byte 0x04, 0x00, 0x01, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x11, 0x00, 0x01, 0x00 - .byte 0x1A, 0x00, 0x02, 0x00, 0x19, 0x00, 0x04, 0x00, 0x18, 0x00, 0x05, 0x00, 0x17, 0x00, 0x06, 0x00 - .byte 0x1C, 0x00, 0x03, 0x00, 0x12, 0x00, 0x01, 0x00, 0x16, 0x00, 0x01, 0x00, 0x15, 0x00, 0x02, 0x00 - .byte 0x13, 0x00, 0x02, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1B, 0x00, 0x04, 0x00, 0x4E, 0x00, 0x02, 0x00 - .byte 0x4F, 0x00, 0x02, 0x00, 0x4C, 0x00, 0x03, 0x00, 0x4D, 0x00, 0x04, 0x00 - - .section .data - - .balign 4, 0 - .global UNK_02105DEC -UNK_02105DEC: ; 0x02105DEC - .word UNK_020F410C - .word UNK_020F4118 - - .global UNK_02105DF4 -UNK_02105DF4: ; 0x02105DF4 - .word UNK_020F4192 - .word UNK_020F4142 - .word UNK_020F4162 - .word UNK_020F4172 - .word UNK_020F41A2 - .word UNK_020F4152 - .word UNK_020F41B2 - - .global UNK_02105E10 -UNK_02105E10: ; 0x02105E10 - .word UNK_020F40A6 - .word UNK_020F40B4 - .word UNK_020F40AC - .word UNK_020F40BC - .word UNK_020F40C6 - .word UNK_020F40F8 - .word UNK_020F40DA - .word UNK_020F40E4 - .word UNK_020F41E6 - .word UNK_020F41FE - .word UNK_020F41D4 - .word UNK_020F4126 - .word UNK_020F4182 - .word UNK_020F4134 - .word UNK_020F40EE - .word UNK_020F40D0 - .word UNK_020F4102 - .word UNK_020F40A0 - .word UNK_020F41C2 + .extern UNK_02105DEC + .extern UNK_02105DF4 + .extern UNK_02105E10 .text - thumb_func_start FUN_0203FCF4 -FUN_0203FCF4: ; 0x0203FCF4 - push {r4-r7, lr} - sub sp, #0x84 - add r7, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r7, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - mov r4, #0x0 - add r6, r4, #0x0 - add r5, r4, #0x0 -_0203FD10: - add r0, r7, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0xc] - bl Sav2_PlayerData_GetProfileAddr - add r1, r5, #0x0 - bl PlayerProfile_TestBadgeFlag - cmp r0, #0x1 - bne _0203FD2C - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 -_0203FD2C: - add r0, r5, #0x1 - lsl r0, r0, #0x18 - lsr r5, r0, #0x18 - cmp r5, #0x8 - blo _0203FD10 - cmp r6, #0x8 - bhi _0203FD70 - add r0, r6, r6 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0203FD46: ; jump table (using 16-bit offset) - .short _0203FD58 - _0203FD46 - 2; case 0 - .short _0203FD5C - _0203FD46 - 2; case 1 - .short _0203FD5C - _0203FD46 - 2; case 2 - .short _0203FD60 - _0203FD46 - 2; case 3 - .short _0203FD60 - _0203FD46 - 2; case 4 - .short _0203FD64 - _0203FD46 - 2; case 5 - .short _0203FD64 - _0203FD46 - 2; case 6 - .short _0203FD68 - _0203FD46 - 2; case 7 - .short _0203FD6C - _0203FD46 - 2; case 8 -_0203FD58: - mov r1, #0x1 - b _0203FD72 -_0203FD5C: - mov r1, #0x2 - b _0203FD72 -_0203FD60: - mov r1, #0x3 - b _0203FD72 -_0203FD64: - mov r1, #0x4 - b _0203FD72 -_0203FD68: - mov r1, #0x5 - b _0203FD72 -_0203FD6C: - mov r1, #0x6 - b _0203FD72 -_0203FD70: - mov r1, #0x1 -_0203FD72: - ldr r0, _0203FDB4 ; =UNK_020F4218 - mov r2, #0x0 - add r6, sp, #0x4 -_0203FD78: - lsl r3, r2, #0x2 - add r5, r0, r3 - ldrh r3, [r5, #0x2] - cmp r1, r3 - blt _0203FD8E - ldrh r5, [r5, #0x0] - lsl r3, r4, #0x1 - strh r5, [r6, r3] - add r3, r4, #0x1 - lsl r3, r3, #0x18 - lsr r4, r3, #0x18 -_0203FD8E: - add r2, r2, #0x1 - lsl r2, r2, #0x18 - lsr r2, r2, #0x18 - cmp r2, #0x13 - blo _0203FD78 - ldr r1, _0203FDB8 ; =0x0000FFFF - lsl r0, r4, #0x1 - add r2, sp, #0x4 - strh r1, [r2, r0] - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r0, [r7, #0x74] - add r7, #0x80 - ldr r1, [r7, #0x0] - bl MOD06_0223D3D0 - mov r0, #0x1 - add sp, #0x84 - pop {r4-r7, pc} - .balign 4 -_0203FDB4: .word UNK_020F4218 -_0203FDB8: .word 0x0000FFFF - thumb_func_start FUN_0203FDBC FUN_0203FDBC: ; 0x0203FDBC push {r3-r4, lr} diff --git a/arm9/modules/06/include/module_06.h b/arm9/modules/06/include/module_06.h new file mode 100644 index 000000000..f8d2c4fbd --- /dev/null +++ b/arm9/modules/06/include/module_06.h @@ -0,0 +1,6 @@ +#ifndef POKEDIAMOND_MODULE_06_H +#define POKEDIAMOND_MODULE_06_H + +void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, u16 *, u32, u32); + +#endif //POKEDIAMOND_MODULE_06_H diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 15b805549..db6482555 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -33727,7 +33727,7 @@ MOD18_02249BA8: ; 0x02249BA8 bl MOD18_0223D678 ldr r1, _02249CB0 ; =0x0000023B mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -34194,7 +34194,7 @@ MOD18_02249F8C: ; 0x02249F8C bl MOD18_0223D678 ldr r1, _0224A0D4 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -34643,7 +34643,7 @@ MOD18_0224A360: ; 0x0224A360 bl MOD18_0223D678 ldr r1, _0224A464 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -35581,7 +35581,7 @@ MOD18_0224AB08: ; 0x0224AB08 bl MOD18_0223D678 ldr r1, _0224AC0C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank add r0, r6, #1 mov r1, #4 bl ListMenuItems_ctor @@ -37823,7 +37823,7 @@ MOD18_0224BD54: ; 0x0224BD54 mov r1, #0x91 lsl r1, r1, #2 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank ldr r0, _0224BDE4 ; =0x00000246 mov r1, #0 strb r1, [r4, r0] @@ -39123,7 +39123,7 @@ MOD18_0224C7D4: ; 0x0224C7D4 bl MOD18_0223D678 ldr r1, _0224C938 ; =0x0000023B mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank b _0224C876 _0224C83C: cmp r0, #0 @@ -39137,7 +39137,7 @@ _0224C83C: bl MOD18_0223D678 ldr r1, _0224C93C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank b _0224C876 _0224C85C: mov r0, #0 @@ -39149,7 +39149,7 @@ _0224C85C: bl MOD18_0223D678 ldr r1, _0224C940 ; =0x00000239 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank _0224C876: mov r7, #0x21 mov r4, #0 @@ -39394,7 +39394,7 @@ MOD18_0224CA58: ; 0x0224CA58 bl MOD18_0223D658 ldr r1, _0224CA90 ; =0x00000241 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank bl MOD18_0223D658 add r4, r0, #0 bl FUN_02031190 @@ -41034,7 +41034,7 @@ _0224D7BC: bl MOD18_0223D658 ldr r1, _0224D80C ; =0x00000245 mov r2, #1 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank mov r0, #4 bl FUN_02025964 add r6, r0, #0 @@ -41468,8 +41468,9 @@ MOD18_0224DB5C: ; 0x0224DB5C pop {r4, pc} thumb_func_end MOD18_0224DB5C - thumb_func_start MOD18_0224DB80 -MOD18_0224DB80: ; 0x0224DB80 + thumb_func_start MOD18_LoadMsgBank +MOD18_LoadMsgBank: ; 0x0224DB80 + ; void MOD18_LoadMsgBank(struct MOD18Work * work, s32 bank, u32 async) push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x2c] @@ -41492,7 +41493,7 @@ MOD18_0224DB80: ; 0x0224DB80 _0224DBAC: pop {r4, r5, r6, pc} .align 2, 0 - thumb_func_end MOD18_0224DB80 + thumb_func_end MOD18_LoadMsgBank thumb_func_start MOD18_0224DBB0 MOD18_0224DBB0: ; 0x0224DBB0 @@ -42917,7 +42918,7 @@ _0224E5CE: bl MOD18_0223D678 ldr r1, _0224E68C ; =0x00000237 mov r2, #0 - bl MOD18_0224DB80 + bl MOD18_LoadMsgBank ldr r4, _0224E698 ; =0x022507D0 add r3, sp, #0x30 add r2, r3, #0 diff --git a/arm9/src/scrcmd_mart.c b/arm9/src/scrcmd_mart.c new file mode 100644 index 000000000..8f49e0e47 --- /dev/null +++ b/arm9/src/scrcmd_mart.c @@ -0,0 +1,395 @@ +#include "global.h" +#include "constants/items.h" +#include "scrcmd.h" +#include "module_06.h" + +static const u16 UNK_020F40A6[] = { + ITEM_AIR_MAIL, + ITEM_HEAL_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40A0[] = { + ITEM_STEEL_MAIL, + ITEM_LUXURY_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40B4[] = { + ITEM_TUNNEL_MAIL, + ITEM_HEAL_BALL, + ITEM_NET_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40AC[] = { + ITEM_BLOOM_MAIL, + ITEM_HEAL_BALL, + ITEM_NET_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40BC[] = { + ITEM_AIR_MAIL, + ITEM_HEAL_BALL, + ITEM_NET_BALL, + ITEM_NEST_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40F8[] = { + ITEM_HEART_MAIL, + ITEM_HEAL_BALL, + ITEM_NET_BALL, + ITEM_NEST_BALL, + 0xFFFF +}; + +static const u16 UNK_020F4102[] = { + ITEM_AIR_MAIL, + ITEM_QUICK_BALL, + ITEM_TIMER_BALL, + ITEM_REPEAT_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40DA[] = { + ITEM_AIR_MAIL, + ITEM_NET_BALL, + ITEM_NEST_BALL, + ITEM_DUSK_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40EE[] = { + ITEM_AIR_MAIL, + ITEM_DUSK_BALL, + ITEM_QUICK_BALL, + ITEM_TIMER_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40D0[] = { + ITEM_SNOW_MAIL, + ITEM_DUSK_BALL, + ITEM_QUICK_BALL, + ITEM_TIMER_BALL, + 0xFFFF +}; + +static const u16 UNK_020F40C6[] = { + ITEM_HEAL_POWDER, + ITEM_ENERGYPOWDER, + ITEM_ENERGY_ROOT, + ITEM_REVIVAL_HERB, + 0xFFFF +}; + +static const u16 UNK_020F40E4[] = { + ITEM_AIR_MAIL, + ITEM_NEST_BALL, + ITEM_DUSK_BALL, + ITEM_QUICK_BALL, + 0xFFFF +}; + +static const u16 UNK_020F410C[] = { + ITEM_DIVE_BALL, + ITEM_PARLYZ_HEAL, + ITEM_HYPER_POTION, + ITEM_SUPER_POTION, + ITEM_FULL_HEAL, + 0xFFFF +}; + +static const u16 UNK_020F4118[] = { + 115, + 116, + 117, + 119, + 120, + 121, + 0xFFFF +}; + +static const u16 UNK_020F4126[] = { + ITEM_PROTEIN, + ITEM_IRON, + ITEM_CALCIUM, + ITEM_ZINC, + ITEM_CARBOS, + ITEM_HP_UP, + 0xFFFF +}; + +static const u16 UNK_020F4134[] = { + ITEM_TM38, + ITEM_TM25, + ITEM_TM14, + ITEM_TM22, + ITEM_TM52, + ITEM_TM15, + 0xFFFF +}; + +static const u16 UNK_020F41B2[] = { + ITEM_DIVE_BALL, + ITEM_CALCIUM, + ITEM_REVIVE, + ITEM_LAVA_COOKIE, + ITEM_HEAL_BALL, + ITEM_AWAKENING, + ITEM_ENERGY_ROOT, + 0xFFFF +}; + +static const u16 UNK_020F4142[] = { + ITEM_ULTRA_BALL, + ITEM_REPEAT_BALL, + ITEM_FRESH_WATER, + ITEM_REVIVAL_HERB, + ITEM_SACRED_ASH, + ITEM_CHERISH_BALL, + ITEM_FULL_RESTORE, + 0xFFFF +}; + +static const u16 UNK_020F4152[] = { + ITEM_FULL_HEAL, + ITEM_ENERGYPOWDER, + ITEM_MAX_ELIXIR, + ITEM_CARBOS, + ITEM_NET_BALL, + ITEM_DUSK_BALL, + ITEM_ICE_HEAL, + 0xFFFF +}; + +static const u16 UNK_020F4162[] = { + ITEM_GREAT_BALL, + ITEM_TIMER_BALL, + ITEM_SODA_POP, + ITEM_ETHER, + ITEM_HP_UP, + ITEM_POTION, + ITEM_MAX_POTION, + 0xFFFF +}; + +static const u16 UNK_020F4172[] = { + ITEM_POKE_BALL, + ITEM_HYPER_POTION, + ITEM_LEMONADE, + ITEM_MAX_ETHER, + ITEM_PROTEIN, + ITEM_LUXURY_BALL, + ITEM_ANTIDOTE, + 0xFFFF +}; + +static const u16 UNK_020F4182[] = { + ITEM_TM83, + ITEM_TM17, + ITEM_TM54, + ITEM_TM20, + ITEM_TM33, + ITEM_TM16, + ITEM_TM70, + 0xFFFF +}; + +static const u16 UNK_020F4192[] = { + ITEM_MASTER_BALL, + ITEM_NEST_BALL, + ITEM_MAX_REVIVE, + ITEM_BERRY_JUICE, + ITEM_QUICK_BALL, + ITEM_PARLYZ_HEAL, + ITEM_HEAL_POWDER, + 0xFFFF +}; + +static const u16 UNK_020F41A2[] = { + ITEM_SUPER_POTION, + ITEM_MOOMOO_MILK, + ITEM_ELIXIR, + ITEM_IRON, + ITEM_SAFARI_BALL, + ITEM_PREMIER_BALL, + ITEM_BURN_HEAL, + 0xFFFF +}; + +static const u16 UNK_020F41D4[] = { + ITEM_X_SPEED, + ITEM_X_ATTACK, + ITEM_X_DEFENSE, + ITEM_GUARD_SPEC_, + ITEM_DIRE_HIT, + ITEM_X_ACCURACY, + ITEM_X_SPECIAL, + ITEM_X_SP__DEF, + 0xFFFF +}; + +static const u16 UNK_020F41C2[] = { + ITEM_HEAL_BALL, + ITEM_NET_BALL, + ITEM_NEST_BALL, + ITEM_DUSK_BALL, + ITEM_QUICK_BALL, + ITEM_TIMER_BALL, + ITEM_REPEAT_BALL, + ITEM_LUXURY_BALL, + 0xFFFF +}; + +static const u16 UNK_020F41E6[] = { + ITEM_POTION, + ITEM_SUPER_POTION, + ITEM_HYPER_POTION, + ITEM_MAX_POTION, + ITEM_REVIVE, + ITEM_ANTIDOTE, + ITEM_PARLYZ_HEAL, + ITEM_BURN_HEAL, + ITEM_ICE_HEAL, + ITEM_AWAKENING, + ITEM_FULL_HEAL, + 0xFFFF +}; + +static const u16 UNK_020F41FE[] = { + ITEM_POKE_BALL, + ITEM_GREAT_BALL, + ITEM_ULTRA_BALL, + ITEM_ESCAPE_ROPE, + ITEM_POKE_DOLL, + ITEM_REPEL, + ITEM_SUPER_REPEL, + ITEM_MAX_REPEL, + ITEM_GRASS_MAIL, + ITEM_FLAME_MAIL, + ITEM_BUBBLE_MAIL, + ITEM_SPACE_MAIL, + 0xFFFF +}; + +static const u16 UNK_020F4218[][2] = { + // Balls + {ITEM_POKE_BALL, 1}, + {ITEM_GREAT_BALL, 3}, + {ITEM_ULTRA_BALL, 4}, + // Potions + {ITEM_POTION, 1}, + {ITEM_SUPER_POTION, 2}, + {ITEM_HYPER_POTION, 4}, + {ITEM_MAX_POTION, 5}, + {ITEM_FULL_RESTORE, 6}, + // Revives + {ITEM_REVIVE, 3}, + // Status heal + {ITEM_ANTIDOTE, 1}, + {ITEM_PARLYZ_HEAL, 1}, + {ITEM_AWAKENING, 2}, + {ITEM_BURN_HEAL, 2}, + {ITEM_ICE_HEAL, 2}, + {ITEM_FULL_HEAL, 4}, + // Dungeon items + {ITEM_ESCAPE_ROPE, 2}, + // Repels + {ITEM_REPEL, 2}, + {ITEM_SUPER_REPEL, 3}, + {ITEM_MAX_REPEL, 4}, +}; + +const u16 *UNK_02105DEC[] = { + UNK_020F410C, + UNK_020F4118, +}; + +const u16 *UNK_02105DF4[] = { + UNK_020F4192, + UNK_020F4142, + UNK_020F4162, + UNK_020F4172, + UNK_020F41A2, + UNK_020F4152, + UNK_020F41B2, +}; + +const u16 *UNK_02105E10[] = { + UNK_020F40A6, + UNK_020F40B4, + UNK_020F40AC, + UNK_020F40BC, + UNK_020F40C6, + UNK_020F40F8, + UNK_020F40DA, + UNK_020F40E4, + UNK_020F41E6, + UNK_020F41FE, + UNK_020F41D4, + UNK_020F4126, + UNK_020F4182, + UNK_020F4134, + UNK_020F40EE, + UNK_020F40D0, + UNK_020F4102, + UNK_020F40A0, + UNK_020F41C2, +}; + +THUMB_FUNC BOOL FUN_0203FCF4(struct ScriptContext * ctx) +{ + u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + s32 param; + u16 martItems[64]; + u8 martIdx = 0; + u8 badgeCount = 0; + u8 i; + + for (i = 0; i < 8; i++) + { + if (PlayerProfile_TestBadgeFlag(Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2), i) == TRUE) + badgeCount++; + } + switch (badgeCount) + { + case 0: + param = 1; + break; + case 1: + case 2: + param = 2; + break; + case 3: + case 4: + param = 3; + break; + case 5: + case 6: + param = 4; + break; + case 7: + param = 5; + break; + case 8: + param = 6; + break; + default: + param = 1; + break; + } + for (i = 0; i < NELEMS(UNK_020F4218); i++) + { + if (param >= UNK_020F4218[i][1]) + { + martItems[martIdx] = UNK_020F4218[i][0]; + martIdx++; + } + } + martItems[martIdx] = 0xFFFF; // terminator + MOD06_0223D3D0(ctx->unk74, ctx->unk80, martItems, 0, 0); + return TRUE; +} From 52cafb3668633e3c41ab3e69d47848cacb911e1c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 26 May 2021 18:39:41 -0400 Subject: [PATCH 116/134] Finish decomping scrcmd_mart.c --- arm9/arm9.lsf | 1 - arm9/asm/scrcmd_2.s | 119 ---------------- arm9/asm/unk_02038C78.s | 10 +- arm9/global.inc | 10 +- arm9/modules/06/include/module_06.h | 10 +- arm9/src/scrcmd_mart.c | 203 +++++++++++++++++----------- include/constants/decorations.h | 144 ++++++++++++++++++++ include/scrcmd.h | 7 + 8 files changed, 295 insertions(+), 209 deletions(-) delete mode 100644 arm9/asm/scrcmd_2.s create mode 100644 include/constants/decorations.h diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index cceff08bd..f68d36338 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -158,7 +158,6 @@ Static arm9 Object scrcmd.o Object scrcmd_asm.o Object scrcmd_mart.o - Object scrcmd_2.o Object scrcmd_3.o Object scrcmd_names.o Object scrcmd_5.o diff --git a/arm9/asm/scrcmd_2.s b/arm9/asm/scrcmd_2.s deleted file mode 100644 index 418d10bf0..000000000 --- a/arm9/asm/scrcmd_2.s +++ /dev/null @@ -1,119 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern UNK_02105DEC - .extern UNK_02105DF4 - .extern UNK_02105E10 - - .text - - thumb_func_start FUN_0203FDBC -FUN_0203FDBC: ; 0x0203FDBC - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r2, r0, #0x0 - ldr r0, _0203FE00 ; =0x0000FFF8 - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - cmp r0, #0x5 - bhi _0203FDE4 - mov r0, #0x1 - b _0203FDE6 -_0203FDE4: - mov r0, #0x0 -_0203FDE6: - lsl r3, r2, #0x2 - str r0, [sp, #0x0] - ldr r2, _0203FE04 ; =UNK_02105E10 - ldr r0, [r4, #0x74] - add r4, #0x80 - ldr r2, [r2, r3] - ldr r1, [r4, #0x0] - mov r3, #0x0 - bl MOD06_0223D3D0 - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_0203FE00: .word 0x0000FFF8 -_0203FE04: .word UNK_02105E10 - - thumb_func_start FUN_0203FE08 -FUN_0203FE08: ; 0x0203FE08 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r2, r0, #0x0 - cmp r2, #0x1 - bhi _0203FE28 - mov r0, #0x1 - b _0203FE2A -_0203FE28: - mov r0, #0x0 -_0203FE2A: - lsl r3, r2, #0x2 - str r0, [sp, #0x0] - ldr r2, _0203FE44 ; =UNK_02105DEC - ldr r0, [r4, #0x74] - add r4, #0x80 - ldr r2, [r2, r3] - ldr r1, [r4, #0x0] - mov r3, #0x1 - bl MOD06_0223D3D0 - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_0203FE44: .word UNK_02105DEC - - thumb_func_start FUN_0203FE48 -FUN_0203FE48: ; 0x0203FE48 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl ScriptReadHalfword - add r1, r0, #0x0 - add r0, r4, #0x0 - add r0, #0x80 - ldr r0, [r0, #0x0] - bl VarGet - add r2, r0, #0x0 - mov r0, #0x0 - lsl r3, r2, #0x2 - str r0, [sp, #0x0] - ldr r2, _0203FE7C ; =UNK_02105DF4 - ldr r0, [r4, #0x74] - add r4, #0x80 - ldr r2, [r2, r3] - ldr r1, [r4, #0x0] - mov r3, #0x2 - bl MOD06_0223D3D0 - mov r0, #0x1 - add sp, #0x4 - pop {r3-r4, pc} - .balign 4 -_0203FE7C: .word UNK_02105DF4 - - thumb_func_start FUN_0203FE80 -FUN_0203FE80: ; 0x0203FE80 - push {r3, lr} - add r0, #0x80 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x10] - bl FUN_02038AD0 - mov r0, #0x1 - pop {r3, pc} diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index bcf7b7cfa..a49b03871 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -476,10 +476,10 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203D66C .word FUN_0203D6C4 .word FUN_0203D560 - .word FUN_0203FCF4 - .word FUN_0203FDBC - .word FUN_0203FE08 - .word FUN_0203FE48 + .word ScrCmd_NormalMart + .word ScrCmd_SpecialMart + .word ScrCmd_GoodsMart + .word ScrCmd_SealsMart .word FUN_0203D868 .word FUN_0203D874 .word ScrCmd_getplayergender @@ -748,7 +748,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0254 .word ScrCmd_Unk0255 .word ScrCmd_Unk0256 - .word FUN_0203FE80 + .word ScrCmd_AccessoriesShop .word FUN_0203EDA4 .word FUN_0203EDC8 .word FUN_0203EDE0 diff --git a/arm9/global.inc b/arm9/global.inc index d4d6b78cd..fda0c7813 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3114,11 +3114,11 @@ .extern FUN_0203FC80 .extern FUN_0203FCB0 .extern FUN_0203FCDC -.extern FUN_0203FCF4 -.extern FUN_0203FDBC -.extern FUN_0203FE08 -.extern FUN_0203FE48 -.extern FUN_0203FE80 +.extern ScrCmd_NormalMart +.extern ScrCmd_SpecialMart +.extern ScrCmd_GoodsMart +.extern ScrCmd_SealsMart +.extern ScrCmd_AccessoriesShop .extern FUN_0203FE90 .extern FUN_0203FEC0 .extern FUN_0203FF10 diff --git a/arm9/modules/06/include/module_06.h b/arm9/modules/06/include/module_06.h index f8d2c4fbd..d9915f00a 100644 --- a/arm9/modules/06/include/module_06.h +++ b/arm9/modules/06/include/module_06.h @@ -1,6 +1,14 @@ #ifndef POKEDIAMOND_MODULE_06_H #define POKEDIAMOND_MODULE_06_H -void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, u16 *, u32, u32); +enum MartType +{ + MART_ITEMS = 0, + MART_GOODS, + MART_SEALS, + MART_DECORATIONS = MART_GOODS, +}; + +void MOD06_0223D3D0(struct UnkStruct_0204639C *, struct UnkSavStruct80 *, const u16 *, enum MartType, u32); #endif //POKEDIAMOND_MODULE_06_H diff --git a/arm9/src/scrcmd_mart.c b/arm9/src/scrcmd_mart.c index 8f49e0e47..6803617cd 100644 --- a/arm9/src/scrcmd_mart.c +++ b/arm9/src/scrcmd_mart.c @@ -1,8 +1,12 @@ #include "global.h" #include "constants/items.h" +#include "constants/seal_constants.h" +#include "constants/decorations.h" #include "scrcmd.h" #include "module_06.h" +extern void FUN_02038AD0(struct UnkStruct_0204639C *); + static const u16 UNK_020F40A6[] = { ITEM_AIR_MAIL, ITEM_HEAL_BALL, @@ -94,21 +98,21 @@ static const u16 UNK_020F40E4[] = { }; static const u16 UNK_020F410C[] = { - ITEM_DIVE_BALL, - ITEM_PARLYZ_HEAL, - ITEM_HYPER_POTION, - ITEM_SUPER_POTION, - ITEM_FULL_HEAL, + DECORATION_YELLOW_CUSHION, + DECORATION_CUPBOARD, + DECORATION_TV, + DECORATION_REFRIGERATOR, + DECORATION_PRETTY_SINK, 0xFFFF }; static const u16 UNK_020F4118[] = { - 115, - 116, - 117, - 119, - 120, - 121, + DECORATION_MUNCHLAX_DOLL, + DECORATION_BONSLY_DOLL, + DECORATION_MIME_JR__DOLL, + DECORATION_MANTYKE_DOLL, + DECORATION_BUIZEL_DOLL, + DECORATION_CHATOT_DOLL, 0xFFFF }; @@ -133,57 +137,57 @@ static const u16 UNK_020F4134[] = { }; static const u16 UNK_020F41B2[] = { - ITEM_DIVE_BALL, - ITEM_CALCIUM, - ITEM_REVIVE, - ITEM_LAVA_COOKIE, - ITEM_HEAL_BALL, - ITEM_AWAKENING, - ITEM_ENERGY_ROOT, + SEAL_STAR_A, + SEAL_A, + SEAL_FIRE_A, + SEAL_SONG_A, + SEAL_LINE_B, + SEAL_ELE_B, + SEAL_PARTY_D, 0xFFFF }; static const u16 UNK_020F4142[] = { - ITEM_ULTRA_BALL, - ITEM_REPEAT_BALL, - ITEM_FRESH_WATER, - ITEM_REVIVAL_HERB, - ITEM_SACRED_ASH, - ITEM_CHERISH_BALL, - ITEM_FULL_RESTORE, + SEAL_HEART_B, + SEAL_STAR_C, + SEAL_FIRE_C, + SEAL_FLORA_B, + SEAL_SONG_C, + SEAL_SMOKE_A, + SEAL_ELE_D, 0xFFFF }; static const u16 UNK_020F4152[] = { - ITEM_FULL_HEAL, - ITEM_ENERGYPOWDER, - ITEM_MAX_ELIXIR, - ITEM_CARBOS, - ITEM_NET_BALL, - ITEM_DUSK_BALL, - ITEM_ICE_HEAL, + SEAL_FOAMY_D, + SEAL_PARTY_C, + SEAL_FLORA_F, + SEAL_SONG_G, + SEAL_HEART_F, + SEAL_LINE_A, + SEAL_ELE_A, 0xFFFF }; static const u16 UNK_020F4162[] = { - ITEM_GREAT_BALL, - ITEM_TIMER_BALL, - ITEM_SODA_POP, - ITEM_ETHER, - ITEM_HP_UP, - ITEM_POTION, - ITEM_MAX_POTION, + SEAL_HEART_C, + SEAL_STAR_D, + SEAL_FIRE_D, + SEAL_FLORA_C, + SEAL_SONG_D, + SEAL_SMOKE_B, + SEAL_FOAMY_A, 0xFFFF }; static const u16 UNK_020F4172[] = { - ITEM_POKE_BALL, - ITEM_HYPER_POTION, - ITEM_LEMONADE, - ITEM_MAX_ETHER, - ITEM_PROTEIN, - ITEM_LUXURY_BALL, - ITEM_ANTIDOTE, + SEAL_HEART_D, + SEAL_FOAMY_B, + SEAL_PARTY_A, + SEAL_FLORA_D, + SEAL_SONG_E, + SEAL_STAR_E, + SEAL_SMOKE_C, 0xFFFF }; @@ -199,24 +203,24 @@ static const u16 UNK_020F4182[] = { }; static const u16 UNK_020F4192[] = { - ITEM_MASTER_BALL, - ITEM_NEST_BALL, - ITEM_MAX_REVIVE, - ITEM_BERRY_JUICE, - ITEM_QUICK_BALL, - ITEM_PARLYZ_HEAL, - ITEM_HEAL_POWDER, + SEAL_HEART_A, + SEAL_STAR_B, + SEAL_FIRE_B, + SEAL_SONG_B, + SEAL_LINE_C, + SEAL_ELE_C, + SEAL_FLORA_A, 0xFFFF }; static const u16 UNK_020F41A2[] = { - ITEM_SUPER_POTION, - ITEM_MOOMOO_MILK, - ITEM_ELIXIR, - ITEM_IRON, - ITEM_SAFARI_BALL, - ITEM_PREMIER_BALL, - ITEM_BURN_HEAL, + SEAL_FOAMY_C, + SEAL_PARTY_B, + SEAL_FLORA_E, + SEAL_SONG_F, + SEAL_HEART_E, + SEAL_STAR_F, + SEAL_SMOKE_D, 0xFFFF }; @@ -275,7 +279,7 @@ static const u16 UNK_020F41FE[] = { 0xFFFF }; -static const u16 UNK_020F4218[][2] = { +static const u16 sNormalMartBadgeThresholds[][2] = { // Balls {ITEM_POKE_BALL, 1}, {ITEM_GREAT_BALL, 3}, @@ -303,22 +307,12 @@ static const u16 UNK_020F4218[][2] = { {ITEM_MAX_REPEL, 4}, }; -const u16 *UNK_02105DEC[] = { +const u16 *sDecorationMartPointers[] = { UNK_020F410C, UNK_020F4118, }; -const u16 *UNK_02105DF4[] = { - UNK_020F4192, - UNK_020F4142, - UNK_020F4162, - UNK_020F4172, - UNK_020F41A2, - UNK_020F4152, - UNK_020F41B2, -}; - -const u16 *UNK_02105E10[] = { +const u16 *sSpecialMartPointers[] = { UNK_020F40A6, UNK_020F40B4, UNK_020F40AC, @@ -340,7 +334,17 @@ const u16 *UNK_02105E10[] = { UNK_020F41C2, }; -THUMB_FUNC BOOL FUN_0203FCF4(struct ScriptContext * ctx) +const u16 *sSealsMartPointers[] = { + UNK_020F4192, + UNK_020F4142, + UNK_020F4162, + UNK_020F4172, + UNK_020F41A2, + UNK_020F4152, + UNK_020F41B2, +}; + +THUMB_FUNC BOOL ScrCmd_NormalMart(struct ScriptContext * ctx) { u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); s32 param; @@ -381,15 +385,58 @@ THUMB_FUNC BOOL FUN_0203FCF4(struct ScriptContext * ctx) param = 1; break; } - for (i = 0; i < NELEMS(UNK_020F4218); i++) + for (i = 0; i < NELEMS(sNormalMartBadgeThresholds); i++) { - if (param >= UNK_020F4218[i][1]) + if (param >= sNormalMartBadgeThresholds[i][1]) { - martItems[martIdx] = UNK_020F4218[i][0]; + martItems[martIdx] = sNormalMartBadgeThresholds[i][0]; martIdx++; } } martItems[martIdx] = 0xFFFF; // terminator - MOD06_0223D3D0(ctx->unk74, ctx->unk80, martItems, 0, 0); + MOD06_0223D3D0(ctx->unk74, ctx->unk80, martItems, MART_ITEMS, 0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_SpecialMart(struct ScriptContext * ctx) +{ + u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 sp0; + + // Fakematch? + if ((u16)(whichMart + (u16)(-8u)) <= 5) + sp0 = 1; + else + sp0 = 0; + + MOD06_0223D3D0(ctx->unk74, ctx->unk80, sSpecialMartPointers[whichMart], MART_ITEMS, sp0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_GoodsMart(struct ScriptContext * ctx) +{ + u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u32 sp0; + + if (whichMart <= 1) + sp0 = 1; + else + sp0 = 0; + + MOD06_0223D3D0(ctx->unk74, ctx->unk80, sDecorationMartPointers[whichMart], MART_DECORATIONS, sp0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_SealsMart(struct ScriptContext * ctx) +{ + u16 whichMart = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + + MOD06_0223D3D0(ctx->unk74, ctx->unk80, sSealsMartPointers[whichMart], MART_SEALS, 0); + return TRUE; +} + +THUMB_FUNC BOOL ScrCmd_AccessoriesShop(struct ScriptContext * ctx) +{ + FUN_02038AD0(ctx->unk80->unk10); return TRUE; } diff --git a/include/constants/decorations.h b/include/constants/decorations.h new file mode 100644 index 000000000..e9b4e9470 --- /dev/null +++ b/include/constants/decorations.h @@ -0,0 +1,144 @@ +#ifndef POKEDIAMOND_DECORATIONS_H +#define POKEDIAMOND_DECORATIONS_H + +#define DECORATION_NONE 0 +#define DECORATION_DUMMY_1 1 +#define DECORATION_DUMMY_2 2 +#define DECORATION_DUMMY_3 3 +#define DECORATION_DUMMY_4 4 +#define DECORATION_DUMMY_5 5 +#define DECORATION_BIG_BOULDER 6 +#define DECORATION_YELLOW_CUSHION 7 +#define DECORATION_BLUE_CUSHION 8 +#define DECORATION_WOODEN_CHAIR 9 +#define DECORATION_BIG_TABLE 10 +#define DECORATION_PLAIN_TABLE 11 +#define DECORATION_SMALL_TABLE 12 +#define DECORATION_LONG_TABLE 13 +#define DECORATION_WIDE_TABLE 14 +#define DECORATION_POKE_TABLE 15 +#define DECORATION_BIG_BOOKSHELF 16 +#define DECORATION_SMALL_BOOKSHELF 17 +#define DECORATION_RESEARCH_SHELF 18 +#define DECORATION_BIKE_RACK 19 +#define DECORATION_SHOP_SHELF 20 +#define DECORATION_DISPLAY_SHELF 21 +#define DECORATION_CUPBOARD 22 +#define DECORATION_WOOD_DRESSER 23 +#define DECORATION_PINK_DRESSER 24 +#define DECORATION_TV 25 +#define DECORATION_REFRIGERATOR 26 +#define DECORATION_PRETTY_SINK 27 +#define DECORATION_FEATHERY_BED 28 +#define DECORATION_TRASH_CAN 29 +#define DECORATION_CARDBOARD_BOX 30 +#define DECORATION_CRATE 31 +#define DECORATION_CONTAINER 32 +#define DECORATION_OIL_DRUM 33 +#define DECORATION_BIG_OIL_DRUM 34 +#define DECORATION_IRON_BEAM 35 +#define DECORATION_POTTED_PLANT 36 +#define DECORATION_POKE_FLOWER 37 +#define DECORATION_HEALING_MACHINE 38 +#define DECORATION_LAB_MACHINE 39 +#define DECORATION_TEST_MACHINE 40 +#define DECORATION_GAME_SYSTEM 41 +#define DECORATION_VENDING_MACHINE 42 +#define DECORATION_RED_BIKE 43 +#define DECORATION_GREEN_BIKE 44 +#define DECORATION_BINOCULARS 45 +#define DECORATION_GLOBE 46 +#define DECORATION_GYM_STATUE 47 +#define DECORATION_RED_TENT 48 +#define DECORATION_BLUE_TENT 49 +#define DECORATION_CLEAR_TENT 50 +#define DECORATION_MAZE_BLOCK_1 51 +#define DECORATION_MAZE_BLOCK_2 52 +#define DECORATION_MAZE_BLOCK_3 53 +#define DECORATION_MAZE_BLOCK_4 54 +#define DECORATION_MAZE_BLOCK_5 55 +#define DECORATION_HOLE_TOOL 56 +#define DECORATION_PIT_TOOL 57 +#define DECORATION_SMOKE_TOOL 58 +#define DECORATION_BIG_SMOKE_TOOL 59 +#define DECORATION_ROCK_TOOL 60 +#define DECORATION_ROCKFALL_TOOL 61 +#define DECORATION_FOAM_TOOL 62 +#define DECORATION_BUBBLE_TOOL 63 +#define DECORATION_ALERT_TOOL_1 64 +#define DECORATION_ALERT_TOOL_2 65 +#define DECORATION_ALERT_TOOL_3 66 +#define DECORATION_ALERT_TOOL_4 67 +#define DECORATION_LEAF_TOOL 68 +#define DECORATION_FLOWER_TOOL 69 +#define DECORATION_EMBER_TOOL 70 +#define DECORATION_FIRE_TOOL 71 +#define DECORATION_CUTE_CUP 72 +#define DECORATION_COOL_CUP 73 +#define DECORATION_BEAUTY_CUP 74 +#define DECORATION_TOUGH_CUP 75 +#define DECORATION_CLEVER_CUP 76 +#define DECORATION_BLUE_CRYSTAL 77 +#define DECORATION_PINK_CRYSTAL 78 +#define DECORATION_RED_CRYSTAL 79 +#define DECORATION_YELLOW_CRYSTAL 80 +#define DECORATION_PRETTY_GEM 81 +#define DECORATION_SHINY_GEM 82 +#define DECORATION_MYSTIC_GEM 83 +#define DECORATION_GLITTER_GEM 84 +#define DECORATION_BRONZE_TROPHY 85 +#define DECORATION_SILVER_TROPHY 86 +#define DECORATION_GOLD_TROPHY 87 +#define DECORATION_GREAT_TROPHY 88 +#define DECORATION_BALL_ORNAMENT 89 +#define DECORATION_ROUND_ORNAMENT 90 +#define DECORATION_CLEAR_ORNAMENT 91 +#define DECORATION_CHARMANDER_DOLL 92 +#define DECORATION_BULBASAUR_DOLL 93 +#define DECORATION_SQUIRTLE_DOLL 94 +#define DECORATION_CYNDAQUIL_DOLL 95 +#define DECORATION_CHIKORITA_DOLL 96 +#define DECORATION_TOTODILE_DOLL 97 +#define DECORATION_TORCHIC_DOLL 98 +#define DECORATION_TREECKO_DOLL 99 +#define DECORATION_MUDKIP_DOLL 100 +#define DECORATION_CHIMCHAR_DOLL 101 +#define DECORATION_TURTWIG_DOLL 102 +#define DECORATION_PIPLUP_DOLL 103 +#define DECORATION_PIKACHU_DOLL 104 +#define DECORATION_PLUSLE_DOLL 105 +#define DECORATION_MINUN_DOLL 106 +#define DECORATION_CLEFAIRY_DOLL 107 +#define DECORATION_JIGGLYPUFF_DOLL 108 +#define DECORATION_WOBBUFFET_DOLL 109 +#define DECORATION_MEOWTH_DOLL 110 +#define DECORATION_SKITTY_DOLL 111 +#define DECORATION_GLAMEOW_DOLL 112 +#define DECORATION_BUNEARY_DOLL 113 +#define DECORATION_WEAVILE_DOLL 114 +#define DECORATION_MUNCHLAX_DOLL 115 +#define DECORATION_BONSLY_DOLL 116 +#define DECORATION_MIME_JR__DOLL 117 +#define DECORATION_LUCARIO_DOLL 118 +#define DECORATION_MANTYKE_DOLL 119 +#define DECORATION_BUIZEL_DOLL 120 +#define DECORATION_CHATOT_DOLL 121 +#define DECORATION_MANAPHY_DOLL 122 +#define DECORATION_SNORLAX_DOLL 123 +#define DECORATION_WAILORD_DOLL 124 +#define DECORATION_MAGNEZONE_DOLL 125 +#define DECORATION_DRIFLOON_DOLL 126 +#define DECORATION_HAPPINY_DOLL 127 +#define DECORATION_PACHIRISU_DOLL 128 +#define DECORATION_129 129 +#define DECORATION_130 130 +#define DECORATION_131 131 +#define DECORATION_132 132 +#define DECORATION_WIDE_SOFA 133 +#define DECORATION_BONSAI 134 +#define DECORATION_DAINTY_FLOWERS 135 +#define DECORATION_LOVELY_FLOWERS 136 +#define DECORATION_PRETTY_FLOWERS 137 +#define DECORATION_LAVISH_FLOWERS 138 + +#endif //POKEDIAMOND_DECORATIONS_H diff --git a/include/scrcmd.h b/include/scrcmd.h index a1906e2d7..13306ed13 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -107,6 +107,13 @@ BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx); BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx); BOOL ScrCmd_Unk005E(struct ScriptContext *ctx); +// scrcmd_mart.c +BOOL ScrCmd_NormalMart(struct ScriptContext * ctx); +BOOL ScrCmd_SpecialMart(struct ScriptContext * ctx); +BOOL ScrCmd_GoodsMart(struct ScriptContext * ctx); +BOOL ScrCmd_SealsMart(struct ScriptContext * ctx); +BOOL ScrCmd_AccessoriesShop(struct ScriptContext * ctx); + //scrcmd_4.c BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx); BOOL ScrCmd_GetRivalName(struct ScriptContext* ctx); From bfcd4ca46f428ba168c6daf6aa7550b7d8d71a03 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 27 May 2021 20:09:37 -0400 Subject: [PATCH 117/134] Start decomping unk_02006864 --- arm9/arm9.lsf | 1 + arm9/asm/unk_02006864.s | 93 ------------------------------------- arm9/lib/include/GX_ioreg.h | 84 +++++++++++++++++++++++++++++++++ arm9/lib/include/NNS_g2d.h | 39 ++++++++++++++++ arm9/lib/include/gx.h | 15 ++++++ arm9/src/gf_gfx_loader.c | 41 ++++++++++++++++ arm9/src/unk_02016B94.c | 2 +- include/unk_02016B94.h | 2 +- 8 files changed, 182 insertions(+), 95 deletions(-) create mode 100644 arm9/lib/include/GX_ioreg.h create mode 100644 arm9/lib/include/NNS_g2d.h create mode 100644 arm9/src/gf_gfx_loader.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index f68d36338..fe1e31bc6 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -21,6 +21,7 @@ Static arm9 Object unk_020061E8.o Object overlay_manager.o Object filesystem.o + Object gf_gfx_loader.o Object unk_02006864.o Object unk_02006D98.o Object unk_02008AA4.o diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index 75adbe923..d716ff8b3 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -23,99 +23,6 @@ UNK_020ECBB0: ; 0x020ECBB0 .text - thumb_func_start FUN_0200687C -FUN_0200687C: ; 0x0200687C - push {r3-r7, lr} - sub sp, #0x8 - add r6, r2, #0x0 - mov r2, #0x0 - add r5, r3, #0x0 - str r2, [sp, #0x0] - ldr r2, [sp, #0x28] - ldr r3, [sp, #0x2c] - ldr r4, [sp, #0x24] - bl UncompressFromNarc - add r7, r0, #0x0 - beq _020068C2 - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedBGCharacterData - cmp r0, #0x0 - beq _020068BC - cmp r4, #0x0 - bne _020068A8 - ldr r0, [sp, #0x4] - ldr r4, [r0, #0x10] -_020068A8: - ldr r0, [sp, #0x20] - lsl r1, r5, #0x18 - str r0, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r6, #0x0 - ldr r2, [r2, #0x14] - lsr r1, r1, #0x18 - add r3, r4, #0x0 - bl FUN_02017E14 -_020068BC: - add r0, r7, #0x0 - bl FreeToHeap -_020068C2: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_020068C8 -FUN_020068C8: ; 0x020068C8 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r2, #0x0 - mov r2, #0x1 - add r5, r3, #0x0 - str r2, [sp, #0x0] - ldr r2, [sp, #0x28] - ldr r3, [sp, #0x2c] - ldr r4, [sp, #0x24] - bl UncompressFromNarc - add r7, r0, #0x0 - beq _0200692C - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedScreenData - cmp r0, #0x0 - beq _02006926 - cmp r4, #0x0 - bne _020068F4 - ldr r0, [sp, #0x4] - ldr r4, [r0, #0x8] -_020068F4: - lsl r1, r5, #0x18 - add r0, r6, #0x0 - lsr r1, r1, #0x18 - bl FUN_0201886C - cmp r0, #0x0 - beq _02006912 - ldr r2, [sp, #0x4] - lsl r1, r5, #0x18 - add r0, r6, #0x0 - lsr r1, r1, #0x18 - add r2, #0xc - add r3, r4, #0x0 - bl FUN_02017DFC -_02006912: - ldr r0, [sp, #0x20] - lsl r1, r5, #0x18 - str r0, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r6, #0x0 - lsr r1, r1, #0x18 - add r2, #0xc - add r3, r4, #0x0 - bl FUN_02017CE8 -_02006926: - add r0, r7, #0x0 - bl FreeToHeap -_0200692C: - add sp, #0x8 - pop {r3-r7, pc} - thumb_func_start FUN_02006930 FUN_02006930: ; 0x02006930 push {lr} diff --git a/arm9/lib/include/GX_ioreg.h b/arm9/lib/include/GX_ioreg.h new file mode 100644 index 000000000..81055b0a4 --- /dev/null +++ b/arm9/lib/include/GX_ioreg.h @@ -0,0 +1,84 @@ +#ifndef NITRO_GX_IOREG_H +#define NITRO_GX_IOREG_H + +#define REG_GX_DISPCNT_O_SHIFT 31 +#define REG_GX_DISPCNT_O_SIZE 1 +#define REG_GX_DISPCNT_O_MASK 0x80000000 + +#define REG_GX_DISPCNT_BG_SHIFT 30 +#define REG_GX_DISPCNT_BG_SIZE 1 +#define REG_GX_DISPCNT_BG_MASK 0x40000000 + +#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27 +#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000 + +#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24 +#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x07000000 + +#define REG_GX_DISPCNT_OH_SHIFT 23 +#define REG_GX_DISPCNT_OH_SIZE 1 +#define REG_GX_DISPCNT_OH_MASK 0x00800000 + +#define REG_GX_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_SIZE 3 +#define REG_GX_DISPCNT_EXOBJ_MASK 0x00700000 + +#define REG_GX_DISPCNT_VRAM_SHIFT 18 +#define REG_GX_DISPCNT_VRAM_SIZE 2 +#define REG_GX_DISPCNT_VRAM_MASK 0x000c0000 + +#define REG_GX_DISPCNT_MODE_SHIFT 16 +#define REG_GX_DISPCNT_MODE_SIZE 2 +#define REG_GX_DISPCNT_MODE_MASK 0x00030000 + +#define REG_GX_DISPCNT_OW_SHIFT 15 +#define REG_GX_DISPCNT_OW_SIZE 1 +#define REG_GX_DISPCNT_OW_MASK 0x00008000 + +#define REG_GX_DISPCNT_W1_SHIFT 14 +#define REG_GX_DISPCNT_W1_SIZE 1 +#define REG_GX_DISPCNT_W1_MASK 0x00004000 + +#define REG_GX_DISPCNT_W0_SHIFT 13 +#define REG_GX_DISPCNT_W0_SIZE 1 +#define REG_GX_DISPCNT_W0_MASK 0x00002000 + +#define REG_GX_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GX_DISPCNT_DISPLAY_SIZE 5 +#define REG_GX_DISPCNT_DISPLAY_MASK 0x00001f00 + +#define REG_GX_DISPCNT_BLANK_SHIFT 7 +#define REG_GX_DISPCNT_BLANK_SIZE 1 +#define REG_GX_DISPCNT_BLANK_MASK 0x00000080 + +#define REG_GX_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_SIZE 3 +#define REG_GX_DISPCNT_OBJMAP_MASK 0x00000070 + +#define REG_GX_DISPCNT_BG02D3D_SHIFT 3 +#define REG_GX_DISPCNT_BG02D3D_SIZE 1 +#define REG_GX_DISPCNT_BG02D3D_MASK 0x00000008 + +#define REG_GX_DISPCNT_BGMODE_SHIFT 0 +#define REG_GX_DISPCNT_BGMODE_SIZE 3 +#define REG_GX_DISPCNT_BGMODE_MASK 0x00000007 + +#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x00000010 + +#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x00000060 + +#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x00300000 + +#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22 +#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1 +#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x00400000 + +#endif //NITRO_GX_IOREG_H diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h new file mode 100644 index 000000000..e7852744f --- /dev/null +++ b/arm9/lib/include/NNS_g2d.h @@ -0,0 +1,39 @@ +#ifndef NNSYS_NNS_G2D_H +#define NNSYS_NNS_G2D_H +#include "gx.h" + +typedef struct NNSG2dCharacterData +{ + + u16 H; + u16 W; + + GXTexFmt pixelFmt; // GXTexFmt + + GXOBJVRamModeChar mapingType; // GXOBJVRamModeChar + u32 characterFmt;// 31 ..... 10 ...........9 8 ................ 0 + // Reserved VramTransfer NNSG2dCharacterFmt + u32 szByte; + void* pRawData; // offset addr of the content. + +} +NNSG2dCharacterData; + +typedef struct NNSG2dScreenData +{ + + u16 screenWidth; // screen width (pixels) of rawData + u16 screenHeight; // screen height (pixels) of rawData + u16 colorMode; // character data color mode + u16 screenFormat; // screen data format + u32 szByte; // size of rawData + u32 rawData[1]; // screen data (variable length) + +} +NNSG2dScreenData; + + +extern BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); +extern BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData ); + +#endif //NNSYS_NNS_G2D_H diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index 26f6cfaf4..210d61f4d 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -5,6 +5,7 @@ #include "MI_memory.h" #include "MI_dma.h" #include "OS_vramExclusive.h" +#include "GX_ioreg.h" //temporary while other files aren't decompiled @@ -166,4 +167,18 @@ typedef enum } GXDispSelect; +typedef enum +{ + GX_OBJVRAMMODE_CHAR_2D = (0 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (0 << REG_GX_DISPCNT_EXOBJ_SHIFT), + GX_OBJVRAMMODE_CHAR_1D_32K = + (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (0 << REG_GX_DISPCNT_EXOBJ_SHIFT), + GX_OBJVRAMMODE_CHAR_1D_64K = + (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (1 << REG_GX_DISPCNT_EXOBJ_SHIFT), + GX_OBJVRAMMODE_CHAR_1D_128K = + (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (2 << REG_GX_DISPCNT_EXOBJ_SHIFT), + GX_OBJVRAMMODE_CHAR_1D_256K = + (1 << REG_GX_DISPCNT_OBJMAP_SHIFT) | (3 << REG_GX_DISPCNT_EXOBJ_SHIFT) +} + GXOBJVRamModeChar; + #endif //GUARD_GX_H diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c new file mode 100644 index 000000000..db2614ab2 --- /dev/null +++ b/arm9/src/gf_gfx_loader.c @@ -0,0 +1,41 @@ +#include "global.h" +#include "filesystem.h" +#include "NNS_g2d.h" +#include "unk_02016B94.h" + +void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); + +THUMB_FUNC u32 FUN_0200687C(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) +{ + NNSG2dCharacterData * pCharData; + void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE); + if (r7 != NULL) + { + if (NNS_G2dGetUnpackedBGCharacterData(r7, &pCharData)) + { + if (szByte == 0) + szByte = pCharData->szByte; + FUN_02017E14(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4); + } + FreeToHeap(r7); + } + return szByte; +} + +THUMB_FUNC void FUN_020068C8(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) +{ + NNSG2dScreenData * pScreenData; + void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE); + if (r7 != NULL) + { + if (NNS_G2dGetUnpackedScreenData(r7, &pScreenData)) + { + if (szByte == 0) + szByte = pScreenData->szByte; + if (FUN_0201886C(unkStruct02016B94_2, a3) != NULL) + FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte); + FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4); + } + FreeToHeap(r7); + } +} diff --git a/arm9/src/unk_02016B94.c b/arm9/src/unk_02016B94.c index e01b31334..6a9dd1943 100644 --- a/arm9/src/unk_02016B94.c +++ b/arm9/src/unk_02016B94.c @@ -3361,7 +3361,7 @@ THUMB_FUNC u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2] return ptr; } -THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u32 param1) +THUMB_FUNC void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1) { return param0->unk08[param1].unk08; } diff --git a/include/unk_02016B94.h b/include/unk_02016B94.h index a13f1634c..fec45cd83 100644 --- a/include/unk_02016B94.h +++ b/include/unk_02016B94.h @@ -219,7 +219,7 @@ void FUN_0201878C(struct UnkStruct_02016B94_2 *param0, u32 param1, u16 param2); void *FUN_020187B0(u32 param0); void FUN_02018808(u8 *param0, u32 param1, u8 (*param2)[2], u8 param3); u8 (*FUN_02018848(u8 *param0, u32 param1, u8 param2, u32 heap_id))[2]; -void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u32 param1); +void *FUN_0201886C(struct UnkStruct_02016B94_2 *param0, u8 param1); u16 FUN_02018878(struct UnkStruct_02016B94_2 *param0, u32 param1); u8 FUN_02018884(struct UnkStruct_02016B94_2 *param0, u32 param1); void BlitBitmapRect4Bit(struct UnkStruct_02016B94_3 *param0, From e8b7894e1c1496f4564a96c0a13ed5cac2000f6f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 27 May 2021 21:28:30 -0400 Subject: [PATCH 118/134] Through FUN_02006AE4 --- arm9/asm/unk_02006864.s | 285 +------------------------------------ arm9/lib/include/NNS_g2d.h | 108 +++++++++++++- arm9/src/gf_gfx_loader.c | 135 ++++++++++++++++++ 3 files changed, 244 insertions(+), 284 deletions(-) diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index d716ff8b3..0a8b7bf32 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -1,291 +1,12 @@ .include "asm/macros.inc" .include "global.inc" - .section .rodata - - .global UNK_020ECB98 -UNK_020ECB98: ; 0x020ECB98 - .word NNS_G2dLoadImage1DMapping - .word NNS_G2dLoadImage2DMapping - - .global UNK_020ECBA0 -UNK_020ECBA0: ; 0x020ECBA0 - .word GX_LoadOBJ, GXS_LoadOBJ - - .global UNK_020ECBA8 -UNK_020ECBA8: ; 0x020ECBA8 - .word NNS_G2dLoadImage1DMapping, NNS_G2dLoadImage2DMapping - - .global UNK_020ECBB0 -UNK_020ECBB0: ; 0x020ECBB0 - .word GX_LoadBGPltt, GX_LoadOBJPltt, GX_LoadBGExtPltt, GX_LoadOBJExtPltt - .word GXS_LoadBGPltt, GXS_LoadOBJPltt, GXS_LoadBGExtPltt, GXS_LoadOBJExtPltt + .extern UNK_020ECB98 + .extern UNK_020ECBA0 + .extern UNK_020ECBA8 .text - thumb_func_start FUN_02006930 -FUN_02006930: ; 0x02006930 - push {lr} - sub sp, #0xc - str r3, [sp, #0x0] - ldr r3, [sp, #0x10] - str r3, [sp, #0x4] - ldr r3, [sp, #0x14] - str r3, [sp, #0x8] - mov r3, #0x0 - bl FUN_02006948 - add sp, #0xc - pop {pc} - - thumb_func_start FUN_02006948 -FUN_02006948: ; 0x02006948 - push {r4-r7, lr} - sub sp, #0xc - add r4, r2, #0x0 - add r7, r3, #0x0 - mov r2, #0x1 - str r2, [sp, #0x0] - ldr r3, [sp, #0x28] - mov r2, #0x0 - ldr r6, [sp, #0x20] - ldr r5, [sp, #0x24] - bl UncompressFromNarc - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _02006A2A - add r1, sp, #0x8 - bl NNS_G2dGetUnpackedPaletteData - cmp r0, #0x0 - beq _02006A24 - ldr r0, [sp, #0x8] - ldr r1, [r0, #0xc] - add r1, r1, r7 - str r1, [r0, #0xc] - cmp r5, #0x0 - bne _02006982 - ldr r0, [sp, #0x8] - ldr r0, [r0, #0x8] - sub r5, r0, r7 -_02006982: - ldr r0, [sp, #0x8] - add r1, r5, #0x0 - ldr r0, [r0, #0xc] - bl DC_FlushRange - cmp r4, #0x7 - bhi _02006A14 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200699C: ; jump table (using 16-bit offset) - .short _02006A14 - _0200699C - 2; case 0 - .short _02006A14 - _0200699C - 2; case 1 - .short _020069AC - _0200699C - 2; case 2 - .short _020069E0 - _0200699C - 2; case 3 - .short _02006A14 - _0200699C - 2; case 4 - .short _02006A14 - _0200699C - 2; case 5 - .short _020069C6 - _0200699C - 2; case 6 - .short _020069FA - _0200699C - 2; case 7 -_020069AC: - bl GX_BeginLoadBGExtPltt - ldr r0, [sp, #0x8] - ldr r3, _02006A30 ; =UNK_020ECBB0 - lsl r4, r4, #0x2 - ldr r0, [r0, #0xc] - ldr r3, [r3, r4] - add r1, r6, #0x0 - add r2, r5, #0x0 - blx r3 - bl GX_EndLoadBGExtPltt - b _02006A24 -_020069C6: - bl GXS_BeginLoadBGExtPltt - ldr r0, [sp, #0x8] - ldr r3, _02006A30 ; =UNK_020ECBB0 - lsl r4, r4, #0x2 - ldr r0, [r0, #0xc] - ldr r3, [r3, r4] - add r1, r6, #0x0 - add r2, r5, #0x0 - blx r3 - bl GXS_EndLoadBGExtPltt - b _02006A24 -_020069E0: - bl GX_BeginLoadOBJExtPltt - ldr r0, [sp, #0x8] - ldr r3, _02006A30 ; =UNK_020ECBB0 - lsl r4, r4, #0x2 - ldr r0, [r0, #0xc] - ldr r3, [r3, r4] - add r1, r6, #0x0 - add r2, r5, #0x0 - blx r3 - bl GX_EndLoadOBJExtPltt - b _02006A24 -_020069FA: - bl GXS_BeginLoadOBJExtPltt - ldr r0, [sp, #0x8] - ldr r3, _02006A30 ; =UNK_020ECBB0 - lsl r4, r4, #0x2 - ldr r0, [r0, #0xc] - ldr r3, [r3, r4] - add r1, r6, #0x0 - add r2, r5, #0x0 - blx r3 - bl GXS_EndLoadOBJExtPltt - b _02006A24 -_02006A14: - ldr r0, [sp, #0x8] - ldr r3, _02006A30 ; =UNK_020ECBB0 - lsl r4, r4, #0x2 - ldr r0, [r0, #0xc] - ldr r3, [r3, r4] - add r1, r6, #0x0 - add r2, r5, #0x0 - blx r3 -_02006A24: - ldr r0, [sp, #0x4] - bl FreeToHeap -_02006A2A: - add sp, #0xc - pop {r4-r7, pc} - nop -_02006A30: .word UNK_020ECBB0 - - thumb_func_start FUN_02006A34 -FUN_02006A34: ; 0x02006A34 - push {r3-r7, lr} - sub sp, #0x8 - add r5, r2, #0x0 - mov r2, #0x1 - add r6, r3, #0x0 - str r2, [sp, #0x0] - ldr r2, [sp, #0x24] - ldr r3, [sp, #0x28] - ldr r4, [sp, #0x20] - bl UncompressFromNarc - add r7, r0, #0x0 - beq _02006A80 - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedCharacterData - cmp r0, #0x0 - beq _02006A7A - cmp r4, #0x0 - bne _02006A60 - ldr r0, [sp, #0x4] - ldr r4, [r0, #0x10] -_02006A60: - ldr r0, [sp, #0x4] - add r1, r4, #0x0 - ldr r0, [r0, #0x14] - bl DC_FlushRange - ldr r0, [sp, #0x4] - ldr r3, _02006A88 ; =UNK_020ECBA0 - lsl r5, r5, #0x2 - ldr r0, [r0, #0x14] - ldr r3, [r3, r5] - add r1, r6, #0x0 - add r2, r4, #0x0 - blx r3 -_02006A7A: - add r0, r7, #0x0 - bl FreeToHeap -_02006A80: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} - nop -_02006A88: .word UNK_020ECBA0 - - thumb_func_start FUN_02006A8C -FUN_02006A8C: ; 0x02006A8C - push {r4-r7, lr} - sub sp, #0xc - add r5, r2, #0x0 - add r4, r3, #0x0 - mov r2, #0x1 - str r2, [sp, #0x0] - ldr r3, [sp, #0x20] - mov r2, #0x0 - bl UncompressFromNarc - add r6, r0, #0x0 - beq _02006AE0 - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedPaletteCompressInfo - add r7, r0, #0x0 - add r0, r6, #0x0 - add r1, sp, #0x8 - bl NNS_G2dGetUnpackedPaletteData - cmp r0, #0x0 - beq _02006ADA - cmp r7, #0x0 - beq _02006ACE - ldr r0, [sp, #0x24] - add r2, r4, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x8] - ldr r1, [sp, #0x4] - add r3, r5, #0x0 - bl NNS_G2dLoadPaletteEx - b _02006ADA -_02006ACE: - ldr r0, [sp, #0x8] - ldr r3, [sp, #0x24] - add r1, r4, #0x0 - add r2, r5, #0x0 - bl NNS_G2dLoadPalette -_02006ADA: - add r0, r6, #0x0 - bl FreeToHeap -_02006AE0: - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_02006AE4 -FUN_02006AE4: ; 0x02006AE4 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r3, #0x0 - mov r3, #0x1 - str r3, [sp, #0x0] - ldr r3, [sp, #0x24] - bl UncompressFromNarc - add r6, r0, #0x0 - ldr r4, _02006B30 ; =0x00000000 - beq _02006B28 - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedCharacterData - cmp r0, #0x0 - beq _02006B22 - ldr r1, [sp, #0x18] - cmp r1, #0x0 - beq _02006B0E - ldr r0, [sp, #0x4] - str r1, [r0, #0x10] -_02006B0E: - ldr r4, _02006B34 ; =UNK_020ECBA8 - lsl r5, r5, #0x2 - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x20] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x28] - ldr r4, [r4, r5] - blx r4 - ldr r0, [sp, #0x4] - ldr r4, [r0, #0x10] -_02006B22: - add r0, r6, #0x0 - bl FreeToHeap -_02006B28: - add r0, r4, #0x0 - add sp, #0x8 - pop {r4-r6, pc} - nop -_02006B30: .word 0x00000000 -_02006B34: .word UNK_020ECBA8 - thumb_func_start FUN_02006B38 FUN_02006B38: ; 0x02006B38 push {r4-r6, lr} diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h index e7852744f..aa30881e0 100644 --- a/arm9/lib/include/NNS_g2d.h +++ b/arm9/lib/include/NNS_g2d.h @@ -32,8 +32,112 @@ typedef struct NNSG2dScreenData } NNSG2dScreenData; +typedef struct NNSG2dPaletteData +{ -extern BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); -extern BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData ); + GXTexFmt fmt; + BOOL bExtendedPlt; + + u32 szByte; + void* pRawData; // offset addr of the content. + +} +NNSG2dPaletteData; + +typedef enum NNS_G2D_VRAM_TYPE +{ + NNS_G2D_VRAM_TYPE_3DMAIN = 0, + NNS_G2D_VRAM_TYPE_2DMAIN = 1, + NNS_G2D_VRAM_TYPE_2DSUB = 2, + NNS_G2D_VRAM_TYPE_MAX = 3 + +} NNS_G2D_VRAM_TYPE; + +typedef struct NNSG2dImageAttr +{ + GXTexSizeS sizeS; // Image size (Invalid data is set during 1D mapping.) + GXTexSizeT sizeT; // Image size (Invalid data is set during 1D mapping.) + + GXTexFmt fmt; // Image format + BOOL bExtendedPlt; // Whether or not to use the extended palette + + GXTexPlttColor0 plttUse; // How to use palette number 0 + GXOBJVRamModeChar mappingType; // Mapping mode +} +NNSG2dImageAttr; + +typedef struct NNSG2dVRamLocation +{ + u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ]; +} +NNSG2dVRamLocation; + +typedef struct NNSG2dImageProxy +{ + NNSG2dVRamLocation vramLocation; + NNSG2dImageAttr attr; +} +NNSG2dImageProxy; + +typedef struct NNSG2dPaletteCompressInfo +{ + u16 numPalette; + u16 pad16; + void* pPlttIdxTbl; // offset addr. + +} + NNSG2dPaletteCompressInfo; + +void NNS_G2dLoadImage1DMapping +( + const NNSG2dCharacterData* pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy* pImgProxy +); + +void NNS_G2dLoadImage2DMapping +( + const NNSG2dCharacterData* pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy* pImgProxy +); + +typedef struct NNSG2dImagePaletteProxy +{ + + GXTexFmt fmt; // palette format + // (Obtainable values are limited to GX_TEXFMT_PLTT16 and GX_TEXFMT_PLTT256) + + BOOL bExtendedPlt; // Use expanded palette? + + NNSG2dVRamLocation vramLocation; +} + NNSG2dImagePaletteProxy; + +void NNS_G2dLoadPalette +( + const NNSG2dPaletteData* pSrcData, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy* pPltProxy +); + +void NNS_G2dLoadPaletteEx +( + const NNSG2dPaletteData* pSrcData, + const NNSG2dPaletteCompressInfo* pCmpInfo, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy* pPltProxy +); + +BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); +BOOL NNS_G2dGetUnpackedCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); +BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData ); +BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); +BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); +BOOL NNS_G2dGetUnpackedPaletteCompressInfo( void* pNclrFile, NNSG2dPaletteCompressInfo** ppPltCmpInfo ); #endif //NNSYS_NNS_G2D_H diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index db2614ab2..83ca91194 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -39,3 +39,138 @@ THUMB_FUNC void FUN_020068C8(NarcId narcId, s32 memberNo, struct UnkStruct_02016 FreeToHeap(r7); } } + +void FUN_02006948(NarcId narcId, s32 memberNo, u32 r4, u32 r7, u32 r6, u32 r5, u32 heap_id); + +THUMB_FUNC void FUN_02006930(NarcId narcId, s32 memberNo, u32 r2, u32 r3, u32 sp10, u32 heap_id) +{ + FUN_02006948(narcId, memberNo, r2, 0, r3, sp10, heap_id); +} + +THUMB_FUNC void FUN_02006948(NarcId narcId, s32 memberNo, u32 r4, u32 r7, u32 r6, u32 r5, u32 heap_id) +{ + static void (*const UNK_020ECBB0[])(void *, u32, u32) = { + GX_LoadBGPltt, + GX_LoadOBJPltt, + GX_LoadBGExtPltt, + GX_LoadOBJExtPltt, + GXS_LoadBGPltt, + GXS_LoadOBJPltt, + GXS_LoadBGExtPltt, + GXS_LoadOBJExtPltt + }; + NNSG2dPaletteData * sp8; + void * sp4 = UncompressFromNarc(narcId, memberNo, FALSE, heap_id, TRUE); + if (sp4 != NULL) + { + if (NNS_G2dGetUnpackedPaletteData(sp4, &sp8)) + { + sp8->pRawData = (void *)((u32)sp8->pRawData + r7); + if (r5 == 0) + r5 = sp8->szByte - r7; + DC_FlushRange(sp8->pRawData, r5); + switch (r4) + { + case 2: + GX_BeginLoadBGExtPltt(); + UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + GX_EndLoadBGExtPltt(); + break; + case 6: + GXS_BeginLoadBGExtPltt(); + UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + GXS_EndLoadBGExtPltt(); + break; + case 3: + GX_BeginLoadOBJExtPltt(); + UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + GX_EndLoadOBJExtPltt(); + break; + case 7: + GXS_BeginLoadOBJExtPltt(); + UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + GXS_EndLoadOBJExtPltt(); + break; + default: + UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + break; + } + } + FreeToHeap(sp4); + } +} + +THUMB_FUNC u32 FUN_02006A34(NarcId narcId, s32 memberId, u32 r5, u32 r6, u32 r4, BOOL isCompressed, u32 heap_id) +{ + static void (*const UNK_020ECBA0[])(void *, u32, u32) = { + GX_LoadOBJ, + GXS_LoadOBJ + }; + + NNSG2dCharacterData* sp4; + void * r7 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + if (r7 != NULL) + { + if (NNS_G2dGetUnpackedCharacterData(r7, &sp4)) + { + if (r4 == 0) + r4 = sp4->szByte; + DC_FlushRange(sp4->pRawData, r4); + UNK_020ECBA0[r5](sp4->pRawData, r6, r4); + } + FreeToHeap(r7); + } + return r4; +} + +THUMB_FUNC void FUN_02006A8C(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE r5, u32 r4, u32 heap_id, NNSG2dImagePaletteProxy * sp24) +{ + void * r6 = UncompressFromNarc(narcId, memberId, FALSE, heap_id, TRUE); + NNSG2dPaletteData* sp8; + NNSG2dPaletteCompressInfo* sp4; + if (r6 != NULL) + { + BOOL r7 = NNS_G2dGetUnpackedPaletteCompressInfo(r6, &sp4); + if (NNS_G2dGetUnpackedPaletteData(r6, &sp8)) + { + if (r7) + { + NNS_G2dLoadPaletteEx(sp8, sp4, r4, r5, sp24); + } + else + { + NNS_G2dLoadPalette(sp8, r4, r5, sp24); + } + } + FreeToHeap(r6); + } +} + +THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 r5, u32 sp18, u32 sp1C, u32 sp20, u32 heap_id, NNSG2dImageProxy *sp28) +{ + static void (*const UNK_020ECBA8[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { + NNS_G2dLoadImage1DMapping, + NNS_G2dLoadImage2DMapping + }; + + void * r6 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + u32 r4 = 0; + NNSG2dCharacterData * sp4; + if (r6 != NULL) + { + if (NNS_G2dGetUnpackedCharacterData(r6, &sp4)) + { + if (sp18 != 0) + sp4->szByte = sp18; + UNK_020ECBA8[r5](sp4, sp20, sp1C, sp28); + r4 = sp4->szByte; + } + FreeToHeap(r6); + } + return r4; +} + +void (*const UNK_020ECB98[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { + NNS_G2dLoadImage1DMapping, + NNS_G2dLoadImage2DMapping +}; From 1521f64f6f055c9fd236a9e2c72ffe3860c5eb14 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 28 May 2021 08:47:42 -0400 Subject: [PATCH 119/134] FInish gf_gfx_loader.c --- arm9/arm9.lsf | 1 - arm9/asm/unk_02006864.s | 326 ----------------------------------- arm9/lib/include/GXS_ioreg.h | 64 +++++++ arm9/lib/include/NNS_g2d.h | 125 +++++++++++++- arm9/src/gf_gfx_loader.c | 206 ++++++++++++++++++++-- 5 files changed, 379 insertions(+), 343 deletions(-) delete mode 100644 arm9/asm/unk_02006864.s create mode 100644 arm9/lib/include/GXS_ioreg.h diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index fe1e31bc6..012cd7f50 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -22,7 +22,6 @@ Static arm9 Object overlay_manager.o Object filesystem.o Object gf_gfx_loader.o - Object unk_02006864.o Object unk_02006D98.o Object unk_02008AA4.o Object unk_02008DEC.o diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s deleted file mode 100644 index 0a8b7bf32..000000000 --- a/arm9/asm/unk_02006864.s +++ /dev/null @@ -1,326 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern UNK_020ECB98 - .extern UNK_020ECBA0 - .extern UNK_020ECBA8 - - .text - - thumb_func_start FUN_02006B38 -FUN_02006B38: ; 0x02006B38 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r3, #0x0 - mov r3, #0x1 - str r3, [sp, #0x0] - ldr r3, [sp, #0x24] - bl UncompressFromNarc - add r4, r0, #0x0 - beq _02006B9E - add r1, sp, #0x4 - bl NNS_G2dGetUnpackedCharacterData - cmp r0, #0x0 - beq _02006B98 - ldr r1, [sp, #0x18] - cmp r1, #0x0 - beq _02006B60 - ldr r0, [sp, #0x4] - str r1, [r0, #0x10] -_02006B60: - ldr r0, [sp, #0x1c] - cmp r0, #0x1 - beq _02006B6C - cmp r0, #0x2 - beq _02006B7C - b _02006B88 -_02006B6C: - mov r0, #0x1 - lsl r0, r0, #0x1a - ldr r1, [r0, #0x0] - ldr r0, _02006BA4 ; =0x00300010 - and r1, r0 - ldr r0, [sp, #0x4] - str r1, [r0, #0x8] - b _02006B88 -_02006B7C: - ldr r0, _02006BA8 ; =0x04001000 - ldr r1, [r0, #0x0] - ldr r0, _02006BA4 ; =0x00300010 - and r1, r0 - ldr r0, [sp, #0x4] - str r1, [r0, #0x8] -_02006B88: - lsl r6, r5, #0x2 - ldr r5, _02006BAC ; =UNK_020ECB98 - ldr r0, [sp, #0x4] - ldr r1, [sp, #0x20] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x28] - ldr r5, [r5, r6] - blx r5 -_02006B98: - add r0, r4, #0x0 - bl FreeToHeap -_02006B9E: - add sp, #0x8 - pop {r4-r6, pc} - nop -_02006BA4: .word 0x00300010 -_02006BA8: .word 0x04001000 -_02006BAC: .word UNK_020ECB98 - - thumb_func_start FUN_02006BB0 -FUN_02006BB0: ; 0x02006BB0 - push {r3-r5, lr} - add r4, r3, #0x0 - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r3, [sp, #0x10] - bl UncompressFromNarc - add r5, r0, #0x0 - beq _02006BD6 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedBGCharacterData - cmp r0, #0x0 - bne _02006BD6 - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r3-r5, pc} -_02006BD6: - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02006BDC -FUN_02006BDC: ; 0x02006BDC - push {r3-r5, lr} - add r4, r3, #0x0 - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r3, [sp, #0x10] - bl UncompressFromNarc - add r5, r0, #0x0 - beq _02006C02 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedScreenData - cmp r0, #0x0 - bne _02006C02 - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r3-r5, pc} -_02006C02: - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02006C08 -FUN_02006C08: ; 0x02006C08 - push {r3-r5, lr} - add r5, r2, #0x0 - mov r2, #0x0 - str r2, [sp, #0x0] - bl UncompressFromNarc - add r4, r0, #0x0 - beq _02006C2C - add r1, r5, #0x0 - bl NNS_G2dGetUnpackedPaletteData - cmp r0, #0x0 - bne _02006C2C - add r0, r4, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r3-r5, pc} -_02006C2C: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02006C30 -FUN_02006C30: ; 0x02006C30 - push {r3-r5, lr} - add r4, r3, #0x0 - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r3, [sp, #0x10] - bl UncompressFromNarc - add r5, r0, #0x0 - beq _02006C56 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedCellBank - cmp r0, #0x0 - bne _02006C56 - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r3-r5, pc} -_02006C56: - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02006C5C -FUN_02006C5C: ; 0x02006C5C - push {r3-r5, lr} - add r4, r3, #0x0 - mov r3, #0x0 - str r3, [sp, #0x0] - ldr r3, [sp, #0x10] - bl UncompressFromNarc - add r5, r0, #0x0 - beq _02006C82 - add r1, r4, #0x0 - bl NNS_G2dGetUnpackedAnimBank - cmp r0, #0x0 - bne _02006C82 - add r0, r5, #0x0 - bl FreeToHeap - mov r0, #0x0 - pop {r3-r5, pc} -_02006C82: - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02006C88 -FUN_02006C88: ; 0x02006C88 - push {r3, lr} - add r3, r2, #0x0 - mov r2, #0x0 - str r2, [sp, #0x0] - mov r2, #0x1 - bl UncompressFromNarc - pop {r3, pc} - - thumb_func_start UncompressFromNarc -UncompressFromNarc: ; 0x02006C98 - ; void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd) - push {r3-r7, lr} - add r5, r2, #0x0 - add r7, r0, #0x0 - add r6, r3, #0x0 - str r1, [sp, #0x0] - cmp r5, #0x0 - bne _02006CAC - ldr r2, [sp, #0x18] - cmp r2, #0x1 - bne _02006CC0 -_02006CAC: - ldr r1, [sp, #0x0] - add r0, r7, #0x0 - bl GetNarcMemberSizeByIdPair - add r1, r0, #0x0 - add r0, r6, #0x0 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - b _02006CCE -_02006CC0: - bl GetNarcMemberSizeByIdPair - add r1, r0, #0x0 - add r0, r6, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 -_02006CCE: - cmp r4, #0x0 - beq _02006D12 - ldr r2, [sp, #0x0] - add r0, r4, #0x0 - add r1, r7, #0x0 - bl ReadWholeNarcMemberByIdPair - cmp r5, #0x0 - beq _02006D12 - ldr r0, [sp, #0x18] - cmp r0, #0x0 - bne _02006CF2 - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - lsr r1, r1, #0x8 - bl AllocFromHeap - b _02006CFC -_02006CF2: - ldr r1, [r4, #0x0] - add r0, r6, #0x0 - lsr r1, r1, #0x8 - bl AllocFromHeapAtEnd -_02006CFC: - add r5, r0, #0x0 - cmp r5, #0x0 - beq _02006D10 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl MI_UncompressLZ8 - add r0, r4, #0x0 - bl FreeToHeap -_02006D10: - add r4, r5, #0x0 -_02006D12: - add r0, r4, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02006D18 -FUN_02006D18: ; 0x02006D18 - push {r3-r7, lr} - sub sp, #0x8 - ldr r5, [sp, #0x24] - str r0, [sp, #0x0] - str r1, [sp, #0x4] - add r6, r2, #0x0 - add r7, r3, #0x0 - bl GetNarcMemberSizeByIdPair - str r0, [r5, #0x0] - cmp r6, #0x0 - bne _02006D36 - ldr r0, [sp, #0x20] - cmp r0, #0x1 - bne _02006D42 -_02006D36: - ldr r1, [r5, #0x0] - add r0, r7, #0x0 - bl AllocFromHeapAtEnd - add r4, r0, #0x0 - b _02006D4C -_02006D42: - ldr r1, [r5, #0x0] - add r0, r7, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 -_02006D4C: - cmp r4, #0x0 - beq _02006D92 - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r4, #0x0 - bl ReadWholeNarcMemberByIdPair - cmp r6, #0x0 - beq _02006D92 - ldr r0, [r4, #0x0] - lsr r0, r0, #0x8 - str r0, [r5, #0x0] - ldr r0, [sp, #0x20] - cmp r0, #0x0 - bne _02006D74 - ldr r1, [r5, #0x0] - add r0, r7, #0x0 - bl AllocFromHeap - b _02006D7C -_02006D74: - ldr r1, [r5, #0x0] - add r0, r7, #0x0 - bl AllocFromHeapAtEnd -_02006D7C: - add r5, r0, #0x0 - cmp r5, #0x0 - beq _02006D90 - add r0, r4, #0x0 - add r1, r5, #0x0 - bl MI_UncompressLZ8 - add r0, r4, #0x0 - bl FreeToHeap -_02006D90: - add r4, r5, #0x0 -_02006D92: - add r0, r4, #0x0 - add sp, #0x8 - pop {r3-r7, pc} diff --git a/arm9/lib/include/GXS_ioreg.h b/arm9/lib/include/GXS_ioreg.h new file mode 100644 index 000000000..1c66c4aff --- /dev/null +++ b/arm9/lib/include/GXS_ioreg.h @@ -0,0 +1,64 @@ +#ifndef POKEDIAMOND_GXS_IOREG_H +#define POKEDIAMOND_GXS_IOREG_H + +#define REG_GXS_DB_DISPCNT_O_SHIFT 31 +#define REG_GXS_DB_DISPCNT_O_SIZE 1 +#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 + +#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 +#define REG_GXS_DB_DISPCNT_BG_SIZE 1 +#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 + +#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 +#define REG_GXS_DB_DISPCNT_OH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000 + +#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000 + +#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 +#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 +#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000 + +#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 +#define REG_GXS_DB_DISPCNT_OW_SIZE 1 +#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000 + +#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 +#define REG_GXS_DB_DISPCNT_W1_SIZE 1 +#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000 + +#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 +#define REG_GXS_DB_DISPCNT_W0_SIZE 1 +#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000 + +#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 +#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00 + +#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 +#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 +#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080 + +#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 +#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070 + +#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 +#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 +#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007 + +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010 + +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060 + +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 + +#endif //POKEDIAMOND_GXS_IOREG_H diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h index aa30881e0..722f47675 100644 --- a/arm9/lib/include/NNS_g2d.h +++ b/arm9/lib/include/NNS_g2d.h @@ -53,6 +53,17 @@ typedef enum NNS_G2D_VRAM_TYPE } NNS_G2D_VRAM_TYPE; +typedef enum NNSG2dCharacterDataMapingType +{ + NNS_G2D_CHARACTERMAPING_1D_32, + NNS_G2D_CHARACTERMAPING_1D_64, + NNS_G2D_CHARACTERMAPING_1D_128, + NNS_G2D_CHARACTERMAPING_1D_256, + NNS_G2D_CHARACTERMAPING_2D, + NNS_G2D_CHARACTERMAPING_MAX + +} NNSG2dCharacterDataMapingType; + typedef struct NNSG2dImageAttr { GXTexSizeS sizeS; // Image size (Invalid data is set during 1D mapping.) @@ -86,7 +97,7 @@ typedef struct NNSG2dPaletteCompressInfo void* pPlttIdxTbl; // offset addr. } - NNSG2dPaletteCompressInfo; +NNSG2dPaletteCompressInfo; void NNS_G2dLoadImage1DMapping ( @@ -114,7 +125,7 @@ typedef struct NNSG2dImagePaletteProxy NNSG2dVRamLocation vramLocation; } - NNSG2dImagePaletteProxy; +NNSG2dImagePaletteProxy; void NNS_G2dLoadPalette ( @@ -133,11 +144,121 @@ void NNS_G2dLoadPaletteEx NNSG2dImagePaletteProxy* pPltProxy ); +typedef struct NNSG2dCellVramTransferData +{ + u32 srcDataOffset; + u32 szByte; + +} +NNSG2dCellVramTransferData; + +typedef struct NNSG2dVramTransferData +{ + u32 szByteMax; // Maximum byte count during all VRAM transfers + NNSG2dCellVramTransferData* pCellTransferDataArray;// This is the length of the numCells amount of the maintained NNSG2dCellDataBank. + // + +} +NNSG2dVramTransferData; + +typedef struct NNSG2dCellOAMAttrData +{ + u16 attr0; + u16 attr1; + u16 attr2; + +} +NNSG2dCellOAMAttrData; + +typedef struct NNSG2dCellData +{ + u16 numOAMAttrs; // Number of OAM attributes + u16 cellAttr; // Information related to cell type + // Information related to flips (upper 8 bits) + // Information related to bounding information + // + // Information related to rendering optimization (lower 8 bits) + // (6bit => Radius of bounding sphere >> 2 ) + + + NNSG2dCellOAMAttrData* pOamAttrArray; // Pointer to the NNSG2dCellOAMAttrData array + +} +NNSG2dCellData; + +typedef struct NNSG2dCellDataBank +{ + u16 numCells; // Total number of cells + u16 cellBankAttr; // Attribute + NNSG2dCellData* pCellDataArrayHead; // offset address + NNSG2dCharacterDataMapingType mappingMode; // Mapping mode of the referenced character + + NNSG2dVramTransferData* pVramTransferData; // Information related to Vram transfer animation + + void* pStringBank; // Character string bank + void* pExtendedData; // offset addr (if it exists) + + +} +NNSG2dCellDataBank; + +typedef enum NNSG2dAnimationPlayMode +{ + NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, // Disabled + NNS_G2D_ANIMATIONPLAYMODE_FORWARD, // one-time playback (forward) + NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, // repeat playback (forward loop) + NNS_G2D_ANIMATIONPLAYMODE_REVERSE, // reverse playback (reverse (forward + backward)) + NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, // reverse playback repeat (reverse (forward + backward) loop) + NNS_G2D_ANIMATIONPLAYMODE_MAX +} +NNSG2dAnimationPlayMode; + +typedef struct NNSG2dAnimFrameData +{ + void* pContent; // pointer to animation result + u16 frames; // animation frame continuation time (units: video frames) + u16 pad16; // padding + +} +NNSG2dAnimFrameData; + +typedef struct NNSG2dAnimSequenceData +{ + u16 numFrames; // number of animation frames forming the sequence + u16 loopStartFrameIdx; // loop start animation frame number + + u32 animType; // animation type (upper 16 bits) + // animation elements (lower 16 bits) + // (What's referenced by NNSG2dAnimFrameData.pContent is changed) + + NNSG2dAnimationPlayMode playMode; // animation sequence playback method + NNSG2dAnimFrameData* pAnmFrameArray; // offset from the head of pFrameArray. + +} +NNSG2dAnimSequenceData; + +typedef struct NNSG2dAnimBankData +{ + + u16 numSequences; // number of animation sequences + u16 numTotalFrames; // total number of animation frames + NNSG2dAnimSequenceData* pSequenceArrayHead; // pointer to animation sequence array + NNSG2dAnimFrameData* pFrameArrayHead; // pointer to animation frame array + void* pAnimContents; // pointer to animation result array + void* pStringBank; // pointer to string bank (set during execution) + void* pExtendedData; // pointer to library expansion area (not used) + +} +NNSG2dAnimBankData; + + BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); BOOL NNS_G2dGetUnpackedCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData ); BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); BOOL NNS_G2dGetUnpackedPaletteCompressInfo( void* pNclrFile, NNSG2dPaletteCompressInfo** ppPltCmpInfo ); +BOOL NNS_G2dGetUnpackedCellBank( void* pNcerFile, NNSG2dCellDataBank** ppCellBank ); +BOOL NNS_G2dGetUnpackedAnimBank( void* pNanrFile, NNSG2dAnimBankData** ppAnimBank ); #endif //NNSYS_NNS_G2D_H diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index 83ca91194..d9d6d4118 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -2,6 +2,7 @@ #include "filesystem.h" #include "NNS_g2d.h" #include "unk_02016B94.h" +#include "GXS_ioreg.h" void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); @@ -146,31 +147,208 @@ THUMB_FUNC void FUN_02006A8C(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE r5, } } -THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 r5, u32 sp18, u32 sp1C, u32 sp20, u32 heap_id, NNSG2dImageProxy *sp28) +THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy) { static void (*const UNK_020ECBA8[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { NNS_G2dLoadImage1DMapping, NNS_G2dLoadImage2DMapping }; - void * r6 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); - u32 r4 = 0; - NNSG2dCharacterData * sp4; - if (r6 != NULL) + void * pFile = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + u32 retSize = 0; + NNSG2dCharacterData * pSrcData; + if (pFile != NULL) { - if (NNS_G2dGetUnpackedCharacterData(r6, &sp4)) + if (NNS_G2dGetUnpackedCharacterData(pFile, &pSrcData)) + { + if (szByte != 0) + pSrcData->szByte = szByte; + UNK_020ECBA8[whichRoutine](pSrcData, baseAddr, type, pImgProxy); + retSize = pSrcData->szByte; + } + FreeToHeap(pFile); + } + return retSize; +} + +THUMB_FUNC void FUN_02006B38(NarcId narcId, s32 memberId, BOOL isCompressed, u32 r5, u32 sp18, NNS_G2D_VRAM_TYPE sp1C, u32 sp20, u32 heap_id, NNSG2dImageProxy * sp28) +{ + static void (*const UNK_020ECB98[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { + NNS_G2dLoadImage1DMapping, + NNS_G2dLoadImage2DMapping + }; + NNSG2dCharacterData * sp4; + void * r4 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + if (r4 != NULL) + { + if (NNS_G2dGetUnpackedCharacterData(r4, &sp4)) { if (sp18 != 0) sp4->szByte = sp18; - UNK_020ECBA8[r5](sp4, sp20, sp1C, sp28); - r4 = sp4->szByte; + switch (sp1C) + { + case NNS_G2D_VRAM_TYPE_2DMAIN: + sp4->mapingType = reg_GX_DISPCNT & (REG_GX_DISPCNT_EXOBJ_CH_MASK | REG_GX_DISPCNT_OBJMAP_CH_MASK); + break; + case NNS_G2D_VRAM_TYPE_2DSUB: + sp4->mapingType = reg_GXS_DB_DISPCNT & (REG_GXS_DB_DISPCNT_EXOBJ_MASK | REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK); + break; + default: + ; + } + UNK_020ECB98[r5](sp4, sp20, sp1C, sp28); } - FreeToHeap(r6); + FreeToHeap(r4); } - return r4; } -void (*const UNK_020ECB98[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { - NNS_G2dLoadImage1DMapping, - NNS_G2dLoadImage2DMapping -}; +THUMB_FUNC void * FUN_02006BB0(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** r4, u32 heap_id) +{ + void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (r5 != NULL) + { + if (!NNS_G2dGetUnpackedBGCharacterData(r5, r4)) + { + FreeToHeap(r5); + return NULL; + } + } + return r5; +} + +THUMB_FUNC void * FUN_02006BDC(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** r4, u32 heap_id) +{ + void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (r5 != NULL) + { + if (!NNS_G2dGetUnpackedScreenData(r5, r4)) + { + FreeToHeap(r5); + return NULL; + } + } + return r5; +} + +THUMB_FUNC void * FUN_02006C08(NarcId narcId, s32 memberId, NNSG2dPaletteData ** r4, u32 heap_id) +{ + void * r5 = UncompressFromNarc(narcId, memberId, FALSE, heap_id, FALSE); + if (r5 != NULL) + { + if (!NNS_G2dGetUnpackedPaletteData(r5, r4)) + { + FreeToHeap(r5); + return NULL; + } + } + return r5; +} + +THUMB_FUNC void * FUN_02006C30(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCellDataBank ** r4, u32 heap_id) +{ + void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (r5 != NULL) + { + if (!NNS_G2dGetUnpackedCellBank(r5, r4)) + { + FreeToHeap(r5); + return NULL; + } + } + return r5; +} + +THUMB_FUNC void * FUN_02006C5C(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dAnimBankData ** r4, u32 heap_id) +{ + void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (r5 != NULL) + { + if (!NNS_G2dGetUnpackedAnimBank(r5, r4)) + { + FreeToHeap(r5); + return NULL; + } + } + return r5; +} + +THUMB_FUNC void * FUN_02006C88(NarcId narcId, s32 memberId, u32 heap_id) +{ + return UncompressFromNarc(narcId, memberId, TRUE, heap_id, FALSE); +} + +THUMB_FUNC void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd) +{ + void * dest; + void * dest2; + if (isCompressed || allocAtEnd == TRUE) + { + u32 size = GetNarcMemberSizeByIdPair(narcId, memberNo); + dest = AllocFromHeapAtEnd(heap_id, size); + } + else + { + u32 size = GetNarcMemberSizeByIdPair(narcId, memberNo); + dest = AllocFromHeap(heap_id, size); + } + if (dest != NULL) + { + ReadWholeNarcMemberByIdPair(dest, narcId, memberNo); + if (isCompressed) + { + if (allocAtEnd == FALSE) + { + dest2 = AllocFromHeap(heap_id, (*(u32 *)dest) >> 8); + } + else + { + dest2 = AllocFromHeapAtEnd(heap_id, (*(u32 *)dest) >> 8); + } + if (dest2 != NULL) + { + MI_UncompressLZ8(dest, dest2); + FreeToHeap(dest); + } + dest = dest2; // UB: if dest2 is NULL, dest is never freed + } + } + return dest; +} + +THUMB_FUNC void * FUN_02006D18(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd, u32 *size_p) +{ + void * dest; + void * dest2; + *size_p = GetNarcMemberSizeByIdPair(narcId, memberNo); + if (isCompressed || allocAtEnd == TRUE) + { + dest = AllocFromHeapAtEnd(heap_id, *size_p); + } + else + { + dest = AllocFromHeap(heap_id, *size_p); + } + if (dest != NULL) + { + ReadWholeNarcMemberByIdPair(dest, narcId, memberNo); + if (isCompressed) + { + *size_p = (*(u32 *)dest) >> 8; + if (allocAtEnd == FALSE) + { + dest2 = AllocFromHeap(heap_id, *size_p); + } + else + { + dest2 = AllocFromHeapAtEnd(heap_id, *size_p); + } + if (dest2 != NULL) + { + MI_UncompressLZ8(dest, dest2); + FreeToHeap(dest); + } + dest = dest2; // UB: if dest2 is NULL, dest is never freed + } + } + return dest; +} From dfdc75489d7cfe5df032a2a64046dfec48e86833 Mon Sep 17 00:00:00 2001 From: tgsm Date: Sat, 29 May 2021 10:19:50 -0400 Subject: [PATCH 120/134] scrcmd: Properly name all unknown script commands Also capitalizes any lowercase command names. --- arm9/asm/scrcmd_10.s | 76 +-- arm9/asm/scrcmd_12.s | 4 +- arm9/asm/scrcmd_17.s | 12 +- arm9/asm/scrcmd_18.s | 144 ++--- arm9/asm/scrcmd_3.s | 132 ++-- arm9/asm/scrcmd_5.s | 12 +- arm9/asm/scrcmd_7.s | 76 +-- arm9/asm/scrcmd_9.s | 24 +- arm9/asm/scrcmd_asm.s | 1318 +++++++++++++++++++-------------------- arm9/asm/unk_02038C78.s | 898 +++++++++++++------------- arm9/global.inc | 898 +++++++++++++------------- 11 files changed, 1797 insertions(+), 1797 deletions(-) diff --git a/arm9/asm/scrcmd_10.s b/arm9/asm/scrcmd_10.s index ea5903d80..3235f5ae5 100644 --- a/arm9/asm/scrcmd_10.s +++ b/arm9/asm/scrcmd_10.s @@ -27,8 +27,8 @@ UNK_020F4340: ; 0x020F4340 .text - thumb_func_start FUN_02042354 -FUN_02042354: ; 0x02042354 + thumb_func_start ScrCmd_Unk01DA +ScrCmd_Unk01DA: ; 0x02042354 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -37,8 +37,8 @@ FUN_02042354: ; 0x02042354 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_02042364 -FUN_02042364: ; 0x02042364 + thumb_func_start ScrCmd_Unk01DB +ScrCmd_Unk01DB: ; 0x02042364 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -60,8 +60,8 @@ FUN_02042364: ; 0x02042364 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02042394 -FUN_02042394: ; 0x02042394 + thumb_func_start ScrCmd_Unk01DC +ScrCmd_Unk01DC: ; 0x02042394 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -76,8 +76,8 @@ FUN_02042394: ; 0x02042394 str r0, [r1, #0x0] pop {r4, pc} - thumb_func_start FUN_020423B0 -FUN_020423B0: ; 0x020423B0 + thumb_func_start ScrCmd_Unk01DD +ScrCmd_Unk01DD: ; 0x020423B0 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 @@ -502,8 +502,8 @@ _020426FA: add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_02042700 -FUN_02042700: ; 0x02042700 + thumb_func_start ScrCmd_Unk01DE +ScrCmd_Unk01DE: ; 0x02042700 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -561,8 +561,8 @@ FUN_02042700: ; 0x02042700 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02042780 -FUN_02042780: ; 0x02042780 + thumb_func_start ScrCmd_Unk01DF +ScrCmd_Unk01DF: ; 0x02042780 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -581,8 +581,8 @@ FUN_02042780: ; 0x02042780 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020427A8 -FUN_020427A8: ; 0x020427A8 + thumb_func_start ScrCmd_Unk01E0 +ScrCmd_Unk01E0: ; 0x020427A8 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -601,8 +601,8 @@ FUN_020427A8: ; 0x020427A8 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020427D0 -FUN_020427D0: ; 0x020427D0 + thumb_func_start ScrCmd_Unk01E1 +ScrCmd_Unk01E1: ; 0x020427D0 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -671,8 +671,8 @@ _0204284C: _0204285C: .word 0x00000884 _02042860: .word 0x0000083E - thumb_func_start FUN_02042864 -FUN_02042864: ; 0x02042864 + thumb_func_start ScrCmd_Unk01E2 +ScrCmd_Unk01E2: ; 0x02042864 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -694,8 +694,8 @@ FUN_02042864: ; 0x02042864 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02042894 -FUN_02042894: ; 0x02042894 + thumb_func_start ScrCmd_Unk01E3 +ScrCmd_Unk01E3: ; 0x02042894 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -729,8 +729,8 @@ FUN_02042894: ; 0x02042894 add sp, #0x4 pop {r3-r6, pc} - thumb_func_start FUN_020428E0 -FUN_020428E0: ; 0x020428E0 + thumb_func_start ScrCmd_Unk01E4 +ScrCmd_Unk01E4: ; 0x020428E0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -792,8 +792,8 @@ _02042948: .balign 4 _0204294C: .word UNK_020F4334 - thumb_func_start FUN_02042950 -FUN_02042950: ; 0x02042950 + thumb_func_start ScrCmd_Unk0294 +ScrCmd_Unk0294: ; 0x02042950 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -817,8 +817,8 @@ FUN_02042950: ; 0x02042950 mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start FUN_02042980 -FUN_02042980: ; 0x02042980 + thumb_func_start ScrCmd_Unk0295 +ScrCmd_Unk0295: ; 0x02042980 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -830,8 +830,8 @@ FUN_02042980: ; 0x02042980 pop {r3, pc} .balign 4 - thumb_func_start FUN_02042998 -FUN_02042998: ; 0x02042998 + thumb_func_start ScrCmd_Unk0296 +ScrCmd_Unk0296: ; 0x02042998 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -847,8 +847,8 @@ FUN_02042998: ; 0x02042998 pop {r4, pc} .balign 4 - thumb_func_start FUN_020429B8 -FUN_020429B8: ; 0x020429B8 + thumb_func_start ScrCmd_Unk0297 +ScrCmd_Unk0297: ; 0x020429B8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -870,8 +870,8 @@ FUN_020429B8: ; 0x020429B8 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_020429E8 -FUN_020429E8: ; 0x020429E8 + thumb_func_start ScrCmd_Unk0298 +ScrCmd_Unk0298: ; 0x020429E8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -893,8 +893,8 @@ FUN_020429E8: ; 0x020429E8 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02042A18 -FUN_02042A18: ; 0x02042A18 + thumb_func_start ScrCmd_Unk0299 +ScrCmd_Unk0299: ; 0x02042A18 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -916,8 +916,8 @@ FUN_02042A18: ; 0x02042A18 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02042A48 -FUN_02042A48: ; 0x02042A48 + thumb_func_start ScrCmd_Unk029A +ScrCmd_Unk029A: ; 0x02042A48 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -955,8 +955,8 @@ _02042A90: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_02042A98 -FUN_02042A98: ; 0x02042A98 + thumb_func_start ScrCmd_Unk029B +ScrCmd_Unk029B: ; 0x02042A98 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword diff --git a/arm9/asm/scrcmd_12.s b/arm9/asm/scrcmd_12.s index cc011b0fa..25911feb3 100644 --- a/arm9/asm/scrcmd_12.s +++ b/arm9/asm/scrcmd_12.s @@ -47,8 +47,8 @@ FUN_02042D10: ; 0x02042D10 bl FUN_0202B020 pop {r3, pc} - thumb_func_start FUN_02042D1C -FUN_02042D1C: ; 0x02042D1C + thumb_func_start ScrCmd_Unk023E +ScrCmd_Unk023E: ; 0x02042D1C push {r3-r7, lr} sub sp, #0x20 add r4, r0, #0x0 diff --git a/arm9/asm/scrcmd_17.s b/arm9/asm/scrcmd_17.s index f0e027ed0..3df4d6e47 100644 --- a/arm9/asm/scrcmd_17.s +++ b/arm9/asm/scrcmd_17.s @@ -16,8 +16,8 @@ UNK_020F4494: ; 0x020F4494 .text - thumb_func_start FUN_02044158 -FUN_02044158: ; 0x02044158 + thumb_func_start ScrCmd_Unk0215 +ScrCmd_Unk0215: ; 0x02044158 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -27,8 +27,8 @@ FUN_02044158: ; 0x02044158 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0204416C -FUN_0204416C: ; 0x0204416C + thumb_func_start ScrCmd_Unk0216 +ScrCmd_Unk0216: ; 0x0204416C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -48,8 +48,8 @@ FUN_0204416C: ; 0x0204416C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02044198 -FUN_02044198: ; 0x02044198 + thumb_func_start ScrCmd_Unk0217 +ScrCmd_Unk0217: ; 0x02044198 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword diff --git a/arm9/asm/scrcmd_18.s b/arm9/asm/scrcmd_18.s index fe0e3aa90..25fe86b85 100644 --- a/arm9/asm/scrcmd_18.s +++ b/arm9/asm/scrcmd_18.s @@ -3,8 +3,8 @@ .text - thumb_func_start ScrCmd_getpartyspecies -ScrCmd_getpartyspecies: ; 0x0204434C + thumb_func_start ScrCmd_GetPartySpecies +ScrCmd_GetPartySpecies: ; 0x0204434C ; getpartyspecies XXXX, YYYY ; Sets var YYYY to species of mon in party slot XXXX. ; If mon is an egg, the value is SPECIES_NONE. @@ -49,8 +49,8 @@ _020443A2: mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start ScrCmd_checkpartymonotid -ScrCmd_checkpartymonotid: ; 0x020443A8 + thumb_func_start ScrCmd_CheckPartyMonOTID +ScrCmd_CheckPartyMonOTID: ; 0x020443A8 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 @@ -98,8 +98,8 @@ _0204440E: mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start ScrCmd_giveegg -ScrCmd_giveegg: ; 0x02044414 + thumb_func_start ScrCmd_GiveEgg +ScrCmd_GiveEgg: ; 0x02044414 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -157,8 +157,8 @@ _02044494: pop {r4-r7, pc} .balign 4 - thumb_func_start ScrCmd_setpartymonmove -ScrCmd_setpartymonmove: ; 0x0204449C + thumb_func_start ScrCmd_SetPartyMonMove +ScrCmd_SetPartyMonMove: ; 0x0204449C push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -196,8 +196,8 @@ ScrCmd_setpartymonmove: ; 0x0204449C pop {r3-r7, pc} .balign 4 - thumb_func_start ScrCmd_partymonhasmove -ScrCmd_partymonhasmove: ; 0x020444F4 + thumb_func_start ScrCmd_PartyMonHasMove +ScrCmd_PartyMonHasMove: ; 0x020444F4 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -271,8 +271,8 @@ _02044592: pop {r3-r7, pc} .balign 4 - thumb_func_start ScrCmd_findpartymonwithmove -ScrCmd_findpartymonwithmove: ; 0x02044598 + thumb_func_start ScrCmd_FindPartyMonWithMove +ScrCmd_FindPartyMonWithMove: ; 0x02044598 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -359,8 +359,8 @@ _02044648: _02044650: .word 0x00000006 _02044654: .word 0x00000000 - thumb_func_start ScrCmd_survivepsn -ScrCmd_survivepsn: ; 0x02044658 + thumb_func_start ScrCmd_SurvivePsn +ScrCmd_SurvivePsn: ; 0x02044658 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -389,8 +389,8 @@ ScrCmd_survivepsn: ; 0x02044658 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start ScrCmd_countpartymonsatorbelowlevel -ScrCmd_countpartymonsatorbelowlevel: ; 0x0204469C + thumb_func_start ScrCmd_CountPartyMonsAtOrBelowLevel +ScrCmd_CountPartyMonsAtOrBelowLevel: ; 0x0204469C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 @@ -459,8 +459,8 @@ _02044726: add sp, #0xc pop {r4-r7, pc} - thumb_func_start ScrCmd_getpartymonlevel -ScrCmd_getpartymonlevel: ; 0x02044730 + thumb_func_start ScrCmd_GetPartyMonLevel +ScrCmd_GetPartyMonLevel: ; 0x02044730 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -501,8 +501,8 @@ _02044786: pop {r4-r6, pc} .balign 4 - thumb_func_start ScrCmd_getpartymonnature -ScrCmd_getpartymonnature: ; 0x0204478C + thumb_func_start ScrCmd_GetPartyMonNature +ScrCmd_GetPartyMonNature: ; 0x0204478C push {r4-r6, lr} add r6, r0, #0x0 add r1, r6, #0x0 @@ -554,8 +554,8 @@ _020447F2: pop {r4-r6, pc} .balign 4 - thumb_func_start ScrCmd_findpartymonwithnature -ScrCmd_findpartymonwithnature: ; 0x02044800 + thumb_func_start ScrCmd_FindPartyMonWithNature +ScrCmd_FindPartyMonWithNature: ; 0x02044800 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -619,8 +619,8 @@ _0204487E: _02044884: .word 0x000000FF _02044888: .word 0x00000000 - thumb_func_start ScrCmd_getpartymonfriendship -ScrCmd_getpartymonfriendship: ; 0x0204488C + thumb_func_start ScrCmd_GetPartyMonFriendship +ScrCmd_GetPartyMonFriendship: ; 0x0204488C push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -651,8 +651,8 @@ ScrCmd_getpartymonfriendship: ; 0x0204488C mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_020448D4 -FUN_020448D4: ; 0x020448D4 + thumb_func_start ScrCmd_Unk01BA +ScrCmd_Unk01BA: ; 0x020448D4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -748,8 +748,8 @@ _02044994: add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_020449A4 -FUN_020449A4: ; 0x020449A4 + thumb_func_start ScrCmd_Unk01BB +ScrCmd_Unk01BB: ; 0x020449A4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -797,8 +797,8 @@ _020449FA: add sp, #0x4 pop {r3-r6, pc} - thumb_func_start FUN_02044A0C -FUN_02044A0C: ; 0x02044A0C + thumb_func_start ScrCmd_Unk0281 +ScrCmd_Unk0281: ; 0x02044A0C push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -839,8 +839,8 @@ FUN_02044A0C: ; 0x02044A0C pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02044A6C -FUN_02044A6C: ; 0x02044A6C + thumb_func_start ScrCmd_Unk0247 +ScrCmd_Unk0247: ; 0x02044A6C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -859,8 +859,8 @@ FUN_02044A6C: ; 0x02044A6C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02044A94 -FUN_02044A94: ; 0x02044A94 + thumb_func_start ScrCmd_Unk0248 +ScrCmd_Unk0248: ; 0x02044A94 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -906,8 +906,8 @@ FUN_02044A94: ; 0x02044A94 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02044B00 -FUN_02044B00: ; 0x02044B00 + thumb_func_start ScrCmd_Unk0177 +ScrCmd_Unk0177: ; 0x02044B00 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -927,8 +927,8 @@ FUN_02044B00: ; 0x02044B00 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02044B2C -FUN_02044B2C: ; 0x02044B2C + thumb_func_start ScrCmd_Unk019A +ScrCmd_Unk019A: ; 0x02044B2C push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -970,8 +970,8 @@ _02044B7A: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02044B84 -FUN_02044B84: ; 0x02044B84 + thumb_func_start ScrCmd_Unk019B +ScrCmd_Unk019B: ; 0x02044B84 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 @@ -1034,8 +1034,8 @@ _02044C00: pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_02044C0C -FUN_02044C0C: ; 0x02044C0C + thumb_func_start ScrCmd_Unk019C +ScrCmd_Unk019C: ; 0x02044C0C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 @@ -1092,8 +1092,8 @@ _02044C76: add sp, #0xc pop {r4-r7, pc} - thumb_func_start FUN_02044C88 -FUN_02044C88: ; 0x02044C88 + thumb_func_start ScrCmd_Unk019D +ScrCmd_Unk019D: ; 0x02044C88 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -1135,8 +1135,8 @@ _02044CD6: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02044CE0 -FUN_02044CE0: ; 0x02044CE0 + thumb_func_start ScrCmd_Unk0119 +ScrCmd_Unk0119: ; 0x02044CE0 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -1184,8 +1184,8 @@ _02044D3C: .balign 4 _02044D40: .word 0x00000000 - thumb_func_start FUN_02044D44 -FUN_02044D44: ; 0x02044D44 + thumb_func_start ScrCmd_Unk011A +ScrCmd_Unk011A: ; 0x02044D44 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1216,8 +1216,8 @@ FUN_02044D44: ; 0x02044D44 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02044D8C -FUN_02044D8C: ; 0x02044D8C + thumb_func_start ScrCmd_Unk01C8 +ScrCmd_Unk01C8: ; 0x02044D8C push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -1297,8 +1297,8 @@ _02044E2C: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_02044E34 -FUN_02044E34: ; 0x02044E34 + thumb_func_start ScrCmd_Unk01C9 +ScrCmd_Unk01C9: ; 0x02044E34 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -1327,8 +1327,8 @@ FUN_02044E34: ; 0x02044E34 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02044E78 -FUN_02044E78: ; 0x02044E78 + thumb_func_start ScrCmd_Unk01CA +ScrCmd_Unk01CA: ; 0x02044E78 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -1369,8 +1369,8 @@ FUN_02044E78: ; 0x02044E78 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02044ED8 -FUN_02044ED8: ; 0x02044ED8 + thumb_func_start ScrCmd_Unk01EE +ScrCmd_Unk01EE: ; 0x02044ED8 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -1401,8 +1401,8 @@ FUN_02044ED8: ; 0x02044ED8 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02044F20 -FUN_02044F20: ; 0x02044F20 + thumb_func_start ScrCmd_Unk01F0 +ScrCmd_Unk01F0: ; 0x02044F20 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -1427,8 +1427,8 @@ FUN_02044F20: ; 0x02044F20 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_02044F58 -FUN_02044F58: ; 0x02044F58 + thumb_func_start ScrCmd_Unk01C0 +ScrCmd_Unk01C0: ; 0x02044F58 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -1495,8 +1495,8 @@ _02044FDE: .balign 4 _02044FE4: .word 0x00000000 - thumb_func_start FUN_02044FE8 -FUN_02044FE8: ; 0x02044FE8 + thumb_func_start ScrCmd_Unk022E +ScrCmd_Unk022E: ; 0x02044FE8 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1550,8 +1550,8 @@ _02045048: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0204505C -FUN_0204505C: ; 0x0204505C + thumb_func_start ScrCmd_Unk022F +ScrCmd_Unk022F: ; 0x0204505C push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 @@ -1632,8 +1632,8 @@ _020450E8: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02045104 -FUN_02045104: ; 0x02045104 + thumb_func_start ScrCmd_Unk0230 +ScrCmd_Unk0230: ; 0x02045104 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1679,8 +1679,8 @@ FUN_02045104: ; 0x02045104 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02045170 -FUN_02045170: ; 0x02045170 + thumb_func_start ScrCmd_Unk0231 +ScrCmd_Unk0231: ; 0x02045170 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -1722,8 +1722,8 @@ FUN_02045170: ; 0x02045170 pop {r3-r6, pc} .balign 4 - thumb_func_start FUN_020451D0 -FUN_020451D0: ; 0x020451D0 + thumb_func_start ScrCmd_Unk02B7 +ScrCmd_Unk02B7: ; 0x020451D0 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -1795,7 +1795,7 @@ _0204524C: add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_02045264 -FUN_02045264: ; 0x02045264 + thumb_func_start ScrCmd_Unk00A0 +ScrCmd_Unk00A0: ; 0x02045264 mov r0, #0x0 bx lr diff --git a/arm9/asm/scrcmd_3.s b/arm9/asm/scrcmd_3.s index 4568c5909..b0a515ef6 100644 --- a/arm9/asm/scrcmd_3.s +++ b/arm9/asm/scrcmd_3.s @@ -3,8 +3,8 @@ .text - thumb_func_start FUN_0203FE90 -FUN_0203FE90: ; 0x0203FE90 + thumb_func_start ScrCmd_Unk00F8 +ScrCmd_Unk00F8: ; 0x0203FE90 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -26,8 +26,8 @@ FUN_0203FE90: ; 0x0203FE90 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203FEC0 -FUN_0203FEC0: ; 0x0203FEC0 + thumb_func_start ScrCmd_Unk00F9 +ScrCmd_Unk00F9: ; 0x0203FEC0 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -65,8 +65,8 @@ FUN_0203FEF4: ; 0x0203FEF4 bl FUN_02082158 pop {r4, pc} - thumb_func_start FUN_0203FF10 -FUN_0203FF10: ; 0x0203FF10 + thumb_func_start ScrCmd_Unk00FA +ScrCmd_Unk00FA: ; 0x0203FF10 push {r3-r7, lr} sub sp, #0x38 add r5, r0, #0x0 @@ -185,8 +185,8 @@ FUN_0203FF10: ; 0x0203FF10 add sp, #0x38 pop {r3-r7, pc} - thumb_func_start FUN_02040028 -FUN_02040028: ; 0x02040028 + thumb_func_start ScrCmd_Unk00FB +ScrCmd_Unk00FB: ; 0x02040028 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -220,8 +220,8 @@ FUN_02040028: ; 0x02040028 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_02040074 -FUN_02040074: ; 0x02040074 + thumb_func_start ScrCmd_Unk00FC +ScrCmd_Unk00FC: ; 0x02040074 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -258,8 +258,8 @@ FUN_02040074: ; 0x02040074 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_020400C8 -FUN_020400C8: ; 0x020400C8 + thumb_func_start ScrCmd_Unk00FD +ScrCmd_Unk00FD: ; 0x020400C8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -296,8 +296,8 @@ FUN_020400C8: ; 0x020400C8 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0204011C -FUN_0204011C: ; 0x0204011C + thumb_func_start ScrCmd_Unk00FE +ScrCmd_Unk00FE: ; 0x0204011C push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -334,8 +334,8 @@ FUN_0204011C: ; 0x0204011C pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02040170 -FUN_02040170: ; 0x02040170 + thumb_func_start ScrCmd_Unk00FF +ScrCmd_Unk00FF: ; 0x02040170 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -376,8 +376,8 @@ FUN_02040170: ; 0x02040170 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_020401CC -FUN_020401CC: ; 0x020401CC + thumb_func_start ScrCmd_Unk0100 +ScrCmd_Unk0100: ; 0x020401CC push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -405,8 +405,8 @@ FUN_020401F0: ; 0x020401F0 bl FUN_02081EB8 pop {r3, pc} - thumb_func_start FUN_02040204 -FUN_02040204: ; 0x02040204 + thumb_func_start ScrCmd_Unk0101 +ScrCmd_Unk0101: ; 0x02040204 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -420,8 +420,8 @@ FUN_02040204: ; 0x02040204 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_02040220 -FUN_02040220: ; 0x02040220 + thumb_func_start ScrCmd_Unk0102 +ScrCmd_Unk0102: ; 0x02040220 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -448,8 +448,8 @@ FUN_02040220: ; 0x02040220 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0204025C -FUN_0204025C: ; 0x0204025C + thumb_func_start ScrCmd_Unk0103 +ScrCmd_Unk0103: ; 0x0204025C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -476,8 +476,8 @@ FUN_0204025C: ; 0x0204025C mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02040298 -FUN_02040298: ; 0x02040298 + thumb_func_start ScrCmd_Unk0104 +ScrCmd_Unk0104: ; 0x02040298 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -504,8 +504,8 @@ FUN_02040298: ; 0x02040298 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_020402D4 -FUN_020402D4: ; 0x020402D4 + thumb_func_start ScrCmd_Unk0105 +ScrCmd_Unk0105: ; 0x020402D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -527,8 +527,8 @@ FUN_020402D4: ; 0x020402D4 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02040304 -FUN_02040304: ; 0x02040304 + thumb_func_start ScrCmd_Unk0106 +ScrCmd_Unk0106: ; 0x02040304 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -555,8 +555,8 @@ FUN_02040304: ; 0x02040304 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02040340 -FUN_02040340: ; 0x02040340 + thumb_func_start ScrCmd_Unk0107 +ScrCmd_Unk0107: ; 0x02040340 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -578,8 +578,8 @@ FUN_02040340: ; 0x02040340 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02040370 -FUN_02040370: ; 0x02040370 + thumb_func_start ScrCmd_Unk0108 +ScrCmd_Unk0108: ; 0x02040370 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -601,8 +601,8 @@ FUN_02040370: ; 0x02040370 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020403A0 -FUN_020403A0: ; 0x020403A0 + thumb_func_start ScrCmd_Unk0109 +ScrCmd_Unk0109: ; 0x020403A0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -624,8 +624,8 @@ FUN_020403A0: ; 0x020403A0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020403D0 -FUN_020403D0: ; 0x020403D0 + thumb_func_start ScrCmd_Unk010A +ScrCmd_Unk010A: ; 0x020403D0 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 @@ -655,8 +655,8 @@ FUN_020403D0: ; 0x020403D0 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02040414 -FUN_02040414: ; 0x02040414 + thumb_func_start ScrCmd_Unk010B +ScrCmd_Unk010B: ; 0x02040414 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 @@ -686,8 +686,8 @@ FUN_02040414: ; 0x02040414 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_02040458 -FUN_02040458: ; 0x02040458 + thumb_func_start ScrCmd_Unk010C +ScrCmd_Unk010C: ; 0x02040458 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -709,8 +709,8 @@ FUN_02040458: ; 0x02040458 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02040488 -FUN_02040488: ; 0x02040488 + thumb_func_start ScrCmd_Unk0110 +ScrCmd_Unk0110: ; 0x02040488 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -760,8 +760,8 @@ FUN_02040488: ; 0x02040488 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_020404FC -FUN_020404FC: ; 0x020404FC + thumb_func_start ScrCmd_Unk010D +ScrCmd_Unk010D: ; 0x020404FC push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -783,8 +783,8 @@ FUN_020404FC: ; 0x020404FC pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0204052C -FUN_0204052C: ; 0x0204052C + thumb_func_start ScrCmd_Unk010E +ScrCmd_Unk010E: ; 0x0204052C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -813,8 +813,8 @@ FUN_0204052C: ; 0x0204052C pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0204056C -FUN_0204056C: ; 0x0204056C + thumb_func_start ScrCmd_Unk010F +ScrCmd_Unk010F: ; 0x0204056C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -836,8 +836,8 @@ FUN_0204056C: ; 0x0204056C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0204059C -FUN_0204059C: ; 0x0204059C + thumb_func_start ScrCmd_Unk0117 +ScrCmd_Unk0117: ; 0x0204059C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -849,8 +849,8 @@ FUN_0204059C: ; 0x0204059C pop {r3, pc} .balign 4 - thumb_func_start FUN_020405B4 -FUN_020405B4: ; 0x020405B4 + thumb_func_start ScrCmd_Unk0118 +ScrCmd_Unk0118: ; 0x020405B4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -862,8 +862,8 @@ FUN_020405B4: ; 0x020405B4 pop {r3, pc} .balign 4 - thumb_func_start FUN_020405CC -FUN_020405CC: ; 0x020405CC + thumb_func_start ScrCmd_Unk0111 +ScrCmd_Unk0111: ; 0x020405CC push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -883,8 +883,8 @@ FUN_020405CC: ; 0x020405CC mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_020405F8 -FUN_020405F8: ; 0x020405F8 + thumb_func_start ScrCmd_Unk0112 +ScrCmd_Unk0112: ; 0x020405F8 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -917,8 +917,8 @@ _02040632: pop {r3, pc} .balign 4 - thumb_func_start FUN_02040638 -FUN_02040638: ; 0x02040638 + thumb_func_start ScrCmd_Unk0113 +ScrCmd_Unk0113: ; 0x02040638 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -929,8 +929,8 @@ FUN_02040638: ; 0x02040638 pop {r3, pc} .balign 4 - thumb_func_start FUN_0204064C -FUN_0204064C: ; 0x0204064C + thumb_func_start ScrCmd_Unk0114 +ScrCmd_Unk0114: ; 0x0204064C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -941,8 +941,8 @@ FUN_0204064C: ; 0x0204064C pop {r3, pc} .balign 4 - thumb_func_start FUN_02040660 -FUN_02040660: ; 0x02040660 + thumb_func_start ScrCmd_Unk0115 +ScrCmd_Unk0115: ; 0x02040660 push {r4-r5, lr} sub sp, #0x1c add r5, r0, #0x0 @@ -991,8 +991,8 @@ _020406BA: add sp, #0x1c pop {r4-r5, pc} - thumb_func_start FUN_020406C0 -FUN_020406C0: ; 0x020406C0 + thumb_func_start ScrCmd_Unk0116 +ScrCmd_Unk0116: ; 0x020406C0 push {r3, lr} ldr r0, [r0, #0x74] bl MOD06_0224D3E8 diff --git a/arm9/asm/scrcmd_5.s b/arm9/asm/scrcmd_5.s index a1aa5216a..2f3bd42ca 100644 --- a/arm9/asm/scrcmd_5.s +++ b/arm9/asm/scrcmd_5.s @@ -9,8 +9,8 @@ UNK_021C5A10: ; 0x021C5A10 .text - thumb_func_start FUN_02041194 -FUN_02041194: ; 0x02041194 + thumb_func_start ScrCmd_Unk024E +ScrCmd_Unk024E: ; 0x02041194 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -32,8 +32,8 @@ FUN_02041194: ; 0x02041194 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_020411C4 -FUN_020411C4: ; 0x020411C4 + thumb_func_start ScrCmd_Unk024F +ScrCmd_Unk024F: ; 0x020411C4 push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 @@ -213,8 +213,8 @@ _02041336: .balign 4 _0204133C: .word 0x00000000 - thumb_func_start FUN_02041340 -FUN_02041340: ; 0x02041340 + thumb_func_start ScrCmd_Unk0250 +ScrCmd_Unk0250: ; 0x02041340 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] diff --git a/arm9/asm/scrcmd_7.s b/arm9/asm/scrcmd_7.s index 01c0425f8..58f8b6dc4 100644 --- a/arm9/asm/scrcmd_7.s +++ b/arm9/asm/scrcmd_7.s @@ -3,8 +3,8 @@ .text - thumb_func_start FUN_020416A8 -FUN_020416A8: ; 0x020416A8 + thumb_func_start ScrCmd_Unk00B6 +ScrCmd_Unk00B6: ; 0x020416A8 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 @@ -91,8 +91,8 @@ _02041748: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02041770 -FUN_02041770: ; 0x02041770 + thumb_func_start ScrCmd_Unk00B7 +ScrCmd_Unk00B7: ; 0x02041770 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -146,8 +146,8 @@ _020417DC: mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_020417E0 -FUN_020417E0: ; 0x020417E0 + thumb_func_start ScrCmd_Unk00B8 +ScrCmd_Unk00B8: ; 0x020417E0 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -166,8 +166,8 @@ FUN_020417E0: ; 0x020417E0 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_02041808 -FUN_02041808: ; 0x02041808 + thumb_func_start ScrCmd_Unk00B9 +ScrCmd_Unk00B9: ; 0x02041808 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -207,8 +207,8 @@ _02041854: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0204185C -FUN_0204185C: ; 0x0204185C + thumb_func_start ScrCmd_Unk00E4 +ScrCmd_Unk00E4: ; 0x0204185C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -230,8 +230,8 @@ FUN_0204185C: ; 0x0204185C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0204188C -FUN_0204188C: ; 0x0204188C + thumb_func_start ScrCmd_Unk00E5 +ScrCmd_Unk00E5: ; 0x0204188C push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 @@ -287,8 +287,8 @@ _020418F2: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0204190C -FUN_0204190C: ; 0x0204190C + thumb_func_start ScrCmd_Unk02A0 +ScrCmd_Unk02A0: ; 0x0204190C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -332,8 +332,8 @@ FUN_0204190C: ; 0x0204190C add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_02041970 -FUN_02041970: ; 0x02041970 + thumb_func_start ScrCmd_Unk00E7 +ScrCmd_Unk00E7: ; 0x02041970 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -396,8 +396,8 @@ _020419EC: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_020419F8 -FUN_020419F8: ; 0x020419F8 + thumb_func_start ScrCmd_Unk00E8 +ScrCmd_Unk00E8: ; 0x020419F8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -460,8 +460,8 @@ _02041A74: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_02041A80 -FUN_02041A80: ; 0x02041A80 + thumb_func_start ScrCmd_Unk00E9 +ScrCmd_Unk00E9: ; 0x02041A80 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -484,8 +484,8 @@ FUN_02041A80: ; 0x02041A80 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02041AB4 -FUN_02041AB4: ; 0x02041AB4 + thumb_func_start ScrCmd_Unk00EA +ScrCmd_Unk00EA: ; 0x02041AB4 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -499,16 +499,16 @@ FUN_02041AB4: ; 0x02041AB4 pop {r4, pc} .balign 4 - thumb_func_start FUN_02041AD4 -FUN_02041AD4: ; 0x02041AD4 + thumb_func_start ScrCmd_Unk00EB +ScrCmd_Unk00EB: ; 0x02041AD4 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02048498 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_02041AE0 -FUN_02041AE0: ; 0x02041AE0 + thumb_func_start ScrCmd_Unk00EC +ScrCmd_Unk00EC: ; 0x02041AE0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -530,8 +530,8 @@ FUN_02041AE0: ; 0x02041AE0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02041B10 -FUN_02041B10: ; 0x02041B10 + thumb_func_start ScrCmd_Unk00ED +ScrCmd_Unk00ED: ; 0x02041B10 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -553,8 +553,8 @@ FUN_02041B10: ; 0x02041B10 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02041B40 -FUN_02041B40: ; 0x02041B40 + thumb_func_start ScrCmd_Unk02BC +ScrCmd_Unk02BC: ; 0x02041B40 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -576,8 +576,8 @@ FUN_02041B40: ; 0x02041B40 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02041B70 -FUN_02041B70: ; 0x02041B70 + thumb_func_start ScrCmd_Unk00EE +ScrCmd_Unk00EE: ; 0x02041B70 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -597,8 +597,8 @@ FUN_02041B70: ; 0x02041B70 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_02041B9C -FUN_02041B9C: ; 0x02041B9C + thumb_func_start ScrCmd_Unk00EF +ScrCmd_Unk00EF: ; 0x02041B9C push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -618,8 +618,8 @@ FUN_02041B9C: ; 0x02041B9C add sp, #0x8 pop {r4, pc} - thumb_func_start FUN_02041BC4 -FUN_02041BC4: ; 0x02041BC4 + thumb_func_start ScrCmd_Unk00F0 +ScrCmd_Unk00F0: ; 0x02041BC4 push {r3-r5, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -639,8 +639,8 @@ FUN_02041BC4: ; 0x02041BC4 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_02041BF0 -FUN_02041BF0: ; 0x02041BF0 + thumb_func_start ScrCmd_Unk00F1 +ScrCmd_Unk00F1: ; 0x02041BF0 push {r3-r7, lr} add r6, r0, #0x0 add r0, #0x80 diff --git a/arm9/asm/scrcmd_9.s b/arm9/asm/scrcmd_9.s index ad61ab32e..bad1ef471 100644 --- a/arm9/asm/scrcmd_9.s +++ b/arm9/asm/scrcmd_9.s @@ -33,8 +33,8 @@ UNK_020F4270: ; 0x020F4270 .text - thumb_func_start FUN_02041E40 -FUN_02041E40: ; 0x02041E40 + thumb_func_start ScrCmd_Unk0235 +ScrCmd_Unk0235: ; 0x02041E40 push {r3-r7, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -217,8 +217,8 @@ _02041FD2: nop _02041FD8: .word 0x00000233 - thumb_func_start FUN_02041FDC -FUN_02041FDC: ; 0x02041FDC + thumb_func_start ScrCmd_Unk0236 +ScrCmd_Unk0236: ; 0x02041FDC push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -235,8 +235,8 @@ FUN_02041FDC: ; 0x02041FDC pop {r4, pc} .balign 4 - thumb_func_start FUN_02042000 -FUN_02042000: ; 0x02042000 + thumb_func_start ScrCmd_Unk02B8 +ScrCmd_Unk02B8: ; 0x02042000 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -261,8 +261,8 @@ FUN_02042000: ; 0x02042000 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_02042038 -FUN_02042038: ; 0x02042038 + thumb_func_start ScrCmd_Unk0237 +ScrCmd_Unk0237: ; 0x02042038 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -356,8 +356,8 @@ _02042106: nop _0204210C: .word 0x00000232 - thumb_func_start FUN_02042110 -FUN_02042110: ; 0x02042110 + thumb_func_start ScrCmd_Unk0238 +ScrCmd_Unk0238: ; 0x02042110 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -384,8 +384,8 @@ FUN_02042110: ; 0x02042110 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0204214C -FUN_0204214C: ; 0x0204214C + thumb_func_start ScrCmd_Unk027C +ScrCmd_Unk027C: ; 0x0204214C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 diff --git a/arm9/asm/scrcmd_asm.s b/arm9/asm/scrcmd_asm.s index d648ac526..af0e7940f 100644 --- a/arm9/asm/scrcmd_asm.s +++ b/arm9/asm/scrcmd_asm.s @@ -14,8 +14,8 @@ UNK_021C5A0C: ; 0x021C5A0C .text - thumb_func_start FUN_0203B024 -FUN_0203B024: ; 0x0203B024 + thumb_func_start ScrCmd_Unk02A1 +ScrCmd_Unk02A1: ; 0x0203B024 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -156,8 +156,8 @@ _0203B13E: pop {r3, pc} .balign 4 - thumb_func_start FUN_0203B148 -FUN_0203B148: ; 0x0203B148 + thumb_func_start ScrCmd_Unk005F +ScrCmd_Unk005F: ; 0x0203B148 push {r3, lr} ldr r1, _0203B154 ; =FUN_0203B158 bl SetupNativeScript @@ -244,8 +244,8 @@ _0203B1EC: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B1F0 -FUN_0203B1F0: ; 0x0203B1F0 + thumb_func_start ScrCmd_Unk0060 +ScrCmd_Unk0060: ; 0x0203B1F0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -261,7 +261,7 @@ FUN_0203B1F0: ; 0x0203B1F0 b _0203B214 _0203B20E: add r0, r5, #0x0 - bl FUN_0203B2E0 + bl ScrCmd_Unk02B4 _0203B214: mov r0, #0x1 pop {r3-r5, pc} @@ -362,8 +362,8 @@ _0203B2D8: .balign 4 _0203B2DC: .word UNK_021C5A0C - thumb_func_start FUN_0203B2E0 -FUN_0203B2E0: ; 0x0203B2E0 + thumb_func_start ScrCmd_Unk02B4 +ScrCmd_Unk02B4: ; 0x0203B2E0 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] @@ -455,8 +455,8 @@ _0203B398: _0203B3A8: .word UNK_021C5A0C _0203B3AC: .word FUN_0203B218 - thumb_func_start FUN_0203B3B0 -FUN_0203B3B0: ; 0x0203B3B0 + thumb_func_start ScrCmd_Unk0061 +ScrCmd_Unk0061: ; 0x0203B3B0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -465,8 +465,8 @@ FUN_0203B3B0: ; 0x0203B3B0 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203B3C0 -FUN_0203B3C0: ; 0x0203B3C0 + thumb_func_start ScrCmd_Unk0062 +ScrCmd_Unk0062: ; 0x0203B3C0 push {r4, lr} add r1, r0, #0x0 add r1, #0x80 @@ -479,8 +479,8 @@ FUN_0203B3C0: ; 0x0203B3C0 mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203B3DC -FUN_0203B3DC: ; 0x0203B3DC + thumb_func_start ScrCmd_Unk0063 +ScrCmd_Unk0063: ; 0x0203B3DC push {r4, lr} add r1, r0, #0x0 add r1, #0x80 @@ -493,8 +493,8 @@ FUN_0203B3DC: ; 0x0203B3DC mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203B3F8 -FUN_0203B3F8: ; 0x0203B3F8 + thumb_func_start ScrCmd_Unk0064 +ScrCmd_Unk0064: ; 0x0203B3F8 push {r3-r6, lr} sub sp, #0x4 add r4, r0, #0x0 @@ -527,8 +527,8 @@ _0203B43A: add sp, #0x4 pop {r3-r6, pc} - thumb_func_start FUN_0203B440 -FUN_0203B440: ; 0x0203B440 + thumb_func_start ScrCmd_Unk0065 +ScrCmd_Unk0065: ; 0x0203B440 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -546,8 +546,8 @@ FUN_0203B440: ; 0x0203B440 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203B468 -FUN_0203B468: ; 0x0203B468 + thumb_func_start ScrCmd_Unk0066 +ScrCmd_Unk0066: ; 0x0203B468 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -613,8 +613,8 @@ FUN_0203B468: ; 0x0203B468 pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0203B500 -FUN_0203B500: ; 0x0203B500 + thumb_func_start ScrCmd_Unk0067 +ScrCmd_Unk0067: ; 0x0203B500 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -644,8 +644,8 @@ FUN_0203B500: ; 0x0203B500 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203B544 -FUN_0203B544: ; 0x0203B544 + thumb_func_start ScrCmd_Unk0068 +ScrCmd_Unk0068: ; 0x0203B544 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] @@ -668,8 +668,8 @@ _0203B568: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B574 -FUN_0203B574: ; 0x0203B574 + thumb_func_start ScrCmd_Unk0069 +ScrCmd_Unk0069: ; 0x0203B574 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -699,8 +699,8 @@ FUN_0203B574: ; 0x0203B574 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203B5B8 -FUN_0203B5B8: ; 0x0203B5B8 + thumb_func_start ScrCmd_Unk006A +ScrCmd_Unk006A: ; 0x0203B5B8 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -741,8 +741,8 @@ FUN_0203B5B8: ; 0x0203B5B8 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203B618 -FUN_0203B618: ; 0x0203B618 + thumb_func_start ScrCmd_Unk01BD +ScrCmd_Unk01BD: ; 0x0203B618 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -761,8 +761,8 @@ FUN_0203B618: ; 0x0203B618 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B640 -FUN_0203B640: ; 0x0203B640 + thumb_func_start ScrCmd_Unk006B +ScrCmd_Unk006B: ; 0x0203B640 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -860,8 +860,8 @@ _0203B6F8: pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0203B724 -FUN_0203B724: ; 0x0203B724 + thumb_func_start ScrCmd_Unk006C +ScrCmd_Unk006C: ; 0x0203B724 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -885,8 +885,8 @@ FUN_0203B724: ; 0x0203B724 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203B758 -FUN_0203B758: ; 0x0203B758 + thumb_func_start ScrCmd_Unk006D +ScrCmd_Unk006D: ; 0x0203B758 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -911,8 +911,8 @@ FUN_0203B758: ; 0x0203B758 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B790 -FUN_0203B790: ; 0x0203B790 + thumb_func_start ScrCmd_Unk02AD +ScrCmd_Unk02AD: ; 0x0203B790 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -945,8 +945,8 @@ _0203B7D2: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B7D8 -FUN_0203B7D8: ; 0x0203B7D8 + thumb_func_start ScrCmd_Unk006E +ScrCmd_Unk006E: ; 0x0203B7D8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -958,8 +958,8 @@ FUN_0203B7D8: ; 0x0203B7D8 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203B7F0 -FUN_0203B7F0: ; 0x0203B7F0 + thumb_func_start ScrCmd_Unk02AB +ScrCmd_Unk02AB: ; 0x0203B7F0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -979,8 +979,8 @@ FUN_0203B7F0: ; 0x0203B7F0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B81C -FUN_0203B81C: ; 0x0203B81C + thumb_func_start ScrCmd_Unk0093 +ScrCmd_Unk0093: ; 0x0203B81C push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1008,8 +1008,8 @@ FUN_0203B81C: ; 0x0203B81C mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203B85C -FUN_0203B85C: ; 0x0203B85C + thumb_func_start ScrCmd_Unk0094 +ScrCmd_Unk0094: ; 0x0203B85C push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1039,8 +1039,8 @@ FUN_0203B85C: ; 0x0203B85C pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203B8A0 -FUN_0203B8A0: ; 0x0203B8A0 + thumb_func_start ScrCmd_Unk0095 +ScrCmd_Unk0095: ; 0x0203B8A0 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1069,8 +1069,8 @@ FUN_0203B8A0: ; 0x0203B8A0 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203B8E4 -FUN_0203B8E4: ; 0x0203B8E4 + thumb_func_start ScrCmd_Unk0191 +ScrCmd_Unk0191: ; 0x0203B8E4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1092,8 +1092,8 @@ FUN_0203B8E4: ; 0x0203B8E4 nop _0203B910: .word FUN_0203BC04 - thumb_func_start FUN_0203B914 -FUN_0203B914: ; 0x0203B914 + thumb_func_start ScrCmd_Unk02A5 +ScrCmd_Unk02A5: ; 0x0203B914 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1115,8 +1115,8 @@ FUN_0203B914: ; 0x0203B914 nop _0203B940: .word FUN_0203BC04 - thumb_func_start FUN_0203B944 -FUN_0203B944: ; 0x0203B944 + thumb_func_start ScrCmd_Unk0192 +ScrCmd_Unk0192: ; 0x0203B944 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1134,8 +1134,8 @@ FUN_0203B944: ; 0x0203B944 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B968 -FUN_0203B968: ; 0x0203B968 + thumb_func_start ScrCmd_Unk0193 +ScrCmd_Unk0193: ; 0x0203B968 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -1171,8 +1171,8 @@ _0203B9A6: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203B9B4 -FUN_0203B9B4: ; 0x0203B9B4 + thumb_func_start ScrCmd_Unk0194 +ScrCmd_Unk0194: ; 0x0203B9B4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -1231,8 +1231,8 @@ FUN_0203B9B4: ; 0x0203B9B4 .balign 4 _0203BA38: .word FUN_0203BC04 - thumb_func_start FUN_0203BA3C -FUN_0203BA3C: ; 0x0203BA3C + thumb_func_start ScrCmd_Unk0195 +ScrCmd_Unk0195: ; 0x0203BA3C push {r4-r6, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -1287,8 +1287,8 @@ _0203BAA2: str r0, [r4, #0x0] pop {r4-r6, pc} - thumb_func_start FUN_0203BAB0 -FUN_0203BAB0: ; 0x0203BAB0 + thumb_func_start ScrCmd_Unk0196 +ScrCmd_Unk0196: ; 0x0203BAB0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1318,8 +1318,8 @@ FUN_0203BAB0: ; 0x0203BAB0 nop _0203BAF0: .word FUN_0203BC04 - thumb_func_start FUN_0203BAF4 -FUN_0203BAF4: ; 0x0203BAF4 + thumb_func_start ScrCmd_Unk0197 +ScrCmd_Unk0197: ; 0x0203BAF4 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -1348,8 +1348,8 @@ _0203BB20: str r0, [r4, #0x0] pop {r3-r5, pc} - thumb_func_start FUN_0203BB34 -FUN_0203BB34: ; 0x0203BB34 + thumb_func_start ScrCmd_Unk009B +ScrCmd_Unk009B: ; 0x0203BB34 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1383,23 +1383,23 @@ FUN_0203BB34: ; 0x0203BB34 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203BB80 -FUN_0203BB80: ; 0x0203BB80 + thumb_func_start ScrCmd_Unk009C +ScrCmd_Unk009C: ; 0x0203BB80 mov r0, #0x0 bx lr - thumb_func_start FUN_0203BB84 -FUN_0203BB84: ; 0x0203BB84 + thumb_func_start ScrCmd_Unk009D +ScrCmd_Unk009D: ; 0x0203BB84 mov r0, #0x0 bx lr - thumb_func_start FUN_0203BB88 -FUN_0203BB88: ; 0x0203BB88 + thumb_func_start ScrCmd_Unk009E +ScrCmd_Unk009E: ; 0x0203BB88 mov r0, #0x1 bx lr - thumb_func_start FUN_0203BB8C -FUN_0203BB8C: ; 0x0203BB8C + thumb_func_start ScrCmd_Unk009F +ScrCmd_Unk009F: ; 0x0203BB8C mov r0, #0x0 bx lr @@ -1477,8 +1477,8 @@ _0203BC16: pop {r3, pc} .balign 4 - thumb_func_start FUN_0203BC1C -FUN_0203BC1C: ; 0x0203BC1C + thumb_func_start ScrCmd_Unk00A1 +ScrCmd_Unk00A1: ; 0x0203BC1C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -1487,8 +1487,8 @@ FUN_0203BC1C: ; 0x0203BC1C mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203BC2C -FUN_0203BC2C: ; 0x0203BC2C + thumb_func_start ScrCmd_Unk01F8 +ScrCmd_Unk01F8: ; 0x0203BC2C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -1564,8 +1564,8 @@ _0203BC90: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203BCBC -FUN_0203BCBC: ; 0x0203BCBC + thumb_func_start ScrCmd_Unk00A2 +ScrCmd_Unk00A2: ; 0x0203BCBC push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -1574,16 +1574,16 @@ FUN_0203BCBC: ; 0x0203BCBC pop {r3, pc} .balign 4 - thumb_func_start FUN_0203BCCC -FUN_0203BCCC: ; 0x0203BCCC + thumb_func_start ScrCmd_Unk00A3 +ScrCmd_Unk00A3: ; 0x0203BCCC push {r3, lr} ldr r0, [r0, #0x74] bl FUN_0206F3B8 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203BCD8 -FUN_0203BCD8: ; 0x0203BCD8 + thumb_func_start ScrCmd_Unk00A4 +ScrCmd_Unk00A4: ; 0x0203BCD8 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1605,8 +1605,8 @@ FUN_0203BCD8: ; 0x0203BCD8 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203BD08 -FUN_0203BD08: ; 0x0203BD08 + thumb_func_start ScrCmd_Unk0207 +ScrCmd_Unk0207: ; 0x0203BD08 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -1621,8 +1621,8 @@ FUN_0203BD08: ; 0x0203BD08 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203BD28 -FUN_0203BD28: ; 0x0203BD28 + thumb_func_start ScrCmd_Unk0208 +ScrCmd_Unk0208: ; 0x0203BD28 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 @@ -1688,8 +1688,8 @@ FUN_0203BD28: ; 0x0203BD28 .balign 4 _0203BDB4: .word 0x000003D9 - thumb_func_start FUN_0203BDB8 -FUN_0203BDB8: ; 0x0203BDB8 + thumb_func_start ScrCmd_Unk028C +ScrCmd_Unk028C: ; 0x0203BDB8 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 @@ -1758,8 +1758,8 @@ FUN_0203BDB8: ; 0x0203BDB8 .balign 4 _0203BE4C: .word 0x000003D9 - thumb_func_start FUN_0203BE50 -FUN_0203BE50: ; 0x0203BE50 + thumb_func_start ScrCmd_Unk0209 +ScrCmd_Unk0209: ; 0x0203BE50 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -1772,8 +1772,8 @@ FUN_0203BE50: ; 0x0203BE50 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203BE68 -FUN_0203BE68: ; 0x0203BE68 + thumb_func_start ScrCmd_Unk028D +ScrCmd_Unk028D: ; 0x0203BE68 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -1786,8 +1786,8 @@ FUN_0203BE68: ; 0x0203BE68 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203BE80 -FUN_0203BE80: ; 0x0203BE80 + thumb_func_start ScrCmd_Unk028E +ScrCmd_Unk028E: ; 0x0203BE80 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -1826,8 +1826,8 @@ _0203BEC8: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203BECC -FUN_0203BECC: ; 0x0203BECC + thumb_func_start ScrCmd_Unk020A +ScrCmd_Unk020A: ; 0x0203BECC push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -1851,8 +1851,8 @@ FUN_0203BECC: ; 0x0203BECC pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203BF00 -FUN_0203BF00: ; 0x0203BF00 + thumb_func_start ScrCmd_Unk020B +ScrCmd_Unk020B: ; 0x0203BF00 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -1869,16 +1869,16 @@ _0203BF1C: mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203BF20 -FUN_0203BF20: ; 0x0203BF20 + thumb_func_start ScrCmd_Unk00A5 +ScrCmd_Unk00A5: ; 0x0203BF20 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_0208A338 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203BF2C -FUN_0203BF2C: ; 0x0203BF2C + thumb_func_start ScrCmd_Unk00A6 +ScrCmd_Unk00A6: ; 0x0203BF2C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -1917,8 +1917,8 @@ FUN_0203BF2C: ; 0x0203BF2C pop {r3-r6, pc} .balign 4 - thumb_func_start FUN_0203BF84 -FUN_0203BF84: ; 0x0203BF84 + thumb_func_start ScrCmd_Unk00A7 +ScrCmd_Unk00A7: ; 0x0203BF84 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -1966,8 +1966,8 @@ _0203BFCC: .balign 4 _0203BFE8: .word FUN_0203BB90 - thumb_func_start FUN_0203BFEC -FUN_0203BFEC: ; 0x0203BFEC + thumb_func_start ScrCmd_Unk00A8 +ScrCmd_Unk00A8: ; 0x0203BFEC push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2015,8 +2015,8 @@ _0203C034: .balign 4 _0203C050: .word FUN_0203BB90 - thumb_func_start FUN_0203C054 -FUN_0203C054: ; 0x0203C054 + thumb_func_start ScrCmd_Unk012E +ScrCmd_Unk012E: ; 0x0203C054 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2045,8 +2045,8 @@ _0203C088: mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0203C090 -FUN_0203C090: ; 0x0203C090 + thumb_func_start ScrCmd_Unk012F +ScrCmd_Unk012F: ; 0x0203C090 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2075,8 +2075,8 @@ _0203C0C4: mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0203C0CC -FUN_0203C0CC: ; 0x0203C0CC + thumb_func_start ScrCmd_Unk0130 +ScrCmd_Unk0130: ; 0x0203C0CC push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2097,8 +2097,8 @@ FUN_0203C0CC: ; 0x0203C0CC mov r0, #0x1 pop {r3-r5, pc} - thumb_func_start FUN_0203C0FC -FUN_0203C0FC: ; 0x0203C0FC + thumb_func_start ScrCmd_Unk0205 +ScrCmd_Unk0205: ; 0x0203C0FC push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -2112,8 +2112,8 @@ FUN_0203C0FC: ; 0x0203C0FC .balign 4 _0203C114: .word FUN_0203BC04 - thumb_func_start FUN_0203C118 -FUN_0203C118: ; 0x0203C118 + thumb_func_start ScrCmd_Unk00A9 +ScrCmd_Unk00A9: ; 0x0203C118 push {r3, lr} add r1, r0, #0x0 ldr r0, [r1, #0x74] @@ -2124,8 +2124,8 @@ FUN_0203C118: ; 0x0203C118 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203C12C -FUN_0203C12C: ; 0x0203C12C + thumb_func_start ScrCmd_Unk00AA +ScrCmd_Unk00AA: ; 0x0203C12C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2157,8 +2157,8 @@ FUN_0203C12C: ; 0x0203C12C nop _0203C170: .word FUN_0203BB90 - thumb_func_start FUN_0203C174 -FUN_0203C174: ; 0x0203C174 + thumb_func_start ScrCmd_Unk01D7 +ScrCmd_Unk01D7: ; 0x0203C174 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2184,8 +2184,8 @@ FUN_0203C174: ; 0x0203C174 .balign 4 _0203C1A8: .word FUN_0203BB90 - thumb_func_start FUN_0203C1AC -FUN_0203C1AC: ; 0x0203C1AC + thumb_func_start ScrCmd_Unk01D8 +ScrCmd_Unk01D8: ; 0x0203C1AC push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2225,8 +2225,8 @@ _0203C1FA: strh r0, [r4, #0x0] pop {r3-r5, pc} - thumb_func_start FUN_0203C200 -FUN_0203C200: ; 0x0203C200 + thumb_func_start ScrCmd_Unk01D9 +ScrCmd_Unk01D9: ; 0x0203C200 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2279,8 +2279,8 @@ FUN_0203C200: ; 0x0203C200 .balign 4 _0203C274: .word FUN_0203BB90 - thumb_func_start ScrCmd_monstoragepc -ScrCmd_monstoragepc: ; 0x0203C278 + thumb_func_start ScrCmd_MonStoragePC +ScrCmd_MonStoragePC: ; 0x0203C278 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2315,8 +2315,8 @@ ScrCmd_monstoragepc: ; 0x0203C278 nop _0203C2C0: .word FUN_0203BBBC - thumb_func_start FUN_0203C2C4 -FUN_0203C2C4: ; 0x0203C2C4 + thumb_func_start ScrCmd_Unk00AC +ScrCmd_Unk00AC: ; 0x0203C2C4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -2330,8 +2330,8 @@ FUN_0203C2C4: ; 0x0203C2C4 .balign 4 _0203C2DC: .word FUN_0203BC04 - thumb_func_start FUN_0203C2E0 -FUN_0203C2E0: ; 0x0203C2E0 + thumb_func_start ScrCmd_Unk00AD +ScrCmd_Unk00AD: ; 0x0203C2E0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -2340,8 +2340,8 @@ FUN_0203C2E0: ; 0x0203C2E0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203C2F0 -FUN_0203C2F0: ; 0x0203C2F0 + thumb_func_start ScrCmd_Unk00AE +ScrCmd_Unk00AE: ; 0x0203C2F0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -2350,8 +2350,8 @@ FUN_0203C2F0: ; 0x0203C2F0 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203C300 -FUN_0203C300: ; 0x0203C300 + thumb_func_start ScrCmd_Unk00AF +ScrCmd_Unk00AF: ; 0x0203C300 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2372,8 +2372,8 @@ FUN_0203C300: ; 0x0203C300 .balign 4 _0203C328: .word FUN_0203BB90 - thumb_func_start ScrCmd_halloffame -ScrCmd_halloffame: ; 0x0203C32C + thumb_func_start ScrCmd_HallOfFame +ScrCmd_HallOfFame: ; 0x0203C32C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -2382,8 +2382,8 @@ ScrCmd_halloffame: ; 0x0203C32C mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203C33C -FUN_0203C33C: ; 0x0203C33C + thumb_func_start ScrCmd_Unk00B1 +ScrCmd_Unk00B1: ; 0x0203C33C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2404,8 +2404,8 @@ FUN_0203C33C: ; 0x0203C33C .balign 4 _0203C364: .word FUN_0203BB90 - thumb_func_start FUN_0203C368 -FUN_0203C368: ; 0x0203C368 + thumb_func_start ScrCmd_Unk00B2 +ScrCmd_Unk00B2: ; 0x0203C368 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2450,8 +2450,8 @@ _0203C3C0: .balign 4 _0203C3C4: .word FUN_0203BC04 - thumb_func_start FUN_0203C3C8 -FUN_0203C3C8: ; 0x0203C3C8 + thumb_func_start ScrCmd_Unk00B3 +ScrCmd_Unk00B3: ; 0x0203C3C8 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -2466,8 +2466,8 @@ FUN_0203C3C8: ; 0x0203C3C8 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_0203C3E8 -FUN_0203C3E8: ; 0x0203C3E8 + thumb_func_start ScrCmd_Unk00B4 +ScrCmd_Unk00B4: ; 0x0203C3E8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2499,8 +2499,8 @@ FUN_0203C3E8: ; 0x0203C3E8 nop _0203C42C: .word FUN_0203BC04 - thumb_func_start FUN_0203C430 -FUN_0203C430: ; 0x0203C430 + thumb_func_start ScrCmd_Unk00B5 +ScrCmd_Unk00B5: ; 0x0203C430 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2522,8 +2522,8 @@ FUN_0203C430: ; 0x0203C430 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203C460 -FUN_0203C460: ; 0x0203C460 + thumb_func_start ScrCmd_Unk0178 +ScrCmd_Unk0178: ; 0x0203C460 push {r4-r6, lr} add r5, r0, #0x0 ldr r1, [r5, #0x8] @@ -2564,8 +2564,8 @@ _0203C492: .balign 4 _0203C4AC: .word FUN_0203BC04 - thumb_func_start FUN_0203C4B0 -FUN_0203C4B0: ; 0x0203C4B0 + thumb_func_start ScrCmd_Unk0179 +ScrCmd_Unk0179: ; 0x0203C4B0 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -2594,8 +2594,8 @@ _0203C4DC: str r0, [r4, #0x0] pop {r3-r5, pc} - thumb_func_start FUN_0203C4F0 -FUN_0203C4F0: ; 0x0203C4F0 + thumb_func_start ScrCmd_Unk00BA +ScrCmd_Unk00BA: ; 0x0203C4F0 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 @@ -2618,8 +2618,8 @@ FUN_0203C4F0: ; 0x0203C4F0 pop {r3-r4, pc} .balign 4 - thumb_func_start FUN_0203C520 -FUN_0203C520: ; 0x0203C520 + thumb_func_start ScrCmd_Unk00BB +ScrCmd_Unk00BB: ; 0x0203C520 push {r4-r7, lr} sub sp, #0x34 add r5, r0, #0x0 @@ -2666,8 +2666,8 @@ FUN_0203C520: ; 0x0203C520 add sp, #0x34 pop {r4-r7, pc} - thumb_func_start FUN_0203C58C -FUN_0203C58C: ; 0x0203C58C + thumb_func_start ScrCmd_Unk0271 +ScrCmd_Unk0271: ; 0x0203C58C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 @@ -2690,8 +2690,8 @@ FUN_0203C58C: ; 0x0203C58C pop {r3-r4, pc} .balign 4 - thumb_func_start FUN_0203C5BC -FUN_0203C5BC: ; 0x0203C5BC + thumb_func_start ScrCmd_Unk0243 +ScrCmd_Unk0243: ; 0x0203C5BC push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2729,8 +2729,8 @@ FUN_0203C5BC: ; 0x0203C5BC nop _0203C610: .word 0x0000FFFF - thumb_func_start FUN_0203C614 -FUN_0203C614: ; 0x0203C614 + thumb_func_start ScrCmd_Unk0244 +ScrCmd_Unk0244: ; 0x0203C614 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -2777,8 +2777,8 @@ FUN_0203C614: ; 0x0203C614 .balign 4 _0203C67C: .word 0x0000FFFF - thumb_func_start FUN_0203C680 -FUN_0203C680: ; 0x0203C680 + thumb_func_start ScrCmd_Unk0245 +ScrCmd_Unk0245: ; 0x0203C680 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -2808,8 +2808,8 @@ FUN_0203C680: ; 0x0203C680 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203C6C4 -FUN_0203C6C4: ; 0x0203C6C4 + thumb_func_start ScrCmd_Unk00BC +ScrCmd_Unk00BC: ; 0x0203C6C4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -2840,8 +2840,8 @@ FUN_0203C6C4: ; 0x0203C6C4 add sp, #0xc pop {r4-r7, pc} - thumb_func_start FUN_0203C70C -FUN_0203C70C: ; 0x0203C70C + thumb_func_start ScrCmd_Unk00BD +ScrCmd_Unk00BD: ; 0x0203C70C push {r3, lr} ldr r1, _0203C718 ; =FUN_0203C71C bl SetupNativeScript @@ -2863,8 +2863,8 @@ _0203C72A: pop {r3, pc} .balign 4 - thumb_func_start FUN_0203C730 -FUN_0203C730: ; 0x0203C730 + thumb_func_start ScrCmd_Unk00BE +ScrCmd_Unk00BE: ; 0x0203C730 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -2902,8 +2902,8 @@ FUN_0203C730: ; 0x0203C730 add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_0203C788 -FUN_0203C788: ; 0x0203C788 + thumb_func_start ScrCmd_Unk0203 +ScrCmd_Unk0203: ; 0x0203C788 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -2943,8 +2943,8 @@ FUN_0203C788: ; 0x0203C788 add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_0203C7E4 -FUN_0203C7E4: ; 0x0203C7E4 + thumb_func_start ScrCmd_Unk0204 +ScrCmd_Unk0204: ; 0x0203C7E4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -2953,8 +2953,8 @@ FUN_0203C7E4: ; 0x0203C7E4 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203C7F4 -FUN_0203C7F4: ; 0x0203C7F4 + thumb_func_start ScrCmd_Unk0200 +ScrCmd_Unk0200: ; 0x0203C7F4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -2974,8 +2974,8 @@ FUN_0203C7F4: ; 0x0203C7F4 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203C820 -FUN_0203C820: ; 0x0203C820 + thumb_func_start ScrCmd_Unk0201 +ScrCmd_Unk0201: ; 0x0203C820 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -2993,8 +2993,8 @@ FUN_0203C820: ; 0x0203C820 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203C844 -FUN_0203C844: ; 0x0203C844 + thumb_func_start ScrCmd_Unk00BF +ScrCmd_Unk00BF: ; 0x0203C844 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3016,8 +3016,8 @@ FUN_0203C844: ; 0x0203C844 mov r0, #0x1 pop {r3-r5, pc} - thumb_func_start FUN_0203C874 -FUN_0203C874: ; 0x0203C874 + thumb_func_start ScrCmd_Unk00C0 +ScrCmd_Unk00C0: ; 0x0203C874 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3046,8 +3046,8 @@ FUN_0203C874: ; 0x0203C874 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203C8B4 -FUN_0203C8B4: ; 0x0203C8B4 + thumb_func_start ScrCmd_Unk00C1 +ScrCmd_Unk00C1: ; 0x0203C8B4 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3069,8 +3069,8 @@ FUN_0203C8B4: ; 0x0203C8B4 mov r0, #0x1 pop {r3-r5, pc} - thumb_func_start FUN_0203C8E4 -FUN_0203C8E4: ; 0x0203C8E4 + thumb_func_start ScrCmd_Unk00C2 +ScrCmd_Unk00C2: ; 0x0203C8E4 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -3104,8 +3104,8 @@ FUN_0203C8E4: ; 0x0203C8E4 add sp, #0x8 pop {r4-r6, pc} - thumb_func_start FUN_0203C930 -FUN_0203C930: ; 0x0203C930 + thumb_func_start ScrCmd_Unk00C3 +ScrCmd_Unk00C3: ; 0x0203C930 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -3127,8 +3127,8 @@ FUN_0203C930: ; 0x0203C930 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203C960 -FUN_0203C960: ; 0x0203C960 + thumb_func_start ScrCmd_Unk00C4 +ScrCmd_Unk00C4: ; 0x0203C960 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -3150,8 +3150,8 @@ FUN_0203C960: ; 0x0203C960 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203C990 -FUN_0203C990: ; 0x0203C990 + thumb_func_start ScrCmd_Unk00C5 +ScrCmd_Unk00C5: ; 0x0203C990 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3217,16 +3217,16 @@ _0203CA1A: pop {r4, pc} .balign 4 - thumb_func_start FUN_0203CA20 -FUN_0203CA20: ; 0x0203CA20 + thumb_func_start ScrCmd_Unk00C6 +ScrCmd_Unk00C6: ; 0x0203CA20 push {r3, lr} ldr r0, [r0, #0x74] bl MOD05_021E7030 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203CA2C -FUN_0203CA2C: ; 0x0203CA2C + thumb_func_start ScrCmd_Unk00C7 +ScrCmd_Unk00C7: ; 0x0203CA2C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3251,8 +3251,8 @@ _0203CA56: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203CA5C -FUN_0203CA5C: ; 0x0203CA5C + thumb_func_start ScrCmd_Unk00C8 +ScrCmd_Unk00C8: ; 0x0203CA5C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x8] @@ -3317,8 +3317,8 @@ _0203CAE4: mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203CAE8 -FUN_0203CAE8: ; 0x0203CAE8 + thumb_func_start ScrCmd_Unk02BF +ScrCmd_Unk02BF: ; 0x0203CAE8 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -3334,8 +3334,8 @@ FUN_0203CAE8: ; 0x0203CAE8 mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203CB08 -FUN_0203CB08: ; 0x0203CB08 + thumb_func_start ScrCmd_Unk00C9 +ScrCmd_Unk00C9: ; 0x0203CB08 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -3348,8 +3348,8 @@ FUN_0203CB08: ; 0x0203CB08 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203CB20 -FUN_0203CB20: ; 0x0203CB20 + thumb_func_start ScrCmd_Unk00CA +ScrCmd_Unk00CA: ; 0x0203CB20 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3368,8 +3368,8 @@ FUN_0203CB20: ; 0x0203CB20 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CB48 -FUN_0203CB48: ; 0x0203CB48 + thumb_func_start ScrCmd_Unk00CB +ScrCmd_Unk00CB: ; 0x0203CB48 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -3381,8 +3381,8 @@ FUN_0203CB48: ; 0x0203CB48 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_0203CB60 -FUN_0203CB60: ; 0x0203CB60 + thumb_func_start ScrCmd_Unk00CC +ScrCmd_Unk00CC: ; 0x0203CB60 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -3391,8 +3391,8 @@ FUN_0203CB60: ; 0x0203CB60 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203CB70 -FUN_0203CB70: ; 0x0203CB70 + thumb_func_start ScrCmd_Unk00E3 +ScrCmd_Unk00E3: ; 0x0203CB70 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 @@ -3425,8 +3425,8 @@ FUN_0203CB70: ; 0x0203CB70 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203CBBC -FUN_0203CBBC: ; 0x0203CBBC + thumb_func_start ScrCmd_Unk00DE +ScrCmd_Unk00DE: ; 0x0203CBBC push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3446,8 +3446,8 @@ FUN_0203CBBC: ; 0x0203CBBC pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CBE8 -FUN_0203CBE8: ; 0x0203CBE8 + thumb_func_start ScrCmd_Unk00E6 +ScrCmd_Unk00E6: ; 0x0203CBE8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3514,8 +3514,8 @@ FUN_0203CBE8: ; 0x0203CBE8 .balign 4 _0203CC84: .word FUN_0203A2F0 - thumb_func_start FUN_0203CC88 -FUN_0203CC88: ; 0x0203CC88 + thumb_func_start ScrCmd_Unk00F2 +ScrCmd_Unk00F2: ; 0x0203CC88 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -3585,8 +3585,8 @@ _0203CD18: pop {r4, pc} .balign 4 - thumb_func_start FUN_0203CD20 -FUN_0203CD20: ; 0x0203CD20 + thumb_func_start ScrCmd_Unk00F3 +ScrCmd_Unk00F3: ; 0x0203CD20 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -3656,24 +3656,24 @@ _0203CDB0: pop {r4, pc} .balign 4 - thumb_func_start FUN_0203CDB8 -FUN_0203CDB8: ; 0x0203CDB8 + thumb_func_start ScrCmd_Unk00F4 +ScrCmd_Unk00F4: ; 0x0203CDB8 push {r3, lr} bl ScriptReadHalfword mov r0, #0x1 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203CDC4 -FUN_0203CDC4: ; 0x0203CDC4 + thumb_func_start ScrCmd_Unk00F5 +ScrCmd_Unk00F5: ; 0x0203CDC4 push {r3, lr} bl ScriptReadHalfword mov r0, #0x1 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203CDD0 -FUN_0203CDD0: ; 0x0203CDD0 + thumb_func_start ScrCmd_Unk00F6 +ScrCmd_Unk00F6: ; 0x0203CDD0 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3696,16 +3696,16 @@ FUN_0203CDD0: ; 0x0203CDD0 mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0203CE00 -FUN_0203CE00: ; 0x0203CE00 + thumb_func_start ScrCmd_Unk00F7 +ScrCmd_Unk00F7: ; 0x0203CE00 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02080C38 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203CE0C -FUN_0203CE0C: ; 0x0203CE0C + thumb_func_start ScrCmd_Unk011B +ScrCmd_Unk011B: ; 0x0203CE0C push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 @@ -3759,8 +3759,8 @@ FUN_0203CE0C: ; 0x0203CE0C pop {r3-r4, pc} .balign 4 - thumb_func_start FUN_0203CE8C -FUN_0203CE8C: ; 0x0203CE8C + thumb_func_start ScrCmd_Unk011C +ScrCmd_Unk011C: ; 0x0203CE8C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -3781,8 +3781,8 @@ FUN_0203CE8C: ; 0x0203CE8C mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203CEBC -FUN_0203CEBC: ; 0x0203CEBC + thumb_func_start ScrCmd_Unk011D +ScrCmd_Unk011D: ; 0x0203CEBC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -3816,8 +3816,8 @@ FUN_0203CEBC: ; 0x0203CEBC add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_0203CF04 -FUN_0203CF04: ; 0x0203CF04 + thumb_func_start ScrCmd_Unk011E +ScrCmd_Unk011E: ; 0x0203CF04 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3839,8 +3839,8 @@ FUN_0203CF04: ; 0x0203CF04 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CF34 -FUN_0203CF34: ; 0x0203CF34 + thumb_func_start ScrCmd_Unk011F +ScrCmd_Unk011F: ; 0x0203CF34 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3862,8 +3862,8 @@ FUN_0203CF34: ; 0x0203CF34 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CF64 -FUN_0203CF64: ; 0x0203CF64 + thumb_func_start ScrCmd_Unk0120 +ScrCmd_Unk0120: ; 0x0203CF64 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3885,8 +3885,8 @@ FUN_0203CF64: ; 0x0203CF64 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CF94 -FUN_0203CF94: ; 0x0203CF94 + thumb_func_start ScrCmd_Unk0121 +ScrCmd_Unk0121: ; 0x0203CF94 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3908,13 +3908,13 @@ FUN_0203CF94: ; 0x0203CF94 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203CFC4 -FUN_0203CFC4: ; 0x0203CFC4 + thumb_func_start ScrCmd_Unk0122 +ScrCmd_Unk0122: ; 0x0203CFC4 mov r0, #0x0 bx lr - thumb_func_start FUN_0203CFC8 -FUN_0203CFC8: ; 0x0203CFC8 + thumb_func_start ScrCmd_Unk0123 +ScrCmd_Unk0123: ; 0x0203CFC8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -3975,8 +3975,8 @@ _0203D048: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D050 -FUN_0203D050: ; 0x0203D050 + thumb_func_start ScrCmd_Unk0124 +ScrCmd_Unk0124: ; 0x0203D050 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -4014,8 +4014,8 @@ FUN_0203D050: ; 0x0203D050 pop {r3-r6, pc} .balign 4 - thumb_func_start FUN_0203D0A4 -FUN_0203D0A4: ; 0x0203D0A4 + thumb_func_start ScrCmd_Unk02BD +ScrCmd_Unk02BD: ; 0x0203D0A4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 @@ -4053,8 +4053,8 @@ FUN_0203D0A4: ; 0x0203D0A4 pop {r3-r6, pc} .balign 4 - thumb_func_start FUN_0203D0F8 -FUN_0203D0F8: ; 0x0203D0F8 + thumb_func_start ScrCmd_Unk0125 +ScrCmd_Unk0125: ; 0x0203D0F8 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -4081,16 +4081,16 @@ FUN_0203D0F8: ; 0x0203D0F8 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D134 -FUN_0203D134: ; 0x0203D134 + thumb_func_start ScrCmd_Unk0126 +ScrCmd_Unk0126: ; 0x0203D134 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_020470AC mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203D140 -FUN_0203D140: ; 0x0203D140 + thumb_func_start ScrCmd_Unk0127 +ScrCmd_Unk0127: ; 0x0203D140 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -4099,8 +4099,8 @@ FUN_0203D140: ; 0x0203D140 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D150 -FUN_0203D150: ; 0x0203D150 + thumb_func_start ScrCmd_Unk0128 +ScrCmd_Unk0128: ; 0x0203D150 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -4119,8 +4119,8 @@ FUN_0203D150: ; 0x0203D150 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D178 -FUN_0203D178: ; 0x0203D178 + thumb_func_start ScrCmd_Unk0129 +ScrCmd_Unk0129: ; 0x0203D178 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4134,8 +4134,8 @@ FUN_0203D178: ; 0x0203D178 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203D194 -FUN_0203D194: ; 0x0203D194 + thumb_func_start ScrCmd_Unk012A +ScrCmd_Unk012A: ; 0x0203D194 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -4144,8 +4144,8 @@ FUN_0203D194: ; 0x0203D194 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D1A4 -FUN_0203D1A4: ; 0x0203D1A4 + thumb_func_start ScrCmd_Unk012B +ScrCmd_Unk012B: ; 0x0203D1A4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4159,8 +4159,8 @@ FUN_0203D1A4: ; 0x0203D1A4 .balign 4 _0203D1BC: .word FUN_0203BC04 - thumb_func_start FUN_0203D1C0 -FUN_0203D1C0: ; 0x0203D1C0 + thumb_func_start ScrCmd_Unk012C +ScrCmd_Unk012C: ; 0x0203D1C0 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -4203,8 +4203,8 @@ _0203D210: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203D214 -FUN_0203D214: ; 0x0203D214 + thumb_func_start ScrCmd_Unk012D +ScrCmd_Unk012D: ; 0x0203D214 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -4223,16 +4223,16 @@ FUN_0203D214: ; 0x0203D214 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D23C -FUN_0203D23C: ; 0x0203D23C + thumb_func_start ScrCmd_Unk0131 +ScrCmd_Unk0131: ; 0x0203D23C push {r3, lr} ldr r0, [r0, #0x74] bl MOD05_021E3424 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203D248 -FUN_0203D248: ; 0x0203D248 + thumb_func_start ScrCmd_Unk0132 +ScrCmd_Unk0132: ; 0x0203D248 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -4254,8 +4254,8 @@ FUN_0203D248: ; 0x0203D248 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D278 -FUN_0203D278: ; 0x0203D278 + thumb_func_start ScrCmd_Unk0133 +ScrCmd_Unk0133: ; 0x0203D278 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -4275,8 +4275,8 @@ FUN_0203D278: ; 0x0203D278 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D2A4 -FUN_0203D2A4: ; 0x0203D2A4 + thumb_func_start ScrCmd_Unk0134 +ScrCmd_Unk0134: ; 0x0203D2A4 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -4304,8 +4304,8 @@ FUN_0203D2A4: ; 0x0203D2A4 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203D2E4 -FUN_0203D2E4: ; 0x0203D2E4 + thumb_func_start ScrCmd_Unk0135 +ScrCmd_Unk0135: ; 0x0203D2E4 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -4342,16 +4342,16 @@ _0203D324: bl FUN_020315D8 pop {r4, pc} - thumb_func_start FUN_0203D330 -FUN_0203D330: ; 0x0203D330 + thumb_func_start ScrCmd_Unk0136 +ScrCmd_Unk0136: ; 0x0203D330 push {r3, lr} bl FUN_0203168C mov r0, #0x0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D33C -FUN_0203D33C: ; 0x0203D33C + thumb_func_start ScrCmd_Unk0137 +ScrCmd_Unk0137: ; 0x0203D33C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -4373,8 +4373,8 @@ FUN_0203D33C: ; 0x0203D33C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D36C -FUN_0203D36C: ; 0x0203D36C + thumb_func_start ScrCmd_Unk0138 +ScrCmd_Unk0138: ; 0x0203D36C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -4400,8 +4400,8 @@ FUN_0203D36C: ; 0x0203D36C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D3A4 -FUN_0203D3A4: ; 0x0203D3A4 + thumb_func_start ScrCmd_Unk0139 +ScrCmd_Unk0139: ; 0x0203D3A4 push {r4, lr} bl ScriptReadHalfword add r4, r0, #0x0 @@ -4430,8 +4430,8 @@ _0203D3D8: mov r0, #0x0 pop {r4, pc} - thumb_func_start FUN_0203D3DC -FUN_0203D3DC: ; 0x0203D3DC + thumb_func_start ScrCmd_Unk013C +ScrCmd_Unk013C: ; 0x0203D3DC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -4480,8 +4480,8 @@ _0203D434: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D448 -FUN_0203D448: ; 0x0203D448 + thumb_func_start ScrCmd_Unk013D +ScrCmd_Unk013D: ; 0x0203D448 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -4490,8 +4490,8 @@ FUN_0203D448: ; 0x0203D448 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D458 -FUN_0203D458: ; 0x0203D458 + thumb_func_start ScrCmd_Unk013E +ScrCmd_Unk013E: ; 0x0203D458 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4520,8 +4520,8 @@ _0203D48A: pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D490 -FUN_0203D490: ; 0x0203D490 + thumb_func_start ScrCmd_Unk013F +ScrCmd_Unk013F: ; 0x0203D490 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -4560,8 +4560,8 @@ FUN_0203D490: ; 0x0203D490 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D4E8 -FUN_0203D4E8: ; 0x0203D4E8 + thumb_func_start ScrCmd_Unk02BA +ScrCmd_Unk02BA: ; 0x0203D4E8 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -4591,8 +4591,8 @@ _0203D522: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D528 -FUN_0203D528: ; 0x0203D528 + thumb_func_start ScrCmd_Unk0140 +ScrCmd_Unk0140: ; 0x0203D528 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4617,8 +4617,8 @@ FUN_0203D528: ; 0x0203D528 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203D560 -FUN_0203D560: ; 0x0203D560 + thumb_func_start ScrCmd_Unk0146 +ScrCmd_Unk0146: ; 0x0203D560 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4653,8 +4653,8 @@ FUN_0203D560: ; 0x0203D560 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D5B0 -FUN_0203D5B0: ; 0x0203D5B0 + thumb_func_start ScrCmd_Unk0141 +ScrCmd_Unk0141: ; 0x0203D5B0 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -4691,8 +4691,8 @@ _0203D5F0: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203D5F8 -FUN_0203D5F8: ; 0x0203D5F8 + thumb_func_start ScrCmd_Unk0142 +ScrCmd_Unk0142: ; 0x0203D5F8 push {r3, lr} add r0, #0x80 ldr r1, [r0, #0x0] @@ -4703,8 +4703,8 @@ FUN_0203D5F8: ; 0x0203D5F8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D60C -FUN_0203D60C: ; 0x0203D60C + thumb_func_start ScrCmd_Unk013A +ScrCmd_Unk013A: ; 0x0203D60C push {r3, lr} mov r0, #0x4 bl FUN_02052B74 @@ -4712,8 +4712,8 @@ FUN_0203D60C: ; 0x0203D60C mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203D61C -FUN_0203D61C: ; 0x0203D61C + thumb_func_start ScrCmd_Unk013B +ScrCmd_Unk013B: ; 0x0203D61C push {r3, lr} bl FUN_02031C64 bl FUN_02031B50 @@ -4722,8 +4722,8 @@ FUN_0203D61C: ; 0x0203D61C mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203D630 -FUN_0203D630: ; 0x0203D630 + thumb_func_start ScrCmd_Unk0143 +ScrCmd_Unk0143: ; 0x0203D630 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -4750,8 +4750,8 @@ FUN_0203D630: ; 0x0203D630 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203D66C -FUN_0203D66C: ; 0x0203D66C + thumb_func_start ScrCmd_Unk0144 +ScrCmd_Unk0144: ; 0x0203D66C push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -4795,8 +4795,8 @@ _0203D6BC: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D6C4 -FUN_0203D6C4: ; 0x0203D6C4 + thumb_func_start ScrCmd_Unk0145 +ScrCmd_Unk0145: ; 0x0203D6C4 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -4847,8 +4847,8 @@ _0203D720: .balign 4 _0203D724: .word gMain - thumb_func_start FUN_0203D728 -FUN_0203D728: ; 0x0203D728 + thumb_func_start ScrCmd_Unk0153 +ScrCmd_Unk0153: ; 0x0203D728 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -4857,8 +4857,8 @@ FUN_0203D728: ; 0x0203D728 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203D738 -FUN_0203D738: ; 0x0203D738 + thumb_func_start ScrCmd_Unk0154 +ScrCmd_Unk0154: ; 0x0203D738 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4884,8 +4884,8 @@ FUN_0203D738: ; 0x0203D738 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203D774 -FUN_0203D774: ; 0x0203D774 + thumb_func_start ScrCmd_Unk0155 +ScrCmd_Unk0155: ; 0x0203D774 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4928,8 +4928,8 @@ FUN_0203D774: ; 0x0203D774 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D7DC -FUN_0203D7DC: ; 0x0203D7DC + thumb_func_start ScrCmd_Unk029C +ScrCmd_Unk029C: ; 0x0203D7DC push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 @@ -4966,8 +4966,8 @@ FUN_0203D7DC: ; 0x0203D7DC pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203D834 -FUN_0203D834: ; 0x0203D834 + thumb_func_start ScrCmd_Unk0156 +ScrCmd_Unk0156: ; 0x0203D834 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -4990,16 +4990,16 @@ FUN_0203D834: ; 0x0203D834 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203D868 -FUN_0203D868: ; 0x0203D868 + thumb_func_start ScrCmd_Unk014B +ScrCmd_Unk014B: ; 0x0203D868 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02048498 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203D874 -FUN_0203D874: ; 0x0203D874 + thumb_func_start ScrCmd_Unk014C +ScrCmd_Unk014C: ; 0x0203D874 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5019,8 +5019,8 @@ FUN_0203D874: ; 0x0203D874 pop {r3-r5, pc} .balign 4 - thumb_func_start ScrCmd_getplayergender -ScrCmd_getplayergender: ; 0x0203D8A0 + thumb_func_start ScrCmd_GetPlayerGender +ScrCmd_GetPlayerGender: ; 0x0203D8A0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -5041,8 +5041,8 @@ ScrCmd_getplayergender: ; 0x0203D8A0 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start ScrCmd_healparty -ScrCmd_healparty: ; 0x0203D8D0 + thumb_func_start ScrCmd_HealParty +ScrCmd_HealParty: ; 0x0203D8D0 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02046528 @@ -5053,13 +5053,13 @@ ScrCmd_healparty: ; 0x0203D8D0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D8E8 -FUN_0203D8E8: ; 0x0203D8E8 + thumb_func_start ScrCmd_Unk014F +ScrCmd_Unk014F: ; 0x0203D8E8 mov r0, #0x0 bx lr - thumb_func_start FUN_0203D8EC -FUN_0203D8EC: ; 0x0203D8EC + thumb_func_start ScrCmd_Unk0150 +ScrCmd_Unk0150: ; 0x0203D8EC push {r4, lr} add r4, r0, #0x0 bl FUN_02050024 @@ -5087,8 +5087,8 @@ _0203D91A: pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D920 -FUN_0203D920: ; 0x0203D920 + thumb_func_start ScrCmd_Unk02BB +ScrCmd_Unk02BB: ; 0x0203D920 push {r4, lr} add r4, r0, #0x0 bl FUN_02050048 @@ -5100,8 +5100,8 @@ FUN_0203D920: ; 0x0203D920 .balign 4 _0203D934: .word FUN_0203D904 - thumb_func_start FUN_0203D938 -FUN_0203D938: ; 0x0203D938 + thumb_func_start ScrCmd_Unk0151 +ScrCmd_Unk0151: ; 0x0203D938 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5110,8 +5110,8 @@ FUN_0203D938: ; 0x0203D938 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D948 -FUN_0203D948: ; 0x0203D948 + thumb_func_start ScrCmd_Unk0152 +ScrCmd_Unk0152: ; 0x0203D948 push {r3, lr} bl ScriptReadHalfword bl FUN_0204F6DC @@ -5119,8 +5119,8 @@ FUN_0203D948: ; 0x0203D948 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203D958 -FUN_0203D958: ; 0x0203D958 + thumb_func_start ScrCmd_Unk017A +ScrCmd_Unk017A: ; 0x0203D958 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5148,8 +5148,8 @@ FUN_0203D958: ; 0x0203D958 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203D998 -FUN_0203D998: ; 0x0203D998 + thumb_func_start ScrCmd_Unk0186 +ScrCmd_Unk0186: ; 0x0203D998 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5184,8 +5184,8 @@ FUN_0203D998: ; 0x0203D998 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203D9E8 -FUN_0203D9E8: ; 0x0203D9E8 + thumb_func_start ScrCmd_Unk0187 +ScrCmd_Unk0187: ; 0x0203D9E8 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -5246,8 +5246,8 @@ FUN_0203D9E8: ; 0x0203D9E8 pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0203DA78 -FUN_0203DA78: ; 0x0203DA78 + thumb_func_start ScrCmd_Unk0188 +ScrCmd_Unk0188: ; 0x0203DA78 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5272,8 +5272,8 @@ FUN_0203DA78: ; 0x0203DA78 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DAB0 -FUN_0203DAB0: ; 0x0203DAB0 + thumb_func_start ScrCmd_Unk0189 +ScrCmd_Unk0189: ; 0x0203DAB0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5298,8 +5298,8 @@ FUN_0203DAB0: ; 0x0203DAB0 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DAE8 -FUN_0203DAE8: ; 0x0203DAE8 + thumb_func_start ScrCmd_Unk018A +ScrCmd_Unk018A: ; 0x0203DAE8 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5334,8 +5334,8 @@ FUN_0203DAE8: ; 0x0203DAE8 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203DB38 -FUN_0203DB38: ; 0x0203DB38 + thumb_func_start ScrCmd_Unk018B +ScrCmd_Unk018B: ; 0x0203DB38 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5370,8 +5370,8 @@ FUN_0203DB38: ; 0x0203DB38 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203DB88 -FUN_0203DB88: ; 0x0203DB88 + thumb_func_start ScrCmd_Unk018C +ScrCmd_Unk018C: ; 0x0203DB88 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5405,8 +5405,8 @@ _0203DBC6: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203DBD4 -FUN_0203DBD4: ; 0x0203DBD4 + thumb_func_start ScrCmd_Unk018F +ScrCmd_Unk018F: ; 0x0203DBD4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -5428,8 +5428,8 @@ _0203DBFC: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DC00 -FUN_0203DC00: ; 0x0203DC00 + thumb_func_start ScrCmd_Unk0168 +ScrCmd_Unk0168: ; 0x0203DC00 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5468,8 +5468,8 @@ FUN_0203DC00: ; 0x0203DC00 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203DC58 -FUN_0203DC58: ; 0x0203DC58 + thumb_func_start ScrCmd_Unk0169 +ScrCmd_Unk0169: ; 0x0203DC58 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -5482,8 +5482,8 @@ FUN_0203DC58: ; 0x0203DC58 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DC70 -FUN_0203DC70: ; 0x0203DC70 + thumb_func_start ScrCmd_Unk016A +ScrCmd_Unk016A: ; 0x0203DC70 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -5496,8 +5496,8 @@ FUN_0203DC70: ; 0x0203DC70 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DC88 -FUN_0203DC88: ; 0x0203DC88 + thumb_func_start ScrCmd_Unk016B +ScrCmd_Unk016B: ; 0x0203DC88 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -5510,8 +5510,8 @@ FUN_0203DC88: ; 0x0203DC88 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCA0 -FUN_0203DCA0: ; 0x0203DCA0 + thumb_func_start ScrCmd_Unk016C +ScrCmd_Unk016C: ; 0x0203DCA0 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -5524,8 +5524,8 @@ FUN_0203DCA0: ; 0x0203DCA0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCB8 -FUN_0203DCB8: ; 0x0203DCB8 + thumb_func_start ScrCmd_Unk016F +ScrCmd_Unk016F: ; 0x0203DCB8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5534,8 +5534,8 @@ FUN_0203DCB8: ; 0x0203DCB8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCC8 -FUN_0203DCC8: ; 0x0203DCC8 + thumb_func_start ScrCmd_Unk0170 +ScrCmd_Unk0170: ; 0x0203DCC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5544,8 +5544,8 @@ FUN_0203DCC8: ; 0x0203DCC8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCD8 -FUN_0203DCD8: ; 0x0203DCD8 + thumb_func_start ScrCmd_Unk0171 +ScrCmd_Unk0171: ; 0x0203DCD8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5554,8 +5554,8 @@ FUN_0203DCD8: ; 0x0203DCD8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCE8 -FUN_0203DCE8: ; 0x0203DCE8 + thumb_func_start ScrCmd_Unk0172 +ScrCmd_Unk0172: ; 0x0203DCE8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5564,8 +5564,8 @@ FUN_0203DCE8: ; 0x0203DCE8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DCF8 -FUN_0203DCF8: ; 0x0203DCF8 + thumb_func_start ScrCmd_Unk0173 +ScrCmd_Unk0173: ; 0x0203DCF8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5574,8 +5574,8 @@ FUN_0203DCF8: ; 0x0203DCF8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DD08 -FUN_0203DD08: ; 0x0203DD08 + thumb_func_start ScrCmd_Unk0174 +ScrCmd_Unk0174: ; 0x0203DD08 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5584,8 +5584,8 @@ FUN_0203DD08: ; 0x0203DD08 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DD18 -FUN_0203DD18: ; 0x0203DD18 + thumb_func_start ScrCmd_Unk0175 +ScrCmd_Unk0175: ; 0x0203DD18 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 @@ -5600,8 +5600,8 @@ FUN_0203DD18: ; 0x0203DD18 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DD34 -FUN_0203DD34: ; 0x0203DD34 + thumb_func_start ScrCmd_Unk0176 +ScrCmd_Unk0176: ; 0x0203DD34 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 @@ -5616,8 +5616,8 @@ FUN_0203DD34: ; 0x0203DD34 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DD50 -FUN_0203DD50: ; 0x0203DD50 + thumb_func_start ScrCmd_Unk01AC +ScrCmd_Unk01AC: ; 0x0203DD50 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -5626,8 +5626,8 @@ FUN_0203DD50: ; 0x0203DD50 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DD60 -FUN_0203DD60: ; 0x0203DD60 + thumb_func_start ScrCmd_Unk019E +ScrCmd_Unk019E: ; 0x0203DD60 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 @@ -5701,8 +5701,8 @@ _0203DDF6: nop _0203DDFC: .word 0x0000FFFE - thumb_func_start FUN_0203DE00 -FUN_0203DE00: ; 0x0203DE00 + thumb_func_start ScrCmd_Unk019F +ScrCmd_Unk019F: ; 0x0203DE00 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -5738,16 +5738,16 @@ FUN_0203DE38: ; 0x0203DE38 bl FUN_020546C8 pop {r3, pc} - thumb_func_start FUN_0203DE4C -FUN_0203DE4C: ; 0x0203DE4C + thumb_func_start ScrCmd_Unk01A0 +ScrCmd_Unk01A0: ; 0x0203DE4C push {r3, lr} bl MOD11_0224CA94 mov r0, #0x0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DE58 -FUN_0203DE58: ; 0x0203DE58 + thumb_func_start ScrCmd_Unk01A1 +ScrCmd_Unk01A1: ; 0x0203DE58 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] @@ -5766,8 +5766,8 @@ FUN_0203DE58: ; 0x0203DE58 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203DE80 -FUN_0203DE80: ; 0x0203DE80 + thumb_func_start ScrCmd_Unk01A2 +ScrCmd_Unk01A2: ; 0x0203DE80 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] @@ -5786,8 +5786,8 @@ FUN_0203DE80: ; 0x0203DE80 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203DEA8 -FUN_0203DEA8: ; 0x0203DEA8 + thumb_func_start ScrCmd_Unk003F +ScrCmd_Unk003F: ; 0x0203DEA8 push {r3, lr} sub sp, #0x8 mov r3, #0x0 @@ -5802,8 +5802,8 @@ FUN_0203DEA8: ; 0x0203DEA8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203DEC4 -FUN_0203DEC4: ; 0x0203DEC4 + thumb_func_start ScrCmd_Unk01B1 +ScrCmd_Unk01B1: ; 0x0203DEC4 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -5827,8 +5827,8 @@ _0203DEEC: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DEF8 -FUN_0203DEF8: ; 0x0203DEF8 + thumb_func_start ScrCmd_Unk01B2 +ScrCmd_Unk01B2: ; 0x0203DEF8 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -5852,16 +5852,16 @@ _0203DF20: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DF2C -FUN_0203DF2C: ; 0x0203DF2C + thumb_func_start ScrCmd_Unk01B3 +ScrCmd_Unk01B3: ; 0x0203DF2C push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02066818 mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203DF38 -FUN_0203DF38: ; 0x0203DF38 + thumb_func_start ScrCmd_Unk01B4 +ScrCmd_Unk01B4: ; 0x0203DF38 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -5881,8 +5881,8 @@ FUN_0203DF38: ; 0x0203DF38 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DF64 -FUN_0203DF64: ; 0x0203DF64 + thumb_func_start ScrCmd_Unk01B5 +ScrCmd_Unk01B5: ; 0x0203DF64 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -5897,8 +5897,8 @@ FUN_0203DF64: ; 0x0203DF64 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_0203DF84 -FUN_0203DF84: ; 0x0203DF84 + thumb_func_start ScrCmd_Unk01B6 +ScrCmd_Unk01B6: ; 0x0203DF84 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -5915,8 +5915,8 @@ FUN_0203DF84: ; 0x0203DF84 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203DFA8 -FUN_0203DFA8: ; 0x0203DFA8 + thumb_func_start ScrCmd_Unk01B7 +ScrCmd_Unk01B7: ; 0x0203DFA8 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5940,8 +5940,8 @@ FUN_0203DFA8: ; 0x0203DFA8 mov r0, #0x1 pop {r3-r5, pc} - thumb_func_start FUN_0203DFE0 -FUN_0203DFE0: ; 0x0203DFE0 + thumb_func_start ScrCmd_Unk01B8 +ScrCmd_Unk01B8: ; 0x0203DFE0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -5965,8 +5965,8 @@ FUN_0203DFE0: ; 0x0203DFE0 mov r0, #0x1 pop {r3-r5, pc} - thumb_func_start FUN_0203E018 -FUN_0203E018: ; 0x0203E018 + thumb_func_start ScrCmd_Unk01C1 +ScrCmd_Unk01C1: ; 0x0203E018 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -5993,8 +5993,8 @@ FUN_0203E018: ; 0x0203E018 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203E054 -FUN_0203E054: ; 0x0203E054 + thumb_func_start ScrCmd_Unk01C2 +ScrCmd_Unk01C2: ; 0x0203E054 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 @@ -6011,8 +6011,8 @@ FUN_0203E054: ; 0x0203E054 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203E078 -FUN_0203E078: ; 0x0203E078 + thumb_func_start ScrCmd_Unk01C3 +ScrCmd_Unk01C3: ; 0x0203E078 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -6049,8 +6049,8 @@ FUN_0203E078: ; 0x0203E078 mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start FUN_0203E0CC -FUN_0203E0CC: ; 0x0203E0CC + thumb_func_start ScrCmd_Unk01C4 +ScrCmd_Unk01C4: ; 0x0203E0CC push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -6087,8 +6087,8 @@ FUN_0203E0CC: ; 0x0203E0CC mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start FUN_0203E120 -FUN_0203E120: ; 0x0203E120 + thumb_func_start ScrCmd_Unk01C5 +ScrCmd_Unk01C5: ; 0x0203E120 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -6100,8 +6100,8 @@ FUN_0203E120: ; 0x0203E120 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E138 -FUN_0203E138: ; 0x0203E138 + thumb_func_start ScrCmd_Unk01CC +ScrCmd_Unk01CC: ; 0x0203E138 push {r4, lr} add r0, #0x80 ldr r4, [r0, #0x0] @@ -6122,8 +6122,8 @@ FUN_0203E138: ; 0x0203E138 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203E168 -FUN_0203E168: ; 0x0203E168 + thumb_func_start ScrCmd_Unk01CD +ScrCmd_Unk01CD: ; 0x0203E168 push {r3-r7, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -6234,13 +6234,13 @@ _0203E23E: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203E254 -FUN_0203E254: ; 0x0203E254 + thumb_func_start ScrCmd_Unk01CE +ScrCmd_Unk01CE: ; 0x0203E254 mov r0, #0x0 bx lr - thumb_func_start FUN_0203E258 -FUN_0203E258: ; 0x0203E258 + thumb_func_start ScrCmd_Unk01D2 +ScrCmd_Unk01D2: ; 0x0203E258 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6269,8 +6269,8 @@ FUN_0203E258: ; 0x0203E258 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203E29C -FUN_0203E29C: ; 0x0203E29C + thumb_func_start ScrCmd_Unk01D3 +ScrCmd_Unk01D3: ; 0x0203E29C push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6309,8 +6309,8 @@ FUN_0203E29C: ; 0x0203E29C pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203E2F8 -FUN_0203E2F8: ; 0x0203E2F8 + thumb_func_start ScrCmd_Unk01D4 +ScrCmd_Unk01D4: ; 0x0203E2F8 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6355,8 +6355,8 @@ _0203E354: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203E35C -FUN_0203E35C: ; 0x0203E35C + thumb_func_start ScrCmd_Unk01D5 +ScrCmd_Unk01D5: ; 0x0203E35C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6377,8 +6377,8 @@ FUN_0203E35C: ; 0x0203E35C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E38C -FUN_0203E38C: ; 0x0203E38C + thumb_func_start ScrCmd_Unk01D6 +ScrCmd_Unk01D6: ; 0x0203E38C push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6407,8 +6407,8 @@ FUN_0203E38C: ; 0x0203E38C mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203E3D0 -FUN_0203E3D0: ; 0x0203E3D0 + thumb_func_start ScrCmd_Unk01E8 +ScrCmd_Unk01E8: ; 0x0203E3D0 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -6435,8 +6435,8 @@ _0203E404: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203E408 -FUN_0203E408: ; 0x0203E408 + thumb_func_start ScrCmd_Unk01E9 +ScrCmd_Unk01E9: ; 0x0203E408 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -6463,8 +6463,8 @@ _0203E43C: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203E440 -FUN_0203E440: ; 0x0203E440 + thumb_func_start ScrCmd_Unk01EA +ScrCmd_Unk01EA: ; 0x0203E440 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -6487,8 +6487,8 @@ FUN_0203E440: ; 0x0203E440 .balign 4 _0203E46C: .word FUN_0203BB90 - thumb_func_start FUN_0203E470 -FUN_0203E470: ; 0x0203E470 + thumb_func_start ScrCmd_Unk01EB +ScrCmd_Unk01EB: ; 0x0203E470 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -6511,8 +6511,8 @@ FUN_0203E470: ; 0x0203E470 .balign 4 _0203E49C: .word FUN_0203BB90 - thumb_func_start FUN_0203E4A0 -FUN_0203E4A0: ; 0x0203E4A0 + thumb_func_start ScrCmd_Unk01EC +ScrCmd_Unk01EC: ; 0x0203E4A0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -6521,8 +6521,8 @@ FUN_0203E4A0: ; 0x0203E4A0 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E4B0 -FUN_0203E4B0: ; 0x0203E4B0 + thumb_func_start ScrCmd_Unk01ED +ScrCmd_Unk01ED: ; 0x0203E4B0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6541,8 +6541,8 @@ FUN_0203E4B0: ; 0x0203E4B0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E4D8 -FUN_0203E4D8: ; 0x0203E4D8 + thumb_func_start ScrCmd_Unk01EF +ScrCmd_Unk01EF: ; 0x0203E4D8 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -6554,8 +6554,8 @@ FUN_0203E4D8: ; 0x0203E4D8 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203E4F0 -FUN_0203E4F0: ; 0x0203E4F0 + thumb_func_start ScrCmd_Unk01E5 +ScrCmd_Unk01E5: ; 0x0203E4F0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6570,8 +6570,8 @@ FUN_0203E4F0: ; 0x0203E4F0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E510 -FUN_0203E510: ; 0x0203E510 + thumb_func_start ScrCmd_Unk01E6 +ScrCmd_Unk01E6: ; 0x0203E510 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6610,8 +6610,8 @@ FUN_0203E510: ; 0x0203E510 .balign 4 _0203E564: .word 0xFFFF0000 - thumb_func_start FUN_0203E568 -FUN_0203E568: ; 0x0203E568 + thumb_func_start ScrCmd_Unk01E7 +ScrCmd_Unk01E7: ; 0x0203E568 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6666,8 +6666,8 @@ _0203E5D6: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203E5DC -FUN_0203E5DC: ; 0x0203E5DC + thumb_func_start ScrCmd_Unk0202 +ScrCmd_Unk0202: ; 0x0203E5DC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -6737,8 +6737,8 @@ _0203E66E: add sp, #0x8 pop {r3-r7, pc} - thumb_func_start FUN_0203E674 -FUN_0203E674: ; 0x0203E674 + thumb_func_start ScrCmd_Unk0206 +ScrCmd_Unk0206: ; 0x0203E674 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -6747,8 +6747,8 @@ FUN_0203E674: ; 0x0203E674 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203E684 -FUN_0203E684: ; 0x0203E684 + thumb_func_start ScrCmd_Unk020D +ScrCmd_Unk020D: ; 0x0203E684 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] @@ -6771,8 +6771,8 @@ FUN_0203E684: ; 0x0203E684 pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203E6B4 -FUN_0203E6B4: ; 0x0203E6B4 + thumb_func_start ScrCmd_Unk020E +ScrCmd_Unk020E: ; 0x0203E6B4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -6781,8 +6781,8 @@ FUN_0203E6B4: ; 0x0203E6B4 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203E6C4 -FUN_0203E6C4: ; 0x0203E6C4 + thumb_func_start ScrCmd_Unk020F +ScrCmd_Unk020F: ; 0x0203E6C4 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6807,8 +6807,8 @@ FUN_0203E6C4: ; 0x0203E6C4 mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0203E6FC -FUN_0203E6FC: ; 0x0203E6FC + thumb_func_start ScrCmd_Unk0210 +ScrCmd_Unk0210: ; 0x0203E6FC push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6830,8 +6830,8 @@ FUN_0203E6FC: ; 0x0203E6FC pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203E72C -FUN_0203E72C: ; 0x0203E72C + thumb_func_start ScrCmd_Unk0211 +ScrCmd_Unk0211: ; 0x0203E72C push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -6844,8 +6844,8 @@ FUN_0203E72C: ; 0x0203E72C mov r0, #0x1 pop {r3, pc} - thumb_func_start FUN_0203E744 -FUN_0203E744: ; 0x0203E744 + thumb_func_start ScrCmd_Unk0214 +ScrCmd_Unk0214: ; 0x0203E744 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -6867,8 +6867,8 @@ FUN_0203E744: ; 0x0203E744 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E774 -FUN_0203E774: ; 0x0203E774 + thumb_func_start ScrCmd_Unk0218 +ScrCmd_Unk0218: ; 0x0203E774 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 @@ -6928,8 +6928,8 @@ _0203E7E8: .balign 4 _0203E7EC: .word 0x000001ED - thumb_func_start FUN_0203E7F0 -FUN_0203E7F0: ; 0x0203E7F0 + thumb_func_start ScrCmd_Unk0219 +ScrCmd_Unk0219: ; 0x0203E7F0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6949,8 +6949,8 @@ FUN_0203E7F0: ; 0x0203E7F0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E81C -FUN_0203E81C: ; 0x0203E81C + thumb_func_start ScrCmd_Unk021A +ScrCmd_Unk021A: ; 0x0203E81C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -6970,8 +6970,8 @@ FUN_0203E81C: ; 0x0203E81C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E848 -FUN_0203E848: ; 0x0203E848 + thumb_func_start ScrCmd_Unk021B +ScrCmd_Unk021B: ; 0x0203E848 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -6980,8 +6980,8 @@ FUN_0203E848: ; 0x0203E848 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E858 -FUN_0203E858: ; 0x0203E858 + thumb_func_start ScrCmd_Unk021C +ScrCmd_Unk021C: ; 0x0203E858 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 @@ -6994,8 +6994,8 @@ FUN_0203E858: ; 0x0203E858 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E870 -FUN_0203E870: ; 0x0203E870 + thumb_func_start ScrCmd_Unk0226 +ScrCmd_Unk0226: ; 0x0203E870 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -7013,8 +7013,8 @@ FUN_0203E870: ; 0x0203E870 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203E894 -FUN_0203E894: ; 0x0203E894 + thumb_func_start ScrCmd_Unk0227 +ScrCmd_Unk0227: ; 0x0203E894 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -7036,8 +7036,8 @@ FUN_0203E894: ; 0x0203E894 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E8C4 -FUN_0203E8C4: ; 0x0203E8C4 + thumb_func_start ScrCmd_Unk0228 +ScrCmd_Unk0228: ; 0x0203E8C4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -7059,8 +7059,8 @@ FUN_0203E8C4: ; 0x0203E8C4 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E8F4 -FUN_0203E8F4: ; 0x0203E8F4 + thumb_func_start ScrCmd_Unk0229 +ScrCmd_Unk0229: ; 0x0203E8F4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -7084,8 +7084,8 @@ FUN_0203E8F4: ; 0x0203E8F4 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203E928 -FUN_0203E928: ; 0x0203E928 + thumb_func_start ScrCmd_Unk022A +ScrCmd_Unk022A: ; 0x0203E928 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7097,8 +7097,8 @@ FUN_0203E928: ; 0x0203E928 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203E940 -FUN_0203E940: ; 0x0203E940 + thumb_func_start ScrCmd_Unk022B +ScrCmd_Unk022B: ; 0x0203E940 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7108,8 +7108,8 @@ FUN_0203E940: ; 0x0203E940 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E954 -FUN_0203E954: ; 0x0203E954 + thumb_func_start ScrCmd_Unk022C +ScrCmd_Unk022C: ; 0x0203E954 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7119,8 +7119,8 @@ FUN_0203E954: ; 0x0203E954 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203E968 -FUN_0203E968: ; 0x0203E968 + thumb_func_start ScrCmd_Unk022D +ScrCmd_Unk022D: ; 0x0203E968 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] @@ -7166,8 +7166,8 @@ _0203E9C8: mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203E9CC -FUN_0203E9CC: ; 0x0203E9CC + thumb_func_start ScrCmd_Unk0233 +ScrCmd_Unk0233: ; 0x0203E9CC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -7235,8 +7235,8 @@ FUN_0203E9CC: ; 0x0203E9CC pop {r4-r7, pc} .balign 4 - thumb_func_start FUN_0203EA68 -FUN_0203EA68: ; 0x0203EA68 + thumb_func_start ScrCmd_Unk0234 +ScrCmd_Unk0234: ; 0x0203EA68 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 @@ -7255,8 +7255,8 @@ FUN_0203EA68: ; 0x0203EA68 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203EA90 -FUN_0203EA90: ; 0x0203EA90 + thumb_func_start ScrCmd_Unk0239 +ScrCmd_Unk0239: ; 0x0203EA90 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -7271,8 +7271,8 @@ FUN_0203EA90: ; 0x0203EA90 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_0203EAB0 -FUN_0203EAB0: ; 0x0203EAB0 + thumb_func_start ScrCmd_Unk023A +ScrCmd_Unk023A: ; 0x0203EAB0 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7319,8 +7319,8 @@ FUN_0203EAB0: ; 0x0203EAB0 pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203EB20 -FUN_0203EB20: ; 0x0203EB20 + thumb_func_start ScrCmd_Unk023B +ScrCmd_Unk023B: ; 0x0203EB20 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -7339,8 +7339,8 @@ FUN_0203EB20: ; 0x0203EB20 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203EB48 -FUN_0203EB48: ; 0x0203EB48 + thumb_func_start ScrCmd_Unk023C +ScrCmd_Unk023C: ; 0x0203EB48 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7369,8 +7369,8 @@ FUN_0203EB48: ; 0x0203EB48 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203EB88 -FUN_0203EB88: ; 0x0203EB88 + thumb_func_start ScrCmd_Unk023D +ScrCmd_Unk023D: ; 0x0203EB88 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 @@ -7400,8 +7400,8 @@ FUN_0203EB88: ; 0x0203EB88 add sp, #0xc pop {r4-r7, pc} - thumb_func_start ScrCmd_gameversion -ScrCmd_gameversion: ; 0x0203EBC8 + thumb_func_start ScrCmd_GameVersion +ScrCmd_GameVersion: ; 0x0203EBC8 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -7415,8 +7415,8 @@ ScrCmd_gameversion: ; 0x0203EBC8 pop {r4, pc} .balign 4 - thumb_func_start ScrCmd_givewallpaper -ScrCmd_givewallpaper: ; 0x0203EBE4 + thumb_func_start ScrCmd_GiveWallpaper +ScrCmd_GiveWallpaper: ; 0x0203EBE4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 @@ -7506,8 +7506,8 @@ _0203ECA2: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203ECAC -FUN_0203ECAC: ; 0x0203ECAC + thumb_func_start ScrCmd_Unk024A +ScrCmd_Unk024A: ; 0x0203ECAC push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -7527,8 +7527,8 @@ FUN_0203ECAC: ; 0x0203ECAC mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203ECD8 -FUN_0203ECD8: ; 0x0203ECD8 + thumb_func_start ScrCmd_Unk024B +ScrCmd_Unk024B: ; 0x0203ECD8 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 @@ -7543,8 +7543,8 @@ FUN_0203ECD8: ; 0x0203ECD8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203ECF4 -FUN_0203ECF4: ; 0x0203ECF4 + thumb_func_start ScrCmd_Unk024C +ScrCmd_Unk024C: ; 0x0203ECF4 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 @@ -7559,8 +7559,8 @@ FUN_0203ECF4: ; 0x0203ECF4 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203ED10 -FUN_0203ED10: ; 0x0203ED10 + thumb_func_start ScrCmd_Unk024D +ScrCmd_Unk024D: ; 0x0203ED10 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 @@ -7606,8 +7606,8 @@ FUN_0203ED2C: ; 0x0203ED2C pop {r4-r6, pc} .balign 4 - thumb_func_start ScrCmd_pcfreespace -ScrCmd_pcfreespace: ; 0x0203ED70 + thumb_func_start ScrCmd_PCFreeSpace +ScrCmd_PCFreeSpace: ; 0x0203ED70 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7631,8 +7631,8 @@ ScrCmd_pcfreespace: ; 0x0203ED70 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203EDA4 -FUN_0203EDA4: ; 0x0203EDA4 + thumb_func_start ScrCmd_Unk0258 +ScrCmd_Unk0258: ; 0x0203EDA4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -7650,8 +7650,8 @@ FUN_0203EDA4: ; 0x0203EDA4 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203EDC8 -FUN_0203EDC8: ; 0x0203EDC8 + thumb_func_start ScrCmd_Unk0259 +ScrCmd_Unk0259: ; 0x0203EDC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7663,8 +7663,8 @@ FUN_0203EDC8: ; 0x0203EDC8 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203EDE0 -FUN_0203EDE0: ; 0x0203EDE0 + thumb_func_start ScrCmd_Unk025A +ScrCmd_Unk025A: ; 0x0203EDE0 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -7683,8 +7683,8 @@ FUN_0203EDE0: ; 0x0203EDE0 pop {r4, pc} .balign 4 - thumb_func_start FUN_0203EE08 -FUN_0203EE08: ; 0x0203EE08 + thumb_func_start ScrCmd_Unk025B +ScrCmd_Unk025B: ; 0x0203EE08 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7693,8 +7693,8 @@ FUN_0203EE08: ; 0x0203EE08 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203EE18 -FUN_0203EE18: ; 0x0203EE18 + thumb_func_start ScrCmd_Unk025C +ScrCmd_Unk025C: ; 0x0203EE18 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7703,8 +7703,8 @@ FUN_0203EE18: ; 0x0203EE18 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203EE28 -FUN_0203EE28: ; 0x0203EE28 + thumb_func_start ScrCmd_Unk025D +ScrCmd_Unk025D: ; 0x0203EE28 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7729,8 +7729,8 @@ _0203EE50: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203EE58 -FUN_0203EE58: ; 0x0203EE58 + thumb_func_start ScrCmd_Unk025E +ScrCmd_Unk025E: ; 0x0203EE58 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7739,8 +7739,8 @@ FUN_0203EE58: ; 0x0203EE58 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203EE68 -FUN_0203EE68: ; 0x0203EE68 + thumb_func_start ScrCmd_Unk025F +ScrCmd_Unk025F: ; 0x0203EE68 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7749,8 +7749,8 @@ FUN_0203EE68: ; 0x0203EE68 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203EE78 -FUN_0203EE78: ; 0x0203EE78 + thumb_func_start ScrCmd_Unk0260 +ScrCmd_Unk0260: ; 0x0203EE78 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7765,8 +7765,8 @@ FUN_0203EE78: ; 0x0203EE78 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203EE98 -FUN_0203EE98: ; 0x0203EE98 + thumb_func_start ScrCmd_Unk0262 +ScrCmd_Unk0262: ; 0x0203EE98 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -7794,8 +7794,8 @@ FUN_0203EE98: ; 0x0203EE98 mov r0, #0x1 pop {r4-r6, pc} - thumb_func_start FUN_0203EED8 -FUN_0203EED8: ; 0x0203EED8 + thumb_func_start ScrCmd_Unk0263 +ScrCmd_Unk0263: ; 0x0203EED8 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 @@ -7854,8 +7854,8 @@ _0203EF4E: .balign 4 _0203EF54: .word 0x00000182 - thumb_func_start FUN_0203EF58 -FUN_0203EF58: ; 0x0203EF58 + thumb_func_start ScrCmd_Unk0264 +ScrCmd_Unk0264: ; 0x0203EF58 push {r3-r7, lr} sub sp, #0x30 add r4, r0, #0x0 @@ -7946,8 +7946,8 @@ _0203EFFC: .balign 4 _0203F008: .word UNK_020F34FC - thumb_func_start FUN_0203F00C -FUN_0203F00C: ; 0x0203F00C + thumb_func_start ScrCmd_Unk0265 +ScrCmd_Unk0265: ; 0x0203F00C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7957,8 +7957,8 @@ FUN_0203F00C: ; 0x0203F00C mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203F020 -FUN_0203F020: ; 0x0203F020 + thumb_func_start ScrCmd_Unk0266 +ScrCmd_Unk0266: ; 0x0203F020 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -7968,8 +7968,8 @@ FUN_0203F020: ; 0x0203F020 mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203F034 -FUN_0203F034: ; 0x0203F034 + thumb_func_start ScrCmd_Unk0267 +ScrCmd_Unk0267: ; 0x0203F034 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -7986,8 +7986,8 @@ FUN_0203F034: ; 0x0203F034 mov r0, #0x1 pop {r4, pc} - thumb_func_start FUN_0203F058 -FUN_0203F058: ; 0x0203F058 + thumb_func_start ScrCmd_Unk0268 +ScrCmd_Unk0268: ; 0x0203F058 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -8004,8 +8004,8 @@ FUN_0203F058: ; 0x0203F058 mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203F07C -FUN_0203F07C: ; 0x0203F07C + thumb_func_start ScrCmd_Unk0269 +ScrCmd_Unk0269: ; 0x0203F07C push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 @@ -8069,8 +8069,8 @@ _0203F0FA: add sp, #0x10 pop {r3-r7, pc} - thumb_func_start FUN_0203F110 -FUN_0203F110: ; 0x0203F110 + thumb_func_start ScrCmd_Unk026A +ScrCmd_Unk026A: ; 0x0203F110 push {r3-r7, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -8114,8 +8114,8 @@ _0203F164: mov r0, #0x1 pop {r3-r7, pc} - thumb_func_start FUN_0203F174 -FUN_0203F174: ; 0x0203F174 + thumb_func_start ScrCmd_Unk026B +ScrCmd_Unk026B: ; 0x0203F174 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8134,8 +8134,8 @@ FUN_0203F174: ; 0x0203F174 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F19C -FUN_0203F19C: ; 0x0203F19C + thumb_func_start ScrCmd_Unk026C +ScrCmd_Unk026C: ; 0x0203F19C push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 @@ -8211,8 +8211,8 @@ _0203F222: nop _0203F230: .word 0x0000FFFF - thumb_func_start FUN_0203F234 -FUN_0203F234: ; 0x0203F234 + thumb_func_start ScrCmd_Unk026E +ScrCmd_Unk026E: ; 0x0203F234 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -8228,8 +8228,8 @@ FUN_0203F234: ; 0x0203F234 .balign 4 _0203F250: .word gMain + 0x60 - thumb_func_start FUN_0203F254 -FUN_0203F254: ; 0x0203F254 + thumb_func_start ScrCmd_Unk026F +ScrCmd_Unk026F: ; 0x0203F254 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -8241,8 +8241,8 @@ FUN_0203F254: ; 0x0203F254 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203F26C -FUN_0203F26C: ; 0x0203F26C + thumb_func_start ScrCmd_Unk0270 +ScrCmd_Unk0270: ; 0x0203F26C push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8273,8 +8273,8 @@ _0203F2A6: pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203F2AC -FUN_0203F2AC: ; 0x0203F2AC + thumb_func_start ScrCmd_Unk0273 +ScrCmd_Unk0273: ; 0x0203F2AC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 @@ -8300,8 +8300,8 @@ FUN_0203F2AC: ; 0x0203F2AC pop {r4-r6, pc} .balign 4 - thumb_func_start FUN_0203F2E4 -FUN_0203F2E4: ; 0x0203F2E4 + thumb_func_start ScrCmd_Unk0275 +ScrCmd_Unk0275: ; 0x0203F2E4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -8329,8 +8329,8 @@ _0203F316: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203F31C -FUN_0203F31C: ; 0x0203F31C + thumb_func_start ScrCmd_Unk0277 +ScrCmd_Unk0277: ; 0x0203F31C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8350,8 +8350,8 @@ FUN_0203F31C: ; 0x0203F31C pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F348 -FUN_0203F348: ; 0x0203F348 + thumb_func_start ScrCmd_Unk0279 +ScrCmd_Unk0279: ; 0x0203F348 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8380,8 +8380,8 @@ FUN_0203F348: ; 0x0203F348 mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203F38C -FUN_0203F38C: ; 0x0203F38C + thumb_func_start ScrCmd_Unk027A +ScrCmd_Unk027A: ; 0x0203F38C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -8390,8 +8390,8 @@ FUN_0203F38C: ; 0x0203F38C pop {r3, pc} .balign 4 - thumb_func_start FUN_0203F39C -FUN_0203F39C: ; 0x0203F39C + thumb_func_start ScrCmd_Unk027B +ScrCmd_Unk027B: ; 0x0203F39C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -8400,8 +8400,8 @@ FUN_0203F39C: ; 0x0203F39C mov r0, #0x0 pop {r3, pc} - thumb_func_start FUN_0203F3AC -FUN_0203F3AC: ; 0x0203F3AC + thumb_func_start ScrCmd_Unk027D +ScrCmd_Unk027D: ; 0x0203F3AC push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8448,8 +8448,8 @@ _0203F3FE: nop _0203F414: .word 0x0000FFFF - thumb_func_start FUN_0203F418 -FUN_0203F418: ; 0x0203F418 + thumb_func_start ScrCmd_Unk027F +ScrCmd_Unk027F: ; 0x0203F418 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8475,8 +8475,8 @@ _0203F446: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203F44C -FUN_0203F44C: ; 0x0203F44C + thumb_func_start ScrCmd_Unk027E +ScrCmd_Unk027E: ; 0x0203F44C push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 @@ -8504,8 +8504,8 @@ _0203F47E: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203F484 -FUN_0203F484: ; 0x0203F484 + thumb_func_start ScrCmd_Unk0282 +ScrCmd_Unk0282: ; 0x0203F484 push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8544,8 +8544,8 @@ _0203F4D2: pop {r3-r7, pc} .balign 4 - thumb_func_start FUN_0203F4D8 -FUN_0203F4D8: ; 0x0203F4D8 + thumb_func_start ScrCmd_Unk0284 +ScrCmd_Unk0284: ; 0x0203F4D8 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -8567,8 +8567,8 @@ FUN_0203F4D8: ; 0x0203F4D8 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F508 -FUN_0203F508: ; 0x0203F508 + thumb_func_start ScrCmd_Unk0285 +ScrCmd_Unk0285: ; 0x0203F508 push {r3-r7, lr} add r6, r0, #0x0 bl ScriptReadHalfword @@ -8671,8 +8671,8 @@ _0203F5C8: .word 0x0000010E _0203F5CC: .word 0x0000010D _0203F5D0: .word UNK_020F3538 - thumb_func_start FUN_0203F5D4 -FUN_0203F5D4: ; 0x0203F5D4 + thumb_func_start ScrCmd_Unk0286 +ScrCmd_Unk0286: ; 0x0203F5D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -8694,8 +8694,8 @@ FUN_0203F5D4: ; 0x0203F5D4 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F604 -FUN_0203F604: ; 0x0203F604 + thumb_func_start ScrCmd_Unk0287 +ScrCmd_Unk0287: ; 0x0203F604 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -8717,8 +8717,8 @@ FUN_0203F604: ; 0x0203F604 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F634 -FUN_0203F634: ; 0x0203F634 + thumb_func_start ScrCmd_Unk0288 +ScrCmd_Unk0288: ; 0x0203F634 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -8740,8 +8740,8 @@ FUN_0203F634: ; 0x0203F634 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F664 -FUN_0203F664: ; 0x0203F664 + thumb_func_start ScrCmd_Unk0289 +ScrCmd_Unk0289: ; 0x0203F664 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 @@ -8803,8 +8803,8 @@ _0203F6DA: .balign 4 _0203F6E0: .word 0x0000FFFF - thumb_func_start FUN_0203F6E4 -FUN_0203F6E4: ; 0x0203F6E4 + thumb_func_start ScrCmd_Unk028A +ScrCmd_Unk028A: ; 0x0203F6E4 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8833,8 +8833,8 @@ _0203F714: nop _0203F71C: .word 0x0000FFFF - thumb_func_start FUN_0203F720 -FUN_0203F720: ; 0x0203F720 + thumb_func_start ScrCmd_Unk028B +ScrCmd_Unk028B: ; 0x0203F720 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] @@ -8864,8 +8864,8 @@ _0203F752: mov r0, #0x0 pop {r4-r6, pc} - thumb_func_start FUN_0203F760 -FUN_0203F760: ; 0x0203F760 + thumb_func_start ScrCmd_Unk028F +ScrCmd_Unk028F: ; 0x0203F760 push {r3-r5, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -8915,8 +8915,8 @@ _0203F7BE: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F7C8 -FUN_0203F7C8: ; 0x0203F7C8 + thumb_func_start ScrCmd_Unk0290 +ScrCmd_Unk0290: ; 0x0203F7C8 push {r4-r6, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -8947,8 +8947,8 @@ FUN_0203F7C8: ; 0x0203F7C8 .balign 4 _0203F808: .word FUN_0203BC04 - thumb_func_start FUN_0203F80C -FUN_0203F80C: ; 0x0203F80C + thumb_func_start ScrCmd_Unk0291 +ScrCmd_Unk0291: ; 0x0203F80C push {r4-r6, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -9003,8 +9003,8 @@ _0203F872: str r0, [r4, #0x0] pop {r4-r6, pc} - thumb_func_start FUN_0203F880 -FUN_0203F880: ; 0x0203F880 + thumb_func_start ScrCmd_Unk0292 +ScrCmd_Unk0292: ; 0x0203F880 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] @@ -9037,8 +9037,8 @@ _0203F8BA: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203F8C0 -FUN_0203F8C0: ; 0x0203F8C0 + thumb_func_start ScrCmd_Unk029E +ScrCmd_Unk029E: ; 0x0203F8C0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9087,8 +9087,8 @@ _0203F91E: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F924 -FUN_0203F924: ; 0x0203F924 + thumb_func_start ScrCmd_Unk0293 +ScrCmd_Unk0293: ; 0x0203F924 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 @@ -9110,8 +9110,8 @@ FUN_0203F924: ; 0x0203F924 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F954 -FUN_0203F954: ; 0x0203F954 + thumb_func_start ScrCmd_Unk029F +ScrCmd_Unk029F: ; 0x0203F954 push {r4, lr} add r4, r0, #0x0 bl ScriptReadHalfword @@ -9137,8 +9137,8 @@ _0203F982: pop {r4, pc} .balign 4 - thumb_func_start FUN_0203F988 -FUN_0203F988: ; 0x0203F988 + thumb_func_start ScrCmd_Unk02A3 +ScrCmd_Unk02A3: ; 0x0203F988 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9157,8 +9157,8 @@ FUN_0203F988: ; 0x0203F988 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F9B0 -FUN_0203F9B0: ; 0x0203F9B0 + thumb_func_start ScrCmd_Unk02A4 +ScrCmd_Unk02A4: ; 0x0203F9B0 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9178,8 +9178,8 @@ FUN_0203F9B0: ; 0x0203F9B0 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203F9DC -FUN_0203F9DC: ; 0x0203F9DC + thumb_func_start ScrCmd_Unk02A2 +ScrCmd_Unk02A2: ; 0x0203F9DC push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9206,8 +9206,8 @@ _0203FA0C: .balign 4 _0203FA10: .word 0x0000FF79 - thumb_func_start FUN_0203FA14 -FUN_0203FA14: ; 0x0203FA14 + thumb_func_start ScrCmd_Unk02A7 +ScrCmd_Unk02A7: ; 0x0203FA14 push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9239,8 +9239,8 @@ _0203FA4E: nop _0203FA54: .word 0x0000012A - thumb_func_start FUN_0203FA58 -FUN_0203FA58: ; 0x0203FA58 + thumb_func_start ScrCmd_Unk02AA +ScrCmd_Unk02AA: ; 0x0203FA58 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 @@ -9342,8 +9342,8 @@ _0203FB26: nop _0203FB48: .word 0x00000147 - thumb_func_start FUN_0203FB4C -FUN_0203FB4C: ; 0x0203FB4C + thumb_func_start ScrCmd_Unk02AC +ScrCmd_Unk02AC: ; 0x0203FB4C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -9355,8 +9355,8 @@ FUN_0203FB4C: ; 0x0203FB4C pop {r3, pc} .balign 4 - thumb_func_start FUN_0203FB64 -FUN_0203FB64: ; 0x0203FB64 + thumb_func_start ScrCmd_Unk02AF +ScrCmd_Unk02AF: ; 0x0203FB64 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -9378,24 +9378,24 @@ FUN_0203FB64: ; 0x0203FB64 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203FB94 -FUN_0203FB94: ; 0x0203FB94 + thumb_func_start ScrCmd_Unk02B0 +ScrCmd_Unk02B0: ; 0x0203FB94 push {r3, lr} bl FUN_02033E74 mov r0, #0x0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203FBA0 -FUN_0203FBA0: ; 0x0203FBA0 + thumb_func_start ScrCmd_Unk02B1 +ScrCmd_Unk02B1: ; 0x0203FBA0 push {r3, lr} bl FUN_02033ED0 mov r0, #0x0 pop {r3, pc} .balign 4 - thumb_func_start FUN_0203FBAC -FUN_0203FBAC: ; 0x0203FBAC + thumb_func_start ScrCmd_Unk02B2 +ScrCmd_Unk02B2: ; 0x0203FBAC push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] @@ -9404,8 +9404,8 @@ FUN_0203FBAC: ; 0x0203FBAC pop {r3, pc} .balign 4 - thumb_func_start FUN_0203FBBC -FUN_0203FBBC: ; 0x0203FBBC + thumb_func_start ScrCmd_Unk02B5 +ScrCmd_Unk02B5: ; 0x0203FBBC push {r3-r7, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9447,8 +9447,8 @@ FUN_0203FBBC: ; 0x0203FBBC mov r0, #0x0 pop {r3-r7, pc} - thumb_func_start FUN_0203FC1C -FUN_0203FC1C: ; 0x0203FC1C + thumb_func_start ScrCmd_Unk02B6 +ScrCmd_Unk02B6: ; 0x0203FC1C push {r3-r5, lr} add r5, r0, #0x0 bl ScriptReadHalfword @@ -9476,8 +9476,8 @@ _0203FC4C: mov r0, #0x0 pop {r3-r5, pc} - thumb_func_start FUN_0203FC58 -FUN_0203FC58: ; 0x0203FC58 + thumb_func_start ScrCmd_Unk02BE +ScrCmd_Unk02BE: ; 0x0203FC58 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 @@ -9496,8 +9496,8 @@ FUN_0203FC58: ; 0x0203FC58 pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203FC80 -FUN_0203FC80: ; 0x0203FC80 + thumb_func_start ScrCmd_Unk02C1 +ScrCmd_Unk02C1: ; 0x0203FC80 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] @@ -9520,8 +9520,8 @@ _0203FCAA: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203FCB0 -FUN_0203FCB0: ; 0x0203FCB0 + thumb_func_start ScrCmd_Unk02C2 +ScrCmd_Unk02C2: ; 0x0203FCB0 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] @@ -9542,8 +9542,8 @@ _0203FCD6: pop {r3-r5, pc} .balign 4 - thumb_func_start FUN_0203FCDC -FUN_0203FCDC: ; 0x0203FCDC + thumb_func_start ScrCmd_Unk02C3 +ScrCmd_Unk02C3: ; 0x0203FCDC push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index a49b03871..06140345c 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -212,7 +212,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Menu .word ScrCmd_ScrollBg .word ScrCmd_YesNoMenu - .word FUN_0203DEA8 + .word ScrCmd_Unk003F .word ScrCmd_Unk0040 .word ScrCmd_Unk0041 .word ScrCmd_Unk0042 @@ -244,22 +244,22 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk005C .word ScrCmd_Unk005D .word ScrCmd_Unk005E - .word FUN_0203B148 - .word FUN_0203B1F0 - .word FUN_0203B3B0 - .word FUN_0203B3C0 - .word FUN_0203B3DC - .word FUN_0203B3F8 - .word FUN_0203B440 - .word FUN_0203B468 - .word FUN_0203B500 - .word FUN_0203B544 - .word FUN_0203B574 - .word FUN_0203B5B8 - .word FUN_0203B640 - .word FUN_0203B724 - .word FUN_0203B758 - .word FUN_0203B7D8 + .word ScrCmd_Unk005F + .word ScrCmd_Unk0060 + .word ScrCmd_Unk0061 + .word ScrCmd_Unk0062 + .word ScrCmd_Unk0063 + .word ScrCmd_Unk0064 + .word ScrCmd_Unk0065 + .word ScrCmd_Unk0066 + .word ScrCmd_Unk0067 + .word ScrCmd_Unk0068 + .word ScrCmd_Unk0069 + .word ScrCmd_Unk006A + .word ScrCmd_Unk006B + .word ScrCmd_Unk006C + .word ScrCmd_Unk006D + .word ScrCmd_Unk006E .word ScrCmd_GiveMoney .word ScrCmd_TakeMoneyImmediate .word ScrCmd_HasEnoughMoneyImmediate @@ -296,64 +296,64 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0090 .word ScrCmd_Unk0091 .word ScrCmd_Unk0092 - .word FUN_0203B81C - .word FUN_0203B85C - .word FUN_0203B8A0 + .word ScrCmd_Unk0093 + .word ScrCmd_Unk0094 + .word ScrCmd_Unk0095 .word ScrCmd_GiveMon - .word ScrCmd_giveegg - .word ScrCmd_setpartymonmove - .word ScrCmd_partymonhasmove - .word ScrCmd_findpartymonwithmove - .word FUN_0203BB34 - .word FUN_0203BB80 - .word FUN_0203BB84 - .word FUN_0203BB88 - .word FUN_0203BB8C - .word FUN_02045264 - .word FUN_0203BC1C - .word FUN_0203BCBC - .word FUN_0203BCCC - .word FUN_0203BCD8 - .word FUN_0203BF20 - .word FUN_0203BF2C - .word FUN_0203BF84 - .word FUN_0203BFEC - .word FUN_0203C118 - .word FUN_0203C12C - .word ScrCmd_monstoragepc - .word FUN_0203C2C4 - .word FUN_0203C2E0 - .word FUN_0203C2F0 - .word FUN_0203C300 - .word ScrCmd_halloffame - .word FUN_0203C33C - .word FUN_0203C368 - .word FUN_0203C3C8 - .word FUN_0203C3E8 - .word FUN_0203C430 - .word FUN_020416A8 - .word FUN_02041770 - .word FUN_020417E0 - .word FUN_02041808 - .word FUN_0203C4F0 - .word FUN_0203C520 - .word FUN_0203C6C4 - .word FUN_0203C70C - .word FUN_0203C730 - .word FUN_0203C844 - .word FUN_0203C874 - .word FUN_0203C8B4 - .word FUN_0203C8E4 - .word FUN_0203C930 - .word FUN_0203C960 - .word FUN_0203C990 - .word FUN_0203CA20 - .word FUN_0203CA2C - .word FUN_0203CA5C - .word FUN_0203CB08 - .word FUN_0203CB20 - .word FUN_0203CB48 - .word FUN_0203CB60 + .word ScrCmd_GiveEgg + .word ScrCmd_SetPartyMonMove + .word ScrCmd_PartyMonHasMove + .word ScrCmd_FindPartyMonWithMove + .word ScrCmd_Unk009B + .word ScrCmd_Unk009C + .word ScrCmd_Unk009D + .word ScrCmd_Unk009E + .word ScrCmd_Unk009F + .word ScrCmd_Unk00A0 + .word ScrCmd_Unk00A1 + .word ScrCmd_Unk00A2 + .word ScrCmd_Unk00A3 + .word ScrCmd_Unk00A4 + .word ScrCmd_Unk00A5 + .word ScrCmd_Unk00A6 + .word ScrCmd_Unk00A7 + .word ScrCmd_Unk00A8 + .word ScrCmd_Unk00A9 + .word ScrCmd_Unk00AA + .word ScrCmd_MonStoragePC + .word ScrCmd_Unk00AC + .word ScrCmd_Unk00AD + .word ScrCmd_Unk00AE + .word ScrCmd_Unk00AF + .word ScrCmd_HallOfFame + .word ScrCmd_Unk00B1 + .word ScrCmd_Unk00B2 + .word ScrCmd_Unk00B3 + .word ScrCmd_Unk00B4 + .word ScrCmd_Unk00B5 + .word ScrCmd_Unk00B6 + .word ScrCmd_Unk00B7 + .word ScrCmd_Unk00B8 + .word ScrCmd_Unk00B9 + .word ScrCmd_Unk00BA + .word ScrCmd_Unk00BB + .word ScrCmd_Unk00BC + .word ScrCmd_Unk00BD + .word ScrCmd_Unk00BE + .word ScrCmd_Unk00BF + .word ScrCmd_Unk00C0 + .word ScrCmd_Unk00C1 + .word ScrCmd_Unk00C2 + .word ScrCmd_Unk00C3 + .word ScrCmd_Unk00C4 + .word ScrCmd_Unk00C5 + .word ScrCmd_Unk00C6 + .word ScrCmd_Unk00C7 + .word ScrCmd_Unk00C8 + .word ScrCmd_Unk00C9 + .word ScrCmd_Unk00CA + .word ScrCmd_Unk00CB + .word ScrCmd_Unk00CC .word ScrCmd_GetPlayerName .word ScrCmd_GetRivalName .word ScrCmd_GetFriendName @@ -371,127 +371,127 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk00DB .word ScrCmd_Unk00DC .word ScrCmd_Unk00DD - .word FUN_0203CBBC + .word ScrCmd_Unk00DE .word ScrCmd_GetDecorationName .word ScrCmd_GetUndergroundTrapName .word ScrCmd_GetUndergroundItemName .word ScrCmd_Unk00E2 - .word FUN_0203CB70 - .word FUN_0204185C - .word FUN_0204188C - .word FUN_0203CBE8 - .word FUN_02041970 - .word FUN_020419F8 - .word FUN_02041A80 - .word FUN_02041AB4 - .word FUN_02041AD4 - .word FUN_02041AE0 - .word FUN_02041B10 - .word FUN_02041B70 - .word FUN_02041B9C - .word FUN_02041BC4 - .word FUN_02041BF0 - .word FUN_0203CC88 - .word FUN_0203CD20 - .word FUN_0203CDB8 - .word FUN_0203CDC4 - .word FUN_0203CDD0 - .word FUN_0203CE00 - .word FUN_0203FE90 - .word FUN_0203FEC0 - .word FUN_0203FF10 - .word FUN_02040028 - .word FUN_02040074 - .word FUN_020400C8 - .word FUN_0204011C - .word FUN_02040170 - .word FUN_020401CC - .word FUN_02040204 - .word FUN_02040220 - .word FUN_0204025C - .word FUN_02040298 - .word FUN_020402D4 - .word FUN_02040304 - .word FUN_02040340 - .word FUN_02040370 - .word FUN_020403A0 - .word FUN_020403D0 - .word FUN_02040414 - .word FUN_02040458 - .word FUN_020404FC - .word FUN_0204052C - .word FUN_0204056C - .word FUN_02040488 - .word FUN_020405CC - .word FUN_020405F8 - .word FUN_02040638 - .word FUN_0204064C - .word FUN_02040660 - .word FUN_020406C0 - .word FUN_0204059C - .word FUN_020405B4 - .word FUN_02044CE0 - .word FUN_02044D44 - .word FUN_0203CE0C - .word FUN_0203CE8C - .word FUN_0203CEBC - .word FUN_0203CF04 - .word FUN_0203CF34 - .word FUN_0203CF64 - .word FUN_0203CF94 - .word FUN_0203CFC4 - .word FUN_0203CFC8 - .word FUN_0203D050 - .word FUN_0203D0F8 - .word FUN_0203D134 - .word FUN_0203D140 - .word FUN_0203D150 - .word FUN_0203D178 - .word FUN_0203D194 - .word FUN_0203D1A4 - .word FUN_0203D1C0 - .word FUN_0203D214 - .word FUN_0203C054 - .word FUN_0203C090 - .word FUN_0203C0CC - .word FUN_0203D23C - .word FUN_0203D248 - .word FUN_0203D278 - .word FUN_0203D2A4 - .word FUN_0203D2E4 - .word FUN_0203D330 - .word FUN_0203D33C - .word FUN_0203D36C - .word FUN_0203D3A4 - .word FUN_0203D60C - .word FUN_0203D61C - .word FUN_0203D3DC - .word FUN_0203D448 - .word FUN_0203D458 - .word FUN_0203D490 - .word FUN_0203D528 - .word FUN_0203D5B0 - .word FUN_0203D5F8 - .word FUN_0203D630 - .word FUN_0203D66C - .word FUN_0203D6C4 - .word FUN_0203D560 + .word ScrCmd_Unk00E3 + .word ScrCmd_Unk00E4 + .word ScrCmd_Unk00E5 + .word ScrCmd_Unk00E6 + .word ScrCmd_Unk00E7 + .word ScrCmd_Unk00E8 + .word ScrCmd_Unk00E9 + .word ScrCmd_Unk00EA + .word ScrCmd_Unk00EB + .word ScrCmd_Unk00EC + .word ScrCmd_Unk00ED + .word ScrCmd_Unk00EE + .word ScrCmd_Unk00EF + .word ScrCmd_Unk00F0 + .word ScrCmd_Unk00F1 + .word ScrCmd_Unk00F2 + .word ScrCmd_Unk00F3 + .word ScrCmd_Unk00F4 + .word ScrCmd_Unk00F5 + .word ScrCmd_Unk00F6 + .word ScrCmd_Unk00F7 + .word ScrCmd_Unk00F8 + .word ScrCmd_Unk00F9 + .word ScrCmd_Unk00FA + .word ScrCmd_Unk00FB + .word ScrCmd_Unk00FC + .word ScrCmd_Unk00FD + .word ScrCmd_Unk00FE + .word ScrCmd_Unk00FF + .word ScrCmd_Unk0100 + .word ScrCmd_Unk0101 + .word ScrCmd_Unk0102 + .word ScrCmd_Unk0103 + .word ScrCmd_Unk0104 + .word ScrCmd_Unk0105 + .word ScrCmd_Unk0106 + .word ScrCmd_Unk0107 + .word ScrCmd_Unk0108 + .word ScrCmd_Unk0109 + .word ScrCmd_Unk010A + .word ScrCmd_Unk010B + .word ScrCmd_Unk010C + .word ScrCmd_Unk010D + .word ScrCmd_Unk010E + .word ScrCmd_Unk010F + .word ScrCmd_Unk0110 + .word ScrCmd_Unk0111 + .word ScrCmd_Unk0112 + .word ScrCmd_Unk0113 + .word ScrCmd_Unk0114 + .word ScrCmd_Unk0115 + .word ScrCmd_Unk0116 + .word ScrCmd_Unk0117 + .word ScrCmd_Unk0118 + .word ScrCmd_Unk0119 + .word ScrCmd_Unk011A + .word ScrCmd_Unk011B + .word ScrCmd_Unk011C + .word ScrCmd_Unk011D + .word ScrCmd_Unk011E + .word ScrCmd_Unk011F + .word ScrCmd_Unk0120 + .word ScrCmd_Unk0121 + .word ScrCmd_Unk0122 + .word ScrCmd_Unk0123 + .word ScrCmd_Unk0124 + .word ScrCmd_Unk0125 + .word ScrCmd_Unk0126 + .word ScrCmd_Unk0127 + .word ScrCmd_Unk0128 + .word ScrCmd_Unk0129 + .word ScrCmd_Unk012A + .word ScrCmd_Unk012B + .word ScrCmd_Unk012C + .word ScrCmd_Unk012D + .word ScrCmd_Unk012E + .word ScrCmd_Unk012F + .word ScrCmd_Unk0130 + .word ScrCmd_Unk0131 + .word ScrCmd_Unk0132 + .word ScrCmd_Unk0133 + .word ScrCmd_Unk0134 + .word ScrCmd_Unk0135 + .word ScrCmd_Unk0136 + .word ScrCmd_Unk0137 + .word ScrCmd_Unk0138 + .word ScrCmd_Unk0139 + .word ScrCmd_Unk013A + .word ScrCmd_Unk013B + .word ScrCmd_Unk013C + .word ScrCmd_Unk013D + .word ScrCmd_Unk013E + .word ScrCmd_Unk013F + .word ScrCmd_Unk0140 + .word ScrCmd_Unk0141 + .word ScrCmd_Unk0142 + .word ScrCmd_Unk0143 + .word ScrCmd_Unk0144 + .word ScrCmd_Unk0145 + .word ScrCmd_Unk0146 .word ScrCmd_NormalMart .word ScrCmd_SpecialMart .word ScrCmd_GoodsMart .word ScrCmd_SealsMart - .word FUN_0203D868 - .word FUN_0203D874 - .word ScrCmd_getplayergender - .word ScrCmd_healparty - .word FUN_0203D8E8 - .word FUN_0203D8EC - .word FUN_0203D938 - .word FUN_0203D948 - .word FUN_0203D728 - .word FUN_0203D738 - .word FUN_0203D774 - .word FUN_0203D834 + .word ScrCmd_Unk014B + .word ScrCmd_Unk014C + .word ScrCmd_GetPlayerGender + .word ScrCmd_HealParty + .word ScrCmd_Unk014F + .word ScrCmd_Unk0150 + .word ScrCmd_Unk0151 + .word ScrCmd_Unk0152 + .word ScrCmd_Unk0153 + .word ScrCmd_Unk0154 + .word ScrCmd_Unk0155 + .word ScrCmd_Unk0156 .word ScrCmd_HasSinnohDex .word ScrCmd_GiveSinnohDex .word ScrCmd_Unk0159 @@ -509,25 +509,25 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0165 .word ScrCmd_Unk0166 .word ScrCmd_Unk0167 - .word FUN_0203DC00 - .word FUN_0203DC58 - .word FUN_0203DC70 - .word FUN_0203DC88 - .word FUN_0203DCA0 + .word ScrCmd_Unk0168 + .word ScrCmd_Unk0169 + .word ScrCmd_Unk016A + .word ScrCmd_Unk016B + .word ScrCmd_Unk016C .word ScrCmd_Unk016D .word ScrCmd_Unk016E - .word FUN_0203DCB8 - .word FUN_0203DCC8 - .word FUN_0203DCD8 - .word FUN_0203DCE8 - .word FUN_0203DCF8 - .word FUN_0203DD08 - .word FUN_0203DD18 - .word FUN_0203DD34 - .word FUN_02044B00 - .word FUN_0203C460 - .word FUN_0203C4B0 - .word FUN_0203D958 + .word ScrCmd_Unk016F + .word ScrCmd_Unk0170 + .word ScrCmd_Unk0171 + .word ScrCmd_Unk0172 + .word ScrCmd_Unk0173 + .word ScrCmd_Unk0174 + .word ScrCmd_Unk0175 + .word ScrCmd_Unk0176 + .word ScrCmd_Unk0177 + .word ScrCmd_Unk0178 + .word ScrCmd_Unk0179 + .word ScrCmd_Unk017A .word ScrCmd_Unk017B .word ScrCmd_GetNatureName .word ScrCmd_Unk017D @@ -539,35 +539,35 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0183 .word ScrCmd_Unk0184 .word ScrCmd_Unk0185 - .word FUN_0203D998 - .word FUN_0203D9E8 - .word FUN_0203DA78 - .word FUN_0203DAB0 - .word FUN_0203DAE8 - .word FUN_0203DB38 - .word FUN_0203DB88 + .word ScrCmd_Unk0186 + .word ScrCmd_Unk0187 + .word ScrCmd_Unk0188 + .word ScrCmd_Unk0189 + .word ScrCmd_Unk018A + .word ScrCmd_Unk018B + .word ScrCmd_Unk018C .word ScrCmd_ShowSaveClock .word ScrCmd_HideSaveClock - .word FUN_0203DBD4 + .word ScrCmd_Unk018F .word ScrCmd_WaitButtonABTime - .word FUN_0203B8E4 - .word FUN_0203B944 - .word FUN_0203B968 - .word FUN_0203B9B4 - .word FUN_0203BA3C - .word FUN_0203BAB0 - .word FUN_0203BAF4 - .word ScrCmd_getpartyspecies - .word ScrCmd_checkpartymonotid - .word FUN_02044B2C - .word FUN_02044B84 - .word FUN_02044C0C - .word FUN_02044C88 - .word FUN_0203DD60 - .word FUN_0203DE00 - .word FUN_0203DE4C - .word FUN_0203DE58 - .word FUN_0203DE80 + .word ScrCmd_Unk0191 + .word ScrCmd_Unk0192 + .word ScrCmd_Unk0193 + .word ScrCmd_Unk0194 + .word ScrCmd_Unk0195 + .word ScrCmd_Unk0196 + .word ScrCmd_Unk0197 + .word ScrCmd_GetPartySpecies + .word ScrCmd_CheckPartyMonOTID + .word ScrCmd_Unk019A + .word ScrCmd_Unk019B + .word ScrCmd_Unk019C + .word ScrCmd_Unk019D + .word ScrCmd_Unk019E + .word ScrCmd_Unk019F + .word ScrCmd_Unk01A0 + .word ScrCmd_Unk01A1 + .word ScrCmd_Unk01A2 .word ScrCmd_TakeMoneyAddress .word ScrCmd_Unk01A4 .word ScrCmd_Unk01A5 @@ -577,83 +577,83 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk01A9 .word ScrCmd_Unk01AA .word ScrCmd_HasEnoughMoneyAddress - .word FUN_0203DD50 + .word ScrCmd_Unk01AC .word ScrCmd_Unk01AD .word ScrCmd_Unk01AE .word ScrCmd_Unk01AF .word ScrCmd_Unk01B0 - .word FUN_0203DEC4 - .word FUN_0203DEF8 - .word FUN_0203DF2C - .word FUN_0203DF38 - .word FUN_0203DF64 - .word FUN_0203DF84 - .word FUN_0203DFA8 - .word FUN_0203DFE0 - .word ScrCmd_getpartymonfriendship - .word FUN_020448D4 - .word FUN_020449A4 + .word ScrCmd_Unk01B1 + .word ScrCmd_Unk01B2 + .word ScrCmd_Unk01B3 + .word ScrCmd_Unk01B4 + .word ScrCmd_Unk01B5 + .word ScrCmd_Unk01B6 + .word ScrCmd_Unk01B7 + .word ScrCmd_Unk01B8 + .word ScrCmd_GetPartyMonFriendship + .word ScrCmd_Unk01BA + .word ScrCmd_Unk01BB .word ScrCmd_Unk01BC - .word FUN_0203B618 + .word ScrCmd_Unk01BD .word ScrCmd_Unk01BE .word ScrCmd_Unk01BF - .word FUN_02044F58 - .word FUN_0203E018 - .word FUN_0203E054 - .word FUN_0203E078 - .word FUN_0203E0CC - .word FUN_0203E120 + .word ScrCmd_Unk01C0 + .word ScrCmd_Unk01C1 + .word ScrCmd_Unk01C2 + .word ScrCmd_Unk01C3 + .word ScrCmd_Unk01C4 + .word ScrCmd_Unk01C5 .word ScrCmd_Unk01C6 .word ScrCmd_Unk01C7 - .word FUN_02044D8C - .word FUN_02044E34 - .word FUN_02044E78 + .word ScrCmd_Unk01C8 + .word ScrCmd_Unk01C9 + .word ScrCmd_Unk01CA .word ScrCmd_GetPokemonMoveName - .word FUN_0203E138 - .word FUN_0203E168 - .word FUN_0203E254 + .word ScrCmd_Unk01CC + .word ScrCmd_Unk01CD + .word ScrCmd_Unk01CE .word ScrCmd_Unk01CF .word ScrCmd_Unk01D0 .word ScrCmd_Unk01D1 - .word FUN_0203E258 - .word FUN_0203E29C - .word FUN_0203E2F8 - .word FUN_0203E35C - .word FUN_0203E38C - .word FUN_0203C174 - .word FUN_0203C1AC - .word FUN_0203C200 - .word FUN_02042354 - .word FUN_02042364 - .word FUN_02042394 - .word FUN_020423B0 - .word FUN_02042700 - .word FUN_02042780 - .word FUN_020427A8 - .word FUN_020427D0 - .word FUN_02042864 - .word FUN_02042894 - .word FUN_020428E0 - .word FUN_0203E4F0 - .word FUN_0203E510 - .word FUN_0203E568 - .word FUN_0203E3D0 - .word FUN_0203E408 - .word FUN_0203E440 - .word FUN_0203E470 - .word FUN_0203E4A0 - .word FUN_0203E4B0 - .word FUN_02044ED8 - .word FUN_0203E4D8 - .word FUN_02044F20 + .word ScrCmd_Unk01D2 + .word ScrCmd_Unk01D3 + .word ScrCmd_Unk01D4 + .word ScrCmd_Unk01D5 + .word ScrCmd_Unk01D6 + .word ScrCmd_Unk01D7 + .word ScrCmd_Unk01D8 + .word ScrCmd_Unk01D9 + .word ScrCmd_Unk01DA + .word ScrCmd_Unk01DB + .word ScrCmd_Unk01DC + .word ScrCmd_Unk01DD + .word ScrCmd_Unk01DE + .word ScrCmd_Unk01DF + .word ScrCmd_Unk01E0 + .word ScrCmd_Unk01E1 + .word ScrCmd_Unk01E2 + .word ScrCmd_Unk01E3 + .word ScrCmd_Unk01E4 + .word ScrCmd_Unk01E5 + .word ScrCmd_Unk01E6 + .word ScrCmd_Unk01E7 + .word ScrCmd_Unk01E8 + .word ScrCmd_Unk01E9 + .word ScrCmd_Unk01EA + .word ScrCmd_Unk01EB + .word ScrCmd_Unk01EC + .word ScrCmd_Unk01ED + .word ScrCmd_Unk01EE + .word ScrCmd_Unk01EF + .word ScrCmd_Unk01F0 .word ScrCmd_Unk01F1 .word ScrCmd_Unk01F2 .word ScrCmd_Unk01F3 .word ScrCmd_Unk01F4 .word ScrCmd_Unk01F5 - .word ScrCmd_countpartymonsatorbelowlevel - .word ScrCmd_survivepsn - .word FUN_0203BC2C + .word ScrCmd_CountPartyMonsAtOrBelowLevel + .word ScrCmd_SurvivePsn + .word ScrCmd_Unk01F8 .word ScrCmd_DebugWatch .word ScrCmd_MessageFrom .word ScrCmd_MessageFrom2 @@ -661,35 +661,35 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk01FD .word ScrCmd_Unk01FE .word ScrCmd_Unk01FF - .word FUN_0203C7F4 - .word FUN_0203C820 - .word FUN_0203E5DC - .word FUN_0203C788 - .word FUN_0203C7E4 - .word FUN_0203C0FC - .word FUN_0203E674 - .word FUN_0203BD08 - .word FUN_0203BD28 - .word FUN_0203BE50 - .word FUN_0203BECC - .word FUN_0203BF00 + .word ScrCmd_Unk0200 + .word ScrCmd_Unk0201 + .word ScrCmd_Unk0202 + .word ScrCmd_Unk0203 + .word ScrCmd_Unk0204 + .word ScrCmd_Unk0205 + .word ScrCmd_Unk0206 + .word ScrCmd_Unk0207 + .word ScrCmd_Unk0208 + .word ScrCmd_Unk0209 + .word ScrCmd_Unk020A + .word ScrCmd_Unk020B .word ScrCmd_Unk020C - .word FUN_0203E684 - .word FUN_0203E6B4 - .word FUN_0203E6C4 - .word FUN_0203E6FC - .word FUN_0203E72C - .word ScrCmd_getpartymonnature - .word ScrCmd_findpartymonwithnature - .word FUN_0203E744 - .word FUN_02044158 - .word FUN_0204416C - .word FUN_02044198 - .word FUN_0203E774 - .word FUN_0203E7F0 - .word FUN_0203E81C - .word FUN_0203E848 - .word FUN_0203E858 + .word ScrCmd_Unk020D + .word ScrCmd_Unk020E + .word ScrCmd_Unk020F + .word ScrCmd_Unk0210 + .word ScrCmd_Unk0211 + .word ScrCmd_GetPartyMonNature + .word ScrCmd_FindPartyMonWithNature + .word ScrCmd_Unk0214 + .word ScrCmd_Unk0215 + .word ScrCmd_Unk0216 + .word ScrCmd_Unk0217 + .word ScrCmd_Unk0218 + .word ScrCmd_Unk0219 + .word ScrCmd_Unk021A + .word ScrCmd_Unk021B + .word ScrCmd_Unk021C .word ScrCmd_Unk021D .word ScrCmd_Unk021E .word ScrCmd_Unk021F @@ -699,164 +699,164 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0223 .word ScrCmd_Unk0224 .word ScrCmd_Unk0225 - .word FUN_0203E870 - .word FUN_0203E894 - .word FUN_0203E8C4 - .word FUN_0203E8F4 - .word FUN_0203E928 - .word FUN_0203E940 - .word FUN_0203E954 - .word FUN_0203E968 - .word FUN_02044FE8 - .word FUN_0204505C - .word FUN_02045104 - .word FUN_02045170 + .word ScrCmd_Unk0226 + .word ScrCmd_Unk0227 + .word ScrCmd_Unk0228 + .word ScrCmd_Unk0229 + .word ScrCmd_Unk022A + .word ScrCmd_Unk022B + .word ScrCmd_Unk022C + .word ScrCmd_Unk022D + .word ScrCmd_Unk022E + .word ScrCmd_Unk022F + .word ScrCmd_Unk0230 + .word ScrCmd_Unk0231 .word ScrCmd_Unk0232 - .word FUN_0203E9CC - .word FUN_0203EA68 - .word FUN_02041E40 - .word FUN_02041FDC - .word FUN_02042038 - .word FUN_02042110 - .word FUN_0203EA90 - .word FUN_0203EAB0 - .word FUN_0203EB20 - .word FUN_0203EB48 - .word FUN_0203EB88 - .word FUN_02042D1C + .word ScrCmd_Unk0233 + .word ScrCmd_Unk0234 + .word ScrCmd_Unk0235 + .word ScrCmd_Unk0236 + .word ScrCmd_Unk0237 + .word ScrCmd_Unk0238 + .word ScrCmd_Unk0239 + .word ScrCmd_Unk023A + .word ScrCmd_Unk023B + .word ScrCmd_Unk023C + .word ScrCmd_Unk023D + .word ScrCmd_Unk023E .word ScrCmd_Unk023F .word ScrCmd_Unk0240 .word ScrCmd_Unk0241 .word ScrCmd_Unk0242 - .word FUN_0203C5BC - .word FUN_0203C614 - .word FUN_0203C680 - .word ScrCmd_gameversion - .word FUN_02044A6C - .word FUN_02044A94 - .word ScrCmd_givewallpaper - .word FUN_0203ECAC - .word FUN_0203ECD8 - .word FUN_0203ECF4 - .word FUN_0203ED10 - .word FUN_02041194 - .word FUN_020411C4 - .word FUN_02041340 + .word ScrCmd_Unk0243 + .word ScrCmd_Unk0244 + .word ScrCmd_Unk0245 + .word ScrCmd_GameVersion + .word ScrCmd_Unk0247 + .word ScrCmd_Unk0248 + .word ScrCmd_GiveWallpaper + .word ScrCmd_Unk024A + .word ScrCmd_Unk024B + .word ScrCmd_Unk024C + .word ScrCmd_Unk024D + .word ScrCmd_Unk024E + .word ScrCmd_Unk024F + .word ScrCmd_Unk0250 .word ScrCmd_Unk0251 - .word ScrCmd_pcfreespace + .word ScrCmd_PCFreeSpace .word ScrCmd_Unk0253 .word ScrCmd_Unk0254 .word ScrCmd_Unk0255 .word ScrCmd_Unk0256 .word ScrCmd_AccessoriesShop - .word FUN_0203EDA4 - .word FUN_0203EDC8 - .word FUN_0203EDE0 - .word FUN_0203EE08 - .word FUN_0203EE18 - .word FUN_0203EE28 - .word FUN_0203EE58 - .word FUN_0203EE68 - .word FUN_0203EE78 + .word ScrCmd_Unk0258 + .word ScrCmd_Unk0259 + .word ScrCmd_Unk025A + .word ScrCmd_Unk025B + .word ScrCmd_Unk025C + .word ScrCmd_Unk025D + .word ScrCmd_Unk025E + .word ScrCmd_Unk025F + .word ScrCmd_Unk0260 .word ScrCmd_GetFashionName - .word FUN_0203EE98 - .word FUN_0203EED8 - .word FUN_0203EF58 - .word FUN_0203F00C - .word FUN_0203F020 - .word FUN_0203F034 - .word FUN_0203F058 - .word FUN_0203F07C - .word FUN_0203F110 - .word FUN_0203F174 - .word FUN_0203F19C + .word ScrCmd_Unk0262 + .word ScrCmd_Unk0263 + .word ScrCmd_Unk0264 + .word ScrCmd_Unk0265 + .word ScrCmd_Unk0266 + .word ScrCmd_Unk0267 + .word ScrCmd_Unk0268 + .word ScrCmd_Unk0269 + .word ScrCmd_Unk026A + .word ScrCmd_Unk026B + .word ScrCmd_Unk026C .word ScrCmd_Unk026D - .word FUN_0203F234 - .word FUN_0203F254 - .word FUN_0203F26C - .word FUN_0203C58C + .word ScrCmd_Unk026E + .word ScrCmd_Unk026F + .word ScrCmd_Unk0270 + .word ScrCmd_Unk0271 .word ScrCmd_Unk0272 - .word FUN_0203F2AC + .word ScrCmd_Unk0273 .word ScrCmd_HasEnoughCoinsImmediate - .word FUN_0203F2E4 + .word ScrCmd_Unk0275 .word ScrCmd_CanGiveCoins - .word FUN_0203F31C - .word ScrCmd_getpartymonlevel - .word FUN_0203F348 - .word FUN_0203F38C - .word FUN_0203F39C - .word FUN_0204214C - .word FUN_0203F3AC - .word FUN_0203F44C - .word FUN_0203F418 + .word ScrCmd_Unk0277 + .word ScrCmd_GetPartyMonLevel + .word ScrCmd_Unk0279 + .word ScrCmd_Unk027A + .word ScrCmd_Unk027B + .word ScrCmd_Unk027C + .word ScrCmd_Unk027D + .word ScrCmd_Unk027E + .word ScrCmd_Unk027F .word ScrCmd_Unk0280 - .word FUN_02044A0C - .word FUN_0203F484 + .word ScrCmd_Unk0281 + .word ScrCmd_Unk0282 .word ScrCmd_Unk0283 - .word FUN_0203F4D8 - .word FUN_0203F508 - .word FUN_0203F5D4 - .word FUN_0203F604 - .word FUN_0203F634 - .word FUN_0203F664 - .word FUN_0203F6E4 - .word FUN_0203F720 - .word FUN_0203BDB8 - .word FUN_0203BE68 - .word FUN_0203BE80 - .word FUN_0203F760 - .word FUN_0203F7C8 - .word FUN_0203F80C - .word FUN_0203F880 - .word FUN_0203F924 - .word FUN_02042950 - .word FUN_02042980 - .word FUN_02042998 - .word FUN_020429B8 - .word FUN_020429E8 - .word FUN_02042A18 - .word FUN_02042A48 - .word FUN_02042A98 - .word FUN_0203D7DC + .word ScrCmd_Unk0284 + .word ScrCmd_Unk0285 + .word ScrCmd_Unk0286 + .word ScrCmd_Unk0287 + .word ScrCmd_Unk0288 + .word ScrCmd_Unk0289 + .word ScrCmd_Unk028A + .word ScrCmd_Unk028B + .word ScrCmd_Unk028C + .word ScrCmd_Unk028D + .word ScrCmd_Unk028E + .word ScrCmd_Unk028F + .word ScrCmd_Unk0290 + .word ScrCmd_Unk0291 + .word ScrCmd_Unk0292 + .word ScrCmd_Unk0293 + .word ScrCmd_Unk0294 + .word ScrCmd_Unk0295 + .word ScrCmd_Unk0296 + .word ScrCmd_Unk0297 + .word ScrCmd_Unk0298 + .word ScrCmd_Unk0299 + .word ScrCmd_Unk029A + .word ScrCmd_Unk029B + .word ScrCmd_Unk029C .word ScrCmd_Unk029D - .word FUN_0203F8C0 - .word FUN_0203F954 - .word FUN_0204190C - .word FUN_0203B024 - .word FUN_0203F9DC - .word FUN_0203F988 - .word FUN_0203F9B0 - .word FUN_0203B914 + .word ScrCmd_Unk029E + .word ScrCmd_Unk029F + .word ScrCmd_Unk02A0 + .word ScrCmd_Unk02A1 + .word ScrCmd_Unk02A2 + .word ScrCmd_Unk02A3 + .word ScrCmd_Unk02A4 + .word ScrCmd_Unk02A5 .word ScrCmd_Unk02A6 - .word FUN_0203FA14 + .word ScrCmd_Unk02A7 .word ScrCmd_TakeCoinsAddress .word ScrCmd_HasEnoughCoinsAddress - .word FUN_0203FA58 - .word FUN_0203B7F0 - .word FUN_0203FB4C - .word FUN_0203B790 + .word ScrCmd_Unk02AA + .word ScrCmd_Unk02AB + .word ScrCmd_Unk02AC + .word ScrCmd_Unk02AD .word ScrCmd_Unk02AE - .word FUN_0203FB64 - .word FUN_0203FB94 - .word FUN_0203FBA0 - .word FUN_0203FBAC + .word ScrCmd_Unk02AF + .word ScrCmd_Unk02B0 + .word ScrCmd_Unk02B1 + .word ScrCmd_Unk02B2 .word ScrCmd_GetSealName - .word FUN_0203B2E0 - .word FUN_0203FBBC - .word FUN_0203FC1C - .word FUN_020451D0 - .word FUN_02042000 + .word ScrCmd_Unk02B4 + .word ScrCmd_Unk02B5 + .word ScrCmd_Unk02B6 + .word ScrCmd_Unk02B7 + .word ScrCmd_Unk02B8 .word ScrCmd_Unk02B9 - .word FUN_0203D4E8 - .word FUN_0203D920 - .word FUN_02041B40 - .word FUN_0203D0A4 - .word FUN_0203FC58 - .word FUN_0203CAE8 + .word ScrCmd_Unk02BA + .word ScrCmd_Unk02BB + .word ScrCmd_Unk02BC + .word ScrCmd_Unk02BD + .word ScrCmd_Unk02BE + .word ScrCmd_Unk02BF .word ScrCmd_Unk02C0 - .word FUN_0203FC80 - .word FUN_0203FCB0 - .word FUN_0203FCDC + .word ScrCmd_Unk02C1 + .word ScrCmd_Unk02C2 + .word ScrCmd_Unk02C3 .word ScrCmd_GetItemNameWithIndefArticle .word ScrCmd_GetItemNamePlural .word ScrCmd_GetDecorationNameWithArticle diff --git a/arm9/global.inc b/arm9/global.inc index fda0c7813..bb0db5601 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -2784,374 +2784,374 @@ .extern ScrCmd_Unk02CF .extern ScrCmd_Unk02D0 .extern ScrCmd_Unk005E -.extern FUN_0203B024 -.extern FUN_0203B148 -.extern FUN_0203B1F0 -.extern FUN_0203B2E0 -.extern FUN_0203B3B0 -.extern FUN_0203B3C0 -.extern FUN_0203B3DC -.extern FUN_0203B3F8 -.extern FUN_0203B440 -.extern FUN_0203B468 -.extern FUN_0203B500 -.extern FUN_0203B544 -.extern FUN_0203B574 -.extern FUN_0203B5B8 -.extern FUN_0203B618 -.extern FUN_0203B640 -.extern FUN_0203B724 -.extern FUN_0203B758 -.extern FUN_0203B790 -.extern FUN_0203B7D8 -.extern FUN_0203B7F0 -.extern FUN_0203B81C -.extern FUN_0203B85C -.extern FUN_0203B8A0 -.extern FUN_0203B8E4 -.extern FUN_0203B914 -.extern FUN_0203B944 -.extern FUN_0203B968 -.extern FUN_0203B9B4 -.extern FUN_0203BA3C -.extern FUN_0203BAB0 -.extern FUN_0203BAF4 -.extern FUN_0203BB34 -.extern FUN_0203BB80 -.extern FUN_0203BB84 -.extern FUN_0203BB88 -.extern FUN_0203BB8C +.extern ScrCmd_Unk02A1 +.extern ScrCmd_Unk005F +.extern ScrCmd_Unk0060 +.extern ScrCmd_Unk02B4 +.extern ScrCmd_Unk0061 +.extern ScrCmd_Unk0062 +.extern ScrCmd_Unk0063 +.extern ScrCmd_Unk0064 +.extern ScrCmd_Unk0065 +.extern ScrCmd_Unk0066 +.extern ScrCmd_Unk0067 +.extern ScrCmd_Unk0068 +.extern ScrCmd_Unk0069 +.extern ScrCmd_Unk006A +.extern ScrCmd_Unk01BD +.extern ScrCmd_Unk006B +.extern ScrCmd_Unk006C +.extern ScrCmd_Unk006D +.extern ScrCmd_Unk02AD +.extern ScrCmd_Unk006E +.extern ScrCmd_Unk02AB +.extern ScrCmd_Unk0093 +.extern ScrCmd_Unk0094 +.extern ScrCmd_Unk0095 +.extern ScrCmd_Unk0191 +.extern ScrCmd_Unk02A5 +.extern ScrCmd_Unk0192 +.extern ScrCmd_Unk0193 +.extern ScrCmd_Unk0194 +.extern ScrCmd_Unk0195 +.extern ScrCmd_Unk0196 +.extern ScrCmd_Unk0197 +.extern ScrCmd_Unk009B +.extern ScrCmd_Unk009C +.extern ScrCmd_Unk009D +.extern ScrCmd_Unk009E +.extern ScrCmd_Unk009F .extern FUN_0203BC04 -.extern FUN_0203BC1C -.extern FUN_0203BC2C -.extern FUN_0203BCBC -.extern FUN_0203BCCC -.extern FUN_0203BCD8 -.extern FUN_0203BD08 -.extern FUN_0203BD28 -.extern FUN_0203BDB8 -.extern FUN_0203BE50 -.extern FUN_0203BE68 -.extern FUN_0203BE80 -.extern FUN_0203BECC -.extern FUN_0203BF00 -.extern FUN_0203BF20 -.extern FUN_0203BF2C -.extern FUN_0203BF84 -.extern FUN_0203BFEC -.extern FUN_0203C054 -.extern FUN_0203C090 -.extern FUN_0203C0CC -.extern FUN_0203C0FC -.extern FUN_0203C118 -.extern FUN_0203C12C -.extern FUN_0203C174 -.extern FUN_0203C1AC -.extern FUN_0203C200 -.extern ScrCmd_monstoragepc -.extern FUN_0203C2C4 -.extern FUN_0203C2E0 -.extern FUN_0203C2F0 -.extern FUN_0203C300 -.extern ScrCmd_halloffame -.extern FUN_0203C33C -.extern FUN_0203C368 -.extern FUN_0203C3C8 -.extern FUN_0203C3E8 -.extern FUN_0203C430 -.extern FUN_0203C460 -.extern FUN_0203C4B0 -.extern FUN_0203C4F0 -.extern FUN_0203C520 -.extern FUN_0203C58C -.extern FUN_0203C5BC -.extern FUN_0203C614 -.extern FUN_0203C680 -.extern FUN_0203C6C4 -.extern FUN_0203C70C -.extern FUN_0203C730 -.extern FUN_0203C788 -.extern FUN_0203C7E4 -.extern FUN_0203C7F4 -.extern FUN_0203C820 -.extern FUN_0203C844 -.extern FUN_0203C874 -.extern FUN_0203C8B4 -.extern FUN_0203C8E4 -.extern FUN_0203C930 -.extern FUN_0203C960 -.extern FUN_0203C990 -.extern FUN_0203CA20 -.extern FUN_0203CA2C -.extern FUN_0203CA5C -.extern FUN_0203CAE8 -.extern FUN_0203CB08 -.extern FUN_0203CB20 -.extern FUN_0203CB48 -.extern FUN_0203CB60 -.extern FUN_0203CB70 -.extern FUN_0203CBBC -.extern FUN_0203CBE8 -.extern FUN_0203CC88 -.extern FUN_0203CD20 -.extern FUN_0203CDB8 -.extern FUN_0203CDC4 -.extern FUN_0203CDD0 -.extern FUN_0203CE00 -.extern FUN_0203CE0C -.extern FUN_0203CE8C -.extern FUN_0203CEBC -.extern FUN_0203CF04 -.extern FUN_0203CF34 -.extern FUN_0203CF64 -.extern FUN_0203CF94 -.extern FUN_0203CFC4 -.extern FUN_0203CFC8 -.extern FUN_0203D050 -.extern FUN_0203D0A4 -.extern FUN_0203D0F8 -.extern FUN_0203D134 -.extern FUN_0203D140 -.extern FUN_0203D150 -.extern FUN_0203D178 -.extern FUN_0203D194 -.extern FUN_0203D1A4 -.extern FUN_0203D1C0 -.extern FUN_0203D214 -.extern FUN_0203D23C -.extern FUN_0203D248 -.extern FUN_0203D278 -.extern FUN_0203D2A4 -.extern FUN_0203D2E4 -.extern FUN_0203D330 -.extern FUN_0203D33C -.extern FUN_0203D36C -.extern FUN_0203D3A4 -.extern FUN_0203D3DC -.extern FUN_0203D448 -.extern FUN_0203D458 -.extern FUN_0203D490 -.extern FUN_0203D4E8 -.extern FUN_0203D528 -.extern FUN_0203D560 -.extern FUN_0203D5B0 -.extern FUN_0203D5F8 -.extern FUN_0203D60C -.extern FUN_0203D61C -.extern FUN_0203D630 -.extern FUN_0203D66C -.extern FUN_0203D6C4 -.extern FUN_0203D728 -.extern FUN_0203D738 -.extern FUN_0203D774 -.extern FUN_0203D7DC -.extern FUN_0203D834 -.extern FUN_0203D868 -.extern FUN_0203D874 -.extern ScrCmd_getplayergender -.extern ScrCmd_healparty -.extern FUN_0203D8E8 -.extern FUN_0203D8EC -.extern FUN_0203D920 -.extern FUN_0203D938 -.extern FUN_0203D948 -.extern FUN_0203D958 -.extern FUN_0203D998 -.extern FUN_0203D9E8 -.extern FUN_0203DA78 -.extern FUN_0203DAB0 -.extern FUN_0203DAE8 -.extern FUN_0203DB38 -.extern FUN_0203DB88 -.extern FUN_0203DBD4 -.extern FUN_0203DC00 -.extern FUN_0203DC58 -.extern FUN_0203DC70 -.extern FUN_0203DC88 -.extern FUN_0203DCA0 -.extern FUN_0203DCB8 -.extern FUN_0203DCC8 -.extern FUN_0203DCD8 -.extern FUN_0203DCE8 -.extern FUN_0203DCF8 -.extern FUN_0203DD08 -.extern FUN_0203DD18 -.extern FUN_0203DD34 -.extern FUN_0203DD50 -.extern FUN_0203DD60 -.extern FUN_0203DE00 -.extern FUN_0203DE4C -.extern FUN_0203DE58 -.extern FUN_0203DE80 -.extern FUN_0203DEA8 -.extern FUN_0203DEC4 -.extern FUN_0203DEF8 -.extern FUN_0203DF2C -.extern FUN_0203DF38 -.extern FUN_0203DF64 -.extern FUN_0203DF84 -.extern FUN_0203DFA8 -.extern FUN_0203DFE0 -.extern FUN_0203E018 -.extern FUN_0203E054 -.extern FUN_0203E078 -.extern FUN_0203E0CC -.extern FUN_0203E120 -.extern FUN_0203E138 -.extern FUN_0203E168 -.extern FUN_0203E254 -.extern FUN_0203E258 -.extern FUN_0203E29C -.extern FUN_0203E2F8 -.extern FUN_0203E35C -.extern FUN_0203E38C -.extern FUN_0203E3D0 -.extern FUN_0203E408 -.extern FUN_0203E440 -.extern FUN_0203E470 -.extern FUN_0203E4A0 -.extern FUN_0203E4B0 -.extern FUN_0203E4D8 -.extern FUN_0203E4F0 -.extern FUN_0203E510 -.extern FUN_0203E568 -.extern FUN_0203E5DC -.extern FUN_0203E674 -.extern FUN_0203E684 -.extern FUN_0203E6B4 -.extern FUN_0203E6C4 -.extern FUN_0203E6FC -.extern FUN_0203E72C -.extern FUN_0203E744 -.extern FUN_0203E774 -.extern FUN_0203E7F0 -.extern FUN_0203E81C -.extern FUN_0203E848 -.extern FUN_0203E858 -.extern FUN_0203E870 -.extern FUN_0203E894 -.extern FUN_0203E8C4 -.extern FUN_0203E8F4 -.extern FUN_0203E928 -.extern FUN_0203E940 -.extern FUN_0203E954 -.extern FUN_0203E968 -.extern FUN_0203E9CC -.extern FUN_0203EA68 -.extern FUN_0203EA90 -.extern FUN_0203EAB0 -.extern FUN_0203EB20 -.extern FUN_0203EB48 -.extern FUN_0203EB88 -.extern ScrCmd_gameversion -.extern ScrCmd_givewallpaper -.extern FUN_0203ECAC -.extern FUN_0203ECD8 -.extern FUN_0203ECF4 -.extern FUN_0203ED10 -.extern ScrCmd_pcfreespace -.extern FUN_0203EDA4 -.extern FUN_0203EDC8 -.extern FUN_0203EDE0 -.extern FUN_0203EE08 -.extern FUN_0203EE18 -.extern FUN_0203EE28 -.extern FUN_0203EE58 -.extern FUN_0203EE68 -.extern FUN_0203EE78 -.extern FUN_0203EE98 -.extern FUN_0203EED8 -.extern FUN_0203EF58 -.extern FUN_0203F00C -.extern FUN_0203F020 -.extern FUN_0203F034 -.extern FUN_0203F058 -.extern FUN_0203F07C -.extern FUN_0203F110 -.extern FUN_0203F174 -.extern FUN_0203F19C -.extern FUN_0203F234 -.extern FUN_0203F254 -.extern FUN_0203F26C -.extern FUN_0203F2AC -.extern FUN_0203F2E4 -.extern FUN_0203F31C -.extern FUN_0203F348 -.extern FUN_0203F38C -.extern FUN_0203F39C -.extern FUN_0203F3AC -.extern FUN_0203F418 -.extern FUN_0203F44C -.extern FUN_0203F484 -.extern FUN_0203F4D8 -.extern FUN_0203F508 -.extern FUN_0203F5D4 -.extern FUN_0203F604 -.extern FUN_0203F634 -.extern FUN_0203F664 -.extern FUN_0203F6E4 -.extern FUN_0203F720 -.extern FUN_0203F760 -.extern FUN_0203F7C8 -.extern FUN_0203F80C -.extern FUN_0203F880 -.extern FUN_0203F8C0 -.extern FUN_0203F924 -.extern FUN_0203F954 -.extern FUN_0203F988 -.extern FUN_0203F9B0 -.extern FUN_0203F9DC -.extern FUN_0203FA14 -.extern FUN_0203FA58 -.extern FUN_0203FB4C -.extern FUN_0203FB64 -.extern FUN_0203FB94 -.extern FUN_0203FBA0 -.extern FUN_0203FBAC -.extern FUN_0203FBBC -.extern FUN_0203FC1C -.extern FUN_0203FC58 -.extern FUN_0203FC80 -.extern FUN_0203FCB0 -.extern FUN_0203FCDC +.extern ScrCmd_Unk00A1 +.extern ScrCmd_Unk01F8 +.extern ScrCmd_Unk00A2 +.extern ScrCmd_Unk00A3 +.extern ScrCmd_Unk00A4 +.extern ScrCmd_Unk0207 +.extern ScrCmd_Unk0208 +.extern ScrCmd_Unk028C +.extern ScrCmd_Unk0209 +.extern ScrCmd_Unk028D +.extern ScrCmd_Unk028E +.extern ScrCmd_Unk020A +.extern ScrCmd_Unk020B +.extern ScrCmd_Unk00A5 +.extern ScrCmd_Unk00A6 +.extern ScrCmd_Unk00A7 +.extern ScrCmd_Unk00A8 +.extern ScrCmd_Unk012E +.extern ScrCmd_Unk012F +.extern ScrCmd_Unk0130 +.extern ScrCmd_Unk0205 +.extern ScrCmd_Unk00A9 +.extern ScrCmd_Unk00AA +.extern ScrCmd_Unk01D7 +.extern ScrCmd_Unk01D8 +.extern ScrCmd_Unk01D9 +.extern ScrCmd_MonStoragePC +.extern ScrCmd_Unk00AC +.extern ScrCmd_Unk00AD +.extern ScrCmd_Unk00AE +.extern ScrCmd_Unk00AF +.extern ScrCmd_HallOfFame +.extern ScrCmd_Unk00B1 +.extern ScrCmd_Unk00B2 +.extern ScrCmd_Unk00B3 +.extern ScrCmd_Unk00B4 +.extern ScrCmd_Unk00B5 +.extern ScrCmd_Unk0178 +.extern ScrCmd_Unk0179 +.extern ScrCmd_Unk00BA +.extern ScrCmd_Unk00BB +.extern ScrCmd_Unk0271 +.extern ScrCmd_Unk0243 +.extern ScrCmd_Unk0244 +.extern ScrCmd_Unk0245 +.extern ScrCmd_Unk00BC +.extern ScrCmd_Unk00BD +.extern ScrCmd_Unk00BE +.extern ScrCmd_Unk0203 +.extern ScrCmd_Unk0204 +.extern ScrCmd_Unk0200 +.extern ScrCmd_Unk0201 +.extern ScrCmd_Unk00BF +.extern ScrCmd_Unk00C0 +.extern ScrCmd_Unk00C1 +.extern ScrCmd_Unk00C2 +.extern ScrCmd_Unk00C3 +.extern ScrCmd_Unk00C4 +.extern ScrCmd_Unk00C5 +.extern ScrCmd_Unk00C6 +.extern ScrCmd_Unk00C7 +.extern ScrCmd_Unk00C8 +.extern ScrCmd_Unk02BF +.extern ScrCmd_Unk00C9 +.extern ScrCmd_Unk00CA +.extern ScrCmd_Unk00CB +.extern ScrCmd_Unk00CC +.extern ScrCmd_Unk00E3 +.extern ScrCmd_Unk00DE +.extern ScrCmd_Unk00E6 +.extern ScrCmd_Unk00F2 +.extern ScrCmd_Unk00F3 +.extern ScrCmd_Unk00F4 +.extern ScrCmd_Unk00F5 +.extern ScrCmd_Unk00F6 +.extern ScrCmd_Unk00F7 +.extern ScrCmd_Unk011B +.extern ScrCmd_Unk011C +.extern ScrCmd_Unk011D +.extern ScrCmd_Unk011E +.extern ScrCmd_Unk011F +.extern ScrCmd_Unk0120 +.extern ScrCmd_Unk0121 +.extern ScrCmd_Unk0122 +.extern ScrCmd_Unk0123 +.extern ScrCmd_Unk0124 +.extern ScrCmd_Unk02BD +.extern ScrCmd_Unk0125 +.extern ScrCmd_Unk0126 +.extern ScrCmd_Unk0127 +.extern ScrCmd_Unk0128 +.extern ScrCmd_Unk0129 +.extern ScrCmd_Unk012A +.extern ScrCmd_Unk012B +.extern ScrCmd_Unk012C +.extern ScrCmd_Unk012D +.extern ScrCmd_Unk0131 +.extern ScrCmd_Unk0132 +.extern ScrCmd_Unk0133 +.extern ScrCmd_Unk0134 +.extern ScrCmd_Unk0135 +.extern ScrCmd_Unk0136 +.extern ScrCmd_Unk0137 +.extern ScrCmd_Unk0138 +.extern ScrCmd_Unk0139 +.extern ScrCmd_Unk013C +.extern ScrCmd_Unk013D +.extern ScrCmd_Unk013E +.extern ScrCmd_Unk013F +.extern ScrCmd_Unk02BA +.extern ScrCmd_Unk0140 +.extern ScrCmd_Unk0146 +.extern ScrCmd_Unk0141 +.extern ScrCmd_Unk0142 +.extern ScrCmd_Unk013A +.extern ScrCmd_Unk013B +.extern ScrCmd_Unk0143 +.extern ScrCmd_Unk0144 +.extern ScrCmd_Unk0145 +.extern ScrCmd_Unk0153 +.extern ScrCmd_Unk0154 +.extern ScrCmd_Unk0155 +.extern ScrCmd_Unk029C +.extern ScrCmd_Unk0156 +.extern ScrCmd_Unk014B +.extern ScrCmd_Unk014C +.extern ScrCmd_GetPlayerGender +.extern ScrCmd_HealParty +.extern ScrCmd_Unk014F +.extern ScrCmd_Unk0150 +.extern ScrCmd_Unk02BB +.extern ScrCmd_Unk0151 +.extern ScrCmd_Unk0152 +.extern ScrCmd_Unk017A +.extern ScrCmd_Unk0186 +.extern ScrCmd_Unk0187 +.extern ScrCmd_Unk0188 +.extern ScrCmd_Unk0189 +.extern ScrCmd_Unk018A +.extern ScrCmd_Unk018B +.extern ScrCmd_Unk018C +.extern ScrCmd_Unk018F +.extern ScrCmd_Unk0168 +.extern ScrCmd_Unk0169 +.extern ScrCmd_Unk016A +.extern ScrCmd_Unk016B +.extern ScrCmd_Unk016C +.extern ScrCmd_Unk016F +.extern ScrCmd_Unk0170 +.extern ScrCmd_Unk0171 +.extern ScrCmd_Unk0172 +.extern ScrCmd_Unk0173 +.extern ScrCmd_Unk0174 +.extern ScrCmd_Unk0175 +.extern ScrCmd_Unk0176 +.extern ScrCmd_Unk01AC +.extern ScrCmd_Unk019E +.extern ScrCmd_Unk019F +.extern ScrCmd_Unk01A0 +.extern ScrCmd_Unk01A1 +.extern ScrCmd_Unk01A2 +.extern ScrCmd_Unk003F +.extern ScrCmd_Unk01B1 +.extern ScrCmd_Unk01B2 +.extern ScrCmd_Unk01B3 +.extern ScrCmd_Unk01B4 +.extern ScrCmd_Unk01B5 +.extern ScrCmd_Unk01B6 +.extern ScrCmd_Unk01B7 +.extern ScrCmd_Unk01B8 +.extern ScrCmd_Unk01C1 +.extern ScrCmd_Unk01C2 +.extern ScrCmd_Unk01C3 +.extern ScrCmd_Unk01C4 +.extern ScrCmd_Unk01C5 +.extern ScrCmd_Unk01CC +.extern ScrCmd_Unk01CD +.extern ScrCmd_Unk01CE +.extern ScrCmd_Unk01D2 +.extern ScrCmd_Unk01D3 +.extern ScrCmd_Unk01D4 +.extern ScrCmd_Unk01D5 +.extern ScrCmd_Unk01D6 +.extern ScrCmd_Unk01E8 +.extern ScrCmd_Unk01E9 +.extern ScrCmd_Unk01EA +.extern ScrCmd_Unk01EB +.extern ScrCmd_Unk01EC +.extern ScrCmd_Unk01ED +.extern ScrCmd_Unk01EF +.extern ScrCmd_Unk01E5 +.extern ScrCmd_Unk01E6 +.extern ScrCmd_Unk01E7 +.extern ScrCmd_Unk0202 +.extern ScrCmd_Unk0206 +.extern ScrCmd_Unk020D +.extern ScrCmd_Unk020E +.extern ScrCmd_Unk020F +.extern ScrCmd_Unk0210 +.extern ScrCmd_Unk0211 +.extern ScrCmd_Unk0214 +.extern ScrCmd_Unk0218 +.extern ScrCmd_Unk0219 +.extern ScrCmd_Unk021A +.extern ScrCmd_Unk021B +.extern ScrCmd_Unk021C +.extern ScrCmd_Unk0226 +.extern ScrCmd_Unk0227 +.extern ScrCmd_Unk0228 +.extern ScrCmd_Unk0229 +.extern ScrCmd_Unk022A +.extern ScrCmd_Unk022B +.extern ScrCmd_Unk022C +.extern ScrCmd_Unk022D +.extern ScrCmd_Unk0233 +.extern ScrCmd_Unk0234 +.extern ScrCmd_Unk0239 +.extern ScrCmd_Unk023A +.extern ScrCmd_Unk023B +.extern ScrCmd_Unk023C +.extern ScrCmd_Unk023D +.extern ScrCmd_GameVersion +.extern ScrCmd_GiveWallpaper +.extern ScrCmd_Unk024A +.extern ScrCmd_Unk024B +.extern ScrCmd_Unk024C +.extern ScrCmd_Unk024D +.extern ScrCmd_PCFreeSpace +.extern ScrCmd_Unk0258 +.extern ScrCmd_Unk0259 +.extern ScrCmd_Unk025A +.extern ScrCmd_Unk025B +.extern ScrCmd_Unk025C +.extern ScrCmd_Unk025D +.extern ScrCmd_Unk025E +.extern ScrCmd_Unk025F +.extern ScrCmd_Unk0260 +.extern ScrCmd_Unk0262 +.extern ScrCmd_Unk0263 +.extern ScrCmd_Unk0264 +.extern ScrCmd_Unk0265 +.extern ScrCmd_Unk0266 +.extern ScrCmd_Unk0267 +.extern ScrCmd_Unk0268 +.extern ScrCmd_Unk0269 +.extern ScrCmd_Unk026A +.extern ScrCmd_Unk026B +.extern ScrCmd_Unk026C +.extern ScrCmd_Unk026E +.extern ScrCmd_Unk026F +.extern ScrCmd_Unk0270 +.extern ScrCmd_Unk0273 +.extern ScrCmd_Unk0275 +.extern ScrCmd_Unk0277 +.extern ScrCmd_Unk0279 +.extern ScrCmd_Unk027A +.extern ScrCmd_Unk027B +.extern ScrCmd_Unk027D +.extern ScrCmd_Unk027F +.extern ScrCmd_Unk027E +.extern ScrCmd_Unk0282 +.extern ScrCmd_Unk0284 +.extern ScrCmd_Unk0285 +.extern ScrCmd_Unk0286 +.extern ScrCmd_Unk0287 +.extern ScrCmd_Unk0288 +.extern ScrCmd_Unk0289 +.extern ScrCmd_Unk028A +.extern ScrCmd_Unk028B +.extern ScrCmd_Unk028F +.extern ScrCmd_Unk0290 +.extern ScrCmd_Unk0291 +.extern ScrCmd_Unk0292 +.extern ScrCmd_Unk029E +.extern ScrCmd_Unk0293 +.extern ScrCmd_Unk029F +.extern ScrCmd_Unk02A3 +.extern ScrCmd_Unk02A4 +.extern ScrCmd_Unk02A2 +.extern ScrCmd_Unk02A7 +.extern ScrCmd_Unk02AA +.extern ScrCmd_Unk02AC +.extern ScrCmd_Unk02AF +.extern ScrCmd_Unk02B0 +.extern ScrCmd_Unk02B1 +.extern ScrCmd_Unk02B2 +.extern ScrCmd_Unk02B5 +.extern ScrCmd_Unk02B6 +.extern ScrCmd_Unk02BE +.extern ScrCmd_Unk02C1 +.extern ScrCmd_Unk02C2 +.extern ScrCmd_Unk02C3 .extern ScrCmd_NormalMart .extern ScrCmd_SpecialMart .extern ScrCmd_GoodsMart .extern ScrCmd_SealsMart .extern ScrCmd_AccessoriesShop -.extern FUN_0203FE90 -.extern FUN_0203FEC0 -.extern FUN_0203FF10 -.extern FUN_02040028 -.extern FUN_02040074 -.extern FUN_020400C8 -.extern FUN_0204011C -.extern FUN_02040170 -.extern FUN_020401CC -.extern FUN_02040204 -.extern FUN_02040220 -.extern FUN_0204025C -.extern FUN_02040298 -.extern FUN_020402D4 -.extern FUN_02040304 -.extern FUN_02040340 -.extern FUN_02040370 -.extern FUN_020403A0 -.extern FUN_020403D0 -.extern FUN_02040414 -.extern FUN_02040458 -.extern FUN_02040488 -.extern FUN_020404FC -.extern FUN_0204052C -.extern FUN_0204056C -.extern FUN_0204059C -.extern FUN_020405B4 -.extern FUN_020405CC -.extern FUN_020405F8 -.extern FUN_02040638 -.extern FUN_0204064C -.extern FUN_02040660 -.extern FUN_020406C0 +.extern ScrCmd_Unk00F8 +.extern ScrCmd_Unk00F9 +.extern ScrCmd_Unk00FA +.extern ScrCmd_Unk00FB +.extern ScrCmd_Unk00FC +.extern ScrCmd_Unk00FD +.extern ScrCmd_Unk00FE +.extern ScrCmd_Unk00FF +.extern ScrCmd_Unk0100 +.extern ScrCmd_Unk0101 +.extern ScrCmd_Unk0102 +.extern ScrCmd_Unk0103 +.extern ScrCmd_Unk0104 +.extern ScrCmd_Unk0105 +.extern ScrCmd_Unk0106 +.extern ScrCmd_Unk0107 +.extern ScrCmd_Unk0108 +.extern ScrCmd_Unk0109 +.extern ScrCmd_Unk010A +.extern ScrCmd_Unk010B +.extern ScrCmd_Unk010C +.extern ScrCmd_Unk0110 +.extern ScrCmd_Unk010D +.extern ScrCmd_Unk010E +.extern ScrCmd_Unk010F +.extern ScrCmd_Unk0117 +.extern ScrCmd_Unk0118 +.extern ScrCmd_Unk0111 +.extern ScrCmd_Unk0112 +.extern ScrCmd_Unk0113 +.extern ScrCmd_Unk0114 +.extern ScrCmd_Unk0115 +.extern ScrCmd_Unk0116 .extern ScrCmd_GetPlayerName .extern ScrCmd_GetRivalName .extern ScrCmd_GetFriendName @@ -3193,9 +3193,9 @@ .extern ScrCmd_Unk02CC .extern ScrCmd_GetSealNamePlural .extern ScrCmd_CapitalizeFirstChar -.extern FUN_02041194 -.extern FUN_020411C4 -.extern FUN_02041340 +.extern ScrCmd_Unk024E +.extern ScrCmd_Unk024F +.extern ScrCmd_Unk0250 .extern ScrCmd_Unk02AE .extern ScrCmd_Unk0050 .extern ScrCmd_Unk0051 @@ -3219,51 +3219,51 @@ .extern ScrCmd_Unk005C .extern ScrCmd_Unk005D .extern ScrCmd_Unk0283 -.extern FUN_020416A8 -.extern FUN_02041770 -.extern FUN_020417E0 -.extern FUN_02041808 -.extern FUN_0204185C -.extern FUN_0204188C -.extern FUN_0204190C -.extern FUN_02041970 -.extern FUN_020419F8 -.extern FUN_02041A80 -.extern FUN_02041AB4 -.extern FUN_02041AD4 -.extern FUN_02041AE0 -.extern FUN_02041B10 -.extern FUN_02041B40 -.extern FUN_02041B70 -.extern FUN_02041B9C -.extern FUN_02041BC4 -.extern FUN_02041BF0 +.extern ScrCmd_Unk00B6 +.extern ScrCmd_Unk00B7 +.extern ScrCmd_Unk00B8 +.extern ScrCmd_Unk00B9 +.extern ScrCmd_Unk00E4 +.extern ScrCmd_Unk00E5 +.extern ScrCmd_Unk02A0 +.extern ScrCmd_Unk00E7 +.extern ScrCmd_Unk00E8 +.extern ScrCmd_Unk00E9 +.extern ScrCmd_Unk00EA +.extern ScrCmd_Unk00EB +.extern ScrCmd_Unk00EC +.extern ScrCmd_Unk00ED +.extern ScrCmd_Unk02BC +.extern ScrCmd_Unk00EE +.extern ScrCmd_Unk00EF +.extern ScrCmd_Unk00F0 +.extern ScrCmd_Unk00F1 .extern ScrCmd_Unk021D -.extern FUN_02041E40 -.extern FUN_02041FDC -.extern FUN_02042000 -.extern FUN_02042038 -.extern FUN_02042110 -.extern FUN_0204214C -.extern FUN_02042354 -.extern FUN_02042364 -.extern FUN_02042394 -.extern FUN_020423B0 -.extern FUN_02042700 -.extern FUN_02042780 -.extern FUN_020427A8 -.extern FUN_020427D0 -.extern FUN_02042864 -.extern FUN_02042894 -.extern FUN_020428E0 -.extern FUN_02042950 -.extern FUN_02042980 -.extern FUN_02042998 -.extern FUN_020429B8 -.extern FUN_020429E8 -.extern FUN_02042A18 -.extern FUN_02042A48 -.extern FUN_02042A98 +.extern ScrCmd_Unk0235 +.extern ScrCmd_Unk0236 +.extern ScrCmd_Unk02B8 +.extern ScrCmd_Unk0237 +.extern ScrCmd_Unk0238 +.extern ScrCmd_Unk027C +.extern ScrCmd_Unk01DA +.extern ScrCmd_Unk01DB +.extern ScrCmd_Unk01DC +.extern ScrCmd_Unk01DD +.extern ScrCmd_Unk01DE +.extern ScrCmd_Unk01DF +.extern ScrCmd_Unk01E0 +.extern ScrCmd_Unk01E1 +.extern ScrCmd_Unk01E2 +.extern ScrCmd_Unk01E3 +.extern ScrCmd_Unk01E4 +.extern ScrCmd_Unk0294 +.extern ScrCmd_Unk0295 +.extern ScrCmd_Unk0296 +.extern ScrCmd_Unk0297 +.extern ScrCmd_Unk0298 +.extern ScrCmd_Unk0299 +.extern ScrCmd_Unk029A +.extern ScrCmd_Unk029B .extern ScrCmd_Unk017D .extern ScrCmd_Unk017E .extern ScrCmd_Unk017F @@ -3273,7 +3273,7 @@ .extern ScrCmd_Unk0183 .extern ScrCmd_Unk0184 .extern ScrCmd_Unk0185 -.extern FUN_02042D1C +.extern ScrCmd_Unk023E .extern ScrCmd_Unk0253 .extern ScrCmd_Unk0254 .extern ScrCmd_Unk0255 @@ -3312,46 +3312,46 @@ .extern ScrCmd_Unk01A6 .extern ScrCmd_Unk01A7 .extern ScrCmd_Unk01AD -.extern FUN_02044158 -.extern FUN_0204416C -.extern FUN_02044198 +.extern ScrCmd_Unk0215 +.extern ScrCmd_Unk0216 +.extern ScrCmd_Unk0217 .extern ScrCmd_GiveMon -.extern ScrCmd_getpartyspecies -.extern ScrCmd_checkpartymonotid -.extern ScrCmd_giveegg -.extern ScrCmd_setpartymonmove -.extern ScrCmd_partymonhasmove -.extern ScrCmd_findpartymonwithmove -.extern ScrCmd_survivepsn -.extern ScrCmd_countpartymonsatorbelowlevel -.extern ScrCmd_getpartymonlevel -.extern ScrCmd_getpartymonnature -.extern ScrCmd_findpartymonwithnature -.extern ScrCmd_getpartymonfriendship -.extern FUN_020448D4 -.extern FUN_020449A4 -.extern FUN_02044A0C -.extern FUN_02044A6C -.extern FUN_02044A94 -.extern FUN_02044B00 -.extern FUN_02044B2C -.extern FUN_02044B84 -.extern FUN_02044C0C -.extern FUN_02044C88 -.extern FUN_02044CE0 -.extern FUN_02044D44 -.extern FUN_02044D8C -.extern FUN_02044E34 -.extern FUN_02044E78 -.extern FUN_02044ED8 -.extern FUN_02044F20 -.extern FUN_02044F58 -.extern FUN_02044FE8 -.extern FUN_0204505C -.extern FUN_02045104 -.extern FUN_02045170 -.extern FUN_020451D0 -.extern FUN_02045264 +.extern ScrCmd_GetPartySpecies +.extern ScrCmd_CheckPartyMonOTID +.extern ScrCmd_GiveEgg +.extern ScrCmd_SetPartyMonMove +.extern ScrCmd_PartyMonHasMove +.extern ScrCmd_FindPartyMonWithMove +.extern ScrCmd_SurvivePsn +.extern ScrCmd_CountPartyMonsAtOrBelowLevel +.extern ScrCmd_GetPartyMonLevel +.extern ScrCmd_GetPartyMonNature +.extern ScrCmd_FindPartyMonWithNature +.extern ScrCmd_GetPartyMonFriendship +.extern ScrCmd_Unk01BA +.extern ScrCmd_Unk01BB +.extern ScrCmd_Unk0281 +.extern ScrCmd_Unk0247 +.extern ScrCmd_Unk0248 +.extern ScrCmd_Unk0177 +.extern ScrCmd_Unk019A +.extern ScrCmd_Unk019B +.extern ScrCmd_Unk019C +.extern ScrCmd_Unk019D +.extern ScrCmd_Unk0119 +.extern ScrCmd_Unk011A +.extern ScrCmd_Unk01C8 +.extern ScrCmd_Unk01C9 +.extern ScrCmd_Unk01CA +.extern ScrCmd_Unk01EE +.extern ScrCmd_Unk01F0 +.extern ScrCmd_Unk01C0 +.extern ScrCmd_Unk022E +.extern ScrCmd_Unk022F +.extern ScrCmd_Unk0230 +.extern ScrCmd_Unk0231 +.extern ScrCmd_Unk02B7 +.extern ScrCmd_Unk00A0 .extern ScrCmd_Unk01F1 .extern ScrCmd_Unk01F4 .extern ScrCmd_Unk01F5 From fea86c63479708926cce890f65cf7c9217f6fc4c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 29 May 2021 11:17:47 -0400 Subject: [PATCH 121/134] Name funcs in gf_gfx_loader --- arm9/asm/unk_02002C14.s | 4 +- arm9/asm/unk_02002F08.s | 2 +- arm9/asm/unk_020030E8.s | 4 +- arm9/asm/unk_02008DEC.s | 2 +- arm9/asm/unk_0200CABC.s | 26 +-- arm9/asm/unk_02011744.s | 2 +- arm9/asm/unk_02014590.s | 6 +- arm9/asm/unk_02048120.s | 2 +- arm9/asm/unk_0205363C.s | 2 +- arm9/asm/unk_0206C700.s | 8 +- arm9/asm/unk_0206F3FC.s | 14 +- arm9/asm/unk_020772F0.s | 24 +-- arm9/asm/unk_02079C70.s | 16 +- arm9/asm/unk_020828BC.s | 6 +- arm9/asm/unk_02086414.s | 8 +- arm9/asm/unk_02087A6C.s | 20 +-- arm9/global.inc | 32 ++-- arm9/modules/05/asm/mod05_021DC0B8.s | 2 +- arm9/modules/05/asm/mod05_021E3444.s | 10 +- arm9/modules/05/asm/module_05.s | 4 +- arm9/modules/06/asm/module_06.s | 12 +- arm9/modules/07/asm/module_07.s | 14 +- arm9/modules/08/asm/module_08.s | 36 ++-- arm9/modules/09/asm/module_09.s | 10 +- arm9/modules/11/asm/module_11_thumb1.s | 8 +- arm9/modules/11/asm/module_11_thumb2.s | 8 +- arm9/modules/12/asm/module_12.s | 66 +++---- arm9/modules/14/asm/module_14.s | 138 +++++++-------- arm9/modules/15/asm/module_15.s | 44 ++--- arm9/modules/16/asm/module_16.s | 30 ++-- arm9/modules/17/asm/module_17.s | 40 ++--- arm9/modules/18/asm/module_18.s | 38 ++-- arm9/modules/19/asm/module_19.s | 6 +- arm9/modules/20/asm/module_20.s | 18 +- arm9/modules/21/src/mod21_02254A6C.c | 12 +- arm9/modules/22/asm/module_22.s | 8 +- arm9/modules/23/asm/module_23.s | 4 +- arm9/modules/24/asm/module_24.s | 6 +- arm9/modules/25/asm/module_25.s | 6 +- arm9/modules/27/asm/module_27.s | 4 +- arm9/modules/28/asm/module_28.s | 4 +- arm9/modules/29/asm/module_29.s | 6 +- arm9/modules/30/asm/module_30.s | 8 +- arm9/modules/31/asm/module_31.s | 8 +- arm9/modules/32/asm/module_32.s | 6 +- arm9/modules/33/asm/module_33.s | 4 +- arm9/modules/34/asm/module_34.s | 4 +- arm9/modules/35/asm/module_35.s | 6 +- arm9/modules/36/asm/module_36.s | 6 +- arm9/modules/37/asm/module_37.s | 6 +- arm9/modules/38/asm/module_38.s | 6 +- arm9/modules/39/asm/module_39.s | 6 +- arm9/modules/40/asm/module_40.s | 8 +- arm9/modules/41/asm/module_41.s | 8 +- arm9/modules/42/asm/module_42.s | 6 +- arm9/modules/43/asm/module_43.s | 6 +- arm9/modules/44/asm/module_44.s | 6 +- arm9/modules/45/asm/module_45.s | 6 +- arm9/modules/46/asm/module_46.s | 4 +- arm9/modules/47/asm/module_47.s | 6 +- arm9/modules/48/asm/module_48.s | 6 +- arm9/modules/50/asm/module_50.s | 4 +- arm9/modules/51/asm/module_51.s | 8 +- arm9/modules/53/asm/module_53.s | 12 +- arm9/modules/54/asm/module_54.s | 22 +-- arm9/modules/55/asm/module_55.s | 36 ++-- arm9/modules/56/asm/module_56.s | 22 +-- arm9/modules/57/asm/module_57.s | 56 +++--- arm9/modules/58/asm/module_58.s | 12 +- arm9/modules/59/asm/mod59_021D74E0_asm.s | 38 ++-- arm9/modules/59/asm/mod59_021D9868.s | 14 +- arm9/modules/62/asm/module_62.s | 16 +- arm9/modules/63/asm/mod63_021D74E0.s | 36 ++-- arm9/modules/63/asm/mod63_021D8890.s | 64 +++---- arm9/modules/64/asm/module_64.s | 12 +- arm9/modules/67/asm/module_67.s | 12 +- arm9/modules/68/asm/module_68.s | 12 +- arm9/modules/69/asm/module_69.s | 22 +-- arm9/modules/70/asm/module_70.s | 16 +- arm9/modules/71/asm/module_71.s | 22 +-- arm9/modules/73/asm/module_73.s | 18 +- arm9/modules/75/asm/module_75.s | 24 +-- arm9/modules/76/asm/module_76.s | 6 +- arm9/modules/77/asm/module_77.s | 16 +- arm9/modules/80/asm/module_80.s | 84 ++++----- arm9/modules/81/asm/module_81.s | 142 +++++++-------- arm9/modules/82/asm/module_82.s | 12 +- arm9/modules/83/asm/module_83.s | 72 ++++---- arm9/modules/84/asm/module_84_thumb1.s | 14 +- arm9/modules/84/asm/module_84_thumb2.s | 136 +++++++------- arm9/modules/86/asm/module_86.s | 24 +-- arm9/src/gf_gfx_loader.c | 214 +++++++++++------------ arm9/src/script_buffers.c | 6 +- arm9/src/text.c | 4 +- include/gf_gfx_loader.h | 23 +++ 95 files changed, 1039 insertions(+), 1020 deletions(-) create mode 100644 include/gf_gfx_loader.h diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s index 3f62a449d..119c68ff4 100644 --- a/arm9/asm/unk_02002C14.s +++ b/arm9/asm/unk_02002C14.s @@ -411,7 +411,7 @@ FUN_02002ED0: ; 0x02002ED0 mov r0, #0xe mov r1, #0x6 add r2, r4, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x8 pop {r4, pc} @@ -427,6 +427,6 @@ FUN_02002EEC: ; 0x02002EEC mov r0, #0xe mov r1, #0x7 add r2, r4, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x8 pop {r4, pc} diff --git a/arm9/asm/unk_02002F08.s b/arm9/asm/unk_02002F08.s index c37869ed8..fb6f96ffe 100644 --- a/arm9/asm/unk_02002F08.s +++ b/arm9/asm/unk_02002F08.s @@ -226,7 +226,7 @@ FUN_02003084: ; 0x02003084 add r1, r2, #0x0 add r2, sp, #0x4 ldr r4, [sp, #0x1c] - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r6, r0, #0x0 bne _0200309E bl GF_AssertFail diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s index 30d0ea435..f9b9de1fd 100644 --- a/arm9/asm/unk_020030E8.s +++ b/arm9/asm/unk_020030E8.s @@ -72,7 +72,7 @@ FUN_0200317C: ; 0x0200317C add r5, r3, #0x0 add r2, sp, #0x0 add r3, r4, #0x0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0x0 bne _02003192 bl GF_AssertFail @@ -1387,7 +1387,7 @@ FUN_02003B40: ; 0x02003B40 add r0, r1, #0x0 add r1, r2, #0x0 add r2, sp, #0x4 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0x0 bne _02003B58 bl GF_AssertFail diff --git a/arm9/asm/unk_02008DEC.s b/arm9/asm/unk_02008DEC.s index 92341f16d..31aabcc32 100644 --- a/arm9/asm/unk_02008DEC.s +++ b/arm9/asm/unk_02008DEC.s @@ -1604,7 +1604,7 @@ FUN_02009978: ; 0x02009978 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index bf4889d8b..9e8b31892 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -42,7 +42,7 @@ FUN_0200CABC: ; 0x0200CABC mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r3-r5, pc} _0200CAE2: @@ -55,7 +55,7 @@ _0200CAE2: mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r3-r5, pc} @@ -89,7 +89,7 @@ _0200CB18: str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x2 @@ -108,7 +108,7 @@ _0200CB3C: str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4-r6, pc} _0200CB56: @@ -119,7 +119,7 @@ _0200CB56: str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4-r6, pc} @@ -394,7 +394,7 @@ FUN_0200CD68: ; 0x0200CD68 str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData cmp r5, #0x4 bhs _0200CDB8 add r0, r7, #0x0 @@ -407,7 +407,7 @@ FUN_0200CD68: ; 0x0200CD68 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x14 pop {r4-r7, pc} _0200CDB8: @@ -421,7 +421,7 @@ _0200CDB8: str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x14 pop {r4-r7, pc} .balign 4 @@ -908,7 +908,7 @@ FUN_0200D18C: ; 0x0200D18C mov r1, #0x16 mov r2, #0x0 add r3, sp, #0x3c - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0x2c] ldr r0, [sp, #0x3c] mov r7, #0x0 @@ -1006,7 +1006,7 @@ FUN_0200D274: ; 0x0200D274 str r0, [sp, #0x0] mov r0, #0x26 add r3, sp, #0x10 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0xc] mov r1, #0x9 ldr r0, [sp, #0x2c] @@ -1077,7 +1077,7 @@ FUN_0200D300: ; 0x0200D300 mov r0, #0x24 add r3, r6, #0x0 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x24 ; NARC_GRAPHIC_FIELD_BOARD mov r1, #0x1 add r2, r4, #0x0 @@ -1144,7 +1144,7 @@ _0200D390: str r0, [sp, #0xc] mov r0, #0x24 add r3, r4, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r3-r5, pc} @@ -1792,7 +1792,7 @@ _0200D8DA: mov r0, #0x26 mov r2, #0x0 add r3, sp, #0x30 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r2, #0x80 add r5, r0, #0x0 str r2, [sp, #0x0] diff --git a/arm9/asm/unk_02011744.s b/arm9/asm/unk_02011744.s index 8ee30228e..bc9652c87 100644 --- a/arm9/asm/unk_02011744.s +++ b/arm9/asm/unk_02011744.s @@ -46,7 +46,7 @@ _02011766: mov r2, #0x0 add r3, r4, #0x0 str r7, [sp, #0x0] - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E diff --git a/arm9/asm/unk_02014590.s b/arm9/asm/unk_02014590.s index aa2f249ba..189206a31 100644 --- a/arm9/asm/unk_02014590.s +++ b/arm9/asm/unk_02014590.s @@ -471,7 +471,7 @@ _020148EA: ldr r0, [r5, #0x8] ldr r1, [r7, #0xc] add r3, r6, #0x0 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r4, #0x8] ldr r0, [r4, #0x18] ldr r1, [r5, #0x1c] @@ -672,7 +672,7 @@ _02014A58: add r0, r7, #0x0 mov r2, #0x1 add r3, r4, #0x4 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [r4, #0x8] str r5, [r4, #0x0] ldr r0, [sp, #0x20] @@ -710,7 +710,7 @@ _02014AA6: ldr r3, [sp, #0x1c] add r0, r7, #0x0 add r2, r4, #0x0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r4, #0x4] str r5, [r4, #0x8] ldr r0, [sp, #0x18] diff --git a/arm9/asm/unk_02048120.s b/arm9/asm/unk_02048120.s index 96cfbab63..780c48339 100644 --- a/arm9/asm/unk_02048120.s +++ b/arm9/asm/unk_02048120.s @@ -49,7 +49,7 @@ FUN_02048120: ; 0x02048120 mov r1, #0x6 mov r2, #0x0 lsl r3, r3, #0x4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x8 pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_0205363C.s b/arm9/asm/unk_0205363C.s index 2e5f334e7..aa73064cd 100644 --- a/arm9/asm/unk_0205363C.s +++ b/arm9/asm/unk_0205363C.s @@ -165,7 +165,7 @@ FUN_02053708: ; 0x02053708 mov r1, #0x7 add r2, sp, #0x0 add r3, r5, #0x0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData mov r1, #0x9 add r4, r0, #0x0 add r0, r5, #0x0 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 2499c1083..295f10066 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -2365,7 +2365,7 @@ _0206DA26: str r0, [sp, #0xc] mov r0, #0x76 mov r3, #0x3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -2376,7 +2376,7 @@ _0206DA26: str r0, [sp, #0xc] mov r0, #0x76 mov r3, #0x3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x40 @@ -2441,7 +2441,7 @@ _0206DA26: mov r0, #0xc add r2, r4, #0x0 mov r3, #0x4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -2453,7 +2453,7 @@ _0206DA26: mov r0, #0xc add r2, r4, #0x0 mov r3, #0x4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x20 diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index a50d92bf9..17adb2d29 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1256,7 +1256,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r0, #0x14 mov r1, #0xf mov r3, #0x3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -1267,7 +1267,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r0, #0x14 mov r1, #0x11 mov r3, #0x3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x14 ; NARC_GRAPHIC_PLIST_GRA mov r1, #0x10 mov r2, #0xc @@ -1331,7 +1331,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r0, #0x14 mov r1, #0x3 mov r3, #0x4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0x20 mov r1, #0x4 str r3, [sp, #0x0] @@ -1339,7 +1339,7 @@ FUN_0206FD24: ; 0x0206FD24 str r0, [sp, #0x4] mov r0, #0x14 add r2, r1, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -1349,7 +1349,7 @@ FUN_0206FD24: ; 0x0206FD24 ldr r2, [r5, #0x0] mov r0, #0x14 mov r3, #0x5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -1360,7 +1360,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r0, #0x14 mov r1, #0xe mov r3, #0x5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0xc @@ -1369,7 +1369,7 @@ FUN_0206FD24: ; 0x0206FD24 mov r1, #0xd mov r2, #0x4 mov r3, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r2, #0x99 lsl r2, r2, #0x2 mov r3, #0xf9 diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 34c0bc897..87e9cab08 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -2269,7 +2269,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r0, #0x1f add r2, r1, #0x0 add r3, r1, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0x12 @@ -2278,7 +2278,7 @@ FUN_02077FE8: ; 0x02077FE8 add r1, r0, #0x0 mov r2, #0x4 mov r3, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x4 mov r1, #0x0 bl FUN_02017FE4 @@ -2295,7 +2295,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r0, #0x1f add r2, r4, #0x0 add r3, r1, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 @@ -2309,7 +2309,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r1, #0x4 add r2, r4, #0x0 mov r3, #0x2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 @@ -2322,7 +2322,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r0, #0x1f mov r1, #0x2 add r2, r4, #0x0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xe @@ -2335,7 +2335,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r0, #0x1f mov r1, #0x6 add r2, r4, #0x0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0x0 mov r0, #0xe str r3, [sp, #0x0] @@ -2348,7 +2348,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r0, #0x1f mov r1, #0x7 add r2, r4, #0x0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0x6 mov r0, #0x0 lsl r1, r1, #0x6 @@ -2382,7 +2382,7 @@ FUN_02077FE8: ; 0x02077FE8 mov r1, #0x10 mov r2, #0x1 add r3, r5, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData ldr r1, _0207810C ; =0x000004AC str r0, [r5, r1] add sp, #0x10 @@ -2533,7 +2533,7 @@ _0207818C: mov r0, #0x13 mov r2, #0x0 add r3, r5, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData ldr r1, _02078320 ; =0x000004B4 str r0, [r5, r1] add r0, r1, #0x4 @@ -2547,7 +2547,7 @@ _0207818C: lsl r2, r0, #0x6 add r2, r5, r2 mov r3, #0x12 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData ldr r1, _02078324 ; =0x000004BC str r0, [r5, r1] add r0, r1, #0x4 @@ -3131,7 +3131,7 @@ _020786F0: mov r0, #0x1f add r1, r7, #0x6 add r3, r6, #0x0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02078BA8 @@ -3435,7 +3435,7 @@ FUN_0207890C: ; 0x0207890C ldr r2, [r5, r2] mov r0, #0x1f mov r1, #0x9 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x46 mov r1, #0x4 lsl r0, r0, #0x4 diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 625807ae0..3134a96cd 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -551,7 +551,7 @@ FUN_0207A0CC: ; 0x0207A0CC ldr r2, [r4, #0x0] mov r0, #0x27 mov r3, #0x3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -562,7 +562,7 @@ FUN_0207A0CC: ; 0x0207A0CC ldr r2, [r4, #0x0] mov r0, #0x27 add r3, r1, #0x0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x13 @@ -570,7 +570,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0x1 add r3, r2, #0x0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -581,7 +581,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0xb mov r3, #0x2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -592,7 +592,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0x2 mov r3, #0x4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -603,7 +603,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0x10 mov r3, #0x5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -614,7 +614,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0xf mov r3, #0x5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x13 @@ -622,7 +622,7 @@ FUN_0207A0CC: ; 0x0207A0CC mov r0, #0x27 mov r1, #0xe mov r2, #0x4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4, pc} diff --git a/arm9/asm/unk_020828BC.s b/arm9/asm/unk_020828BC.s index 58dba10d7..a64d7ab7e 100644 --- a/arm9/asm/unk_020828BC.s +++ b/arm9/asm/unk_020828BC.s @@ -177,7 +177,7 @@ _0208292A: mov r0, #0x5a add r2, r1, #0x0 add r3, r5, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x0 @@ -513,7 +513,7 @@ FUN_02082B90: ; 0x02082B90 mov r0, #0x5a mov r1, #0x2 mov r2, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] ldr r1, _02082D10 ; =0x00000121 ldr r0, [sp, #0x8] @@ -938,7 +938,7 @@ FUN_02082ED0: ; 0x02082ED0 add r2, r5, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x1 diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s index e5739d5b7..54ce01902 100644 --- a/arm9/asm/unk_02086414.s +++ b/arm9/asm/unk_02086414.s @@ -772,7 +772,7 @@ FUN_0208699C: ; 0x0208699C mov r0, #0x76 add r2, r5, #0x0 mov r3, #0x3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -783,7 +783,7 @@ FUN_0208699C: ; 0x0208699C mov r0, #0x76 add r2, r5, #0x0 mov r3, #0x3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x40 @@ -815,7 +815,7 @@ FUN_020869F0: ; 0x020869F0 mov r1, #0xa add r2, r5, #0x0 mov r3, #0x4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] @@ -827,7 +827,7 @@ FUN_020869F0: ; 0x020869F0 mov r1, #0xb add r2, r5, #0x0 mov r3, #0x4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x20 diff --git a/arm9/asm/unk_02087A6C.s b/arm9/asm/unk_02087A6C.s index c508e9783..1ab7b9084 100644 --- a/arm9/asm/unk_02087A6C.s +++ b/arm9/asm/unk_02087A6C.s @@ -249,7 +249,7 @@ FUN_02087C18: ; 0x02087C18 mov r0, #0x4b add r2, r1, #0x0 str r1, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc pop {r3, pc} .balign 4 @@ -261,7 +261,7 @@ FUN_02087C2C: ; 0x02087C2C mov r0, #0x4b mov r1, #0x1 str r2, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc pop {r3, pc} .balign 4 @@ -277,14 +277,14 @@ FUN_02087C40: ; 0x02087C40 mov r0, #0x4b mov r1, #0x9 add r3, r6, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0xa add r3, r6, #0x0 str r2, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -302,14 +302,14 @@ FUN_02087C70: ; 0x02087C70 mov r0, #0x4b mov r1, #0x7 add r3, r6, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x8 add r3, r6, #0x0 str r2, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -327,14 +327,14 @@ FUN_02087CA0: ; 0x02087CA0 mov r0, #0x4b mov r1, #0x5 add r3, r6, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x6 add r3, r6, #0x0 str r2, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} @@ -352,14 +352,14 @@ FUN_02087CD0: ; 0x02087CD0 mov r0, #0x4b mov r1, #0x3 add r3, r6, #0x0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x4 add r3, r6, #0x0 str r2, [sp, #0x0] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} diff --git a/arm9/global.inc b/arm9/global.inc index fda0c7813..19284cbed 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -394,22 +394,22 @@ .extern NARC_ReadFromMember .extern NARC_ReadFile .extern NARC_GetFileCount -.extern FUN_0200687C -.extern FUN_020068C8 -.extern FUN_02006930 -.extern FUN_02006948 -.extern FUN_02006A34 -.extern FUN_02006A8C -.extern FUN_02006AE4 -.extern FUN_02006B38 -.extern FUN_02006BB0 -.extern FUN_02006BDC -.extern FUN_02006C08 -.extern FUN_02006C30 -.extern FUN_02006C5C -.extern FUN_02006C88 -.extern UncompressFromNarc -.extern FUN_02006D18 +.extern GfGfxLoader_LoadCharData +.extern GfGfxLoader_LoadScrnData +.extern GfGfxLoader_GXLoadPal +.extern GfGfxLoader_GXLoadPalWithSrcOffset +.extern GfGfxLoader_LoadWholePalette +.extern GfGfxLoader_PartiallyLoadPalette +.extern GfGfxLoader_LoadImageMapping +.extern GfGfxLoader_SetObjCntFlagsAndLoadImageMapping +.extern GfGfxLoader_GetCharData +.extern GfGfxLoader_GetScrnData +.extern GfGfxLoader_GetPlttData +.extern GfGfxLoader_GetCellBank +.extern GfGfxLoader_GetAnimBank +.extern GfGfxLoader_UncompressFromNarc +.extern GfGfxLoader_LoadFromNarc +.extern GfGfxLoader_LoadFromNarc_GetSizeOut .extern FUN_02006D98 .extern FUN_02006ED4 .extern FUN_020072E8 diff --git a/arm9/modules/05/asm/mod05_021DC0B8.s b/arm9/modules/05/asm/mod05_021DC0B8.s index 8d4f91fae..7b1e767f7 100644 --- a/arm9/modules/05/asm/mod05_021DC0B8.s +++ b/arm9/modules/05/asm/mod05_021DC0B8.s @@ -520,7 +520,7 @@ MOD05_021DC480: ; 0x021DC480 add r1, r5, #0 mov r2, #0 mov r3, #4 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r5, r0, #0 add r1, r4, #0 mov r2, #4 diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s index 73ee60ca2..42f9037e6 100644 --- a/arm9/modules/05/asm/mod05_021E3444.s +++ b/arm9/modules/05/asm/mod05_021E3444.s @@ -1170,7 +1170,7 @@ MOD05_021E3D20: ; 0x021E3D20 str r0, [sp, #4] mov r0, #0x70 add r2, r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1181,7 +1181,7 @@ MOD05_021E3D20: ; 0x021E3D20 add r1, r6, #0 add r2, r4, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1192,7 +1192,7 @@ MOD05_021E3D20: ; 0x021E3D20 add r1, r5, #0 add r2, r4, #0 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r4, r5, r6, pc} @@ -1464,7 +1464,7 @@ MOD05_021E3F68: ; 0x021E3F68 ldrh r1, [r1, #8] add r2, sp, #4 add r3, r4, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 add r0, sp, #0x20 ldrh r0, [r0, #0x10] @@ -1549,7 +1549,7 @@ MOD05_021E4014: ; 0x021E4014 ldrh r1, [r1, #0xa] mov r2, #0 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #4] ldr r0, [sp, #0xc] ldr r0, [r0, #0x14] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 4662c7cca..006e8bb1a 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -26118,7 +26118,7 @@ MOD05_021F5268: ; 0x021F5268 add r1, r2, #0 str r5, [sp] add r2, r5, #0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4] bl NNS_G3dGetMdlSet str r0, [r4, #4] @@ -26211,7 +26211,7 @@ MOD05_021F531C: ; 0x021F531C ldr r3, [sp, #0x18] add r2, r6, #0 str r6, [sp] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r2, r0, #0 ldr r3, [sp, #0x1c] add r0, r5, #0 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 628900447..9a6184310 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -8879,7 +8879,7 @@ MOD06_0223D9E8: ; 0x0223D9E8 ldr r2, [r4] mov r0, #0x3e mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, _0223DA88 ; =0x00000241 ldrb r0, [r4, r0] cmp r0, #0 @@ -8894,7 +8894,7 @@ MOD06_0223D9E8: ; 0x0223D9E8 mov r0, #0x3e mov r1, #2 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData b _0223DA3E _0223DA26: mov r0, #0 @@ -8907,7 +8907,7 @@ _0223DA26: mov r0, #0x3e mov r1, #3 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _0223DA3E: mov r0, #0x20 str r0, [sp] @@ -8917,7 +8917,7 @@ _0223DA3E: mov r0, #0x3e mov r1, #1 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r3, #0xb @@ -30992,7 +30992,7 @@ _0224886C: mov r0, #0x73 add r1, r6, #0 add r3, r5, #0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4] str r5, [r4, #0x10] str r6, [r4, #0xc] @@ -44316,7 +44316,7 @@ _0224EFCC: add r1, r4, #4 mov r2, #0 mov r3, #4 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r6, r7] add r4, r4, #1 add r6, r6, #4 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 215c03c6e..80472fdfb 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -2010,7 +2010,7 @@ MOD07_02212E90: ; 0x02212E90 str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x6c - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2022,7 +2022,7 @@ MOD07_02212E90: ; 0x02212E90 str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x6c - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2034,7 +2034,7 @@ MOD07_02212E90: ; 0x02212E90 str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x6c - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2046,7 +2046,7 @@ MOD07_02212E90: ; 0x02212E90 str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x6c - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] ldr r0, [r4] @@ -2055,7 +2055,7 @@ MOD07_02212E90: ; 0x02212E90 add r3, r2, #0 str r0, [sp, #4] mov r0, #0x6c - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 ldr r0, [r4, #8] add r2, r1, #0 @@ -3299,7 +3299,7 @@ MOD07_02213924: ; 0x02213924 str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x14 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3311,7 +3311,7 @@ MOD07_02213924: ; 0x02213924 str r0, [sp, #0xc] ldr r2, [r5, #0xc] mov r0, #0x14 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r2, [r5] mov r0, #0x14 ldr r2, [r2, #0x24] diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 3c0363b47..a02c3f487 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -3198,7 +3198,7 @@ _02213500: mov r0, #7 add r1, r7, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData cmp r4, #1 bne _022135AC ldr r0, [r5] @@ -4144,7 +4144,7 @@ MOD08_02213C94: ; 0x02213C94 ldr r2, [r2] mov r0, #7 add r3, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [sp, #0x10] mov r1, #1 bl MOD08_022156AC @@ -4198,7 +4198,7 @@ _02213D18: ldr r2, [r5] mov r0, #7 add r3, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -4640,7 +4640,7 @@ _02214078: add r2, #0xc4 ldr r2, [r2] mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0x66 lsl r2, r2, #2 add r1, r2, #0 @@ -4681,7 +4681,7 @@ _022140CC: add r2, #0xc4 ldr r2, [r2] mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldrb r0, [r4, #5] add r0, r0, #1 strb r0, [r4, #5] @@ -5016,7 +5016,7 @@ _0221436A: add r2, #0xc4 ldr r2, [r2] mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0x66 lsl r2, r2, #2 add r1, r2, #0 @@ -5057,7 +5057,7 @@ _022143BE: add r2, #0xc4 ldr r2, [r2] mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #3 mov r1, #1 bl FUN_0201797C @@ -5608,7 +5608,7 @@ _022147E4: ldr r1, [r5, r1] ldr r2, [r2] add r3, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData b _0221482A _02214822: add r0, r5, #0 @@ -5630,7 +5630,7 @@ _0221482A: add r5, #0xc4 ldr r2, [r5] add r3, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} @@ -5932,7 +5932,7 @@ MOD08_02214A4C: ; 0x02214A4C ldr r2, [r2] mov r0, #7 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r4, #0 mov r1, #1 bl MOD08_022156AC @@ -5943,7 +5943,7 @@ MOD08_02214A4C: ; 0x02214A4C add r3, r2, #0 str r0, [sp, #4] mov r0, #7 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 mov r1, #2 bl MOD08_022156AC @@ -5959,7 +5959,7 @@ MOD08_02214A4C: ; 0x02214A4C ldr r2, [r5] mov r0, #7 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -15585,7 +15585,7 @@ _02219228: mov r0, #7 add r1, r6, #0 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r7, #0 mov r1, #1 bl MOD08_022156AC @@ -15639,7 +15639,7 @@ _022192BC: mov r0, #7 add r1, r6, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0xa ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] @@ -15989,7 +15989,7 @@ _02219550: mov r0, #7 add r1, r6, #0 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r7, #0 mov r1, #1 bl MOD08_022156AC @@ -16043,7 +16043,7 @@ _022195EA: mov r0, #7 add r1, r6, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0xa ldrsh r3, [r4, r3] ldr r0, [r4, #0x30] @@ -42742,7 +42742,7 @@ MOD08_02227068: ; 0x02227068 add r3, r4, #0 ldr r1, [r1, r2] ldr r2, [r5, #0x2c] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -42774,7 +42774,7 @@ MOD08_02227068: ; 0x02227068 add r3, r4, #0 ldr r1, [r1, r2] ldr r2, [r5, #0x2c] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r4, r5, r6, pc} nop diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index a30852473..003e2dc8c 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -2177,7 +2177,7 @@ MOD09_02212F8C: ; 0x02212F8C mov r0, #0x48 mov r1, #0x16 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r2, [r5] mov r0, #0x48 ldr r2, [r2, #0xc] @@ -2279,7 +2279,7 @@ MOD09_02212F8C: ; 0x02212F8C ldr r2, [r5, r2] mov r0, #0x26 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 @@ -13991,7 +13991,7 @@ MOD09_022191C0: ; 0x022191C0 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x4d - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -14002,7 +14002,7 @@ MOD09_022191C0: ; 0x022191C0 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x4d - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r2, [r5] mov r0, #0x4d ldr r2, [r2, #0xc] @@ -14059,7 +14059,7 @@ MOD09_022191C0: ; 0x022191C0 str r0, [sp, #0xc] ldr r2, [r5, #4] mov r0, #0x26 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r4, #0 bl FUN_0200CD64 add r2, r0, #0 diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s index 9fedcb0a3..2a6bb1966 100644 --- a/arm9/modules/11/asm/module_11_thumb1.s +++ b/arm9/modules/11/asm/module_11_thumb1.s @@ -527,7 +527,7 @@ _0222D99A: mov r0, #7 add r1, r1, #3 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r5, #0 bl MOD11_02230C68 add r2, r0, #0 @@ -581,7 +581,7 @@ _0222D99A: mov r0, #7 mov r1, #2 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] @@ -1547,7 +1547,7 @@ _0222E2F0: add r1, r1, #3 add r2, r4, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r5, #0 bl MOD11_02230C68 add r6, r0, #0 @@ -1601,7 +1601,7 @@ _0222E2F0: mov r1, #2 add r2, r4, #0 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index b22a9a771..88362b01b 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -84494,7 +84494,7 @@ _02258512: mov r0, #7 mov r2, #1 add r3, sp, #0x18 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r5, r0, #0 lsl r0, r4, #2 add r0, r6, r0 @@ -84597,7 +84597,7 @@ _022585DE: mov r1, #0xca add r2, sp, #0x14 mov r3, #5 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp, #0x14] ldr r1, [r6, #0x60] @@ -84696,7 +84696,7 @@ MOD11_022586BC: ; 0x022586BC mov r1, #0x11 add r2, r5, #0 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r2, _02258790 ; =0x00004E2D add r0, r6, #0 add r1, r4, #0 @@ -88713,7 +88713,7 @@ _0225A7CE: ldr r0, [sp, #0x40] mov r2, #1 add r3, sp, #0x4c - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0x44] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x1c] diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 1448f650e..effb333a0 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -1054,7 +1054,7 @@ MOD12_0222DF30: ; 0x0222DF30 mov r0, #0x2d mov r1, #3 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1066,7 +1066,7 @@ MOD12_0222DF30: ; 0x0222DF30 mov r0, #0x2d mov r1, #5 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 add r1, r0, #0 bl FUN_020178BC @@ -1117,7 +1117,7 @@ MOD12_0222DFC4: ; 0x0222DFC4 ldr r2, [r5, #0x30] mov r0, #0x2d mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1129,7 +1129,7 @@ MOD12_0222DFC4: ; 0x0222DFC4 mov r0, #0x2d mov r1, #2 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1140,7 +1140,7 @@ MOD12_0222DFC4: ; 0x0222DFC4 ldr r2, [r5, #0x30] mov r0, #0x2d mov r1, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1151,7 +1151,7 @@ MOD12_0222DFC4: ; 0x0222DFC4 ldr r2, [r5, #0x30] mov r0, #0x2d mov r1, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 add r0, r5, #0 add r2, r1, #0 @@ -4185,7 +4185,7 @@ MOD12_0222F834: ; 0x0222F834 ldr r2, [r5, #0x30] mov r0, #0x2d mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4197,7 +4197,7 @@ MOD12_0222F834: ; 0x0222F834 mov r0, #0x2d mov r1, #0x15 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0x30] mov r1, #1 bl FUN_02018744 @@ -4260,7 +4260,7 @@ MOD12_0222F834: ; 0x0222F834 mov r0, #0x2d mov r1, #0x17 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4272,7 +4272,7 @@ MOD12_0222F834: ; 0x0222F834 mov r0, #0x2d mov r1, #0x14 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -4310,7 +4310,7 @@ MOD12_0222F938: ; 0x0222F938 mov r0, #0x2d mov r1, #0x12 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4322,7 +4322,7 @@ MOD12_0222F938: ; 0x0222F938 mov r0, #0x2d mov r1, #0x13 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 str r0, [sp] mov r0, #0 @@ -6184,7 +6184,7 @@ MOD12_022308F0: ; 0x022308F0 mov r0, #0x2d mov r1, #0xd mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6196,7 +6196,7 @@ MOD12_022308F0: ; 0x022308F0 mov r0, #0x2d mov r1, #0xe mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8440,7 +8440,7 @@ _02231A4C: mov r0, #0x2d mov r2, #1 add r3, sp, #0xc - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r6, r0, #0 lsl r0, r5, #2 add r0, r4, r0 @@ -8679,7 +8679,7 @@ _02231C40: mov r0, #0x2d mov r2, #1 add r3, r7, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r1, #0xb6 lsl r1, r1, #2 str r0, [r7, r1] @@ -15831,7 +15831,7 @@ _02235382: mov r0, #0x2d ldr r2, [r2, #0x30] mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldrb r0, [r4, #8] add sp, #0x10 add r0, r0, #1 @@ -25820,7 +25820,7 @@ _02239C90: ldr r2, [r6, #0x30] mov r0, #0x2d mov r1, #0x14 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, _02239D84 ; =MOD12_02239D8C ldr r2, _02239D88 ; =0x00007530 add r1, r4, #0 @@ -28948,7 +28948,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #9 mov r2, #1 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r5, r0, #0 ldr r0, [sp, #0xc] add r1, r4, #0 @@ -28966,7 +28966,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #0x11 mov r2, #1 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r5, r0, #0 ldr r0, [sp, #0xc] add r1, r4, #0 @@ -28984,7 +28984,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #0xf mov r2, #1 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r5, r0, #0 ldr r0, [sp, #0xc] add r1, r4, #0 @@ -29002,7 +29002,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #7 mov r2, #1 add r3, sp, #8 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r1, r4, #0 add r5, r0, #0 ldr r0, [sp, #8] @@ -29020,7 +29020,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #8 mov r2, #1 add r3, sp, #8 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r1, r4, #0 add r5, r0, #0 ldr r0, [sp, #8] @@ -29038,7 +29038,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #0x10 mov r2, #1 add r3, sp, #8 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r1, r4, #0 add r5, r0, #0 ldr r0, [sp, #8] @@ -29056,7 +29056,7 @@ MOD12_0223B4F8: ; 0x0223B4F8 mov r1, #0x1b mov r2, #1 add r3, sp, #8 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r1, r4, #0 add r5, r0, #0 ldr r0, [sp, #8] @@ -42170,7 +42170,7 @@ MOD12_02241BA0: ; 0x02241BA0 mov r0, #0x2d mov r1, #0x12 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -42182,7 +42182,7 @@ MOD12_02241BA0: ; 0x02241BA0 mov r0, #0x2d mov r1, #0x13 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 str r0, [sp] mov r0, #0 @@ -43630,7 +43630,7 @@ MOD12_022426BC: ; 0x022426BC mov r0, #0x2d mov r1, #0x16 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -43642,7 +43642,7 @@ MOD12_022426BC: ; 0x022426BC mov r0, #0x2d mov r1, #0x15 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0x30] mov r1, #1 bl FUN_02018744 @@ -43789,7 +43789,7 @@ MOD12_02242804: ; 0x02242804 mov r0, #0x2d mov r1, #0x1a mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -43800,7 +43800,7 @@ MOD12_02242804: ; 0x02242804 ldr r2, [r6, #0x30] mov r0, #0x2d mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -43812,7 +43812,7 @@ MOD12_02242804: ; 0x02242804 mov r0, #0x2d mov r1, #0x19 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r6, #0x30] mov r1, #1 bl FUN_02018744 @@ -47817,7 +47817,7 @@ MOD12_0224473C: ; 0x0224473C mov r0, #0x5a add r1, r1, #3 str r2, [sp] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc pop {r3, pc} .align 2, 0 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index af35772e3..bdfed5b16 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -10558,7 +10558,7 @@ _021DC79C: mov r1, #0x1a add r2, r5, #0 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #0 mov r1, #0xa bl FUN_02002C84 @@ -12965,7 +12965,7 @@ MOD14_021DDB50: ; 0x021DDB50 ldr r2, [r5, r2] mov r0, #0x12 mov r1, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -12996,7 +12996,7 @@ MOD14_021DDB50: ; 0x021DDB50 ldr r2, [r5, r2] mov r0, #0x12 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0xe0 str r0, [sp] mov r0, #0xa @@ -13005,7 +13005,7 @@ MOD14_021DDB50: ; 0x021DDB50 mov r0, #0x12 mov r1, #5 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 bl MOD14_021DC3C4 cmp r0, #4 @@ -13022,7 +13022,7 @@ MOD14_021DDB50: ; 0x021DDB50 ldr r2, [r5, r2] mov r0, #0x12 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _021DDBF2: mov r0, #0x43 lsl r0, r0, #4 @@ -13736,7 +13736,7 @@ MOD14_021DE138: ; 0x021DE138 ldrb r1, [r1, r2] add r2, sp, #8 mov r3, #0xa - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [sp, #4] cmp r0, #0 beq _021DE1C0 @@ -13810,7 +13810,7 @@ MOD14_021DE1D0: ; 0x021DE1D0 ldr r1, _021DE26C ; =MOD14_021E65AD ldrb r1, [r1, r3] mov r3, #0xa - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #0x10] cmp r0, #0 beq _021DE268 @@ -13890,7 +13890,7 @@ MOD14_021DE278: ; 0x021DE278 ldr r1, _021DE2E0 ; =MOD14_021E65AC ldrb r1, [r1, r3] mov r3, #0xa - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #4] cmp r0, #0 beq _021DE2DC @@ -15753,7 +15753,7 @@ MOD14_021DF07C: ; 0x021DF07C mov r0, #0x12 mov r1, #0xd add r3, #0x1c - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #0x14] mov r0, #0xa add r3, r5, #0 @@ -15762,7 +15762,7 @@ MOD14_021DF07C: ; 0x021DF07C mov r1, #0xe mov r2, #1 add r3, #0x20 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r5, #0x18] ldr r0, [r5, #0x14] cmp r0, #0 @@ -15806,7 +15806,7 @@ MOD14_021DF144: ; 0x021DF144 str r0, [sp, #0x10] mov r0, #0x12 mov r1, #0xc - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping ldr r0, _021DF310 ; =0x00000785 ldrb r0, [r4, r0] cmp r0, #1 @@ -18645,13 +18645,13 @@ MOD14_021E078C: ; 0x021E078C mov r0, #0x13 mov r2, #1 mov r3, #0x40 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette bl FUN_0206B888 add r1, r0, #0 mov r0, #0x13 add r2, sp, #0x14 mov r3, #0xa - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [sp, #0xc] cmp r0, #0 beq _021E0818 @@ -18697,7 +18697,7 @@ _021E0818: mov r1, #0x15 mov r2, #1 add r3, #0x10 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #8] mov r0, #0xa str r0, [sp] @@ -18705,7 +18705,7 @@ _021E0818: mov r1, #0x16 mov r2, #1 add r3, r5, #4 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r5] mov r0, #0xa add r3, r5, #0 @@ -18714,7 +18714,7 @@ _021E0818: mov r1, #0x17 mov r2, #1 add r3, #0x1c - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #0x14] mov r0, #0xa add r3, r5, #0 @@ -18723,7 +18723,7 @@ _021E0818: mov r1, #0x18 mov r2, #1 add r3, #0x20 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r5, #0x18] mov r0, #0x13 mov r1, #0xa @@ -19277,7 +19277,7 @@ MOD14_021E0C7C: ; 0x021E0C7C mov r0, #0x12 mov r2, #1 add r3, #0x10 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r4, #8] mov r0, #0xa add r3, r4, #0 @@ -19286,7 +19286,7 @@ MOD14_021E0C7C: ; 0x021E0C7C mov r1, #0xb mov r2, #1 add r3, #0x14 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r4, #0xc] ldr r0, [r4, #8] cmp r0, #0 @@ -19324,7 +19324,7 @@ MOD14_021E0CCC: ; 0x021E0CCC str r0, [sp, #0x10] mov r0, #0x12 mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping ldr r0, [r4, #0x44] bl MOD14_021DDD48 add r2, r0, #0 @@ -19450,7 +19450,7 @@ _021E0DAC: mov r1, #0x10 mov r2, #1 add r3, #0x2c - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #0x28] mov r0, #0 str r0, [r5, #0x30] @@ -19472,7 +19472,7 @@ _021E0DAC: add r0, r4, #0 mov r2, #1 add r3, #0x38 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank mov r1, #0 str r0, [r5, #0x34] add r2, r5, #0 @@ -19696,7 +19696,7 @@ MOD14_021E0FA8: ; 0x021E0FA8 ldr r0, [sp, #0x1c] mov r2, #1 lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 mov r6, #0x5e str r0, [sp, #0x14] @@ -19720,7 +19720,7 @@ _021E0FE0: ldr r1, [sp, #0x18] mov r2, #1 mov r3, #0 - bl FUN_02006B38 + bl GfGfxLoader_SetObjCntFlagsAndLoadImageMapping ldr r0, [r5, #0x14] bl MOD14_021DDD48 add r2, r0, #0 @@ -19772,7 +19772,7 @@ _021E103E: str r0, [sp, #0x10] mov r0, #0x12 mov r1, #0xf - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping ldr r0, [r5, #0x14] bl MOD14_021DDD48 add r2, r0, #0 @@ -20131,7 +20131,7 @@ _021E12EC: str r0, [sp, #8] add r0, r6, #0 lsl r3, r3, #0xa - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette ldr r0, [r4, #0x3c] bl FUN_0202011C add r6, r0, #0 @@ -20180,7 +20180,7 @@ _021E12EC: str r0, [sp, #8] add r0, r6, #0 lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #9 ldr r1, [sp, #0x10] lsl r0, r0, #0xe @@ -20679,7 +20679,7 @@ MOD14_021E1750: ; 0x021E1750 mov r1, #0x19 mov r2, #1 add r3, #0x28 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [r4, #0x24] cmp r0, #0 beq _021E17B6 @@ -20781,7 +20781,7 @@ _021E1848: ldr r2, [r6] mov r0, #0x26 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] mov r0, #0xa @@ -20790,7 +20790,7 @@ _021E1848: mov r1, #0x18 mov r2, #0 mov r3, #0xe0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r6, #0x20] ldr r2, _021E1898 ; =0x00000209 lsl r0, r0, #0x18 @@ -21443,12 +21443,12 @@ MOD14_021E1D38: ; 0x021E1D38 mov r0, #0x12 mov r1, #4 add r3, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x12 mov r1, #0x1b add r2, sp, #0x14 mov r3, #0xa - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp, #0x14] add r1, r5, #0 @@ -21462,7 +21462,7 @@ MOD14_021E1D38: ; 0x021E1D38 mov r1, #0x14 add r2, sp, #0x14 mov r3, #0xa - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp, #0x14] mov r1, #0x49 @@ -21522,7 +21522,7 @@ _021E1DBC: mov r1, #0x11 mov r2, #1 add r3, #0x18 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [r5, #0x14] mov r0, #0xa str r0, [sp] @@ -21531,7 +21531,7 @@ _021E1DBC: add r1, r0, #0 mov r2, #1 add r3, #0x20 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5, #0x1c] mov r0, #0xa add r3, r5, #0 @@ -21540,7 +21540,7 @@ _021E1DBC: mov r1, #2 mov r2, #1 add r3, #0x38 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r5, #0x34] mov r0, #0xa add r3, r5, #0 @@ -21549,7 +21549,7 @@ _021E1DBC: mov r1, #3 mov r2, #1 add r3, #0x30 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r5, #0x2c] mov r0, #2 mov r1, #0xd @@ -22998,7 +22998,7 @@ MOD14_021E2940: ; 0x021E2940 mov r0, #0x10 mov r2, #0 add r3, sp, #8 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r6, r0, #0 mov r0, #1 lsl r0, r0, #0x1a @@ -23025,7 +23025,7 @@ MOD14_021E2940: ; 0x021E2940 mov r0, #0x10 mov r2, #1 mov r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #1 @@ -23141,7 +23141,7 @@ _021E2A74: mov r1, #6 mov r2, #1 add r3, #0x18 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r5, #0x14] cmp r0, #0 beq _021E2AB6 @@ -24602,7 +24602,7 @@ MOD14_021E355C: ; 0x021E355C mov r0, #0x12 mov r1, #0x67 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -24614,7 +24614,7 @@ MOD14_021E355C: ; 0x021E355C mov r0, #0x12 mov r1, #0x64 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -24626,7 +24626,7 @@ MOD14_021E355C: ; 0x021E355C mov r0, #0x12 mov r1, #0x65 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -24638,7 +24638,7 @@ MOD14_021E355C: ; 0x021E355C mov r0, #0x12 mov r1, #0x66 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] ldr r0, [r4, #8] @@ -24698,7 +24698,7 @@ MOD14_021E355C: ; 0x021E355C mov r1, #0x68 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 bl MOD14_021E3664 _021E365C: @@ -24727,7 +24727,7 @@ MOD14_021E3664: ; 0x021E3664 mov r0, #0x12 mov r1, #0x72 mov r2, #1 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping add r0, r4, #0 add r0, #0xa4 ldr r0, [r0] @@ -24790,7 +24790,7 @@ MOD14_021E36FC: ; 0x021E36FC mov r1, #0x73 mov r2, #1 add r3, #0x9c - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank add r1, r4, #0 add r1, #0x98 str r0, [r1] @@ -24801,7 +24801,7 @@ MOD14_021E36FC: ; 0x021E36FC mov r1, #0x74 mov r2, #1 add r3, #0xa4 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank add r1, r4, #0 add r1, #0xa0 str r0, [r1] @@ -24812,7 +24812,7 @@ MOD14_021E36FC: ; 0x021E36FC mov r1, #0x76 mov r2, #1 add r3, #0xac - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank add r1, r4, #0 add r1, #0xa8 str r0, [r1] @@ -24823,7 +24823,7 @@ MOD14_021E36FC: ; 0x021E36FC mov r1, #0x77 mov r2, #1 add r3, #0xb4 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank add r1, r4, #0 add r1, #0xb0 str r0, [r1] @@ -24838,7 +24838,7 @@ MOD14_021E36FC: ; 0x021E36FC mov r2, #2 mov r3, #0 str r4, [sp, #4] - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette add sp, #8 pop {r4, pc} .align 2, 0 @@ -25767,7 +25767,7 @@ MOD14_021E3E1C: ; 0x021E3E1C mov r0, #0x12 mov r1, #0x75 mov r2, #1 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping add r7, r5, #0 mov r6, #0 add r4, r5, #0 @@ -27182,7 +27182,7 @@ MOD14_021E4890: ; 0x021E4890 mov r0, #0x10 mov r2, #0 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #8] cmp r0, #0 beq _021E4950 @@ -27406,7 +27406,7 @@ _021E4A54: str r0, [sp, #8] ldr r3, [r3, r4] mov r0, #0x10 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette lsl r0, r7, #0x10 lsr r0, r0, #0x10 mov r1, #2 @@ -27421,7 +27421,7 @@ _021E4A54: mov r0, #0x10 mov r2, #1 lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r1, [sp, #0xc] add r5, #0x1c lsl r4, r6, #2 @@ -27537,7 +27537,7 @@ MOD14_021E4B58: ; 0x021E4B58 str r0, [sp, #8] ldr r3, [r3, r6] mov r0, #0x10 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette lsl r0, r7, #0x10 lsr r0, r0, #0x10 mov r1, #2 @@ -27552,7 +27552,7 @@ MOD14_021E4B58: ; 0x021E4B58 mov r0, #0x10 mov r2, #1 lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r1, [sp, #0xc] add r5, #0x1c lsl r4, r4, #2 @@ -28191,7 +28191,7 @@ _021E5064: mov r1, #7 mov r2, #1 add r3, r4, r3 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData mov r3, #0x37 lsl r3, r3, #4 str r0, [r4, r3] @@ -28202,7 +28202,7 @@ _021E5064: mov r1, #8 mov r2, #1 add r3, r4, r3 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData mov r1, #0xdd lsl r1, r1, #2 str r0, [r4, r1] @@ -28277,7 +28277,7 @@ MOD14_021E5128: ; 0x021E5128 mov r0, #0x12 mov r1, #0x6c mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -28289,7 +28289,7 @@ MOD14_021E5128: ; 0x021E5128 mov r0, #0x12 mov r1, #0x69 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -28301,7 +28301,7 @@ MOD14_021E5128: ; 0x021E5128 mov r0, #0x12 mov r1, #0x6a mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -28313,7 +28313,7 @@ MOD14_021E5128: ; 0x021E5128 mov r0, #0x12 mov r1, #0x6b mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x80 str r0, [sp] mov r0, #0xa @@ -28322,7 +28322,7 @@ MOD14_021E5128: ; 0x021E5128 mov r1, #0x6d mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal bl FUN_0206B888 mov r3, #0x80 add r1, r0, #0 @@ -28331,7 +28331,7 @@ MOD14_021E5128: ; 0x021E5128 str r0, [sp, #4] mov r0, #0x13 mov r2, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #4 mov r1, #0x20 mov r2, #0 @@ -29404,7 +29404,7 @@ MOD14_021E5A08: ; 0x021E5A08 mov r1, #0x6f mov r2, #1 add r3, #0x60 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r7, #0x5c] mov r0, #0xa add r3, r7, #0 @@ -29413,7 +29413,7 @@ MOD14_021E5A08: ; 0x021E5A08 mov r1, #0x70 mov r2, #1 add r3, #0x68 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r7, #0x64] mov r0, #0x60 str r0, [sp] @@ -29423,7 +29423,7 @@ MOD14_021E5A08: ; 0x021E5A08 mov r1, #0x71 mov r2, #5 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, sp, #0x48 bl NNS_G2dInitImageProxy mov r3, #0 @@ -29438,7 +29438,7 @@ MOD14_021E5A08: ; 0x021E5A08 mov r0, #0x12 mov r1, #0x6e mov r2, #1 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping str r0, [sp, #0x20] ldr r0, [r7, #4] bl MOD14_021DDD48 diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index 3bc1378b7..97282c023 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2951,7 +2951,7 @@ MOD15_021D8AB4: ; 0x021D8AB4 str r0, [sp, #0x10] mov r0, #0x4c mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x23 str r0, [sp] mov r0, #0x66 @@ -2962,7 +2962,7 @@ MOD15_021D8AB4: ; 0x021D8AB4 mov r1, #0xa mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r1, #7 mov r0, #0x23 lsl r3, r1, #6 @@ -2970,7 +2970,7 @@ MOD15_021D8AB4: ; 0x021D8AB4 mov r0, #0x4c mov r2, #1 add r3, r4, r3 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank mov r3, #0x1d lsl r3, r3, #4 str r0, [r4, r3] @@ -2981,7 +2981,7 @@ MOD15_021D8AB4: ; 0x021D8AB4 mov r1, #8 mov r2, #1 add r3, r4, r3 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank mov r1, #0x76 lsl r1, r1, #2 str r0, [r4, r1] @@ -4419,7 +4419,7 @@ MOD15_021D9694: ; 0x021D9694 mov r0, #0x4c add r2, r6, #0 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -4429,7 +4429,7 @@ MOD15_021D9694: ; 0x021D9694 str r0, [sp, #0xc] mov r0, #0x4c add r2, r6, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData lsr r4, r0, #5 mov r0, #1 str r0, [sp] @@ -4495,7 +4495,7 @@ MOD15_021D9694: ; 0x021D9694 mov r0, #0x26 add r2, r6, #0 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r4, #0 add r0, #0xc2 str r0, [r5, #0x60] @@ -4508,7 +4508,7 @@ MOD15_021D9694: ; 0x021D9694 mov r1, #0x18 mov r2, #0 lsl r3, r3, #6 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r5, #4] bl MOD15_021D87E0 lsl r0, r0, #0x18 @@ -4565,12 +4565,12 @@ MOD15_021D97E4: ; 0x021D97E4 mov r0, #0x4c mov r1, #6 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x4c mov r1, #6 add r2, sp, #8 mov r3, #0x23 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp, #8] add r1, r5, #0 @@ -5605,7 +5605,7 @@ MOD15_021D9FD4: ; 0x021D9FD4 mov r1, #4 add r2, r4, #0 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5617,7 +5617,7 @@ MOD15_021D9FD4: ; 0x021D9FD4 mov r1, #5 add r2, r4, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r1, _021DA03C ; =0x021DBA00 add r0, r4, #0 mov r2, #0 @@ -5863,7 +5863,7 @@ MOD15_021DA1D0: ; 0x021DA1D0 mov r0, #0x4c mov r1, #2 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5874,7 +5874,7 @@ MOD15_021DA1D0: ; 0x021DA1D0 mov r0, #0x4c mov r1, #3 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 @@ -7494,7 +7494,7 @@ MOD15_021DAEB4: ; 0x021DAEB4 mov r1, #0x15 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -7506,7 +7506,7 @@ MOD15_021DAEB4: ; 0x021DAEB4 mov r0, #0x4c mov r1, #0xb mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 bl MOD15_021DAFAC add r0, r4, #0 @@ -7613,7 +7613,7 @@ _021DAFB8: mov r0, #0x4c mov r2, #1 add r3, sp, #4 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r7, r0, #0 beq _021DAFE6 ldr r0, [sp, #4] @@ -7675,7 +7675,7 @@ MOD15_021DAFF8: ; 0x021DAFF8 mov r1, #0x14 mov r2, #1 add r3, sp, #0xc - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #8] cmp r0, #0 beq _021DB0D4 @@ -7812,7 +7812,7 @@ MOD15_021DB154: ; 0x021DB154 mov r1, #0x19 mov r2, #2 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r3, #0 str r3, [sp] mov r0, #2 @@ -7825,7 +7825,7 @@ MOD15_021DB154: ; 0x021DB154 mov r0, #0x4c mov r1, #0x18 mov r2, #1 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping add r0, r4, #0 add r0, #0x1c mov r1, #0x4c @@ -7906,7 +7906,7 @@ MOD15_021DB224: ; 0x021DB224 add r0, r4, #0 mov r2, #1 add r3, r5, #4 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5] mov r0, #0x23 add r3, r5, #0 @@ -7915,7 +7915,7 @@ MOD15_021DB224: ; 0x021DB224 add r1, r6, #0 mov r2, #1 add r3, #0xc - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r5, #8] add sp, #4 pop {r3, r4, r5, r6, pc} diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 2f05ad9ae..82ff69c01 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -6027,7 +6027,7 @@ _021DA196: mov r0, #0x4b add r1, r5, #0 add r3, r6, #0 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut ldr r1, [sp, #8] lsr r1, r1, #1 str r1, [r4] @@ -9949,7 +9949,7 @@ _021DBD82: mov r0, #0x8c .endif add r1, r5, r1 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [r4] ldr r0, [sp, #8] lsr r0, r0, #2 @@ -10004,7 +10004,7 @@ MOD16_021DBDE4: ; 0x021DBDE4 mov r0, #0x8c .endif add r2, r1, #0 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut cmp r4, #0 beq _021DBE06 ldr r1, [sp, #8] @@ -10032,7 +10032,7 @@ MOD16_021DBE0C: ; 0x021DBE0C mov r0, #0x8c .endif mov r1, #2 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut add r5, r0, #0 cmp r4, #0 beq _021DBE34 @@ -52059,7 +52059,7 @@ MOD16_021EF790: ; 0x021EF790 mov r1, #6 add r3, r2, #0 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -52070,13 +52070,13 @@ MOD16_021EF790: ; 0x021EF790 mov r1, #0x21 add r2, r5, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData str r4, [sp] mov r0, #0x45 mov r1, #0x32 mov r2, #1 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] @@ -52100,7 +52100,7 @@ MOD16_021EF790: ; 0x021EF790 mov r1, #0x33 mov r2, #1 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x10] mov r1, #3 str r1, [sp] @@ -52124,7 +52124,7 @@ MOD16_021EF790: ; 0x021EF790 mov r1, #0x34 mov r2, #1 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r6, r0, #0 ldr r2, [sp, #0x10] mov r0, #8 @@ -52149,7 +52149,7 @@ MOD16_021EF790: ; 0x021EF790 mov r1, #0x36 mov r2, #1 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r4, r0, #0 ldr r2, [sp, #0x10] mov r0, #0x10 @@ -52192,13 +52192,13 @@ MOD16_021EF8A8: ; 0x021EF8A8 mov r1, #0x21 add r2, r4, #0 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData str r5, [sp] mov r0, #0x45 mov r1, #0x39 mov r2, #1 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] @@ -52520,7 +52520,7 @@ MOD16_021EFB20: ; 0x021EFB20 mov r1, #0x17 add r2, #8 add r3, r5, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData b _021EFB48 _021EFB3A: add r2, r4, #0 @@ -52528,7 +52528,7 @@ _021EFB3A: mov r1, #0x18 add r2, #8 add r3, r5, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData _021EFB48: add r2, r4, #0 str r0, [r4] @@ -52536,7 +52536,7 @@ _021EFB48: mov r1, #0x1a add r2, #0xc add r3, r5, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r4, #4] mov r1, #0 str r1, [r4, #0x10] diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 74c324578..955741b38 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -1752,7 +1752,7 @@ _021D81AC: add r1, r4, #1 mov r2, #0 mov r3, #0xe - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #4] cmp r0, #0 bne _021D81C6 @@ -1778,7 +1778,7 @@ _021D81C6: mov r0, #0x19 add r2, r1, #0 mov r3, #0xe - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r4, r0, #0 ldr r0, [r6, #0x14] add r1, r4, #0 @@ -1816,7 +1816,7 @@ _021D822A: add r1, #0xce mov r2, #0 mov r3, #0xe - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r2, r4, #0 add r1, r0, #0 add r2, #0x64 @@ -1837,7 +1837,7 @@ _021D822A: str r0, [sp] ldr r1, [sp, #8] mov r0, #0x19 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r1, [sp, #0xc] @@ -1887,7 +1887,7 @@ MOD17_021D82B8: ; 0x021D82B8 mov r0, #0x19 mov r1, #0xeb str r2, [sp] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x28] add sp, #4 pop {r3, r4, pc} @@ -8834,7 +8834,7 @@ MOD17_021DB6D8: ; 0x021DB6D8 ldrh r0, [r1] ldrh r1, [r1, #2] mov r3, #0xe - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r1, r0, #0 add r0, r4, #0 mov r2, #0x76 @@ -8913,7 +8913,7 @@ MOD17_021DB700: ; 0x021DB700 ldrh r0, [r6] ldrh r1, [r6, #2] ldr r3, [sp, #0x30] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r1, sp, #0x10 add r6, r0, #0 bl NNS_G2dGetUnpackedCharacterData @@ -9813,7 +9813,7 @@ _021DBDAA: ldr r0, [r5] add r3, sp, #0x14 ldr r0, [r0, #4] - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r3, [r5] add r4, r0, #0 ldr r0, [r3, #0x18] @@ -9850,7 +9850,7 @@ MOD17_021DBDE8: ; 0x021DBDE8 ldr r0, [r1, #4] ldr r1, [r1, #8] add r3, sp, #0x14 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r3, [r5] add r4, r0, #0 ldr r0, [r3, #0x18] @@ -10023,7 +10023,7 @@ _021DBF2A: ldr r0, [r5, #4] ldr r1, [r5, #0x10] add r3, sp, #0x24 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x24] str r0, [sp, #0x20] ldrh r0, [r2] @@ -10206,7 +10206,7 @@ _021DC0A0: add r0, r7, #0 mov r2, #0 add r3, r4, #4 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [r4, #8] str r5, [r4] ldr r0, [sp, #0x20] @@ -10245,7 +10245,7 @@ _021DC0EE: ldr r3, [sp, #0x1c] add r0, r7, #0 add r2, r4, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r4, #4] str r5, [r4, #8] ldr r0, [sp, #0x18] @@ -13716,7 +13716,7 @@ _021DDAC6: mov r0, #0x19 add r1, r5, #1 mov r2, #0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r7, r0, #0 ldr r0, [r4, #0x10] add r1, r7, #0 @@ -13749,7 +13749,7 @@ _021DDB1E: ldr r3, [sp, #0xc] mov r0, #0x19 add r2, r1, #0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r5, r0, #0 ldr r0, [r4, #0x14] add r1, r5, #0 @@ -14023,7 +14023,7 @@ MOD17_021DDD54: ; 0x021DDD54 mov r1, #0x7e mov r2, #0 mov r3, #0x60 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -14034,7 +14034,7 @@ MOD17_021DDD54: ; 0x021DDD54 mov r0, #0x19 mov r1, #0x7d mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5, #0xc] cmp r0, #0 bne _021DDD92 @@ -14050,7 +14050,7 @@ _021DDD96: mov r0, #0x19 mov r2, #0 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] @@ -14106,7 +14106,7 @@ MOD17_021DDDFC: ; 0x021DDDFC add r1, r0, #0 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -14118,7 +14118,7 @@ MOD17_021DDDFC: ; 0x021DDDFC mov r0, #0xc mov r1, #0xb mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -14130,7 +14130,7 @@ MOD17_021DDDFC: ; 0x021DDDFC mov r0, #0xc mov r1, #0xa mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index db6482555..9b2fdf678 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -1788,7 +1788,7 @@ MOD18_0223A3D4: ; 0x0223A3D4 mov r0, #0x34 mov r1, #1 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -1798,7 +1798,7 @@ MOD18_0223A3D4: ; 0x0223A3D4 mov r0, #0x34 add r2, r4, #0 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -1809,7 +1809,7 @@ MOD18_0223A3D4: ; 0x0223A3D4 mov r0, #0x34 mov r1, #2 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0x80 str r3, [sp] mov r0, #0x1d @@ -1818,7 +1818,7 @@ MOD18_0223A3D4: ; 0x0223A3D4 mov r1, #0x34 mov r2, #0 add r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 @@ -1861,7 +1861,7 @@ MOD18_0223A4D8: ; 0x0223A4D8 mov r1, #9 ldr r2, [r2, #4] mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, _0223A55C ; =0x02251380 ldr r0, [r0] ldr r0, [r0, #4] @@ -2500,7 +2500,7 @@ _0223AA5C: mov r1, #0x34 mov r2, #0 add r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #2 str r0, [sp] mov r0, #4 @@ -3495,7 +3495,7 @@ _0223B1FC: mov r0, #0x37 mov r2, #0 lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal b _0223B248 _0223B218: ldr r5, [sp, #0x18] @@ -3505,7 +3505,7 @@ _0223B218: mov r0, #0x37 add r2, r5, r4 mov r3, #0x1d - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData ldr r1, [sp, #0x18] add r1, r1, r4 str r0, [r1, #0x18] @@ -3533,7 +3533,7 @@ _0223B248: ldrh r1, [r1, #0x10] mov r0, #0x37 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData str r0, [sp, #0x20] ldr r0, [sp, #0x30] str r0, [sp, #0x24] @@ -8073,7 +8073,7 @@ MOD18_0223D414: ; 0x0223D414 mov r1, #0x34 mov r2, #0 add r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #2 str r0, [sp] mov r0, #4 @@ -14679,7 +14679,7 @@ _022406A4: mov r0, #0x32 mov r1, #9 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add sp, #0x1c add r0, r0, #1 @@ -14694,7 +14694,7 @@ _022406D8: mov r0, #0x32 mov r1, #0xa add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r4] add sp, #0x1c add r0, r0, #1 @@ -14725,7 +14725,7 @@ _022406F6: mov r0, #0x32 mov r1, #8 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData b _02240774 _0224072E: ldr r1, _0224088C ; =0x022500A8 @@ -14760,7 +14760,7 @@ _0224072E: ldr r2, [r4, #0x10] mov r0, #0x32 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _02240774: mov r0, #0 mov r1, #3 @@ -23148,7 +23148,7 @@ MOD18_0224486C: ; 0x0224486C mov r0, #0x1c add r3, r1, #0 str r2, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 mov r0, #5 str r1, [sp] @@ -23160,7 +23160,7 @@ MOD18_0224486C: ; 0x0224486C mov r1, #1 add r2, r5, #0 str r3, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 mov r0, #6 str r1, [sp] @@ -23172,7 +23172,7 @@ MOD18_0224486C: ; 0x0224486C mov r1, #2 add r2, r5, #0 str r3, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #4 mov r1, #0 bl FUN_02054590 @@ -23195,7 +23195,7 @@ MOD18_0224486C: ; 0x0224486C mov r1, #0x34 add r3, #0xc0 str r2, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #1 bl FUN_0200E394 add sp, #0x64 @@ -26973,7 +26973,7 @@ _02246668: mov r1, #0x34 mov r2, #0 add r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #2 str r0, [sp] mov r0, #4 diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s index 91c756c6d..8f3a28ce2 100644 --- a/arm9/modules/19/asm/module_19.s +++ b/arm9/modules/19/asm/module_19.s @@ -42,7 +42,7 @@ MOD19_02252440: ; 0x02252440 mov r1, #0xa add r2, r4, #0 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -54,7 +54,7 @@ MOD19_02252440: ; 0x02252440 mov r1, #0xb add r2, r4, #0 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #8 @@ -63,7 +63,7 @@ MOD19_02252440: ; 0x02252440 add r1, r0, #0 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r2, _022524E0 ; =0x04001000 ldr r0, _022524EC ; =0xFFFF1FFF ldr r1, [r2] diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index 23481e5a5..a77f95fc4 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -1331,7 +1331,7 @@ MOD20_02252D44: ; 0x02252D44 mov r1, #0 add r2, sp, #0 mov r3, #7 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 beq _02252D7A ldr r0, [sp] @@ -1591,7 +1591,7 @@ MOD20_02252ED0: ; 0x02252ED0 ldr r2, [r4, r2] mov r1, #0xe mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1604,7 +1604,7 @@ MOD20_02252ED0: ; 0x02252ED0 ldr r2, [r4, r2] mov r1, #0xf mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r4, r0] @@ -1621,7 +1621,7 @@ MOD20_02252ED0: ; 0x02252ED0 mov r1, #0xd mov r2, #4 lsl r3, r3, #5 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r3, #0 str r3, [sp] mov r0, #0x20 @@ -2232,7 +2232,7 @@ MOD20_02253430: ; 0x02253430 str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0x60 str r0, [sp] mov r0, #7 @@ -2241,7 +2241,7 @@ MOD20_02253430: ; 0x02253430 mov r0, #0xc mov r2, #5 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r5, #0 mov r1, #0xf bl MOD20_022534D4 @@ -2994,7 +2994,7 @@ MOD20_022539C4: ; 0x022539C4 mov r0, #0x13 add r2, sp, #0 mov r3, #8 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 beq _02253A02 ldr r0, [sp] @@ -3805,12 +3805,12 @@ MOD20_02253FBC: ; 0x02253FBC str r4, [r5, #0x10] add r0, r6, #0 add r2, r4, #0 - bl FUN_02006C88 + bl GfGfxLoader_UncompressFromNarc str r0, [r5] add r0, r6, #0 add r1, r7, #0 add r2, r4, #0 - bl FUN_02006C88 + bl GfGfxLoader_UncompressFromNarc str r0, [r5, #4] ldr r0, [r5] cmp r0, #0 diff --git a/arm9/modules/21/src/mod21_02254A6C.c b/arm9/modules/21/src/mod21_02254A6C.c index 1dcbe4b8e..040ebdaa7 100644 --- a/arm9/modules/21/src/mod21_02254A6C.c +++ b/arm9/modules/21/src/mod21_02254A6C.c @@ -5,7 +5,7 @@ extern void MOD20_022536F4(u32 *param0, u32 param1); extern u32 MOD20_02252D34(void); -extern void *FUN_02006BDC(u32 param0, u32 param1, u32 param2, void *param3, u32 param4); +extern void *GfGfxLoader_GetScrnData(u32 param0, u32 param1, u32 param2, void *param3, u32 param4); extern void MOD20_022537E0(void *param0, u32 param1, void *param2, u32 param3, void *param4, u32 param5, u32 param6); UnkOverlayStruct1 const MOD21_02254DAC[] = { @@ -26,8 +26,8 @@ u8 const MOD21_02254D90[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x 0x00, 0x01, 0x00, 0x0E, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; extern void FUN_02016C18(u32 param0, u32 param1, void *param2, u32 param3); -extern void FUN_0200687C(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); -extern void FUN_020068C8(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); +extern void GfGfxLoader_LoadCharData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); +extern void GfGfxLoader_LoadScrnData(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern void MOD20_02252D7C(u32 param0, u32 param1); extern void FUN_02017CD0(u32 param0, u32 param1); extern void FUN_020178A0(u32 param0, u32 param1); @@ -45,7 +45,7 @@ THUMB_FUNC BOOL MOD21_02254A6C(UnkStruct02254A6C *param0, void *param1) MOD20_022536F4(strct->Unk08, 8); strct->Unk00 = param1; strct->Unk04 = MOD20_02252D34(); - void *res = FUN_02006BDC(12, 0x19, 1, &sp4, 8); + void *res = GfGfxLoader_GetScrnData(12, 0x19, 1, &sp4, 8); if (res == 0) { FreeToHeap(strct); @@ -105,8 +105,8 @@ THUMB_FUNC BOOL MOD21_02254B60(u32 param0, void *param1) #pragma unused (param0) UnkStruct02254A6C *strct = MOD20_022538A0(param1); FUN_02016C18(strct->Unk04, 6, MOD21_02254D90, 0); - FUN_0200687C(12, 23, strct->Unk04, 6, 0, 0, 1, 8); - FUN_020068C8(12, 24, strct->Unk04, 6, 0, 0, 1, 8); + GfGfxLoader_LoadCharData(12, 23, strct->Unk04, 6, 0, 0, 1, 8); + GfGfxLoader_LoadScrnData(12, 24, strct->Unk04, 6, 0, 0, 1, 8); MOD20_02252D7C(0, 0); MOD21_02254C5C(strct); FUN_02017CD0(strct->Unk04, 6); diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s index e58e406b6..bf11e9dbc 100644 --- a/arm9/modules/22/asm/module_22.s +++ b/arm9/modules/22/asm/module_22.s @@ -1164,7 +1164,7 @@ MOD22_02255098: ; 0x02255098 mov r0, #0xc mov r1, #0x15 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1176,7 +1176,7 @@ MOD22_02255098: ; 0x02255098 mov r0, #0xc mov r1, #0x14 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -1245,7 +1245,7 @@ MOD22_0225516C: ; 0x0225516C str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0 str r0, [sp] mov r2, #1 @@ -1256,7 +1256,7 @@ MOD22_0225516C: ; 0x0225516C mov r0, #0xc mov r1, #0x16 lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #1 add sp, #0xc pop {pc} diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index 5550c76b3..9f0520871 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -1165,7 +1165,7 @@ MOD23_02255088: ; 0x02255088 mov r0, #0xc mov r1, #0x10 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1177,7 +1177,7 @@ MOD23_02255088: ; 0x02255088 mov r0, #0xc mov r1, #0x11 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r5, #0 bl MOD23_02255124 mov r0, #0 diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index 16b8766a2..cdf4b770f 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -818,7 +818,7 @@ _02254E1E: mov r0, #0xc mov r1, #0x1e mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -830,7 +830,7 @@ _02254E1E: mov r0, #0xc mov r1, #0x1f mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -1110,7 +1110,7 @@ MOD24_02255078: ; 0x02255078 str r0, [sp, #8] mov r0, #0xc mov r1, #0x20 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s index 481c98c22..5e70bbbe5 100644 --- a/arm9/modules/25/asm/module_25.s +++ b/arm9/modules/25/asm/module_25.s @@ -440,7 +440,7 @@ MOD25_02254B34: ; 0x02254B34 mov r0, #0xc mov r1, #0x17 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -452,7 +452,7 @@ MOD25_02254B34: ; 0x02254B34 mov r0, #0xc mov r1, #0x1a mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -587,7 +587,7 @@ MOD25_02254C74: ; 0x02254C74 str r0, [sp, #8] mov r0, #0xc mov r1, #0x1d - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index 0bb87572a..25e4a4b6b 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -528,7 +528,7 @@ MOD27_02254C08: ; 0x02254C08 mov r0, #0xc mov r1, #0x6a mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 lsr r5, r0, #5 str r3, [sp] @@ -898,7 +898,7 @@ MOD27_02254F18: ; 0x02254F18 str r0, [sp, #8] mov r0, #0xc mov r1, #0x6d - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r4, #0 add r0, sp, #0x18 strb r4, [r0, #0xa] diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 3d1890e79..04176ba50 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -559,7 +559,7 @@ MOD28_02254C18: ; 0x02254C18 mov r0, #0xc mov r1, #7 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -623,7 +623,7 @@ MOD28_02254CB4: ; 0x02254CB4 mov r0, #0xc mov r1, #0x23 lsl r3, r0, #9 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0x13 mov r1, #8 bl NARC_ctor diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s index 723e84496..9fb45a658 100644 --- a/arm9/modules/29/asm/module_29.s +++ b/arm9/modules/29/asm/module_29.s @@ -539,7 +539,7 @@ MOD29_02254C08: ; 0x02254C08 str r0, [sp, #8] mov r0, #0xc mov r1, #0x2a - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette add r2, r6, #0 ldr r0, [r6, #0x30] ldr r1, _02254C7C ; =MOD29_022550C0 @@ -684,7 +684,7 @@ MOD29_02254D10: ; 0x02254D10 mov r0, #0xc mov r1, #0x27 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -696,7 +696,7 @@ MOD29_02254D10: ; 0x02254D10 mov r0, #0xc mov r1, #0x26 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s index aa55cd5b8..5daf123f2 100644 --- a/arm9/modules/30/asm/module_30.s +++ b/arm9/modules/30/asm/module_30.s @@ -376,7 +376,7 @@ MOD30_02254AE0: ; 0x02254AE0 str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0 str r0, [sp] mov r2, #1 @@ -387,7 +387,7 @@ MOD30_02254AE0: ; 0x02254AE0 mov r0, #0xc mov r1, #0x2f lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 @@ -548,7 +548,7 @@ MOD30_02254C18: ; 0x02254C18 mov r0, #0xc mov r1, #0x2c mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -560,7 +560,7 @@ MOD30_02254C18: ; 0x02254C18 mov r0, #0xc mov r1, #0x2b mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s index 7dcd4e3a7..5e45ce239 100644 --- a/arm9/modules/31/asm/module_31.s +++ b/arm9/modules/31/asm/module_31.s @@ -366,7 +366,7 @@ MOD31_02254AD4: ; 0x02254AD4 str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0 str r0, [sp] mov r2, #1 @@ -377,7 +377,7 @@ MOD31_02254AD4: ; 0x02254AD4 mov r0, #0xc mov r1, #0x34 lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 @@ -538,7 +538,7 @@ MOD31_02254C0C: ; 0x02254C0C mov r0, #0xc mov r1, #0x31 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -550,7 +550,7 @@ MOD31_02254C0C: ; 0x02254C0C mov r0, #0xc mov r1, #0x30 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s index 5b40a7378..c928dd1a3 100644 --- a/arm9/modules/32/asm/module_32.s +++ b/arm9/modules/32/asm/module_32.s @@ -349,7 +349,7 @@ MOD32_02254A9C: ; 0x02254A9C str r0, [sp, #8] mov r0, #0xc mov r1, #0x68 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 @@ -465,7 +465,7 @@ MOD32_02254B58: ; 0x02254B58 mov r0, #0xc mov r1, #0x65 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -477,7 +477,7 @@ MOD32_02254B58: ; 0x02254B58 mov r0, #0xc mov r1, #0x64 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s index 6db0efdf0..55ccf2032 100644 --- a/arm9/modules/33/asm/module_33.s +++ b/arm9/modules/33/asm/module_33.s @@ -313,7 +313,7 @@ MOD33_02254A38: ; 0x02254A38 ldr r2, [r5, #4] mov r0, #0xc mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -333,7 +333,7 @@ MOD33_02254A38: ; 0x02254A38 mov r1, #9 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r5, #4] mov r1, #0xc mov r2, #6 diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s index 841004188..ddc4f5871 100644 --- a/arm9/modules/34/asm/module_34.s +++ b/arm9/modules/34/asm/module_34.s @@ -407,7 +407,7 @@ MOD34_02254AE8: ; 0x02254AE8 mov r0, #0xc mov r1, #0x3b mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -419,7 +419,7 @@ MOD34_02254AE8: ; 0x02254AE8 mov r0, #0xc mov r1, #0x3a mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s index 45cab8d3e..f73ad3ff2 100644 --- a/arm9/modules/35/asm/module_35.s +++ b/arm9/modules/35/asm/module_35.s @@ -431,7 +431,7 @@ MOD35_02254B54: ; 0x02254B54 str r0, [sp, #8] mov r0, #0xc mov r1, #0x54 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r1, #0x14 bl _u32_div_f ldr r1, [sp, #0xc] @@ -609,7 +609,7 @@ MOD35_02254C98: ; 0x02254C98 mov r0, #0xc mov r1, #0x51 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -621,7 +621,7 @@ MOD35_02254C98: ; 0x02254C98 mov r0, #0xc mov r1, #0x50 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s index b0353507d..0149e180a 100644 --- a/arm9/modules/36/asm/module_36.s +++ b/arm9/modules/36/asm/module_36.s @@ -868,7 +868,7 @@ MOD36_02254E8C: ; 0x02254E8C str r0, [sp, #8] mov r0, #0xc mov r1, #0x59 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 @@ -1016,7 +1016,7 @@ _02254F9E: mov r0, #0xc mov r1, #0x56 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r6, r0, #0 mov r0, #0 str r0, [sp] @@ -1029,7 +1029,7 @@ _02254F9E: mov r0, #0xc mov r1, #0x55 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s index 3c7f412c7..c2f1439ab 100644 --- a/arm9/modules/37/asm/module_37.s +++ b/arm9/modules/37/asm/module_37.s @@ -341,7 +341,7 @@ MOD37_02254AA0: ; 0x02254AA0 str r0, [sp, #8] mov r0, #0xc mov r1, #0x39 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r4, #0 @@ -471,7 +471,7 @@ MOD37_02254B70: ; 0x02254B70 mov r0, #0xc mov r1, #0x36 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -483,7 +483,7 @@ MOD37_02254B70: ; 0x02254B70 mov r0, #0xc mov r1, #0x35 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s index 89e7ff797..ee5980ec9 100644 --- a/arm9/modules/38/asm/module_38.s +++ b/arm9/modules/38/asm/module_38.s @@ -559,7 +559,7 @@ MOD38_02254C38: ; 0x02254C38 str r0, [sp, #8] mov r0, #0xc mov r1, #0x40 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r6, #0 @@ -753,7 +753,7 @@ MOD38_02254D84: ; 0x02254D84 mov r0, #0xc mov r1, #0x3d mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r4, r0, #0 mov r0, #0 str r0, [sp] @@ -766,7 +766,7 @@ MOD38_02254D84: ; 0x02254D84 mov r0, #0xc mov r1, #0x3c mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s index a850e16ab..da3f83f4e 100644 --- a/arm9/modules/39/asm/module_39.s +++ b/arm9/modules/39/asm/module_39.s @@ -586,7 +586,7 @@ MOD39_02254C6C: ; 0x02254C6C str r0, [sp, #8] mov r0, #0xc mov r1, #0x4a - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r1, #0x14 bl _u32_div_f ldr r1, [sp, #0xc] @@ -800,7 +800,7 @@ MOD39_02254DF4: ; 0x02254DF4 mov r0, #0xc mov r1, #0x47 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -812,7 +812,7 @@ MOD39_02254DF4: ; 0x02254DF4 mov r0, #0xc mov r1, #0x46 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s index 713e9ec7d..13c9a94fe 100644 --- a/arm9/modules/40/asm/module_40.s +++ b/arm9/modules/40/asm/module_40.s @@ -759,7 +759,7 @@ MOD40_02254DBC: ; 0x02254DBC str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0 str r0, [sp] mov r2, #1 @@ -770,7 +770,7 @@ MOD40_02254DBC: ; 0x02254DBC mov r0, #0xc mov r1, #0x4f lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 @@ -1050,7 +1050,7 @@ MOD40_02254FE8: ; 0x02254FE8 mov r0, #0xc mov r1, #0x4c mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1062,7 +1062,7 @@ MOD40_02254FE8: ; 0x02254FE8 mov r0, #0xc mov r1, #0x4b mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s index 637c100f7..4d1afb065 100644 --- a/arm9/modules/41/asm/module_41.s +++ b/arm9/modules/41/asm/module_41.s @@ -1382,7 +1382,7 @@ MOD41_022552A0: ; 0x022552A0 str r0, [sp, #8] mov r0, #0xc mov r1, #2 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #0 str r0, [sp] mov r2, #1 @@ -1393,7 +1393,7 @@ MOD41_022552A0: ; 0x022552A0 mov r0, #0xc mov r1, #0x5e lsl r3, r3, #8 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r7, #0 @@ -1573,7 +1573,7 @@ MOD41_022553F4: ; 0x022553F4 mov r0, #0xc mov r1, #0x5b mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1585,7 +1585,7 @@ MOD41_022553F4: ; 0x022553F4 mov r0, #0xc mov r1, #0x5a mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s index 5bbfa2baf..031365701 100644 --- a/arm9/modules/42/asm/module_42.s +++ b/arm9/modules/42/asm/module_42.s @@ -659,7 +659,7 @@ MOD42_02254D04: ; 0x02254D04 str r0, [sp, #8] mov r0, #0xc mov r1, #0x78 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 @@ -965,7 +965,7 @@ MOD42_02254F3C: ; 0x02254F3C mov r0, #0xc mov r1, #0x75 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -977,7 +977,7 @@ MOD42_02254F3C: ; 0x02254F3C mov r0, #0xc mov r1, #0x73 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s index fd20dc175..ce3da4bbd 100644 --- a/arm9/modules/43/asm/module_43.s +++ b/arm9/modules/43/asm/module_43.s @@ -573,7 +573,7 @@ MOD43_02254C28: ; 0x02254C28 mov r0, #0xc mov r1, #0x75 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r4, r0, #0 mov r0, #0 str r0, [sp] @@ -586,7 +586,7 @@ MOD43_02254C28: ; 0x02254C28 mov r0, #0xc mov r1, #0x74 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -843,7 +843,7 @@ MOD43_02254E78: ; 0x02254E78 str r0, [sp, #8] mov r0, #0xc mov r1, #0x78 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] mov r0, #0x4e diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s index bf007af40..19726565d 100644 --- a/arm9/modules/44/asm/module_44.s +++ b/arm9/modules/44/asm/module_44.s @@ -334,7 +334,7 @@ MOD44_02254A90: ; 0x02254A90 str r0, [sp, #8] mov r0, #0xc mov r1, #0x45 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 @@ -468,7 +468,7 @@ MOD44_02254B64: ; 0x02254B64 mov r0, #0xc mov r1, #0x42 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -480,7 +480,7 @@ MOD44_02254B64: ; 0x02254B64 mov r0, #0xc mov r1, #0x41 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s index d8d9bf360..95cf3fbce 100644 --- a/arm9/modules/45/asm/module_45.s +++ b/arm9/modules/45/asm/module_45.s @@ -505,7 +505,7 @@ MOD45_02254BE0: ; 0x02254BE0 str r0, [sp, #8] mov r0, #0xc mov r1, #0x72 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r5, #0 @@ -660,7 +660,7 @@ MOD45_02254CCC: ; 0x02254CCC mov r0, #0xc mov r1, #0x6f mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -766,7 +766,7 @@ MOD45_02254DDC: ; 0x02254DDC mov r0, #0xc mov r1, #0x6e mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r6, #4] mov r4, #0 cmp r0, #0 diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/module_46.s index 9e4c3dc54..66418468b 100644 --- a/arm9/modules/46/asm/module_46.s +++ b/arm9/modules/46/asm/module_46.s @@ -313,7 +313,7 @@ MOD46_02254A38: ; 0x02254A38 ldr r2, [r5, #4] mov r0, #0xc mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -333,7 +333,7 @@ MOD46_02254A38: ; 0x02254A38 mov r1, #9 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r5, #4] mov r1, #0x1a mov r2, #6 diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s index 3ec4768c3..3cd1bb322 100644 --- a/arm9/modules/47/asm/module_47.s +++ b/arm9/modules/47/asm/module_47.s @@ -749,7 +749,7 @@ MOD47_02254D8C: ; 0x02254D8C str r0, [sp, #8] mov r0, #0xc mov r1, #0x63 - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette mov r0, #8 str r0, [sp] add r0, r6, #0 @@ -889,7 +889,7 @@ MOD47_02254E74: ; 0x02254E74 mov r0, #0xc mov r1, #0x60 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r4, r0, #0 mov r0, #0 str r0, [sp] @@ -902,7 +902,7 @@ MOD47_02254E74: ; 0x02254E74 mov r0, #0xc mov r1, #0x5f mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C diff --git a/arm9/modules/48/asm/module_48.s b/arm9/modules/48/asm/module_48.s index ed66d7531..8dfd4e0a7 100644 --- a/arm9/modules/48/asm/module_48.s +++ b/arm9/modules/48/asm/module_48.s @@ -438,7 +438,7 @@ MOD48_02254B30: ; 0x02254B30 mov r0, #0xc mov r1, #0x7a mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -450,7 +450,7 @@ MOD48_02254B30: ; 0x02254B30 mov r0, #0xc mov r1, #0x79 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl MOD20_02252D7C @@ -679,7 +679,7 @@ MOD48_02254D2C: ; 0x02254D2C str r0, [sp, #8] mov r0, #0xc mov r1, #0x7d - bl FUN_02006A34 + bl GfGfxLoader_LoadWholePalette add r1, r4, #0 lsr r0, r0, #5 add r1, #0xac diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/module_50.s index f91ae9774..5d80d9b61 100644 --- a/arm9/modules/50/asm/module_50.s +++ b/arm9/modules/50/asm/module_50.s @@ -322,7 +322,7 @@ MOD50_02254A48: ; 0x02254A48 ldr r2, [r5, #4] mov r0, #0xc mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -342,7 +342,7 @@ MOD50_02254A48: ; 0x02254A48 mov r1, #9 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r1, [r5] ldr r0, [r5, #4] ldr r1, [r1] diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s index aa0549bdc..4642f8c1b 100644 --- a/arm9/modules/51/asm/module_51.s +++ b/arm9/modules/51/asm/module_51.s @@ -120,7 +120,7 @@ MOD51_022548F0: ; 0x022548F0 mov r1, #3 mov r2, #1 add r3, #0x24 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r4, #0x20] add sp, #4 pop {r3, r4, pc} @@ -477,7 +477,7 @@ MOD51_02254B54: ; 0x02254B54 mov r0, #0x4a add r3, r1, #0 str r2, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -491,7 +491,7 @@ MOD51_02254B54: ; 0x02254B54 mov r1, #2 add r2, r4, #0 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -504,7 +504,7 @@ MOD51_02254B54: ; 0x02254B54 add r2, r4, #0 mov r3, #7 str r1, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #4 mov r1, #0 bl FUN_02054590 diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s index 1866a427a..d070f9799 100644 --- a/arm9/modules/53/asm/module_53.s +++ b/arm9/modules/53/asm/module_53.s @@ -768,7 +768,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r0, #0x4e add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x40 str r0, [sp] mov r0, #0x27 @@ -777,7 +777,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r1, #1 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -801,7 +801,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r0, #0x4e add r2, r4, #0 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -815,7 +815,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r1, #4 add r2, r4, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #2 @@ -829,7 +829,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r1, #3 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -843,7 +843,7 @@ MOD53_021D7B60: ; 0x021D7B60 mov r0, #0x4e add r2, r4, #0 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #8] ldr r0, [r0, #8] bl Options_GetFrame diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s index 422330026..b11b96cf7 100644 --- a/arm9/modules/54/asm/module_54.s +++ b/arm9/modules/54/asm/module_54.s @@ -612,7 +612,7 @@ _021D79A6: mov r1, #1 add r2, #0x1c mov r3, #0x33 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r7, #0x18] mov r1, #0x32 ldr r0, _021D7A30 ; =0x00004A44 @@ -694,7 +694,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 mov r0, #0x56 add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #0x33 @@ -703,7 +703,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 add r1, r0, #0 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -725,7 +725,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 mov r1, #0xa add r2, r4, #0 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -737,7 +737,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 mov r1, #0xb add r2, r4, #0 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #2 @@ -750,7 +750,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 mov r0, #0x56 mov r1, #2 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -763,7 +763,7 @@ MOD54_021D7AA0: ; 0x021D7AA0 mov r0, #0x56 mov r1, #3 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #8] ldr r0, [r0, #8] bl Options_GetFrame @@ -3240,7 +3240,7 @@ MOD54_021D8E64: ; 0x021D8E64 mov r1, #8 add r2, r4, r2 mov r3, #0x33 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData mov r2, #0xcd lsl r2, r2, #2 str r0, [r4, r2] @@ -3249,7 +3249,7 @@ MOD54_021D8E64: ; 0x021D8E64 mov r1, #7 add r2, r4, r2 mov r3, #0x33 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData mov r3, #0xce lsl r3, r3, #2 str r0, [r4, r3] @@ -3260,7 +3260,7 @@ MOD54_021D8E64: ; 0x021D8E64 mov r1, #0x20 mov r2, #1 add r3, r4, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r1, #0xc9 lsl r1, r1, #2 str r0, [r4, r1] @@ -3271,7 +3271,7 @@ MOD54_021D8E64: ; 0x021D8E64 mov r1, #9 mov r2, #1 add r3, r4, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r1, #0xca lsl r1, r1, #2 str r0, [r4, r1] diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s index d9a9cad6a..b9f3c277d 100644 --- a/arm9/modules/55/asm/module_55.s +++ b/arm9/modules/55/asm/module_55.s @@ -726,7 +726,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r0, #0x59 mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r3, #0 str r3, [sp] mov r0, #0x34 @@ -734,7 +734,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r0, #0x59 mov r1, #3 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -762,7 +762,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r0, #0x59 mov r1, #2 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -772,7 +772,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r0, #0x59 mov r1, #8 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -783,7 +783,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r0, #0x59 mov r1, #4 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -794,7 +794,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r1, #0xa add r2, r4, #0 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -805,7 +805,7 @@ MOD55_021D7AE0: ; 0x021D7AE0 mov r1, #0xb add r2, r4, #0 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #8] bl Sav2_PlayerData_GetOptionsAddr bl Options_GetFrame @@ -2723,7 +2723,7 @@ MOD55_021D8A7C: ; 0x021D8A7C ldr r2, [r5, #4] mov r0, #0x59 mov r1, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -2733,7 +2733,7 @@ MOD55_021D8A7C: ; 0x021D8A7C ldr r2, [r5, #4] mov r0, #0x59 mov r1, #8 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2744,7 +2744,7 @@ MOD55_021D8A7C: ; 0x021D8A7C mov r0, #0x59 mov r1, #5 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 @@ -3573,7 +3573,7 @@ MOD55_021D9184: ; 0x021D9184 mov r0, #0x59 mov r1, #7 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xe6 lsl r0, r0, #2 add r0, r5, r0 @@ -4110,7 +4110,7 @@ _021D9618: mov r0, #0x59 mov r1, #2 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4121,7 +4121,7 @@ _021D9618: mov r0, #0x59 mov r1, #8 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4132,7 +4132,7 @@ _021D9618: mov r0, #0x59 mov r1, #6 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xe6 lsl r0, r0, #2 add r0, r4, r0 @@ -4910,7 +4910,7 @@ _021D9D16: mov r0, #0x59 mov r1, #0xa mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4921,7 +4921,7 @@ _021D9D16: mov r0, #0x59 mov r1, #0xb mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #3 str r0, [sp] mov r1, #1 @@ -4961,7 +4961,7 @@ MOD55_021D9D88: ; 0x021D9D88 ldr r2, [r6, #4] mov r0, #0x59 mov r1, #8 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4972,7 +4972,7 @@ MOD55_021D9D88: ; 0x021D9D88 mov r0, #0x59 mov r1, #4 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r7, #0x29 mov r4, #0 add r5, r6, #0 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s index e9abf575a..531194c62 100644 --- a/arm9/modules/56/asm/module_56.s +++ b/arm9/modules/56/asm/module_56.s @@ -950,7 +950,7 @@ MOD56_0221257C: ; 0x0221257C mov r0, #0x5c mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r3, #0 str r3, [sp] mov r0, #0x36 @@ -958,7 +958,7 @@ MOD56_0221257C: ; 0x0221257C mov r0, #0x5c mov r1, #3 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -978,7 +978,7 @@ MOD56_0221257C: ; 0x0221257C mov r0, #0x5c mov r1, #2 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -988,7 +988,7 @@ MOD56_0221257C: ; 0x0221257C mov r0, #0x5c mov r1, #4 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -999,7 +999,7 @@ MOD56_0221257C: ; 0x0221257C mov r1, #9 add r2, r4, #0 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1010,7 +1010,7 @@ MOD56_0221257C: ; 0x0221257C mov r1, #0xa add r2, r4, #0 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r5, #0xc4 ldr r0, [r5] bl Sav2_PlayerData_GetOptionsAddr @@ -2464,7 +2464,7 @@ MOD56_02213194: ; 0x02213194 ldr r2, [r2] mov r0, #0x5c mov r1, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r6, #0 add r0, #0xb0 ldr r0, [r0] @@ -3644,7 +3644,7 @@ MOD56_02213A94: ; 0x02213A94 ldr r2, [r2] mov r0, #0x5c mov r1, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 @@ -6929,7 +6929,7 @@ MOD56_0221547C: ; 0x0221547C ldr r2, [r2] mov r0, #0x5c mov r1, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xf3 mov r1, #0 lsl r0, r0, #2 @@ -6964,7 +6964,7 @@ MOD56_022154BC: ; 0x022154BC mov r0, #0x5c mov r1, #6 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xcb lsl r0, r0, #2 ldr r0, [r5, r0] @@ -7564,7 +7564,7 @@ MOD56_022159B0: ; 0x022159B0 ldr r2, [r2] mov r0, #0x5c mov r1, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s index 38bd1306b..481488f89 100644 --- a/arm9/modules/57/asm/module_57.s +++ b/arm9/modules/57/asm/module_57.s @@ -667,7 +667,7 @@ _021D7A56: mov r1, #0 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7A66: @@ -675,7 +675,7 @@ _021D7A66: mov r1, #1 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7A76: @@ -683,7 +683,7 @@ _021D7A76: mov r1, #2 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7A86: @@ -691,7 +691,7 @@ _021D7A86: mov r1, #3 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7A96: @@ -699,7 +699,7 @@ _021D7A96: mov r1, #4 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7AA6: @@ -707,7 +707,7 @@ _021D7AA6: mov r1, #5 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7AC4 _021D7AB6: @@ -715,7 +715,7 @@ _021D7AB6: mov r1, #6 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 _021D7AC4: ldr r0, [sp] @@ -754,7 +754,7 @@ _021D7B02: mov r1, #7 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7B30 _021D7B12: @@ -762,7 +762,7 @@ _021D7B12: mov r1, #8 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 b _021D7B30 _021D7B22: @@ -770,7 +770,7 @@ _021D7B22: mov r1, #9 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 _021D7B30: ldr r0, [sp] @@ -802,7 +802,7 @@ MOD57_021D7B5C: ; 0x021D7B5C mov r1, #0x29 add r2, sp, #0 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r6, r0, #0 ldr r0, [sp] lsl r4, r4, #5 @@ -952,7 +952,7 @@ MOD57_021D7CA4: ; 0x021D7CA4 mov r1, #0 add r2, sp, #0x14 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r5, r0, #0 ldr r0, [sp, #0x14] mov r1, #2 @@ -979,7 +979,7 @@ MOD57_021D7CA4: ; 0x021D7CA4 mov r1, #0xa add r2, sp, #0x10 mov r3, #0x19 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r5, r0, #0 ldr r0, [sp, #0x10] mov r1, #2 @@ -1010,7 +1010,7 @@ MOD57_021D7CA4: ; 0x021D7CA4 mov r1, #0x1b mov r3, #0x19 str r2, [sp] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc ldr r1, _021D7ECC ; =0x000030B8 str r0, [r4, r1] ldr r0, [r4, r1] @@ -1041,7 +1041,7 @@ _021D7D60: mov r1, #0x23 mov r2, #0 add r3, r4, r3 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r1, _021D7ED4 ; =0x000032F8 str r0, [r4, r1] b _021D7DF2 @@ -1052,7 +1052,7 @@ _021D7D86: mov r1, #0x24 mov r2, #0 add r3, r4, r3 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r1, _021D7ED4 ; =0x000032F8 str r0, [r4, r1] b _021D7DF2 @@ -1064,7 +1064,7 @@ _021D7D9C: mov r0, #0x33 mov r3, #0x19 str r2, [sp] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc ldr r1, _021D7ECC ; =0x000030B8 str r0, [r4, r1] ldr r0, [r4, r1] @@ -1088,7 +1088,7 @@ _021D7DD0: mov r1, #0x2a mov r2, #0 add r3, r4, r3 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r1, _021D7ED4 ; =0x000032F8 str r0, [r4, r1] add r0, r4, #0 @@ -1109,7 +1109,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x17 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1120,7 +1120,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x1e mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1131,7 +1131,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x18 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1142,7 +1142,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x20 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1152,7 +1152,7 @@ _021D7DF2: ldr r2, [r4] mov r0, #0x33 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1163,7 +1163,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x21 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1174,7 +1174,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x1a mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1185,7 +1185,7 @@ _021D7DF2: mov r0, #0x33 mov r1, #0x22 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 add r0, #0xb4 ldr r0, [r0] @@ -1327,7 +1327,7 @@ _021D7FB0: mov r0, #0x33 mov r1, #0x1f mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #4 add r1, r5, #0 mov r2, #6 @@ -1359,7 +1359,7 @@ _021D8006: mov r0, #0x33 mov r1, #0x1e mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #4 mov r1, #7 mov r2, #0xa diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s index 501480eb9..eb13ddb7a 100644 --- a/arm9/modules/58/asm/module_58.s +++ b/arm9/modules/58/asm/module_58.s @@ -580,7 +580,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r0, #0x5f add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x40 str r0, [sp] mov r0, #0x27 @@ -589,7 +589,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #2 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -618,7 +618,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #3 add r2, r4, #0 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -632,7 +632,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #5 add r2, r4, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #2 @@ -646,7 +646,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #4 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -660,7 +660,7 @@ MOD58_021D9F14: ; 0x021D9F14 mov r1, #6 add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0xc] bl Options_GetFrame lsl r0, r0, #0x18 diff --git a/arm9/modules/59/asm/mod59_021D74E0_asm.s b/arm9/modules/59/asm/mod59_021D74E0_asm.s index a928881a3..5604bf3c7 100644 --- a/arm9/modules/59/asm/mod59_021D74E0_asm.s +++ b/arm9/modules/59/asm/mod59_021D74E0_asm.s @@ -1367,7 +1367,7 @@ MOD59_021D8058: ; 0x021D8058 str r0, [sp, #0xc] ldr r2, [r5, #0x18] mov r0, #0x7d - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 ldr r3, [r5] mov r1, #0x20 @@ -1383,7 +1383,7 @@ MOD59_021D8058: ; 0x021D8058 ldr r2, [r5, #0x18] mov r0, #0x7d mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, _021D80F8 ; =gGameVersion ldrb r0, [r0] cmp r0, #0xa @@ -1402,7 +1402,7 @@ _021D80AA: str r0, [sp, #4] mov r0, #0x7d add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0xa0 str r0, [sp] ldr r0, [r5] @@ -1411,7 +1411,7 @@ _021D80AA: mov r0, #0x7d mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r5, #0 bl MOD59_021D80FC add r0, r5, #0 @@ -1460,7 +1460,7 @@ MOD59_021D80FC: ; 0x021D80FC ldr r2, [r3, #0x18] mov r0, #0x7d mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _021D8138: add sp, #0x24 pop {r4, r5, pc} @@ -1500,7 +1500,7 @@ _021D814C: ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] ldr r0, [r4] @@ -1514,7 +1514,7 @@ _021D814C: add r1, sp, #0x14 ldr r1, [r1, r2] mov r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1525,7 +1525,7 @@ _021D814C: ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 mov r1, #1 mov r2, #7 @@ -1550,7 +1550,7 @@ _021D81BE: ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] ldr r0, [r4] @@ -1565,7 +1565,7 @@ _021D81BE: ldr r1, [r1, r2] mov r2, #0 add r3, #0x83 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1576,7 +1576,7 @@ _021D81BE: ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 mov r1, #2 mov r2, #8 @@ -1618,7 +1618,7 @@ MOD59_021D8234: ; 0x021D8234 ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 add r0, #0x8b ldrb r0, [r0] @@ -1813,7 +1813,7 @@ MOD59_021D83F8: ; 0x021D83F8 ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r4, #0 mov r1, #6 mov r2, #9 @@ -1826,7 +1826,7 @@ MOD59_021D83F8: ; 0x021D83F8 mov r0, #0x7d mov r2, #4 mov r3, #0xe0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r3, [r4] mov r0, #6 mov r1, #0x20 @@ -1843,7 +1843,7 @@ MOD59_021D83F8: ; 0x021D83F8 ldr r2, [r4, #0x18] mov r0, #0x7d mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2007,7 +2007,7 @@ _021D8546: lsl r1, r1, #2 ldr r1, [r2, r1] ldr r2, [r4, #0x18] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x30 pop {r3, r4, r5, pc} _021D858E: @@ -2070,7 +2070,7 @@ _021D85C2: lsl r1, r1, #2 ldr r1, [r2, r1] ldr r2, [r4, #0x18] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x30 pop {r3, r4, r5, pc} nop @@ -2167,7 +2167,7 @@ _021D8698: ldr r2, [r3, #0x18] mov r0, #0x7d mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData _021D86AE: add r0, r4, #0 add sp, #0x40 @@ -3374,7 +3374,7 @@ _021D90A2: str r0, [sp, #0xc] ldr r2, [r4, #0x18] mov r0, #0x7d - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add r0, r4, #0 add r0, #0x94 ldr r0, [r0] diff --git a/arm9/modules/59/asm/mod59_021D9868.s b/arm9/modules/59/asm/mod59_021D9868.s index 370d58b1f..2925c4040 100644 --- a/arm9/modules/59/asm/mod59_021D9868.s +++ b/arm9/modules/59/asm/mod59_021D9868.s @@ -289,7 +289,7 @@ _021D9A2C: str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x88 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -299,7 +299,7 @@ _021D9A2C: str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x88 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r5, _021D9BC4 ; =0x021DA064 add r3, sp, #0x2c ldmia r5!, {r0, r1} @@ -325,7 +325,7 @@ _021D9A2C: ldr r2, [r4, #4] mov r0, #0x88 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -336,7 +336,7 @@ _021D9A2C: ldr r2, [r4, #4] mov r0, #0x88 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r5, _021D9BC8 ; =0x021DA0B8 add r3, sp, #0x10 ldmia r5!, {r0, r1} @@ -361,7 +361,7 @@ _021D9A2C: str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x88 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -372,7 +372,7 @@ _021D9A2C: ldr r2, [r4, #4] mov r0, #0x88 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] ldr r0, [r4] @@ -380,7 +380,7 @@ _021D9A2C: str r0, [sp, #4] mov r0, #0x88 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r2, [r4] mov r0, #0 mov r1, #0x20 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s index e697563fc..26b7d4864 100644 --- a/arm9/modules/62/asm/module_62.s +++ b/arm9/modules/62/asm/module_62.s @@ -3801,7 +3801,7 @@ MOD62_0222F2C8: ; 0x0222F2C8 ldr r2, [r2] add r1, #0xb1 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3816,7 +3816,7 @@ MOD62_0222F2C8: ; 0x0222F2C8 ldr r2, [r2] add r1, #0xc1 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 str r1, [sp] mov r0, #0x40 @@ -3844,7 +3844,7 @@ MOD62_0222F2C8: ; 0x0222F2C8 ldr r2, [r2] add r1, #0xb2 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3858,7 +3858,7 @@ MOD62_0222F2C8: ; 0x0222F2C8 ldr r2, [r4] add r1, #0xc2 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r4, pc} thumb_func_end MOD62_0222F2C8 @@ -3882,7 +3882,7 @@ MOD62_0222F36C: ; 0x0222F36C ldr r2, [r2] add r1, #0xb0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3897,7 +3897,7 @@ MOD62_0222F36C: ; 0x0222F36C ldr r2, [r2] add r1, #0xc0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 str r0, [sp] mov r0, #0x40 @@ -3935,7 +3935,7 @@ MOD62_0222F3D4: ; 0x0222F3D4 ldr r2, [r2] add r1, #0xb0 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3950,7 +3950,7 @@ MOD62_0222F3D4: ; 0x0222F3D4 ldr r2, [r2] add r1, #0xbf mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 str r0, [sp] mov r0, #0x40 diff --git a/arm9/modules/63/asm/mod63_021D74E0.s b/arm9/modules/63/asm/mod63_021D74E0.s index ab30c4e02..ea96bf3b4 100644 --- a/arm9/modules/63/asm/mod63_021D74E0.s +++ b/arm9/modules/63/asm/mod63_021D74E0.s @@ -1880,7 +1880,7 @@ MOD63_021D83A8: ; 0x021D83A8 add r2, r5, #0 add r3, r1, #0 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1890,7 +1890,7 @@ MOD63_021D83A8: ; 0x021D83A8 add r2, r5, #0 mov r3, #3 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1900,7 +1900,7 @@ MOD63_021D83A8: ; 0x021D83A8 add r2, r5, #0 mov r3, #7 str r4, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1910,7 +1910,7 @@ MOD63_021D83A8: ; 0x021D83A8 add r2, r5, #0 mov r3, #3 str r4, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, _021D85C8 ; =gGameVersion ldrb r7, [r0] cmp r7, #0xa ; VERSION_DIAMOND @@ -1929,14 +1929,14 @@ _021D8420: mov r0, #0x30 mov r2, #4 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r2, #0 str r2, [sp] ldr r1, [sp, #0x18] mov r0, #0x30 add r3, r2, #0 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal cmp r7, #0xa bne _021D8448 mov r1, #1 @@ -1954,7 +1954,7 @@ _021D844C: add r2, r5, #0 mov r3, #6 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r3, #1 @@ -1963,7 +1963,7 @@ _021D844C: mov r2, #6 lsl r3, r3, #0xe str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -1972,7 +1972,7 @@ _021D844C: add r2, r5, #0 mov r3, #6 str r4, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1982,7 +1982,7 @@ _021D844C: add r2, r5, #0 mov r3, #5 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r1, #0x10 @@ -1990,7 +1990,7 @@ _021D844C: mov r2, #6 lsl r3, r1, #9 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2000,7 +2000,7 @@ _021D844C: add r2, r5, #0 mov r3, #5 str r4, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2010,7 +2010,7 @@ _021D844C: add r2, r5, #0 mov r3, #1 str r4, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2020,7 +2020,7 @@ _021D844C: add r2, r5, #0 mov r3, #1 str r4, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x60 str r0, [sp] mov r0, #0x30 @@ -2028,7 +2028,7 @@ _021D844C: mov r2, #0 mov r3, #0x20 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 @@ -2150,7 +2150,7 @@ _021D85FE: add r2, r7, #0 mov r3, #5 str r5, [sp, #0xc] - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #0x80 @@ -2158,7 +2158,7 @@ _021D85FE: mov r2, #6 lsl r3, r0, #6 str r5, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2168,7 +2168,7 @@ _021D85FE: add r2, r7, #0 mov r3, #5 str r5, [sp, #0xc] - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _021D863A: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} diff --git a/arm9/modules/63/asm/mod63_021D8890.s b/arm9/modules/63/asm/mod63_021D8890.s index db8325312..6f6f8f753 100644 --- a/arm9/modules/63/asm/mod63_021D8890.s +++ b/arm9/modules/63/asm/mod63_021D8890.s @@ -849,7 +849,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x13 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -860,7 +860,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x13 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -871,7 +871,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x14 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -882,7 +882,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x15 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x4c @@ -890,7 +890,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x12 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r3, #0 str r3, [sp] mov r0, #0x4c @@ -898,7 +898,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x12 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -909,7 +909,7 @@ MOD63_021D8F38: ; 0x021D8F38 ldr r2, [r4, #0xc] mov r0, #0x80 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -920,7 +920,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #2 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 mov r0, #0x20 str r0, [sp] @@ -929,7 +929,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -940,7 +940,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x16 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -951,7 +951,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x16 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -962,7 +962,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x48 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -973,7 +973,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r0, #0x80 mov r1, #0x49 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x4c @@ -982,7 +982,7 @@ MOD63_021D8F38: ; 0x021D8F38 mov r1, #0x47 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #4 mov r1, #0 bl GX_EngineAToggleLayers @@ -1794,7 +1794,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x1c mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1805,7 +1805,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x1a mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 str r1, [sp] ldr r0, [r5, #0x2c] @@ -1822,7 +1822,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x11 mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1833,7 +1833,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0xf mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #1 lsl r0, r0, #8 str r0, [sp] @@ -1843,7 +1843,7 @@ _021D96F8: mov r1, #0x10 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1854,7 +1854,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x1b mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1865,7 +1865,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x19 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1876,7 +1876,7 @@ _021D96F8: mov r0, #0x80 mov r1, #0x18 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #0x10] bl MOD63_021DA6E8 ldr r0, [r5, #0x10] @@ -3072,7 +3072,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x36 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3083,7 +3083,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x3b mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3094,7 +3094,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x38 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3105,7 +3105,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x3d mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3116,7 +3116,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x39 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3127,7 +3127,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x3e mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -3137,7 +3137,7 @@ _021DA192: ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3a - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] str r3, [sp, #4] @@ -3147,7 +3147,7 @@ _021DA192: ldr r2, [r4, #0xc] mov r0, #0x80 mov r1, #0x3f - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3158,7 +3158,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x37 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3169,7 +3169,7 @@ _021DA192: mov r0, #0x80 mov r1, #0x3c mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0xe mov r1, #1 bl GX_EngineAToggleLayers diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s index 16c3724be..7a70bf1f9 100644 --- a/arm9/modules/64/asm/module_64.s +++ b/arm9/modules/64/asm/module_64.s @@ -704,7 +704,7 @@ MOD64_021D7A54: ; 0x021D7A54 mov r2, #0 mov r3, #0x40 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r5, #0x98 mov r1, #0 mov r2, #2 @@ -1057,7 +1057,7 @@ MOD64_021D7D7C: ; 0x021D7D7C add r4, r0, #0 str r2, [sp] mov r0, #0x52 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x54] bl NNS_G3dGetMdlSet str r0, [r4, #0x58] @@ -1091,7 +1091,7 @@ MOD64_021D7DC0: ; 0x021D7DC0 str r2, [sp] mov r0, #0x52 add r3, r6, #0 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, #0x64] mov r1, #0 bl NNS_G3dGetAnmByIdx @@ -2920,14 +2920,14 @@ MOD64_021D8B70: ; 0x021D8B70 mov r2, #0 add r3, #0x14 str r6, [sp] - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r2, r5, #0 str r0, [r5, #0xc] mov r0, #0x52 mov r1, #0xf add r2, #0x18 add r3, r6, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r5, #0x10] ldr r0, _021D8C04 ; =0x0000064C ldr r0, [r4, r0] @@ -3386,7 +3386,7 @@ MOD64_021D8EF4: ; 0x021D8EF4 mov r1, #0x11 mov r2, #0 mov r3, #0xa0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r5, [sp, #0x14] mov r4, #0 mov r6, #1 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s index f67a18179..60bd02b59 100644 --- a/arm9/modules/67/asm/module_67.s +++ b/arm9/modules/67/asm/module_67.s @@ -351,7 +351,7 @@ MOD67_021D77B0: ; 0x021D77B0 ldr r2, [r4] mov r0, #0x50 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -361,7 +361,7 @@ MOD67_021D77B0: ; 0x021D77B0 ldr r2, [r4] mov r0, #0x50 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x2a @@ -369,7 +369,7 @@ MOD67_021D77B0: ; 0x021D77B0 mov r0, #0x50 mov r1, #4 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal b _021D7844 _021D7802: mov r0, #0 @@ -382,7 +382,7 @@ _021D7802: mov r0, #0x50 mov r1, #3 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -393,7 +393,7 @@ _021D7802: mov r0, #0x50 mov r1, #1 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x2a @@ -401,7 +401,7 @@ _021D7802: mov r0, #0x50 mov r1, #5 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal _021D7844: ldr r0, [r4] mov r1, #2 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s index ebb66d25e..b21704445 100644 --- a/arm9/modules/68/asm/module_68.s +++ b/arm9/modules/68/asm/module_68.s @@ -340,7 +340,7 @@ MOD68_021D77A4: ; 0x021D77A4 ldr r2, [r5] mov r0, #0x35 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -350,7 +350,7 @@ MOD68_021D77A4: ; 0x021D77A4 ldr r2, [r5] mov r0, #0x35 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -361,7 +361,7 @@ MOD68_021D77A4: ; 0x021D77A4 mov r0, #0x35 mov r1, #1 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x24 @@ -369,7 +369,7 @@ MOD68_021D77A4: ; 0x021D77A4 mov r0, #0x35 mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x24 mov r1, #0x80 bl AllocFromHeap @@ -1286,7 +1286,7 @@ MOD68_021D7EEC: ; 0x021D7EEC str r0, [sp, #0xc] ldr r2, [r4] mov r0, #0x35 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x7e lsl r0, r0, #2 ldr r0, [r4, r0] @@ -1300,7 +1300,7 @@ MOD68_021D7EEC: ; 0x021D7EEC mov r0, #0x35 mov r2, #0 mov r3, #0x60 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s index 2a478ef53..58d0b4f8d 100644 --- a/arm9/modules/69/asm/module_69.s +++ b/arm9/modules/69/asm/module_69.s @@ -533,7 +533,7 @@ _0222DA0E: ldr r2, [r4, #0x10] mov r0, #0x69 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -811,7 +811,7 @@ MOD69_0222DBAC: ; 0x0222DBAC ldr r2, [r4, #0x10] mov r0, #0x69 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -822,7 +822,7 @@ MOD69_0222DBAC: ; 0x0222DBAC ldr r2, [r4, #0x10] mov r0, #0x69 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x60 str r0, [sp] mov r0, #0x3f @@ -831,7 +831,7 @@ MOD69_0222DBAC: ; 0x0222DBAC mov r0, #0x69 mov r1, #4 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -843,7 +843,7 @@ MOD69_0222DBAC: ; 0x0222DBAC ldr r2, [r4, #0x10] mov r0, #0x69 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4, #0x10] mov r1, #1 bl FUN_02017CD0 @@ -1095,7 +1095,7 @@ MOD69_0222DE98: ; 0x0222DE98 mov r1, #0x29 mov r2, #0 add r3, sp, #0x18 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank mov r1, #0x5b lsl r1, r1, #2 str r0, [r4, r1] @@ -1105,7 +1105,7 @@ MOD69_0222DE98: ; 0x0222DE98 mov r1, #0x2a mov r2, #0 add r3, sp, #0x14 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank mov r1, #0x17 lsl r1, r1, #4 str r0, [r4, r1] @@ -1156,13 +1156,13 @@ MOD69_0222DF0C: ; 0x0222DF0C str r0, [sp] mov r0, #0x1b add r3, sp, #0x44 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0x28] mov r0, #0x1b mov r1, #0x27 add r2, sp, #0x40 mov r3, #0x3f - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [sp, #0x24] mov r0, #0 str r0, [sp, #0x20] @@ -1303,7 +1303,7 @@ _0222DF98: ldrh r1, [r1, #4] mov r2, #1 add r3, r6, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x81 lsl r1, r1, #2 ldr r1, [r5, r1] @@ -1398,7 +1398,7 @@ _0222E10E: ldrh r1, [r1, #4] mov r2, #1 mov r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp, #0x94] add r0, sp, #0x80 diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s index f6d3dc58d..9db294af7 100644 --- a/arm9/modules/70/asm/module_70.s +++ b/arm9/modules/70/asm/module_70.s @@ -831,7 +831,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 ldr r2, [r5, #0x10] mov r0, #0x65 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -842,7 +842,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 ldr r2, [r5, #0x10] mov r0, #0x65 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x40 str r0, [sp] mov r0, #0x3d @@ -851,7 +851,7 @@ MOD70_021D7AF4: ; 0x021D7AF4 mov r0, #0x65 mov r1, #2 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r2, #0 str r2, [sp] mov r1, #1 @@ -1357,7 +1357,7 @@ MOD70_021D7F70: ; 0x021D7F70 mov r1, #0x29 mov r2, #0 add r3, sp, #8 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] @@ -1367,7 +1367,7 @@ MOD70_021D7F70: ; 0x021D7F70 mov r1, #0x2a mov r2, #0 add r3, sp, #4 - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank mov r1, #0x5f lsl r1, r1, #2 str r0, [r4, r1] @@ -1448,13 +1448,13 @@ MOD70_021D7FF8: ; 0x021D7FF8 add r2, r3, #0 mov r0, #0x1b add r3, sp, #0x14 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0xc] mov r0, #0x1b mov r1, #0x27 add r2, sp, #0x10 mov r3, #0x3d - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData mov r4, #0 ldr r6, _021D80C4 ; =0x021D82AC str r0, [sp, #8] @@ -1605,7 +1605,7 @@ _021D80F4: ldrh r1, [r1, #4] ldr r3, [sp, #0x14] mov r2, #1 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [sp, #0x20] ldr r0, [r0, #0x18] cmp r4, r0 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s index 00f887bba..303bee402 100644 --- a/arm9/modules/71/asm/module_71.s +++ b/arm9/modules/71/asm/module_71.s @@ -756,7 +756,7 @@ _0222DC0C: mov r0, #0x13 mov r2, #0 add r3, r6, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r1, #0x79 lsl r1, r1, #4 str r0, [r5, r1] @@ -1821,7 +1821,7 @@ MOD71_0222E4DC: ; 0x0222E4DC ldrh r1, [r2, r1] mov r2, #5 lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, _0222E548 ; =0x00002110 mov r1, #0 str r1, [r5, r0] @@ -2220,7 +2220,7 @@ MOD71_0222E884: ; 0x0222E884 str r2, [sp] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r6, r0, #0 beq _0222E8D6 add r1, sp, #4 @@ -2291,7 +2291,7 @@ MOD71_0222E900: ; 0x0222E900 mov r0, #0x36 mov r2, #4 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 mov r0, #0x12 lsl r0, r0, #4 @@ -2301,7 +2301,7 @@ MOD71_0222E900: ; 0x0222E900 mov r0, #0x36 add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 @@ -2325,7 +2325,7 @@ MOD71_0222E900: ; 0x0222E900 mov r0, #0x36 add r2, r4, #0 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2353,7 +2353,7 @@ MOD71_0222E900: ; 0x0222E900 mov r1, #4 add r2, r4, #0 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 mov r1, #0x40 mov r2, #0x1a @@ -2375,7 +2375,7 @@ MOD71_0222E900: ; 0x0222E900 mov r1, #2 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2389,7 +2389,7 @@ MOD71_0222E900: ; 0x0222E900 mov r0, #0x36 add r2, r4, #0 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2403,7 +2403,7 @@ MOD71_0222E900: ; 0x0222E900 mov r0, #0x36 add r2, r4, #0 add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #4 mov r1, #0x40 mov r2, #0x1a @@ -2628,7 +2628,7 @@ _0222EAA6: mov r0, #0x13 mov r2, #1 add r3, #0xc0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD71_0222EA68 diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s index f8da52562..7d9850cc8 100644 --- a/arm9/modules/73/asm/module_73.s +++ b/arm9/modules/73/asm/module_73.s @@ -3681,7 +3681,7 @@ MOD73_021D9258: ; 0x021D9258 mov r0, #0x7a mov r2, #0 add r3, sp, #4 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData add r4, r0, #0 ldr r0, [sp, #4] str r5, [sp, #8] @@ -3705,7 +3705,7 @@ MOD73_021D9288: ; 0x021D9288 add r3, r2, #0 mov r0, #0x7a add r2, sp, #0 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r4, r0, #0 ldr r0, [sp] str r5, [sp, #4] @@ -5042,7 +5042,7 @@ MOD73_021D9CA0: ; 0x021D9CA0 mov r1, #1 mov r2, #4 str r4, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -5051,7 +5051,7 @@ MOD73_021D9CA0: ; 0x021D9CA0 ldr r2, [r5, #4] mov r0, #0x7a mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5, #0x14] cmp r0, #1 bne _021D9CD6 @@ -5065,7 +5065,7 @@ _021D9CD8: mov r0, #0x7a mov r2, #0 add r3, #0x24 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r5, #0x20] ldr r2, [r5, #0x24] mov r3, #0 @@ -5104,7 +5104,7 @@ _021D9CD8: mov r1, #4 mov r2, #0 add r3, #0x2c - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData str r0, [r5, #0x28] ldr r0, [r5, #4] mov r1, #5 @@ -5997,7 +5997,7 @@ MOD73_021DA374: ; 0x021DA374 mov r2, #0 mov r3, #0x80 str r5, [sp, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6007,13 +6007,13 @@ MOD73_021DA374: ; 0x021DA374 mov r0, #0x7a mov r1, #5 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData str r5, [sp] mov r0, #0x7a mov r1, #7 mov r2, #0 add r3, sp, #0x10 - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s index f84a1de72..3500c458d 100644 --- a/arm9/modules/75/asm/module_75.s +++ b/arm9/modules/75/asm/module_75.s @@ -785,7 +785,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #7 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -796,7 +796,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0xa mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -807,7 +807,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #9 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #6 @@ -815,7 +815,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #8 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #6 @@ -824,7 +824,7 @@ MOD75_021E7214: ; 0x021E7214 mov r1, #0x12 mov r2, #0 lsl r3, r0, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x16 mov r0, #0 lsl r1, r1, #4 @@ -862,7 +862,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0xb mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0 str r3, [sp] mov r0, #6 @@ -870,7 +870,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0xc mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -881,7 +881,7 @@ MOD75_021E7214: ; 0x021E7214 ldr r2, [r4] add r1, r0, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -892,7 +892,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0x25 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -903,7 +903,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0x24 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -914,7 +914,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0xf mov r3, #4 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0x40 str r3, [sp] mov r0, #6 @@ -922,7 +922,7 @@ MOD75_021E7214: ; 0x021E7214 mov r0, #0xd mov r1, #0xe mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4, pc} .align 2, 0 diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index baa825fc6..4f32e8709 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -402,7 +402,7 @@ MOD76_021D7814: ; 0x021D7814 mov r0, #0x71 mov r1, #0xa mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -413,7 +413,7 @@ MOD76_021D7814: ; 0x021D7814 mov r0, #0x71 mov r1, #0xb mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x43 @@ -421,7 +421,7 @@ MOD76_021D7814: ; 0x021D7814 mov r0, #0x71 mov r1, #0xc add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #7 mov r0, #0 lsl r1, r1, #6 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s index bdbf644f6..6affcb885 100644 --- a/arm9/modules/77/asm/module_77.s +++ b/arm9/modules/77/asm/module_77.s @@ -897,7 +897,7 @@ MOD77_021D7C64: ; 0x021D7C64 mov r0, #0x66 ldr r3, [r3] mov r1, #0x12 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [sp, #0x18] ldr r0, [sp, #0x20] mov r1, #6 @@ -957,7 +957,7 @@ _021D7CE0: mov r0, #0x66 ldr r3, [r3] mov r2, #0 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [sp, #0x14] ldr r0, [sp, #0x1c] mov r5, #1 @@ -1360,7 +1360,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 mov r1, #5 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x80 str r0, [sp] ldr r0, [r5] @@ -1369,7 +1369,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1381,7 +1381,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 ldr r2, [r5, r2] add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5, #8] bl Options_GetFrame lsl r0, r0, #0x18 @@ -1468,7 +1468,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 mov r1, #5 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x80 str r0, [sp] ldr r0, [r5] @@ -1477,7 +1477,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 mov r1, #6 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1489,7 +1489,7 @@ MOD77_021D7FAC: ; 0x021D7FAC mov r0, #0x81 mov r1, #7 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] ldr r0, [r5] diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s index 9f5fda4b0..83e02d711 100644 --- a/arm9/modules/80/asm/module_80.s +++ b/arm9/modules/80/asm/module_80.s @@ -2001,7 +2001,7 @@ _0222E414: mov r0, #0x13 add r2, sp, #0x18 mov r3, #0x3e - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [sp, #0x14] ldr r0, [sp, #0x18] mov r1, #0x60 @@ -2797,7 +2797,7 @@ MOD80_0222EB6C: ; 0x0222EB6C mov r0, #0x68 mov r1, #4 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -2836,7 +2836,7 @@ MOD80_0222EB6C: ; 0x0222EB6C mov r0, #0x68 mov r1, #0xe add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2849,7 +2849,7 @@ MOD80_0222EB6C: ; 0x0222EB6C mov r0, #0x68 mov r1, #0x1e add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2863,7 +2863,7 @@ MOD80_0222EB6C: ; 0x0222EB6C mov r1, #0x1d add r2, r4, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add r0, r5, #0 bl MOD80_0222F338 add sp, #0x10 @@ -3790,7 +3790,7 @@ MOD80_0222F338: ; 0x0222F338 mov r1, #5 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #0x2a @@ -3804,7 +3804,7 @@ MOD80_0222F338: ; 0x0222F338 mov r1, #0xf add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -3818,7 +3818,7 @@ MOD80_0222F338: ; 0x0222F338 mov r1, #0x1f add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r4, pc} thumb_func_end MOD80_0222F338 @@ -4081,7 +4081,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r0, #0x68 mov r1, #7 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #1 lsl r0, r0, #8 str r0, [sp] @@ -4091,7 +4091,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r1, #5 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -4130,7 +4130,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r0, #0x68 mov r1, #0x11 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -4143,7 +4143,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r0, #0x68 mov r1, #0x19 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #0x2a @@ -4157,7 +4157,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r1, #0xf add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -4171,7 +4171,7 @@ MOD80_0222F5A8: ; 0x0222F5A8 mov r1, #0x1f add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -5100,7 +5100,7 @@ MOD80_0222FD88: ; 0x0222FD88 ldrh r1, [r1, #4] mov r2, #1 lsl r3, r3, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 bl FreeToHeap add sp, #0x30 @@ -5419,7 +5419,7 @@ MOD80_02230054: ; 0x02230054 mov r0, #0x68 mov r1, #0x11 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x60 str r0, [sp] mov r0, #0x3e @@ -5428,7 +5428,7 @@ MOD80_02230054: ; 0x02230054 mov r0, #0x68 mov r1, #7 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD80_02230054 @@ -5890,7 +5890,7 @@ MOD80_0223043C: ; 0x0223043C ldr r2, [r4, #4] mov r0, #0x68 mov r1, #0x1b - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r2, _022304BC ; =0x00000B34 ldr r0, _022304C0 ; =0x00000F98 mov r3, #0xba @@ -5922,7 +5922,7 @@ _0223048C: ldr r2, [r4, #4] mov r0, #0x68 mov r1, #0x1c - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r2, _022304C4 ; =0x00000B54 ldr r0, _022304C0 ; =0x00000F98 ldr r1, [r4, r2] @@ -6377,7 +6377,7 @@ MOD80_02230840: ; 0x02230840 mov r0, #0x68 mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #1 lsl r0, r0, #8 str r0, [sp] @@ -6387,7 +6387,7 @@ MOD80_02230840: ; 0x02230840 mov r1, #5 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -6426,7 +6426,7 @@ MOD80_02230840: ; 0x02230840 mov r0, #0x68 mov r1, #0xd add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -6439,7 +6439,7 @@ MOD80_02230840: ; 0x02230840 mov r0, #0x68 mov r1, #0x1a add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 @@ -8789,7 +8789,7 @@ MOD80_02231BF4: ; 0x02231BF4 mov r0, #0x68 mov r1, #2 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #1 lsl r0, r0, #8 str r0, [sp] @@ -8799,7 +8799,7 @@ MOD80_02231BF4: ; 0x02231BF4 mov r1, #5 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -8838,7 +8838,7 @@ MOD80_02231BF4: ; 0x02231BF4 mov r0, #0x68 mov r1, #0xc add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -8851,7 +8851,7 @@ MOD80_02231BF4: ; 0x02231BF4 mov r0, #0x68 mov r1, #0x18 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] mov r0, #6 @@ -8865,7 +8865,7 @@ MOD80_02231BF4: ; 0x02231BF4 mov r1, #0x1d add r2, r4, #0 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD80_02231BF4 @@ -11828,7 +11828,7 @@ MOD80_0223346C: ; 0x0223346C mov r0, #0x68 mov r1, #1 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -11867,7 +11867,7 @@ MOD80_0223346C: ; 0x0223346C mov r0, #0x68 mov r1, #0xb add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -11880,7 +11880,7 @@ MOD80_0223346C: ; 0x0223346C mov r0, #0x68 mov r1, #0x17 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD80_0223346C @@ -13500,7 +13500,7 @@ MOD80_02234204: ; 0x02234204 str r0, [sp, #4] mov r0, #0x4b mov r1, #0xd - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut ldr r1, [sp, #8] lsr r1, r1, #1 str r1, [r4] @@ -13529,7 +13529,7 @@ MOD80_02234228: ; 0x02234228 mov r0, #0x4b mov r1, #0xc add r3, r5, #0 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut add r7, r0, #0 ldr r0, [sp, #8] ldr r5, _02234284 ; =0x00000000 @@ -14372,7 +14372,7 @@ MOD80_022348CC: ; 0x022348CC mov r0, #0x68 add r2, r1, #0 add r3, r1, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -17002,7 +17002,7 @@ MOD80_02235C88: ; 0x02235C88 mov r1, #7 add r2, r4, r2 mov r3, #0x3e - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData ldr r3, _02235CCC ; =0x00000FF8 mov r1, #9 str r0, [r4, r3] @@ -17012,7 +17012,7 @@ MOD80_02235C88: ; 0x02235C88 mov r0, #0x56 mov r2, #1 add r3, r4, r3 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData mov r1, #0xff lsl r1, r1, #4 str r0, [r4, r1] @@ -18003,7 +18003,7 @@ MOD80_02236488: ; 0x02236488 mov r0, #0x5c mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r3, #0 str r3, [sp] mov r0, #0x3e @@ -18011,7 +18011,7 @@ MOD80_02236488: ; 0x02236488 mov r0, #0x5c mov r1, #3 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -18055,7 +18055,7 @@ MOD80_02236488: ; 0x02236488 mov r1, #2 add r2, r4, #0 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 mov r0, #6 str r1, [sp] @@ -18068,7 +18068,7 @@ MOD80_02236488: ; 0x02236488 mov r1, #4 add r2, r4, #0 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 mov r0, #0x36 str r1, [sp] @@ -18081,7 +18081,7 @@ MOD80_02236488: ; 0x02236488 mov r1, #9 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 mov r0, #6 str r1, [sp] @@ -18094,7 +18094,7 @@ MOD80_02236488: ; 0x02236488 mov r1, #0xa add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 1d4b48dec..9505f17cb 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -358,7 +358,7 @@ MOD81_02238118: ; 0x02238118 mov r1, #6 add r2, sp, #4 mov r3, #0x39 - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData add r7, r0, #0 beq _02238152 mov r0, #0 @@ -1072,7 +1072,7 @@ _0223869C: ldrh r0, [r1, #0x10] ldrh r1, [r1, #0x14] lsl r3, r3, #5 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x44 pop {r4, r5, r6, r7, pc} nop @@ -1106,7 +1106,7 @@ _022386DE: mov r0, #7 mov r2, #0 add r3, sp, #0x1c - bl FUN_02006BDC + bl GfGfxLoader_GetScrnData add r7, r0, #0 beq _02238746 mov r0, #0xa @@ -1169,7 +1169,7 @@ MOD81_0223874C: ; 0x0223874C add r0, r4, #0 mov r2, #1 add r3, #8 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r5] mov r0, #0x3a add r3, r5, #0 @@ -1178,7 +1178,7 @@ MOD81_0223874C: ; 0x0223874C add r1, r6, #0 mov r2, #1 add r3, #0xc - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r5, #4] add sp, #4 pop {r3, r4, r5, r6, pc} @@ -1657,7 +1657,7 @@ MOD81_02238A84: ; 0x02238A84 mov r2, #0 mov r3, #0x3a add r5, r4, r6 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc str r0, [r4, r6] ldr r1, [sp, #4] add r0, r7, #0 @@ -2237,7 +2237,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0xe mov r1, #7 mov r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2249,7 +2249,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0x5d mov r1, #0x16 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2261,7 +2261,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0x5d mov r1, #0x15 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -2270,7 +2270,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0x5d mov r1, #0x17 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2282,7 +2282,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0x5d mov r1, #0x16 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2294,7 +2294,7 @@ MOD81_02238E44: ; 0x02238E44 mov r0, #0x5d mov r1, #0x15 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -2303,7 +2303,7 @@ MOD81_02238E44: ; 0x02238E44 mov r1, #0x17 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r4, #0x40] mov r1, #1 bl FUN_02017CD0 @@ -2843,7 +2843,7 @@ MOD81_022393F4: ; 0x022393F4 str r0, [sp, #0x10] mov r0, #0x5d mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x3a str r0, [sp] add r0, sp, #0x5c @@ -2852,7 +2852,7 @@ MOD81_022393F4: ; 0x022393F4 mov r1, #0xa mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #2 add r1, r4, #0 str r0, [sp] @@ -3687,7 +3687,7 @@ MOD81_022399FC: ; 0x022399FC ldr r2, [r2] mov r0, #0x5d add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3701,7 +3701,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #2 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 str r1, [sp] add r2, r4, #0 @@ -3714,7 +3714,7 @@ MOD81_022399FC: ; 0x022399FC ldr r2, [r2] mov r0, #0x5d mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -3727,7 +3727,7 @@ MOD81_022399FC: ; 0x022399FC ldr r2, [r2] mov r0, #0x5d mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] bl MOD81_02238828 add r5, r0, #0 @@ -3739,7 +3739,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -3748,7 +3748,7 @@ MOD81_022399FC: ; 0x022399FC mov r1, #3 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, _02239C90 ; =0x0223D07C lsl r1, r5, #1 ldrh r5, [r0, r1] @@ -3762,7 +3762,7 @@ MOD81_022399FC: ; 0x022399FC mov r1, #3 mov r2, #0 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0x20 str r0, [sp] mov r0, #0x40 @@ -3773,7 +3773,7 @@ MOD81_022399FC: ; 0x022399FC mov r1, #3 mov r2, #4 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3787,7 +3787,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #5 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3801,7 +3801,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #5 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3815,7 +3815,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #4 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3829,7 +3829,7 @@ MOD81_022399FC: ; 0x022399FC mov r0, #0x5d mov r1, #4 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x3a mov r1, #0x60 bl AllocFromHeap @@ -4113,7 +4113,7 @@ MOD81_02239E00: ; 0x02239E00 str r0, [sp, #0x10] mov r0, #0x5d mov r1, #0xd - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r3, #0 str r3, [sp] mov r0, #2 @@ -4126,7 +4126,7 @@ MOD81_02239E00: ; 0x02239E00 mov r0, #0x5d mov r1, #0xd mov r2, #1 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x3a str r0, [sp] add r0, sp, #0x60 @@ -4135,7 +4135,7 @@ MOD81_02239E00: ; 0x02239E00 mov r1, #0xe mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #0x3a str r0, [sp] add r0, sp, #0x60 @@ -4144,7 +4144,7 @@ MOD81_02239E00: ; 0x02239E00 mov r1, #0xe mov r2, #2 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #1 add r1, r7, #0 str r0, [sp] @@ -5775,7 +5775,7 @@ _0223AAE8: mov r0, #0x5d add r1, r7, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5787,7 +5787,7 @@ _0223AAE8: mov r0, #0x5d add r1, r7, #0 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5799,7 +5799,7 @@ _0223AAE8: ldr r2, [r4, #0x24] mov r0, #0x5d mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -5811,7 +5811,7 @@ _0223AAE8: ldr r2, [r4, #0x24] mov r0, #0x5d mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -5821,7 +5821,7 @@ _0223AAE8: mov r0, #0x5d add r1, r6, #0 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -5832,7 +5832,7 @@ _0223AAE8: add r1, r6, #0 mov r2, #4 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r1, #3 add r3, r1, #0 ldr r0, [r4, #0x24] @@ -6020,7 +6020,7 @@ MOD81_0223ACE8: ; 0x0223ACE8 str r0, [sp, #0x10] mov r0, #0x5d mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x3a str r0, [sp] add r0, sp, #0x5c @@ -6029,7 +6029,7 @@ MOD81_0223ACE8: ; 0x0223ACE8 mov r1, #0xa mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #0 add r1, r4, #0 str r0, [sp] @@ -6769,7 +6769,7 @@ MOD81_0223B264: ; 0x0223B264 mov r0, #0x5d mov r1, #0x13 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6781,7 +6781,7 @@ MOD81_0223B264: ; 0x0223B264 mov r0, #0x5d mov r1, #0x13 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6793,7 +6793,7 @@ MOD81_0223B264: ; 0x0223B264 mov r0, #0x5d mov r1, #0x12 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -6805,7 +6805,7 @@ MOD81_0223B264: ; 0x0223B264 mov r0, #0x5d mov r1, #0x12 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -6814,7 +6814,7 @@ MOD81_0223B264: ; 0x0223B264 mov r0, #0x5d mov r1, #0x14 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -6823,7 +6823,7 @@ MOD81_0223B264: ; 0x0223B264 mov r1, #0x14 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0xc8 str r0, [sp] mov r1, #1 @@ -7284,7 +7284,7 @@ _0223B6F0: mov r0, #0x5d add r1, r7, #0 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -7296,7 +7296,7 @@ _0223B6F0: mov r0, #0x5d add r1, r7, #0 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -7308,7 +7308,7 @@ _0223B6F0: ldr r2, [r4, #0x24] mov r0, #0x5d mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -7320,7 +7320,7 @@ _0223B6F0: ldr r2, [r4, #0x24] mov r0, #0x5d mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r2, #0 str r2, [sp] mov r0, #0x20 @@ -7330,7 +7330,7 @@ _0223B6F0: mov r0, #0x5d add r1, r6, #0 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0 str r0, [sp] mov r0, #0x20 @@ -7341,7 +7341,7 @@ _0223B6F0: add r1, r6, #0 mov r2, #4 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r1, #3 ldr r0, [r4, #0x24] add r2, r1, #0 @@ -7539,7 +7539,7 @@ MOD81_0223B908: ; 0x0223B908 str r0, [sp, #0x10] mov r0, #0x5d mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x3a str r0, [sp] add r0, sp, #0x5c @@ -7548,7 +7548,7 @@ MOD81_0223B908: ; 0x0223B908 mov r1, #0xa mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #1 add r1, r4, #0 str r0, [sp] @@ -8417,7 +8417,7 @@ MOD81_0223BF74: ; 0x0223BF74 ldr r2, [r4, #0xc] mov r0, #0x5d add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8429,7 +8429,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #2 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8440,7 +8440,7 @@ MOD81_0223BF74: ; 0x0223BF74 ldr r2, [r4, #0xc] mov r0, #0x5d mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8451,7 +8451,7 @@ MOD81_0223BF74: ; 0x0223BF74 ldr r2, [r4, #0xc] mov r0, #0x5d mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] bl MOD81_02238828 add r5, r0, #0 @@ -8463,7 +8463,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -8472,7 +8472,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r1, #3 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, _0223C1A0 ; =0x0223D280 lsl r1, r5, #1 ldrh r5, [r0, r1] @@ -8486,7 +8486,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r1, #3 mov r2, #0 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0x20 str r0, [sp] mov r0, #0x40 @@ -8497,7 +8497,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r1, #3 mov r2, #4 add r3, r5, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8509,7 +8509,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #5 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8521,7 +8521,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #5 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8533,7 +8533,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #4 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -8545,7 +8545,7 @@ MOD81_0223BF74: ; 0x0223BF74 mov r0, #0x5d mov r1, #4 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x3a mov r1, #0x60 bl AllocFromHeap @@ -9289,7 +9289,7 @@ MOD81_0223C658: ; 0x0223C658 mov r0, #0xe mov r1, #7 mov r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal ldr r0, [r4, #0x44] mov r1, #1 bl FUN_02017CD0 @@ -9304,7 +9304,7 @@ MOD81_0223C658: ; 0x0223C658 mov r0, #0x5d mov r1, #0x16 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -9316,7 +9316,7 @@ MOD81_0223C658: ; 0x0223C658 mov r0, #0x5d mov r1, #0x15 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x3a @@ -9325,7 +9325,7 @@ MOD81_0223C658: ; 0x0223C658 mov r0, #0x5d mov r1, #0x17 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add r0, r4, #0 bl MOD81_0223CAC4 mov r1, #0 @@ -9895,7 +9895,7 @@ MOD81_0223CBE0: ; 0x0223CBE0 str r0, [sp, #0x10] mov r0, #0x5d mov r1, #9 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x3a str r0, [sp] add r0, sp, #0x5c @@ -9904,7 +9904,7 @@ MOD81_0223CBE0: ; 0x0223CBE0 mov r1, #0xa mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #2 add r1, r4, #0 str r0, [sp] diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s index 7b00d33af..f1a3e494f 100644 --- a/arm9/modules/82/asm/module_82.s +++ b/arm9/modules/82/asm/module_82.s @@ -1617,7 +1617,7 @@ MOD82_0222E264: ; 0x0222E264 mov r0, #0x5c mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r3, #0 str r3, [sp] mov r0, #0x44 @@ -1625,7 +1625,7 @@ MOD82_0222E264: ; 0x0222E264 mov r0, #0x5c mov r1, #3 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 @@ -1669,7 +1669,7 @@ MOD82_0222E264: ; 0x0222E264 mov r1, #2 add r2, r4, #0 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 mov r0, #6 str r1, [sp] @@ -1682,7 +1682,7 @@ MOD82_0222E264: ; 0x0222E264 mov r1, #4 add r2, r4, #0 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r1, #0 mov r0, #0x36 str r1, [sp] @@ -1695,7 +1695,7 @@ MOD82_0222E264: ; 0x0222E264 mov r1, #9 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r1, #0 mov r0, #6 str r1, [sp] @@ -1708,7 +1708,7 @@ MOD82_0222E264: ; 0x0222E264 mov r1, #0xa add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 add r1, r0, #0 bl FUN_02017FE4 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s index f067a6f16..09c161b41 100644 --- a/arm9/modules/83/asm/module_83.s +++ b/arm9/modules/83/asm/module_83.s @@ -792,7 +792,7 @@ MOD83_0222DBD0: ; 0x0222DBD0 mov r1, #0x29 mov r2, #0 mov r3, #0x80 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0xe lsl r0, r0, #6 str r0, [sp] @@ -807,7 +807,7 @@ MOD83_0222DBD0: ; 0x0222DBD0 mov r0, #0x74 mov r1, #0x28 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -2581,7 +2581,7 @@ _0222E960: add r3, r0, #0 add r2, r1, #0 add r3, #0x8c - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -2594,7 +2594,7 @@ _0222E960: str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x74 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2607,7 +2607,7 @@ _0222E960: str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x74 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -2645,7 +2645,7 @@ MOD83_0222EA88: ; 0x0222EA88 mov r0, #0x74 mov r1, #0 add r3, #0xfc - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -2658,7 +2658,7 @@ MOD83_0222EA88: ; 0x0222EA88 str r0, [sp, #0xc] ldr r2, [r4, #4] mov r0, #0x74 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -2672,7 +2672,7 @@ MOD83_0222EA88: ; 0x0222EA88 ldr r2, [r4, #4] mov r0, #0x74 mov r3, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -5690,7 +5690,7 @@ MOD83_022302B4: ; 0x022302B4 mov r0, #0x74 mov r1, #0 add r3, #0xfc - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -5703,7 +5703,7 @@ MOD83_022302B4: ; 0x022302B4 mov r0, #0x74 add r2, r4, #0 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -5717,7 +5717,7 @@ MOD83_022302B4: ; 0x022302B4 mov r1, #2 add r2, r4, #0 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -5751,7 +5751,7 @@ MOD83_02230330: ; 0x02230330 add r3, r0, #0 add r2, r1, #0 add r3, #0x8c - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -5764,7 +5764,7 @@ MOD83_02230330: ; 0x02230330 mov r0, #0x74 add r2, r4, #0 add r3, r1, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -5777,7 +5777,7 @@ MOD83_02230330: ; 0x02230330 mov r0, #0x74 mov r1, #2 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -8285,7 +8285,7 @@ MOD83_02231820: ; 0x02231820 mov r1, #0xb mov r2, #0 lsl r3, r3, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0x20 str r0, [sp] mov r0, #0x57 @@ -8295,7 +8295,7 @@ MOD83_02231820: ; 0x02231820 mov r1, #0x10 mov r2, #0 lsl r3, r3, #6 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #3 @@ -8308,7 +8308,7 @@ MOD83_02231820: ; 0x02231820 mov r0, #0x74 mov r1, #0x11 add r2, r4, #0 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] mov r0, #6 @@ -8321,7 +8321,7 @@ MOD83_02231820: ; 0x02231820 mov r0, #0x74 mov r1, #0x12 add r2, r4, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -9382,7 +9382,7 @@ MOD83_022320D8: ; 0x022320D8 add r6, r3, #0 ldr r3, [r5] mov r0, #0x74 - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r1, sp, #4 add r7, r0, #0 bl NNS_G2dGetUnpackedScreenData @@ -9417,7 +9417,7 @@ MOD83_02232118: ; 0x02232118 mov r0, #0x74 mov r1, #3 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #3 @@ -9431,7 +9431,7 @@ MOD83_02232118: ; 0x02232118 ldr r2, [r5, r2] mov r0, #0x74 mov r1, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData cmp r4, #0 beq _0223215E cmp r4, #1 @@ -9451,7 +9451,7 @@ _0223215E: ldr r2, [r5, r2] mov r0, #0x74 mov r1, #4 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData b _0223219C _0223217E: mov r0, #0 @@ -9467,7 +9467,7 @@ _0223217E: ldr r2, [r5, r2] mov r0, #0x74 mov r1, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData _0223219C: mov r0, #0x20 str r0, [sp] @@ -9478,7 +9478,7 @@ _0223219C: add r3, r0, #0 add r2, r1, #0 add r3, #0xec - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #2 @@ -9492,7 +9492,7 @@ _0223219C: ldr r2, [r5, r2] mov r0, #0x74 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #3 add r0, r5, #0 mov r1, #2 @@ -9622,7 +9622,7 @@ _022322A8: str r0, [sp, #4] mov r0, #0x13 mov r3, #0x60 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal _022322DC: mov r0, #0xb2 mov r6, #0 @@ -9673,7 +9673,7 @@ _02232312: str r0, [sp] mov r0, #0x13 add r3, sp, #0x18 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0x14] ldr r0, [sp, #0x18] mov r1, #2 @@ -15800,7 +15800,7 @@ _02235132: str r0, [sp, #4] mov r0, #0x13 add r3, #0xff - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD83_022350EC @@ -17545,7 +17545,7 @@ _02235F48: mov r0, #0x74 mov r1, #0x13 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] mov r0, #5 @@ -17559,7 +17559,7 @@ _02235F48: mov r0, #0x74 mov r1, #0x16 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #2 mov r1, #0x4e bl FUN_02002C50 @@ -17588,7 +17588,7 @@ MOD83_02235FBC: ; 0x02235FBC mov r0, #0x74 mov r1, #0x14 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -17846,7 +17846,7 @@ _02236148: mov r0, #0x74 mov r1, #0x15 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -23956,7 +23956,7 @@ MOD83_02238F94: ; 0x02238F94 str r0, [sp, #4] ldrh r0, [r4] ldrh r1, [r4, #4] - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -24183,7 +24183,7 @@ MOD83_022391CC: ; 0x022391CC mov r0, #0x74 mov r1, #0x1d add r3, #0xfc - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #8 pop {r3, pc} .align 2, 0 @@ -24213,14 +24213,14 @@ MOD83_022391EC: ; 0x022391EC str r0, [sp, #0xc] mov r0, #0x74 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r2, #1 ldr r3, _022392DC ; =MOD83_0223BC30 str r2, [sp] ldr r3, [r3, #4] mov r0, #0x74 mov r1, #0x1f - bl UncompressFromNarc + bl GfGfxLoader_LoadFromNarc add r1, sp, #0x14 str r0, [sp, #0x10] bl NNS_G2dGetUnpackedScreenData diff --git a/arm9/modules/84/asm/module_84_thumb1.s b/arm9/modules/84/asm/module_84_thumb1.s index 2f29a2a9a..a58389883 100644 --- a/arm9/modules/84/asm/module_84_thumb1.s +++ b/arm9/modules/84/asm/module_84_thumb1.s @@ -596,7 +596,7 @@ MOD84_021D7968: ; 0x021D7968 mov r0, #0x7f mov r1, #0x42 add r3, r2, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r3, #0 str r3, [sp] mov r0, #0x20 @@ -606,7 +606,7 @@ MOD84_021D7968: ; 0x021D7968 mov r0, #0x7f mov r1, #0x42 mov r2, #4 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset ldr r2, _021D7A74 ; =0x04000050 mov r0, #0 add r3, r2, #0 @@ -859,7 +859,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 mov r1, #1 mov r3, #0x4b add r4, #0x38 - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [r5, #0x38] ldr r1, [sp, #8] bl DC_FlushRange @@ -924,7 +924,7 @@ MOD84_021D7BC8: ; 0x021D7BC8 mov r0, #0x7f mov r1, #3 mov r3, #0x4b - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [r4, #4] cmp r0, #0 beq _021D7CCC @@ -1129,7 +1129,7 @@ _021D7E08: str r0, [sp, #4] mov r0, #0x7f mov r3, #0x4b - bl FUN_02006D18 + bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [r4] cmp r0, #0 beq _021D7E9A @@ -1274,7 +1274,7 @@ _021D7F2C: ldrh r1, [r1, r4] mov r0, #0x7f add r3, r2, #0 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x4b ldr r1, _021D7F88 ; =0x021DA662 str r0, [sp] @@ -1286,7 +1286,7 @@ _021D7F2C: mov r0, #0x7f mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette ldr r1, _021D7F8C ; =0x021DA664 ldr r2, _021D7F90 ; =0x021DA666 ldrh r1, [r1, r4] diff --git a/arm9/modules/84/asm/module_84_thumb2.s b/arm9/modules/84/asm/module_84_thumb2.s index 6a42cff9a..17f9316ee 100644 --- a/arm9/modules/84/asm/module_84_thumb2.s +++ b/arm9/modules/84/asm/module_84_thumb2.s @@ -105,7 +105,7 @@ MOD84_021D81DC: ; 0x021D81DC add r1, r6, #0 mov r2, #0 add r3, #8 - bl FUN_02006C30 + bl GfGfxLoader_GetCellBank str r0, [r4] mov r0, #0x4b add r3, r4, #0 @@ -114,7 +114,7 @@ MOD84_021D81DC: ; 0x021D81DC add r1, r7, #0 mov r2, #0 add r3, #0xc - bl FUN_02006C5C + bl GfGfxLoader_GetAnimBank str r0, [r4, #4] _021D8218: add r0, r4, #0 @@ -940,7 +940,7 @@ MOD84_021D881C: ; 0x021D881C ldr r3, [r4, #8] mov r0, #0x7f mov r1, #0x2a - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -951,7 +951,7 @@ MOD84_021D881C: ; 0x021D881C ldr r3, [r4, #8] mov r0, #0x7f mov r1, #0x2b - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] mov r0, #0x4b @@ -960,7 +960,7 @@ MOD84_021D881C: ; 0x021D881C mov r0, #0x7f mov r1, #0x2c add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal add sp, #0x10 pop {r4, pc} .align 2, 0 @@ -1137,7 +1137,7 @@ _021D899C: mov r0, #0x7f mov r1, #0x41 add r3, r2, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset mov r0, #0x80 str r0, [sp] mov r0, #6 @@ -1149,7 +1149,7 @@ _021D899C: mov r1, #0x41 mov r2, #4 mov r3, #0 - bl FUN_02006948 + bl GfGfxLoader_GXLoadPalWithSrcOffset ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1165,7 +1165,7 @@ _021D89D8: mov r0, #0x7f mov r1, #4 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1176,7 +1176,7 @@ _021D89D8: ldr r2, [r5, #4] mov r0, #0x7f add r3, r1, #0 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1192,7 +1192,7 @@ _021D8A10: mov r0, #0x7f mov r1, #5 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1208,7 +1208,7 @@ _021D8A30: mov r0, #0x7f mov r1, #7 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1420,7 +1420,7 @@ _021D8BB2: mov r0, #0x7f mov r1, #0x24 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1431,7 +1431,7 @@ _021D8BB2: mov r0, #0x7f mov r1, #0x22 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1447,7 +1447,7 @@ _021D8BEA: mov r0, #0x7f mov r1, #0x25 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1463,7 +1463,7 @@ _021D8C0A: mov r0, #0x7f mov r1, #0x23 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -1762,7 +1762,7 @@ _021D8E4A: mov r0, #0x7f mov r1, #0x22 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -1773,7 +1773,7 @@ _021D8E4A: mov r0, #0x7f mov r1, #0x22 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -1791,7 +1791,7 @@ _021D8E86: mov r0, #0x7f mov r1, #0x23 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -1809,7 +1809,7 @@ _021D8EAA: mov r0, #0x7f mov r1, #0x23 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -1853,7 +1853,7 @@ _021D8EF2: mov r0, #0x7f mov r1, #0x37 add r3, r2, #0 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x4b str r0, [sp] add r4, #0x34 @@ -1862,7 +1862,7 @@ _021D8EF2: mov r2, #1 mov r3, #0 str r4, [sp, #4] - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette ldr r0, [sp, #0x14] ldr r0, [r0] add r1, r0, #1 @@ -1911,7 +1911,7 @@ _021D8F86: mov r1, #0x28 mov r2, #0 add r3, sp, #0x20 - bl FUN_02006BB0 + bl GfGfxLoader_GetCharData str r0, [sp, #0x18] cmp r0, #0 beq _021D8FC8 @@ -2579,7 +2579,7 @@ _021D94BA: mov r0, #0x7f mov r1, #0x26 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2590,7 +2590,7 @@ _021D94BA: mov r0, #0x7f mov r1, #0x22 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -2606,7 +2606,7 @@ _021D94F2: mov r0, #0x7f mov r1, #0x27 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -2622,7 +2622,7 @@ _021D9512: mov r0, #0x7f mov r1, #0x23 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -2861,7 +2861,7 @@ _021D96D4: mov r0, #0x7f mov r1, #0x10 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2872,7 +2872,7 @@ _021D96D4: mov r0, #0x7f mov r1, #0x12 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2883,7 +2883,7 @@ _021D96D4: mov r0, #0x7f mov r1, #0x11 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -2894,7 +2894,7 @@ _021D96D4: mov r0, #0x7f mov r1, #0x13 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [r4, #0x64] ldr r0, [r5] @@ -3049,7 +3049,7 @@ _021D986A: mov r0, #0x7f mov r1, #8 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3060,7 +3060,7 @@ _021D986A: mov r0, #0x7f mov r1, #0xa mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3076,7 +3076,7 @@ _021D98A2: mov r0, #0x7f mov r1, #9 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3092,7 +3092,7 @@ _021D98C2: mov r0, #0x7f mov r1, #0xb mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3108,7 +3108,7 @@ _021D98E2: mov r0, #0x7f mov r1, #0xc mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3119,7 +3119,7 @@ _021D98E2: mov r0, #0x7f mov r1, #0xe mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3135,7 +3135,7 @@ _021D991A: mov r0, #0x7f mov r1, #0xd mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3151,7 +3151,7 @@ _021D993A: mov r0, #0x7f mov r1, #0xf mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -3178,7 +3178,7 @@ _021D995A: mov r0, #0x7f mov r1, #0x3b add r3, r2, #0 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping add r0, r4, #0 add r0, #0x34 bl NNS_G2dInitImagePaletteProxy @@ -3191,7 +3191,7 @@ _021D995A: mov r1, #0x3c mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #2 str r0, [sp] add r2, r4, #0 @@ -3452,7 +3452,7 @@ _021D9B7A: mov r0, #0x7f mov r1, #0x28 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3463,7 +3463,7 @@ _021D9B7A: mov r0, #0x7f mov r1, #0x22 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -3479,7 +3479,7 @@ _021D9BB2: mov r0, #0x7f mov r1, #0x29 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -3495,7 +3495,7 @@ _021D9BD2: mov r0, #0x7f mov r1, #0x23 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -3560,7 +3560,7 @@ MOD84_021D9C1C: ; 0x021D9C1C mov r1, #0x41 add r2, #0x5c mov r3, #0x4b - bl FUN_02006C08 + bl GfGfxLoader_GetPlttData str r0, [r4, #0x58] cmp r0, #0 beq _021D9C76 @@ -3726,7 +3726,7 @@ _021D9D6A: mov r0, #0x7f mov r1, #0x1c mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3737,7 +3737,7 @@ _021D9D6A: mov r0, #0x7f mov r1, #0x18 mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3748,7 +3748,7 @@ _021D9D6A: mov r0, #0x7f mov r1, #0x1d mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3759,7 +3759,7 @@ _021D9D6A: mov r0, #0x7f mov r1, #0x19 mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 add r4, #0xec str r0, [r4] @@ -3823,7 +3823,7 @@ _021D9E3C: mov r0, #0x7f mov r1, #0x20 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3834,7 +3834,7 @@ _021D9E3C: mov r0, #0x7f mov r1, #0x1e mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3845,7 +3845,7 @@ _021D9E3C: mov r0, #0x7f mov r1, #0x21 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -3856,7 +3856,7 @@ _021D9E3C: mov r0, #0x7f mov r1, #0x1f mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0 add r4, #0xec str r0, [r4] @@ -4003,7 +4003,7 @@ _021D9FBE: mov r0, #0x7f mov r1, #0x2a mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4014,7 +4014,7 @@ _021D9FBE: mov r0, #0x7f mov r1, #0x2b mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] mov r0, #0x4b @@ -4023,7 +4023,7 @@ _021D9FBE: mov r0, #0x7f mov r1, #0x2c add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 add r4, #0xec str r0, [r4] @@ -4136,7 +4136,7 @@ _021DA0E2: mov r0, #0x7f mov r1, #0x16 mov r3, #2 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4147,7 +4147,7 @@ _021DA0E2: mov r0, #0x7f mov r1, #0x1a mov r3, #6 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4163,7 +4163,7 @@ _021DA11A: mov r0, #0x7f mov r1, #0x17 mov r3, #2 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4179,7 +4179,7 @@ _021DA13A: mov r0, #0x7f mov r1, #0x1b mov r3, #6 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4195,7 +4195,7 @@ _021DA15A: mov r0, #0x7f mov r1, #0x14 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -4206,7 +4206,7 @@ _021DA15A: mov r0, #0x7f mov r1, #0x18 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4222,7 +4222,7 @@ _021DA192: mov r0, #0x7f mov r1, #0x15 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4238,7 +4238,7 @@ _021DA1B2: mov r0, #0x7f mov r1, #0x19 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4276,7 +4276,7 @@ _021DA1E2: mov r0, #0x7f mov r1, #0x3f add r3, r2, #0 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x4b str r0, [sp] add r4, #0x40 @@ -4285,7 +4285,7 @@ _021DA1E2: mov r1, #0x40 mov r2, #1 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette ldr r0, [r5] add r0, r0, #1 str r0, [r5] @@ -4304,7 +4304,7 @@ _021DA238: mov r0, #0x7f mov r1, #0x3f add r3, r2, #0 - bl FUN_02006AE4 + bl GfGfxLoader_LoadImageMapping mov r0, #0x4b str r0, [sp] add r0, r4, #0 @@ -4314,7 +4314,7 @@ _021DA238: mov r1, #0x40 mov r2, #2 mov r3, #0 - bl FUN_02006A8C + bl GfGfxLoader_PartiallyLoadPalette mov r0, #2 str r0, [sp] add r2, r4, #0 diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s index db86339df..2bd7d12a2 100644 --- a/arm9/modules/86/asm/module_86.s +++ b/arm9/modules/86/asm/module_86.s @@ -629,7 +629,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #3 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -640,7 +640,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #3 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] ldr r0, [r5] @@ -649,7 +649,7 @@ _021D7A06: ldr r1, [sp, #0x14] mov r0, #0x84 add r3, r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -660,7 +660,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #7 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -671,7 +671,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #7 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r0, #0x20 str r0, [sp] ldr r0, [r5] @@ -680,7 +680,7 @@ _021D7A06: mov r0, #0x84 mov r2, #4 mov r3, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -691,7 +691,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #1 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -715,7 +715,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #1 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0x20 str r3, [sp] ldr r0, [r5] @@ -723,7 +723,7 @@ _021D7A06: str r0, [sp, #4] mov r0, #0x84 mov r2, #0 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] @@ -734,7 +734,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #5 - bl FUN_020068C8 + bl GfGfxLoader_LoadScrnData mov r0, #0x20 str r0, [sp] mov r0, #0x18 @@ -759,7 +759,7 @@ _021D7A06: ldr r2, [r5, #0x10] mov r0, #0x84 mov r3, #5 - bl FUN_0200687C + bl GfGfxLoader_LoadCharData mov r3, #0x20 str r3, [sp] ldr r0, [r5] @@ -767,7 +767,7 @@ _021D7A06: str r0, [sp, #4] mov r0, #0x84 mov r2, #4 - bl FUN_02006930 + bl GfGfxLoader_GXLoadPal mov r0, #0 ldr r3, [r5] mov r1, #0x20 diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index d9d6d4118..31dda0f39 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -1,56 +1,52 @@ #include "global.h" #include "filesystem.h" #include "NNS_g2d.h" -#include "unk_02016B94.h" #include "GXS_ioreg.h" +#include "gf_gfx_loader.h" -void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); - -THUMB_FUNC u32 FUN_0200687C(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) +THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) { NNSG2dCharacterData * pCharData; - void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE); - if (r7 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, FALSE); + if (pFile != NULL) { - if (NNS_G2dGetUnpackedBGCharacterData(r7, &pCharData)) + if (NNS_G2dGetUnpackedBGCharacterData(pFile, &pCharData)) { if (szByte == 0) szByte = pCharData->szByte; FUN_02017E14(unkStruct02016B94_2, (u8)a3, pCharData->pRawData, szByte, a4); } - FreeToHeap(r7); + FreeToHeap(pFile); } return szByte; } -THUMB_FUNC void FUN_020068C8(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) +THUMB_FUNC void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) { NNSG2dScreenData * pScreenData; - void * r7 = UncompressFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE); - if (r7 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, isCompressed, heap_id, TRUE); + if (pFile != NULL) { - if (NNS_G2dGetUnpackedScreenData(r7, &pScreenData)) + if (NNS_G2dGetUnpackedScreenData(pFile, &pScreenData)) { if (szByte == 0) szByte = pScreenData->szByte; - if (FUN_0201886C(unkStruct02016B94_2, a3) != NULL) + if (FUN_0201886C(unkStruct02016B94_2, (u8)a3) != NULL) FUN_02017DFC(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte); FUN_02017CE8(unkStruct02016B94_2, (u8)a3, pScreenData->rawData, szByte, a4); } - FreeToHeap(r7); + FreeToHeap(pFile); } } -void FUN_02006948(NarcId narcId, s32 memberNo, u32 r4, u32 r7, u32 r6, u32 r5, u32 heap_id); - -THUMB_FUNC void FUN_02006930(NarcId narcId, s32 memberNo, u32 r2, u32 r3, u32 sp10, u32 heap_id) +THUMB_FUNC void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id) { - FUN_02006948(narcId, memberNo, r2, 0, r3, sp10, heap_id); + GfGfxLoader_GXLoadPalWithSrcOffset(narcId, memberNo, whichRoutine, 0, baseAddr, szByte, heap_id); } -THUMB_FUNC void FUN_02006948(NarcId narcId, s32 memberNo, u32 r4, u32 r7, u32 r6, u32 r5, u32 heap_id) +THUMB_FUNC void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id) { - static void (*const UNK_020ECBB0[])(void *, u32, u32) = { + static void (*const load_funcs[])(void *, u32, u32) = { GX_LoadBGPltt, GX_LoadOBJPltt, GX_LoadBGExtPltt, @@ -60,101 +56,101 @@ THUMB_FUNC void FUN_02006948(NarcId narcId, s32 memberNo, u32 r4, u32 r7, u32 r6 GXS_LoadBGExtPltt, GXS_LoadOBJExtPltt }; - NNSG2dPaletteData * sp8; - void * sp4 = UncompressFromNarc(narcId, memberNo, FALSE, heap_id, TRUE); - if (sp4 != NULL) + NNSG2dPaletteData * pPltData; + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberNo, FALSE, heap_id, TRUE); + if (pFile != NULL) { - if (NNS_G2dGetUnpackedPaletteData(sp4, &sp8)) + if (NNS_G2dGetUnpackedPaletteData(pFile, &pPltData)) { - sp8->pRawData = (void *)((u32)sp8->pRawData + r7); - if (r5 == 0) - r5 = sp8->szByte - r7; - DC_FlushRange(sp8->pRawData, r5); - switch (r4) + pPltData->pRawData = (void *)((u32)pPltData->pRawData + srcOffset); + if (szByte == 0) + szByte = pPltData->szByte - srcOffset; + DC_FlushRange(pPltData->pRawData, szByte); + switch (whichRoutine) { case 2: GX_BeginLoadBGExtPltt(); - UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte); GX_EndLoadBGExtPltt(); break; case 6: GXS_BeginLoadBGExtPltt(); - UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte); GXS_EndLoadBGExtPltt(); break; case 3: GX_BeginLoadOBJExtPltt(); - UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte); GX_EndLoadOBJExtPltt(); break; case 7: GXS_BeginLoadOBJExtPltt(); - UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte); GXS_EndLoadOBJExtPltt(); break; default: - UNK_020ECBB0[r4](sp8->pRawData, r6, r5); + load_funcs[whichRoutine](pPltData->pRawData, baseAddr, szByte); break; } } - FreeToHeap(sp4); + FreeToHeap(pFile); } } -THUMB_FUNC u32 FUN_02006A34(NarcId narcId, s32 memberId, u32 r5, u32 r6, u32 r4, BOOL isCompressed, u32 heap_id) +THUMB_FUNC u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id) { - static void (*const UNK_020ECBA0[])(void *, u32, u32) = { + static void (*const load_funcs[])(void *, u32, u32) = { GX_LoadOBJ, GXS_LoadOBJ }; - NNSG2dCharacterData* sp4; - void * r7 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); - if (r7 != NULL) + NNSG2dCharacterData* pCharData; + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + if (pFile != NULL) { - if (NNS_G2dGetUnpackedCharacterData(r7, &sp4)) + if (NNS_G2dGetUnpackedCharacterData(pFile, &pCharData)) { - if (r4 == 0) - r4 = sp4->szByte; - DC_FlushRange(sp4->pRawData, r4); - UNK_020ECBA0[r5](sp4->pRawData, r6, r4); + if (szByte == 0) + szByte = pCharData->szByte; + DC_FlushRange(pCharData->pRawData, szByte); + load_funcs[whichRoutine](pCharData->pRawData, baseAddr, szByte); } - FreeToHeap(r7); + FreeToHeap(pFile); } - return r4; + return szByte; } -THUMB_FUNC void FUN_02006A8C(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE r5, u32 r4, u32 heap_id, NNSG2dImagePaletteProxy * sp24) +THUMB_FUNC void GfGfxLoader_PartiallyLoadPalette(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE vramType, u32 baseAddr, u32 heap_id, NNSG2dImagePaletteProxy * pPltProxy) { - void * r6 = UncompressFromNarc(narcId, memberId, FALSE, heap_id, TRUE); - NNSG2dPaletteData* sp8; - NNSG2dPaletteCompressInfo* sp4; - if (r6 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, FALSE, heap_id, TRUE); + NNSG2dPaletteData* pPlttData; + NNSG2dPaletteCompressInfo* pCompressInfo; + if (pFile != NULL) { - BOOL r7 = NNS_G2dGetUnpackedPaletteCompressInfo(r6, &sp4); - if (NNS_G2dGetUnpackedPaletteData(r6, &sp8)) + BOOL isCompressed = NNS_G2dGetUnpackedPaletteCompressInfo(pFile, &pCompressInfo); + if (NNS_G2dGetUnpackedPaletteData(pFile, &pPlttData)) { - if (r7) + if (isCompressed) { - NNS_G2dLoadPaletteEx(sp8, sp4, r4, r5, sp24); + NNS_G2dLoadPaletteEx(pPlttData, pCompressInfo, baseAddr, vramType, pPltProxy); } else { - NNS_G2dLoadPalette(sp8, r4, r5, sp24); + NNS_G2dLoadPalette(pPlttData, baseAddr, vramType, pPltProxy); } } - FreeToHeap(r6); + FreeToHeap(pFile); } } -THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy) +THUMB_FUNC u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy) { - static void (*const UNK_020ECBA8[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { + static void (*const load_funcs[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { NNS_G2dLoadImage1DMapping, NNS_G2dLoadImage2DMapping }; - void * pFile = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); u32 retSize = 0; NNSG2dCharacterData * pSrcData; if (pFile != NULL) @@ -163,7 +159,7 @@ THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 { if (szByte != 0) pSrcData->szByte = szByte; - UNK_020ECBA8[whichRoutine](pSrcData, baseAddr, type, pImgProxy); + load_funcs[whichRoutine](pSrcData, baseAddr, type, pImgProxy); retSize = pSrcData->szByte; } FreeToHeap(pFile); @@ -171,113 +167,113 @@ THUMB_FUNC u32 FUN_02006AE4(NarcId narcId, s32 memberId, BOOL isCompressed, u32 return retSize; } -THUMB_FUNC void FUN_02006B38(NarcId narcId, s32 memberId, BOOL isCompressed, u32 r5, u32 sp18, NNS_G2D_VRAM_TYPE sp1C, u32 sp20, u32 heap_id, NNSG2dImageProxy * sp28) +THUMB_FUNC void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy) { - static void (*const UNK_020ECB98[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { + static void (*const load_funcs[])(const NNSG2dCharacterData *, u32, NNS_G2D_VRAM_TYPE, NNSG2dImageProxy *) = { NNS_G2dLoadImage1DMapping, NNS_G2dLoadImage2DMapping }; - NNSG2dCharacterData * sp4; - void * r4 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); - if (r4 != NULL) + NNSG2dCharacterData * pCharacterData; + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, TRUE); + if (pFile != NULL) { - if (NNS_G2dGetUnpackedCharacterData(r4, &sp4)) + if (NNS_G2dGetUnpackedCharacterData(pFile, &pCharacterData)) { - if (sp18 != 0) - sp4->szByte = sp18; - switch (sp1C) + if (szByte != 0) + pCharacterData->szByte = szByte; + switch (type) { case NNS_G2D_VRAM_TYPE_2DMAIN: - sp4->mapingType = reg_GX_DISPCNT & (REG_GX_DISPCNT_EXOBJ_CH_MASK | REG_GX_DISPCNT_OBJMAP_CH_MASK); + pCharacterData->mapingType = (GXOBJVRamModeChar)(reg_GX_DISPCNT & (REG_GX_DISPCNT_EXOBJ_CH_MASK | REG_GX_DISPCNT_OBJMAP_CH_MASK)); break; case NNS_G2D_VRAM_TYPE_2DSUB: - sp4->mapingType = reg_GXS_DB_DISPCNT & (REG_GXS_DB_DISPCNT_EXOBJ_MASK | REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK); + pCharacterData->mapingType = (GXOBJVRamModeChar)(reg_GXS_DB_DISPCNT & (REG_GXS_DB_DISPCNT_EXOBJ_MASK | REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK)); break; default: ; } - UNK_020ECB98[r5](sp4, sp20, sp1C, sp28); + load_funcs[whichRoutine](pCharacterData, baseAddr, type, pImageProxy); } - FreeToHeap(r4); + FreeToHeap(pFile); } } -THUMB_FUNC void * FUN_02006BB0(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** r4, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_GetCharData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** ppCharData, u32 heap_id) { - void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); - if (r5 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (pFile != NULL) { - if (!NNS_G2dGetUnpackedBGCharacterData(r5, r4)) + if (!NNS_G2dGetUnpackedBGCharacterData(pFile, ppCharData)) { - FreeToHeap(r5); + FreeToHeap(pFile); return NULL; } } - return r5; + return pFile; } -THUMB_FUNC void * FUN_02006BDC(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** r4, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_GetScrnData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** ppScrData, u32 heap_id) { - void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); - if (r5 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (pFile != NULL) { - if (!NNS_G2dGetUnpackedScreenData(r5, r4)) + if (!NNS_G2dGetUnpackedScreenData(pFile, ppScrData)) { - FreeToHeap(r5); + FreeToHeap(pFile); return NULL; } } - return r5; + return pFile; } -THUMB_FUNC void * FUN_02006C08(NarcId narcId, s32 memberId, NNSG2dPaletteData ** r4, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_GetPlttData(NarcId narcId, s32 memberId, NNSG2dPaletteData ** ppPltData, u32 heap_id) { - void * r5 = UncompressFromNarc(narcId, memberId, FALSE, heap_id, FALSE); - if (r5 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, FALSE, heap_id, FALSE); + if (pFile != NULL) { - if (!NNS_G2dGetUnpackedPaletteData(r5, r4)) + if (!NNS_G2dGetUnpackedPaletteData(pFile, ppPltData)) { - FreeToHeap(r5); + FreeToHeap(pFile); return NULL; } } - return r5; + return pFile; } -THUMB_FUNC void * FUN_02006C30(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCellDataBank ** r4, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_GetCellBank(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCellDataBank ** ppCellBank, u32 heap_id) { - void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); - if (r5 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (pFile != NULL) { - if (!NNS_G2dGetUnpackedCellBank(r5, r4)) + if (!NNS_G2dGetUnpackedCellBank(pFile, ppCellBank)) { - FreeToHeap(r5); + FreeToHeap(pFile); return NULL; } } - return r5; + return pFile; } -THUMB_FUNC void * FUN_02006C5C(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dAnimBankData ** r4, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_GetAnimBank(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dAnimBankData ** ppAnimBank, u32 heap_id) { - void * r5 = UncompressFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); - if (r5 != NULL) + void * pFile = GfGfxLoader_LoadFromNarc(narcId, memberId, isCompressed, heap_id, FALSE); + if (pFile != NULL) { - if (!NNS_G2dGetUnpackedAnimBank(r5, r4)) + if (!NNS_G2dGetUnpackedAnimBank(pFile, ppAnimBank)) { - FreeToHeap(r5); + FreeToHeap(pFile); return NULL; } } - return r5; + return pFile; } -THUMB_FUNC void * FUN_02006C88(NarcId narcId, s32 memberId, u32 heap_id) +THUMB_FUNC void * GfGfxLoader_UncompressFromNarc(NarcId narcId, s32 memberId, u32 heap_id) { - return UncompressFromNarc(narcId, memberId, TRUE, heap_id, FALSE); + return GfGfxLoader_LoadFromNarc(narcId, memberId, TRUE, heap_id, FALSE); } -THUMB_FUNC void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd) +THUMB_FUNC void * GfGfxLoader_LoadFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd) { void * dest; void * dest2; @@ -315,7 +311,7 @@ THUMB_FUNC void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompres return dest; } -THUMB_FUNC void * FUN_02006D18(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd, u32 *size_p) +THUMB_FUNC void * GfGfxLoader_LoadFromNarc_GetSizeOut(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd, u32 *size_p) { void * dest; void * dest2; diff --git a/arm9/src/script_buffers.c b/arm9/src/script_buffers.c index 596056b1a..1242d5508 100644 --- a/arm9/src/script_buffers.c +++ b/arm9/src/script_buffers.c @@ -20,8 +20,8 @@ extern u32 GetCityNamesMsgdataIdByCountry(u32); extern void GetECWordIntoStringByIndex(u32 a0, struct String * a1); extern void StringCat_HandleTrainerName(struct String * dest, const struct String * src); extern void StrAddChar(struct String * str, u16 val); -extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); -extern void * UncompressFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); +extern void * GfGfxLoader_GetCharData(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); +extern void * GfGfxLoader_LoadFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); const u16 UNK_020ECE6C[][2] = { { 0x0140, 0x0008 }, @@ -751,7 +751,7 @@ struct UnkStruct_0200B870 * MessagePrinter_new(u32 r5, u32 r6, u32 sp4, u32 r4) struct UnkStruct_0200B870 * sp8 = AllocFromHeap(r4, sizeof(struct UnkStruct_0200B870)); if (sp8 != NULL) { - sp8->unk_0 = FUN_02006BB0(NARC_GRAPHIC_FONT, 4, 1, &sp8->unk_4, r4); + sp8->unk_0 = GfGfxLoader_GetCharData(NARC_GRAPHIC_FONT, 4, 1, &sp8->unk_4, r4); int i; u8 * ptr = sp8->unk_4->unk_14; for (i = 0; i < sp8->unk_4->unk_10; i++) diff --git a/arm9/src/text.c b/arm9/src/text.c index 8676cbcc0..36349b8bd 100644 --- a/arm9/src/text.c +++ b/arm9/src/text.c @@ -21,7 +21,7 @@ extern void FUN_0201C1A8(struct TextPrinter *printer); extern u32 FontFunc(u8 fontId, struct TextPrinter *printer); -extern void * FUN_02006BB0(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); +extern void * GfGfxLoader_GetCharData(NarcId, s32, s32, struct UnkStruct_0200B870_sub **, u32); THUMB_FUNC void SetFontsPointer(const struct FontInfo *fonts) @@ -330,7 +330,7 @@ THUMB_FUNC u16 *FUN_0201C1B0(void) { void *res = AllocFromHeap(0, 32 * 24 * sizeof(u16)); struct UnkStruct_0200B870_sub * var; - void *tmp = FUN_02006BB0(NARC_GRAPHIC_FONT, 5, 0, &var, 0); + void *tmp = GfGfxLoader_GetCharData(NARC_GRAPHIC_FONT, 5, 0, &var, 0); MI_CpuCopy32(var->unk_14, res, 32 * 24 * sizeof(u16)); FreeToHeap(tmp); return res; diff --git a/include/gf_gfx_loader.h b/include/gf_gfx_loader.h new file mode 100644 index 000000000..b95075dcc --- /dev/null +++ b/include/gf_gfx_loader.h @@ -0,0 +1,23 @@ +#ifndef POKEDIAMOND_GF_GFX_LOADER_H +#define POKEDIAMOND_GF_GFX_LOADER_H + +#include "unk_02016B94.h" + +u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id); +void GfGfxLoader_LoadScrnData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id); +void GfGfxLoader_GXLoadPal(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 baseAddr, u32 szByte, u32 heap_id); +void GfGfxLoader_GXLoadPalWithSrcOffset(NarcId narcId, s32 memberNo, u32 whichRoutine, u32 srcOffset, u32 baseAddr, u32 szByte, u32 heap_id); +u32 GfGfxLoader_LoadWholePalette(NarcId narcId, s32 memberId, u32 whichRoutine, u32 baseAddr, u32 szByte, BOOL isCompressed, u32 heap_id); +void GfGfxLoader_PartiallyLoadPalette(NarcId narcId, s32 memberId, NNS_G2D_VRAM_TYPE vramType, u32 baseAddr, u32 heap_id, NNSG2dImagePaletteProxy * pPltProxy); +u32 GfGfxLoader_LoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy *pImgProxy); +void GfGfxLoader_SetObjCntFlagsAndLoadImageMapping(NarcId narcId, s32 memberId, BOOL isCompressed, u32 whichRoutine, u32 szByte, NNS_G2D_VRAM_TYPE type, u32 baseAddr, u32 heap_id, NNSG2dImageProxy * pImageProxy); +void * GfGfxLoader_GetCharData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCharacterData ** ppCharData, u32 heap_id); +void * GfGfxLoader_GetScrnData(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dScreenData ** ppScrData, u32 heap_id); +void * GfGfxLoader_GetPlttData(NarcId narcId, s32 memberId, NNSG2dPaletteData ** ppPltData, u32 heap_id); +void * GfGfxLoader_GetCellBank(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dCellDataBank ** ppCellBank, u32 heap_id); +void * GfGfxLoader_GetAnimBank(NarcId narcId, s32 memberId, BOOL isCompressed, NNSG2dAnimBankData ** ppAnimBank, u32 heap_id); +void * GfGfxLoader_UncompressFromNarc(NarcId narcId, s32 memberId, u32 heap_id); +void * GfGfxLoader_LoadFromNarc(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd); +void * GfGfxLoader_LoadFromNarc_GetSizeOut(NarcId narcId, s32 memberNo, BOOL isCompressed, u32 heap_id, BOOL allocAtEnd, u32 *size_p); + +#endif //POKEDIAMOND_GF_GFX_LOADER_H From 79e77921c30109d29c3d791099aa42696c25ba99 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 29 May 2021 18:45:31 -0400 Subject: [PATCH 122/134] Output NARC contents as C enums in .naix files You can include these by typing out the full path to the .naix file (minus the files/ prefix). Example: ```c ``` Also: - Build the filesystem before building the C objects --- .gitignore | 1 + Makefile | 3 +- arm9/CMakeLists.txt | 2 +- arm9/Makefile | 2 +- arm9/modules/16/asm/module_16.s | 12 +++---- arm9/src/main.c | 1 - filesystem.mk | 10 ++++-- tools/knarc/Narc.cpp | 46 ++++++++++++++++++++++++ tools/knarc/Source.cpp | 5 +++ tools/o2narc/o2narc.cpp | 64 +++++++++++++++++++++++++++++---- 10 files changed, 126 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index fcfaecac5..c10cf159b 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,4 @@ symbols.csv *.arc files/**/*.c *.o +*.naix diff --git a/Makefile b/Makefile index 19d853508..48ef5c1d0 100644 --- a/Makefile +++ b/Makefile @@ -162,6 +162,7 @@ clean: mostlyclean clean-fs clean-tools clean-fs: $(RM) $(filter %.narc %.arc,$(HOSTFS_FILES)) + $(RM) $(patsubst %.narc,%.naix,$(patsubst %.arc,%.naix,$(filter %.narc %.arc,$(HOSTFS_FILES)))) $(RM) $(NCGR_CLEAN_LIST) $(NCLR_CLEAN_LIST) $(NCER_CLEAN_LIST) $(NSCR_CLEAN_LIST) find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} + $(RM) files/msgdata/msg/narc_*.bin @@ -214,7 +215,7 @@ include filesystem.mk # TODO: Rules for Pearl # FIXME: Computed secure area CRC in header is incorrect due to first 8 bytes of header not actually being "encryObj" -$(ROM): rom.rsf arm9 arm7 filesystem $(BNR) tools/bin/rom_header.template.sbin +$(ROM): rom.rsf filesystem arm9 arm7 $(BNR) tools/bin/rom_header.template.sbin $(MAKEROM) -DBUILD_DIR="$(BUILD_DIR)" -DBNR="$(BNR)" -DTITLE_NAME="$(TITLE_NAME)" -DNITROFS_FILES="$(NITROFS_FILES)" $< $@ ifeq ($(SHIFTED),0) $(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE) diff --git a/arm9/CMakeLists.txt b/arm9/CMakeLists.txt index fce2106f2..0de93feb3 100644 --- a/arm9/CMakeLists.txt +++ b/arm9/CMakeLists.txt @@ -15,5 +15,5 @@ file(GLOB_RECURSE SOURCES "*.c" "*.cpp") file(GLOB MODULE_INC modules/*/include) add_executable(DP_Arm9 ${SOURCES}) -target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC}) +target_include_directories(DP_Arm9 PRIVATE ../include ../include-mw lib/include ${MODULE_INC} ../files) target_compile_definitions(DP_Arm9 PUBLIC __CLION_IDE__) diff --git a/arm9/Makefile b/arm9/Makefile index 6f05d1c58..2ad293634 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -54,7 +54,7 @@ SRC_DIRS := src lib lib/src $(sort $(wildcard modules/*/src)) ASM_DIRS := asm data files $(sort $(wildcard modules/*/asm)) LIBASM_DIRS := lib/syscall INCLUDE_RECURSIVE_DIRS := ../include-mw lib/include -INCLUDE_DIRS := ../include $(sort $(wildcard modules/*/include)) +INCLUDE_DIRS := ../include $(sort $(wildcard modules/*/include)) ../files C_FILES := $(foreach dir,$(SRC_DIRS),$(sort $(wildcard $(dir)/*.c))) CXX_FILES := $(foreach dir,$(SRC_DIRS),$(sort $(wildcard $(dir)/*.cpp))) diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 2f05ad9ae..712ad70f1 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -9944,9 +9944,9 @@ _021DBD82: add r0, sp, #8 str r0, [sp, #4] .ifdef DIAMOND - mov r0, #0x8b + mov r0, #0x8b ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND .else - mov r0, #0x8c + mov r0, #0x8c ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL .endif add r1, r5, r1 bl FUN_02006D18 @@ -9999,9 +9999,9 @@ MOD16_021DBDE4: ; 0x021DBDE4 add r0, sp, #8 str r0, [sp, #4] .ifdef DIAMOND - mov r0, #0x8b + mov r0, #0x8b ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND .else - mov r0, #0x8c + mov r0, #0x8c ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL .endif add r2, r1, #0 bl FUN_02006D18 @@ -10027,9 +10027,9 @@ MOD16_021DBE0C: ; 0x021DBE0C add r0, sp, #8 str r0, [sp, #4] .ifdef DIAMOND - mov r0, #0x8b + mov r0, #0x8b ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_DIAMOND .else - mov r0, #0x8c + mov r0, #0x8c ; NARC_APPLICATION_ZUKANLIST_ZKN_DATA_ZUKAN_ENC_PEARL .endif mov r1, #2 bl FUN_02006D18 diff --git a/arm9/src/main.c b/arm9/src/main.c index 7a8a14d80..749bec413 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -16,7 +16,6 @@ #include "unk_0202F150.h" #include "module_52.h" - FS_EXTERN_OVERLAY(MODULE_52); FS_EXTERN_OVERLAY(MODULE_63); diff --git a/filesystem.mk b/filesystem.mk index 2b74f25fb..387231bf1 100644 --- a/filesystem.mk +++ b/filesystem.mk @@ -275,10 +275,13 @@ endif HOSTFS_FILES := $(NITROFS_FILES:%=files/%) %.narc: - $(KNARC) -d $(basename $@)/ -p $@ + $(KNARC) -d $(basename $@)/ -p $@ -i %.arc: - $(KNARC) -d $(basename $@)/ -p $@ + $(KNARC) -d $(basename $@)/ -p $@ -i + +%.naix: %.narc +files/wazaeffect/we.naix: %.naix: %.arc O2NARC_TARGETS := \ files/poketool/personal/personal.narc \ @@ -295,8 +298,9 @@ O2NARC_TARGETS := \ ALL_O2NARC_TARGETS := $(O2NARC_TARGETS) \ files/poketool/trainer/trpoke.narc +O2NARCFLAGS := -i files/poketool/personal/pms.narc: O2NARCFLAGS = -f -files/itemtool/itemdata/item_data.narc: O2NARCFLAGS = -p 0xFF +files/itemtool/itemdata/item_data.narc: O2NARCFLAGS += -p 0xFF ifeq (,$(NODEP)) $(ALL_O2NARC_TARGETS): dep = $(shell $(SCANINC) -I include -I include-mw -I arm9/lib/include $(patsubst %.narc,%.json.txt,$@)) diff --git a/tools/knarc/Narc.cpp b/tools/knarc/Narc.cpp index 7e6985715..cce7cdea8 100644 --- a/tools/knarc/Narc.cpp +++ b/tools/knarc/Narc.cpp @@ -29,6 +29,7 @@ using namespace std; extern bool debug; extern bool pack_no_fnt; +extern bool output_header; void Narc::AlignDword(ofstream& ofs, uint8_t paddingChar) { @@ -145,6 +146,39 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory) if (!ofs.good()) { return Cleanup(ofs, NarcError::InvalidOutputFile); } + ofstream ofhs; + string stem; + string stem_upper; + // Pikalax 29 May 2021 + // Output an includable header that enumerates the NARC contents + if (output_header) + { + fs::path naixfname = fileName; + naixfname.replace_extension(".naix"); + + ofhs.open(naixfname); + if (!ofhs.good()) + { + ofhs.close(); + return Cleanup(ofs, NarcError::InvalidOutputFile); + } + + stem = fileName.stem().string(); + stem_upper = stem; + for (char &c : stem_upper) + { c = toupper(c); } + + ofhs << "/*\n" + " * THIS FILE WAS AUTOMATICALLY\n" + " * GENERATED BY tools/knarc\n" + " * DO NOT MODIFY!!!\n" + " */\n" + "\n" + "#ifndef NARC_" << stem_upper << "_NAIX_\n" + "#define NARC_" << stem_upper << "_NAIX_\n" + "\n" + "enum {\n"; + } vector fatEntries; uint16_t directoryCounter = 1; @@ -153,6 +187,7 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory) ignore_patterns.push_back(".*keep"); WildcardVector keep_patterns(directory / ".knarckeep"); + int memberNo = 0; for (const auto& de : OrderedDirectoryIterator(directory, true)) { if (is_directory(de)) @@ -164,6 +199,12 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory) if (debug) { cerr << "DEBUG: adding file " << de.path() << endl; } + if (output_header) + { + string de_stem = de.path().filename().string(); + std::replace(de_stem.begin(), de_stem.end(), '.', '_'); + ofhs << "\tNARC_" << stem << "_" << de_stem << " = " << (memberNo++) << ",\n"; + } fatEntries.push_back(FileAllocationTableEntry { .Start = 0x0, @@ -183,6 +224,11 @@ bool Narc::Pack(const fs::path& fileName, const fs::path& directory) fatEntries.back().End = fatEntries.back().Start + static_cast(file_size(de)); } } + if (output_header) + { + ofhs << "};\n\n#endif //NARC_" << stem_upper << "_NAIX_\n"; + ofhs.close(); + } FileAllocationTable fat { diff --git a/tools/knarc/Source.cpp b/tools/knarc/Source.cpp index d9a5cf835..587c85275 100644 --- a/tools/knarc/Source.cpp +++ b/tools/knarc/Source.cpp @@ -8,6 +8,7 @@ using namespace std; bool debug = false; bool pack_no_fnt = true; +bool output_header = false; void PrintError(NarcError error) { @@ -40,6 +41,7 @@ static inline void usage() { cout << "\t-n\tBuild the filename table (default: discards filenames)" << endl; cout << "\t-D/--debug\tPrint additional debug messages" << endl; cout << "\t-h/--help\tPrint this message and exit" << endl; + cout << "\t-i\tOutput a .naix header" << endl; } int main(int argc, char* argv[]) @@ -104,6 +106,9 @@ int main(int argc, char* argv[]) else if (!strcmp(argv[i], "-n")) { pack_no_fnt = false; } + else if (!strcmp(argv[i], "-i")) { + output_header = true; + } else { usage(); cerr << "ERROR: Unrecognized argument: " << argv[i] << endl; diff --git a/tools/o2narc/o2narc.cpp b/tools/o2narc/o2narc.cpp index 1381788a4..60e4e2421 100644 --- a/tools/o2narc/o2narc.cpp +++ b/tools/o2narc/o2narc.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "elf.h" #include "Narc.h" @@ -49,6 +50,7 @@ class Elf { public: ShdrTab shdr; Symtab symtab; + Elf(string const& filename) : Elf(filename.c_str()) {} Elf(const char * filename) { // Read the ELF header phdr = nullptr; @@ -155,25 +157,29 @@ static inline void usage() { cout << "\toutfile\tOutput NARC file" << endl; cout << "Options:" << endl; cout << "\t-f|--flatten\tDon't generate NARC headers" << endl; + cout << "\t-i|--output-header\tCreate a .naix file" << endl; } int main(int argc, char ** argv) { // CLI arguments - int flatten = 0; + int flatten = 0, output_header = 0; char padding = '\xFF'; static option options [] { { "flatten", no_argument, &flatten, 1 }, { "padding", required_argument, nullptr, 'p' }, + { "output_header", no_argument, &output_header, 1 }, {nullptr, 0, nullptr, 0} }; int opt_index; int c; - while ((c = getopt_long(argc, argv, "fp:", options, &opt_index)) != -1) + while ((c = getopt_long(argc, argv, "fp:i", options, &opt_index)) != -1) { if (c == 'f') { flatten = 1; } else if (c == 'p') { padding = strtol(optarg, NULL, 0); + } else if (c == 'i') { + output_header = 1; } } argv += optind; @@ -188,8 +194,13 @@ int main(int argc, char ** argv) { cerr << "Excess arguments: first unrecognized '" << argv[2] << "'" << endl; return 1; } - char * infname = argv[0]; - char * outfname = argv[1]; + if (output_header && flatten) { + usage(); + cerr << "Incompatible flags: -i, -f" << endl; + return 1; + } + const char * infname = argv[0]; + const char * outfname = argv[1]; // Read the ELF file Elf elf(infname); @@ -201,15 +212,45 @@ int main(int argc, char ** argv) { exit(1); } - fstream ofile; - ofile.open(outfname, ios_base::out | ios_base::binary); + ofstream ofile; + ofile.open(outfname, ios_base::binary); if (!ofile.good()) { cerr << "ERROR: Unable to open '" << outfname << "' for writing" << endl; exit(1); } - if (!flatten) // then build the NARC chunks { + string stem, stem_upper; + ofstream ofheader; + if (output_header) + { + string outhname = outfname; + outhname.replace(outhname.find(".narc"), 5, ".naix"); + ofheader.open(outhname); + if (!ofheader.good()) + { + ofile.close(); + cerr << "ERROR: Unable to open '" << outhname << "' for writing" << endl; + exit(1); + } + stem = outfname; + stem = stem.substr(0, stem.rfind(".")); + stem = stem.substr(stem.rfind("/") + 1); + stem_upper = stem; + for (char &_c : stem_upper) + { _c = toupper(_c); } + + ofheader << "/*\n" + " * THIS FILE WAS AUTOMATICALLY\n" + " * GENERATED BY tools/o2narc\n" + " * DO NOT MODIFY!!!\n" + " */\n" + "\n" + "#ifndef NARC_" << stem_upper << "_NAIX_\n" + "#define NARC_" << stem_upper << "_NAIX_\n" + "\n" + "enum {\n"; + } // .data contains the size table Elf32_Shdr & data_sec = elf.shdr[".data"]; uint32_t * _data = (uint32_t *)elf.read(data_sec); @@ -275,6 +316,15 @@ int main(int argc, char ** argv) { { _rodata[fat_entries[i].Start + j] = padding; } + if (output_header) + { + ofheader << "\tNARC_" << stem << "_narc_" << setw(4) << setfill('0') << i << " = " << i << ",\n"; + } + } + if (output_header) + { + ofheader << "};\n\n#endif //NARC_" << stem_upper << "_NAIX_\n"; + ofheader.close(); } // These NARCs have empty FNTs FileNameTable fnt{ From 1c0c1476b404ba1c457875f8f7a51d2355067413 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 31 May 2021 13:16:21 -0400 Subject: [PATCH 123/134] Clean up headers --- arm9/lib/include/GXS_ioreg.h | 64 -------- arm9/lib/include/GX_ioreg.h | 84 ----------- arm9/lib/include/NNS_g2d.h | 280 ++++++++++++++--------------------- arm9/lib/include/gx.h | 2 +- arm9/lib/include/registers.h | 142 ++++++++++++++++++ arm9/src/gf_gfx_loader.c | 1 - 6 files changed, 257 insertions(+), 316 deletions(-) delete mode 100644 arm9/lib/include/GXS_ioreg.h delete mode 100644 arm9/lib/include/GX_ioreg.h diff --git a/arm9/lib/include/GXS_ioreg.h b/arm9/lib/include/GXS_ioreg.h deleted file mode 100644 index 1c66c4aff..000000000 --- a/arm9/lib/include/GXS_ioreg.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef POKEDIAMOND_GXS_IOREG_H -#define POKEDIAMOND_GXS_IOREG_H - -#define REG_GXS_DB_DISPCNT_O_SHIFT 31 -#define REG_GXS_DB_DISPCNT_O_SIZE 1 -#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 - -#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 -#define REG_GXS_DB_DISPCNT_BG_SIZE 1 -#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 - -#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 -#define REG_GXS_DB_DISPCNT_OH_SIZE 1 -#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000 - -#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 -#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 -#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000 - -#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 -#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 -#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000 - -#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 -#define REG_GXS_DB_DISPCNT_OW_SIZE 1 -#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000 - -#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 -#define REG_GXS_DB_DISPCNT_W1_SIZE 1 -#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000 - -#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 -#define REG_GXS_DB_DISPCNT_W0_SIZE 1 -#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000 - -#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 -#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 -#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00 - -#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 -#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 -#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080 - -#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 -#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 -#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070 - -#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 -#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 -#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007 - -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 -#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010 - -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 -#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060 - -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 -#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 - -#endif //POKEDIAMOND_GXS_IOREG_H diff --git a/arm9/lib/include/GX_ioreg.h b/arm9/lib/include/GX_ioreg.h deleted file mode 100644 index 81055b0a4..000000000 --- a/arm9/lib/include/GX_ioreg.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef NITRO_GX_IOREG_H -#define NITRO_GX_IOREG_H - -#define REG_GX_DISPCNT_O_SHIFT 31 -#define REG_GX_DISPCNT_O_SIZE 1 -#define REG_GX_DISPCNT_O_MASK 0x80000000 - -#define REG_GX_DISPCNT_BG_SHIFT 30 -#define REG_GX_DISPCNT_BG_SIZE 1 -#define REG_GX_DISPCNT_BG_MASK 0x40000000 - -#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27 -#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3 -#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000 - -#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24 -#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3 -#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x07000000 - -#define REG_GX_DISPCNT_OH_SHIFT 23 -#define REG_GX_DISPCNT_OH_SIZE 1 -#define REG_GX_DISPCNT_OH_MASK 0x00800000 - -#define REG_GX_DISPCNT_EXOBJ_SHIFT 20 -#define REG_GX_DISPCNT_EXOBJ_SIZE 3 -#define REG_GX_DISPCNT_EXOBJ_MASK 0x00700000 - -#define REG_GX_DISPCNT_VRAM_SHIFT 18 -#define REG_GX_DISPCNT_VRAM_SIZE 2 -#define REG_GX_DISPCNT_VRAM_MASK 0x000c0000 - -#define REG_GX_DISPCNT_MODE_SHIFT 16 -#define REG_GX_DISPCNT_MODE_SIZE 2 -#define REG_GX_DISPCNT_MODE_MASK 0x00030000 - -#define REG_GX_DISPCNT_OW_SHIFT 15 -#define REG_GX_DISPCNT_OW_SIZE 1 -#define REG_GX_DISPCNT_OW_MASK 0x00008000 - -#define REG_GX_DISPCNT_W1_SHIFT 14 -#define REG_GX_DISPCNT_W1_SIZE 1 -#define REG_GX_DISPCNT_W1_MASK 0x00004000 - -#define REG_GX_DISPCNT_W0_SHIFT 13 -#define REG_GX_DISPCNT_W0_SIZE 1 -#define REG_GX_DISPCNT_W0_MASK 0x00002000 - -#define REG_GX_DISPCNT_DISPLAY_SHIFT 8 -#define REG_GX_DISPCNT_DISPLAY_SIZE 5 -#define REG_GX_DISPCNT_DISPLAY_MASK 0x00001f00 - -#define REG_GX_DISPCNT_BLANK_SHIFT 7 -#define REG_GX_DISPCNT_BLANK_SIZE 1 -#define REG_GX_DISPCNT_BLANK_MASK 0x00000080 - -#define REG_GX_DISPCNT_OBJMAP_SHIFT 4 -#define REG_GX_DISPCNT_OBJMAP_SIZE 3 -#define REG_GX_DISPCNT_OBJMAP_MASK 0x00000070 - -#define REG_GX_DISPCNT_BG02D3D_SHIFT 3 -#define REG_GX_DISPCNT_BG02D3D_SIZE 1 -#define REG_GX_DISPCNT_BG02D3D_MASK 0x00000008 - -#define REG_GX_DISPCNT_BGMODE_SHIFT 0 -#define REG_GX_DISPCNT_BGMODE_SIZE 3 -#define REG_GX_DISPCNT_BGMODE_MASK 0x00000007 - -#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4 -#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1 -#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x00000010 - -#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5 -#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2 -#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x00000060 - -#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20 -#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2 -#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x00300000 - -#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22 -#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1 -#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x00400000 - -#endif //NITRO_GX_IOREG_H diff --git a/arm9/lib/include/NNS_g2d.h b/arm9/lib/include/NNS_g2d.h index 722f47675..483f254aa 100644 --- a/arm9/lib/include/NNS_g2d.h +++ b/arm9/lib/include/NNS_g2d.h @@ -1,56 +1,44 @@ #ifndef NNSYS_NNS_G2D_H #define NNSYS_NNS_G2D_H + #include "gx.h" typedef struct NNSG2dCharacterData { - - u16 H; - u16 W; - - GXTexFmt pixelFmt; // GXTexFmt - - GXOBJVRamModeChar mapingType; // GXOBJVRamModeChar - u32 characterFmt;// 31 ..... 10 ...........9 8 ................ 0 - // Reserved VramTransfer NNSG2dCharacterFmt - u32 szByte; - void* pRawData; // offset addr of the content. - -} -NNSG2dCharacterData; + u16 H; + u16 W; + GXTexFmt pixelFmt; + GXOBJVRamModeChar mapingType; + u32 characterFmt; + u32 szByte; + void * pRawData; +} NNSG2dCharacterData; typedef struct NNSG2dScreenData { - - u16 screenWidth; // screen width (pixels) of rawData - u16 screenHeight; // screen height (pixels) of rawData - u16 colorMode; // character data color mode - u16 screenFormat; // screen data format - u32 szByte; // size of rawData - u32 rawData[1]; // screen data (variable length) - -} -NNSG2dScreenData; + u16 screenWidth; + u16 screenHeight; + u16 colorMode; + u16 screenFormat; + u32 szByte; + u32 rawData[1]; +} NNSG2dScreenData; typedef struct NNSG2dPaletteData { + GXTexFmt fmt; + BOOL bExtendedPlt; + u32 szByte; + void * pRawData; - GXTexFmt fmt; - BOOL bExtendedPlt; - - u32 szByte; - void* pRawData; // offset addr of the content. - -} -NNSG2dPaletteData; +} NNSG2dPaletteData; typedef enum NNS_G2D_VRAM_TYPE { NNS_G2D_VRAM_TYPE_3DMAIN = 0, NNS_G2D_VRAM_TYPE_2DMAIN = 1, - NNS_G2D_VRAM_TYPE_2DSUB = 2, - NNS_G2D_VRAM_TYPE_MAX = 3 - + NNS_G2D_VRAM_TYPE_2DSUB = 2, + NNS_G2D_VRAM_TYPE_MAX = 3 } NNS_G2D_VRAM_TYPE; typedef enum NNSG2dCharacterDataMapingType @@ -66,199 +54,159 @@ typedef enum NNSG2dCharacterDataMapingType typedef struct NNSG2dImageAttr { - GXTexSizeS sizeS; // Image size (Invalid data is set during 1D mapping.) - GXTexSizeT sizeT; // Image size (Invalid data is set during 1D mapping.) - - GXTexFmt fmt; // Image format - BOOL bExtendedPlt; // Whether or not to use the extended palette - - GXTexPlttColor0 plttUse; // How to use palette number 0 - GXOBJVRamModeChar mappingType; // Mapping mode -} -NNSG2dImageAttr; + GXTexSizeS sizeS; + GXTexSizeT sizeT; + GXTexFmt fmt; + BOOL bExtendedPlt; + GXTexPlttColor0 plttUse; + GXOBJVRamModeChar mappingType; +} NNSG2dImageAttr; typedef struct NNSG2dVRamLocation { - u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ]; -} -NNSG2dVRamLocation; + u32 baseAddrOfVram[ NNS_G2D_VRAM_TYPE_MAX ]; +} NNSG2dVRamLocation; typedef struct NNSG2dImageProxy { - NNSG2dVRamLocation vramLocation; - NNSG2dImageAttr attr; -} -NNSG2dImageProxy; + NNSG2dVRamLocation vramLocation; + NNSG2dImageAttr attr; +} NNSG2dImageProxy; typedef struct NNSG2dPaletteCompressInfo { - u16 numPalette; - u16 pad16; - void* pPlttIdxTbl; // offset addr. + u16 numPalette; + u16 pad16; + void * pPlttIdxTbl; -} -NNSG2dPaletteCompressInfo; +} NNSG2dPaletteCompressInfo; void NNS_G2dLoadImage1DMapping ( - const NNSG2dCharacterData* pSrcData, - u32 baseAddr, - NNS_G2D_VRAM_TYPE type, - NNSG2dImageProxy* pImgProxy + const NNSG2dCharacterData * pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy * pImgProxy ); void NNS_G2dLoadImage2DMapping ( - const NNSG2dCharacterData* pSrcData, - u32 baseAddr, - NNS_G2D_VRAM_TYPE type, - NNSG2dImageProxy* pImgProxy + const NNSG2dCharacterData * pSrcData, + u32 baseAddr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImageProxy * pImgProxy ); typedef struct NNSG2dImagePaletteProxy { - - GXTexFmt fmt; // palette format - // (Obtainable values are limited to GX_TEXFMT_PLTT16 and GX_TEXFMT_PLTT256) - - BOOL bExtendedPlt; // Use expanded palette? - - NNSG2dVRamLocation vramLocation; -} -NNSG2dImagePaletteProxy; + GXTexFmt fmt; + BOOL bExtendedPlt; + NNSG2dVRamLocation vramLocation; +} NNSG2dImagePaletteProxy; void NNS_G2dLoadPalette ( - const NNSG2dPaletteData* pSrcData, - u32 addr, - NNS_G2D_VRAM_TYPE type, - NNSG2dImagePaletteProxy* pPltProxy + const NNSG2dPaletteData * pSrcData, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy * pPltProxy ); void NNS_G2dLoadPaletteEx ( - const NNSG2dPaletteData* pSrcData, - const NNSG2dPaletteCompressInfo* pCmpInfo, - u32 addr, - NNS_G2D_VRAM_TYPE type, - NNSG2dImagePaletteProxy* pPltProxy + const NNSG2dPaletteData * pSrcData, + const NNSG2dPaletteCompressInfo * pCmpInfo, + u32 addr, + NNS_G2D_VRAM_TYPE type, + NNSG2dImagePaletteProxy * pPltProxy ); typedef struct NNSG2dCellVramTransferData { - u32 srcDataOffset; - u32 szByte; - -} -NNSG2dCellVramTransferData; + u32 srcDataOffset; + u32 szByte; +} NNSG2dCellVramTransferData; typedef struct NNSG2dVramTransferData { - u32 szByteMax; // Maximum byte count during all VRAM transfers - NNSG2dCellVramTransferData* pCellTransferDataArray;// This is the length of the numCells amount of the maintained NNSG2dCellDataBank. - // - -} -NNSG2dVramTransferData; + u32 szByteMax; + NNSG2dCellVramTransferData * pCellTransferDataArray; +} NNSG2dVramTransferData; typedef struct NNSG2dCellOAMAttrData { - u16 attr0; - u16 attr1; - u16 attr2; - -} -NNSG2dCellOAMAttrData; + u16 attr0; + u16 attr1; + u16 attr2; +} NNSG2dCellOAMAttrData; typedef struct NNSG2dCellData { - u16 numOAMAttrs; // Number of OAM attributes - u16 cellAttr; // Information related to cell type - // Information related to flips (upper 8 bits) - // Information related to bounding information - // - // Information related to rendering optimization (lower 8 bits) - // (6bit => Radius of bounding sphere >> 2 ) + u16 numOAMAttrs; + u16 cellAttr; + NNSG2dCellOAMAttrData * pOamAttrArray; - - NNSG2dCellOAMAttrData* pOamAttrArray; // Pointer to the NNSG2dCellOAMAttrData array - -} -NNSG2dCellData; +} NNSG2dCellData; typedef struct NNSG2dCellDataBank { - u16 numCells; // Total number of cells - u16 cellBankAttr; // Attribute - NNSG2dCellData* pCellDataArrayHead; // offset address - NNSG2dCharacterDataMapingType mappingMode; // Mapping mode of the referenced character + u16 numCells; + u16 cellBankAttr; + NNSG2dCellData * pCellDataArrayHead; + NNSG2dCharacterDataMapingType mappingMode; + NNSG2dVramTransferData * pVramTransferData; + void * pStringBank; + void * pExtendedData; - NNSG2dVramTransferData* pVramTransferData; // Information related to Vram transfer animation - - void* pStringBank; // Character string bank - void* pExtendedData; // offset addr (if it exists) - - -} -NNSG2dCellDataBank; +} NNSG2dCellDataBank; typedef enum NNSG2dAnimationPlayMode { - NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, // Disabled - NNS_G2D_ANIMATIONPLAYMODE_FORWARD, // one-time playback (forward) - NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, // repeat playback (forward loop) - NNS_G2D_ANIMATIONPLAYMODE_REVERSE, // reverse playback (reverse (forward + backward)) - NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, // reverse playback repeat (reverse (forward + backward) loop) + NNS_G2D_ANIMATIONPLAYMODE_INVALID = 0x0, + NNS_G2D_ANIMATIONPLAYMODE_FORWARD, + NNS_G2D_ANIMATIONPLAYMODE_FORWARD_LOOP, + NNS_G2D_ANIMATIONPLAYMODE_REVERSE, + NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP, NNS_G2D_ANIMATIONPLAYMODE_MAX -} -NNSG2dAnimationPlayMode; +} NNSG2dAnimationPlayMode; typedef struct NNSG2dAnimFrameData { - void* pContent; // pointer to animation result - u16 frames; // animation frame continuation time (units: video frames) - u16 pad16; // padding - -} -NNSG2dAnimFrameData; + void * pContent; + u16 frames; + u16 pad16; +} NNSG2dAnimFrameData; typedef struct NNSG2dAnimSequenceData { - u16 numFrames; // number of animation frames forming the sequence - u16 loopStartFrameIdx; // loop start animation frame number + u16 numFrames; + u16 loopStartFrameIdx; + u32 animType; + NNSG2dAnimationPlayMode playMode; + NNSG2dAnimFrameData * pAnmFrameArray; - u32 animType; // animation type (upper 16 bits) - // animation elements (lower 16 bits) - // (What's referenced by NNSG2dAnimFrameData.pContent is changed) - - NNSG2dAnimationPlayMode playMode; // animation sequence playback method - NNSG2dAnimFrameData* pAnmFrameArray; // offset from the head of pFrameArray. - -} -NNSG2dAnimSequenceData; +} NNSG2dAnimSequenceData; typedef struct NNSG2dAnimBankData { - u16 numSequences; // number of animation sequences - u16 numTotalFrames; // total number of animation frames - NNSG2dAnimSequenceData* pSequenceArrayHead; // pointer to animation sequence array - NNSG2dAnimFrameData* pFrameArrayHead; // pointer to animation frame array - void* pAnimContents; // pointer to animation result array - void* pStringBank; // pointer to string bank (set during execution) - void* pExtendedData; // pointer to library expansion area (not used) + u16 numSequences; + u16 numTotalFrames; + NNSG2dAnimSequenceData * pSequenceArrayHead; + NNSG2dAnimFrameData * pFrameArrayHead; + void * pAnimContents; + void * pStringBank; + void * pExtendedData; -} -NNSG2dAnimBankData; +} NNSG2dAnimBankData; - -BOOL NNS_G2dGetUnpackedBGCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); -BOOL NNS_G2dGetUnpackedCharacterData( void* pNcgrFile, NNSG2dCharacterData** ppCharData ); -BOOL NNS_G2dGetUnpackedScreenData( void* pNscrFile, NNSG2dScreenData** ppScrData ); -BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); -BOOL NNS_G2dGetUnpackedPaletteData( void* pNclrFile, NNSG2dPaletteData** ppPltData ); -BOOL NNS_G2dGetUnpackedPaletteCompressInfo( void* pNclrFile, NNSG2dPaletteCompressInfo** ppPltCmpInfo ); -BOOL NNS_G2dGetUnpackedCellBank( void* pNcerFile, NNSG2dCellDataBank** ppCellBank ); -BOOL NNS_G2dGetUnpackedAnimBank( void* pNanrFile, NNSG2dAnimBankData** ppAnimBank ); +BOOL NNS_G2dGetUnpackedBGCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); +BOOL NNS_G2dGetUnpackedCharacterData(void * pNcgrFile, NNSG2dCharacterData ** ppCharData); +BOOL NNS_G2dGetUnpackedScreenData(void * pNscrFile, NNSG2dScreenData ** ppScrData); +BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData); +BOOL NNS_G2dGetUnpackedPaletteData(void * pNclrFile, NNSG2dPaletteData ** ppPltData); +BOOL NNS_G2dGetUnpackedPaletteCompressInfo(void * pNclrFile, NNSG2dPaletteCompressInfo ** ppPltCmpInfo); +BOOL NNS_G2dGetUnpackedCellBank(void * pNcerFile, NNSG2dCellDataBank ** ppCellBank); +BOOL NNS_G2dGetUnpackedAnimBank(void * pNanrFile, NNSG2dAnimBankData ** ppAnimBank); #endif //NNSYS_NNS_G2D_H diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index 210d61f4d..110819428 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -5,7 +5,7 @@ #include "MI_memory.h" #include "MI_dma.h" #include "OS_vramExclusive.h" -#include "GX_ioreg.h" +#include "registers.h" //temporary while other files aren't decompiled diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index d55347d52..7a0155dac 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -517,4 +517,146 @@ #define REG_GX_POWCNT_DSEL_SIZE 1 #define REG_GX_POWCNT_DSEL_MASK 0x8000 +// GX_DISPCNT +#define REG_GX_DISPCNT_O_SHIFT 31 +#define REG_GX_DISPCNT_O_SIZE 1 +#define REG_GX_DISPCNT_O_MASK 0x80000000 + +#define REG_GX_DISPCNT_BG_SHIFT 30 +#define REG_GX_DISPCNT_BG_SIZE 1 +#define REG_GX_DISPCNT_BG_MASK 0x40000000 + +#define REG_GX_DISPCNT_BGSCREENOFFSET_SHIFT 27 +#define REG_GX_DISPCNT_BGSCREENOFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGSCREENOFFSET_MASK 0x38000000 + +#define REG_GX_DISPCNT_BGCHAROFFSET_SHIFT 24 +#define REG_GX_DISPCNT_BGCHAROFFSET_SIZE 3 +#define REG_GX_DISPCNT_BGCHAROFFSET_MASK 0x07000000 + +#define REG_GX_DISPCNT_OH_SHIFT 23 +#define REG_GX_DISPCNT_OH_SIZE 1 +#define REG_GX_DISPCNT_OH_MASK 0x00800000 + +#define REG_GX_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_SIZE 3 +#define REG_GX_DISPCNT_EXOBJ_MASK 0x00700000 + +#define REG_GX_DISPCNT_VRAM_SHIFT 18 +#define REG_GX_DISPCNT_VRAM_SIZE 2 +#define REG_GX_DISPCNT_VRAM_MASK 0x000c0000 + +#define REG_GX_DISPCNT_MODE_SHIFT 16 +#define REG_GX_DISPCNT_MODE_SIZE 2 +#define REG_GX_DISPCNT_MODE_MASK 0x00030000 + +#define REG_GX_DISPCNT_OW_SHIFT 15 +#define REG_GX_DISPCNT_OW_SIZE 1 +#define REG_GX_DISPCNT_OW_MASK 0x00008000 + +#define REG_GX_DISPCNT_W1_SHIFT 14 +#define REG_GX_DISPCNT_W1_SIZE 1 +#define REG_GX_DISPCNT_W1_MASK 0x00004000 + +#define REG_GX_DISPCNT_W0_SHIFT 13 +#define REG_GX_DISPCNT_W0_SIZE 1 +#define REG_GX_DISPCNT_W0_MASK 0x00002000 + +#define REG_GX_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GX_DISPCNT_DISPLAY_SIZE 5 +#define REG_GX_DISPCNT_DISPLAY_MASK 0x00001f00 + +#define REG_GX_DISPCNT_BLANK_SHIFT 7 +#define REG_GX_DISPCNT_BLANK_SIZE 1 +#define REG_GX_DISPCNT_BLANK_MASK 0x00000080 + +#define REG_GX_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_SIZE 3 +#define REG_GX_DISPCNT_OBJMAP_MASK 0x00000070 + +#define REG_GX_DISPCNT_BG02D3D_SHIFT 3 +#define REG_GX_DISPCNT_BG02D3D_SIZE 1 +#define REG_GX_DISPCNT_BG02D3D_MASK 0x00000008 + +#define REG_GX_DISPCNT_BGMODE_SHIFT 0 +#define REG_GX_DISPCNT_BGMODE_SIZE 3 +#define REG_GX_DISPCNT_BGMODE_MASK 0x00000007 + +#define REG_GX_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GX_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GX_DISPCNT_OBJMAP_CH_MASK 0x00000010 + +#define REG_GX_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GX_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GX_DISPCNT_OBJMAP_BM_MASK 0x00000060 + +#define REG_GX_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GX_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GX_DISPCNT_EXOBJ_CH_MASK 0x00300000 + +#define REG_GX_DISPCNT_EXOBJ_BM_SHIFT 22 +#define REG_GX_DISPCNT_EXOBJ_BM_SIZE 1 +#define REG_GX_DISPCNT_EXOBJ_BM_MASK 0x00400000 + +// GXS_DB_DISPCNT +#define REG_GXS_DB_DISPCNT_O_SHIFT 31 +#define REG_GXS_DB_DISPCNT_O_SIZE 1 +#define REG_GXS_DB_DISPCNT_O_MASK 0x80000000 + +#define REG_GXS_DB_DISPCNT_BG_SHIFT 30 +#define REG_GXS_DB_DISPCNT_BG_SIZE 1 +#define REG_GXS_DB_DISPCNT_BG_MASK 0x40000000 + +#define REG_GXS_DB_DISPCNT_OH_SHIFT 23 +#define REG_GXS_DB_DISPCNT_OH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OH_MASK 0x00800000 + +#define REG_GXS_DB_DISPCNT_EXOBJ_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_MASK 0x00300000 + +#define REG_GXS_DB_DISPCNT_MODE_SHIFT 16 +#define REG_GXS_DB_DISPCNT_MODE_SIZE 1 +#define REG_GXS_DB_DISPCNT_MODE_MASK 0x00010000 + +#define REG_GXS_DB_DISPCNT_OW_SHIFT 15 +#define REG_GXS_DB_DISPCNT_OW_SIZE 1 +#define REG_GXS_DB_DISPCNT_OW_MASK 0x00008000 + +#define REG_GXS_DB_DISPCNT_W1_SHIFT 14 +#define REG_GXS_DB_DISPCNT_W1_SIZE 1 +#define REG_GXS_DB_DISPCNT_W1_MASK 0x00004000 + +#define REG_GXS_DB_DISPCNT_W0_SHIFT 13 +#define REG_GXS_DB_DISPCNT_W0_SIZE 1 +#define REG_GXS_DB_DISPCNT_W0_MASK 0x00002000 + +#define REG_GXS_DB_DISPCNT_DISPLAY_SHIFT 8 +#define REG_GXS_DB_DISPCNT_DISPLAY_SIZE 5 +#define REG_GXS_DB_DISPCNT_DISPLAY_MASK 0x00001f00 + +#define REG_GXS_DB_DISPCNT_BLANK_SHIFT 7 +#define REG_GXS_DB_DISPCNT_BLANK_SIZE 1 +#define REG_GXS_DB_DISPCNT_BLANK_MASK 0x00000080 + +#define REG_GXS_DB_DISPCNT_OBJMAP_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_SIZE 3 +#define REG_GXS_DB_DISPCNT_OBJMAP_MASK 0x00000070 + +#define REG_GXS_DB_DISPCNT_BGMODE_SHIFT 0 +#define REG_GXS_DB_DISPCNT_BGMODE_SIZE 3 +#define REG_GXS_DB_DISPCNT_BGMODE_MASK 0x00000007 + +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SHIFT 4 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_SIZE 1 +#define REG_GXS_DB_DISPCNT_OBJMAP_CH_MASK 0x00000010 + +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SHIFT 5 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_SIZE 2 +#define REG_GXS_DB_DISPCNT_OBJMAP_BM_MASK 0x00000060 + +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SHIFT 20 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_SIZE 2 +#define REG_GXS_DB_DISPCNT_EXOBJ_CH_MASK 0x00300000 + #endif //POKEDIAMOND_ARM9_REGISTERS_H diff --git a/arm9/src/gf_gfx_loader.c b/arm9/src/gf_gfx_loader.c index 31dda0f39..769c90d95 100644 --- a/arm9/src/gf_gfx_loader.c +++ b/arm9/src/gf_gfx_loader.c @@ -1,7 +1,6 @@ #include "global.h" #include "filesystem.h" #include "NNS_g2d.h" -#include "GXS_ioreg.h" #include "gf_gfx_loader.h" THUMB_FUNC u32 GfGfxLoader_LoadCharData(NarcId narcId, s32 memberNo, struct UnkStruct_02016B94_2 * unkStruct02016B94_2, u32 a3, u32 a4, u32 szByte, BOOL isCompressed, u32 heap_id) From 6855ddf1277b1ef0a746cdf5fe36c132e21f2d12 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 31 May 2021 13:19:12 -0400 Subject: [PATCH 124/134] Make arm9 depend on filesystem --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 48ef5c1d0..e1a40cdbc 100644 --- a/Makefile +++ b/Makefile @@ -205,7 +205,7 @@ $(BUILD_DIR)/%.o: %.c $$(dep) $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) $< -o $@ -arm9: +arm9: filesystem $(MAKE) -C arm9 $(MAKE_VARS) arm7: @@ -215,7 +215,7 @@ include filesystem.mk # TODO: Rules for Pearl # FIXME: Computed secure area CRC in header is incorrect due to first 8 bytes of header not actually being "encryObj" -$(ROM): rom.rsf filesystem arm9 arm7 $(BNR) tools/bin/rom_header.template.sbin +$(ROM): rom.rsf arm9 arm7 $(BNR) tools/bin/rom_header.template.sbin $(MAKEROM) -DBUILD_DIR="$(BUILD_DIR)" -DBNR="$(BNR)" -DTITLE_NAME="$(TITLE_NAME)" -DNITROFS_FILES="$(NITROFS_FILES)" $< $@ ifeq ($(SHIFTED),0) $(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE) From 6ed67e61ef078048f054581d0c5a795aa4eb98c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Mon, 31 May 2021 21:52:55 +0200 Subject: [PATCH 125/134] decompile unk_0200BB14.s --- arm9/src/unk_0200BB14.c | 1288 +++++++++++++++++++++++++++++++++++++++ include/unk_0200BB14.h | 181 ++++++ 2 files changed, 1469 insertions(+) create mode 100644 arm9/src/unk_0200BB14.c create mode 100644 include/unk_0200BB14.h diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c new file mode 100644 index 000000000..7dba22826 --- /dev/null +++ b/arm9/src/unk_0200BB14.c @@ -0,0 +1,1288 @@ +#include "global.h" +#include "unk_0200BB14.h" +#include "heap.h" + +extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2); +extern void FUN_0201E00C(u32 param0, u32 param1); +extern void NNS_G2dInitOamManagerModule(); +extern void FUN_02009EAC(u32 param0, + u32 param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8); +extern u32 FUN_0201C328(u32 param0, u32 param1); +extern void FUN_0201D168(); +extern void FUN_0201E0BC(); +extern u32 FUN_02008C9C(u32 param0, u32 *param1, u32 param2); +extern void FUN_0201FFC8(u32 param0); +extern void FUN_0201FDEC(u32 param0); +extern void FUN_02009F80(); +extern void FUN_0201C348(); +extern void FUN_0201FD58(); +extern void FUN_02008C80(u32 param0); +extern u32 FUN_02009660(u32 param0, u32 param1); +extern void FUN_020096B4(u32 param0); +extern void FUN_02009C30(u32 param0); +extern void FUN_02009E28(u32 param0); +extern void FUN_02009448(u32 param0); +extern void FUN_02008E2C(u32 param0); +extern void FUN_0201C350(u32 param0); +extern void FUN_0201D12C(); +extern void FUN_0201E08C(); +extern void FUN_02009FA0(); +extern u32 FUN_0200965C(u32 param0); +extern u32 FUN_020161A4(u32 param0, u32 param1); +extern void FUN_02009668(u32 param0, u32 param1, u32 param2); +extern u32 FUN_020096CC(u32 param0); +extern u32 FUN_02008DEC(u32 param0, u32 param1, u32 param2); +extern u32 FUN_02009424(u32 param0, u32 param1); +extern u32 FUN_020093A8(u32 param0, u32 param1, u32 param2, u32 param3); +extern void FUN_02009A90(u32 param0); +extern void FUN_02009D34(u32 param0); +extern u32 FUN_02008BE0( + u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); +extern u32 FUN_0200BE74(u32 *param0, + u32 *param1, + u32 param2, + s16 param3, + s16 param4, + s16 param5, + u16 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10, + u32 param11, + u32 param12, + u32 param13); +extern u32 FUN_0201FE94(struct UnkStruct4 *param0); +extern void FUN_02020130(u32 param0, u32 param1); +extern void FUN_02020248(u32 param0, u32 param1); +extern u32 FUN_0200945C(u32 param0, u32 param1); +extern u32 FUN_02008F34( + u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +extern void FUN_02009B04(u32 param0); +extern u32 FUN_0200C474(u32 *param0, u32 param1); +extern u32 FUN_02008FEC( + u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); +extern u32 FUN_02009D68(u32 param0); +extern u32 FUN_02009E88(u32 param0, u32 param1); +extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3); +extern u32 FUN_0200C404( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +extern void FUN_02008AA4(u32 param0, + u32 param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10, + u32 param11, + u32 param12, + u32 param13, + u32 param14); +extern u8 FUN_020202A0(u32 param0); +extern u32 FUN_020094F0(u32 param0, u32 param1); +extern u32 FUN_02009E54(u32 param0, u32 param1); +extern u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); +extern u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2); +extern u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); +extern void FUN_02009CDC(u32 param0); +extern u32 FUN_020090AC( + u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +extern u32 FUN_02009530(u32 param0); +extern void FUN_02009490(u32 param0, u32 param1); +extern void FUN_0201D324(u32 param0); +extern void FUN_0201E1C8(u32 param0); +extern void FUN_020201E4(u32 param0, u32 param1); +extern u32 FUN_020201DC(u32 param0); +extern void FUN_020200BC(u32 param0, u32 param1); +extern void FUN_020200D8(u32 param0, u32 param1); +extern u32 FUN_02020388(u32 param0); +extern void FUN_02020208(u32 param0); +extern void FUN_0202022C(u32 param0); +extern void FUN_020200A0(u32 param0, u32 param1); +extern u8 FUN_02020128(u32 param0); +extern void FUN_02020248(u32 param0, u32 param1); +extern void FUN_020202A8(u32 param0, u32 param1); +extern u8 FUN_02020300(u32 param0); +extern void FUN_02020238(u32 param0, u8 param1); +extern u8 FUN_02020240(u32 param0); +extern void FUN_02020310(u32 param0, u32 param1); +extern u16 FUN_0202032C(u32 param0); +extern u32 FUN_02020380(u32 param0); +extern void FUN_02020044(u32 param0, u32 *param1); +extern u32 *FUN_0202011C(u32 param0, u16 *param1, u16 *param2); +extern void FUN_020200EC(u32 param0, u32 param1); +extern u32 *FUN_02020120(u32 param0); +extern void FUN_02020064(u32 param0, u32 param1); +extern void FUN_02020088(u32 param0, u16 param1); +extern u16 FUN_02020124(u32 param0); +extern void FUN_02020100(u32 param0, u32 param1); +extern void FUN_02020054(u32 param0, u32 *param1); +extern void FUN_02020358(u32 param0, u32 param1); +extern void FUN_02020398(u32 param0, u32 param1); +extern void FUN_02009AC4(u32 param0); +extern void FUN_02009B78(u32 param0); +extern void FUN_020090FC(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); +extern void FUN_02009BE8(u32 param0); +extern void FUN_02009168(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); +extern void FUN_02009DE0(u32 param0); + +THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id) +{ + struct UnkStruct1 *ptr = AllocFromHeap(heap_id, 0x138); + if (ptr == NULL) + { + return NULL; + } + + ptr->unk000 = heap_id; + ptr->unk004 = 0; + ptr->unk008 = 1; + + return ptr; +} + +THUMB_FUNC struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0) +{ + GF_ASSERT(param0 != NULL); + + struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, 0x58); + if (ptr == NULL) + { + return NULL; + } + + param0->unk004++; + + for (int i = 0; i < 6; i++) + { + ptr->unk0c[i] = 0; + } + + return ptr; +} + +THUMB_FUNC u32 FUN_0200BB68(u32 param0) +{ + return param0 + 0x10; +} + +THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3) +{ + GF_ASSERT(param0 != NULL); + + if (param0 == NULL) + { + return 0; + } + + u32 st14[4] = { param2[0], param2[1], param2[2], param0[0] }; + + FUN_0201D060(st14, param2[3], param2[4]); + FUN_0201E00C(param3, param0[0]); + NNS_G2dInitOamManagerModule(); + + if (param0[2] == 1) + { + FUN_02009EAC(param1[0], + param1[1], + param1[2], + param1[3], + param1[4], + param1[5], + param1[6], + param1[7], + param0[0]); + } + + param0[3] = FUN_0201C328(0x20, param0[0]); + FUN_0201D168(); + FUN_0201E0BC(); + + return 1; +} + +THUMB_FUNC u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2) +{ + if (param0 == NULL || param1 == NULL) + { + return 0; + } + + param1[0] = FUN_02008C9C(param2, param0 + 4, param0[0]); + + return 1; +} + +THUMB_FUNC void FUN_0200BC14(u32 param0) +{ + FUN_0201FFC8(param0); +} + +THUMB_FUNC void FUN_0200BC1C(u32 *param0) +{ + GF_ASSERT(param0 != NULL); + + FUN_0201FDEC(*param0); +} + +THUMB_FUNC void FUN_0200BC30() +{ + FUN_02009F80(); +} + +THUMB_FUNC void FUN_0200BC38() +{ + FUN_0201C348(); +} + +THUMB_FUNC void FUN_0200BC40(u32 *param0) +{ + FUN_0201FD58(*param0); +} + +THUMB_FUNC void FUN_0200BC4C(u32 *param0) +{ + if (param0[1] != 0) + { + FUN_02008C80(param0[1]); + } +} + +THUMB_FUNC void FUN_0200BC5C(u32 *param0) +{ + for (int i = 0; i < (int)param0[21]; i++) + { + FUN_020096B4(FUN_02009660(param0[2], i)); + } + + FreeToHeap(param0[2]); + FUN_02009C30(param0[9]); + FUN_02009E28(param0[10]); + + for (int i = 0; i < (int)param0[21]; i++) + { + FUN_02009448(param0[i + 9]); + FUN_02008E2C(param0[i + 3]); + } +} + +THUMB_FUNC void FUN_0200BCB0(u32 *param0) +{ + FUN_0201C350(param0[3]); + FUN_0201D12C(); + FUN_0201E08C(); + + if (param0[2] == 1) + { + FUN_02009FA0(); + } +} + +THUMB_FUNC void FUN_0200BCD0(u32 *param0, void *param1) +{ + param0[1]--; + FreeToHeap(param1); +} + +THUMB_FUNC void FUN_0200BCE0(u32 *param0, u32 *param1) +{ + FUN_0200BC40(param1); + FUN_0200BC4C(param1); + FUN_0200BC5C(param1); + FUN_0200BCD0(param0, param1); +} + +THUMB_FUNC void FUN_0200BD04(u32 *param0) +{ + GF_ASSERT(param0[1] == 0); + FUN_0200BCB0(param0); + FreeToHeap(param0); +} + +THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2) +{ + int st14 = 6; + u32 *st10 = param2; + + if (param0 == NULL || param1 == NULL) + { + return 0; + } + + if (param2[4] == 0) + { + st14 = 4; + } + + param1[21] = st14; + u32 r2 = FUN_0200965C(st14); + param1[2] = AllocFromHeap(param0[0], r2 * st14); + + for (int i = 0; i < st14; i++) + { + u32 st18 = FUN_02009660(param1[2], i); + u32 st1c = FUN_020161A4(param0[0], st10[i]); + + FUN_02009668(st1c, st18, param0[0]); + FreeToHeap(st1c); + } + + for (int i = 0; i < st14; i++) + { + param1[3 + i] = FUN_02008DEC(FUN_020096CC(FUN_02009660(param1[2], i)), i, param0[0]); + } + + for (int i = 0; i < st14; i++) + { + u32 st20 = FUN_02009660(param1[2], i); + param1[9 + i] = FUN_02009424(FUN_020096CC(st20), param0[0]); + param1[15 + i] = FUN_020093A8(param1[3 + i], st20, param1[9 + i], param0[0]); + } + + FUN_02009A90(param1[9]); + FUN_02009D34(param1[10]); + u32 r6 = FUN_020161A4(param0[0], st10[6]); + param1[1] = FUN_02008BE0( + r6, param0[0], param1[3], param1[4], param1[5], param1[6], param1[7], param1[8]); + FreeToHeap(r6); + + return 1; +} + +THUMB_FUNC u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2) +{ + return FUN_0200BE74(param0, + param1, + param2->unk00, + param2->unk04, + param2->unk06, + param2->unk04, + param2->unk0a, + param2->unk0c, + param2->unk10, + param2->unk14, + param2->unk18, + param2->unk1c, + param2->unk20, + param2->unk24); +} + +THUMB_FUNC u32 FUN_0200BE74(u32 *param0, + u32 *param1, + u32 param2, + s16 param3, + s16 param4, + s16 param5, + u16 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10, + u32 param11, + u32 param12, + u32 param13) +{ + + struct UnkStruct4 st0; + st0.unk00 = param1[0]; + st0.unk04 = *(u32 *)(param1[1]) + param2 * 0x24; + + float r0; + if (param3 > 0) + { + r0 = ((float)(param3 << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(param3 << 0xc) - (float)0.5); + } + st0.unk08 = r0; + + if (param4 > 0) + { + r0 = ((float)(param4 << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(param4 << 0xc) - (float)0.5); + } + st0.unk0c = r0; + + if (param5 > 0) + { + r0 = ((float)(param5 << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(param5 << 0xc) - (float)0.5); + } + st0.unk10 = r0; + + if (param9 == 2) + { + st0.unk0c += 0xC0000; + } + + st0.unk14 = 0x1000; + st0.unk18 = 0x1000; + st0.unk1c = 0x1000; + st0.unk20 = 0; + st0.unk24 = param7; + st0.unk28 = param9; + st0.unk2c = param0[0]; + + u32 r4 = FUN_0201FE94(&st0); + if (r4 != 0) + { + FUN_02020130(r4, param6); + + FUN_02020248(r4, param8); + } + + return r4; +} + +THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2) +{ + u32 *st0 = param0; + int i; + int st4 = 6; + + if (st0 == 0 || param1 == 0) + { + return 0; + } + + if (param2[4] == 0 || param2[5] == 0) + { + st4 = 4; + } + + param1[21] = st4; + + for (i = 0; i < st4; i++) + { + param1[3 + i] = FUN_02008DEC(param2[i], i, st0[0]); + } + + for (i = 0; i < st4; i++) + { + if (param2[i] != 0) + { + param1[9 + i] = FUN_02009424(param2[i], st0[0]); + param1[15 + i] = 0; + + for (int j = 0; j < (int)((u32 *)param1[9 + i])[1]; j++) + { + ((u32 *)(((u32 *)param1[9 + i])[0]))[j] = 0; + } + } + } + + return 1; +} + +THUMB_FUNC u32 FUN_0200C00C( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) +{ + if (FUN_0200945C(param1[3], param6) == 0) + { + return 0; + } + + u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + if (r5 != 0) + { + FUN_02009B04(r5); + FUN_0200C474(param1[9], r5); + return 1; + } + + ErrorHandling(); + if (r5 != 0) + { + return 1; + } + + return 0; +} + +THUMB_FUNC s32 FUN_0200C06C(u32 *param0, + u32 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7) +{ + if (FUN_0200945C(param1[4], param7) == 0) + { + return -1; + } + + u32 r5 = FUN_02008FEC(param1[4], param2, param3, param4, param7, param6, param5, param0[0]); + if (r5 != 0) + { + GF_ASSERT(FUN_02009D68(r5) == 1); + FUN_0200C474(param1[10], r5); + return (s8)FUN_02009E88(r5, param6); + } + + ErrorHandling(); + return -1; +} + +THUMB_FUNC u8 FUN_0200C0DC(u32 param0, + u32 param1, + u32 *param2, + u32 *param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9) +{ + s32 r4 = FUN_0200C06C(param2, param3, param4, param5, param6, param7, param8, param9); + if (r4 != -1) + { + FUN_02003108(param0, param1, r4 << 4, param7 << 5); + } + + return r4; +} + +THUMB_FUNC u32 FUN_0200C124( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) +{ + return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5); +} + +THUMB_FUNC u32 FUN_0200C13C( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) +{ + return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5); +} + +THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) +{ + struct UnkStruct4 st44; + s32 st2c[6]; + + u32 *ptr = AllocFromHeap(param0[0], 0x10); + if (ptr == NULL) + { + return 0; + } + + ptr[2] = AllocFromHeap(param0[0], 0x8); + if (ptr[2] == 0) + { + return 0; + } + + ((u32 *)ptr[2])[0] = AllocFromHeap(param0[0], 0x24); + ptr[1] = ((u32 *)ptr[2])[0]; + if (((u32 *)ptr[2])[0] == 0) + { + if (ptr[2] != 0) + { + FreeToHeap(ptr[2]); + } + + return 0; + } + + for (int i = 0; i < 6; i++) + { + st2c[i] = param2[5 + i]; + } + + if (param1[7] == 0 || param1[8] == 0) + { + st2c[4] = -1; + st2c[5] = -1; + } + else + { + if (st2c[4] != -1 && FUN_0200945C(param1[7], st2c[4]) == 0) + { + st2c[4] = -1; + } + + if (st2c[5] != -1 && FUN_0200945C(param1[8], st2c[5]) == 0) + { + st2c[5] = -1; + } + } + + FUN_02008AA4(ptr[1], + st2c[0], + st2c[1], + st2c[2], + st2c[3], + st2c[4], + st2c[5], + param2[12], + param2[11], + param1[3], + param1[4], + param1[5], + param1[6], + param1[7], + param1[8]); + + st44.unk00 = param1[0]; + st44.unk04 = ptr[1]; + float r0; + if (((s16 *)param2)[0] > 0) + { + r0 = ((float)(((s16 *)param2)[0] << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(((s16 *)param2)[0] << 0xc) - (float)0.5); + } + st44.unk08 = r0; + + if (((s16 *)param2)[1] > 0) + { + r0 = ((float)(((s16 *)param2)[1] << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(((s16 *)param2)[1] << 0xc) - (float)0.5); + } + st44.unk0c = r0; + + if (((s16 *)param2)[2] > 0) + { + r0 = ((float)(((s16 *)param2)[2] << 0xc) + (float)0.5); + } + else + { + r0 = ((float)(((s16 *)param2)[2] << 0xc) - (float)0.5); + } + st44.unk10 = r0; + + if (param2[4] == 2) + { + st44.unk0c += 0xC0000; + } + + st44.unk14 = 0x1000; + st44.unk18 = 0x1000; + st44.unk1c = 0x1000; + st44.unk20 = 0; + st44.unk24 = param2[2]; + st44.unk28 = param2[4]; + st44.unk2c = param0[0]; + + ptr[0] = FUN_0201FE94(&st44); + ptr[3] = param2[12]; + + if (ptr[0] != 0) + { + u8 r6 = FUN_020202A0(ptr[0]); + + FUN_02020130(ptr[0], ((u16 *)param2)[3]); + FUN_02020248(ptr[0], r6 + param2[3]); + } + else + { + ErrorHandling(); + } + + return ptr; +} + +THUMB_FUNC u32 FUN_0200C334(u32 *param0, u32 param1) +{ + return FUN_02009E54(FUN_020094F0(param0[4], param1), 0); +} + +THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2) +{ + return FUN_02009E88(FUN_020094F0(param0[4], param1), param2); +} + +THUMB_FUNC u32 FUN_0200C358(u32 *param0, u32 param1) +{ + return FUN_0200C4F4(param0[3], param0[9], param1); +} + +THUMB_FUNC u32 FUN_0200C368(u32 *param0, u32 param1) +{ + return FUN_0200C548(param0[4], param0[10], param1); +} + +THUMB_FUNC u32 FUN_0200C378(u32 *param0, u32 param1) +{ + return FUN_0200C4A8(param0[5], param0[11], param1); +} + +THUMB_FUNC u32 FUN_0200C388(u32 *param0, u32 param1) +{ + return FUN_0200C4A8(param0[6], param0[12], param1); +} + +THUMB_FUNC void FUN_0200C398(u32 param0, u32 *param1) +{ + FUN_0200BC40(param1); + FUN_02009C30(param1[9]); + FUN_02009E28(param1[10]); + + for (int i = 0; i < (int)param1[21]; i++) + { + FUN_02009448(param1[9 + i]); + FUN_02008E2C(param1[3 + i]); + } + + FUN_0200BCD0(param0, param1); +} + +THUMB_FUNC void FUN_0200C3DC(u32 *param0) +{ + if (param0[3] != 0) + { + FUN_02009CDC(*(u32 *)param0[1]); + } + + FUN_0201FFC8(param0[0]); + FUN_02008C80(param0[2]); + FreeToHeap(param0); +} + +THUMB_FUNC u32 FUN_0200C404( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) +{ + if (FUN_0200945C(param1[3 + param5], param6) == 0) + { + return 0; + } + + u32 r5 = FUN_020090AC(param1[3 + param5], param2, param3, param4, param6, param5, param0[0]); + if (r5 != 0) + { + u32 r4 = FUN_0200C474(param1[9 + param5], r5); + GF_ASSERT(r4 == 1); + return r4; + } + ErrorHandling(); + if (r5 != 0) + { + return 1; + } + + return 0; +} + +THUMB_FUNC u32 FUN_0200C474(u32 *param0, u32 param1) +{ + for (int i = 0; i < (int)param0[1]; i++) + { + if (((u32 *)param0[0])[i] == 0) + { + ((u32 *)param0[0])[i] = param1; + param0[2]++; + return TRUE; + } + } + + return FALSE; +} + +THUMB_FUNC u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) +{ + for (int i = 0; i < (int)param1[1]; i++) + { + if (((u32 *)param1[0])[i] != 0) + { + u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + if (r0 == param2) + { + + FUN_02009490(param0, ((u32 *)param1[0])[i]); + ((u32 *)param1[0])[i] = 0; + param1[2]--; + + return 1; + } + } + } + + return 0; +} + +THUMB_FUNC u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) +{ + for (int i = 0; i < (int)param1[1]; i++) + { + if (((u32 *)param1[0])[i] != 0) + { + u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + if (r0 == param2) + { + FUN_0201D324(param2); + + FUN_02009490(param0, ((u32 *)param1[0])[i]); + ((u32 *)param1[0])[i] = 0; + param1[2]--; + + return 1; + } + } + } + + return 0; +} + +THUMB_FUNC u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2) +{ + for (int i = 0; i < (int)param1[1]; i++) + { + if (((u32 *)param1[0])[i] != 0) + { + u32 r0 = FUN_02009530(((u32 *)param1[0])[i]); + if (r0 == param2) + { + FUN_0201E1C8(param2); + + FUN_02009490(param0, ((u32 *)param1[0])[i]); + ((u32 *)param1[0])[i] = 0; + param1[2]--; + + return 1; + } + } + } + + return 0; +} + +THUMB_FUNC void FUN_0200C59C(u32 param0) +{ + FUN_020201E4(param0, 0x1000); +} + +THUMB_FUNC void FUN_0200C5A8(u32 *param0) +{ + FUN_0200C59C(param0[0]); +} + +THUMB_FUNC void FUN_0200C5B4(u32 *param0, u32 param1) +{ + FUN_020201E4(param0[0], param1); +} + +THUMB_FUNC void FUN_0200C5C0(u32 *param0, u32 param1) +{ + FUN_02020130(param0[0], param1); +} + +THUMB_FUNC u32 FUN_0200C5CC(u32 *param0) +{ + return FUN_020201DC(param0[0]); +} + +THUMB_FUNC void FUN_0200C5D8(u32 param0, u32 param1) +{ + FUN_020200BC(param0, param1); +} + +THUMB_FUNC void FUN_0200C5E0(u32 *param0, u32 param1) +{ + FUN_0200C5D8(param0[0], param1); +} + +THUMB_FUNC void FUN_0200C5EC(u32 param0, u32 param1) +{ + FUN_020200D8(param0, param1); +} + +THUMB_FUNC void FUN_0200C5F4(u32 *param0, u32 param1) +{ + FUN_0200C5EC(*param0, param1); +} + +THUMB_FUNC u32 FUN_0200C600(u32 param0) +{ + return FUN_02020388(param0); +} + +THUMB_FUNC u32 FUN_0200C608(u32 *param0) +{ + return FUN_0200C600(*param0); +} + +THUMB_FUNC void FUN_0200C614(u32 param0) +{ + FUN_02020208(param0); +} + +THUMB_FUNC void FUN_0200C61C(u32 *param0) +{ + FUN_0200C614(*param0); +} + +THUMB_FUNC void FUN_0200C628(u32 param0) +{ + FUN_0202022C(param0); +} + +THUMB_FUNC void FUN_0200C630(u32 *param0) +{ + FUN_0200C628(*param0); +} + +THUMB_FUNC void FUN_0200C63C(u32 param0, u32 param1) +{ + FUN_020200A0(param0, param1); +} + +THUMB_FUNC void FUN_0200C644(u32 *param0, u32 param1) +{ + FUN_0200C63C(*param0, param1); +} + +THUMB_FUNC u8 FUN_0200C650(u32 param0) +{ + FUN_02020128(param0); +} + +THUMB_FUNC u8 FUN_0200C658(u32 *param0) +{ + FUN_0200C650(*param0); +} + +THUMB_FUNC void FUN_0200C664(u32 param0, u32 param1) +{ + FUN_02020248(param0, param1); +} + +THUMB_FUNC void FUN_0200C66C(u32 *param0, u32 param1) +{ + FUN_0200C664(*param0, param1); +} + +THUMB_FUNC void FUN_0200C678(u32 param0, u32 param1) +{ + FUN_020202A8(param0, param1); +} + +THUMB_FUNC void FUN_0200C680(u32 *param0, u32 param1) +{ + FUN_0200C678(*param0, param1); +} + +THUMB_FUNC u8 FUN_0200C68C(u32 *param0) +{ + return FUN_02020300(*param0); +} + +THUMB_FUNC void FUN_0200C698(u32 param0, u32 param1) +{ + FUN_02020238(param0, param1); +} + +THUMB_FUNC u8 FUN_0200C6A4(u32 *param0) +{ + return FUN_02020240(*param0); +} + +THUMB_FUNC void FUN_0200C6B0(u32 *param0, u32 param1) +{ + FUN_0200C698(*param0, param1); +} + +THUMB_FUNC void FUN_0200C6BC(u32 param0, u32 param1) +{ + FUN_02020310(param0, param1); +} + +THUMB_FUNC void FUN_0200C6C4(u32 *param0, u32 param1) +{ + FUN_0200C6BC(*param0, param1); +} + +THUMB_FUNC u16 FUN_0200C6D0(u32 param0) +{ + return FUN_0202032C(param0); +} + +THUMB_FUNC u16 FUN_0200C6D8(u32 *param0) +{ + return FUN_0200C6D0(*param0); +} + +THUMB_FUNC void FUN_0200C6E4(u32 param0, u32 param1, u32 param2) +{ + u32 st0[3]; + st0[0] = param1 << 12; + st0[1] = param2 << 12; + if (FUN_02020380(param0) == 2) + { + st0[1] += 0xc0000; + } + st0[2] = 0; + + FUN_02020044(param0, st0); +} + +THUMB_FUNC void FUN_0200C714(u32 *param0, u32 param1, u32 param2) +{ + FUN_0200C6E4(*param0, param1, param2); +} + +THUMB_FUNC void FUN_0200C720(u32 param0, u32 param1, u32 param2, u32 param3) +{ + u32 st0[3]; + + st0[0] = param1 << 12; + st0[1] = param2 << 12; + if (FUN_02020380(param0) == 2) + { + st0[1] += param3; + } + st0[2] = 0; + + FUN_02020044(param0, st0); +} + +THUMB_FUNC void FUN_0200C750(u32 *param0, u32 param1, u32 param2, u32 param3) +{ + FUN_0200C720(*param0, param1, param2, param3); +} + +THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2) +{ + u32 *r4 = FUN_0202011C(param0, param1, param2); + + param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc; + + if (FUN_02020380(param0) == 2) + { + u32 r1 = r4[1] - 0xc0000; + + param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc; + + return; + } + + param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc; +} + +THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2) +{ + FUN_0200C75C(*param0, param1, param2); +} + +THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3) +{ + u32 *r4 = FUN_0202011C(param0, param1, param2); + + param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc; + + if (FUN_02020380(param0) == 2) + { + u32 r1 = r4[1] - param3; + + param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc; + + return; + } + + param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc; +} + +THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3) +{ + FUN_0200C7AC(*param0, param1, param2, param3); +} + +THUMB_FUNC void FUN_0200C7FC(u32 param0, u16 *param1, u16 *param2) +{ + u32 st0[3]; + + u32 *r0 = FUN_0202011C(param0, param1, param2); + + st0[0] = r0[0] + ((u32)param1 << 0xc); + st0[1] = r0[1] + ((u32)param2 << 0xc); + st0[2] = r0[2]; + + FUN_02020044(param0, st0); +} + +THUMB_FUNC void FUN_0200C82C(u32 *param0, u16 *param1, u16 *param2) +{ + FUN_0200C7FC(*param0, param1, param2); +} + +THUMB_FUNC void FUN_0200C838(u32 param0, u32 param1) +{ + FUN_020200EC(param0, param1); +} + +THUMB_FUNC void FUN_0200C840(u32 *param0, u32 param1) +{ + FUN_0200C838(*param0, param1); +} + +THUMB_FUNC void FUN_0200C84C(u32 param0, f32 param1, f32 param2) +{ + int *r4 = FUN_02020120(param0); + + r4[0] = param1 * 0x1000; + r4[1] = param2 * 0x1000; + + FUN_02020064(param0, r4); +} + +THUMB_FUNC void FUN_0200C884(u32 *param0, f32 param1, f32 param2) +{ + FUN_0200C84C(*param0, param1, param2); +} + +THUMB_FUNC void FUN_0200C890(u32 param0, u16 param1) +{ + FUN_02020088(param0, param1); +} + +THUMB_FUNC void FUN_0200C898(u32 *param0, u16 param1) +{ + FUN_0200C890(*param0, param1); +} + +THUMB_FUNC void FUN_0200C8A4(u32 param0, u32 param1) +{ + u16 r0 = FUN_02020124(param0); + r0 += param1; + FUN_02020088(param0, r0); +} + +THUMB_FUNC void FUN_0200C8BC(u32 *param0, u32 param1) +{ + FUN_0200C8A4(*param0, param1); +} + +THUMB_FUNC void FUN_0200C8C8(u32 param0, u32 param1) +{ + FUN_02020100(param0, param1); +} + +THUMB_FUNC void FUN_0200C8D0(u32 *param0, u32 param1) +{ + FUN_0200C8C8(*param0, param1); +} + +THUMB_FUNC void FUN_0200C8DC(u32 *param0, u32 param1, u32 param2) +{ + u32 st0[3]; + st0[0] = param1 << 12; + st0[1] = param2 << 12; + st0[2] = 0; + + FUN_02020054(*param0, st0); +} + +THUMB_FUNC void FUN_0200C8F8(u32 *param0, u32 param1) +{ + FUN_02020358(*param0, param1); +} + +THUMB_FUNC void FUN_0200C904(u32 param0, u32 param1) +{ + FUN_02020398(param0, param1); +} + +THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) +{ + FUN_0200C904(*param0, param1); +} + +THUMB_FUNC u32 FUN_0200C918( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) +{ + if (FUN_0200945C(param1[3], param6) == 0) + { + return 0; + } + + u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + if (r5 != 0) + { + FUN_02009AC4(r5); + FUN_0200C474(param1[9], r5); + + return 1; + } + + ErrorHandling(); + if (r5 != 0) + { + return 1; + } + + return 0; +} + +THUMB_FUNC u32 FUN_0200C978( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) +{ + if (FUN_0200945C(param1[3], param6) == 0) + { + return 0; + } + + u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + if (r5 != 0) + { + FUN_02009B78(r5); + FUN_0200C474(param1[9], r5); + + return 1; + } + + ErrorHandling(); + if (r5 != 0) + { + return 1; + } + + return 0; +} + +THUMB_FUNC void FUN_0200C9D8( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) +{ + u32 r6 = FUN_020094F0(param1[3], param5); + FUN_020090FC(param1[3], r6, param2, param3, param4, param0[0]); + + FUN_02009BE8(r6); +} + +THUMB_FUNC void FUN_0200CA0C( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) +{ + u32 r6 = FUN_020094F0(param1[4], param5); + FUN_02009168(param1[4], r6, param2, param3, param4, param0[0]); + + FUN_02009DE0(r6); +} + +THUMB_FUNC u32 FUN_0200CA40(u32 *param0) +{ + return *param0; +} diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h new file mode 100644 index 000000000..973a9a65d --- /dev/null +++ b/include/unk_0200BB14.h @@ -0,0 +1,181 @@ +#include "global.h" + +struct UnkStruct1 +{ + u32 unk000; + u32 unk004; + u32 unk008; + u8 unk00c[0x12c]; +}; + +struct UnkStruct2 +{ + u8 unk00[0xc]; + u32 unk0c[6]; + u8 unk24[0x34]; +}; + +struct UnkStruct3 +{ + u32 unk00; + s16 unk04; + s16 unk06; + u16 unk08; + u16 unk0a; + u32 unk0c; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1c; + u32 unk20; + u32 unk24; +}; + +struct UnkStruct4 +{ + u32 unk00; + u32 unk04; + s32 unk08; + s32 unk0c; + s32 unk10; + u32 unk14; + u32 unk18; + u32 unk1c; + u16 unk20; + u32 unk24; + u32 unk28; + u32 unk2c; +}; + +struct UnkStruct1 *FUN_0200BB14(u32 heap_id); +struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0); +u32 FUN_0200BB68(u32 param0); +u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3); +u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2); +void FUN_0200BC14(u32 param0); +void FUN_0200BC1C(u32 *param0); +void FUN_0200BC30(); +void FUN_0200BC38(); +void FUN_0200BC40(u32 *param0); +void FUN_0200BC4C(u32 *param0); +void FUN_0200BC5C(u32 *param0); +void FUN_0200BCB0(u32 *param0); +void FUN_0200BCD0(u32 *param0, void *param1); +void FUN_0200BCE0(u32 *param0, u32 *param1); +void FUN_0200BD04(u32 *param0); +u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2); +u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2); +u32 FUN_0200BE74(u32 *param0, + u32 *param1, + u32 param2, + s16 param3, + s16 param4, + s16 param5, + u16 param6, + u32 param7, + u32 param8, + u32 param9, + u32 param10, + u32 param11, + u32 param12, + u32 param13); +u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2); +u32 FUN_0200C00C( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +s32 FUN_0200C06C(u32 *param0, + u32 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7); +u8 FUN_0200C0DC(u32 param0, + u32 param1, + u32 *param2, + u32 *param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7, + u32 param8, + u32 param9); +u32 FUN_0200C124(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); +u32 FUN_0200C13C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); +u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2); +u32 FUN_0200C334(u32 *param0, u32 param1); +u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2); +u32 FUN_0200C358(u32 *param0, u32 param1); +u32 FUN_0200C368(u32 *param0, u32 param1); +u32 FUN_0200C378(u32 *param0, u32 param1); +u32 FUN_0200C388(u32 *param0, u32 param1); +void FUN_0200C398(u32 param0, u32 *param1); +void FUN_0200C3DC(u32 *param0); +u32 FUN_0200C404( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +u32 FUN_0200C474(u32 *param0, u32 param1); +u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); +u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); +u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2); +void FUN_0200C59C(u32 param0); +void FUN_0200C5A8(u32 *param0); +void FUN_0200C5B4(u32 *param0, u32 param1); +void FUN_0200C5C0(u32 *param0, u32 param1); +u32 FUN_0200C5CC(u32 *param0); +void FUN_0200C5D8(u32 param0, u32 param1); +void FUN_0200C5E0(u32 *param0, u32 param1); +void FUN_0200C5EC(u32 param0, u32 param1); +void FUN_0200C5F4(u32 *param0, u32 param1); +u32 FUN_0200C600(u32 param0); +u32 FUN_0200C608(u32 *param0); +void FUN_0200C614(u32 param0); +void FUN_0200C61C(u32 *param0); +void FUN_0200C628(u32 param0); +void FUN_0200C630(u32 *param0); +void FUN_0200C63C(u32 param0, u32 param1); +void FUN_0200C644(u32 *param0, u32 param1); +u8 FUN_0200C650(u32 param0); +u8 FUN_0200C658(u32 *param0); +void FUN_0200C664(u32 param0, u32 param1); +void FUN_0200C66C(u32 *param0, u32 param1); +void FUN_0200C678(u32 param0, u32 param1); +void FUN_0200C680(u32 *param0, u32 param1); +u8 FUN_0200C68C(u32 *param0); +void FUN_0200C698(u32 param0, u32 param1); +u8 FUN_0200C6A4(u32 *param0); +void FUN_0200C6B0(u32 *param0, u32 param1); +void FUN_0200C6BC(u32 param0, u32 param1); +void FUN_0200C6C4(u32 *param0, u32 param1); +u16 FUN_0200C6D0(u32 param0); +u16 FUN_0200C6D8(u32 *param0); +void FUN_0200C6E4(u32 param0, u32 param1, u32 param2); +void FUN_0200C714(u32 *param0, u32 param1, u32 param2); +void FUN_0200C720(u32 param0, u32 param1, u32 param2, u32 param3); +void FUN_0200C750(u32 *param0, u32 param1, u32 param2, u32 param3); +void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2); +void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2); +void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3); +void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3); +void FUN_0200C7FC(u32 param0, u16 *param1, u16 *param2); +void FUN_0200C82C(u32 *param0, u16 *param1, u16 *param2); +void FUN_0200C838(u32 param0, u32 param1); +void FUN_0200C840(u32 *param0, u32 param1); +void FUN_0200C84C(u32 param0, f32 param1, f32 param2); +void FUN_0200C884(u32 *param0, f32 param1, f32 param2); +void FUN_0200C890(u32 param0, u16 param1); +void FUN_0200C898(u32 *param0, u16 param1); +void FUN_0200C8A4(u32 param0, u32 param1); +void FUN_0200C8BC(u32 *param0, u32 param1); +void FUN_0200C8C8(u32 param0, u32 param1); +void FUN_0200C8D0(u32 *param0, u32 param1); +void FUN_0200C8DC(u32 *param0, u32 param1, u32 param2); +void FUN_0200C8F8(u32 *param0, u32 param1); +void FUN_0200C904(u32 param0, u32 param1); +void FUN_0200C90C(u32 *param0, u32 param1); +u32 FUN_0200C918( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +u32 FUN_0200C978( + u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); +void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); +void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); +u32 FUN_0200CA40(u32 *param0); From 1aad76b774edbd598fb024d67cf54e7973ade8db Mon Sep 17 00:00:00 2001 From: red031000 Date: Mon, 31 May 2021 21:12:03 +0100 Subject: [PATCH 126/134] document a lot of scrcmd commands --- arm9/arm9.lsf | 6 +- arm9/asm/unk_020051F4.s | 4 +- arm9/asm/unk_02038C78.s | 148 ++++++++--------- arm9/asm/unk_0206C700.s | 4 +- arm9/asm/unk_02072548.s | 2 +- arm9/asm/unk_02086FA8.s | 4 +- arm9/global.inc | 152 ++++++++--------- arm9/modules/06/asm/module_06.s | 2 +- arm9/modules/11/asm/module_11_thumb2.s | 4 +- arm9/modules/76/asm/module_76.s | 2 +- arm9/modules/81/asm/module_81.s | 2 +- arm9/src/scrcmd.c | 8 +- arm9/src/scrcmd_8.c | 21 +-- .../src/{scrcmd_11.c => scrcmd_berry_trees.c} | 18 +- arm9/src/scrcmd_coins.c | 6 +- arm9/src/scrcmd_daycare.c | 10 +- arm9/src/scrcmd_flags.c | 48 +++--- arm9/src/{scrcmd_19.c => scrcmd_fossils.c} | 38 ++--- arm9/src/scrcmd_money.c | 6 +- arm9/src/scrcmd_names.c | 18 +- arm9/src/scrcmd_sound.c | 38 ++--- .../src/{scrcmd_23.c => scrcmd_underground.c} | 32 ++-- include/scrcmd.h | 156 +++++++++--------- 23 files changed, 365 insertions(+), 364 deletions(-) rename arm9/src/{scrcmd_11.c => scrcmd_berry_trees.c} (80%) rename arm9/src/{scrcmd_19.c => scrcmd_fossils.c} (54%) rename arm9/src/{scrcmd_23.c => scrcmd_underground.c} (79%) diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index f68d36338..8846ec2c2 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -166,7 +166,7 @@ Static arm9 Object scrcmd_8.o Object scrcmd_9.o Object scrcmd_10.o - Object scrcmd_11.o + Object scrcmd_berry_trees.o Object scrcmd_12.o Object scrcmd_13.o Object scrcmd_coins.o @@ -175,11 +175,11 @@ Static arm9 Object scrcmd_17.o Object scrcmd_18_c.o Object scrcmd_18.o - Object scrcmd_19.o + Object scrcmd_fossils.o Object scrcmd_20.o Object scrcmd_flags.o Object scrcmd_items.o - Object scrcmd_23.o + Object scrcmd_underground.o Object scrcmd_24.o Object scrcmd_25.o Object unk_02046030.o diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s index 215e56c07..c2d91fe97 100644 --- a/arm9/asm/unk_020051F4.s +++ b/arm9/asm/unk_020051F4.s @@ -1216,8 +1216,8 @@ FUN_02005BF8: ; 0x02005BF8 pop {r3-r6, pc} .balign 4 - thumb_func_start PlayBGM -PlayBGM: ; 0x02005C28 + thumb_func_start PlaySound +PlaySound: ; 0x02005C28 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020048F4 diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 06140345c..a21e170ab 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -199,9 +199,9 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk002F .word ScrCmd_WaitButtonAB .word ScrCmd_WaitButton - .word ScrCmd_Unk0032 + .word ScrCmd_WaitButtonABPad .word ScrCmd_Unk0033 - .word ScrCmd_Unk0034 + .word ScrCmd_CloseMessageBox .word ScrCmd_Unk0035 .word ScrCmd_CreateMessageBox .word ScrCmd_Unk0037 @@ -222,26 +222,26 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0046 .word ScrCmd_Unk0047 .word ScrCmd_Unk0048 - .word ScrCmd_Unk0049 - .word ScrCmd_Unk004A - .word ScrCmd_Unk004B - .word ScrCmd_Unk004C + .word ScrCmd_PlayFanfare + .word ScrCmd_StopFanfare + .word ScrCmd_PlayFanfareWait + .word ScrCmd_PlayCry .word ScrCmd_PlayCryWait + .word ScrCmd_PlaySound + .word ScrCmd_PlaySoundWait .word ScrCmd_PlayBgm - .word ScrCmd_Unk004F - .word ScrCmd_Unk0050 - .word ScrCmd_Unk0051 - .word ScrCmd_Unk0052 + .word ScrCmd_StopBgm + .word ScrCmd_PlayDefaultBgm .word ScrCmd_Unk0053 - .word ScrCmd_Unk0054 - .word ScrCmd_Unk0055 + .word ScrCmd_FadeOutBgm + .word ScrCmd_FadeInBgm .word ScrCmd_Unk0056 .word ScrCmd_Unk0057 .word ScrCmd_Unk0058 - .word ScrCmd_Unk0059 - .word ScrCmd_Unk005A - .word ScrCmd_Unk005B - .word ScrCmd_Unk005C + .word ScrCmd_CheckChatotCry + .word ScrCmd_StartChatotRecord + .word ScrCmd_StopChatotRecord + .word ScrCmd_SaveChatotCry .word ScrCmd_Unk005D .word ScrCmd_Unk005E .word ScrCmd_Unk005F @@ -263,12 +263,12 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_GiveMoney .word ScrCmd_TakeMoneyImmediate .word ScrCmd_HasEnoughMoneyImmediate - .word ScrCmd_Unk0072 - .word ScrCmd_Unk0073 - .word ScrCmd_Unk0074 - .word ScrCmd_Unk0075 - .word ScrCmd_Unk0076 - .word ScrCmd_Unk0077 + .word ScrCmd_ShowMoneyBox + .word ScrCmd_HideMoneyBox + .word ScrCmd_UpdateMoneyBox + .word ScrCmd_ShowCoinBox + .word ScrCmd_HideCoinBox + .word ScrCmd_UpdateCoinBox .word ScrCmd_GetCoins .word ScrCmd_GiveCoins .word ScrCmd_TakeCoinsImmediate @@ -280,22 +280,22 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_GetItemPocketId .word ScrCmd_Unk0081 .word ScrCmd_Unk0082 - .word ScrCmd_Unk0083 - .word ScrCmd_Unk0084 - .word ScrCmd_Unk0085 - .word ScrCmd_Unk0086 - .word ScrCmd_Unk0087 - .word ScrCmd_Unk0088 - .word ScrCmd_Unk0089 - .word ScrCmd_Unk008A - .word ScrCmd_Unk008B - .word ScrCmd_Unk008C - .word ScrCmd_Unk008D - .word ScrCmd_Unk008E - .word ScrCmd_Unk008F - .word ScrCmd_Unk0090 - .word ScrCmd_Unk0091 - .word ScrCmd_Unk0092 + .word ScrCmd_GiveSecretBaseDecoration + .word ScrCmd_TakeSecretBaseDecoration + .word ScrCmd_HasSpaceForDecoration + .word ScrCmd_GetDecorationCount + .word ScrCmd_GiveUndergroundTrap + .word ScrCmd_TakeUndergroundTrap + .word ScrCmd_HasSpaceForTrap + .word ScrCmd_GetTrapCount + .word ScrCmd_GiveTreasure + .word ScrCmd_TakeTreasure + .word ScrCmd_HasSpaceForTreasure + .word ScrCmd_GetTreasureCount + .word ScrCmd_GiveUndergroundSphere + .word ScrCmd_TakeUndergroundSphere + .word ScrCmd_HasSpaceForSphere + .word ScrCmd_GetSphereCount .word ScrCmd_Unk0093 .word ScrCmd_Unk0094 .word ScrCmd_Unk0095 @@ -357,25 +357,25 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_GetPlayerName .word ScrCmd_GetRivalName .word ScrCmd_GetFriendName - .word ScrCmd_Unk00D0 + .word ScrCmd_GetPokemonName .word ScrCmd_GetItemName .word ScrCmd_GetPocketName .word ScrCmd_GetTMHMMoveName .word ScrCmd_GetMoveName .word ScrCmd_Unk00D5 - .word ScrCmd_Unk00D6 + .word ScrCmd_GetPokemonNickname .word ScrCmd_GetPoketchAppName .word ScrCmd_GetTrainerClassName .word ScrCmd_Unk00D9 .word ScrCmd_Unk00DA - .word ScrCmd_Unk00DB - .word ScrCmd_Unk00DC - .word ScrCmd_Unk00DD + .word ScrCmd_GetPlayerStarterName + .word ScrCmd_GetRivalStarterName + .word ScrCmd_GetCounterpartStarterName .word ScrCmd_Unk00DE .word ScrCmd_GetDecorationName .word ScrCmd_GetUndergroundTrapName .word ScrCmd_GetUndergroundItemName - .word ScrCmd_Unk00E2 + .word ScrCmd_GetMapName .word ScrCmd_Unk00E3 .word ScrCmd_Unk00E4 .word ScrCmd_Unk00E5 @@ -494,28 +494,28 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0156 .word ScrCmd_HasSinnohDex .word ScrCmd_GiveSinnohDex - .word ScrCmd_Unk0159 - .word ScrCmd_Unk015A + .word ScrCmd_HasRunningShoes + .word ScrCmd_GiveRunningShoes .word ScrCmd_HasBadge .word ScrCmd_GiveBadge .word ScrCmd_GetTotalEarnedBadges - .word ScrCmd_Unk015E - .word ScrCmd_Unk015F + .word ScrCmd_GiveBag + .word ScrCmd_HasBag .word ScrCmd_Unk0160 .word ScrCmd_Unk0161 .word ScrCmd_Unk0162 .word ScrCmd_Unk0163 .word ScrCmd_Unk0164 .word ScrCmd_Unk0165 - .word ScrCmd_Unk0166 - .word ScrCmd_Unk0167 + .word ScrCmd_CheckGameCompleted + .word ScrCmd_SetGameCompleted .word ScrCmd_Unk0168 .word ScrCmd_Unk0169 .word ScrCmd_Unk016A .word ScrCmd_Unk016B .word ScrCmd_Unk016C - .word ScrCmd_Unk016D - .word ScrCmd_Unk016E + .word ScrCmd_GetDaycarePokemonNames + .word ScrCmd_GetDaycareStatus .word ScrCmd_Unk016F .word ScrCmd_Unk0170 .word ScrCmd_Unk0171 @@ -528,17 +528,17 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0178 .word ScrCmd_Unk0179 .word ScrCmd_Unk017A - .word ScrCmd_Unk017B + .word ScrCmd_GetBerryName .word ScrCmd_GetNatureName - .word ScrCmd_Unk017D - .word ScrCmd_Unk017E - .word ScrCmd_Unk017F - .word ScrCmd_Unk0180 - .word ScrCmd_Unk0181 - .word ScrCmd_Unk0182 - .word ScrCmd_Unk0183 + .word ScrCmd_GetBerryTreeGrowth + .word ScrCmd_GetBerryTreeType + .word ScrCmd_GetBerryTreeMulch + .word ScrCmd_GetBerryTreeWater + .word ScrCmd_GetBerryTreeAmount + .word ScrCmd_SetBerryTreeMulch + .word ScrCmd_SetBerryTreeType .word ScrCmd_Unk0184 - .word ScrCmd_Unk0185 + .word ScrCmd_TakeBerryTreeBerries .word ScrCmd_Unk0186 .word ScrCmd_Unk0187 .word ScrCmd_Unk0188 @@ -573,13 +573,13 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk01A5 .word ScrCmd_Unk01A6 .word ScrCmd_Unk01A7 - .word ScrCmd_Unk01A8 - .word ScrCmd_Unk01A9 + .word ScrCmd_DeleteDaycareEgg + .word ScrCmd_GiveDaycareEgg .word ScrCmd_Unk01AA .word ScrCmd_HasEnoughMoneyAddress .word ScrCmd_Unk01AC .word ScrCmd_Unk01AD - .word ScrCmd_Unk01AE + .word ScrCmd_GetDaycareLevel .word ScrCmd_Unk01AF .word ScrCmd_Unk01B0 .word ScrCmd_Unk01B1 @@ -612,9 +612,9 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk01CC .word ScrCmd_Unk01CD .word ScrCmd_Unk01CE - .word ScrCmd_Unk01CF - .word ScrCmd_Unk01D0 - .word ScrCmd_Unk01D1 + .word ScrCmd_GetSetStrength + .word ScrCmd_GetSetFlash + .word ScrCmd_GetSetDefog .word ScrCmd_Unk01D2 .word ScrCmd_Unk01D3 .word ScrCmd_Unk01D4 @@ -646,11 +646,11 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk01EE .word ScrCmd_Unk01EF .word ScrCmd_Unk01F0 - .word ScrCmd_Unk01F1 + .word ScrCmd_CountFossils .word ScrCmd_Unk01F2 .word ScrCmd_Unk01F3 - .word ScrCmd_Unk01F4 - .word ScrCmd_Unk01F5 + .word ScrCmd_GetFossilPokemon + .word ScrCmd_GetFossilMinimumAmount .word ScrCmd_CountPartyMonsAtOrBelowLevel .word ScrCmd_SurvivePsn .word ScrCmd_Unk01F8 @@ -711,7 +711,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk022F .word ScrCmd_Unk0230 .word ScrCmd_Unk0231 - .word ScrCmd_Unk0232 + .word ScrCmd_GetRibbonName .word ScrCmd_Unk0233 .word ScrCmd_Unk0234 .word ScrCmd_Unk0235 @@ -770,12 +770,12 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk026A .word ScrCmd_Unk026B .word ScrCmd_Unk026C - .word ScrCmd_Unk026D + .word ScrCmd_MessageUnown .word ScrCmd_Unk026E .word ScrCmd_Unk026F .word ScrCmd_Unk0270 .word ScrCmd_Unk0271 - .word ScrCmd_Unk0272 + .word ScrCmd_GetWhiteRockInscription .word ScrCmd_Unk0273 .word ScrCmd_HasEnoughCoinsImmediate .word ScrCmd_Unk0275 @@ -792,7 +792,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk0280 .word ScrCmd_Unk0281 .word ScrCmd_Unk0282 - .word ScrCmd_Unk0283 + .word ScrCmd_SetVolume .word ScrCmd_Unk0284 .word ScrCmd_Unk0285 .word ScrCmd_Unk0286 diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s index 2499c1083..3a2bfac61 100644 --- a/arm9/asm/unk_0206C700.s +++ b/arm9/asm/unk_0206C700.s @@ -2719,7 +2719,7 @@ _0206DDDC: b _0206DDFA _0206DDE4: ldr r0, _0206DE00 ; =0x00000484 - bl PlayBGM + bl PlaySound b _0206DDFA _0206DDEC: ldr r0, _0206DE04 ; =0x000005E6 @@ -2727,7 +2727,7 @@ _0206DDEC: b _0206DDFA _0206DDF4: ldr r0, _0206DE08 ; =0x00000483 - bl PlayBGM + bl PlaySound _0206DDFA: add r0, r4, #0x0 pop {r4, pc} diff --git a/arm9/asm/unk_02072548.s b/arm9/asm/unk_02072548.s index 7cbbce8fd..a08d279d8 100644 --- a/arm9/asm/unk_02072548.s +++ b/arm9/asm/unk_02072548.s @@ -1717,7 +1717,7 @@ _020732A6: b _020732BE _020732AE: ldr r0, _020732C8 ; =0x00000483 - bl PlayBGM + bl PlaySound b _020732BE _020732B6: ldr r0, _020732C4 ; =0x000005E6 diff --git a/arm9/asm/unk_02086FA8.s b/arm9/asm/unk_02086FA8.s index f164c88f5..5e0a8dfac 100644 --- a/arm9/asm/unk_02086FA8.s +++ b/arm9/asm/unk_02086FA8.s @@ -185,7 +185,7 @@ _0208710E: cmp r0, #0x0 bne _0208712A ldr r0, _02087244 ; =0x00000484 - bl PlayBGM + bl PlaySound ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] @@ -470,7 +470,7 @@ _02087362: cmp r0, #0x0 bne _0208737E ldr r0, _02087498 ; =0x00000484 - bl PlayBGM + bl PlaySound ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] diff --git a/arm9/global.inc b/arm9/global.inc index bb0db5601..9b83478e5 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -360,7 +360,7 @@ .extern FUN_02005614 .extern FUN_02005670 .extern FUN_020056AC -.extern PlayBGM +.extern PlaySound .extern FUN_02005CBC .extern FUN_02005CFC .extern FUN_02005D20 @@ -2745,7 +2745,7 @@ .extern ScrCmd_Unk01FD .extern ScrCmd_Unk01FE .extern ScrCmd_Unk01FF -.extern ScrCmd_Unk026D +.extern ScrCmd_MessageUnown .extern ScrCmd_Unk002C .extern ScrCmd_Unk002D .extern ScrCmd_Unk02C0 @@ -2755,9 +2755,9 @@ .extern ScrCmd_WaitButtonAB .extern ScrCmd_WaitButtonABTime .extern ScrCmd_WaitButton -.extern ScrCmd_Unk0032 +.extern ScrCmd_WaitButtonABPad .extern ScrCmd_Unk0033 -.extern ScrCmd_Unk0034 +.extern ScrCmd_CloseMessageBox .extern ScrCmd_Unk0035 .extern ScrCmd_ScrollBg .extern ScrCmd_CreateMessageBox @@ -3155,32 +3155,32 @@ .extern ScrCmd_GetPlayerName .extern ScrCmd_GetRivalName .extern ScrCmd_GetFriendName -.extern ScrCmd_Unk00D0 +.extern ScrCmd_GetPokemonName .extern ScrCmd_GetItemName .extern ScrCmd_GetPocketName .extern ScrCmd_GetTMHMMoveName .extern ScrCmd_GetMoveName .extern ScrCmd_Unk00D5 .extern ScrCmd_Unk0280 -.extern ScrCmd_Unk00D6 +.extern ScrCmd_GetPokemonNickname .extern ScrCmd_Unk0251 .extern ScrCmd_GetPoketchAppName .extern ScrCmd_GetTrainerClassName .extern ScrCmd_Unk00D9 .extern ScrCmd_Unk00DA -.extern ScrCmd_Unk00DB -.extern ScrCmd_Unk00DC -.extern ScrCmd_Unk00DD +.extern ScrCmd_GetPlayerStarterName +.extern ScrCmd_GetRivalStarterName +.extern ScrCmd_GetCounterpartStarterName .extern ScrCmd_GetDecorationName .extern ScrCmd_GetUndergroundTrapName .extern ScrCmd_GetUndergroundItemName -.extern ScrCmd_Unk00E2 -.extern ScrCmd_Unk017B +.extern ScrCmd_GetMapName +.extern ScrCmd_GetBerryName .extern ScrCmd_GetNatureName .extern ScrCmd_GetFashionName -.extern ScrCmd_Unk0272 +.extern ScrCmd_GetWhiteRockInscription .extern ScrCmd_GetPokemonMoveName -.extern ScrCmd_Unk0232 +.extern ScrCmd_GetRibbonName .extern ScrCmd_GetSealName .extern ScrCmd_GetItemNameWithIndefArticle .extern ScrCmd_GetItemNamePlural @@ -3197,28 +3197,28 @@ .extern ScrCmd_Unk024F .extern ScrCmd_Unk0250 .extern ScrCmd_Unk02AE -.extern ScrCmd_Unk0050 -.extern ScrCmd_Unk0051 -.extern ScrCmd_Unk0052 +.extern ScrCmd_PlayBgm +.extern ScrCmd_StopBgm +.extern ScrCmd_PlayDefaultBgm .extern ScrCmd_Unk0053 -.extern ScrCmd_Unk0054 -.extern ScrCmd_Unk0055 +.extern ScrCmd_FadeOutBgm +.extern ScrCmd_FadeInBgm .extern ScrCmd_Unk0056 .extern ScrCmd_Unk0057 .extern ScrCmd_Unk0058 -.extern ScrCmd_Unk0049 -.extern ScrCmd_Unk004A -.extern ScrCmd_Unk004B -.extern ScrCmd_Unk004C +.extern ScrCmd_PlayFanfare +.extern ScrCmd_StopFanfare +.extern ScrCmd_PlayFanfareWait +.extern ScrCmd_PlayCry .extern ScrCmd_PlayCryWait -.extern ScrCmd_PlayBgm -.extern ScrCmd_Unk004F -.extern ScrCmd_Unk0059 -.extern ScrCmd_Unk005A -.extern ScrCmd_Unk005B -.extern ScrCmd_Unk005C +.extern ScrCmd_PlaySound +.extern ScrCmd_PlaySoundWait +.extern ScrCmd_CheckChatotCry +.extern ScrCmd_StartChatotRecord +.extern ScrCmd_StopChatotRecord +.extern ScrCmd_SaveChatotCry .extern ScrCmd_Unk005D -.extern ScrCmd_Unk0283 +.extern ScrCmd_SetVolume .extern ScrCmd_Unk00B6 .extern ScrCmd_Unk00B7 .extern ScrCmd_Unk00B8 @@ -3264,23 +3264,23 @@ .extern ScrCmd_Unk0299 .extern ScrCmd_Unk029A .extern ScrCmd_Unk029B -.extern ScrCmd_Unk017D -.extern ScrCmd_Unk017E -.extern ScrCmd_Unk017F -.extern ScrCmd_Unk0180 -.extern ScrCmd_Unk0181 -.extern ScrCmd_Unk0182 -.extern ScrCmd_Unk0183 +.extern ScrCmd_GetBerryTreeGrowth +.extern ScrCmd_GetBerryTreeType +.extern ScrCmd_GetBerryTreeMulch +.extern ScrCmd_GetBerryTreeWater +.extern ScrCmd_GetBerryTreeAmount +.extern ScrCmd_SetBerryTreeMulch +.extern ScrCmd_SetBerryTreeType .extern ScrCmd_Unk0184 -.extern ScrCmd_Unk0185 +.extern ScrCmd_TakeBerryTreeBerries .extern ScrCmd_Unk023E .extern ScrCmd_Unk0253 .extern ScrCmd_Unk0254 .extern ScrCmd_Unk0255 .extern ScrCmd_Unk0256 -.extern ScrCmd_Unk0075 -.extern ScrCmd_Unk0076 -.extern ScrCmd_Unk0077 +.extern ScrCmd_ShowCoinBox +.extern ScrCmd_HideCoinBox +.extern ScrCmd_UpdateCoinBox .extern ScrCmd_GetCoins .extern ScrCmd_GiveCoins .extern ScrCmd_TakeCoinsImmediate @@ -3293,16 +3293,16 @@ .extern ScrCmd_TakeMoneyAddress .extern ScrCmd_HasEnoughMoneyImmediate .extern ScrCmd_HasEnoughMoneyAddress -.extern ScrCmd_Unk0072 -.extern ScrCmd_Unk0073 -.extern ScrCmd_Unk0074 -.extern ScrCmd_Unk016D -.extern ScrCmd_Unk016E -.extern ScrCmd_Unk01A8 -.extern ScrCmd_Unk01A9 +.extern ScrCmd_ShowMoneyBox +.extern ScrCmd_HideMoneyBox +.extern ScrCmd_UpdateMoneyBox +.extern ScrCmd_GetDaycarePokemonNames +.extern ScrCmd_GetDaycareStatus +.extern ScrCmd_DeleteDaycareEgg +.extern ScrCmd_GiveDaycareEgg .extern ScrCmd_Unk01A4 .extern ScrCmd_Unk01AA -.extern ScrCmd_Unk01AE +.extern ScrCmd_GetDaycareLevel .extern ScrCmd_Unk01AF .extern ScrCmd_Unk01B0 .extern ScrCmd_Unk01BC @@ -3352,32 +3352,32 @@ .extern ScrCmd_Unk0231 .extern ScrCmd_Unk02B7 .extern ScrCmd_Unk00A0 -.extern ScrCmd_Unk01F1 -.extern ScrCmd_Unk01F4 -.extern ScrCmd_Unk01F5 +.extern ScrCmd_CountFossils +.extern ScrCmd_GetFossilPokemon +.extern ScrCmd_GetFossilMinimumAmount .extern ScrCmd_Unk01F2 .extern ScrCmd_Unk01F3 .extern ScrCmd_Unk02A6 .extern ScrCmd_HasSinnohDex .extern ScrCmd_GiveSinnohDex -.extern ScrCmd_Unk0159 -.extern ScrCmd_Unk015A +.extern ScrCmd_HasRunningShoes +.extern ScrCmd_GiveRunningShoes .extern ScrCmd_HasBadge .extern ScrCmd_GiveBadge -.extern ScrCmd_Unk015E +.extern ScrCmd_GiveBag .extern ScrCmd_GetTotalEarnedBadges -.extern ScrCmd_Unk015F +.extern ScrCmd_HasBag .extern ScrCmd_Unk0160 .extern ScrCmd_Unk0161 .extern ScrCmd_Unk0162 .extern ScrCmd_Unk0163 .extern ScrCmd_Unk0164 .extern ScrCmd_Unk0165 -.extern ScrCmd_Unk0166 -.extern ScrCmd_Unk0167 -.extern ScrCmd_Unk01CF -.extern ScrCmd_Unk01D0 -.extern ScrCmd_Unk01D1 +.extern ScrCmd_CheckGameCompleted +.extern ScrCmd_SetGameCompleted +.extern ScrCmd_GetSetStrength +.extern ScrCmd_GetSetFlash +.extern ScrCmd_GetSetDefog .extern ScrCmd_GiveItem .extern ScrCmd_TakeItem .extern ScrCmd_HasSpaceForItem @@ -3386,22 +3386,22 @@ .extern ScrCmd_GetItemPocketId .extern ScrCmd_Unk0081 .extern ScrCmd_Unk0082 -.extern ScrCmd_Unk0083 -.extern ScrCmd_Unk0084 -.extern ScrCmd_Unk0085 -.extern ScrCmd_Unk0086 -.extern ScrCmd_Unk0087 -.extern ScrCmd_Unk0088 -.extern ScrCmd_Unk0089 -.extern ScrCmd_Unk008A -.extern ScrCmd_Unk008B -.extern ScrCmd_Unk008C -.extern ScrCmd_Unk008D -.extern ScrCmd_Unk008E -.extern ScrCmd_Unk008F -.extern ScrCmd_Unk0090 -.extern ScrCmd_Unk0091 -.extern ScrCmd_Unk0092 +.extern ScrCmd_GiveSecretBaseDecoration +.extern ScrCmd_TakeSecretBaseDecoration +.extern ScrCmd_HasSpaceForDecoration +.extern ScrCmd_GetDecorationCount +.extern ScrCmd_GiveUndergroundTrap +.extern ScrCmd_TakeUndergroundTrap +.extern ScrCmd_HasSpaceForTrap +.extern ScrCmd_GetTrapCount +.extern ScrCmd_GiveTreasure +.extern ScrCmd_TakeTreasure +.extern ScrCmd_HasSpaceForTreasure +.extern ScrCmd_GetTreasureCount +.extern ScrCmd_GiveUndergroundSphere +.extern ScrCmd_TakeUndergroundSphere +.extern ScrCmd_HasSpaceForSphere +.extern ScrCmd_GetSphereCount .extern ScrCmd_Unk01C6 .extern ScrCmd_Unk01C7 .extern ScrCmd_Unk021E diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index 628900447..1005a2f0c 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -38774,7 +38774,7 @@ _0224C476: mov r2, #0 bl MOD05_021DA4EC ldr r0, _0224C51C ; =0x0000048E - bl PlayBGM + bl PlaySound ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s index b22a9a771..599b938a0 100644 --- a/arm9/modules/11/asm/module_11_thumb2.s +++ b/arm9/modules/11/asm/module_11_thumb2.s @@ -6258,7 +6258,7 @@ _02232234: b _02232252 _0223223C: ldr r0, _02232258 ; =0x00000484 - bl PlayBGM + bl PlaySound b _02232252 _02232244: ldr r0, _0223225C ; =0x000005E6 @@ -6266,7 +6266,7 @@ _02232244: b _02232252 _0223224C: ldr r0, _02232260 ; =0x00000483 - bl PlayBGM + bl PlaySound _02232252: add r0, r4, #0 pop {r4, pc} diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s index baa825fc6..f0b82ceb8 100644 --- a/arm9/modules/76/asm/module_76.s +++ b/arm9/modules/76/asm/module_76.s @@ -2105,7 +2105,7 @@ _021D85BE: b _021D85D6 _021D85C6: ldr r0, _021D85E0 ; =0x00000483 - bl PlayBGM + bl PlaySound b _021D85D6 _021D85CE: ldr r0, _021D85DC ; =0x000005E6 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s index 1d4b48dec..7d73a692e 100644 --- a/arm9/modules/81/asm/module_81.s +++ b/arm9/modules/81/asm/module_81.s @@ -9611,7 +9611,7 @@ _0223C982: add r0, #0x48 bl CopyWindowToVram ldr r0, _0223CA90 ; =0x00000484 - bl PlayBGM + bl PlaySound mov r0, #0 str r0, [r4, #8] mov r0, #1 diff --git a/arm9/src/scrcmd.c b/arm9/src/scrcmd.c index 75ddbc8eb..7adb1fe85 100644 --- a/arm9/src/scrcmd.c +++ b/arm9/src/scrcmd.c @@ -578,7 +578,7 @@ THUMB_FUNC BOOL ScrCmd_Unk01FF(struct ScriptContext *ctx) return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk026D(struct ScriptContext *ctx) //message unown font? +THUMB_FUNC BOOL ScrCmd_MessageUnown(struct ScriptContext *ctx) { struct UnkStruct_0203A288 myLocalStruct; u16 msg = ScriptReadHalfword(ctx); @@ -743,7 +743,7 @@ THUMB_FUNC static BOOL FUN_0203A4E0(struct ScriptContext *ctx) return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk0032(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_WaitButtonABPad(struct ScriptContext *ctx) { SetupNativeScript(ctx, FUN_0203A570); return TRUE; @@ -773,7 +773,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0033(struct ScriptContext *ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0034(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_CloseMessageBox(struct ScriptContext* ctx) { struct UnkSavStruct80 *unk80 = ctx->unk80; struct Window *unk = FUN_02039438(unk80, 0x1); @@ -1302,7 +1302,7 @@ THUMB_FUNC BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx) return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk005E(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk005E(struct ScriptContext *ctx) //ApplyMovement? { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u32 unk2 = ScriptReadWord(ctx); diff --git a/arm9/src/scrcmd_8.c b/arm9/src/scrcmd_8.c index ba35b3020..0c47594bb 100644 --- a/arm9/src/scrcmd_8.c +++ b/arm9/src/scrcmd_8.c @@ -8,51 +8,52 @@ extern void FUN_020385CC(struct UnkStruct_0204639C*, u32, u32, u32, u32, u16*, u extern BOOL FUN_020612EC(struct UnkSavStruct80*); extern BOOL FUN_020612F8(struct UnkSavStruct80*); -THUMB_FUNC BOOL ScrCmd_Unk021D(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk021D(struct ScriptContext* ctx) //docs has this command as ScrCmd_Group, with a comment saying + //"This command is the devil" { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); struct UnkSaveStruct_020286F8* unk_sav_ptr = FUN_0202881C(ctx->unk80->saveBlock2); struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; - u16 unk = ScriptReadHalfword(ctx); - switch (unk) + u16 option = ScriptReadHalfword(ctx); + switch (option) { - case 0: { + case 0: { //check if group ID exists u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_02028828(unk_sav_ptr, unk_var); return FALSE; } - case 1: { + case 1: { //check if group ID is accessible u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_02028840(unk_sav_ptr, unk_var); return FALSE; } - case 2: { + case 2: { //writes group ID to string buffer u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); BufferEasyChatWord(*mgr, sav2, unk_var, idx, 0); break; } - case 3: { + case 3: { //writes group leader name to string buffer u16 unk_var = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); BufferEasyChatWord(*mgr, sav2, unk_var, idx, 1); break; } - case 4: { + case 4: { //opens keyboard, 2 if group id exists, 1 if cancel, 0 otherwise u16* unk_str_ptr = FUN_020287A8(unk_sav_ptr, 0, 0); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020385CC(ctx->unk74, 5, 0, 7, 0, unk_str_ptr, ret_ptr); return TRUE; } - case 5: { + case 5: { //enter in group id (whatever this means, needs more investigation) u16 src_idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); BOOL unk_bool = FUN_02028828(unk_sav_ptr, 1); @@ -64,7 +65,7 @@ THUMB_FUNC BOOL ScrCmd_Unk021D(struct ScriptContext* ctx) return FALSE; } - case 6: { + case 6: { //create a group struct String* player_name = String_ctor(64, 32); struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); diff --git a/arm9/src/scrcmd_11.c b/arm9/src/scrcmd_berry_trees.c similarity index 80% rename from arm9/src/scrcmd_11.c rename to arm9/src/scrcmd_berry_trees.c index 8553adfa9..53715ca15 100644 --- a/arm9/src/scrcmd_11.c +++ b/arm9/src/scrcmd_berry_trees.c @@ -16,7 +16,7 @@ extern void FUN_0204B5A8(struct UnkSavStruct80*, void*, u16); extern void FUN_0204B9A0(struct UnkSavStruct80*); extern void FUN_0204B4FC(struct UnkSavStruct80*, void*); -THUMB_FUNC BOOL ScrCmd_Unk017D(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryTreeGrowth(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); void** unk = FUN_02039438(ctx->unk80, 10); @@ -26,7 +26,7 @@ THUMB_FUNC BOOL ScrCmd_Unk017D(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk017E(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryTreeType(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -36,7 +36,7 @@ THUMB_FUNC BOOL ScrCmd_Unk017E(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk017F(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryTreeMulch(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -46,7 +46,7 @@ THUMB_FUNC BOOL ScrCmd_Unk017F(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0180(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryTreeWater(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -56,7 +56,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0180(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0181(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryTreeAmount(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -66,7 +66,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0181(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0182(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SetBerryTreeMulch(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -76,7 +76,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0182(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0183(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SetBerryTreeType(struct ScriptContext* ctx) { void** unk = FUN_02039438(ctx->unk80, 10); struct UnkStruct_02029FB0* unk2 = FUN_02029FC8(ctx->unk80->saveBlock2); @@ -88,7 +88,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0183(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0184(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_Unk0184(struct ScriptContext* ctx) //SetBerryTreeWater/WaterBerryTree, or just the animation? { u16 unk = ScriptReadHalfword(ctx); @@ -108,7 +108,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0184(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk0185(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_TakeBerryTreeBerries(struct ScriptContext* ctx) { struct UnkStruct_02029FB0* unk = FUN_02029FC8(ctx->unk80->saveBlock2); void** unk2 = FUN_02039438(ctx->unk80, 10); diff --git a/arm9/src/scrcmd_coins.c b/arm9/src/scrcmd_coins.c index 59638c835..f4fea1def 100644 --- a/arm9/src/scrcmd_coins.c +++ b/arm9/src/scrcmd_coins.c @@ -7,7 +7,7 @@ extern u32 MOD05_021E2950(struct UnkSavStruct80* arg, u8, u8); extern MOD05_021E29B4(); extern MOD05_021E29C8(); -THUMB_FUNC BOOL ScrCmd_Unk0075(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_ShowCoinBox(struct ScriptContext * ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -20,7 +20,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0075(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0076(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_HideCoinBox(struct ScriptContext * ctx) { u16 ** unk = FUN_02039438(ctx->unk80, 0x26); MOD05_021E29B4(*unk); @@ -28,7 +28,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0076(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0077(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_UpdateCoinBox(struct ScriptContext * ctx) { u16 ** unk = FUN_02039438(ctx->unk80, 0x26); MOD05_021E29C8(ctx->unk80, *unk); diff --git a/arm9/src/scrcmd_daycare.c b/arm9/src/scrcmd_daycare.c index 4e2f925ec..34abab1ec 100644 --- a/arm9/src/scrcmd_daycare.c +++ b/arm9/src/scrcmd_daycare.c @@ -17,7 +17,7 @@ extern u16 MOD05_021ED5C4(struct PlayerParty* party, int idx, struct ScrStrBufs* extern u16 MOD05_021ED5EC(struct DayCare* daycare); extern u32 MOD05_021ED644(struct DayCare* daycare); -THUMB_FUNC BOOL ScrCmd_Unk016D(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetDaycarePokemonNames(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); @@ -28,7 +28,7 @@ THUMB_FUNC BOOL ScrCmd_Unk016D(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk016E(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetDaycareStatus(struct ScriptContext* ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; struct SaveBlock2* sav2 = sav_ptr->saveBlock2; @@ -40,7 +40,7 @@ THUMB_FUNC BOOL ScrCmd_Unk016E(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_DeleteDaycareEgg(struct ScriptContext* ctx) { struct DayCare* daycare = SavArray_get(ctx->unk80->saveBlock2, 8); MOD05_021ECD64(daycare); @@ -48,7 +48,7 @@ THUMB_FUNC BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveDaycareEgg(struct ScriptContext* ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; struct DayCare* daycare = SavArray_get(sav_ptr->saveBlock2, 8); @@ -90,7 +90,7 @@ THUMB_FUNC BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetDaycareLevel(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); diff --git a/arm9/src/scrcmd_flags.c b/arm9/src/scrcmd_flags.c index c0f6a519d..ee13ebc03 100644 --- a/arm9/src/scrcmd_flags.c +++ b/arm9/src/scrcmd_flags.c @@ -47,7 +47,7 @@ THUMB_FUNC BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasRunningShoes(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); @@ -58,7 +58,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015A(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveRunningShoes(struct ScriptContext* ctx) { void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); void* unk = FUN_02034E20(unk_sav_ptr); @@ -91,7 +91,7 @@ THUMB_FUNC BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015E(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveBag(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -121,7 +121,7 @@ THUMB_FUNC BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015F(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasBag(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -186,7 +186,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0165(struct ScriptContext* ctx) return 0; } -THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_CheckGameCompleted(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -196,7 +196,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SetGameCompleted(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -205,21 +205,21 @@ THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) return 0; } -THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetStrength(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set strength to on FUN_0205F264(state, 1); break; - case 0: + case 0: //set strength to off FUN_0205F264(state, 0); break; - case 2: + case 2: //get whether strength is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F264(state, 2); break; @@ -231,21 +231,21 @@ THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetFlash(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set flash to on FUN_0205F274(state); break; - case 0: + case 0: //set flash to off FUN_0205F284(state); break; - case 2: + case 2: //get whether flash is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F294(state); break; @@ -257,21 +257,21 @@ THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetDefog(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set defog to on FUN_0205F2A4(state); break; - case 0: + case 0: //set defog to off FUN_0205F2B4(state); break; - case 2: + case 2: //get whether defog is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F2C4(state); break; diff --git a/arm9/src/scrcmd_19.c b/arm9/src/scrcmd_fossils.c similarity index 54% rename from arm9/src/scrcmd_19.c rename to arm9/src/scrcmd_fossils.c index b0a201b73..e41773823 100644 --- a/arm9/src/scrcmd_19.c +++ b/arm9/src/scrcmd_fossils.c @@ -1,45 +1,45 @@ #include "scrcmd.h" #include "bag.h" -const u16 UNK_020F450C[7][2] = { - { 0x0067, 0x008E }, - { 0x0065, 0x008A }, - { 0x0066, 0x008C }, - { 0x0063, 0x0159 }, - { 0x0064, 0x015B }, - { 0x0068, 0x019A }, - { 0x0069, 0x0198 }, +const u16 gFossilPokemonMap[7][2] = { + { ITEM_OLD_AMBER, SPECIES_AERODACTYL }, + { ITEM_HELIX_FOSSIL, SPECIES_OMANYTE }, + { ITEM_DOME_FOSSIL, SPECIES_KABUTO }, + { ITEM_ROOT_FOSSIL, SPECIES_LILEEP }, + { ITEM_CLAW_FOSSIL, SPECIES_ANORITH }, + { ITEM_ARMOR_FOSSIL, SPECIES_SHIELDON }, + { ITEM_SKULL_FOSSIL, SPECIES_CRANIDOS }, }; -THUMB_FUNC BOOL ScrCmd_Unk01F1(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_CountFossils(struct ScriptContext * ctx) { struct UnkSavStruct80 * sav_ptr = ctx->unk80; - u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 *ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); u8 i; u16 total; for (i = 0, total = 0; i < 7; i++) { - total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), gFossilPokemonMap[i][0], 4); } *ret_ptr = total; return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01F4(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_GetFossilPokemon(struct ScriptContext * ctx) { - u16 * ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16 *ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16 fossilId = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = 0; for (u16 i = 0; i < 7; i++) { - if (UNK_020F450C[i][0] == unk) + if (gFossilPokemonMap[i][0] == fossilId) { - *ret_ptr = UNK_020F450C[i][1]; + *ret_ptr = gFossilPokemonMap[i][1]; break; } } @@ -47,7 +47,7 @@ THUMB_FUNC BOOL ScrCmd_Unk01F4(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01F5(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_GetFossilMinimumAmount(struct ScriptContext * ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -61,10 +61,10 @@ THUMB_FUNC BOOL ScrCmd_Unk01F5(struct ScriptContext * ctx) u16 total = 0; for (; i < 7; i++) { - total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), UNK_020F450C[i][0], 4); + total += Bag_GetQuantity(Sav2_Bag_get(sav_ptr->saveBlock2), gFossilPokemonMap[i][0], 4); if (total >= needed_amount) { - *ret_ptr1 = UNK_020F450C[i][0]; + *ret_ptr1 = gFossilPokemonMap[i][0]; *ret_ptr2 = i; break; } diff --git a/arm9/src/scrcmd_money.c b/arm9/src/scrcmd_money.c index d22548448..6f18d65d7 100644 --- a/arm9/src/scrcmd_money.c +++ b/arm9/src/scrcmd_money.c @@ -82,7 +82,7 @@ THUMB_FUNC BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0072(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_ShowMoneyBox(struct ScriptContext * ctx) { struct UnkSavStruct80 * sav_ptr = ctx->unk80; u32 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -94,7 +94,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0072(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0073(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_HideMoneyBox(struct ScriptContext * ctx) { u32 ** unk = FUN_02039438(ctx->unk80, 0x27); MOD05_021E288C(*unk); @@ -102,7 +102,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0073(struct ScriptContext * ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0074(struct ScriptContext * ctx) +THUMB_FUNC BOOL ScrCmd_UpdateMoneyBox(struct ScriptContext * ctx) { u32 ** unk = FUN_02039438(ctx->unk80, 0x27); MOD05_021E28A0(ctx->unk80, *unk); diff --git a/arm9/src/scrcmd_names.c b/arm9/src/scrcmd_names.c index cf721328a..ec1d8c920 100644 --- a/arm9/src/scrcmd_names.c +++ b/arm9/src/scrcmd_names.c @@ -53,7 +53,7 @@ THUMB_FUNC BOOL ScrCmd_GetFriendName(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk00D0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetPokemonName(struct ScriptContext* ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); @@ -145,7 +145,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0280(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk00D6(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetPokemonNickname(struct ScriptContext* ctx) { struct UnkSavStruct80* sav_ptr = ctx->unk80; struct ScrStrBufs** mgr = FUN_02039438(sav_ptr, 15); @@ -237,7 +237,7 @@ THUMB_FUNC struct String* FUN_02040AE4(u32 msg_no, u32 heap_id) return ret; } -THUMB_FUNC BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetPlayerStarterName(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); @@ -251,7 +251,7 @@ THUMB_FUNC BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetRivalStarterName(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); @@ -265,7 +265,7 @@ THUMB_FUNC BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk00DD(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetCounterpartStarterName(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); @@ -312,7 +312,7 @@ THUMB_FUNC BOOL ScrCmd_GetUndergroundItemName(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetMapName(struct ScriptContext* ctx) { struct String* str = String_ctor(22, 4); struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); @@ -326,7 +326,7 @@ THUMB_FUNC BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk017B(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetBerryName(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); @@ -362,7 +362,7 @@ THUMB_FUNC BOOL ScrCmd_GetFashionName(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0272(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetWhiteRockInscription(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); @@ -393,7 +393,7 @@ THUMB_FUNC BOOL ScrCmd_GetPokemonMoveName(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0232(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetRibbonName(struct ScriptContext* ctx) { struct ScrStrBufs** mgr = FUN_02039438(ctx->unk80, 15); u8 idx = ScriptReadByte(ctx); diff --git a/arm9/src/scrcmd_sound.c b/arm9/src/scrcmd_sound.c index df611ec75..ec5ab7f8e 100644 --- a/arm9/src/scrcmd_sound.c +++ b/arm9/src/scrcmd_sound.c @@ -7,7 +7,7 @@ extern void FUN_0200433C(u32, u32, u32); extern u32 FUN_02005E28(void); extern void FUN_02005E64(void); extern BOOL FUN_02005CBC(void); -extern void PlayBGM(u16); +extern void PlaySound(u16); extern u32 FUN_02004124(u16); extern void FUN_0204AB20(struct UnkSavStruct80 *ctx, u16); extern u16 FUN_0204ABA8(struct UnkSavStruct80 *ctx, u32); @@ -38,33 +38,33 @@ THUMB_FUNC BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0050(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_PlayBgm(struct ScriptContext *ctx) { FUN_0200521C(ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0051(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_StopBgm(struct ScriptContext *ctx) { u32 unk0 = FUN_02004124(ScriptReadHalfword(ctx)); FUN_02005350(unk0, 0); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0052(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_PlayDefaultBgm(struct ScriptContext *ctx) { u16 unk0 = FUN_0204ABA8(ctx->unk80, *ctx->unk80->mapId); FUN_0200521C(unk0); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0053(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_Unk0053(struct ScriptContext *ctx) //Special BGM? { FUN_0204AB20(ctx->unk80, ScriptReadHalfword(ctx)); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0054(struct ScriptContext *ctx) +THUMB_FUNC BOOL ScrCmd_FadeOutBgm(struct ScriptContext *ctx) { u16 unk1 = ScriptReadHalfword(ctx); u16 unk2 = ScriptReadHalfword(ctx); @@ -85,7 +85,7 @@ THUMB_FUNC BOOL FUN_02041464(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0055(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_FadeInBgm(struct ScriptContext* ctx) { u16 unk = ScriptReadHalfword(ctx); @@ -120,21 +120,21 @@ THUMB_FUNC BOOL ScrCmd_Unk0058(struct ScriptContext* ctx) } -THUMB_FUNC BOOL ScrCmd_Unk0049(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayFanfare(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054C8(unk); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk004A(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_StopFanfare(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); FUN_020054F0(unk, 0); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk004B(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayFanfareWait(struct ScriptContext* ctx) { u16 unk = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -152,7 +152,7 @@ THUMB_FUNC BOOL FUN_02041540(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk004C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlayCry(struct ScriptContext* ctx) { u16 unk0 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -176,15 +176,15 @@ THUMB_FUNC BOOL FUN_02041598(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_PlayBgm(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlaySound(struct ScriptContext* ctx) { u16 bgm_id = ScriptReadHalfword(ctx); - PlayBGM(bgm_id); + PlaySound(bgm_id); return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk004F(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_PlaySoundWait(struct ScriptContext* ctx) { SetupNativeScript(ctx, FUN_020415CC); return TRUE; @@ -199,7 +199,7 @@ THUMB_FUNC BOOL FUN_020415CC(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0059(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_CheckChatotCry(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -216,7 +216,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0059(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL ScrCmd_Unk005A(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_StartChatotRecord(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); @@ -232,14 +232,14 @@ THUMB_FUNC BOOL ScrCmd_Unk005A(struct ScriptContext* ctx) } } -THUMB_FUNC BOOL ScrCmd_Unk005B(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_StopChatotRecord(struct ScriptContext* ctx) { #pragma unused(ctx) FUN_02005E64(); return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk005C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SaveChatotCry(struct ScriptContext* ctx) { void* unk = Sav2_Chatot_get(ctx->unk80->saveBlock2); FUN_02005E6C(unk); @@ -254,7 +254,7 @@ THUMB_FUNC BOOL ScrCmd_Unk005D(struct ScriptContext* ctx) return TRUE; } -THUMB_FUNC BOOL ScrCmd_Unk0283(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SetVolume(struct ScriptContext* ctx) { u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unk2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); diff --git a/arm9/src/scrcmd_23.c b/arm9/src/scrcmd_underground.c similarity index 79% rename from arm9/src/scrcmd_23.c rename to arm9/src/scrcmd_underground.c index 0c9907a5f..5d273c9be 100644 --- a/arm9/src/scrcmd_23.c +++ b/arm9/src/scrcmd_underground.c @@ -6,7 +6,7 @@ extern BOOL FUN_02026298(void*, u16); extern void* FUN_02026CC4(struct SaveBlock2* sav2); extern BOOL FUN_020260C4(void*, u16, u16); -THUMB_FUNC BOOL ScrCmd_Unk0083(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveSecretBaseDecoration(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -19,7 +19,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0083(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0084(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_TakeSecretBaseDecoration(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -28,7 +28,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0084(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0085(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasSpaceForDecoration(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -41,7 +41,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0085(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0086(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetDecorationCount(struct ScriptContext* ctx) //somewhat unsure on name, was originally CheckGoods { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -50,7 +50,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0086(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0087(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveUndergroundTrap(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -63,7 +63,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0087(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0088(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_TakeUndergroundTrap(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -72,7 +72,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0088(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0089(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasSpaceForTrap(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -81,7 +81,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0089(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008A(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetTrapCount(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -90,7 +90,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008A(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008B(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveTreasure(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -101,7 +101,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008B(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008C(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_TakeTreasure(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -110,7 +110,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008C(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008D(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasSpaceForTreasure(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -119,7 +119,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008D(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008E(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetTreasureCount(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -128,7 +128,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008E(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk008F(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveUndergroundSphere(struct ScriptContext* ctx) { struct SaveBlock2* sav2 = ctx->unk80->saveBlock2; u16 unk1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -141,7 +141,7 @@ THUMB_FUNC BOOL ScrCmd_Unk008F(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0090(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_TakeUndergroundSphere(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -150,7 +150,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0090(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0091(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasSpaceForSphere(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); @@ -159,7 +159,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0091(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0092(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSphereCount(struct ScriptContext* ctx) { u16 unused1 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); u16 unused2 = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); diff --git a/include/scrcmd.h b/include/scrcmd.h index 13306ed13..53f40bda6 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -67,7 +67,7 @@ BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FE(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FF(struct ScriptContext* ctx); -BOOL ScrCmd_Unk026D(struct ScriptContext* ctx); +BOOL ScrCmd_MessageUnown(struct ScriptContext* ctx); BOOL ScrCmd_Unk002C(struct ScriptContext* ctx); BOOL ScrCmd_Unk002D(struct ScriptContext* ctx); BOOL ScrCmd_Unk02C0(struct ScriptContext* ctx); @@ -77,9 +77,9 @@ BOOL ScrCmd_Unk002F(struct ScriptContext* ctx); BOOL ScrCmd_WaitButtonAB(struct ScriptContext* ctx); BOOL ScrCmd_WaitButtonABTime(struct ScriptContext *ctx); BOOL ScrCmd_WaitButton(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0032(struct ScriptContext *ctx); +BOOL ScrCmd_WaitButtonABPad(struct ScriptContext *ctx); BOOL ScrCmd_Unk0033(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0034(struct ScriptContext* ctx); +BOOL ScrCmd_CloseMessageBox(struct ScriptContext* ctx); BOOL ScrCmd_Unk0035(struct ScriptContext* ctx); BOOL ScrCmd_ScrollBg(struct ScriptContext* ctx); BOOL ScrCmd_CreateMessageBox(struct ScriptContext* ctx); @@ -118,33 +118,33 @@ BOOL ScrCmd_AccessoriesShop(struct ScriptContext * ctx); BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx); BOOL ScrCmd_GetRivalName(struct ScriptContext* ctx); BOOL ScrCmd_GetFriendName(struct ScriptContext* ctx); -BOOL ScrCmd_Unk00D0(struct ScriptContext* ctx); +BOOL ScrCmd_GetPokemonName(struct ScriptContext* ctx); BOOL ScrCmd_GetItemName(struct ScriptContext* ctx); BOOL ScrCmd_GetPocketName(struct ScriptContext* ctx); BOOL ScrCmd_GetTMHMMoveName(struct ScriptContext* ctx); BOOL ScrCmd_GetMoveName(struct ScriptContext* ctx); BOOL ScrCmd_Unk00D5(struct ScriptContext* ctx); BOOL ScrCmd_Unk0280(struct ScriptContext* ctx); -BOOL ScrCmd_Unk00D6(struct ScriptContext* ctx); +BOOL ScrCmd_GetPokemonNickname(struct ScriptContext* ctx); BOOL ScrCmd_Unk0251(struct ScriptContext* ctx); BOOL ScrCmd_GetPoketchAppName(struct ScriptContext* ctx); BOOL ScrCmd_GetTrainerClassName(struct ScriptContext* ctx); BOOL ScrCmd_Unk00D9(struct ScriptContext* ctx); BOOL ScrCmd_Unk00DA(struct ScriptContext* ctx); struct String* FUN_02040AE4(u32 msg_no, u32 heap_id); -BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx); -BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx); -BOOL ScrCmd_Unk00DD(struct ScriptContext* ctx); +BOOL ScrCmd_GetPlayerStarterName(struct ScriptContext* ctx); +BOOL ScrCmd_GetRivalStarterName(struct ScriptContext* ctx); +BOOL ScrCmd_GetCounterpartStarterName(struct ScriptContext* ctx); BOOL ScrCmd_GetDecorationName(struct ScriptContext* ctx); BOOL ScrCmd_GetUndergroundTrapName(struct ScriptContext* ctx); BOOL ScrCmd_GetUndergroundItemName(struct ScriptContext* ctx); -BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx); -BOOL ScrCmd_Unk017B(struct ScriptContext* ctx); +BOOL ScrCmd_GetMapName(struct ScriptContext* ctx); +BOOL ScrCmd_GetBerryName(struct ScriptContext* ctx); BOOL ScrCmd_GetNatureName(struct ScriptContext* ctx); BOOL ScrCmd_GetFashionName(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0272(struct ScriptContext* ctx); +BOOL ScrCmd_GetWhiteRockInscription(struct ScriptContext* ctx); BOOL ScrCmd_GetPokemonMoveName(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0232(struct ScriptContext* ctx); +BOOL ScrCmd_GetRibbonName(struct ScriptContext* ctx); BOOL ScrCmd_GetSealName(struct ScriptContext* ctx); BOOL ScrCmd_GetItemNameWithIndefArticle(struct ScriptContext* ctx); BOOL ScrCmd_GetItemNamePlural(struct ScriptContext* ctx); @@ -160,46 +160,46 @@ BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx); //scrcmd_sound.c BOOL ScrCmd_Unk02AE(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0050(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0051(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0052(struct ScriptContext *ctx); +BOOL ScrCmd_PlayBgm(struct ScriptContext *ctx); +BOOL ScrCmd_StopBgm(struct ScriptContext *ctx); +BOOL ScrCmd_PlayDefaultBgm(struct ScriptContext *ctx); BOOL ScrCmd_Unk0053(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0054(struct ScriptContext *ctx); +BOOL ScrCmd_FadeOutBgm(struct ScriptContext *ctx); BOOL FUN_02041464(struct ScriptContext *ctx); -BOOL ScrCmd_Unk0055(struct ScriptContext* ctx); +BOOL ScrCmd_FadeInBgm(struct ScriptContext* ctx); BOOL ScrCmd_Unk0056(struct ScriptContext* ctx); BOOL ScrCmd_Unk0057(struct ScriptContext* ctx); BOOL ScrCmd_Unk0058(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0049(struct ScriptContext* ctx); -BOOL ScrCmd_Unk004A(struct ScriptContext* ctx); -BOOL ScrCmd_Unk004B(struct ScriptContext* ctx); +BOOL ScrCmd_PlayFanfare(struct ScriptContext* ctx); +BOOL ScrCmd_StopFanfare(struct ScriptContext* ctx); +BOOL ScrCmd_PlayFanfareWait(struct ScriptContext* ctx); BOOL FUN_02041540(struct ScriptContext* ctx); -BOOL ScrCmd_Unk004C(struct ScriptContext* ctx); +BOOL ScrCmd_PlayCry(struct ScriptContext* ctx); BOOL ScrCmd_PlayCryWait(struct ScriptContext* ctx); BOOL FUN_02041598(struct ScriptContext* ctx); -BOOL ScrCmd_Unk004F(struct ScriptContext* ctx); +BOOL ScrCmd_PlaySoundWait(struct ScriptContext* ctx); BOOL FUN_020415CC(struct ScriptContext* ctx); -BOOL ScrCmd_PlayBgm(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0059(struct ScriptContext* ctx); -BOOL ScrCmd_Unk005A(struct ScriptContext* ctx); -BOOL ScrCmd_Unk005B(struct ScriptContext* ctx); -BOOL ScrCmd_Unk005C(struct ScriptContext* ctx); +BOOL ScrCmd_PlaySound(struct ScriptContext* ctx); +BOOL ScrCmd_CheckChatotCry(struct ScriptContext* ctx); +BOOL ScrCmd_StartChatotRecord(struct ScriptContext* ctx); +BOOL ScrCmd_StopChatotRecord(struct ScriptContext* ctx); +BOOL ScrCmd_SaveChatotCry(struct ScriptContext* ctx); BOOL ScrCmd_Unk005D(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0283(struct ScriptContext *ctx); +BOOL ScrCmd_SetVolume(struct ScriptContext *ctx); //scrcmd_8.c BOOL ScrCmd_Unk021D(struct ScriptContext* ctx); -//scrcmd_11.c -BOOL ScrCmd_Unk017D(struct ScriptContext* ctx); -BOOL ScrCmd_Unk017E(struct ScriptContext* ctx); -BOOL ScrCmd_Unk017F(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0180(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0181(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0182(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0183(struct ScriptContext* ctx); +//scrcmd_berry_trees.c +BOOL ScrCmd_GetBerryTreeGrowth(struct ScriptContext* ctx); +BOOL ScrCmd_GetBerryTreeType(struct ScriptContext* ctx); +BOOL ScrCmd_GetBerryTreeMulch(struct ScriptContext* ctx); +BOOL ScrCmd_GetBerryTreeWater(struct ScriptContext* ctx); +BOOL ScrCmd_GetBerryTreeAmount(struct ScriptContext* ctx); +BOOL ScrCmd_SetBerryTreeMulch(struct ScriptContext* ctx); +BOOL ScrCmd_SetBerryTreeType(struct ScriptContext* ctx); BOOL ScrCmd_Unk0184(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0185(struct ScriptContext* ctx); +BOOL ScrCmd_TakeBerryTreeBerries(struct ScriptContext* ctx); //scrcmd_13.c BOOL ScrCmd_Unk0253(struct ScriptContext* ctx); @@ -208,9 +208,9 @@ BOOL ScrCmd_Unk0255(struct ScriptContext* ctx); BOOL ScrCmd_Unk0256(struct ScriptContext* ctx); //scrcmd_coins.c -BOOL ScrCmd_Unk0075(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0076(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0077(struct ScriptContext* ctx); +BOOL ScrCmd_ShowCoinBox(struct ScriptContext* ctx); +BOOL ScrCmd_HideCoinBox(struct ScriptContext* ctx); +BOOL ScrCmd_UpdateCoinBox(struct ScriptContext* ctx); BOOL ScrCmd_GetCoins(struct ScriptContext* ctx); BOOL ScrCmd_GiveCoins(struct ScriptContext* ctx); BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext* ctx); @@ -225,18 +225,18 @@ BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext* ctx); BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext* ctx); BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext* ctx); BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0072(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0073(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0074(struct ScriptContext* ctx); +BOOL ScrCmd_ShowMoneyBox(struct ScriptContext* ctx); +BOOL ScrCmd_HideMoneyBox(struct ScriptContext* ctx); +BOOL ScrCmd_UpdateMoneyBox(struct ScriptContext* ctx); //scrcmd_daycare.c -BOOL ScrCmd_Unk016D(struct ScriptContext* ctx); -BOOL ScrCmd_Unk016E(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx); +BOOL ScrCmd_GetDaycarePokemonNames(struct ScriptContext* ctx); +BOOL ScrCmd_GetDaycareStatus(struct ScriptContext* ctx); +BOOL ScrCmd_DeleteDaycareEgg(struct ScriptContext* ctx); +BOOL ScrCmd_GiveDaycareEgg(struct ScriptContext* ctx); BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx); BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx); +BOOL ScrCmd_GetDaycareLevel(struct ScriptContext* ctx); BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx); BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx); BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx); @@ -250,10 +250,10 @@ BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); -//scrcmd_19.c -BOOL ScrCmd_Unk01F1(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01F4(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01F5(struct ScriptContext* ctx); +//scrcmd_fossils.c +BOOL ScrCmd_CountFossils(struct ScriptContext* ctx); +BOOL ScrCmd_GetFossilPokemon(struct ScriptContext* ctx); +BOOL ScrCmd_GetFossilMinimumAmount(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F2(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); @@ -263,24 +263,24 @@ BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); //scrcmd_flags.c BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx); BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0159(struct ScriptContext* ctx); -BOOL ScrCmd_Unk015A(struct ScriptContext* ctx); +BOOL ScrCmd_HasRunningShoes(struct ScriptContext* ctx); +BOOL ScrCmd_GiveRunningShoes(struct ScriptContext* ctx); BOOL ScrCmd_HasBadge(struct ScriptContext* ctx); BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx); -BOOL ScrCmd_Unk015E(struct ScriptContext* ctx); +BOOL ScrCmd_GiveBag(struct ScriptContext* ctx); BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx); -BOOL ScrCmd_Unk015F(struct ScriptContext* ctx); +BOOL ScrCmd_HasBag(struct ScriptContext* ctx); BOOL ScrCmd_Unk0160(struct ScriptContext* ctx); BOOL ScrCmd_Unk0161(struct ScriptContext* ctx); BOOL ScrCmd_Unk0162(struct ScriptContext* ctx); BOOL ScrCmd_Unk0163(struct ScriptContext* ctx); BOOL ScrCmd_Unk0164(struct ScriptContext* ctx); BOOL ScrCmd_Unk0165(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0166(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0167(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx); -BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx); +BOOL ScrCmd_CheckGameCompleted(struct ScriptContext* ctx); +BOOL ScrCmd_SetGameCompleted(struct ScriptContext* ctx); +BOOL ScrCmd_GetSetStrength(struct ScriptContext* ctx); +BOOL ScrCmd_GetSetFlash(struct ScriptContext* ctx); +BOOL ScrCmd_GetSetDefog(struct ScriptContext* ctx); //scrcmd_items.c BOOL ScrCmd_GiveItem(struct ScriptContext* ctx); @@ -292,23 +292,23 @@ BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx); BOOL ScrCmd_Unk0081(struct ScriptContext* ctx); BOOL ScrCmd_Unk0082(struct ScriptContext* ctx); -//scrcmd_23.c -BOOL ScrCmd_Unk0083(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0084(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0085(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0086(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0087(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0088(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0089(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008A(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008B(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008C(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008D(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008E(struct ScriptContext* ctx); -BOOL ScrCmd_Unk008F(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0090(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0091(struct ScriptContext* ctx); -BOOL ScrCmd_Unk0092(struct ScriptContext* ctx); +//scrcmd_underground.c +BOOL ScrCmd_GiveSecretBaseDecoration(struct ScriptContext* ctx); +BOOL ScrCmd_TakeSecretBaseDecoration(struct ScriptContext* ctx); +BOOL ScrCmd_HasSpaceForDecoration(struct ScriptContext* ctx); +BOOL ScrCmd_GetDecorationCount(struct ScriptContext* ctx); +BOOL ScrCmd_GiveUndergroundTrap(struct ScriptContext* ctx); +BOOL ScrCmd_TakeUndergroundTrap(struct ScriptContext* ctx); +BOOL ScrCmd_HasSpaceForTrap(struct ScriptContext* ctx); +BOOL ScrCmd_GetTrapCount(struct ScriptContext* ctx); +BOOL ScrCmd_GiveTreasure(struct ScriptContext* ctx); +BOOL ScrCmd_TakeTreasure(struct ScriptContext* ctx); +BOOL ScrCmd_HasSpaceForTreasure(struct ScriptContext* ctx); +BOOL ScrCmd_GetTreasureCount(struct ScriptContext* ctx); +BOOL ScrCmd_GiveUndergroundSphere(struct ScriptContext* ctx); +BOOL ScrCmd_TakeUndergroundSphere(struct ScriptContext* ctx); +BOOL ScrCmd_HasSpaceForSphere(struct ScriptContext* ctx); +BOOL ScrCmd_GetSphereCount(struct ScriptContext* ctx); //scrcmd_24.c BOOL ScrCmd_Unk01C6(struct ScriptContext* ctx); From 0e5566e7d26509088d0528f6b0946afa882a4532 Mon Sep 17 00:00:00 2001 From: tgsm Date: Tue, 1 Jun 2021 01:05:51 -0400 Subject: [PATCH 127/134] Document scrcmd_20 -> scrcmd_prizes --- arm9/arm9.lsf | 2 +- arm9/asm/unk_02038C78.s | 2 +- arm9/global.inc | 2 +- arm9/src/scrcmd_20.c | 35 ----------------------------------- arm9/src/scrcmd_prizes.c | 36 ++++++++++++++++++++++++++++++++++++ include/scrcmd.h | 4 ++-- 6 files changed, 41 insertions(+), 40 deletions(-) delete mode 100644 arm9/src/scrcmd_20.c create mode 100644 arm9/src/scrcmd_prizes.c diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index 124467f06..fa6090487 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -176,7 +176,7 @@ Static arm9 Object scrcmd_18_c.o Object scrcmd_18.o Object scrcmd_fossils.o - Object scrcmd_20.o + Object scrcmd_prizes.o Object scrcmd_flags.o Object scrcmd_items.o Object scrcmd_underground.o diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index a21e170ab..bbed95167 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -827,7 +827,7 @@ gScriptCmdTable: ; 0x020F355C .word ScrCmd_Unk02A3 .word ScrCmd_Unk02A4 .word ScrCmd_Unk02A5 - .word ScrCmd_Unk02A6 + .word ScrCmd_GetPrizeItemIdAndCost .word ScrCmd_Unk02A7 .word ScrCmd_TakeCoinsAddress .word ScrCmd_HasEnoughCoinsAddress diff --git a/arm9/global.inc b/arm9/global.inc index 1c0b51e3c..46268a8cc 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3357,7 +3357,7 @@ .extern ScrCmd_GetFossilMinimumAmount .extern ScrCmd_Unk01F2 .extern ScrCmd_Unk01F3 -.extern ScrCmd_Unk02A6 +.extern ScrCmd_GetPrizeItemIdAndCost .extern ScrCmd_HasSinnohDex .extern ScrCmd_GiveSinnohDex .extern ScrCmd_HasRunningShoes diff --git a/arm9/src/scrcmd_20.c b/arm9/src/scrcmd_20.c deleted file mode 100644 index 882126a08..000000000 --- a/arm9/src/scrcmd_20.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "scrcmd.h" - -const u16 UNK_020F452A[19][2] = { - { 0x00FB, 0x03E8 }, - { 0x0109, 0x03E8 }, - { 0x0114, 0x03E8 }, - { 0x0115, 0x03E8 }, - { 0x01A1, 0x07D0 }, - { 0x0181, 0x07D0 }, - { 0x0192, 0x0FA0 }, - { 0x0167, 0x0FA0 }, - { 0x0173, 0x1770 }, - { 0x01A0, 0x1770 }, - { 0x0151, 0x1770 }, - { 0x0162, 0x1F40 }, - { 0x015C, 0x1F40 }, - { 0x016A, 0x2710 }, - { 0x015F, 0x2710 }, - { 0x0154, 0x2710 }, - { 0x0164, 0x2710 }, - { 0x0191, 0x3A98 }, - { 0x018B, 0x4E20 }, -}; - -THUMB_FUNC BOOL ScrCmd_Unk02A6(struct ScriptContext * ctx) -{ - u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); - u16 * ret_ptr1 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - u16 * ret_ptr2 = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); - - *ret_ptr1 = UNK_020F452A[idx][0]; - *ret_ptr2 = UNK_020F452A[idx][1]; - - return FALSE; -} diff --git a/arm9/src/scrcmd_prizes.c b/arm9/src/scrcmd_prizes.c new file mode 100644 index 000000000..9a6cde415 --- /dev/null +++ b/arm9/src/scrcmd_prizes.c @@ -0,0 +1,36 @@ +#include "scrcmd.h" +#include "constants/items.h" + +const u16 gGameCornerPrizes[19][2] = { + { ITEM_SILK_SCARF, 1000 }, + { ITEM_WIDE_LENS, 1000 }, + { ITEM_ZOOM_LENS, 1000 }, + { ITEM_METRONOME, 1000 }, + { ITEM_TM90, 2000 }, + { ITEM_TM58, 2000 }, + { ITEM_TM75, 4000 }, + { ITEM_TM32, 4000 }, + { ITEM_TM44, 6000 }, + { ITEM_TM89, 6000 }, + { ITEM_TM10, 6000 }, + { ITEM_TM27, 8000 }, + { ITEM_TM21, 8000 }, + { ITEM_TM35, 10000 }, + { ITEM_TM24, 10000 }, + { ITEM_TM13, 10000 }, + { ITEM_TM29, 10000 }, + { ITEM_TM74, 15000 }, + { ITEM_TM68, 20000 }, +}; + +THUMB_FUNC BOOL ScrCmd_GetPrizeItemIdAndCost(struct ScriptContext* ctx) +{ + u16 idx = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* prize_item_id = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + u16* prize_cost_in_coins = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *prize_item_id = gGameCornerPrizes[idx][0]; + *prize_cost_in_coins = gGameCornerPrizes[idx][1]; + + return FALSE; +} diff --git a/include/scrcmd.h b/include/scrcmd.h index 53f40bda6..91cb306c7 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -257,8 +257,8 @@ BOOL ScrCmd_GetFossilMinimumAmount(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F2(struct ScriptContext* ctx); BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx); -//scrcmd_20.c -BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx); +//scrcmd_prizes.c +BOOL ScrCmd_GetPrizeItemIdAndCost(struct ScriptContext* ctx); //scrcmd_flags.c BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx); From f8e4e3e590fd2e4fb2aaafda7a269a874b952af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 1 Jun 2021 19:57:57 +0200 Subject: [PATCH 128/134] fewer ugly array access --- arm9/asm/unk_0200BB14.s | 2135 --------------------------------------- arm9/src/unk_0200BB14.c | 382 ++++--- include/unk_0200BB14.h | 82 +- 3 files changed, 240 insertions(+), 2359 deletions(-) delete mode 100644 arm9/asm/unk_0200BB14.s diff --git a/arm9/asm/unk_0200BB14.s b/arm9/asm/unk_0200BB14.s deleted file mode 100644 index b8a6eab56..000000000 --- a/arm9/asm/unk_0200BB14.s +++ /dev/null @@ -1,2135 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_0200BB14 -FUN_0200BB14: ; 0x0200BB14 - push {r4, lr} - mov r1, #0x4e - lsl r1, r1, #0x2 - add r4, r0, #0x0 - bl AllocFromHeap - cmp r0, #0x0 - bne _0200BB28 - mov r0, #0x0 - pop {r4, pc} -_0200BB28: - str r4, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] - mov r1, #0x1 - str r1, [r0, #0x8] - pop {r4, pc} - - thumb_func_start FUN_0200BB34 -FUN_0200BB34: ; 0x0200BB34 - push {r4, lr} - add r4, r0, #0x0 - bne _0200BB3E - bl GF_AssertFail -_0200BB3E: - ldr r0, [r4, #0x0] - mov r1, #0x58 - bl AllocFromHeap - cmp r0, #0x0 - bne _0200BB4E - mov r0, #0x0 - pop {r4, pc} -_0200BB4E: - ldr r1, [r4, #0x4] - mov r2, #0x0 - add r1, r1, #0x1 - str r1, [r4, #0x4] - add r3, r0, #0x0 - add r1, r2, #0x0 -_0200BB5A: - add r2, r2, #0x1 - str r1, [r3, #0xc] - add r3, r3, #0x4 - cmp r2, #0x6 - blt _0200BB5A - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200BB68 -FUN_0200BB68: ; 0x0200BB68 - add r0, #0x10 - bx lr - - thumb_func_start FUN_0200BB6C -FUN_0200BB6C: ; 0x0200BB6C - push {r4-r7, lr} - sub sp, #0x24 - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - add r7, r3, #0x0 - cmp r5, #0x0 - bne _0200BB80 - bl GF_AssertFail -_0200BB80: - cmp r5, #0x0 - bne _0200BB8A - add sp, #0x24 - mov r0, #0x0 - pop {r4-r7, pc} -_0200BB8A: - ldr r0, [r6, #0x0] - str r0, [sp, #0x14] - ldr r0, [r6, #0x4] - str r0, [sp, #0x18] - ldr r0, [r6, #0x8] - str r0, [sp, #0x1c] - ldr r0, [r5, #0x0] - str r0, [sp, #0x20] - ldr r1, [r6, #0xc] - ldr r2, [r6, #0x10] - add r0, sp, #0x14 - bl FUN_0201D060 - ldr r1, [r5, #0x0] - add r0, r7, #0x0 - bl FUN_0201E00C - bl NNS_G2dInitOamManagerModule - ldr r0, [r5, #0x8] - cmp r0, #0x1 - bne _0200BBD6 - ldr r0, [r4, #0x10] - str r0, [sp, #0x0] - ldr r0, [r4, #0x14] - str r0, [sp, #0x4] - ldr r0, [r4, #0x18] - str r0, [sp, #0x8] - ldr r0, [r4, #0x1c] - str r0, [sp, #0xc] - ldr r0, [r5, #0x0] - str r0, [sp, #0x10] - ldr r0, [r4, #0x0] - ldr r1, [r4, #0x4] - ldr r2, [r4, #0x8] - ldr r3, [r4, #0xc] - bl FUN_02009EAC -_0200BBD6: - ldr r1, [r5, #0x0] - mov r0, #0x20 - bl FUN_0201C328 - str r0, [r5, #0xc] - bl FUN_0201D168 - bl FUN_0201E0BC - mov r0, #0x1 - add sp, #0x24 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0200BBF0 -FUN_0200BBF0: ; 0x0200BBF0 - push {r4, lr} - add r3, r0, #0x0 - add r4, r1, #0x0 - cmp r3, #0x0 - beq _0200BBFE - cmp r4, #0x0 - bne _0200BC02 -_0200BBFE: - mov r0, #0x0 - pop {r4, pc} -_0200BC02: - add r0, r2, #0x0 - add r1, r3, #0x0 - ldr r2, [r3, #0x0] - add r1, #0x10 - bl FUN_02008C9C - str r0, [r4, #0x0] - mov r0, #0x1 - pop {r4, pc} - - thumb_func_start FUN_0200BC14 -FUN_0200BC14: ; 0x0200BC14 - ldr r3, _0200BC18 ; =FUN_0201FFC8 - bx r3 - .balign 4 -_0200BC18: .word FUN_0201FFC8 - - thumb_func_start FUN_0200BC1C -FUN_0200BC1C: ; 0x0200BC1C - push {r4, lr} - add r4, r0, #0x0 - bne _0200BC26 - bl GF_AssertFail -_0200BC26: - ldr r0, [r4, #0x0] - bl FUN_0201FDEC - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200BC30 -FUN_0200BC30: ; 0x0200BC30 - ldr r3, _0200BC34 ; =FUN_02009F80 - bx r3 - .balign 4 -_0200BC34: .word FUN_02009F80 - - thumb_func_start FUN_0200BC38 -FUN_0200BC38: ; 0x0200BC38 - ldr r3, _0200BC3C ; =FUN_0201C348 - bx r3 - .balign 4 -_0200BC3C: .word FUN_0201C348 - - thumb_func_start FUN_0200BC40 -FUN_0200BC40: ; 0x0200BC40 - ldr r3, _0200BC48 ; =FUN_0201FD58 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200BC48: .word FUN_0201FD58 - - thumb_func_start FUN_0200BC4C -FUN_0200BC4C: ; 0x0200BC4C - push {r3, lr} - ldr r0, [r0, #0x4] - cmp r0, #0x0 - beq _0200BC58 - bl FUN_02008C80 -_0200BC58: - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0200BC5C -FUN_0200BC5C: ; 0x0200BC5C - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, [r5, #0x54] - mov r4, #0x0 - cmp r0, #0x0 - ble _0200BC7C -_0200BC68: - ldr r0, [r5, #0x8] - add r1, r4, #0x0 - bl FUN_02009660 - bl FUN_020096B4 - ldr r0, [r5, #0x54] - add r4, r4, #0x1 - cmp r4, r0 - blt _0200BC68 -_0200BC7C: - ldr r0, [r5, #0x8] - bl FreeToHeap - ldr r0, [r5, #0x24] - bl FUN_02009C30 - ldr r0, [r5, #0x28] - bl FUN_02009E28 - ldr r0, [r5, #0x54] - mov r6, #0x0 - cmp r0, #0x0 - ble _0200BCAE - add r4, r5, #0x0 -_0200BC98: - ldr r0, [r4, #0x24] - bl FUN_02009448 - ldr r0, [r4, #0xc] - bl FUN_02008E2C - ldr r0, [r5, #0x54] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _0200BC98 -_0200BCAE: - pop {r4-r6, pc} - - thumb_func_start FUN_0200BCB0 -FUN_0200BCB0: ; 0x0200BCB0 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - bl FUN_0201C350 - bl FUN_0201D12C - bl FUN_0201E08C - ldr r0, [r4, #0x8] - cmp r0, #0x1 - bne _0200BCCC - bl FUN_02009FA0 -_0200BCCC: - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200BCD0 -FUN_0200BCD0: ; 0x0200BCD0 - ldr r2, [r0, #0x4] - ldr r3, _0200BCDC ; =FreeToHeap - sub r2, r2, #0x1 - str r2, [r0, #0x4] - add r0, r1, #0x0 - bx r3 - .balign 4 -_0200BCDC: .word FreeToHeap - - thumb_func_start FUN_0200BCE0 -FUN_0200BCE0: ; 0x0200BCE0 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - bl FUN_0200BC40 - add r0, r4, #0x0 - bl FUN_0200BC4C - add r0, r4, #0x0 - bl FUN_0200BC5C - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0200BCD0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_0200BD04 -FUN_0200BD04: ; 0x0200BD04 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _0200BD12 - bl GF_AssertFail -_0200BD12: - add r0, r4, #0x0 - bl FUN_0200BCB0 - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - - thumb_func_start FUN_0200BD20 -FUN_0200BD20: ; 0x0200BD20 - push {r4-r7, lr} - sub sp, #0x24 - add r5, r0, #0x0 - mov r0, #0x6 - add r4, r1, #0x0 - str r2, [sp, #0x10] - str r0, [sp, #0x14] - cmp r5, #0x0 - beq _0200BD36 - cmp r4, #0x0 - bne _0200BD3C -_0200BD36: - add sp, #0x24 - mov r0, #0x0 - pop {r4-r7, pc} -_0200BD3C: - add r0, r2, #0x0 - ldr r0, [r0, #0x10] - cmp r0, #0x0 - bne _0200BD48 - mov r0, #0x4 - str r0, [sp, #0x14] -_0200BD48: - ldr r0, [sp, #0x14] - str r0, [r4, #0x54] - bl FUN_0200965C - add r2, r0, #0x0 - ldr r1, [sp, #0x14] - ldr r0, [r5, #0x0] - mul r1, r2 - bl AllocFromHeap - str r0, [r4, #0x8] - ldr r0, [sp, #0x14] - mov r7, #0x0 - cmp r0, #0x0 - ble _0200BD94 - ldr r6, [sp, #0x10] -_0200BD68: - ldr r0, [r4, #0x8] - add r1, r7, #0x0 - bl FUN_02009660 - str r0, [sp, #0x18] - ldr r0, [r5, #0x0] - ldr r1, [r6, #0x0] - bl FUN_020161A4 - ldr r1, [sp, #0x18] - ldr r2, [r5, #0x0] - str r0, [sp, #0x1c] - bl FUN_02009668 - ldr r0, [sp, #0x1c] - bl FreeToHeap - ldr r0, [sp, #0x14] - add r7, r7, #0x1 - add r6, r6, #0x4 - cmp r7, r0 - blt _0200BD68 -_0200BD94: - ldr r0, [sp, #0x14] - mov r6, #0x0 - cmp r0, #0x0 - ble _0200BDBE - add r7, r4, #0x0 -_0200BD9E: - ldr r0, [r4, #0x8] - add r1, r6, #0x0 - bl FUN_02009660 - bl FUN_020096CC - ldr r2, [r5, #0x0] - add r1, r6, #0x0 - bl FUN_02008DEC - str r0, [r7, #0xc] - ldr r0, [sp, #0x14] - add r6, r6, #0x1 - add r7, r7, #0x4 - cmp r6, r0 - blt _0200BD9E -_0200BDBE: - ldr r0, [sp, #0x14] - mov r7, #0x0 - cmp r0, #0x0 - ble _0200BDF6 - add r6, r4, #0x0 -_0200BDC8: - ldr r0, [r4, #0x8] - add r1, r7, #0x0 - bl FUN_02009660 - str r0, [sp, #0x20] - bl FUN_020096CC - ldr r1, [r5, #0x0] - bl FUN_02009424 - add r2, r0, #0x0 - str r2, [r6, #0x24] - ldr r0, [r6, #0xc] - ldr r1, [sp, #0x20] - ldr r3, [r5, #0x0] - bl FUN_020093A8 - str r0, [r6, #0x3c] - ldr r0, [sp, #0x14] - add r7, r7, #0x1 - add r6, r6, #0x4 - cmp r7, r0 - blt _0200BDC8 -_0200BDF6: - ldr r0, [r4, #0x24] - bl FUN_02009A90 - ldr r0, [r4, #0x28] - bl FUN_02009D34 - ldr r1, [sp, #0x10] - ldr r0, [r5, #0x0] - ldr r1, [r1, #0x18] - bl FUN_020161A4 - ldr r1, [r4, #0x14] - add r6, r0, #0x0 - str r1, [sp, #0x0] - ldr r1, [r4, #0x18] - str r1, [sp, #0x4] - ldr r1, [r4, #0x1c] - str r1, [sp, #0x8] - ldr r1, [r4, #0x20] - str r1, [sp, #0xc] - ldr r1, [r5, #0x0] - ldr r2, [r4, #0xc] - ldr r3, [r4, #0x10] - bl FUN_02008BE0 - str r0, [r4, #0x4] - add r0, r6, #0x0 - bl FreeToHeap - mov r0, #0x1 - add sp, #0x24 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0200BE38 -FUN_0200BE38: ; 0x0200BE38 - push {r4, lr} - sub sp, #0x28 - mov r3, #0x4 - mov r4, #0x6 - ldrsh r3, [r2, r3] - ldrsh r4, [r2, r4] - str r4, [sp, #0x0] - str r3, [sp, #0x4] - ldrh r4, [r2, #0xa] - str r4, [sp, #0x8] - ldr r4, [r2, #0xc] - str r4, [sp, #0xc] - ldr r4, [r2, #0x10] - str r4, [sp, #0x10] - ldr r4, [r2, #0x14] - str r4, [sp, #0x14] - ldr r4, [r2, #0x18] - str r4, [sp, #0x18] - ldr r4, [r2, #0x1c] - str r4, [sp, #0x1c] - ldr r4, [r2, #0x20] - str r4, [sp, #0x20] - ldr r4, [r2, #0x24] - str r4, [sp, #0x24] - ldr r2, [r2, #0x0] - bl FUN_0200BE74 - add sp, #0x28 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200BE74 -FUN_0200BE74: ; 0x0200BE74 - push {r4, lr} - sub sp, #0x30 - add r4, r0, #0x0 - ldr r0, [r1, #0x0] - str r0, [sp, #0x0] - ldr r0, [r1, #0x4] - ldr r1, [r0, #0x0] - mov r0, #0x24 - mul r0, r2 - add r0, r1, r0 - str r0, [sp, #0x4] - cmp r3, #0x0 - ble _0200BEA0 - lsl r0, r3, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200BEAE -_0200BEA0: - lsl r0, r3, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200BEAE: - bl _ffix - str r0, [sp, #0x8] - add r1, sp, #0x28 - mov r0, #0x10 - ldrsh r0, [r1, r0] - cmp r0, #0x0 - ble _0200BED0 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200BEDE -_0200BED0: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200BEDE: - bl _ffix - str r0, [sp, #0xc] - add r1, sp, #0x28 - mov r0, #0x14 - ldrsh r0, [r1, r0] - cmp r0, #0x0 - ble _0200BF00 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200BF0E -_0200BF00: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200BF0E: - bl _ffix - str r0, [sp, #0x10] - ldr r0, [sp, #0x4c] - cmp r0, #0x2 - bne _0200BF24 - mov r0, #0x3 - ldr r1, [sp, #0xc] - lsl r0, r0, #0x12 - add r0, r1, r0 - str r0, [sp, #0xc] -_0200BF24: - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [sp, #0x14] - str r0, [sp, #0x18] - str r0, [sp, #0x1c] - mov r1, #0x0 - add r0, sp, #0x0 - strh r1, [r0, #0x20] - ldr r0, [sp, #0x44] - str r0, [sp, #0x24] - ldr r0, [sp, #0x4c] - str r0, [sp, #0x28] - ldr r0, [r4, #0x0] - str r0, [sp, #0x2c] - add r0, sp, #0x0 - bl FUN_0201FE94 - add r4, r0, #0x0 - beq _0200BF5A - add r1, sp, #0x28 - ldrh r1, [r1, #0x18] - bl FUN_02020130 - ldr r1, [sp, #0x48] - add r0, r4, #0x0 - bl FUN_02020248 -_0200BF5A: - add r0, r4, #0x0 - add sp, #0x30 - pop {r4, pc} - - thumb_func_start FUN_0200BF60 -FUN_0200BF60: ; 0x0200BF60 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - mov r0, #0x6 - str r0, [sp, #0x4] - ldr r0, [sp, #0x0] - add r5, r1, #0x0 - add r6, r2, #0x0 - cmp r0, #0x0 - beq _0200BF78 - cmp r5, #0x0 - bne _0200BF7E -_0200BF78: - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0200BF7E: - ldr r0, [r6, #0x10] - cmp r0, #0x0 - beq _0200BF8A - ldr r0, [r6, #0x14] - cmp r0, #0x0 - bne _0200BF8E -_0200BF8A: - mov r0, #0x4 - str r0, [sp, #0x4] -_0200BF8E: - ldr r0, [sp, #0x4] - str r0, [r5, #0x54] - mov r0, #0x0 - str r0, [sp, #0x8] - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ble _0200BFBE - add r7, r6, #0x0 - add r4, r5, #0x0 -_0200BFA0: - ldr r2, [sp, #0x0] - ldr r0, [r7, #0x0] - ldr r1, [sp, #0x8] - ldr r2, [r2, #0x0] - bl FUN_02008DEC - str r0, [r4, #0xc] - ldr r0, [sp, #0x8] - add r7, r7, #0x4 - add r1, r0, #0x1 - ldr r0, [sp, #0x4] - add r4, r4, #0x4 - str r1, [sp, #0x8] - cmp r1, r0 - blt _0200BFA0 -_0200BFBE: - ldr r0, [sp, #0x4] - mov r7, #0x0 - cmp r0, #0x0 - ble _0200C004 - add r4, r7, #0x0 -_0200BFC8: - ldr r0, [r6, #0x0] - cmp r0, #0x0 - beq _0200BFF8 - ldr r1, [sp, #0x0] - ldr r1, [r1, #0x0] - bl FUN_02009424 - str r0, [r5, #0x24] - mov r0, #0x0 - str r0, [r5, #0x3c] - ldr r3, [r5, #0x24] - add r1, r0, #0x0 - ldr r0, [r3, #0x4] - cmp r0, #0x0 - ble _0200BFF8 - add r2, r1, #0x0 -_0200BFE8: - ldr r0, [r3, #0x0] - add r1, r1, #0x1 - str r4, [r0, r2] - ldr r3, [r5, #0x24] - add r2, r2, #0x4 - ldr r0, [r3, #0x4] - cmp r1, r0 - blt _0200BFE8 -_0200BFF8: - ldr r0, [sp, #0x4] - add r7, r7, #0x1 - add r6, r6, #0x4 - add r5, r5, #0x4 - cmp r7, r0 - blt _0200BFC8 -_0200C004: - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0200C00C -FUN_0200C00C: ; 0x0200C00C - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - ldr r1, [sp, #0x28] - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C02A - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0200C02A: - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x20] - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r5, #0x0] - add r2, r7, #0x0 - str r0, [sp, #0x8] - ldr r0, [r4, #0xc] - bl FUN_02008F34 - add r5, r0, #0x0 - beq _0200C058 - bl FUN_02009B04 - ldr r0, [r4, #0x24] - add r1, r5, #0x0 - bl FUN_0200C474 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C058: - bl GF_AssertFail - cmp r5, #0x0 - beq _0200C066 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C066: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0200C06C -FUN_0200C06C: ; 0x0200C06C - push {r3-r7, lr} - sub sp, #0x10 - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x10] - ldr r1, [sp, #0x34] - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C08C - mov r0, #0x0 - add sp, #0x10 - mvn r0, r0 - pop {r3-r7, pc} -_0200C08C: - ldr r0, [sp, #0x34] - ldr r3, [sp, #0x28] - str r0, [sp, #0x0] - ldr r0, [sp, #0x30] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [sp, #0x2c] - add r2, r7, #0x0 - str r0, [sp, #0x8] - ldr r0, [r5, #0x0] - str r0, [sp, #0xc] - ldr r0, [r4, #0x10] - bl FUN_02008FEC - add r5, r0, #0x0 - beq _0200C0D0 - bl FUN_02009D68 - cmp r0, #0x1 - beq _0200C0B8 - bl GF_AssertFail -_0200C0B8: - ldr r0, [r4, #0x28] - add r1, r5, #0x0 - bl FUN_0200C474 - ldr r1, [sp, #0x30] - add r0, r5, #0x0 - bl FUN_02009E88 - lsl r0, r0, #0x18 - add sp, #0x10 - asr r0, r0, #0x18 - pop {r3-r7, pc} -_0200C0D0: - bl GF_AssertFail - mov r0, #0x0 - mvn r0, r0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start FUN_0200C0DC -FUN_0200C0DC: ; 0x0200C0DC - push {r4-r6, lr} - sub sp, #0x10 - add r5, r0, #0x0 - ldr r0, [sp, #0x28] - add r6, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - add r1, r3, #0x0 - str r0, [sp, #0x4] - ldr r0, [sp, #0x30] - ldr r3, [sp, #0x24] - str r0, [sp, #0x8] - ldr r0, [sp, #0x34] - str r0, [sp, #0xc] - add r0, r2, #0x0 - ldr r2, [sp, #0x20] - bl FUN_0200C06C - add r4, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r4, r0 - beq _0200C11A - ldr r3, [sp, #0x2c] - lsl r2, r4, #0x14 - add r0, r5, #0x0 - add r1, r6, #0x0 - lsr r2, r2, #0x10 - lsl r3, r3, #0x5 - bl FUN_02003108 -_0200C11A: - lsl r0, r4, #0x18 - lsr r0, r0, #0x18 - add sp, #0x10 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200C124 -FUN_0200C124: ; 0x0200C124 - push {r3-r4, lr} - sub sp, #0xc - ldr r4, [sp, #0x18] - str r4, [sp, #0x0] - mov r4, #0x2 - str r4, [sp, #0x4] - ldr r4, [sp, #0x1c] - str r4, [sp, #0x8] - bl FUN_0200C404 - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0200C13C -FUN_0200C13C: ; 0x0200C13C - push {r3-r4, lr} - sub sp, #0xc - ldr r4, [sp, #0x18] - str r4, [sp, #0x0] - mov r4, #0x3 - str r4, [sp, #0x4] - ldr r4, [sp, #0x1c] - str r4, [sp, #0x8] - bl FUN_0200C404 - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0200C154 -FUN_0200C154: ; 0x0200C154 - push {r4-r7, lr} - sub sp, #0x74 - add r7, r0, #0x0 - ldr r0, [r7, #0x0] - add r6, r1, #0x0 - mov r1, #0x10 - add r5, r2, #0x0 - bl AllocFromHeap - add r4, r0, #0x0 - bne _0200C170 - add sp, #0x74 - mov r0, #0x0 - pop {r4-r7, pc} -_0200C170: - ldr r0, [r7, #0x0] - mov r1, #0x8 - bl AllocFromHeap - str r0, [r4, #0x8] - cmp r0, #0x0 - bne _0200C184 - add sp, #0x74 - mov r0, #0x0 - pop {r4-r7, pc} -_0200C184: - ldr r0, [r7, #0x0] - mov r1, #0x24 - bl AllocFromHeap - ldr r1, [r4, #0x8] - str r0, [r1, #0x0] - ldr r0, [r4, #0x8] - ldr r0, [r0, #0x0] - str r0, [r4, #0x4] - ldr r0, [r4, #0x8] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - bne _0200C1AC - cmp r0, #0x0 - beq _0200C1A6 - bl FreeToHeap -_0200C1A6: - add sp, #0x74 - mov r0, #0x0 - pop {r4-r7, pc} -_0200C1AC: - mov r1, #0x0 - add r2, r5, #0x0 - add r3, sp, #0x2c -_0200C1B2: - ldr r0, [r2, #0x14] - add r1, r1, #0x1 - add r2, r2, #0x4 - stmia r3!, {r0} - cmp r1, #0x6 - blt _0200C1B2 - ldr r0, [r6, #0x1c] - cmp r0, #0x0 - beq _0200C1CA - ldr r1, [r6, #0x20] - cmp r1, #0x0 - bne _0200C1D4 -_0200C1CA: - mov r0, #0x0 - mvn r0, r0 - str r0, [sp, #0x3c] - str r0, [sp, #0x40] - b _0200C206 -_0200C1D4: - mov r2, #0x0 - ldr r1, [sp, #0x3c] - mvn r2, r2 - cmp r1, r2 - beq _0200C1EC - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C1EC - mov r0, #0x0 - mvn r0, r0 - str r0, [sp, #0x3c] -_0200C1EC: - mov r0, #0x0 - ldr r1, [sp, #0x40] - mvn r0, r0 - cmp r1, r0 - beq _0200C206 - ldr r0, [r6, #0x20] - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C206 - mov r0, #0x0 - mvn r0, r0 - str r0, [sp, #0x40] -_0200C206: - ldr r0, [sp, #0x38] - str r0, [sp, #0x0] - ldr r0, [sp, #0x3c] - str r0, [sp, #0x4] - ldr r0, [sp, #0x40] - str r0, [sp, #0x8] - ldr r0, [r5, #0x30] - str r0, [sp, #0xc] - ldr r0, [r5, #0x2c] - str r0, [sp, #0x10] - ldr r0, [r6, #0xc] - str r0, [sp, #0x14] - ldr r0, [r6, #0x10] - str r0, [sp, #0x18] - ldr r0, [r6, #0x14] - str r0, [sp, #0x1c] - ldr r0, [r6, #0x18] - str r0, [sp, #0x20] - ldr r0, [r6, #0x1c] - str r0, [sp, #0x24] - ldr r0, [r6, #0x20] - str r0, [sp, #0x28] - ldr r0, [r4, #0x4] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x30] - ldr r3, [sp, #0x34] - bl FUN_02008AA4 - ldr r0, [r6, #0x0] - str r0, [sp, #0x44] - ldr r0, [r4, #0x4] - str r0, [sp, #0x48] - mov r0, #0x0 - ldrsh r0, [r5, r0] - cmp r0, #0x0 - ble _0200C260 - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200C26E -_0200C260: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200C26E: - bl _ffix - str r0, [sp, #0x4c] - mov r0, #0x2 - ldrsh r0, [r5, r0] - cmp r0, #0x0 - ble _0200C28E - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200C29C -_0200C28E: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200C29C: - bl _ffix - str r0, [sp, #0x50] - mov r0, #0x4 - ldrsh r0, [r5, r0] - cmp r0, #0x0 - ble _0200C2BC - lsl r0, r0, #0xc - bl _fflt - add r1, r0, #0x0 - mov r0, #0x3f - lsl r0, r0, #0x18 - bl _fadd - b _0200C2CA -_0200C2BC: - lsl r0, r0, #0xc - bl _fflt - mov r1, #0x3f - lsl r1, r1, #0x18 - bl _fsub -_0200C2CA: - bl _ffix - str r0, [sp, #0x54] - ldr r0, [r5, #0x10] - cmp r0, #0x2 - bne _0200C2E0 - mov r0, #0x3 - ldr r1, [sp, #0x50] - lsl r0, r0, #0x12 - add r0, r1, r0 - str r0, [sp, #0x50] -_0200C2E0: - mov r0, #0x1 - lsl r0, r0, #0xc - str r0, [sp, #0x58] - str r0, [sp, #0x5c] - str r0, [sp, #0x60] - mov r1, #0x0 - add r0, sp, #0x2c - strh r1, [r0, #0x38] - ldr r0, [r5, #0x8] - str r0, [sp, #0x68] - ldr r0, [r5, #0x10] - str r0, [sp, #0x6c] - ldr r0, [r7, #0x0] - str r0, [sp, #0x70] - add r0, sp, #0x44 - bl FUN_0201FE94 - str r0, [r4, #0x0] - ldr r0, [r5, #0x30] - str r0, [r4, #0xc] - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _0200C328 - bl FUN_020202A0 - add r6, r0, #0x0 - ldrh r1, [r5, #0x6] - ldr r0, [r4, #0x0] - bl FUN_02020130 - ldr r1, [r5, #0xc] - ldr r0, [r4, #0x0] - add r1, r6, r1 - bl FUN_02020248 - b _0200C32C -_0200C328: - bl GF_AssertFail -_0200C32C: - add r0, r4, #0x0 - add sp, #0x74 - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_0200C334 -FUN_0200C334: ; 0x0200C334 - push {r3, lr} - ldr r0, [r0, #0x10] - bl FUN_020094F0 - mov r1, #0x0 - bl FUN_02009E54 - pop {r3, pc} - - thumb_func_start FUN_0200C344 -FUN_0200C344: ; 0x0200C344 - push {r4, lr} - ldr r0, [r0, #0x10] - add r4, r2, #0x0 - bl FUN_020094F0 - add r1, r4, #0x0 - bl FUN_02009E88 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200C358 -FUN_0200C358: ; 0x0200C358 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r3, #0xc] - ldr r1, [r3, #0x24] - ldr r3, _0200C364 ; =FUN_0200C4F4 - bx r3 - .balign 4 -_0200C364: .word FUN_0200C4F4 - - thumb_func_start FUN_0200C368 -FUN_0200C368: ; 0x0200C368 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r3, #0x10] - ldr r1, [r3, #0x28] - ldr r3, _0200C374 ; =FUN_0200C548 - bx r3 - .balign 4 -_0200C374: .word FUN_0200C548 - - thumb_func_start FUN_0200C378 -FUN_0200C378: ; 0x0200C378 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r3, #0x14] - ldr r1, [r3, #0x2c] - ldr r3, _0200C384 ; =FUN_0200C4A8 - bx r3 - .balign 4 -_0200C384: .word FUN_0200C4A8 - - thumb_func_start FUN_0200C388 -FUN_0200C388: ; 0x0200C388 - add r3, r0, #0x0 - add r2, r1, #0x0 - ldr r0, [r3, #0x18] - ldr r1, [r3, #0x30] - ldr r3, _0200C394 ; =FUN_0200C4A8 - bx r3 - .balign 4 -_0200C394: .word FUN_0200C4A8 - - thumb_func_start FUN_0200C398 -FUN_0200C398: ; 0x0200C398 - push {r3-r7, lr} - add r6, r1, #0x0 - add r7, r0, #0x0 - add r0, r6, #0x0 - bl FUN_0200BC40 - ldr r0, [r6, #0x24] - bl FUN_02009C30 - ldr r0, [r6, #0x28] - bl FUN_02009E28 - ldr r0, [r6, #0x54] - mov r4, #0x0 - cmp r0, #0x0 - ble _0200C3D0 - add r5, r6, #0x0 -_0200C3BA: - ldr r0, [r5, #0x24] - bl FUN_02009448 - ldr r0, [r5, #0xc] - bl FUN_02008E2C - ldr r0, [r6, #0x54] - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, r0 - blt _0200C3BA -_0200C3D0: - add r0, r7, #0x0 - add r1, r6, #0x0 - bl FUN_0200BCD0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200C3DC -FUN_0200C3DC: ; 0x0200C3DC - push {r4, lr} - add r4, r0, #0x0 - ldr r0, [r4, #0xc] - cmp r0, #0x0 - beq _0200C3EE - ldr r0, [r4, #0x4] - ldr r0, [r0, #0x0] - bl FUN_02009CDC -_0200C3EE: - ldr r0, [r4, #0x0] - bl FUN_0201FFC8 - ldr r0, [r4, #0x8] - bl FUN_02008C80 - add r0, r4, #0x0 - bl FreeToHeap - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200C404 -FUN_0200C404: ; 0x0200C404 - push {r4-r7, lr} - sub sp, #0x14 - add r6, r1, #0x0 - add r7, r0, #0x0 - ldr r0, [sp, #0x2c] - add r5, r6, #0x0 - lsl r4, r0, #0x2 - add r5, #0xc - ldr r0, [r5, r4] - ldr r1, [sp, #0x30] - str r2, [sp, #0xc] - str r3, [sp, #0x10] - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C42A - add sp, #0x14 - mov r0, #0x0 - pop {r4-r7, pc} -_0200C42A: - ldr r0, [sp, #0x30] - ldr r1, [sp, #0xc] - str r0, [sp, #0x0] - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x10] - str r0, [sp, #0x4] - ldr r0, [r7, #0x0] - ldr r3, [sp, #0x28] - str r0, [sp, #0x8] - ldr r0, [r5, r4] - bl FUN_020090AC - add r5, r0, #0x0 - beq _0200C460 - add r0, r6, r4 - ldr r0, [r0, #0x24] - add r1, r5, #0x0 - bl FUN_0200C474 - add r4, r0, #0x0 - cmp r4, #0x1 - beq _0200C45A - bl GF_AssertFail -_0200C45A: - add sp, #0x14 - add r0, r4, #0x0 - pop {r4-r7, pc} -_0200C460: - bl GF_AssertFail - cmp r5, #0x0 - beq _0200C46E - add sp, #0x14 - mov r0, #0x1 - pop {r4-r7, pc} -_0200C46E: - mov r0, #0x0 - add sp, #0x14 - pop {r4-r7, pc} - - thumb_func_start FUN_0200C474 -FUN_0200C474: ; 0x0200C474 - push {r3-r6} - ldr r6, [r0, #0x4] - mov r3, #0x0 - cmp r6, #0x0 - ble _0200C4A0 - ldr r5, [r0, #0x0] - add r4, r5, #0x0 -_0200C482: - ldr r2, [r4, #0x0] - cmp r2, #0x0 - bne _0200C498 - lsl r2, r3, #0x2 - str r1, [r5, r2] - ldr r1, [r0, #0x8] - add r1, r1, #0x1 - str r1, [r0, #0x8] - mov r0, #0x1 - pop {r3-r6} - bx lr -_0200C498: - add r3, r3, #0x1 - add r4, r4, #0x4 - cmp r3, r6 - blt _0200C482 -_0200C4A0: - mov r0, #0x0 - pop {r3-r6} - bx lr - .balign 4 - - thumb_func_start FUN_0200C4A8 -FUN_0200C4A8: ; 0x0200C4A8 - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [r5, #0x4] - add r7, r2, #0x0 - mov r6, #0x0 - cmp r0, #0x0 - ble _0200C4F0 - add r4, r6, #0x0 -_0200C4BA: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _0200C4E6 - bl FUN_02009530 - cmp r0, r7 - bne _0200C4E6 - ldr r1, [r5, #0x0] - lsl r4, r6, #0x2 - ldr r0, [sp, #0x0] - ldr r1, [r1, r4] - bl FUN_02009490 - ldr r0, [r5, #0x0] - mov r1, #0x0 - str r1, [r0, r4] - ldr r0, [r5, #0x8] - sub r0, r0, #0x1 - str r0, [r5, #0x8] - mov r0, #0x1 - pop {r3-r7, pc} -_0200C4E6: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _0200C4BA -_0200C4F0: - mov r0, #0x0 - pop {r3-r7, pc} - - thumb_func_start FUN_0200C4F4 -FUN_0200C4F4: ; 0x0200C4F4 - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [r5, #0x4] - add r7, r2, #0x0 - mov r6, #0x0 - cmp r0, #0x0 - ble _0200C542 - add r4, r6, #0x0 -_0200C506: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _0200C538 - bl FUN_02009530 - cmp r0, r7 - bne _0200C538 - add r0, r7, #0x0 - bl FUN_0201D324 - ldr r1, [r5, #0x0] - lsl r4, r6, #0x2 - ldr r0, [sp, #0x0] - ldr r1, [r1, r4] - bl FUN_02009490 - ldr r0, [r5, #0x0] - mov r1, #0x0 - str r1, [r0, r4] - ldr r0, [r5, #0x8] - sub r0, r0, #0x1 - str r0, [r5, #0x8] - mov r0, #0x1 - pop {r3-r7, pc} -_0200C538: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _0200C506 -_0200C542: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200C548 -FUN_0200C548: ; 0x0200C548 - push {r3-r7, lr} - add r5, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [r5, #0x4] - add r7, r2, #0x0 - mov r6, #0x0 - cmp r0, #0x0 - ble _0200C596 - add r4, r6, #0x0 -_0200C55A: - ldr r0, [r5, #0x0] - ldr r0, [r0, r4] - cmp r0, #0x0 - beq _0200C58C - bl FUN_02009530 - cmp r0, r7 - bne _0200C58C - add r0, r7, #0x0 - bl FUN_0201E1C8 - ldr r1, [r5, #0x0] - lsl r4, r6, #0x2 - ldr r0, [sp, #0x0] - ldr r1, [r1, r4] - bl FUN_02009490 - ldr r0, [r5, #0x0] - mov r1, #0x0 - str r1, [r0, r4] - ldr r0, [r5, #0x8] - sub r0, r0, #0x1 - str r0, [r5, #0x8] - mov r0, #0x1 - pop {r3-r7, pc} -_0200C58C: - ldr r0, [r5, #0x4] - add r6, r6, #0x1 - add r4, r4, #0x4 - cmp r6, r0 - blt _0200C55A -_0200C596: - mov r0, #0x0 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200C59C -FUN_0200C59C: ; 0x0200C59C - ldr r3, _0200C5A4 ; =FUN_020201E4 - mov r1, #0x1 - lsl r1, r1, #0xc - bx r3 - .balign 4 -_0200C5A4: .word FUN_020201E4 - - thumb_func_start FUN_0200C5A8 -FUN_0200C5A8: ; 0x0200C5A8 - ldr r3, _0200C5B0 ; =FUN_0200C59C - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5B0: .word FUN_0200C59C - - thumb_func_start FUN_0200C5B4 -FUN_0200C5B4: ; 0x0200C5B4 - ldr r3, _0200C5BC ; =FUN_020201E4 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5BC: .word FUN_020201E4 - - thumb_func_start FUN_0200C5C0 -FUN_0200C5C0: ; 0x0200C5C0 - ldr r3, _0200C5C8 ; =FUN_02020130 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5C8: .word FUN_02020130 - - thumb_func_start FUN_0200C5CC -FUN_0200C5CC: ; 0x0200C5CC - ldr r3, _0200C5D4 ; =FUN_020201DC - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5D4: .word FUN_020201DC - - thumb_func_start FUN_0200C5D8 -FUN_0200C5D8: ; 0x0200C5D8 - ldr r3, _0200C5DC ; =FUN_020200BC - bx r3 - .balign 4 -_0200C5DC: .word FUN_020200BC - - thumb_func_start FUN_0200C5E0 -FUN_0200C5E0: ; 0x0200C5E0 - ldr r3, _0200C5E8 ; =FUN_0200C5D8 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5E8: .word FUN_0200C5D8 - - thumb_func_start FUN_0200C5EC -FUN_0200C5EC: ; 0x0200C5EC - ldr r3, _0200C5F0 ; =FUN_020200D8 - bx r3 - .balign 4 -_0200C5F0: .word FUN_020200D8 - - thumb_func_start FUN_0200C5F4 -FUN_0200C5F4: ; 0x0200C5F4 - ldr r3, _0200C5FC ; =FUN_0200C5EC - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C5FC: .word FUN_0200C5EC - - thumb_func_start FUN_0200C600 -FUN_0200C600: ; 0x0200C600 - ldr r3, _0200C604 ; =FUN_02020388 - bx r3 - .balign 4 -_0200C604: .word FUN_02020388 - - thumb_func_start FUN_0200C608 -FUN_0200C608: ; 0x0200C608 - ldr r3, _0200C610 ; =FUN_0200C600 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C610: .word FUN_0200C600 - - thumb_func_start FUN_0200C614 -FUN_0200C614: ; 0x0200C614 - ldr r3, _0200C618 ; =FUN_02020208 - bx r3 - .balign 4 -_0200C618: .word FUN_02020208 - - thumb_func_start FUN_0200C61C -FUN_0200C61C: ; 0x0200C61C - ldr r3, _0200C624 ; =FUN_0200C614 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C624: .word FUN_0200C614 - - thumb_func_start FUN_0200C628 -FUN_0200C628: ; 0x0200C628 - ldr r3, _0200C62C ; =FUN_0202022C - bx r3 - .balign 4 -_0200C62C: .word FUN_0202022C - - thumb_func_start FUN_0200C630 -FUN_0200C630: ; 0x0200C630 - ldr r3, _0200C638 ; =FUN_0200C628 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C638: .word FUN_0200C628 - - thumb_func_start FUN_0200C63C -FUN_0200C63C: ; 0x0200C63C - ldr r3, _0200C640 ; =FUN_020200A0 - bx r3 - .balign 4 -_0200C640: .word FUN_020200A0 - - thumb_func_start FUN_0200C644 -FUN_0200C644: ; 0x0200C644 - ldr r3, _0200C64C ; =FUN_0200C63C - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C64C: .word FUN_0200C63C - - thumb_func_start FUN_0200C650 -FUN_0200C650: ; 0x0200C650 - ldr r3, _0200C654 ; =FUN_02020128 - bx r3 - .balign 4 -_0200C654: .word FUN_02020128 - - thumb_func_start FUN_0200C658 -FUN_0200C658: ; 0x0200C658 - ldr r3, _0200C660 ; =FUN_0200C650 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C660: .word FUN_0200C650 - - thumb_func_start FUN_0200C664 -FUN_0200C664: ; 0x0200C664 - ldr r3, _0200C668 ; =FUN_02020248 - bx r3 - .balign 4 -_0200C668: .word FUN_02020248 - - thumb_func_start FUN_0200C66C -FUN_0200C66C: ; 0x0200C66C - ldr r3, _0200C674 ; =FUN_0200C664 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C674: .word FUN_0200C664 - - thumb_func_start FUN_0200C678 -FUN_0200C678: ; 0x0200C678 - ldr r3, _0200C67C ; =FUN_020202A8 - bx r3 - .balign 4 -_0200C67C: .word FUN_020202A8 - - thumb_func_start FUN_0200C680 -FUN_0200C680: ; 0x0200C680 - ldr r3, _0200C688 ; =FUN_0200C678 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C688: .word FUN_0200C678 - - thumb_func_start FUN_0200C68C -FUN_0200C68C: ; 0x0200C68C - ldr r3, _0200C694 ; =FUN_02020300 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C694: .word FUN_02020300 - - thumb_func_start FUN_0200C698 -FUN_0200C698: ; 0x0200C698 - ldr r3, _0200C6A0 ; =FUN_02020238 - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bx r3 - .balign 4 -_0200C6A0: .word FUN_02020238 - - thumb_func_start FUN_0200C6A4 -FUN_0200C6A4: ; 0x0200C6A4 - ldr r3, _0200C6AC ; =FUN_02020240 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C6AC: .word FUN_02020240 - - thumb_func_start FUN_0200C6B0 -FUN_0200C6B0: ; 0x0200C6B0 - ldr r3, _0200C6B8 ; =FUN_0200C698 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C6B8: .word FUN_0200C698 - - thumb_func_start FUN_0200C6BC -FUN_0200C6BC: ; 0x0200C6BC - ldr r3, _0200C6C0 ; =FUN_02020310 - bx r3 - .balign 4 -_0200C6C0: .word FUN_02020310 - - thumb_func_start FUN_0200C6C4 -FUN_0200C6C4: ; 0x0200C6C4 - ldr r3, _0200C6CC ; =FUN_0200C6BC - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C6CC: .word FUN_0200C6BC - - thumb_func_start FUN_0200C6D0 -FUN_0200C6D0: ; 0x0200C6D0 - ldr r3, _0200C6D4 ; =FUN_0202032C - bx r3 - .balign 4 -_0200C6D4: .word FUN_0202032C - - thumb_func_start FUN_0200C6D8 -FUN_0200C6D8: ; 0x0200C6D8 - ldr r3, _0200C6E0 ; =FUN_0200C6D0 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C6E0: .word FUN_0200C6D0 - - thumb_func_start FUN_0200C6E4 -FUN_0200C6E4: ; 0x0200C6E4 - push {r3-r4, lr} - sub sp, #0xc - lsl r1, r1, #0xc - str r1, [sp, #0x0] - lsl r1, r2, #0xc - add r4, r0, #0x0 - str r1, [sp, #0x4] - bl FUN_02020380 - cmp r0, #0x2 - bne _0200C704 - mov r0, #0x3 - ldr r1, [sp, #0x4] - lsl r0, r0, #0x12 - add r0, r1, r0 - str r0, [sp, #0x4] -_0200C704: - mov r0, #0x0 - str r0, [sp, #0x8] - add r0, r4, #0x0 - add r1, sp, #0x0 - bl FUN_02020044 - add sp, #0xc - pop {r3-r4, pc} - - thumb_func_start FUN_0200C714 -FUN_0200C714: ; 0x0200C714 - ldr r3, _0200C71C ; =FUN_0200C6E4 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C71C: .word FUN_0200C6E4 - - thumb_func_start FUN_0200C720 -FUN_0200C720: ; 0x0200C720 - push {r4-r5, lr} - sub sp, #0xc - lsl r1, r1, #0xc - str r1, [sp, #0x0] - lsl r1, r2, #0xc - add r5, r0, #0x0 - add r4, r3, #0x0 - str r1, [sp, #0x4] - bl FUN_02020380 - cmp r0, #0x2 - bne _0200C73E - ldr r0, [sp, #0x4] - add r0, r0, r4 - str r0, [sp, #0x4] -_0200C73E: - mov r0, #0x0 - str r0, [sp, #0x8] - add r0, r5, #0x0 - add r1, sp, #0x0 - bl FUN_02020044 - add sp, #0xc - pop {r4-r5, pc} - .balign 4 - - thumb_func_start FUN_0200C750 -FUN_0200C750: ; 0x0200C750 - push {r3, lr} - ldr r0, [r0, #0x0] - bl FUN_0200C720 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0200C75C -FUN_0200C75C: ; 0x0200C75C - push {r3-r7, lr} - add r7, r0, #0x0 - add r6, r1, #0x0 - add r5, r2, #0x0 - bl FUN_0202011C - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r6, #0x0] - add r0, r7, #0x0 - bl FUN_02020380 - cmp r0, #0x2 - ldr r1, [r4, #0x4] - bne _0200C794 - mov r0, #0x3 - lsl r0, r0, #0x12 - sub r1, r1, r0 - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r5, #0x0] - pop {r3-r7, pc} -_0200C794: - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r5, #0x0] - pop {r3-r7, pc} - - thumb_func_start FUN_0200C7A0 -FUN_0200C7A0: ; 0x0200C7A0 - ldr r3, _0200C7A8 ; =FUN_0200C75C - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C7A8: .word FUN_0200C75C - - thumb_func_start FUN_0200C7AC -FUN_0200C7AC: ; 0x0200C7AC - push {r3-r7, lr} - str r0, [sp, #0x0] - add r6, r1, #0x0 - add r5, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0202011C - add r4, r0, #0x0 - ldr r1, [r4, #0x0] - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r6, #0x0] - ldr r0, [sp, #0x0] - bl FUN_02020380 - cmp r0, #0x2 - bne _0200C7E2 - ldr r0, [r4, #0x4] - sub r1, r0, r7 - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r5, #0x0] - pop {r3-r7, pc} -_0200C7E2: - ldr r1, [r4, #0x4] - asr r0, r1, #0xb - lsr r0, r0, #0x14 - add r0, r1, r0 - asr r0, r0, #0xc - strh r0, [r5, #0x0] - pop {r3-r7, pc} - - thumb_func_start FUN_0200C7F0 -FUN_0200C7F0: ; 0x0200C7F0 - push {r3, lr} - ldr r0, [r0, #0x0] - bl FUN_0200C7AC - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0200C7FC -FUN_0200C7FC: ; 0x0200C7FC - push {r3-r6, lr} - sub sp, #0xc - add r6, r0, #0x0 - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_0202011C - ldr r2, [r0, #0x0] - lsl r1, r5, #0xc - add r1, r2, r1 - str r1, [sp, #0x0] - ldr r2, [r0, #0x4] - lsl r1, r4, #0xc - add r1, r2, r1 - str r1, [sp, #0x4] - ldr r0, [r0, #0x8] - add r1, sp, #0x0 - str r0, [sp, #0x8] - add r0, r6, #0x0 - bl FUN_02020044 - add sp, #0xc - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_0200C82C -FUN_0200C82C: ; 0x0200C82C - ldr r3, _0200C834 ; =FUN_0200C7FC - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C834: .word FUN_0200C7FC - - thumb_func_start FUN_0200C838 -FUN_0200C838: ; 0x0200C838 - ldr r3, _0200C83C ; =FUN_020200EC - bx r3 - .balign 4 -_0200C83C: .word FUN_020200EC - - thumb_func_start FUN_0200C840 -FUN_0200C840: ; 0x0200C840 - ldr r3, _0200C848 ; =FUN_0200C838 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C848: .word FUN_0200C838 - - thumb_func_start FUN_0200C84C -FUN_0200C84C: ; 0x0200C84C - push {r3-r7, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r7, r2, #0x0 - bl FUN_02020120 - add r4, r0, #0x0 - ldr r0, _0200C880 ; =0x45800000 - add r1, r6, #0x0 - bl _fmul - bl _ffix - str r0, [r4, #0x0] - ldr r0, _0200C880 ; =0x45800000 - add r1, r7, #0x0 - bl _fmul - bl _ffix - str r0, [r4, #0x4] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02020064 - pop {r3-r7, pc} - .balign 4 -_0200C880: .word 0x45800000 - - thumb_func_start FUN_0200C884 -FUN_0200C884: ; 0x0200C884 - ldr r3, _0200C88C ; =FUN_0200C84C - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C88C: .word FUN_0200C84C - - thumb_func_start FUN_0200C890 -FUN_0200C890: ; 0x0200C890 - ldr r3, _0200C894 ; =FUN_02020088 - bx r3 - .balign 4 -_0200C894: .word FUN_02020088 - - thumb_func_start FUN_0200C898 -FUN_0200C898: ; 0x0200C898 - ldr r3, _0200C8A0 ; =FUN_0200C890 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C8A0: .word FUN_0200C890 - - thumb_func_start FUN_0200C8A4 -FUN_0200C8A4: ; 0x0200C8A4 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r0, #0x0 - bl FUN_02020124 - add r0, r0, r5 - lsl r0, r0, #0x10 - lsr r1, r0, #0x10 - add r0, r4, #0x0 - bl FUN_02020088 - pop {r3-r5, pc} - - thumb_func_start FUN_0200C8BC -FUN_0200C8BC: ; 0x0200C8BC - ldr r3, _0200C8C4 ; =FUN_0200C8A4 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C8C4: .word FUN_0200C8A4 - - thumb_func_start FUN_0200C8C8 -FUN_0200C8C8: ; 0x0200C8C8 - ldr r3, _0200C8CC ; =FUN_02020100 - bx r3 - .balign 4 -_0200C8CC: .word FUN_02020100 - - thumb_func_start FUN_0200C8D0 -FUN_0200C8D0: ; 0x0200C8D0 - ldr r3, _0200C8D8 ; =FUN_0200C8C8 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C8D8: .word FUN_0200C8C8 - - thumb_func_start FUN_0200C8DC -FUN_0200C8DC: ; 0x0200C8DC - push {lr} - sub sp, #0xc - lsl r1, r1, #0xc - str r1, [sp, #0x0] - lsl r1, r2, #0xc - str r1, [sp, #0x4] - mov r1, #0x0 - str r1, [sp, #0x8] - ldr r0, [r0, #0x0] - add r1, sp, #0x0 - bl FUN_02020054 - add sp, #0xc - pop {pc} - - thumb_func_start FUN_0200C8F8 -FUN_0200C8F8: ; 0x0200C8F8 - ldr r3, _0200C900 ; =FUN_02020358 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C900: .word FUN_02020358 - - thumb_func_start FUN_0200C904 -FUN_0200C904: ; 0x0200C904 - ldr r3, _0200C908 ; =FUN_02020398 - bx r3 - .balign 4 -_0200C908: .word FUN_02020398 - - thumb_func_start FUN_0200C90C -FUN_0200C90C: ; 0x0200C90C - ldr r3, _0200C914 ; =FUN_0200C904 - ldr r0, [r0, #0x0] - bx r3 - nop -_0200C914: .word FUN_0200C904 - - thumb_func_start FUN_0200C918 -FUN_0200C918: ; 0x0200C918 - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - ldr r1, [sp, #0x28] - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C936 - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0200C936: - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x20] - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r5, #0x0] - add r2, r7, #0x0 - str r0, [sp, #0x8] - ldr r0, [r4, #0xc] - bl FUN_02008F34 - add r5, r0, #0x0 - beq _0200C964 - bl FUN_02009AC4 - ldr r0, [r4, #0x24] - add r1, r5, #0x0 - bl FUN_0200C474 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C964: - bl GF_AssertFail - cmp r5, #0x0 - beq _0200C972 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C972: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0200C978 -FUN_0200C978: ; 0x0200C978 - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - ldr r1, [sp, #0x28] - add r6, r2, #0x0 - add r7, r3, #0x0 - bl FUN_0200945C - cmp r0, #0x0 - bne _0200C996 - add sp, #0xc - mov r0, #0x0 - pop {r4-r7, pc} -_0200C996: - ldr r0, [sp, #0x28] - ldr r3, [sp, #0x20] - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r5, #0x0] - add r2, r7, #0x0 - str r0, [sp, #0x8] - ldr r0, [r4, #0xc] - bl FUN_02008F34 - add r5, r0, #0x0 - beq _0200C9C4 - bl FUN_02009B78 - ldr r0, [r4, #0x24] - add r1, r5, #0x0 - bl FUN_0200C474 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C9C4: - bl GF_AssertFail - cmp r5, #0x0 - beq _0200C9D2 - add sp, #0xc - mov r0, #0x1 - pop {r4-r7, pc} -_0200C9D2: - mov r0, #0x0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0200C9D8 -FUN_0200C9D8: ; 0x0200C9D8 - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0xc] - ldr r1, [sp, #0x24] - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_020094F0 - add r6, r0, #0x0 - ldr r0, [sp, #0x20] - ldr r3, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [r5, #0x0] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r4, #0xc] - add r2, r7, #0x0 - bl FUN_020090FC - add r0, r6, #0x0 - bl FUN_02009BE8 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0200CA0C -FUN_0200CA0C: ; 0x0200CA0C - push {r4-r7, lr} - sub sp, #0xc - add r4, r1, #0x0 - add r5, r0, #0x0 - ldr r0, [r4, #0x10] - ldr r1, [sp, #0x24] - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_020094F0 - add r6, r0, #0x0 - ldr r0, [sp, #0x20] - ldr r3, [sp, #0x8] - str r0, [sp, #0x0] - ldr r0, [r5, #0x0] - add r1, r6, #0x0 - str r0, [sp, #0x4] - ldr r0, [r4, #0x10] - add r2, r7, #0x0 - bl FUN_02009168 - add r0, r6, #0x0 - bl FUN_02009DE0 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_0200CA40 -FUN_0200CA40: ; 0x0200CA40 - ldr r0, [r0, #0x0] - bx lr diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 7dba22826..2816d83ad 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -1,5 +1,6 @@ #include "global.h" #include "unk_0200BB14.h" +#include "game_init.h" #include "heap.h" extern void FUN_0201D060(u32 *param0, u32 param1, u32 param2); @@ -17,70 +18,52 @@ extern void FUN_02009EAC(u32 param0, extern u32 FUN_0201C328(u32 param0, u32 param1); extern void FUN_0201D168(); extern void FUN_0201E0BC(); -extern u32 FUN_02008C9C(u32 param0, u32 *param1, u32 param2); +extern u32 FUN_02008C9C(u32 param0, void *param1, u32 param2); extern void FUN_0201FFC8(u32 param0); extern void FUN_0201FDEC(u32 param0); extern void FUN_02009F80(); extern void FUN_0201C348(); -extern void FUN_0201FD58(); +extern void FUN_0201FD58(u32 param0); extern void FUN_02008C80(u32 param0); -extern u32 FUN_02009660(u32 param0, u32 param1); +extern u32 FUN_02009660(u32 *param0, s32 param1); extern void FUN_020096B4(u32 param0); -extern void FUN_02009C30(u32 param0); -extern void FUN_02009E28(u32 param0); -extern void FUN_02009448(u32 param0); +extern void FUN_02009C30(u32 *param0); +extern void FUN_02009E28(u32 *param0); +extern void FUN_02009448(u32 *param0); extern void FUN_02008E2C(u32 param0); extern void FUN_0201C350(u32 param0); extern void FUN_0201D12C(); extern void FUN_0201E08C(); extern void FUN_02009FA0(); -extern u32 FUN_0200965C(u32 param0); -extern u32 FUN_020161A4(u32 param0, u32 param1); -extern void FUN_02009668(u32 param0, u32 param1, u32 param2); +extern u32 FUN_0200965C(s32 param0); +extern void FUN_02009668(void *param0, u32 param1, u32 param2); extern u32 FUN_020096CC(u32 param0); -extern u32 FUN_02008DEC(u32 param0, u32 param1, u32 param2); -extern u32 FUN_02009424(u32 param0, u32 param1); -extern u32 FUN_020093A8(u32 param0, u32 param1, u32 param2, u32 param3); -extern void FUN_02009A90(u32 param0); -extern void FUN_02009D34(u32 param0); +extern u32 FUN_02008DEC(u32 param0, s32 param1, u32 param2); +extern u32 *FUN_02009424(u32 param0, u32 param1); +extern u32 FUN_020093A8(u32 param0, u32 param1, u32 *param2, u32 param3); +extern void FUN_02009A90(u32 *param0); +extern void FUN_02009D34(u32 *param0); extern u32 FUN_02008BE0( - u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); -extern u32 FUN_0200BE74(u32 *param0, - u32 *param1, - u32 param2, - s16 param3, - s16 param4, - s16 param5, - u16 param6, - u32 param7, - u32 param8, - u32 param9, - u32 param10, - u32 param11, - u32 param12, - u32 param13); + void *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); extern u32 FUN_0201FE94(struct UnkStruct4 *param0); extern void FUN_02020130(u32 param0, u32 param1); extern void FUN_02020248(u32 param0, u32 param1); -extern u32 FUN_0200945C(u32 param0, u32 param1); +extern u32 FUN_0200945C(u32 param0, s32 param1); extern u32 FUN_02008F34( - u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); extern void FUN_02009B04(u32 param0); -extern u32 FUN_0200C474(u32 *param0, u32 param1); extern u32 FUN_02008FEC( - u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); + u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6, u32 param7); extern u32 FUN_02009D68(u32 param0); extern u32 FUN_02009E88(u32 param0, u32 param1); extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3); -extern u32 FUN_0200C404( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); -extern void FUN_02008AA4(u32 param0, - u32 param1, - u32 param2, - u32 param3, - u32 param4, - u32 param5, - u32 param6, +extern void FUN_02008AA4(struct UnkStruct7 *param0, + s32 param1, + s32 param2, + s32 param3, + s32 param4, + s32 param5, + s32 param6, u32 param7, u32 param8, u32 param9, @@ -92,12 +75,9 @@ extern void FUN_02008AA4(u32 param0, extern u8 FUN_020202A0(u32 param0); extern u32 FUN_020094F0(u32 param0, u32 param1); extern u32 FUN_02009E54(u32 param0, u32 param1); -extern u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); -extern u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2); -extern u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); extern void FUN_02009CDC(u32 param0); extern u32 FUN_020090AC( - u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 param0, u32 param1, u32 param2, u32 param3, s32 param4, u32 param5, u32 param6); extern u32 FUN_02009530(u32 param0); extern void FUN_02009490(u32 param0, u32 param1); extern void FUN_0201D324(u32 param0); @@ -111,7 +91,6 @@ extern void FUN_02020208(u32 param0); extern void FUN_0202022C(u32 param0); extern void FUN_020200A0(u32 param0, u32 param1); extern u8 FUN_02020128(u32 param0); -extern void FUN_02020248(u32 param0, u32 param1); extern void FUN_020202A8(u32 param0, u32 param1); extern u8 FUN_02020300(u32 param0); extern void FUN_02020238(u32 param0, u8 param1); @@ -123,7 +102,7 @@ extern void FUN_02020044(u32 param0, u32 *param1); extern u32 *FUN_0202011C(u32 param0, u16 *param1, u16 *param2); extern void FUN_020200EC(u32 param0, u32 param1); extern u32 *FUN_02020120(u32 param0); -extern void FUN_02020064(u32 param0, u32 param1); +extern void FUN_02020064(u32 param0, s32 *param1); extern void FUN_02020088(u32 param0, u16 param1); extern u16 FUN_02020124(u32 param0); extern void FUN_02020100(u32 param0, u32 param1); @@ -139,7 +118,7 @@ extern void FUN_02009DE0(u32 param0); THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id) { - struct UnkStruct1 *ptr = AllocFromHeap(heap_id, 0x138); + struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1)); if (ptr == NULL) { return NULL; @@ -156,7 +135,7 @@ THUMB_FUNC struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0) { GF_ASSERT(param0 != NULL); - struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, 0x58); + struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct2)); if (ptr == NULL) { return NULL; @@ -177,7 +156,7 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0) return param0 + 0x10; } -THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3) +THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3) { GF_ASSERT(param0 != NULL); @@ -186,13 +165,13 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3) return 0; } - u32 st14[4] = { param2[0], param2[1], param2[2], param0[0] }; + u32 st14[4] = { param2[0], param2[1], param2[2], param0->unk000 }; FUN_0201D060(st14, param2[3], param2[4]); - FUN_0201E00C(param3, param0[0]); + FUN_0201E00C(param3, param0->unk000); NNS_G2dInitOamManagerModule(); - if (param0[2] == 1) + if (param0->unk008 == 1) { FUN_02009EAC(param1[0], param1[1], @@ -202,24 +181,24 @@ THUMB_FUNC u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3) param1[5], param1[6], param1[7], - param0[0]); + param0->unk000); } - param0[3] = FUN_0201C328(0x20, param0[0]); + param0->unk00c = FUN_0201C328(0x20, param0->unk000); FUN_0201D168(); FUN_0201E0BC(); return 1; } -THUMB_FUNC u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2) +THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2) { if (param0 == NULL || param1 == NULL) { return 0; } - param1[0] = FUN_02008C9C(param2, param0 + 4, param0[0]); + param1->unk00 = FUN_02008C9C(param2, param0->unk010, param0->unk000); return 1; } @@ -246,34 +225,34 @@ THUMB_FUNC void FUN_0200BC38() FUN_0201C348(); } -THUMB_FUNC void FUN_0200BC40(u32 *param0) +THUMB_FUNC void FUN_0200BC40(struct UnkStruct2 *param0) { - FUN_0201FD58(*param0); + FUN_0201FD58(param0->unk00); } -THUMB_FUNC void FUN_0200BC4C(u32 *param0) +THUMB_FUNC void FUN_0200BC4C(struct UnkStruct2 *param0) { - if (param0[1] != 0) + if (param0->unk04 != 0) { - FUN_02008C80(param0[1]); + FUN_02008C80(param0->unk04); } } -THUMB_FUNC void FUN_0200BC5C(u32 *param0) +THUMB_FUNC void FUN_0200BC5C(struct UnkStruct2 *param0) { - for (int i = 0; i < (int)param0[21]; i++) + for (int i = 0; i < (int)param0->unk54; i++) { - FUN_020096B4(FUN_02009660(param0[2], i)); + FUN_020096B4(FUN_02009660(param0->unk08, i)); } - FreeToHeap(param0[2]); - FUN_02009C30(param0[9]); - FUN_02009E28(param0[10]); + FreeToHeap(param0->unk08); + FUN_02009C30(param0->unk24[0]); + FUN_02009E28(param0->unk24[1]); - for (int i = 0; i < (int)param0[21]; i++) + for (int i = 0; i < (int)param0->unk54; i++) { - FUN_02009448(param0[i + 9]); - FUN_02008E2C(param0[i + 3]); + FUN_02009448(param0->unk24[i]); + FUN_02008E2C(param0->unk0c[i]); } } @@ -289,13 +268,13 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0) } } -THUMB_FUNC void FUN_0200BCD0(u32 *param0, void *param1) +THUMB_FUNC void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1) { - param0[1]--; + param0->unk004--; FreeToHeap(param1); } -THUMB_FUNC void FUN_0200BCE0(u32 *param0, u32 *param1) +THUMB_FUNC void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1) { FUN_0200BC40(param1); FUN_0200BC4C(param1); @@ -310,10 +289,11 @@ THUMB_FUNC void FUN_0200BD04(u32 *param0) FreeToHeap(param0); } -THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2) +THUMB_FUNC u32 FUN_0200BD20( + struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2) { int st14 = 6; - u32 *st10 = param2; + const char **st10 = param2; if (param0 == NULL || param1 == NULL) { @@ -325,36 +305,43 @@ THUMB_FUNC u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2) st14 = 4; } - param1[21] = st14; + param1->unk54 = st14; u32 r2 = FUN_0200965C(st14); - param1[2] = AllocFromHeap(param0[0], r2 * st14); + param1->unk08 = AllocFromHeap(param0->unk000, r2 * st14); for (int i = 0; i < st14; i++) { - u32 st18 = FUN_02009660(param1[2], i); - u32 st1c = FUN_020161A4(param0[0], st10[i]); + u32 st18 = FUN_02009660(param1->unk08, i); + void *st1c = FUN_020161A4(param0->unk000, st10[i]); - FUN_02009668(st1c, st18, param0[0]); + FUN_02009668(st1c, st18, param0->unk000); FreeToHeap(st1c); } for (int i = 0; i < st14; i++) { - param1[3 + i] = FUN_02008DEC(FUN_020096CC(FUN_02009660(param1[2], i)), i, param0[0]); + param1->unk0c[i] = + FUN_02008DEC(FUN_020096CC(FUN_02009660(param1->unk08, i)), i, param0->unk000); } for (int i = 0; i < st14; i++) { - u32 st20 = FUN_02009660(param1[2], i); - param1[9 + i] = FUN_02009424(FUN_020096CC(st20), param0[0]); - param1[15 + i] = FUN_020093A8(param1[3 + i], st20, param1[9 + i], param0[0]); + u32 st20 = FUN_02009660(param1->unk08, i); + param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000); + param1->unk3c[i] = FUN_020093A8(param1->unk0c[i], st20, param1->unk24[i], param0->unk000); } - FUN_02009A90(param1[9]); - FUN_02009D34(param1[10]); - u32 r6 = FUN_020161A4(param0[0], st10[6]); - param1[1] = FUN_02008BE0( - r6, param0[0], param1[3], param1[4], param1[5], param1[6], param1[7], param1[8]); + FUN_02009A90(param1->unk24[0]); + FUN_02009D34(param1->unk24[1]); + void *r6 = FUN_020161A4(param0->unk000, st10[6]); + param1->unk04 = FUN_02008BE0(r6, + param0->unk000, + param1->unk0c[0], + param1->unk0c[1], + param1->unk0c[2], + param1->unk0c[3], + param1->unk0c[4], + param1->unk0c[5]); FreeToHeap(r6); return 1; @@ -393,10 +380,14 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, u32 param12, u32 param13) { +#pragma unused(param10) +#pragma unused(param11) +#pragma unused(param12) +#pragma unused(param13) struct UnkStruct4 st0; st0.unk00 = param1[0]; - st0.unk04 = *(u32 *)(param1[1]) + param2 * 0x24; + st0.unk04 = &(*(struct UnkStruct7 **)(param1[1]))[param2]; float r0; if (param3 > 0) @@ -407,7 +398,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, { r0 = ((float)(param3 << 0xc) - (float)0.5); } - st0.unk08 = r0; + st0.unk08 = (s32)r0; if (param4 > 0) { @@ -417,7 +408,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, { r0 = ((float)(param4 << 0xc) - (float)0.5); } - st0.unk0c = r0; + st0.unk0c = (s32)r0; if (param5 > 0) { @@ -427,7 +418,7 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, { r0 = ((float)(param5 << 0xc) - (float)0.5); } - st0.unk10 = r0; + st0.unk10 = (s32)r0; if (param9 == 2) { @@ -453,13 +444,13 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, return r4; } -THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2) +THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2) { - u32 *st0 = param0; + struct UnkStruct1 *st0 = param0; int i; int st4 = 6; - if (st0 == 0 || param1 == 0) + if (st0 == NULL || param1 == NULL) { return 0; } @@ -469,23 +460,23 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2) st4 = 4; } - param1[21] = st4; + param1->unk54 = st4; for (i = 0; i < st4; i++) { - param1[3 + i] = FUN_02008DEC(param2[i], i, st0[0]); + param1->unk0c[i] = FUN_02008DEC(param2[i], i, st0->unk000); } for (i = 0; i < st4; i++) { if (param2[i] != 0) { - param1[9 + i] = FUN_02009424(param2[i], st0[0]); - param1[15 + i] = 0; + param1->unk24[i] = FUN_02009424(param2[i], st0->unk000); + param1->unk3c[i] = 0; - for (int j = 0; j < (int)((u32 *)param1[9 + i])[1]; j++) + for (int j = 0; j < (int)((u32 *)param1->unk24[i])[1]; j++) { - ((u32 *)(((u32 *)param1[9 + i])[0]))[j] = 0; + ((u32 *)(((u32 *)param1->unk24[i])[0]))[j] = 0; } } } @@ -494,22 +485,22 @@ THUMB_FUNC u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2) } THUMB_FUNC u32 FUN_0200C00C( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { - if (FUN_0200945C(param1[3], param6) == 0) + if (FUN_0200945C(param1->unk0c[0], param6) == 0) { return 0; } - u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != 0) { FUN_02009B04(r5); - FUN_0200C474(param1[9], r5); + FUN_0200C474(param1->unk24[0], r5); return 1; } - ErrorHandling(); + GF_AssertFail(); if (r5 != 0) { return 1; @@ -519,87 +510,88 @@ THUMB_FUNC u32 FUN_0200C00C( } THUMB_FUNC s32 FUN_0200C06C(u32 *param0, - u32 *param1, + struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, - u32 param7) + s32 param7) { - if (FUN_0200945C(param1[4], param7) == 0) + if (FUN_0200945C(param1->unk0c[1], param7) == 0) { return -1; } - u32 r5 = FUN_02008FEC(param1[4], param2, param3, param4, param7, param6, param5, param0[0]); + u32 r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]); if (r5 != 0) { GF_ASSERT(FUN_02009D68(r5) == 1); - FUN_0200C474(param1[10], r5); + FUN_0200C474(param1->unk24[1], r5); return (s8)FUN_02009E88(r5, param6); } - ErrorHandling(); + GF_AssertFail(); return -1; } THUMB_FUNC u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, - u32 *param3, + struct UnkStruct2 *param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, - u32 param9) + s32 param9) { s32 r4 = FUN_0200C06C(param2, param3, param4, param5, param6, param7, param8, param9); if (r4 != -1) { - FUN_02003108(param0, param1, r4 << 4, param7 << 5); + FUN_02003108(param0, param1, (u16)(r4 << 4), param7 << 5); } - return r4; + return (u8)r4; } THUMB_FUNC u32 FUN_0200C124( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5); } THUMB_FUNC u32 FUN_0200C13C( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5); } -THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) +THUMB_FUNC struct UnkStruct5 *FUN_0200C154( + struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2) { struct UnkStruct4 st44; s32 st2c[6]; - u32 *ptr = AllocFromHeap(param0[0], 0x10); + struct UnkStruct5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct5)); if (ptr == NULL) { return 0; } - ptr[2] = AllocFromHeap(param0[0], 0x8); - if (ptr[2] == 0) + ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct6)); + if (ptr->unk08 == 0) { return 0; } - ((u32 *)ptr[2])[0] = AllocFromHeap(param0[0], 0x24); - ptr[1] = ((u32 *)ptr[2])[0]; - if (((u32 *)ptr[2])[0] == 0) + ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct7)); + ptr->unk04 = ptr->unk08->unk0; + if (ptr->unk08->unk0 == NULL) { - if (ptr[2] != 0) + if (ptr->unk08 != NULL) { - FreeToHeap(ptr[2]); + FreeToHeap(ptr->unk08); } return 0; @@ -607,28 +599,28 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) for (int i = 0; i < 6; i++) { - st2c[i] = param2[5 + i]; + st2c[i] = (s32)param2[5 + i]; } - if (param1[7] == 0 || param1[8] == 0) + if (param1->unk0c[4] == 0 || param1->unk0c[5] == 0) { st2c[4] = -1; st2c[5] = -1; } else { - if (st2c[4] != -1 && FUN_0200945C(param1[7], st2c[4]) == 0) + if (st2c[4] != -1 && FUN_0200945C(param1->unk0c[4], st2c[4]) == 0) { st2c[4] = -1; } - if (st2c[5] != -1 && FUN_0200945C(param1[8], st2c[5]) == 0) + if (st2c[5] != -1 && FUN_0200945C(param1->unk0c[5], st2c[5]) == 0) { st2c[5] = -1; } } - FUN_02008AA4(ptr[1], + FUN_02008AA4(ptr->unk04, st2c[0], st2c[1], st2c[2], @@ -637,15 +629,15 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) st2c[5], param2[12], param2[11], - param1[3], - param1[4], - param1[5], - param1[6], - param1[7], - param1[8]); + param1->unk0c[0], + param1->unk0c[1], + param1->unk0c[2], + param1->unk0c[3], + param1->unk0c[4], + param1->unk0c[5]); - st44.unk00 = param1[0]; - st44.unk04 = ptr[1]; + st44.unk00 = param1->unk00; + st44.unk04 = ptr->unk04; float r0; if (((s16 *)param2)[0] > 0) { @@ -655,7 +647,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) { r0 = ((float)(((s16 *)param2)[0] << 0xc) - (float)0.5); } - st44.unk08 = r0; + st44.unk08 = (s32)r0; if (((s16 *)param2)[1] > 0) { @@ -665,7 +657,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) { r0 = ((float)(((s16 *)param2)[1] << 0xc) - (float)0.5); } - st44.unk0c = r0; + st44.unk0c = (s32)r0; if (((s16 *)param2)[2] > 0) { @@ -675,7 +667,7 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) { r0 = ((float)(((s16 *)param2)[2] << 0xc) - (float)0.5); } - st44.unk10 = r0; + st44.unk10 = (s32)r0; if (param2[4] == 2) { @@ -688,21 +680,21 @@ THUMB_FUNC u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2) st44.unk20 = 0; st44.unk24 = param2[2]; st44.unk28 = param2[4]; - st44.unk2c = param0[0]; + st44.unk2c = param0->unk000; - ptr[0] = FUN_0201FE94(&st44); - ptr[3] = param2[12]; + ptr->unk00 = FUN_0201FE94(&st44); + ptr->unk0c = param2[12]; - if (ptr[0] != 0) + if (ptr->unk00 != 0) { - u8 r6 = FUN_020202A0(ptr[0]); + u8 r6 = FUN_020202A0(ptr->unk00); - FUN_02020130(ptr[0], ((u16 *)param2)[3]); - FUN_02020248(ptr[0], r6 + param2[3]); + FUN_02020130(ptr->unk00, ((u16 *)param2)[3]); + FUN_02020248(ptr->unk00, r6 + param2[3]); } else { - ErrorHandling(); + GF_AssertFail(); } return ptr; @@ -718,36 +710,36 @@ THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2) return FUN_02009E88(FUN_020094F0(param0[4], param1), param2); } -THUMB_FUNC u32 FUN_0200C358(u32 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1) { - return FUN_0200C4F4(param0[3], param0[9], param1); + return FUN_0200C4F4(param0->unk0c[0], param0->unk24[0], param1); } -THUMB_FUNC u32 FUN_0200C368(u32 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1) { - return FUN_0200C548(param0[4], param0[10], param1); + return FUN_0200C548(param0->unk0c[1], param0->unk24[1], param1); } -THUMB_FUNC u32 FUN_0200C378(u32 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1) { - return FUN_0200C4A8(param0[5], param0[11], param1); + return FUN_0200C4A8(param0->unk0c[2], param0->unk24[2], param1); } -THUMB_FUNC u32 FUN_0200C388(u32 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1) { - return FUN_0200C4A8(param0[6], param0[12], param1); + return FUN_0200C4A8(param0->unk0c[3], param0->unk24[3], param1); } -THUMB_FUNC void FUN_0200C398(u32 param0, u32 *param1) +THUMB_FUNC void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1) { FUN_0200BC40(param1); - FUN_02009C30(param1[9]); - FUN_02009E28(param1[10]); + FUN_02009C30(param1->unk24[0]); + FUN_02009E28(param1->unk24[1]); - for (int i = 0; i < (int)param1[21]; i++) + for (int i = 0; i < (int)param1->unk54; i++) { - FUN_02009448(param1[9 + i]); - FUN_02008E2C(param1[3 + i]); + FUN_02009448(param1->unk24[i]); + FUN_02008E2C(param1->unk0c[i]); } FUN_0200BCD0(param0, param1); @@ -766,21 +758,21 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0) } THUMB_FUNC u32 FUN_0200C404( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { - if (FUN_0200945C(param1[3 + param5], param6) == 0) + if (FUN_0200945C(param1->unk0c[param5], param6) == 0) { return 0; } - u32 r5 = FUN_020090AC(param1[3 + param5], param2, param3, param4, param6, param5, param0[0]); + u32 r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); if (r5 != 0) { - u32 r4 = FUN_0200C474(param1[9 + param5], r5); + u32 r4 = FUN_0200C474(param1->unk24[param5], r5); GF_ASSERT(r4 == 1); return r4; } - ErrorHandling(); + GF_AssertFail(); if (r5 != 0) { return 1; @@ -959,12 +951,12 @@ THUMB_FUNC void FUN_0200C644(u32 *param0, u32 param1) THUMB_FUNC u8 FUN_0200C650(u32 param0) { - FUN_02020128(param0); + return FUN_02020128(param0); } THUMB_FUNC u8 FUN_0200C658(u32 *param0) { - FUN_0200C650(*param0); + return FUN_0200C650(*param0); } THUMB_FUNC void FUN_0200C664(u32 param0, u32 param1) @@ -994,7 +986,7 @@ THUMB_FUNC u8 FUN_0200C68C(u32 *param0) THUMB_FUNC void FUN_0200C698(u32 param0, u32 param1) { - FUN_02020238(param0, param1); + FUN_02020238(param0, (u8)param1); } THUMB_FUNC u8 FUN_0200C6A4(u32 *param0) @@ -1070,18 +1062,18 @@ THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2) { u32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc; + param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc); if (FUN_02020380(param0) == 2) { u32 r1 = r4[1] - 0xc0000; - param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc; + param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc); return; } - param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc; + param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc); } THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2) @@ -1093,18 +1085,18 @@ THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3) { u32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc; + param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc); if (FUN_02020380(param0) == 2) { u32 r1 = r4[1] - param3; - param2[0] = (int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc; + param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc); return; } - param2[0] = (int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc; + param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc); } THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3) @@ -1142,10 +1134,10 @@ THUMB_FUNC void FUN_0200C840(u32 *param0, u32 param1) THUMB_FUNC void FUN_0200C84C(u32 param0, f32 param1, f32 param2) { - int *r4 = FUN_02020120(param0); + s32 *r4 = FUN_02020120(param0); - r4[0] = param1 * 0x1000; - r4[1] = param2 * 0x1000; + r4[0] = (s32)(param1 * 0x1000); + r4[1] = (s32)(param2 * 0x1000); FUN_02020064(param0, r4); } @@ -1213,23 +1205,23 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) } THUMB_FUNC u32 FUN_0200C918( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { - if (FUN_0200945C(param1[3], param6) == 0) + if (FUN_0200945C(param1->unk0c[0], param6) == 0) { return 0; } - u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != 0) { FUN_02009AC4(r5); - FUN_0200C474(param1[9], r5); + FUN_0200C474(param1->unk24[0], r5); return 1; } - ErrorHandling(); + GF_AssertFail(); if (r5 != 0) { return 1; @@ -1239,23 +1231,23 @@ THUMB_FUNC u32 FUN_0200C918( } THUMB_FUNC u32 FUN_0200C978( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { - if (FUN_0200945C(param1[3], param6) == 0) + if (FUN_0200945C(param1->unk0c[0], param6) == 0) { return 0; } - u32 r5 = FUN_02008F34(param1[3], param2, param3, param4, param6, param5, param0[0]); + u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); if (r5 != 0) { FUN_02009B78(r5); - FUN_0200C474(param1[9], r5); + FUN_0200C474(param1->unk24[0], r5); return 1; } - ErrorHandling(); + GF_AssertFail(); if (r5 != 0) { return 1; diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index 973a9a65d..33fe0aee5 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -5,14 +5,19 @@ struct UnkStruct1 u32 unk000; u32 unk004; u32 unk008; - u8 unk00c[0x12c]; + u32 unk00c; + u8 unk010[0x128]; }; struct UnkStruct2 { - u8 unk00[0xc]; + u32 unk00; + u32 unk04; + u32 *unk08; u32 unk0c[6]; - u8 unk24[0x34]; + u32 *unk24[6]; + u32 unk3c[6]; + s32 unk54; }; struct UnkStruct3 @@ -31,10 +36,14 @@ struct UnkStruct3 u32 unk24; }; +struct UnkStruct7 { + u8 unk00[0x24]; +}; + struct UnkStruct4 { u32 unk00; - u32 unk04; + struct UnkStruct7 *unk04; s32 unk08; s32 unk0c; s32 unk10; @@ -47,23 +56,38 @@ struct UnkStruct4 u32 unk2c; }; + + + +struct UnkStruct6 { + struct UnkStruct7 *unk0; + u32 unk4; +}; +struct UnkStruct5 { + u32 unk00; + struct UnkStruct7 *unk04; + struct UnkStruct6 *unk08; + u32 unk0c; +}; + + struct UnkStruct1 *FUN_0200BB14(u32 heap_id); struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0); u32 FUN_0200BB68(u32 param0); -u32 FUN_0200BB6C(u32 *param0, u32 *param1, u32 *param2, u32 param3); -u32 FUN_0200BBF0(u32 *param0, u32 *param1, u32 param2); +u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3); +u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2); void FUN_0200BC14(u32 param0); void FUN_0200BC1C(u32 *param0); void FUN_0200BC30(); void FUN_0200BC38(); -void FUN_0200BC40(u32 *param0); -void FUN_0200BC4C(u32 *param0); -void FUN_0200BC5C(u32 *param0); +void FUN_0200BC40(struct UnkStruct2 *param0); +void FUN_0200BC4C(struct UnkStruct2 *param0); +void FUN_0200BC5C(struct UnkStruct2 *param0); void FUN_0200BCB0(u32 *param0); -void FUN_0200BCD0(u32 *param0, void *param1); -void FUN_0200BCE0(u32 *param0, u32 *param1); +void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1); +void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1); void FUN_0200BD04(u32 *param0); -u32 FUN_0200BD20(u32 *param0, u32 *param1, u32 *param2); +u32 FUN_0200BD20(struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2); u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2); u32 FUN_0200BE74(u32 *param0, u32 *param1, @@ -79,40 +103,40 @@ u32 FUN_0200BE74(u32 *param0, u32 param11, u32 param12, u32 param13); -u32 FUN_0200BF60(u32 *param0, u32 *param1, u32 *param2); +u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2); u32 FUN_0200C00C( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); s32 FUN_0200C06C(u32 *param0, - u32 *param1, + struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, - u32 param7); + s32 param7); u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, - u32 *param3, + struct UnkStruct2 *param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, - u32 param9); -u32 FUN_0200C124(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); -u32 FUN_0200C13C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); -u32 *FUN_0200C154(u32 *param0, u32 *param1, u32 *param2); + s32 param9); +u32 FUN_0200C124(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); +u32 FUN_0200C13C(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); +struct UnkStruct5 *FUN_0200C154(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2); u32 FUN_0200C334(u32 *param0, u32 param1); u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2); -u32 FUN_0200C358(u32 *param0, u32 param1); -u32 FUN_0200C368(u32 *param0, u32 param1); -u32 FUN_0200C378(u32 *param0, u32 param1); -u32 FUN_0200C388(u32 *param0, u32 param1); -void FUN_0200C398(u32 param0, u32 *param1); +u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1); +u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1); +u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1); +u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1); +void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1); void FUN_0200C3DC(u32 *param0); u32 FUN_0200C404( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); u32 FUN_0200C474(u32 *param0, u32 param1); u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); @@ -173,9 +197,9 @@ void FUN_0200C8F8(u32 *param0, u32 param1); void FUN_0200C904(u32 param0, u32 param1); void FUN_0200C90C(u32 *param0, u32 param1); u32 FUN_0200C918( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); u32 FUN_0200C978( - u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6); + u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); u32 FUN_0200CA40(u32 *param0); From 8e4dda14ff3f4390af69d52b928f987f3618e9a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 1 Jun 2021 20:02:08 +0200 Subject: [PATCH 129/134] rename structs --- arm9/src/unk_0200BB14.c | 76 ++++++++++++++++++++--------------------- include/unk_0200BB14.h | 74 +++++++++++++++++++-------------------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 2816d83ad..4a55eee3b 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -45,7 +45,7 @@ extern void FUN_02009A90(u32 *param0); extern void FUN_02009D34(u32 *param0); extern u32 FUN_02008BE0( void *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); -extern u32 FUN_0201FE94(struct UnkStruct4 *param0); +extern u32 FUN_0201FE94(struct UnkStruct_0200BB14_4 *param0); extern void FUN_02020130(u32 param0, u32 param1); extern void FUN_02020248(u32 param0, u32 param1); extern u32 FUN_0200945C(u32 param0, s32 param1); @@ -57,7 +57,7 @@ extern u32 FUN_02008FEC( extern u32 FUN_02009D68(u32 param0); extern u32 FUN_02009E88(u32 param0, u32 param1); extern void FUN_02003108(u32 param0, u32 param1, u16 param2, u32 param3); -extern void FUN_02008AA4(struct UnkStruct7 *param0, +extern void FUN_02008AA4(struct UnkStruct_0200BB14_sub *param0, s32 param1, s32 param2, s32 param3, @@ -116,9 +116,9 @@ extern void FUN_02009BE8(u32 param0); extern void FUN_02009168(u32 param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5); extern void FUN_02009DE0(u32 param0); -THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id) +THUMB_FUNC struct UnkStruct_0200BB14_1 *FUN_0200BB14(u32 heap_id) { - struct UnkStruct1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct1)); + struct UnkStruct_0200BB14_1 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_0200BB14_1)); if (ptr == NULL) { return NULL; @@ -131,11 +131,11 @@ THUMB_FUNC struct UnkStruct1 *FUN_0200BB14(u32 heap_id) return ptr; } -THUMB_FUNC struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0) +THUMB_FUNC struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 *param0) { GF_ASSERT(param0 != NULL); - struct UnkStruct2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct2)); + struct UnkStruct_0200BB14_2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_2)); if (ptr == NULL) { return NULL; @@ -156,7 +156,7 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0) return param0 + 0x10; } -THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3) +THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3) { GF_ASSERT(param0 != NULL); @@ -191,7 +191,7 @@ THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, return 1; } -THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2) +THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2) { if (param0 == NULL || param1 == NULL) { @@ -225,12 +225,12 @@ THUMB_FUNC void FUN_0200BC38() FUN_0201C348(); } -THUMB_FUNC void FUN_0200BC40(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0200BC40(struct UnkStruct_0200BB14_2 *param0) { FUN_0201FD58(param0->unk00); } -THUMB_FUNC void FUN_0200BC4C(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0200BC4C(struct UnkStruct_0200BB14_2 *param0) { if (param0->unk04 != 0) { @@ -238,7 +238,7 @@ THUMB_FUNC void FUN_0200BC4C(struct UnkStruct2 *param0) } } -THUMB_FUNC void FUN_0200BC5C(struct UnkStruct2 *param0) +THUMB_FUNC void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0) { for (int i = 0; i < (int)param0->unk54; i++) { @@ -268,13 +268,13 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0) } } -THUMB_FUNC void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1) +THUMB_FUNC void FUN_0200BCD0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { param0->unk004--; FreeToHeap(param1); } -THUMB_FUNC void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1) +THUMB_FUNC void FUN_0200BCE0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { FUN_0200BC40(param1); FUN_0200BC4C(param1); @@ -290,7 +290,7 @@ THUMB_FUNC void FUN_0200BD04(u32 *param0) } THUMB_FUNC u32 FUN_0200BD20( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2) + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2) { int st14 = 6; const char **st10 = param2; @@ -347,7 +347,7 @@ THUMB_FUNC u32 FUN_0200BD20( return 1; } -THUMB_FUNC u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2) +THUMB_FUNC u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct_0200BB14_3 *param2) { return FUN_0200BE74(param0, param1, @@ -385,9 +385,9 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, #pragma unused(param12) #pragma unused(param13) - struct UnkStruct4 st0; + struct UnkStruct_0200BB14_4 st0; st0.unk00 = param1[0]; - st0.unk04 = &(*(struct UnkStruct7 **)(param1[1]))[param2]; + st0.unk04 = &(*(struct UnkStruct_0200BB14_sub **)(param1[1]))[param2]; float r0; if (param3 > 0) @@ -444,9 +444,9 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, return r4; } -THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2) +THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) { - struct UnkStruct1 *st0 = param0; + struct UnkStruct_0200BB14_1 *st0 = param0; int i; int st4 = 6; @@ -485,7 +485,7 @@ THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1 } THUMB_FUNC u32 FUN_0200C00C( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { @@ -510,7 +510,7 @@ THUMB_FUNC u32 FUN_0200C00C( } THUMB_FUNC s32 FUN_0200C06C(u32 *param0, - struct UnkStruct2 *param1, + struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, @@ -538,7 +538,7 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0, THUMB_FUNC u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, - struct UnkStruct2 *param3, + struct UnkStruct_0200BB14_2 *param3, u32 param4, u32 param5, u32 param6, @@ -556,36 +556,36 @@ THUMB_FUNC u8 FUN_0200C0DC(u32 param0, } THUMB_FUNC u32 FUN_0200C124( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5); } THUMB_FUNC u32 FUN_0200C13C( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5); } -THUMB_FUNC struct UnkStruct5 *FUN_0200C154( - struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2) +THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) { - struct UnkStruct4 st44; + struct UnkStruct_0200BB14_4 st44; s32 st2c[6]; - struct UnkStruct5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct5)); + struct UnkStruct_0200BB14_5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_5)); if (ptr == NULL) { return 0; } - ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct6)); + ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_6)); if (ptr->unk08 == 0) { return 0; } - ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct7)); + ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_sub)); ptr->unk04 = ptr->unk08->unk0; if (ptr->unk08->unk0 == NULL) { @@ -710,27 +710,27 @@ THUMB_FUNC u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2) return FUN_02009E88(FUN_020094F0(param0[4], param1), param2); } -THUMB_FUNC u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C358(struct UnkStruct_0200BB14_2 *param0, u32 param1) { return FUN_0200C4F4(param0->unk0c[0], param0->unk24[0], param1); } -THUMB_FUNC u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C368(struct UnkStruct_0200BB14_2 *param0, u32 param1) { return FUN_0200C548(param0->unk0c[1], param0->unk24[1], param1); } -THUMB_FUNC u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1) { return FUN_0200C4A8(param0->unk0c[2], param0->unk24[2], param1); } -THUMB_FUNC u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1) +THUMB_FUNC u32 FUN_0200C388(struct UnkStruct_0200BB14_2 *param0, u32 param1) { return FUN_0200C4A8(param0->unk0c[3], param0->unk24[3], param1); } -THUMB_FUNC void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1) +THUMB_FUNC void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { FUN_0200BC40(param1); FUN_02009C30(param1->unk24[0]); @@ -758,7 +758,7 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0) } THUMB_FUNC u32 FUN_0200C404( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[param5], param6) == 0) { @@ -1205,7 +1205,7 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) } THUMB_FUNC u32 FUN_0200C918( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { @@ -1231,7 +1231,7 @@ THUMB_FUNC u32 FUN_0200C918( } THUMB_FUNC u32 FUN_0200C978( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index 33fe0aee5..6c4cb22c6 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -1,6 +1,6 @@ #include "global.h" -struct UnkStruct1 +struct UnkStruct_0200BB14_1 { u32 unk000; u32 unk004; @@ -9,7 +9,7 @@ struct UnkStruct1 u8 unk010[0x128]; }; -struct UnkStruct2 +struct UnkStruct_0200BB14_2 { u32 unk00; u32 unk04; @@ -20,7 +20,7 @@ struct UnkStruct2 s32 unk54; }; -struct UnkStruct3 +struct UnkStruct_0200BB14_3 { u32 unk00; s16 unk04; @@ -36,14 +36,14 @@ struct UnkStruct3 u32 unk24; }; -struct UnkStruct7 { +struct UnkStruct_0200BB14_sub { u8 unk00[0x24]; }; -struct UnkStruct4 +struct UnkStruct_0200BB14_4 { u32 unk00; - struct UnkStruct7 *unk04; + struct UnkStruct_0200BB14_sub *unk04; s32 unk08; s32 unk0c; s32 unk10; @@ -59,36 +59,36 @@ struct UnkStruct4 -struct UnkStruct6 { - struct UnkStruct7 *unk0; +struct UnkStruct_0200BB14_6 { + struct UnkStruct_0200BB14_sub *unk0; u32 unk4; }; -struct UnkStruct5 { +struct UnkStruct_0200BB14_5 { u32 unk00; - struct UnkStruct7 *unk04; - struct UnkStruct6 *unk08; + struct UnkStruct_0200BB14_sub *unk04; + struct UnkStruct_0200BB14_6 *unk08; u32 unk0c; }; -struct UnkStruct1 *FUN_0200BB14(u32 heap_id); -struct UnkStruct2 *FUN_0200BB34(struct UnkStruct1 *param0); +struct UnkStruct_0200BB14_1 *FUN_0200BB14(u32 heap_id); +struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 *param0); u32 FUN_0200BB68(u32 param0); -u32 FUN_0200BB6C(struct UnkStruct1 *param0, u32 *param1, u32 *param2, u32 param3); -u32 FUN_0200BBF0(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 param2); +u32 FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3); +u32 FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2); void FUN_0200BC14(u32 param0); void FUN_0200BC1C(u32 *param0); void FUN_0200BC30(); void FUN_0200BC38(); -void FUN_0200BC40(struct UnkStruct2 *param0); -void FUN_0200BC4C(struct UnkStruct2 *param0); -void FUN_0200BC5C(struct UnkStruct2 *param0); +void FUN_0200BC40(struct UnkStruct_0200BB14_2 *param0); +void FUN_0200BC4C(struct UnkStruct_0200BB14_2 *param0); +void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0); void FUN_0200BCB0(u32 *param0); -void FUN_0200BCD0(struct UnkStruct1 *param0, struct UnkStruct2 *param1); -void FUN_0200BCE0(struct UnkStruct1 *param0, struct UnkStruct2 *param1); +void FUN_0200BCD0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); +void FUN_0200BCE0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200BD04(u32 *param0); -u32 FUN_0200BD20(struct UnkStruct1 *param0, struct UnkStruct2 *param1, const char **param2); -u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct3 *param2); +u32 FUN_0200BD20(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2); +u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct_0200BB14_3 *param2); u32 FUN_0200BE74(u32 *param0, u32 *param1, u32 param2, @@ -103,11 +103,11 @@ u32 FUN_0200BE74(u32 *param0, u32 param11, u32 param12, u32 param13); -u32 FUN_0200BF60(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2); +u32 FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); u32 FUN_0200C00C( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); s32 FUN_0200C06C(u32 *param0, - struct UnkStruct2 *param1, + struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, @@ -117,26 +117,26 @@ s32 FUN_0200C06C(u32 *param0, u8 FUN_0200C0DC(u32 param0, u32 param1, u32 *param2, - struct UnkStruct2 *param3, + struct UnkStruct_0200BB14_2 *param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, s32 param9); -u32 FUN_0200C124(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); -u32 FUN_0200C13C(u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); -struct UnkStruct5 *FUN_0200C154(struct UnkStruct1 *param0, struct UnkStruct2 *param1, u32 *param2); +u32 FUN_0200C124(u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); +u32 FUN_0200C13C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); +struct UnkStruct_0200BB14_5 *FUN_0200C154(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); u32 FUN_0200C334(u32 *param0, u32 param1); u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2); -u32 FUN_0200C358(struct UnkStruct2 *param0, u32 param1); -u32 FUN_0200C368(struct UnkStruct2 *param0, u32 param1); -u32 FUN_0200C378(struct UnkStruct2 *param0, u32 param1); -u32 FUN_0200C388(struct UnkStruct2 *param0, u32 param1); -void FUN_0200C398(struct UnkStruct1 *param0, struct UnkStruct2 *param1); +u32 FUN_0200C358(struct UnkStruct_0200BB14_2 *param0, u32 param1); +u32 FUN_0200C368(struct UnkStruct_0200BB14_2 *param0, u32 param1); +u32 FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1); +u32 FUN_0200C388(struct UnkStruct_0200BB14_2 *param0, u32 param1); +void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200C3DC(u32 *param0); u32 FUN_0200C404( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); u32 FUN_0200C474(u32 *param0, u32 param1); u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); @@ -197,9 +197,9 @@ void FUN_0200C8F8(u32 *param0, u32 param1); void FUN_0200C904(u32 param0, u32 param1); void FUN_0200C90C(u32 *param0, u32 param1); u32 FUN_0200C918( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); u32 FUN_0200C978( - u32 *param0, struct UnkStruct2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); + u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); u32 FUN_0200CA40(u32 *param0); From 66c988dd6b2d62e930d897c4a4d0c575464c8d0c Mon Sep 17 00:00:00 2001 From: red031000 Date: Tue, 1 Jun 2021 19:03:15 +0100 Subject: [PATCH 130/134] decomp unk_02033778.c --- arm9/asm/unk_02033778.s | 60 ----------------------------------------- arm9/src/unk_02033778.c | 37 +++++++++++++++++++++++++ include/unk_02033778.h | 9 +++++++ 3 files changed, 46 insertions(+), 60 deletions(-) delete mode 100644 arm9/asm/unk_02033778.s create mode 100644 arm9/src/unk_02033778.c create mode 100644 include/unk_02033778.h diff --git a/arm9/asm/unk_02033778.s b/arm9/asm/unk_02033778.s deleted file mode 100644 index 763e7b302..000000000 --- a/arm9/asm/unk_02033778.s +++ /dev/null @@ -1,60 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - thumb_func_start FUN_02033778 -FUN_02033778: ; 0x02033778 - push {r3-r7, lr} - str r0, [sp, #0x0] - bl FUN_02030F20 - add r7, r0, #0x0 - mov r0, #0x0 - bl FUN_0202DFA4 - cmp r0, #0x0 - beq _020337C6 - mov r5, #0x0 - cmp r7, #0x0 - ble _020337C6 -_02033792: - bl FUN_02031190 - cmp r5, r0 - beq _020337C0 - add r0, r5, #0x0 - bl FUN_0202E020 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0202E044 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0202DFA4 - bl PlayerProfile_GetLanguage - add r3, r0, #0x0 - ldr r0, [sp, #0x0] - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020337C8 -_020337C0: - add r5, r5, #0x1 - cmp r5, r7 - blt _02033792 -_020337C6: - pop {r3-r7, pc} - - thumb_func_start FUN_020337C8 -FUN_020337C8: ; 0x020337C8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02029B40 - cmp r0, #0x0 - bne _020337E4 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - mov r3, #0x1 - bl FUN_02029B90 -_020337E4: - pop {r4-r6, pc} - .balign 4 diff --git a/arm9/src/unk_02033778.c b/arm9/src/unk_02033778.c new file mode 100644 index 000000000..1c191effe --- /dev/null +++ b/arm9/src/unk_02033778.c @@ -0,0 +1,37 @@ +#include "global.h" +#include "unk_02033778.h" +#include "unk_0202F150.h" +#include "player_data.h" + +extern struct PlayerData *FUN_0202DFA4(s32 param0); +extern u32 FUN_0202E020(s32 param0); +extern u32 FUN_0202E044(s32 param0); +extern u32 FUN_02029B40(u32 param0, u32 param1, u32 param2, u32 language); +extern void FUN_02029B90(u32 param0, u32 param1, u32 param2, u32 param3); + +THUMB_FUNC void FUN_02033778(u32 param0) +{ + s32 unk = FUN_02030F20(); + if (FUN_0202DFA4(0) == NULL) + { + return; + } + + for (s32 i = 0; i < unk; i++) + { + if (FUN_02031190() == i) + { + continue; + } + FUN_020337C8(param0, FUN_0202E020(i), FUN_0202E044(i), PlayerProfile_GetLanguage(FUN_0202DFA4(i))); + } +} + +THUMB_FUNC void FUN_020337C8(u32 param0, u32 param1, u32 param2, u32 language) +{ + if (FUN_02029B40(param0, param1, param2, language) != 0) + { + return; + } + FUN_02029B90(param0, param1, param2, 1); +} diff --git a/include/unk_02033778.h b/include/unk_02033778.h new file mode 100644 index 000000000..e1f64e05f --- /dev/null +++ b/include/unk_02033778.h @@ -0,0 +1,9 @@ +#ifndef POKEDIAMOND_UNK_02033778_H +#define POKEDIAMOND_UNK_02033778_H + +#include "nitro/types.h" + +void FUN_02033778(u32 param0); +void FUN_020337C8(u32 param0, u32 param1, u32 param2, u32 language); + +#endif //POKEDIAMOND_UNK_02033778_H From fda07fecf5c113c5fa9c861f737fead0c0e1dac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 1 Jun 2021 20:56:33 +0200 Subject: [PATCH 131/134] use better types --- arm9/src/unk_0200BB14.c | 144 ++++++++++++++++++++-------------------- include/unk_0200BB14.h | 24 +++---- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 4a55eee3b..b54d785bd 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -143,7 +143,7 @@ THUMB_FUNC struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 param0->unk004++; - for (int i = 0; i < 6; i++) + for (s32 i = 0; i < 6; i++) { ptr->unk0c[i] = 0; } @@ -156,13 +156,13 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0) return param0 + 0x10; } -THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3) +THUMB_FUNC BOOL FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3) { GF_ASSERT(param0 != NULL); if (param0 == NULL) { - return 0; + return FALSE; } u32 st14[4] = { param2[0], param2[1], param2[2], param0->unk000 }; @@ -188,19 +188,19 @@ THUMB_FUNC u32 FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u3 FUN_0201D168(); FUN_0201E0BC(); - return 1; + return TRUE; } -THUMB_FUNC u32 FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2) { if (param0 == NULL || param1 == NULL) { - return 0; + return FALSE; } param1->unk00 = FUN_02008C9C(param2, param0->unk010, param0->unk000); - return 1; + return TRUE; } THUMB_FUNC void FUN_0200BC14(u32 param0) @@ -240,7 +240,7 @@ THUMB_FUNC void FUN_0200BC4C(struct UnkStruct_0200BB14_2 *param0) THUMB_FUNC void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0) { - for (int i = 0; i < (int)param0->unk54; i++) + for (s32 i = 0; i < (s32)param0->unk54; i++) { FUN_020096B4(FUN_02009660(param0->unk08, i)); } @@ -249,7 +249,7 @@ THUMB_FUNC void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0) FUN_02009C30(param0->unk24[0]); FUN_02009E28(param0->unk24[1]); - for (int i = 0; i < (int)param0->unk54; i++) + for (s32 i = 0; i < (s32)param0->unk54; i++) { FUN_02009448(param0->unk24[i]); FUN_02008E2C(param0->unk0c[i]); @@ -289,15 +289,15 @@ THUMB_FUNC void FUN_0200BD04(u32 *param0) FreeToHeap(param0); } -THUMB_FUNC u32 FUN_0200BD20( +THUMB_FUNC BOOL FUN_0200BD20( struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2) { - int st14 = 6; + s32 st14 = 6; const char **st10 = param2; if (param0 == NULL || param1 == NULL) { - return 0; + return FALSE; } if (param2[4] == 0) @@ -309,7 +309,7 @@ THUMB_FUNC u32 FUN_0200BD20( u32 r2 = FUN_0200965C(st14); param1->unk08 = AllocFromHeap(param0->unk000, r2 * st14); - for (int i = 0; i < st14; i++) + for (s32 i = 0; i < st14; i++) { u32 st18 = FUN_02009660(param1->unk08, i); void *st1c = FUN_020161A4(param0->unk000, st10[i]); @@ -318,13 +318,13 @@ THUMB_FUNC u32 FUN_0200BD20( FreeToHeap(st1c); } - for (int i = 0; i < st14; i++) + for (s32 i = 0; i < st14; i++) { param1->unk0c[i] = FUN_02008DEC(FUN_020096CC(FUN_02009660(param1->unk08, i)), i, param0->unk000); } - for (int i = 0; i < st14; i++) + for (s32 i = 0; i < st14; i++) { u32 st20 = FUN_02009660(param1->unk08, i); param1->unk24[i] = FUN_02009424(FUN_020096CC(st20), param0->unk000); @@ -344,7 +344,7 @@ THUMB_FUNC u32 FUN_0200BD20( param1->unk0c[5]); FreeToHeap(r6); - return 1; + return TRUE; } THUMB_FUNC u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct_0200BB14_3 *param2) @@ -392,31 +392,31 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, float r0; if (param3 > 0) { - r0 = ((float)(param3 << 0xc) + (float)0.5); + r0 = ((float)(param3 * 0x1000) + (float)0.5); } else { - r0 = ((float)(param3 << 0xc) - (float)0.5); + r0 = ((float)(param3 * 0x1000) - (float)0.5); } st0.unk08 = (s32)r0; if (param4 > 0) { - r0 = ((float)(param4 << 0xc) + (float)0.5); + r0 = ((float)(param4 * 0x1000) + (float)0.5); } else { - r0 = ((float)(param4 << 0xc) - (float)0.5); + r0 = ((float)(param4 * 0x1000) - (float)0.5); } st0.unk0c = (s32)r0; if (param5 > 0) { - r0 = ((float)(param5 << 0xc) + (float)0.5); + r0 = ((float)(param5 * 0x1000) + (float)0.5); } else { - r0 = ((float)(param5 << 0xc) - (float)0.5); + r0 = ((float)(param5 * 0x1000) - (float)0.5); } st0.unk10 = (s32)r0; @@ -444,15 +444,15 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, return r4; } -THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) +THUMB_FUNC BOOL FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) { struct UnkStruct_0200BB14_1 *st0 = param0; - int i; - int st4 = 6; + s32 i; + s32 st4 = 6; if (st0 == NULL || param1 == NULL) { - return 0; + return FALSE; } if (param2[4] == 0 || param2[5] == 0) @@ -474,22 +474,22 @@ THUMB_FUNC u32 FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruc param1->unk24[i] = FUN_02009424(param2[i], st0->unk000); param1->unk3c[i] = 0; - for (int j = 0; j < (int)((u32 *)param1->unk24[i])[1]; j++) + for (s32 j = 0; j < (s32)((u32 *)param1->unk24[i])[1]; j++) { ((u32 *)(((u32 *)param1->unk24[i])[0]))[j] = 0; } } } - return 1; + return TRUE; } -THUMB_FUNC u32 FUN_0200C00C( +THUMB_FUNC BOOL FUN_0200C00C( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { - return 0; + return FALSE; } u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); @@ -497,16 +497,16 @@ THUMB_FUNC u32 FUN_0200C00C( { FUN_02009B04(r5); FUN_0200C474(param1->unk24[0], r5); - return 1; + return TRUE; } GF_AssertFail(); if (r5 != 0) { - return 1; + return TRUE; } - return 0; + return FALSE; } THUMB_FUNC s32 FUN_0200C06C(u32 *param0, @@ -576,13 +576,13 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( struct UnkStruct_0200BB14_5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_5)); if (ptr == NULL) { - return 0; + return NULL; } ptr->unk08 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_6)); if (ptr->unk08 == 0) { - return 0; + return NULL; } ptr->unk08->unk0 = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_sub)); @@ -594,10 +594,10 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( FreeToHeap(ptr->unk08); } - return 0; + return NULL; } - for (int i = 0; i < 6; i++) + for (s32 i = 0; i < 6; i++) { st2c[i] = (s32)param2[5 + i]; } @@ -736,7 +736,7 @@ THUMB_FUNC void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStru FUN_02009C30(param1->unk24[0]); FUN_02009E28(param1->unk24[1]); - for (int i = 0; i < (int)param1->unk54; i++) + for (s32 i = 0; i < (s32)param1->unk54; i++) { FUN_02009448(param1->unk24[i]); FUN_02008E2C(param1->unk0c[i]); @@ -757,12 +757,12 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0) FreeToHeap(param0); } -THUMB_FUNC u32 FUN_0200C404( +THUMB_FUNC BOOL FUN_0200C404( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[param5], param6) == 0) { - return 0; + return FALSE; } u32 r5 = FUN_020090AC(param1->unk0c[param5], param2, param3, param4, param6, param5, param0[0]); @@ -775,15 +775,15 @@ THUMB_FUNC u32 FUN_0200C404( GF_AssertFail(); if (r5 != 0) { - return 1; + return TRUE; } - return 0; + return FALSE; } -THUMB_FUNC u32 FUN_0200C474(u32 *param0, u32 param1) +THUMB_FUNC BOOL FUN_0200C474(u32 *param0, u32 param1) { - for (int i = 0; i < (int)param0[1]; i++) + for (s32 i = 0; i < (s32)param0[1]; i++) { if (((u32 *)param0[0])[i] == 0) { @@ -796,9 +796,9 @@ THUMB_FUNC u32 FUN_0200C474(u32 *param0, u32 param1) return FALSE; } -THUMB_FUNC u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) { - for (int i = 0; i < (int)param1[1]; i++) + for (s32 i = 0; i < (s32)param1[1]; i++) { if (((u32 *)param1[0])[i] != 0) { @@ -810,17 +810,17 @@ THUMB_FUNC u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2) ((u32 *)param1[0])[i] = 0; param1[2]--; - return 1; + return TRUE; } } } - return 0; + return FALSE; } -THUMB_FUNC u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) { - for (int i = 0; i < (int)param1[1]; i++) + for (s32 i = 0; i < (s32)param1[1]; i++) { if (((u32 *)param1[0])[i] != 0) { @@ -833,17 +833,17 @@ THUMB_FUNC u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2) ((u32 *)param1[0])[i] = 0; param1[2]--; - return 1; + return TRUE; } } } - return 0; + return FALSE; } -THUMB_FUNC u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200C548(u32 param0, u32 *param1, u32 param2) { - for (int i = 0; i < (int)param1[1]; i++) + for (s32 i = 0; i < (s32)param1[1]; i++) { if (((u32 *)param1[0])[i] != 0) { @@ -856,12 +856,12 @@ THUMB_FUNC u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2) ((u32 *)param1[0])[i] = 0; param1[2]--; - return 1; + return TRUE; } } } - return 0; + return FALSE; } THUMB_FUNC void FUN_0200C59C(u32 param0) @@ -1062,18 +1062,18 @@ THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2) { u32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc); + param1[0] = (u16)((s32)(r4[0] + ((u32)((s32)r4[0] >> 0xb) >> 0x14)) >> 0xc); if (FUN_02020380(param0) == 2) { u32 r1 = r4[1] - 0xc0000; - param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc); + param2[0] = (u16)((s32)(r1 + ((u32)((s32)r1 >> 0xb) >> 0x14)) >> 0xc); return; } - param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc); + param2[0] = (u16)((s32)(r4[1] + ((u32)((s32)r4[1] >> 0xb) >> 0x14)) >> 0xc); } THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2) @@ -1085,18 +1085,18 @@ THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3) { u32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (u16)((int)(r4[0] + ((u32)((int)r4[0] >> 0xb) >> 0x14)) >> 0xc); + param1[0] = (u16)((s32)(r4[0] + ((u32)((s32)r4[0] >> 0xb) >> 0x14)) >> 0xc); if (FUN_02020380(param0) == 2) { u32 r1 = r4[1] - param3; - param2[0] = (u16)((int)(r1 + ((u32)((int)r1 >> 0xb) >> 0x14)) >> 0xc); + param2[0] = (u16)((s32)(r1 + ((u32)((s32)r1 >> 0xb) >> 0x14)) >> 0xc); return; } - param2[0] = (u16)((int)(r4[1] + ((u32)((int)r4[1] >> 0xb) >> 0x14)) >> 0xc); + param2[0] = (u16)((s32)(r4[1] + ((u32)((s32)r4[1] >> 0xb) >> 0x14)) >> 0xc); } THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3) @@ -1204,12 +1204,12 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) FUN_0200C904(*param0, param1); } -THUMB_FUNC u32 FUN_0200C918( +THUMB_FUNC BOOL FUN_0200C918( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { - return 0; + return FALSE; } u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); @@ -1218,24 +1218,24 @@ THUMB_FUNC u32 FUN_0200C918( FUN_02009AC4(r5); FUN_0200C474(param1->unk24[0], r5); - return 1; + return TRUE; } GF_AssertFail(); if (r5 != 0) { - return 1; + return TRUE; } - return 0; + return FALSE; } -THUMB_FUNC u32 FUN_0200C978( +THUMB_FUNC BOOL FUN_0200C978( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { - return 0; + return FALSE; } u32 r5 = FUN_02008F34(param1->unk0c[0], param2, param3, param4, param6, param5, param0[0]); @@ -1244,16 +1244,16 @@ THUMB_FUNC u32 FUN_0200C978( FUN_02009B78(r5); FUN_0200C474(param1->unk24[0], r5); - return 1; + return TRUE; } GF_AssertFail(); if (r5 != 0) { - return 1; + return TRUE; } - return 0; + return FALSE; } THUMB_FUNC void FUN_0200C9D8( diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index 6c4cb22c6..d6e530dce 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -74,8 +74,8 @@ struct UnkStruct_0200BB14_5 { struct UnkStruct_0200BB14_1 *FUN_0200BB14(u32 heap_id); struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 *param0); u32 FUN_0200BB68(u32 param0); -u32 FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3); -u32 FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2); +BOOL FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3); +BOOL FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2); void FUN_0200BC14(u32 param0); void FUN_0200BC1C(u32 *param0); void FUN_0200BC30(); @@ -87,7 +87,7 @@ void FUN_0200BCB0(u32 *param0); void FUN_0200BCD0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200BCE0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200BD04(u32 *param0); -u32 FUN_0200BD20(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2); +BOOL FUN_0200BD20(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2); u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct_0200BB14_3 *param2); u32 FUN_0200BE74(u32 *param0, u32 *param1, @@ -103,8 +103,8 @@ u32 FUN_0200BE74(u32 *param0, u32 param11, u32 param12, u32 param13); -u32 FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); -u32 FUN_0200C00C( +BOOL FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); +BOOL FUN_0200C00C( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); s32 FUN_0200C06C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, @@ -135,12 +135,12 @@ u32 FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1); u32 FUN_0200C388(struct UnkStruct_0200BB14_2 *param0, u32 param1); void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200C3DC(u32 *param0); -u32 FUN_0200C404( +BOOL FUN_0200C404( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); -u32 FUN_0200C474(u32 *param0, u32 param1); -u32 FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); -u32 FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); -u32 FUN_0200C548(u32 param0, u32 *param1, u32 param2); +BOOL FUN_0200C474(u32 *param0, u32 param1); +BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); +BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); +BOOL FUN_0200C548(u32 param0, u32 *param1, u32 param2); void FUN_0200C59C(u32 param0); void FUN_0200C5A8(u32 *param0); void FUN_0200C5B4(u32 *param0, u32 param1); @@ -196,9 +196,9 @@ void FUN_0200C8DC(u32 *param0, u32 param1, u32 param2); void FUN_0200C8F8(u32 *param0, u32 param1); void FUN_0200C904(u32 param0, u32 param1); void FUN_0200C90C(u32 *param0, u32 param1); -u32 FUN_0200C918( +BOOL FUN_0200C918( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); -u32 FUN_0200C978( +BOOL FUN_0200C978( u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); From 0bf0edfc394e301d80e10357f778a3451267e50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 1 Jun 2021 20:57:30 +0200 Subject: [PATCH 132/134] add header guards --- arm9/src/unk_0200BB14.c | 89 ++++++++++++++++++++++++++++++----------- include/unk_0200BB14.h | 80 ++++++++++++++++++++++++++---------- 2 files changed, 125 insertions(+), 44 deletions(-) diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index b54d785bd..0e12249ae 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -43,8 +43,14 @@ extern u32 *FUN_02009424(u32 param0, u32 param1); extern u32 FUN_020093A8(u32 param0, u32 param1, u32 *param2, u32 param3); extern void FUN_02009A90(u32 *param0); extern void FUN_02009D34(u32 *param0); -extern u32 FUN_02008BE0( - void *param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7); +extern u32 FUN_02008BE0(void *param0, + u32 param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + u32 param6, + u32 param7); extern u32 FUN_0201FE94(struct UnkStruct_0200BB14_4 *param0); extern void FUN_02020130(u32 param0, u32 param1); extern void FUN_02020248(u32 param0, u32 param1); @@ -135,7 +141,8 @@ THUMB_FUNC struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 { GF_ASSERT(param0 != NULL); - struct UnkStruct_0200BB14_2 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_2)); + struct UnkStruct_0200BB14_2 *ptr = + AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_2)); if (ptr == NULL) { return NULL; @@ -156,7 +163,8 @@ THUMB_FUNC u32 FUN_0200BB68(u32 param0) return param0 + 0x10; } -THUMB_FUNC BOOL FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3) +THUMB_FUNC BOOL FUN_0200BB6C( + struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3) { GF_ASSERT(param0 != NULL); @@ -191,7 +199,8 @@ THUMB_FUNC BOOL FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u return TRUE; } -THUMB_FUNC BOOL FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2) +THUMB_FUNC BOOL FUN_0200BBF0( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2) { if (param0 == NULL || param1 == NULL) { @@ -268,13 +277,15 @@ THUMB_FUNC void FUN_0200BCB0(u32 *param0) } } -THUMB_FUNC void FUN_0200BCD0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) +THUMB_FUNC void FUN_0200BCD0( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { param0->unk004--; FreeToHeap(param1); } -THUMB_FUNC void FUN_0200BCE0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) +THUMB_FUNC void FUN_0200BCE0( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { FUN_0200BC40(param1); FUN_0200BC4C(param1); @@ -444,7 +455,8 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, return r4; } -THUMB_FUNC BOOL FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) +THUMB_FUNC BOOL FUN_0200BF60( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2) { struct UnkStruct_0200BB14_1 *st0 = param0; s32 i; @@ -484,8 +496,13 @@ THUMB_FUNC BOOL FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStru return TRUE; } -THUMB_FUNC BOOL FUN_0200C00C( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) +THUMB_FUNC BOOL FUN_0200C00C(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { @@ -523,7 +540,8 @@ THUMB_FUNC s32 FUN_0200C06C(u32 *param0, return -1; } - u32 r5 = FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]); + u32 r5 = + FUN_02008FEC(param1->unk0c[1], param2, param3, param4, param7, param6, param5, param0[0]); if (r5 != 0) { GF_ASSERT(FUN_02009D68(r5) == 1); @@ -555,14 +573,22 @@ THUMB_FUNC u8 FUN_0200C0DC(u32 param0, return (u8)r4; } -THUMB_FUNC u32 FUN_0200C124( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) +THUMB_FUNC u32 FUN_0200C124(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 2, param5); } -THUMB_FUNC u32 FUN_0200C13C( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5) +THUMB_FUNC u32 FUN_0200C13C(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + s32 param5) { return FUN_0200C404(param0, param1, param2, param3, param4, 3, param5); } @@ -573,7 +599,8 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( struct UnkStruct_0200BB14_4 st44; s32 st2c[6]; - struct UnkStruct_0200BB14_5 *ptr = AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_5)); + struct UnkStruct_0200BB14_5 *ptr = + AllocFromHeap(param0->unk000, sizeof(struct UnkStruct_0200BB14_5)); if (ptr == NULL) { return NULL; @@ -730,7 +757,8 @@ THUMB_FUNC u32 FUN_0200C388(struct UnkStruct_0200BB14_2 *param0, u32 param1) return FUN_0200C4A8(param0->unk0c[3], param0->unk24[3], param1); } -THUMB_FUNC void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) +THUMB_FUNC void FUN_0200C398( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1) { FUN_0200BC40(param1); FUN_02009C30(param1->unk24[0]); @@ -757,8 +785,13 @@ THUMB_FUNC void FUN_0200C3DC(u32 *param0) FreeToHeap(param0); } -THUMB_FUNC BOOL FUN_0200C404( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) +THUMB_FUNC BOOL FUN_0200C404(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6) { if (FUN_0200945C(param1->unk0c[param5], param6) == 0) { @@ -1204,8 +1237,13 @@ THUMB_FUNC void FUN_0200C90C(u32 *param0, u32 param1) FUN_0200C904(*param0, param1); } -THUMB_FUNC BOOL FUN_0200C918( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) +THUMB_FUNC BOOL FUN_0200C918(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { @@ -1230,8 +1268,13 @@ THUMB_FUNC BOOL FUN_0200C918( return FALSE; } -THUMB_FUNC BOOL FUN_0200C978( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6) +THUMB_FUNC BOOL FUN_0200C978(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6) { if (FUN_0200945C(param1->unk0c[0], param6) == 0) { diff --git a/include/unk_0200BB14.h b/include/unk_0200BB14.h index d6e530dce..a252fd935 100644 --- a/include/unk_0200BB14.h +++ b/include/unk_0200BB14.h @@ -1,3 +1,6 @@ +#ifndef POKEDIAMOND_UNK_0200BB14_H +#define POKEDIAMOND_UNK_0200BB14_H + #include "global.h" struct UnkStruct_0200BB14_1 @@ -36,7 +39,8 @@ struct UnkStruct_0200BB14_3 u32 unk24; }; -struct UnkStruct_0200BB14_sub { +struct UnkStruct_0200BB14_sub +{ u8 unk00[0x24]; }; @@ -56,26 +60,25 @@ struct UnkStruct_0200BB14_4 u32 unk2c; }; - - - -struct UnkStruct_0200BB14_6 { +struct UnkStruct_0200BB14_6 +{ struct UnkStruct_0200BB14_sub *unk0; u32 unk4; }; -struct UnkStruct_0200BB14_5 { +struct UnkStruct_0200BB14_5 +{ u32 unk00; struct UnkStruct_0200BB14_sub *unk04; struct UnkStruct_0200BB14_6 *unk08; u32 unk0c; }; - struct UnkStruct_0200BB14_1 *FUN_0200BB14(u32 heap_id); struct UnkStruct_0200BB14_2 *FUN_0200BB34(struct UnkStruct_0200BB14_1 *param0); u32 FUN_0200BB68(u32 param0); BOOL FUN_0200BB6C(struct UnkStruct_0200BB14_1 *param0, u32 *param1, u32 *param2, u32 param3); -BOOL FUN_0200BBF0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2); +BOOL FUN_0200BBF0( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2); void FUN_0200BC14(u32 param0); void FUN_0200BC1C(u32 *param0); void FUN_0200BC30(); @@ -87,7 +90,8 @@ void FUN_0200BCB0(u32 *param0); void FUN_0200BCD0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200BCE0(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200BD04(u32 *param0); -BOOL FUN_0200BD20(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2); +BOOL FUN_0200BD20( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, const char **param2); u32 FUN_0200BE38(u32 *param0, u32 *param1, struct UnkStruct_0200BB14_3 *param2); u32 FUN_0200BE74(u32 *param0, u32 *param1, @@ -103,9 +107,15 @@ u32 FUN_0200BE74(u32 *param0, u32 param11, u32 param12, u32 param13); -BOOL FUN_0200BF60(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); -BOOL FUN_0200C00C( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); +BOOL FUN_0200BF60( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); +BOOL FUN_0200C00C(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6); s32 FUN_0200C06C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, @@ -124,9 +134,20 @@ u8 FUN_0200C0DC(u32 param0, u32 param7, u32 param8, s32 param9); -u32 FUN_0200C124(u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); -u32 FUN_0200C13C(u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, s32 param5); -struct UnkStruct_0200BB14_5 *FUN_0200C154(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); +u32 FUN_0200C124(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + s32 param5); +u32 FUN_0200C13C(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + s32 param5); +struct UnkStruct_0200BB14_5 *FUN_0200C154( + struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1, u32 *param2); u32 FUN_0200C334(u32 *param0, u32 param1); u32 FUN_0200C344(u32 *param0, u32 param1, u32 param2); u32 FUN_0200C358(struct UnkStruct_0200BB14_2 *param0, u32 param1); @@ -135,8 +156,13 @@ u32 FUN_0200C378(struct UnkStruct_0200BB14_2 *param0, u32 param1); u32 FUN_0200C388(struct UnkStruct_0200BB14_2 *param0, u32 param1); void FUN_0200C398(struct UnkStruct_0200BB14_1 *param0, struct UnkStruct_0200BB14_2 *param1); void FUN_0200C3DC(u32 *param0); -BOOL FUN_0200C404( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); +BOOL FUN_0200C404(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6); BOOL FUN_0200C474(u32 *param0, u32 param1); BOOL FUN_0200C4A8(u32 param0, u32 *param1, u32 param2); BOOL FUN_0200C4F4(u32 param0, u32 *param1, u32 param2); @@ -196,10 +222,22 @@ void FUN_0200C8DC(u32 *param0, u32 param1, u32 param2); void FUN_0200C8F8(u32 *param0, u32 param1); void FUN_0200C904(u32 param0, u32 param1); void FUN_0200C90C(u32 *param0, u32 param1); -BOOL FUN_0200C918( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); -BOOL FUN_0200C978( - u32 *param0, struct UnkStruct_0200BB14_2 *param1, u32 param2, u32 param3, u32 param4, u32 param5, s32 param6); +BOOL FUN_0200C918(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6); +BOOL FUN_0200C978(u32 *param0, + struct UnkStruct_0200BB14_2 *param1, + u32 param2, + u32 param3, + u32 param4, + u32 param5, + s32 param6); void FUN_0200C9D8(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); void FUN_0200CA0C(u32 *param0, u32 *param1, u32 param2, u32 param3, u32 param4, u32 param5); u32 FUN_0200CA40(u32 *param0); + +#endif // POKEDIAMOND_UNK_0200BB14_H From 11086daf4e34febc3a874732831cf3484b6bafdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Calixte?= Date: Tue, 1 Jun 2021 21:27:31 +0200 Subject: [PATCH 133/134] replace hacky shifts with division --- arm9/src/unk_0200BB14.c | 58 ++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/arm9/src/unk_0200BB14.c b/arm9/src/unk_0200BB14.c index 0e12249ae..458508854 100644 --- a/arm9/src/unk_0200BB14.c +++ b/arm9/src/unk_0200BB14.c @@ -249,7 +249,7 @@ THUMB_FUNC void FUN_0200BC4C(struct UnkStruct_0200BB14_2 *param0) THUMB_FUNC void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0) { - for (s32 i = 0; i < (s32)param0->unk54; i++) + for (s32 i = 0; i < param0->unk54; i++) { FUN_020096B4(FUN_02009660(param0->unk08, i)); } @@ -258,7 +258,7 @@ THUMB_FUNC void FUN_0200BC5C(struct UnkStruct_0200BB14_2 *param0) FUN_02009C30(param0->unk24[0]); FUN_02009E28(param0->unk24[1]); - for (s32 i = 0; i < (s32)param0->unk54; i++) + for (s32 i = 0; i < param0->unk54; i++) { FUN_02009448(param0->unk24[i]); FUN_02008E2C(param0->unk0c[i]); @@ -400,34 +400,34 @@ THUMB_FUNC u32 FUN_0200BE74(u32 *param0, st0.unk00 = param1[0]; st0.unk04 = &(*(struct UnkStruct_0200BB14_sub **)(param1[1]))[param2]; - float r0; + f32 r0; if (param3 > 0) { - r0 = ((float)(param3 * 0x1000) + (float)0.5); + r0 = ((f32)(param3 * 0x1000) + (f32)0.5); } else { - r0 = ((float)(param3 * 0x1000) - (float)0.5); + r0 = ((f32)(param3 * 0x1000) - (f32)0.5); } st0.unk08 = (s32)r0; if (param4 > 0) { - r0 = ((float)(param4 * 0x1000) + (float)0.5); + r0 = ((f32)(param4 * 0x1000) + (f32)0.5); } else { - r0 = ((float)(param4 * 0x1000) - (float)0.5); + r0 = ((f32)(param4 * 0x1000) - (f32)0.5); } st0.unk0c = (s32)r0; if (param5 > 0) { - r0 = ((float)(param5 * 0x1000) + (float)0.5); + r0 = ((f32)(param5 * 0x1000) + (f32)0.5); } else { - r0 = ((float)(param5 * 0x1000) - (float)0.5); + r0 = ((f32)(param5 * 0x1000) - (f32)0.5); } st0.unk10 = (s32)r0; @@ -486,9 +486,9 @@ THUMB_FUNC BOOL FUN_0200BF60( param1->unk24[i] = FUN_02009424(param2[i], st0->unk000); param1->unk3c[i] = 0; - for (s32 j = 0; j < (s32)((u32 *)param1->unk24[i])[1]; j++) + for (s32 j = 0; j < (s32)param1->unk24[i][1]; j++) { - ((u32 *)(((u32 *)param1->unk24[i])[0]))[j] = 0; + ((u32 *)param1->unk24[i][0])[j] = 0; } } } @@ -665,34 +665,34 @@ THUMB_FUNC struct UnkStruct_0200BB14_5 *FUN_0200C154( st44.unk00 = param1->unk00; st44.unk04 = ptr->unk04; - float r0; + f32 r0; if (((s16 *)param2)[0] > 0) { - r0 = ((float)(((s16 *)param2)[0] << 0xc) + (float)0.5); + r0 = ((f32)(((s16 *)param2)[0] << 0xc) + (f32)0.5); } else { - r0 = ((float)(((s16 *)param2)[0] << 0xc) - (float)0.5); + r0 = ((f32)(((s16 *)param2)[0] << 0xc) - (f32)0.5); } st44.unk08 = (s32)r0; if (((s16 *)param2)[1] > 0) { - r0 = ((float)(((s16 *)param2)[1] << 0xc) + (float)0.5); + r0 = ((f32)(((s16 *)param2)[1] << 0xc) + (f32)0.5); } else { - r0 = ((float)(((s16 *)param2)[1] << 0xc) - (float)0.5); + r0 = ((f32)(((s16 *)param2)[1] << 0xc) - (f32)0.5); } st44.unk0c = (s32)r0; if (((s16 *)param2)[2] > 0) { - r0 = ((float)(((s16 *)param2)[2] << 0xc) + (float)0.5); + r0 = ((f32)(((s16 *)param2)[2] << 0xc) + (f32)0.5); } else { - r0 = ((float)(((s16 *)param2)[2] << 0xc) - (float)0.5); + r0 = ((f32)(((s16 *)param2)[2] << 0xc) - (f32)0.5); } st44.unk10 = (s32)r0; @@ -764,7 +764,7 @@ THUMB_FUNC void FUN_0200C398( FUN_02009C30(param1->unk24[0]); FUN_02009E28(param1->unk24[1]); - for (s32 i = 0; i < (s32)param1->unk54; i++) + for (s32 i = 0; i < param1->unk54; i++) { FUN_02009448(param1->unk24[i]); FUN_02008E2C(param1->unk0c[i]); @@ -1093,20 +1093,20 @@ THUMB_FUNC void FUN_0200C750(u32 *param0, u32 param1, u32 param2, u32 param3) THUMB_FUNC void FUN_0200C75C(u32 param0, u16 *param1, u16 *param2) { - u32 *r4 = FUN_0202011C(param0, param1, param2); + s32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (u16)((s32)(r4[0] + ((u32)((s32)r4[0] >> 0xb) >> 0x14)) >> 0xc); + param1[0] = r4[0] / 0x1000; if (FUN_02020380(param0) == 2) { - u32 r1 = r4[1] - 0xc0000; + s32 r1 = r4[1] - 0xc0000; - param2[0] = (u16)((s32)(r1 + ((u32)((s32)r1 >> 0xb) >> 0x14)) >> 0xc); + param2[0] = r1 / 0x1000; return; } - param2[0] = (u16)((s32)(r4[1] + ((u32)((s32)r4[1] >> 0xb) >> 0x14)) >> 0xc); + param2[0] = r4[1] / 0x1000; } THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2) @@ -1116,20 +1116,20 @@ THUMB_FUNC void FUN_0200C7A0(u32 *param0, u16 *param1, u16 *param2) THUMB_FUNC void FUN_0200C7AC(u32 param0, u16 *param1, u16 *param2, u32 param3) { - u32 *r4 = FUN_0202011C(param0, param1, param2); + s32 *r4 = FUN_0202011C(param0, param1, param2); - param1[0] = (u16)((s32)(r4[0] + ((u32)((s32)r4[0] >> 0xb) >> 0x14)) >> 0xc); + param1[0] = r4[0] / 0x1000; if (FUN_02020380(param0) == 2) { - u32 r1 = r4[1] - param3; + s32 r1 = r4[1] - param3; - param2[0] = (u16)((s32)(r1 + ((u32)((s32)r1 >> 0xb) >> 0x14)) >> 0xc); + param2[0] = r1 / 0x1000; return; } - param2[0] = (u16)((s32)(r4[1] + ((u32)((s32)r4[1] >> 0xb) >> 0x14)) >> 0xc); + param2[0] = r4[1] / 0x1000; } THUMB_FUNC void FUN_0200C7F0(u32 *param0, u16 *param1, u16 *param2, u32 param3) From 66c5da2386bf4de38683b080ace08d47a248ee7e Mon Sep 17 00:00:00 2001 From: red031000 Date: Tue, 1 Jun 2021 21:35:12 +0100 Subject: [PATCH 134/134] clean up --- arm9/src/unk_02033778.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/arm9/src/unk_02033778.c b/arm9/src/unk_02033778.c index 1c191effe..fa2a67da0 100644 --- a/arm9/src/unk_02033778.c +++ b/arm9/src/unk_02033778.c @@ -12,26 +12,22 @@ extern void FUN_02029B90(u32 param0, u32 param1, u32 param2, u32 param3); THUMB_FUNC void FUN_02033778(u32 param0) { s32 unk = FUN_02030F20(); - if (FUN_0202DFA4(0) == NULL) + if (FUN_0202DFA4(0) != NULL) { - return; - } - - for (s32 i = 0; i < unk; i++) - { - if (FUN_02031190() == i) + for (s32 i = 0; i < unk; i++) { - continue; + if (FUN_02031190() != i) + { + FUN_020337C8(param0, FUN_0202E020(i), FUN_0202E044(i), PlayerProfile_GetLanguage(FUN_0202DFA4(i))); + } } - FUN_020337C8(param0, FUN_0202E020(i), FUN_0202E044(i), PlayerProfile_GetLanguage(FUN_0202DFA4(i))); } } THUMB_FUNC void FUN_020337C8(u32 param0, u32 param1, u32 param2, u32 language) { - if (FUN_02029B40(param0, param1, param2, language) != 0) + if (FUN_02029B40(param0, param1, param2, language) == 0) { - return; + FUN_02029B90(param0, param1, param2, 1); } - FUN_02029B90(param0, param1, param2, 1); }