Organize the engine/ directory, take 3
Renamed `title` to `movies`. Moved some functions from `engine/routines/` to their fitting directories, and cleaned up the base `engine/` directory. Moved `engine/pokemon/tmhm.asm` back to `engine/items/`. Made a new subdirectory: * engine/tilesets: Contains all map-related graphics routines.
This commit is contained in:
86
engine/tilesets/map_palettes.asm
Normal file
86
engine/tilesets/map_palettes.asm
Normal file
@@ -0,0 +1,86 @@
|
||||
SwapTextboxPalettes:: ; 4c000
|
||||
hlcoord 0, 0
|
||||
decoord 0, 0, wAttrMap
|
||||
ld b, SCREEN_HEIGHT
|
||||
.loop
|
||||
push bc
|
||||
ld c, SCREEN_WIDTH
|
||||
.innerloop
|
||||
ld a, [hl]
|
||||
push hl
|
||||
srl a
|
||||
jr c, .UpperNybble
|
||||
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:
|
||||
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
|
||||
jr nz, .innerloop
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
ScrollBGMapPalettes:: ; 4c03f
|
||||
ld hl, wBGMapBuffer
|
||||
ld de, wBGMapPalBuffer
|
||||
.loop
|
||||
ld a, [hl]
|
||||
push hl
|
||||
srl a
|
||||
jr c, .UpperNybble
|
||||
|
||||
; .LowerNybble
|
||||
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:
|
||||
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
|
||||
jr nz, .loop
|
||||
ret
|
20
engine/tilesets/mapgroup_roofs.asm
Normal file
20
engine/tilesets/mapgroup_roofs.asm
Normal file
@@ -0,0 +1,20 @@
|
||||
LoadMapGroupRoof:: ; 1c000
|
||||
ld a, [wMapGroup]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, MapGroupRoofs
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
ret z
|
||||
ld hl, Roofs
|
||||
ld bc, 9 tiles
|
||||
call AddNTimes
|
||||
ld de, vTiles2 tile $0a
|
||||
ld bc, 9 tiles
|
||||
call CopyBytes
|
||||
ret
|
||||
; 1c021
|
||||
|
||||
|
||||
INCLUDE "data/maps/roofs.asm"
|
1060
engine/tilesets/tileset_anims.asm
Normal file
1060
engine/tilesets/tileset_anims.asm
Normal file
File diff suppressed because it is too large
Load Diff
151
engine/tilesets/tileset_palettes.asm
Normal file
151
engine/tilesets/tileset_palettes.asm
Normal file
@@ -0,0 +1,151 @@
|
||||
LoadSpecialMapPalette: ; 494ac
|
||||
ld a, [wMapTileset]
|
||||
cp TILESET_POKECOM_CENTER
|
||||
jr z, .pokecom_2f
|
||||
cp TILESET_BATTLE_TOWER
|
||||
jr z, .battle_tower
|
||||
cp TILESET_ICE_PATH
|
||||
jr z, .ice_path
|
||||
cp TILESET_HOUSE
|
||||
jr z, .house
|
||||
cp TILESET_RADIO_TOWER
|
||||
jr z, .radio_tower
|
||||
cp TILESET_MANSION
|
||||
jr z, .mansion_mobile
|
||||
jr .do_nothing
|
||||
|
||||
.pokecom_2f
|
||||
call LoadPokeComPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.battle_tower
|
||||
call LoadBattleTowerPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.ice_path
|
||||
ld a, [wEnvironment]
|
||||
and $7
|
||||
cp INDOOR ; Hall of Fame
|
||||
jr z, .do_nothing
|
||||
call LoadIcePathPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.house
|
||||
call LoadHousePalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.radio_tower
|
||||
call LoadRadioTowerPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.mansion_mobile
|
||||
call LoadMansionPalette
|
||||
scf
|
||||
ret
|
||||
|
||||
.do_nothing
|
||||
and a
|
||||
ret
|
||||
; 494f2
|
||||
|
||||
LoadPokeComPalette: ; 494f2
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, PokeComPalette
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 49501
|
||||
|
||||
PokeComPalette: ; 49501
|
||||
INCLUDE "gfx/tilesets/pokecom_center.pal"
|
||||
; 49541
|
||||
|
||||
LoadBattleTowerPalette: ; 49541
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, BattleTowerPalette
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 49550
|
||||
|
||||
BattleTowerPalette: ; 49550
|
||||
INCLUDE "gfx/tilesets/battle_tower.pal"
|
||||
; 49590
|
||||
|
||||
LoadIcePathPalette: ; 49590
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, IcePathPalette
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 4959f
|
||||
|
||||
IcePathPalette: ; 4959f
|
||||
INCLUDE "gfx/tilesets/ice_path.pal"
|
||||
; 495df
|
||||
|
||||
LoadHousePalette: ; 495df
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, HousePalette
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 495ee
|
||||
|
||||
HousePalette: ; 495ee
|
||||
INCLUDE "gfx/tilesets/house.pal"
|
||||
; 4962e
|
||||
|
||||
LoadRadioTowerPalette: ; 4962e
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, RadioTowerPalette
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 4963d
|
||||
|
||||
RadioTowerPalette: ; 4963d
|
||||
INCLUDE "gfx/tilesets/radio_tower.pal"
|
||||
; 4967d
|
||||
|
||||
MansionPalette1: ; 4967d
|
||||
INCLUDE "gfx/tilesets/mansion_1.pal"
|
||||
; 496c5
|
||||
|
||||
LoadMansionPalette: ; 496c5
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1
|
||||
ld hl, MansionPalette1
|
||||
ld bc, 8 palettes
|
||||
call FarCopyWRAM
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1 palette PAL_BG_YELLOW
|
||||
ld hl, MansionPalette2
|
||||
ld bc, 1 palettes
|
||||
call FarCopyWRAM
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1 palette PAL_BG_WATER
|
||||
ld hl, MansionPalette1 + 6 palettes
|
||||
ld bc, 1 palettes
|
||||
call FarCopyWRAM
|
||||
ld a, BANK(wBGPals1)
|
||||
ld de, wBGPals1 palette PAL_BG_ROOF
|
||||
ld hl, MansionPalette1 + 8 palettes
|
||||
ld bc, 1 palettes
|
||||
call FarCopyWRAM
|
||||
ret
|
||||
; 496fe
|
||||
|
||||
MansionPalette2: ; 496fe
|
||||
INCLUDE "gfx/tilesets/mansion_2.pal"
|
||||
; 49706
|
415
engine/tilesets/timeofdaypals.asm
Normal file
415
engine/tilesets/timeofdaypals.asm
Normal file
@@ -0,0 +1,415 @@
|
||||
DummyPredef35: ; 8c000
|
||||
DummyPredef36:
|
||||
ret
|
||||
|
||||
UpdateTimeOfDayPal:: ; 8c001
|
||||
call UpdateTime
|
||||
ld a, [wTimeOfDay]
|
||||
ld [wCurTimeOfDay], a
|
||||
call GetTimePalette
|
||||
ld [wTimeOfDayPal], a
|
||||
ret
|
||||
; 8c011
|
||||
|
||||
|
||||
_TimeOfDayPals:: ; 8c011
|
||||
; return carry if pals are changed
|
||||
|
||||
; forced pals?
|
||||
ld hl, wTimeOfDayPalFlags
|
||||
bit 7, [hl]
|
||||
jr nz, .dontchange
|
||||
|
||||
; do we need to bother updating?
|
||||
ld a, [wTimeOfDay]
|
||||
ld hl, wCurTimeOfDay
|
||||
cp [hl]
|
||||
jr z, .dontchange
|
||||
|
||||
; if so, the time of day has changed
|
||||
ld a, [wTimeOfDay]
|
||||
ld [wCurTimeOfDay], a
|
||||
|
||||
; get palette id
|
||||
call GetTimePalette
|
||||
|
||||
; same palette as before?
|
||||
ld hl, wTimeOfDayPal
|
||||
cp [hl]
|
||||
jr z, .dontchange
|
||||
|
||||
; update palette id
|
||||
ld [wTimeOfDayPal], a
|
||||
|
||||
; save bg palette 7
|
||||
ld hl, wBGPals1 palette PAL_BG_TEXT
|
||||
|
||||
; save wram bank
|
||||
ld a, [rSVBK]
|
||||
ld b, a
|
||||
|
||||
ld a, BANK(wBGPals1)
|
||||
ld [rSVBK], a
|
||||
|
||||
; push palette
|
||||
ld c, NUM_PAL_COLORS
|
||||
.push
|
||||
ld d, [hl]
|
||||
inc hl
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
push de
|
||||
dec c
|
||||
jr nz, .push
|
||||
|
||||
; restore wram bank
|
||||
ld a, b
|
||||
ld [rSVBK], a
|
||||
|
||||
|
||||
; update sgb pals
|
||||
ld b, SCGB_MAPPALS
|
||||
call GetSGBLayout
|
||||
|
||||
|
||||
; restore bg palette 7
|
||||
ld hl, wOBPals1 - 1 ; last byte in wBGPals1
|
||||
|
||||
; save wram bank
|
||||
ld a, [rSVBK]
|
||||
ld d, a
|
||||
|
||||
ld a, BANK(wOBPals1)
|
||||
ld [rSVBK], a
|
||||
|
||||
; pop palette
|
||||
ld e, NUM_PAL_COLORS
|
||||
.pop
|
||||
pop bc
|
||||
ld [hl], c
|
||||
dec hl
|
||||
ld [hl], b
|
||||
dec hl
|
||||
dec e
|
||||
jr nz, .pop
|
||||
|
||||
; restore wram bank
|
||||
ld a, d
|
||||
ld [rSVBK], a
|
||||
|
||||
; update palettes
|
||||
call _UpdateTimePals
|
||||
call DelayFrame
|
||||
|
||||
; successful change
|
||||
scf
|
||||
ret
|
||||
|
||||
.dontchange
|
||||
; no change occurred
|
||||
and a
|
||||
ret
|
||||
; 8c070
|
||||
|
||||
|
||||
_UpdateTimePals:: ; 8c070
|
||||
ld c, $9 ; normal
|
||||
call GetTimePalFade
|
||||
call DmgToCgbTimePals
|
||||
ret
|
||||
; 8c079
|
||||
|
||||
FadeInPalettes:: ; 8c079
|
||||
ld c, $12
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
call ConvertTimePalsDecHL
|
||||
ret
|
||||
; 8c084
|
||||
|
||||
FadeOutPalettes:: ; 8c084
|
||||
call FillWhiteBGColor
|
||||
ld c, $9
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
call ConvertTimePalsIncHL
|
||||
ret
|
||||
; 8c092
|
||||
|
||||
BattleTowerFade: ; 8c092
|
||||
call FillWhiteBGColor
|
||||
ld c, $9
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
.asm_8c09c
|
||||
call DmgToCgbTimePals
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
ld c, $7
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .asm_8c09c
|
||||
ret
|
||||
; 8c0ab
|
||||
|
||||
FadeInQuickly: ; 8c0ab
|
||||
ld c, $0
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
call ConvertTimePalsIncHL
|
||||
ret
|
||||
; 8c0b6
|
||||
|
||||
FadeBlackQuickly: ; 8c0b6
|
||||
ld c, $9
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
call ConvertTimePalsDecHL
|
||||
ret
|
||||
; 8c0c1
|
||||
|
||||
|
||||
FillWhiteBGColor: ; 8c0c1
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, BANK(wBGPals1)
|
||||
ld [rSVBK], a
|
||||
|
||||
ld hl, wBGPals1
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
ld hl, wBGPals1 + 1 palettes
|
||||
ld c, 6
|
||||
.loop
|
||||
ld a, e
|
||||
ld [hli], a
|
||||
ld a, d
|
||||
ld [hli], a
|
||||
rept 6
|
||||
inc hl
|
||||
endr
|
||||
dec c
|
||||
jr nz, .loop
|
||||
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ret
|
||||
; 8c0e5
|
||||
|
||||
ReplaceTimeOfDayPals: ; 8c0e5
|
||||
ld hl, .BrightnessLevels
|
||||
ld a, [wMapTimeOfDay]
|
||||
cp $4 ; Dark cave, needs Flash
|
||||
jr z, .DarkCave
|
||||
and $7
|
||||
add l
|
||||
ld l, a
|
||||
ld a, $0
|
||||
adc h
|
||||
ld h, a
|
||||
ld a, [hl]
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.DarkCave:
|
||||
ld a, [wStatusFlags]
|
||||
bit STATUSFLAGS_FLASH_F, a
|
||||
jr nz, .UsedFlash
|
||||
ld a, %11111111 ; 3, 3, 3, 3
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
|
||||
.UsedFlash:
|
||||
ld a, %10101010 ; 2, 2, 2, 2
|
||||
ld [wTimeOfDayPalset], a
|
||||
ret
|
||||
; 8c10f (23:410f)
|
||||
|
||||
.BrightnessLevels: ; 8c10f
|
||||
dc 3, 2, 1, 0
|
||||
dc 1, 1, 1, 1
|
||||
dc 2, 2, 2, 2
|
||||
dc 0, 0, 0, 0
|
||||
dc 3, 3, 3, 3
|
||||
dc 3, 2, 1, 0
|
||||
dc 3, 2, 1, 0
|
||||
dc 3, 2, 1, 0
|
||||
; 8c117
|
||||
|
||||
GetTimePalette: ; 8c117
|
||||
ld a, [wTimeOfDay]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, .TimePalettes
|
||||
add hl, de
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp hl
|
||||
; 8c126
|
||||
|
||||
.TimePalettes:
|
||||
dw .MorningPalette
|
||||
dw .DayPalette
|
||||
dw .NitePalette
|
||||
dw .DarknessPalette
|
||||
|
||||
.MorningPalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00000011 ; 0
|
||||
ret
|
||||
|
||||
.DayPalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00001100 ; 1
|
||||
srl a
|
||||
srl a
|
||||
ret
|
||||
|
||||
.NitePalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %00110000 ; 2
|
||||
swap a
|
||||
ret
|
||||
|
||||
.DarknessPalette:
|
||||
ld a, [wTimeOfDayPalset]
|
||||
and %11000000 ; 3
|
||||
rlca
|
||||
rlca
|
||||
ret
|
||||
; 8c14e
|
||||
|
||||
|
||||
DmgToCgbTimePals: ; 8c14e
|
||||
push hl
|
||||
push de
|
||||
ld a, [hli]
|
||||
call DmgToCgbBGPals
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
call DmgToCgbObjPals
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
; 8c15e
|
||||
|
||||
ConvertTimePalsIncHL: ; 8c15e
|
||||
.loop
|
||||
call DmgToCgbTimePals
|
||||
inc hl
|
||||
inc hl
|
||||
inc hl
|
||||
ld c, 2
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 8c16d
|
||||
|
||||
ConvertTimePalsDecHL: ; 8c16d
|
||||
.loop
|
||||
call DmgToCgbTimePals
|
||||
dec hl
|
||||
dec hl
|
||||
dec hl
|
||||
ld c, 2
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 8c17c
|
||||
|
||||
|
||||
GetTimePalFade: ; 8c17c
|
||||
; check cgb
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
jr nz, .cgb
|
||||
|
||||
; else: dmg
|
||||
|
||||
; index
|
||||
ld a, [wTimeOfDayPal]
|
||||
and %11
|
||||
|
||||
; get fade table
|
||||
push bc
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, .dmgfades
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
pop bc
|
||||
|
||||
; get place in fade table
|
||||
ld b, $0
|
||||
add hl, bc
|
||||
ret
|
||||
|
||||
.cgb
|
||||
ld hl, .cgbfade
|
||||
ld b, $0
|
||||
add hl, bc
|
||||
ret
|
||||
|
||||
.dmgfades
|
||||
dw .morn
|
||||
dw .day
|
||||
dw .nite
|
||||
dw .darkness
|
||||
|
||||
.morn
|
||||
db %11111111, %11111111, %11111111
|
||||
db %11111110, %11111110, %11111110
|
||||
db %11111001, %11100100, %11100100
|
||||
db %11100100, %11010000, %11010000
|
||||
db %10010000, %10000000, %10000000
|
||||
db %01000000, %01000000, %01000000
|
||||
db %00000000, %00000000, %00000000
|
||||
|
||||
.day
|
||||
db %11111111, %11111111, %11111111
|
||||
db %11111110, %11111110, %11111110
|
||||
db %11111001, %11100100, %11100100
|
||||
db %11100100, %11010000, %11010000
|
||||
db %10010000, %10000000, %10000000
|
||||
db %01000000, %01000000, %01000000
|
||||
db %00000000, %00000000, %00000000
|
||||
|
||||
.nite
|
||||
db %11111111, %11111111, %11111111
|
||||
db %11111110, %11111110, %11111110
|
||||
db %11111001, %11100100, %11100100
|
||||
db %11101001, %11010000, %11010000
|
||||
db %10010000, %10000000, %10000000
|
||||
db %01000000, %01000000, %01000000
|
||||
db %00000000, %00000000, %00000000
|
||||
|
||||
.darkness
|
||||
db %11111111, %11111111, %11111111
|
||||
db %11111110, %11111110, %11111111
|
||||
db %11111110, %11100100, %11111111
|
||||
db %11111101, %11010000, %11111111
|
||||
db %11111101, %10000000, %11111111
|
||||
db %00000000, %01000000, %00000000
|
||||
db %00000000, %00000000, %00000000
|
||||
|
||||
.cgbfade
|
||||
db %11111111, %11111111, %11111111
|
||||
db %11111110, %11111110, %11111110
|
||||
db %11111001, %11111001, %11111001
|
||||
db %11100100, %11100100, %11100100
|
||||
db %10010000, %10010000, %10010000
|
||||
db %01000000, %01000000, %01000000
|
||||
db %00000000, %00000000, %00000000
|
||||
; 8c20f
|
Reference in New Issue
Block a user