Start intro_credits_graphics decomp
This commit is contained in:
@@ -1,5 +1,487 @@
|
||||
#include "global.h"
|
||||
#include "intro_credits_graphics.h"
|
||||
#include "palette.h"
|
||||
#include "decompress.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "task.h"
|
||||
#include "main.h"
|
||||
|
||||
EWRAM_DATA u16 gUnknown_0203BD24 = 0;
|
||||
EWRAM_DATA u16 gUnknown_0203BD26 = 0;
|
||||
EWRAM_DATA u16 gUnknown_0203BD28 = 0;
|
||||
EWRAM_DATA s16 gUnknown_0203BD26 = 0;
|
||||
EWRAM_DATA s16 gUnknown_0203BD28 = 0;
|
||||
|
||||
extern const u16 gUnknown_085F06E0[]/* = INCBIN_U16("graphics/intro/intro2_grass.gbapal")*/;
|
||||
extern const u16 gUnknown_085F0700[]/* = INCBIN_U16("graphics/intro/intro2_grass_afternoon.gbapal")*/;
|
||||
extern const u16 gUnknown_085F0720[]/* = INCBIN_U16("graphics/intro/intro2_grass_night.gbapal")*/;
|
||||
extern const u8 gUnknown_085F0740[]/* = INCBIN_U8("graphics/intro/intro2_grass.4bpp.lz")*/;
|
||||
extern const u8 gUnknown_085F0BC0[]/* = INCBIN_U8("graphics/intro/intro2_grass_map.bin.lz")*/;
|
||||
extern const u16 gUnknown_085F0CFC[]/* = INCBIN_U16("graphics/intro/8412818.gbapal")*/;
|
||||
extern const u16 gUnknown_085F0D5C[]/* = INCBIN_U16("graphics/intro/8412878.gbapal")*/;
|
||||
extern const u8 gUnknown_085F0DBC[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds.4bpp.lz")*/;
|
||||
extern const u8 gUnknown_085F1398[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds_map.bin.lz")*/;
|
||||
extern const u16 gUnknown_085F1668[]/* = INCBIN_U16("graphics/intro/intro2_bgclouds.gbapal")*/;
|
||||
extern const u16 gUnknown_085F1688[]/* = INCBIN_U16("graphics/intro/intro2_bgclouds_afternoon.gbapal")*/;
|
||||
extern const u8 gUnknown_085F16A8[]/* = INCBIN_U8("graphics/intro/intro2_bgclouds2.4bpp.lz")*/;
|
||||
extern const u16 gUnknown_085F17E4[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees2.gbapal")*/;
|
||||
extern const u16 gUnknown_085F1804[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees2_afternoon.gbapal")*/;
|
||||
extern const u8 gUnknown_085F1824[]/* = INCBIN_U8("graphics/intro/intro2_bgtrees.4bpp.lz")*/;
|
||||
extern const u8 gUnknown_085F1EAC[]/* = INCBIN_U8("graphics/intro/intro2_bgtrees_map.bin.lz")*/;
|
||||
extern const u16 gUnknown_085F21B0[]/* = INCBIN_U16("graphics/intro/intro2_bgtrees.gbapal")*/;
|
||||
extern const u8 gIntro2TreeTiles[]/* = INCBIN_U8("graphics/intro/intro2_bgtreessmall.4bpp.lz")*/;
|
||||
extern const u16 gUnknown_085F231C[]/* = INCBIN_U16("graphics/intro/8413E38.gbapal")*/;
|
||||
extern const u8 gUnknown_085F235C[]/* = INCBIN_U8("graphics/intro/intro2_bgnight.4bpp.lz")*/; // only used in credits, coupled with intro because bicycle sequence
|
||||
extern const u16 gUnknown_085F2548[]/* = INCBIN_U16("graphics/intro/intro2_bgnight.gbapal")*/;
|
||||
extern const u8 gUnknown_085F2568[]/* = INCBIN_U8("graphics/intro/intro2_bgnight_map.bin.lz")*/;
|
||||
extern const u8 gIntro2NightTiles[]/* = INCBIN_U8("graphics/intro/intro2_night.4bpp.lz")*/;
|
||||
extern const u16 gIntro2BrendanPalette[]/* = INCBIN_U16("graphics/intro/intro2_brendan.gbapal")*/;
|
||||
extern const u8 gIntro2BrendanTiles[]/* = INCBIN_U8("graphics/intro/intro2_brendan.4bpp.lz")*/;
|
||||
extern const u16 gIntro2MayPalette[]/* = INCBIN_U16("graphics/intro/intro2_may.gbapal")*/;
|
||||
extern const u16 gUnknown_08414F90[0xF0]/* = {0}*/;
|
||||
extern const u8 gIntro2MayTiles[]/* = INCBIN_U8("graphics/intro/intro2_may.4bpp.lz")*/;
|
||||
extern const u8 gIntro2BicycleTiles[]/* = INCBIN_U8("graphics/intro/intro2_bicycle.4bpp.lz")*/;
|
||||
extern const u16 gIntro2LatiosPalette[]/* = INCBIN_U16("graphics/intro/intro2_latios.gbapal")*/;
|
||||
extern const u8 gIntro2LatiosTiles[]/* = INCBIN_U8("graphics/intro/intro2_latios.4bpp.lz")*/;
|
||||
extern const u16 gIntro2LatiasPalette[]/* = INCBIN_U16("graphics/intro/intro2_latias.gbapal")*/;
|
||||
extern const u8 gIntro2LatiasTiles[]/* = INCBIN_U8("graphics/intro/intro2_latias.4bpp.lz")*/;
|
||||
|
||||
extern const struct CompressedSpriteSheet gUnknown_085F5064[]/* = {
|
||||
{ gUnknown_085F16A8, 0x400, 2000 },
|
||||
{}
|
||||
}*/;
|
||||
|
||||
extern const struct CompressedSpriteSheet gUnknown_085F50EC[]/* = {
|
||||
{ gIntro2TreeTiles, 0x400, 2000 },
|
||||
{}
|
||||
}*/;
|
||||
|
||||
extern const struct CompressedSpriteSheet gUnknown_085F5180[]/* = {
|
||||
{ gIntro2NightTiles, 0x400, 2000 },
|
||||
{}
|
||||
}*/;
|
||||
|
||||
void sub_817B76C();
|
||||
void sub_817B788();
|
||||
void sub_817B7A4();
|
||||
|
||||
void load_intro_part2_graphics(u8 a)
|
||||
{
|
||||
LZ77UnCompVram(&gUnknown_085F0740, (void *)(VRAM + 0x4000));
|
||||
LZ77UnCompVram(&gUnknown_085F0BC0, (void *)(VRAM + 0x7800));
|
||||
LoadPalette(&gUnknown_085F06E0, 240, 32);
|
||||
switch (a)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
LZ77UnCompVram(&gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0CFC, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LoadPalette(&gUnknown_085F1668, 256, 32);
|
||||
sub_817B76C();
|
||||
break;
|
||||
case 1:
|
||||
LZ77UnCompVram(&gUnknown_085F1824, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F1EAC, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F17E4, 0, 32);
|
||||
LoadCompressedObjectPic(gUnknown_085F50EC);
|
||||
LoadPalette(&gUnknown_085F21B0, 256, 32);
|
||||
sub_817B788();
|
||||
break;
|
||||
}
|
||||
gUnknown_0203BD28 = 0;
|
||||
gReservedSpritePaletteCount = 8;
|
||||
}
|
||||
|
||||
void sub_817B150(u8 a)
|
||||
{
|
||||
switch (a)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(6)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(7)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1)
|
||||
| BGCNT_CHARBASE(1)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(15)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
| DISPCNT_BG1_ON
|
||||
| DISPCNT_BG2_ON
|
||||
| DISPCNT_BG3_ON
|
||||
| DISPCNT_OBJ_ON);
|
||||
break;
|
||||
case 1:
|
||||
SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(6)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(7)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1)
|
||||
| BGCNT_CHARBASE(1)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(15)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
| DISPCNT_BG1_ON
|
||||
| DISPCNT_BG2_ON
|
||||
| DISPCNT_BG3_ON
|
||||
| DISPCNT_OBJ_ON);
|
||||
break;
|
||||
case 2:
|
||||
SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(6)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(7)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1)
|
||||
| BGCNT_CHARBASE(1)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(15)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
| DISPCNT_BG1_ON
|
||||
| DISPCNT_BG2_ON
|
||||
| DISPCNT_BG3_ON
|
||||
| DISPCNT_OBJ_ON);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_817B1C8(u8 a)
|
||||
{
|
||||
LZ77UnCompVram(&gUnknown_085F0740, (void *)(VRAM + 0x4000));
|
||||
LZ77UnCompVram(&gUnknown_085F0BC0, (void *)(VRAM + 0x7800));
|
||||
switch (a)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
LoadPalette(&gUnknown_085F06E0, 240, 32);
|
||||
LZ77UnCompVram(&gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0CFC, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LZ77UnCompVram(&gUnknown_085F16A8, (void *)(VRAM + 0x10000));
|
||||
LoadPalette(&gUnknown_085F1668, 256, 32);
|
||||
sub_817B76C();
|
||||
break;
|
||||
case 1:
|
||||
LoadPalette(&gUnknown_085F0700, 240, 32);
|
||||
LZ77UnCompVram(&gUnknown_085F0DBC, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F1398, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F0D5C, 0, 96);
|
||||
LoadCompressedObjectPic(gUnknown_085F5064);
|
||||
LZ77UnCompVram(&gUnknown_085F16A8, (void *)(VRAM + 0x10000));
|
||||
LoadPalette(&gUnknown_085F1688, 256, 32);
|
||||
sub_817B76C();
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
LoadPalette(&gUnknown_085F0700, 240, 32);
|
||||
LZ77UnCompVram(&gUnknown_085F1824, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F1EAC, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F1804, 0, 32);
|
||||
LoadCompressedObjectPic(gUnknown_085F50EC);
|
||||
LoadPalette(&gUnknown_085F1804, 256, 32);
|
||||
sub_817B788();
|
||||
break;
|
||||
case 4:
|
||||
LoadPalette(&gUnknown_085F0720, 240, 32);
|
||||
LZ77UnCompVram(&gUnknown_085F235C, (void *)(VRAM));
|
||||
LZ77UnCompVram(&gUnknown_085F2568, (void *)(VRAM + 0x3000));
|
||||
LoadPalette(&gUnknown_085F231C, 0, 64);
|
||||
LoadCompressedObjectPic(gUnknown_085F5180);
|
||||
LoadPalette(&gUnknown_085F2548, 256, 32);
|
||||
sub_817B7A4();
|
||||
break;
|
||||
}
|
||||
gReservedSpritePaletteCount = 8;
|
||||
gUnknown_0203BD28 = 0;
|
||||
}
|
||||
|
||||
void sub_817B3A8(u8 a)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(6)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2)
|
||||
| BGCNT_CHARBASE(0)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(7)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1)
|
||||
| BGCNT_CHARBASE(1)
|
||||
| BGCNT_16COLOR
|
||||
| BGCNT_SCREENBASE(15)
|
||||
| BGCNT_TXT256x256);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
| DISPCNT_BG_ALL_ON
|
||||
| DISPCNT_OBJ_ON);
|
||||
}
|
||||
|
||||
u8 sub_817B3DC(u8 a, u16 b, u16 c, u16 d)
|
||||
{
|
||||
u8 taskId = CreateTask(&sub_817B458, 0);
|
||||
|
||||
gTasks[taskId].data[0] = a;
|
||||
gTasks[taskId].data[1] = b;
|
||||
gTasks[taskId].data[2] = 0;
|
||||
gTasks[taskId].data[3] = 0;
|
||||
gTasks[taskId].data[4] = c;
|
||||
gTasks[taskId].data[5] = 0;
|
||||
gTasks[taskId].data[6] = 0;
|
||||
gTasks[taskId].data[7] = d;
|
||||
gTasks[taskId].data[8] = 8;
|
||||
gTasks[taskId].data[9] = 0;
|
||||
sub_817B458(taskId);
|
||||
return taskId;
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_817B458(u8 taskId)
|
||||
{
|
||||
s16 r4;
|
||||
s32 r2;
|
||||
|
||||
r4 = gTasks[taskId].data[1];
|
||||
if (r4 != 0)
|
||||
{
|
||||
r2 = (gTasks[taskId].data[2] << 16) + (u16)gTasks[taskId].data[3];
|
||||
r2 -= (u16)r4 << 4;
|
||||
gTasks[taskId].data[2] = r2 >> 16;
|
||||
gTasks[taskId].data[3] = r2;
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, gTasks[taskId].data[2]);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, gUnknown_0203BD24 + gUnknown_0203BD26);
|
||||
}
|
||||
|
||||
r4 = gTasks[taskId].data[4];
|
||||
if (r4 != 0)
|
||||
{
|
||||
r2 = (gTasks[taskId].data[5] << 16) + (u16)gTasks[taskId].data[6];
|
||||
r2 -= (u16)r4 << 4;
|
||||
gTasks[taskId].data[5] = r2 >> 16;
|
||||
gTasks[taskId].data[6] = r2;
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, gTasks[taskId].data[5]);
|
||||
if (gTasks[taskId].data[0] != 0)
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_0203BD24 + gUnknown_0203BD26);
|
||||
else
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, gUnknown_0203BD24);
|
||||
}
|
||||
|
||||
r4 = gTasks[taskId].data[7];
|
||||
if (r4 != 0)
|
||||
{
|
||||
r2 = (gTasks[taskId].data[8] << 16) + (u16)gTasks[taskId].data[9];
|
||||
r2 -= (u16)r4 << 4;
|
||||
gTasks[taskId].data[8] = r2 >> 16;
|
||||
gTasks[taskId].data[9] = r2;
|
||||
SetGpuReg(REG_OFFSET_BG3HOFS, gTasks[taskId].data[8]);
|
||||
SetGpuReg(REG_OFFSET_BG3VOFS, gUnknown_0203BD24);
|
||||
}
|
||||
}
|
||||
#else
|
||||
ASM_DIRECT
|
||||
void sub_817B458(u8 taskId)
|
||||
{
|
||||
asm("push {r4,r5,lr}\n\
|
||||
lsl r0, #24\n\
|
||||
lsr r5, r0, #24\n\
|
||||
ldr r1, =gTasks\n\
|
||||
lsl r0, r5, #2\n\
|
||||
add r0, r5\n\
|
||||
lsl r0, #3\n\
|
||||
add r4, r0, r1\n\
|
||||
ldrh r0, [r4, #0xA]\n\
|
||||
lsl r2, r0, #16\n\
|
||||
cmp r2, #0\n\
|
||||
beq _0817B4A0\n\
|
||||
mov r1, #0xC\n\
|
||||
ldrsh r0, [r4, r1]\n\
|
||||
lsl r0, #16\n\
|
||||
ldrh r1, [r4, #0xE]\n\
|
||||
add r1, r0, r1\n\
|
||||
lsr r0, r2, #12\n\
|
||||
sub r1, r0\n\
|
||||
asr r0, r1, #16\n\
|
||||
strh r0, [r4, #0xC]\n\
|
||||
strh r1, [r4, #0xE]\n\
|
||||
ldrh r1, [r4, #0xC]\n\
|
||||
mov r0, #0x14\n\
|
||||
bl SetGpuReg\n\
|
||||
ldr r2, =gUnknown_0203BD24\n\
|
||||
ldr r0, =gUnknown_0203BD26\n\
|
||||
ldrh r1, [r0]\n\
|
||||
ldrh r2, [r2]\n\
|
||||
add r1, r2\n\
|
||||
lsl r1, #16\n\
|
||||
lsr r1, #16\n\
|
||||
mov r0, #0x16\n\
|
||||
bl SetGpuReg\n\
|
||||
_0817B4A0:\n\
|
||||
ldrh r0, [r4, #0x10]\n\
|
||||
lsl r2, r0, #16\n\
|
||||
cmp r2, #0\n\
|
||||
beq _0817B4FA\n\
|
||||
mov r1, #0x12\n\
|
||||
ldrsh r0, [r4, r1]\n\
|
||||
lsl r0, #16\n\
|
||||
ldrh r1, [r4, #0x14]\n\
|
||||
add r1, r0, r1\n\
|
||||
lsr r0, r2, #12\n\
|
||||
sub r1, r0\n\
|
||||
asr r0, r1, #16\n\
|
||||
strh r0, [r4, #0x12]\n\
|
||||
strh r1, [r4, #0x14]\n\
|
||||
ldrh r1, [r4, #0x12]\n\
|
||||
mov r0, #0x18\n\
|
||||
bl SetGpuReg\n\
|
||||
mov r1, #0x8\n\
|
||||
ldrsh r0, [r4, r1]\n\
|
||||
cmp r0, #0\n\
|
||||
beq _0817B4F0\n\
|
||||
ldr r2, =gUnknown_0203BD24\n\
|
||||
ldr r0, =gUnknown_0203BD26\n\
|
||||
ldrh r1, [r0]\n\
|
||||
ldrh r2, [r2]\n\
|
||||
add r1, r2\n\
|
||||
lsl r1, #16\n\
|
||||
lsr r1, #16\n\
|
||||
mov r0, #0x1A\n\
|
||||
bl SetGpuReg\n\
|
||||
b _0817B4FA\n\
|
||||
.pool\n\
|
||||
_0817B4F0:\n\
|
||||
ldr r0, =gUnknown_0203BD24\n\
|
||||
ldrh r1, [r0]\n\
|
||||
mov r0, #0x1A\n\
|
||||
bl SetGpuReg\n\
|
||||
_0817B4FA:\n\
|
||||
ldr r0, =gTasks\n\
|
||||
lsl r1, r5, #2\n\
|
||||
add r1, r5\n\
|
||||
lsl r1, #3\n\
|
||||
add r2, r1, r0\n\
|
||||
ldrh r0, [r2, #0x16]\n\
|
||||
lsl r3, r0, #16\n\
|
||||
cmp r3, #0\n\
|
||||
beq _0817B532\n\
|
||||
mov r1, #0x18\n\
|
||||
ldrsh r0, [r2, r1]\n\
|
||||
lsl r0, #16\n\
|
||||
ldrh r1, [r2, #0x1A]\n\
|
||||
add r1, r0, r1\n\
|
||||
lsr r0, r3, #12\n\
|
||||
sub r1, r0\n\
|
||||
asr r0, r1, #16\n\
|
||||
strh r0, [r2, #0x18]\n\
|
||||
strh r1, [r2, #0x1A]\n\
|
||||
ldrh r1, [r2, #0x18]\n\
|
||||
mov r0, #0x1C\n\
|
||||
bl SetGpuReg\n\
|
||||
ldr r0, =gUnknown_0203BD24\n\
|
||||
ldrh r1, [r0]\n\
|
||||
mov r0, #0x1E\n\
|
||||
bl SetGpuReg\n\
|
||||
_0817B532:\n\
|
||||
pop {r4,r5}\n\
|
||||
pop {r0}\n\
|
||||
bx r0\n\
|
||||
.pool");
|
||||
}
|
||||
#endif // NONMATCHING
|
||||
|
||||
void sub_817B540(u8 mode)
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
/* stuff */
|
||||
if (gMain.vblankCounter1 & 3 || gPaletteFade.active)
|
||||
break;
|
||||
if (gMain.vblankCounter1 & 4)
|
||||
{
|
||||
x = gPlttBufferUnfaded[9];
|
||||
y = gPlttBufferUnfaded[10];
|
||||
}
|
||||
else
|
||||
{
|
||||
x = gPlttBufferUnfaded[10];
|
||||
y = gPlttBufferUnfaded[9];
|
||||
}
|
||||
LoadPalette(&x, 9, 2);
|
||||
LoadPalette(&y, 10, 2);
|
||||
break;
|
||||
case 2:
|
||||
if (gMain.vblankCounter1 & 3 || gPaletteFade.active)
|
||||
break;
|
||||
if (gMain.vblankCounter1 & 4)
|
||||
{
|
||||
x = 0x3D27;
|
||||
y = 0x295;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = 0x31C;
|
||||
y = 0x3D27;
|
||||
}
|
||||
LoadPalette(&x, 12, 2);
|
||||
LoadPalette(&y, 13, 2);
|
||||
break;
|
||||
case 1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_817B62C(struct Sprite *sprite)
|
||||
{
|
||||
s32 var;
|
||||
s16 var2 = gUnknown_0203BD28;
|
||||
|
||||
if (var2 != 2)
|
||||
{
|
||||
switch (var2)
|
||||
{
|
||||
default:
|
||||
DestroySprite(sprite);
|
||||
break;
|
||||
case 0:
|
||||
var = ((sprite->pos1.x << 16) | (u16)sprite->data[2]) + (u16)sprite->data[1];
|
||||
sprite->pos1.x = var >> 16;
|
||||
sprite->data[2] = var;
|
||||
if (sprite->pos1.x > 0xFF)
|
||||
sprite->pos1.x = -0x20;
|
||||
if (sprite->data[0])
|
||||
sprite->pos2.y = -(gUnknown_0203BD24 + gUnknown_0203BD26);
|
||||
else
|
||||
sprite->pos2.y = -gUnknown_0203BD24;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user