aboutsummaryrefslogtreecommitdiff
path: root/init.gbasm
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-09-10 17:21:56 +0900
committerAstatin <astatin@redacted>2024-09-10 17:21:56 +0900
commit240deda011c7ad562507759c1839d8ece785de77 (patch)
tree1853df786794da9eb8c2b096b31147925c325989 /init.gbasm
parentc3d302cd8332d55bb477b5e93ea0f6027d26c632 (diff)
Use DMA OAM transfer to write entities to OAM
Diffstat (limited to 'init.gbasm')
-rw-r--r--init.gbasm16
1 files changed, 16 insertions, 0 deletions
diff --git a/init.gbasm b/init.gbasm
index ec41320..8898848 100644
--- a/init.gbasm
+++ b/init.gbasm
@@ -60,4 +60,20 @@ Empty_VRAM: ; (Clear screen)
LD A, $01
LD $reg_interrupt_enable, A
+Copy_OAM_DMA_Transfer_Routine_To_HRAM:
+ LD HL, $OAM_DMA_Transfer_routine
+ LD DE, =OAM_DMA_Transfer_routine_src
+ LD BC, $000a
+ CALL =memcpy
+
JP =Entrypoint
+
+OAM_DMA_Transfer_routine_src:
+ LD A, $mem_oam_buffer_high
+ LD ($46), A
+ LD A, $28 ; delay for a total of 4×40 = 160 M-cycles
+ OAM_DMA_Transfer_routine_src.wait:
+ DEC A ; 1 M-cycle
+ JR NZ, =OAM_DMA_Transfer_routine_src.wait ; 3 M-cycles
+ RET
+ OAM_DMA_Transfer_routine_src.end: