2013-09-03 22:32:55 +00:00
|
|
|
; Functions dealing with VRAM.
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
DMATransfer::
|
2013-09-03 22:32:55 +00:00
|
|
|
; Return carry if the transfer is completed.
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hDMATransfer]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
|
|
|
; Start transfer
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rHDMA5], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
; Execution is halted until the transfer is complete.
|
|
|
|
|
|
|
|
xor a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hDMATransfer], a
|
2013-09-03 22:32:55 +00:00
|
|
|
scf
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
UpdateBGMapBuffer::
|
2018-01-23 22:39:09 +00:00
|
|
|
; Copy [hBGMapTileCount] 16x8 tiles from wBGMapBuffer
|
2020-12-23 21:29:30 +00:00
|
|
|
; to bg map addresses in wBGMapBufferPointers.
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-01-19 19:49:43 +00:00
|
|
|
; [hBGMapTileCount] must be even since this is done in pairs.
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
; Return carry on success.
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapUpdate]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rVBK]
|
2013-09-03 22:32:55 +00:00
|
|
|
push af
|
|
|
|
|
2020-12-23 21:29:30 +00:00
|
|
|
; Relocate the stack pointer to wBGMapBufferPointers
|
2020-06-16 19:49:32 +00:00
|
|
|
ld [hSPBuffer], sp
|
2020-12-23 21:29:30 +00:00
|
|
|
ld hl, wBGMapBufferPointers
|
2013-09-03 22:32:55 +00:00
|
|
|
ld sp, hl
|
|
|
|
|
|
|
|
; We can now pop the addresses of affected spots on the BG Map
|
|
|
|
|
2018-01-23 22:39:09 +00:00
|
|
|
ld hl, wBGMapPalBuffer
|
|
|
|
ld de, wBGMapBuffer
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
.next
|
|
|
|
; Copy a pair of 16x8 blocks (one 16x16 block)
|
|
|
|
|
|
|
|
rept 2
|
|
|
|
; Get our BG Map address
|
|
|
|
pop bc
|
|
|
|
|
|
|
|
; Palettes
|
|
|
|
ld a, 1
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
ld a, [hli]
|
|
|
|
ld [bc], a
|
|
|
|
inc c
|
|
|
|
ld a, [hli]
|
|
|
|
ld [bc], a
|
|
|
|
dec c
|
|
|
|
|
|
|
|
; Tiles
|
|
|
|
ld a, 0
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
ld a, [de]
|
|
|
|
inc de
|
|
|
|
ld [bc], a
|
|
|
|
inc c
|
|
|
|
ld a, [de]
|
|
|
|
inc de
|
|
|
|
ld [bc], a
|
|
|
|
endr
|
|
|
|
|
|
|
|
; We've done 2 16x8 blocks
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapTileCount]
|
2013-09-03 22:32:55 +00:00
|
|
|
dec a
|
2015-12-27 02:59:03 +00:00
|
|
|
dec a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapTileCount], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
jr nz, .next
|
|
|
|
|
2020-06-16 19:49:32 +00:00
|
|
|
; Restore the stack pointer
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
|
|
|
ld sp, hl
|
|
|
|
|
|
|
|
pop af
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
xor a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapUpdate], a
|
2013-09-03 22:32:55 +00:00
|
|
|
scf
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
WaitTop::
|
2013-09-03 22:32:55 +00:00
|
|
|
; Wait until the top third of the BG Map is being updated.
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapMode]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapThird]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
jr z, .done
|
|
|
|
|
|
|
|
call DelayFrame
|
|
|
|
jr WaitTop
|
|
|
|
|
|
|
|
.done
|
|
|
|
xor a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapMode], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
UpdateBGMap::
|
2020-02-13 17:30:13 +00:00
|
|
|
; Update the BG Map, in thirds, from wTilemap and wAttrmap.
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapMode]
|
2020-05-20 00:00:58 +00:00
|
|
|
and a ; 0
|
2013-09-03 22:32:55 +00:00
|
|
|
ret z
|
|
|
|
|
|
|
|
; BG Map 0
|
|
|
|
dec a ; 1
|
|
|
|
jr z, .Tiles
|
|
|
|
dec a ; 2
|
|
|
|
jr z, .Attr
|
|
|
|
|
|
|
|
; BG Map 1
|
2020-05-20 00:00:58 +00:00
|
|
|
dec a ; useless
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
|
|
|
push hl
|
|
|
|
|
2017-12-28 12:32:33 +00:00
|
|
|
xor a ; LOW(vBGMap1)
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapAddress], a
|
2017-12-28 12:32:33 +00:00
|
|
|
ld a, HIGH(vBGMap1)
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapAddress + 1], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapMode]
|
2013-09-03 22:32:55 +00:00
|
|
|
push af
|
|
|
|
cp 3
|
|
|
|
call z, .Tiles
|
|
|
|
pop af
|
|
|
|
cp 4
|
|
|
|
call z, .Attr
|
|
|
|
|
|
|
|
pop hl
|
|
|
|
ld a, l
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapAddress], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, h
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapAddress + 1], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ret
|
|
|
|
|
2016-04-10 18:42:14 +00:00
|
|
|
.Attr:
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, 1
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2020-02-13 17:30:13 +00:00
|
|
|
hlcoord 0, 0, wAttrmap
|
2013-09-03 22:32:55 +00:00
|
|
|
call .update
|
|
|
|
|
|
|
|
ld a, 0
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ret
|
|
|
|
|
2016-04-10 18:42:14 +00:00
|
|
|
.Tiles:
|
2015-07-22 19:57:02 +00:00
|
|
|
hlcoord 0, 0
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
.update
|
|
|
|
ld [hSPBuffer], sp
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; Which third?
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapThird]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a ; 0
|
|
|
|
jr z, .top
|
|
|
|
dec a ; 1
|
|
|
|
jr z, .middle
|
|
|
|
; 2
|
|
|
|
|
2022-06-06 21:25:42 +00:00
|
|
|
DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2020-10-26 19:45:57 +00:00
|
|
|
; bottom
|
2013-09-03 22:32:55 +00:00
|
|
|
ld de, 2 * THIRD_HEIGHT * SCREEN_WIDTH
|
|
|
|
add hl, de
|
|
|
|
ld sp, hl
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
|
|
|
|
|
|
|
ld de, 2 * THIRD_HEIGHT * BG_MAP_WIDTH
|
|
|
|
add hl, de
|
|
|
|
|
|
|
|
; Next time: top third
|
|
|
|
xor a
|
|
|
|
jr .start
|
|
|
|
|
|
|
|
.middle
|
|
|
|
ld de, THIRD_HEIGHT * SCREEN_WIDTH
|
|
|
|
add hl, de
|
|
|
|
ld sp, hl
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
|
|
|
|
|
|
|
ld de, THIRD_HEIGHT * BG_MAP_WIDTH
|
|
|
|
add hl, de
|
|
|
|
|
|
|
|
; Next time: bottom third
|
|
|
|
ld a, 2
|
|
|
|
jr .start
|
|
|
|
|
|
|
|
.top
|
|
|
|
ld sp, hl
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hBGMapAddress]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
|
|
|
|
|
|
|
; Next time: middle third
|
|
|
|
ld a, 1
|
|
|
|
|
|
|
|
.start
|
|
|
|
; Which third to update next time
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [hBGMapThird], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
; Rows of tiles in a third
|
2020-05-20 00:00:58 +00:00
|
|
|
ld a, THIRD_HEIGHT
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2020-02-13 17:30:13 +00:00
|
|
|
; Discrepancy between wTilemap and BGMap
|
2013-09-03 22:32:55 +00:00
|
|
|
ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1)
|
|
|
|
|
|
|
|
.row
|
|
|
|
; Copy a row of 20 tiles
|
|
|
|
rept SCREEN_WIDTH / 2 - 1
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
inc l
|
|
|
|
endr
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
|
|
|
|
add hl, bc
|
|
|
|
dec a
|
|
|
|
jr nz, .row
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
|
|
|
ld sp, hl
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
Serve1bppRequest::
|
2013-09-03 22:32:55 +00:00
|
|
|
; Only call during the first fifth of VBlank
|
|
|
|
|
2020-10-26 19:45:57 +00:00
|
|
|
ld a, [wRequested1bppSize]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
|
|
|
; Back out if we're too far into VBlank
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rLY]
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK
|
2013-09-03 22:32:55 +00:00
|
|
|
ret c
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK + 2
|
2013-09-03 22:32:55 +00:00
|
|
|
ret nc
|
|
|
|
|
2020-10-26 19:45:57 +00:00
|
|
|
; Copy [wRequested1bppSize] 1bpp tiles from [wRequested1bppSource] to [wRequested1bppDest]
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
ld [hSPBuffer], sp
|
|
|
|
|
|
|
|
; Source
|
2018-01-23 22:39:09 +00:00
|
|
|
ld hl, wRequested1bppSource
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
|
|
|
ld sp, hl
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; Destination
|
2018-01-23 22:39:09 +00:00
|
|
|
ld hl, wRequested1bppDest
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; # tiles to copy
|
2020-10-26 19:45:57 +00:00
|
|
|
ld a, [wRequested1bppSize]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld b, a
|
|
|
|
|
|
|
|
xor a
|
2020-10-26 19:45:57 +00:00
|
|
|
ld [wRequested1bppSize], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
.next
|
|
|
|
|
|
|
|
rept 3
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
inc l
|
|
|
|
endr
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
|
|
|
|
inc hl
|
|
|
|
dec b
|
|
|
|
jr nz, .next
|
|
|
|
|
|
|
|
ld a, l
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested1bppDest], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, h
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested1bppDest + 1], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested1bppSource], sp
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
|
|
|
ld sp, hl
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
Serve2bppRequest::
|
2013-09-03 22:32:55 +00:00
|
|
|
; Only call during the first fifth of VBlank
|
|
|
|
|
2020-10-26 19:45:57 +00:00
|
|
|
ld a, [wRequested2bppSize]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
|
|
|
; Back out if we're too far into VBlank
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rLY]
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK
|
2013-09-03 22:32:55 +00:00
|
|
|
ret c
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK + 2
|
2013-09-03 22:32:55 +00:00
|
|
|
ret nc
|
|
|
|
jr _Serve2bppRequest
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
Serve2bppRequest_VBlank::
|
2020-10-26 19:45:57 +00:00
|
|
|
ld a, [wRequested2bppSize]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
_Serve2bppRequest::
|
2020-10-26 19:45:57 +00:00
|
|
|
; Copy [wRequested2bppSize] 2bpp tiles from [wRequested2bppSource] to [wRequested2bppDest]
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
ld [hSPBuffer], sp
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; Source
|
2018-01-23 22:39:09 +00:00
|
|
|
ld hl, wRequested2bppSource
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
|
|
|
ld sp, hl
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; Destination
|
2018-01-23 22:39:09 +00:00
|
|
|
ld hl, wRequested2bppDest
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, [hli]
|
|
|
|
ld h, [hl]
|
|
|
|
ld l, a
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; # tiles to copy
|
2020-10-26 19:45:57 +00:00
|
|
|
ld a, [wRequested2bppSize]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld b, a
|
|
|
|
|
|
|
|
xor a
|
2020-10-26 19:45:57 +00:00
|
|
|
ld [wRequested2bppSize], a
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
.next
|
|
|
|
|
|
|
|
rept 7
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
inc l
|
|
|
|
endr
|
|
|
|
pop de
|
|
|
|
ld [hl], e
|
|
|
|
inc l
|
|
|
|
ld [hl], d
|
|
|
|
|
|
|
|
inc hl
|
|
|
|
dec b
|
|
|
|
jr nz, .next
|
|
|
|
|
|
|
|
ld a, l
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested2bppDest], a
|
2013-09-03 22:32:55 +00:00
|
|
|
ld a, h
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested2bppDest + 1], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-01-23 22:39:09 +00:00
|
|
|
ld [wRequested2bppSource], sp
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld l, a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hSPBuffer + 1]
|
2013-09-03 22:32:55 +00:00
|
|
|
ld h, a
|
|
|
|
ld sp, hl
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
AnimateTileset::
|
2013-09-03 22:32:55 +00:00
|
|
|
; Only call during the first fifth of VBlank
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hMapAnims]
|
2013-09-03 22:32:55 +00:00
|
|
|
and a
|
|
|
|
ret z
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-03 22:32:55 +00:00
|
|
|
; Back out if we're too far into VBlank
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rLY]
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK
|
2013-09-03 22:32:55 +00:00
|
|
|
ret c
|
2017-12-29 17:53:21 +00:00
|
|
|
cp LY_VBLANK + 7
|
2013-09-03 22:32:55 +00:00
|
|
|
ret nc
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hROMBank]
|
2013-09-03 22:32:55 +00:00
|
|
|
push af
|
|
|
|
ld a, BANK(_AnimateTileset)
|
|
|
|
rst Bankswitch
|
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rSVBK]
|
2013-09-03 22:32:55 +00:00
|
|
|
push af
|
2018-01-23 22:39:09 +00:00
|
|
|
ld a, BANK(wTilesetAnim)
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rSVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [rVBK]
|
2013-09-03 22:32:55 +00:00
|
|
|
push af
|
|
|
|
ld a, 0
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
|
|
|
|
call _AnimateTileset
|
|
|
|
|
|
|
|
pop af
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
pop af
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh [rSVBK], a
|
2013-09-03 22:32:55 +00:00
|
|
|
pop af
|
|
|
|
rst Bankswitch
|
|
|
|
ret
|