blend_palette

This commit is contained in:
PikalaxALT
2019-05-05 12:24:15 -04:00
parent 2555f72246
commit 7f07bd6607
8 changed files with 65 additions and 205 deletions
-186
View File
@@ -1,186 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start BlendPalette
BlendPalette: @ 8045274
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r1, 16
lsrs r1, 16
mov r12, r1
lsls r2, 24
lsrs r7, r2, 24
mov r0, sp
strh r3, [r0]
movs r6, 0
cmp r6, r12
bcs _080452FA
ldr r0, _0804530C @ =gPlttBufferUnfaded
mov r10, r0
ldr r1, _08045310 @ =gPlttBufferFaded
mov r9, r1
_080452A2:
mov r0, r8
adds r5, r6, r0
lsls r5, 16
lsrs r5, 15
mov r1, r10
adds r0, r5, r1
ldr r3, [r0]
lsls r4, r3, 27
lsls r2, r3, 22
lsls r3, 17
add r5, r9
lsrs r4, 27
ldr r1, [sp]
lsls r0, r1, 27
lsrs r0, 27
subs r0, r4
muls r0, r7
asrs r0, 4
adds r4, r0
lsrs r2, 27
lsls r0, r1, 22
lsrs r0, 27
subs r0, r2
muls r0, r7
asrs r0, 4
adds r2, r0
lsls r2, 5
orrs r4, r2
lsrs r3, 27
lsls r1, 17
lsrs r1, 27
subs r1, r3
adds r0, r1, 0
muls r0, r7
asrs r0, 4
adds r3, r0
lsls r3, 10
orrs r4, r3
strh r4, [r5]
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, r12
bcc _080452A2
_080452FA:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804530C: .4byte gPlttBufferUnfaded
_08045310: .4byte gPlttBufferFaded
thumb_func_end BlendPalette
thumb_func_start sub_8045314
sub_8045314: @ 8045314
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r5, r0, 0
adds r6, r2, 0
adds r4, r3, 0
lsls r1, 16
lsrs r2, r1, 16
cmp r6, 0x10
bne _08045342
subs r4, 0x1
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080453B2
_08045336:
strh r2, [r5]
adds r5, 0x2
subs r4, 0x1
cmp r4, r0
bne _08045336
b _080453B2
_08045342:
movs r0, 0x1F
movs r3, 0x1F
mov r9, r3
mov r7, r9
ands r7, r2
mov r9, r7
lsrs r2, r1, 21
ands r2, r0
mov r12, r2
lsrs r1, 26
mov r10, r1
mov r3, r10
ands r3, r0
mov r10, r3
subs r4, 0x1
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080453B2
movs r7, 0x1F
mov r8, r7
_0804536C:
ldrh r2, [r5]
movs r3, 0x1F
ands r3, r2
lsls r2, 16
lsrs r1, r2, 21
mov r0, r8
ands r1, r0
lsrs r2, 26
ands r2, r0
mov r7, r9
subs r0, r7, r3
muls r0, r6
lsrs r0, 4
adds r3, r0
mov r7, r12
subs r0, r7, r1
muls r0, r6
lsrs r0, 4
adds r1, r0
lsls r1, 5
orrs r3, r1
mov r1, r10
subs r0, r1, r2
muls r0, r6
lsrs r0, 4
adds r2, r0
lsls r2, 10
orrs r3, r2
strh r3, [r5]
adds r5, 0x2
subs r4, 0x1
movs r0, 0x1
negs r0, r0
cmp r4, r0
bne _0804536C
_080453B2:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8045314
.align 2, 0 @ Don't pad with nop.
+4 -4
View File
@@ -1159,7 +1159,7 @@ DoWarp: @ 807E438
bl ScriptContext2_Enable
bl sub_8055F88
bl sub_807DC18
bl play_some_sound
bl PlayRainStoppingSoundEffect
movs r0, 0x9
bl PlaySE
ldr r0, _0807E464 @ =gUnknown_3005020
@@ -1182,7 +1182,7 @@ DoDiveWarp: @ 807E470
bl ScriptContext2_Enable
bl sub_8055F88
bl sub_807DC18
bl play_some_sound
bl PlayRainStoppingSoundEffect
ldr r0, _0807E494 @ =gUnknown_3005020
ldr r1, _0807E498 @ =sub_807DF64
str r1, [r0]
@@ -1807,7 +1807,7 @@ _0807E95C:
_0807E966:
bl sub_8055F88
_0807E96A:
bl play_some_sound
bl PlayRainStoppingSoundEffect
movs r0, 0
strh r0, [r5, 0x8]
ldr r0, _0807E97C @ =sub_807E718
@@ -1891,7 +1891,7 @@ _0807EA00:
b _0807EAB0
_0807EA10:
bl sub_8055F88
bl play_some_sound
bl PlayRainStoppingSoundEffect
ldrb r1, [r7, 0x5]
movs r0, 0xD
negs r0, r0
+6 -6
View File
@@ -122,7 +122,7 @@ weather_set: @ 8079CF4
beq _08079D0A
cmp r4, 0xD
beq _08079D0A
bl play_some_sound
bl PlayRainStoppingSoundEffect
_08079D0A:
ldr r1, _08079D4C @ =gUnknown_2037F34
ldr r2, _08079D50 @ =0x000006d1
@@ -170,7 +170,7 @@ sub_8079D60: @ 8079D60
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl play_some_sound
bl PlayRainStoppingSoundEffect
ldr r0, _08079D84 @ =gUnknown_2037F34
movs r2, 0xDA
lsls r2, 3
@@ -193,7 +193,7 @@ sub_8079D8C: @ 8079D8C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl play_some_sound
bl PlayRainStoppingSoundEffect
ldr r1, _08079DB8 @ =gUnknown_2037F34
movs r2, 0xDA
lsls r2, 3
@@ -2625,8 +2625,8 @@ _0807AFFA:
_0807B000: .4byte 0x000006dd
thumb_func_end SetRainStrengthFromSoundEffect
thumb_func_start play_some_sound
play_some_sound: @ 807B004
thumb_func_start PlayRainStoppingSoundEffect
PlayRainStoppingSoundEffect: @ 807B004
push {lr}
bl IsSpecialSEPlaying
lsls r0, 24
@@ -2658,7 +2658,7 @@ _0807B03C:
_0807B042:
pop {r0}
bx r0
thumb_func_end play_some_sound
thumb_func_end PlayRainStoppingSoundEffect
thumb_func_start sub_807B048
sub_807B048: @ 807B048
+6 -6
View File
@@ -854,7 +854,7 @@ _0806F424: .4byte gPaletteFade
_0806F428:
movs r0, 0x29
bl IncrementGameStat
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl sub_80563F0
ldr r0, _0806F448 @ =sub_810275C
@@ -881,7 +881,7 @@ sub_806F44C: @ 806F44C
.align 2, 0
_0806F460: .4byte gPaletteFade
_0806F464:
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl sub_80563F0
ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu
@@ -908,7 +908,7 @@ sub_806F480: @ 806F480
.align 2, 0
_0806F494: .4byte gPaletteFade
_0806F498:
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl sub_80563F0
ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu
@@ -935,7 +935,7 @@ sub_806F4B4: @ 806F4B4
.align 2, 0
_0806F4C8: .4byte gPaletteFade
_0806F4CC:
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl sub_80563F0
ldr r0, _0806F4E4 @ =sub_80568A8
@@ -974,7 +974,7 @@ sub_806F4FC: @ 806F4FC
.align 2, 0
_0806F510: .4byte gPaletteFade
_0806F514:
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_806EF18
bl sub_80563F0
ldr r0, _0806F534 @ =sub_8088388
@@ -1029,7 +1029,7 @@ sub_806F56C: @ 806F56C
.align 2, 0
_0806F580: .4byte gPaletteFade
_0806F584:
bl play_some_sound
bl PlayRainStoppingSoundEffect
bl sub_80563F0
ldr r0, _0806F59C @ =gUnknown_300502C
ldrb r0, [r0]
+1 -1
View File
@@ -12,6 +12,6 @@ void sub_80AEDBC(void);
void DoCurrentWeather(void);
void SetSav1WeatherFromCurrMapHeader(void);
void sub_807B0C4(u16 *, u16 *, u32);
void play_some_sound(void);
void PlayRainStoppingSoundEffect(void);
#endif // GUARD_WEATHER_H
+1 -1
View File
@@ -80,7 +80,7 @@ SECTIONS {
asm/trig.o(.text);
src/random.o(.text);
src/util.o(.text);
asm/blend_palette.o(.text);
src/blend_palette.o(.text);
asm/daycare.o(.text);
asm/egg_hatch.o(.text);
asm/battle_interface.o(.text);
+46
View File
@@ -0,0 +1,46 @@
#include "global.h"
#include "blend_palette.h"
#include "palette.h"
void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor)
{
u16 i;
for (i = 0; i < numEntries; i++)
{
u16 index = i + palOffset;
struct PlttData *data1 = (struct PlttData *)&gPlttBufferUnfaded[index];
s8 r = data1->r;
s8 g = data1->g;
s8 b = data1->b;
struct PlttData *data2 = (struct PlttData *)&blendColor;
gPlttBufferFaded[index] = ((r + (((data2->r - r) * coeff) >> 4)) << 0)
| ((g + (((data2->g - g) * coeff) >> 4)) << 5)
| ((b + (((data2->b - b) * coeff) >> 4)) << 10);
}
}
void sub_8045314(u16 * palbuff, u16 blend_pal, u32 coefficient, s32 size)
{
if (coefficient == 16)
{
while (--size != -1)
{
*palbuff++ = blend_pal;
}
}
else
{
u16 r = (blend_pal >> 0) & 0x1F;
u16 g = (blend_pal >> 5) & 0x1F;
u16 b = (blend_pal >> 10) & 0x1F;
while (--size != -1)
{
u16 r2 = (*palbuff >> 0) & 0x1F;
u16 g2 = (*palbuff >> 5) & 0x1F;
u16 b2 = (*palbuff >> 10) & 0x1F;
*palbuff++ = ((r2 + (((r - r2) * coefficient) >> 4)) << 0)
| ((g2 + (((g - g2) * coefficient) >> 4)) << 5)
| ((b2 + (((b - b2) * coefficient) >> 4)) << 10);
}
}
}
+1 -1
View File
@@ -320,7 +320,7 @@ static void Task_SeaGallop_3(void)
warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006];
Overworld_SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]);
play_some_sound();
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gUnknown_3005020 = sub_807DF64;
warp_in();