summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--engine/gfx.asm139
-rw-r--r--gfx.asm110
-rw-r--r--gfx/battle/hp_bar.pngbin0 -> 199 bytes
-rw-r--r--gfx/battle/hp_exp_bar_border.1bpp.pngbin140 -> 0 bytes
-rw-r--r--gfx/battle/hp_exp_bar_parts0.1bpp.pngbin0 -> 111 bytes
-rw-r--r--gfx/battle/hp_exp_bar_parts0.pngbin0 -> 111 bytes
-rw-r--r--gfx/battle/hp_exp_bar_parts1.1bpp.pngbin0 -> 92 bytes
-rw-r--r--gfx/battle/hp_exp_bar_parts2.1bpp.pngbin0 -> 84 bytes
-rw-r--r--gfx/battle/hp_exp_bar_parts3.1bpp.pngbin0 -> 82 bytes
-rw-r--r--gfx/battle/levelup.pngbin0 -> 112 bytes
-rw-r--r--gfx/battle/markers.pngbin0 -> 111 bytes
-rw-r--r--gfx/font/font_extra.ab.pngbin0 -> 90 bytes
-rw-r--r--gfx/font/font_extra.cdefghivslm.pngbin0 -> 153 bytes
-rw-r--r--gfx/font/font_extra.pngbin287 -> 0 bytes
-rw-r--r--gfx/font/gfx_f9322.1bpp.pngbin90 -> 0 bytes
-rw-r--r--gfx/font/small_kana_punctuation.pngbin0 -> 156 bytes
-rw-r--r--gfx/frames/1.pngbin0 -> 189 bytes
-rw-r--r--gfx/misc/black_tile_cursor.1bpp.pngbin0 -> 87 bytes
-rw-r--r--gfx/misc/empty_tile.1bpp.pngbin0 -> 71 bytes
-rw-r--r--gfx/misc/poke_balls.pngbin0 -> 124 bytes
-rw-r--r--gfx/pokedex/locations.pngbin0 -> 146 bytes
-rw-r--r--gfx/pokedex/m_kg.pngbin104 -> 0 bytes
-rw-r--r--gfx/pokedex/pokedex.pngbin145 -> 181 bytes
-rw-r--r--gfx/pokegear/town_map.pngbin394 -> 337 bytes
-rw-r--r--gfx/trainer_card/colon.pngbin0 -> 76 bytes
-rw-r--r--gfx/trainer_card/id_no.pngbin0 -> 92 bytes
-rw-r--r--gfx/trainer_card/leaders.pngbin317 -> 622 bytes
-rw-r--r--gfx/trainer_card/trainer_card.pngbin619 -> 369 bytes
-rw-r--r--home/util.asm13
-rw-r--r--wram.asm6
31 files changed, 225 insertions, 44 deletions
diff --git a/Makefile b/Makefile
index bb53748..c79484e 100644
--- a/Makefile
+++ b/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
diff --git a/engine/gfx.asm b/engine/gfx.asm
new file mode 100644
index 0000000..2c19fe6
--- /dev/null
+++ b/engine/gfx.asm
@@ -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 \ No newline at end of file
diff --git a/gfx.asm b/gfx.asm
index 92b7219..7f474ee 100644
--- a/gfx.asm
+++ b/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::
diff --git a/gfx/battle/hp_bar.png b/gfx/battle/hp_bar.png
new file mode 100644
index 0000000..0492de5
--- /dev/null
+++ b/gfx/battle/hp_bar.png
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_border.1bpp.png b/gfx/battle/hp_exp_bar_border.1bpp.png
deleted file mode 100644
index b2017a5..0000000
--- a/gfx/battle/hp_exp_bar_border.1bpp.png
+++ /dev/null
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_parts0.1bpp.png b/gfx/battle/hp_exp_bar_parts0.1bpp.png
new file mode 100644
index 0000000..c598e00
--- /dev/null
+++ b/gfx/battle/hp_exp_bar_parts0.1bpp.png
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_parts0.png b/gfx/battle/hp_exp_bar_parts0.png
new file mode 100644
index 0000000..1adb633
--- /dev/null
+++ b/gfx/battle/hp_exp_bar_parts0.png
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_parts1.1bpp.png b/gfx/battle/hp_exp_bar_parts1.1bpp.png
new file mode 100644
index 0000000..e61d42d
--- /dev/null
+++ b/gfx/battle/hp_exp_bar_parts1.1bpp.png
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_parts2.1bpp.png b/gfx/battle/hp_exp_bar_parts2.1bpp.png
new file mode 100644
index 0000000..d47530d
--- /dev/null
+++ b/gfx/battle/hp_exp_bar_parts2.1bpp.png
Binary files differ
diff --git a/gfx/battle/hp_exp_bar_parts3.1bpp.png b/gfx/battle/hp_exp_bar_parts3.1bpp.png
new file mode 100644
index 0000000..ccec114
--- /dev/null
+++ b/gfx/battle/hp_exp_bar_parts3.1bpp.png
Binary files differ
diff --git a/gfx/battle/levelup.png b/gfx/battle/levelup.png
new file mode 100644
index 0000000..65e0df2
--- /dev/null
+++ b/gfx/battle/levelup.png
Binary files differ
diff --git a/gfx/battle/markers.png b/gfx/battle/markers.png
new file mode 100644
index 0000000..23894da
--- /dev/null
+++ b/gfx/battle/markers.png
Binary files differ
diff --git a/gfx/font/font_extra.ab.png b/gfx/font/font_extra.ab.png
new file mode 100644
index 0000000..94f4ec6
--- /dev/null
+++ b/gfx/font/font_extra.ab.png
Binary files differ
diff --git a/gfx/font/font_extra.cdefghivslm.png b/gfx/font/font_extra.cdefghivslm.png
new file mode 100644
index 0000000..ebfe02c
--- /dev/null
+++ b/gfx/font/font_extra.cdefghivslm.png
Binary files differ
diff --git a/gfx/font/font_extra.png b/gfx/font/font_extra.png
deleted file mode 100644
index d0eb38f..0000000
--- a/gfx/font/font_extra.png
+++ /dev/null
Binary files differ
diff --git a/gfx/font/gfx_f9322.1bpp.png b/gfx/font/gfx_f9322.1bpp.png
deleted file mode 100644
index e386063..0000000
--- a/gfx/font/gfx_f9322.1bpp.png
+++ /dev/null
Binary files differ
diff --git a/gfx/font/small_kana_punctuation.png b/gfx/font/small_kana_punctuation.png
new file mode 100644
index 0000000..b02480d
--- /dev/null
+++ b/gfx/font/small_kana_punctuation.png
Binary files differ
diff --git a/gfx/frames/1.png b/gfx/frames/1.png
new file mode 100644
index 0000000..dca07fe
--- /dev/null
+++ b/gfx/frames/1.png
Binary files differ
diff --git a/gfx/misc/black_tile_cursor.1bpp.png b/gfx/misc/black_tile_cursor.1bpp.png
new file mode 100644
index 0000000..7fdc4f1
--- /dev/null
+++ b/gfx/misc/black_tile_cursor.1bpp.png
Binary files differ
diff --git a/gfx/misc/empty_tile.1bpp.png b/gfx/misc/empty_tile.1bpp.png
new file mode 100644
index 0000000..3233c13
--- /dev/null
+++ b/gfx/misc/empty_tile.1bpp.png
Binary files differ
diff --git a/gfx/misc/poke_balls.png b/gfx/misc/poke_balls.png
new file mode 100644
index 0000000..830f72b
--- /dev/null
+++ b/gfx/misc/poke_balls.png
Binary files differ
diff --git a/gfx/pokedex/locations.png b/gfx/pokedex/locations.png
new file mode 100644
index 0000000..c7e37a2
--- /dev/null
+++ b/gfx/pokedex/locations.png
Binary files differ
diff --git a/gfx/pokedex/m_kg.png b/gfx/pokedex/m_kg.png
deleted file mode 100644
index e26dada..0000000
--- a/gfx/pokedex/m_kg.png
+++ /dev/null
Binary files differ
diff --git a/gfx/pokedex/pokedex.png b/gfx/pokedex/pokedex.png
index 143835e..d4637ce 100644
--- a/gfx/pokedex/pokedex.png
+++ b/gfx/pokedex/pokedex.png
Binary files differ
diff --git a/gfx/pokegear/town_map.png b/gfx/pokegear/town_map.png
index 7889b09..69c06b4 100644
--- a/gfx/pokegear/town_map.png
+++ b/gfx/pokegear/town_map.png
Binary files differ
diff --git a/gfx/trainer_card/colon.png b/gfx/trainer_card/colon.png
new file mode 100644
index 0000000..56039e7
--- /dev/null
+++ b/gfx/trainer_card/colon.png
Binary files differ
diff --git a/gfx/trainer_card/id_no.png b/gfx/trainer_card/id_no.png
new file mode 100644
index 0000000..ad0f7d6
--- /dev/null
+++ b/gfx/trainer_card/id_no.png
Binary files differ
diff --git a/gfx/trainer_card/leaders.png b/gfx/trainer_card/leaders.png
index dceb21f..66c0919 100644
--- a/gfx/trainer_card/leaders.png
+++ b/gfx/trainer_card/leaders.png
Binary files differ
diff --git a/gfx/trainer_card/trainer_card.png b/gfx/trainer_card/trainer_card.png
index 8fa51d1..ecce895 100644
--- a/gfx/trainer_card/trainer_card.png
+++ b/gfx/trainer_card/trainer_card.png
Binary files differ
diff --git a/home/util.asm b/home/util.asm
new file mode 100644
index 0000000..bfc4ce4
--- /dev/null
+++ b/home/util.asm
@@ -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 \ No newline at end of file
diff --git a/wram.asm b/wram.asm
index cca7b91..08f974a 100644
--- a/wram.asm
+++ b/wram.asm
@@ -317,7 +317,11 @@ SECTION "CE5F", WRAM0[$CE5F]
wce5f:: ; ce5f ; TODO
db
-SECTION "CE63", WRAM0[$CE63]
+SECTION "CE61", WRAM0[$CE61]
+
+wActiveFrame:: db ; ce61
+
+ db ; TODO
wce63:: db ; ce63
; 76543210