summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2020-07-22 09:11:20 -0400
committerGitHub <noreply@github.com>2020-07-22 09:11:20 -0400
commit96d38a1b9ccb843996fa887643b3ee59597982d0 (patch)
tree5ea71642d430d43295b72ab121a003cd33236849 /engine
parent60b0f0039de412bef28d5bbb5311e0d187980194 (diff)
parentb6bb40fcaff37dc7586719bc0862149312e3b042 (diff)
Merge pull request #57 from Rangi42/master
Use LOAD/ENDL for OAM DMA code in HRAM (requires rgbds 0.4.1)
Diffstat (limited to 'engine')
-rw-r--r--engine/battle/effect_commands.asm2
-rw-r--r--engine/gfx/load_push_oam.asm23
2 files changed, 16 insertions, 9 deletions
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index 4ecd8d44..ad943ab7 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -2526,7 +2526,7 @@ EndMoveEffect:
ld l, a
ld a, [wBattleScriptBufferAddress + 1]
ld h, a
- ld a, $ff
+ ld a, endmove_command
ld [hli], a
ld [hli], a
ld [hl], a
diff --git a/engine/gfx/load_push_oam.asm b/engine/gfx/load_push_oam.asm
index 2e43c1ff..39518881 100644
--- a/engine/gfx/load_push_oam.asm
+++ b/engine/gfx/load_push_oam.asm
@@ -1,21 +1,28 @@
WriteOAMDMACodeToHRAM::
ld c, LOW(hTransferVirtualOAM)
- ld b, .PushOAMEnd - .PushOAM
- ld hl, .PushOAM
-.loop
+ ld b, OAMDMACodeEnd - OAMDMACode
+ ld hl, OAMDMACode
+.copy
ld a, [hli]
ldh [c], a
inc c
dec b
- jr nz, .loop
+ jr nz, .copy
ret
-.PushOAM:
+OAMDMACode:
+; This code is defined in ROM, but
+; copied to and called from HRAM.
+LOAD "OAM DMA", HRAM
+hTransferVirtualOAM::
+ ; initiate DMA
ld a, HIGH(wVirtualOAM)
ldh [rDMA], a
+ ; wait for DMA to finish
ld a, NUM_SPRITE_OAM_STRUCTS
-.pushoam_loop
+.wait
dec a
- jr nz, .pushoam_loop
+ jr nz, .wait
ret
-.PushOAMEnd
+ENDL
+OAMDMACodeEnd: