summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Calixte <remicalixte.rmc@gmail.com>2021-06-27 12:23:19 +0200
committerRémi Calixte <remicalixte.rmc@gmail.com>2021-06-27 12:23:19 +0200
commitba803600ac7ceef20799ee7b0c4da0409cbbbea1 (patch)
treef842473c94b523334ed49a45d493c3f4fa21266c
parent9000931f5c47a0b6e8ee6f2ac0069db61868bd32 (diff)
partially document unk_020030E8.c
-rw-r--r--arm9/asm/unk_02006D98.s4
-rw-r--r--arm9/asm/unk_020142EC.s4
-rw-r--r--arm9/global.inc18
-rw-r--r--arm9/modules/05/asm/mod05_021E3444.s2
-rw-r--r--arm9/modules/08/asm/module_08.s26
-rw-r--r--arm9/modules/09/asm/module_09.s4
-rw-r--r--arm9/modules/11/asm/module_11_thumb1.s16
-rw-r--r--arm9/modules/11/asm/module_11_thumb2.s36
-rw-r--r--arm9/modules/12/asm/module_12.s58
-rw-r--r--arm9/modules/16/asm/module_16.s4
-rw-r--r--arm9/modules/61/asm/module_61.s10
-rw-r--r--arm9/src/unk_020030E8.c409
-rw-r--r--include/unk_02002F08.h31
-rw-r--r--include/unk_020030E8.h28
14 files changed, 328 insertions, 322 deletions
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 e7c3e769..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]
diff --git a/arm9/global.inc b/arm9/global.inc
index 12a68207..4f028bbd 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -251,19 +251,19 @@
.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/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index 902d44d7..1cc36e88 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -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
@@ -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}
@@ -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
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 5ca32f7e..c5b40b5e 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -2224,7 +2224,7 @@ MOD09_02212F8C: ; 0x02212F8C
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
@@ -2300,7 +2300,7 @@ MOD09_02212F8C: ; 0x02212F8C
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
diff --git a/arm9/modules/11/asm/module_11_thumb1.s b/arm9/modules/11/asm/module_11_thumb1.s
index 3f932185..1040df95 100644
--- a/arm9/modules/11/asm/module_11_thumb1.s
+++ b/arm9/modules/11/asm/module_11_thumb1.s
@@ -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
diff --git a/arm9/modules/11/asm/module_11_thumb2.s b/arm9/modules/11/asm/module_11_thumb2.s
index 8af139bc..1905bce4 100644
--- a/arm9/modules/11/asm/module_11_thumb2.s
+++ b/arm9/modules/11/asm/module_11_thumb2.s
@@ -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]
@@ -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
@@ -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
@@ -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:
@@ -84526,7 +84526,7 @@ _0225854E:
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
@@ -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 6c817679..53833b86 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -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
@@ -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]
@@ -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
@@ -6257,7 +6257,7 @@ MOD12_022308F0: ; 0x022308F0
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]
@@ -8482,7 +8482,7 @@ _02231A98:
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]
@@ -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
@@ -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]
@@ -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 3a7d9e76..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
@@ -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
diff --git a/arm9/src/unk_020030E8.c b/arm9/src/unk_020030E8.c
index 74abf49b..d9e410dc 100644
--- a/arm9/src/unk_020030E8.c
+++ b/arm9/src/unk_020030E8.c
@@ -10,34 +10,34 @@ extern void *FUN_02022308();
extern void *FUN_02022310();
extern int abs(int);
-THUMB_FUNC void FUN_02003108(struct PaletteData *param0, u32 param1, u16 param2, u32 param3)
+THUMB_FUNC void FUN_02003108(struct PaletteData *paletteData, u32 index, u16 offset, u32 size)
{
- GF_ASSERT(param2 * 2 + param3 <= param0->pltt[param1].bufSize);
+ GF_ASSERT(offset * 2 + size <= paletteData->pltt[index].bufSize);
- u16 *r1;
- switch (param1)
+ u16 *ptr;
+ switch (index)
{
case 0:
- r1 = FUN_020222E8();
+ ptr = FUN_020222E8();
break;
case 1:
- r1 = FUN_020222F8();
+ ptr = FUN_020222F8();
break;
case 2:
- r1 = FUN_02022308();
+ ptr = FUN_02022308();
break;
case 3:
- r1 = FUN_02022310();
+ ptr = FUN_02022310();
break;
default:
GF_ASSERT(FALSE);
return;
}
- PaletteData_LoadPalette(param0, r1 + param2, param1, param2, (u16)param3);
+ PaletteData_LoadPalette(paletteData, ptr + offset, index, offset, (u16)size);
}
-THUMB_FUNC void FUN_0200317C(
+THUMB_FUNC void CopyPaletteFromNarc(
NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest)
{
NNSG2dPaletteData *pltData;
@@ -55,63 +55,63 @@ THUMB_FUNC void FUN_0200317C(
FreeToHeap(ptr);
}
-THUMB_FUNC void FUN_020031B8(
- struct PaletteData *param0, u32 param1, u16 param2, u32 param3, u16 param4, u16 param5)
+THUMB_FUNC void PaletteData_CopyPalette(
+ struct PaletteData *paletteData, u32 srcIdx, u16 srcOffset, u32 destIdx, u16 destOffset, u16 size)
{
MI_CpuCopy16(
- param0->pltt[param1].unfadedBuf + param2, param0->pltt[param3].unfadedBuf + param4, param5);
+ paletteData->pltt[srcIdx].unfadedBuf + srcOffset, paletteData->pltt[destIdx].unfadedBuf + destOffset, size);
MI_CpuCopy16(
- param0->pltt[param1].unfadedBuf + param2, param0->pltt[param3].fadedBuf + param4, param5);
+ paletteData->pltt[srcIdx].unfadedBuf + srcOffset, paletteData->pltt[destIdx].fadedBuf + destOffset, size);
}
-THUMB_FUNC u16 *FUN_020031FC(struct PaletteData *param0, u32 param1)
+THUMB_FUNC u16 *PaletteData_GetUnfadedBuf(struct PaletteData *paletteData, u32 index)
{
- return param0->pltt[param1].unfadedBuf;
+ return paletteData->pltt[index].unfadedBuf;
}
-THUMB_FUNC u16 *FUN_02003204(struct PaletteData *param0, u32 param1)
+THUMB_FUNC u16 *PaletteData_GetFadedBuf(struct PaletteData *paletteData, u32 index)
{
- return param0->pltt[param1].fadedBuf;
+ return paletteData->pltt[index].fadedBuf;
}
-THUMB_FUNC u32 FUN_02003210(struct PaletteData *param0,
+THUMB_FUNC u32 FUN_02003210(struct PaletteData *paletteData,
u16 param1,
u16 param2,
- s16 param3,
- u8 param6,
- u8 param7,
- u16 param8)
+ s16 delay,
+ u8 startY,
+ u8 targetY,
+ u16 color)
{
u16 stc = param2;
u32 r6 = 0;
- for (u8 r4 = 0; r4 < 14; r4++)
+ for (u8 i = 0; i < 14; i++)
{
- if (FUN_02003314(param1, r4) != 1)
+ if (IsPaletteSelected(param1, i) != 1)
{
continue;
}
- if (FUN_02003314(param0->unk118_2, r4) != 0)
+ if (IsPaletteSelected(paletteData->activeFadePalettes, i) != 0)
{
continue;
}
- FUN_02003368(r4, &param0->pltt[r4], &param2);
+ FUN_02003368(i, &paletteData->pltt[i], &param2);
- FUN_020033A4(&param0->pltt[r4].unk0c, param2, param3, param6, param7, param8);
+ FUN_020033A4(&paletteData->pltt[i].fadeCtrl, param2, delay, startY, targetY, color);
- FUN_02003328(param0, r4);
+ FUN_02003328(paletteData, i);
- if (r4 >= 4)
+ if (i >= 4)
{
- FUN_0200359C(param0, r4, 0x100);
+ FUN_0200359C(paletteData, i, 0x100);
}
else
{
- FUN_0200359C(param0, r4, 0x10);
+ FUN_0200359C(paletteData, i, 0x10);
}
param2 = stc;
@@ -120,17 +120,17 @@ THUMB_FUNC u32 FUN_02003210(struct PaletteData *param0,
if (r6 == 1)
{
- param0->unk118_2 |= param1;
- if (param0->unk11a_e == 0)
+ paletteData->activeFadePalettes |= param1;
+ if (paletteData->unk11a_e == 0)
{
- param0->unk11a_e = 1;
+ paletteData->unk11a_e = 1;
- param0->unk118_0 = 1;
- param0->unk11c = 0;
+ paletteData->unk118_0 = 1;
+ paletteData->unk11c = 0;
// wtf is that?
FUN_0200CA44((void (*)(u32, struct TextPrinter *))FUN_02003464,
- (struct TextPrinter *)param0,
+ (struct TextPrinter *)paletteData,
(u32)(-2));
}
}
@@ -138,10 +138,10 @@ THUMB_FUNC u32 FUN_02003210(struct PaletteData *param0,
return r6;
}
-THUMB_FUNC u8 FUN_02003314(u16 param0, u16 param1)
+THUMB_FUNC u8 IsPaletteSelected(u16 selectedPalettes, u16 index)
{
u32 r3 = 1;
- if ((param0 & (1 << param1)) == 0)
+ if ((selectedPalettes & (1 << index)) == 0)
{
r3 = 0;
}
@@ -151,7 +151,7 @@ THUMB_FUNC u8 FUN_02003314(u16 param0, u16 param1)
THUMB_FUNC void FUN_02003328(struct PaletteData *param0, u16 param1)
{
- if (FUN_02003314(param0->unk11a_0, param1) != 1)
+ if (IsPaletteSelected(param0->unk11a_0, param1) != 1)
{
param0->unk11a_0 |= 1 << param1;
}
@@ -178,37 +178,37 @@ THUMB_FUNC void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2)
*param2 &= r4;
}
-THUMB_FUNC void FUN_020033A4(struct PaletteControl *param0,
- u16 param1,
- s16 param2,
- u8 param3,
- u8 param4,
- u16 param5)
+THUMB_FUNC void FUN_020033A4(struct PaletteFadeControl *paletteFade,
+ u16 selectedPalettes,
+ s16 delay,
+ u8 startY,
+ u8 targetY,
+ u16 color)
{
- if (param2 < 0)
+ if (delay < 0)
{
- param0->unk06_0 = abs(param2) + 2;
- param0->unk02_0 = 0;
+ paletteFade->deltaY = abs(delay) + 2;
+ paletteFade->delay = 0;
}
else
{
- param0->unk06_0 = 2;
- param0->unk02_0 = param2;
+ paletteFade->deltaY = 2;
+ paletteFade->delay = delay;
}
- param0->unk00 = param1;
- param0->unk02_6 = param3;
- param0->unk02_b = param4;
- param0->unk04_0 = param5;
+ paletteFade->selectedPalettes = selectedPalettes;
+ paletteFade->y = startY;
+ paletteFade->targetY = targetY;
+ paletteFade->blendColor = color;
- param0->unk06_4 = param0->unk02_0;
+ paletteFade->delayCounter = paletteFade->delay;
- if (param3 < param4)
+ if (startY < targetY)
{
- param0->unk04_f = 0;
+ paletteFade->yDec = 0;
return;
}
- param0->unk04_f = 1;
+ paletteFade->yDec = 1;
}
THUMB_FUNC void FUN_02003464(u32 param0, struct PaletteData *param1)
@@ -217,7 +217,7 @@ THUMB_FUNC void FUN_02003464(u32 param0, struct PaletteData *param1)
{
param1->unk11c = 0;
param1->unk11a_0 = 0;
- param1->unk118_2 = 0;
+ param1->activeFadePalettes = 0;
param1->unk11a_e = 0;
FUN_0200CAB4((s32)param0);
return;
@@ -225,11 +225,11 @@ THUMB_FUNC void FUN_02003464(u32 param0, struct PaletteData *param1)
if (param1->unk118_0 == 1)
{
- param1->unk11a_0 = param1->unk118_2;
+ param1->unk11a_0 = param1->activeFadePalettes;
FUN_02003500(param1);
FUN_02003520(param1);
- if (param1->unk118_2 == 0)
+ if (param1->activeFadePalettes == 0)
{
param1->unk11a_e = 0;
FUN_0200CAB4((s32)param0);
@@ -253,232 +253,233 @@ THUMB_FUNC void FUN_02003520(struct PaletteData *param0)
}
}
-THUMB_FUNC void FUN_02003540(struct PaletteData *param0, u8 param1, u32 param2)
+THUMB_FUNC void FUN_02003540(struct PaletteData *paletteData, u8 index, u32 param2)
{
- if (FUN_02003314(param0->unk118_2, param1) != 0)
+ if (IsPaletteSelected(paletteData->activeFadePalettes, index) != 0)
{
- if (param0->pltt[param1].unk0c.unk06_4 < param0->pltt[param1].unk0c.unk02_0)
+ if (paletteData->pltt[index].fadeCtrl.delayCounter < paletteData->pltt[index].fadeCtrl.delay)
{
- param0->pltt[param1].unk0c.unk06_4++;
+ paletteData->pltt[index].fadeCtrl.delayCounter++;
return;
}
- param0->pltt[param1].unk0c.unk06_4 = 0;
- FUN_0200359C(param0, param1, param2);
+ paletteData->pltt[index].fadeCtrl.delayCounter = 0;
+ FUN_0200359C(paletteData, index, param2);
}
}
-THUMB_FUNC void FUN_0200359C(struct PaletteData *param0, u32 param1, u32 param2)
+THUMB_FUNC void FUN_0200359C(struct PaletteData *paletteData, u32 index, u32 param2)
{
- for (u32 r6 = 0; r6 < 0x10; r6++)
+ for (u32 i = 0; i < 0x10; i++)
{
- if (FUN_02003314(param0->pltt[param1].unk0c.unk00, (u16)r6) != 0)
+ if (IsPaletteSelected(paletteData->pltt[index].fadeCtrl.selectedPalettes, (u16)i) != 0)
{
- FUN_020035F8(param0->pltt[param1].unfadedBuf + param2 * r6,
- param0->pltt[param1].fadedBuf + param2 * r6,
- &param0->pltt[param1].unk0c,
+ FUN_020035F8(paletteData->pltt[index].unfadedBuf + param2 * i,
+ paletteData->pltt[index].fadedBuf + param2 * i,
+ &paletteData->pltt[index].fadeCtrl,
param2);
}
}
- FUN_02003684(param0, (u8)param1, &param0->pltt[param1].unk0c);
+ FUN_02003684(paletteData, (u8)index, &paletteData->pltt[index].fadeCtrl);
}
THUMB_FUNC void FUN_020035F8(
- u16 *param0, u16 *param1, struct PaletteControl *param2, u32 param3)
+ u16 *src, u16 *dest, struct PaletteFadeControl *fadeCtrl, u32 numEntries)
{
- for (u32 i = 0; i < param3; i++)
+ for (u32 i = 0; i < numEntries; i++)
{
- u8 lo = (u8)((param0[i] & 0x1f) +
- ((((param2->unk04_0 & 0x1f) - (param0[i] & 0x1f)) * param2->unk02_6) >> 4));
+ u8 lo = (u8)((src[i] & 0x1f) +
+ ((((fadeCtrl->blendColor & 0x1f) - (src[i] & 0x1f)) * fadeCtrl->y) >> 4));
- u8 hi = (u8)(((param0[i] >> 10) & 0x1f) +
- (((((param2->unk04_0 >> 10) & 0x1f) - ((param0[i] >> 10) & 0x1f)) *
- param2->unk02_6) >>
+ u8 hi = (u8)(((src[i] >> 10) & 0x1f) +
+ (((((fadeCtrl->blendColor >> 10) & 0x1f) - ((src[i] >> 10) & 0x1f)) *
+ fadeCtrl->y) >>
4));
- u8 mid = (u8)(((param0[i] >> 5) & 0x1f) +
- (((((param2->unk04_0 >> 5) & 0x1f) - ((param0[i] >> 5) & 0x1f)) *
- param2->unk02_6) >>
+ u8 mid = (u8)(((src[i] >> 5) & 0x1f) +
+ (((((fadeCtrl->blendColor >> 5) & 0x1f) - ((src[i] >> 5) & 0x1f)) *
+ fadeCtrl->y) >>
4));
- param1[i] = (u16)((hi << 10) | (mid << 5) | lo);
+ dest[i] = (u16)((hi << 10) | (mid << 5) | lo);
}
}
THUMB_FUNC void FUN_02003684(
- struct PaletteData *param0, u8 param1, struct PaletteControl *param2)
+ struct PaletteData *paletteData, u8 index, struct PaletteFadeControl *fadeCtrl)
{
- s16 r4;
- if (param2->unk02_6 == param2->unk02_b)
+ if (fadeCtrl->y == fadeCtrl->targetY)
{
- if ((param0->unk118_2 & (1 << param1)) == 0)
+ if ((paletteData->activeFadePalettes & (1 << index)) == 0)
{
return;
}
- param0->unk118_2 ^= (1 << param1);
+ paletteData->activeFadePalettes ^= (1 << index);
return;
}
- if (param2->unk04_f == 0)
+
+ s16 val;
+ if (fadeCtrl->yDec == 0)
{
- r4 = (s16)param2->unk02_6;
- r4 += param2->unk06_0;
- if (r4 > param2->unk02_b)
+ val = (s16)fadeCtrl->y;
+ val += fadeCtrl->deltaY;
+ if (val > fadeCtrl->targetY)
{
- r4 = (s16)param2->unk02_b;
+ val = (s16)fadeCtrl->targetY;
}
- param2->unk02_6 = r4;
+ fadeCtrl->y = val;
return;
}
- r4 = (s16)param2->unk02_6;
- r4 -= param2->unk06_0;
- if (r4 < param2->unk02_b)
+ val = (s16)fadeCtrl->y;
+ val -= fadeCtrl->deltaY;
+ if (val < fadeCtrl->targetY)
{
- r4 = (s16)param2->unk02_b;
+ val = (s16)fadeCtrl->targetY;
}
- param2->unk02_6 = r4;
+ fadeCtrl->y = val;
}
-THUMB_FUNC void FUN_0200372C(struct PaletteData *param0)
+THUMB_FUNC void FUN_0200372C(struct PaletteData *paletteData)
{
- if (param0->unk11a_f == 0 && param0->unk118_0 != 1)
+ if (paletteData->unk11a_f == 0 && paletteData->unk118_0 != 1)
{
return;
}
- for (s32 r5 = 0; r5 < 14; r5++)
+ for (s32 i = 0; i < 14; i++)
{
- if (param0->unk11a_f != 0 ||
- (param0->pltt[r5].fadedBuf != 0 && FUN_02003314(param0->unk11a_0, (u16)r5) != 0))
+ if (paletteData->unk11a_f != 0 ||
+ (paletteData->pltt[i].fadedBuf != 0 && IsPaletteSelected(paletteData->unk11a_0, (u16)i) != 0))
{
- DC_FlushRange(param0->pltt[r5].fadedBuf, param0->pltt[r5].bufSize);
+ DC_FlushRange(paletteData->pltt[i].fadedBuf, paletteData->pltt[i].bufSize);
- switch (r5)
+ switch (i)
{
case 0:
- GX_LoadBGPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GX_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
break;
case 1:
- GXS_LoadBGPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GXS_LoadBGPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
break;
case 2:
- GX_LoadOBJPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GX_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
break;
case 3:
- GXS_LoadOBJPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GXS_LoadOBJPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
break;
case 4:
GX_BeginLoadBGExtPltt();
- GX_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GX_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
GX_EndLoadBGExtPltt();
break;
case 5:
GX_BeginLoadBGExtPltt();
- GX_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x2000, param0->pltt[r5].bufSize);
+ GX_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize);
GX_EndLoadBGExtPltt();
break;
case 6:
GX_BeginLoadBGExtPltt();
- GX_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x4000, param0->pltt[r5].bufSize);
+ GX_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize);
GX_EndLoadBGExtPltt();
break;
case 7:
GX_BeginLoadBGExtPltt();
- GX_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x6000, param0->pltt[r5].bufSize);
+ GX_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize);
GX_EndLoadBGExtPltt();
break;
case 8:
GXS_BeginLoadBGExtPltt();
- GXS_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GXS_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
GXS_EndLoadBGExtPltt();
break;
case 9:
GXS_BeginLoadBGExtPltt();
- GXS_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x2000, param0->pltt[r5].bufSize);
+ GXS_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x2000, paletteData->pltt[i].bufSize);
GXS_EndLoadBGExtPltt();
break;
case 10:
GXS_BeginLoadBGExtPltt();
- GXS_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x4000, param0->pltt[r5].bufSize);
+ GXS_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x4000, paletteData->pltt[i].bufSize);
GXS_EndLoadBGExtPltt();
break;
case 11:
GXS_BeginLoadBGExtPltt();
- GXS_LoadBGExtPltt(param0->pltt[r5].fadedBuf, 0x6000, param0->pltt[r5].bufSize);
+ GXS_LoadBGExtPltt(paletteData->pltt[i].fadedBuf, 0x6000, paletteData->pltt[i].bufSize);
GXS_EndLoadBGExtPltt();
break;
case 12:
GX_BeginLoadOBJExtPltt();
- GX_LoadOBJExtPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GX_LoadOBJExtPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
GX_EndLoadOBJExtPltt();
break;
case 13:
GXS_BeginLoadOBJExtPltt();
- GXS_LoadOBJExtPltt(param0->pltt[r5].fadedBuf, 0, param0->pltt[r5].bufSize);
+ GXS_LoadOBJExtPltt(paletteData->pltt[i].fadedBuf, 0, paletteData->pltt[i].bufSize);
GXS_EndLoadOBJExtPltt();
break;
}
}
}
- param0->unk11a_0 = param0->unk118_2;
- if (param0->unk11a_0 == 0)
+ paletteData->unk11a_0 = paletteData->activeFadePalettes;
+ if (paletteData->unk11a_0 == 0)
{
- param0->unk118_0 = 0;
+ paletteData->unk118_0 = 0;
}
}
-THUMB_FUNC u16 FUN_020038E4(struct PaletteData *param0)
+THUMB_FUNC u16 FUN_020038E4(struct PaletteData *paletteData)
{
- return param0->unk118_2;
+ return paletteData->activeFadePalettes;
}
-THUMB_FUNC void FUN_020038F0(struct PaletteData *param0, u32 param1)
+THUMB_FUNC void FUN_020038F0(struct PaletteData *paletteData, u32 param1)
{
- param0->unk11a_f = param1;
+ paletteData->unk11a_f = param1;
}
-THUMB_FUNC void FUN_02003914(
- struct PaletteData *param0, u32 param1, u32 param2, u16 param3, u16 param4, u16 param5)
+THUMB_FUNC void PaletteData_FillPalette(
+ struct PaletteData *paletteData, u32 index, u32 selection, u16 value, u16 startOffset, u16 endOffset)
{
- GF_ASSERT(param5 * 2 <= param0->pltt[param1].bufSize);
- if (param2 - 1 <= 1)
+ GF_ASSERT(endOffset * 2 <= paletteData->pltt[index].bufSize);
+ if (selection == 1 || selection == 2)
{
- MI_CpuFill16(&param0->pltt[param1].unfadedBuf[param4], param3, (u32)((param5 - param4) * 2));
+ MI_CpuFill16(&paletteData->pltt[index].unfadedBuf[startOffset], value, (u32)((endOffset - startOffset) * 2));
}
- if (param2 == 0 || param2 == 2)
+ if (selection == 0 || selection == 2)
{
- MI_CpuFill16(&param0->pltt[param1].fadedBuf[param4], param3, (u32)((param5 - param4) * 2));
+ MI_CpuFill16(&paletteData->pltt[index].fadedBuf[startOffset], value, (u32)((endOffset - startOffset) * 2));
}
}
#ifdef NONMATCHING
-THUMB_FUNC void FUN_02003974(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4)
+THUMB_FUNC void BlendPalette(u16 *src, u16 *dest, u16 numEntries, u8 coeff, u16 blendColor)
{
- s32 r12 = ((u32)(param4 << 0x1b)) >> 0x1b;
- s32 lr = ((u32)(param4 << 0x16)) >> 0x1b;
- s32 st8 = ((u32)(param4 << 0x11)) >> 0x1b;
+ 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 < param2; i++)
+ for (u16 i = 0; i < numEntries; i++)
{
- lo = (((u32)(param0[i] << 0x1b)) >> 0x1b);
- mid = (((u32)(param0[i] << 0x16)) >> 0x1b);
- hi = (((u32)(param0[i] << 0x11)) >> 0x1b);
+ lo = (((u32)(src[i] << 0x1b)) >> 0x1b);
+ mid = (((u32)(src[i] << 0x16)) >> 0x1b);
+ hi = (((u32)(src[i] << 0x11)) >> 0x1b);
- param1[i] = (lo + ((r12 - lo) * param3) >> 4) | (mid + ((lr - mid) * param3) >> 4) << 5 |
- (hi + ((st8 - hi) * param3) >> 4) << 10;
+ dest[i] = (lo + ((r12 - lo) * coeff) >> 4) | (mid + ((lr - mid) * coeff) >> 4) << 5 |
+ (hi + ((st8 - hi) * coeff) >> 4) << 10;
}
}
#else
-asm void FUN_02003974(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4)
+asm void BlendPalette(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4)
{
// clang-format off
push {r4-r7, lr}
@@ -544,97 +545,93 @@ _020039E2:
}
#endif
-THUMB_FUNC void FUN_020039E8(
- struct PaletteData *param0, u32 param1, u16 param2, u16 param3, u8 param4, u16 param5)
+THUMB_FUNC void BlendPaletteUnfaded(
+ struct PaletteData *paletteData, u32 index, u16 offset, u16 numEntries, u8 coeff, u16 blendColor)
{
BOOL r0 = FALSE;
- if (param0->pltt[param1].unfadedBuf != 0 && param0->pltt[param1].fadedBuf != 0)
+ if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0)
{
r0 = TRUE;
}
GF_ASSERT(r0);
- FUN_02003974(param0->pltt[param1].unfadedBuf + param2,
- param0->pltt[param1].fadedBuf + param2,
- param3,
- param4,
- param5);
+ BlendPalette(paletteData->pltt[index].unfadedBuf + offset,
+ paletteData->pltt[index].fadedBuf + offset,
+ numEntries,
+ coeff,
+ blendColor);
}
-THUMB_FUNC void FUN_02003A30(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4)
+THUMB_FUNC void BlendPalettes(u16 *src, u16 *dest, u16 selectedPalettes, u8 coeff, u16 blendColor)
{
- while (param2 != 0)
+ while (selectedPalettes != 0)
{
- if ((param2 & 1) != 0)
+ if ((selectedPalettes & 1) != 0)
{
- FUN_02003974(param0, param1, 0x10, param3, param4);
+ BlendPalette(src, dest, 0x10, coeff, blendColor);
}
- param2 >>= 1;
- param1 += 0x10;
- param0 += 0x10;
+ selectedPalettes >>= 1;
+ dest += 0x10;
+ src += 0x10;
}
}
-THUMB_FUNC void FUN_02003A64(
- struct PaletteData *param0, u32 param1, u16 param2, u8 param3, u16 param4)
+THUMB_FUNC void BlendPalettesUnfaded(
+ struct PaletteData *paletteData, u32 index, u16 selectedPalettes, u8 coeff, u16 blendColor)
{
u32 r4 = 0;
BOOL r0 = FALSE;
- if (param0->pltt[param1].unfadedBuf != 0 && param0->pltt[param1].fadedBuf != 0)
+ if (paletteData->pltt[index].unfadedBuf != 0 && paletteData->pltt[index].fadedBuf != 0)
{
r0 = TRUE;
}
GF_ASSERT(r0);
- while (param2 != 0)
+ while (selectedPalettes != 0)
{
- if ((param2 & 1) != 0)
+ if ((selectedPalettes & 1) != 0)
{
- FUN_020039E8(param0, param1, (u16)r4, 0x10, param3, param4);
+ BlendPaletteUnfaded(paletteData, index, (u16)r4, 0x10, coeff, blendColor);
}
- param2 >>= 1;
+ selectedPalettes >>= 1;
r4 += 0x10;
}
}
#ifdef NONMATCHING
-THUMB_FUNC void FUN_02003AC4(u16 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
+THUMB_FUNC void TintPalette_CustomTone(u16 *palette, u32 count, u32 rTone, u32 gTone, u32 bTone)
{
- s32 r4, lo, mid, hi, add;
- for (r4 = 0; r4 < param1; r4++)
+ s32 r, g, b, i;
+ u32 gray;
+
+ for (i = 0; i < count; i++)
{
- lo = ((param0[r4]) & 0x1f);
- mid = ((param0[r4] >> 5) & 0x1f);
- hi = ((param0[r4] >> 10) & 0x1f);
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
+ b = (*palette >> 10) & 0x1F;
- add = (lo * 0x4c + mid * 0x97 + hi * 0x1d) >> 8;
+ gray = (r *76 + g * 151 + b * 29) >> 8;
- lo = (u16)(add * param2) >> 8;
- mid = (u16)(add * param3) >> 8;
- hi = (u16)(add * param4) >> 8;
+ r = (u16)((rTone * gray)) >> 8;
+ g = (u16)((gTone * gray)) >> 8;
+ b = (u16)((bTone * gray)) >> 8;
- if (lo > 0x1f)
- {
- lo = 0x1f;
- }
- if (mid > 0x1f)
- {
- mid = 0x1f;
- }
- if (hi > 0x1f)
- {
- hi = 0x1f;
- }
+ if (r > 31)
+ r = 31;
+ if (g > 31)
+ g = 31;
+ if (b > 31)
+ b = 31;
- param0[r4] = (hi << 10) | (mid << 5) | lo;
+ *palette++ = (b << 10) | (g << 5) | (r << 0);
}
}
#else
-asm void FUN_02003AC4(u16 *param0, u32 param1, u32 param2, u32 param3, u32 param4)
+asm void TintPalette_CustomTone(u16 *palette, u32 count, u32 rTone, u32 gTone, u32 bTone)
{
// clang-format off
push {r3-r7, lr}
@@ -707,28 +704,28 @@ _02003B3C:
}
#endif
-THUMB_FUNC void FUN_02003B40(struct PaletteData *param0,
+THUMB_FUNC void FUN_02003B40(struct PaletteData *paletteData,
NarcId narcId,
s32 memberId,
u32 heap_id,
- u32 param4,
- u32 param5,
- u16 param6,
- u32 param7,
- u32 param8,
- u32 param9)
+ 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 (param5 == 0)
+ if (size == 0)
{
- param5 = pltData->szByte;
+ size = pltData->szByte;
}
- FUN_02003AC4(pltData->pRawData, 0x10, param7, param8, param9);
- PaletteData_LoadPalette(param0, pltData->pRawData, param4, param6, (u16)param5);
+ TintPalette_CustomTone(pltData->pRawData, 0x10, rTone, gTone, bTone);
+ PaletteData_LoadPalette(paletteData, pltData->pRawData, index, offset, (u16)size);
FreeToHeap(ptr);
}
diff --git a/include/unk_02002F08.h b/include/unk_02002F08.h
index d5553eb2..c4bfeddd 100644
--- a/include/unk_02002F08.h
+++ b/include/unk_02002F08.h
@@ -5,19 +5,28 @@
#include "gf_gfx_loader.h"
#include "string16.h"
-struct PaletteControl
+
+struct PlttData
+{
+ u16 r:5; // red
+ u16 g:5; // green
+ u16 b:5; // blue
+ u16 unused_15:1;
+};
+
+struct PaletteFadeControl
{
- u16 unk00;
+ u16 selectedPalettes;
- u16 unk02_0 : 6;
- u16 unk02_6 : 5;
- u16 unk02_b : 5;
+ u16 delay : 6;
+ u16 y : 5;
+ u16 targetY : 5;
- u16 unk04_0 : 15;
- u16 unk04_f : 1;
+ u16 blendColor : 15;
+ u16 yDec : 1;
- u16 unk06_0 : 4;
- u16 unk06_4 : 6;
+ u16 deltaY : 4;
+ u16 delayCounter : 6;
u16 unk06_a : 6;
};
@@ -26,7 +35,7 @@ struct Palette
u16 *unfadedBuf;
u16 *fadedBuf;
u32 bufSize;
- struct PaletteControl unk0c;
+ struct PaletteFadeControl fadeCtrl;
};
struct PaletteData
@@ -34,7 +43,7 @@ struct PaletteData
struct Palette pltt[14];
u16 unk118_0 : 2;
- u16 unk118_2 : 14;
+ u16 activeFadePalettes : 14;
u16 unk11a_0 : 14;
u16 unk11a_e : 1;
u16 unk11a_f : 1;
diff --git a/include/unk_020030E8.h b/include/unk_020030E8.h
index 346b9715..bf71ca7f 100644
--- a/include/unk_020030E8.h
+++ b/include/unk_020030E8.h
@@ -3,11 +3,11 @@
#include "unk_02002F08.h"
void FUN_02003108(struct PaletteData *param0, u32 param1, u16 param2, u32 param3);
-void FUN_0200317C(NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest);
-void FUN_020031B8(
+void CopyPaletteFromNarc(NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest);
+void PaletteData_CopyPalette(
struct PaletteData *param0, u32 param1, u16 param2, u32 param3, u16 param4, u16 param5);
-u16 *FUN_020031FC(struct PaletteData *param0, u32 param1);
-u16 *FUN_02003204(struct PaletteData *param0, u32 param1);
+u16 *PaletteData_GetUnfadedBuf(struct PaletteData *param0, u32 param1);
+u16 *PaletteData_GetFadedBuf(struct PaletteData *param0, u32 param1);
u32 FUN_02003210(struct PaletteData *param0,
u16 param1,
u16 param2,
@@ -15,10 +15,10 @@ u32 FUN_02003210(struct PaletteData *param0,
u8 param6,
u8 param7,
u16 param8);
-u8 FUN_02003314(u16 param0, u16 param1);
+u8 IsPaletteSelected(u16 param0, u16 param1);
void FUN_02003328(struct PaletteData *param0, u16 param1);
void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2);
-void FUN_020033A4(struct PaletteControl *param0,
+void FUN_020033A4(struct PaletteFadeControl *param0,
u16 param1,
s16 param2,
u8 param3,
@@ -29,20 +29,20 @@ void FUN_02003500(struct PaletteData *param0);
void FUN_02003520(struct PaletteData *param0);
void FUN_02003540(struct PaletteData *param0, u8 param1, u32 param2);
void FUN_0200359C(struct PaletteData *param0, u32 param1, u32 param2);
-void FUN_020035F8(u16 *param0, u16 *param1, struct PaletteControl *param2, u32 param3);
+void FUN_020035F8(u16 *param0, u16 *param1, struct PaletteFadeControl *param2, u32 param3);
void FUN_02003684(
- struct PaletteData *param0, u8 param1, struct PaletteControl *param2);
+ struct PaletteData *param0, u8 param1, struct PaletteFadeControl *param2);
void FUN_0200372C(struct PaletteData *param0);
u16 FUN_020038E4(struct PaletteData *param0);
void FUN_020038F0(struct PaletteData *param0, u32 param1);
-void FUN_02003914(
+void PaletteData_FillPalette(
struct PaletteData *param0, u32 param1, u32 param2, u16 param3, u16 param4, u16 param5);
-void FUN_02003974(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4);
-void FUN_020039E8(
+void BlendPalette(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4);
+void BlendPaletteUnfaded(
struct PaletteData *param0, u32 param1, u16 param2, u16 param3, u8 param4, u16 param5);
-void FUN_02003A30(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4);
-void FUN_02003A64(struct PaletteData *param0, u32 param1, u16 param2, u8 param3, u16 param4);
-void FUN_02003AC4(u16 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
+void BlendPalettes(u16 *param0, u16 *param1, u16 param2, u8 param3, u16 param4);
+void BlendPalettesUnfaded(struct PaletteData *param0, u32 param1, u16 param2, u8 param3, u16 param4);
+void TintPalette_CustomTone(u16 *param0, u32 param1, u32 param2, u32 param3, u32 param4);
void FUN_02003B40(struct PaletteData *param0,
NarcId narcId,
s32 memberId,