Document some basic ball physics stuff
Some checks are pending
CI / build (push) Waiting to run

This commit is contained in:
Marcus Huderle 2025-02-20 20:23:41 -06:00
parent 05f8f3ba0a
commit 0ac318979e
4 changed files with 32 additions and 31 deletions

View File

@ -1061,13 +1061,13 @@ gUnknown_08118680:: @ 0x08118680
.include "data/graphics/titlescreen.inc"
gUnknown_08137900:: @ 0x08137900
.incbin "baserom.gba", 0x137900, 0x8
.2byte 1, 1, 1, 0
gUnknown_08137908:: @ 0x08137908
.incbin "baserom.gba", 0x137908, 0x8
.2byte 1, 0, 1, 0
gUnknown_08137910:: @ 0x08137910
.incbin "baserom.gba", 0x137910, 0x8
.2byte 1, 0, 0, 0
gIdlePinballGameStateFuncs:: @ 0x08137918
.4byte sub_19048

View File

@ -80,6 +80,7 @@ struct UnkPinballGame1334_unk2C
s16 unk2;
};
// This struct holds data about the ball's velocity, position, etc.
struct UnkPinballGame1334
{
/*0x00*/ u8 unk0;
@ -94,10 +95,10 @@ struct UnkPinballGame1334
/*0x20*/ u8 filler20[0x8];
/*0x28*/ struct UnkPinballGame1334_unk2C unk28;
/*0x2C*/ struct UnkPinballGame1334_unk2C unk2C;
/*0x30*/ u16 unk30;
/*0x32*/ u16 unk32;
/*0x34*/ u32 unk34;
/*0x38*/ u32 unk38;
/*0x30*/ s16 xVelocity;
/*0x32*/ s16 yVelocity;
/*0x34*/ u32 xPosition; // fixed-point Q_24_8 values?
/*0x38*/ u32 yPosition;
/*0x3C*/ u8 filler3C[0x8];
};

View File

@ -398,11 +398,11 @@ void sub_4A6A0(void)
case 0:
gCurrentPinballGame->unk132c->unk10 = 119;
gCurrentPinballGame->unk132c->unk12 = 279;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->xVelocity = 0;
gCurrentPinballGame->unk132c->yVelocity = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->xPosition = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->yPosition = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
@ -420,11 +420,11 @@ void sub_4A6A0(void)
case 1:
gCurrentPinballGame->unk132c->unk10 = 140;
gCurrentPinballGame->unk132c->unk12 = 183;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->xVelocity = 0;
gCurrentPinballGame->unk132c->yVelocity = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->xPosition = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->yPosition = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
@ -436,11 +436,11 @@ void sub_4A6A0(void)
case 2:
gCurrentPinballGame->unk132c->unk10 = -28;
gCurrentPinballGame->unk132c->unk12 = -10;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->xVelocity = 0;
gCurrentPinballGame->unk132c->yVelocity = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->xPosition = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->yPosition = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;

View File

@ -493,14 +493,14 @@ void sub_329F4(void)
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
gCurrentPinballGame->unk28--;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->xVelocity = 0;
gCurrentPinballGame->unk132c->yVelocity = 0;
gCurrentPinballGame->unk132c->unk10 = 58;
gCurrentPinballGame->unk132c->unk12 = 178;
gCurrentPinballGame->unk132c->unk28.unk0 = gCurrentPinballGame->unk132c->unk10 * 2;
gCurrentPinballGame->unk132c->unk28.unk2 = gCurrentPinballGame->unk132c->unk12 * 2;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 * 256;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 * 256;
gCurrentPinballGame->unk132c->xPosition = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->yPosition = gCurrentPinballGame->unk132c->unk12 << 8;
if (gCurrentPinballGame->unk28 <= 0x31)
{
@ -528,8 +528,8 @@ void sub_329F4(void)
gCurrentPinballGame->unk132c->unk0 = 0;
gCurrentPinballGame->unk1F = 0;
gCurrentPinballGame->unk26 = 0x3C;
gCurrentPinballGame->unk132c->unk30 = 0x60;
gCurrentPinballGame->unk132c->unk32 = 0xC0;
gCurrentPinballGame->unk132c->xVelocity = 0x60;
gCurrentPinballGame->unk132c->yVelocity = 0xC0;
gCurrentPinballGame->unk132c->unk10 = 0x3C;
gCurrentPinballGame->unk132c->unk12 = 0xB4;
gCurrentPinballGame->unk132c->unk6 = 0;
@ -569,8 +569,8 @@ void sub_32BE4(void)
gCurrentPinballGame->unk5F7 = 1;
gCurrentPinballGame->unk1F = 1;
gCurrentPinballGame->unk28--;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->xVelocity = 0;
gCurrentPinballGame->unk132c->yVelocity = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
if (gCurrentPinballGame->unk28 > 97)
{
@ -630,8 +630,8 @@ void sub_32BE4(void)
gCurrentPinballGame->unk132c->unk28.unk0 = gCurrentPinballGame->unk132c->unk10 * 2;
gCurrentPinballGame->unk132c->unk28.unk2 = gCurrentPinballGame->unk132c->unk12 * 2;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 * 256;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 * 256;
gCurrentPinballGame->unk132c->xPosition = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->yPosition = gCurrentPinballGame->unk132c->unk12 << 8;
}
else
{
@ -639,8 +639,8 @@ void sub_32BE4(void)
gCurrentPinballGame->unk1F = 0;
gCurrentPinballGame->unk26 = 60;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk30 = 0xFF9A;
gCurrentPinballGame->unk132c->unk32 = 200;
gCurrentPinballGame->unk132c->xVelocity = -0x66;
gCurrentPinballGame->unk132c->yVelocity = 0xC8;
sub_11B0(7);
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk10 = 0xAB;