mirror of
https://github.com/YohannDR/mzm.git
synced 2024-10-06 18:13:20 +00:00
Match ApplyFadeOnColor from color_effects.c (lucky guess)
This commit is contained in:
parent
0edc070203
commit
9b2a3cbdf9
@ -2,7 +2,7 @@
|
||||
|
||||
This is a work in progress decompilation of Metroid - Zero Mission.
|
||||
|
||||
2697/2721 functions decompiled (99.11%, 24 left)
|
||||
2698/2721 functions decompiled (99.15%, 23 left)
|
||||
|
||||
0x76b014/0x76b014 bytes of data not in blobs (100%, 0 left)
|
||||
|
||||
|
@ -612,16 +612,23 @@ void ApplySpecialBackgroundFadingColor(u8 type, u8 color, u16** ppSrc, u16** ppD
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
/**
|
||||
* @brief 5bbe4 | cc | Applies a fade effect on a color, unused
|
||||
*
|
||||
* @param type Fading type
|
||||
* @param color Color
|
||||
* @param currentColor Current color
|
||||
*/
|
||||
u16 ApplyFadeOnColor(u8 type, u16 color, u8 currentColor)
|
||||
{
|
||||
// https://decomp.me/scratch/RdwBt
|
||||
u8 red;
|
||||
u8 green;
|
||||
u8 blue;
|
||||
|
||||
s32 red;
|
||||
s32 green;
|
||||
s32 blue;
|
||||
u32 tmp_red;
|
||||
|
||||
red = RED(color);
|
||||
tmp_red = RED(color);
|
||||
red = tmp_red; // Needed to produce matching ASM.
|
||||
green = GREEN(color);
|
||||
blue = BLUE(color);
|
||||
|
||||
@ -654,120 +661,3 @@ u16 ApplyFadeOnColor(u8 type, u16 color, u8 currentColor)
|
||||
|
||||
return COLOR_GRAD(red, green, blue);
|
||||
}
|
||||
#else
|
||||
NAKED_FUNCTION
|
||||
u16 ApplyFadeOnColor(u8 type, u16 color, u8 currentColor)
|
||||
{
|
||||
asm(" \n\
|
||||
push {r4, r5, r6, r7, lr} \n\
|
||||
lsl r0, r0, #0x18 \n\
|
||||
lsr r6, r0, #0x18 \n\
|
||||
mov ip, r6 \n\
|
||||
lsl r1, r1, #0x10 \n\
|
||||
lsr r1, r1, #0x10 \n\
|
||||
lsl r2, r2, #0x18 \n\
|
||||
lsr r5, r2, #0x18 \n\
|
||||
movs r7, #0x1f \n\
|
||||
add r3, r1, #0 \n\
|
||||
and r3, r7 \n\
|
||||
movs r0, #0xf8 \n\
|
||||
lsl r0, r0, #2 \n\
|
||||
and r0, r1 \n\
|
||||
lsr r4, r0, #5 \n\
|
||||
movs r0, #0xf8 \n\
|
||||
lsl r0, r0, #7 \n\
|
||||
and r0, r1 \n\
|
||||
lsr r2, r0, #0xa \n\
|
||||
cmp r6, #1 \n\
|
||||
beq lbl_0805bc3e \n\
|
||||
cmp r6, #1 \n\
|
||||
bgt lbl_0805bc18 \n\
|
||||
cmp r6, #0 \n\
|
||||
beq lbl_0805bc24 \n\
|
||||
b lbl_0805bc9e \n\
|
||||
lbl_0805bc18: \n\
|
||||
mov r0, ip \n\
|
||||
cmp r0, #2 \n\
|
||||
beq lbl_0805bc5e \n\
|
||||
cmp r0, #3 \n\
|
||||
beq lbl_0805bc7e \n\
|
||||
b lbl_0805bc9e \n\
|
||||
lbl_0805bc24: \n\
|
||||
add r0, r3, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r3, r0, #5 \n\
|
||||
movs r1, #0x1f \n\
|
||||
and r3, r1 \n\
|
||||
add r0, r4, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r4, r0, #5 \n\
|
||||
and r4, r1 \n\
|
||||
add r0, r2, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r2, r0, #5 \n\
|
||||
b lbl_0805bc9c \n\
|
||||
lbl_0805bc3e: \n\
|
||||
sub r0, r7, r3 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
movs r1, #0x1f \n\
|
||||
sub r3, r1, r0 \n\
|
||||
and r3, r1 \n\
|
||||
sub r0, r7, r4 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
sub r4, r1, r0 \n\
|
||||
and r4, r1 \n\
|
||||
sub r0, r7, r2 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
sub r2, r1, r0 \n\
|
||||
b lbl_0805bc9c \n\
|
||||
lbl_0805bc5e: \n\
|
||||
add r0, r3, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
sub r3, r3, r0 \n\
|
||||
movs r1, #0x1f \n\
|
||||
and r3, r1 \n\
|
||||
add r0, r4, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
sub r4, r4, r0 \n\
|
||||
and r4, r1 \n\
|
||||
add r0, r2, #0 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
sub r2, r2, r0 \n\
|
||||
b lbl_0805bc9c \n\
|
||||
lbl_0805bc7e: \n\
|
||||
sub r0, r7, r3 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
add r3, r3, r0 \n\
|
||||
movs r1, #0x1f \n\
|
||||
and r3, r1 \n\
|
||||
sub r0, r7, r4 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
add r4, r4, r0 \n\
|
||||
and r4, r1 \n\
|
||||
sub r0, r7, r2 \n\
|
||||
mul r0, r5, r0 \n\
|
||||
asr r0, r0, #5 \n\
|
||||
add r2, r2, r0 \n\
|
||||
lbl_0805bc9c: \n\
|
||||
and r2, r1 \n\
|
||||
lbl_0805bc9e: \n\
|
||||
lsl r0, r4, #5 \n\
|
||||
orr r3, r0 \n\
|
||||
lsl r0, r2, #0xa \n\
|
||||
orr r3, r0 \n\
|
||||
lsl r0, r3, #0x10 \n\
|
||||
lsr r0, r0, #0x10 \n\
|
||||
pop {r4, r5, r6, r7} \n\
|
||||
pop {r1} \n\
|
||||
bx r1 \n\
|
||||
");
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user