From 240deda011c7ad562507759c1839d8ece785de77 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 10 Sep 2024 17:21:56 +0900 Subject: Use DMA OAM transfer to write entities to OAM --- init.gbasm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'init.gbasm') 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: -- cgit v1.2.3-70-g09d2