diff options
author | Astatin <[email protected]> | 2024-09-10 17:21:56 +0900 |
---|---|---|
committer | Astatin <astatin@redacted> | 2024-09-10 17:21:56 +0900 |
commit | 240deda011c7ad562507759c1839d8ece785de77 (patch) | |
tree | 1853df786794da9eb8c2b096b31147925c325989 /init.gbasm | |
parent | c3d302cd8332d55bb477b5e93ea0f6027d26c632 (diff) |
Use DMA OAM transfer to write entities to OAM
Diffstat (limited to 'init.gbasm')
-rw-r--r-- | init.gbasm | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -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: |