summaryrefslogtreecommitdiff
path: root/engine/gfx/load_push_oam.asm
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2020-07-22 09:11:19 -0400
committerGitHub <noreply@github.com>2020-07-22 09:11:19 -0400
commit1aea38fd3e660ed7eeb74be1a8ce5ca0ee512d6c (patch)
treec8131f981d29d8c9a7f1ec2feb86c023300dfe74 /engine/gfx/load_push_oam.asm
parentd96f914315c6ab82d30facbc4a5be1710f3c4a33 (diff)
parentbb25c1074c9926da7912b18c4cae309104671183 (diff)
Merge pull request #745 from Rangi42/master
Use LOAD/ENDL for OAM DMA code in HRAM (requires rgbds 0.4.1)
Diffstat (limited to 'engine/gfx/load_push_oam.asm')
-rw-r--r--engine/gfx/load_push_oam.asm23
1 files changed, 15 insertions, 8 deletions
diff --git a/engine/gfx/load_push_oam.asm b/engine/gfx/load_push_oam.asm
index 2e43c1ffe..395188817 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: