From 34b4dbaf2a5c78f240f488736393a8ef39bc5fa5 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Thu, 22 Jun 2017 22:14:06 -0500 Subject: decompile unused_8124F94 --- src/unused_8124F94.c | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/unused_8124F94.c (limited to 'src') diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c new file mode 100644 index 000000000..c53ed322d --- /dev/null +++ b/src/unused_8124F94.c @@ -0,0 +1,126 @@ +#include "global.h" +#include "decompress.h" +#include "palette.h" + +struct UnknownStruct2 +{ + void *unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; +}; + +struct UnknownStruct3 +{ + u16 *unk0; + u8 unk4; + u8 unk5; +}; + +struct UnknownStruct1 +{ + u8 unk0; + u8 unk1; + u16 unk2; + u8 *unk4; + struct UnknownStruct3 unk8[16]; + struct UnknownStruct2 unk88[32]; +}; + +void unref_sub_8124F94(struct UnknownStruct1 *a) +{ + a->unk1 = 0; + a->unk0 = 0; + a->unk2 = 0; + a->unk4 = (void *)VRAM; + DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); + DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); +} + +u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) +{ + while (1) + { + s32 r6; + s32 temp; + + // Couldn't get it to match any other way + if (a->unk1 < 32 && b->unk0 == NULL) + return 0; + if (a->unk1 >= 32) + break; + + a->unk88[a->unk1].unk0 = b->unk0; + a->unk88[a->unk1].unk6 = b->unk6; + a->unk88[a->unk1].unk4 = b->unk4; + a->unk88[a->unk1].unk5 = b->unk5; + r6 = b->unk4 * b->unk5; + if (a->unk2 + r6 > 0x400) + return 2; + if (b->unk8 == 0) + { + DmaCopy16(3, b->unk0, a->unk4 + a->unk2 * 64, r6 * 32); + } + else + { + sub_800D238(b->unk0, a->unk4 + a->unk2 * 64); + } + a->unk88[a->unk1].unk8 = a->unk2; + temp = r6 + a->unk2; + a->unk2 = temp; + a->unk1++; + b++; + } + return 1; +} + +u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + while (1) + { + // Couldn't get it to match any other way + if (a->unk0 < 16 && b->unk0 == NULL) + return 0; + if (a->unk0 >= 16) + break; + + a->unk8[a->unk0].unk0 = b->unk0; + a->unk8[a->unk0].unk4 = b->unk4; + if (b->unk5 == 0) + { + LoadPalette(b->unk0, a->unk0 * 16, 32); + } + else + { + u16 palette[16]; + + sub_800D238(b->unk0, palette); + LoadPalette(palette, a->unk0 * 16, 32); + } + a->unk8[a->unk0].unk5 = a->unk0; + a->unk0 = a->unk0 + 1; + b++; + } + return 1; +} + +u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) +{ + u16 palettes[16][16] = {0}; + u8 r7 = b->unk5; + u8 i; + + sub_800D238(b->unk0, palettes); + for (i = a->unk0; i < r7; i++) + { + if (a->unk0 + i >= 16) + return 1; + a->unk8[i].unk0 = b->unk0; + a->unk8[i].unk4 = b->unk4 + i; + a->unk8[i].unk5 = a->unk0; + LoadPalette(palettes[i], a->unk0 * 16, sizeof(palettes[i])); + a->unk0++; + } + return 0; +} -- cgit v1.2.3 From 9cf949411eb6f1b2cc042a7c64b2a7f124da9c12 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Thu, 22 Jun 2017 22:24:52 -0500 Subject: name some struct fields --- src/unused_8124F94.c | 58 ++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'src') diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c index c53ed322d..93b569058 100644 --- a/src/unused_8124F94.c +++ b/src/unused_8124F94.c @@ -4,7 +4,7 @@ struct UnknownStruct2 { - void *unk0; + void *src; u8 unk4; u8 unk5; u8 unk6; @@ -13,17 +13,17 @@ struct UnknownStruct2 struct UnknownStruct3 { - u16 *unk0; + u16 *paletteSrc; u8 unk4; - u8 unk5; + u8 paletteCount; }; struct UnknownStruct1 { - u8 unk0; + u8 paletteNum; u8 unk1; u16 unk2; - u8 *unk4; + u8 *dest; struct UnknownStruct3 unk8[16]; struct UnknownStruct2 unk88[32]; }; @@ -31,9 +31,9 @@ struct UnknownStruct1 void unref_sub_8124F94(struct UnknownStruct1 *a) { a->unk1 = 0; - a->unk0 = 0; + a->paletteNum = 0; a->unk2 = 0; - a->unk4 = (void *)VRAM; + a->dest = (void *)VRAM; DmaFill16(3, 0, a->unk8, sizeof(a->unk8)); DmaFill16(3, 0, a->unk88, sizeof(a->unk88)); } @@ -46,12 +46,12 @@ u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) s32 temp; // Couldn't get it to match any other way - if (a->unk1 < 32 && b->unk0 == NULL) + if (a->unk1 < 32 && b->src == NULL) return 0; if (a->unk1 >= 32) break; - a->unk88[a->unk1].unk0 = b->unk0; + a->unk88[a->unk1].src = b->src; a->unk88[a->unk1].unk6 = b->unk6; a->unk88[a->unk1].unk4 = b->unk4; a->unk88[a->unk1].unk5 = b->unk5; @@ -60,11 +60,11 @@ u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b) return 2; if (b->unk8 == 0) { - DmaCopy16(3, b->unk0, a->unk4 + a->unk2 * 64, r6 * 32); + DmaCopy16(3, b->src, a->dest + a->unk2 * 64, r6 * 32); } else { - sub_800D238(b->unk0, a->unk4 + a->unk2 * 64); + sub_800D238(b->src, a->dest + a->unk2 * 64); } a->unk88[a->unk1].unk8 = a->unk2; temp = r6 + a->unk2; @@ -80,26 +80,26 @@ u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) while (1) { // Couldn't get it to match any other way - if (a->unk0 < 16 && b->unk0 == NULL) + if (a->paletteNum < 16 && b->paletteSrc == NULL) return 0; - if (a->unk0 >= 16) + if (a->paletteNum >= 16) break; - a->unk8[a->unk0].unk0 = b->unk0; - a->unk8[a->unk0].unk4 = b->unk4; - if (b->unk5 == 0) + a->unk8[a->paletteNum].paletteSrc = b->paletteSrc; + a->unk8[a->paletteNum].unk4 = b->unk4; + if (b->paletteCount == 0) { - LoadPalette(b->unk0, a->unk0 * 16, 32); + LoadPalette(b->paletteSrc, a->paletteNum * 16, 32); } else { u16 palette[16]; - sub_800D238(b->unk0, palette); - LoadPalette(palette, a->unk0 * 16, 32); + sub_800D238(b->paletteSrc, palette); + LoadPalette(palette, a->paletteNum * 16, 32); } - a->unk8[a->unk0].unk5 = a->unk0; - a->unk0 = a->unk0 + 1; + a->unk8[a->paletteNum].paletteCount = a->paletteNum; + a->paletteNum = a->paletteNum + 1; b++; } return 1; @@ -108,19 +108,19 @@ u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b) u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b) { u16 palettes[16][16] = {0}; - u8 r7 = b->unk5; + u8 r7 = b->paletteCount; u8 i; - sub_800D238(b->unk0, palettes); - for (i = a->unk0; i < r7; i++) + sub_800D238(b->paletteSrc, palettes); + for (i = a->paletteNum; i < r7; i++) { - if (a->unk0 + i >= 16) + if (a->paletteNum + i >= 16) return 1; - a->unk8[i].unk0 = b->unk0; + a->unk8[i].paletteSrc = b->paletteSrc; a->unk8[i].unk4 = b->unk4 + i; - a->unk8[i].unk5 = a->unk0; - LoadPalette(palettes[i], a->unk0 * 16, sizeof(palettes[i])); - a->unk0++; + a->unk8[i].paletteCount = a->paletteNum; + LoadPalette(palettes[i], a->paletteNum * 16, sizeof(palettes[i])); + a->paletteNum++; } return 0; } -- cgit v1.2.3