mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
119 lines
2.0 KiB
NASM
119 lines
2.0 KiB
NASM
_LoadOverworldAttrmapPals::
|
|
hlcoord 0, 0
|
|
decoord 0, 0, wAttrmap
|
|
ld b, SCREEN_HEIGHT
|
|
.loop
|
|
push bc
|
|
ld c, SCREEN_WIDTH
|
|
call LoadChunkPalettes
|
|
pop bc
|
|
dec b
|
|
jr nz, .loop
|
|
ret
|
|
|
|
_ScrollBGMapPalettes::
|
|
ld hl, wBGMapBuffer
|
|
ld de, wBGMapPalBuffer
|
|
call LoadChunkPalettes
|
|
ret
|
|
|
|
LoadChunkPalettes:
|
|
.loop
|
|
ld a, [hl]
|
|
push hl
|
|
srl a
|
|
jr c, .UpperNybble
|
|
|
|
; .LowerNybble
|
|
cp ($100 - (TILESET_FIXED_SPACES_NUM_TILES + TILESET_VARIABLE_SPACES_NUM_TILES)) / 2
|
|
jr c, .lower_nybble_map_tileset
|
|
cp ($100 - TILESET_VARIABLE_SPACES_NUM_TILES) / 2
|
|
ld hl, TilesetFixedSpacesPalMap - ($100 - (TILESET_FIXED_SPACES_NUM_TILES + TILESET_VARIABLE_SPACES_NUM_TILES)) / 2
|
|
jr c, .lower_nybble_spaces_tileset
|
|
ld hl, TilesetVariableSpacesPalMaps
|
|
push af
|
|
ld a, [wTilesetVariableSpaces]
|
|
add a
|
|
add l
|
|
ld l, a
|
|
ld a, h
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
sub ($100 - TILESET_VARIABLE_SPACES_NUM_TILES) / 2
|
|
.lower_nybble_spaces_tileset
|
|
add l
|
|
ld l, a
|
|
ld a, h
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hl]
|
|
and $f
|
|
jr .next
|
|
|
|
.lower_nybble_map_tileset
|
|
ld hl, wTilesetPalettes
|
|
add [hl]
|
|
ld l, a
|
|
ld a, [wTilesetPalettes + 1]
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hl]
|
|
and $f
|
|
jr .next
|
|
|
|
.UpperNybble:
|
|
cp ($100 - (TILESET_FIXED_SPACES_NUM_TILES + TILESET_VARIABLE_SPACES_NUM_TILES)) / 2
|
|
jr c, .upper_nybble_map_tileset
|
|
cp ($100 - TILESET_VARIABLE_SPACES_NUM_TILES) / 2
|
|
ld hl, TilesetFixedSpacesPalMap - ($100 - (TILESET_FIXED_SPACES_NUM_TILES + TILESET_VARIABLE_SPACES_NUM_TILES)) / 2
|
|
jr c, .upper_nybble_spaces_tileset
|
|
ld hl, TilesetVariableSpacesPalMaps
|
|
push af
|
|
ld a, [wTilesetVariableSpaces]
|
|
add a
|
|
add l
|
|
ld l, a
|
|
ld a, h
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop af
|
|
sub ($100 - TILESET_VARIABLE_SPACES_NUM_TILES) / 2
|
|
.upper_nybble_spaces_tileset
|
|
add l
|
|
ld l, a
|
|
ld a, h
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
jr .next
|
|
|
|
.upper_nybble_map_tileset
|
|
ld hl, wTilesetPalettes
|
|
add [hl]
|
|
ld l, a
|
|
ld a, [wTilesetPalettes + 1]
|
|
adc 0
|
|
ld h, a
|
|
ld a, [hl]
|
|
swap a
|
|
and $f
|
|
|
|
.next
|
|
pop hl
|
|
ld [de], a
|
|
res 7, [hl]
|
|
inc hl
|
|
inc de
|
|
dec c
|
|
jp nz, .loop
|
|
ret
|