mirror of
https://github.com/pret/poketcg.git
synced 2026-04-26 16:28:02 -05:00
Rename "Bank 20" section to "Load Gfx"
This commit is contained in:
parent
bdb0a2aef6
commit
9c8a79d13f
|
|
@ -1,3 +1,313 @@
|
||||||
|
; loads the BG map corresponding to wCurTilemap to SRAM
|
||||||
|
; bc = starting coordinates
|
||||||
|
LoadTilemap_ToSRAM:
|
||||||
|
ld a, TRUE
|
||||||
|
ld [wWriteBGMapToSRAM], a
|
||||||
|
jr LoadTilemap
|
||||||
|
|
||||||
|
; loads the BG map corresponding to wCurTilemap to VRAM
|
||||||
|
; bc = starting coordinates
|
||||||
|
LoadTilemap_ToVRAM:
|
||||||
|
xor a ; FALSE
|
||||||
|
ld [wWriteBGMapToSRAM], a
|
||||||
|
; fallthrough
|
||||||
|
|
||||||
|
; loads the BG map corresponding to wCurTilemap
|
||||||
|
; either loads them in VRAM or SRAM,
|
||||||
|
; depending on wWriteBGMapToSRAM
|
||||||
|
; bc = starting coordinates
|
||||||
|
LoadTilemap:
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
call BCCoordToBGMap0Address
|
||||||
|
ld hl, wVRAMPointer
|
||||||
|
ld [hl], e
|
||||||
|
inc hl
|
||||||
|
ld [hl], d
|
||||||
|
|
||||||
|
; get pointer and bank for BG Map
|
||||||
|
call Func_803b9
|
||||||
|
ld a, [wTempPointerBank]
|
||||||
|
ld [wBGMapBank], a
|
||||||
|
|
||||||
|
; store header data
|
||||||
|
ld de, wDecompressionBuffer
|
||||||
|
ld bc, $6 ; header + 1st instruction
|
||||||
|
call CopyBankedDataToDE
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wBGMapWidth], a
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wBGMapHeight], a
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wBGMapPermissionDataPtr], a
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wBGMapPermissionDataPtr + 1], a
|
||||||
|
ld a, [hli]
|
||||||
|
ld [wBGMapCGBMode], a
|
||||||
|
call .InitAndDecompressBGMap
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; prepares the pointers for decompressing BG Map
|
||||||
|
; and calls InitDataDecompression
|
||||||
|
; then decompresses the data
|
||||||
|
.InitAndDecompressBGMap
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
ld a, [wTempPointer]
|
||||||
|
add $5 ; header
|
||||||
|
ld e, a
|
||||||
|
ld a, [wTempPointer + 1]
|
||||||
|
adc 0
|
||||||
|
ld d, a
|
||||||
|
ld b, HIGH(wDecompressionSecondaryBuffer)
|
||||||
|
call InitDataDecompression
|
||||||
|
ld a, [wVRAMPointer]
|
||||||
|
ld e, a
|
||||||
|
ld a, [wVRAMPointer + 1]
|
||||||
|
ld d, a
|
||||||
|
call .Decompress
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; wTempBank:wTempPointer = source of compressed data
|
||||||
|
; wVRAMPointer = destination of decompressed data
|
||||||
|
.Decompress
|
||||||
|
; if wBGMapCGBMode is true, then use double wBGMapWidth
|
||||||
|
; since one "width" length goes to VRAM0
|
||||||
|
; and the other "width" length goes to VRAM1
|
||||||
|
push hl
|
||||||
|
ld hl, wDecompressionRowWidth
|
||||||
|
ld a, [wBGMapWidth]
|
||||||
|
ld [hl], a
|
||||||
|
ld a, [wBGMapCGBMode]
|
||||||
|
or a
|
||||||
|
jr z, .skip_doubling_width
|
||||||
|
sla [hl]
|
||||||
|
.skip_doubling_width
|
||||||
|
|
||||||
|
; clear wDecompressionBuffer
|
||||||
|
ld c, $40
|
||||||
|
ld hl, wDecompressionBuffer
|
||||||
|
xor a
|
||||||
|
.loop_clear
|
||||||
|
ld [hli], a
|
||||||
|
dec c
|
||||||
|
jr nz, .loop_clear
|
||||||
|
|
||||||
|
; loop each row, up to the number of tiles in height
|
||||||
|
ld a, [wBGMapHeight]
|
||||||
|
ld c, a
|
||||||
|
.loop
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
ld b, $00
|
||||||
|
ld a, [wDecompressionRowWidth]
|
||||||
|
ld c, a
|
||||||
|
ld de, wDecompressionBuffer
|
||||||
|
call DecompressDataFromBank
|
||||||
|
|
||||||
|
; copy to VRAM0
|
||||||
|
ld a, [wBGMapWidth]
|
||||||
|
ld b, a
|
||||||
|
pop de
|
||||||
|
push de
|
||||||
|
ld hl, wDecompressionBuffer
|
||||||
|
call CopyBGDataToVRAMOrSRAM
|
||||||
|
ld a, [wConsole]
|
||||||
|
cp CONSOLE_CGB
|
||||||
|
jr nz, .next_row
|
||||||
|
|
||||||
|
; cgb only
|
||||||
|
; copy the second "half" to VRAM1
|
||||||
|
call BankswitchVRAM1
|
||||||
|
ld a, [wBGMapWidth]
|
||||||
|
ld c, a
|
||||||
|
ld b, $0
|
||||||
|
ld hl, wDecompressionBuffer
|
||||||
|
add hl, bc
|
||||||
|
pop de
|
||||||
|
push de
|
||||||
|
ld a, [wBGMapWidth]
|
||||||
|
ld b, a
|
||||||
|
call Func_80148 ; adds some wd291 offset to tiles
|
||||||
|
call CopyBGDataToVRAMOrSRAM
|
||||||
|
call BankswitchVRAM0
|
||||||
|
|
||||||
|
.next_row
|
||||||
|
pop de
|
||||||
|
ld hl, TILEMAP_WIDTH
|
||||||
|
add hl, de
|
||||||
|
ld e, l
|
||||||
|
ld d, h
|
||||||
|
pop bc
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
Func_80148:
|
||||||
|
ld a, [wd291]
|
||||||
|
or a
|
||||||
|
ret z
|
||||||
|
ld a, [wBGMapCGBMode]
|
||||||
|
or a
|
||||||
|
jr z, .asm_80162
|
||||||
|
|
||||||
|
; add wd291 to b bytes in hl
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
.loop_1
|
||||||
|
push bc
|
||||||
|
ld a, [wd291]
|
||||||
|
add [hl]
|
||||||
|
ld [hli], a
|
||||||
|
pop bc
|
||||||
|
dec b
|
||||||
|
jr nz, .loop_1
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; store wd291 to b bytes in hl
|
||||||
|
.asm_80162
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ld a, [wd291]
|
||||||
|
.loop_2
|
||||||
|
ld [hli], a
|
||||||
|
dec b
|
||||||
|
jr nz, .loop_2
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; copies BG Map data pointed by hl
|
||||||
|
; to either VRAM or SRAM, depending on wWriteBGMapToSRAM
|
||||||
|
; de is the target address in VRAM,
|
||||||
|
; if SRAM is the target address to copy,
|
||||||
|
; copies data to sGfxBuffer0 or sGfxBuffer1
|
||||||
|
; for VRAM0 or VRAM1 respectively
|
||||||
|
CopyBGDataToVRAMOrSRAM:
|
||||||
|
ld a, [wWriteBGMapToSRAM]
|
||||||
|
or a
|
||||||
|
jp z, SafeCopyDataHLtoDE
|
||||||
|
|
||||||
|
; copies b bytes from hl to SRAM1
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
ldh a, [hBankSRAM]
|
||||||
|
push af
|
||||||
|
ld a, BANK("SRAM1")
|
||||||
|
call BankswitchSRAM
|
||||||
|
push hl
|
||||||
|
ld hl, sGfxBuffer0 - v0BGMap0
|
||||||
|
ldh a, [hBankVRAM]
|
||||||
|
or a
|
||||||
|
jr z, .got_pointer
|
||||||
|
ld hl, sGfxBuffer1 - v1BGMap0
|
||||||
|
.got_pointer
|
||||||
|
add hl, de
|
||||||
|
ld e, l
|
||||||
|
ld d, h
|
||||||
|
pop hl
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
dec b
|
||||||
|
jr nz, .loop
|
||||||
|
pop af
|
||||||
|
call BankswitchSRAM
|
||||||
|
call DisableSRAM
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; safely copies $20 bytes at a time
|
||||||
|
; sGfxBuffer0 -> v0BGMap0
|
||||||
|
; sGfxBuffer1 -> v0BGMap1 (if in CGB)
|
||||||
|
SafelyCopyBGMapFromSRAMToVRAM:
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
push de
|
||||||
|
ldh a, [hBankSRAM]
|
||||||
|
push af
|
||||||
|
ld a, BANK("SRAM1")
|
||||||
|
call BankswitchSRAM
|
||||||
|
ld hl, sGfxBuffer0
|
||||||
|
ld de, v0BGMap0
|
||||||
|
ld c, $20
|
||||||
|
.loop
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld b, $20
|
||||||
|
call SafeCopyDataHLtoDE
|
||||||
|
ld a, [wConsole]
|
||||||
|
cp CONSOLE_CGB
|
||||||
|
jr nz, .skip_vram1
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld bc, sGfxBuffer1 - sGfxBuffer0 ; $400
|
||||||
|
add hl, bc
|
||||||
|
call BankswitchVRAM1
|
||||||
|
ld b, $20
|
||||||
|
call SafeCopyDataHLtoDE
|
||||||
|
call BankswitchVRAM0
|
||||||
|
.skip_vram1
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
ld de, $20
|
||||||
|
add hl, de
|
||||||
|
ld e, l
|
||||||
|
ld d, h
|
||||||
|
pop hl
|
||||||
|
ld bc, $20
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
pop af
|
||||||
|
call BankswitchSRAM
|
||||||
|
call DisableSRAM
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
|
; clears sGfxBuffer0 and sGfxBuffer1
|
||||||
|
ClearSRAMBGMaps:
|
||||||
|
push hl
|
||||||
|
push bc
|
||||||
|
ldh a, [hBankSRAM]
|
||||||
|
push af
|
||||||
|
ld a, BANK(sGfxBuffer0) ; SRAM 1
|
||||||
|
call BankswitchSRAM
|
||||||
|
ld hl, sGfxBuffer0
|
||||||
|
ld bc, $800 ; sGfxBuffer0 + sGfxBuffer1
|
||||||
|
xor a
|
||||||
|
call FillMemoryWithA
|
||||||
|
pop af
|
||||||
|
call BankswitchSRAM
|
||||||
|
call DisableSRAM
|
||||||
|
pop bc
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
|
||||||
; l - GFXTABLE_* constant (banks 0,1,2,3,4)
|
; l - GFXTABLE_* constant (banks 0,1,2,3,4)
|
||||||
; a - map index (inside of the given bank)
|
; a - map index (inside of the given bank)
|
||||||
GetMapDataPointer:
|
GetMapDataPointer:
|
||||||
|
|
|
||||||
|
|
@ -1,309 +0,0 @@
|
||||||
; loads the BG map corresponding to wCurTilemap to SRAM
|
|
||||||
; bc = starting coordinates
|
|
||||||
LoadTilemap_ToSRAM:
|
|
||||||
ld a, TRUE
|
|
||||||
ld [wWriteBGMapToSRAM], a
|
|
||||||
jr LoadTilemap
|
|
||||||
|
|
||||||
; loads the BG map corresponding to wCurTilemap to VRAM
|
|
||||||
; bc = starting coordinates
|
|
||||||
LoadTilemap_ToVRAM:
|
|
||||||
xor a ; FALSE
|
|
||||||
ld [wWriteBGMapToSRAM], a
|
|
||||||
; fallthrough
|
|
||||||
|
|
||||||
; loads the BG map corresponding to wCurTilemap
|
|
||||||
; either loads them in VRAM or SRAM,
|
|
||||||
; depending on wWriteBGMapToSRAM
|
|
||||||
; bc = starting coordinates
|
|
||||||
LoadTilemap:
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
call BCCoordToBGMap0Address
|
|
||||||
ld hl, wVRAMPointer
|
|
||||||
ld [hl], e
|
|
||||||
inc hl
|
|
||||||
ld [hl], d
|
|
||||||
|
|
||||||
; get pointer and bank for BG Map
|
|
||||||
call Func_803b9
|
|
||||||
ld a, [wTempPointerBank]
|
|
||||||
ld [wBGMapBank], a
|
|
||||||
|
|
||||||
; store header data
|
|
||||||
ld de, wDecompressionBuffer
|
|
||||||
ld bc, $6 ; header + 1st instruction
|
|
||||||
call CopyBankedDataToDE
|
|
||||||
ld l, e
|
|
||||||
ld h, d
|
|
||||||
ld a, [hli]
|
|
||||||
ld [wBGMapWidth], a
|
|
||||||
ld a, [hli]
|
|
||||||
ld [wBGMapHeight], a
|
|
||||||
ld a, [hli]
|
|
||||||
ld [wBGMapPermissionDataPtr], a
|
|
||||||
ld a, [hli]
|
|
||||||
ld [wBGMapPermissionDataPtr + 1], a
|
|
||||||
ld a, [hli]
|
|
||||||
ld [wBGMapCGBMode], a
|
|
||||||
call .InitAndDecompressBGMap
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; prepares the pointers for decompressing BG Map
|
|
||||||
; and calls InitDataDecompression
|
|
||||||
; then decompresses the data
|
|
||||||
.InitAndDecompressBGMap
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
ld a, [wTempPointer]
|
|
||||||
add $5 ; header
|
|
||||||
ld e, a
|
|
||||||
ld a, [wTempPointer + 1]
|
|
||||||
adc 0
|
|
||||||
ld d, a
|
|
||||||
ld b, HIGH(wDecompressionSecondaryBuffer)
|
|
||||||
call InitDataDecompression
|
|
||||||
ld a, [wVRAMPointer]
|
|
||||||
ld e, a
|
|
||||||
ld a, [wVRAMPointer + 1]
|
|
||||||
ld d, a
|
|
||||||
call .Decompress
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; wTempBank:wTempPointer = source of compressed data
|
|
||||||
; wVRAMPointer = destination of decompressed data
|
|
||||||
.Decompress
|
|
||||||
; if wBGMapCGBMode is true, then use double wBGMapWidth
|
|
||||||
; since one "width" length goes to VRAM0
|
|
||||||
; and the other "width" length goes to VRAM1
|
|
||||||
push hl
|
|
||||||
ld hl, wDecompressionRowWidth
|
|
||||||
ld a, [wBGMapWidth]
|
|
||||||
ld [hl], a
|
|
||||||
ld a, [wBGMapCGBMode]
|
|
||||||
or a
|
|
||||||
jr z, .skip_doubling_width
|
|
||||||
sla [hl]
|
|
||||||
.skip_doubling_width
|
|
||||||
|
|
||||||
; clear wDecompressionBuffer
|
|
||||||
ld c, $40
|
|
||||||
ld hl, wDecompressionBuffer
|
|
||||||
xor a
|
|
||||||
.loop_clear
|
|
||||||
ld [hli], a
|
|
||||||
dec c
|
|
||||||
jr nz, .loop_clear
|
|
||||||
|
|
||||||
; loop each row, up to the number of tiles in height
|
|
||||||
ld a, [wBGMapHeight]
|
|
||||||
ld c, a
|
|
||||||
.loop
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
ld b, $00
|
|
||||||
ld a, [wDecompressionRowWidth]
|
|
||||||
ld c, a
|
|
||||||
ld de, wDecompressionBuffer
|
|
||||||
call DecompressDataFromBank
|
|
||||||
|
|
||||||
; copy to VRAM0
|
|
||||||
ld a, [wBGMapWidth]
|
|
||||||
ld b, a
|
|
||||||
pop de
|
|
||||||
push de
|
|
||||||
ld hl, wDecompressionBuffer
|
|
||||||
call CopyBGDataToVRAMOrSRAM
|
|
||||||
ld a, [wConsole]
|
|
||||||
cp CONSOLE_CGB
|
|
||||||
jr nz, .next_row
|
|
||||||
|
|
||||||
; cgb only
|
|
||||||
; copy the second "half" to VRAM1
|
|
||||||
call BankswitchVRAM1
|
|
||||||
ld a, [wBGMapWidth]
|
|
||||||
ld c, a
|
|
||||||
ld b, $0
|
|
||||||
ld hl, wDecompressionBuffer
|
|
||||||
add hl, bc
|
|
||||||
pop de
|
|
||||||
push de
|
|
||||||
ld a, [wBGMapWidth]
|
|
||||||
ld b, a
|
|
||||||
call Func_80148 ; adds some wd291 offset to tiles
|
|
||||||
call CopyBGDataToVRAMOrSRAM
|
|
||||||
call BankswitchVRAM0
|
|
||||||
|
|
||||||
.next_row
|
|
||||||
pop de
|
|
||||||
ld hl, TILEMAP_WIDTH
|
|
||||||
add hl, de
|
|
||||||
ld e, l
|
|
||||||
ld d, h
|
|
||||||
pop bc
|
|
||||||
dec c
|
|
||||||
jr nz, .loop
|
|
||||||
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
Func_80148:
|
|
||||||
ld a, [wd291]
|
|
||||||
or a
|
|
||||||
ret z
|
|
||||||
ld a, [wBGMapCGBMode]
|
|
||||||
or a
|
|
||||||
jr z, .asm_80162
|
|
||||||
|
|
||||||
; add wd291 to b bytes in hl
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
.loop_1
|
|
||||||
push bc
|
|
||||||
ld a, [wd291]
|
|
||||||
add [hl]
|
|
||||||
ld [hli], a
|
|
||||||
pop bc
|
|
||||||
dec b
|
|
||||||
jr nz, .loop_1
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; store wd291 to b bytes in hl
|
|
||||||
.asm_80162
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
ld a, [wd291]
|
|
||||||
.loop_2
|
|
||||||
ld [hli], a
|
|
||||||
dec b
|
|
||||||
jr nz, .loop_2
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; copies BG Map data pointed by hl
|
|
||||||
; to either VRAM or SRAM, depending on wWriteBGMapToSRAM
|
|
||||||
; de is the target address in VRAM,
|
|
||||||
; if SRAM is the target address to copy,
|
|
||||||
; copies data to sGfxBuffer0 or sGfxBuffer1
|
|
||||||
; for VRAM0 or VRAM1 respectively
|
|
||||||
CopyBGDataToVRAMOrSRAM:
|
|
||||||
ld a, [wWriteBGMapToSRAM]
|
|
||||||
or a
|
|
||||||
jp z, SafeCopyDataHLtoDE
|
|
||||||
|
|
||||||
; copies b bytes from hl to SRAM1
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
ldh a, [hBankSRAM]
|
|
||||||
push af
|
|
||||||
ld a, BANK("SRAM1")
|
|
||||||
call BankswitchSRAM
|
|
||||||
push hl
|
|
||||||
ld hl, sGfxBuffer0 - v0BGMap0
|
|
||||||
ldh a, [hBankVRAM]
|
|
||||||
or a
|
|
||||||
jr z, .got_pointer
|
|
||||||
ld hl, sGfxBuffer1 - v1BGMap0
|
|
||||||
.got_pointer
|
|
||||||
add hl, de
|
|
||||||
ld e, l
|
|
||||||
ld d, h
|
|
||||||
pop hl
|
|
||||||
.loop
|
|
||||||
ld a, [hli]
|
|
||||||
ld [de], a
|
|
||||||
inc de
|
|
||||||
dec b
|
|
||||||
jr nz, .loop
|
|
||||||
pop af
|
|
||||||
call BankswitchSRAM
|
|
||||||
call DisableSRAM
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; safely copies $20 bytes at a time
|
|
||||||
; sGfxBuffer0 -> v0BGMap0
|
|
||||||
; sGfxBuffer1 -> v0BGMap1 (if in CGB)
|
|
||||||
SafelyCopyBGMapFromSRAMToVRAM:
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
push de
|
|
||||||
ldh a, [hBankSRAM]
|
|
||||||
push af
|
|
||||||
ld a, BANK("SRAM1")
|
|
||||||
call BankswitchSRAM
|
|
||||||
ld hl, sGfxBuffer0
|
|
||||||
ld de, v0BGMap0
|
|
||||||
ld c, $20
|
|
||||||
.loop
|
|
||||||
push bc
|
|
||||||
push hl
|
|
||||||
push de
|
|
||||||
ld b, $20
|
|
||||||
call SafeCopyDataHLtoDE
|
|
||||||
ld a, [wConsole]
|
|
||||||
cp CONSOLE_CGB
|
|
||||||
jr nz, .skip_vram1
|
|
||||||
pop de
|
|
||||||
pop hl
|
|
||||||
push hl
|
|
||||||
push de
|
|
||||||
ld bc, sGfxBuffer1 - sGfxBuffer0 ; $400
|
|
||||||
add hl, bc
|
|
||||||
call BankswitchVRAM1
|
|
||||||
ld b, $20
|
|
||||||
call SafeCopyDataHLtoDE
|
|
||||||
call BankswitchVRAM0
|
|
||||||
.skip_vram1
|
|
||||||
|
|
||||||
pop hl
|
|
||||||
ld de, $20
|
|
||||||
add hl, de
|
|
||||||
ld e, l
|
|
||||||
ld d, h
|
|
||||||
pop hl
|
|
||||||
ld bc, $20
|
|
||||||
add hl, bc
|
|
||||||
pop bc
|
|
||||||
dec c
|
|
||||||
jr nz, .loop
|
|
||||||
pop af
|
|
||||||
call BankswitchSRAM
|
|
||||||
call DisableSRAM
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
||||||
; clears sGfxBuffer0 and sGfxBuffer1
|
|
||||||
ClearSRAMBGMaps:
|
|
||||||
push hl
|
|
||||||
push bc
|
|
||||||
ldh a, [hBankSRAM]
|
|
||||||
push af
|
|
||||||
ld a, BANK(sGfxBuffer0) ; SRAM 1
|
|
||||||
call BankswitchSRAM
|
|
||||||
ld hl, sGfxBuffer0
|
|
||||||
ld bc, $800 ; sGfxBuffer0 + sGfxBuffer1
|
|
||||||
xor a
|
|
||||||
call FillMemoryWithA
|
|
||||||
pop af
|
|
||||||
call BankswitchSRAM
|
|
||||||
call DisableSRAM
|
|
||||||
pop bc
|
|
||||||
pop hl
|
|
||||||
ret
|
|
||||||
|
|
@ -114,7 +114,7 @@ ROMX $1d
|
||||||
ROMX $1e
|
ROMX $1e
|
||||||
"Gfx 2"
|
"Gfx 2"
|
||||||
ROMX $20
|
ROMX $20
|
||||||
"Bank 20"
|
"Load Gfx"
|
||||||
"Gfx"
|
"Gfx"
|
||||||
ROMX $21
|
ROMX $21
|
||||||
"Gfx 3"
|
"Gfx 3"
|
||||||
|
|
|
||||||
|
|
@ -171,9 +171,8 @@ INCLUDE "data/cards.asm"
|
||||||
SECTION "SGB", ROMX
|
SECTION "SGB", ROMX
|
||||||
INCLUDE "engine/sgb.asm"
|
INCLUDE "engine/sgb.asm"
|
||||||
|
|
||||||
SECTION "Bank 20", ROMX
|
SECTION "Load Gfx", ROMX
|
||||||
INCLUDE "engine/overworld/load_overworld.asm"
|
INCLUDE "engine/overworld/load_overworld.asm"
|
||||||
INCLUDE "engine/gfx/load_tilemap.asm"
|
|
||||||
INCLUDE "engine/gfx/load_gfx.asm"
|
INCLUDE "engine/gfx/load_gfx.asm"
|
||||||
INCLUDE "engine/overworld/animation.asm"
|
INCLUDE "engine/overworld/animation.asm"
|
||||||
INCLUDE "engine/overworld/map_events.asm"
|
INCLUDE "engine/overworld/map_events.asm"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user