You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
Use labels instead of constants for HRAM
Use explicit ldh instruction to access HRAM locations, don't rely on optimizing ld
This commit is contained in:
@@ -6,28 +6,28 @@ UpdatePalsIfCGB::
|
||||
; return carry if successful
|
||||
|
||||
; check cgb
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
|
||||
UpdateCGBPals::
|
||||
; return carry if successful
|
||||
; any pals to update?
|
||||
ld a, [hCGBPalUpdate]
|
||||
ldh a, [hCGBPalUpdate]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ForceUpdateCGBPals::
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ld a, BANK(wBGPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
ld hl, wBGPals2
|
||||
|
||||
; copy 8 pals to bgpd
|
||||
ld a, 1 << rBGPI_AUTO_INCREMENT
|
||||
ld [rBGPI], a
|
||||
ldh [rBGPI], a
|
||||
ld c, LOW(rBGPD)
|
||||
ld b, 8 / 2
|
||||
.bgp
|
||||
@@ -43,7 +43,7 @@ endr
|
||||
|
||||
; copy 8 pals to obpd
|
||||
ld a, 1 << rOBPI_AUTO_INCREMENT
|
||||
ld [rOBPI], a
|
||||
ldh [rOBPI], a
|
||||
ld c, LOW(rOBPD)
|
||||
ld b, 8 / 2
|
||||
.obp
|
||||
@@ -56,11 +56,11 @@ endr
|
||||
jr nz, .obp
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
; clear pal update queue
|
||||
xor a
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
scf
|
||||
ret
|
||||
@@ -70,38 +70,38 @@ DmgToCgbBGPals::
|
||||
|
||||
; input: a -> bgp
|
||||
|
||||
ld [rBGP], a
|
||||
ldh [rBGP], a
|
||||
push af
|
||||
|
||||
; Don't need to be here if DMG
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
jr z, .end
|
||||
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
|
||||
ld a, BANK(wBGPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
; copy & reorder bg pal buffer
|
||||
ld hl, wBGPals2 ; to
|
||||
ld de, wBGPals1 ; from
|
||||
; order
|
||||
ld a, [rBGP]
|
||||
ldh a, [rBGP]
|
||||
ld b, a
|
||||
; all pals
|
||||
ld c, 8
|
||||
call CopyPals
|
||||
; request pal update
|
||||
ld a, 1
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
@@ -116,49 +116,49 @@ DmgToCgbObjPals::
|
||||
; e -> obp2
|
||||
|
||||
ld a, e
|
||||
ld [rOBP0], a
|
||||
ldh [rOBP0], a
|
||||
ld a, d
|
||||
ld [rOBP1], a
|
||||
ldh [rOBP1], a
|
||||
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
|
||||
ld a, BANK(wOBPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
; copy & reorder obj pal buffer
|
||||
ld hl, wOBPals2 ; to
|
||||
ld de, wOBPals1 ; from
|
||||
; order
|
||||
ld a, [rOBP0]
|
||||
ldh a, [rOBP0]
|
||||
ld b, a
|
||||
; all pals
|
||||
ld c, 8
|
||||
call CopyPals
|
||||
; request pal update
|
||||
ld a, 1
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
DmgToCgbObjPal0::
|
||||
ld [rOBP0], a
|
||||
ldh [rOBP0], a
|
||||
push af
|
||||
|
||||
; Don't need to be here if not CGB
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
jr z, .dmg
|
||||
|
||||
@@ -166,22 +166,22 @@ DmgToCgbObjPal0::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ld a, BANK(wOBPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
ld hl, wOBPals2 palette 0
|
||||
ld de, wOBPals1 palette 0
|
||||
ld a, [rOBP0]
|
||||
ldh a, [rOBP0]
|
||||
ld b, a
|
||||
ld c, 1
|
||||
call CopyPals
|
||||
ld a, 1
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -192,10 +192,10 @@ DmgToCgbObjPal0::
|
||||
ret
|
||||
|
||||
DmgToCgbObjPal1::
|
||||
ld [rOBP1], a
|
||||
ldh [rOBP1], a
|
||||
push af
|
||||
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
jr z, .dmg
|
||||
|
||||
@@ -203,22 +203,22 @@ DmgToCgbObjPal1::
|
||||
push de
|
||||
push bc
|
||||
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ld a, BANK(wOBPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
ld hl, wOBPals2 palette 1
|
||||
ld de, wOBPals1 palette 1
|
||||
ld a, [rOBP1]
|
||||
ldh a, [rOBP1]
|
||||
ld b, a
|
||||
ld c, 1
|
||||
call CopyPals
|
||||
ld a, 1
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
|
||||
pop bc
|
||||
pop de
|
||||
@@ -281,12 +281,12 @@ endr
|
||||
ret
|
||||
|
||||
ClearVBank1::
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld a, 1
|
||||
ld [rVBK], a
|
||||
ldh [rVBK], a
|
||||
|
||||
ld hl, VRAM_Begin
|
||||
ld bc, VRAM_End - VRAM_Begin
|
||||
@@ -294,28 +294,28 @@ ClearVBank1::
|
||||
call ByteFill
|
||||
|
||||
ld a, 0
|
||||
ld [rVBK], a
|
||||
ldh [rVBK], a
|
||||
ret
|
||||
|
||||
ret_d90::
|
||||
ret
|
||||
|
||||
ReloadSpritesNoPalettes::
|
||||
ld a, [hCGB]
|
||||
ldh a, [hCGB]
|
||||
and a
|
||||
ret z
|
||||
ld a, [rSVBK]
|
||||
ldh a, [rSVBK]
|
||||
push af
|
||||
ld a, BANK(wBGPals2)
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
ld hl, wBGPals2
|
||||
ld bc, (8 palettes) + (2 palettes)
|
||||
xor a
|
||||
call ByteFill
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ldh [rSVBK], a
|
||||
ld a, 1
|
||||
ld [hCGBPalUpdate], a
|
||||
ldh [hCGBPalUpdate], a
|
||||
call DelayFrame
|
||||
ret
|
||||
|
||||
|
||||
Reference in New Issue
Block a user