blend_palette
This commit is contained in:
@@ -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.
|
|
||||||
@@ -1159,7 +1159,7 @@ DoWarp: @ 807E438
|
|||||||
bl ScriptContext2_Enable
|
bl ScriptContext2_Enable
|
||||||
bl sub_8055F88
|
bl sub_8055F88
|
||||||
bl sub_807DC18
|
bl sub_807DC18
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
movs r0, 0x9
|
movs r0, 0x9
|
||||||
bl PlaySE
|
bl PlaySE
|
||||||
ldr r0, _0807E464 @ =gUnknown_3005020
|
ldr r0, _0807E464 @ =gUnknown_3005020
|
||||||
@@ -1182,7 +1182,7 @@ DoDiveWarp: @ 807E470
|
|||||||
bl ScriptContext2_Enable
|
bl ScriptContext2_Enable
|
||||||
bl sub_8055F88
|
bl sub_8055F88
|
||||||
bl sub_807DC18
|
bl sub_807DC18
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
ldr r0, _0807E494 @ =gUnknown_3005020
|
ldr r0, _0807E494 @ =gUnknown_3005020
|
||||||
ldr r1, _0807E498 @ =sub_807DF64
|
ldr r1, _0807E498 @ =sub_807DF64
|
||||||
str r1, [r0]
|
str r1, [r0]
|
||||||
@@ -1807,7 +1807,7 @@ _0807E95C:
|
|||||||
_0807E966:
|
_0807E966:
|
||||||
bl sub_8055F88
|
bl sub_8055F88
|
||||||
_0807E96A:
|
_0807E96A:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
strh r0, [r5, 0x8]
|
strh r0, [r5, 0x8]
|
||||||
ldr r0, _0807E97C @ =sub_807E718
|
ldr r0, _0807E97C @ =sub_807E718
|
||||||
@@ -1891,7 +1891,7 @@ _0807EA00:
|
|||||||
b _0807EAB0
|
b _0807EAB0
|
||||||
_0807EA10:
|
_0807EA10:
|
||||||
bl sub_8055F88
|
bl sub_8055F88
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
ldrb r1, [r7, 0x5]
|
ldrb r1, [r7, 0x5]
|
||||||
movs r0, 0xD
|
movs r0, 0xD
|
||||||
negs r0, r0
|
negs r0, r0
|
||||||
|
|||||||
+6
-6
@@ -122,7 +122,7 @@ weather_set: @ 8079CF4
|
|||||||
beq _08079D0A
|
beq _08079D0A
|
||||||
cmp r4, 0xD
|
cmp r4, 0xD
|
||||||
beq _08079D0A
|
beq _08079D0A
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
_08079D0A:
|
_08079D0A:
|
||||||
ldr r1, _08079D4C @ =gUnknown_2037F34
|
ldr r1, _08079D4C @ =gUnknown_2037F34
|
||||||
ldr r2, _08079D50 @ =0x000006d1
|
ldr r2, _08079D50 @ =0x000006d1
|
||||||
@@ -170,7 +170,7 @@ sub_8079D60: @ 8079D60
|
|||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
lsls r4, 24
|
lsls r4, 24
|
||||||
lsrs r4, 24
|
lsrs r4, 24
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
ldr r0, _08079D84 @ =gUnknown_2037F34
|
ldr r0, _08079D84 @ =gUnknown_2037F34
|
||||||
movs r2, 0xDA
|
movs r2, 0xDA
|
||||||
lsls r2, 3
|
lsls r2, 3
|
||||||
@@ -193,7 +193,7 @@ sub_8079D8C: @ 8079D8C
|
|||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
lsls r4, 24
|
lsls r4, 24
|
||||||
lsrs r4, 24
|
lsrs r4, 24
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
ldr r1, _08079DB8 @ =gUnknown_2037F34
|
ldr r1, _08079DB8 @ =gUnknown_2037F34
|
||||||
movs r2, 0xDA
|
movs r2, 0xDA
|
||||||
lsls r2, 3
|
lsls r2, 3
|
||||||
@@ -2625,8 +2625,8 @@ _0807AFFA:
|
|||||||
_0807B000: .4byte 0x000006dd
|
_0807B000: .4byte 0x000006dd
|
||||||
thumb_func_end SetRainStrengthFromSoundEffect
|
thumb_func_end SetRainStrengthFromSoundEffect
|
||||||
|
|
||||||
thumb_func_start play_some_sound
|
thumb_func_start PlayRainStoppingSoundEffect
|
||||||
play_some_sound: @ 807B004
|
PlayRainStoppingSoundEffect: @ 807B004
|
||||||
push {lr}
|
push {lr}
|
||||||
bl IsSpecialSEPlaying
|
bl IsSpecialSEPlaying
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
@@ -2658,7 +2658,7 @@ _0807B03C:
|
|||||||
_0807B042:
|
_0807B042:
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
thumb_func_end play_some_sound
|
thumb_func_end PlayRainStoppingSoundEffect
|
||||||
|
|
||||||
thumb_func_start sub_807B048
|
thumb_func_start sub_807B048
|
||||||
sub_807B048: @ 807B048
|
sub_807B048: @ 807B048
|
||||||
|
|||||||
+6
-6
@@ -854,7 +854,7 @@ _0806F424: .4byte gPaletteFade
|
|||||||
_0806F428:
|
_0806F428:
|
||||||
movs r0, 0x29
|
movs r0, 0x29
|
||||||
bl IncrementGameStat
|
bl IncrementGameStat
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_806EF18
|
bl sub_806EF18
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F448 @ =sub_810275C
|
ldr r0, _0806F448 @ =sub_810275C
|
||||||
@@ -881,7 +881,7 @@ sub_806F44C: @ 806F44C
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806F460: .4byte gPaletteFade
|
_0806F460: .4byte gPaletteFade
|
||||||
_0806F464:
|
_0806F464:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_806EF18
|
bl sub_806EF18
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu
|
ldr r0, _0806F47C @ =CB2_PartyMenuFromStartMenu
|
||||||
@@ -908,7 +908,7 @@ sub_806F480: @ 806F480
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806F494: .4byte gPaletteFade
|
_0806F494: .4byte gPaletteFade
|
||||||
_0806F498:
|
_0806F498:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_806EF18
|
bl sub_806EF18
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu
|
ldr r0, _0806F4B0 @ =UseFameCheckerFromMenu
|
||||||
@@ -935,7 +935,7 @@ sub_806F4B4: @ 806F4B4
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806F4C8: .4byte gPaletteFade
|
_0806F4C8: .4byte gPaletteFade
|
||||||
_0806F4CC:
|
_0806F4CC:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_806EF18
|
bl sub_806EF18
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F4E4 @ =sub_80568A8
|
ldr r0, _0806F4E4 @ =sub_80568A8
|
||||||
@@ -974,7 +974,7 @@ sub_806F4FC: @ 806F4FC
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806F510: .4byte gPaletteFade
|
_0806F510: .4byte gPaletteFade
|
||||||
_0806F514:
|
_0806F514:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_806EF18
|
bl sub_806EF18
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F534 @ =sub_8088388
|
ldr r0, _0806F534 @ =sub_8088388
|
||||||
@@ -1029,7 +1029,7 @@ sub_806F56C: @ 806F56C
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0806F580: .4byte gPaletteFade
|
_0806F580: .4byte gPaletteFade
|
||||||
_0806F584:
|
_0806F584:
|
||||||
bl play_some_sound
|
bl PlayRainStoppingSoundEffect
|
||||||
bl sub_80563F0
|
bl sub_80563F0
|
||||||
ldr r0, _0806F59C @ =gUnknown_300502C
|
ldr r0, _0806F59C @ =gUnknown_300502C
|
||||||
ldrb r0, [r0]
|
ldrb r0, [r0]
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ void sub_80AEDBC(void);
|
|||||||
void DoCurrentWeather(void);
|
void DoCurrentWeather(void);
|
||||||
void SetSav1WeatherFromCurrMapHeader(void);
|
void SetSav1WeatherFromCurrMapHeader(void);
|
||||||
void sub_807B0C4(u16 *, u16 *, u32);
|
void sub_807B0C4(u16 *, u16 *, u32);
|
||||||
void play_some_sound(void);
|
void PlayRainStoppingSoundEffect(void);
|
||||||
|
|
||||||
#endif // GUARD_WEATHER_H
|
#endif // GUARD_WEATHER_H
|
||||||
|
|||||||
+1
-1
@@ -80,7 +80,7 @@ SECTIONS {
|
|||||||
asm/trig.o(.text);
|
asm/trig.o(.text);
|
||||||
src/random.o(.text);
|
src/random.o(.text);
|
||||||
src/util.o(.text);
|
src/util.o(.text);
|
||||||
asm/blend_palette.o(.text);
|
src/blend_palette.o(.text);
|
||||||
asm/daycare.o(.text);
|
asm/daycare.o(.text);
|
||||||
asm/egg_hatch.o(.text);
|
asm/egg_hatch.o(.text);
|
||||||
asm/battle_interface.o(.text);
|
asm/battle_interface.o(.text);
|
||||||
|
|||||||
@@ -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
@@ -320,7 +320,7 @@ static void Task_SeaGallop_3(void)
|
|||||||
|
|
||||||
warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006];
|
warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006];
|
||||||
Overworld_SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]);
|
Overworld_SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]);
|
||||||
play_some_sound();
|
PlayRainStoppingSoundEffect();
|
||||||
PlaySE(SE_KAIDAN);
|
PlaySE(SE_KAIDAN);
|
||||||
gUnknown_3005020 = sub_807DF64;
|
gUnknown_3005020 = sub_807DF64;
|
||||||
warp_in();
|
warp_in();
|
||||||
|
|||||||
Reference in New Issue
Block a user