start decompiling warp_star

This commit is contained in:
Zhengwen Jiang 2023-03-04 18:38:26 -06:00 committed by Egor Ananyin
parent 9aca90b79e
commit 454c333d5e
14 changed files with 3054 additions and 3831 deletions

File diff suppressed because it is too large Load Diff

View File

@ -9938,63 +9938,3 @@ gUnk_082D9244:: @ 082D9244
gUnk_082D9254:: @ 082D9254
.incbin "baserom.gba", 0x2D9254, 0x0000010
gUnk_082D9264:: @ 082D9264
.incbin "baserom.gba", 0x2D9264, 0x0001038
gUnk_082DA29C:: @ 082DA29C
.incbin "baserom.gba", 0x2DA29C, 0x0000C30
gUnk_082DAECC:: @ 082DAECC
.incbin "baserom.gba", 0x2DAECC, 0x0000C48
gUnk_082DBB14:: @ 082DBB14
.incbin "baserom.gba", 0x2DBB14, 0x00007B0
gUnk_082DC2C4:: @ 082DC2C4
.incbin "baserom.gba", 0x2DC2C4, 0x0000B40
gUnk_082DCE04:: @ 082DCE04
.incbin "baserom.gba", 0x2DCE04, 0x0000978
gUnk_082DD77C:: @ 082DD77C
.incbin "baserom.gba", 0x2DD77C, 0x000056A
gUnk_082DDCE6:: @ 082DDCE6
.incbin "baserom.gba", 0x2DDCE6, 0x000013E
gUnk_082DDE24:: @ 082DDE24
.incbin "baserom.gba", 0x2DDE24, 0x0000008
gUnk_082DDE2C:: @ 082DDE2C
.incbin "baserom.gba", 0x2DDE2C, 0x0000008
gUnk_082DDE34:: @ 082DDE34
.incbin "baserom.gba", 0x2DDE34, 0x0000008
gUnk_082DDE3C:: @ 082DDE3C
.incbin "baserom.gba", 0x2DDE3C, 0x0000020
gUnk_082DDE5C:: @ 082DDE5C
.incbin "baserom.gba", 0x2DDE5C, 0x0000020
gUnk_082DDE7C:: @ 082DDE7C
.incbin "baserom.gba", 0x2DDE7C, 0x0000008
gUnk_082DDE84:: @ 082DDE84
.incbin "baserom.gba", 0x2DDE84, 0x000006C
gUnk_082DDEF0:: @ 082DDEF0
.incbin "baserom.gba", 0x2DDEF0, 0x000006C
gUnk_082DDF5C:: @ 082DDF5C
.incbin "baserom.gba", 0x2DDF5C, 0x000006C
gUnk_082DDFC8:: @ 082DDFC8
.incbin "baserom.gba", 0x2DDFC8, 0x000006C
gUnk_082DE034:: @ 082DE034
.incbin "baserom.gba", 0x2DE034, 0x0000040
gUnk_082DE074:: @ 082DE074
.incbin "baserom.gba", 0x2DE074, 0x0000020

112
data/data_17.s Normal file
View File

@ -0,0 +1,112 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
gUnk_082EB4A0:: @ 082EB4A0
.incbin "baserom.gba", 0x2EB4A0, 0x0000014
gUnk_082EB4B4:: @ 082EB4B4
.incbin "baserom.gba", 0x2EB4B4, 0x0000002
gUnk_082EB4B6:: @ 082EB4B6
.incbin "baserom.gba", 0x2EB4B6, 0x0000036
gUnk_082EB4EC:: @ 082EB4EC
.incbin "baserom.gba", 0x2EB4EC, 0x0000004
gUnk_082EB4F0:: @ 082EB4F0
.incbin "baserom.gba", 0x2EB4F0, 0x0000024
gUnk_082EB514:: @ 082EB514
.incbin "baserom.gba", 0x2EB514, 0x0000028
gUnk_082EB53C:: @ 082EB53C
.incbin "baserom.gba", 0x2EB53C, 0x0000028
gUnk_082EB564:: @ 082EB564
.incbin "baserom.gba", 0x2EB564, 0x0000028
gUnk_082EB58C:: @ 082EB58C
.incbin "baserom.gba", 0x2EB58C, 0x0000028
gUnk_082EB5B4:: @ 082EB5B4
.incbin "baserom.gba", 0x2EB5B4, 0x000000C
gUnk_082EB5C0:: @ 082EB5C0
.incbin "baserom.gba", 0x2EB5C0, 0x0000004
gUnk_082EB5C4:: @ 082EB5C4
.incbin "baserom.gba", 0x2EB5C4, 0x000001C
gUnk_082EB5E0:: @ 082EB5E0
.incbin "baserom.gba", 0x2EB5E0, 0x0000030
gUnk_082EB610:: @ 082EB610
.incbin "baserom.gba", 0x2EB610, 0x0000020
gUnk_082EB630:: @ 082EB630
.incbin "baserom.gba", 0x2EB630, 0x0000004
gUnk_082EB634:: @ 082EB634
.incbin "baserom.gba", 0x2EB634, 0x000000C
gUnk_082EB640:: @ 082EB640
.incbin "baserom.gba", 0x2EB640, 0x0000090
gUnk_082EB6D0:: @ 082EB6D0
.incbin "baserom.gba", 0x2EB6D0, 0x000000C
gUnk_082EB6DC:: @ 082EB6DC
.incbin "baserom.gba", 0x2EB6DC, 0x0000010
gUnk_082EB6EC:: @ 082EB6EC
.incbin "baserom.gba", 0x2EB6EC, 0x0000010
gUnk_082EB6FC:: @ 082EB6FC
.incbin "baserom.gba", 0x2EB6FC, 0x0000004
gUnk_082EB700:: @ 082EB700
.incbin "baserom.gba", 0x2EB700, 0x0000040
gUnk_082EB740:: @ 082EB740
.incbin "baserom.gba", 0x2EB740, 0x0000090
gUnk_082EB7D0:: @ 082EB7D0
.incbin "baserom.gba", 0x2EB7D0, 0x0000028
gUnk_082EB7F8:: @ 082EB7F8
.incbin "baserom.gba", 0x2EB7F8, 0x0000008
gUnk_082EB800:: @ 082EB800
.incbin "baserom.gba", 0x2EB800, 0x0000008
gUnk_082EB808:: @ 082EB808
.incbin "baserom.gba", 0x2EB808, 0x0000020
gUnk_082EB828:: @ 082EB828
.incbin "baserom.gba", 0x2EB828, 0x0000020
gUnk_082EB848:: @ 082EB848
.incbin "baserom.gba", 0x2EB848, 0x0000020
gUnk_082EB868:: @ 082EB868
.incbin "baserom.gba", 0x2EB868, 0x0000028
gUnk_082EB890:: @ 082EB890
.incbin "baserom.gba", 0x2EB890, 0x0000028
gUnk_082EB8B8:: @ 082EB8B8
.incbin "baserom.gba", 0x2EB8B8, 0x0000024
gUnk_082EB8DC:: @ 082EB8DC
.incbin "baserom.gba", 0x2EB8DC, 0x000003C
gUnk_082EB918:: @ 082EB918
.incbin "baserom.gba", 0x2EB918, 0x000003C
gUnk_082EB954:: @ 082EB954
.incbin "baserom.gba", 0x2EB954, 0x0000030
gUnk_082EB984:: @ 082EB984
.incbin "baserom.gba", 0x2EB984, 0x0000020

View File

@ -3,123 +3,6 @@
.section .rodata
gUnk_082EB4A0:: @ 082EB4A0
.incbin "baserom.gba", 0x2EB4A0, 0x0000014
gUnk_082EB4B4:: @ 082EB4B4
.incbin "baserom.gba", 0x2EB4B4, 0x0000002
gUnk_082EB4B6:: @ 082EB4B6
.incbin "baserom.gba", 0x2EB4B6, 0x0000036
gUnk_082EB4EC:: @ 082EB4EC
.incbin "baserom.gba", 0x2EB4EC, 0x0000004
gUnk_082EB4F0:: @ 082EB4F0
.incbin "baserom.gba", 0x2EB4F0, 0x0000024
gUnk_082EB514:: @ 082EB514
.incbin "baserom.gba", 0x2EB514, 0x0000028
gUnk_082EB53C:: @ 082EB53C
.incbin "baserom.gba", 0x2EB53C, 0x0000028
gUnk_082EB564:: @ 082EB564
.incbin "baserom.gba", 0x2EB564, 0x0000028
gUnk_082EB58C:: @ 082EB58C
.incbin "baserom.gba", 0x2EB58C, 0x0000028
gUnk_082EB5B4:: @ 082EB5B4
.incbin "baserom.gba", 0x2EB5B4, 0x000000C
gUnk_082EB5C0:: @ 082EB5C0
.incbin "baserom.gba", 0x2EB5C0, 0x0000004
gUnk_082EB5C4:: @ 082EB5C4
.incbin "baserom.gba", 0x2EB5C4, 0x000001C
gUnk_082EB5E0:: @ 082EB5E0
.incbin "baserom.gba", 0x2EB5E0, 0x0000030
gUnk_082EB610:: @ 082EB610
.incbin "baserom.gba", 0x2EB610, 0x0000020
gUnk_082EB630:: @ 082EB630
.incbin "baserom.gba", 0x2EB630, 0x0000004
gUnk_082EB634:: @ 082EB634
.incbin "baserom.gba", 0x2EB634, 0x000000C
gUnk_082EB640:: @ 082EB640
.incbin "baserom.gba", 0x2EB640, 0x0000090
gUnk_082EB6D0:: @ 082EB6D0
.incbin "baserom.gba", 0x2EB6D0, 0x000000C
gUnk_082EB6DC:: @ 082EB6DC
.incbin "baserom.gba", 0x2EB6DC, 0x0000010
gUnk_082EB6EC:: @ 082EB6EC
.incbin "baserom.gba", 0x2EB6EC, 0x0000010
gUnk_082EB6FC:: @ 082EB6FC
.incbin "baserom.gba", 0x2EB6FC, 0x0000004
gUnk_082EB700:: @ 082EB700
.incbin "baserom.gba", 0x2EB700, 0x0000040
gUnk_082EB740:: @ 082EB740
.incbin "baserom.gba", 0x2EB740, 0x0000090
gUnk_082EB7D0:: @ 082EB7D0
.incbin "baserom.gba", 0x2EB7D0, 0x0000028
gUnk_082EB7F8:: @ 082EB7F8
.incbin "baserom.gba", 0x2EB7F8, 0x0000008
gUnk_082EB800:: @ 082EB800
.incbin "baserom.gba", 0x2EB800, 0x0000008
gUnk_082EB808:: @ 082EB808
.incbin "baserom.gba", 0x2EB808, 0x0000020
gUnk_082EB828:: @ 082EB828
.incbin "baserom.gba", 0x2EB828, 0x0000020
gUnk_082EB848:: @ 082EB848
.incbin "baserom.gba", 0x2EB848, 0x0000020
gUnk_082EB868:: @ 082EB868
.incbin "baserom.gba", 0x2EB868, 0x0000028
gUnk_082EB890:: @ 082EB890
.incbin "baserom.gba", 0x2EB890, 0x0000028
gUnk_082EB8B8:: @ 082EB8B8
.incbin "baserom.gba", 0x2EB8B8, 0x0000024
gUnk_082EB8DC:: @ 082EB8DC
.incbin "baserom.gba", 0x2EB8DC, 0x000003C
gUnk_082EB918:: @ 082EB918
.incbin "baserom.gba", 0x2EB918, 0x000003C
gUnk_082EB954:: @ 082EB954
.incbin "baserom.gba", 0x2EB954, 0x0000030
gUnk_082EB984:: @ 082EB984
.incbin "baserom.gba", 0x2EB984, 0x0000020
gUnk_082EB9A4:: @ 082EB9A4
.incbin "baserom.gba", 0x2EB9A4, 0x0000258
gUnk_082EBBFC:: @ 082EBBFC
.incbin "baserom.gba", 0x2EBBFC, 0x0000438
gUnk_082EC034:: @ 082EC034
.incbin "baserom.gba", 0x2EC034, 0x0000744
gUnk_082EC778:: @ 082EC778
.incbin "baserom.gba", 0x2EC778, 0x000000C

22
data/data_7.s Normal file
View File

@ -0,0 +1,22 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
gUnk_082DDE84:: @ 082DDE84
.incbin "baserom.gba", 0x2DDE84, 0x000006C
gUnk_082DDEF0:: @ 082DDEF0
.incbin "baserom.gba", 0x2DDEF0, 0x000006C
gUnk_082DDF5C:: @ 082DDF5C
.incbin "baserom.gba", 0x2DDF5C, 0x000006C
gUnk_082DDFC8:: @ 082DDFC8
.incbin "baserom.gba", 0x2DDFC8, 0x000006C
gUnk_082DE034:: @ 082DE034
.incbin "baserom.gba", 0x2DE034, 0x0000040
gUnk_082DE074:: @ 082DE074
.incbin "baserom.gba", 0x2DE074, 0x0000020

View File

@ -105,6 +105,7 @@ u8 sub_0804BAD8(struct Kirby *);
void sub_0804BD00(struct Kirby *);
bool8 sub_0804BD98(struct Kirby *, u8, u8, u8, s8, s8);
bool8 sub_080525C0(struct Kirby *);
bool8 sub_080528E4(struct Kirby *);
void sub_08052BB4(struct Kirby *);
void sub_08052E2C(struct Kirby *);
void sub_080531B4(struct Kirby *, const struct Unk_08353510 *);

View File

@ -290,50 +290,50 @@
sub_0815604C(sprite); \
})
#define Macro_080FC150(objBase /* obj4 */) ({ \
#define Macro_080FC150(objBase /* obj4 */, sprite) ({ \
if ((objBase)->flags & 1) \
{ \
struct Sprite *_r0 = &(objBase)->sprite; \
struct Sprite *_r0 = (sprite); \
\
_r0->unk8 = (objBase)->sprite.unk8 | 0x400; \
_r0->unk8 = (sprite)->unk8 | 0x400; \
} \
else \
{ \
struct Sprite *_r0 = &(objBase)->sprite; \
struct Sprite *_r0 = (sprite); \
\
_r0->unk8 = (objBase)->sprite.unk8 & ~0x400; \
_r0->unk8 = (sprite)->unk8 & ~0x400; \
} \
if (!((objBase)->flags & 8)) \
{ \
if (((objBase)->sprite.unk1B != (objBase)->sprite.variant || (objBase)->sprite.unk18 != (objBase)->sprite.animId) \
&& (objBase)->sprite.unk1C) \
if (((sprite)->unk1B != (sprite)->variant || (sprite)->unk18 != (sprite)->animId) \
&& (sprite)->unk1C) \
{ \
(objBase)->unk1 = 0; \
(objBase)->unk2 = 0; \
(objBase)->flags &= ~4; \
} \
if (!sub_08155128(&(objBase)->sprite)) \
if (!sub_08155128(sprite)) \
{ \
(objBase)->flags |= 2; \
if ((objBase)->flags & 4 && (objBase)->sprite.unk1C) \
if ((objBase)->flags & 4 && (sprite)->unk1C) \
{ \
(objBase)->sprite.unk1B = 0xFF; \
(sprite)->unk1B = 0xFF; \
(objBase)->flags &= ~4; \
(objBase)->unk1 = 0; \
(objBase)->unk2 = 0; \
sub_08155128(&(objBase)->sprite); \
sub_08155128(sprite); \
} \
} \
else \
{ \
(objBase)->unk2 += (objBase)->sprite.unk1C; \
(objBase)->unk2 += (sprite)->unk1C; \
(objBase)->unk1 = (objBase)->unk2 >> 4; \
(objBase)->flags &= ~2; \
} \
} \
(objBase)->sprite.x = ((objBase)->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8) + (objBase)->objBase54; \
(objBase)->sprite.y = ((objBase)->y >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unk10 >> 8) + (objBase)->objBase55; \
if ((objBase)->sprite.unk1C) \
(sprite)->x = ((objBase)->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8) + (objBase)->objBase54; \
(sprite)->y = ((objBase)->y >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unk10 >> 8) + (objBase)->objBase55; \
if ((sprite)->unk1C) \
{ \
(objBase)->objBase54 = 0; \
(objBase)->objBase55 = 0; \

71
include/warp_star.h Normal file
View File

@ -0,0 +1,71 @@
#ifndef GUARD_WARP_STAR_H
#define GUARD_WARP_STAR_H
#include "global.h"
#include "data.h"
struct StarShared
{
struct Object2 obj2;
u8 unkB4;
u8 unkB5;
u16 unkB6;
u16 unkB8;
u16 unkBA;
}; /* size = 0xBC */
struct WarpStar
{
struct StarShared unk0;
u16 unkBC;
u16 unkBE;
s16 unkC0;
s16 unkC2;
}; /* size = 0xC4 */
struct GoalStar_D4
{
u16 unk0;
u16 unk2[0x14];
u16 unk2A[8];
}; /* size = 0x3C */
struct GoalStar
{
struct StarShared unk0;
u16 unkBC;
u8 unkBE[4];
u16 unkC2;
u32 unkC4;
s32 unkC8;
u16 unkCC;
u16 unkCE;
u16 unkD0;
const struct GoalStar_D4 *unkD4;
u16 unkD8;
u16 unkDA;
u32 unkDC;
u16 unkE0;
u16 unkE2;
u16 unkE4;
}; /* size = 0xE8 */
struct Unk_0800D9E8
{
struct Object4 obj4;
struct Sprite sprites[3];
void (*unkC0)(struct Unk_0800D9E8 *);
struct GoalStar *unkC4;
u16 unkC8;
}; /* size = 0xCC */
void *CreateWarpStar(struct Object *, u8);
void *CreateGoalStar(struct Object *, u8);
void nullsub_101(struct WarpStar *);
void nullsub_102(struct GoalStar *);
extern const struct Unk_02021590 gUnk_082DDE24[];
extern const struct Unk_02021590 gUnk_082DDE2C[];
#endif

View File

@ -234,6 +234,7 @@ SECTIONS {
src/code_080023A4.o(.text);
src/save.o(.text);
asm/chest.o(.text);
src/warp_star.o(.text);
asm/warp_star.o(.text);
src/code_08019CB8.o(.text);
src/multi_08019F28.o(.text);
@ -409,6 +410,8 @@ SECTIONS {
*libc.a:memcpy.o(.text);
*libc.a:memset.o(.text);
data/data_1.o(.rodata);
src/warp_star.o(.rodata);
data/data_7.o(.rodata);
src/multi_08019F28.o(.rodata);
data/data_15.o(.rodata);
src/shard.o(.rodata);
@ -418,6 +421,8 @@ SECTIONS {
src/shadow_kirby.o(.rodata);
data/data_11.o(.rodata);
src/special_doors.o(.rodata);
data/data_17.o(.rodata);
src/warp_star_data.o(.rodata);
data/data_6.o(.rodata);
src/cupie.o(.rodata);
src/waddle_dee.o(.rodata);

View File

@ -2886,7 +2886,7 @@ static void sub_080FC150(void)
objBase->flags |= 0x200;
}
}
Macro_080FC150(objBase);
Macro_080FC150(objBase, &objBase->sprite);
if (!(objBase->flags & 0x400)
&& gKirbys[gUnk_0203AD3C].base.base.base.roomId == objBase->roomId)
{
@ -3661,7 +3661,7 @@ static void sub_080FEA70(void)
_080FEC9C:
KirbySomething(obj4);
}
Macro_080FC150(obj4);
Macro_080FC150(obj4, &obj4->sprite);
if (obj4->sprite.variant > 0xD && obj4->flags & 2)
{
obj4->flags |= 0x1000;
@ -3739,7 +3739,7 @@ static void sub_080FEFB0(void)
++obj4->sprite.variant;
if (obj4->sprite.variant == 8 && objBase2->counter == 0xA)
++obj4->sprite.variant;
Macro_080FC150(obj4);
Macro_080FC150(obj4, &obj4->sprite);
if ((obj4->sprite.variant == 0xB || obj4->sprite.variant == 9) && obj4->flags & 2)
{
obj4->flags |= 0x1000;
@ -3834,7 +3834,7 @@ static void sub_080FF5B0(void)
obj4->y = y;
return;
}
Macro_080FC150(obj4);
Macro_080FC150(obj4, &obj4->sprite);
for (i = 0; i < 4; ++i)
{
if ((obj4->unk4 >> i) & 1)

View File

@ -4132,7 +4132,7 @@ static void sub_08106BE0(void)
r6->x = r8->unk48 - r8->xspeed - r8->xspeed;
r6->y = r8->unk4C + r8->yspeed + r8->yspeed;
if (!Macro_0810B1F4(r8))
Macro_080FC150(r6);
Macro_080FC150(r6, &r6->sprite);
Macro_08108368(r6, 0, 0);
r6->x = r8->unk48;
r6->y = r8->unk4C;
@ -4143,7 +4143,7 @@ static void sub_08106BE0(void)
r6->x = r8->unk48;
r6->y = r8->unk4C;
if (!Macro_0810B1F4(r8))
Macro_080FC150(r6);
Macro_080FC150(r6, &r6->sprite);
else
{
r6->sprite.x = (r6->x >> 8) - (gCurLevelInfo[gUnk_0203AD3C].unkC >> 8);
@ -4558,7 +4558,7 @@ static void sub_08108368(void)
return;
}
r6->flags |= 4;
Macro_080FC150(r6);
Macro_080FC150(r6, &r6->sprite);
}
Macro_08108368(r6, 0x3000, 0);
Macro_08108368(r6, 0x7000, 0);
@ -4613,7 +4613,7 @@ static void sub_08108A50(void)
return;
}
r6->flags |= 4;
Macro_080FC150(r6);
Macro_080FC150(r6, &r6->sprite);
}
r6->sprite.unk8 ^= 0x400;
Macro_08108368(r6, 0x1400, -0x2400);
@ -4706,7 +4706,7 @@ static void sub_081094C4(void)
}
else
{
Macro_080FC150(r6);
Macro_080FC150(r6, &r6->sprite);
for (r8 = 0; r8 < 4; ++r8)
{
sp2C->unk48[r8][1] -= sp2C->unk68[r8][0];
@ -9441,7 +9441,7 @@ static void sub_08112880(void)
{
if (!r7->laserShower || r7->laserShower->base.flags & 0x1000)
r5->unk4 = 1;
Macro_080FC150(r5);
Macro_080FC150(r5, &r5->sprite);
for (r8 = 0; r8 < 4; ++r8)
{
sp2C->unk48[r8][1] -= sp2C->unk68[r8];

View File

@ -969,7 +969,7 @@ static void sub_080DD044(void)
obj4->sprite.variant = 9;
break;
}
Macro_080FC150(obj4);
Macro_080FC150(obj4, &obj4->sprite);
obj4->sprite.unk8 &= ~0x800;
obj4->sprite.palId = obj4->unk8;
if (!(obj4->flags & 0x400) && gKirbys[gUnk_0203AD3C].base.base.base.roomId == obj4->roomId)

2511
src/warp_star.c Normal file

File diff suppressed because it is too large Load Diff

306
src/warp_star_data.c Normal file
View File

@ -0,0 +1,306 @@
// TODO: need a better file name
#include "warp_star.h"
const struct GoalStar_D4 gUnk_082EB9A4[] = {
{
.unk0 = 0x1E,
.unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x3C,
.unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0x5A,
.unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 },
},
{
.unk0 = 0x78,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x96,
.unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xB4,
.unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0xD2,
.unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 },
},
{
.unk0 = 0xF0,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 },
},
{
.unk0 = 0x10E,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA },
.unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 },
},
{
.unk0 = 0xFFFF,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
};
const struct GoalStar_D4 gUnk_082EBBFC[] = {
{
.unk0 = 0x1E,
.unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x3C,
.unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0x78,
.unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0xA, 0xA, 0xA, 0xA, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 },
},
{
.unk0 = 0x96,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xB4,
.unk2 = { 0x32, 0x32, 0x32, 0x32, 0x32, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xD2,
.unk2 = { 0x0, 0x19, 0x19, 0xC, 0xC, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0xF0,
.unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 },
},
{
.unk0 = 0x10E,
.unk2 = { 0x0, 0xA, 0x1E, 0x0, 0x0, 0xA, 0x12, 0x32, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 },
},
{
.unk0 = 0x12C,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0xA, 0x1E, 0xA, 0xA, 0xA, 0x1E, 0xA, 0xA, 0xA },
.unk2A = { 0x32, 0x32, 0x1C, 0x0, 0x0, 0x1C, 0x32, 0x32 },
},
{
.unk0 = 0x14A,
.unk2 = { 0x0, 0x32, 0x96, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x64, 0x64, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x168,
.unk2 = { 0x0, 0x96, 0x32, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x64, 0x64 },
},
{
.unk0 = 0x186,
.unk2 = { 0x0, 0x64, 0x0, 0x0, 0x0, 0x14, 0x24, 0x32, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0x1A4,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 },
},
{
.unk0 = 0x1C2,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x64, 0x64 },
},
{
.unk0 = 0x1E0,
.unk2 = { 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x1F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x1FE,
.unk2 = { 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0x21C,
.unk2 = { 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x30, 0x30, 0x10, 0x10, 0x10, 0x10, 0x30, 0x30 },
},
{
.unk0 = 0xFFFF,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
};
const struct GoalStar_D4 gUnk_082EC034[] = {
{
.unk0 = 0x1E,
.unk2 = { 0xF9, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x28,
.unk2 = { 0xF2, 0x0, 0xE, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x32,
.unk2 = { 0xE4, 0x0, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0 },
},
{
.unk0 = 0x3C,
.unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0 },
},
{
.unk0 = 0x5A,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x96, 0x32 },
},
{
.unk0 = 0x64,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x32, 0x96, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x82,
.unk2 = { 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x64, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x40, 0x40, 0x0, 0x0, 0x0, 0x0, 0x40, 0x40 },
},
{
.unk0 = 0x83,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x64, 0x64, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0xA0,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xBE,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xD2,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x10E,
.unk2 = { 0x0, 0x0, 0x0, 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 },
},
{
.unk0 = 0x12C,
.unk2 = { 0x0, 0x0, 0x0, 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 },
},
{
.unk0 = 0x14A,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 },
},
{
.unk0 = 0x168,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x1C, 0x64, 0x64, 0x1C, 0x0, 0x0 },
},
{
.unk0 = 0x186,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x1A4,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x1C2,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x1FE,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x9C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x40, 0x40, 0x40, 0x40, 0x0, 0x0 },
},
{
.unk0 = 0x21C,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x23A,
.unk2 = { 0x9C, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x64, 0x1C, 0x0, 0x0, 0x0, 0x0, 0x1C, 0x64 },
},
{
.unk0 = 0x258,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x276,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x294,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xC8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x2B2,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0x2D0,
.unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x2EE,
.unk2 = { 0xC8, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xC8 },
},
{
.unk0 = 0x30C,
.unk2 = { 0x0, 0x64, 0x0, 0x0, 0x0, 0x64, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0xC8, 0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
{
.unk0 = 0x32A,
.unk2 = { 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x38, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xC8 },
},
{
.unk0 = 0x348,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x32, 0x0, 0x32, 0x0, 0x32, 0x0, 0x32 },
.unk2A = { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 },
},
{
.unk0 = 0xFFFF,
.unk2 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
.unk2A = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
},
};