mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-21 06:27:27 -05:00
sub_8009A1C
This commit is contained in:
parent
976083c211
commit
d96c57572f
|
|
@ -5,59 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8009A1C
|
||||
sub_8009A1C:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
ldr r0, _08009A30
|
||||
str r3, [r0]
|
||||
ldr r3, [r6, 0xC]
|
||||
movs r0, 0xC0
|
||||
lsls r0, 19
|
||||
adds r2, r0
|
||||
movs r5, 0
|
||||
b _08009A56
|
||||
.align 2, 0
|
||||
_08009A30: .4byte gUnknown_202D2A0
|
||||
_08009A34:
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
ldm r3!, {r0}
|
||||
stm r2!, {r0}
|
||||
adds r5, 0x1
|
||||
_08009A56:
|
||||
ldr r0, [r6, 0x8]
|
||||
cmp r5, r0
|
||||
ble _08009A34
|
||||
movs r5, 0
|
||||
lsls r4, r1, 6
|
||||
_08009A60:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0xE0
|
||||
ldr r1, [r6, 0x10]
|
||||
adds r1, r4
|
||||
bl SetBGPaletteBufferColorArray
|
||||
adds r4, 0x4
|
||||
adds r5, 0x1
|
||||
cmp r5, 0xF
|
||||
ble _08009A60
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8009A1C
|
||||
|
||||
thumb_func_start sub_8009A7C
|
||||
sub_8009A7C:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -11,10 +11,29 @@ extern const struct FileArchive gSystemFileArchive; // 8300500
|
|||
extern Palette32 gFontPalette[8];
|
||||
extern u8 gUnknown_202D238[4];
|
||||
extern s32 gUnknown_202D23C;
|
||||
extern u32 gUnknown_202D2A0;
|
||||
extern struct unkStruct_202D240 gUnknown_202D240[8];
|
||||
|
||||
// code_8009804.s
|
||||
extern void sub_8009A1C(u32);
|
||||
typedef struct Palette256
|
||||
{
|
||||
RGB pal[256];
|
||||
} Palette256;
|
||||
|
||||
struct unkStruct_8009A1C
|
||||
{
|
||||
u8 fill0[0x8];
|
||||
s32 unk8;
|
||||
u32 *unkC;
|
||||
Palette256 *unk10;
|
||||
};
|
||||
|
||||
struct unkStruct_8009A1C_ptr
|
||||
{
|
||||
u8 fill0;
|
||||
struct unkStruct_8009A1C *ptr;
|
||||
};
|
||||
|
||||
void sub_8009A1C(struct unkStruct_8009A1C *r0, u32 palId, u32 vramDstOffset, u32 r3);
|
||||
|
||||
void InitFontPalette(void)
|
||||
{
|
||||
|
|
@ -134,7 +153,32 @@ void SetFontsBaseColor(RGB a0)
|
|||
gFontPalette[i].pal[1] = a0;
|
||||
}
|
||||
|
||||
UNUSED static void sub_8009A10(u32 *a0)
|
||||
UNUSED static void sub_8009A10(struct unkStruct_8009A1C_ptr *a0, u32 palId, u32 vramDstOffset, u32 r3)
|
||||
{
|
||||
sub_8009A1C(a0[1]);
|
||||
sub_8009A1C(a0->ptr, palId, vramDstOffset, r3);
|
||||
}
|
||||
|
||||
void sub_8009A1C(struct unkStruct_8009A1C *r0, u32 palId, u32 vramDstOffset, u32 r3)
|
||||
{
|
||||
s32 i;
|
||||
u32 *dst, *src;
|
||||
|
||||
gUnknown_202D2A0 = r3;
|
||||
src = r0->unkC;
|
||||
dst = (void *)(VRAM) + vramDstOffset;
|
||||
|
||||
for (i = 0; i <= r0->unk8; i++) {
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
*dst++ = *src++;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
SetBGPaletteBufferColorArray(i + 0xE0, &r0->unk10->pal[i + palId * 16]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user