More SA2 alignment

This commit is contained in:
JaceCear committed 2025-12-05 16:00:21 +01:00
1 parent 5604688d56
commit baebaf305a
48 files changed
+383 -396

No files matched your search

+18 -18
View File
@@ -13,10 +13,10 @@
_08002F98:
mov r2, r8
lsls r0, r2, #2
ldr r1, _08003050 @ =sa2__gUnknown_03002280
ldr r1, _08003050 @ =gBgSprites_Unknown2
adds r1, #1
adds r4, r0, r1
ldr r6, _08003054 @ =sa2__gUnknown_03002280+3
ldr r6, _08003054 @ =gBgSprites_Unknown2+3
adds r6, r0, r6
str r6, [sp, #0xc]
ldrb r1, [r4]
@@ -25,9 +25,9 @@ _08002F98:
mov sl, r0
cmp r1, ip
bne _08002FCA
ldr r0, _08003050 @ =sa2__gUnknown_03002280
ldr r0, _08003050 @ =gBgSprites_Unknown2
add r0, sl
ldr r1, _08003058 @ =sa2__gUnknown_03002280+
ldr r1, _08003058 @ =gBgSprites_Unknown2+
add r1, sl
ldrb r0, [r0]
mov r7, r8
@@ -50,7 +50,7 @@ _08002FCA:
lsls r0, r0, #3
adds r5, r0, r1
ldrb r4, [r4]
ldr r0, _08003050 @ =sa2__gUnknown_03002280
ldr r0, _08003050 @ =gBgSprites_Unknown2
add r0, sl
ldrb r0, [r0]
str r0, [sp, #8]
@@ -105,9 +105,9 @@ _08002FCA:
mov sb, r2
b _08003134
.align 2, 0
_08003050: .4byte sa2__gUnknown_03002280
_08003054: .4byte sa2__gUnknown_03002280+3
_08003058: .4byte sa2__gUnknown_03002280+2
_08003050: .4byte gBgSprites_Unknown2
_08003054: .4byte gBgSprites_Unknown2+3
_08003058: .4byte gBgSprites_Unknown2+2
_0800305C: .4byte gBgCntRegs
_08003060: .4byte gDispCnt
_08003064: .4byte sa2__gUnknown_03004D80
@@ -125,7 +125,7 @@ _0800307A:
add r0, r8
mov ip, r0
ldr r2, _080030D4 @ =0x040000D4
ldr r1, _080030D8 @ =sa2__gUnknown_03002280
ldr r1, _080030D8 @ =gBgSprites_Unknown2
add r1, sl
mov r8, r1
ldr r6, [sp, #0xc]
@@ -168,7 +168,7 @@ _0800308C:
.align 2, 0
_080030D0: .4byte sa2__gUnknown_03004D80
_080030D4: .4byte 0x040000D4
_080030D8: .4byte sa2__gUnknown_03002280+2
_080030D8: .4byte gBgSprites_Unknown2+2
_080030DC:
ldr r1, [sp, #8]
lsls r0, r1, #1
@@ -184,7 +184,7 @@ _080030DC:
bhi _080030F6
movs r3, #0x40
_080030F6:
ldr r1, _0800313C @ =sa2__gUnknown_03002280+2
ldr r1, _0800313C @ =gBgSprites_Unknown2+2
add r1, sl
ldrb r0, [r1]
cmp r0, #0xff
@@ -201,7 +201,7 @@ _080030F6:
ldr r1, _08003144 @ =0x040000D4
str r6, [r1]
str r0, [r1, #4]
ldr r0, _08003148 @ =sa2__gUnknown_03002280+3
ldr r0, _08003148 @ =gBgSprites_Unknown2+3
add r0, sl
ldrb r0, [r0]
subs r0, r0, r4
@@ -220,12 +220,12 @@ _08003134:
adds r7, #1
b _080031A0
.align 2, 0
_0800313C: .4byte sa2__gUnknown_03002280+2
_0800313C: .4byte gBgSprites_Unknown2+2
_08003140: .4byte sa2__gUnknown_03004D80
_08003144: .4byte 0x040000D4
_08003148: .4byte sa2__gUnknown_03002280+3
_08003148: .4byte gBgSprites_Unknown2+3
_0800314C:
ldr r0, _080031D4 @ =sa2__gUnknown_03002280+3
ldr r0, _080031D4 @ =gBgSprites_Unknown2+3
add r0, sl
add r2, sp, #4
mov sb, r2
@@ -274,7 +274,7 @@ _080031A0:
mov r1, sb
ldr r2, _080031DC @ =0x040000D4
str r1, [r2]
ldr r0, _080031E0 @ =sa2__gUnknown_03002280
ldr r0, _080031E0 @ =gBgSprites_Unknown2
add r0, sl
str r0, [r2, #4]
ldr r0, _080031E4 @ =0x85000001
@@ -298,10 +298,10 @@ _080031C2:
pop {r1}
bx r1
.align 2, 0
_080031D4: .4byte sa2__gUnknown_03002280+3
_080031D4: .4byte gBgSprites_Unknown2+3
_080031D8: .4byte sa2__gUnknown_03004D80
_080031DC: .4byte 0x040000D4
_080031E0: .4byte sa2__gUnknown_03002280
_080031E0: .4byte gBgSprites_Unknown2
_080031E4: .4byte 0x85000001
.syntax divided
@@ -129,7 +129,7 @@ _08004C50:
lsrs r0, r0, #0x18
mov sl, r0
lsls r1, r3, #2
ldr r7, _08004D70 @ =gBgOffsetsHBlank
ldr r7, _08004D70 @ =gBgOffsetsHBlankPrimary
ldr r0, [r7]
adds r4, r0, r1
mov r0, ip
@@ -183,7 +183,7 @@ _08004CC4:
str r0, [sp, #8]
adds r3, r0, #0
lsls r1, r0, #2
ldr r4, _08004D70 @ =gBgOffsetsHBlank
ldr r4, _08004D70 @ =gBgOffsetsHBlankPrimary
ldr r0, [r4]
adds r4, r0, r1
ldr r0, [sp, #4]
@@ -222,7 +222,7 @@ _08004D2C:
str r0, [r7]
ldr r0, _08004D84 @ =gHBlankCopySize
strb r1, [r0]
ldr r1, _08004D70 @ =gBgOffsetsHBlank
ldr r1, _08004D70 @ =gBgOffsetsHBlankPrimary
ldr r0, [r1]
mov r2, sb
adds r4, r0, r2
@@ -243,7 +243,7 @@ _08004D2C:
subs r0, r1, r2
b _08004D8C
.align 2, 0
_08004D70: .4byte gBgOffsetsHBlank
_08004D70: .4byte gBgOffsetsHBlankPrimary
_08004D74: .4byte 0x000001FF
_08004D78: .4byte gFlags
_08004D7C: .4byte 0x04000010
@@ -32,25 +32,25 @@
ands r0, r6
cmp r0, #0
beq _08004F4C
ldr r0, _08004F48 @ =gBgOffsetsHBlank
ldr r0, _08004F48 @ =gBgOffsetsHBlankPrimary
ldr r0, [r0]
adds r3, r0, #2
b _08004F80
.align 2, 0
_08004F40: .4byte gFlags
_08004F44: .4byte gHBlankCopySize
_08004F48: .4byte gBgOffsetsHBlank
_08004F48: .4byte gBgOffsetsHBlankPrimary
_08004F4C:
ldr r0, _08004F54 @ =gBgOffsetsHBlank
ldr r0, _08004F54 @ =gBgOffsetsHBlankPrimary
ldr r3, [r0]
b _08004F80
.align 2, 0
_08004F54: .4byte gBgOffsetsHBlank
_08004F54: .4byte gBgOffsetsHBlankPrimary
_08004F58:
ldr r1, _08004F70 @ =gHBlankCopySize
movs r0, #2
strb r0, [r1]
ldr r0, _08004F74 @ =gBgOffsetsHBlank
ldr r0, _08004F74 @ =gBgOffsetsHBlankPrimary
ldr r3, [r0]
movs r0, #1
ands r0, r6
@@ -61,7 +61,7 @@ _08004F58:
b _08004F84
.align 2, 0
_08004F70: .4byte gHBlankCopySize
_08004F74: .4byte gBgOffsetsHBlank
_08004F74: .4byte gBgOffsetsHBlankPrimary
_08004F78: .4byte gHBlankCopyTarget
_08004F7C: .4byte 0x04000042
_08004F80:
@@ -22,25 +22,25 @@
ands r0, r2
cmp r0, #0
beq _080056B4
ldr r0, _080056B0 @ =gBgOffsetsHBlank
ldr r0, _080056B0 @ =gBgOffsetsHBlankPrimary
ldr r0, [r0]
adds r7, r0, #2
b _080056E8
.align 2, 0
_080056A8: .4byte gFlags
_080056AC: .4byte gHBlankCopySize
_080056B0: .4byte gBgOffsetsHBlank
_080056B0: .4byte gBgOffsetsHBlankPrimary
_080056B4:
ldr r0, _080056BC @ =gBgOffsetsHBlank
ldr r0, _080056BC @ =gBgOffsetsHBlankPrimary
ldr r7, [r0]
b _080056E8
.align 2, 0
_080056BC: .4byte gBgOffsetsHBlank
_080056BC: .4byte gBgOffsetsHBlankPrimary
_080056C0:
ldr r1, _080056D8 @ =gHBlankCopySize
movs r0, #2
strb r0, [r1]
ldr r0, _080056DC @ =gBgOffsetsHBlank
ldr r0, _080056DC @ =gBgOffsetsHBlankPrimary
ldr r7, [r0]
movs r0, #1
ands r0, r2
@@ -51,7 +51,7 @@ _080056C0:
b _080056EC
.align 2, 0
_080056D8: .4byte gHBlankCopySize
_080056DC: .4byte gBgOffsetsHBlank
_080056DC: .4byte gBgOffsetsHBlankPrimary
_080056E0: .4byte gHBlankCopyTarget
_080056E4: .4byte 0x04000042
_080056E8:
@@ -852,7 +852,7 @@ _08059C5C:
bl UpdateSpriteAnimation
ldr r0, _08059F94 @ =sa2__gUnknown_03004D80
strb r4, [r0, #1]
ldr r0, _08059F98 @ =sa2__gUnknown_03002280
ldr r0, _08059F98 @ =gBgSprites_Unknown2
strb r4, [r0, #4]
strb r4, [r0, #5]
movs r1, #1
@@ -907,6 +907,6 @@ _08059F88: .4byte 0x030000B2
_08059F8C: .4byte 0x000002DA
_08059F90: .4byte 0x030000B0
_08059F94: .4byte sa2__gUnknown_03004D80
_08059F98: .4byte sa2__gUnknown_03002280
_08059F98: .4byte gBgSprites_Unknown2
.syntax divided
@@ -185,7 +185,7 @@ _08061F64:
str r0, [r1]
ldr r0, _0806211C @ =gHBlankCopySize
strb r2, [r0]
ldr r0, _08062120 @ =gBgOffsetsHBlank
ldr r0, _08062120 @ =gBgOffsetsHBlankPrimary
ldr r1, [r0]
movs r2, #0
movs r4, #0
@@ -336,7 +336,7 @@ _08062110: .4byte gFlags
_08062114: .4byte gHBlankCopyTarget
_08062118: .4byte 0x04000010
_0806211C: .4byte gHBlankCopySize
_08062120: .4byte gBgOffsetsHBlank
_08062120: .4byte gBgOffsetsHBlankPrimary
_08062124: .4byte 0x000001FF
_08062128: .4byte gPressedKeys
_0806212C: .4byte gBgScrollRegs
@@ -509,7 +509,7 @@ _0805D186:
str r6, [r0, #0x20]
ldr r3, _0805D4E8 @ =sa2__gUnknown_03004D80
strb r4, [r3]
ldr r0, _0805D4EC @ =sa2__gUnknown_03002280
ldr r0, _0805D4EC @ =gBgSprites_Unknown2
strb r4, [r0]
strb r4, [r0, #1]
movs r1, #0xff
@@ -558,6 +558,6 @@ _0805D4DC: .4byte sub_805E018
_0805D4E0: .4byte sub_805D4F0
_0805D4E4: .4byte TaskDestructor_805E1E4
_0805D4E8: .4byte sa2__gUnknown_03004D80
_0805D4EC: .4byte sa2__gUnknown_03002280
_0805D4EC: .4byte gBgSprites_Unknown2
.syntax divided
@@ -122,7 +122,7 @@ _0800F12C:
bl m4aSongNumStart
ldr r0, _0800F180 @ =sa2__gUnknown_03004D80
strb r4, [r0]
ldr r1, _0800F184 @ =sa2__gUnknown_03002280
ldr r1, _0800F184 @ =gBgSprites_Unknown2
strb r4, [r1]
strb r4, [r1, #1]
movs r0, #0xff
@@ -140,7 +140,7 @@ _0800F174: .4byte gPressedKeys
_0800F178: .4byte gMultiSioEnabled
_0800F17C: .4byte gMultiSioSend
_0800F180: .4byte sa2__gUnknown_03004D80
_0800F184: .4byte sa2__gUnknown_03002280
_0800F184: .4byte gBgSprites_Unknown2
_0800F188: .4byte gCurTask
_0800F18C:
ldr r0, _0800F1C0 @ =0x00000219
@@ -69,7 +69,7 @@
ldr r2, _0801AA4C @ =sa2__gUnknown_03004D80
movs r0, #0x7f
strb r0, [r2, #2]
ldr r0, _0801AA50 @ =sa2__gUnknown_03002280
ldr r0, _0801AA50 @ =gBgSprites_Unknown2
strb r6, [r0, #8]
strb r6, [r0, #9]
movs r1, #0xff
@@ -332,7 +332,7 @@ _0801AA40: .4byte gBgCntRegs
_0801AA44: .4byte 0x00005E0B
_0801AA48: .4byte 0x00001C0C
_0801AA4C: .4byte sa2__gUnknown_03004D80
_0801AA50: .4byte sa2__gUnknown_03002280
_0801AA50: .4byte gBgSprites_Unknown2
_0801AA54: .4byte 0x040000D4
_0801AA58: .4byte 0x06009FE0
_0801AA5C: .4byte 0x85000010
@@ -313,7 +313,7 @@ _08019952:
movs r3, #0x74
bl sa2__sub_80064A8
ldr r2, _08019AC0 @ =0x040000D4
ldr r0, _08019AC4 @ =gBgOffsetsHBlank
ldr r0, _08019AC4 @ =gBgOffsetsHBlankPrimary
ldr r4, [r0]
ldr r0, _08019AC8 @ =gHBlankCopySize
ldrb r3, [r0]
@@ -481,7 +481,7 @@ _08019AAA:
b _08019B42
.align 2, 0
_08019AC0: .4byte 0x040000D4
_08019AC4: .4byte gBgOffsetsHBlank
_08019AC4: .4byte gBgOffsetsHBlankPrimary
_08019AC8: .4byte gHBlankCopySize
_08019ACC: .4byte 0x000003FF
_08019AD0: .4byte 0x00000236
@@ -183,7 +183,7 @@ _08059740:
ldr r4, _080597BC @ =sa2__gUnknown_03004D80
movs r2, #0
strb r2, [r4, #1]
ldr r0, _080597C0 @ =sa2__gUnknown_03002280
ldr r0, _080597C0 @ =gBgSprites_Unknown2
strb r2, [r0, #4]
strb r2, [r0, #5]
movs r1, #0xff
@@ -222,7 +222,7 @@ _080597B0: .4byte 0x00007FFF
_080597B4: .4byte 0x040000D4
_080597B8: .4byte 0xFFFF7FFF
_080597BC: .4byte sa2__gUnknown_03004D80
_080597C0: .4byte sa2__gUnknown_03002280
_080597C0: .4byte gBgSprites_Unknown2
_080597C4: .4byte gGameMode
_080597C8:
bl CreatePlayerDataMenu
@@ -32,7 +32,7 @@
str r0, [r1]
ldr r0, _0803EA1C @ =gHBlankCopySize
strb r2, [r0]
ldr r0, _0803EA20 @ =gBgOffsetsHBlank
ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary
ldr r5, [r0]
movs r6, #0x3f
ands r6, r3 @ r6 = ySub & 0x3F
@@ -128,7 +128,7 @@ _0803E952:
mov ip, r4
ldr r0, [sp, #8]
mov r8, r0 @ r8 = (y >> 1)
ldr r0, _0803EA20 @ =gBgOffsetsHBlank
ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary
ldr r5, [r0]
_0803E962:
lsls r0, r3, #5
@@ -184,7 +184,7 @@ _0803E9A0:
ands r0, r4
rsbs r1, r0, #0
ands r1, r4
ldr r0, _0803EA20 @ =gBgOffsetsHBlank
ldr r0, _0803EA20 @ =gBgOffsetsHBlankPrimary
ldr r5, [r0]
adds r2, r1, #0
subs r2, #0x18
@@ -224,6 +224,6 @@ _0803EA10: .4byte gFlags
_0803EA14: .4byte gHBlankCopyTarget
_0803EA18: .4byte 0x0400001C
_0803EA1C: .4byte gHBlankCopySize
_0803EA20: .4byte gBgOffsetsHBlank
_0803EA20: .4byte gBgOffsetsHBlankPrimary
.syntax divided
@@ -240,7 +240,7 @@ _08061334:
str r0, [r1]
ldr r0, _080613C4 @ =gHBlankCopySize
strb r2, [r0]
ldr r0, _080613C8 @ =gBgOffsetsHBlank
ldr r0, _080613C8 @ =gBgOffsetsHBlankPrimary
lsls r1, r7, #2
ldr r0, [r0]
adds r2, r0, r1
@@ -302,7 +302,7 @@ _080613B8: .4byte gFlags
_080613BC: .4byte gHBlankCopyTarget
_080613C0: .4byte 0x04000010
_080613C4: .4byte gHBlankCopySize
_080613C8: .4byte gBgOffsetsHBlank
_080613C8: .4byte gBgOffsetsHBlankPrimary
_080613CC: .4byte 0x000001FF
.syntax divided
@@ -97,7 +97,7 @@ _0806BC74:
str r0, [r1]
ldr r0, _0806BD18 @ =gHBlankCopySize
strb r2, [r0]
ldr r0, _0806BD1C @ =gBgOffsetsHBlank
ldr r0, _0806BD1C @ =gBgOffsetsHBlankPrimary
lsls r1, r6, #2
ldr r0, [r0]
adds r2, r0, r1
@@ -165,7 +165,7 @@ _0806BD0C: .4byte gFlags
_0806BD10: .4byte gHBlankCopyTarget
_0806BD14: .4byte 0x04000010
_0806BD18: .4byte gHBlankCopySize
_0806BD1C: .4byte gBgOffsetsHBlank
_0806BD1C: .4byte gBgOffsetsHBlankPrimary
_0806BD20: .4byte 0x000001FF
.syntax divided
@@ -226,7 +226,7 @@ _0804C7CC:
bl sa2__sub_8007738
movs r5, #0x20
ldr r2, _0804C884 @ =0x040000D4
ldr r0, _0804C888 @ =gBgOffsetsHBlank
ldr r0, _0804C888 @ =gBgOffsetsHBlankPrimary
ldr r4, [r0]
ldr r0, _0804C88C @ =gHBlankCopySize
ldrb r3, [r0]
@@ -270,7 +270,7 @@ _0804C878: .4byte gStageTime
_0804C87C: .4byte gBgScrollRegs
_0804C880: .4byte 0x000003FF
_0804C884: .4byte 0x040000D4
_0804C888: .4byte gBgOffsetsHBlank
_0804C888: .4byte gBgOffsetsHBlankPrimary
_0804C88C: .4byte gHBlankCopySize
_0804C890: .4byte gFlags
+6 -8
View File
@@ -13,8 +13,6 @@
#include "data/sprite_data.h"
#include "animation_commands.h"
/* More or less copy-pasted from SA2 on January 15th, 2024 */
struct MultiSioData_0_0 {
// id
u16 unk0;
@@ -278,12 +276,12 @@ extern int_vcount gBgOffsetsBuffer[2][DISPLAY_HEIGHT][4];
extern Background *gBackgroundsCopyQueue[16];
// This is used to buffer the xy-shift for each background scanline
extern void *gBgOffsetsHBlank;
extern void *gBgOffsetsHBlankPrimary;
extern u16 sa2__gUnknown_030017F0;
extern s16 sa2__gUnknown_030017F4[2];
extern u8 sa2__gUnknown_03001850[32];
extern FuncType_030053A0 gVBlankCallbacks[4];
extern Vec2_16 gSpriteOffset;
extern u8 gOamMallocOrders_StartIndex[32];
extern IntrFunc gVBlankCallbacks[4];
extern u8 gOamFreeIndex;
extern u16 sa2__gUnknown_03001944;
@@ -291,7 +289,7 @@ extern u8 gNumVBlankIntrs;
extern s16 sa2__gUnknown_0300194C;
extern Tilemap **gTilemapsRef;
extern u8 sa2__gUnknown_03002280[4][4];
extern u8 gBgSprites_Unknown2[4][4];
extern u8 sa2__gUnknown_03004D80[16];
#define LOG_GRAPHICS_QUEUE !TRUE
@@ -367,7 +365,7 @@ extern u8 sa2__gUnknown_03004D60[0x20];
extern u8 sa2__gUnknown_03005390;
extern u16 sa2__gUnknown_03005394;
extern u16 sa2__gUnknown_03005398;
extern FuncType_030053A0 gVBlankIntrs[4];
extern IntrFunc gVBlankIntrs[4];
extern s32 gPseudoRandom;
extern u8 sa2__gUnknown_03002710[128];
extern struct MultiBootParam gMultiBootParam;
-1
View File
@@ -347,7 +347,6 @@ typedef struct {
// TODO: Find better place for this
typedef void (*HBlankFunc)(int_vcount vcount);
typedef void (*IntrFunc)(void);
typedef void (*FuncType_030053A0)(void);
typedef bool32 (*VBlankFunc)(void);
extern void *iwram_end;
+33 -34
View File
@@ -1032,8 +1032,8 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004010.inc", u32 sa2__sub_8004010(vo
for (; bgIndex < 4; bgIndex++) {
if ((sa2__gUnknown_03002280[bgIndex][1] == sa2__gUnknown_03002280[bgIndex][3])
&& (sa2__gUnknown_03002280[bgIndex][0] == sa2__gUnknown_03002280[bgIndex][2]))
if ((gBgSprites_Unknown2[bgIndex][1] == gBgSprites_Unknown2[bgIndex][3])
&& (gBgSprites_Unknown2[bgIndex][0] == gBgSprites_Unknown2[bgIndex][2]))
continue;
{ // _08004056
@@ -1042,31 +1042,31 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004010.inc", u32 sa2__sub_8004010(vo
target &= BGCNT_SCREENBASE_MASK;
vramBgCtrl += target * 4;
r4 = sa2__gUnknown_03002280[bgIndex][1];
r4 = gBgSprites_Unknown2[bgIndex][1];
sp08 = sa2__gUnknown_03002280[bgIndex][0];
sp08 = gBgSprites_Unknown2[bgIndex][0];
if ((bgIndex > 1) && (gDispCnt & (DISPCNT_MODE_2 | DISPCNT_MODE_1 | DISPCNT_MODE_0))) {
// _0800408E
spVramPtr = (u8 *)&vramBgCtrl[sp08];
bgSize_TxtOrAff = (0x10 << (gBgCntRegs[bgIndex] >> 14));
if (sa2__gUnknown_03002280[bgIndex][3] == 0xFF) {
if (gBgSprites_Unknown2[bgIndex][3] == 0xFF) {
// _080040A2
u16 v = sa2__gUnknown_03004D80[bgIndex];
u32 value;
v |= v << 8;
value = ((sa2__gUnknown_03002280[bgIndex][3] - r4) * bgSize_TxtOrAff);
value = ((gBgSprites_Unknown2[bgIndex][3] - r4) * bgSize_TxtOrAff);
DmaFill16(3, v, (void *)&spVramPtr[bgSize_TxtOrAff], (((s32)(value + (value >> 31))) >> 1));
} else {
// _080040F8
// u8 i2 = i + 1;
for (; r4 < sa2__gUnknown_03002280[bgIndex][3]; r4++) {
for (; r4 < gBgSprites_Unknown2[bgIndex][3]; r4++) {
u16 v = sa2__gUnknown_03004D80[bgIndex];
v |= v << 8;
DmaFill16(3, v, &spVramPtr[bgIndex * r4], (s32)(bgIndex * 4 - sa2__gUnknown_03002280[bgIndex][0] + 1));
DmaFill16(3, v, &spVramPtr[bgIndex * r4], (s32)(bgIndex * 4 - gBgSprites_Unknown2[bgIndex][0] + 1));
}
}
// then -> _0800422C
@@ -1078,27 +1078,27 @@ NONMATCH("asm/non_matching/engine/sa2__sub_8004010.inc", u32 sa2__sub_8004010(vo
if ((u8)((gBgCntRegs[sp08] >> 14) - 2) <= 1)
tileSize = 64;
if (sa2__gUnknown_03002280[bgIndex][2] == 0xFF) {
if (gBgSprites_Unknown2[bgIndex][2] == 0xFF) {
u8 r1 = sa2__gUnknown_03004D80[bgIndex];
p1p = &sa2__gUnknown_03002280[bgIndex][tileSize];
p1p = &gBgSprites_Unknown2[bgIndex][tileSize];
sp00[0] = r1;
#if 0
// TODO: This crashes the game after selecting a stage right now.
DmaFill16(3, sp00[0], &sa2__gUnknown_03002280[bgIndex][tileSize],
sa2__gUnknown_03002280[bgIndex][3] - r4);
DmaFill16(3, sp00[0], &gBgSprites_Unknown2[bgIndex][tileSize],
gBgSprites_Unknown2[bgIndex][3] - r4);
#endif
} else {
// _080041D8
for (; r4 <= sa2__gUnknown_03002280[bgIndex][3]; r4++) {
for (; r4 <= gBgSprites_Unknown2[bgIndex][3]; r4++) {
// _080041F6
DmaFill16(3, sa2__gUnknown_03004D80[bgIndex], &sa2__gUnknown_03002280[bgIndex][tileSize],
ARRAY_COUNT(sa2__gUnknown_03002280[0]));
DmaFill16(3, sa2__gUnknown_03004D80[bgIndex], &gBgSprites_Unknown2[bgIndex][tileSize],
ARRAY_COUNT(gBgSprites_Unknown2[0]));
}
}
}
// _0800422C
DmaFill32(3, 0, &sa2__gUnknown_03002280[bgIndex], ARRAY_COUNT(sa2__gUnknown_03002280[bgIndex]));
DmaFill32(3, 0, &gBgSprites_Unknown2[bgIndex], ARRAY_COUNT(gBgSprites_Unknown2[bgIndex]));
}
}
@@ -1118,11 +1118,10 @@ u32 sub_8004010(void)
u8 sp08;
for (bg = 0; bg < 4; bg++) {
if ((sa2__gUnknown_03002280[bg][1] != sa2__gUnknown_03002280[bg][3])
|| (sa2__gUnknown_03002280[bg][0] != sa2__gUnknown_03002280[bg][2])) {
if ((gBgSprites_Unknown2[bg][1] != gBgSprites_Unknown2[bg][3]) || (gBgSprites_Unknown2[bg][0] != gBgSprites_Unknown2[bg][2])) {
// _08004056
void *vramBase = ((void *)BG_VRAM + ((gBgCntRegs[bg] & BGCNT_SCREENBASE_MASK) << 3));
sp08 = sa2__gUnknown_03002280[bg][0];
sp08 = gBgSprites_Unknown2[bg][0];
// Potential bug?
// gDispCnt could be set to bitmap mode (0x5), which
@@ -1140,21 +1139,21 @@ u32 sub_8004010(void)
// 3 = 1024x1024
affineSize = 16 << (gBgCntRegs[bg] >> 14);
if (sa2__gUnknown_03002280[bg][3] == 0xFF) {
if (gBgSprites_Unknown2[bg][3] == 0xFF) {
// __080040A2
u16 cb = combine(sa2__gUnknown_03004D80[bg]);
void *vram = (vramBase + (sa2__gUnknown_03002280[bg][1] * affineSize));
s32 size = affineSize * (sa2__gUnknown_03002280[bg][3] - sa2__gUnknown_03002280[bg][1]);
void *vram = (vramBase + (gBgSprites_Unknown2[bg][1] * affineSize));
s32 size = affineSize * (gBgSprites_Unknown2[bg][3] - gBgSprites_Unknown2[bg][1]);
DmaFill16(3, cb, vram, ABS(size));
} else {
// _080040F8
u8 r4 = sa2__gUnknown_03002280[bg][1];
u8 r4 = gBgSprites_Unknown2[bg][1];
for (; r4 <= sa2__gUnknown_03002280[bg][3]; r4++) {
for (; r4 <= gBgSprites_Unknown2[bg][3]; r4++) {
u16 cb = combine(sa2__gUnknown_03004D80[bg]);
void *vram = (vramBase + (sa2__gUnknown_03002280[bg][1] * affineSize));
s32 size = (sa2__gUnknown_03002280[bg][2] - sp08) + 1;
void *vram = (vramBase + (gBgSprites_Unknown2[bg][1] * affineSize));
s32 size = (gBgSprites_Unknown2[bg][2] - sp08) + 1;
DmaFill16(3, cb, vram, ABS(size));
}
@@ -1180,26 +1179,26 @@ u32 sub_8004010(void)
}
// _08004182
if (sa2__gUnknown_03002280[bg][2] == 0xFF) {
if (gBgSprites_Unknown2[bg][2] == 0xFF) {
// __0800418C
void *vram = (vramBase + (sa2__gUnknown_03002280[bg][1] * tileSize));
s32 size = tileSize * (sa2__gUnknown_03002280[bg][3] - sa2__gUnknown_03002280[bg][1]);
void *vram = (vramBase + (gBgSprites_Unknown2[bg][1] * tileSize));
s32 size = tileSize * (gBgSprites_Unknown2[bg][3] - gBgSprites_Unknown2[bg][1]);
DmaFill16(3, sa2__gUnknown_03004D80[bg], vram, size * 2);
} else {
// _080041D8
u8 r4 = sa2__gUnknown_03002280[bg][1];
u8 r4 = gBgSprites_Unknown2[bg][1];
for (; r4 < sa2__gUnknown_03002280[bg][3]; r4++) {
void *vram = (vramBase + (sa2__gUnknown_03002280[bg][1] * (tileSize * 2)));
s32 size = tileSize * (sa2__gUnknown_03002280[bg][2] - sp08) + 1;
for (; r4 < gBgSprites_Unknown2[bg][3]; r4++) {
void *vram = (vramBase + (gBgSprites_Unknown2[bg][1] * (tileSize * 2)));
s32 size = tileSize * (gBgSprites_Unknown2[bg][2] - sp08) + 1;
DmaFill16(3, sa2__gUnknown_03004D80[bg], vram, size * 2);
}
}
}
// _0800422C
DmaFill32(3, 0, &sa2__gUnknown_03002280[bg], ARRAY_COUNT(sa2__gUnknown_03002280[bg]));
DmaFill32(3, 0, &gBgSprites_Unknown2[bg], ARRAY_COUNT(gBgSprites_Unknown2[bg]));
}
}
+23 -23
View File
@@ -105,16 +105,16 @@ void SA2_LABEL(sub_8006228)(u8 bg, u8 param1, u8 param2, u8 param3, u8 param4, u
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = (int_vcount *)gBgOffsetsHBlank + sizeof(REG_WIN0H);
cursor = (int_vcount *)gBgOffsetsHBlankPrimary + sizeof(REG_WIN0H);
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = (int_vcount *)gBgOffsetsHBlank;
cursor = (int_vcount *)gBgOffsetsHBlankPrimary;
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
volatile winreg_t *reg;
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = (int_vcount *)gBgOffsetsHBlank;
cursor = (int_vcount *)gBgOffsetsHBlankPrimary;
// Required for match
reg = &REG_WIN1H;
@@ -233,16 +233,16 @@ void SA2_LABEL(sub_80064A8)(u8 bg, u8 param1, u8 param2, u8 param3, u8 param4, u
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = (int_vcount *)gBgOffsetsHBlank + sizeof(winreg_t);
cursor = (int_vcount *)gBgOffsetsHBlankPrimary + sizeof(winreg_t);
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = (int_vcount *)gBgOffsetsHBlank;
cursor = (int_vcount *)gBgOffsetsHBlankPrimary;
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
volatile winreg_t *reg;
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = (int_vcount *)gBgOffsetsHBlank;
cursor = (int_vcount *)gBgOffsetsHBlankPrimary;
// Required for match
reg = &REG_WIN1H;
@@ -374,15 +374,15 @@ void SA2_LABEL(sub_8006DB4)(u8 bg, TriParam1 *arg1, s32 unused, s32 arg3)
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = &((int_vcount *)gBgOffsetsHBlank)[2];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[2];
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
if (bg & 1) {
gHBlankCopyTarget = (void *)&REG_WIN1H;
@@ -598,15 +598,15 @@ void SA2_LABEL(sub_800724C)(u8 bg, TriParam1 *arg1)
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = &((int_vcount *)gBgOffsetsHBlank)[2];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[2];
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
if (bg & 1) {
gHBlankCopyTarget = (void *)&REG_WIN1H;
@@ -740,15 +740,15 @@ void SA2_LABEL(sub_80075D0)(u8 bg, u8 param1, u8 param2, s16 param3, s16 param4,
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = &((int_vcount *)gBgOffsetsHBlank)[2];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[2];
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = &((int_vcount *)gBgOffsetsHBlank)[0];
cursor = &((int_vcount *)gBgOffsetsHBlankPrimary)[0];
if (bg & 1) {
gHBlankCopyTarget = (void *)&REG_WIN1H;
@@ -814,7 +814,7 @@ void SA2_LABEL(sub_8007738)(u8 bg, int_vcount minY, int_vcount maxY, u16 param3,
gHBlankCopyTarget = (void *)&((u8 *)&REG_BG0HOFS)[bg * 4];
gHBlankCopySize = 2 * sizeof(REG_BG0HOFS);
cursor = &((u16 *)gBgOffsetsHBlank)[minY * 2];
cursor = &((u16 *)gBgOffsetsHBlankPrimary)[minY * 2];
while (minY < maxY) {
*cursor = (((SIN(param3 & ONE_CYCLE) * param4) >> 14) + param9) & 0x1FF;
@@ -838,7 +838,7 @@ void SA2_LABEL(sub_8007858)(u8 param0, int_vcount minY, int_vcount maxY, u16 par
gHBlankCopyTarget = (void *)&((u8 *)&REG_BG0HOFS)[param0 * 4];
gHBlankCopySize = 2 * sizeof(REG_BG0HOFS);
cursor = &((u16 *)gBgOffsetsHBlank)[minY * 2];
cursor = &((u16 *)gBgOffsetsHBlankPrimary)[minY * 2];
param4 = (param4 - minY) & 0x1FF;
param3 &= 0x1FF;
@@ -865,7 +865,7 @@ void SA2_LABEL(sub_80078D4)(u8 bg, int_vcount minY, int_vcount maxY, u16 offsetE
if (minY < maxY) {
fillVal = (offsetEven %= 512u) | ((offsetOdd % 512u) << 16);
DmaFill32(3, fillVal, &((u16 *)gBgOffsetsHBlank)[minY * 2], (maxY - minY) * 4);
DmaFill32(3, fillVal, &((u16 *)gBgOffsetsHBlankPrimary)[minY * 2], (maxY - minY) * 4);
}
}
@@ -878,7 +878,7 @@ void SA2_LABEL(sub_8007958)(u8 bg, int_vcount minY, int_vcount maxY, s16 param3,
gHBlankCopyTarget = (void *)&((u8 *)&REG_BG0HOFS)[bg * 4];
gHBlankCopySize = 2 * sizeof(REG_BG0HOFS);
cursor = &((u16 *)gBgOffsetsHBlank)[minY * 2];
cursor = &((u16 *)gBgOffsetsHBlankPrimary)[minY * 2];
while (minY < maxY) {
*cursor = (param3 + param5) & 0x1FF;
@@ -903,15 +903,15 @@ void SA2_LABEL(sub_8007A08)(u8 bg, u8 param1, u8 param2, u8 param3, u8 param4)
gHBlankCopySize = sizeof(REG_WIN0H) * 2;
if (bg & 1) {
cursor = &((u8 *)gBgOffsetsHBlank)[2];
cursor = &((u8 *)gBgOffsetsHBlankPrimary)[2];
gHBlankCopyTarget = (void *)&REG_WIN0H;
} else {
cursor = &((u8 *)gBgOffsetsHBlank)[0];
cursor = &((u8 *)gBgOffsetsHBlankPrimary)[0];
gHBlankCopyTarget = (void *)&REG_WIN0H;
}
} else {
gHBlankCopySize = sizeof(REG_WIN0H);
cursor = &((u8 *)gBgOffsetsHBlank)[0];
cursor = &((u8 *)gBgOffsetsHBlankPrimary)[0];
if (bg & 1) {
gHBlankCopyTarget = (void *)&REG_WIN1H;
@@ -967,7 +967,7 @@ void SA2_LABEL(sub_8007AC0)(u8 affineBg, int_vcount minY, int_vcount maxY)
gHBlankCopySize = sizeof(REG_BG2PA);
cursor = &((u16 *)gBgOffsetsHBlank)[minY];
cursor = &((u16 *)gBgOffsetsHBlankPrimary)[minY];
#ifdef NON_MATCHING
// assert(affineBg < NUM_AFFINE_BACKGROUNDS);
+32 -41
View File
@@ -13,6 +13,8 @@
// TODO: Better name
#define VBLANK_FUNC_ID_NONE 0xFF
typedef bool32 (*VBlankProcessFunc)(void);
// TODO: the order of these vars has
// been shuffled due to compilation losses.
// It's possible to use `ramscrgen` to reorder
@@ -21,15 +23,15 @@
IntrFunc gIntrTable[] = {};
u32 gIntrMainBuf[] = {};
struct Task gTasks[] = {};
u16 sa2__gUnknown_030017F0 ALIGNED(4) = 0;
s16 sa2__gUnknown_030017F4[2] ALIGNED(4) = {};
u16 SA2_LABEL(gUnknown_030017F0) ALIGNED(4) = 0;
Vec2_16 gSpriteOffset ALIGNED(4) = {};
Background *gBackgroundsCopyQueue[] ALIGNED(16) = {};
u32 gFlags = 0;
u8 sa2__gUnknown_03001850[] ALIGNED(16) = {};
FuncType_030053A0 gVBlankCallbacks[] = {};
u8 gOamMallocOrders_StartIndex[] ALIGNED(16) = {};
IntrFunc gVBlankCallbacks[] = {};
u16 gPhysicalInput = 0;
void *gBgOffsetsHBlank = NULL;
void *gBgOffsetsHBlankPrimary = NULL;
u16 gVramHeapMaxTileSlots = 0;
u8 gNumHBlankCallbacks ALIGNED(4) = 0;
@@ -45,21 +47,21 @@ u8 gNextFreeAffineIndex = 0;
#endif
BgAffineReg gBgAffineRegs[NUM_AFFINE_BACKGROUNDS] ALIGNED(16) = {};
void *gVramHeapStartAddr = NULL;
u16 sa2__gUnknown_03001944 ALIGNED(4) = 0;
u16 SA2_LABEL(gUnknown_03001944) ALIGNED(4) = 0;
u8 gNumVBlankIntrs ALIGNED(4) = 0;
s16 sa2__gUnknown_0300194C ALIGNED(4) = 0;
s16 SA2_LABEL(gUnknown_0300194C) ALIGNED(4) = 0;
u32 gMultiSioStatusFlags = 0;
bool8 gMultiSioEnabled = FALSE;
struct Task *gTaskPtrs[] ALIGNED(16) = {};
int_vcount gBgOffsetsBuffer[2][DISPLAY_HEIGHT][4] = {}; /* TODO: Find out how this is different from gBgOffsetsHBlank */
int_vcount gBgOffsetsBuffer[2][DISPLAY_HEIGHT][4] = {}; /* TODO: Find out how this is different from gBgOffsetsHBlankPrimary */
u16 gObjPalette[] = {};
Tilemap **gTilemapsRef = NULL;
u32 gFrameCount = 0;
winreg_t gWinRegs[6] ALIGNED(16) = {};
s32 gNumTasks = 0;
u8 sa2__gUnknown_03002280[4][4] = {};
u8 gBgSprites_Unknown2[4][4] = {};
u16 gInput = 0;
u8 gRepeatedKeysTestCounter[] ALIGNED(16) = {};
void *sa2__gUnknown_030022AC = NULL;
@@ -135,7 +137,7 @@ u16 gVramHeapState[] = {};
u8 sa2__gUnknown_03005390 ALIGNED(4) = 0;
u16 sa2__gUnknown_03005394 ALIGNED(4) = 0;
u16 sa2__gUnknown_03005398 ALIGNED(4) = 0;
FuncType_030053A0 gVBlankIntrs[] ALIGNED(16) = {};
IntrFunc gVBlankIntrs[] ALIGNED(16) = {};
const u8 *gInputPlaybackData = NULL;
bool8 gExecSoundMain ALIGNED(4) = FALSE;
s32 gPseudoRandom = 0;
@@ -224,15 +226,15 @@ void EngineInit(void)
gVramGraphicsCopyCursor = 0;
gVramGraphicsCopyQueueIndex = 0;
DmaFill32(3, 0, sa2__gUnknown_03002280, sizeof(sa2__gUnknown_03002280));
DmaFill32(3, 0, gBgSprites_Unknown2, sizeof(gBgSprites_Unknown2));
// TODO: sort out this type
*(u32 *)sa2__gUnknown_03004D80 = 0;
DmaFill32(3, 0, gBgScrollRegs, sizeof(gBgScrollRegs));
sa2__gUnknown_030017F4[0] = 0;
sa2__gUnknown_030017F4[1] = 0;
gSpriteOffset.x = 0;
gSpriteOffset.y = 0;
gDispCnt = DISPCNT_FORCED_BLANK;
@@ -243,7 +245,7 @@ void EngineInit(void)
DmaFill16(3, 0x200, gOamBuffer, sizeof(gOamBuffer));
DmaFill16(3, 0x200, gOamBuffer2, sizeof(gOamBuffer2));
DmaFill32(3, ~0, sa2__gUnknown_03001850, sizeof(sa2__gUnknown_03001850));
DmaFill32(3, ~0, gOamMallocOrders_StartIndex, sizeof(gOamMallocOrders_StartIndex));
DmaFill32(3, ~0, sa2__gUnknown_03004D60, sizeof(sa2__gUnknown_03004D60));
DmaFill32(3, 0, gObjPalette, sizeof(gObjPalette));
DmaFill32(3, 0, gBgPalette, sizeof(gBgPalette));
@@ -314,7 +316,7 @@ void EngineInit(void)
DmaFill32(3, 0, &gBgOffsetsBuffer, sizeof(gBgOffsetsBuffer));
gBgOffsetsHBlank = gBgOffsetsBuffer[0];
gBgOffsetsHBlankPrimary = gBgOffsetsBuffer[0];
sa2__gUnknown_030022AC = gBgOffsetsBuffer[1];
gHBlankCopyTarget = NULL;
gHBlankCopySize = 0;
@@ -474,7 +476,7 @@ void UpdateScreenDma(void)
if (gFlags & FLAGS_EXECUTE_HBLANK_COPY) {
DmaCopy16(3, gBgOffsetsHBlank, gHBlankCopyTarget, gHBlankCopySize);
DmaCopy16(3, gBgOffsetsHBlankPrimary, gHBlankCopyTarget, gHBlankCopySize);
}
if (sLastCalledVblankFuncId == VBLANK_FUNC_ID_NONE) {
@@ -501,7 +503,7 @@ void UpdateScreenDma(void)
if (gFlags & FLAGS_EXECUTE_VBLANK_CALLBACKS) {
DmaFill32(3, 0, gVBlankIntrs, sizeof(gVBlankIntrs));
if (gNumVBlankCallbacks != 0) {
DmaCopy32(3, gVBlankCallbacks, gVBlankIntrs, gNumVBlankCallbacks * sizeof(FuncType_030053A0));
DmaCopy32(3, gVBlankCallbacks, gVBlankIntrs, gNumVBlankCallbacks * sizeof(IntrFunc));
}
gNumVBlankIntrs = gNumVBlankCallbacks;
} else {
@@ -540,24 +542,13 @@ void ClearOamBufferDma(void)
gFlags &= ~FLAGS_EXECUTE_HBLANK_CALLBACKS;
if (!(gFlags & FLAGS_20)) {
#if (GAME == GAME_SA1)
if (gBgOffsetsHBlank == gBgOffsetsBuffer[0]) {
gBgOffsetsHBlank = gBgOffsetsBuffer[1];
sa2__gUnknown_030022AC = gBgOffsetsBuffer[0];
if (gBgOffsetsHBlankPrimary == gBgOffsetsBuffer[0]) {
gBgOffsetsHBlankPrimary = gBgOffsetsBuffer[1];
SA2_LABEL(gUnknown_030022AC) = gBgOffsetsBuffer[0];
} else {
gBgOffsetsHBlank = gBgOffsetsBuffer[0];
sa2__gUnknown_030022AC = gBgOffsetsBuffer[1];
gBgOffsetsHBlankPrimary = gBgOffsetsBuffer[0];
SA2_LABEL(gUnknown_030022AC) = gBgOffsetsBuffer[1];
}
#else
if (gBgOffsetsHBlank == gUnknown_03004D54) {
gBgOffsetsHBlank = gUnknown_030022C0;
gUnknown_030022AC = gUnknown_03004D54;
} else {
gBgOffsetsHBlank = gUnknown_03004D54;
gUnknown_030022AC = gUnknown_030022C0;
}
#endif
}
gFlags &= ~FLAGS_EXECUTE_HBLANK_COPY;
DmaFill16(3, 0x200, gOamBuffer + (OAM_ENTRY_COUNT / 4) * 0, OAM_SIZE / 4);
@@ -656,8 +647,8 @@ void VBlankIntr(void)
REG_IE |= INTR_FLAG_HBLANK;
DmaWait(0);
DmaCopy16(0, gBgOffsetsHBlank, gHBlankCopyTarget, gHBlankCopySize);
DmaSet(0, gBgOffsetsHBlank + gHBlankCopySize, gHBlankCopyTarget,
DmaCopy16(0, gBgOffsetsHBlankPrimary, gHBlankCopyTarget, gHBlankCopySize);
DmaSet(0, gBgOffsetsHBlankPrimary + gHBlankCopySize, gHBlankCopyTarget,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | (gHBlankCopySize >> 1));
} else if (gHBlankCopyTarget) {
@@ -861,11 +852,11 @@ void ClearOamBufferCpuSet(void)
gFlags &= ~FLAGS_EXECUTE_HBLANK_CALLBACKS;
if (!(gFlags & FLAGS_20)) {
if (gBgOffsetsHBlank == gBgOffsetsBuffer) {
gBgOffsetsHBlank = &gBgOffsetsBuffer[1];
if (gBgOffsetsHBlankPrimary == gBgOffsetsBuffer) {
gBgOffsetsHBlankPrimary = &gBgOffsetsBuffer[1];
sa2__gUnknown_030022AC = (void *)&gBgOffsetsBuffer[0];
} else {
gBgOffsetsHBlank = &gBgOffsetsBuffer[0];
gBgOffsetsHBlankPrimary = &gBgOffsetsBuffer[0];
sa2__gUnknown_030022AC = (void *)&gBgOffsetsBuffer[1];
}
}
@@ -881,11 +872,11 @@ void ClearOamBufferCpuSet(void)
gFlags &= ~FLAGS_EXECUTE_HBLANK_CALLBACKS;
if (!(gFlags & FLAGS_20)) {
if (gBgOffsetsHBlank == gUnknown_03004D54) {
gBgOffsetsHBlank = gUnknown_030022C0;
if (gBgOffsetsHBlankPrimary == gUnknown_03004D54) {
gBgOffsetsHBlankPrimary = gUnknown_030022C0;
gUnknown_030022AC = gUnknown_03004D54;
} else {
gBgOffsetsHBlank = gUnknown_03004D54;
gBgOffsetsHBlankPrimary = gUnknown_03004D54;
gUnknown_030022AC = gUnknown_030022C0;
}
}
+16 -16
View File
@@ -401,10 +401,10 @@ NONMATCH("asm/non_matching/game/char_select__CreateCharacterSelectionScreen.inc"
}
sa2__gUnknown_03004D80[1] = 0;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = -1;
sa2__gUnknown_03002280[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x20;
m4aSongNumStartOrContinue(MUS_CHARACTER_SELECTION);
sub_805423C(&temp_r7->strc0);
}
@@ -917,22 +917,22 @@ void Task_805AC00(void)
TaskDestroy(strc3C->task20);
sa2__gUnknown_03004D80[0] = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = -1;
sa2__gUnknown_03002280[0][3] = 0x14;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x14;
sa2__gUnknown_03004D80[1] = 0;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = -1;
sa2__gUnknown_03002280[1][3] = 0x14;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x14;
sa2__gUnknown_03004D80[2] = 0;
sa2__gUnknown_03002280[2][0] = 0;
sa2__gUnknown_03002280[2][1] = 0;
sa2__gUnknown_03002280[2][2] = -1;
sa2__gUnknown_03002280[2][3] = 0x14;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x14;
}
}
+4 -4
View File
@@ -50,10 +50,10 @@ void sub_806968C(void)
sub_80528AC(&sp00);
sa2__gUnknown_03004D80[0] = 1;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x14;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x14;
}
void CreateGetAllChaosEmeraldsMessage()
+17 -17
View File
@@ -425,7 +425,7 @@ NONMATCH("asm/non_matching/game/course_select__Task_CourseSelectInit.inc", void
gFlags |= 4;
gHBlankCopyTarget = (void *)&REG_BG0HOFS;
gHBlankCopySize = 4;
var_r1 = gBgOffsetsHBlank;
var_r1 = gBgOffsetsHBlankPrimary;
for (var_r2 = 0; var_r2 < 12; var_r2++, var_r5++) {
*var_r1++ = 0;
@@ -707,25 +707,25 @@ void Task_8062540()
TaskDestroy(gCurTask);
} else {
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[1] = 0;
SA2_LABEL(gUnknown_03002280)[1][0] = 0;
SA2_LABEL(gUnknown_03002280)[1][1] = 0;
SA2_LABEL(gUnknown_03002280)[1][2] = -1;
SA2_LABEL(gUnknown_03002280)[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = -1;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[3] = 0;
SA2_LABEL(gUnknown_03002280)[3][0] = 0;
SA2_LABEL(gUnknown_03002280)[3][1] = 0;
SA2_LABEL(gUnknown_03002280)[3][2] = -1;
SA2_LABEL(gUnknown_03002280)[3][3] = 0x20;
gBgSprites_Unknown2[3][0] = 0;
gBgSprites_Unknown2[3][1] = 0;
gBgSprites_Unknown2[3][2] = -1;
gBgSprites_Unknown2[3][3] = 0x20;
level = state->level;
if (level == 0) {
+4 -4
View File
@@ -1862,10 +1862,10 @@ void Task_80679E4()
state->taskC->main = Task_8068570;
gCurTask->main = Task_8067B14;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x14;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x14;
gBgScrollRegs[0][1] = 0;
state->strc0.unk0 = 0;
state->strc0.unk2 = 1;
+16 -16
View File
@@ -489,25 +489,25 @@ NONMATCH("asm/non_matching/game/game2_1__sub_805D048.inc", void sub_805D048(u8 a
temp_r0_10->task20 = task20;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[1] = 0;
SA2_LABEL(gUnknown_03002280)[1][0] = 0;
SA2_LABEL(gUnknown_03002280)[1][1] = 0;
SA2_LABEL(gUnknown_03002280)[1][2] = -1;
SA2_LABEL(gUnknown_03002280)[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = -1;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[3] = 0;
SA2_LABEL(gUnknown_03002280)[3][0] = 0;
SA2_LABEL(gUnknown_03002280)[3][1] = 0;
SA2_LABEL(gUnknown_03002280)[3][2] = -1;
SA2_LABEL(gUnknown_03002280)[3][3] = 0x20;
gBgSprites_Unknown2[3][0] = 0;
gBgSprites_Unknown2[3][1] = 0;
gBgSprites_Unknown2[3][2] = -1;
gBgSprites_Unknown2[3][3] = 0x20;
sub_805C994(arg0);
}
+4 -4
View File
@@ -115,10 +115,10 @@ void CreateMultiplayerResultsScreen(u8 mode)
DmaFill32(3, 0, BG_VRAM + 0x1FE0, 0x40);
SA2_LABEL(gUnknown_03004D80)[0] = 0xFF;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x40;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x40;
bg->graphics.dest = (void *)BG_VRAM;
bg->graphics.anim = 0xFF;
+28 -28
View File
@@ -240,19 +240,19 @@ void Task_800E868()
gBldRegs.bldY = 0;
m4aSongNumStop(3U);
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
TaskDestroy(gCurTask);
CreateMainMenu(1);
} else {
gCurTask->main = sModeInitProcs[modeSelect->mode];
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
gMultiSioEnabled = 1;
}
} else {
@@ -524,10 +524,10 @@ void Task_MultiPak()
m4aSongNumStop(3U);
m4aSongNumStart(0x6BU);
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
TaskDestroy(gCurTask);
CreateMultiplayerModeSelectScreen();
return;
@@ -639,10 +639,10 @@ NONMATCH("asm/non_matching/game/multiplayer/mode_select__Task_800F058.inc", void
m4aSongNumStop(3U);
m4aSongNumStart(0x6BU);
*sa2__gUnknown_03004D80 = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
TaskDestroy(gCurTask);
CreateMultiplayerModeSelectScreen();
return;
@@ -657,10 +657,10 @@ NONMATCH("asm/non_matching/game/multiplayer/mode_select__Task_800F058.inc", void
m4aSongNumStop(3U);
m4aSongNumStart(0x6BU);
*sa2__gUnknown_03004D80 = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
TaskDestroy(gCurTask);
CreateMultiplayerModeSelectScreen();
return;
@@ -739,15 +739,15 @@ void ModeSelect_InitSinglePak()
u8 *vram = OBJ_VRAM0;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = -1;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
gDispCnt = DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_1;
gBgCntRegs[0] = 0x1E03;
+4 -4
View File
@@ -393,9 +393,9 @@ void sub_8010060(void)
m4aSongNumStart(107);
gCurTask->main = Task_800E648;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
}
}
+8 -8
View File
@@ -105,15 +105,15 @@ NONMATCH("asm/non_matching/game/multiplayer/results_2__CreateMultiplayerSinglePa
gBgCntRegs[3] = 0x5E0B;
gBgCntRegs[2] = 0x1C0C;
SA2_LABEL(gUnknown_03004D80)[2] = 0x7F;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[3] = -1;
SA2_LABEL(gUnknown_03002280)[3][0] = 0;
SA2_LABEL(gUnknown_03002280)[3][1] = 0;
SA2_LABEL(gUnknown_03002280)[3][2] = -1;
SA2_LABEL(gUnknown_03002280)[3][3] = 0x40;
gBgSprites_Unknown2[3][0] = 0;
gBgSprites_Unknown2[3][1] = 0;
gBgSprites_Unknown2[3][2] = -1;
gBgSprites_Unknown2[3][3] = 0x40;
DmaFill32(3, 0, VRAM + 0x9FE0, 0x40);
DmaFill32(3, 0, VRAM + 0xFE0 + ((r8 = 3) << 14), 0x40);
+3 -3
View File
@@ -697,7 +697,7 @@ block_39:
#ifndef NON_MATCHING
{
register volatile void *dmaSrc asm("r2") = &REG_DMA3SAD;
register u8 *offsetsHBlank asm("r4") = gBgOffsetsHBlank;
register u8 *offsetsHBlank asm("r4") = gBgOffsetsHBlankPrimary;
asm("" ::"r"(dmaSrc));
asm("" ::"r"(offsetsHBlank));
{
@@ -706,7 +706,7 @@ block_39:
register s32 v asm("r7") = 0x84000000;
asm("" ::"r"(v));
for (var_r6 = 0; var_r6 <= 0x80; var_r6 += 0x10) {
DmaCopy32(3, gBgOffsetsHBlank, dmaDst, (gHBlankCopySize << 4));
DmaCopy32(3, gBgOffsetsHBlankPrimary, dmaDst, (gHBlankCopySize << 4));
dmaDst += copySize;
}
}
@@ -714,7 +714,7 @@ block_39:
#else
temp_r1_4 = gHBlankCopySize * 0x10;
for (var_r6 = 0x0; var_r6 <= 0x80; var_r6 += 0x10) {
DmaCopy32(3, gBgOffsetsHBlank, &((u8 *)gBgOffsetsHBlank)[temp_r1_4], (gHBlankCopySize << 4));
DmaCopy32(3, gBgOffsetsHBlankPrimary, &((u8 *)gBgOffsetsHBlankPrimary)[temp_r1_4], (gHBlankCopySize << 4));
temp_r1_4 += gHBlankCopySize * var_r6;
}
#endif
+20 -20
View File
@@ -78,10 +78,10 @@ void sub_801C9D8(void)
gMultiplayerMissingHeartbeats[1] = 0;
gMultiplayerMissingHeartbeats[0] = 0;
SA2_LABEL(gUnknown_03004D80)[3] = 0xFF;
SA2_LABEL(gUnknown_03002280)[3][0] = 0;
SA2_LABEL(gUnknown_03002280)[3][1] = 0;
SA2_LABEL(gUnknown_03002280)[3][2] = -1;
SA2_LABEL(gUnknown_03002280)[3][3] = 0x40;
gBgSprites_Unknown2[3][0] = 0;
gBgSprites_Unknown2[3][1] = 0;
gBgSprites_Unknown2[3][2] = -1;
gBgSprites_Unknown2[3][3] = 0x40;
DmaFill32(3, 0, VRAM + 0xA000 - 0x20, 0x40);
t = TaskCreate(Task_801CB80, sizeof(MPStrc1), 0x2000U, 0U, NULL);
strc = TASK_DATA(t);
@@ -238,25 +238,25 @@ void Task_801CD80()
if (R_BUTTON & gInput) {
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = -1;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = -1;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[1] = 0;
SA2_LABEL(gUnknown_03002280)[1][0] = 0;
SA2_LABEL(gUnknown_03002280)[1][1] = 0;
SA2_LABEL(gUnknown_03002280)[1][2] = -1;
SA2_LABEL(gUnknown_03002280)[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = -1;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[3] = 0;
SA2_LABEL(gUnknown_03002280)[3][0] = 0;
SA2_LABEL(gUnknown_03002280)[3][1] = 0;
SA2_LABEL(gUnknown_03002280)[3][2] = -1;
SA2_LABEL(gUnknown_03002280)[3][3] = 0x20;
gBgSprites_Unknown2[3][0] = 0;
gBgSprites_Unknown2[3][1] = 0;
gBgSprites_Unknown2[3][2] = -1;
gBgSprites_Unknown2[3][3] = 0x20;
CreateUnusedLevelSelect();
} else if ((gGameMode == 0) && (LOADED_SAVE->unlockedLevels[gSelectedCharacter] == 0)) {
gCurrentLevel = 0;
+8 -8
View File
@@ -723,15 +723,15 @@ NONMATCH("asm/non_matching/game/player_name_input_menu__Task_80595DC.inc", void
TaskDestroy(gCurTask);
sa2__gUnknown_03004D80[1] = 0;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = 0xFF;
sa2__gUnknown_03002280[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = 0xFF;
gBgSprites_Unknown2[1][3] = 0x20;
sa2__gUnknown_03004D80[2] = 0;
sa2__gUnknown_03002280[2][0] = 0;
sa2__gUnknown_03002280[2][1] = 0;
sa2__gUnknown_03002280[2][2] = 0xFF;
sa2__gUnknown_03002280[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x20;
if (gGameMode == 2) {
CreateMultiplayerModeSelectScreen();
+8 -8
View File
@@ -20,10 +20,10 @@ void CreateUnusedFlashTask(void)
DmaFill32(3, 0, VRAM, 2 * TILE_SIZE_4BPP);
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x40;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x40;
{
struct Task *t = TaskCreate(Task_UnusedFlashTask, 0, 0x1000, 0, NULL);
@@ -44,10 +44,10 @@ void Task_UnusedFlashTask(void)
void DestroyUnusedFlashTask(void)
{
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x20;
TaskDestroy(gCurTask);
@@ -103,10 +103,10 @@ void Task_Poll(void)
#endif
sa2__gUnknown_03004D80[0] = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
#if (GAME == GAME_SA1)
if (IS_MULTI_PLAYER) {
gCurTask->main = Task_CreateMultiplayer;
@@ -125,10 +125,10 @@ void Task_Poll(void)
#endif
sa2__gUnknown_03004D80[0] = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
} else {
if (gRepeatedKeys & DPAD_LEFT) {
LEFT_INPUT(levelSelect->levelId);
+4 -4
View File
@@ -203,10 +203,10 @@ void CreateStaffCredits()
DmaFill32(3, 0, BG_CHAR_ADDR_FROM_BGCNT(1), 0x40);
sa2__gUnknown_03004D80[1] = 1;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = -1;
sa2__gUnknown_03002280[1][3] = 0x14;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = -1;
gBgSprites_Unknown2[1][3] = 0x14;
gDispCnt |= 0x6000;
gWinRegs[WINREG_WIN0H] = WIN_RANGE(0, DISPLAY_WIDTH);
+1 -1
View File
@@ -27,7 +27,7 @@ void StageBgUpdate_Zone1Acts12(s32 x, s32 UNUSED y)
gHBlankCopyTarget = (void *)&REG_BG3HOFS;
gHBlankCopySize = 4;
offsets = gBgOffsetsHBlank;
offsets = gBgOffsetsHBlankPrimary;
for (i = 0; i < 8; i++) {
// Highest moving cloud (fastest)
+3 -3
View File
@@ -24,7 +24,7 @@ NONMATCH("asm/non_matching/game/stage/backgrounds/StageBgUpdate_Zone2_Interior.i
gHBlankCopyTarget = (void *)&REG_BG3HOFS;
gHBlankCopySize = 4;
offsets = gBgOffsetsHBlank;
offsets = gBgOffsetsHBlankPrimary;
wallY = ySub % 64u;
r4 = 0;
@@ -67,7 +67,7 @@ NONMATCH("asm/non_matching/game/stage/backgrounds/StageBgUpdate_Zone2_Interior.i
xSub = ((x >> 1) + (i << 5)) & 0xFF;
ySub = ((y >> 1) + (i << 6)) & 0xFF;
ySub = (-ySub) & 0xFF;
offsets = gBgOffsetsHBlank;
offsets = gBgOffsetsHBlankPrimary;
for (line = ySub - 16; line < ySub; line++) {
if (line < 0) {
@@ -86,7 +86,7 @@ NONMATCH("asm/non_matching/game/stage/backgrounds/StageBgUpdate_Zone2_Interior.i
// Bigger bar
v = (-ySub & 0xFF);
offsets = gBgOffsetsHBlank;
offsets = gBgOffsetsHBlankPrimary;
for (line = v - 24; line < v; line++) {
if ((line < 0)) {
continue;
+6 -6
View File
@@ -90,7 +90,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
gHBlankCopySize = 4;
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
DmaFill32(3, r4, ptr, DISPLAY_HEIGHT * sizeof(r4));
r4 = ((ySub << 16) | ((xSub + (x >> 6)) & 0xFF));
@@ -110,7 +110,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | ((xSub + (x >> 5)) & 0xFF));
@@ -129,7 +129,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | ((xSub + (x >> 4)) & 0xFF));
@@ -148,7 +148,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | ((xSub + (x >> 3)) & 0xFF));
@@ -167,7 +167,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | ((xSub + (x >> 2)) & 0xFF));
@@ -186,7 +186,7 @@ void StageBgUpdate_Zone3Acts12(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | ((xSub + (x >> 1)) & 0xFF));
+2 -2
View File
@@ -251,7 +251,7 @@ void StageBgUpdate_Zone6Act2(s32 x, s32 y)
gHBlankCopySize = 4;
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
DmaFill32(3, r4, ptr, DISPLAY_HEIGHT * sizeof(r4));
r4 = ((ySub << 16) | ((xSub - (gStageTime >> 1)) & 0x1FF));
@@ -271,7 +271,7 @@ void StageBgUpdate_Zone6Act2(s32 x, s32 y)
}
{
ptr = gBgOffsetsHBlank;
ptr = gBgOffsetsHBlankPrimary;
r4 = ((ySub << 16) | (((gStageTime >> 1) + xSub) & 0x1FF));
+1 -1
View File
@@ -24,7 +24,7 @@ void StageBgUpdate_Zone7Act2(void)
bg->scrollY = 0;
DrawBackground(bg);
offsets = gBgOffsetsHBlank;
offsets = gBgOffsetsHBlankPrimary;
offsets += 90; // Earth is static, so skip those lines
DmaFill32(3, (gStageTime >> 6) & 0xFF, offsets, 10 * sizeof(u32));
+8 -8
View File
@@ -480,15 +480,15 @@ void InitCamera(u32 level)
}
sa2__gUnknown_03004D80[1] = 0;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = 0xff;
sa2__gUnknown_03002280[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = 0xff;
gBgSprites_Unknown2[1][3] = 0x20;
sa2__gUnknown_03004D80[2] = 0;
sa2__gUnknown_03002280[2][0] = 0;
sa2__gUnknown_03002280[2][1] = 0;
sa2__gUnknown_03002280[2][2] = 0xff;
sa2__gUnknown_03002280[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xff;
gBgSprites_Unknown2[2][3] = 0x20;
#elif (GAME == GAME_SA2)
gUnknown_03004D80[1] = 0;
gUnknown_03002280[1][0] = 0;
+4 -4
View File
@@ -252,10 +252,10 @@ void sub_8010580(void)
gBldRegs.bldCnt = 0;
gBldRegs.bldY = 0;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
TaskDestroy(gCurTask);
CreateMainMenu(1);
}
+1 -1
View File
@@ -320,7 +320,7 @@ NONMATCH("asm/non_matching/game/time_attack_records__Task_806BBC0.inc", void Tas
gFlags |= 4;
gHBlankCopyTarget = (void *)&REG_BG0HOFS;
gHBlankCopySize = 4;
var_r2 = (void *)&((u32 *)gBgOffsetsHBlank)[var_r6];
var_r2 = (void *)&((u32 *)gBgOffsetsHBlankPrimary)[var_r6];
while (var_r6 < var_ip) {
for (var_r1 = 0; var_r1 < 24 && (var_r6 < var_ip); var_r6++, var_r1++) {
+1 -1
View File
@@ -377,7 +377,7 @@ NONMATCH("asm/non_matching/game/time_attack_record__sub_8061144.inc", void sub_8
gHBlankCopyTarget = (void *)&REG_BG0HOFS;
gHBlankCopySize = 4;
{
var_r2 = gBgOffsetsHBlank;
var_r2 = gBgOffsetsHBlankPrimary;
for (var_r7; var_r7 < DISPLAY_HEIGHT; var_r7++) {
for (var_r1 = 0; var_r7 < DISPLAY_HEIGHT && var_r1 < 24; var_r1++) {
*var_r2++ = (s16)(var_r3 & 0x1FF);
+32 -32
View File
@@ -108,10 +108,10 @@ void CreateSegaLogo(void)
DmaFill32(3, 0, VRAM, 64);
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x40;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x40;
t = TaskCreate(Task_SetSegaLogoTask, sizeof(SegaLogo), 0x2000, 0, NULL);
@@ -185,10 +185,10 @@ void CreateSonicTeamLogo(void)
DmaFill32(3, 0, VRAM, 64);
SA2_LABEL(gUnknown_03004D80)[2] = 0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x40;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x40;
t = TaskCreate(Task_SonicTeamLogoInit, sizeof(SonicTeamLogo), 0x2000, 0, NULL);
@@ -352,15 +352,15 @@ void CreateTitleScreen(u32 playMusic)
gBgScrollRegs[2][0] = 0;
gBgScrollRegs[2][1] = 0;
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] = 0xFF;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] = -1;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
DmaFill32(3, 0, BG_VRAM, 64);
DmaFill32(3, 0, BG_VRAM + 0xFFC0, 0x80); // TODO: This spills into OBJ VRAM!
@@ -549,15 +549,15 @@ void CreateMainMenu(u32 param0)
if (menu->unk1AF != 0) {
SA2_LABEL(gUnknown_03004D80)[0] = 0;
SA2_LABEL(gUnknown_03002280)[0][0] = 0;
SA2_LABEL(gUnknown_03002280)[0][1] = 0;
SA2_LABEL(gUnknown_03002280)[0][2] |= ~0;
SA2_LABEL(gUnknown_03002280)[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] |= ~0;
gBgSprites_Unknown2[0][3] = 0x20;
SA2_LABEL(gUnknown_03004D80)[2] |= ~0;
SA2_LABEL(gUnknown_03002280)[2][0] = 0;
SA2_LABEL(gUnknown_03002280)[2][1] = 0;
SA2_LABEL(gUnknown_03002280)[2][2] |= ~0;
SA2_LABEL(gUnknown_03002280)[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] |= ~0;
gBgSprites_Unknown2[2][3] = 0x20;
DmaFill32(3, 0, BG_CHAR_ADDR_FROM_BGCNT(0), 0x40);
DmaFill32(3, 0, BG_CHAR_ADDR_FROM_BGCNT(2) + 0x3FC0, 0x80); // NOTE: Overflow to 0x4040!
@@ -764,15 +764,15 @@ void Task_800DE44(void)
gCurTask->main = Task_800DEE4;
sa2__gUnknown_03004D80[0] = 0;
sa2__gUnknown_03002280[0][0] = 0;
sa2__gUnknown_03002280[0][1] = 0;
sa2__gUnknown_03002280[0][2] = 0xFF;
sa2__gUnknown_03002280[0][3] = 0x20;
gBgSprites_Unknown2[0][0] = 0;
gBgSprites_Unknown2[0][1] = 0;
gBgSprites_Unknown2[0][2] = 0xFF;
gBgSprites_Unknown2[0][3] = 0x20;
sa2__gUnknown_03004D80[2] = 0;
sa2__gUnknown_03002280[2][0] = 0;
sa2__gUnknown_03002280[2][1] = 0;
sa2__gUnknown_03002280[2][2] = 0xFF;
sa2__gUnknown_03002280[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = 0xFF;
gBgSprites_Unknown2[2][3] = 0x20;
gFlags &= ~4;
}
+8 -8
View File
@@ -392,15 +392,15 @@ void Task_VsRecordInit()
TaskDestroy(record48->task3C);
TaskDestroy(gCurTask);
sa2__gUnknown_03004D80[1] = 0;
sa2__gUnknown_03002280[1][0] = 0;
sa2__gUnknown_03002280[1][1] = 0;
sa2__gUnknown_03002280[1][2] = 0xFF;
sa2__gUnknown_03002280[1][3] = 0x20;
gBgSprites_Unknown2[1][0] = 0;
gBgSprites_Unknown2[1][1] = 0;
gBgSprites_Unknown2[1][2] = 0xFF;
gBgSprites_Unknown2[1][3] = 0x20;
sa2__gUnknown_03004D80[2] = 0;
sa2__gUnknown_03002280[2][0] = 0;
sa2__gUnknown_03002280[2][1] = 0;
sa2__gUnknown_03002280[2][2] = -1;
sa2__gUnknown_03002280[2][3] = 0x20;
gBgSprites_Unknown2[2][0] = 0;
gBgSprites_Unknown2[2][1] = 0;
gBgSprites_Unknown2[2][2] = -1;
gBgSprites_Unknown2[2][3] = 0x20;
CreatePlayerDataMenu();
return;
}
+2 -2
View File
@@ -303,8 +303,8 @@ NONMATCH("asm/non_matching/game/water_effects__Task_StageWaterTask.inc", void Ta
(3, 0, 32, r3, 2, 64, (((gStageTime * 2 + (((gBgScrollRegs[3][1] + water->SA2_LABEL(unk2)) % 32u) << 5))) + 0x100) & ONE_CYCLE, 10,
32, gBgScrollRegs[3][0], gBgScrollRegs[3][1]);
for (r5 = 32, ptr = gBgOffsetsHBlank + (adder = (gHBlankCopySize << 5)); r5 < DISPLAY_HEIGHT;) {
DmaCopy32(3, gBgOffsetsHBlank, ptr, (gHBlankCopySize << 5));
for (r5 = 32, ptr = gBgOffsetsHBlankPrimary + (adder = (gHBlankCopySize << 5)); r5 < DISPLAY_HEIGHT;) {
DmaCopy32(3, gBgOffsetsHBlankPrimary, ptr, (gHBlankCopySize << 5));
ptr += adder;
r5 += 0x20;
}
+10 -10
View File
@@ -661,8 +661,8 @@ void DisplaySprite(Sprite *sprite)
y = sprite->y;
if (sprite->frameFlags & SPRITE_FLAG_MASK_17) {
x -= SA2_LABEL(gUnknown_030017F4)[0];
y -= SA2_LABEL(gUnknown_030017F4)[1];
x -= gSpriteOffset.x;
y -= gSpriteOffset.y;
}
sprWidth = sprDims->width;
@@ -836,8 +836,8 @@ UNUSED void DisplaySprites(Sprite *sprite, Vec2_16 *positions, u8 numPositions)
y = sprite->y;
if (sprite->frameFlags & SPRITE_FLAG_MASK_17) {
x -= SA2_LABEL(gUnknown_030017F4)[0];
y -= SA2_LABEL(gUnknown_030017F4)[1];
x -= gSpriteOffset.x;
y -= gSpriteOffset.y;
}
sprWidth = sprDims->width;
@@ -959,9 +959,9 @@ OamData *OamMalloc(u8 order)
if (gOamFreeIndex > OAM_ENTRY_COUNT - 1) {
result = (OamData *)iwram_end;
} else {
if (SA2_LABEL(gUnknown_03001850)[order] == 0xFF) {
if (gOamMallocOrders_StartIndex[order] == 0xFF) {
gOamBuffer2[gOamFreeIndex].split.fractional = 0xFF;
SA2_LABEL(gUnknown_03001850)[order] = gOamFreeIndex;
gOamMallocOrders_StartIndex[order] = gOamFreeIndex;
SA2_LABEL(gUnknown_03004D60)[order] = gOamFreeIndex;
} else {
gOamBuffer2[gOamFreeIndex].split.fractional = 0xFF;
@@ -982,8 +982,8 @@ void CopyOamBufferToOam(void)
u8 i = 0;
s32 r3;
for (r3 = 0; r3 < (s32)ARRAY_COUNT(SA2_LABEL(gUnknown_03001850)); r3++) {
s8 index = SA2_LABEL(gUnknown_03001850)[r3];
for (r3 = 0; r3 < (s32)ARRAY_COUNT(gOamMallocOrders_StartIndex); r3++) {
s8 index = gOamMallocOrders_StartIndex[r3];
while (index != -1) {
u8 newI;
@@ -1040,10 +1040,10 @@ void CopyOamBufferToOam(void)
gOamFreeIndex = 0;
if (gFlags & FLAGS_4000) {
CpuFill32(-1, SA2_LABEL(gUnknown_03001850), sizeof(SA2_LABEL(gUnknown_03001850)));
CpuFill32(-1, gOamMallocOrders_StartIndex, sizeof(gOamMallocOrders_StartIndex));
CpuFill32(-1, SA2_LABEL(gUnknown_03004D60), sizeof(SA2_LABEL(gUnknown_03004D60)));
} else {
DmaFill32(3, -1, SA2_LABEL(gUnknown_03001850), sizeof(SA2_LABEL(gUnknown_03001850)));
DmaFill32(3, -1, gOamMallocOrders_StartIndex, sizeof(gOamMallocOrders_StartIndex));
DmaFill32(3, -1, SA2_LABEL(gUnknown_03004D60), sizeof(SA2_LABEL(gUnknown_03004D60)));
}
}