ref: 24f0e7d04501ddb000dfc1d06e716efca387bce8
parent: b5a8e3b3b32b2734d8fc642c77d96a0d4ef9c6d1
author: Remy Oukaour <remy.oukaour@gmail.com>
date: Tue Dec 26 07:50:32 EST 2017
Rename: emote_headers, sprite_headers, cry_headers, gfx_headers, tileset_headers
--- a/Makefile
+++ b/Makefile
@@ -100,41 +100,41 @@
### Terrible hacks to match animations. Delete these rules if you don't care about matching.
# Dewgong has an unused tile id in its last frame. The tile itself is missing.
-gfx/pics/dewgong/frames.asm: gfx/pics/dewgong/front.animated.tilemap gfx/pics/dewgong/front.dimensions
+gfx/pokemon/dewgong/frames.asm: gfx/pokemon/dewgong/front.animated.tilemap gfx/pokemon/dewgong/front.dimensions
tools/pokemon_animation -f $^ > $@
echo " db \$$4d" >> $@
# Lugia has two unused tile ids in its last frame. The tiles themselves are missing.
-gfx/pics/lugia/frames.asm: gfx/pics/lugia/front.animated.tilemap gfx/pics/lugia/front.dimensions
+gfx/pokemon/lugia/frames.asm: gfx/pokemon/lugia/front.animated.tilemap gfx/pokemon/lugia/front.dimensions
tools/pokemon_animation -f $^ > $@
echo " db \$$5e, \$$59" >> $@
# Girafarig has a redundant tile after the end. It is used in two frames, so it must be injected into the generated graphics.
# This is more involved, so it's hacked into pokemon_animation_graphics.
-gfx/pics/girafarig/front.animated.2bpp: gfx/pics/girafarig/front.2bpp gfx/pics/girafarig/front.dimensions
+gfx/pokemon/girafarig/front.animated.2bpp: gfx/pokemon/girafarig/front.2bpp gfx/pokemon/girafarig/front.dimensions
tools/pokemon_animation_graphics --girafarig -o $@ $^
-gfx/pics/girafarig/front.animated.tilemap: gfx/pics/girafarig/front.2bpp gfx/pics/girafarig/front.dimensions
+gfx/pokemon/girafarig/front.animated.tilemap: gfx/pokemon/girafarig/front.2bpp gfx/pokemon/girafarig/front.dimensions
tools/pokemon_animation_graphics --girafarig -t $@ $^
### Pokemon pic graphics rules
-gfx/pics/%/normal.gbcpal: gfx/pics/%/front.png
+gfx/pokemon/%/normal.gbcpal: gfx/pokemon/%/front.png
$(RGBGFX) -p $@ $<
-gfx/pics/%/normal.pal: gfx/pics/%/normal.gbcpal
+gfx/pokemon/%/normal.pal: gfx/pokemon/%/normal.gbcpal
tools/palette -p $< > $@
-gfx/pics/%/back.2bpp: gfx/pics/%/back.png
+gfx/pokemon/%/back.2bpp: gfx/pokemon/%/back.png
$(RGBGFX) -h -o $@ $<
-gfx/pics/%/bitmask.asm: gfx/pics/%/front.animated.tilemap gfx/pics/%/front.dimensions
+gfx/pokemon/%/bitmask.asm: gfx/pokemon/%/front.animated.tilemap gfx/pokemon/%/front.dimensions
tools/pokemon_animation -b $^ > $@
-gfx/pics/%/frames.asm: gfx/pics/%/front.animated.tilemap gfx/pics/%/front.dimensions
+gfx/pokemon/%/frames.asm: gfx/pokemon/%/front.animated.tilemap gfx/pokemon/%/front.dimensions
tools/pokemon_animation -f $^ > $@
-gfx/pics/%/front.animated.2bpp: gfx/pics/%/front.2bpp gfx/pics/%/front.dimensions
+gfx/pokemon/%/front.animated.2bpp: gfx/pokemon/%/front.2bpp gfx/pokemon/%/front.dimensions
tools/pokemon_animation_graphics -o $@ $^
-gfx/pics/%/front.animated.tilemap: gfx/pics/%/front.2bpp gfx/pics/%/front.dimensions
+gfx/pokemon/%/front.animated.tilemap: gfx/pokemon/%/front.2bpp gfx/pokemon/%/front.dimensions
tools/pokemon_animation_graphics -t $@ $^
# Don't use -h, pokemon_animation_graphics takes care of it
-#gfx/pics/%/front.2bpp: gfx/pics/%/front.png
+#gfx/pokemon/%/front.2bpp: gfx/pokemon/%/front.png
# $(RGBGFX) -o $@ $<
--- a/audio.asm
+++ b/audio.asm
@@ -157,6 +157,6 @@
SECTION "Cries", ROMX
-INCLUDE "data/pokemon/cry_headers.asm"
+INCLUDE "data/pokemon/cries.asm"
INCLUDE "audio/cries.asm"
--- a/battle/anim_objects.asm
+++ b/battle/anim_objects.asm
@@ -6,4 +6,4 @@
INCLUDE "battle/objects/helpers.asm"
INCLUDE "battle/objects/framesets.asm"
INCLUDE "battle/objects/oam.asm"
-INCLUDE "battle/objects/gfx_headers.asm"
+INCLUDE "battle/objects/object_gfx.asm"
--- a/battle/objects/gfx_headers.asm
+++ /dev/null
@@ -1,51 +1,0 @@
-object_gfx: MACRO
-; # tiles, label
- db \1
- dba \2
-ENDM
-
-AnimObjGFX: ; cfcf6
-; entries correspond to ANIM_GFX_* constants
- object_gfx 0, AnimObj00GFX
- object_gfx 21, AnimObjHitGFX
- object_gfx 6, AnimObjCutGFX
- object_gfx 6, AnimObjFireGFX
- object_gfx 20, AnimObjWaterGFX
- object_gfx 26, AnimObjLightningGFX
- object_gfx 18, AnimObjPlantGFX
- object_gfx 12, AnimObjSmokeGFX
- object_gfx 9, AnimObjExplosionGFX
- object_gfx 17, AnimObjRocksGFX
- object_gfx 6, AnimObjIceGFX
- object_gfx 10, AnimObjPokeBallGFX
- object_gfx 9, AnimObjPoisonGFX
- object_gfx 13, AnimObjBubbleGFX
- object_gfx 16, AnimObjNoiseGFX
- object_gfx 2, AnimObjPowderGFX
- object_gfx 11, AnimObjBeamGFX
- object_gfx 9, AnimObjSpeedGFX
- object_gfx 9, AnimObjChargeGFX
- object_gfx 19, AnimObjWindGFX
- object_gfx 10, AnimObjWhipGFX
- object_gfx 12, AnimObjEggGFX
- object_gfx 18, AnimObjRopeGFX
- object_gfx 13, AnimObjPsychicGFX
- object_gfx 10, AnimObjReflectGFX
- object_gfx 27, AnimObjStatusGFX
- object_gfx 12, AnimObjSandGFX
- object_gfx 14, AnimObjWebGFX
- object_gfx 16, AnimObjHazeGFX
- object_gfx 7, AnimObjHornGFX
- object_gfx 8, AnimObjFlowerGFX
- object_gfx 40, AnimObjMiscGFX
- object_gfx 36, AnimObjSkyAttackGFX
- object_gfx 16, AnimObjGlobeGFX
- object_gfx 48, AnimObjShapesGFX
- object_gfx 18, AnimObjObjectsGFX
- object_gfx 38, AnimObjShineGFX
- object_gfx 35, AnimObjAngelsGFX
- object_gfx 18, AnimObjWaveGFX
- object_gfx 24, AnimObjAeroblastGFX
- object_gfx 1, NULL
- object_gfx 1, NULL
-; cfd9e
--- a/battle/objects/oam.asm
+++ b/battle/objects/oam.asm
@@ -1,4 +1,3 @@
-
BattleAnimOAMData: ; ceeae
; vtile offset (?), length, address
dbbw $00, 16, .OAMData_00 ; 00
--- /dev/null
+++ b/battle/objects/object_gfx.asm
@@ -1,0 +1,51 @@
+anim_obj_gfx: MACRO
+; # tiles, label
+ db \1
+ dba \2
+ENDM
+
+AnimObjGFX: ; cfcf6
+; entries correspond to ANIM_GFX_* constants
+ anim_obj_gfx 0, AnimObj00GFX
+ anim_obj_gfx 21, AnimObjHitGFX
+ anim_obj_gfx 6, AnimObjCutGFX
+ anim_obj_gfx 6, AnimObjFireGFX
+ anim_obj_gfx 20, AnimObjWaterGFX
+ anim_obj_gfx 26, AnimObjLightningGFX
+ anim_obj_gfx 18, AnimObjPlantGFX
+ anim_obj_gfx 12, AnimObjSmokeGFX
+ anim_obj_gfx 9, AnimObjExplosionGFX
+ anim_obj_gfx 17, AnimObjRocksGFX
+ anim_obj_gfx 6, AnimObjIceGFX
+ anim_obj_gfx 10, AnimObjPokeBallGFX
+ anim_obj_gfx 9, AnimObjPoisonGFX
+ anim_obj_gfx 13, AnimObjBubbleGFX
+ anim_obj_gfx 16, AnimObjNoiseGFX
+ anim_obj_gfx 2, AnimObjPowderGFX
+ anim_obj_gfx 11, AnimObjBeamGFX
+ anim_obj_gfx 9, AnimObjSpeedGFX
+ anim_obj_gfx 9, AnimObjChargeGFX
+ anim_obj_gfx 19, AnimObjWindGFX
+ anim_obj_gfx 10, AnimObjWhipGFX
+ anim_obj_gfx 12, AnimObjEggGFX
+ anim_obj_gfx 18, AnimObjRopeGFX
+ anim_obj_gfx 13, AnimObjPsychicGFX
+ anim_obj_gfx 10, AnimObjReflectGFX
+ anim_obj_gfx 27, AnimObjStatusGFX
+ anim_obj_gfx 12, AnimObjSandGFX
+ anim_obj_gfx 14, AnimObjWebGFX
+ anim_obj_gfx 16, AnimObjHazeGFX
+ anim_obj_gfx 7, AnimObjHornGFX
+ anim_obj_gfx 8, AnimObjFlowerGFX
+ anim_obj_gfx 40, AnimObjMiscGFX
+ anim_obj_gfx 36, AnimObjSkyAttackGFX
+ anim_obj_gfx 16, AnimObjGlobeGFX
+ anim_obj_gfx 48, AnimObjShapesGFX
+ anim_obj_gfx 18, AnimObjObjectsGFX
+ anim_obj_gfx 38, AnimObjShineGFX
+ anim_obj_gfx 35, AnimObjAngelsGFX
+ anim_obj_gfx 18, AnimObjWaveGFX
+ anim_obj_gfx 24, AnimObjAeroblastGFX
+ anim_obj_gfx 1, NULL
+ anim_obj_gfx 1, NULL
+; cfd9e
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -775,7 +775,7 @@
const ANIM_MON_EGG1
const ANIM_MON_EGG2
-; AnimObjGFX indexes (see battle/objects/gfx_headers.asm)
+; AnimObjGFX indexes (see battle/objects/object_gfx.asm)
const_value SET 1
const ANIM_GFX_HIT
const ANIM_GFX_CUT
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -32,14 +32,14 @@
; move struct members (see battle/moves/moves.asm)
const_def
- const MOVE_ANIM
- const MOVE_EFFECT
- const MOVE_POWER
- const MOVE_TYPE
- const MOVE_ACC
- const MOVE_PP
- const MOVE_CHANCE
- const MOVE_LENGTH
+ const MOVE_ANIM ; 0
+ const MOVE_EFFECT ; 1
+ const MOVE_POWER ; 2
+ const MOVE_TYPE ; 3
+ const MOVE_ACC ; 4
+ const MOVE_PP ; 5
+ const MOVE_CHANCE ; 6
+MOVE_LENGTH EQU const_value
; stat constants
; indexes for:
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -3,7 +3,7 @@
GROUP_NONE EQU 0
MAP_NONE EQU 0
-; map header fields (see maps/map_headers.asm)
+; map header struct members (see maps/map_headers.asm)
const_def
const MAPHEADER_MAPHEADER2_BANK ; 0
const MAPHEADER_TILESET ; 1
@@ -200,7 +200,7 @@
const OBJECTTYPE_6
-; EmotesPointers indexes (see engine/overworld.asm)
+; Emotes indexes (see data/emotes.asm)
const_def
const EMOTE_SHOCK ; 0
const EMOTE_QUESTION ; 1
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -41,7 +41,7 @@
const map_save_screen ; 0c
const map_buffer_screen ; 0d
const map_load_graphics ; 0e
- const map_load_tileset_header ; 0f
+ const map_load_tileset ; 0f
const map_time_of_day ; 10
const map_palettes ; 11
const map_wildmons ; 12
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,6 +1,6 @@
; pokemon ids
; indexes for:
-; - CryHeaders (see data/pokemon/cry_headers.asm)
+; - PokemonCries (see data/pokemon/cries.asm)
; - BaseData (see data/pokemon/base_stats.asm)
; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm)
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -1,5 +1,5 @@
; sprite ids
-; SpriteHeaders indexes (see gfx/sprite_headers.asm)
+; OverworldSprites indexes (see gfx/sprite_data.asm)
const_def
const SPRITE_NONE ; 00
const SPRITE_CHRIS ; 01
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -1,12 +1,12 @@
-; sprite_header struct members (see gfx/sprite_headers.asm)
+; overworld_sprite struct members (see gfx/sprite_data.asm)
const_def
- const SPRITEHEADER_ADDR_LO ; 0
- const SPRITEHEADER_ADDR_HI ; 1
- const SPRITEHEADER_SIZE ; 2
- const SPRITEHEADER_BANK ; 3
- const SPRITEHEADER_TYPE ; 4
- const SPRITEHEADER_PALETTE ; 5
-NUM_SPRITEHEADER_FIELDS EQU const_value
+ const SPRITEDATA_ADDR ; 0
+ const SPRITEDATA_ADDR_HI ; 1
+ const SPRITEDATA_SIZE ; 2
+ const SPRITEDATA_BANK ; 3
+ const SPRITEDATA_TYPE ; 4
+ const SPRITEDATA_PALETTE ; 5
+NUM_SPRITEDATA_FIELDS EQU const_value
; sprite types
const_value SET 1
--- a/constants/tileset_constants.asm
+++ b/constants/tileset_constants.asm
@@ -1,4 +1,4 @@
-; Tilesets indexes (see tilesets/tileset_headers.asm)
+; Tilesets indexes (see tilesets/tilesets.asm)
const_value SET 1
const TILESET_JOHTO_1 ; 01
const TILESET_JOHTO_2 ; 02
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -678,7 +678,7 @@
NUM_TRAINER_CLASSES EQU __enum__
-; TrainerClassAttributes fields (see data/trainers/trainer_attributes.asm)
+; TrainerClassAttributes struct members (see data/trainers/trainer_attributes.asm)
const_def
const TRNATTR_ITEM1 ; 0
const TRNATTR_ITEM2 ; 1
--- a/data/emote_headers.asm
+++ /dev/null
@@ -1,22 +1,0 @@
-emote_header: MACRO
-; graphics pointer, length, starting tile
- dw \1
- db \2 tiles, BANK(\1)
- dw VTiles1 tile \3
-ENDM
-
-EmotesPointers: ; 144d
-; entries correspond to EMOTE_* constants
- emote_header ShockEmote, 4, $78
- emote_header QuestionEmote, 4, $78
- emote_header HappyEmote, 4, $78
- emote_header SadEmote, 4, $78
- emote_header HeartEmote, 4, $78
- emote_header BoltEmote, 4, $78
- emote_header SleepEmote, 4, $78
- emote_header FishEmote, 4, $78
- emote_header JumpShadowGFX, 1, $7c
- emote_header FishingRodGFX, 2, $7c
- emote_header BoulderDustGFX, 2, $7e
- emote_header GrassRustleGFX, 1, $7e
-; 14495
--- /dev/null
+++ b/data/emotes.asm
@@ -1,0 +1,22 @@
+emote: MACRO
+; graphics pointer, length, starting tile
+ dw \1
+ db \2 tiles, BANK(\1)
+ dw VTiles1 tile \3
+ENDM
+
+Emotes: ; 144d
+; entries correspond to EMOTE_* constants
+ emote ShockEmote, 4, $78
+ emote QuestionEmote, 4, $78
+ emote HappyEmote, 4, $78
+ emote SadEmote, 4, $78
+ emote HeartEmote, 4, $78
+ emote BoltEmote, 4, $78
+ emote SleepEmote, 4, $78
+ emote FishEmote, 4, $78
+ emote JumpShadowGFX, 1, $7c
+ emote FishingRodGFX, 2, $7c
+ emote BoulderDustGFX, 2, $7e
+ emote GrassRustleGFX, 1, $7e
+; 14495
--- /dev/null
+++ b/data/pokemon/cries.asm
@@ -1,0 +1,263 @@
+mon_cry: MACRO
+; index, pitch, length
+ dw \1, \2, \3
+ENDM
+
+PokemonCries:: ; f2787
+; entries correspond to constants/pokemon_constants.asm
+ mon_cry CRY_BULBASAUR, $080, $081 ; BULBASAUR
+ mon_cry CRY_BULBASAUR, $020, $100 ; IVYSAUR
+ mon_cry CRY_BULBASAUR, $000, $140 ; VENUSAUR
+ mon_cry CRY_CHARMANDER, $060, $0c0 ; CHARMANDER
+ mon_cry CRY_CHARMANDER, $020, $0c0 ; CHARMELEON
+ mon_cry CRY_CHARMANDER, $000, $100 ; CHARIZARD
+ mon_cry CRY_SQUIRTLE, $060, $0c0 ; SQUIRTLE
+ mon_cry CRY_SQUIRTLE, $020, $0c0 ; WARTORTLE
+ mon_cry CRY_BLASTOISE, $000, $100 ; BLASTOISE
+ mon_cry CRY_CATERPIE, $080, $0a0 ; CATERPIE
+ mon_cry CRY_METAPOD, $0cc, $081 ; METAPOD
+ mon_cry CRY_CATERPIE, $077, $0c0 ; BUTTERFREE
+ mon_cry CRY_WEEDLE, $0ee, $081 ; WEEDLE
+ mon_cry CRY_BLASTOISE, $0ff, $081 ; KAKUNA
+ mon_cry CRY_BLASTOISE, $060, $100 ; BEEDRILL
+ mon_cry CRY_PIDGEY, $0df, $084 ; PIDGEY
+ mon_cry CRY_PIDGEOTTO, $028, $140 ; PIDGEOTTO
+ mon_cry CRY_PIDGEOTTO, $011, $17f ; PIDGEOT
+ mon_cry CRY_RATTATA, $000, $100 ; RATTATA
+ mon_cry CRY_RATTATA, $020, $17f ; RATICATE
+ mon_cry CRY_SPEAROW, $000, $100 ; SPEAROW
+ mon_cry CRY_FEAROW, $040, $120 ; FEAROW
+ mon_cry CRY_EKANS, $012, $0c0 ; EKANS
+ mon_cry CRY_EKANS, $0e0, $090 ; ARBOK
+ mon_cry CRY_BULBASAUR, $0ee, $081 ; PIKACHU
+ mon_cry CRY_RAICHU, $0ee, $088 ; RAICHU
+ mon_cry CRY_NIDORAN_M, $020, $0c0 ; SANDSHREW
+ mon_cry CRY_NIDORAN_M, $0ff, $17f ; SANDSLASH
+ mon_cry CRY_NIDORAN_F, $000, $100 ; NIDORAN_F
+ mon_cry CRY_NIDORAN_F, $02c, $160 ; NIDORINA
+ mon_cry CRY_NIDOQUEEN, $000, $100 ; NIDOQUEEN
+ mon_cry CRY_NIDORAN_M, $000, $100 ; NIDORAN_M
+ mon_cry CRY_NIDORAN_M, $02c, $140 ; NIDORINO
+ mon_cry CRY_RAICHU, $000, $100 ; NIDOKING
+ mon_cry CRY_CLEFAIRY, $0cc, $081 ; CLEFAIRY
+ mon_cry CRY_CLEFAIRY, $0aa, $0a0 ; CLEFABLE
+ mon_cry CRY_VULPIX, $04f, $090 ; VULPIX
+ mon_cry CRY_VULPIX, $088, $0e0 ; NINETALES
+ mon_cry CRY_PIDGEY, $0ff, $0b5 ; JIGGLYPUFF
+ mon_cry CRY_PIDGEY, $068, $0e0 ; WIGGLYTUFF
+ mon_cry CRY_SQUIRTLE, $0e0, $100 ; ZUBAT
+ mon_cry CRY_SQUIRTLE, $0fa, $100 ; GOLBAT
+ mon_cry CRY_ODDISH, $0dd, $081 ; ODDISH
+ mon_cry CRY_ODDISH, $0aa, $0c0 ; GLOOM
+ mon_cry CRY_VILEPLUME, $022, $17f ; VILEPLUME
+ mon_cry CRY_PARAS, $020, $160 ; PARAS
+ mon_cry CRY_PARAS, $042, $17f ; PARASECT
+ mon_cry CRY_VENONAT, $044, $0c0 ; VENONAT
+ mon_cry CRY_VENONAT, $029, $100 ; VENOMOTH
+ mon_cry CRY_DIGLETT, $0aa, $081 ; DIGLETT
+ mon_cry CRY_DIGLETT, $02a, $090 ; DUGTRIO
+ mon_cry CRY_CLEFAIRY, $077, $090 ; MEOWTH
+ mon_cry CRY_CLEFAIRY, $099, $17f ; PERSIAN
+ mon_cry CRY_PSYDUCK, $020, $0e0 ; PSYDUCK
+ mon_cry CRY_PSYDUCK, $0ff, $0c0 ; GOLDUCK
+ mon_cry CRY_NIDOQUEEN, $0dd, $0e0 ; MANKEY
+ mon_cry CRY_NIDOQUEEN, $0af, $0c0 ; PRIMEAPE
+ mon_cry CRY_GROWLITHE, $020, $0c0 ; GROWLITHE
+ mon_cry CRY_WEEDLE, $000, $100 ; ARCANINE
+ mon_cry CRY_PIDGEY, $0ff, $17f ; POLIWAG
+ mon_cry CRY_PIDGEY, $077, $0e0 ; POLIWHIRL
+ mon_cry CRY_PIDGEY, $000, $17f ; POLIWRATH
+ mon_cry CRY_METAPOD, $0c0, $081 ; ABRA
+ mon_cry CRY_METAPOD, $0a8, $140 ; KADABRA
+ mon_cry CRY_METAPOD, $098, $17f ; ALAKAZAM
+ mon_cry CRY_GROWLITHE, $0ee, $081 ; MACHOP
+ mon_cry CRY_GROWLITHE, $048, $0e0 ; MACHOKE
+ mon_cry CRY_GROWLITHE, $008, $140 ; MACHAMP
+ mon_cry CRY_PSYDUCK, $055, $081 ; BELLSPROUT
+ mon_cry CRY_WEEPINBELL, $044, $0a0 ; WEEPINBELL
+ mon_cry CRY_WEEPINBELL, $066, $14c ; VICTREEBEL
+ mon_cry CRY_VENONAT, $000, $100 ; TENTACOOL
+ mon_cry CRY_VENONAT, $0ee, $17f ; TENTACRUEL
+ mon_cry CRY_VULPIX, $0f0, $090 ; GEODUDE
+ mon_cry CRY_VULPIX, $000, $100 ; GRAVELER
+ mon_cry CRY_GOLEM, $0e0, $0c0 ; GOLEM
+ mon_cry CRY_WEEPINBELL, $000, $100 ; PONYTA
+ mon_cry CRY_WEEPINBELL, $020, $140 ; RAPIDASH
+ mon_cry CRY_SLOWPOKE, $000, $100 ; SLOWPOKE
+ mon_cry CRY_GROWLITHE, $000, $100 ; SLOWBRO
+ mon_cry CRY_METAPOD, $080, $0e0 ; MAGNEMITE
+ mon_cry CRY_METAPOD, $020, $140 ; MAGNETON
+ mon_cry CRY_SPEAROW, $0dd, $081 ; FARFETCH_D
+ mon_cry CRY_DIGLETT, $0bb, $081 ; DODUO
+ mon_cry CRY_DIGLETT, $099, $0a0 ; DODRIO
+ mon_cry CRY_SEEL, $088, $140 ; SEEL
+ mon_cry CRY_SEEL, $023, $17f ; DEWGONG
+ mon_cry CRY_GRIMER, $000, $100 ; GRIMER
+ mon_cry CRY_MUK, $0ef, $17f ; MUK
+ mon_cry CRY_FEAROW, $000, $100 ; SHELLDER
+ mon_cry CRY_FEAROW, $06f, $160 ; CLOYSTER
+ mon_cry CRY_METAPOD, $000, $100 ; GASTLY
+ mon_cry CRY_METAPOD, $030, $0c0 ; HAUNTER
+ mon_cry CRY_MUK, $000, $17f ; GENGAR
+ mon_cry CRY_EKANS, $0ff, $140 ; ONIX
+ mon_cry CRY_DROWZEE, $088, $0a0 ; DROWZEE
+ mon_cry CRY_DROWZEE, $0ee, $0c0 ; HYPNO
+ mon_cry CRY_KRABBY, $020, $160 ; KRABBY
+ mon_cry CRY_KRABBY, $0ee, $160 ; KINGLER
+ mon_cry CRY_VOLTORB, $0ed, $100 ; VOLTORB
+ mon_cry CRY_VOLTORB, $0a8, $110 ; ELECTRODE
+ mon_cry CRY_DIGLETT, $000, $100 ; EXEGGCUTE
+ mon_cry CRY_DROWZEE, $000, $100 ; EXEGGUTOR
+ mon_cry CRY_CLEFAIRY, $000, $100 ; CUBONE
+ mon_cry CRY_ODDISH, $04f, $0e0 ; MAROWAK
+ mon_cry CRY_GOLEM, $080, $140 ; HITMONLEE
+ mon_cry CRY_SEEL, $0ee, $140 ; HITMONCHAN
+ mon_cry CRY_SEEL, $000, $100 ; LICKITUNG
+ mon_cry CRY_GOLEM, $0e6, $15d ; KOFFING
+ mon_cry CRY_GOLEM, $0ff, $17f ; WEEZING
+ mon_cry CRY_CHARMANDER, $000, $100 ; RHYHORN
+ mon_cry CRY_RHYDON, $000, $100 ; RHYDON
+ mon_cry CRY_PIDGEOTTO, $00a, $140 ; CHANSEY
+ mon_cry CRY_GOLEM, $000, $100 ; TANGELA
+ mon_cry CRY_KANGASKHAN, $000, $100 ; KANGASKHAN
+ mon_cry CRY_CLEFAIRY, $099, $090 ; HORSEA
+ mon_cry CRY_CLEFAIRY, $03c, $081 ; SEADRA
+ mon_cry CRY_CATERPIE, $080, $0c0 ; GOLDEEN
+ mon_cry CRY_CATERPIE, $010, $17f ; SEAKING
+ mon_cry CRY_PARAS, $002, $0a0 ; STARYU
+ mon_cry CRY_PARAS, $000, $100 ; STARMIE
+ mon_cry CRY_KRABBY, $008, $0c0 ; MR__MIME
+ mon_cry CRY_CATERPIE, $000, $100 ; SCYTHER
+ mon_cry CRY_DROWZEE, $0ff, $17f ; JYNX
+ mon_cry CRY_VOLTORB, $08f, $17f ; ELECTABUZZ
+ mon_cry CRY_CHARMANDER, $0ff, $0b0 ; MAGMAR
+ mon_cry CRY_PIDGEOTTO, $000, $100 ; PINSIR
+ mon_cry CRY_SQUIRTLE, $011, $0c0 ; TAUROS
+ mon_cry CRY_EKANS, $080, $080 ; MAGIKARP
+ mon_cry CRY_EKANS, $000, $100 ; GYARADOS
+ mon_cry CRY_LAPRAS, $000, $100 ; LAPRAS
+ mon_cry CRY_PIDGEY, $0ff, $17f ; DITTO
+ mon_cry CRY_VENONAT, $088, $0e0 ; EEVEE
+ mon_cry CRY_VENONAT, $0aa, $17f ; VAPOREON
+ mon_cry CRY_VENONAT, $03d, $100 ; JOLTEON
+ mon_cry CRY_VENONAT, $010, $0a0 ; FLAREON
+ mon_cry CRY_WEEPINBELL, $0aa, $17f ; PORYGON
+ mon_cry CRY_GROWLITHE, $0f0, $081 ; OMANYTE
+ mon_cry CRY_GROWLITHE, $0ff, $0c0 ; OMASTAR
+ mon_cry CRY_CATERPIE, $0bb, $0c0 ; KABUTO
+ mon_cry CRY_FEAROW, $0ee, $081 ; KABUTOPS
+ mon_cry CRY_VILEPLUME, $020, $170 ; AERODACTYL
+ mon_cry CRY_GRIMER, $055, $081 ; SNORLAX
+ mon_cry CRY_RAICHU, $080, $0c0 ; ARTICUNO
+ mon_cry CRY_FEAROW, $0ff, $100 ; ZAPDOS
+ mon_cry CRY_RAICHU, $0f8, $0c0 ; MOLTRES
+ mon_cry CRY_BULBASAUR, $060, $0c0 ; DRATINI
+ mon_cry CRY_BULBASAUR, $040, $100 ; DRAGONAIR
+ mon_cry CRY_BULBASAUR, $03c, $140 ; DRAGONITE
+ mon_cry CRY_PARAS, $099, $17f ; MEWTWO
+ mon_cry CRY_PARAS, $0ee, $17f ; MEW
+ mon_cry CRY_CHIKORITA, -$010, $0b0 ; CHIKORITA
+ mon_cry CRY_CHIKORITA, -$022, $120 ; BAYLEEF
+ mon_cry CRY_CHIKORITA, -$0b7, $200 ; MEGANIUM
+ mon_cry CRY_CYNDAQUIL, $347, $080 ; CYNDAQUIL
+ mon_cry CRY_CYNDAQUIL, $321, $120 ; QUILAVA
+ mon_cry CRY_TYPHLOSION, $f00, $0d4 ; TYPHLOSION
+ mon_cry CRY_TOTODILE, $46c, $0e8 ; TOTODILE
+ mon_cry CRY_TOTODILE, $440, $110 ; CROCONAW
+ mon_cry CRY_TOTODILE, $3fc, $180 ; FERALIGATR
+ mon_cry CRY_SENTRET, $08a, $0b8 ; SENTRET
+ mon_cry CRY_SENTRET, $06b, $102 ; FURRET
+ mon_cry CRY_HOOTHOOT, $091, $0d8 ; HOOTHOOT
+ mon_cry CRY_HOOTHOOT, $000, $1a0 ; NOCTOWL
+ mon_cry CRY_LEDYBA, $000, $0de ; LEDYBA
+ mon_cry CRY_LEDYBA, -$096, $138 ; LEDIAN
+ mon_cry CRY_SPINARAK, $011, $200 ; SPINARAK
+ mon_cry CRY_SPINARAK, -$0ae, $1e2 ; ARIADOS
+ mon_cry CRY_SQUIRTLE, -$010, $140 ; CROBAT
+ mon_cry CRY_CYNDAQUIL, $3c9, $140 ; CHINCHOU
+ mon_cry CRY_CYNDAQUIL, $2d0, $110 ; LANTURN
+ mon_cry CRY_PICHU, $000, $140 ; PICHU
+ mon_cry CRY_CLEFFA, $061, $091 ; CLEFFA
+ mon_cry CRY_CHIKORITA, $0e8, $0e8 ; IGGLYBUFF
+ mon_cry CRY_TOGEPI, $010, $100 ; TOGEPI
+ mon_cry CRY_TOGETIC, $03b, $038 ; TOGETIC
+ mon_cry CRY_NATU, -$067, $100 ; NATU
+ mon_cry CRY_NATU, -$0a7, $168 ; XATU
+ mon_cry CRY_MAREEP, $022, $0d8 ; MAREEP
+ mon_cry CRY_MAREEP, -$007, $180 ; FLAAFFY
+ mon_cry CRY_AMPHAROS, -$07c, $0e8 ; AMPHAROS
+ mon_cry CRY_CLEFFA, $084, $150 ; BELLOSSOM
+ mon_cry CRY_MARILL, $11b, $120 ; MARILL
+ mon_cry CRY_MARILL, $0b6, $180 ; AZUMARILL
+ mon_cry CRY_CLEFFA, $f40, $180 ; SUDOWOODO
+ mon_cry CRY_CLEFFA, -$2a3, $1c8 ; POLITOED
+ mon_cry CRY_CLEFFA, $03b, $0c8 ; HOPPIP
+ mon_cry CRY_CLEFFA, $027, $138 ; SKIPLOOM
+ mon_cry CRY_CLEFFA, $000, $180 ; JUMPLUFF
+ mon_cry CRY_AIPOM, -$051, $0e8 ; AIPOM
+ mon_cry CRY_MARILL, $12b, $0b8 ; SUNKERN
+ mon_cry CRY_SUNFLORA, -$020, $180 ; SUNFLORA
+ mon_cry CRY_TOTODILE, $031, $0c8 ; YANMA
+ mon_cry CRY_WOOPER, $093, $0af ; WOOPER
+ mon_cry CRY_WOOPER, -$0c6, $140 ; QUAGSIRE
+ mon_cry CRY_AIPOM, $0a2, $140 ; ESPEON
+ mon_cry CRY_VENONAT, -$0e9, $0f0 ; UMBREON
+ mon_cry CRY_MARILL, -$01f, $180 ; MURKROW
+ mon_cry CRY_SLOWKING, $104, $200 ; SLOWKING
+ mon_cry CRY_HOOTHOOT, $130, $0e8 ; MISDREAVUS
+ mon_cry CRY_HOOTHOOT, $162, $100 ; UNOWN
+ mon_cry CRY_AMPHAROS, $27b, $144 ; WOBBUFFET
+ mon_cry CRY_GIRAFARIG, $041, $200 ; GIRAFARIG
+ mon_cry CRY_SLOWKING, $080, $100 ; PINECO
+ mon_cry CRY_SLOWKING, $000, $180 ; FORRETRESS
+ mon_cry CRY_DUNSPARCE, $1c4, $100 ; DUNSPARCE
+ mon_cry CRY_GLIGAR, -$102, $100 ; GLIGAR
+ mon_cry CRY_TYPHLOSION, $0ef, $0f7 ; STEELIX
+ mon_cry CRY_DUNSPARCE, $112, $0e8 ; SNUBBULL
+ mon_cry CRY_DUNSPARCE, $000, $180 ; GRANBULL
+ mon_cry CRY_SLOWKING, $160, $0e0 ; QWILFISH
+ mon_cry CRY_AMPHAROS, $000, $160 ; SCIZOR
+ mon_cry CRY_DUNSPARCE, $290, $0a8 ; SHUCKLE
+ mon_cry CRY_AMPHAROS, $035, $0e0 ; HERACROSS
+ mon_cry CRY_WOOPER, $053, $0af ; SNEASEL
+ mon_cry CRY_TEDDIURSA, $7a2, $06e ; TEDDIURSA
+ mon_cry CRY_TEDDIURSA, $640, $0d8 ; URSARING
+ mon_cry CRY_SLUGMA, -$1d8, $140 ; SLUGMA
+ mon_cry CRY_MAGCARGO, -$20d, $1c0 ; MAGCARGO
+ mon_cry CRY_CYNDAQUIL, $1fe, $140 ; SWINUB
+ mon_cry CRY_MAGCARGO, -$109, $100 ; PILOSWINE
+ mon_cry CRY_MAGCARGO, $0a1, $0e8 ; CORSOLA
+ mon_cry CRY_SUNFLORA, $00d, $100 ; REMORAID
+ mon_cry CRY_TOTODILE, $000, $180 ; OCTILLERY
+ mon_cry CRY_TEDDIURSA, $002, $06a ; DELIBIRD
+ mon_cry CRY_MANTINE, -$0be, $0f0 ; MANTINE
+ mon_cry CRY_AMPHAROS, $8a9, $180 ; SKARMORY
+ mon_cry CRY_CYNDAQUIL, $039, $140 ; HOUNDOUR
+ mon_cry CRY_TOTODILE, -$10a, $100 ; HOUNDOOM
+ mon_cry CRY_SLUGMA, $2fb, $100 ; KINGDRA
+ mon_cry CRY_SENTRET, $048, $230 ; PHANPY
+ mon_cry CRY_DONPHAN, $000, $1a0 ; DONPHAN
+ mon_cry CRY_GIRAFARIG, $073, $240 ; PORYGON2
+ mon_cry CRY_AIPOM, -$160, $180 ; STANTLER
+ mon_cry CRY_PICHU, -$21a, $1f0 ; SMEARGLE
+ mon_cry CRY_AIPOM, $02c, $108 ; TYROGUE
+ mon_cry CRY_SLUGMA, $000, $100 ; HITMONTOP
+ mon_cry CRY_MARILL, $068, $100 ; SMOOCHUM
+ mon_cry CRY_SUNFLORA, -$2d8, $0b4 ; ELEKID
+ mon_cry CRY_TEDDIURSA, $176, $03a ; MAGBY
+ mon_cry CRY_GLIGAR, -$1cd, $1a0 ; MILTANK
+ mon_cry CRY_SLOWKING, $293, $140 ; BLISSEY
+ mon_cry CRY_RAIKOU, $22e, $120 ; RAIKOU
+ mon_cry CRY_ENTEI, $000, $1a0 ; ENTEI
+ mon_cry CRY_MAGCARGO, $000, $180 ; SUICUNE
+ mon_cry CRY_RAIKOU, $05f, $0d0 ; LARVITAR
+ mon_cry CRY_SPINARAK, -$1db, $150 ; PUPITAR
+ mon_cry CRY_RAIKOU, -$100, $180 ; TYRANITAR
+ mon_cry CRY_TYPHLOSION, $000, $100 ; LUGIA
+ mon_cry CRY_AIPOM, $000, $180 ; HO_OH
+ mon_cry CRY_ENTEI, $14a, $111 ; CELEBI
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 252
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 253
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 254
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 255
+; f2d81
--- a/data/pokemon/cry_headers.asm
+++ /dev/null
@@ -1,259 +1,0 @@
-CryHeaders:: ; f2787
-; entries correspond to constants/pokemon_constants.asm
-; index, pitch, length
-BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
-IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
-VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
-CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
-CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
-CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
-SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
-WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
-BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
-CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
-MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
-ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
-WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
-KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
-BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
-PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
-PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
-PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
-RattataCryHeader: cry_header CRY_RATTATA, $000, $100
-RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
-SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
-FearowCryHeader: cry_header CRY_FEAROW, $040, $120
-EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
-ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
-PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
-RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
-SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
-SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
-NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
-NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
-NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
-NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
-NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
-NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
-ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
-ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
-VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
-NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
-JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
-WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
-ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
-GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
-OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
-GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
-VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
-ParasCryHeader: cry_header CRY_PARAS, $020, $160
-ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
-VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
-VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
-DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
-DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
-MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
-PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
-PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
-GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
-MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
-PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
-GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
-ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
-PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
-PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
-AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
-KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
-AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
-MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
-MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
-MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
-BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
-WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
-VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
-TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
-TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
-GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
-GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
-GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
-PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
-RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
-SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
-SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
-MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
-MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
-FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
-DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
-DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
-SeelCryHeader: cry_header CRY_SEEL, $088, $140
-DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
-GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
-MukCryHeader: cry_header CRY_MUK, $0ef, $17f
-ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
-CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
-GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
-HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
-GengarCryHeader: cry_header CRY_MUK, $000, $17f
-OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
-DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
-HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
-KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
-KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
-VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
-ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
-ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
-ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
-CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
-MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
-HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
-HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
-LickitungCryHeader: cry_header CRY_SEEL, $000, $100
-KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
-WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
-RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
-RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
-ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
-TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
-KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
-HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
-SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
-GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
-SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
-StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
-StarmieCryHeader: cry_header CRY_PARAS, $000, $100
-MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
-ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
-JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
-ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
-MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
-PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
-TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
-MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
-GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
-LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
-DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
-VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
-JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
-FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
-PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
-OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
-OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
-KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
-KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
-AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
-SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
-ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
-ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
-MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
-DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
-DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
-DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
-MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
-MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
-ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
-BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
-MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
-CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
-QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
-TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
-TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
-CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
-FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
-SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
-FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
-HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
-NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
-LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
-LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
-SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
-AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
-CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
-ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
-LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
-PichuCryHeader: cry_header CRY_PICHU, $000, $140
-CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
-IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
-TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
-TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
-NatuCryHeader: cry_header CRY_NATU, -$067, $100
-XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
-MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
-FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
-AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
-BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
-MarillCryHeader: cry_header CRY_MARILL, $11b, $120
-AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
-SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
-PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
-HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
-SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
-JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
-AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
-SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
-SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
-YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
-WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
-QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
-EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
-UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
-MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
-SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
-MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
-UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
-WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
-GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
-PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
-ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
-DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
-GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
-SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
-SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
-GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
-QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
-ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
-ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
-HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
-SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
-TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
-UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
-SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
-MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
-SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
-PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
-CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
-RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
-OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
-DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
-MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
-SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
-HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
-HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
-KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
-PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
-DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
-Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
-StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
-SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
-TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
-HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
-SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
-ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
-MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
-MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
-BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
-RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
-EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
-SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
-LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
-PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
-TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
-LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
-HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
-CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
-CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
-; f2d81
--- /dev/null
+++ b/data/sprites.asm
@@ -1,0 +1,111 @@
+overworld_sprite: MACRO
+; pointer, length, type, palette
+ dw \1
+ db \2 * 4 tiles, BANK(\1)
+ db \3, \4
+ENDM
+
+OverworldSprites: ; 14736
+; entries correspond to SPRITE_* constants
+ overworld_sprite ChrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ChrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite GameboyKidSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
+ overworld_sprite SilverSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite OakSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RedSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BlueSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BillSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ElderSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite JanineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite KurtSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite MomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BlaineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RedsMomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite DaisySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite ElmSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite WillSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite FalknerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite WhitneySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BugsySpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite MortySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ChuckSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite JasmineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite PryceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ClairSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BrockSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite KarenSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BrunoSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite MistySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite LanceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite SurgeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite ErikaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite KogaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SabrinaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite CooltrainerMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite CooltrainerFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BugCatcherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite TwinSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite YoungsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite LassSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite TeacherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BuenaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SuperNerdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite RockerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite PokefanMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite PokefanFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite GrampsSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite GrannySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SwimmerGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SwimmerGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BigSnorlaxSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SurfingPikachuSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite RocketSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RocketGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite NurseSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite LinkReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ClerkSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite FisherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite FishingGuruSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite ScientistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KimonoGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite SageSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite UnusedGuySpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite GentlemanSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BlackBeltSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite OfficerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite CalSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SlowpokeSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite CaptainSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite BigLaprasSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite GymGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SailorSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BikerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite PharmacistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite MonsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite FairySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BirdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite DragonSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BigOnixSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
+ overworld_sprite N64SpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite SudowoodoSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
+ overworld_sprite SurfSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite PokeBallSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite PokedexSpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite PaperSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite VirtualBoySpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite OldLinkReceptionistSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite RockSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
+ overworld_sprite BoulderSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
+ overworld_sprite SnesSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite FamicomSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite FruitTreeSpriteGFX, 1, STILL_SPRITE, PAL_OW_TREE
+ overworld_sprite GoldTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite SilverTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_SILVER
+ overworld_sprite KrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KurtOutsideSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SuicuneSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite EnteiSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite RaikouSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite StandingYoungsterSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -91,7 +91,7 @@
db map_change_callback
db map_player_coord
db map_load_blocks
- db map_load_tileset_header
+ db map_load_tileset
db map_save_screen
db map_load_objects
db map_fade_music
@@ -253,7 +253,7 @@
dba SaveScreen ; 0c
dba BufferScreen ; 0d
dba LoadGraphics ; 0e
- dba LoadTilesetHeader ; 0f
+ dba LoadTileset ; 0f
dba LoadMapTimeOfDay ; 10
dba LoadMapPalettes ; 11
dba LoadWildMonData ; 12
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -202,11 +202,11 @@
call GetMonSprite
ret c
- ld hl, SpriteHeaders ; address
+ ld hl, OverworldSprites + SPRITEDATA_ADDR
dec a
ld c, a
ld b, 0
- ld a, 6
+ ld a, NUM_SPRITEDATA_FIELDS
call AddNTimes
; load the address into de
ld a, [hli]
@@ -299,11 +299,11 @@
push hl
push bc
- ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type
+ ld hl, OverworldSprites + SPRITEDATA_TYPE
dec a
ld c, a
ld b, 0
- ld a, NUM_SPRITEHEADER_FIELDS
+ ld a, NUM_SPRITEDATA_FIELDS
call AddNTimes
ld a, [hl]
pop bc
@@ -324,11 +324,11 @@
call GetMonSprite
jr c, .is_pokemon
- ld hl, SpriteHeaders + 5 ; palette
+ ld hl, OverworldSprites + SPRITEDATA_PALETTE
dec a
ld c, a
ld b, 0
- ld a, 6
+ ld a, NUM_SPRITEDATA_FIELDS
call AddNTimes
ld c, [hl]
ret
@@ -691,8 +691,8 @@
LoadEmote:: ; 1442f
; Get the address of the pointer to emote c.
ld a, c
- ld bc, 6
- ld hl, EmotesPointers
+ ld bc, 6 ; sizeof(emote)
+ ld hl, Emotes
call AddNTimes
; Load the emote address into de
ld e, [hl]
@@ -719,10 +719,10 @@
; 1444d
-INCLUDE "data/emote_headers.asm"
+INCLUDE "data/emotes.asm"
INCLUDE "data/sprite_mons.asm"
INCLUDE "data/maps/outdoor_sprites.asm"
-INCLUDE "gfx/sprite_headers.asm"
+INCLUDE "data/sprites.asm"
--- a/engine/warp_connection.asm
+++ b/engine/warp_connection.asm
@@ -292,8 +292,8 @@
ret
LoadGraphics: ; 1047cf
- call LoadTilesetHeader
call LoadTileset
+ call LoadTilesetGFX
xor a
ld [hMapAnims], a
xor a
--- a/gfx/footprints.asm
+++ b/gfx/footprints.asm
@@ -1,12 +1,10 @@
-; In this game, footprints are stored in a non-continuous manner.
-; Instead, they're stored in a 32x8 grid.
-; Each of the footprints is 16x16, so, since tiles on the GB are 8x8,
-; you get the two top tiles first, while the two bottom tiles are stored
-; on the next row of the image.
+; Footprints are 2x2 tiles each, but are stored as a 16x64-tile image
+; (32 rows of 8 footprints per row).
+; That means there's a row of the top two tiles for eight footprints,
+; then a row of the bottom two tiles for those eight footprints.
-; These macros help extract the first two tiles, and the last two tiles,
-; respectively.
-footprint_top EQUS " 0, 2 * LEN_1BPP_TILE"
+; These macros help extract the first and the last two tiles, respectively.
+footprint_top EQUS "0, 2 * LEN_1BPP_TILE"
footprint_bottom EQUS "2 * LEN_1BPP_TILE, 2 * LEN_1BPP_TILE"
; 001-008 top halves
--- a/gfx/sprite_headers.asm
+++ /dev/null
@@ -1,111 +1,0 @@
-sprite_header: MACRO
-; pointer, length, type, palette
- dw \1
- db \2 * 4 tiles, BANK(\1)
- db \3, \4
-ENDM
-
-SpriteHeaders: ; 14736
-; entries correspond to SPRITE_* constants
- sprite_header ChrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1473c
- sprite_header ChrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14742
- sprite_header GameboyKidSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN ; 14748
- sprite_header SilverSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1474e
- sprite_header OakSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14754
- sprite_header RedSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1475a
- sprite_header BlueSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14760
- sprite_header BillSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14766
- sprite_header ElderSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1476c
- sprite_header JanineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14772
- sprite_header KurtSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14778
- sprite_header MomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1477e
- sprite_header BlaineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14784
- sprite_header RedsMomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1478a
- sprite_header DaisySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14790
- sprite_header ElmSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14796
- sprite_header WillSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 1479c
- sprite_header FalknerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 147a2
- sprite_header WhitneySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147a8
- sprite_header BugsySpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147ae
- sprite_header MortySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147b4
- sprite_header ChuckSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147ba
- sprite_header JasmineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147c0
- sprite_header PryceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147c6
- sprite_header ClairSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147cc
- sprite_header BrockSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147d2
- sprite_header KarenSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 147d8
- sprite_header BrunoSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147de
- sprite_header MistySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 147e4
- sprite_header LanceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147ea
- sprite_header SurgeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147f0
- sprite_header ErikaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147f6
- sprite_header KogaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147fc
- sprite_header SabrinaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14802
- sprite_header CooltrainerMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14808
- sprite_header CooltrainerFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1480e
- sprite_header BugCatcherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14814
- sprite_header TwinSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1481a
- sprite_header YoungsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14820
- sprite_header LassSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14826
- sprite_header TeacherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1482c
- sprite_header BuenaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14832
- sprite_header SuperNerdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14838
- sprite_header RockerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 1483e
- sprite_header PokefanMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14844
- sprite_header PokefanFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1484a
- sprite_header GrampsSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14850
- sprite_header GrannySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14856
- sprite_header SwimmerGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1485c
- sprite_header SwimmerGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14862
- sprite_header BigSnorlaxSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 14868
- sprite_header SurfingPikachuSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1486e
- sprite_header RocketSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14874
- sprite_header RocketGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1487a
- sprite_header NurseSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 14880
- sprite_header LinkReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14886
- sprite_header ClerkSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 1488c
- sprite_header FisherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14892
- sprite_header FishingGuruSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14898
- sprite_header ScientistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1489e
- sprite_header KimonoGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 148a4
- sprite_header SageSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148aa
- sprite_header UnusedGuySpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 148b0
- sprite_header GentlemanSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148b6
- sprite_header BlackBeltSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148bc
- sprite_header ReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148c2
- sprite_header OfficerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148c8
- sprite_header CalSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148ce
- sprite_header SlowpokeSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 148d4
- sprite_header CaptainSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148da
- sprite_header BigLaprasSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 148e0
- sprite_header GymGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148e6
- sprite_header SailorSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148ec
- sprite_header BikerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148f2
- sprite_header PharmacistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148f8
- sprite_header MonsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 148fe
- sprite_header FairySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14904
- sprite_header BirdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1490a
- sprite_header DragonSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14910
- sprite_header BigOnixSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN ; 14916
- sprite_header N64SpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 1491c
- sprite_header SudowoodoSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN ; 14922
- sprite_header SurfSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14928
- sprite_header PokeBallSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1492e
- sprite_header PokedexSpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 14934
- sprite_header PaperSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 1493a
- sprite_header VirtualBoySpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 14940
- sprite_header OldLinkReceptionistSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 14946
- sprite_header RockSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK ; 1494c
- sprite_header BoulderSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK ; 14952
- sprite_header SnesSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 14958
- sprite_header FamicomSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1495e
- sprite_header FruitTreeSpriteGFX, 1, STILL_SPRITE, PAL_OW_TREE ; 14964
- sprite_header GoldTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 1496a
- sprite_header SilverTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_SILVER ; 14970
- sprite_header KrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14976
- sprite_header KrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1497c
- sprite_header KurtOutsideSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN ; 14982
- sprite_header SuicuneSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 14988
- sprite_header EnteiSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1498e
- sprite_header RaikouSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 14994
- sprite_header StandingYoungsterSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 1499a
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -152,13 +152,13 @@
ld a, [hROMBank]
push af
- ; Cry headers are stuck in one bank.
- ld a, BANK(CryHeaders)
+ ; Cries are stuck in one bank.
+ ld a, BANK(PokemonCries)
ld [hROMBank], a
ld [MBC3RomBank], a
- ld hl, CryHeaders
-rept 6
+ ld hl, PokemonCries
+rept 6 ; sizeof(mon_cry)
add hl, de
endr
--- a/home/cry.asm
+++ b/home/cry.asm
@@ -62,11 +62,11 @@
ld a, [hROMBank]
push af
- ld a, BANK(CryHeaders)
+ ld a, BANK(PokemonCries)
rst Bankswitch
- ld hl, CryHeaders
-rept 6
+ ld hl, PokemonCries
+rept 6 ; sizeof(mon_cry)
add hl, bc
endr
--- a/home/map.asm
+++ b/home/map.asm
@@ -1391,7 +1391,7 @@
ret
; 2821
-LoadTileset:: ; 2821
+LoadTilesetGFX:: ; 2821
ld hl, TilesetAddress
ld a, [hli]
ld h, [hl]
@@ -2054,7 +2054,7 @@
call SwitchToAnyMapBank
farcall UpdateTimeOfDayPal
call OverworldTextModeSwitch
- call LoadTileset
+ call LoadTilesetGFX
ld a, 9
call SkipMusic
pop af
@@ -2372,17 +2372,17 @@
ret
; 2d27
-LoadTilesetHeader:: ; 2d27
+LoadTileset:: ; 2d27
push hl
push bc
ld hl, Tilesets
- ld bc, TilesetHeaderEnd - TilesetHeader
+ ld bc, TilesetEnd - Tileset
ld a, [wTileset]
call AddNTimes
ld de, TilesetBank
- ld bc, TilesetHeaderEnd - TilesetHeader
+ ld bc, TilesetEnd - Tileset
ld a, BANK(Tilesets)
call FarCopyBytes
--- a/macros/scripts/audio.asm
+++ b/macros/scripts/audio.asm
@@ -1,3 +1,8 @@
+musicheader: macro
+ ; number of tracks, track idx, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ endm
+
note: MACRO
dn (\1), (\2) - 1
ENDM
@@ -12,15 +17,6 @@
note \1, \2 ; duration
db \3 ; intensity
db \4 ; frequency
- endm
-
-musicheader: macro
- ; number of tracks, track idx, address
- dbw ((\1 - 1) << 6) + (\2 - 1), \3
- endm
-
-cry_header: macro
- dw \1, \2, \3
endm
; MusicCommands indexes (see audio/engine.asm)
--- a/main.asm
+++ b/main.asm
@@ -232,7 +232,7 @@
INCLUDE "engine/link_2.asm"
INCLUDE "engine/delete_save_change_clock.asm"
-INCLUDE "tilesets/tileset_headers.asm"
+INCLUDE "tilesets/tilesets.asm"
INCLUDE "engine/routines/flagpredef.asm"
INCLUDE "engine/routines/trademonfrontpic.asm"
INCLUDE "engine/pokerus/check_pokerus.asm"
--- a/tilesets/tileset_headers.asm
+++ /dev/null
@@ -1,47 +1,0 @@
-tileset: macro
- dba \1GFX, \1Meta, \1Coll
- dw \1Anim
- dw NULL
- dw \1PalMap
-endm
-
-Tilesets:: ; 4d596
-; entries correspond to TILESET_* constants
- tileset Tileset0
- tileset TilesetJohto1
- tileset TilesetJohto2
- tileset TilesetKanto
- tileset TilesetBattleTowerOutside
- tileset TilesetHouse1
- tileset TilesetPlayersHouse
- tileset TilesetPokecenter
- tileset TilesetGate
- tileset TilesetPort
- tileset TilesetLab
- tileset TilesetPowerPlant
- tileset TilesetMart
- tileset TilesetCeladonMansion
- tileset TilesetGameCorner
- tileset TilesetGym1
- tileset TilesetKurtsHouse
- tileset TilesetTrainStation
- tileset TilesetOlivineGym
- tileset TilesetLighthouse
- tileset TilesetPlayersHouse2F
- tileset TilesetPokeComCenter
- tileset TilesetBattleTower
- tileset TilesetSproutTower
- tileset TilesetCave
- tileset TilesetPark
- tileset TilesetRuinsOfAlph
- tileset TilesetRadioTower
- tileset TilesetUnderground
- tileset TilesetIcePath
- tileset TilesetWhirlIslands
- tileset TilesetIlexForest
- tileset TilesetBetaWordRoom
- tileset TilesetHoOhWordRoom
- tileset TilesetKabutoWordRoom
- tileset TilesetOmanyteWordRoom
- tileset TilesetAerodactylWordRoom
-; 4d7c1
--- /dev/null
+++ b/tilesets/tilesets.asm
@@ -1,0 +1,47 @@
+tileset: macro
+ dba \1GFX, \1Meta, \1Coll
+ dw \1Anim
+ dw NULL
+ dw \1PalMap
+endm
+
+Tilesets:: ; 4d596
+; entries correspond to TILESET_* constants
+ tileset Tileset0
+ tileset TilesetJohto1
+ tileset TilesetJohto2
+ tileset TilesetKanto
+ tileset TilesetBattleTowerOutside
+ tileset TilesetHouse1
+ tileset TilesetPlayersHouse
+ tileset TilesetPokecenter
+ tileset TilesetGate
+ tileset TilesetPort
+ tileset TilesetLab
+ tileset TilesetPowerPlant
+ tileset TilesetMart
+ tileset TilesetCeladonMansion
+ tileset TilesetGameCorner
+ tileset TilesetGym1
+ tileset TilesetKurtsHouse
+ tileset TilesetTrainStation
+ tileset TilesetOlivineGym
+ tileset TilesetLighthouse
+ tileset TilesetPlayersHouse2F
+ tileset TilesetPokeComCenter
+ tileset TilesetBattleTower
+ tileset TilesetSproutTower
+ tileset TilesetCave
+ tileset TilesetPark
+ tileset TilesetRuinsOfAlph
+ tileset TilesetRadioTower
+ tileset TilesetUnderground
+ tileset TilesetIcePath
+ tileset TilesetWhirlIslands
+ tileset TilesetIlexForest
+ tileset TilesetBetaWordRoom
+ tileset TilesetHoOhWordRoom
+ tileset TilesetKabutoWordRoom
+ tileset TilesetOmanyteWordRoom
+ tileset TilesetAerodactylWordRoom
+; 4d7c1
--- a/wram.asm
+++ b/wram.asm
@@ -1956,7 +1956,7 @@
WestMapConnection:: map_connection_struct West ; d1c1
EastMapConnection:: map_connection_struct East ; d1cd
-TilesetHeader::
+Tileset::
TilesetBank:: db ; d1d9
TilesetAddress:: dw ; d1da
TilesetBlocksBank:: db ; d1dc
@@ -1966,7 +1966,7 @@
TilesetAnim:: dw ; bank 3f ; d1e2
ds 2 ; unused ; d1e4
TilesetPalettes:: dw ; bank 3f ; d1e6
-TilesetHeaderEnd::
+TilesetEnd::
EvolvableFlags:: flag_array PARTY_LENGTH ; d1e8