summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/arm9.lsf2
-rw-r--r--arm9/asm/unk_020030E8.s1424
-rw-r--r--arm9/asm/unk_02006D98.s4
-rw-r--r--arm9/asm/unk_020142EC.s6
-rw-r--r--arm9/asm/unk_020144FC.s2
-rw-r--r--arm9/asm/unk_0206C700.s26
-rw-r--r--arm9/asm/unk_020859C0.s16
-rw-r--r--arm9/asm/unk_02086084.s16
-rw-r--r--arm9/asm/unk_02086414.s10
-rw-r--r--arm9/global.inc28
-rw-r--r--arm9/modules/05/asm/mod05_021E3444.s2
-rw-r--r--arm9/modules/07/asm/module_07.s4
-rw-r--r--arm9/modules/08/asm/module_08.s48
-rw-r--r--arm9/modules/09/asm/module_09.s26
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s44
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s56
-rw-r--r--arm9/modules/12/asm/module_12.s168
-rw-r--r--arm9/modules/16/asm/module_16.s4
-rw-r--r--arm9/modules/61/asm/module_61.s32
-rw-r--r--arm9/modules/62/asm/module_62.s22
-rw-r--r--arm9/src/palette.c760
-rw-r--r--arm9/src/unk_02002F08.c51
22 files changed, 1044 insertions, 1707 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index 66c41c14..346d40b7 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -12,7 +12,7 @@ Static arm9
Object render_text.o
Object font.o
Object unk_02002F08.o
- Object unk_020030E8.o
+ Object palette.o
Object sound.o
Object unk_020040F4.o
Object unk_020051F4.o
diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s
deleted file mode 100644
index d304b14a..00000000
--- a/arm9/asm/unk_020030E8.s
+++ /dev/null
@@ -1,1424 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .section .text
-
- thumb_func_start FUN_02003108
-FUN_02003108: ; 0x02003108
- push {r3-r7, lr}
- add r4, r1, #0x0
- mov r1, #0x14
- add r6, r0, #0x0
- mul r1, r4
- add r5, r2, #0x0
- add r1, r6, r1
- add r7, r3, #0x0
- lsl r0, r5, #0x1
- ldr r1, [r1, #0x8]
- add r0, r7, r0
- cmp r0, r1
- bls _02003126
- bl GF_AssertFail
-_02003126:
- cmp r4, #0x3
- bhi _0200315E
- add r0, r4, r4
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_02003136: ; jump table (using 16-bit offset)
- .short _0200313E - _02003136 - 2; case 0
- .short _02003146 - _02003136 - 2; case 1
- .short _0200314E - _02003136 - 2; case 2
- .short _02003156 - _02003136 - 2; case 3
-_0200313E:
- bl FUN_020222E8
- add r1, r0, #0x0
- b _02003164
-_02003146:
- bl FUN_020222F8
- add r1, r0, #0x0
- b _02003164
-_0200314E:
- bl FUN_02022308
- add r1, r0, #0x0
- b _02003164
-_02003156:
- bl FUN_02022310
- add r1, r0, #0x0
- b _02003164
-_0200315E:
- bl GF_AssertFail
- pop {r3-r7, pc}
-_02003164:
- lsl r0, r7, #0x10
- lsr r0, r0, #0x10
- lsl r2, r5, #0x1
- str r0, [sp, #0x0]
- add r1, r1, r2
- add r0, r6, #0x0
- add r2, r4, #0x0
- add r3, r5, #0x0
- bl FUN_02003054
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_0200317C
-FUN_0200317C: ; 0x0200317C
- push {r3-r5, lr}
- add r4, r2, #0x0
- add r5, r3, #0x0
- add r2, sp, #0x0
- add r3, r4, #0x0
- bl GfGfxLoader_GetPlttData
- add r4, r0, #0x0
- bne _02003192
- bl GF_AssertFail
-_02003192:
- cmp r5, #0x0
- bne _0200319A
- ldr r0, [sp, #0x0]
- ldr r5, [r0, #0x8]
-_0200319A:
- ldr r0, [sp, #0x0]
- add r2, r5, #0x0
- ldr r1, [r0, #0xc]
- add r0, sp, #0x0
- ldrh r0, [r0, #0x10]
- lsl r0, r0, #0x1
- add r0, r1, r0
- ldr r1, [sp, #0x14]
- bl MIi_CpuCopy16
- add r0, r4, #0x0
- bl FreeToHeap
- pop {r3-r5, pc}
- .balign 4
-
- thumb_func_start FUN_020031B8
-FUN_020031B8: ; 0x020031B8
- push {r3-r7, lr}
- sub sp, #0x8
- add r4, sp, #0x10
- add r5, r0, #0x0
- add r0, r1, #0x0
- ldrh r1, [r4, #0x14]
- add r6, r3, #0x0
- str r1, [sp, #0x0]
- ldrh r1, [r4, #0x10]
- lsl r4, r2, #0x1
- ldr r2, [sp, #0x0]
- lsl r7, r1, #0x1
- mov r1, #0x14
- mul r6, r1
- mul r1, r0
- ldr r0, [r5, r1]
- str r1, [sp, #0x4]
- ldr r1, [r5, r6]
- add r0, r0, r4
- add r1, r1, r7
- bl MIi_CpuCopy16
- ldr r0, [sp, #0x4]
- add r1, r5, r6
- ldr r0, [r5, r0]
- ldr r1, [r1, #0x4]
- ldr r2, [sp, #0x0]
- add r0, r0, r4
- add r1, r1, r7
- bl MIi_CpuCopy16
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020031FC
-FUN_020031FC: ; 0x020031FC
- mov r2, #0x14
- mul r2, r1
- ldr r0, [r0, r2]
- bx lr
-
- thumb_func_start FUN_02003204
-FUN_02003204: ; 0x02003204
- mov r2, #0x14
- mul r2, r1
- add r0, r0, r2
- ldr r0, [r0, #0x4]
- bx lr
- .balign 4
-
- thumb_func_start FUN_02003210
-FUN_02003210: ; 0x02003210
- push {r0-r3}
- push {r3-r7, lr}
- sub sp, #0x10
- str r3, [sp, #0x8]
- add r5, r0, #0x0
- ldr r0, [sp, #0x38]
- mov r6, #0x0
- str r0, [sp, #0x38]
- ldr r0, [sp, #0x3c]
- add r7, r1, #0x0
- str r0, [sp, #0x3c]
- ldr r0, [sp, #0x40]
- add r4, r6, #0x0
- str r0, [sp, #0x40]
- add r0, sp, #0x28
- ldrh r0, [r0, #0x8]
- str r0, [sp, #0xc]
-_02003232:
- add r0, r7, #0x0
- add r1, r4, #0x0
- bl FUN_02003314
- cmp r0, #0x1
- bne _020032A6
- mov r0, #0x46
- lsl r0, r0, #0x2
- ldrh r0, [r5, r0]
- add r1, r4, #0x0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x12
- bl FUN_02003314
- cmp r0, #0x0
- bne _020032A6
- mov r0, #0x14
- add r6, r4, #0x0
- mul r6, r0
- add r0, r4, #0x0
- add r1, r5, r6
- add r2, sp, #0x30
- bl FUN_02003368
- ldr r0, [sp, #0x3c]
- add r1, sp, #0x28
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x40]
- str r0, [sp, #0x4]
- add r0, r5, r6
- ldrh r1, [r1, #0x8]
- ldr r2, [sp, #0x8]
- ldr r3, [sp, #0x38]
- add r0, #0xc
- bl FUN_020033A4
- add r0, r5, #0x0
- add r1, r4, #0x0
- bl FUN_02003328
- cmp r4, #0x4
- blo _02003294
- mov r2, #0x1
- add r0, r5, #0x0
- add r1, r4, #0x0
- lsl r2, r2, #0x8
- bl FUN_0200359C
- b _0200329E
-_02003294:
- add r0, r5, #0x0
- add r1, r4, #0x0
- mov r2, #0x10
- bl FUN_0200359C
-_0200329E:
- ldr r1, [sp, #0xc]
- add r0, sp, #0x28
- strh r1, [r0, #0x8]
- mov r6, #0x1
-_020032A6:
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xe
- blo _02003232
- cmp r6, #0x1
- bne _02003300
- mov r0, #0x46
- lsl r0, r0, #0x2
- ldrh r2, [r5, r0]
- ldr r1, _0200330C ; =0xFFFF0003
- and r1, r2
- lsl r2, r2, #0x10
- lsr r2, r2, #0x12
- orr r2, r7
- lsl r2, r2, #0x12
- lsr r2, r2, #0x10
- orr r1, r2
- strh r1, [r5, r0]
- add r1, r0, #0x2
- ldrh r1, [r5, r1]
- lsl r1, r1, #0x11
- lsr r1, r1, #0x1f
- bne _02003300
- add r1, r0, #0x2
- ldrh r2, [r5, r1]
- mov r1, #0x1
- lsl r1, r1, #0xe
- orr r2, r1
- add r1, r0, #0x2
- strh r2, [r5, r1]
- ldrh r2, [r5, r0]
- mov r1, #0x3
- bic r2, r1
- mov r1, #0x1
- orr r1, r2
- strh r1, [r5, r0]
- mov r2, #0x0
- add r0, r0, #0x4
- strb r2, [r5, r0]
- ldr r0, _02003310 ; =FUN_02003464
- add r1, r5, #0x0
- sub r2, r2, #0x2
- bl FUN_0200CA44
-_02003300:
- add r0, r6, #0x0
- add sp, #0x10
- pop {r3-r7}
- pop {r3}
- add sp, #0x10
- bx r3
- .balign 4
-_0200330C: .word 0xFFFF0003
-_02003310: .word FUN_02003464
-
- thumb_func_start FUN_02003314
-FUN_02003314: ; 0x02003314
- mov r3, #0x1
- add r2, r3, #0x0
- lsl r2, r1
- tst r0, r2
- bne _02003320
- mov r3, #0x0
-_02003320:
- lsl r0, r3, #0x18
- lsr r0, r0, #0x18
- bx lr
- .balign 4
-
- thumb_func_start FUN_02003328
-FUN_02003328: ; 0x02003328
- push {r4-r6, lr}
- add r5, r0, #0x0
- ldr r0, _02003360 ; =0x0000011A
- add r4, r1, #0x0
- ldrh r0, [r5, r0]
- lsl r0, r0, #0x12
- lsr r0, r0, #0x12
- bl FUN_02003314
- cmp r0, #0x1
- beq _0200335E
- ldr r3, _02003360 ; =0x0000011A
- ldr r1, _02003364 ; =0xFFFFC000
- ldrh r2, [r5, r3]
- add r0, r2, #0x0
- lsl r2, r2, #0x12
- lsr r6, r2, #0x12
- mov r2, #0x1
- lsl r2, r4
- orr r2, r6
- lsl r2, r2, #0x10
- and r0, r1
- lsr r2, r2, #0x10
- lsr r1, r1, #0x12
- and r1, r2
- orr r0, r1
- strh r0, [r5, r3]
-_0200335E:
- pop {r4-r6, pc}
- .balign 4
-_02003360: .word 0x0000011A
-_02003364: .word 0xFFFFC000
-
- thumb_func_start FUN_02003368
-FUN_02003368: ; 0x02003368
- push {r4-r5}
- cmp r0, #0x4
- ldr r0, [r1, #0x8]
- bge _02003374
- lsl r0, r0, #0x13
- b _02003378
-_02003374:
- lsr r0, r0, #0x9
- lsl r0, r0, #0x18
-_02003378:
- mov r4, #0x0
- lsr r0, r0, #0x18
- add r5, r4, #0x0
- cmp r0, #0x0
- bls _02003398
- mov r3, #0x1
-_02003384:
- add r1, r3, #0x0
- lsl r1, r5
- add r1, r4, r1
- lsl r1, r1, #0x10
- lsr r4, r1, #0x10
- add r1, r5, #0x1
- lsl r1, r1, #0x18
- lsr r5, r1, #0x18
- cmp r5, r0
- blo _02003384
-_02003398:
- ldrh r0, [r2, #0x0]
- and r0, r4
- strh r0, [r2, #0x0]
- pop {r4-r5}
- bx lr
- .balign 4
-
- thumb_func_start FUN_020033A4
-FUN_020033A4: ; 0x020033A4
- push {r4-r6, lr}
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r3, #0x0
- cmp r2, #0x0
- bge _020033D4
- add r0, r2, #0x0
- bl abs
- add r0, r0, #0x2
- ldrh r1, [r5, #0x6]
- mov r2, #0xf
- lsl r0, r0, #0x10
- bic r1, r2
- lsr r2, r0, #0x10
- mov r0, #0xf
- and r0, r2
- orr r0, r1
- strh r0, [r5, #0x6]
- ldrh r1, [r5, #0x2]
- mov r0, #0x3f
- bic r1, r0
- strh r1, [r5, #0x2]
- b _020033F2
-_020033D4:
- ldrh r1, [r5, #0x6]
- mov r0, #0xf
- bic r1, r0
- mov r0, #0x2
- orr r0, r1
- strh r0, [r5, #0x6]
- ldrh r0, [r5, #0x2]
- mov r1, #0x3f
- bic r0, r1
- lsl r1, r2, #0x10
- lsr r2, r1, #0x10
- mov r1, #0x3f
- and r1, r2
- orr r0, r1
- strh r0, [r5, #0x2]
-_020033F2:
- strh r6, [r5, #0x0]
- ldrh r1, [r5, #0x2]
- ldr r0, _02003454 ; =0xFFFFF83F
- add r3, sp, #0x0
- and r1, r0
- lsl r0, r4, #0x1b
- lsr r0, r0, #0x15
- orr r0, r1
- strh r0, [r5, #0x2]
- ldrh r1, [r5, #0x2]
- ldr r0, _02003458 ; =0xFFFF07FF
- add r2, r1, #0x0
- ldrb r1, [r3, #0x10]
- and r2, r0
- lsl r0, r1, #0x1b
- lsr r0, r0, #0x10
- orr r0, r2
- strh r0, [r5, #0x2]
- ldrh r0, [r5, #0x4]
- ldr r2, _0200345C ; =0xFFFF8000
- ldrh r6, [r3, #0x14]
- lsr r3, r2, #0x11
- and r0, r2
- and r3, r6
- orr r0, r3
- strh r0, [r5, #0x4]
- ldrh r3, [r5, #0x6]
- ldr r0, _02003460 ; =0xFFFFFC0F
- and r0, r3
- ldrh r3, [r5, #0x2]
- lsl r3, r3, #0x1a
- lsr r3, r3, #0x1a
- lsl r3, r3, #0x1a
- lsr r3, r3, #0x16
- orr r0, r3
- strh r0, [r5, #0x6]
- cmp r4, r1
- ldrh r1, [r5, #0x4]
- bhs _02003448
- sub r0, r2, #0x1
- and r0, r1
- strh r0, [r5, #0x4]
- pop {r4-r6, pc}
-_02003448:
- mov r0, #0x2
- lsl r0, r0, #0xe
- orr r0, r1
- strh r0, [r5, #0x4]
- pop {r4-r6, pc}
- nop
-_02003454: .word 0xFFFFF83F
-_02003458: .word 0xFFFF07FF
-_0200345C: .word 0xFFFF8000
-_02003460: .word 0xFFFFFC0F
-
- thumb_func_start FUN_02003464
-FUN_02003464: ; 0x02003464
- push {r4-r6, lr}
- add r4, r1, #0x0
- mov r1, #0x47
- lsl r1, r1, #0x2
- ldrb r2, [r4, r1]
- add r5, r0, #0x0
- cmp r2, #0x1
- bne _020034A4
- mov r2, #0x0
- strb r2, [r4, r1]
- sub r2, r1, #0x2
- ldrh r3, [r4, r2]
- ldr r2, _020034F4 ; =0xFFFFC000
- add r5, r3, #0x0
- and r5, r2
- sub r3, r1, #0x2
- strh r5, [r4, r3]
- sub r3, r1, #0x4
- ldrh r5, [r4, r3]
- ldr r3, _020034F8 ; =0xFFFF0003
- sub r2, r2, #0x1
- and r5, r3
- sub r3, r1, #0x4
- strh r5, [r4, r3]
- sub r3, r1, #0x2
- ldrh r3, [r4, r3]
- sub r1, r1, #0x2
- and r2, r3
- strh r2, [r4, r1]
- bl FUN_0200CAB4
- pop {r4-r6, pc}
-_020034A4:
- sub r0, r1, #0x4
- ldrh r2, [r4, r0]
- lsl r0, r2, #0x1e
- lsr r0, r0, #0x1e
- cmp r0, #0x1
- bne _020034F0
- sub r0, r1, #0x2
- ldrh r0, [r4, r0]
- ldr r3, _020034F4 ; =0xFFFFC000
- lsl r2, r2, #0x10
- lsr r6, r2, #0x12
- lsr r2, r3, #0x12
- and r0, r3
- and r2, r6
- orr r2, r0
- sub r0, r1, #0x2
- strh r2, [r4, r0]
- add r0, r4, #0x0
- bl FUN_02003500
- add r0, r4, #0x0
- bl FUN_02003520
- mov r1, #0x46
- lsl r1, r1, #0x2
- ldrh r0, [r4, r1]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x12
- bne _020034F0
- add r0, r1, #0x2
- ldrh r2, [r4, r0]
- ldr r0, _020034FC ; =0xFFFFBFFF
- and r2, r0
- add r0, r1, #0x2
- strh r2, [r4, r0]
- add r0, r5, #0x0
- bl FUN_0200CAB4
-_020034F0:
- pop {r4-r6, pc}
- nop
-_020034F4: .word 0xFFFFC000
-_020034F8: .word 0xFFFF0003
-_020034FC: .word 0xFFFFBFFF
-
- thumb_func_start FUN_02003500
-FUN_02003500: ; 0x02003500
- push {r4-r6, lr}
- add r5, r0, #0x0
- mov r4, #0x0
- mov r6, #0x10
-_02003508:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02003540
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0x4
- blo _02003508
- pop {r4-r6, pc}
- .balign 4
-
- thumb_func_start FUN_02003520
-FUN_02003520: ; 0x02003520
- push {r4-r6, lr}
- mov r4, #0x4
- add r6, r4, #0x0
- add r5, r0, #0x0
- add r6, #0xfc
-_0200352A:
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_02003540
- add r0, r4, #0x1
- lsl r0, r0, #0x18
- lsr r4, r0, #0x18
- cmp r4, #0xe
- blo _0200352A
- pop {r4-r6, pc}
-
- thumb_func_start FUN_02003540
-FUN_02003540: ; 0x02003540
- push {r4-r6, lr}
- add r5, r0, #0x0
- mov r0, #0x46
- lsl r0, r0, #0x2
- ldrh r0, [r5, r0]
- add r4, r1, #0x0
- add r6, r2, #0x0
- lsl r0, r0, #0x10
- lsr r0, r0, #0x12
- bl FUN_02003314
- cmp r0, #0x0
- beq _02003594
- mov r0, #0x14
- mul r0, r4
- add r2, r5, r0
- ldrh r0, [r2, #0x12]
- ldrh r3, [r2, #0xe]
- lsl r1, r0, #0x16
- lsl r3, r3, #0x1a
- lsr r1, r1, #0x1a
- lsr r3, r3, #0x1a
- cmp r1, r3
- bhs _02003584
- ldr r3, _02003598 ; =0xFFFFFC0F
- and r3, r0
- add r0, r1, #0x1
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- lsl r0, r0, #0x1a
- lsr r0, r0, #0x16
- orr r0, r3
- strh r0, [r2, #0x12]
- pop {r4-r6, pc}
-_02003584:
- ldr r1, _02003598 ; =0xFFFFFC0F
- and r0, r1
- strh r0, [r2, #0x12]
- add r0, r5, #0x0
- add r1, r4, #0x0
- add r2, r6, #0x0
- bl FUN_0200359C
-_02003594:
- pop {r4-r6, pc}
- nop
-_02003598: .word 0xFFFFFC0F
-
- thumb_func_start FUN_0200359C
-FUN_0200359C: ; 0x0200359C
- push {r4-r7, lr}
- sub sp, #0xc
- str r1, [sp, #0x4]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x4]
- mov r1, #0x14
- mul r1, r0
- ldr r0, [sp, #0x0]
- mov r6, #0x0
- add r5, r0, r1
- add r0, r5, #0x0
- str r0, [sp, #0x8]
- add r0, #0xc
- add r7, r2, #0x0
- add r4, r6, #0x0
- str r0, [sp, #0x8]
-_020035BC:
- ldrh r0, [r5, #0xc]
- lsl r1, r6, #0x10
- lsr r1, r1, #0x10
- bl FUN_02003314
- cmp r0, #0x0
- beq _020035DC
- ldr r0, [r5, #0x0]
- lsl r1, r4, #0x1
- ldr r2, [r5, #0x4]
- add r0, r0, r1
- add r1, r2, r1
- ldr r2, [sp, #0x8]
- add r3, r7, #0x0
- bl FUN_020035F8
-_020035DC:
- add r6, r6, #0x1
- add r4, r4, r7
- cmp r6, #0x10
- blo _020035BC
- ldr r1, [sp, #0x4]
- add r5, #0xc
- lsl r1, r1, #0x18
- ldr r0, [sp, #0x0]
- lsr r1, r1, #0x18
- add r2, r5, #0x0
- bl FUN_02003684
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_020035F8
-FUN_020035F8: ; 0x020035F8
- push {r3-r7, lr}
- sub sp, #0x8
- str r0, [sp, #0x4]
- mov r0, #0x0
- add r6, r1, #0x0
- mov r12, r0
- str r2, [sp, #0x0]
- mov lr, r3
- add r0, r3, #0x0
- beq _02003680
-_0200360C:
- ldr r0, [sp, #0x4]
- mov r1, #0x1f
- ldrh r0, [r0, #0x0]
- asr r2, r0, #0x5
- add r5, r2, #0x0
- and r5, r1
- ldr r1, [sp, #0x0]
- asr r4, r0, #0xa
- ldrh r1, [r1, #0x4]
- lsl r1, r1, #0x11
- lsr r3, r1, #0x11
- ldr r1, [sp, #0x0]
- ldrh r1, [r1, #0x2]
- lsl r1, r1, #0x15
- lsr r2, r1, #0x1b
- mov r1, #0x1f
- and r1, r4
- mov r4, #0x1f
- and r0, r4
- and r4, r3
- sub r4, r4, r0
- mul r4, r2
- asr r4, r4, #0x4
- add r0, r0, r4
- lsl r0, r0, #0x18
- lsr r7, r0, #0x18
- asr r4, r3, #0xa
- mov r0, #0x1f
- and r0, r4
- sub r0, r0, r1
- mul r0, r2
- asr r0, r0, #0x4
- add r0, r1, r0
- lsl r0, r0, #0x18
- lsr r0, r0, #0x18
- asr r3, r3, #0x5
- mov r1, #0x1f
- and r1, r3
- sub r1, r1, r5
- mul r1, r2
- asr r1, r1, #0x4
- add r1, r5, r1
- lsl r1, r1, #0x18
- lsl r0, r0, #0xa
- lsr r1, r1, #0x13
- orr r0, r1
- orr r0, r7
- strh r0, [r6, #0x0]
- ldr r0, [sp, #0x4]
- add r6, r6, #0x2
- add r0, r0, #0x2
- str r0, [sp, #0x4]
- mov r0, r12
- add r1, r0, #0x1
- mov r0, lr
- mov r12, r1
- cmp r1, r0
- blo _0200360C
-_02003680:
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02003684
-FUN_02003684: ; 0x02003684
- push {r4-r5}
- ldrh r4, [r2, #0x2]
- lsl r3, r4, #0x10
- lsl r4, r4, #0x15
- lsr r3, r3, #0x1b
- lsr r4, r4, #0x1b
- cmp r4, r3
- bne _020036BE
- mov r3, #0x46
- lsl r3, r3, #0x2
- ldrh r4, [r0, r3]
- mov r2, #0x1
- lsl r2, r1
- lsl r1, r4, #0x10
- lsr r5, r1, #0x12
- add r1, r5, #0x0
- tst r1, r2
- beq _0200371E
- eor r2, r5
- lsl r2, r2, #0x10
- ldr r1, _02003724 ; =0xFFFF0003
- lsr r2, r2, #0x10
- lsl r2, r2, #0x12
- and r1, r4
- lsr r2, r2, #0x10
- orr r1, r2
- strh r1, [r0, r3]
- pop {r4-r5}
- bx lr
-_020036BE:
- ldrh r0, [r2, #0x4]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x1f
- bne _020036F4
- lsl r0, r4, #0x10
- asr r1, r0, #0x10
- ldrh r0, [r2, #0x6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- add r0, r1, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r4, r3
- ble _020036DE
- lsl r0, r3, #0x10
- asr r4, r0, #0x10
-_020036DE:
- ldrh r1, [r2, #0x2]
- ldr r0, _02003728 ; =0xFFFFF83F
- and r1, r0
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x15
- orr r0, r1
- strh r0, [r2, #0x2]
- pop {r4-r5}
- bx lr
-_020036F4:
- lsl r0, r4, #0x10
- asr r1, r0, #0x10
- ldrh r0, [r2, #0x6]
- lsl r0, r0, #0x1c
- lsr r0, r0, #0x1c
- sub r0, r1, r0
- lsl r0, r0, #0x10
- asr r4, r0, #0x10
- cmp r4, r3
- bge _0200370C
- lsl r0, r3, #0x10
- asr r4, r0, #0x10
-_0200370C:
- ldrh r1, [r2, #0x2]
- ldr r0, _02003728 ; =0xFFFFF83F
- and r1, r0
- lsl r0, r4, #0x10
- lsr r0, r0, #0x10
- lsl r0, r0, #0x1b
- lsr r0, r0, #0x15
- orr r0, r1
- strh r0, [r2, #0x2]
-_0200371E:
- pop {r4-r5}
- bx lr
- nop
-_02003724: .word 0xFFFF0003
-_02003728: .word 0xFFFFF83F
-
- thumb_func_start FUN_0200372C
-FUN_0200372C: ; 0x0200372C
- push {r3-r7, lr}
- add r6, r0, #0x0
- ldr r0, _020038DC ; =0x0000011A
- ldrh r1, [r6, r0]
- lsl r1, r1, #0x10
- lsr r1, r1, #0x1f
- bne _02003748
- sub r0, r0, #0x2
- ldrh r0, [r6, r0]
- lsl r0, r0, #0x1e
- lsr r0, r0, #0x1e
- cmp r0, #0x1
- beq _02003748
- b _020038DA
-_02003748:
- mov r7, #0x2
- mov r5, #0x0
- add r4, r6, #0x0
- lsl r7, r7, #0xc
-_02003750:
- ldr r0, _020038DC ; =0x0000011A
- ldrh r1, [r6, r0]
- lsl r0, r1, #0x10
- lsr r0, r0, #0x1f
- bne _02003770
- ldr r0, [r4, #0x4]
- cmp r0, #0x0
- beq _0200377C
- lsl r0, r1, #0x12
- lsl r1, r5, #0x10
- lsr r0, r0, #0x12
- lsr r1, r1, #0x10
- bl FUN_02003314
- cmp r0, #0x0
- beq _0200377C
-_02003770:
- ldr r0, [r4, #0x4]
- ldr r1, [r4, #0x8]
- bl DC_FlushRange
- cmp r5, #0xd
- bls _0200377E
-_0200377C:
- b _020038A4
-_0200377E:
- add r0, r5, r5
- add r0, pc
- ldrh r0, [r0, #0x6]
- lsl r0, r0, #0x10
- asr r0, r0, #0x10
- add pc, r0
-_0200378A: ; jump table (using 16-bit offset)
- .short _020037A6 - _0200378A - 2; case 0
- .short _020037B2 - _0200378A - 2; case 1
- .short _020037BE - _0200378A - 2; case 2
- .short _020037CA - _0200378A - 2; case 3
- .short _020037D6 - _0200378A - 2; case 4
- .short _020037EA - _0200378A - 2; case 5
- .short _020037FE - _0200378A - 2; case 6
- .short _02003814 - _0200378A - 2; case 7
- .short _0200382A - _0200378A - 2; case 8
- .short _0200383E - _0200378A - 2; case 9
- .short _02003852 - _0200378A - 2; case 10
- .short _02003868 - _0200378A - 2; case 11
- .short _0200387E - _0200378A - 2; case 12
- .short _02003892 - _0200378A - 2; case 13
-_020037A6:
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GX_LoadBGPltt
- b _020038A4
-_020037B2:
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GXS_LoadBGPltt
- b _020038A4
-_020037BE:
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GX_LoadOBJPltt
- b _020038A4
-_020037CA:
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GXS_LoadOBJPltt
- b _020038A4
-_020037D6:
- bl GX_BeginLoadBGExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GX_LoadBGExtPltt
- bl GX_EndLoadBGExtPltt
- b _020038A4
-_020037EA:
- bl GX_BeginLoadBGExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- add r1, r7, #0x0
- bl GX_LoadBGExtPltt
- bl GX_EndLoadBGExtPltt
- b _020038A4
-_020037FE:
- bl GX_BeginLoadBGExtPltt
- mov r1, #0x1
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- lsl r1, r1, #0xe
- bl GX_LoadBGExtPltt
- bl GX_EndLoadBGExtPltt
- b _020038A4
-_02003814:
- bl GX_BeginLoadBGExtPltt
- mov r1, #0x6
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- lsl r1, r1, #0xc
- bl GX_LoadBGExtPltt
- bl GX_EndLoadBGExtPltt
- b _020038A4
-_0200382A:
- bl GXS_BeginLoadBGExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GXS_LoadBGExtPltt
- bl GXS_EndLoadBGExtPltt
- b _020038A4
-_0200383E:
- bl GXS_BeginLoadBGExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- add r1, r7, #0x0
- bl GXS_LoadBGExtPltt
- bl GXS_EndLoadBGExtPltt
- b _020038A4
-_02003852:
- bl GXS_BeginLoadBGExtPltt
- mov r1, #0x1
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- lsl r1, r1, #0xe
- bl GXS_LoadBGExtPltt
- bl GXS_EndLoadBGExtPltt
- b _020038A4
-_02003868:
- bl GXS_BeginLoadBGExtPltt
- mov r1, #0x6
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- lsl r1, r1, #0xc
- bl GXS_LoadBGExtPltt
- bl GXS_EndLoadBGExtPltt
- b _020038A4
-_0200387E:
- bl GX_BeginLoadOBJExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GX_LoadOBJExtPltt
- bl GX_EndLoadOBJExtPltt
- b _020038A4
-_02003892:
- bl GXS_BeginLoadOBJExtPltt
- ldr r0, [r4, #0x4]
- ldr r2, [r4, #0x8]
- mov r1, #0x0
- bl GXS_LoadOBJExtPltt
- bl GXS_EndLoadOBJExtPltt
-_020038A4:
- add r5, r5, #0x1
- add r4, #0x14
- cmp r5, #0xe
- bge _020038AE
- b _02003750
-_020038AE:
- ldr r3, _020038DC ; =0x0000011A
- ldr r1, _020038E0 ; =0xFFFFC000
- sub r2, r3, #0x2
- ldrh r2, [r6, r2]
- ldrh r0, [r6, r3]
- lsl r2, r2, #0x10
- and r0, r1
- lsr r2, r2, #0x12
- lsr r1, r1, #0x12
- and r1, r2
- orr r0, r1
- strh r0, [r6, r3]
- ldrh r0, [r6, r3]
- lsl r0, r0, #0x12
- lsr r0, r0, #0x12
- bne _020038DA
- sub r0, r3, #0x2
- ldrh r1, [r6, r0]
- mov r0, #0x3
- bic r1, r0
- sub r0, r3, #0x2
- strh r1, [r6, r0]
-_020038DA:
- pop {r3-r7, pc}
- .balign 4
-_020038DC: .word 0x0000011A
-_020038E0: .word 0xFFFFC000
-
- thumb_func_start FUN_020038E4
-FUN_020038E4: ; 0x020038E4
- mov r1, #0x46
- lsl r1, r1, #0x2
- ldrh r0, [r0, r1]
- lsl r0, r0, #0x10
- lsr r0, r0, #0x12
- bx lr
-
- thumb_func_start FUN_020038F0
-FUN_020038F0: ; 0x020038F0
- push {r3-r4}
- ldr r3, _0200390C ; =0x0000011A
- lsl r1, r1, #0x10
- ldrh r4, [r0, r3]
- ldr r2, _02003910 ; =0xFFFF7FFF
- lsr r1, r1, #0x10
- lsl r1, r1, #0x1f
- and r2, r4
- lsr r1, r1, #0x10
- orr r1, r2
- strh r1, [r0, r3]
- pop {r3-r4}
- bx lr
- nop
-_0200390C: .word 0x0000011A
-_02003910: .word 0xFFFF7FFF
-
- thumb_func_start FUN_02003914
-FUN_02003914: ; 0x02003914
- push {r3-r7, lr}
- sub sp, #0x8
- add r6, r0, #0x0
- str r3, [sp, #0x0]
- mov r0, #0x14
- add r4, r1, #0x0
- mul r4, r0
- add r0, sp, #0x10
- ldrh r0, [r0, #0x14]
- add r7, r2, #0x0
- ldr r5, [sp, #0x20]
- str r0, [sp, #0x4]
- lsl r1, r0, #0x1
- add r0, r6, r4
- ldr r0, [r0, #0x8]
- cmp r1, r0
- bls _0200393A
- bl GF_AssertFail
-_0200393A:
- sub r0, r7, #0x1
- cmp r0, #0x1
- bhi _02003952
- ldr r2, [r6, r4]
- lsl r1, r5, #0x1
- add r1, r2, r1
- ldr r2, [sp, #0x4]
- ldr r0, [sp, #0x0]
- sub r2, r2, r5
- lsl r2, r2, #0x1
- bl MIi_CpuClear16
-_02003952:
- cmp r7, #0x0
- beq _0200395A
- cmp r7, #0x2
- bne _0200396E
-_0200395A:
- add r1, r6, r4
- ldr r2, [r1, #0x4]
- lsl r1, r5, #0x1
- add r1, r2, r1
- ldr r2, [sp, #0x4]
- ldr r0, [sp, #0x0]
- sub r2, r2, r5
- lsl r2, r2, #0x1
- bl MIi_CpuClear16
-_0200396E:
- add sp, #0x8
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02003974
-FUN_02003974: ; 0x02003974
- push {r4-r7, lr}
- sub sp, #0xc
- str r0, [sp, #0x0]
- add r0, sp, #0x10
- ldrh r0, [r0, #0x10]
- str r1, [sp, #0x4]
- add r7, r2, #0x0
- lsl r1, r0, #0x1b
- lsr r1, r1, #0x1b
- mov r12, r1
- lsl r1, r0, #0x16
- lsl r0, r0, #0x11
- lsr r1, r1, #0x1b
- lsr r0, r0, #0x1b
- mov r2, #0x0
- mov lr, r1
- str r0, [sp, #0x8]
- cmp r7, #0x0
- bls _020039E2
-_0200399A:
- ldr r0, [sp, #0x0]
- lsl r6, r2, #0x1
- ldrh r4, [r0, r6]
- lsl r0, r4, #0x1b
- lsr r1, r0, #0x1b
- lsl r0, r4, #0x16
- lsl r4, r4, #0x11
- lsr r5, r4, #0x1b
- ldr r4, [sp, #0x8]
- lsr r0, r0, #0x1b
- sub r4, r4, r5
- mul r4, r3
- asr r4, r4, #0x4
- add r4, r5, r4
- lsl r5, r4, #0xa
- mov r4, r12
- sub r4, r4, r1
- mul r4, r3
- asr r4, r4, #0x4
- add r1, r1, r4
- mov r4, lr
- sub r4, r4, r0
- mul r4, r3
- asr r4, r4, #0x4
- add r0, r0, r4
- lsl r0, r0, #0x5
- orr r0, r1
- add r1, r5, #0x0
- orr r1, r0
- ldr r0, [sp, #0x4]
- strh r1, [r0, r6]
- add r0, r2, #0x1
- lsl r0, r0, #0x10
- lsr r2, r0, #0x10
- cmp r2, r7
- blo _0200399A
-_020039E2:
- add sp, #0xc
- pop {r4-r7, pc}
- .balign 4
-
- thumb_func_start FUN_020039E8
-FUN_020039E8: ; 0x020039E8
- push {r3-r7, lr}
- sub sp, #0x8
- add r7, r2, #0x0
- add r5, r0, #0x0
- mov r2, #0x14
- add r6, r1, #0x0
- mul r6, r2
- str r3, [sp, #0x4]
- ldr r1, [r5, r6]
- mov r0, #0x0
- add r4, r5, r6
- cmp r1, #0x0
- beq _02003A0A
- ldr r1, [r4, #0x4]
- cmp r1, #0x0
- beq _02003A0A
- mov r0, #0x1
-_02003A0A:
- cmp r0, #0x0
- bne _02003A12
- bl GF_AssertFail
-_02003A12:
- add r3, sp, #0x10
- ldrh r0, [r3, #0x14]
- add r2, r5, r6
- lsl r1, r7, #0x1
- str r0, [sp, #0x0]
- ldr r0, [r4, #0x0]
- ldr r2, [r2, #0x4]
- add r0, r0, r1
- add r1, r2, r1
- ldrb r3, [r3, #0x10]
- ldr r2, [sp, #0x4]
- bl FUN_02003974
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02003A30
-FUN_02003A30: ; 0x02003A30
- push {r3-r7, lr}
- sub sp, #0x8
- str r3, [sp, #0x4]
- add r5, r0, #0x0
- add r6, r1, #0x0
- add r4, r2, #0x0
- ldr r7, [sp, #0x20]
- beq _02003A60
-_02003A40:
- mov r0, #0x1
- tst r0, r4
- beq _02003A54
- str r7, [sp, #0x0]
- ldr r3, [sp, #0x4]
- add r0, r5, #0x0
- add r1, r6, #0x0
- mov r2, #0x10
- bl FUN_02003974
-_02003A54:
- lsl r0, r4, #0xf
- lsr r4, r0, #0x10
- add r6, #0x20
- add r5, #0x20
- cmp r4, #0x0
- bne _02003A40
-_02003A60:
- add sp, #0x8
- pop {r3-r7, pc}
-
- thumb_func_start FUN_02003A64
-FUN_02003A64: ; 0x02003A64
- push {r4-r7, lr}
- sub sp, #0xc
- str r3, [sp, #0x8]
- add r6, r0, #0x0
- add r7, r1, #0x0
- ldr r0, [sp, #0x20]
- add r5, r2, #0x0
- mov r1, #0x14
- add r2, r7, #0x0
- str r0, [sp, #0x20]
- mul r2, r1
- mov r4, #0x0
- ldr r1, [r6, r2]
- add r0, r4, #0x0
- cmp r1, #0x0
- beq _02003A8E
- add r1, r6, r2
- ldr r1, [r1, #0x4]
- cmp r1, #0x0
- beq _02003A8E
- mov r0, #0x1
-_02003A8E:
- cmp r0, #0x0
- bne _02003A96
- bl GF_AssertFail
-_02003A96:
- cmp r5, #0x0
- beq _02003AC0
-_02003A9A:
- mov r0, #0x1
- tst r0, r5
- beq _02003AB6
- ldr r0, [sp, #0x8]
- lsl r2, r4, #0x10
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x20]
- add r1, r7, #0x0
- str r0, [sp, #0x4]
- add r0, r6, #0x0
- lsr r2, r2, #0x10
- mov r3, #0x10
- bl FUN_020039E8
-_02003AB6:
- lsl r0, r5, #0xf
- lsr r5, r0, #0x10
- add r4, #0x10
- cmp r5, #0x0
- bne _02003A9A
-_02003AC0:
- add sp, #0xc
- pop {r4-r7, pc}
-
- thumb_func_start FUN_02003AC4
-FUN_02003AC4: ; 0x02003AC4
- push {r3-r7, lr}
- mov lr, r1
- mov r12, r2
- add r7, r3, #0x0
- mov r4, #0x0
- cmp r1, #0x0
- ble _02003B3C
- ldr r6, [sp, #0x18]
-_02003AD4:
- ldrh r3, [r0, #0x0]
- mov r1, #0x1f
- add r2, r3, #0x0
- asr r5, r3, #0xa
- and r2, r1
- and r5, r1
- mov r1, #0x1d
- mul r1, r5
- mov r5, #0x4c
- mul r5, r2
- asr r3, r3, #0x5
- mov r2, #0x1f
- and r3, r2
- mov r2, #0x97
- mul r2, r3
- add r2, r5, r2
- add r1, r1, r2
- asr r3, r1, #0x8
- mov r1, r12
- add r2, r1, #0x0
- mul r2, r3
- lsl r1, r2, #0x10
- lsr r1, r1, #0x10
- asr r2, r1, #0x8
- add r1, r7, #0x0
- mul r1, r3
- mul r3, r6
- lsl r1, r1, #0x10
- lsl r3, r3, #0x10
- lsr r1, r1, #0x10
- lsr r3, r3, #0x10
- asr r1, r1, #0x8
- asr r3, r3, #0x8
- cmp r2, #0x1f
- ble _02003B1C
- mov r2, #0x1f
-_02003B1C:
- cmp r1, #0x1f
- ble _02003B22
- mov r1, #0x1f
-_02003B22:
- cmp r3, #0x1f
- ble _02003B28
- mov r3, #0x1f
-_02003B28:
- lsl r3, r3, #0xa
- lsl r1, r1, #0x5
- orr r1, r3
- orr r1, r2
- strh r1, [r0, #0x0]
- add r4, r4, #0x1
- mov r1, lr
- add r0, r0, #0x2
- cmp r4, r1
- blt _02003AD4
-_02003B3C:
- pop {r3-r7, pc}
- .balign 4
-
- thumb_func_start FUN_02003B40
-FUN_02003B40: ; 0x02003B40
- push {r3-r5, lr}
- sub sp, #0x8
- add r5, r0, #0x0
- add r0, r1, #0x0
- add r1, r2, #0x0
- add r2, sp, #0x4
- bl GfGfxLoader_GetPlttData
- add r4, r0, #0x0
- bne _02003B58
- bl GF_AssertFail
-_02003B58:
- ldr r0, [sp, #0x1c]
- cmp r0, #0x0
- bne _02003B64
- ldr r0, [sp, #0x4]
- ldr r0, [r0, #0x8]
- str r0, [sp, #0x1c]
-_02003B64:
- ldr r0, [sp, #0x2c]
- ldr r2, [sp, #0x24]
- str r0, [sp, #0x0]
- ldr r0, [sp, #0x4]
- ldr r3, [sp, #0x28]
- ldr r0, [r0, #0xc]
- mov r1, #0x10
- bl FUN_02003AC4
- ldr r0, [sp, #0x1c]
- add r3, sp, #0x8
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- str r0, [sp, #0x0]
- ldr r1, [sp, #0x4]
- ldrh r3, [r3, #0x18]
- ldr r1, [r1, #0xc]
- ldr r2, [sp, #0x18]
- add r0, r5, #0x0
- bl FUN_02003054
- add r0, r4, #0x0
- bl FreeToHeap
- add sp, #0x8
- pop {r3-r5, pc}
diff --git a/arm9/asm/unk_02006D98.s b/arm9/asm/unk_02006D98.s
index 526c52c7..01721a1a 100644
--- a/arm9/asm/unk_02006D98.s
+++ b/arm9/asm/unk_02006D98.s
@@ -3724,7 +3724,7 @@ _020087E0:
add r1, r2, r1
ldrb r3, [r3, #0x0]
mov r2, #0x10
- bl FUN_02003974
+ bl BlendPalette
add r0, r4, #0x0
add r0, #0x6c
ldrh r0, [r0, #0x0]
@@ -3748,7 +3748,7 @@ _020087E0:
add r1, r2, r1
ldrb r3, [r3, #0x0]
mov r2, #0x10
- bl FUN_02003974
+ bl BlendPalette
_02008862:
add r0, r4, #0x0
add r0, #0x49
diff --git a/arm9/asm/unk_020142EC.s b/arm9/asm/unk_020142EC.s
index 5526b320..3a0426d5 100644
--- a/arm9/asm/unk_020142EC.s
+++ b/arm9/asm/unk_020142EC.s
@@ -23,7 +23,7 @@ FUN_020142EC: ; 0x020142EC
bne _02014320
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
str r0, [sp, #0x0]
ldr r0, _02014398 ; =FUN_020144E0
str r0, [r4, #0x4]
@@ -31,7 +31,7 @@ FUN_020142EC: ; 0x020142EC
_02014320:
add r0, r5, #0x0
mov r1, #0x1
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
str r0, [sp, #0x0]
ldr r0, _0201439C ; =FUN_020144FC
str r0, [r4, #0x4]
@@ -288,6 +288,6 @@ FUN_020144E0: ; 0x020144E0
mov r2, #0x0
lsl r3, r3, #0x14
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, pc}
.balign 4
diff --git a/arm9/asm/unk_020144FC.s b/arm9/asm/unk_020144FC.s
index e3677eca..9d52898d 100644
--- a/arm9/asm/unk_020144FC.s
+++ b/arm9/asm/unk_020144FC.s
@@ -15,7 +15,7 @@ FUN_020144FC: ; 0x020144FC
mov r2, #0x1
lsl r3, r3, #0x14
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, pc}
.balign 4
diff --git a/arm9/asm/unk_0206C700.s b/arm9/asm/unk_0206C700.s
index e742f202..90e19c61 100644
--- a/arm9/asm/unk_0206C700.s
+++ b/arm9/asm/unk_0206C700.s
@@ -94,24 +94,24 @@ FUN_0206C700: ; 0x0206C700
mov r1, #0x0
lsl r2, r2, #0x8
add r3, r5, #0x0
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #0x1
ldr r0, [r4, #0x14]
lsl r2, r1, #0x9
add r3, r5, #0x0
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #0x7
ldr r0, [r4, #0x14]
mov r1, #0x2
lsl r2, r2, #0x6
add r3, r5, #0x0
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #0x2
ldr r0, [r4, #0x14]
mov r1, #0x3
lsl r2, r2, #0x8
add r3, r5, #0x0
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0x0
bl BgConfig_Alloc
str r0, [r4, #0x0]
@@ -300,16 +300,16 @@ FUN_0206C92C: ; 0x0206C92C
bl WindowArray_dtor
ldr r0, [r4, #0x14]
mov r1, #0x0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
mov r1, #0x3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x14]
bl FUN_02002FEC
ldr r0, [r4, #0x18]
@@ -2386,7 +2386,7 @@ _0206DA26:
ldr r3, [r5, #0x5c]
mov r1, #0x76
mov r2, #0x8
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r6, #0x0
bl FUN_0200CD64
add r2, r0, #0x0
@@ -2399,7 +2399,7 @@ _0206DA26:
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0x26
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x20
@@ -2410,7 +2410,7 @@ _0206DA26:
ldr r3, [r5, #0x5c]
mov r1, #0xe
mov r2, #0x7
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r5, #0x5c]
mov r1, #0x2
str r0, [sp, #0x0]
@@ -2429,7 +2429,7 @@ _0206DA26:
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
mov r1, #0x26
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
str r0, [sp, #0x4]
@@ -2464,7 +2464,7 @@ _0206DA26:
ldr r0, [r5, #0x14]
ldr r3, [r5, #0x5c]
add r2, r1, #0x0
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x1
lsl r0, r0, #0x1a
ldr r1, [r0, #0x0]
diff --git a/arm9/asm/unk_020859C0.s b/arm9/asm/unk_020859C0.s
index 162a8aca..c6e0a621 100644
--- a/arm9/asm/unk_020859C0.s
+++ b/arm9/asm/unk_020859C0.s
@@ -306,21 +306,21 @@ _02085A9A:
mov r1, #0x0
lsl r2, r2, #0x8
mov r3, #0x35
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r4, #0x0
add r0, #0xe8
mov r1, #0x1
ldr r0, [r0, #0x0]
lsl r2, r1, #0x9
mov r3, #0x35
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r4, #0x0
add r0, #0xe8
mov r1, #0x2
ldr r0, [r0, #0x0]
lsl r2, r1, #0x8
mov r3, #0x35
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r4, #0x0
add r0, #0xe8
mov r2, #0x2
@@ -328,7 +328,7 @@ _02085A9A:
mov r1, #0x3
lsl r2, r2, #0x8
mov r3, #0x35
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
@@ -510,22 +510,22 @@ FUN_02085C08: ; 0x02085C08
add r0, #0xe8
ldr r0, [r0, #0x0]
mov r1, #0x0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0x0
add r0, #0xe8
ldr r0, [r0, #0x0]
mov r1, #0x1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0x0
add r0, #0xe8
ldr r0, [r0, #0x0]
mov r1, #0x2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0x0
add r0, #0xe8
ldr r0, [r0, #0x0]
mov r1, #0x3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0x0
add r0, #0xe8
ldr r0, [r0, #0x0]
diff --git a/arm9/asm/unk_02086084.s b/arm9/asm/unk_02086084.s
index d110b7f1..3d88cc10 100644
--- a/arm9/asm/unk_02086084.s
+++ b/arm9/asm/unk_02086084.s
@@ -68,23 +68,23 @@ FUN_02086084: ; 0x02086084
mov r1, #0x0
lsl r2, r2, #0x8
mov r3, #0x47
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #0x2
ldr r0, [r4, #0x8]
lsl r2, r1, #0x8
mov r3, #0x47
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #0x1
ldr r0, [r4, #0x8]
lsl r2, r1, #0x9
mov r3, #0x47
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #0x2
ldr r0, [r4, #0x8]
mov r1, #0x3
lsl r2, r2, #0x8
mov r3, #0x47
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
bl FUN_02086414
bl FUN_0208643C
bl FUN_0208650C
@@ -183,16 +183,16 @@ FUN_020861DC: ; 0x020861DC
bl GX_EngineBToggleLayers
ldr r0, [r4, #0x8]
mov r1, #0x0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x8]
mov r1, #0x2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x8]
mov r1, #0x1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x8]
mov r1, #0x3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x8]
bl FUN_02002FEC
ldr r0, [r4, #0x4]
diff --git a/arm9/asm/unk_02086414.s b/arm9/asm/unk_02086414.s
index f01e84e2..e041eec2 100644
--- a/arm9/asm/unk_02086414.s
+++ b/arm9/asm/unk_02086414.s
@@ -472,7 +472,7 @@ FUN_020866FC: ; 0x020866FC
add r0, r4, #0x0
mov r1, #0x26
mov r3, #0x47
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x47
@@ -493,7 +493,7 @@ FUN_020866FC: ; 0x020866FC
add r0, r4, #0x0
mov r1, #0x26
mov r3, #0x47
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x0
str r0, [sp, #0x0]
mov r0, #0x20
@@ -504,7 +504,7 @@ FUN_020866FC: ; 0x020866FC
mov r1, #0xe
mov r2, #0x7
mov r3, #0x47
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0xc
pop {r3-r6, pc}
@@ -793,7 +793,7 @@ FUN_0208699C: ; 0x0208699C
mov r1, #0x76
mov r2, #0x8
mov r3, #0x47
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r3-r5, pc}
.balign 4
@@ -838,7 +838,7 @@ FUN_020869F0: ; 0x020869F0
add r0, r4, #0x0
add r2, r1, #0x0
mov r3, #0x47
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r3-r5, pc}
diff --git a/arm9/global.inc b/arm9/global.inc
index fb7fe343..086d9b5f 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -245,25 +245,25 @@
.extern FUN_02002F9C
.extern FUN_02002FD0
.extern FUN_02002FEC
-.extern FUN_02003008
-.extern FUN_02003038
-.extern FUN_02003054
-.extern FUN_02003084
-.extern FUN_020030E8
+.extern PaletteData_AllocBuffers
+.extern PaletteData_FreeBuffers
+.extern PaletteData_LoadPalette
+.extern PaletteData_LoadFromNarc
+.extern PaletteData_LoadNarc
.extern FUN_02003108
-.extern FUN_0200317C
-.extern FUN_020031B8
-.extern FUN_020031FC
-.extern FUN_02003204
+.extern CopyPaletteFromNarc
+.extern PaletteData_CopyPalette
+.extern PaletteData_GetUnfadedBuf
+.extern PaletteData_GetFadedBuf
.extern FUN_02003210
.extern FUN_0200372C
.extern FUN_020038E4
.extern FUN_020038F0
-.extern FUN_02003914
-.extern FUN_02003974
-.extern FUN_020039E8
-.extern FUN_02003A30
-.extern FUN_02003A64
+.extern PaletteData_FillPalette
+.extern BlendPalette
+.extern BlendPaletteUnfaded
+.extern BlendPalettes
+.extern BlendPalettesUnfaded
.extern FUN_02003B40
.extern InitSoundData
.extern DoSoundUpdateFrame
diff --git a/arm9/modules/05/asm/mod05_021E3444.s b/arm9/modules/05/asm/mod05_021E3444.s
index 9bd14da2..0537d0db 100644
--- a/arm9/modules/05/asm/mod05_021E3444.s
+++ b/arm9/modules/05/asm/mod05_021E3444.s
@@ -1474,7 +1474,7 @@ MOD05_021E3F68: ; 0x021E3F68
ldr r0, [sp, #4]
add r3, r7, #0
ldr r0, [r0, #0xc]
- bl FUN_02003974
+ bl BlendPalette
add r0, r6, #0
add r1, r5, #0
mov r2, #0x20
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 234e29fe..dbf02f8d 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -156,7 +156,7 @@ MOD07_02211F34: ; 0x02211F34
mov r1, #0
ldr r3, [r3, #0x24]
mov r2, #0x60
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
ldr r0, _02211FEC ; =0x00000B82
mov r3, #0
strb r3, [r4, r0]
@@ -1641,7 +1641,7 @@ _02212BA8:
bl FUN_0201C29C
ldr r0, [r4, #8]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #8]
bl FUN_02002FEC
ldr r0, [r4]
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index 4a0a6d1c..1cc36e88 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -35,7 +35,7 @@ MOD08_02211E7C: ; 0x02211E7C
add r0, r5, #0
add r2, r4, #0
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, r4, r5, pc}
.align 2, 0
@@ -3185,7 +3185,7 @@ _02213500:
ldr r1, [sp, #0x14]
ldr r2, [sp, #0x10]
ldr r3, [r5]
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -3650,7 +3650,7 @@ _022138F0:
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
ldr r3, [r4]
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
_02213926:
ldr r0, [sp, #0xc]
lsl r5, r0, #2
@@ -4160,7 +4160,7 @@ MOD08_02213C94: ; 0x02213C94
ldr r0, [r0]
ldr r3, [r5]
mov r1, #7
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r5, #0
add r0, #0xc4
lsl r1, r4, #0x18
@@ -4663,7 +4663,7 @@ _02214078:
ldr r1, [r3, r1]
ldr r2, [r3, r2]
ldr r3, [r3]
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
_022140CC:
ldr r2, [r4, #0x48]
mov r0, #0
@@ -4754,7 +4754,7 @@ _02214142:
ldr r0, [r0]
add r2, #0x64
mov r3, #0x10
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
b _022141B8
_02214180:
mov r3, #0
@@ -4782,7 +4782,7 @@ _02214180:
ldr r0, [r0]
add r2, #0x64
mov r3, #0x10
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
_022141B8:
ldrb r0, [r4, #5]
add r0, r0, #1
@@ -4917,7 +4917,7 @@ _02214286:
ldr r0, [r0]
lsr r2, r2, #0x10
mov r3, #0x10
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
b _022142FA
_022142C2:
mov r3, #0
@@ -4945,7 +4945,7 @@ _022142C2:
mov r1, #0
lsr r2, r2, #0x10
mov r3, #0x10
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
_022142FA:
ldrb r0, [r4, #5]
add r0, r0, #1
@@ -5039,7 +5039,7 @@ _0221436A:
ldr r1, [r3, r1]
ldr r2, [r3, r2]
ldr r3, [r3]
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
_022143BE:
ldr r2, [r4, #0x48]
mov r0, #0
@@ -7574,7 +7574,7 @@ MOD08_02215660: ; 0x02215660
mov r2, #0
ldr r0, [r0]
add r3, r2, #0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, pc}
thumb_func_start MOD08_02215680
@@ -7875,7 +7875,7 @@ _022158C2:
ldr r1, [sp, #0x20]
ldr r2, [sp, #0x1c]
ldr r3, [r4]
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
_022158EC:
ldr r0, [sp, #0x24]
add r7, r7, #4
@@ -14563,7 +14563,7 @@ MOD08_02218A84: ; 0x02218A84
ldrh r3, [r4, #0xe]
ldr r0, [r4, #0x18]
ldr r1, [r4, #8]
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldrb r3, [r4, #0x13]
ldrb r1, [r4, #0x14]
cmp r1, r3
@@ -14728,7 +14728,7 @@ MOD08_02218BD4: ; 0x02218BD4
add r5, r0, #0
bl MOD08_02215504
mov r1, #0
- bl FUN_02003204
+ bl PaletteData_GetFadedBuf
add r4, r0, #0
add r0, r5, #0
bl MOD08_02212004
@@ -14763,7 +14763,7 @@ MOD08_02218C04: ; 0x02218C04
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020031B8
+ bl PaletteData_CopyPalette
add sp, #8
pop {r3, r4, r5, pc}
_02218C30:
@@ -14775,7 +14775,7 @@ _02218C30:
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_020031B8
+ bl PaletteData_CopyPalette
add sp, #8
pop {r3, r4, r5, pc}
@@ -15602,7 +15602,7 @@ _02219228:
ldr r0, [r4, #0x34]
mov r1, #7
add r2, r6, #0
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r4, #0x30]
mov r1, #2
bl BgClearTilemapBufferAndCommit
@@ -16006,7 +16006,7 @@ _02219550:
ldr r0, [r4, #0x34]
mov r1, #7
add r2, r6, #0
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r4, #0x30]
mov r1, #2
bl BgClearTilemapBufferAndCommit
@@ -26031,7 +26031,7 @@ _0221E796:
mov r2, #0xff
mov r3, #0xa
str r1, [sp]
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
b _0221E7DA
_0221E7C8:
bl MOD08_02215504
@@ -26040,7 +26040,7 @@ _0221E7C8:
str r1, [sp]
mov r1, #0
mov r3, #0xa
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
_0221E7DA:
mov r0, #3
strb r0, [r4, #3]
@@ -26085,7 +26085,7 @@ _0221E810:
mov r2, #0xff
add r3, r1, #0
str r1, [sp]
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
_0221E832:
mov r6, #0
add r5, r4, #0
@@ -34520,7 +34520,7 @@ _02222DA6:
ldr r0, [r4, #0x18]
lsl r2, r2, #8
mov r3, #8
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
ldr r0, [r4]
ldr r1, _02222E18 ; =MOD08_02222BF4
add r2, r4, #0
@@ -38691,7 +38691,7 @@ MOD08_02224F74: ; 0x02224F74
mov r1, #2
lsr r2, r2, #0x10
mov r3, #8
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
add sp, #4
pop {r3, r4, pc}
.align 2, 0
@@ -42756,7 +42756,7 @@ MOD08_02227068: ; 0x02227068
ldr r1, [r5]
ldr r2, [r2, r3]
add r3, r6, #0
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
lsl r1, r4, #0x18
ldr r0, [r5, #0x2c]
lsr r1, r1, #0x18
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 07d0fa04..c5b40b5e 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2219,12 +2219,12 @@ MOD09_02212F8C: ; 0x02212F8C
ldr r3, [r3, #0xc]
mov r1, #0x48
mov r2, #0x17
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x7a
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r2, r0, #0
ldr r0, _02213134 ; =0x00001F60
mov r1, #6
@@ -2246,7 +2246,7 @@ MOD09_02212F8C: ; 0x02212F8C
ldr r3, [r3, #0xc]
mov r1, #0xe
mov r2, #6
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
mov r0, #0x20
@@ -2259,7 +2259,7 @@ MOD09_02212F8C: ; 0x02212F8C
ldr r3, [r3, #0xc]
mov r1, #0xe
mov r2, #7
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r5]
ldr r0, [r0, #8]
bl MOD11_02230E44
@@ -2295,12 +2295,12 @@ MOD09_02212F8C: ; 0x02212F8C
ldr r0, [r5, r0]
ldr r3, [r3, #0xc]
mov r1, #0x26
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x7a
lsl r0, r0, #2
ldr r0, [r5, r0]
mov r1, #1
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r5]
mov r1, #0x20
@@ -2343,7 +2343,7 @@ MOD09_02212F8C: ; 0x02212F8C
str r0, [sp]
ldr r0, [r5, r2]
mov r2, #1
- bl FUN_02003054
+ bl PaletteData_LoadPalette
add r0, r4, #0
bl FreeToHeap
add sp, #0x14
@@ -12567,7 +12567,7 @@ MOD09_02218640: ; 0x02218640
add r1, r2, r1
mov r2, #1
mov r3, #0xc0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, pc}
_02218662:
mov r0, #0x20
@@ -12579,7 +12579,7 @@ _02218662:
add r1, r2, r1
mov r2, #1
mov r3, #0xc0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
pop {r3, pc}
nop
_0221867C: .word 0x00001F60
@@ -14029,7 +14029,7 @@ MOD09_022191C0: ; 0x022191C0
ldr r3, [r3, #0xc]
mov r1, #0x4d
mov r2, #3
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
mov r0, #0x20
@@ -14041,7 +14041,7 @@ MOD09_022191C0: ; 0x022191C0
ldr r3, [r3, #0xc]
mov r1, #0xe
mov r2, #7
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r5]
ldr r0, [r0]
bl MOD11_02230E44
@@ -14073,7 +14073,7 @@ MOD09_022191C0: ; 0x022191C0
ldr r0, [r5, #8]
ldr r3, [r3, #0xc]
mov r1, #0x26
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x14
pop {r4, r5, pc}
.align 2, 0
@@ -15664,7 +15664,7 @@ MOD09_02219F24: ; 0x02219F24
ldr r0, [r5, #8]
ldr r3, [r3, #0xc]
mov r1, #0x10
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0xc
pop {r4, r5, pc}
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index 23f0a76c..1040df95 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -545,7 +545,7 @@ _0222D99A:
add r2, r3, r2
mov r1, #7
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r4, #0
bl FUN_0200CD64
add r2, r0, #0
@@ -558,7 +558,7 @@ _0222D99A:
ldr r0, [r5, #0x28]
mov r1, #0x26
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -569,7 +569,7 @@ _0222D99A:
mov r1, #0xe
mov r2, #7
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -723,24 +723,24 @@ MOD11_0222DB50: ; 0x0222DB50
mov r1, #0
lsl r2, r2, #8
mov r3, #5
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #1
ldr r0, [r4, #0x28]
lsl r2, r1, #9
mov r3, #5
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #7
ldr r0, [r4, #0x28]
mov r1, #2
lsl r2, r2, #6
mov r3, #5
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #2
ldr r0, [r4, #0x28]
mov r1, #3
lsl r2, r2, #8
mov r3, #5
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r0, #5
bl BgConfig_Alloc
str r0, [r4, #4]
@@ -911,14 +911,14 @@ _0222DC42:
str r0, [r4, #0x18]
ldr r0, [r4, #0x28]
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
ldr r1, _0222DF24 ; =0x00002224
mov r2, #0xe0
add r1, r4, r1
bl MIi_CpuCopy16
ldr r0, [r4, #0x28]
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
ldr r1, _0222DF28 ; =0x00002304
mov r2, #0xe0
add r1, r4, r1
@@ -942,7 +942,7 @@ _0222DC42:
mov r2, #2
lsl r3, r3, #0x10
lsr r3, r3, #0x10
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r0, #0xc0
str r0, [sp]
add r0, #0x40
@@ -960,7 +960,7 @@ _0222DC42:
lsl r3, r3, #0x10
mov r2, #2
lsr r3, r3, #0x10
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r0, #0
str r0, [sp]
mov r0, #0xdf
@@ -978,7 +978,7 @@ _0222DC42:
add r2, r1, #0
lsl r3, r3, #0x10
lsr r3, r3, #0x10
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r1, #0
mov r0, #0xa0
str r0, [sp]
@@ -987,7 +987,7 @@ _0222DC42:
ldr r0, [r4, #0x28]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r2, #0
str r2, [sp]
mov r0, #0xff
@@ -995,7 +995,7 @@ _0222DC42:
ldr r0, [r4, #0x28]
ldr r3, _0222DF30 ; =0x0000FFFF
mov r1, #1
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r2, #0
str r2, [sp]
mov r0, #0xff
@@ -1003,7 +1003,7 @@ _0222DC42:
ldr r0, [r4, #0x28]
ldr r3, _0222DF30 ; =0x0000FFFF
mov r1, #3
- bl FUN_02003914
+ bl PaletteData_FillPalette
ldr r0, [r4, #0x28]
mov r1, #0
mov r2, #0xb
@@ -1290,16 +1290,16 @@ _0222E10A:
bl FreeToHeap
ldr r0, [r4, #0x28]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x28]
mov r1, #1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x28]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x28]
mov r1, #3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x28]
bl FUN_02002FEC
ldr r0, [r4, #0xc]
@@ -1565,7 +1565,7 @@ _0222E2F0:
mov r1, #7
add r2, r2, r6
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r7, #0
bl FUN_0200CD64
add r2, r0, #0
@@ -1578,7 +1578,7 @@ _0222E2F0:
ldr r0, [r5, #0x28]
mov r1, #0x26
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -1589,7 +1589,7 @@ _0222E2F0:
mov r1, #0xe
mov r2, #7
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index 9b184cfc..1905bce4 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -30,7 +30,7 @@ MOD11_0222F29C: ; 0x0222F29C
mov r1, #0
lsl r2, r2, #8
mov r3, #5
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #0
mov r0, #1
str r1, [sp]
@@ -39,7 +39,7 @@ MOD11_0222F29C: ; 0x0222F29C
ldr r0, [r5, #0xc]
mov r2, #2
add r3, r1, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r0, #5
bl BgConfig_Alloc
str r0, [r5, #4]
@@ -142,7 +142,7 @@ _0222F30E:
mov r1, #0xe
mov r2, #7
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r4, #0
bl FUN_0200CD64
add r2, r0, #0
@@ -155,7 +155,7 @@ _0222F30E:
ldr r0, [r5, #0xc]
mov r1, #0x26
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r1, #0
mov r0, #1
str r1, [sp]
@@ -164,7 +164,7 @@ _0222F30E:
ldr r0, [r5, #0xc]
add r2, r1, #0
add r3, r1, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
bl GX_BothDispOn
mov r0, #0x10
mov r1, #1
@@ -805,7 +805,7 @@ MOD11_0222F93C: ; 0x0222F93C
bl FUN_0200E3A0
ldr r0, [r4, #0xc]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0xc]
bl FUN_02002FEC
ldr r0, [r4, #8]
@@ -3859,7 +3859,7 @@ MOD11_02230FCC: ; 0x02230FCC
ldr r5, [r4, r0]
ldr r0, [r4, #0x28]
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
mov r2, #2
add r1, r5, #0
lsl r2, r2, #8
@@ -23844,7 +23844,7 @@ _0223AC50:
add r0, r7, #0
mov r1, #0x26
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #7
str r0, [sp]
mov r0, #0xe
@@ -73745,7 +73745,7 @@ _0225319A:
bne _02253286
add r0, r5, #0
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r7, r0, #0
ldr r0, [r4]
bl MOD11_02231244
@@ -73758,7 +73758,7 @@ _0225319A:
bne _022531DC
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r7, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73773,7 +73773,7 @@ _022531DC:
tst r0, r1
beq _02253200
add r0, r5, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r7, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73789,7 +73789,7 @@ _02253200:
beq _02253226
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r7, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73800,7 +73800,7 @@ _02253200:
_02253226:
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r7, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73897,7 +73897,7 @@ _022532E4:
_022532F6:
add r0, r5, #0
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r4]
bl MOD11_02231244
@@ -73910,7 +73910,7 @@ _022532F6:
bne _02253332
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73925,7 +73925,7 @@ _02253332:
tst r0, r1
beq _02253356
add r0, r5, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73941,7 +73941,7 @@ _02253356:
beq _0225337C
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -73952,7 +73952,7 @@ _02253356:
_0225337C:
add r0, r5, #0
mov r1, #2
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r6, r0, #0
ldr r0, [r4]
bl MOD11_02231250
@@ -83966,7 +83966,7 @@ _022580F2:
add r2, #0xf
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_02258112:
@@ -83995,7 +83995,7 @@ _0225812A:
add r2, #0xf
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
_0225814A:
@@ -84214,7 +84214,7 @@ _02258288:
add r2, r2, r3
ldrh r2, [r5, r2]
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
ldr r0, [sp, #0x20]
@@ -84523,10 +84523,10 @@ _0225854E:
mov r1, #7
mov r2, #0xc3
mov r3, #5
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [sp, #0x10]
mov r1, #1
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
mov r2, #2
ldr r1, [r6, #0x58]
lsl r2, r2, #8
@@ -84881,7 +84881,7 @@ _02258874:
ldr r1, [r7, #0x58]
mov r2, #1
mov r3, #0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
ldr r6, [sp, #0x2c]
mov r4, #0
_0225889A:
@@ -89160,7 +89160,7 @@ _0225AB62:
add r0, r6, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
add r4, r4, #1
_0225AB96:
cmp r4, #4
@@ -89215,7 +89215,7 @@ MOD11_0225ABA4: ; 0x0225ABA4
add r0, r7, #0
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
add r0, r6, #0
mov r1, #4
bl ScheduleBgTilemapBufferTransfer
@@ -90735,7 +90735,7 @@ MOD11_0225B794: ; 0x0225B794
ldr r0, _0225B81C ; =0x00007FFF
str r0, [sp, #4]
add r0, r4, #0
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldr r1, _0225B820 ; =0x000006A8
_0225B7C8:
ldrb r0, [r5, r1]
@@ -90805,7 +90805,7 @@ MOD11_0225B824: ; 0x0225B824
bne _0225B8A8
add r0, r4, #0
mov r1, #1
- bl FUN_02003204
+ bl PaletteData_GetFadedBuf
add r4, r0, #0
ldr r0, _0225B8AC ; =gMain + 0x40
ldrh r0, [r0, #0x22]
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 5cb61425..53833b86 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -76,24 +76,24 @@ MOD12_0222D5C0: ; 0x0222D5C0
mov r1, #0
lsl r2, r2, #8
mov r3, #0x15
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #1
ldr r0, [r4, #0x5c]
lsl r2, r1, #9
mov r3, #0x15
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #7
ldr r0, [r4, #0x5c]
mov r1, #2
lsl r2, r2, #6
mov r3, #0x15
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #2
ldr r0, [r4, #0x5c]
mov r1, #3
lsl r2, r2, #8
mov r3, #0x15
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r0, #0x15
bl BgConfig_Alloc
str r0, [r4, #0x30]
@@ -483,16 +483,16 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl FUN_020117BC
ldr r0, [r4, #0x5c]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x5c]
mov r1, #1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x5c]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x5c]
mov r1, #3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x5c]
bl FUN_02002FEC
ldr r0, [r4, #0x58]
@@ -1164,7 +1164,7 @@ MOD12_0222DFC4: ; 0x0222DFC4
mov r1, #0x2d
mov r2, #0x1d
mov r3, #0x15
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x15
mov r1, #0x20
bl AllocFromHeap
@@ -1175,11 +1175,11 @@ MOD12_0222DFC4: ; 0x0222DFC4
str r0, [sp, #0x10]
ldr r0, [r5, #0x5c]
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
add r4, r0, #0
ldr r0, [r5, #0x5c]
mov r1, #0
- bl FUN_02003204
+ bl PaletteData_GetFadedBuf
str r0, [sp, #0x14]
ldr r0, _0222E0EC ; =MOD12_022451D0
add r1, r7, #0
@@ -3211,24 +3211,24 @@ MOD12_0222EF04: ; 0x0222EF04
mov r1, #0
lsl r2, r2, #8
mov r3, #0x16
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #1
ldr r0, [r5, #0x50]
lsl r2, r1, #9
mov r3, #0x16
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #7
ldr r0, [r5, #0x50]
mov r1, #2
lsl r2, r2, #6
mov r3, #0x16
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r2, #2
ldr r0, [r5, #0x50]
mov r1, #3
lsl r2, r2, #8
mov r3, #0x16
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r0, #0x16
bl BgConfig_Alloc
str r0, [r5, #0x30]
@@ -3311,7 +3311,7 @@ MOD12_0222EF04: ; 0x0222EF04
ldr r0, [r5, #0x50]
ldr r3, _0222F17C ; =0x00007FFF
add r2, r1, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r1, #1
add r0, r1, #0
str r1, [sp]
@@ -3320,7 +3320,7 @@ MOD12_0222EF04: ; 0x0222EF04
ldr r0, [r5, #0x50]
ldr r3, _0222F17C ; =0x00007FFF
mov r2, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r2, #0
str r2, [sp]
mov r0, #0xe0
@@ -3328,7 +3328,7 @@ MOD12_0222EF04: ; 0x0222EF04
ldr r0, [r5, #0x50]
ldr r3, _0222F17C ; =0x00007FFF
mov r1, #2
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r2, #0
mov r0, #1
str r2, [sp]
@@ -3337,7 +3337,7 @@ MOD12_0222EF04: ; 0x0222EF04
ldr r0, [r5, #0x50]
ldr r3, _0222F17C ; =0x00007FFF
mov r1, #3
- bl FUN_02003914
+ bl PaletteData_FillPalette
bl FUN_02033E74
mov r0, #6
str r0, [sp]
@@ -3654,16 +3654,16 @@ _0222F3AE:
bl FUN_02002CF8
ldr r0, [r4, #0x50]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x50]
mov r1, #1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x50]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x50]
mov r1, #3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x50]
bl FUN_02002FEC
ldr r0, [r4, #0x48]
@@ -4209,7 +4209,7 @@ MOD12_0222F834: ; 0x0222F834
mov r1, #0x2d
mov r2, #0x22
mov r3, #0x16
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -4220,7 +4220,7 @@ MOD12_0222F834: ; 0x0222F834
mov r1, #0x2d
mov r2, #0x23
mov r3, #0x16
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r1, [r5]
ldr r0, _0222F930 ; =0x00001988
ldr r0, [r1, r0]
@@ -4248,7 +4248,7 @@ MOD12_0222F834: ; 0x0222F834
ldr r0, [r5, #0x50]
mov r1, #0x26
mov r3, #0x16
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -4283,7 +4283,7 @@ MOD12_0222F834: ; 0x0222F834
mov r1, #0x2d
mov r2, #0x24
mov r3, #0x16
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -4332,7 +4332,7 @@ MOD12_0222F938: ; 0x0222F938
mov r1, #0x2d
mov r2, #0x21
mov r3, #0x16
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r4, pc}
@@ -5058,14 +5058,14 @@ MOD12_0222FE4C: ; 0x0222FE4C
mov r1, #0
lsl r2, r2, #8
mov r3, #0x17
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xa4
mov r1, #1
ldr r0, [r0]
lsl r2, r1, #9
mov r3, #0x17
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xa4
mov r2, #7
@@ -5073,7 +5073,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
mov r1, #2
lsl r2, r2, #6
mov r3, #0x17
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xa4
mov r2, #2
@@ -5081,7 +5081,7 @@ MOD12_0222FE4C: ; 0x0222FE4C
mov r1, #3
lsl r2, r2, #8
mov r3, #0x17
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r1, #2
mov r0, #0x17
lsl r1, r1, #8
@@ -5484,22 +5484,22 @@ _02230296:
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xa4
ldr r0, [r0]
@@ -5670,7 +5670,7 @@ MOD12_022304B0: ; 0x022304B0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
- bl FUN_02003204
+ bl PaletteData_GetFadedBuf
add r4, r0, #0
mov r2, #2
ldr r0, [r5]
@@ -5689,7 +5689,7 @@ MOD12_022304B0: ; 0x022304B0
asr r3, r3, #8
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02003A30
+ bl BlendPalettes
ldrh r3, [r5, #0xa]
ldrh r1, [r5, #8]
cmp r1, r3
@@ -6207,7 +6207,7 @@ MOD12_022308F0: ; 0x022308F0
mov r1, #0x2d
mov r2, #0x1f
mov r3, #0x17
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -6220,7 +6220,7 @@ MOD12_022308F0: ; 0x022308F0
mov r1, #0x2d
mov r2, #0x23
mov r3, #0x17
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r1, [r5]
ldr r0, _022309C4 ; =0x00001988
ldr r0, [r1, r0]
@@ -6250,14 +6250,14 @@ MOD12_022308F0: ; 0x022308F0
ldr r0, [r0]
mov r1, #0x26
mov r3, #0x17
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r5, #0
bl MOD12_0223E734
add r0, r5, #0
add r0, #0xa4
ldr r0, [r0]
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
ldr r1, _022309C8 ; =0x0000110C
mov r2, #2
ldr r1, [r5, r1]
@@ -8479,10 +8479,10 @@ _02231A98:
add r0, r6, #0
mov r1, #0x2d
mov r3, #0x15
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add r0, r6, #0
mov r1, #1
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
lsl r1, r5, #2
add r1, r4, r1
ldr r1, [r1, #0x34]
@@ -8607,7 +8607,7 @@ _02231B90:
add r1, r7, r1
ldr r1, [r1, #0x34]
mov r3, #0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
ldr r6, [sp, #0x14]
ldr r4, [sp, #0x10]
mov r5, #0
@@ -8910,7 +8910,7 @@ MOD12_02231D5C: ; 0x02231D5C
str r0, [sp, #0xc]
ldr r0, [r2, #0x50]
mov r2, #0x25
- bl FUN_02003084
+ bl PaletteData_LoadFromNarc
add sp, #0x1c
pop {r3, r4, r5, r6, pc}
nop
@@ -9143,7 +9143,7 @@ _02231FC0:
ldr r0, [r0, #0x50]
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
ldr r0, _022320A0 ; =0x000002E1
ldrb r0, [r6, r0]
cmp r0, #0xff
@@ -9927,7 +9927,7 @@ MOD12_022325AC: ; 0x022325AC
ldr r1, [r7, r1]
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_022325EC:
@@ -9953,7 +9953,7 @@ _022325EC:
ldr r0, [r0, #0x50]
mov r2, #1
lsr r3, r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -10644,7 +10644,7 @@ _02232B46:
mov r3, #0x10
lsl r2, r2, #0x14
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
cmp r4, #1
bne _02232B70
add r0, r5, #0
@@ -12129,7 +12129,7 @@ MOD12_02233648: ; 0x02233648
add r2, r2, #1
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
mov r1, #8
ldrsh r2, [r4, r1]
cmp r2, #0
@@ -15894,7 +15894,7 @@ _02235402:
str r0, [sp, #4]
ldr r0, [r4]
ldr r0, [r0, #0x5c]
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
add sp, #0x10
pop {r3, r4, r5, pc}
_0223541C:
@@ -15922,7 +15922,7 @@ _02235438:
str r0, [sp, #4]
ldr r0, [r4]
ldr r0, [r0, #0x5c]
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
add sp, #0x10
pop {r3, r4, r5, pc}
_02235452:
@@ -25922,14 +25922,14 @@ _02239E14:
ldr r2, _02239E8C ; =0x00001FFF
ldr r0, [r0, #0x50]
add r3, r1, #0
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
mov r3, #0
str r3, [sp]
ldr r0, [r4]
ldr r2, _02239E90 ; =0x00003FFF
ldr r0, [r0, #0x50]
mov r1, #2
- bl FUN_02003A64
+ bl BlendPalettesUnfaded
ldr r0, _02239E94 ; =0x000006EC
bl PlaySE
ldrb r0, [r4, #0x10]
@@ -28300,7 +28300,7 @@ _0223B06C:
add r2, r1, #0
ldr r0, [r0, #0x50]
add r3, r1, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r2, #0
str r2, [sp]
mov r0, #0xe0
@@ -28309,7 +28309,7 @@ _0223B06C:
mov r1, #2
ldr r0, [r0, #0x50]
add r3, r2, #0
- bl FUN_02003914
+ bl PaletteData_FillPalette
ldrb r0, [r4, #0x10]
add sp, #8
add r0, r0, #1
@@ -29079,7 +29079,7 @@ MOD12_0223B4F8: ; 0x0223B4F8
mov r1, #0x1e
mov r2, #0x17
lsl r3, r3, #8
- bl FUN_0200317C
+ bl CopyPaletteFromNarc
ldr r0, [r4, #4]
mov r2, #0x17
ldr r1, [r0]
@@ -29096,7 +29096,7 @@ MOD12_0223B4F8: ; 0x0223B4F8
add r0, #0x40
str r0, [sp, #4]
mov r0, #0x2d
- bl FUN_0200317C
+ bl CopyPaletteFromNarc
mov r0, #0
mov r1, #0x20
add r4, #0xf0
@@ -29106,7 +29106,7 @@ MOD12_0223B4F8: ; 0x0223B4F8
str r0, [sp, #4]
mov r0, #0x2d
lsl r3, r1, #4
- bl FUN_0200317C
+ bl CopyPaletteFromNarc
add sp, #0x10
pop {r3, r4, r5, pc}
.align 2, 0
@@ -29230,7 +29230,7 @@ _0223B7D6:
ldr r1, [r1]
mov r2, #1
mov r3, #0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
_0223B7F2:
ldr r4, [sp, #0x10]
mov r5, #0
@@ -30553,7 +30553,7 @@ MOD12_0223C1F4: ; 0x0223C1F4
ldr r0, [r0]
mov r2, #0
mov r3, #0x40
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
add sp, #8
pop {r3, pc}
@@ -35423,7 +35423,7 @@ MOD12_0223E750: ; 0x0223E750
add r5, r1, #0
ldr r0, [r0]
mov r1, #0
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
ldr r3, _0223E77C ; =MOD12_0224620C
lsl r5, r5, #2
ldrh r1, [r3, r5]
@@ -35435,7 +35435,7 @@ MOD12_0223E750: ; 0x0223E750
lsl r3, r3, #0x18
ldr r1, [r4, r1]
lsr r3, r3, #0x18
- bl FUN_02003A30
+ bl BlendPalettes
pop {r3, r4, r5, pc}
.align 2, 0
_0223E77C: .word MOD12_0224620C
@@ -35646,7 +35646,7 @@ MOD12_0223E8EC: ; 0x0223E8EC
mov r1, #0
add r0, #0xa4
ldr r0, [r0]
- bl FUN_020031FC
+ bl PaletteData_GetUnfadedBuf
ldrb r1, [r4, #0xa]
lsl r3, r1, #1
ldr r1, _0223E94C ; =0x00007FFF
@@ -35661,7 +35661,7 @@ MOD12_0223E8EC: ; 0x0223E8EC
asr r3, r3, #8
lsl r3, r3, #0x18
lsr r3, r3, #0x18
- bl FUN_02003974
+ bl BlendPalette
ldrh r1, [r4, #8]
cmp r1, #0
bne _0223E932
@@ -36309,7 +36309,7 @@ _0223EE30:
add r0, #8
mov r2, #1
lsr r3, r3, #0x18
- bl FUN_02003974
+ bl BlendPalette
add r1, sp, #4
ldrh r1, [r1]
ldr r0, [r5]
@@ -41150,14 +41150,14 @@ MOD12_02241210: ; 0x02241210
mov r1, #0
lsl r2, r2, #8
mov r3, #0x18
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xd0
mov r1, #1
ldr r0, [r0]
lsl r2, r1, #9
mov r3, #0x18
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xd0
mov r2, #7
@@ -41165,7 +41165,7 @@ MOD12_02241210: ; 0x02241210
mov r1, #2
lsl r2, r2, #6
mov r3, #0x18
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
add r0, r5, #0
add r0, #0xd0
mov r2, #2
@@ -41173,7 +41173,7 @@ MOD12_02241210: ; 0x02241210
mov r1, #3
lsl r2, r2, #8
mov r3, #0x18
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r0, #0x18
bl BgConfig_Alloc
str r0, [r5, #0x30]
@@ -41519,22 +41519,22 @@ _022415D4:
add r0, #0xd0
ldr r0, [r0]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
mov r1, #1
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
mov r1, #3
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
add r0, r4, #0
add r0, #0xd0
ldr r0, [r0]
@@ -42193,7 +42193,7 @@ MOD12_02241BA0: ; 0x02241BA0
mov r1, #0x2d
mov r2, #0x21
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -43656,7 +43656,7 @@ MOD12_022426BC: ; 0x022426BC
mov r1, #0x2d
mov r2, #0x22
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -43669,7 +43669,7 @@ MOD12_022426BC: ; 0x022426BC
mov r1, #0x2d
mov r2, #0x23
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r1, [r5]
ldr r0, _02242784 ; =0x00001988
ldr r0, [r1, r0]
@@ -43699,7 +43699,7 @@ MOD12_022426BC: ; 0x022426BC
ldr r0, [r0]
mov r1, #0x26
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r0, [r5, #0x30]
mov r1, #2
bl BgClearTilemapBufferAndCommit
@@ -43826,7 +43826,7 @@ MOD12_02242804: ; 0x02242804
mov r1, #0x2d
mov r2, #0x26
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -43839,7 +43839,7 @@ MOD12_02242804: ; 0x02242804
mov r1, #0x2d
mov r2, #0x23
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
ldr r1, [r6]
ldr r0, _022429D0 ; =0x00001988
ldr r0, [r1, r0]
@@ -43869,7 +43869,7 @@ MOD12_02242804: ; 0x02242804
ldr r0, [r0]
mov r1, #0x26
mov r3, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0xc
mov r1, #0x18
bl String_ctor
@@ -44010,7 +44010,7 @@ MOD12_022429E0: ; 0x022429E0
ldr r0, [r0]
mov r1, #1
mov r2, #2
- bl FUN_02003914
+ bl PaletteData_FillPalette
mov r3, #0
mov r0, #1
str r3, [sp]
@@ -44020,7 +44020,7 @@ MOD12_022429E0: ; 0x022429E0
ldr r0, [r4]
mov r1, #3
mov r2, #2
- bl FUN_02003914
+ bl PaletteData_FillPalette
add sp, #8
pop {r4, pc}
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 480aa929..73e8460b 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -49734,7 +49734,7 @@ MOD16_021EE5D0: ; 0x021EE5D0
ldr r1, [r1]
mov r2, #0x30
add r3, r7, #0
- bl FUN_02003974
+ bl BlendPalette
ldr r0, [sp, #4]
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
@@ -49759,7 +49759,7 @@ MOD16_021EE5D0: ; 0x021EE5D0
ldr r1, [r1]
mov r2, #0x50
add r3, r7, #0
- bl FUN_02003974
+ bl BlendPalette
ldr r0, [sp, #8]
mov r1, #1
bl NNS_G2dGetImagePaletteLocation
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
index cbb58d60..d58310fa 100644
--- a/arm9/modules/61/asm/module_61.s
+++ b/arm9/modules/61/asm/module_61.s
@@ -466,7 +466,7 @@ _021D77F2:
add r2, #0x22
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldrb r0, [r5, #0x16]
strb r0, [r5, #0x17]
mov r0, #0
@@ -780,7 +780,7 @@ _021D7ABC:
lsl r2, r3, #0x10
lsr r2, r2, #0x10
mov r3, #1
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldrb r0, [r4, #0x16]
strb r0, [r4, #0x17]
mov r0, #0
@@ -798,7 +798,7 @@ _021D7AEA:
add r2, #0x22
lsl r2, r2, #0x10
lsr r2, r2, #0x10
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldrb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
cmp r0, #0
@@ -1134,12 +1134,12 @@ MOD61_021D7CE8: ; 0x021D7CE8
ldr r3, [r5]
mov r1, #0
mov r2, #0xe0
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
ldr r0, [r5, #0x30]
ldr r3, [r5]
mov r1, #2
mov r2, #0x60
- bl FUN_02003008
+ bl PaletteData_AllocBuffers
mov r0, #0x60
str r0, [sp]
ldr r1, [sp, #0x24]
@@ -1147,7 +1147,7 @@ MOD61_021D7CE8: ; 0x021D7CE8
ldr r0, [r5, #0x30]
ldr r1, [r1, #0xc]
add r3, r2, #0
- bl FUN_02003054
+ bl PaletteData_LoadPalette
ldrb r0, [r5, #0xc]
cmp r0, #1
bne _021D7E00
@@ -1159,7 +1159,7 @@ MOD61_021D7CE8: ; 0x021D7CE8
mov r2, #0
add r1, #0x60
mov r3, #0x10
- bl FUN_02003054
+ bl PaletteData_LoadPalette
_021D7E00:
mov r0, #2
str r0, [sp]
@@ -1170,7 +1170,7 @@ _021D7E00:
ldr r0, [r5, #0x30]
ldr r3, [r5]
mov r1, #0x13
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -1181,7 +1181,7 @@ _021D7E00:
ldr r3, [r5]
mov r1, #0xe
mov r2, #6
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -1192,7 +1192,7 @@ _021D7E00:
ldr r3, [r5]
mov r1, #0xe
mov r2, #7
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -1203,7 +1203,7 @@ _021D7E00:
ldr r3, [r5]
mov r1, #0x26
mov r2, #0x18
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -1215,7 +1215,7 @@ _021D7E00:
ldr r3, [r5]
mov r1, #0x26
add r2, #0x19
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0x10
mov r1, #0
str r0, [sp]
@@ -1223,7 +1223,7 @@ _021D7E00:
ldr r0, [r5, #0x30]
add r2, r1, #0
mov r3, #0x70
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
mov r0, #0x10
str r0, [sp]
mov r2, #0
@@ -1231,7 +1231,7 @@ _021D7E00:
ldr r0, [r5, #0x30]
mov r1, #2
mov r3, #0x30
- bl FUN_020039E8
+ bl BlendPaletteUnfaded
ldr r0, [r5, #0x30]
mov r1, #1
bl FUN_020038F0
@@ -1365,10 +1365,10 @@ MOD61_021D7FB4: ; 0x021D7FB4
bl FreeToHeap
ldr r0, [r4, #0x30]
mov r1, #2
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x30]
mov r1, #0
- bl FUN_02003038
+ bl PaletteData_FreeBuffers
ldr r0, [r4, #0x30]
bl FUN_02002FEC
mov r1, #0
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
index 313e1dd9..35c6e17d 100644
--- a/arm9/modules/62/asm/module_62.s
+++ b/arm9/modules/62/asm/module_62.s
@@ -3115,7 +3115,7 @@ MOD62_0222ED34: ; 0x0222ED34
add r0, r4, #0
mov r1, #0x26
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x35
@@ -3136,7 +3136,7 @@ MOD62_0222ED34: ; 0x0222ED34
add r0, r4, #0
mov r1, #0x26
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x20
@@ -3147,7 +3147,7 @@ MOD62_0222ED34: ; 0x0222ED34
mov r1, #0xe
mov r2, #7
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0xc
pop {r3, r4, r5, r6, pc}
thumb_func_end MOD62_0222ED34
@@ -3180,7 +3180,7 @@ MOD62_0222EDBC: ; 0x0222EDBC
add r0, r4, #0
mov r1, #0x26
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
mov r0, #0x35
@@ -3201,7 +3201,7 @@ MOD62_0222EDBC: ; 0x0222EDBC
add r0, r4, #0
mov r1, #0x26
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
mov r0, #0x20
@@ -3212,7 +3212,7 @@ MOD62_0222EDBC: ; 0x0222EDBC
mov r1, #0xe
mov r2, #7
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
mov r0, #0x20
@@ -3223,7 +3223,7 @@ MOD62_0222EDBC: ; 0x0222EDBC
mov r1, #0xe
mov r2, #7
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #1
str r0, [sp]
mov r0, #0x20
@@ -3235,7 +3235,7 @@ MOD62_0222EDBC: ; 0x0222EDBC
add r0, r4, #0
add r2, #0xcb
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -3829,7 +3829,7 @@ MOD62_0222F2C8: ; 0x0222F2C8
ldr r0, [r0]
add r2, #0xc5
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
mov r0, #0
str r0, [sp]
str r0, [sp, #4]
@@ -3910,7 +3910,7 @@ MOD62_0222F36C: ; 0x0222F36C
ldr r0, [r4]
add r2, #0xc4
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r4, pc}
.align 2, 0
@@ -3963,7 +3963,7 @@ MOD62_0222F3D4: ; 0x0222F3D4
ldr r0, [r4]
add r2, #0xc4
mov r3, #0x35
- bl FUN_020030E8
+ bl PaletteData_LoadNarc
add sp, #0x10
pop {r4, pc}
.align 2, 0
diff --git a/arm9/src/palette.c b/arm9/src/palette.c
new file mode 100644
index 00000000..525574e7
--- /dev/null
+++ b/arm9/src/palette.c
@@ -0,0 +1,760 @@
+#include "global.h"
+#include "palette.h"
+#include "MI_memory.h"
+#include "unk_02002F08.h"
+#include "unk_0200CA44.h"
+
+extern void *FUN_020222E8();
+extern void *FUN_020222F8();
+extern void *FUN_02022308();
+extern void *FUN_02022310();
+extern int abs(int);
+
+THUMB_FUNC void FUN_02003108(struct PaletteData *paletteData, u32 index, u16 offset, u32 size)
+{
+ GF_ASSERT(offset * 2 + size <= paletteData->pltt[index].bufSize);
+
+ u16 *ptr;
+ switch (index)
+ {
+ case 0:
+ ptr = FUN_020222E8();
+ break;
+ case 1:
+ ptr = FUN_020222F8();
+ break;
+ case 2:
+ ptr = FUN_02022308();
+ break;
+ case 3:
+ ptr = FUN_02022310();
+ break;
+ default:
+ GF_ASSERT(FALSE);
+ return;
+ }
+
+ PaletteData_LoadPalette(paletteData, ptr + offset, index, offset, (u16)size);
+}
+
+THUMB_FUNC void CopyPaletteFromNarc(
+ NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest)
+{
+ NNSG2dPaletteData *pltData;
+
+ void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id);
+ GF_ASSERT(ptr != NULL);
+
+ if (size == 0)
+ {
+ size = pltData->szByte;
+ }
+
+ MI_CpuCopy16(pltData->pRawData + offset * 2, dest, size);
+
+ FreeToHeap(ptr);
+}
+
+THUMB_FUNC void PaletteData_CopyPalette(struct PaletteData *paletteData,
+ u32 srcIdx,
+ u16 srcOffset,
+ u32 destIdx,
+ u16 destOffset,
+ u16 size)
+{
+
+ MI_CpuCopy16(paletteData->pltt[srcIdx].unfadedBuf + srcOffset,
+ paletteData->pltt[destIdx].unfadedBuf + destOffset,
+ size);
+ MI_CpuCopy16(paletteData->pltt[srcIdx].unfadedBuf + srcOffset,
+ paletteData->pltt[destIdx].fadedBuf + destOffset,
+ size);
+}
+
+THUMB_FUNC u16 *PaletteData_GetUnfadedBuf(struct PaletteData *paletteData, u32 index)
+{
+ return paletteData->pltt[index].unfadedBuf;
+}
+
+THUMB_FUNC u16 *PaletteData_GetFadedBuf(struct PaletteData *paletteData, u32 index)
+{
+ return paletteData->pltt[index].fadedBuf;
+}
+
+THUMB_FUNC u32 FUN_02003210(struct PaletteData *paletteData,
+ u16 param1,
+ u16 param2,
+ s16 delay,
+ u8 startY,
+ u8 targetY,
+ u16 color)
+{
+
+ u16 stc = param2;
+ u32 r6 = 0;
+
+ for (u8 i = 0; i < 14; i++)
+ {
+ if (IsPaletteSelected(param1, i) != 1)
+ {
+ continue;
+ }
+
+ if (IsPaletteSelected(paletteData->activeFadePalettes, i) != 0)
+ {
+ continue;
+ }
+
+ FUN_02003368(i, &paletteData->pltt[i], &param2);
+
+ FUN_020033A4(&paletteData->pltt[i].fadeCtrl, param2, delay, startY, targetY, color);
+
+ FUN_02003328(paletteData, i);
+
+ if (i >= 4)
+ {
+ FUN_0200359C(paletteData, i, 0x100);
+ }
+ else
+ {
+ FUN_0200359C(paletteData, i, 0x10);
+ }
+
+ param2 = stc;
+ r6 = 1;
+ }
+
+ if (r6 == 1)
+ {
+ paletteData->activeFadePalettes |= param1;
+ if (paletteData->unk11a_e == 0)
+ {
+ paletteData->unk11a_e = 1;
+
+ paletteData->unk118_0 = 1;
+ paletteData->unk11c = 0;
+
+ // wtf is that?
+ FUN_0200CA44((void (*)(u32, struct TextPrinter *))FUN_02003464,
+ (struct TextPrinter *)paletteData,
+ (u32)(-2));
+ }
+ }
+
+ return r6;
+}
+
+THUMB_FUNC u8 IsPaletteSelected(u16 selectedPalettes, u16 index)
+{
+ u32 r3 = 1;
+ if ((selectedPalettes & (1 << index)) == 0)
+ {
+ r3 = 0;
+ }
+
+ return (u8)r3;
+}
+
+THUMB_FUNC void FUN_02003328(struct PaletteData *param0, u16 param1)
+{
+ if (IsPaletteSelected(param0->unk11a_0, param1) != 1)
+ {
+ param0->unk11a_0 |= 1 << param1;
+ }
+}
+
+THUMB_FUNC void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2)
+{
+ u8 r0;
+ if (param0 < 4)
+ {
+ r0 = (u8)(param1->bufSize >> 5);
+ }
+ else
+ {
+ r0 = (u8)(param1->bufSize >> 9);
+ }
+
+ u16 r4 = 0;
+ for (u8 i = 0; i < r0; i++)
+ {
+ r4 += 1 << i;
+ }
+
+ *param2 &= r4;
+}
+
+THUMB_FUNC void FUN_020033A4(struct PaletteFadeControl *paletteFade,
+ u16 selectedPalettes,
+ s16 delay,
+ u8 startY,
+ u8 targetY,
+ u16 color)
+{
+ if (delay < 0)
+ {
+ paletteFade->deltaY = abs(delay) + 2;
+ paletteFade->delay = 0;
+ }
+ else
+ {
+ paletteFade->deltaY = 2;
+ paletteFade->delay = delay;
+ }
+
+ paletteFade->selectedPalettes = selectedPalettes;
+ paletteFade->y = startY;
+ paletteFade->targetY = targetY;
+ paletteFade->blendColor = color;
+
+ paletteFade->delayCounter = paletteFade->delay;
+
+ if (startY < targetY)
+ {
+ paletteFade->yDec = 0;
+ return;
+ }
+ paletteFade->yDec = 1;
+}
+
+THUMB_FUNC void FUN_02003464(u32 param0, struct PaletteData *param1)
+{
+ if (param1->unk11c == 1)
+ {
+ param1->unk11c = 0;
+ param1->unk11a_0 = 0;
+ param1->activeFadePalettes = 0;
+ param1->unk11a_e = 0;
+ FUN_0200CAB4((s32)param0);
+ return;
+ }
+
+ if (param1->unk118_0 == 1)
+ {
+ param1->unk11a_0 = param1->activeFadePalettes;
+ FUN_02003500(param1);
+ FUN_02003520(param1);
+
+ if (param1->activeFadePalettes == 0)
+ {
+ param1->unk11a_e = 0;
+ FUN_0200CAB4((s32)param0);
+ }
+ }
+}
+
+THUMB_FUNC void FUN_02003500(struct PaletteData *param0)
+{
+ for (u8 i = 0; i < 4; i++)
+ {
+ FUN_02003540(param0, i, 0x10);
+ }
+}
+
+THUMB_FUNC void FUN_02003520(struct PaletteData *param0)
+{
+ for (u8 i = 4; i < 14; i++)
+ {
+ FUN_02003540(param0, i, 0x100);
+ }
+}
+
+THUMB_FUNC void FUN_02003540(struct PaletteData *paletteData, u8 index, u32 param2)
+{
+ if (IsPaletteSelected(paletteData->activeFadePalettes, index) != 0)
+ {
+ if (paletteData->pltt[index].fadeCtrl.delayCounter <
+ paletteData->pltt[index].fadeCtrl.delay)
+ {
+ paletteData->pltt[index].fadeCtrl.delayCounter++;
+ return;
+ }
+
+ paletteData->pltt[index].fadeCtrl.delayCounter = 0;
+ FUN_0200359C(paletteData, index, param2);
+ }
+}
+
+THUMB_FUNC void FUN_0200359C(struct PaletteData *paletteData, u32 index, u32 param2)
+{
+
+ for (u32 i = 0; i < 0x10; i++)
+ {
+ if (IsPaletteSelected(paletteData->pltt[index].fadeCtrl.selectedPalettes, (u16)i) != 0)
+ {
+ FUN_020035F8(paletteData->pltt[index].unfadedBuf + param2 * i,
+ paletteData->pltt[index].fadedBuf + param2 * i,
+ &paletteData->pltt[index].fadeCtrl,
+ param2);
+ }
+ }
+
+ FUN_02003684(paletteData, (u8)index, &paletteData->pltt[index].fadeCtrl);
+}
+
+THUMB_FUNC void FUN_020035F8(
+ u16 *src, u16 *dest, struct PaletteFadeControl *fadeCtrl, u32 numEntries)
+{
+ for (u32 i = 0; i < numEntries; i++)
+ {
+ u8 lo = (u8)((src[i] & 0x1f) +
+ ((((fadeCtrl->blendColor & 0x1f) - (src[i] & 0x1f)) * fadeCtrl->y) >> 4));
+
+ u8 hi = (u8)(((src[i] >> 10) & 0x1f) +
+ (((((fadeCtrl->blendColor >> 10) & 0x1f) - ((src[i] >> 10) & 0x1f)) *
+ fadeCtrl->y) >>
+ 4));
+ u8 mid =
+ (u8)(((src[i] >> 5) & 0x1f) +
+ (((((fadeCtrl->blendColor >> 5) & 0x1f) - ((src[i] >> 5) & 0x1f)) * fadeCtrl->y) >>
+ 4));
+
+ dest[i] = (u16)((hi << 10) | (mid << 5) | lo);
+ }
+}
+
+THUMB_FUNC void FUN_02003684(
+ struct PaletteData *paletteData, u8 index, struct PaletteFadeControl *fadeCtrl)
+{
+ if (fadeCtrl->y == fadeCtrl->targetY)
+ {
+ if ((paletteData->activeFadePalettes & (1 << index)) == 0)
+ {
+ return;
+ }
+
+ paletteData->activeFadePalettes ^= (1 << index);
+
+ return;
+ }
+
+ s16 val;
+ if (fadeCtrl->yDec == 0)
+ {
+ val = (s16)fadeCtrl->y;
+ val += fadeCtrl->deltaY;
+ if (val > fadeCtrl->targetY)
+ {
+ val = (s16)fadeCtrl->targetY;
+ }
+
+ fadeCtrl->y = val;
+ return;
+ }
+
+ val = (s16)fadeCtrl->y;
+ val -= fadeCtrl->deltaY;
+ if (val < fadeCtrl->targetY)
+ {
+ val = (s16)fadeCtrl->targetY;
+ }
+
+ fadeCtrl->y = val;
+}
+
+THUMB_FUNC void FUN_0200372C(struct PaletteData *paletteData)
+{
+ if (paletteData->unk11a_f == 0 && paletteData->unk118_0 != 1)
+ {
+ return;
+ }
+
+ for (s32 i = 0; i < 14; i++)
+ {
+ if (paletteData->unk11a_f != 0 ||
+ (paletteData->pltt[i].fadedBuf != 0 &&
+ IsPaletteSelected(paletteData->unk11a_0, (u16)i) != 0))
+ {
+ DC_FlushRange(paletteData->pltt[i].fadedBuf, paletteData->pltt[i].bufSize);
+
+ switch (i)
+ {
+ case 0:
+ GX_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ break;
+ case 1:
+ GXS_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ break;
+ case 2:
+ GX_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ break;
+ case 3:
+ GXS_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ break;
+ case 4:
+ GX_BeginLoadBGExtPltt();
+ GX_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ GX_EndLoadBGExtPltt();
+ break;
+ case 5:
+ GX_BeginLoadBGExtPltt();
+ GX_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize);
+ GX_EndLoadBGExtPltt();
+ break;
+ case 6:
+ GX_BeginLoadBGExtPltt();
+ GX_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize);
+ GX_EndLoadBGExtPltt();
+ break;
+ case 7:
+ GX_BeginLoadBGExtPltt();
+ GX_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize);
+ GX_EndLoadBGExtPltt();
+ break;
+ case 8:
+ GXS_BeginLoadBGExtPltt();
+ GXS_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ GXS_EndLoadBGExtPltt();
+ break;
+ case 9:
+ GXS_BeginLoadBGExtPltt();
+ GXS_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize);
+ GXS_EndLoadBGExtPltt();
+ break;
+ case 10:
+ GXS_BeginLoadBGExtPltt();
+ GXS_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize);
+ GXS_EndLoadBGExtPltt();
+ break;
+ case 11:
+ GXS_BeginLoadBGExtPltt();
+ GXS_LoadBGExtPltt(
+ paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize);
+ GXS_EndLoadBGExtPltt();
+ break;
+ case 12:
+ GX_BeginLoadOBJExtPltt();
+ GX_LoadOBJExtPltt(
+ paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ GX_EndLoadOBJExtPltt();
+ break;
+ case 13:
+ GXS_BeginLoadOBJExtPltt();
+ GXS_LoadOBJExtPltt(
+ paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
+ GXS_EndLoadOBJExtPltt();
+ break;
+ }
+ }
+ }
+
+ paletteData->unk11a_0 = paletteData->activeFadePalettes;
+ if (paletteData->unk11a_0 == 0)
+ {
+ paletteData->unk118_0 = 0;
+ }
+}
+
+THUMB_FUNC u16 FUN_020038E4(struct PaletteData *paletteData)
+{
+ return paletteData->activeFadePalettes;
+}
+
+THUMB_FUNC void FUN_020038F0(struct PaletteData *paletteData, u32 param1)
+{
+ paletteData->unk11a_f = param1;
+}
+
+THUMB_FUNC void PaletteData_FillPalette(struct PaletteData *paletteData,
+ u32 index,
+ u32 selection,
+ u16 value,
+ u16 startOffset,
+ u16 endOffset)
+{
+ GF_ASSERT(endOffset * 2 <= paletteData->pltt[index].bufSize);
+ if (selection == 1 || selection == 2)
+ {
+ MI_CpuFill16(&paletteData->pltt[index].unfadedBuf[startOffset],
+ value,
+ (u32)((endOffset - startOffset) * 2));
+ }
+
+ if (selection == 0 || selection == 2)
+ {
+ MI_CpuFill16(&paletteData->pltt[index].fadedBuf[startOffset],
+ value,
+ (u32)((endOffset - startOffset) * 2));
+ }
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC void BlendPalette(u16 *src, u16 *dest, u16 numEntries, u8 coeff, u16 blendColor)
+{
+ s32 r12 = ((u32)(blendColor << 0x1b)) >> 0x1b;
+ s32 lr = ((u32)(blendColor << 0x16)) >> 0x1b;
+ s32 st8 = ((u32)(blendColor << 0x11)) >> 0x1b;
+ s32 lo, mid, hi;
+
+ for (u16 i = 0; i < numEntries; i++)
+ {
+ lo = (((u32)(src[i] << 0x1b)) >> 0x1b);
+ mid = (((u32)(src[i] << 0x16)) >> 0x1b);
+ hi = (((u32)(src[i] << 0x11)) >> 0x1b);
+
+ dest[i] = (lo + ((r12 - lo) * coeff) >> 4) | (mid + ((lr - mid) * coeff) >> 4) << 5 |
+ (hi + ((st8 - hi) * coeff) >> 4) << 10;
+ }
+}
+#else
+asm void BlendPalette(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4)
+{
+ // clang-format off
+ push {r4-r7, lr}
+ sub sp, #0xc
+ str r0, [sp, #0x0]
+ add r0, sp, #0x10
+ ldrh r0, [r0, #0x10]
+ str r1, [sp, #0x4]
+ add r7, r2, #0x0
+ lsl r1, r0, #0x1b
+ lsr r1, r1, #0x1b
+ mov r12, r1
+ lsl r1, r0, #0x16
+ lsl r0, r0, #0x11
+ lsr r1, r1, #0x1b
+ lsr r0, r0, #0x1b
+ mov r2, #0x0
+ mov lr, r1
+ str r0, [sp, #0x8]
+ cmp r7, #0x0
+ bls _020039E2
+_0200399A:
+ ldr r0, [sp, #0x0]
+ lsl r6, r2, #0x1
+ ldrh r4, [r0, r6]
+ lsl r0, r4, #0x1b
+ lsr r1, r0, #0x1b
+ lsl r0, r4, #0x16
+ lsl r4, r4, #0x11
+ lsr r5, r4, #0x1b
+ ldr r4, [sp, #0x8]
+ lsr r0, r0, #0x1b
+ sub r4, r4, r5
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r4, r5, r4
+ lsl r5, r4, #0xa
+ mov r4, r12
+ sub r4, r4, r1
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r1, r1, r4
+ mov r4, lr
+ sub r4, r4, r0
+ mul r4, r3
+ asr r4, r4, #0x4
+ add r0, r0, r4
+ lsl r0, r0, #0x5
+ orr r0, r1
+ add r1, r5, #0x0
+ orr r1, r0
+ ldr r0, [sp, #0x4]
+ strh r1, [r0, r6]
+ add r0, r2, #0x1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, r7
+ blo _0200399A
+_020039E2:
+ add sp, #0xc
+ pop {r4-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void BlendPaletteUnfaded(struct PaletteData *paletteData,
+ u32 index,
+ u16 offset,
+ u16 numEntries,
+ u8 coeff,
+ u16 blendColor)
+{
+ BOOL r0 = FALSE;
+ if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0)
+ {
+ r0 = TRUE;
+ }
+
+ GF_ASSERT(r0);
+
+ BlendPalette(paletteData->pltt[index].unfadedBuf + offset,
+ paletteData->pltt[index].fadedBuf + offset,
+ numEntries,
+ coeff,
+ blendColor);
+}
+
+THUMB_FUNC void BlendPalettes(u16 *src, u16 *dest, u16 selectedPalettes, u8 coeff, u16 blendColor)
+{
+ while (selectedPalettes != 0)
+ {
+ if ((selectedPalettes & 1) != 0)
+ {
+ BlendPalette(src, dest, 0x10, coeff, blendColor);
+ }
+
+ selectedPalettes >>= 1;
+ dest += 0x10;
+ src += 0x10;
+ }
+}
+
+THUMB_FUNC void BlendPalettesUnfaded(
+ struct PaletteData *paletteData, u32 index, u16 selectedPalettes, u8 coeff, u16 blendColor)
+{
+ u32 r4 = 0;
+ BOOL r0 = FALSE;
+ if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0)
+ {
+ r0 = TRUE;
+ }
+
+ GF_ASSERT(r0);
+
+ while (selectedPalettes != 0)
+ {
+ if ((selectedPalettes & 1) != 0)
+ {
+ BlendPaletteUnfaded(paletteData, index, (u16)r4, 0x10, coeff, blendColor);
+ }
+
+ selectedPalettes >>= 1;
+ r4 += 0x10;
+ }
+}
+
+#ifdef NONMATCHING
+THUMB_FUNC void TintPalette_CustomTone(u16 *palette, u32 count, u32 rTone, u32 gTone, u32 bTone)
+{
+ s32 r, g, b, i;
+ u32 gray;
+
+ for (i = 0; i < count; i++)
+ {
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
+ b = (*palette >> 10) & 0x1F;
+
+ gray = (r * 76 + g * 151 + b * 29) >> 8;
+
+ r = (u16)((rTone * gray)) >> 8;
+ g = (u16)((gTone * gray)) >> 8;
+ b = (u16)((bTone * gray)) >> 8;
+
+ if (r > 31)
+ r = 31;
+ if (g > 31)
+ g = 31;
+ if (b > 31)
+ b = 31;
+
+ *palette++ = (b << 10) | (g << 5) | (r << 0);
+ }
+}
+#else
+asm void TintPalette_CustomTone(u16 *palette, u32 count, u32 rTone, u32 gTone, u32 bTone)
+{
+ // clang-format off
+ push {r3-r7, lr}
+ mov lr, r1
+ mov r12, r2
+ add r7, r3, #0x0
+ mov r4, #0x0
+ cmp r1, #0x0
+ ble _02003B3C
+ ldr r6, [sp, #0x18]
+_02003AD4:
+ ldrh r3, [r0, #0x0]
+ mov r1, #0x1f
+ add r2, r3, #0x0
+ asr r5, r3, #0xa
+ and r2, r1
+ and r5, r1
+ mov r1, #0x1d
+ mul r1, r5
+ mov r5, #0x4c
+ mul r5, r2
+ asr r3, r3, #0x5
+ mov r2, #0x1f
+ and r3, r2
+ mov r2, #0x97
+ mul r2, r3
+ add r2, r5, r2
+ add r1, r1, r2
+ asr r3, r1, #0x8
+ mov r1, r12
+ add r2, r1, #0x0
+ mul r2, r3
+ lsl r1, r2, #0x10
+ lsr r1, r1, #0x10
+ asr r2, r1, #0x8
+ add r1, r7, #0x0
+ mul r1, r3
+ mul r3, r6
+ lsl r1, r1, #0x10
+ lsl r3, r3, #0x10
+ lsr r1, r1, #0x10
+ lsr r3, r3, #0x10
+ asr r1, r1, #0x8
+ asr r3, r3, #0x8
+ cmp r2, #0x1f
+ ble _02003B1C
+ mov r2, #0x1f
+_02003B1C:
+ cmp r1, #0x1f
+ ble _02003B22
+ mov r1, #0x1f
+_02003B22:
+ cmp r3, #0x1f
+ ble _02003B28
+ mov r3, #0x1f
+_02003B28:
+ lsl r3, r3, #0xa
+ lsl r1, r1, #0x5
+ orr r1, r3
+ orr r1, r2
+ strh r1, [r0, #0x0]
+ add r4, r4, #0x1
+ mov r1, lr
+ add r0, r0, #0x2
+ cmp r4, r1
+ blt _02003AD4
+_02003B3C:
+ pop {r3-r7, pc}
+ // clang-format on
+}
+#endif
+
+THUMB_FUNC void FUN_02003B40(struct PaletteData *paletteData,
+ NarcId narcId,
+ s32 memberId,
+ u32 heap_id,
+ u32 index,
+ u32 size,
+ u16 offset,
+ u32 rTone,
+ u32 gTone,
+ u32 bTone)
+{
+ NNSG2dPaletteData *pltData;
+ void *ptr = GfGfxLoader_GetPlttData(narcId, memberId, &pltData, heap_id);
+ GF_ASSERT(ptr != NULL);
+
+ if (size == 0)
+ {
+ size = pltData->szByte;
+ }
+
+ TintPalette_CustomTone(pltData->pRawData, 0x10, rTone, gTone, bTone);
+ PaletteData_LoadPalette(paletteData, pltData->pRawData, index, offset, (u16)size);
+
+ FreeToHeap(ptr);
+}
diff --git a/arm9/src/unk_02002F08.c b/arm9/src/unk_02002F08.c
index b81da622..5a1eca36 100644
--- a/arm9/src/unk_02002F08.c
+++ b/arm9/src/unk_02002F08.c
@@ -60,53 +60,54 @@ THUMB_FUNC s32 FUN_02002F9C(u32 param0, struct String *str)
UNK_02106FC8->unk94[param0], String_c_str(str));
}
-THUMB_FUNC struct UnkStruct_02002F08 *FUN_02002FD0(u32 heap_id)
+THUMB_FUNC struct PaletteData *FUN_02002FD0(u32 heap_id)
{
- struct UnkStruct_02002F08 *ptr = AllocFromHeap(heap_id, sizeof(struct UnkStruct_02002F08));
- MI_CpuFill8(ptr, 0, sizeof(struct UnkStruct_02002F08));
+ struct PaletteData *ptr = AllocFromHeap(heap_id, sizeof(struct PaletteData));
+ MI_CpuFill8(ptr, 0, sizeof(struct PaletteData));
return ptr;
}
-THUMB_FUNC void FUN_02002FEC(struct UnkStruct_02002F08 *ptr)
+THUMB_FUNC void FUN_02002FEC(struct PaletteData *ptr)
{
FreeToHeap(ptr);
}
-THUMB_FUNC void FUN_02002FF4(
- struct UnkStruct_02002F08 *param0, u32 param1, void *param2, void *param3, u32 size)
+THUMB_FUNC void PaletteData_SetBuffers(
+ struct PaletteData *paletteData, u32 index, void *unfadedBuf, void *fadedBuf, u32 size)
{
- param0->unk000[param1].unk00 = param2;
- param0->unk000[param1].unk04 = param3;
- param0->unk000[param1].unk08 = size;
+ paletteData->pltt[index].unfadedBuf = unfadedBuf;
+ paletteData->pltt[index].fadedBuf = fadedBuf;
+ paletteData->pltt[index].bufSize = size;
}
-THUMB_FUNC void FUN_02003008(struct UnkStruct_02002F08 *param0, u32 param1, u32 size, u32 heap_id)
+THUMB_FUNC void PaletteData_AllocBuffers(
+ struct PaletteData *paletteData, u32 index, u32 size, u32 heap_id)
{
void *ptr = AllocFromHeap(heap_id, size);
void *ptr2 = AllocFromHeap(heap_id, size);
- FUN_02002FF4(param0, param1, ptr, ptr2, size);
+ PaletteData_SetBuffers(paletteData, index, ptr, ptr2, size);
}
-THUMB_FUNC void FUN_02003038(struct UnkStruct_02002F08 *param0, u32 param1)
+THUMB_FUNC void PaletteData_FreeBuffers(struct PaletteData *paletteData, u32 index)
{
- FreeToHeap(param0->unk000[param1].unk00);
- FreeToHeap(param0->unk000[param1].unk04);
+ FreeToHeap(paletteData->pltt[index].unfadedBuf);
+ FreeToHeap(paletteData->pltt[index].fadedBuf);
}
-THUMB_FUNC void FUN_02003054(
- struct UnkStruct_02002F08 *param0, const void *param1, u32 param2, u32 offset, u16 size)
+THUMB_FUNC void PaletteData_LoadPalette(
+ struct PaletteData *paletteData, const void *src, u32 index, u32 offset, u16 size)
{
- MIi_CpuCopy16(param1, param0->unk000[param2].unk00 + offset, size);
- MIi_CpuCopy16(param1, param0->unk000[param2].unk04 + offset, size);
+ MIi_CpuCopy16(src, paletteData->pltt[index].unfadedBuf + offset, size);
+ MIi_CpuCopy16(src, paletteData->pltt[index].fadedBuf + offset, size);
}
-THUMB_FUNC void FUN_02003084(struct UnkStruct_02002F08 *param0,
+THUMB_FUNC void PaletteData_LoadFromNarc(struct PaletteData *paletteData,
NarcId narcId,
s32 memberId,
u32 heap_id,
- u32 param4,
+ u32 index,
u32 size,
u16 offset,
u16 param7)
@@ -121,19 +122,19 @@ THUMB_FUNC void FUN_02003084(struct UnkStruct_02002F08 *param0,
size = pltData->szByte;
}
- GF_ASSERT(size + offset * 2 <= param0->unk000[param4].unk08);
+ GF_ASSERT(size + offset * 2 <= paletteData->pltt[index].bufSize);
- FUN_02003054(param0, pltData->pRawData + param7 * 2, param4, offset, (u16)size);
+ PaletteData_LoadPalette(paletteData, pltData->pRawData + param7 * 2, index, offset, (u16)size);
FreeToHeap(ptr);
}
-THUMB_FUNC void FUN_020030E8(struct UnkStruct_02002F08 *param0,
+THUMB_FUNC void PaletteData_LoadNarc(struct PaletteData *paletteData,
NarcId narcId,
s32 memberId,
u32 heap_id,
- u32 param4,
+ u32 index,
u32 size,
u16 offset)
{
- FUN_02003084(param0, narcId, memberId, heap_id, param4, size, offset, 0);
+ PaletteData_LoadFromNarc(paletteData, narcId, memberId, heap_id, index, size, offset, 0);
}