Replace hardware_constants.asm with the community-standard hardware.inc 5.0 (#1186)
This commit is contained in:
@@ -10,13 +10,13 @@ InitSound::
|
||||
push af
|
||||
ld a, BANK(_InitSound)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
call _InitSound
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
pop af
|
||||
pop bc
|
||||
@@ -34,13 +34,13 @@ UpdateSound::
|
||||
push af
|
||||
ld a, BANK(_UpdateSound)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
call _UpdateSound
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
pop af
|
||||
pop bc
|
||||
@@ -51,14 +51,14 @@ UpdateSound::
|
||||
_LoadMusicByte::
|
||||
; [wCurMusicByte] = [a:de]
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
ld a, [de]
|
||||
ld [wCurMusicByte], a
|
||||
ld a, BANK(LoadMusicByte)
|
||||
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
ret
|
||||
|
||||
PlayMusic::
|
||||
@@ -73,7 +73,7 @@ PlayMusic::
|
||||
push af
|
||||
ld a, BANK(_PlayMusic) ; aka BANK(_InitSound)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
ld a, e
|
||||
and a
|
||||
@@ -88,7 +88,7 @@ PlayMusic::
|
||||
.end
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
pop af
|
||||
pop bc
|
||||
pop de
|
||||
@@ -107,7 +107,7 @@ PlayMusic2::
|
||||
push af
|
||||
ld a, BANK(_PlayMusic)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
push de
|
||||
ld de, MUSIC_NONE
|
||||
@@ -118,7 +118,7 @@ PlayMusic2::
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
pop af
|
||||
pop bc
|
||||
@@ -140,7 +140,7 @@ PlayCry::
|
||||
; Cries are stuck in one bank.
|
||||
ld a, BANK(PokemonCries)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
ld hl, PokemonCries
|
||||
rept MON_CRY_LENGTH
|
||||
@@ -163,13 +163,13 @@ endr
|
||||
|
||||
ld a, BANK(_PlayCry)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
call _PlayCry
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
pop af
|
||||
pop bc
|
||||
@@ -200,7 +200,7 @@ PlaySFX::
|
||||
push af
|
||||
ld a, BANK(_PlaySFX)
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
ld a, e
|
||||
ld [wCurSFX], a
|
||||
@@ -208,7 +208,7 @@ PlaySFX::
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
.done
|
||||
pop af
|
||||
@@ -525,11 +525,11 @@ TerminateExpBarSound::
|
||||
xor a
|
||||
ld [wChannel5Flags1], a
|
||||
ld [wPitchSweep], a
|
||||
ldh [rNR10], a
|
||||
ldh [rNR11], a
|
||||
ldh [rNR12], a
|
||||
ldh [rNR13], a
|
||||
ldh [rNR14], a
|
||||
ldh [rAUD1SWEEP], a
|
||||
ldh [rAUD1LEN], a
|
||||
ldh [rAUD1ENV], a
|
||||
ldh [rAUD1LOW], a
|
||||
ldh [rAUD1HIGH], a
|
||||
ret
|
||||
|
||||
ChannelsOff::
|
||||
|
@@ -163,7 +163,7 @@ FarCopyRadioText::
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
ld a, e
|
||||
ld l, a
|
||||
ld a, d
|
||||
@@ -173,7 +173,7 @@ FarCopyRadioText::
|
||||
call CopyBytes
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
ret
|
||||
|
||||
MobileTextBorder::
|
||||
@@ -275,6 +275,6 @@ PushLYOverrides::
|
||||
ld a, HIGH(wLYOverrides)
|
||||
ld [wRequested2bppDest + 1], a
|
||||
|
||||
ld a, (wLYOverridesEnd - wLYOverrides) / LEN_2BPP_TILE
|
||||
ld a, (wLYOverridesEnd - wLYOverrides) / TILE_SIZE
|
||||
ld [wRequested2bppSize], a
|
||||
ret
|
||||
|
@@ -12,8 +12,8 @@ ClearSprites::
|
||||
HideSprites::
|
||||
; Set all OAM y-positions to 160 to hide them offscreen
|
||||
ld hl, wShadowOAMSprite00YCoord
|
||||
ld de, SPRITEOAMSTRUCT_LENGTH
|
||||
ld b, NUM_SPRITE_OAM_STRUCTS
|
||||
ld de, OBJ_SIZE
|
||||
ld b, OAM_COUNT
|
||||
ld a, OAM_YCOORD_HIDDEN
|
||||
.loop
|
||||
ld [hl], a ; y
|
||||
|
@@ -94,41 +94,41 @@ GetFarWord::
|
||||
FarCopyWRAM::
|
||||
; copy bc bytes from hl to a:de
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
call CopyBytes
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
||||
GetFarWRAMByte::
|
||||
; retrieve a single byte from a:hl, and return it in a.
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ld a, [hl]
|
||||
ldh [hFarByte], a
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ldh a, [hFarByte]
|
||||
ret
|
||||
|
||||
GetFarWRAMWord:: ; unreferenced
|
||||
; retrieve a word from a:hl, and return it in hl.
|
||||
ldh [hTempBank], a
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ldh a, [hTempBank]
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
@@ -1,15 +1,15 @@
|
||||
LoadTilemapToTempTilemap::
|
||||
; Load wTilemap into wTempTilemap
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wTempTilemap)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
hlcoord 0, 0
|
||||
decoord 0, 0, wTempTilemap
|
||||
ld bc, wTilemapEnd - wTilemap
|
||||
call CopyBytes
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
||||
SafeLoadTempTilemapToTilemap::
|
||||
@@ -22,14 +22,14 @@ SafeLoadTempTilemapToTilemap::
|
||||
|
||||
LoadTempTilemapToTilemap::
|
||||
; Load wTempTilemap into wTilemap
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wTempTilemap)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
hlcoord 0, 0, wTempTilemap
|
||||
decoord 0, 0
|
||||
ld bc, wTilemapEnd - wTilemap
|
||||
call CopyBytes
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
@@ -6,22 +6,22 @@
|
||||
; collapses during the switch.
|
||||
|
||||
DoubleSpeed::
|
||||
ld hl, rKEY1
|
||||
bit KEY1_DBLSPEED, [hl]
|
||||
ld hl, rSPD
|
||||
bit B_SPD_DOUBLE, [hl]
|
||||
jr z, SwitchSpeed
|
||||
ret
|
||||
|
||||
NormalSpeed::
|
||||
ld hl, rKEY1
|
||||
bit KEY1_DBLSPEED, [hl]
|
||||
ld hl, rSPD
|
||||
bit B_SPD_DOUBLE, [hl]
|
||||
ret z
|
||||
|
||||
SwitchSpeed::
|
||||
set KEY1_PREPARE, [hl]
|
||||
set B_SPD_PREPARE, [hl]
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
ldh [rIE], a
|
||||
ld a, (1 << rJOYP_BUTTONS) | (1 << rJOYP_DPAD)
|
||||
ld a, JOYP_GET_NONE
|
||||
ldh [rJOYP], a
|
||||
stop ; rgbasm adds a nop after this instruction by default
|
||||
ret
|
||||
|
@@ -11,15 +11,15 @@ ResetGameTime::
|
||||
GameTimer::
|
||||
nop
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wGameTime)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
call .Function
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
||||
.Function:
|
||||
|
20
home/gfx.asm
20
home/gfx.asm
@@ -3,7 +3,7 @@ DEF MOBILE_TILES_PER_CYCLE EQU 6
|
||||
|
||||
Get2bppViaHDMA::
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
jp z, Copy2bpp
|
||||
|
||||
homecall HDMATransfer2bpp
|
||||
@@ -12,7 +12,7 @@ Get2bppViaHDMA::
|
||||
|
||||
Get1bppViaHDMA::
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
jp z, Copy1bpp
|
||||
|
||||
homecall HDMATransfer1bpp
|
||||
@@ -46,16 +46,16 @@ SafeHDMATransfer: ; unreferenced
|
||||
.loop
|
||||
; load the source and target MSB and LSB
|
||||
ld a, d
|
||||
ldh [rHDMA1], a ; source MSB
|
||||
ldh [rVDMA_SRC_HIGH], a ; source MSB
|
||||
ld a, e
|
||||
and $f0
|
||||
ldh [rHDMA2], a ; source LSB
|
||||
ldh [rVDMA_SRC_LOW], a ; source LSB
|
||||
ld a, h
|
||||
and $1f
|
||||
ldh [rHDMA3], a ; target MSB
|
||||
ldh [rVDMA_DEST_HIGH], a ; target MSB
|
||||
ld a, l
|
||||
and $f0
|
||||
ldh [rHDMA4], a ; target LSB
|
||||
ldh [rVDMA_DEST_LOW], a ; target LSB
|
||||
; stop when c < TILES_PER_CYCLE
|
||||
ld a, c
|
||||
cp TILES_PER_CYCLE
|
||||
@@ -337,7 +337,7 @@ Request1bpp::
|
||||
Get2bpp::
|
||||
; copy c 2bpp tiles from b:de to hl
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
jp nz, Request2bpp
|
||||
; fallthrough
|
||||
|
||||
@@ -350,7 +350,7 @@ Copy2bpp:
|
||||
; bank
|
||||
ld a, b
|
||||
|
||||
; bc = c * LEN_2BPP_TILE
|
||||
; bc = c * TILE_SIZE
|
||||
push af
|
||||
swap c
|
||||
ld a, $f
|
||||
@@ -366,7 +366,7 @@ Copy2bpp:
|
||||
Get1bpp::
|
||||
; copy c 1bpp tiles from b:de to hl
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
jp nz, Request1bpp
|
||||
; fallthrough
|
||||
|
||||
@@ -378,7 +378,7 @@ Copy1bpp::
|
||||
; bank
|
||||
ld a, b
|
||||
|
||||
; bc = c * LEN_1BPP_TILE
|
||||
; bc = c * TILE_1BPP_SIZE
|
||||
push af
|
||||
ld h, 0
|
||||
ld l, c
|
||||
|
@@ -11,7 +11,7 @@ FarCall::
|
||||
SECTION "rst10", ROM0[$0010]
|
||||
Bankswitch::
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
ret
|
||||
|
||||
SECTION "rst18", ROM0[$0018]
|
||||
|
@@ -6,7 +6,7 @@ Reset::
|
||||
call ClearPalettes
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
ld a, 1 << VBLANK
|
||||
ld a, IE_VBLANK
|
||||
ldh [rIE], a
|
||||
ei
|
||||
|
||||
@@ -19,7 +19,7 @@ Reset::
|
||||
jr Init
|
||||
|
||||
_Start::
|
||||
cp $11
|
||||
cp BOOTUP_A_CGB
|
||||
jr z, .cgb
|
||||
xor a ; FALSE
|
||||
jr .load
|
||||
@@ -92,7 +92,7 @@ Init::
|
||||
|
||||
call ClearWRAM
|
||||
ld a, 1
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
call ClearVRAM
|
||||
call ClearSprites
|
||||
call ClearsScratch
|
||||
@@ -108,14 +108,14 @@ Init::
|
||||
ldh [hSCY], a
|
||||
ldh [rJOYP], a
|
||||
|
||||
ld a, $8 ; HBlank int enable
|
||||
ld a, STAT_MODE_0
|
||||
ldh [rSTAT], a
|
||||
|
||||
ld a, $90
|
||||
ld a, SCREEN_HEIGHT_PX
|
||||
ldh [hWY], a
|
||||
ldh [rWY], a
|
||||
|
||||
ld a, 7
|
||||
ld a, WX_OFS
|
||||
ldh [hWX], a
|
||||
ldh [rWX], a
|
||||
|
||||
@@ -142,9 +142,9 @@ Init::
|
||||
|
||||
farcall StartClock
|
||||
|
||||
xor a ; SRAM_DISABLE
|
||||
ld [MBC3LatchClock], a
|
||||
ld [MBC3SRamEnable], a
|
||||
xor a ; RAMG_SRAM_DISABLE
|
||||
ld [rRTCLATCH], a
|
||||
ld [rRAMG], a
|
||||
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
@@ -191,7 +191,7 @@ ClearWRAM::
|
||||
ld a, 1
|
||||
.bank_loop
|
||||
push af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
xor a
|
||||
ld hl, STARTOF(WRAMX)
|
||||
ld bc, SIZEOF(WRAMX)
|
||||
|
@@ -38,7 +38,7 @@ UpdateJoypad::
|
||||
|
||||
; We can only get four inputs at a time.
|
||||
; We take d-pad first for no particular reason.
|
||||
ld a, 1 << rJOYP_DPAD
|
||||
ld a, JOYP_GET_CTRL_PAD
|
||||
ldh [rJOYP], a
|
||||
; Read twice to give the request time to take.
|
||||
ldh a, [rJOYP]
|
||||
@@ -47,7 +47,7 @@ UpdateJoypad::
|
||||
; The Joypad register output is in the lo nybble (inversed).
|
||||
; We make the hi nybble of our new container d-pad input.
|
||||
cpl
|
||||
and $f
|
||||
and JOYP_INPUTS
|
||||
swap a
|
||||
|
||||
; We'll keep this in b for now.
|
||||
@@ -55,7 +55,7 @@ UpdateJoypad::
|
||||
|
||||
; Buttons make 8 total inputs (A, B, Select, Start).
|
||||
; We can fit this into one byte.
|
||||
ld a, 1 << rJOYP_BUTTONS
|
||||
ld a, JOYP_GET_BUTTONS
|
||||
ldh [rJOYP], a
|
||||
; Wait for input to stabilize.
|
||||
rept 6
|
||||
@@ -63,12 +63,12 @@ rept 6
|
||||
endr
|
||||
; Buttons take the lo nybble.
|
||||
cpl
|
||||
and $f
|
||||
and JOYP_INPUTS
|
||||
or b
|
||||
ld b, a
|
||||
|
||||
; Reset the joypad register since we're done with it.
|
||||
ld a, (1 << rJOYP_BUTTONS) | (1 << rJOYP_DPAD)
|
||||
ld a, JOYP_GET_NONE
|
||||
ldh [rJOYP], a
|
||||
|
||||
; To get the delta we xor the last frame's input with the new one.
|
||||
|
@@ -37,7 +37,7 @@ DisableLCD::
|
||||
|
||||
; Don't need to do anything if the LCD is already off
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
ret z
|
||||
|
||||
xor a
|
||||
@@ -46,7 +46,7 @@ DisableLCD::
|
||||
ld b, a
|
||||
|
||||
; Disable VBlank
|
||||
res VBLANK, a
|
||||
res B_IE_VBLANK, a
|
||||
ldh [rIE], a
|
||||
|
||||
.wait
|
||||
@@ -56,7 +56,7 @@ DisableLCD::
|
||||
jr nz, .wait
|
||||
|
||||
ldh a, [rLCDC]
|
||||
and ~(1 << rLCDC_ENABLE)
|
||||
and ~LCDC_ON
|
||||
ldh [rLCDC], a
|
||||
|
||||
xor a
|
||||
@@ -67,6 +67,6 @@ DisableLCD::
|
||||
|
||||
EnableLCD::
|
||||
ldh a, [rLCDC]
|
||||
set rLCDC_ENABLE, a
|
||||
set B_LCDC_ENABLE, a
|
||||
ldh [rLCDC], a
|
||||
ret
|
||||
|
14
home/map.asm
14
home/map.asm
@@ -106,7 +106,7 @@ LoadOverworldTilemap::
|
||||
|
||||
ld a, "■"
|
||||
hlcoord 0, 0
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
ld bc, SCREEN_AREA
|
||||
call ByteFill
|
||||
|
||||
ld a, BANK(_LoadOverworldTilemap)
|
||||
@@ -1193,7 +1193,7 @@ ScrollMapDown::
|
||||
ld l, a
|
||||
ld a, [wBGMapAnchor + 1]
|
||||
ld h, a
|
||||
ld bc, BG_MAP_WIDTH tiles
|
||||
ld bc, TILEMAP_WIDTH tiles
|
||||
add hl, bc
|
||||
; cap d at HIGH(vBGMap0)
|
||||
ld a, h
|
||||
@@ -1278,7 +1278,7 @@ UpdateBGMapRow::
|
||||
push de
|
||||
call .iteration
|
||||
pop de
|
||||
ld a, BG_MAP_WIDTH
|
||||
ld a, TILEMAP_WIDTH
|
||||
add e
|
||||
ld e, a
|
||||
|
||||
@@ -1312,7 +1312,7 @@ UpdateBGMapColumn::
|
||||
ld [hli], a
|
||||
ld a, d
|
||||
ld [hli], a
|
||||
ld a, BG_MAP_WIDTH
|
||||
ld a, TILEMAP_WIDTH
|
||||
add e
|
||||
ld e, a
|
||||
jr nc, .skip
|
||||
@@ -1345,10 +1345,10 @@ LoadTilesetGFX::
|
||||
ld a, [wTilesetBank]
|
||||
ld e, a
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wDecompressScratch)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
ld a, e
|
||||
ld de, wDecompressScratch
|
||||
@@ -1373,7 +1373,7 @@ LoadTilesetGFX::
|
||||
ldh [rVBK], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; These tilesets support dynamic per-mapgroup roof tiles.
|
||||
ld a, [wMapTileset]
|
||||
|
@@ -763,10 +763,10 @@ ClearWindowData::
|
||||
ld hl, wMoreMenuData
|
||||
call .ClearMenuData
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wWindowStack)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
xor a
|
||||
ld hl, wWindowStackBottom
|
||||
@@ -778,7 +778,7 @@ ClearWindowData::
|
||||
ld [wWindowStackPointer + 1], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ret
|
||||
|
||||
.ClearMenuData:
|
||||
|
@@ -80,7 +80,7 @@ MobileTimer::
|
||||
|
||||
; Turn off timer interrupt
|
||||
ldh a, [rIF]
|
||||
and 1 << VBLANK | 1 << LCD_STAT | 1 << SERIAL | 1 << JOYPAD
|
||||
and IF_VBLANK | IF_STAT | IF_SERIAL | IF_JOYPAD
|
||||
ldh [rIF], a
|
||||
|
||||
ld a, [wc86a]
|
||||
@@ -92,7 +92,7 @@ MobileTimer::
|
||||
jr nz, .skip_timer
|
||||
|
||||
ldh a, [rSC]
|
||||
and 1 << rSC_ON
|
||||
and SC_START
|
||||
jr nz, .skip_timer
|
||||
|
||||
ldh a, [hROMBank]
|
||||
@@ -112,7 +112,7 @@ MobileTimer::
|
||||
ldh a, [rTMA]
|
||||
ldh [rTIMA], a
|
||||
|
||||
ld a, 1 << rTAC_ON | rTAC_65536_HZ
|
||||
ld a, TAC_START | TAC_65KHZ
|
||||
ldh [rTAC], a
|
||||
|
||||
.pop_ret
|
||||
|
@@ -19,15 +19,15 @@ UpdateCGBPals::
|
||||
; fallthrough
|
||||
|
||||
ForceUpdateCGBPals::
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wBGPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
ld hl, wBGPals2
|
||||
|
||||
; copy 8 pals to bgpd
|
||||
ld a, 1 << rBGPI_AUTO_INCREMENT
|
||||
ld a, BGPI_AUTOINC
|
||||
ldh [rBGPI], a
|
||||
ld c, LOW(rBGPD)
|
||||
ld b, 8 / 2
|
||||
@@ -43,7 +43,7 @@ endr
|
||||
; hl is now wOBPals2
|
||||
|
||||
; copy 8 pals to obpd
|
||||
ld a, 1 << rOBPI_AUTO_INCREMENT
|
||||
ld a, OBPI_AUTOINC
|
||||
ldh [rOBPI], a
|
||||
ld c, LOW(rOBPD)
|
||||
ld b, 8 / 2
|
||||
@@ -57,7 +57,7 @@ endr
|
||||
jr nz, .obp
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; clear pal update queue
|
||||
xor a
|
||||
@@ -83,11 +83,11 @@ DmgToCgbBGPals::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
|
||||
ld a, BANK(wBGPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; copy & reorder bg pal buffer
|
||||
ld hl, wBGPals2 ; to
|
||||
@@ -103,7 +103,7 @@ DmgToCgbBGPals::
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -131,11 +131,11 @@ DmgToCgbObjPals::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
|
||||
ld a, BANK(wOBPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; copy & reorder obj pal buffer
|
||||
ld hl, wOBPals2 ; to
|
||||
@@ -151,7 +151,7 @@ DmgToCgbObjPals::
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -171,10 +171,10 @@ DmgToCgbObjPal0::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wOBPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
ld hl, wOBPals2 palette 0
|
||||
ld de, wOBPals1 palette 0
|
||||
@@ -186,7 +186,7 @@ DmgToCgbObjPal0::
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -208,10 +208,10 @@ DmgToCgbObjPal1::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wOBPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
ld hl, wOBPals2 palette 1
|
||||
ld de, wOBPals1 palette 1
|
||||
@@ -223,7 +223,7 @@ DmgToCgbObjPal1::
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -237,14 +237,14 @@ CopyPals::
|
||||
; copy c palettes in order b from de to hl
|
||||
|
||||
push bc
|
||||
ld c, NUM_PAL_COLORS
|
||||
ld c, PAL_COLORS
|
||||
.loop
|
||||
push de
|
||||
push hl
|
||||
|
||||
; get pal color
|
||||
ld a, b
|
||||
maskbits 1 << PAL_COLOR_SIZE
|
||||
maskbits 1 << COLOR_SIZE
|
||||
; 2 bytes per color
|
||||
add a
|
||||
ld l, a
|
||||
@@ -262,7 +262,7 @@ CopyPals::
|
||||
ld [hl], d
|
||||
inc hl
|
||||
; next pal color
|
||||
rept PAL_COLOR_SIZE
|
||||
rept COLOR_SIZE
|
||||
srl b
|
||||
endr
|
||||
; source
|
||||
@@ -272,7 +272,7 @@ endr
|
||||
jr nz, .loop
|
||||
|
||||
; de += 8 (next pal)
|
||||
ld a, PALETTE_SIZE
|
||||
ld a, PAL_SIZE
|
||||
add e
|
||||
jr nc, .ok
|
||||
inc d
|
||||
@@ -309,16 +309,16 @@ ReloadSpritesNoPalettes::
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wBGPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ld hl, wBGPals2
|
||||
ld bc, (8 palettes) + (2 palettes)
|
||||
xor a
|
||||
call ByteFill
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
ld a, TRUE
|
||||
ldh [hCGBPalUpdate], a
|
||||
call DelayFrame
|
||||
|
@@ -31,11 +31,11 @@ AskSerial::
|
||||
ldh [rSB], a
|
||||
|
||||
; switch to internal clock
|
||||
ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
|
||||
; start transfer
|
||||
ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
|
||||
ret
|
||||
|
@@ -28,9 +28,9 @@ Serial::
|
||||
cp USING_INTERNAL_CLOCK
|
||||
jr z, .player2
|
||||
|
||||
ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
jr .player2
|
||||
|
||||
@@ -65,9 +65,9 @@ Serial::
|
||||
bit 7, a ; wait until rDIV has incremented from 3 to $80 or more
|
||||
jr nz, .delay_loop
|
||||
|
||||
ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
jr .player2
|
||||
|
||||
@@ -134,9 +134,9 @@ Serial_ExchangeByte::
|
||||
ldh a, [hSerialConnectionStatus]
|
||||
cp USING_INTERNAL_CLOCK
|
||||
jr nz, .not_player_2
|
||||
ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
.not_player_2
|
||||
.loop
|
||||
@@ -164,8 +164,8 @@ Serial_ExchangeByte::
|
||||
|
||||
.not_player_1_or_timed_out
|
||||
ldh a, [rIE]
|
||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||
cp 1 << SERIAL
|
||||
and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
|
||||
cp IE_SERIAL
|
||||
jr nz, .loop
|
||||
ld a, [wLinkByteTimeout]
|
||||
dec a
|
||||
@@ -188,8 +188,8 @@ Serial_ExchangeByte::
|
||||
xor a
|
||||
ldh [hSerialReceivedNewData], a
|
||||
ldh a, [rIE]
|
||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||
sub 1 << SERIAL
|
||||
and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
|
||||
sub IE_SERIAL
|
||||
jr nz, .non_serial_interrupts_enabled
|
||||
|
||||
; a == 0
|
||||
@@ -220,8 +220,8 @@ Serial_ExchangeByte::
|
||||
|
||||
.timed_out
|
||||
ldh a, [rIE]
|
||||
and (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
|
||||
cp 1 << SERIAL
|
||||
and IE_SERIAL | IE_TIMER | IE_STAT | IE_VBLANK
|
||||
cp IE_SERIAL
|
||||
ld a, SERIAL_NO_DATA_BYTE
|
||||
ret z
|
||||
ld a, [hl]
|
||||
@@ -370,9 +370,9 @@ LinkTransfer::
|
||||
ldh a, [hSerialConnectionStatus]
|
||||
cp USING_INTERNAL_CLOCK
|
||||
jr nz, .player_1
|
||||
ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
|
||||
.player_1
|
||||
@@ -400,9 +400,9 @@ LinkDataReceived::
|
||||
ldh a, [hSerialConnectionStatus]
|
||||
cp USING_INTERNAL_CLOCK
|
||||
ret nz
|
||||
ld a, (0 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (1 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_INTERNAL
|
||||
ldh [rSC], a
|
||||
ret
|
||||
|
||||
@@ -415,8 +415,8 @@ SetBitsForTimeCapsuleRequestIfNotLinked:: ; unreferenced
|
||||
ldh [rSB], a
|
||||
xor a
|
||||
ldh [hSerialReceive], a
|
||||
ld a, (0 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
ld a, (1 << rSC_ON) | (0 << rSC_CLOCK)
|
||||
ld a, SC_START | SC_EXTERNAL
|
||||
ldh [rSC], a
|
||||
ret
|
||||
|
@@ -25,21 +25,21 @@ endc
|
||||
push af
|
||||
; latch clock data
|
||||
ld a, 1
|
||||
ld [MBC3LatchClock], a
|
||||
ld [rRTCLATCH], a
|
||||
; enable sram/clock write
|
||||
ld a, SRAM_ENABLE
|
||||
ld [MBC3SRamEnable], a
|
||||
ld a, RAMG_SRAM_ENABLE
|
||||
ld [rRAMG], a
|
||||
; select sram bank
|
||||
pop af
|
||||
ld [MBC3SRamBank], a
|
||||
ld [rRAMB], a
|
||||
ret
|
||||
|
||||
CloseSRAM::
|
||||
push af
|
||||
ld a, SRAM_DISABLE
|
||||
ld a, RAMG_SRAM_DISABLE
|
||||
; reset clock latch for next time
|
||||
ld [MBC3LatchClock], a
|
||||
ld [rRTCLATCH], a
|
||||
; disable sram/clock write
|
||||
ld [MBC3SRamEnable], a
|
||||
ld [rRAMG], a
|
||||
pop af
|
||||
ret
|
||||
|
@@ -29,14 +29,14 @@ ClearTilemap::
|
||||
|
||||
; Update the BG Map.
|
||||
ldh a, [rLCDC]
|
||||
bit rLCDC_ENABLE, a
|
||||
bit B_LCDC_ENABLE, a
|
||||
ret z
|
||||
jp WaitBGMap
|
||||
|
||||
ClearScreen::
|
||||
ld a, PAL_BG_TEXT
|
||||
hlcoord 0, 0, wAttrmap
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
ld bc, SCREEN_AREA
|
||||
call ByteFill
|
||||
jr ClearTilemap
|
||||
|
||||
@@ -760,7 +760,7 @@ TextCommand_FAR::
|
||||
ld a, [hli]
|
||||
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
|
||||
push hl
|
||||
ld h, d
|
||||
@@ -770,7 +770,7 @@ TextCommand_FAR::
|
||||
|
||||
pop af
|
||||
ldh [hROMBank], a
|
||||
ld [MBC3RomBank], a
|
||||
ld [rROMB0], a
|
||||
ret
|
||||
|
||||
TextCommand_BCD::
|
||||
|
@@ -111,7 +111,7 @@ _CopyTilemapAtOnce:
|
||||
ld l, 0
|
||||
ld a, SCREEN_HEIGHT
|
||||
ldh [hTilesPerCycle], a
|
||||
ld b, 1 << 1 ; not in v/hblank
|
||||
ld b, STAT_BUSY
|
||||
ld c, LOW(rSTAT)
|
||||
|
||||
.loop
|
||||
@@ -129,7 +129,7 @@ rept SCREEN_WIDTH / 2
|
||||
inc l
|
||||
endr
|
||||
|
||||
ld de, BG_MAP_WIDTH - SCREEN_WIDTH
|
||||
ld de, TILEMAP_WIDTH - SCREEN_WIDTH
|
||||
add hl, de
|
||||
ldh a, [hTilesPerCycle]
|
||||
dec a
|
||||
@@ -181,11 +181,11 @@ ClearPalettes::
|
||||
ret
|
||||
|
||||
.cgb
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
|
||||
ld a, BANK(wBGPals2)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; Fill wBGPals2 and wOBPals2 with $ffff (white)
|
||||
ld hl, wBGPals2
|
||||
@@ -194,7 +194,7 @@ ClearPalettes::
|
||||
call ByteFill
|
||||
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
; Request palette update
|
||||
ld a, TRUE
|
||||
|
@@ -14,9 +14,9 @@ Timer:: ; unreferenced
|
||||
LatchClock::
|
||||
; latch clock counter data
|
||||
ld a, 0
|
||||
ld [MBC3LatchClock], a
|
||||
ld [rRTCLATCH], a
|
||||
ld a, 1
|
||||
ld [MBC3LatchClock], a
|
||||
ld [rRTCLATCH], a
|
||||
ret
|
||||
|
||||
UpdateTime::
|
||||
@@ -30,35 +30,35 @@ GetClock::
|
||||
; store clock data in hRTCDayHi-hRTCSeconds
|
||||
|
||||
; enable clock r/w
|
||||
ld a, SRAM_ENABLE
|
||||
ld [MBC3SRamEnable], a
|
||||
ld a, RAMG_SRAM_ENABLE
|
||||
ld [rRAMG], a
|
||||
|
||||
; clock data is 'backwards' in hram
|
||||
|
||||
call LatchClock
|
||||
ld hl, MBC3SRamBank
|
||||
ld de, MBC3RTC
|
||||
ld hl, rRAMB
|
||||
ld de, rRTCREG
|
||||
|
||||
ld [hl], RTC_S
|
||||
ld [hl], RAMB_RTC_S
|
||||
ld a, [de]
|
||||
maskbits 60
|
||||
ldh [hRTCSeconds], a
|
||||
|
||||
ld [hl], RTC_M
|
||||
ld [hl], RAMB_RTC_M
|
||||
ld a, [de]
|
||||
maskbits 60
|
||||
ldh [hRTCMinutes], a
|
||||
|
||||
ld [hl], RTC_H
|
||||
ld [hl], RAMB_RTC_H
|
||||
ld a, [de]
|
||||
maskbits 24
|
||||
ldh [hRTCHours], a
|
||||
|
||||
ld [hl], RTC_DL
|
||||
ld [hl], RAMB_RTC_DL
|
||||
ld a, [de]
|
||||
ldh [hRTCDayLo], a
|
||||
|
||||
ld [hl], RTC_DH
|
||||
ld [hl], RAMB_RTC_DH
|
||||
ld a, [de]
|
||||
ldh [hRTCDayHi], a
|
||||
|
||||
@@ -72,10 +72,10 @@ FixDays::
|
||||
|
||||
; check if day count > 255 (bit 8 set)
|
||||
ldh a, [hRTCDayHi] ; DH
|
||||
bit RTC_DH_HI, a
|
||||
bit B_RAMB_RTC_DH_HIGH, a
|
||||
jr z, .daylo
|
||||
; reset dh (bit 8)
|
||||
res RTC_DH_HI, a
|
||||
res B_RAMB_RTC_DH_HIGH, a
|
||||
ldh [hRTCDayHi], a
|
||||
|
||||
; mod 140
|
||||
@@ -213,43 +213,43 @@ SetClock::
|
||||
; set clock data from hram
|
||||
|
||||
; enable clock r/w
|
||||
ld a, SRAM_ENABLE
|
||||
ld [MBC3SRamEnable], a
|
||||
ld a, RAMG_SRAM_ENABLE
|
||||
ld [rRAMG], a
|
||||
|
||||
; set clock data
|
||||
; stored 'backwards' in hram
|
||||
|
||||
call LatchClock
|
||||
ld hl, MBC3SRamBank
|
||||
ld de, MBC3RTC
|
||||
ld hl, rRAMB
|
||||
ld de, rRTCREG
|
||||
|
||||
; seems to be a halt check that got partially commented out
|
||||
; this block is totally pointless
|
||||
ld [hl], RTC_DH
|
||||
ld [hl], RAMB_RTC_DH
|
||||
ld a, [de]
|
||||
bit RTC_DH_HALT, a
|
||||
bit B_RAMB_RTC_DH_HALT, a
|
||||
ld [de], a
|
||||
|
||||
; seconds
|
||||
ld [hl], RTC_S
|
||||
ld [hl], RAMB_RTC_S
|
||||
ldh a, [hRTCSeconds]
|
||||
ld [de], a
|
||||
; minutes
|
||||
ld [hl], RTC_M
|
||||
ld [hl], RAMB_RTC_M
|
||||
ldh a, [hRTCMinutes]
|
||||
ld [de], a
|
||||
; hours
|
||||
ld [hl], RTC_H
|
||||
ld [hl], RAMB_RTC_H
|
||||
ldh a, [hRTCHours]
|
||||
ld [de], a
|
||||
; day lo
|
||||
ld [hl], RTC_DL
|
||||
ld [hl], RAMB_RTC_DL
|
||||
ldh a, [hRTCDayLo]
|
||||
ld [de], a
|
||||
; day hi
|
||||
ld [hl], RTC_DH
|
||||
ld [hl], RAMB_RTC_DH
|
||||
ldh a, [hRTCDayHi]
|
||||
res RTC_DH_HALT, a ; make sure timer is active
|
||||
res B_RAMB_RTC_DH_HALT, a ; make sure timer is active
|
||||
ld [de], a
|
||||
|
||||
; cleanup
|
||||
|
@@ -199,13 +199,13 @@ VBlank_Cutscene::
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
; enable lcd stat
|
||||
ld a, 1 << LCD_STAT
|
||||
ld a, IE_STAT
|
||||
ldh [rIE], a
|
||||
; rerequest serial int if applicable (still disabled)
|
||||
; request lcd stat
|
||||
ld a, b
|
||||
and 1 << SERIAL
|
||||
or 1 << LCD_STAT
|
||||
and IF_SERIAL
|
||||
or IF_STAT
|
||||
ldh [rIF], a
|
||||
|
||||
ei
|
||||
@@ -282,8 +282,9 @@ VBlank_CutsceneCGB::
|
||||
push af
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
ld a, 1 << LCD_STAT
|
||||
ld a, IE_STAT
|
||||
ldh [rIE], a
|
||||
assert IE_STAT == IF_STAT
|
||||
ldh [rIF], a
|
||||
|
||||
ei
|
||||
@@ -370,9 +371,10 @@ VBlank_Credits::
|
||||
|
||||
xor a
|
||||
ldh [rIF], a
|
||||
ld a, 1 << LCD_STAT
|
||||
ld a, IE_STAT
|
||||
ldh [rIE], a
|
||||
; request lcd stat
|
||||
assert IE_STAT == IF_STAT
|
||||
ldh [rIF], a
|
||||
|
||||
ei
|
||||
|
@@ -8,7 +8,7 @@ DMATransfer::
|
||||
ret z
|
||||
|
||||
; Start transfer
|
||||
ldh [rHDMA5], a
|
||||
ldh [rVDMA_LEN], a
|
||||
|
||||
; Execution is halted until the transfer is complete.
|
||||
|
||||
@@ -194,7 +194,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
|
||||
ldh a, [hBGMapAddress]
|
||||
ld l, a
|
||||
|
||||
ld de, 2 * THIRD_HEIGHT * BG_MAP_WIDTH
|
||||
ld de, 2 * THIRD_HEIGHT * TILEMAP_WIDTH
|
||||
add hl, de
|
||||
|
||||
; Next time: top third
|
||||
@@ -211,7 +211,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
|
||||
ldh a, [hBGMapAddress]
|
||||
ld l, a
|
||||
|
||||
ld de, THIRD_HEIGHT * BG_MAP_WIDTH
|
||||
ld de, THIRD_HEIGHT * TILEMAP_WIDTH
|
||||
add hl, de
|
||||
|
||||
; Next time: bottom third
|
||||
@@ -237,7 +237,7 @@ DEF THIRD_HEIGHT EQU SCREEN_HEIGHT / 3
|
||||
ld a, THIRD_HEIGHT
|
||||
|
||||
; Discrepancy between wTilemap and BGMap
|
||||
ld bc, BG_MAP_WIDTH - (SCREEN_WIDTH - 1)
|
||||
ld bc, TILEMAP_WIDTH - (SCREEN_WIDTH - 1)
|
||||
|
||||
.row
|
||||
; Copy a row of 20 tiles
|
||||
@@ -438,10 +438,10 @@ AnimateTileset::
|
||||
ld a, BANK(_AnimateTileset)
|
||||
rst Bankswitch
|
||||
|
||||
ldh a, [rSVBK]
|
||||
ldh a, [rWBK]
|
||||
push af
|
||||
ld a, BANK(wTilesetAnim)
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
|
||||
ldh a, [rVBK]
|
||||
push af
|
||||
@@ -453,7 +453,7 @@ AnimateTileset::
|
||||
pop af
|
||||
ldh [rVBK], a
|
||||
pop af
|
||||
ldh [rSVBK], a
|
||||
ldh [rWBK], a
|
||||
pop af
|
||||
rst Bankswitch
|
||||
ret
|
||||
|
Reference in New Issue
Block a user