mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-10-07 10:33:37 +00:00
Fix a few minor data overflows (#1266)
They were causing overflows at runtime
This commit is contained in:
parent
fe0f9fbe81
commit
ad0e2a79e3
@ -30,6 +30,7 @@ typedef struct {
|
||||
#define PAL_COPY 1
|
||||
#define PAL_COPY_INFO() MAKE_PAL_OP(PAL_COPY, 0)
|
||||
#define PAL_COPY_DATA(dst, data) (dst), (u_long*)LEN(data), (u_long*)(data)
|
||||
#define PAL_COPY_DATA_(dst, data, len) (dst), (u_long*)(len), (u_long*)(data)
|
||||
|
||||
#define PAL_UNK_OP2 2
|
||||
#define PAL_UNK_OP2_INFO(dst, n) (u_long*)(dst), (u_long*)(n)
|
||||
@ -44,6 +45,7 @@ typedef struct {
|
||||
#define PAL_GLOW_DATA(data) (u_long*)(data)
|
||||
|
||||
#define PAL_BULK_COPY 5
|
||||
#define PAL_BULK_COPY_INFO(dst, n) (u_long*)(dst), (u_long*)(n)
|
||||
#define PAL_BULK(dst, data) (u_long*)(dst), (u_long*)LEN(data), (u_long*)(data)
|
||||
|
||||
#define PAL_TERMINATE() ((u_long*)-1)
|
||||
|
@ -164,7 +164,7 @@ void func_800EA7CC(void) {
|
||||
new_var = temp_s0[1];
|
||||
count = temp_s0[2];
|
||||
|
||||
clut = &g_Clut;
|
||||
clut = g_Clut;
|
||||
clut += new_var;
|
||||
|
||||
switch (ptr->unk8 & 0xFF) {
|
||||
@ -273,7 +273,7 @@ void func_800EA7CC(void) {
|
||||
offset = 0;
|
||||
temp_s0 = g_Clut;
|
||||
clutX = 0x200;
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 += 0x80, offset++) {
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 = (s16*)temp_s0 + 0x100, offset++) {
|
||||
if (palettes[offset] != 0) {
|
||||
LoadClut2(temp_s0, clutX, i);
|
||||
}
|
||||
@ -281,7 +281,7 @@ void func_800EA7CC(void) {
|
||||
|
||||
// re-upload updated shared entity palette
|
||||
clutX = 0;
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 += 0x80, offset++) {
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 = (s16*)temp_s0 + 0x100, offset++) {
|
||||
if (palettes[offset] != 0) {
|
||||
LoadClut2(temp_s0, clutX, i);
|
||||
}
|
||||
@ -289,7 +289,7 @@ void func_800EA7CC(void) {
|
||||
|
||||
// re-upload updated stage-specific entities palette
|
||||
clutX = 0x100;
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 += 0x80, offset++) {
|
||||
for (i = 0xF0; i < 0x100; i++, temp_s0 = (s16*)temp_s0 + 0x100, offset++) {
|
||||
if (palettes[offset]) {
|
||||
LoadClut2(temp_s0, clutX, i);
|
||||
}
|
||||
|
@ -198,8 +198,6 @@ extern u16 D_800D6A14[0x10];
|
||||
extern u16 D_800D6A34[0x10];
|
||||
extern u16 D_800D6A54[0x40]; // UNUSED
|
||||
extern u16 D_800D6AD4[0x100];
|
||||
extern u16 D_800D6B54[0x10]; // overlaps with D_800D6AD4?
|
||||
extern u16 D_800D6C14[0x60]; // overlaps with D_800D6AD4?
|
||||
extern u16 D_800D6CD4[0x100];
|
||||
extern u16 D_800D6ED4[0x100];
|
||||
extern u16 D_800D70D4[0x100];
|
||||
@ -367,15 +365,15 @@ u_long* D_800A3A74[] = {
|
||||
|
||||
u_long* D_800A3A88[] = {
|
||||
PAL_COPY_INFO(),
|
||||
PAL_COPY_DATA(0x1F20, D_800D6B54),
|
||||
PAL_COPY_DATA_(0x1F20, D_800D6AD4 + 64, 16),
|
||||
PAL_TERMINATE(),
|
||||
};
|
||||
|
||||
u_long* D_800A3A9C[] = {
|
||||
MAKE_PAL_OP(PAL_GLOW_ANIM, 1),
|
||||
PAL_GLOW_INFO(0x1F20, 16),
|
||||
PAL_GLOW_DATA(D_800D6C14),
|
||||
PAL_GLOW_DATA(D_800D6B54),
|
||||
PAL_GLOW_DATA(D_800D6AD4 + 160),
|
||||
PAL_GLOW_DATA(D_800D6AD4 + 64),
|
||||
PAL_TERMINATE(),
|
||||
};
|
||||
|
||||
|
@ -4573,42 +4573,35 @@ u16 D_800D6A34[] = {
|
||||
};
|
||||
|
||||
u16 D_800D6AD4[] = {
|
||||
0x0000, 0x819D, 0x921D, 0x969E, 0xAF5F, 0xD7DF, 0x819D, 0x921D,
|
||||
0x969E, 0xAF5F, 0xD7DF, 0x819D, 0x921D, 0x969E, 0xAF5F, 0xD7DF,
|
||||
0x0000, 0xA108, 0xAD6B, 0xBDEF, 0xD294, 0xE739, 0xA108, 0xAD6B,
|
||||
0xBDEF, 0xD294, 0xE739, 0xA108, 0xAD6B, 0xBDEF, 0xD294, 0xE739,
|
||||
0x0000, 0xDC80, 0xE540, 0xEE00, 0xF6C0, 0xFF80, 0xDC80, 0xE540,
|
||||
0xEE00, 0xF6C0, 0xFF80, 0xDC80, 0xE540, 0xEE00, 0xF6C0, 0xFF80,
|
||||
0x0000, 0xE419, 0x823F, 0x8339, 0xCBE0, 0xE720, 0xE419, 0x823F,
|
||||
0x8339, 0xCBE0, 0xE720, 0xE419, 0x823F, 0x8339, 0xCBE0, 0xE720,
|
||||
};
|
||||
|
||||
u16 D_800D6B54[] = {
|
||||
0x0000, 0x8421, 0x8842, 0x8C63, 0x94A5, 0x9CE7, 0x8421, 0x8842, 0x8C63,
|
||||
0x94A5, 0x9CE7, 0x8421, 0x8842, 0x8C63, 0x94A5, 0x9CE7, 0x0000, 0x984C,
|
||||
0x98CC, 0x994C, 0x99CC, 0x9A4C, 0x984C, 0x98CC, 0x994C, 0x99CC, 0x9A4C,
|
||||
0x984C, 0x98CC, 0x994C, 0x99CC, 0x9A4C, 0x0000, 0x8048, 0x804C, 0x8050,
|
||||
0x8054, 0x8058, 0x8048, 0x804C, 0x8050, 0x8054, 0x8058, 0x8048, 0x804C,
|
||||
0x8050, 0x8054, 0x8058, 0x0000, 0x80E7, 0x81AD, 0x8273, 0x8339, 0x83FF,
|
||||
0x80E7, 0x81AD, 0x8273, 0x8339, 0x83FF, 0x80E7, 0x81AD, 0x8273, 0x8339,
|
||||
0x83FF, 0x0000, 0x80E0, 0x81A0, 0x8260, 0x8320, 0x83E0, 0x80E0, 0x81A0,
|
||||
0x8260, 0x8320, 0x83E0, 0x80E0, 0x81A0, 0x8260, 0x8320, 0x83E0, 0x0000,
|
||||
0x9C00, 0xB400, 0xCC00, 0xE400, 0xFC00, 0x9C00, 0xB400, 0xCC00, 0xE400,
|
||||
0xFC00, 0x9C00, 0xB400, 0xCC00, 0xE400, 0xFC00,
|
||||
};
|
||||
|
||||
u16 D_800D6C14[] = {
|
||||
0x0000, 0x9C07, 0xB40D, 0xCC13, 0xE419, 0xFC1F, 0x9C07, 0xB40D, 0xCC13,
|
||||
0xE419, 0xFC1F, 0x9C07, 0xB40D, 0xCC13, 0xE419, 0xFC1F, 0x0000, 0xB908,
|
||||
0xB988, 0xBA08, 0xBA88, 0xBB08, 0xB908, 0xB988, 0xBA08, 0xBA88, 0xBB08,
|
||||
0xB908, 0xB988, 0xBA08, 0xBA88, 0xBB08, 0x0000, 0xE81A, 0xCC13, 0xDC17,
|
||||
0xEC1B, 0xFC1F, 0xE81A, 0xCC13, 0xDC17, 0xEC1B, 0xFC1F, 0xE81A, 0xCC13,
|
||||
0xDC17, 0xEC1B, 0xFC1F, 0x0000, 0x801A, 0x8013, 0x8017, 0x801B, 0x801F,
|
||||
0x801A, 0x8013, 0x8017, 0x801B, 0x801F, 0x801A, 0x8013, 0x8017, 0x801B,
|
||||
0x801F, 0x0000, 0x8340, 0x8260, 0x82E0, 0x8360, 0x83E0, 0x8340, 0x8260,
|
||||
0x82E0, 0x8360, 0x83E0, 0x8340, 0x8260, 0x82E0, 0x8360, 0x83E0, 0x0000,
|
||||
0xE800, 0xCC00, 0xDC00, 0xEC00, 0xFC00, 0xE800, 0xCC00, 0xDC00, 0xEC00,
|
||||
0xFC00, 0xE800, 0xCC00, 0xDC00, 0xEC00, 0xFC00,
|
||||
0x0000, 0x819D, 0x921D, 0x969E, 0xAF5F, 0xD7DF, 0x819D, 0x921D, 0x969E,
|
||||
0xAF5F, 0xD7DF, 0x819D, 0x921D, 0x969E, 0xAF5F, 0xD7DF, 0x0000, 0xA108,
|
||||
0xAD6B, 0xBDEF, 0xD294, 0xE739, 0xA108, 0xAD6B, 0xBDEF, 0xD294, 0xE739,
|
||||
0xA108, 0xAD6B, 0xBDEF, 0xD294, 0xE739, 0x0000, 0xDC80, 0xE540, 0xEE00,
|
||||
0xF6C0, 0xFF80, 0xDC80, 0xE540, 0xEE00, 0xF6C0, 0xFF80, 0xDC80, 0xE540,
|
||||
0xEE00, 0xF6C0, 0xFF80, 0x0000, 0xE419, 0x823F, 0x8339, 0xCBE0, 0xE720,
|
||||
0xE419, 0x823F, 0x8339, 0xCBE0, 0xE720, 0xE419, 0x823F, 0x8339, 0xCBE0,
|
||||
0xE720, 0x0000, 0x8421, 0x8842, 0x8C63, 0x94A5, 0x9CE7, 0x8421, 0x8842,
|
||||
0x8C63, 0x94A5, 0x9CE7, 0x8421, 0x8842, 0x8C63, 0x94A5, 0x9CE7, 0x0000,
|
||||
0x984C, 0x98CC, 0x994C, 0x99CC, 0x9A4C, 0x984C, 0x98CC, 0x994C, 0x99CC,
|
||||
0x9A4C, 0x984C, 0x98CC, 0x994C, 0x99CC, 0x9A4C, 0x0000, 0x8048, 0x804C,
|
||||
0x8050, 0x8054, 0x8058, 0x8048, 0x804C, 0x8050, 0x8054, 0x8058, 0x8048,
|
||||
0x804C, 0x8050, 0x8054, 0x8058, 0x0000, 0x80E7, 0x81AD, 0x8273, 0x8339,
|
||||
0x83FF, 0x80E7, 0x81AD, 0x8273, 0x8339, 0x83FF, 0x80E7, 0x81AD, 0x8273,
|
||||
0x8339, 0x83FF, 0x0000, 0x80E0, 0x81A0, 0x8260, 0x8320, 0x83E0, 0x80E0,
|
||||
0x81A0, 0x8260, 0x8320, 0x83E0, 0x80E0, 0x81A0, 0x8260, 0x8320, 0x83E0,
|
||||
0x0000, 0x9C00, 0xB400, 0xCC00, 0xE400, 0xFC00, 0x9C00, 0xB400, 0xCC00,
|
||||
0xE400, 0xFC00, 0x9C00, 0xB400, 0xCC00, 0xE400, 0xFC00, 0x0000, 0x9C07,
|
||||
0xB40D, 0xCC13, 0xE419, 0xFC1F, 0x9C07, 0xB40D, 0xCC13, 0xE419, 0xFC1F,
|
||||
0x9C07, 0xB40D, 0xCC13, 0xE419, 0xFC1F, 0x0000, 0xB908, 0xB988, 0xBA08,
|
||||
0xBA88, 0xBB08, 0xB908, 0xB988, 0xBA08, 0xBA88, 0xBB08, 0xB908, 0xB988,
|
||||
0xBA08, 0xBA88, 0xBB08, 0x0000, 0xE81A, 0xCC13, 0xDC17, 0xEC1B, 0xFC1F,
|
||||
0xE81A, 0xCC13, 0xDC17, 0xEC1B, 0xFC1F, 0xE81A, 0xCC13, 0xDC17, 0xEC1B,
|
||||
0xFC1F, 0x0000, 0x801A, 0x8013, 0x8017, 0x801B, 0x801F, 0x801A, 0x8013,
|
||||
0x8017, 0x801B, 0x801F, 0x801A, 0x8013, 0x8017, 0x801B, 0x801F, 0x0000,
|
||||
0x8340, 0x8260, 0x82E0, 0x8360, 0x83E0, 0x8340, 0x8260, 0x82E0, 0x8360,
|
||||
0x83E0, 0x8340, 0x8260, 0x82E0, 0x8360, 0x83E0, 0x0000, 0xE800, 0xCC00,
|
||||
0xDC00, 0xEC00, 0xFC00, 0xE800, 0xCC00, 0xDC00, 0xEC00, 0xFC00, 0xE800,
|
||||
0xCC00, 0xDC00, 0xEC00, 0xFC00,
|
||||
};
|
||||
|
||||
u16 D_800D6CD4[] = {
|
||||
|
@ -51,7 +51,5 @@ u16 D_800DB1F4[] = {
|
||||
0x8108, 0x80e7, 0x80c6, 0xa529, 0xa94a, 0xad6b, 0xb18c, 0xb5ad, 0xb9ce,
|
||||
0xbdef, 0xb9ce, 0xb5ad, 0xb18c, 0xad6b, 0xa94a, 0xa529, 0xa108, 0x9ce7,
|
||||
0x98c6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
};
|
||||
|
||||
s32 D_800DB3B0 = 0;
|
||||
|
@ -252,6 +252,7 @@ bool LoadFilePc(FileLoad* file, SimFile* sim) {
|
||||
break;
|
||||
case SIM_STAGE_CHR:
|
||||
LoadStageTileset(sim->addr, file->length, 0);
|
||||
StoreImage(&g_Vram.D_800ACDB8, g_Clut);
|
||||
break;
|
||||
case SIM_12:
|
||||
LoadStageTileset(sim->addr, file->length, 0x100);
|
||||
|
@ -64,13 +64,11 @@ s16** g_SpriteBanks[] = {
|
||||
/* 0x09C */ 0x00000000,
|
||||
};
|
||||
|
||||
u32 D_80181D08[];
|
||||
extern u16 D_80181D08[16];
|
||||
void* D_801800A0[] = {
|
||||
/* 0x0A0 */ (void*)0x00000005,
|
||||
/* 0x0A4 */ (void*)0x00002000,
|
||||
/* 0x0A8 */ (void*)0x00000010,
|
||||
/* 0x0AC */ (void*)D_80181D08,
|
||||
/* 0x0B0 */ (void*)0xFFFFFFFF,
|
||||
MAKE_PAL_OP(PAL_BULK_COPY, 0),
|
||||
PAL_BULK(0x2000, D_80181D08),
|
||||
PAL_TERMINATE(),
|
||||
};
|
||||
void* g_Cluts[] = {
|
||||
/* 0x0B4 */ D_801800A0,
|
||||
|
Loading…
Reference in New Issue
Block a user