gfx: re-organize some graphics and disassemble gfx load code
All graphics were split so that proper labels could be placed. Font was not split, because that was nicely handled using the charmap constants. If proper lengths should also be handled using automatic calculation using labels, some graphics would need further splitting up in order to place labels.s Signed-off-by: Tauwasser <Tauwasser@tauwasser.eu>
1
Makefile
|
|
@ -77,6 +77,7 @@ $(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace
|
|||
$(BUILD)/gfx/sgb/sgb_border.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/title/title.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/trainer_card/trainer_card.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/minigames/slots.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/minigames/poker.2bpp: tools/gfx += --trim-whitespace
|
||||
$(BUILD)/gfx/intro/purin_pikachu.2bpp: tools/gfx += --trim-whitespace
|
||||
|
|
|
|||
139
engine/gfx.asm
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "Misc GFX Loading Functions", ROMX[$4000], BANK[$3E]
|
||||
|
||||
LoadFontGraphics:: ; f8000 (3e:4000)
|
||||
ld de, FontGFX
|
||||
ld hl, $8800
|
||||
lb bc, BANK(FontGFX), ((FontGFXEnd - FontGFX) / LEN_1BPP_TILE)
|
||||
jp CopyVideoDataDoubleOptimized
|
||||
LoadFontExtraGraphicsWithCursor:: ; f800c (3e:400c)
|
||||
ld de, FontExtraCDEFGHIVSLM_GFX
|
||||
ld hl, $9620
|
||||
lb bc, BANK(FontExtraCDEFGHIVSLM_GFX), ((FontSmallKanaPunctuationGFXEnd - FontExtraCDEFGHIVSLM_GFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ld de, BlackTileAndCursor1bppGFX
|
||||
ld hl, $9600
|
||||
lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFXEnd - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
jr LoadActiveFrameGraphics
|
||||
LoadPokemonMenuGraphics:: ; f8026 (3e:4026)
|
||||
ld de, BattleHPBarGFX
|
||||
ld hl, $9600
|
||||
lb bc, BANK(BattleHPBarGFX), ((LevelUpGFXEnd - BattleHPBarGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
jr LoadActiveFrameGraphics
|
||||
LoadHexadecimalFontOrHUDGraphics:: ; f8034 (3e:4034)
|
||||
call LoadActiveFrameGraphics
|
||||
ld hl, $d153
|
||||
bit 0, [hl]
|
||||
jr z, LoadHudGraphics
|
||||
ld hl, $9660
|
||||
ld de, FontGFX + (("0" - "ア") * $08)
|
||||
lb bc, BANK(FontGFX), ("9" - "0" + 1)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld hl, $9700
|
||||
ld de, FontExtraAB_GFX
|
||||
lb bc, BANK(FontExtraAB_GFX), ("F" - "A" + 1)
|
||||
call CopyVideoDataOptimized
|
||||
ret
|
||||
LoadHudGraphics:: ; f8057 (3e:4057)
|
||||
ld hl, $9660
|
||||
ld de, FontGFX + (("0" - "ア") * $08)
|
||||
lb bc, BANK(FontGFX), ("9" - "0" + 1)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld hl, $9700
|
||||
ld de, $7381
|
||||
ld bc, $0401
|
||||
call CopyVideoDataOptimized
|
||||
ld hl, $9710
|
||||
ld de, HUD_GFX
|
||||
lb bc, BANK(HUD_GFX), ((HUD_GFXEnd - HUD_GFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ret
|
||||
LoadActiveFrameGraphics:: ; f807c (3e:407c)
|
||||
ld a, [wActiveFrame]
|
||||
ld bc, (FrameGFXFirstFrameEnd - FrameGFXFirstFrame)
|
||||
ld hl, FrameGFX
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, $9790
|
||||
lb bc, BANK(FrameGFX), ((FrameGFXFirstFrameEnd - FrameGFXFirstFrame) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld hl, $97f0
|
||||
ld de, EmptyTile1bppGFX
|
||||
lb bc, BANK(EmptyTile1bppGFX), ((EmptyTile1bppGFXEnd - EmptyTile1bppGFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ret
|
||||
LoadPokeDexGraphics:: ; f80a0 (3e:40a0)
|
||||
call LoadPokemonMenuGraphics
|
||||
ld de, PokedexGFX
|
||||
ld hl, $9600
|
||||
lb bc, BANK(PokedexGFX), ((PokedexLocationGFXEnd - PokedexGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ld de, PokeBallsGFX
|
||||
ld hl, $9720
|
||||
lb bc, BANK(PokeBallsGFX), 1 ; 1 of 4 tiles
|
||||
jp CopyVideoDataOptimized
|
||||
LoadBattleGraphics:: ; f80bb (3e:40bb)
|
||||
ld de, BattleHPBarGFX
|
||||
ld hl, $9600
|
||||
lb bc, BANK(BattleHPBarGFX), ((BattleHPBarGFXEnd - BattleHPBarGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ld hl, $9700
|
||||
ld de, BattleMarkersGFX
|
||||
lb bc, BANK(BattleMarkersGFX), ((BattleMarkersGFXEnd - BattleMarkersGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
call LoadActiveFrameGraphics
|
||||
ld de, HpExpBarParts0GFX
|
||||
ld hl, $96c0
|
||||
lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFXEnd - HpExpBarParts0GFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, HpExpBarParts1GFX
|
||||
ld hl, $9730
|
||||
lb bc, BANK(HpExpBarParts1GFX), ((HpExpBarParts3GFXEnd - HpExpBarParts1GFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, ExpBarGFX
|
||||
ld hl, $9550
|
||||
lb bc, BANK(ExpBarGFX), ((ExpBarGFXEnd - ExpBarGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ret
|
||||
LoadPokemonStatsGraphics:: ; f80fb (3e:40fb)
|
||||
call LoadPokemonMenuGraphics
|
||||
ld de, HpExpBarParts0GFX
|
||||
ld hl, $96c0
|
||||
lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts0GFXEnd - HpExpBarParts0GFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, HpExpBarParts1GFX
|
||||
ld hl, $9780
|
||||
lb bc, BANK(HpExpBarParts1GFX), 1 ; 1 of 6 tiles
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, HpExpBarParts2GFX
|
||||
ld hl, $9760
|
||||
lb bc, BANK(HpExpBarParts0GFX), ((HpExpBarParts2GFXEnd - HpExpBarParts2GFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, ExpBarGFX
|
||||
ld hl, $9550
|
||||
lb bc, BANK(ExpBarGFX), ((ExpBarGFXEnd - ExpBarGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ld de, StatsGFX
|
||||
ld hl, $9310
|
||||
lb bc, BANK(StatsGFX), ((StatsGFXEnd - StatsGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
ret
|
||||
LoadBackpackGraphics:: ; f813b (3e:413b)
|
||||
ld de, BlackTileAndCursor1bppGFX
|
||||
ld hl, $9600
|
||||
lb bc, BANK(BlackTileAndCursor1bppGFX), ((BlackTileAndCursor1bppGFXEnd - BlackTileAndCursor1bppGFX) / LEN_1BPP_TILE)
|
||||
call CopyVideoDataDoubleOptimized
|
||||
ld de, PackIconGFX
|
||||
ld hl, $9620
|
||||
lb bc, BANK(PackIconGFX), 12 ; 12 of 15 tiles
|
||||
call CopyVideoDataOptimized
|
||||
ld de, FontSmallKanaPunctuationGFX
|
||||
ld hl, $96e0
|
||||
lb bc, BANK(FontSmallKanaPunctuationGFX), ((FontSmallKanaPunctuationGFXEnd - FontSmallKanaPunctuationGFX) / LEN_2BPP_TILE)
|
||||
call CopyVideoDataOptimized
|
||||
jp LoadActiveFrameGraphics
|
||||
; 0xf8162
|
||||
110
gfx.asm
|
|
@ -46,14 +46,15 @@ MailIconGFX::
|
|||
INCBIN "gfx/icons/mail.2bpp"
|
||||
|
||||
SECTION "Trainer Card GFX", ROMX[$7171], BANK[$04]
|
||||
TrainerCardGFX::
|
||||
INCBIN "gfx/trainer_card/trainer_card.2bpp"
|
||||
TrainerCardLeadersGFX::
|
||||
INCBIN "gfx/trainer_card/leaders.2bpp"
|
||||
TrainerCardGFX:: INCBIN "gfx/trainer_card/trainer_card.2bpp" ; 0x013171--0x013381
|
||||
TrainerCardColonGFX:: INCBIN "gfx/trainer_card/colon.2bpp" ; 0x013381--0x013391
|
||||
TrainerCardIDNoGFX:: INCBIN "gfx/trainer_card/id_no.2bpp" ; 0x013391--0x0133B1
|
||||
TrainerCardIDNoGFXEnd::
|
||||
TrainerCardLeadersGFX:: INCBIN "gfx/trainer_card/leaders.2bpp" ; 0x0133B1--0x133BA1
|
||||
|
||||
SECTION "Unused Leader", ROMX[$7BA3], BANK[$04]
|
||||
UnusedLeaderNameGFX::
|
||||
INCBIN "gfx/trainer_card/unused_leader_name.2bpp"
|
||||
db $18, $00 ; leftover of previous graphics
|
||||
|
||||
Unreferenced_UnusedLeaderNameGFX:: INCBIN "gfx/trainer_card/unused_leader_name.2bpp" ; 0x1
|
||||
|
||||
SECTION "Bank 6 Tilesets 00", ROMX[$4000], BANK[$06]
|
||||
Tileset_00_GFX:
|
||||
|
|
@ -135,6 +136,10 @@ SECTION "Bank C Tilesets 0c", ROMX[$7100], BANK[$0C]
|
|||
Tileset_0c_GFX:
|
||||
INCBIN "gfx/tilesets/tileset_0c.2bpp"
|
||||
|
||||
SECTION "PokeBalls GFX", ROMX[$4494], BANK[$0E]
|
||||
|
||||
PokeBallsGFX:: INCBIN "gfx/misc/poke_balls.2bpp" ; 0x038494--0x0384d4
|
||||
|
||||
SECTION "Pokedex GFX", ROMX[$40D5], BANK[$11]
|
||||
PokedexButtonsGFX::
|
||||
INCBIN "gfx/pokedex/buttons.2bpp"
|
||||
|
|
@ -403,44 +408,63 @@ INCBIN "gfx/intro/fushigibana.2bpp"
|
|||
|
||||
SECTION "Misc GFX", ROMX[$4162], BANK[$3E]
|
||||
FontExtraGFX::
|
||||
INCBIN "gfx/font/font_extra.2bpp"
|
||||
FontGFX::
|
||||
INCBIN "gfx/font/font.1bpp"
|
||||
FontExtraAB_GFX:: INCBIN "gfx/font/font_extra.ab.2bpp" ; 0x0f8162--0x0f8182
|
||||
FontExtraCDEFGHIVSLM_GFX:: INCBIN "gfx/font/font_extra.cdefghivslm.2bpp" ; 0x0f8182--0x0f8242
|
||||
FontSmallKanaPunctuationGFX:: INCBIN "gfx/font/small_kana_punctuation.2bpp" ; 0x0f8242--0x0f82f2
|
||||
FontSmallKanaPunctuationGFXEnd::
|
||||
Unreferenced_DefaultFrame0GFX:: INCBIN "gfx/frames/1.2bpp" ; 0x0f82f2--0x0f8362
|
||||
FontGFX:: INCBIN "gfx/font/font.1bpp" ; 0x0f8362--0x0f8712 kana
|
||||
FontGFXEnd:: ; 0x0f8712--0x0f8762 numbers
|
||||
FontBattleExtraGFX::
|
||||
INCBIN "gfx/font/font_battle_extra.2bpp"
|
||||
BattleHPBarGFX:: INCBIN "gfx/battle/hp_bar.2bpp" ; 0x0f8762--0x0f8822
|
||||
BattleHPBarGFXEnd::
|
||||
HpExpBarParts0_2bppGFX:: INCBIN "gfx/battle/hp_exp_bar_parts0.2bpp" ; 0x0f8822--0x0f8862
|
||||
BattleMarkersGFX:: INCBIN "gfx/battle/markers.2bpp" ; 0x0f8862--0x0f8892
|
||||
BattleMarkersGFXEnd::
|
||||
LevelUpGFX:: INCBIN "gfx/battle/levelup.2bpp" ; 0x0f8892--0x0f88f2
|
||||
LevelUpGFXEnd::
|
||||
Unreferenced_DefaultFrame1:: INCBIN "gfx/frames/1.2bpp" ; 0x0f88f2--0x0f8962
|
||||
FrameGFX::
|
||||
INCBIN "gfx/frames/1.1bpp"
|
||||
INCBIN "gfx/frames/2.1bpp"
|
||||
INCBIN "gfx/frames/3.1bpp"
|
||||
INCBIN "gfx/frames/4.1bpp"
|
||||
INCBIN "gfx/frames/5.1bpp"
|
||||
INCBIN "gfx/frames/6.1bpp"
|
||||
INCBIN "gfx/frames/7.1bpp"
|
||||
INCBIN "gfx/frames/8.1bpp"
|
||||
INCBIN "gfx/frames/9.1bpp"
|
||||
StatsSeparatorGFX::
|
||||
INCBIN "gfx/stats/separator.2bpp"
|
||||
StatsGFX::
|
||||
INCBIN "gfx/stats/stats.2bpp"
|
||||
HPExpBarBorderGFX::
|
||||
INCBIN "gfx/battle/hp_exp_bar_border.1bpp"
|
||||
ExpBarGFX::
|
||||
INCBIN "gfx/battle/exp_bar.2bpp"
|
||||
PokedexUnitsGFX::
|
||||
INCBIN "gfx/pokedex/m_kg.2bpp"
|
||||
PokedexGFX::
|
||||
INCBIN "gfx/pokedex/pokedex.2bpp"
|
||||
TownMapGFX::
|
||||
INCBIN "gfx/pokegear/town_map.2bpp"
|
||||
HUD_GFX::
|
||||
INCBIN "gfx/hud/hud.2bpp"
|
||||
BoldAlphabetGFX::
|
||||
INCBIN "gfx/font/alphabet.1bpp"
|
||||
AnnonAlphabetGFX::
|
||||
INCBIN "gfx/font/annon_alphabet.1bpp"
|
||||
INCBIN "gfx/font/gfx_f9322.1bpp"
|
||||
PackIconGFX::
|
||||
INCBIN "gfx/pack/pack_icons.2bpp"
|
||||
FrameGFXFirstFrame:: INCBIN "gfx/frames/1.1bpp" ; 0x0f8962--0x0f8992
|
||||
FrameGFXFirstFrameEnd::
|
||||
INCBIN "gfx/frames/2.1bpp" ; 0x0f8992--0x0f89c2
|
||||
INCBIN "gfx/frames/3.1bpp" ; 0x0f89c2--0x0f89f2
|
||||
INCBIN "gfx/frames/4.1bpp" ; 0x0f89f2--0x0f8a22
|
||||
INCBIN "gfx/frames/5.1bpp" ; 0x0f8a22--0x0f8a52
|
||||
INCBIN "gfx/frames/6.1bpp" ; 0x0f8a52--0x0f8a82
|
||||
INCBIN "gfx/frames/7.1bpp" ; 0x0f8a82--0x0f8ab2
|
||||
INCBIN "gfx/frames/8.1bpp" ; 0x0f8ab2--0x0f8ae2
|
||||
INCBIN "gfx/frames/9.1bpp" ; 0x0f8ae2--0x0f8b12
|
||||
StatsGFX:: INCBIN "gfx/stats/separator.2bpp" ; 0x0f8b12--0x0f8b22
|
||||
INCBIN "gfx/stats/stats.2bpp" ; 0x0f8b22--0x0f8c22
|
||||
StatsGFXEnd::
|
||||
|
||||
HpExpBarParts0GFX:: INCBIN "gfx/battle/hp_exp_bar_parts0.1bpp" ; 0x0f8c42--0x0f8c5a
|
||||
HpExpBarParts0GFXEnd::
|
||||
HpExpBarParts1GFX:: INCBIN "gfx/battle/hp_exp_bar_parts1.1bpp" ; 0x0f8c42--0x0f8c5a
|
||||
HpExpBarParts1GFXEnd::
|
||||
HpExpBarParts2GFX:: INCBIN "gfx/battle/hp_exp_bar_parts2.1bpp" ; 0x0f8c5a--0x0f8c6a
|
||||
HpExpBarParts2GFXEnd::
|
||||
HpExpBarParts3GFX:: INCBIN "gfx/battle/hp_exp_bar_parts3.1bpp" ; 0x0f8c6a--0x0f8c72
|
||||
HpExpBarParts3GFXEnd::
|
||||
ExpBarGFX:: INCBIN "gfx/battle/exp_bar.2bpp" ; 0x0f8c72--0x0f8cf2
|
||||
ExpBarGFXEnd::
|
||||
PokedexGFX:: INCBIN "gfx/pokedex/pokedex.2bpp" ; 0x0f8cf2--0x0f8dc2
|
||||
PokedexGFXEnd::
|
||||
PokedexLocationGFX:: INCBIN "gfx/pokedex/locations.2bpp" ; 0x0f8dc2--0x0f8e12
|
||||
PokedexLocationGFXEnd::
|
||||
TownMapGFX:: INCBIN "gfx/pokegear/town_map.2bpp" ; 0x0f8e12--0x0f8fc2
|
||||
TownMapGFXEnd::
|
||||
HUD_GFX:: INCBIN "gfx/hud/hud.2bpp" ; 0x0f8fc2--0x0f9052
|
||||
HUD_GFXEnd::
|
||||
BoldAlphabetGFX:: INCBIN "gfx/font/alphabet.1bpp"
|
||||
AnnonAlphabetGFX:: INCBIN "gfx/font/annon_alphabet.1bpp"
|
||||
EmptyTile1bppGFX:: INCBIN "gfx/misc/empty_tile.1bpp" ; 0x0f9322--0x0f932a
|
||||
EmptyTile1bppGFXEnd::
|
||||
BlackTileAndCursor1bppGFX:: INCBIN "gfx/misc/black_tile_cursor.1bpp" ; 0x0f932a--0x0f933a
|
||||
BlackTileAndCursor1bppGFXEnd::
|
||||
PackIconGFX:: INCBIN "gfx/pack/pack_icons.2bpp" ; 0x0f933a--0x0f941a
|
||||
PackIconGFXEnd::
|
||||
|
||||
SECTION "Town Map Cursor", ROMX[$506F], BANK[$3F]
|
||||
TownMapCursorGFX::
|
||||
|
|
|
|||
BIN
gfx/battle/hp_bar.png
Normal file
|
After Width: | Height: | Size: 199 B |
|
Before Width: | Height: | Size: 140 B |
BIN
gfx/battle/hp_exp_bar_parts0.1bpp.png
Normal file
|
After Width: | Height: | Size: 111 B |
BIN
gfx/battle/hp_exp_bar_parts0.png
Normal file
|
After Width: | Height: | Size: 111 B |
BIN
gfx/battle/hp_exp_bar_parts1.1bpp.png
Normal file
|
After Width: | Height: | Size: 92 B |
BIN
gfx/battle/hp_exp_bar_parts2.1bpp.png
Normal file
|
After Width: | Height: | Size: 84 B |
BIN
gfx/battle/hp_exp_bar_parts3.1bpp.png
Normal file
|
After Width: | Height: | Size: 82 B |
BIN
gfx/battle/levelup.png
Normal file
|
After Width: | Height: | Size: 112 B |
BIN
gfx/battle/markers.png
Normal file
|
After Width: | Height: | Size: 111 B |
BIN
gfx/font/font_extra.ab.png
Normal file
|
After Width: | Height: | Size: 90 B |
BIN
gfx/font/font_extra.cdefghivslm.png
Normal file
|
After Width: | Height: | Size: 153 B |
|
Before Width: | Height: | Size: 287 B |
|
Before Width: | Height: | Size: 90 B |
BIN
gfx/font/small_kana_punctuation.png
Normal file
|
After Width: | Height: | Size: 156 B |
BIN
gfx/frames/1.png
Normal file
|
After Width: | Height: | Size: 189 B |
BIN
gfx/misc/black_tile_cursor.1bpp.png
Normal file
|
After Width: | Height: | Size: 87 B |
BIN
gfx/misc/empty_tile.1bpp.png
Normal file
|
After Width: | Height: | Size: 71 B |
BIN
gfx/misc/poke_balls.png
Normal file
|
After Width: | Height: | Size: 124 B |
BIN
gfx/pokedex/locations.png
Normal file
|
After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 181 B |
|
Before Width: | Height: | Size: 394 B After Width: | Height: | Size: 337 B |
BIN
gfx/trainer_card/colon.png
Normal file
|
After Width: | Height: | Size: 76 B |
BIN
gfx/trainer_card/id_no.png
Normal file
|
After Width: | Height: | Size: 92 B |
|
Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 622 B |
|
Before Width: | Height: | Size: 619 B After Width: | Height: | Size: 369 B |
13
home/util.asm
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
INCLUDE "constants.asm"
|
||||
|
||||
SECTION "Misc Utility Functions", ROM0[$3429]
|
||||
|
||||
AddNTimes:: ; 3429 (0:3429)
|
||||
and a
|
||||
ret z
|
||||
.asm_342b
|
||||
add hl, bc
|
||||
dec a
|
||||
jr nz, .asm_342b
|
||||
ret
|
||||
; 0x3430
|
||||