summaryrefslogtreecommitdiff
path: root/src/affine.c
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-01-14 04:18:42 +0200
committerTal Hayon <talhayon1@gmail.com>2022-01-14 04:18:42 +0200
commitd04a806abfd271fd6e4100d2888d3ead1fd84942 (patch)
tree3079e4250fadecb57d8c7b34f2691f231cea83ea /src/affine.c
parent68161d76d8d06eda66d4051f0b467d3fcef70135 (diff)
Match CopyOAM
Diffstat (limited to 'src/affine.c')
-rw-r--r--src/affine.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/affine.c b/src/affine.c
index dcec33a8..bd11f972 100644
--- a/src/affine.c
+++ b/src/affine.c
@@ -24,23 +24,26 @@ void FlushSprites(void) {
gOAMControls.updated = 0;
}
-NONMATCH("asm/non_matching/vram/CopyOAM.inc", void CopyOAM(void)) {
- s32 rem;
+void CopyOAM(void) {
u16* d;
+ s32 rem;
- if (gMain.ticks.HALF.LO == 0) {
- gOAMControls.unk[0x20].unk0 = gMain.ticks.HALF.LO;
- gOAMControls.unk[0x48].unk4 = gMain.ticks.HALF.LO;
- gOAMControls.unk[0x71].unk0 = gMain.ticks.HALF.LO;
- gOAMControls.unk[0x99].unk4 = gMain.ticks.HALF.LO;
+ if (gMain.pad == 0) {
+ gOAMControls.unk[0x20].unk0 = 0;
+ gOAMControls.unk[0x48].unk4 = 0;
+ gOAMControls.unk[0x71].unk0 = 0;
+ gOAMControls.unk[0x99].unk4 = 0;
} else {
- gMain.ticks.HALF.LO--;
+ gMain.pad--;
}
rem = 0x80 - gOAMControls.updated;
- for (d = (u16*)&gOAMControls.oam[0x80 + gOAMControls.updated]; rem > 0; rem--) {
- *d = 0x2A0;
- (u8*)d += 6;
+ if (rem > 0) {
+ d = (u16*)&gOAMControls.oam[gOAMControls.updated];
+ for (; rem != 0; rem--) {
+ *d = 0x2A0;
+ (u8*)d += 8;
+ }
}
if (gOAMControls.unk[0].unk7) {
gOAMControls.unk[0].unk7 = 0;
@@ -48,7 +51,6 @@ NONMATCH("asm/non_matching/vram/CopyOAM.inc", void CopyOAM(void)) {
}
gOAMControls.field_0x0 = 1;
}
-END_NONMATCH
void DrawEntities(void) {
void (*fn)(void);