sub_4A6A0 and document gMain.bgOffsets

This commit is contained in:
Marcus Huderle 2025-02-16 09:51:12 -06:00
parent 1ddf17bd6e
commit f91ff1cdbd
16 changed files with 400 additions and 593 deletions

View File

@ -6,309 +6,6 @@
.text
thumb_func_start sub_4A6A0
sub_4A6A0: @ 0x0804A6A0
push {r4, r5, r6, r7, lr}
ldr r1, _0804A6C0 @ =gCurrentPinballGame
ldr r2, [r1]
ldr r3, _0804A6C4 @ =0x00000282
adds r0, r2, r3
movs r5, #0
ldrsb r5, [r0, r5]
adds r6, r1, #0
cmp r5, #1
beq _0804A760
cmp r5, #1
bgt _0804A6C8
cmp r5, #0
beq _0804A6D0
b _0804A83C
.align 2, 0
_0804A6C0: .4byte gCurrentPinballGame
_0804A6C4: .4byte 0x00000282
_0804A6C8:
cmp r5, #2
bne _0804A6CE
b _0804A7D0
_0804A6CE:
b _0804A83C
_0804A6D0:
ldr r4, _0804A738 @ =0x0000132C
adds r1, r2, r4
ldr r2, [r1]
movs r3, #0
movs r0, #0x77
strh r0, [r2, #0x10]
ldr r2, [r1]
adds r0, #0xa0
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r5, [r0, #0x30]
ldr r0, [r1]
strh r5, [r0, #0x32]
ldr r0, [r1]
strh r5, [r0, #6]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
strb r1, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r3, [r0]
ldr r0, [r6]
movs r1, #0x78
strh r1, [r0, #0x28]
adds r0, #0x25
movs r1, #4
strb r1, [r0]
ldr r0, _0804A73C @ =gMain
ldrb r0, [r0, #4]
cmp r0, #0
bne _0804A740
bl sub_1A9E8
b _0804A744
.align 2, 0
_0804A738: .4byte 0x0000132C
_0804A73C: .4byte gMain
_0804A740:
bl sub_32968
_0804A744:
ldr r3, _0804A75C @ =gCurrentPinballGame
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0x4c
movs r0, #0
strh r0, [r2]
adds r1, #0x4e
movs r0, #0xd7
strh r0, [r1]
adds r6, r3, #0
b _0804A83C
.align 2, 0
_0804A75C: .4byte gCurrentPinballGame
_0804A760:
ldr r3, _0804A7C8 @ =0x0000132C
adds r1, r2, r3
ldr r2, [r1]
movs r4, #0
movs r3, #0
movs r0, #0x8c
strh r0, [r2, #0x10]
ldr r2, [r1]
movs r0, #0xb7
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r2, [r1]
movs r7, #0x10
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
strb r5, [r0]
ldr r0, [r6]
strb r5, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
ldr r2, _0804A7CC @ =0x000002A2
adds r0, r0, r2
movs r1, #5
strb r1, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x4c
strh r3, [r1]
adds r0, #0x4e
movs r1, #0x76
strh r1, [r0]
b _0804A83C
.align 2, 0
_0804A7C8: .4byte 0x0000132C
_0804A7CC: .4byte 0x000002A2
_0804A7D0:
ldr r3, _0804A8E4 @ =0x0000132C
adds r1, r2, r3
ldr r2, [r1]
movs r4, #0
movs r3, #0
ldr r0, _0804A8E8 @ =0x0000FFE4
strh r0, [r2, #0x10]
ldr r2, [r1]
adds r0, #0x12
strh r0, [r2, #0x12]
ldr r0, [r1]
strh r3, [r0, #0x30]
ldr r0, [r1]
strh r3, [r0, #0x32]
ldr r0, [r1]
strh r3, [r0, #6]
ldr r2, [r1]
movs r5, #0x10
ldrsh r0, [r2, r5]
lsls r0, r0, #8
str r0, [r2, #0x34]
ldr r2, [r1]
movs r7, #0x12
ldrsh r0, [r2, r7]
lsls r0, r0, #8
str r0, [r2, #0x38]
ldr r2, [r1]
movs r0, #0x80
strh r0, [r2, #0xe]
ldr r0, [r1]
movs r1, #1
strb r1, [r0]
ldr r0, [r6]
strb r1, [r0, #0x1f]
ldr r0, [r6]
movs r1, #0xe6
lsls r1, r1, #3
adds r0, r0, r1
strb r4, [r0]
ldr r0, [r6]
movs r2, #0xc3
lsls r2, r2, #2
adds r1, r0, r2
strh r3, [r1]
ldr r4, _0804A8EC @ =0x00000306
adds r0, r0, r4
movs r1, #7
strb r1, [r0]
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x4c
strh r3, [r1]
adds r0, #0x4e
strh r3, [r0]
_0804A83C:
ldr r1, [r6]
ldr r3, _0804A8F0 @ =0x000005FC
adds r0, r1, r3
movs r4, #0
movs r2, #0
strh r2, [r0]
ldr r5, _0804A8F4 @ =0x000005FE
adds r0, r1, r5
strh r2, [r0]
ldr r7, _0804A8F8 @ =0x000005FB
adds r1, r1, r7
strb r4, [r1]
ldr r2, [r6]
adds r5, r2, #0
adds r5, #0x4e
movs r1, #0
ldrsh r0, [r5, r1]
lsls r0, r0, #8
str r0, [r2, #0x54]
adds r4, r2, #0
adds r4, #0x4c
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x58
strh r1, [r0]
adds r3, r2, r3
ldrh r0, [r3]
ldrh r5, [r5]
adds r0, r0, r5
adds r1, r2, #0
adds r1, #0x5a
strh r0, [r1]
ldr r2, _0804A8FC @ =gMain
ldrh r1, [r4]
movs r3, #0xbc
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r1, [r0]
ldr r4, _0804A900 @ =0x000002F2
adds r0, r2, r4
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4c
ldrh r1, [r0]
movs r5, #0xbd
lsls r5, r5, #2
adds r0, r2, r5
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r3, [r0]
ldr r7, _0804A904 @ =0x000002F6
adds r4, r2, r7
strh r3, [r4]
ldr r0, [r6]
adds r0, #0x4c
ldrh r1, [r0]
subs r5, #8
adds r0, r2, r5
strh r1, [r0]
ldr r0, [r6]
adds r0, #0x4e
ldrh r1, [r0]
subs r7, #8
adds r0, r2, r7
strh r1, [r0]
ldr r0, _0804A908 @ =0x000002EA
adds r2, r2, r0
movs r0, #0x50
strh r0, [r2]
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0xcc
strh r3, [r0]
ldrh r0, [r4]
lsrs r0, r0, #3
adds r1, #0x64
strh r0, [r1]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0804A8E4: .4byte 0x0000132C
_0804A8E8: .4byte 0x0000FFE4
_0804A8EC: .4byte 0x00000306
_0804A8F0: .4byte 0x000005FC
_0804A8F4: .4byte 0x000005FE
_0804A8F8: .4byte 0x000005FB
_0804A8FC: .4byte gMain
_0804A900: .4byte 0x000002F2
_0804A904: .4byte 0x000002F6
_0804A908: .4byte 0x000002EA
thumb_func_start sub_4A90C
sub_4A90C: @ 0x0804A90C
push {r4, lr}

Binary file not shown.

View File

@ -436,7 +436,7 @@ extern void sub_19B90();
extern void sub_1A0F4();
//extern ? sub_1A2C0();
//extern ? sub_1A98C();
//extern ? sub_1A9E8();
extern void sub_1A9E8(void);
//extern ? sub_1AA38();
//extern ? sub_1AAA0();
//extern ? sub_1AD84();

View File

@ -69,6 +69,25 @@
#define JOY_NEW_EXACT(button) TEST_BUTTON_EXACT(gMain.newKeys, button)
#define JOY_HELD_EXACT(button) TEST_BUTTON_EXACT(gMain.heldKeys, button)
struct UnkPinballGame1334
{
/*0x00*/ u8 unk0;
/*0x01*/ u8 filler1[0x5];
/*0x06*/ u16 unk6;
/*0x08*/ u8 filler8[0x6];
/*0x0E*/ u16 unkE;
/*0x10*/ s16 unk10;
/*0x12*/ s16 unk12;
/*0x14*/ u8 filler14[0xB];
/*0x1F*/ u8 unk1F;
/*0x20*/ u8 filler20[0x10];
/*0x30*/ u16 unk30;
/*0x32*/ u16 unk32;
/*0x34*/ u32 unk34;
/*0x38*/ u32 unk38;
/*0x3C*/ u8 filler3C[0x8];
};
struct PinballGame
{
/*0x000*/ u8 filler0[0x13];
@ -78,7 +97,9 @@ struct PinballGame
/*0x016*/ u8 unk16;
/*0x017*/ u8 filler17[0x6];
/*0x01D*/ u8 unk1D;
/*0x01E*/ u8 filler1E[0x7];
/*0x01E*/ u8 filler1E[0x1];
/*0x01F*/ u8 unk1F;
/*0x020*/ u8 filler20[0x5];
/*0x025*/ s8 unk25;
/*0x026*/ u16 unk26;
/*0x028*/ u16 unk28;
@ -88,14 +109,24 @@ struct PinballGame
/*0x032*/ u8 filler32[0x3];
/*0x035*/ s8 area;
/*0x036*/ u8 filler36[0x2];
/*0x038*/ int unk38;
/*0x038*/ u32 unk38;
/*0x03C*/ u32 unk3C;
/*0x040*/ u8 filler40[0x26];
/*0x040*/ u8 filler40[0xC];
/*0x04C*/ u16 unk4C;
/*0x04E*/ s16 unk4E;
/*0x050*/ u8 filler50[0x4];
/*0x054*/ u32 unk54;
/*0x058*/ u16 unk58;
/*0x05A*/ u16 unk5A;
/*0x05C*/ u8 filler5C[0x8];
/*0x064*/ u16 unk64;
/*0x066*/ u16 unk66;
/*0x068*/ s16 unk68;
/*0x06A*/ u8 filler6A[0x5];
/*0x06F*/ s8 unk6F;
/*0x070*/ u8 filler70[0xBB];
/*0x070*/ u8 filler70[0x5C];
/*0x0CC*/ u16 unkCC;
/*0x0CE*/ u8 fillerCE[0x5D];
/*0x12B*/ s8 forceSpecialMons; // When on, force next catch mode species to be special mons
/*0x12C*/ s8 forcePichuEgg; // When on, force next egg mode species to be Pichu
/*0x12D*/ u8 filler12D;
@ -127,9 +158,17 @@ struct PinballGame
/*0x1E3*/ u8 filler1E3[0x2];
/*0x1E5*/ u8 unk1E5;
/*0x1E6*/ u8 unk1E6;
/*0x1E7*/ u8 filler1E7[0xB5];
/*0x1E7*/ u8 filler1E7[0x9B];
/*0x282*/ s8 unk282;
/*0x283*/ u8 filler283[0x19];
/*0x29C*/ u16 unk29C;
/*0x29E*/ u8 filler29E[0xA6];
/*0x29E*/ u8 filler29E[0x4];
/*0x2A2*/ u8 unk2A2;
/*0x2A3*/ u8 filler2A3[0x63];
/*0x306*/ u8 unk306;
/*0x307*/ u8 filler307[0x5];
/*0x30C*/ u16 unk30C;
/*0x30E*/ u8 filler30E[0x36];
/*0x344*/ u32 unk344;
/*0x348*/ u8 filler348[0x250];
/*0x598*/ u16 unk598; // Current catch/hatch mode species? Is it evo mode as well?
@ -142,7 +181,10 @@ struct PinballGame
/*0x5F6*/ s8 unk5F6;
/*0x5F7*/ u8 unk5F7;
/*0x5F8*/ u16 unk5F8;
/*0x5FA*/ u8 filler5FA[0x6];
/*0x5FA*/ u8 filler5FA[0x1];
/*0x5FB*/ u8 unk5FB;
/*0x5FC*/ u16 unk5FC;
/*0x5FE*/ u16 unk5FE;
/*0x600*/ u16 unk600;
/*0x602*/ u8 filler602[0xC2];
/*0x6C4*/ u8 unk6C4;
@ -151,7 +193,8 @@ struct PinballGame
/*0x729*/ u8 filler729[0x5];
/*0x72E*/ u8 unk72E; // TODO: unknown type
/*0x72F*/ u8 unk72F; // TODO: unknown type
/*0x730*/ u8 filler730[0xC];
/*0x730*/ u8 unk730;
/*0x731*/ u8 filler731[0xB];
/*0x73C*/ u8 unk73C; // TODO: unknown type
/*0x73D*/ s8 catchModeArrows; // Affects which encounter table is used per area
/*0x73E*/ u8 filler73E[0x80E];
@ -159,9 +202,9 @@ struct PinballGame
/*0xF50*/ u8 fillerF50[0x1B0];
/*0x1100*/u8 unk1100;
/*0x1104*/u8 filler1101[0x22B];
/*0x132C*/s32 *unk132c;
/*0x1330*/s32 *unk1330;
/*0x1334*/s32 unk1334[2][17];
/*0x132C*/struct UnkPinballGame1334 *unk132c;
/*0x1330*/struct UnkPinballGame1334 *unk1330;
/*0x1334*/struct UnkPinballGame1334 unk1334[2];
/*0x13BC*/u8 filler[0x54];
} /* size=0x1410 */;

View File

@ -46,6 +46,12 @@ struct MainUnk44
u16 *unkA4;
};
struct BgOffsets
{
u16 xOffset;
u16 yOffset;
};
struct Main
{
/*0x00*/ u8 filler0[0x2];
@ -105,7 +111,7 @@ struct Main
#define gMain_saveData (*(struct SaveData *)(&gMain.saveData))
/*0x74*/ struct SaveData saveData;
/*0x2E8*/ struct MainUnk2E8 unk2E8[4];
/*0x2E8*/ struct BgOffsets bgOffsets[4];
/*0x2F8*/ struct SpriteGroup spriteGroups[NUM_SPRITE_GROUPS];
};

View File

@ -10,12 +10,6 @@
typedef void (*StateFunc)(void);
typedef void (*IntrFunc)(void);
struct MainUnk2E8
{
u16 unk0;
u16 unk2;
};
struct SpriteSet
{
u16 count;

View File

@ -62,8 +62,8 @@ void LoadEReaderGraphics(void)
REG_BG1CNT = BGCNT_SCREENBASE(1) | BGCNT_CHARBASE(1) | BGCNT_PRIORITY(1);
REG_DISPCNT |= DISPCNT_BG1_ON;
gMain.unk2E8[0].unk0 = 0xffe8;
gMain.unk2E8[0].unk2 = (0xffe8 - 0x48);
gMain.bgOffsets[0].xOffset = 0xffe8;
gMain.bgOffsets[0].yOffset = (0xffe8 - 0x48);
gMain.unk16 = REG_DISPCNT;
DmaCopy16(3, gUnknown_08081D20, (void*) PLTT, 0x40);
@ -328,8 +328,8 @@ void sub_343C(void)
REG_BG1CNT = BGCNT_SCREENBASE(1) | BGCNT_CHARBASE(1) | BGCNT_PRIORITY(1);
REG_DISPCNT |= DISPCNT_BG1_ON;
gMain.unk2E8[0].unk0 = 0xffe8;
gMain.unk2E8[0].unk2 = (0xffe8 - 0x48);
gMain.bgOffsets[0].xOffset = 0xffe8;
gMain.bgOffsets[0].yOffset = (0xffe8 - 0x48);
gMain.unk16 = REG_DISPCNT;
DmaCopy16(3, gUnknown_08081D20, (void*) PLTT, 0x40);

View File

@ -193,8 +193,8 @@ void sub_CFD4(void)
sub_E464();
gUnknown_02002858.unkA = 3;
}
gMain.unk2E8[3].unk0 = gUnknown_02002882;
gMain.unk2E8[2].unk0 = gUnknown_02002882;
gMain.bgOffsets[3].xOffset = gUnknown_02002882;
gMain.bgOffsets[2].xOffset = gUnknown_02002882;
}
void sub_D20C(void)
@ -405,8 +405,8 @@ void sub_D4B8(void)
}
}
gMain.unk2E8[3].unk0 = gUnknown_02002882;
gMain.unk2E8[2].unk0 = gUnknown_02002882;
gMain.bgOffsets[3].xOffset = gUnknown_02002882;
gMain.bgOffsets[2].xOffset = gUnknown_02002882;
}
void sub_D664(void)
@ -750,8 +750,8 @@ void sub_DEB4(void)
gUnknown_02002880 = -1;
gUnknown_02002858.unk24 = 0;
gUnknown_02002858.unkA = 0;
gMain.unk2E8[3].unk0 = gUnknown_02002882;
gMain.unk2E8[2].unk0 = gUnknown_02002882;
gMain.bgOffsets[3].xOffset = gUnknown_02002882;
gMain.bgOffsets[2].xOffset = gUnknown_02002882;
}
void sub_DF68(void)
@ -781,8 +781,8 @@ void sub_DF68(void)
gUnknown_02002858.unk8 = 0;
gUnknown_02002858.unkA = 2;
}
gMain.unk2E8[3].unk0 = gUnknown_02002882;
gMain.unk2E8[2].unk0 = gUnknown_02002882;
gMain.bgOffsets[3].xOffset = gUnknown_02002882;
gMain.bgOffsets[2].xOffset = gUnknown_02002882;
break;
case 2:
if (++gUnknown_02002858.unk1E > 8)
@ -875,8 +875,8 @@ void sub_E230(void)
gUnknown_02002858.unk8 = 0;
gUnknown_02002858.unkA = 2;
}
gMain.unk2E8[3].unk0 = gUnknown_02002882;
gMain.unk2E8[2].unk0 = gUnknown_02002882;
gMain.bgOffsets[3].xOffset = gUnknown_02002882;
gMain.bgOffsets[2].xOffset = gUnknown_02002882;
break;
case 2:
if (gUnknown_0201B170 != -1)

View File

@ -169,14 +169,14 @@ void sub_93F8(void)
VBlankIntrWait();
DmaCopy16(3, gOamBuffer , OAM, 0x8000200);
REG_DISPCNT = gMain.unk16;
REG_BG0HOFS = gMain.unk2E8[0].unk0;
REG_BG0VOFS = gMain.unk2E8[0].unk2;
REG_BG1HOFS = gMain.unk2E8[1].unk0;
REG_BG1VOFS = gMain.unk2E8[1].unk2;
REG_BG2HOFS = gMain.unk2E8[2].unk0;
REG_BG2VOFS = gMain.unk2E8[2].unk2;
REG_BG3HOFS = gMain.unk2E8[3].unk0;
REG_BG3VOFS = gMain.unk2E8[3].unk2;
REG_BG0HOFS = gMain.bgOffsets[0].xOffset;
REG_BG0VOFS = gMain.bgOffsets[0].yOffset;
REG_BG1HOFS = gMain.bgOffsets[1].xOffset;
REG_BG1VOFS = gMain.bgOffsets[1].yOffset;
REG_BG2HOFS = gMain.bgOffsets[2].xOffset;
REG_BG2VOFS = gMain.bgOffsets[2].yOffset;
REG_BG3HOFS = gMain.bgOffsets[3].xOffset;
REG_BG3VOFS = gMain.bgOffsets[3].yOffset;
}
}
@ -206,14 +206,14 @@ void sub_9498(void)
DmaCopy16(3, gIntroScene1Sprites_Gfx, BG_CHAR_ADDR(4), 0x8000);
DmaCopy16(3, gIntroScene1Sprites_Pals, 0x05000200, BG_PLTT_SIZE);
sub_96A8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[18];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[19];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[6];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[18];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[19];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[6];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[13];
sub_0CBC();
sub_FEB8((void*)BG_PLTT, gIntroScene1Sprites_Pals, NULL);
DmaCopy16(3, gIntroScene1Sprites_Pals, 0x05000200, BG_PLTT_SIZE);
@ -392,8 +392,8 @@ void sub_999C(void)
if (gUnknown_0202BF10 % 2 == 0)
gUnknown_0202ADA0[1]--;
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[1];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[1];
if (++gUnknown_0202ADA0[5] > gUnknown_086A7768[gUnknown_0202ADA0[4]].unk2)
{
sub_10708(&gUnknown_0201C1C0[gUnknown_086A7788[gUnknown_0202ADA0[4]]], (void *)0x60036E0, 8, 8);
@ -448,12 +448,12 @@ void sub_9AB8(void)
}
sub_9E90();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x13];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0x7];
}
void nullsub_4(void)
@ -474,8 +474,8 @@ void sub_9C10(void)
sub_9E90();
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0xD];
gUnknown_0201A450[3].unkA++;
if (gUnknown_0201A450[3].unkA > 0x14)
@ -670,12 +670,12 @@ void sub_A16C(void)
DmaCopy16(3, gUnknown_080CC6E0, (void*) 0x06000000, 0x3C00);
DmaCopy16(3, gUnknown_080CBCE0, (void*) PLTT, 0x80);
sub_A2A8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0xD];
sub_0CBC();
sub_10424();
gUnknown_0202C790 += 2;
@ -718,12 +718,12 @@ void sub_A2F0(void)
}
// TODO same as sub_A16C - possible inline function?
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0xD];
gUnknown_0202ADA0[0x10]++;
if (gUnknown_0202ADA0[0x10] > 0x27)
@ -754,12 +754,12 @@ void sub_A39C(void)
}
// TODO same as sub_A16C - possible inline function?
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0xD];
sub_10480();
sub_10544();
@ -799,14 +799,14 @@ void sub_A454(void)
sub_A628();
sub_A87C();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_0CBC();
sub_10424();
@ -853,12 +853,12 @@ void sub_A674(void)
}
sub_A87C();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
}
void sub_A710(void)
@ -879,10 +879,10 @@ void sub_A710(void)
DmaCopy16(3, (void *) gUnknown_0202BE70, 0x05000040, 0x20);
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_A87C();
if (gUnknown_0202ADA0[0x10] == 2)
@ -890,16 +890,16 @@ void sub_A710(void)
DmaCopy16(3, gUnknown_03005C00, (void*) 0x0600E000, 0x800);
gUnknown_0202ADA0[0x6] = 0;
gUnknown_0202ADA0[0x7] = 0;
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
}
else if (gUnknown_0202ADA0[0x10] == 4)
{
DmaCopy16(3, gUnknown_0201B180, (void*) 0x0600E000, 0x800);
gUnknown_0202ADA0[0x6] = 0;
gUnknown_0202ADA0[0x7] = 0;
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
}
gUnknown_0202ADA0[0x10]++;
@ -977,12 +977,12 @@ void sub_A968(void)
gMain.unk16 = REG_DISPCNT;
sub_AAA8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0xD];
sub_0CBC();
sub_10424();
@ -1025,11 +1025,11 @@ void sub_AAF4(void)
gUnknown_0202ADA0[0x9]++;
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
gUnknown_0202ADA0[0x10]++;
if (0x27 < gUnknown_0202ADA0[0x10])
@ -1058,11 +1058,11 @@ void sub_AB90(void)
gUnknown_0202ADA0[0x9]++;
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0xC];
sub_10480();
sub_10544();
@ -1102,14 +1102,14 @@ void sub_AC38(void)
sub_ADFC();
sub_B0E8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_0CBC();
sub_10424();
@ -1170,12 +1170,12 @@ void sub_AE74(void)
}
sub_B0E8();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
if (++gUnknown_0202ADA0[0x10] > 9)
{
@ -1205,14 +1205,14 @@ void sub_AF80(void)
gUnknown_0201A450[0].unk2 += 2;
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
if (++gUnknown_0202ADA0[0x16] > 29)
{
@ -1332,14 +1332,14 @@ void sub_B2F8(void)
sub_B4A0();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_0CBC();
sub_10424();
@ -1411,12 +1411,12 @@ void sub_B560(void)
gUnknown_0202ADA0[0xE] = 8;
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
if (gUnknown_0202BF10 == gUnknown_086A7B34[gUnknown_0202BEB4].unk2)
{
@ -1451,12 +1451,12 @@ void sub_B6C4(void)
gUnknown_0202ADA0[0xE] = 8;
}
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
sub_B7F8();
if (++gUnknown_0202A578 > 16)
@ -1855,14 +1855,14 @@ void sub_BA3C(void)
gMain.unk16 = REG_DISPCNT;
sub_BBE0();
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_0CBC();
sub_10424();
@ -1907,10 +1907,10 @@ void sub_BC54(void)
gUnknown_0202ADA0[0x12]--;
gUnknown_0202ADA0[0x13]--;
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
if (gUnknown_0202BF10 > 32)
gUnknown_0202C790++;
@ -1938,12 +1938,12 @@ void sub_BCE8(void)
gUnknown_0202ADA0[0x13]--;
// TODO rearrangement like this suggests one inline function per pair of statements, but see sub_9498
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
if (gUnknown_0202BF10 > 80)
gUnknown_0202C790++;
@ -1978,14 +1978,14 @@ void sub_BDC0(void)
gUnknown_0202ADA0[0x12]--;
gUnknown_0202ADA0[0x13]--;
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
if (gUnknown_0202BF10 > 100)
gUnknown_0202C790++;
@ -2028,14 +2028,14 @@ void sub_BED0(void)
gUnknown_0202ADA0[0x12]--;
gUnknown_0202ADA0[0x13]--;
gMain.unk2E8[2].unk0 = gUnknown_0202ADA0[0xC];
gMain.unk2E8[2].unk2 = gUnknown_0202ADA0[0xD];
gMain.unk2E8[1].unk0 = gUnknown_0202ADA0[0x6];
gMain.unk2E8[1].unk2 = gUnknown_0202ADA0[0x7];
gMain.unk2E8[0].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[0].unk2 = gUnknown_0202ADA0[0x1];
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[2].xOffset = gUnknown_0202ADA0[0xC];
gMain.bgOffsets[2].yOffset = gUnknown_0202ADA0[0xD];
gMain.bgOffsets[1].xOffset = gUnknown_0202ADA0[0x6];
gMain.bgOffsets[1].yOffset = gUnknown_0202ADA0[0x7];
gMain.bgOffsets[0].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[0].yOffset = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_C0D8();
if (gUnknown_0202BF10 > 192)
@ -2061,8 +2061,8 @@ void sub_C018(void)
gUnknown_0202ADD8--;
}
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x12];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x13];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x12];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x13];
sub_C0D8();
if (gUnknown_0202BF10 > 222)
@ -2709,8 +2709,8 @@ void sub_C948(void)
gMain.unk16 = REG_DISPCNT;
sub_CA28();
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x0];
gMain.unk2E8[3].unk2 = gUnknown_0202ADA0[0x1];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[3].yOffset = gUnknown_0202ADA0[0x1];
sub_0CBC();
sub_10424();
gUnknown_0202C790++;
@ -2752,7 +2752,7 @@ void sub_CAA0(void)
gUnknown_0201A450[0].unk8 = 1;
}
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x0];
sub_CD18();
if (gUnknown_0202BF10 > 40)
@ -2774,7 +2774,7 @@ void sub_CAA0(void)
void sub_CB6C(void)
{
gUnknown_0202ADA0[0] -= 0x24;
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0];
if (gUnknown_0202BF10 > 120)
gUnknown_0202C790++;
}
@ -2804,7 +2804,7 @@ void sub_CBA4(void)
}
gUnknown_0202ADA0[0x0] -= 0x24;
gMain.unk2E8[3].unk0 = gUnknown_0202ADA0[0x0];
gMain.bgOffsets[3].xOffset = gUnknown_0202ADA0[0x0];
sub_CD18();
if (gUnknown_0202BF10 > 152)

View File

@ -173,14 +173,14 @@ static void sub_19CC(void) // TODO
CpuSet(gOamBuffer, (void *) 0x7000000, 0x200);
REG_DISPCNT = gMain.unk16;
REG_BG0HOFS = gMain.unk2E8[0].unk0;
REG_BG0VOFS = gMain.unk2E8[0].unk2;
REG_BG1HOFS = gMain.unk2E8[1].unk0;
REG_BG1VOFS = gMain.unk2E8[1].unk2;
REG_BG2HOFS = gMain.unk2E8[2].unk0;
REG_BG2VOFS = gMain.unk2E8[2].unk2;
REG_BG3HOFS = gMain.unk2E8[3].unk0;
REG_BG3VOFS = gMain.unk2E8[3].unk2;
REG_BG0HOFS = gMain.bgOffsets[0].xOffset;
REG_BG0VOFS = gMain.bgOffsets[0].yOffset;
REG_BG1HOFS = gMain.bgOffsets[1].xOffset;
REG_BG1VOFS = gMain.bgOffsets[1].yOffset;
REG_BG2HOFS = gMain.bgOffsets[2].xOffset;
REG_BG2VOFS = gMain.bgOffsets[2].yOffset;
REG_BG3HOFS = gMain.bgOffsets[3].xOffset;
REG_BG3VOFS = gMain.bgOffsets[3].yOffset;
if (gMain.unk36)
{

View File

@ -293,14 +293,14 @@ void DefaultMainCallback(void)
VBlankIntrWait();
DmaCopy32(3, gOamBuffer, (void *)OAM, OAM_SIZE);
REG_DISPCNT = gMain.unk16;
REG_BG0HOFS = gMain.unk2E8[0].unk0;
REG_BG0VOFS = gMain.unk2E8[0].unk2;
REG_BG1HOFS = gMain.unk2E8[1].unk0;
REG_BG1VOFS = gMain.unk2E8[1].unk2;
REG_BG2HOFS = gMain.unk2E8[2].unk0;
REG_BG2VOFS = gMain.unk2E8[2].unk2;
REG_BG3HOFS = gMain.unk2E8[3].unk0;
REG_BG3VOFS = gMain.unk2E8[3].unk2;
REG_BG0HOFS = gMain.bgOffsets[0].xOffset;
REG_BG0VOFS = gMain.bgOffsets[0].yOffset;
REG_BG1HOFS = gMain.bgOffsets[1].xOffset;
REG_BG1VOFS = gMain.bgOffsets[1].yOffset;
REG_BG2HOFS = gMain.bgOffsets[2].xOffset;
REG_BG2VOFS = gMain.bgOffsets[2].yOffset;
REG_BG3HOFS = gMain.bgOffsets[3].xOffset;
REG_BG3VOFS = gMain.bgOffsets[3].yOffset;
if (gMain.unk36)
{
REG_BLDCNT = gMain.blendControl;

View File

@ -304,7 +304,87 @@ void sub_4A518(void)
gCurrentPinballGame->unk38 = 40000;
gCurrentPinballGame->unk1D = 0;
gCurrentPinballGame->unk132c = gCurrentPinballGame->unk1334[0];
gCurrentPinballGame->unk1330 = gCurrentPinballGame->unk1334[0];
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
gCurrentPinballGame->unk1330 = &gCurrentPinballGame->unk1334[0];
gCurrentPinballGame->unk66 = 0;
}
void sub_4A6A0(void)
{
switch (gCurrentPinballGame->unk282)
{
case 0:
gCurrentPinballGame->unk132c->unk10 = 119;
gCurrentPinballGame->unk132c->unk12 = 279;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
gCurrentPinballGame->unk730 = 0;
gCurrentPinballGame->unk28 = 120;
gCurrentPinballGame->unk25 = 4;
if (gMain.selectedField == FIELD_RUBY)
sub_1A9E8();
else
sub_32968();
gCurrentPinballGame->unk4C = 0;
gCurrentPinballGame->unk4E = 215;
break;
case 1:
gCurrentPinballGame->unk132c->unk10 = 140;
gCurrentPinballGame->unk132c->unk12 = 183;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
gCurrentPinballGame->unk730 = 0;
gCurrentPinballGame->unk2A2 = 5;
gCurrentPinballGame->unk4C = 0;
gCurrentPinballGame->unk4E = 118;
break;
case 2:
gCurrentPinballGame->unk132c->unk10 = -28;
gCurrentPinballGame->unk132c->unk12 = -10;
gCurrentPinballGame->unk132c->unk30 = 0;
gCurrentPinballGame->unk132c->unk32 = 0;
gCurrentPinballGame->unk132c->unk6 = 0;
gCurrentPinballGame->unk132c->unk34 = gCurrentPinballGame->unk132c->unk10 << 8;
gCurrentPinballGame->unk132c->unk38 = gCurrentPinballGame->unk132c->unk12 << 8;
gCurrentPinballGame->unk132c->unkE = 128;
gCurrentPinballGame->unk132c->unk0 = 1;
gCurrentPinballGame->unk1F = 1;
gCurrentPinballGame->unk730 = 0;
gCurrentPinballGame->unk30C = 0;
gCurrentPinballGame->unk306 = 7;
gCurrentPinballGame->unk4C = 0;
gCurrentPinballGame->unk4E = 0;
break;
}
gCurrentPinballGame->unk5FC = 0;
gCurrentPinballGame->unk5FE = 0;
gCurrentPinballGame->unk5FB = 0;
gCurrentPinballGame->unk54 = gCurrentPinballGame->unk4E << 8;
gCurrentPinballGame->unk58 = gCurrentPinballGame->unk4C;
gCurrentPinballGame->unk5A = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
gMain.bgOffsets[2].xOffset = gCurrentPinballGame->unk4C;
gMain.bgOffsets[2].yOffset = gCurrentPinballGame->unk4E;
gMain.bgOffsets[3].xOffset = gCurrentPinballGame->unk4C;
gMain.bgOffsets[3].yOffset = gCurrentPinballGame->unk4E;
gMain.bgOffsets[1].xOffset = gCurrentPinballGame->unk4C;
gMain.bgOffsets[1].yOffset = gCurrentPinballGame->unk4E;
gMain.bgOffsets[0].yOffset = 80;
gCurrentPinballGame->unkCC = gMain.bgOffsets[3].yOffset;
gCurrentPinballGame->unk64 = gMain.bgOffsets[3].yOffset / 8;
}

View File

@ -11,7 +11,7 @@ void sub_11B9C(void)
s16 i;
if (gMain.unk6 == 0)
{
gCurrentPinballGame->unk132c = gCurrentPinballGame->unk1334[0];
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
sub_11C14(0);
sub_12524();
}
@ -19,7 +19,7 @@ void sub_11B9C(void)
{
for (i = 0; i < 2; i++)
{
gCurrentPinballGame->unk132c = gCurrentPinballGame->unk1334[i];
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[i];
sub_11C14(i);
}
sub_12BF8();

View File

@ -1,70 +1,57 @@
#include "global.h"
#include "main.h"
void sub_1AAA0(void);
void sub_1AA38(void);
void sub_1AD84(void);
void sub_1AF84(void);
void sub_1C560(void);
void sub_1A98C(void) {
if (gMain.unkF == 0)
{
switch (gCurrentPinballGame->unk25)
{
case 1:
sub_1AA38();
break;
case 2:
sub_1AD84();
break;
case 3:
sub_1AF84();
break;
case 4:
sub_1C560();
break;
default:
break;
}
gCurrentPinballGame->unk26 = 60;
}
}
void sub_1AAA0(void);
void sub_1ADF4(void);
void sub_1AF84(void);
void sub_1AFD4(void);
void sub_1C560(void);
void sub_1C5AC(void);
void sub_1A9E8(void) {
if (gCurrentPinballGame->unk26 != 0)
void sub_1A98C(void)
{
if (gMain.unkF != 0)
return;
switch (gCurrentPinballGame->unk25)
{
gCurrentPinballGame->unk26 -= 1;
case 1:
sub_1AA38();
break;
case 2:
sub_1AD84();
break;
case 3:
sub_1AF84();
break;
case 4:
sub_1C560();
break;
}
switch (gCurrentPinballGame->unk25)
gCurrentPinballGame->unk26 = 60;
}
void sub_1A9E8(void)
{
if (gCurrentPinballGame->unk26 > 0)
gCurrentPinballGame->unk26 -= 1;
switch (gCurrentPinballGame->unk25)
{
case 1:
sub_1AAA0();
break;
case 2:
sub_1ADF4();
break;
case 3:
sub_1AFD4();
break;
case 4:
sub_1C5AC();
break;
default:
break;
case 1:
sub_1AAA0();
break;
case 2:
sub_1ADF4();
break;
case 3:
sub_1AFD4();
break;
case 4:
sub_1C5AC();
break;
}
}

View File

@ -435,23 +435,23 @@ void sub_328C8(void)
void sub_32914(void)
{
if (!gMain.unkF)
{
switch (gCurrentPinballGame->unk25)
{
case 1:
sub_32B74();
break;
case 3:
sub_329B0();
break;
case 4:
sub_1C560();
break;
}
if (gMain.unkF != 0)
return;
gCurrentPinballGame->unk26 = 0x3C;
switch (gCurrentPinballGame->unk25)
{
case 1:
sub_32B74();
break;
case 3:
sub_329B0();
break;
case 4:
sub_1C560();
break;
}
gCurrentPinballGame->unk26 = 60;
}
void sub_32968(void)

View File

@ -141,8 +141,8 @@ void sub_0518(void)
DmaFill16(3, 0, gUnknown_03005C00, sizeof(gUnknown_03005C00));
for (i = 0; i < 4; i++)
{
gMain.unk2E8[i].unk0 = 0;
gMain.unk2E8[i].unk2 = 0;
gMain.bgOffsets[i].xOffset = 0;
gMain.bgOffsets[i].yOffset = 0;
}
}