diff options
Diffstat (limited to 'engine/gfx/dma_transfer.asm')
-rw-r--r-- | engine/gfx/dma_transfer.asm | 166 |
1 files changed, 83 insertions, 83 deletions
diff --git a/engine/gfx/dma_transfer.asm b/engine/gfx/dma_transfer.asm index 241649dc5..5c84a23ca 100644 --- a/engine/gfx/dma_transfer.asm +++ b/engine/gfx/dma_transfer.asm @@ -10,11 +10,11 @@ HDMATransferAttrMapAndTileMapToWRAMBank3:: ld hl, wScratchTileMap call PadTilemapForHDMATransfer ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransferToWRAMBank3 ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransferToWRAMBank3 ret @@ -28,7 +28,7 @@ HDMATransferTileMapToWRAMBank3:: ld hl, wScratchTileMap call PadTilemapForHDMATransfer ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransferToWRAMBank3 ret @@ -42,7 +42,7 @@ HDMATransferAttrMapToWRAMBank3: ld hl, wScratchAttrMap call PadAttrMapForHDMATransfer ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransferToWRAMBank3 ret @@ -61,18 +61,18 @@ ReloadMapPart:: call DelayFrame di - ld a, [rVBK] + ldh a, [rVBK] push af ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransfer_Wait127Scanlines_toBGMap ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransfer_Wait127Scanlines_toBGMap pop af - ld [rVBK], a + ldh [rVBK], a ei ret @@ -92,18 +92,18 @@ Mobile_ReloadMapPart: call DelayFrame di - ld a, [rVBK] + ldh a, [rVBK] push af ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransfer_NoDI ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransfer_NoDI pop af - ld [rVBK], a + ldh [rVBK], a ei ret @@ -114,20 +114,20 @@ Mobile_ReloadMapPart: .unreferenced_1040da ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld a, BANK(w3_d800) - ld [rSVBK], a + ldh [rSVBK], a ld de, w3_d800 - ld a, [hBGMapAddress + 1] - ld [rHDMA1], a - ld a, [hBGMapAddress] - ld [rHDMA2], a + ldh a, [hBGMapAddress + 1] + ldh [rHDMA1], a + ldh a, [hBGMapAddress] + ldh [rHDMA2], a ld a, d - ld [rHDMA3], a + ldh [rHDMA3], a ld a, e - ld [rHDMA4], a + ldh [rHDMA4], a ld a, $23 - ld [hDMATransfer], a + ldh [hDMATransfer], a call WaitDMATransfer ret @@ -137,9 +137,9 @@ Mobile_ReloadMapPart: .unreferenced_104101 ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld a, BANK(w3_d800) - ld [rSVBK], a + ldh [rSVBK], a ld hl, w3_d800 call HDMATransferToWRAMBank3 ret @@ -162,18 +162,18 @@ OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: call DelayFrame di - ld a, [rVBK] + ldh a, [rVBK] push af ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransfer_Wait123Scanlines_toBGMap ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransfer_Wait123Scanlines_toBGMap pop af - ld [rVBK], a + ldh [rVBK], a ei ret @@ -194,40 +194,40 @@ Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: call PadMapForHDMATransfer ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchAttrMap call HDMATransfer_Wait127Scanlines_toBGMap ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld hl, wScratchTileMap call HDMATransfer_Wait127Scanlines_toBGMap ret CallInSafeGFXMode: - ld a, [hBGMapMode] + ldh a, [hBGMapMode] push af - ld a, [hMapAnims] + ldh a, [hMapAnims] push af xor a - ld [hBGMapMode], a - ld [hMapAnims], a - ld a, [rSVBK] + ldh [hBGMapMode], a + ldh [hMapAnims], a + ldh a, [rSVBK] push af ld a, BANK(wScratchTileMap) - ld [rSVBK], a - ld a, [rVBK] + ldh [rSVBK], a + ldh a, [rVBK] push af call ._hl_ pop af - ld [rVBK], a + ldh [rVBK], a pop af - ld [rSVBK], a + ldh [rSVBK], a pop af - ld [hMapAnims], a + ldh [hMapAnims], a pop af - ld [hBGMapMode], a + ldh [hBGMapMode], a ret ._hl_ @@ -236,12 +236,12 @@ CallInSafeGFXMode: HDMATransferToWRAMBank3: call _LoadHDMAParameters ld a, $23 - ld [hDMATransfer], a + ldh [hDMATransfer], a WaitDMATransfer: .loop call DelayFrame - ld a, [hDMATransfer] + ldh a, [hDMATransfer] and a jr nz, .loop ret @@ -250,9 +250,9 @@ HDMATransfer_Wait127Scanlines_toBGMap: ; HDMA transfer from hl to [hBGMapAddress] ; hBGMapAddress -> de ; 2 * SCREEN_HEIGHT -> c - ld a, [hBGMapAddress + 1] + ldh a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] + ldh a, [hBGMapAddress] ld e, a ld c, 2 * SCREEN_HEIGHT jr HDMATransfer_Wait127Scanlines @@ -262,9 +262,9 @@ HDMATransfer_Wait123Scanlines_toBGMap: ; hBGMapAddress -> de ; 2 * SCREEN_HEIGHT -> c ; $7b --> b - ld a, [hBGMapAddress + 1] + ldh a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] + ldh a, [hBGMapAddress] ld e, a ld c, 2 * SCREEN_HEIGHT jr HDMATransfer_Wait123Scanlines @@ -273,25 +273,25 @@ HDMATransfer_NoDI: ; HDMA transfer from hl to [hBGMapAddress] ; [hBGMapAddress] --> de ; 2 * SCREEN_HEIGHT --> c - ld a, [hBGMapAddress + 1] + ldh a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] + ldh a, [hBGMapAddress] ld e, a ld c, 2 * SCREEN_HEIGHT ; [rHDMA1, rHDMA2] = hl & $fff0 ld a, h - ld [rHDMA1], a + ldh [rHDMA1], a ld a, l and $f0 - ld [rHDMA2], a + ldh [rHDMA2], a ; [rHDMA3, rHDMA4] = de & $1ff0 ld a, d and $1f - ld [rHDMA3], a + ldh [rHDMA3], a ld a, e and $f0 - ld [rHDMA4], a + ldh [rHDMA4], a ; b = c | %10000000 ld a, c dec c @@ -303,19 +303,19 @@ HDMATransfer_NoDI: ld d, a ; while [rLY] >= d: pass .loop1 - ld a, [rLY] + ldh a, [rLY] cp d jr nc, .loop1 ; while not [rSTAT] & 3: pass .loop2 - ld a, [rSTAT] + ldh a, [rSTAT] and $3 jr z, .loop2 ; load the 5th byte of HDMA ld a, b - ld [rHDMA5], a + ldh [rHDMA5], a ; wait until rLY advances (c + 1) times - ld a, [rLY] + ldh a, [rLY] inc c ld hl, rLY .loop3 @@ -338,17 +338,17 @@ _continue_HDMATransfer: ; a lot of waiting around for hardware registers ; [rHDMA1, rHDMA2] = hl & $fff0 ld a, h - ld [rHDMA1], a + ldh [rHDMA1], a ld a, l and $f0 ; high nybble - ld [rHDMA2], a + ldh [rHDMA2], a ; [rHDMA3, rHDMA4] = de & $1ff0 ld a, d and $1f ; lower 5 bits - ld [rHDMA3], a + ldh [rHDMA3], a ld a, e and $f0 ; high nybble - ld [rHDMA4], a + ldh [rHDMA4], a ; e = c | %10000000 ld a, c dec c @@ -360,26 +360,26 @@ _continue_HDMATransfer: ld d, a ; while [rLY] >= d: pass .ly_loop - ld a, [rLY] + ldh a, [rLY] cp d jr nc, .ly_loop di ; while [rSTAT] & 3: pass .rstat_loop_1 - ld a, [rSTAT] + ldh a, [rSTAT] and $3 jr nz, .rstat_loop_1 ; while not [rSTAT] & 3: pass .rstat_loop_2 - ld a, [rSTAT] + ldh a, [rSTAT] and $3 jr z, .rstat_loop_2 ; load the 5th byte of HDMA ld a, e - ld [rHDMA5], a + ldh [rHDMA5], a ; wait until rLY advances (c + 1) times - ld a, [rLY] + ldh a, [rLY] inc c ld hl, rLY .final_ly_loop @@ -396,14 +396,14 @@ _continue_HDMATransfer: _LoadHDMAParameters: ld a, h - ld [rHDMA1], a + ldh [rHDMA1], a ld a, l - ld [rHDMA2], a - ld a, [hBGMapAddress + 1] + ldh [rHDMA2], a + ldh a, [hBGMapAddress + 1] and $1f - ld [rHDMA3], a - ld a, [hBGMapAddress] - ld [rHDMA4], a + ldh [rHDMA3], a + ldh a, [hBGMapAddress] + ldh [rHDMA4], a ret PadTilemapForHDMATransfer: @@ -416,10 +416,10 @@ PadAttrMapForHDMATransfer: PadMapForHDMATransfer: ; pad a 20x18 map to 32x18 for HDMA transfer ; back up the padding value in c to hMapObjectIndexBuffer - ld a, [hMapObjectIndexBuffer] + ldh a, [hMapObjectIndexBuffer] push af ld a, c - ld [hMapObjectIndexBuffer], a + ldh [hMapObjectIndexBuffer], a ; for each row on the screen ld c, SCREEN_HEIGHT @@ -435,7 +435,7 @@ PadMapForHDMATransfer: jr nz, .loop2 ; load the original padding value of c into hl for 32 - 20 = 12 rows - ld a, [hMapObjectIndexBuffer] + ldh a, [hMapObjectIndexBuffer] ld b, BG_MAP_WIDTH - SCREEN_WIDTH .loop3 ld [hli], a @@ -447,16 +447,16 @@ PadMapForHDMATransfer: ; restore the original value of hMapObjectIndexBuffer pop af - ld [hMapObjectIndexBuffer], a + ldh [hMapObjectIndexBuffer], a ret _Get2bpp:: ; 2bpp when [rLCDC] & $80 ; switch to WRAM bank 6 - ld a, [rSVBK] + ldh a, [rSVBK] push af ld a, BANK(wScratchTileMap) - ld [rSVBK], a + ldh [rSVBK], a push bc push hl @@ -491,7 +491,7 @@ _Get2bpp:: ; restore the previous bank pop af - ld [rSVBK], a + ldh [rSVBK], a ret _Get1bpp:: @@ -521,10 +521,10 @@ _Get1bpp:: jr .loop .bankswitch - ld a, [rSVBK] + ldh a, [rSVBK] push af ld a, BANK(wScratchTileMap) - ld [rSVBK], a + ldh [rSVBK], a push bc push hl @@ -555,7 +555,7 @@ _Get1bpp:: call HDMATransfer_Wait127Scanlines pop af - ld [rSVBK], a + ldh [rSVBK], a ret HDMATransfer_OnlyTopFourRows: @@ -570,13 +570,13 @@ HDMATransfer_OnlyTopFourRows: decoord 0, 0, wAttrMap call .Copy ld a, $1 - ld [rVBK], a + ldh [rVBK], a ld c, $8 ld hl, wScratchTileMap + $80 debgcoord 0, 0, vBGMap1 call HDMATransfer_Wait127Scanlines ld a, $0 - ld [rVBK], a + ldh [rVBK], a ld c, $8 ld hl, wScratchTileMap debgcoord 0, 0, vBGMap1 |