pokecrystal-board/engine/color.asm
2016-01-04 08:43:55 -05:00

2434 lines
43 KiB
NASM

PALPACKET_LENGTH EQU $10
INCLUDE "predef/sgb.asm"
SHINY_ATK_BIT EQU 5
SHINY_DEF_VAL EQU 10
SHINY_SPD_VAL EQU 10
SHINY_SPC_VAL EQU 10
LO_NYBBLE EQU $0f
HI_NYBBLE EQU $f0
CheckShininess: ; 8a68
; Check if a mon is shiny by DVs at bc.
; Return carry if shiny.
ld l, c
ld h, b
; Attack
ld a, [hl]
and 1 << SHINY_ATK_BIT
jr z, .NotShiny
; Defense
ld a, [hli]
and LO_NYBBLE
cp SHINY_DEF_VAL
jr nz, .NotShiny
; Speed
ld a, [hl]
and HI_NYBBLE
cp SHINY_SPD_VAL << 4
jr nz, .NotShiny
; Special
ld a, [hl]
and LO_NYBBLE
cp SHINY_SPC_VAL
jr nz, .NotShiny
.Shiny
scf
ret
.NotShiny
and a
ret
; 8a88
CheckContestMon: ; 8a88
; Check a mon's DVs at hl in the bug catching contest.
; Return carry if its DVs are good enough to place in the contest.
; Attack
ld a, [hl]
cp 10 << 4
jr c, .Bad
; Defense
ld a, [hli]
and LO_NYBBLE
cp 10
jr c, .Bad
; Speed
ld a, [hl]
cp 10 << 4
jr c, .Bad
; Special
ld a, [hl]
and LO_NYBBLE
cp 10
jr c, .Bad
.Good
scf
ret
.Bad
and a
ret
; 8aa4
Function8aa4: ; 8aa4
push de
push bc
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, PALPACKET_LENGTH
call CopyBytes
pop bc
pop de
ld a, c
ld [wSGBPals + 3], a
ld a, b
ld [wSGBPals + 4], a
ld a, e
ld [wSGBPals + 5], a
ld a, d
ld [wSGBPals + 6], a
ld hl, wSGBPals
call Function9809
ld hl, BlkPacket_9a86
call Function9809
ret
; 8ad1
InitPartyMenuPalettes: ; 8ad1
ld hl, PalPacket_9c56 + 1
call CopyFourPalettes
call InitPartyMenuOBPals
call WipeAttrMap
ret
; 8ade
SGB_ApplyPartyMenuHPPals: ; 8ade SGB layout $fc
ld hl, wHPPals
ld a, [wSGBPals]
ld e, a
ld d, $0
add hl, de
ld e, l
ld d, h
ld a, [de]
and a
ld e, $5
jr z, .okay
dec a
ld e, $a
jr z, .okay
ld e, $f
.okay
push de
ld hl, wSGBPals + 10
ld bc, $6
ld a, [wSGBPals]
call AddNTimes
pop de
ld [hl], e
ret
; 8b07
Function8b07: ; 8b07
; Unreferenced
call CheckCGB
ret z
ld hl, .BGPal
ld de, UnknBGPals
ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
ld hl, .OBPal
ld de, UnknOBPals
ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
call ApplyPals
ld a, $1
ld [hCGBPalUpdate], a
ret
.BGPal
RGB 31, 31, 31
RGB 18, 23, 31
RGB 15, 20, 31
RGB 00, 00, 00
.OBPal
RGB 31, 31, 31
RGB 31, 31, 12
RGB 08, 16, 28
RGB 00, 00, 00
; 8b3f
Function8b3f: ; 8b3f
; Unreferenced
call CheckCGB
ret nz
ld a, [hSGB]
and a
ret z
ld hl, BlkPacket_9a86
jp Function9809
; 8b4d
Function8b4d: ; 8b4d
call CheckCGB
jr nz, .cgb
ld a, [hSGB]
and a
ret z
ld hl, PalPacket_9c26
jp Function9809
.cgb
ld de, UnknOBPals
ld a, $3b
call GetPredefPal
jp LoadHLPaletteIntoDE
; 8b67
Function8b67: ; 8b67
call CheckCGB
jr nz, .cgb
ld a, [hSGB]
and a
ret z
ld hl, PalPacket_9c36
jp Function9809
.cgb
ld de, UnknOBPals
ld a, $3c
call GetPredefPal
jp LoadHLPaletteIntoDE
; 8b81
Function8b81: ; 8b81
call CheckCGB
jr nz, .asm_8bb2
ld a, [hSGB]
and a
ret z
ld a, c
push af
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, PALPACKET_LENGTH
call CopyBytes
pop af
call GetMonPalettePointer_
ld a, [hli]
ld [wSGBPals + 3], a
ld a, [hli]
ld [wSGBPals + 4], a
ld a, [hli]
ld [wSGBPals + 5], a
ld a, [hl]
ld [wSGBPals + 6], a
ld hl, wSGBPals
jp Function9809
.asm_8bb2
ld de, UnknOBPals
ld a, c
call GetMonPalettePointer_
call LoadPalette_White_Col1_Col2_Black
ret
; 8bbd
Function8bbd: ; 8bbd
ld a, [TrainerClass]
call GetTrainerPalettePointer
ld a, e
jr asm_8bd7
Function8bc6:
ld a, [CurPartySpecies]
call GetMonPalettePointer
ld a, e
bit 7, a
jr z, .asm_8bd7
and $7f
rept 4
inc hl
endr
.asm_8bd7
asm_8bd7
push hl
ld hl, UnknBGPals
ld de, $8
.asm_8bde
and a
jr z, .asm_8be5
add hl, de
dec a
jr .asm_8bde
.asm_8be5
ld e, l
ld d, h
pop hl
call LoadPalette_White_Col1_Col2_Black
ret
; 8bec
Function8bec: ; 8bec
ld a, [hCGB]
and a
jr nz, .asm_8bf7
ld hl, PlayerLightScreenCount
jp Function9809
.asm_8bf7
ld a, [EnemyLightScreenCount]
ld c, a
ld a, [EnemyReflectCount]
hlcoord 0, 0, AttrMap
ld de, $14
.asm_8c04
and a
jr z, .asm_8c0b
add hl, de
dec a
jr .asm_8c04
.asm_8c0b
ld b, $0
add hl, bc
lb bc, 6, 4
ld a, [EnemySafeguardCount]
and $3
call FillBoxCGB
call LoadEDTile
ret
; 8c1d
ApplyMonOrTrainerPals: ; 8c1d
call CheckCGB
ret z
ld a, e
and a
jr z, .get_trainer
ld a, [CurPartySpecies]
call GetMonPalettePointer_
jr .load_palettes
.get_trainer
ld a, [TrainerClass]
call GetTrainerPalettePointer
.load_palettes
ld de, UnknBGPals
call LoadPalette_White_Col1_Col2_Black
call WipeAttrMap
call ApplyAttrMap
call ApplyPals
ret
; 8c43
ApplyHPBarPals: ; 8c43
ld a, [wWhichHPBar]
and a
jr z, .Enemy
cp $1
jr z, .Player
cp $2
jr z, .PartyMenu
ret
.Enemy
ld de, BGPals + 2 palettes + 2
jr .okay
.Player
ld de, BGPals + 3 palettes + 2
.okay
ld l, c
ld h, $0
add hl, hl
add hl, hl
ld bc, Palettes_a8be
add hl, bc
ld bc, 4
ld a, $5
call FarCopyWRAM
ld a, $1
ld [hCGBPalUpdate], a
ret
.PartyMenu
ld e, c
inc e
hlcoord 11, 1, AttrMap
ld bc, 2 * SCREEN_WIDTH
ld a, [CurPartyMon]
.loop
and a
jr z, .done
add hl, bc
dec a
jr .loop
.done
lb bc, 2, 8
ld a, e
call FillBoxCGB
ret
; 8c8a
LoadStatsScreenPals: ; 8c8a
call CheckCGB
ret z
ld hl, StatsScreenPals
ld b, 0
dec c
add hl, bc
add hl, bc
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld a, [hli]
ld [UnknBGPals], a
ld [UnknBGPals + 8 * 2], a
ld a, [hl]
ld [UnknBGPals + 1], a
ld [UnknBGPals + 8 * 2 + 1], a
pop af
ld [rSVBK], a
call ApplyPals
ld a, $1
ret
; 8cb4
Function8cb4: ; 8cb4
ld l, e
ld h, 0
rept 3
add hl, hl
endr
ld de, Palettes_8d05
add hl, de
call CheckCGB
jr nz, .asm_8cf0
push hl
ld hl, PalPacket_9ce6
ld de, wSGBPals
ld bc, PALPACKET_LENGTH
call CopyBytes
pop hl
inc hl
inc hl
ld a, [hli]
ld [wSGBPals + 3], a
ld a, [hli]
ld [wSGBPals + 4], a
ld a, [hli]
ld [wSGBPals + 5], a
ld a, [hli]
ld [wSGBPals + 6], a
ld hl, wSGBPals
call Function9809
ld hl, BlkPacket_9a86
call Function9809
ret
.asm_8cf0
ld de, UnknBGPals
ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
call ApplyPals
call WipeAttrMap
call ApplyAttrMap
ret
; 8d05
Palettes_8d05: ; 8d05
RGB 20, 31, 11
RGB 31, 19, 00
RGB 31, 10, 09
RGB 00, 00, 00
RGB 15, 20, 31
RGB 30, 26, 00
RGB 31, 12, 00
RGB 00, 00, 00
RGB 24, 17, 31
RGB 30, 26, 00
RGB 08, 11, 31
RGB 00, 00, 00
RGB 31, 25, 17
RGB 31, 18, 04
RGB 28, 12, 05
RGB 00, 00, 00
RGB 19, 26, 31
RGB 31, 05, 08
RGB 31, 09, 31
RGB 00, 00, 00
RGB 31, 19, 28
RGB 31, 21, 00
RGB 12, 22, 00
RGB 00, 00, 00
RGB 19, 17, 23
RGB 30, 26, 00
RGB 31, 12, 00
RGB 00, 00, 00
RGB 07, 26, 31
RGB 26, 26, 27
RGB 31, 11, 11
RGB 00, 00, 00
RGB 21, 31, 21
RGB 30, 26, 00
RGB 31, 12, 00
RGB 00, 00, 00
RGB 07, 26, 31
RGB 31, 31, 00
RGB 00, 21, 00
RGB 00, 00, 00
; 8d55
INCLUDE "predef/cgb.asm"
Function95f0: ; 95f0
ld hl, Palette_9608
ld de, UnknBGPals
ld bc, 8
ld a, $5
call FarCopyWRAM
call ApplyPals
call WipeAttrMap
call ApplyAttrMap
ret
; 9608
Palette_9608: ; 9608
RGB 31, 31, 31
RGB 09, 31, 31
RGB 10, 12, 31
RGB 00, 03, 19
; 9610
CopyFourPalettes: ; 9610
ld de, UnknBGPals
ld c, $4
CopyPalettes: ; 9615
.loop
push bc
ld a, [hli]
push hl
call GetPredefPal
call LoadHLPaletteIntoDE
pop hl
inc hl
pop bc
dec c
jr nz, .loop
ret
; 9625
GetPredefPal: ; 9625
ld l, a
ld h, $0
rept 3 ; multiply by 8
add hl, hl
endr
ld bc, Palettes_9df6
add hl, bc
ret
; 9630
LoadHLPaletteIntoDE: ; 9630
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld c, $8
.loop
ld a, [hli]
ld [de], a
inc de
dec c
jr nz, .loop
pop af
ld [rSVBK], a
ret
; 9643
LoadPalette_White_Col1_Col2_Black: ; 9643
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld a, $7fff % $100
ld [de], a
inc de
ld a, $7fff / $100
ld [de], a
inc de
ld c, 2 * 2
.loop
ld a, [hli]
ld [de], a
inc de
dec c
jr nz, .loop
xor a
ld [de], a
inc de
ld [de], a
inc de
pop af
ld [rSVBK], a
ret
; 9663
FillBoxCGB: ; 9663
.row
push bc
push hl
.col
ld [hli], a
dec c
jr nz, .col
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
pop bc
dec b
jr nz, .row
ret
; 9673
Function9673: ; 9673
push af
push bc
push de
push hl
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, UnknBGPals
ld c, 8
.loop
ld a, $ff
rept 4
ld [hli], a
endr
xor a
rept 4
ld [hli], a
endr
dec c
jr nz, .loop
pop af
ld [rSVBK], a
pop hl
pop de
pop bc
pop af
ret
; 9699
WipeAttrMap: ; 9699
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
xor a
call ByteFill
ret
; 96a4
ApplyPals: ; 96a4
ld hl, UnknBGPals
ld de, BGPals
ld bc, 16 palettes
ld a, $5
call FarCopyWRAM
ret
; 96b3
ApplyAttrMap: ; 96b3
ld a, [rLCDC]
bit 7, a
jr z, .UpdateVBank1
ld a, [hBGMapMode]
push af
ld a, $2
ld [hBGMapMode], a
call DelayFrame
call DelayFrame
call DelayFrame
call DelayFrame
pop af
ld [hBGMapMode], a
ret
.UpdateVBank1
hlcoord 0, 0, AttrMap
debgcoord 0, 0
ld b, SCREEN_HEIGHT
ld a, $1
ld [rVBK], a
.row
ld c, SCREEN_WIDTH
.col
ld a, [hli]
ld [de], a
inc de
dec c
jr nz, .col
ld a, BG_MAP_WIDTH - SCREEN_WIDTH
add e
jr nc, .okay
inc d
.okay
ld e, a
dec b
jr nz, .row
ld a, $0
ld [rVBK], a
ret
; 96f3
CGB_ApplyPartyMenuHPPals: ; 96f3 CGB layout $fc
ld hl, wHPPals
ld a, [wSGBPals]
ld e, a
ld d, $0
add hl, de
ld e, l
ld d, h
ld a, [de]
inc a
ld e, a
hlcoord 11, 2, AttrMap
ld bc, 2 * SCREEN_WIDTH
ld a, [wSGBPals]
.loop
and a
jr z, .done
add hl, bc
dec a
jr .loop
.done
lb bc, 2, 8
ld a, e
call FillBoxCGB
ret
; 971a
InitPartyMenuOBPals: ; 971a
ld hl, Palettes_b681
ld de, UnknOBPals
ld bc, 2 palettes
ld a, $5
call FarCopyWRAM
ret
; 9729
GetBattlemonBackpicPalettePointer: ; 9729
push de
callba GetPartyMonDVs
ld c, l
ld b, h
ld a, [TempBattleMonSpecies]
call GetPlayerOrMonPalettePointer
pop de
ret
; 973a
GetEnemyFrontpicPalettePointer: ; 973a
push de
callba GetEnemyMonDVs
ld c, l
ld b, h
ld a, [TempEnemyMonSpecies]
call GetFrontpicPalettePointer
pop de
ret
; 974b
GetPlayerOrMonPalettePointer: ; 974b
and a
jp nz, GetMonNormalOrShinyPalettePointer
ld a, [wPlayerSpriteSetupFlags]
bit 2, a ; transformed to male
jr nz, .male
ld a, [PlayerGender]
and a
jr z, .male
ld hl, KrisPalette
ret
.male
ld hl, PlayerPalette
ret
; 9764
GetFrontpicPalettePointer: ; 9764
and a
jp nz, GetMonNormalOrShinyPalettePointer
ld a, [TrainerClass]
GetTrainerPalettePointer: ; 976b
ld l, a
ld h, 0
add hl,hl
add hl,hl
ld bc, TrainerPalettes
add hl, bc
ret
; 9775
GetMonPalettePointer_: ; 9775
call GetMonPalettePointer
ret
; 9779
Function9779: mobile ; 9779
call CheckCGB
ret z
ld hl, Palettes_979c
ld a, $90
ld [rOBPI], a
ld c, 6 palettes
.loop
ld a, [hli]
ld [rOBPD], a
dec c
jr nz, .loop
ld hl, Palettes_979c
ld de, UnknOBPals + 8 * 2
ld bc, 2 palettes
ld a, $5
call FarCopyWRAM
ret
; 979c
Palettes_979c: ; 979c
RGB 31, 31, 31
RGB 25, 25, 25
RGB 13, 13, 13
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 07
RGB 31, 16, 01
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 19, 24
RGB 30, 10, 06
RGB 00, 00, 00
RGB 31, 31, 31
RGB 12, 25, 01
RGB 05, 14, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 08, 12, 31
RGB 01, 04, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 18, 07
RGB 20, 15, 03
RGB 00, 00, 00
; 97cc
Function97cc: ; 97cc
call CheckCGB
ret z
ld a, $90
ld [rOBPI], a
ld a, $1c
call GetPredefPal
call Function97e5
ld a, $21
call GetPredefPal
call Function97e5
ret
; 97e5
Function97e5: ; 97e5
ld c, 1 palettes
.loop
ld a, [hli]
ld [rOBPD], a
dec c
jr nz, .loop
ret
; 97ee
GetMonPalettePointer: ; 97ee
ld l, a
ld h, $0
rept 3
add hl, hl
endr
ld bc, PokemonPalettes
add hl, bc
ret
; 97f9
GetMonNormalOrShinyPalettePointer: ; 97f9
push bc
call GetMonPalettePointer
pop bc
push hl
call CheckShininess
pop hl
ret nc
rept 4
inc hl
endr
ret
; 9809
Function9809: ; 9809
ld a, [wcfbe]
push af
set 7, a
ld [wcfbe], a
call PushSGBPals
pop af
ld [wcfbe], a
ret
; 981a
PushSGBPals: ; 981a
ld a, [hl]
and $7
ret z
ld b, a
.loop
push bc
xor a
ld [rJOYP], a
ld a, $30
ld [rJOYP], a
ld b, $10
.loop2
ld e, $8
ld a, [hli]
ld d, a
.loop3
bit 0, d
ld a, $10
jr nz, .okay
ld a, $20
.okay
ld [rJOYP], a
ld a, $30
ld [rJOYP], a
rr d
dec e
jr nz, .loop3
dec b
jr nz, .loop2
ld a, $20
ld [rJOYP], a
ld a, $30
ld [rJOYP], a
call SGBDelayCycles
pop bc
dec b
jr nz, .loop
ret
; 9853
Function9853: ; 9853
call CheckCGB
ret nz
di
ld a, [wcfbe]
push af
set 7, a
ld [wcfbe], a
xor a
ld [rJOYP], a
ld [hSGB], a
call Function994a
jr nc, .asm_988a
ld a, $1
ld [hSGB], a
call Function98eb
call Function99b4
call SGBDelayCycles
call Function993f
call Function992c
call SGBDelayCycles
call Function993f
ld hl, PalPacket_9d66
call PushSGBPals
.asm_988a
pop af
ld [wcfbe], a
ei
ret
; 9890
Function9890:: ; 9890
call CheckCGB
ret z
ld a, $1
ld [rVBK], a
ld hl, VTiles0
ld bc, $200 tiles
xor a
call ByteFill
ld a, $0
ld [rVBK], a
ld a, $80
ld [rBGPI], a
ld c, 4 * 8
.bgpals_loop
ld a, $7fff % $100
ld [rBGPD], a
ld a, $7fff / $100
ld [rBGPD], a
dec c
jr nz, .bgpals_loop
ld a, $80
ld [rOBPI], a
ld c, 4 * 8
.obpals_loop
ld a, $7fff % $100
ld [rOBPD], a
ld a, $7fff / $100
ld [rOBPD], a
dec c
jr nz, .obpals_loop
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, UnknBGPals
call .LoadWhitePals
ld hl, BGPals
call .LoadWhitePals
pop af
ld [rSVBK], a
ret
.LoadWhitePals
ld c, 4 * 16
.loop
ld a, $7fff % $100
ld [hli], a
ld a, $7fff / $100
ld [hli], a
dec c
jr nz, .loop
ret
; 98eb
Function98eb: ; 98eb
ld hl, .PalPacketPointerTable
ld c, 9
.loop
push bc
ld a, [hli]
push hl
ld h, [hl]
ld l, a
call PushSGBPals
pop hl
inc hl
pop bc
dec c
jr nz, .loop
ret
; 98ff
.PalPacketPointerTable: ; 98ff
dw PalPacket_9d56
dw PalPacket_9d76
dw PalPacket_9d86
dw PalPacket_9d96
dw PalPacket_9da6
dw PalPacket_9db6
dw PalPacket_9dc6
dw PalPacket_9dd6
dw PalPacket_9de6
; 9911
Function9911: ; 9911
di
xor a
ld [rJOYP], a
ld hl, PalPacket_9d56
call PushSGBPals
call Function992c
call SGBDelayCycles
call Function993f
ld hl, PalPacket_9d66
call PushSGBPals
ei
ret
; 992c
Function992c: ; 992c
call .LoadSGBBorderPointers
push de
call Function9a24
pop hl
call Function99d8
ret
; 9938
.LoadSGBBorderPointers: ; 9938
ld hl, SGBBorder
ld de, SGBBorderMap
ret
; 993f
Function993f: ; 993f
ld hl, VTiles0
ld bc, $2000
xor a
call ByteFill
ret
; 994a
Function994a: ; 994a
ld hl, PalPacket_9d26
call PushSGBPals
call SGBDelayCycles
ld a, [rJOYP]
and $3
cp $3
jr nz, .asm_99a6
ld a, $20
ld [rJOYP], a
ld a, [rJOYP]
ld a, [rJOYP]
call SGBDelayCycles
call SGBDelayCycles
ld a, $30
ld [rJOYP], a
call SGBDelayCycles
call SGBDelayCycles
ld a, $10
ld [rJOYP], a
rept 6
ld a, [rJOYP]
endr
call SGBDelayCycles
call SGBDelayCycles
ld a, $30
ld [rJOYP], a
rept 3
ld a, [rJOYP]
endr
call SGBDelayCycles
call SGBDelayCycles
ld a, [rJOYP]
and $3
cp $3
jr nz, .asm_99a6
call Function99ab
and a
ret
.asm_99a6
call Function99ab
scf
ret
; 99ab
Function99ab: ; 99ab
ld hl, PalPacket_9d16
call PushSGBPals
jp SGBDelayCycles
; 99b4
Function99b4: ; 99b4
call DisableLCD
ld a, $e4
ld [rBGP], a
ld hl, Palettes_9df6
ld de, VTiles1
ld bc, $1000
call CopyData
call DrawDefaultTiles
ld a, $e3
ld [rLCDC], a
ld hl, PalPacket_9d06
call PushSGBPals
xor a
ld [rBGP], a
ret
; 99d8
Function99d8: ; 99d8
call DisableLCD
ld a, $e4
ld [rBGP], a
ld de, VTiles1
ld bc, 20 tiles
call CopyData
ld b, 18
.asm_99ea
push bc
ld bc, $c
call CopyData
ld bc, $28
call ClearBytes
ld bc, $c
call CopyData
pop bc
dec b
jr nz, .asm_99ea
ld bc, $140
call CopyData
ld bc, Start
call ClearBytes
ld bc, 16 palettes
call CopyData
call DrawDefaultTiles
ld a, $e3
ld [rLCDC], a
ld hl, PalPacket_9d46
call PushSGBPals
xor a
ld [rBGP], a
ret
; 9a24
Function9a24: ; 9a24
call DisableLCD
ld a, %11100100
ld [rBGP], a
ld de, VTiles1
ld b, $80
.asm_9a30
push bc
ld bc, 1 tiles
call CopyData
ld bc, 1 tiles
call ClearBytes
pop bc
dec b
jr nz, .asm_9a30
call DrawDefaultTiles
ld a, $e3
ld [rLCDC], a
ld hl, PalPacket_9d36
call PushSGBPals
xor a
ld [rBGP], a
ret
; 9a52
CopyData: ; 0x9a52
; copy bc bytes of data from hl to de
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, CopyData
ret
; 0x9a5b
ClearBytes: ; 0x9a5b
; clear bc bytes of data starting from de
xor a
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, ClearBytes
ret
; 0x9a64
DrawDefaultTiles: ; 0x9a64
; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
hlbgcoord 0, 0 ; BG Map 0
ld de, BG_MAP_WIDTH - SCREEN_WIDTH
ld a, $80 ; starting tile
ld c, 12 + 1
.line
ld b, 20
.tile
ld [hli], a
inc a
dec b
jr nz, .tile
; next line
add hl, de
dec c
jr nz, .line
ret
; 0x9a7a
SGBDelayCycles: ; 9a7a
ld de, 7000
.wait
nop
nop
nop
dec de
ld a, d
or e
jr nz, .wait
ret
; 9a86
BlkPacket_9a86: ; 9a86
db $21, $01, $03, $00, $00, $00, $13, $11, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9a96: ; 9a96
db $21, $01, $07, $05, $00, $0a, $13, $0d, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9aa6: ; 9a86
db $22, $05, $07, $0a, $00, $0c, $13, $11, $03, $05, $01, $00, $0a, $03, $03, $00
db $0a, $08, $13, $0a, $03, $0a, $00, $04, $08, $0b, $03, $0f, $0b, $00, $13, $07
BlkPacket_9ac6: ; 9a86
db $21, $01, $07, $05, $00, $01, $07, $07, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9ad6: ; 9a86
db $21, $01, $07, $05, $0b, $01, $13, $02, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9ae6: ; 9a86
db $21, $01, $07, $05, $01, $01, $08, $08, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9af6: ; 9a86
db $21, $01, $07, $05, $07, $05, $0d, $0b, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9b06: ; 9a86
db $22, $05, $03, $05, $00, $00, $13, $0b, $03, $0a, $00, $04, $13, $09, $02, $0f
db $00, $06, $13, $07, $03, $00, $04, $04, $0f, $09, $03, $00, $00, $0c, $13, $11
BlkPacket_9b26: ; 9a86
db $23, $07, $07, $10, $00, $00, $02, $0c, $02, $00, $0c, $00, $12, $01, $02, $00
db $0c, $02, $12, $03, $02, $00, $0c, $04, $12, $05, $02, $00, $0c, $06, $12, $07
db $02, $00, $0c, $08, $12, $09, $02, $00, $0c, $0a, $12, $0b, $00, $00, $00, $00
BlkPacket_9b56: ; 9a86
db $22, $03, $07, $20, $00, $00, $13, $04, $03, $0f, $00, $06, $13, $11, $03, $05
db $0f, $01, $12, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9b76: ; 9a86
db $21, $01, $07, $10, $00, $00, $13, $05, $00, $00, $00, $00, $00, $00, $00, $00
BlkPacket_9b86: ; 9a86
db $21, $02, $07, $0a, $00, $04, $13, $0d, $03, $05, $00, $06, $13, $0b, $00, $00
; 9b96
; 9b96
PalPacket_9b96: db $51, $48, $00, $49, $00, $4a, $00, $4b, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9ba6: db $51, $2b, $00, $24, $00, $20, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9bb6: db $51, $41, $00, $42, $00, $43, $00, $44, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9bc6: db $51, $4c, $00, $4c, $00, $4c, $00, $4c, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9bd6: db $51, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9be6: db $51, $36, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9bf6: db $51, $37, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c06: db $51, $38, $00, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c16: db $51, $3a, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c26: db $51, $3b, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c36: db $51, $3c, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c46: db $51, $39, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c56: db $51, $2e, $00, $2f, $00, $30, $00, $31, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c66: db $51, $1a, $00, $1a, $00, $1a, $00, $1a, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c76: db $51, $32, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c86: db $51, $3c, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9c96: db $51, $3d, $00, $3e, $00, $3f, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9ca6: db $51, $33, $00, $34, $00, $1b, $00, $1f, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9cb6: db $51, $1b, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9cc6: db $51, $1c, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9cd6: db $51, $35, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9ce6: db $01, $ff, $7f, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9cf6: db $09, $ff, $7f, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d06: db $59, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d16: db $89, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d26: db $89, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d36: db $99, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d46: db $a1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d56: db $b9, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d66: db $b9, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d76: db $79, $5d, $08, $00, $0b, $8c, $d0, $f4, $60, $00, $00, $00, $00, $00, $00, $00
PalPacket_9d86: db $79, $52, $08, $00, $0b, $a9, $e7, $9f, $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0
PalPacket_9d96: db $79, $47, $08, $00, $0b, $c4, $d0, $16, $a5, $cb, $c9, $05, $d0, $10, $a2, $28
PalPacket_9da6: db $79, $3c, $08, $00, $0b, $f0, $12, $a5, $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9
PalPacket_9db6: db $79, $31, $08, $00, $0b, $0c, $a5, $ca, $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e
PalPacket_9dc6: db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $c9, $c9, $80, $d0
PalPacket_9dd6: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
PalPacket_9de6: db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea
; 9df6
Palettes_9df6: ; 9df6
RGB 31, 31, 31
RGB 22, 25, 19
RGB 16, 21, 30
RGB 00, 00, 00
RGB 31, 31, 31
RGB 27, 28, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 28, 19
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 24, 24
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 23, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 21, 27
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 24, 16
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 25, 30, 26
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 25, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 20, 19
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 26, 19
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 27, 28, 27
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 30, 23
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 29, 24, 29
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 23, 29
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 25, 23, 20
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 29, 26, 18
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 21, 18
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 25, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 22, 21, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 22, 25, 21
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 21, 22
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 20, 20
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 26, 26
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 14, 09
RGB 15, 20, 20
RGB 00, 00, 00
RGB 31, 31, 31
RGB 12, 28, 22
RGB 15, 20, 20
RGB 00, 00, 00
RGB 31, 31, 31
RGB 07, 07, 07
RGB 02, 03, 03
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 22, 17
RGB 16, 14, 19
RGB 00, 00, 00
RGB 31, 31, 31
RGB 18, 20, 27
RGB 11, 15, 23
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 20, 10
RGB 26, 10, 06
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 25, 29
RGB 14, 19, 25
RGB 00, 00, 00
RGB 31, 31, 31
RGB 27, 22, 24
RGB 21, 15, 23
RGB 00, 00, 00
RGB 31, 31, 31
RGB 28, 20, 15
RGB 21, 14, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 20, 26, 16
RGB 09, 20, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 22, 24
RGB 28, 15, 21
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 28, 14
RGB 26, 20, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 21, 22
RGB 15, 15, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 23, 19, 13
RGB 14, 12, 17
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 18, 21
RGB 10, 12, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 22, 15, 16
RGB 17, 02, 05
RGB 00, 00, 00
RGB 31, 31, 31
RGB 15, 20, 20
RGB 05, 16, 16
RGB 00, 00, 00
RGB 31, 31, 31
RGB 23, 15, 19
RGB 14, 04, 12
RGB 00, 00, 00
RGB 31, 31, 31
RGB 20, 17, 18
RGB 18, 13, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 23, 21, 16
RGB 12, 12, 10
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 25, 29
RGB 30, 22, 24
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 23, 16
RGB 29, 14, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 18, 18, 18
RGB 10, 10, 10
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 26, 15
RGB 00, 23, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 26, 15
RGB 31, 23, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 26, 15
RGB 31, 00, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 29, 26, 19
RGB 27, 20, 14
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 20, 10
RGB 21, 00, 04
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 20, 10
RGB 21, 00, 04
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 26, 16
RGB 16, 12, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 15, 28, 26
RGB 12, 22, 26
RGB 03, 16, 14
RGB 31, 31, 31
RGB 15, 28, 26
RGB 23, 24, 24
RGB 00, 00, 00
RGB 31, 31, 24
RGB 07, 27, 19
RGB 26, 20, 10
RGB 19, 12, 08
RGB 31, 31, 31
RGB 31, 28, 14
RGB 31, 13, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 18, 21
RGB 10, 12, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 23, 21, 16
RGB 12, 12, 10
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 14, 00
RGB 07, 11, 15
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 21, 22
RGB 26, 10, 06
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 27, 04
RGB 24, 20, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 13, 25
RGB 24, 20, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 19, 29
RGB 24, 20, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 22, 24
RGB 18, 18, 18
RGB 16, 10, 07
RGB 31, 31, 31
RGB 21, 25, 29
RGB 18, 18, 18
RGB 16, 10, 07
RGB 31, 31, 31
RGB 20, 26, 16
RGB 18, 18, 18
RGB 16, 10, 07
RGB 31, 31, 31
RGB 31, 28, 14
RGB 18, 18, 18
RGB 16, 10, 07
RGB 31, 31, 31
RGB 18, 18, 18
RGB 26, 10, 06
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 22, 24
RGB 28, 15, 21
RGB 00, 00, 00
RGB 31, 31, 31
RGB 26, 20, 00
RGB 16, 19, 29
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 02, 30
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 13, 04
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 28, 04, 02
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 18, 23, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 24, 20, 11
RGB 18, 13, 11
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 31
RGB 25, 30, 00
RGB 25, 30, 00
RGB 00, 00, 00
RGB 08, 11, 11
RGB 21, 21, 21
RGB 31, 31, 31
; a06e
SGBBorderMap: ; a06e
db $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $14,$14, $15,$14, $16,$14, $17,$14, $17,$54, $16,$54, $15,$54, $14,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14
db $01,$14, $02,$14, $03,$14, $03,$54, $02,$54, $01,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $24,$14, $25,$14, $26,$14, $07,$14, $07,$54, $26,$54, $25,$54, $24,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$54, $01,$14, $02,$14, $03,$14, $03,$54, $02,$54, $01,$54
db $11,$14, $12,$14, $13,$14, $13,$54, $12,$54, $11,$54, $10,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $24,$14, $34,$14, $35,$14, $35,$54, $34,$54, $33,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $10,$14, $11,$14, $12,$14, $13,$14, $13,$54, $12,$54, $11,$54
db $21,$14, $22,$14, $23,$14, $23,$54, $22,$54, $21,$54, $20,$54, $07,$14, $08,$14, $09,$14, $0a,$14, $0b,$14, $0c,$14, $0d,$14, $07,$14, $07,$14, $18,$14, $09,$14, $1a,$14, $1b,$14, $0d,$14, $0c,$14, $1c,$14, $29,$14, $07,$14, $20,$14, $21,$14, $22,$14, $23,$14, $23,$54, $22,$54, $21,$54
db $31,$14, $32,$14, $07,$14, $07,$14, $32,$54, $36,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $38,$10, $27,$10, $32,$14, $07,$54, $07,$54, $32,$54, $31,$54
db $05,$14, $06,$14, $07,$14, $07,$54, $06,$54, $1f,$10, $37,$10, $06,$14, $07,$14, $07,$54, $06,$54, $05,$54
db $15,$14, $16,$14, $17,$14, $17,$54, $16,$54, $1f,$10, $37,$10, $16,$14, $17,$14, $17,$54, $16,$54, $15,$54
db $25,$14, $26,$14, $07,$14, $07,$54, $26,$54, $1f,$10, $37,$10, $26,$14, $07,$14, $07,$54, $26,$54, $25,$54
db $33,$14, $34,$14, $35,$14, $35,$54, $34,$54, $1f,$10, $37,$10, $34,$14, $35,$14, $35,$54, $34,$54, $33,$54
db $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14
db $02,$54, $01,$54, $07,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $07,$14, $01,$14, $02,$14
db $12,$54, $11,$54, $10,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $10,$14, $11,$14, $12,$14
db $22,$54, $21,$54, $20,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $20,$14, $21,$14, $22,$14
db $32,$54, $31,$54, $30,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $30,$14, $31,$14, $32,$14
db $06,$54, $05,$54, $04,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $04,$14, $05,$14, $06,$14
db $16,$54, $15,$54, $14,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $14,$14, $15,$14, $16,$14
db $26,$54, $25,$54, $24,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $24,$14, $25,$14, $26,$14
db $34,$54, $33,$54, $07,$54, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $07,$14, $33,$14, $34,$14
db $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $1f,$10, $37,$10, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14
db $01,$14, $02,$14, $03,$14, $03,$54, $02,$54, $1f,$10, $37,$10, $02,$14, $03,$14, $03,$54, $02,$54, $01,$54
db $11,$14, $12,$14, $13,$14, $13,$54, $12,$54, $1f,$10, $37,$10, $12,$14, $13,$14, $13,$54, $12,$54, $11,$54
db $21,$14, $22,$14, $23,$14, $23,$54, $22,$54, $1f,$10, $37,$10, $22,$14, $23,$14, $23,$54, $22,$54, $21,$54
db $31,$14, $32,$14, $07,$14, $07,$14, $32,$54, $1f,$10, $37,$10, $32,$14, $07,$54, $07,$54, $32,$54, $31,$54
db $05,$14, $06,$14, $07,$14, $07,$54, $06,$54, $2e,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2f,$10, $2d,$10, $06,$14, $07,$14, $07,$54, $06,$54, $05,$54
db $15,$14, $16,$14, $17,$14, $17,$54, $16,$54, $15,$54, $14,$54, $07,$14, $07,$14, $39,$14, $0e,$14, $09,$14, $0f,$14, $28,$14, $07,$14, $19,$14, $0c,$14, $1c,$14, $29,$14, $2a,$14, $2b,$14, $2c,$14, $39,$14, $07,$14, $07,$14, $14,$14, $15,$14, $16,$14, $17,$14, $17,$54, $16,$54, $15,$54
db $25,$14, $26,$14, $07,$14, $07,$54, $26,$54, $25,$54, $24,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $01,$14, $02,$14, $03,$14, $03,$54, $02,$54, $01,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $24,$14, $25,$14, $26,$14, $07,$14, $07,$54, $26,$54, $25,$54
db $33,$14, $34,$14, $35,$14, $35,$54, $34,$54, $24,$54, $07,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $10,$14, $11,$14, $12,$14, $13,$14, $13,$54, $12,$54, $11,$54, $10,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $24,$14, $34,$14, $35,$14, $35,$54, $34,$54, $33,$54
db $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $20,$14, $21,$14, $22,$14, $23,$14, $23,$54, $22,$54, $21,$54, $20,$54, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14, $07,$14
; a49e
SGBBorderPalettes: ; a49e
RGB 24, 06, 06
RGB 24, 24, 26
RGB 14, 15, 20
RGB 04, 07, 10
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 18, 24, 18
RGB 31, 26, 15
RGB 26, 19, 10
RGB 12, 07, 05
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 18, 06, 31
RGB 31, 31, 29
RGB 31, 12, 00
RGB 00, 00, 00
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 12, 31, 06
RGB 22, 26, 30
RGB 16, 17, 21
RGB 00, 03, 00
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
RGB 31, 31, 25
; a51e
SGBBorder: ; a51e
INCBIN "gfx/misc/sgb_border.2bpp"
; a8be
Palettes_a8be: ; a8be
RGB 30, 26, 15
RGB 00, 23, 00
RGB 30, 26, 15
RGB 31, 21, 00
RGB 30, 26, 15
RGB 31, 00, 00
Palettes_a8ca: ; a8ca
RGB 30, 26, 15
RGB 04, 17, 31
; a8ce
; a8ce
INCLUDE "gfx/pics/palette_pointers.asm"
; b0ce
; b0ce
INCLUDE "gfx/trainers/palette_pointers.asm"
; b1de
LoadMapPals: ; b1de
callba LoadSpecialMapPalette
jr c, .got_pals
ld a, [wPermission]
and 7
ld e, a
ld d, 0
ld hl, .TilesetColorsPointers
add hl, de
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [TimeOfDayPal]
and 3
rept 3
add a
endr
ld e, a
ld d, 0
add hl, de
ld e, l
ld d, h
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, UnknBGPals
ld b, 8
.outer_loop
ld a, [de]
push de
push hl
ld l, a
ld h, 0
rept 3
add hl,hl
endr
ld de, TilesetBGPalette
add hl, de
ld e, l
ld d, h
pop hl
ld c, 1 palettes
.inner_loop
ld a, [de]
inc de
ld [hli], a
dec c
jr nz, .inner_loop
pop de
inc de
dec b
jr nz, .outer_loop
pop af
ld [rSVBK], a
.got_pals
ld a, [TimeOfDayPal]
and 3
ld bc, 8 palettes
ld hl, MapObjectPals
call AddNTimes
ld de, UnknOBPals
ld bc, 8 palettes
ld a, $5 ; BANK(UnknOBPals)
call FarCopyWRAM
ld a, [wPermission]
cp TOWN
jr z, .outside
cp ROUTE
ret nz
.outside
ld a, [MapGroup]
ld l, a
ld h, 0
rept 3
add hl,hl
endr
ld de, RoofPals
add hl, de
ld a, [TimeOfDayPal]
and 3
cp NITE
jr c, .morn_day
rept 4
inc hl
endr
.morn_day
ld de, UnknBGPals + 6 palettes + 2
ld bc, 4
ld a, $5
call FarCopyWRAM
ret
; b279
.TilesetColorsPointers: ; b279
dw TilesetColors1
dw TilesetColors1
dw TilesetColors1
dw TilesetColors2
dw TilesetColors3
dw TilesetColors4
dw TilesetColors2
dw TilesetColors3
; b289
TilesetColors1: ; b289
db $00, $01, $02, $28, $04, $05, $06, $07
db $08, $09, $0a, $28, $0c, $0d, $0e, $0f
db $10, $11, $12, $29, $14, $15, $16, $17
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f
TilesetColors2: ; b289
db $20, $21, $22, $23, $24, $25, $26, $07
db $20, $21, $22, $23, $24, $25, $26, $07
db $10, $11, $12, $13, $14, $15, $16, $07
db $18, $19, $1a, $1b, $1c, $1d, $1e, $07
TilesetColors3: ; b289
db $00, $01, $02, $03, $04, $05, $06, $07
db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f
db $10, $11, $12, $13, $14, $15, $16, $17
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f
TilesetColors4: ; b289
db $00, $01, $02, $03, $04, $05, $06, $07
db $08, $09, $0a, $0b, $0c, $0d, $0e, $0f
db $10, $11, $12, $13, $14, $15, $16, $17
db $18, $19, $1a, $1b, $1c, $1d, $1e, $1f
; b309
Palette_b309: ; b309 mobile
RGB 31, 31, 31
RGB 31, 19, 24
RGB 30, 10, 06
RGB 00, 00, 00
; b311
Palette_b311: ; b311 not mobile
RGB 31, 31, 31
RGB 17, 19, 31
RGB 14, 16, 31
RGB 00, 00, 00
; b319
TilesetBGPalette: ; b319
INCLUDE "tilesets/bg.pal"
MapObjectPals:: ; b469
INCLUDE "tilesets/ob.pal"
RoofPals: ; b569
INCLUDE "tilesets/roof.pal"
Palettes_b641: ; b641
RGB 27, 31, 27
RGB 21, 21, 21
RGB 13, 13, 13
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 07, 06
RGB 20, 02, 03
RGB 00, 00, 00
RGB 27, 31, 27
RGB 10, 31, 09
RGB 04, 14, 01
RGB 00, 00, 00
RGB 27, 31, 27
RGB 08, 12, 31
RGB 01, 04, 31
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 31, 07
RGB 31, 16, 01
RGB 00, 00, 00
RGB 27, 31, 27
RGB 22, 16, 08
RGB 13, 07, 01
RGB 00, 00, 00
RGB 27, 31, 27
RGB 15, 31, 31
RGB 05, 17, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 11, 11, 19
RGB 07, 07, 12
RGB 00, 00, 00
; b681
Palettes_b681: ; b681
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 10, 14, 20
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 27, 31, 27
RGB 31, 19, 10
RGB 31, 07, 04
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 13, 13
RGB 07, 07, 07
RGB 31, 31, 31
RGB 31, 31, 07
RGB 31, 16, 01
RGB 07, 07, 07
RGB 31, 31, 31
RGB 31, 19, 24
RGB 30, 10, 06
RGB 07, 07, 07
RGB 31, 31, 31
RGB 12, 25, 01
RGB 05, 14, 00
RGB 07, 07, 07
RGB 31, 31, 31
RGB 08, 12, 31
RGB 01, 04, 31
RGB 07, 07, 07
RGB 31, 31, 31
RGB 24, 18, 07
RGB 20, 15, 03
RGB 07, 07, 07
Palettes_b6f1: ; b6f1
RGB 31, 31, 31
RGB 18, 23, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 22, 00, 31
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 00, 00
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 25, 22, 00
RGB 15, 20, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 23, 26, 31
RGB 18, 23, 31
RGB 00, 00, 00
Palettes_b719: ; b719
RGB 31, 31, 31
RGB 07, 06, 03
RGB 07, 06, 03
RGB 07, 06, 03
RGB 31, 31, 31
RGB 31, 31, 00
RGB 26, 22, 00
RGB 00, 00, 00
; b729
MalePokegearPals: ; b729
RGB 28, 31, 20
RGB 21, 21, 21
RGB 13, 13, 13
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 00, 00, 31
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 15, 07, 00
RGB 00, 00, 00
RGB 28, 31, 20
RGB 31, 15, 00
RGB 15, 07, 00
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 00, 00, 31
RGB 31, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 15, 07, 00
RGB 31, 00, 00
; b759
FemalePokegearPals: ; b759
RGB 28, 31, 20
RGB 21, 21, 21
RGB 13, 13, 13
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 00, 00, 31
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 15, 07, 00
RGB 00, 00, 00
RGB 28, 31, 20
RGB 10, 18, 31
RGB 13, 06, 31
RGB 00, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 00, 00, 31
RGB 31, 00, 00
RGB 28, 31, 20
RGB 00, 31, 00
RGB 15, 07, 00
RGB 31, 00, 00
; b789
Palettes_b789: ; b789
RGB 31, 31, 31
RGB 30, 22, 24
RGB 18, 18, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 10, 11, 31
RGB 18, 18, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 12, 31, 11
RGB 18, 18, 18
RGB 00, 00, 00
RGB 31, 31, 31
RGB 29, 26, 05
RGB 18, 18, 18
RGB 00, 00, 00
; b7a9
Palettes_b7a9: ; b7a9
RGB 31, 31, 31
RGB 24, 25, 28
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 10, 06
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 15, 31, 00
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 15, 31
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 15, 21, 31
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 11
RGB 31, 31, 06
RGB 24, 24, 09
RGB 00, 00, 00
RGB 31, 31, 31
RGB 16, 19, 29
RGB 25, 22, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 21, 21, 21
RGB 13, 13, 13
RGB 00, 00, 00
RGB 31, 31, 31
RGB 30, 10, 06
RGB 31, 00, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 12, 25, 01
RGB 05, 14, 00
RGB 00, 00, 00
RGB 31, 31, 31
RGB 12, 25, 01
RGB 30, 10, 06
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 06
RGB 20, 15, 03
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 06
RGB 15, 21, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 06
RGB 20, 15, 03
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 24, 21
RGB 31, 13, 31
RGB 00, 00, 00
RGB 31, 31, 31
RGB 31, 31, 31
RGB 00, 00, 00
RGB 00, 00, 00
; b829