diff options
Diffstat (limited to 'home/vcopy.asm')
-rw-r--r-- | home/vcopy.asm | 150 |
1 files changed, 75 insertions, 75 deletions
diff --git a/home/vcopy.asm b/home/vcopy.asm index bec679c4..9b6efb3a 100644 --- a/home/vcopy.asm +++ b/home/vcopy.asm @@ -40,19 +40,19 @@ ClearBgMap:: ; However, this function is also called repeatedly to redraw the whole screen ; when necessary. It is also used in trade animation and elevator code. RedrawRowOrColumn:: - ld a, [hRedrawRowOrColumnMode] + ldh a, [hRedrawRowOrColumnMode] and a ret z ld b, a xor a - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a dec b jr nz, .redrawRow .redrawColumn ld hl, wRedrawRowOrColumnSrcTiles - ld a, [hRedrawRowOrColumnDest] + ldh a, [hRedrawRowOrColumnDest] ld e, a - ld a, [hRedrawRowOrColumnDest + 1] + ldh a, [hRedrawRowOrColumnDest + 1] ld d, a ld c, SCREEN_HEIGHT .loop1 @@ -75,13 +75,13 @@ RedrawRowOrColumn:: dec c jr nz, .loop1 xor a - ld [hRedrawRowOrColumnMode], a + ldh [hRedrawRowOrColumnMode], a ret .redrawRow ld hl, wRedrawRowOrColumnSrcTiles - ld a, [hRedrawRowOrColumnDest] + ldh a, [hRedrawRowOrColumnDest] ld e, a - ld a, [hRedrawRowOrColumnDest + 1] + ldh a, [hRedrawRowOrColumnDest + 1] ld d, a push de call .DrawHalf ; draw upper half @@ -120,59 +120,59 @@ RedrawRowOrColumn:: ; the above function, RedrawRowOrColumn, is used when walking to ; improve efficiency. AutoBgMapTransfer:: - ld a, [H_AUTOBGTRANSFERENABLED] + ldh a, [hAutoBGTransferEnabled] and a ret z - ld [H_SPTEMP], sp ; save stack pointer - ld a, [H_AUTOBGTRANSFERPORTION] + ld [hSPTemp], sp ; save stack pointer + ldh a, [hAutoBGTransferPortion] and a jr z, .transferTopThird dec a jr z, .transferMiddleThird .transferBottomThird - coord hl, 0, 12 + hlcoord 0, 12 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld de, (12 * 32) add hl, de xor a ; TRANSFERTOP jr .doTransfer .transferTopThird - coord hl, 0, 0 + hlcoord 0, 0 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld a, TRANSFERMIDDLE jr .doTransfer .transferMiddleThird - coord hl, 0, 6 + hlcoord 0, 6 ld sp, hl - ld a, [H_AUTOBGTRANSFERDEST + 1] + ldh a, [hAutoBGTransferDest + 1] ld h, a - ld a, [H_AUTOBGTRANSFERDEST] + ldh a, [hAutoBGTransferDest] ld l, a ld de, (6 * 32) add hl, de ld a, TRANSFERBOTTOM .doTransfer - ld [H_AUTOBGTRANSFERPORTION], a ; store next portion + ldh [hAutoBGTransferPortion], a ; store next portion ld b, 6 TransferBgRows:: ; unrolled loop and using pop for speed - rept 20 / 2 - 1 + REPT 20 / 2 - 1 pop de ld [hl], e inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -188,68 +188,68 @@ TransferBgRows:: dec b jr nz, TransferBgRows - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl ret -; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST. -; If H_VBCOPYBGSRC is XX00, the transfer is disabled. +; Copies [hVBlankCopyBGNumRows] rows from hVBlankCopyBGSource to hVBlankCopyBGDest. +; If hVBlankCopyBGSource is XX00, the transfer is disabled. VBlankCopyBgMap:: - ld a, [H_VBCOPYBGSRC] ; doubles as enabling byte + ldh a, [hVBlankCopyBGSource] ; doubles as enabling byte and a ret z - ld [H_SPTEMP], sp ; save stack pointer - ld a, [H_VBCOPYBGSRC] + ld [hSPTemp], sp ; save stack pointer + ldh a, [hVBlankCopyBGSource] ld l, a - ld a, [H_VBCOPYBGSRC + 1] + ldh a, [hVBlankCopyBGSource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYBGDEST] + ldh a, [hVBlankCopyBGDest] ld l, a - ld a, [H_VBCOPYBGDEST + 1] + ldh a, [hVBlankCopyBGDest + 1] ld h, a - ld a, [H_VBCOPYBGNUMROWS] + ldh a, [hVBlankCopyBGNumRows] ld b, a xor a - ld [H_VBCOPYBGSRC], a ; disable transfer so it doesn't continue next V-blank + ldh [hVBlankCopyBGSource], a ; disable transfer so it doesn't continue next V-blank jr TransferBgRows VBlankCopyDouble:: -; Copy [H_VBCOPYDOUBLESIZE] 1bpp tiles -; from H_VBCOPYDOUBLESRC to H_VBCOPYDOUBLEDEST. +; Copy [hVBlankCopyDoubleSize] 1bpp tiles +; from hVBlankCopyDoubleSource to hVBlankCopyDoubleDest. ; While we're here, convert to 2bpp. ; The process is straightforward: ; copy each byte twice. - ld a, [H_VBCOPYDOUBLESIZE] + ldh a, [hVBlankCopyDoubleSize] and a ret z - ld [H_SPTEMP], sp ; save stack pointer + ld [hSPTemp], sp ; save stack pointer - ld a, [H_VBCOPYDOUBLESRC] + ldh a, [hVBlankCopyDoubleSource] ld l, a - ld a, [H_VBCOPYDOUBLESRC + 1] + ldh a, [hVBlankCopyDoubleSource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYDOUBLEDEST] + ldh a, [hVBlankCopyDoubleDest] ld l, a - ld a, [H_VBCOPYDOUBLEDEST + 1] + ldh a, [hVBlankCopyDoubleDest + 1] ld h, a - ld a, [H_VBCOPYDOUBLESIZE] + ldh a, [hVBlankCopyDoubleSize] ld b, a xor a ; transferred - ld [H_VBCOPYDOUBLESIZE], a + ldh [hVBlankCopyDoubleSize], a .loop - rept 3 + REPT 3 pop de ld [hl], e inc l @@ -259,7 +259,7 @@ VBlankCopyDouble:: inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -273,13 +273,13 @@ VBlankCopyDouble:: dec b jr nz, .loop - ld [H_VBCOPYDOUBLESRC], sp + ld [hVBlankCopyDoubleSource], sp ld sp, hl ; load destination into sp to save time with ld [$xxxx], sp - ld [H_VBCOPYDOUBLEDEST], sp + ld [hVBlankCopyDoubleDest], sp - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl @@ -287,42 +287,42 @@ VBlankCopyDouble:: VBlankCopy:: -; Copy [H_VBCOPYSIZE] 2bpp tiles (or 16 * [H_VBCOPYSIZE] tile map entries) -; from H_VBCOPYSRC to H_VBCOPYDEST. +; Copy [hVBlankCopySize] 2bpp tiles (or 16 * [hVBlankCopySize] tile map entries) +; from hVBlankCopySource to hVBlankCopyDest. ; Source and destination addresses are updated, ; so transfer can continue in subsequent calls. - ld a, [H_VBCOPYSIZE] + ldh a, [hVBlankCopySize] and a ret z - ld [H_SPTEMP], sp + ld [hSPTemp], sp - ld a, [H_VBCOPYSRC] + ldh a, [hVBlankCopySource] ld l, a - ld a, [H_VBCOPYSRC + 1] + ldh a, [hVBlankCopySource + 1] ld h, a ld sp, hl - ld a, [H_VBCOPYDEST] + ldh a, [hVBlankCopyDest] ld l, a - ld a, [H_VBCOPYDEST + 1] + ldh a, [hVBlankCopyDest + 1] ld h, a - ld a, [H_VBCOPYSIZE] + ldh a, [hVBlankCopySize] ld b, a xor a ; transferred - ld [H_VBCOPYSIZE], a + ldh [hVBlankCopySize], a .loop - rept 7 + REPT 7 pop de ld [hl], e inc l ld [hl], d inc l - endr + ENDR pop de ld [hl], e @@ -332,13 +332,13 @@ VBlankCopy:: dec b jr nz, .loop - ld [H_VBCOPYSRC], sp + ld [hVBlankCopySource], sp ld sp, hl - ld [H_VBCOPYDEST], sp + ld [hVBlankCopyDest], sp - ld a, [H_SPTEMP] + ldh a, [hSPTemp] ld l, a - ld a, [H_SPTEMP + 1] + ldh a, [hSPTemp + 1] ld h, a ld sp, hl @@ -349,17 +349,17 @@ UpdateMovingBgTiles:: ; Animate water and flower ; tiles in the overworld. - ld a, [hTilesetType] + ldh a, [hTilesetType] and a ret z ; no animations if indoors (or if a menu set this to 0) - ld a,[rLY] + ldh a, [rLY] cp $90 ; check if not in vblank period??? (maybe if vblank is too long) ret c - ld a, [hMovingBGTilesCounter1] + ldh a, [hMovingBGTilesCounter1] inc a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a cp 20 ret c cp 21 @@ -367,7 +367,7 @@ UpdateMovingBgTiles:: ; water - ld hl, vTileset + $14 * $10 + ld hl, vTileset tile $14 ld c, $10 ld a, [wMovingBGTilesCounter2] @@ -391,17 +391,17 @@ UpdateMovingBgTiles:: dec c jr nz, .left .done - ld a, [hTilesetType] + ldh a, [hTilesetType] rrca ret nc ; if in a cave, no flower animations xor a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a ret .flower xor a - ld [hMovingBGTilesCounter1], a + ldh [hMovingBGTilesCounter1], a ld a, [wMovingBGTilesCounter2] and 3 @@ -412,7 +412,7 @@ UpdateMovingBgTiles:: jr z, .copy ld hl, FlowerTile3 .copy - ld de, vTileset + $3 * $10 + ld de, vTileset tile $03 ld c, $10 .loop ld a, [hli] |