diff options
author | dannye <33dannye@gmail.com> | 2021-02-13 10:41:34 -0600 |
---|---|---|
committer | dannye <33dannye@gmail.com> | 2021-02-13 10:41:34 -0600 |
commit | bc25764d6c32bcabc756034123731ca9d1545504 (patch) | |
tree | bdc16990f8f17e2065c5d8433812fde46c159e71 /src | |
parent | 105768597ccd732ca54b734c9e6cbc529ebfd49b (diff) | |
parent | c708b288d4f978b7e269c934233a7db747d91a53 (diff) |
Merge branch 'master' of https://github.com/pret/poketcg
Diffstat (limited to 'src')
120 files changed, 3041 insertions, 1486 deletions
diff --git a/src/constants.asm b/src/constants.asm index cd56fe2..733dd8c 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -12,11 +12,14 @@ INCLUDE "constants/misc_constants.asm" INCLUDE "constants/music_constants.asm" INCLUDE "constants/name_constants.asm" INCLUDE "constants/npc_constants.asm" +INCLUDE "constants/palette_constants.asm" INCLUDE "constants/script_constants.asm" INCLUDE "constants/sgb_constants.asm" INCLUDE "constants/sfx_constants.asm" INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/text_constants.asm" +INCLUDE "constants/tilemap_constants.asm" +INCLUDE "constants/tileset_constants.asm" INCLUDE "constants/animation_constants.asm" INCLUDE "constants/attack_animation_constants.asm" INCLUDE "constants/charmaps.asm" diff --git a/src/constants/palette_constants.asm b/src/constants/palette_constants.asm new file mode 100644 index 0000000..552885e --- /dev/null +++ b/src/constants/palette_constants.asm @@ -0,0 +1,162 @@ + const_def
+ const PALETTE_0 ; $00
+ const PALETTE_1 ; $01
+ const PALETTE_2 ; $02
+ const PALETTE_3 ; $03
+ const PALETTE_4 ; $04
+ const PALETTE_5 ; $05
+ const PALETTE_6 ; $06
+ const PALETTE_7 ; $07
+ const PALETTE_8 ; $08
+ const PALETTE_9 ; $09
+ const PALETTE_10 ; $0a
+ const PALETTE_11 ; $0b
+ const PALETTE_12 ; $0c
+ const PALETTE_13 ; $0d
+ const PALETTE_14 ; $0e
+ const PALETTE_15 ; $0f
+ const PALETTE_16 ; $10
+ const PALETTE_17 ; $11
+ const PALETTE_18 ; $12
+ const PALETTE_19 ; $13
+ const PALETTE_20 ; $14
+ const PALETTE_21 ; $15
+ const PALETTE_22 ; $16
+ const PALETTE_23 ; $17
+ const PALETTE_24 ; $18
+ const PALETTE_25 ; $19
+ const PALETTE_26 ; $1a
+ const PALETTE_27 ; $1b
+ const PALETTE_28 ; $1c
+ const PALETTE_29 ; $1d
+ const PALETTE_30 ; $1e
+ const PALETTE_31 ; $1f
+ const PALETTE_32 ; $20
+ const PALETTE_33 ; $21
+ const PALETTE_34 ; $22
+ const PALETTE_35 ; $23
+ const PALETTE_36 ; $24
+ const PALETTE_37 ; $25
+ const PALETTE_38 ; $26
+ const PALETTE_39 ; $27
+ const PALETTE_40 ; $28
+ const PALETTE_41 ; $29
+ const PALETTE_42 ; $2a
+ const PALETTE_43 ; $2b
+ const PALETTE_44 ; $2c
+ const PALETTE_45 ; $2d
+ const PALETTE_46 ; $2e
+ const PALETTE_47 ; $2f
+ const PALETTE_48 ; $30
+ const PALETTE_49 ; $31
+ const PALETTE_50 ; $32
+ const PALETTE_51 ; $33
+ const PALETTE_52 ; $34
+ const PALETTE_53 ; $35
+ const PALETTE_54 ; $36
+ const PALETTE_55 ; $37
+ const PALETTE_56 ; $38
+ const PALETTE_57 ; $39
+ const PALETTE_58 ; $3a
+ const PALETTE_59 ; $3b
+ const PALETTE_60 ; $3c
+ const PALETTE_61 ; $3d
+ const PALETTE_62 ; $3e
+ const PALETTE_63 ; $3f
+ const PALETTE_64 ; $40
+ const PALETTE_65 ; $41
+ const PALETTE_66 ; $42
+ const PALETTE_67 ; $43
+ const PALETTE_68 ; $44
+ const PALETTE_69 ; $45
+ const PALETTE_70 ; $46
+ const PALETTE_71 ; $47
+ const PALETTE_72 ; $48
+ const PALETTE_73 ; $49
+ const PALETTE_74 ; $4a
+ const PALETTE_75 ; $4b
+ const PALETTE_76 ; $4c
+ const PALETTE_77 ; $4d
+ const PALETTE_78 ; $4e
+ const PALETTE_79 ; $4f
+ const PALETTE_80 ; $50
+ const PALETTE_81 ; $51
+ const PALETTE_82 ; $52
+ const PALETTE_83 ; $53
+ const PALETTE_84 ; $54
+ const PALETTE_85 ; $55
+ const PALETTE_86 ; $56
+ const PALETTE_87 ; $57
+ const PALETTE_88 ; $58
+ const PALETTE_89 ; $59
+ const PALETTE_90 ; $a5
+ const PALETTE_91 ; $5b
+ const PALETTE_92 ; $5c
+ const PALETTE_93 ; $5d
+ const PALETTE_94 ; $5e
+ const PALETTE_95 ; $5f
+ const PALETTE_96 ; $60
+ const PALETTE_97 ; $61
+ const PALETTE_98 ; $62
+ const PALETTE_99 ; $63
+ const PALETTE_100 ; $64
+ const PALETTE_101 ; $65
+ const PALETTE_102 ; $66
+ const PALETTE_103 ; $67
+ const PALETTE_104 ; $68
+ const PALETTE_105 ; $69
+ const PALETTE_106 ; $6a
+ const PALETTE_107 ; $6b
+ const PALETTE_108 ; $6c
+ const PALETTE_109 ; $6d
+ const PALETTE_110 ; $6e
+ const PALETTE_111 ; $6f
+ const PALETTE_112 ; $70
+ const PALETTE_113 ; $71
+ const PALETTE_114 ; $72
+ const PALETTE_115 ; $73
+ const PALETTE_116 ; $74
+ const PALETTE_117 ; $75
+ const PALETTE_118 ; $76
+ const PALETTE_119 ; $77
+ const PALETTE_120 ; $78
+ const PALETTE_121 ; $79
+ const PALETTE_122 ; $7a
+ const PALETTE_123 ; $7b
+ const PALETTE_124 ; $7c
+ const PALETTE_125 ; $7d
+ const PALETTE_126 ; $7e
+ const PALETTE_127 ; $7f
+ const PALETTE_128 ; $80
+ const PALETTE_129 ; $81
+ const PALETTE_130 ; $82
+ const PALETTE_131 ; $83
+ const PALETTE_132 ; $84
+ const PALETTE_133 ; $85
+ const PALETTE_134 ; $86
+ const PALETTE_135 ; $87
+ const PALETTE_136 ; $88
+ const PALETTE_137 ; $89
+ const PALETTE_138 ; $8a
+ const PALETTE_139 ; $8b
+ const PALETTE_140 ; $8c
+ const PALETTE_141 ; $8d
+ const PALETTE_142 ; $8e
+ const PALETTE_143 ; $8f
+ const PALETTE_144 ; $90
+ const PALETTE_145 ; $91
+ const PALETTE_146 ; $92
+ const PALETTE_147 ; $93
+ const PALETTE_148 ; $94
+ const PALETTE_149 ; $95
+ const PALETTE_150 ; $96
+ const PALETTE_151 ; $97
+ const PALETTE_152 ; $98
+ const PALETTE_153 ; $99
+ const PALETTE_154 ; $9a
+ const PALETTE_155 ; $9b
+ const PALETTE_156 ; $9c
+ const PALETTE_157 ; $9d
+ const PALETTE_158 ; $9e
+ const PALETTE_159 ; $9f
+ const PALETTE_160 ; $a0
diff --git a/src/constants/tilemap_constants.asm b/src/constants/tilemap_constants.asm new file mode 100644 index 0000000..cb12931 --- /dev/null +++ b/src/constants/tilemap_constants.asm @@ -0,0 +1,107 @@ + const_def
+ const TILEMAP_OVERWORLD_MAP ; $00
+ const TILEMAP_OVERWORLD_MAP_CGB ; $01
+ const TILEMAP_MASON_LABORATORY ; $02
+ const TILEMAP_MASON_LABORATORY_CGB ; $03
+ const TILEMAP_UNUSED_1 ; $04
+ const TILEMAP_UNUSED_2 ; $05
+ const TILEMAP_DECK_MACHINE_ROOM ; $06
+ const TILEMAP_DECK_MACHINE_ROOM_CGB ; $07
+ const TILEMAP_UNUSED_3 ; $08
+ const TILEMAP_UNUSED_4 ; $09
+ const TILEMAP_ISHIHARA ; $0a
+ const TILEMAP_ISHIHARA_CGB ; $0b
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE ; $0c
+ const TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB ; $0d
+ const TILEMAP_ROCK_CLUB_ENTRANCE ; $0e
+ const TILEMAP_ROCK_CLUB_ENTRANCE_CGB ; $0f
+ const TILEMAP_WATER_CLUB_ENTRANCE ; $10
+ const TILEMAP_WATER_CLUB_ENTRANCE_CGB ; $11
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE ; $12
+ const TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB ; $13
+ const TILEMAP_GRASS_CLUB_ENTRANCE ; $14
+ const TILEMAP_GRASS_CLUB_ENTRANCE_CGB ; $15
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE ; $16
+ const TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB ; $17
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE ; $18
+ const TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB ; $19
+ const TILEMAP_FIRE_CLUB_ENTRANCE ; $1a
+ const TILEMAP_FIRE_CLUB_ENTRANCE_CGB ; $1b
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE ; $1c
+ const TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB ; $1d
+ const TILEMAP_CLUB_LOBBY ; $1e
+ const TILEMAP_CLUB_LOBBY_CGB ; $1f
+ const TILEMAP_FIGHTING_CLUB ; $20
+ const TILEMAP_FIGHTING_CLUB_CGB ; $21
+ const TILEMAP_ROCK_CLUB ; $22
+ const TILEMAP_ROCK_CLUB_CGB ; $23
+ const TILEMAP_WATER_CLUB ; $24
+ const TILEMAP_WATER_CLUB_CGB ; $25
+ const TILEMAP_LIGHTNING_CLUB ; $26
+ const TILEMAP_LIGHTNING_CLUB_CGB ; $27
+ const TILEMAP_GRASS_CLUB ; $28
+ const TILEMAP_GRASS_CLUB_CGB ; $29
+ const TILEMAP_PSYCHIC_CLUB ; $2a
+ const TILEMAP_PSYCHIC_CLUB_CGB ; $2b
+ const TILEMAP_SCIENCE_CLUB ; $2c
+ const TILEMAP_SCIENCE_CLUB_CGB ; $2d
+ const TILEMAP_FIRE_CLUB ; $2e
+ const TILEMAP_FIRE_CLUB_CGB ; $2f
+ const TILEMAP_CHALLENGE_HALL ; $30
+ const TILEMAP_CHALLENGE_HALL_CGB ; $31
+ const TILEMAP_POKEMON_DOME_ENTRANCE ; $32
+ const TILEMAP_POKEMON_DOME_ENTRANCE_CGB ; $33
+ const TILEMAP_UNUSED_5 ; $34
+ const TILEMAP_UNUSED_6 ; $35
+ const TILEMAP_POKEMON_DOME ; $36
+ const TILEMAP_POKEMON_DOME_CGB ; $37
+ const TILEMAP_UNUSED_7 ; $38
+ const TILEMAP_UNUSED_8 ; $39
+ const TILEMAP_HALL_OF_HONOR ; $3a
+ const TILEMAP_HALL_OF_HONOR_CGB ; $3b
+ const TILEMAP_CARD_POP_1 ; $3c
+ const TILEMAP_CARD_POP_1_CGB ; $3d
+ const TILEMAP_GRASS_MEDAL ; $3e
+ const TILEMAP_SCIENCE_MEDAL ; $3f
+ const TILEMAP_FIRE_MEDAL ; $40
+ const TILEMAP_WATER_MEDAL ; $41
+ const TILEMAP_LIGHTNING_MEDAL ; $42
+ const TILEMAP_FIGHTING_MEDAL ; $43
+ const TILEMAP_ROCK_MEDAL ; $44
+ const TILEMAP_PSYCHIC_MEDAL ; $45
+ const TILEMAP_CARD_POP_2 ; $46
+ const TILEMAP_CARD_POP_2_CGB ; $47
+ const TILEMAP_CARD_POP_2_UNKNOWN_1 ; $48
+ const TILEMAP_CARD_POP_2_UNKNOWN_2 ; $49
+ const TILEMAP_CARD_POP_3 ; $4a
+ const TILEMAP_CARD_POP_3_CGB ; $4b
+ const TILEMAP_COLOSSEUM ; $4c
+ const TILEMAP_COLOSSEUM_CGB ; $4d
+ const TILEMAP_EVOLUTION ; $4e
+ const TILEMAP_EVOLUTION_CGB ; $4f
+ const TILEMAP_MYSTERY ; $50
+ const TILEMAP_MYSTERY_CGB ; $51
+ const TILEMAP_LABORATORY ; $52
+ const TILEMAP_LABORATORY_CGB ; $53
+ const TILEMAP_CHARIZARD_INTRO ; $54
+ const TILEMAP_CHARIZARD_INTRO_CGB ; $55
+ const TILEMAP_SCYTHER_INTRO ; $56
+ const TILEMAP_SCYTHER_INTRO_CGB ; $57
+ const TILEMAP_AERODACTYL_INTRO ; $58
+ const TILEMAP_AERODACTYL_INTRO_CGB ; $59
+ const TILEMAP_TITLE_SCREEN_1 ; $5a
+ const TILEMAP_TITLE_SCREEN_2 ; $5b
+ const TILEMAP_SOLID_TILES_1 ; $5c
+ const TILEMAP_SOLID_TILES_2 ; $5d
+ const TILEMAP_SOLID_TILES_3 ; $5e
+ const TILEMAP_TITLE_SCREEN_3 ; $5f
+ const TILEMAP_TITLE_SCREEN_4 ; $60
+ const TILEMAP_SOLID_TILES_4 ; $61
+ const TILEMAP_PLAYER ; $62
+ const TILEMAP_OPPONENT ; $63
+ const TILEMAP_TITLE_SCREEN_5 ; $64
+ const TILEMAP_TITLE_SCREEN_6 ; $65
+ const TILEMAP_COPYRIGHT ; $66
+ const TILEMAP_COPYRIGHT_CGB ; $67
+ const TILEMAP_NINTENDO ; $68
+ const TILEMAP_COMPANIES ; $69
diff --git a/src/constants/tileset_constants.asm b/src/constants/tileset_constants.asm new file mode 100644 index 0000000..6e3f8f3 --- /dev/null +++ b/src/constants/tileset_constants.asm @@ -0,0 +1,88 @@ + const_def
+ const TILESET_OVERWORLD_MAP ; $00
+ const TILESET_MASON_LABORATORY ; $01
+ const TILESET_ISHIHARA ; $02
+ const TILESET_CLUB_ENTRANCE ; $03
+ const TILESET_CLUB_LOBBY ; $04
+ const TILESET_FIGHTING_CLUB ; $05
+ const TILESET_ROCK_CLUB ; $06
+ const TILESET_WATER_CLUB ; $07
+ const TILESET_LIGHTNING_CLUB ; $08
+ const TILESET_GRASS_CLUB ; $09
+ const TILESET_PSYCHIC_CLUB ; $0a
+ const TILESET_SCIENCE_CLUB ; $0b
+ const TILESET_FIRE_CLUB ; $0c
+ const TILESET_CHALLENGE_HALL ; $0d
+ const TILESET_POKEMON_DOME_ENTRANCE ; $0e
+ const TILESET_POKEMON_DOME ; $0f
+ const TILESET_HALL_OF_HONOR ; $10
+ const TILESET_CARD_POP_1 ; $11
+ const TILESET_MEDAL ; $12
+ const TILESET_CARD_POP_2 ; $13
+ const TILESET_CARD_POP_3 ; $14
+ const TILESET_COLOSSEUM_1 ; $15
+ const TILESET_COLOSSEUM_2 ; $16
+ const TILESET_EVOLUTION_1 ; $17
+ const TILESET_EVOLUTION_2 ; $18
+ const TILESET_MYSTERY_1 ; $19
+ const TILESET_MYSTERY_2 ; $1a
+ const TILESET_LABORATORY_1 ; $1b
+ const TILESET_LABORATORY_2 ; $1c
+ const TILESET_CHARIZARD_INTRO_1 ; $1d
+ const TILESET_CHARIZARD_INTRO_2 ; $1e
+ const TILESET_SCYTHER_INTRO_1 ; $1f
+ const TILESET_SCYTHER_INTRO_2 ; $20
+ const TILESET_AERODACTYL_INTRO_1 ; $21
+ const TILESET_AERODACTYL_INTRO_2 ; $22
+ const TILESET_TITLE_SCREEN_1 ; $23
+ const TILESET_TITLE_SCREEN_2 ; $24
+ const TILESET_SOLID_TILES_1 ; $25
+ const TILESET_TITLE_SCREEN_3 ; $26
+ const TILESET_TITLE_SCREEN_4 ; $27
+ const TILESET_SOLID_TILES_2 ; $28
+ const TILESET_PLAYER ; $29
+ const TILESET_RONALD ; $2a
+ const TILESET_TITLE_SCREEN_5 ; $2b
+ const TILESET_TITLE_SCREEN_6 ; $2c
+ const TILESET_COPYRIGHT ; $2d
+ const TILESET_NINTENDO ; $2e
+ const TILESET_COMPANIES ; $2f
+ const TILESET_SAM ; $30
+ const TILESET_IMAKUNI ; $31
+ const TILESET_NIKKI ; $32
+ const TILESET_RICK ; $33
+ const TILESET_KEN ; $34
+ const TILESET_AMY ; $35
+ const TILESET_ISAAC ; $36
+ const TILESET_MITCH ; $37
+ const TILESET_GENE ; $38
+ const TILESET_MURRAY ; $39
+ const TILESET_COURTNEY ; $3a
+ const TILESET_STEVE ; $3b
+ const TILESET_JACK ; $3c
+ const TILESET_ROD ; $3d
+ const TILESET_JOSEPH ; $3e
+ const TILESET_DAVID ; $3f
+ const TILESET_ERIK ; $40
+ const TILESET_JOHN ; $41
+ const TILESET_ADAM ; $42
+ const TILESET_JONATHAN ; $43
+ const TILESET_JOSHUA ; $44
+ const TILESET_NICHOLAS ; $45
+ const TILESET_BRANDON ; $46
+ const TILESET_MATTHEW ; $47
+ const TILESET_RYAN ; $48
+ const TILESET_ANDREW ; $49
+ const TILESET_CHRIS ; $4a
+ const TILESET_MICHAEL ; $4b
+ const TILESET_DANIEL ; $4c
+ const TILESET_ROBERT ; $4d
+ const TILESET_BRITTANY ; $4e
+ const TILESET_KRISTIN ; $4f
+ const TILESET_HEATHER ; $50
+ const TILESET_SARA ; $51
+ const TILESET_AMANDA ; $52
+ const TILESET_JENNIFER ; $53
+ const TILESET_JESSICA ; $54
+ const TILESET_STEPHANIE ; $55
+ const TILESET_AARON ; $56
diff --git a/src/data/duel_animations.asm b/src/data/duel_animations.asm new file mode 100644 index 0000000..49ed364 --- /dev/null +++ b/src/data/duel_animations.asm @@ -0,0 +1,778 @@ +; data for each animation ID (see src/constants/sprite_constants.asm)
+Animations: ; 1ce32 (7:4e32)
+ ; DUEL_ANIM_NONE
+ db $00 ; sprite ID
+ db $00 ; palette ID
+ db $00 ; anim ID
+ db $00 ; anim flags
+ db $00 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_GLOW
+ db SPRITE_DUEL_GLOW ; sprite ID
+ db PALETTE_31 ; palette ID
+ db $47 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_11 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PARALYSIS
+ db SPRITE_DUEL_1 ; sprite ID
+ db PALETTE_32 ; palette ID
+ db $48 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_12 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SLEEP
+ db SPRITE_DUEL_2 ; sprite ID
+ db PALETTE_33 ; palette ID
+ db $49 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_13 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_CONFUSION
+ db SPRITE_DUEL_55 ; sprite ID
+ db PALETTE_34 ; palette ID
+ db $4a ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_14 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_POISON
+ db SPRITE_DUEL_58 ; sprite ID
+ db PALETTE_35 ; palette ID
+ db $4b ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_15 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_6
+ db SPRITE_DUEL_3 ; sprite ID
+ db PALETTE_36 ; palette ID
+ db $4c ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_16 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_HIT
+ db SPRITE_DUEL_3 ; sprite ID
+ db PALETTE_36 ; palette ID
+ db $4d ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_16 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BIG_HIT
+ db SPRITE_DUEL_3 ; sprite ID
+ db PALETTE_36 ; palette ID
+ db $4e ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_17 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SHOW_DAMAGE
+ db SPRITE_DUEL_4 ; sprite ID
+ db PALETTE_37 ; palette ID
+ db $00 ; anim ID
+ db $00 ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_THUNDER_SHOCK
+ db SPRITE_DUEL_5 ; sprite ID
+ db PALETTE_38 ; palette ID
+ db $5c ; anim ID
+ db $00 ; anim flags
+ db SFX_18 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_LIGHTNING
+ db SPRITE_DUEL_6 ; sprite ID
+ db PALETTE_39 ; palette ID
+ db $5e ; anim ID
+ db $00 ; anim flags
+ db SFX_19 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BORDER_SPARK
+ db SPRITE_DUEL_59 ; sprite ID
+ db PALETTE_40 ; palette ID
+ db $5f ; anim ID
+ db $00 ; anim flags
+ db SFX_1A ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BIG_LIGHTNING
+ db SPRITE_DUEL_7 ; sprite ID
+ db PALETTE_41 ; palette ID
+ db $60 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_1B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SMALL_FLAME
+ db SPRITE_DUEL_8 ; sprite ID
+ db PALETTE_42 ; palette ID
+ db $61 ; anim ID
+ db $00 ; anim flags
+ db SFX_1C ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BIG_FLAME
+ db SPRITE_DUEL_8 ; sprite ID
+ db PALETTE_42 ; palette ID
+ db $62 ; anim ID
+ db $00 ; anim flags
+ db SFX_1D ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_FIRE_SPIN
+ db SPRITE_DUEL_9 ; sprite ID
+ db PALETTE_43 ; palette ID
+ db $63 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_1E ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DIVE_BOMB
+ db SPRITE_DUEL_10 ; sprite ID
+ db PALETTE_44 ; palette ID
+ db $64 ; anim ID
+ db $00 ; anim flags
+ db SFX_1F ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WATER_JETS
+ db SPRITE_DUEL_61 ; sprite ID
+ db PALETTE_45 ; palette ID
+ db $69 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_20 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WATER_GUN
+ db SPRITE_DUEL_11 ; sprite ID
+ db PALETTE_46 ; palette ID
+ db $6a ; anim ID
+ db $00 ; anim flags
+ db SFX_21 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WHIRLPOOL
+ db SPRITE_DUEL_12 ; sprite ID
+ db PALETTE_47 ; palette ID
+ db $6b ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_22 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_HYDRO_PUMP
+ db SPRITE_DUEL_13 ; sprite ID
+ db PALETTE_48 ; palette ID
+ db $6c ; anim ID
+ db $00 ; anim flags
+ db SFX_23 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BLIZZARD
+ db SPRITE_DUEL_62 ; sprite ID
+ db PALETTE_49 ; palette ID
+ db $6d ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_24 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PSYCHIC
+ db SPRITE_DUEL_14 ; sprite ID
+ db PALETTE_50 ; palette ID
+ db $6e ; anim ID
+ db $00 ; anim flags
+ db SFX_25 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_GLARE
+ db SPRITE_DUEL_15 ; sprite ID
+ db PALETTE_51 ; palette ID
+ db $6f ; anim ID
+ db $00 ; anim flags
+ db SFX_26 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BEAM
+ db SPRITE_DUEL_16 ; sprite ID
+ db PALETTE_52 ; palette ID
+ db $70 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags
+ db SFX_27 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_HYPER_BEAM
+ db SPRITE_DUEL_17 ; sprite ID
+ db PALETTE_53 ; palette ID
+ db $71 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags
+ db SFX_28 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_ROCK_THROW
+ db SPRITE_DUEL_18 ; sprite ID
+ db PALETTE_54 ; palette ID
+ db $72 ; anim ID
+ db $00 ; anim flags
+ db SFX_29 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_STONE_BARRAGE
+ db SPRITE_DUEL_18 ; sprite ID
+ db PALETTE_54 ; palette ID
+ db $73 ; anim ID
+ db $00 ; anim flags
+ db SFX_2A ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PUNCH
+ db SPRITE_DUEL_19 ; sprite ID
+ db PALETTE_55 ; palette ID
+ db $74 ; anim ID
+ db $00 ; anim flags
+ db SFX_2B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_THUNDERPUNCH
+ db SPRITE_DUEL_19 ; sprite ID
+ db PALETTE_55 ; palette ID
+ db $75 ; anim ID
+ db $00 ; anim flags
+ db SFX_52 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_FIRE_PUNCH
+ db SPRITE_DUEL_19 ; sprite ID
+ db PALETTE_55 ; palette ID
+ db $76 ; anim ID
+ db $00 ; anim flags
+ db SFX_53 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_STRETCH_KICK
+ db SPRITE_DUEL_20 ; sprite ID
+ db PALETTE_56 ; palette ID
+ db $77 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags
+ db SFX_2C ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SLASH
+ db SPRITE_DUEL_21 ; sprite ID
+ db PALETTE_57 ; palette ID
+ db $78 ; anim ID
+ db $00 ; anim flags
+ db SFX_2D ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WHIP
+ db SPRITE_DUEL_22 ; sprite ID
+ db PALETTE_58 ; palette ID
+ db $7a ; anim ID
+ db $00 ; anim flags
+ db SFX_2D ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_TEAR
+ db SPRITE_DUEL_23 ; sprite ID
+ db PALETTE_59 ; palette ID
+ db $7b ; anim ID
+ db $00 ; anim flags
+ db SFX_2E ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_FURY_SWIPES
+ db SPRITE_DUEL_21 ; sprite ID
+ db PALETTE_57 ; palette ID
+ db $79 ; anim ID
+ db $00 ; anim flags
+ db SFX_2F ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DRILL
+ db SPRITE_DUEL_24 ; sprite ID
+ db PALETTE_60 ; palette ID
+ db $7c ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags
+ db SFX_30 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_POT_SMASH
+ db SPRITE_DUEL_25 ; sprite ID
+ db PALETTE_61 ; palette ID
+ db $7d ; anim ID
+ db $00 ; anim flags
+ db SFX_31 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BONEMERANG
+ db SPRITE_DUEL_26 ; sprite ID
+ db PALETTE_62 ; palette ID
+ db $7e ; anim ID
+ db $00 ; anim flags
+ db SFX_32 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SEISMIC_TOSS
+ db SPRITE_DUEL_27 ; sprite ID
+ db PALETTE_63 ; palette ID
+ db $7f ; anim ID
+ db $00 ; anim flags
+ db SFX_33 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_NEEDLES
+ db SPRITE_DUEL_28 ; sprite ID
+ db PALETTE_64 ; palette ID
+ db $80 ; anim ID
+ db $00 ; anim flags
+ db SFX_34 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WHITE_GAS
+ db SPRITE_DUEL_29 ; sprite ID
+ db PALETTE_65 ; palette ID
+ db $81 ; anim ID
+ db $00 ; anim flags
+ db SFX_35 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_POWDER
+ db SPRITE_DUEL_56 ; sprite ID
+ db PALETTE_66 ; palette ID
+ db $82 ; anim ID
+ db $00 ; anim flags
+ db SFX_36 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_GOO
+ db SPRITE_DUEL_30 ; sprite ID
+ db PALETTE_67 ; palette ID
+ db $83 ; anim ID
+ db $00 ; anim flags
+ db SFX_37 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BUBBLES
+ db SPRITE_DUEL_31 ; sprite ID
+ db PALETTE_68 ; palette ID
+ db $84 ; anim ID
+ db $00 ; anim flags
+ db SFX_38 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_STRING_SHOT
+ db SPRITE_DUEL_32 ; sprite ID
+ db PALETTE_69 ; palette ID
+ db $85 ; anim ID
+ db $00 ; anim flags
+ db SFX_39 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BOYFRIENDS
+ db SPRITE_DUEL_33 ; sprite ID
+ db PALETTE_70 ; palette ID
+ db $86 ; anim ID
+ db $00 ; anim flags
+ db SFX_3A ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_LURE
+ db SPRITE_DUEL_34 ; sprite ID
+ db PALETTE_71 ; palette ID
+ db $87 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags
+ db SFX_3B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_TOXIC
+ db SPRITE_DUEL_35 ; sprite ID
+ db PALETTE_72 ; palette ID
+ db $88 ; anim ID
+ db $00 ; anim flags
+ db SFX_3C ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_CONFUSE_RAY
+ db SPRITE_DUEL_66 ; sprite ID
+ db PALETTE_73 ; palette ID
+ db $89 ; anim ID
+ db $00 ; anim flags
+ db SFX_3D ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SING
+ db SPRITE_DUEL_36 ; sprite ID
+ db PALETTE_74 ; palette ID
+ db $8a ; anim ID
+ db $00 ; anim flags
+ db SFX_3E ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SUPERSONIC
+ db SPRITE_DUEL_37 ; sprite ID
+ db PALETTE_75 ; palette ID
+ db $8b ; anim ID
+ db $00 ; anim flags
+ db SFX_3F ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PETAL_DANCE
+ db SPRITE_DUEL_57 ; sprite ID
+ db PALETTE_76 ; palette ID
+ db $8c ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_40 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PROTECT
+ db SPRITE_DUEL_38 ; sprite ID
+ db PALETTE_77 ; palette ID
+ db $8d ; anim ID
+ db $00 ; anim flags
+ db SFX_41 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BARRIER
+ db SPRITE_DUEL_39 ; sprite ID
+ db PALETTE_78 ; palette ID
+ db $8e ; anim ID
+ db $00 ; anim flags
+ db SFX_42 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_QUICK_ATTACK
+ db SPRITE_DUEL_40 ; sprite ID
+ db PALETTE_79 ; palette ID
+ db $8f ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_43 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_WHIRLWIND
+ db SPRITE_DUEL_41 ; sprite ID
+ db PALETTE_80 ; palette ID
+ db $90 ; anim ID
+ db $00 ; anim flags
+ db SFX_44 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_CRY
+ db SPRITE_DUEL_42 ; sprite ID
+ db PALETTE_81 ; palette ID
+ db $92 ; anim ID
+ db $00 ; anim flags
+ db SFX_45 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_QUESTION_MARK
+ db SPRITE_DUEL_43 ; sprite ID
+ db PALETTE_82 ; palette ID
+ db $93 ; anim ID
+ db $00 ; anim flags
+ db SFX_46 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_SELFDESTRUCT
+ db SPRITE_DUEL_44 ; sprite ID
+ db PALETTE_83 ; palette ID
+ db $94 ; anim ID
+ db $00 ; anim flags
+ db SFX_47 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BIG_SELFDESTRUCT_1
+ db SPRITE_DUEL_44 ; sprite ID
+ db PALETTE_83 ; palette ID
+ db $95 ; anim ID
+ db $00 ; anim flags
+ db SFX_48 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_HEAL
+ db SPRITE_DUEL_60 ; sprite ID
+ db PALETTE_84 ; palette ID
+ db $97 ; anim ID
+ db $00 ; anim flags
+ db SFX_49 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DRAIN
+ db SPRITE_DUEL_64 ; sprite ID
+ db PALETTE_85 ; palette ID
+ db $99 ; anim ID
+ db $00 ; anim flags
+ db SFX_4A ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DARK_GAS
+ db SPRITE_DUEL_29 ; sprite ID
+ db PALETTE_86 ; palette ID
+ db $81 ; anim ID
+ db $00 ; anim flags
+ db SFX_4B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BIG_SELFDESTRUCT_2
+ db SPRITE_DUEL_44 ; sprite ID
+ db PALETTE_83 ; palette ID
+ db $96 ; anim ID
+ db $00 ; anim flags
+ db SFX_47 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_66
+ db SPRITE_DUEL_3 ; sprite ID
+ db PALETTE_36 ; palette ID
+ db $4d ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_16 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_67
+ db SPRITE_DUEL_3 ; sprite ID
+ db PALETTE_36 ; palette ID
+ db $4e ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_17 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_68
+ db SPRITE_DUEL_5 ; sprite ID
+ db PALETTE_38 ; palette ID
+ db $5c ; anim ID
+ db $00 ; anim flags
+ db SFX_18 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_69
+ db SPRITE_DUEL_62 ; sprite ID
+ db PALETTE_49 ; palette ID
+ db $6d ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_24 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_70
+ db SPRITE_DUEL_45 ; sprite ID
+ db PALETTE_87 ; palette ID
+ db $9a ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags
+ db SFX_11 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_71
+ db SPRITE_DUEL_10 ; sprite ID
+ db PALETTE_44 ; palette ID
+ db $65 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_5C ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_72
+ db SPRITE_DUEL_10 ; sprite ID
+ db PALETTE_44 ; palette ID
+ db $66 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_73
+ db SPRITE_DUEL_60 ; sprite ID
+ db PALETTE_84 ; palette ID
+ db $98 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_4C ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_74
+ db SPRITE_DUEL_41 ; sprite ID
+ db PALETTE_80 ; palette ID
+ db $91 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_4D ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_EXPAND
+ db SPRITE_DUEL_46 ; sprite ID
+ db PALETTE_88 ; palette ID
+ db $9b ; anim ID
+ db $00 ; anim flags
+ db SFX_4E ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_76
+ db SPRITE_DUEL_47 ; sprite ID
+ db PALETTE_89 ; palette ID
+ db $9c ; anim ID
+ db $00 ; anim flags
+ db SFX_4F ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_THUNDER_WAVE
+ db SPRITE_DUEL_48 ; sprite ID
+ db PALETTE_90 ; palette ID
+ db $9d ; anim ID
+ db $00 ; anim flags
+ db SFX_50 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_78
+ db SPRITE_DUEL_10 ; sprite ID
+ db PALETTE_44 ; palette ID
+ db $67 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_51 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_79
+ db SPRITE_DUEL_10 ; sprite ID
+ db PALETTE_44 ; palette ID
+ db $68 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_51 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_80
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $9e ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PLAYER_SHUFFLE
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $9f ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_07 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_OPP_SHUFFLE
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a0 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_07 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BOTH_SHUFFLE
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a1 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_07 ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_84
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a2 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_BOTH_DRAW
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a3 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_PLAYER_DRAW
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a4 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_OPP_DRAW
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a5 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_COIN_SPIN
+ db SPRITE_DUEL_50 ; sprite ID
+ db PALETTE_92 ; palette ID
+ db $a7 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_COIN_TOSS1
+ db SPRITE_DUEL_50 ; sprite ID
+ db PALETTE_92 ; palette ID
+ db $a8 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_0B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_COIN_TOSS2
+ db SPRITE_DUEL_50 ; sprite ID
+ db PALETTE_92 ; palette ID
+ db $a9 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_0B ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_COIN_TAILS
+ db SPRITE_DUEL_50 ; sprite ID
+ db PALETTE_92 ; palette ID
+ db $aa ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_COIN_HEADS
+ db SPRITE_DUEL_50 ; sprite ID
+ db PALETTE_92 ; palette ID
+ db $ab ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DUEL_WIN
+ db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID
+ db PALETTE_93 ; palette ID
+ db $ac ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DUEL_LOSS
+ db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID
+ db PALETTE_93 ; palette ID
+ db $ad ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_DUEL_DRAW
+ db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID
+ db PALETTE_93 ; palette ID
+ db $ae ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+
+ ; DUEL_ANIM_96
+ db SPRITE_DUEL_49 ; sprite ID
+ db PALETTE_91 ; palette ID
+ db $a6 ; anim ID
+ db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags
+ db SFX_STOP ; sound FX ID
+ db $00 ; handler function
+; 0x1d078
diff --git a/src/data/map_headers.asm b/src/data/map_headers.asm index 06a2e20..3204bbf 100644 --- a/src/data/map_headers.asm +++ b/src/data/map_headers.asm @@ -1,37 +1,37 @@ ; TODO: figure out the rest of the data for each map ; related to the table at 20:4e5d MapHeaders: ; 1c374 (7:4374) - db $00,$01,$00,$01,$01,MUSIC_OVERWORLD ; OVERWORLD_MAP - db $02,$03,$00,$02,$02,MUSIC_OVERWORLD ; MASON_LABORATORY - db $06,$07,$00,$02,$02,MUSIC_OVERWORLD ; DECK_MACHINE_ROOM - db $0A,$0B,$00,$03,$03,MUSIC_OVERWORLD ; ISHIHARAS_HOUSE - db $0C,$0D,$00,$03,$04,MUSIC_OVERWORLD ; FIGHTING_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; FIGHTING_CLUB_LOBBY - db $20,$21,$00,$04,$0D,MUSIC_CLUB_3 ; FIGHTING_CLUB - db $0E,$0F,$00,$03,$05,MUSIC_OVERWORLD ; ROCK_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; ROCK_CLUB_LOBBY - db $22,$23,$00,$04,$0E,MUSIC_CLUB_2 ; ROCK_CLUB - db $10,$11,$00,$03,$06,MUSIC_OVERWORLD ; WATER_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; WATER_CLUB_LOBBY - db $24,$25,$00,$02,$0F,MUSIC_CLUB_2 ; WATER_CLUB - db $12,$13,$00,$03,$07,MUSIC_OVERWORLD ; LIGHTNING_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; LIGHTNING_CLUB_LOBBY - db $26,$27,$00,$05,$10,MUSIC_CLUB_1 ; LIGHTNING_CLUB - db $14,$15,$00,$03,$08,MUSIC_OVERWORLD ; GRASS_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; GRASS_CLUB_LOBBY - db $28,$29,$00,$06,$11,MUSIC_CLUB_1 ; GRASS_CLUB - db $16,$17,$00,$03,$09,MUSIC_OVERWORLD ; PSYCHIC_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; PSYCHIC_CLUB_LOBBY - db $2A,$2B,$00,$07,$12,MUSIC_CLUB_2 ; PSYCHIC_CLUB - db $18,$19,$00,$03,$0A,MUSIC_OVERWORLD ; SCIENCE_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; SCIENCE_CLUB_LOBBY - db $2C,$2D,$00,$06,$13,MUSIC_CLUB_3 ; SCIENCE_CLUB - db $1A,$1B,$00,$03,$0B,MUSIC_OVERWORLD ; FIRE_CLUB_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; FIRE_CLUB_LOBBY - db $2E,$2F,$00,$08,$14,MUSIC_CLUB_3 ; FIRE_CLUB - db $1C,$1D,$00,$03,$04,MUSIC_OVERWORLD ; CHALLENGE_HALL_ENTRANCE - db $1E,$1F,$00,$03,$0C,MUSIC_OVERWORLD ; CHALLENGE_HALL_LOBBY - db $30,$31,$00,$09,$15,MUSIC_OVERWORLD ; CHALLENGE_HALL - db $32,$33,$00,$0A,$16,MUSIC_OVERWORLD ; POKEMON_DOME_ENTRANCE - db $36,$37,$00,$0A,$17,MUSIC_POKEMON_DOME ; POKEMON_DOME - db $3A,$3B,$00,$0A,$18,MUSIC_HALL_OF_HONOR ; HALL_OF_HONOR + db TILEMAP_OVERWORLD_MAP, TILEMAP_OVERWORLD_MAP_CGB, $00, $01, $01, MUSIC_OVERWORLD ; OVERWORLD_MAP + db TILEMAP_MASON_LABORATORY, TILEMAP_MASON_LABORATORY_CGB, $00, $02, $02, MUSIC_OVERWORLD ; MASON_LABORATORY + db TILEMAP_DECK_MACHINE_ROOM, TILEMAP_DECK_MACHINE_ROOM_CGB, $00, $02, $02, MUSIC_OVERWORLD ; DECK_MACHINE_ROOM + db TILEMAP_ISHIHARA, TILEMAP_ISHIHARA_CGB, $00, $03, $03, MUSIC_OVERWORLD ; ISHIHARAS_HOUSE + db TILEMAP_FIGHTING_CLUB_ENTRANCE, TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB, $00, $03, $04, MUSIC_OVERWORLD ; FIGHTING_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; FIGHTING_CLUB_LOBBY + db TILEMAP_FIGHTING_CLUB, TILEMAP_FIGHTING_CLUB_CGB, $00, $04, $0d, MUSIC_CLUB_3 ; FIGHTING_CLUB + db TILEMAP_ROCK_CLUB_ENTRANCE, TILEMAP_ROCK_CLUB_ENTRANCE_CGB, $00, $03, $05, MUSIC_OVERWORLD ; ROCK_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; ROCK_CLUB_LOBBY + db TILEMAP_ROCK_CLUB, TILEMAP_ROCK_CLUB_CGB, $00, $04, $0e, MUSIC_CLUB_2 ; ROCK_CLUB + db TILEMAP_WATER_CLUB_ENTRANCE, TILEMAP_WATER_CLUB_ENTRANCE_CGB, $00, $03, $06, MUSIC_OVERWORLD ; WATER_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; WATER_CLUB_LOBBY + db TILEMAP_WATER_CLUB, TILEMAP_WATER_CLUB_CGB, $00, $02, $0f, MUSIC_CLUB_2 ; WATER_CLUB + db TILEMAP_LIGHTNING_CLUB_ENTRANCE, TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB, $00, $03, $07, MUSIC_OVERWORLD ; LIGHTNING_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; LIGHTNING_CLUB_LOBBY + db TILEMAP_LIGHTNING_CLUB, TILEMAP_LIGHTNING_CLUB_CGB, $00, $05, $10, MUSIC_CLUB_1 ; LIGHTNING_CLUB + db TILEMAP_GRASS_CLUB_ENTRANCE, TILEMAP_GRASS_CLUB_ENTRANCE_CGB, $00, $03, $08, MUSIC_OVERWORLD ; GRASS_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; GRASS_CLUB_LOBBY + db TILEMAP_GRASS_CLUB, TILEMAP_GRASS_CLUB_CGB, $00, $06, $11, MUSIC_CLUB_1 ; GRASS_CLUB + db TILEMAP_PSYCHIC_CLUB_ENTRANCE, TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB, $00, $03, $09, MUSIC_OVERWORLD ; PSYCHIC_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; PSYCHIC_CLUB_LOBBY + db TILEMAP_PSYCHIC_CLUB, TILEMAP_PSYCHIC_CLUB_CGB, $00, $07, $12, MUSIC_CLUB_2 ; PSYCHIC_CLUB + db TILEMAP_SCIENCE_CLUB_ENTRANCE, TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB, $00, $03, $0a, MUSIC_OVERWORLD ; SCIENCE_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; SCIENCE_CLUB_LOBBY + db TILEMAP_SCIENCE_CLUB, TILEMAP_SCIENCE_CLUB_CGB, $00, $06, $13, MUSIC_CLUB_3 ; SCIENCE_CLUB + db TILEMAP_FIRE_CLUB_ENTRANCE, TILEMAP_FIRE_CLUB_ENTRANCE_CGB, $00, $03, $0b, MUSIC_OVERWORLD ; FIRE_CLUB_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; FIRE_CLUB_LOBBY + db TILEMAP_FIRE_CLUB, TILEMAP_FIRE_CLUB_CGB, $00, $08, $14, MUSIC_CLUB_3 ; FIRE_CLUB + db TILEMAP_CHALLENGE_HALL_ENTRANCE, TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB, $00, $03, $04, MUSIC_OVERWORLD ; CHALLENGE_HALL_ENTRANCE + db TILEMAP_CLUB_LOBBY, TILEMAP_CLUB_LOBBY_CGB, $00, $03, $0c, MUSIC_OVERWORLD ; CHALLENGE_HALL_LOBBY + db TILEMAP_CHALLENGE_HALL, TILEMAP_CHALLENGE_HALL_CGB, $00, $09, $15, MUSIC_OVERWORLD ; CHALLENGE_HALL + db TILEMAP_POKEMON_DOME_ENTRANCE, TILEMAP_POKEMON_DOME_ENTRANCE_CGB, $00, $0a, $16, MUSIC_OVERWORLD ; POKEMON_DOME_ENTRANCE + db TILEMAP_POKEMON_DOME, TILEMAP_POKEMON_DOME_CGB, $00, $0a, $17, MUSIC_POKEMON_DOME ; POKEMON_DOME + db TILEMAP_HALL_OF_HONOR, TILEMAP_HALL_OF_HONOR_CGB, $00, $0a, $18, MUSIC_HALL_OF_HONOR ; HALL_OF_HONOR diff --git a/src/data/maps/map0.bin b/src/data/maps/map0.bin Binary files differnew file mode 100644 index 0000000..cf2a9ed --- /dev/null +++ b/src/data/maps/map0.bin diff --git a/src/data/maps/map1.bin b/src/data/maps/map1.bin Binary files differnew file mode 100644 index 0000000..38543ff --- /dev/null +++ b/src/data/maps/map1.bin diff --git a/src/data/maps/map10.bin b/src/data/maps/map10.bin Binary files differnew file mode 100644 index 0000000..570de49 --- /dev/null +++ b/src/data/maps/map10.bin diff --git a/src/data/maps/map100.bin b/src/data/maps/map100.bin Binary files differnew file mode 100644 index 0000000..cc9e675 --- /dev/null +++ b/src/data/maps/map100.bin diff --git a/src/data/maps/map101.bin b/src/data/maps/map101.bin Binary files differnew file mode 100644 index 0000000..15ff322 --- /dev/null +++ b/src/data/maps/map101.bin diff --git a/src/data/maps/map102.bin b/src/data/maps/map102.bin Binary files differnew file mode 100644 index 0000000..0a7e308 --- /dev/null +++ b/src/data/maps/map102.bin diff --git a/src/data/maps/map103.bin b/src/data/maps/map103.bin Binary files differnew file mode 100644 index 0000000..68219ed --- /dev/null +++ b/src/data/maps/map103.bin diff --git a/src/data/maps/map104.bin b/src/data/maps/map104.bin Binary files differnew file mode 100644 index 0000000..b931d87 --- /dev/null +++ b/src/data/maps/map104.bin diff --git a/src/data/maps/map105.bin b/src/data/maps/map105.bin Binary files differnew file mode 100644 index 0000000..057d4e0 --- /dev/null +++ b/src/data/maps/map105.bin diff --git a/src/data/maps/map11.bin b/src/data/maps/map11.bin Binary files differnew file mode 100644 index 0000000..23e8c35 --- /dev/null +++ b/src/data/maps/map11.bin diff --git a/src/data/maps/map12.bin b/src/data/maps/map12.bin Binary files differnew file mode 100644 index 0000000..491cb07 --- /dev/null +++ b/src/data/maps/map12.bin diff --git a/src/data/maps/map13.bin b/src/data/maps/map13.bin Binary files differnew file mode 100644 index 0000000..69479ba --- /dev/null +++ b/src/data/maps/map13.bin diff --git a/src/data/maps/map14.bin b/src/data/maps/map14.bin Binary files differnew file mode 100644 index 0000000..aa1c6bc --- /dev/null +++ b/src/data/maps/map14.bin diff --git a/src/data/maps/map15.bin b/src/data/maps/map15.bin Binary files differnew file mode 100644 index 0000000..eb8fc6b --- /dev/null +++ b/src/data/maps/map15.bin diff --git a/src/data/maps/map16.bin b/src/data/maps/map16.bin Binary files differnew file mode 100644 index 0000000..6725ce2 --- /dev/null +++ b/src/data/maps/map16.bin diff --git a/src/data/maps/map17.bin b/src/data/maps/map17.bin Binary files differnew file mode 100644 index 0000000..2202009 --- /dev/null +++ b/src/data/maps/map17.bin diff --git a/src/data/maps/map18.bin b/src/data/maps/map18.bin Binary files differnew file mode 100644 index 0000000..1b5f7e2 --- /dev/null +++ b/src/data/maps/map18.bin diff --git a/src/data/maps/map19.bin b/src/data/maps/map19.bin Binary files differnew file mode 100644 index 0000000..41fd5e3 --- /dev/null +++ b/src/data/maps/map19.bin diff --git a/src/data/maps/map2.bin b/src/data/maps/map2.bin Binary files differnew file mode 100644 index 0000000..b575bb2 --- /dev/null +++ b/src/data/maps/map2.bin diff --git a/src/data/maps/map20.bin b/src/data/maps/map20.bin Binary files differnew file mode 100644 index 0000000..0454487 --- /dev/null +++ b/src/data/maps/map20.bin diff --git a/src/data/maps/map21.bin b/src/data/maps/map21.bin Binary files differnew file mode 100644 index 0000000..6e9c407 --- /dev/null +++ b/src/data/maps/map21.bin diff --git a/src/data/maps/map22.bin b/src/data/maps/map22.bin Binary files differnew file mode 100644 index 0000000..c7951e0 --- /dev/null +++ b/src/data/maps/map22.bin diff --git a/src/data/maps/map23.bin b/src/data/maps/map23.bin Binary files differnew file mode 100644 index 0000000..9bef429 --- /dev/null +++ b/src/data/maps/map23.bin diff --git a/src/data/maps/map24.bin b/src/data/maps/map24.bin Binary files differnew file mode 100644 index 0000000..c3bbf87 --- /dev/null +++ b/src/data/maps/map24.bin diff --git a/src/data/maps/map25.bin b/src/data/maps/map25.bin Binary files differnew file mode 100644 index 0000000..9b66ad4 --- /dev/null +++ b/src/data/maps/map25.bin diff --git a/src/data/maps/map26.bin b/src/data/maps/map26.bin Binary files differnew file mode 100644 index 0000000..5a37965 --- /dev/null +++ b/src/data/maps/map26.bin diff --git a/src/data/maps/map27.bin b/src/data/maps/map27.bin Binary files differnew file mode 100644 index 0000000..f18ad28 --- /dev/null +++ b/src/data/maps/map27.bin diff --git a/src/data/maps/map28.bin b/src/data/maps/map28.bin Binary files differnew file mode 100644 index 0000000..557c897 --- /dev/null +++ b/src/data/maps/map28.bin diff --git a/src/data/maps/map29.bin b/src/data/maps/map29.bin Binary files differnew file mode 100644 index 0000000..b70e041 --- /dev/null +++ b/src/data/maps/map29.bin diff --git a/src/data/maps/map3.bin b/src/data/maps/map3.bin Binary files differnew file mode 100644 index 0000000..ceaa540 --- /dev/null +++ b/src/data/maps/map3.bin diff --git a/src/data/maps/map30.bin b/src/data/maps/map30.bin Binary files differnew file mode 100644 index 0000000..ce1d02c --- /dev/null +++ b/src/data/maps/map30.bin diff --git a/src/data/maps/map31.bin b/src/data/maps/map31.bin Binary files differnew file mode 100644 index 0000000..d0e5fcd --- /dev/null +++ b/src/data/maps/map31.bin diff --git a/src/data/maps/map32.bin b/src/data/maps/map32.bin Binary files differnew file mode 100644 index 0000000..609fa1e --- /dev/null +++ b/src/data/maps/map32.bin diff --git a/src/data/maps/map33.bin b/src/data/maps/map33.bin Binary files differnew file mode 100644 index 0000000..025b820 --- /dev/null +++ b/src/data/maps/map33.bin diff --git a/src/data/maps/map34.bin b/src/data/maps/map34.bin Binary files differnew file mode 100644 index 0000000..de03a48 --- /dev/null +++ b/src/data/maps/map34.bin diff --git a/src/data/maps/map35.bin b/src/data/maps/map35.bin Binary files differnew file mode 100644 index 0000000..a178ac3 --- /dev/null +++ b/src/data/maps/map35.bin diff --git a/src/data/maps/map36.bin b/src/data/maps/map36.bin Binary files differnew file mode 100644 index 0000000..759a82e --- /dev/null +++ b/src/data/maps/map36.bin diff --git a/src/data/maps/map37.bin b/src/data/maps/map37.bin Binary files differnew file mode 100644 index 0000000..fc1588d --- /dev/null +++ b/src/data/maps/map37.bin diff --git a/src/data/maps/map38.bin b/src/data/maps/map38.bin Binary files differnew file mode 100644 index 0000000..779b893 --- /dev/null +++ b/src/data/maps/map38.bin diff --git a/src/data/maps/map39.bin b/src/data/maps/map39.bin Binary files differnew file mode 100644 index 0000000..104acd7 --- /dev/null +++ b/src/data/maps/map39.bin diff --git a/src/data/maps/map4.bin b/src/data/maps/map4.bin new file mode 100644 index 0000000..744b347 --- /dev/null +++ b/src/data/maps/map4.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map40.bin b/src/data/maps/map40.bin Binary files differnew file mode 100644 index 0000000..37db1fa --- /dev/null +++ b/src/data/maps/map40.bin diff --git a/src/data/maps/map41.bin b/src/data/maps/map41.bin Binary files differnew file mode 100644 index 0000000..c13065e --- /dev/null +++ b/src/data/maps/map41.bin diff --git a/src/data/maps/map42.bin b/src/data/maps/map42.bin Binary files differnew file mode 100644 index 0000000..21b5993 --- /dev/null +++ b/src/data/maps/map42.bin diff --git a/src/data/maps/map43.bin b/src/data/maps/map43.bin Binary files differnew file mode 100644 index 0000000..50e18a9 --- /dev/null +++ b/src/data/maps/map43.bin diff --git a/src/data/maps/map44.bin b/src/data/maps/map44.bin Binary files differnew file mode 100644 index 0000000..81c2cd1 --- /dev/null +++ b/src/data/maps/map44.bin diff --git a/src/data/maps/map45.bin b/src/data/maps/map45.bin Binary files differnew file mode 100644 index 0000000..6e44d7a --- /dev/null +++ b/src/data/maps/map45.bin diff --git a/src/data/maps/map46.bin b/src/data/maps/map46.bin Binary files differnew file mode 100644 index 0000000..9bc01f8 --- /dev/null +++ b/src/data/maps/map46.bin diff --git a/src/data/maps/map47.bin b/src/data/maps/map47.bin Binary files differnew file mode 100644 index 0000000..085c680 --- /dev/null +++ b/src/data/maps/map47.bin diff --git a/src/data/maps/map48.bin b/src/data/maps/map48.bin Binary files differnew file mode 100644 index 0000000..5085c83 --- /dev/null +++ b/src/data/maps/map48.bin diff --git a/src/data/maps/map49.bin b/src/data/maps/map49.bin Binary files differnew file mode 100644 index 0000000..c5ae1b9 --- /dev/null +++ b/src/data/maps/map49.bin diff --git a/src/data/maps/map5.bin b/src/data/maps/map5.bin new file mode 100644 index 0000000..1397e15 --- /dev/null +++ b/src/data/maps/map5.bin @@ -0,0 +1 @@ +}!
\ No newline at end of file diff --git a/src/data/maps/map50.bin b/src/data/maps/map50.bin Binary files differnew file mode 100644 index 0000000..c34e10e --- /dev/null +++ b/src/data/maps/map50.bin diff --git a/src/data/maps/map51.bin b/src/data/maps/map51.bin Binary files differnew file mode 100644 index 0000000..81a2263 --- /dev/null +++ b/src/data/maps/map51.bin diff --git a/src/data/maps/map52.bin b/src/data/maps/map52.bin Binary files differnew file mode 100644 index 0000000..b8ae26f --- /dev/null +++ b/src/data/maps/map52.bin diff --git a/src/data/maps/map53.bin b/src/data/maps/map53.bin Binary files differnew file mode 100644 index 0000000..bfff297 --- /dev/null +++ b/src/data/maps/map53.bin diff --git a/src/data/maps/map54.bin b/src/data/maps/map54.bin Binary files differnew file mode 100644 index 0000000..7b7fef6 --- /dev/null +++ b/src/data/maps/map54.bin diff --git a/src/data/maps/map55.bin b/src/data/maps/map55.bin Binary files differnew file mode 100644 index 0000000..ae652ec --- /dev/null +++ b/src/data/maps/map55.bin diff --git a/src/data/maps/map56.bin b/src/data/maps/map56.bin Binary files differnew file mode 100644 index 0000000..b4249e2 --- /dev/null +++ b/src/data/maps/map56.bin diff --git a/src/data/maps/map57.bin b/src/data/maps/map57.bin Binary files differnew file mode 100644 index 0000000..be748b7 --- /dev/null +++ b/src/data/maps/map57.bin diff --git a/src/data/maps/map58.bin b/src/data/maps/map58.bin Binary files differnew file mode 100644 index 0000000..00625d0 --- /dev/null +++ b/src/data/maps/map58.bin diff --git a/src/data/maps/map59.bin b/src/data/maps/map59.bin Binary files differnew file mode 100644 index 0000000..3873084 --- /dev/null +++ b/src/data/maps/map59.bin diff --git a/src/data/maps/map6.bin b/src/data/maps/map6.bin Binary files differnew file mode 100644 index 0000000..e2270c7 --- /dev/null +++ b/src/data/maps/map6.bin diff --git a/src/data/maps/map60.bin b/src/data/maps/map60.bin Binary files differnew file mode 100644 index 0000000..5dcb25e --- /dev/null +++ b/src/data/maps/map60.bin diff --git a/src/data/maps/map61.bin b/src/data/maps/map61.bin Binary files differnew file mode 100644 index 0000000..e29cc7b --- /dev/null +++ b/src/data/maps/map61.bin diff --git a/src/data/maps/map62.bin b/src/data/maps/map62.bin new file mode 100644 index 0000000..11d47bd --- /dev/null +++ b/src/data/maps/map62.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map63.bin b/src/data/maps/map63.bin new file mode 100644 index 0000000..237f5fe --- /dev/null +++ b/src/data/maps/map63.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map64.bin b/src/data/maps/map64.bin new file mode 100644 index 0000000..5f97f41 --- /dev/null +++ b/src/data/maps/map64.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map65.bin b/src/data/maps/map65.bin new file mode 100644 index 0000000..598efd3 --- /dev/null +++ b/src/data/maps/map65.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map66.bin b/src/data/maps/map66.bin new file mode 100644 index 0000000..b498b94 --- /dev/null +++ b/src/data/maps/map66.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map67.bin b/src/data/maps/map67.bin new file mode 100644 index 0000000..e5d5767 --- /dev/null +++ b/src/data/maps/map67.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map68.bin b/src/data/maps/map68.bin new file mode 100644 index 0000000..8b74ef4 --- /dev/null +++ b/src/data/maps/map68.bin @@ -0,0 +1 @@ +p
\ No newline at end of file diff --git a/src/data/maps/map69.bin b/src/data/maps/map69.bin new file mode 100644 index 0000000..69d45ef --- /dev/null +++ b/src/data/maps/map69.bin @@ -0,0 +1 @@ +pǯ
\ No newline at end of file diff --git a/src/data/maps/map7.bin b/src/data/maps/map7.bin Binary files differnew file mode 100644 index 0000000..7662b6e --- /dev/null +++ b/src/data/maps/map7.bin diff --git a/src/data/maps/map70.bin b/src/data/maps/map70.bin Binary files differnew file mode 100644 index 0000000..0ac3803 --- /dev/null +++ b/src/data/maps/map70.bin diff --git a/src/data/maps/map71.bin b/src/data/maps/map71.bin Binary files differnew file mode 100644 index 0000000..8845640 --- /dev/null +++ b/src/data/maps/map71.bin diff --git a/src/data/maps/map72.bin b/src/data/maps/map72.bin Binary files differnew file mode 100644 index 0000000..0102181 --- /dev/null +++ b/src/data/maps/map72.bin diff --git a/src/data/maps/map73.bin b/src/data/maps/map73.bin Binary files differnew file mode 100644 index 0000000..d3bb103 --- /dev/null +++ b/src/data/maps/map73.bin diff --git a/src/data/maps/map74.bin b/src/data/maps/map74.bin Binary files differnew file mode 100644 index 0000000..52f8e24 --- /dev/null +++ b/src/data/maps/map74.bin diff --git a/src/data/maps/map75.bin b/src/data/maps/map75.bin Binary files differnew file mode 100644 index 0000000..bbb8abd --- /dev/null +++ b/src/data/maps/map75.bin diff --git a/src/data/maps/map76.bin b/src/data/maps/map76.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map76.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map77.bin b/src/data/maps/map77.bin Binary files differnew file mode 100644 index 0000000..ac2e677 --- /dev/null +++ b/src/data/maps/map77.bin diff --git a/src/data/maps/map78.bin b/src/data/maps/map78.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map78.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map79.bin b/src/data/maps/map79.bin Binary files differnew file mode 100644 index 0000000..4b03152 --- /dev/null +++ b/src/data/maps/map79.bin diff --git a/src/data/maps/map8.bin b/src/data/maps/map8.bin new file mode 100644 index 0000000..aa8d5e5 --- /dev/null +++ b/src/data/maps/map8.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map80.bin b/src/data/maps/map80.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map80.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map81.bin b/src/data/maps/map81.bin Binary files differnew file mode 100644 index 0000000..9480551 --- /dev/null +++ b/src/data/maps/map81.bin diff --git a/src/data/maps/map82.bin b/src/data/maps/map82.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map82.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map83.bin b/src/data/maps/map83.bin Binary files differnew file mode 100644 index 0000000..cc72903 --- /dev/null +++ b/src/data/maps/map83.bin diff --git a/src/data/maps/map84.bin b/src/data/maps/map84.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map84.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map85.bin b/src/data/maps/map85.bin Binary files differnew file mode 100644 index 0000000..37fa470 --- /dev/null +++ b/src/data/maps/map85.bin diff --git a/src/data/maps/map86.bin b/src/data/maps/map86.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map86.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map87.bin b/src/data/maps/map87.bin Binary files differnew file mode 100644 index 0000000..065a4c5 --- /dev/null +++ b/src/data/maps/map87.bin diff --git a/src/data/maps/map88.bin b/src/data/maps/map88.bin new file mode 100644 index 0000000..0380a45 --- /dev/null +++ b/src/data/maps/map88.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map89.bin b/src/data/maps/map89.bin Binary files differnew file mode 100644 index 0000000..2071453 --- /dev/null +++ b/src/data/maps/map89.bin diff --git a/src/data/maps/map9.bin b/src/data/maps/map9.bin new file mode 100644 index 0000000..288b905 --- /dev/null +++ b/src/data/maps/map9.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map90.bin b/src/data/maps/map90.bin Binary files differnew file mode 100644 index 0000000..23b8711 --- /dev/null +++ b/src/data/maps/map90.bin diff --git a/src/data/maps/map91.bin b/src/data/maps/map91.bin Binary files differnew file mode 100644 index 0000000..723a7c6 --- /dev/null +++ b/src/data/maps/map91.bin diff --git a/src/data/maps/map92.bin b/src/data/maps/map92.bin Binary files differnew file mode 100644 index 0000000..e33651c --- /dev/null +++ b/src/data/maps/map92.bin diff --git a/src/data/maps/map93.bin b/src/data/maps/map93.bin Binary files differnew file mode 100644 index 0000000..8bef537 --- /dev/null +++ b/src/data/maps/map93.bin diff --git a/src/data/maps/map94.bin b/src/data/maps/map94.bin Binary files differnew file mode 100644 index 0000000..d314a97 --- /dev/null +++ b/src/data/maps/map94.bin diff --git a/src/data/maps/map95.bin b/src/data/maps/map95.bin Binary files differnew file mode 100644 index 0000000..943bedf --- /dev/null +++ b/src/data/maps/map95.bin diff --git a/src/data/maps/map96.bin b/src/data/maps/map96.bin Binary files differnew file mode 100644 index 0000000..99debbf --- /dev/null +++ b/src/data/maps/map96.bin diff --git a/src/data/maps/map97.bin b/src/data/maps/map97.bin new file mode 100644 index 0000000..7d0c714 --- /dev/null +++ b/src/data/maps/map97.bin @@ -0,0 +1,2 @@ +U +
U@e`
\ No newline at end of file diff --git a/src/data/maps/map98.bin b/src/data/maps/map98.bin new file mode 100644 index 0000000..4f89d54 --- /dev/null +++ b/src/data/maps/map98.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/data/maps/map99.bin b/src/data/maps/map99.bin new file mode 100644 index 0000000..8cc4af6 --- /dev/null +++ b/src/data/maps/map99.bin @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm index 55fa89c..872a37c 100644 --- a/src/engine/bank03.asm +++ b/src/engine/bank03.asm @@ -490,20 +490,21 @@ Func_c38f: ; c38f (3:438f) push bc ld a, [wd23a] ld e, a - ld a, [wd23b] + ld a, [wd23a + 1] ld d, a or e - jr z, .asm_c3c7 + jr z, .skip + push hl - ld b, $c0 - call Func_08bf + ld b, HIGH(wc000) + call InitBGMapDecompression ld a, [wd23d] ld [wTempPointerBank], a - ld a, [wd130] + ld a, [wBGMapHeight] inc a srl a ld b, a - ld a, [wd12f] + ld a, [wBGMapWidth] inc a srl a ld c, a @@ -511,7 +512,7 @@ Func_c38f: ; c38f (3:438f) .asm_c3b7 push bc ld b, $00 - call Func_3be4 + call DecompressBGMapFromBank ld hl, $10 add hl, de ld d, h @@ -519,7 +520,8 @@ Func_c38f: ; c38f (3:438f) pop bc dec b jr nz, .asm_c3b7 -.asm_c3c7 + +.skip pop bc pop hl ret @@ -571,10 +573,10 @@ Func_c3ee: ; c3ee (3:43ee) ret Func_c3ff: ; c3ff (3:43ff) - ld a, [wd12f] + ld a, [wBGMapWidth] sub $14 ld [wd237], a - ld a, [wd130] + ld a, [wBGMapHeight] sub $12 ld [wd238], a call Func_c41c diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm index 6d2f353..3755410 100644 --- a/src/engine/bank07.asm +++ b/src/engine/bank07.asm @@ -64,7 +64,7 @@ LoadMapHeader: ; 1c33b (7:433b) ld hl, MapHeaders add hl, bc ld a, [hli] - ld [wd131], a + ld [wCurTilemap], a ld a, [hli] ld c, a ld a, [hli] @@ -75,14 +75,17 @@ LoadMapHeader: ; 1c33b (7:433b) ld [wd290], a ld a, [hli] ld [wDefaultSong], a + ld a, [wConsole] cp CONSOLE_CGB - jr nz, .asm_1c370 + jr nz, .got_tilemap + ; use CGB variant, if valid ld a, c or a - jr z, .asm_1c370 - ld [wd131], a -.asm_1c370 + jr z, .got_tilemap + ld [wCurTilemap], a +.got_tilemap + pop de pop bc pop hl @@ -1516,784 +1519,7 @@ Func_1ce03: ; 1ce03 (7:4e03) dw Func_191a3 ; DUEL_ANIM_156 dw Func_191a3 ; DUEL_ANIM_157 -; data for each animation ID (see src/constants/sprite_constants.asm) -Animations: ; 1ce32 (7:4e32) - ; DUEL_ANIM_NONE - db $00 ; sprite ID - db $00 ; palette ID - db $00 ; anim ID - db $00 ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_GLOW - db SPRITE_DUEL_GLOW ; sprite ID - db $1f ; palette ID - db $47 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_11 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PARALYSIS - db SPRITE_DUEL_1 ; sprite ID - db $20 ; palette ID - db $48 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_12 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SLEEP - db SPRITE_DUEL_2 ; sprite ID - db $21 ; palette ID - db $49 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_13 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_CONFUSION - db SPRITE_DUEL_55 ; sprite ID - db $22 ; palette ID - db $4a ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_14 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_POISON - db SPRITE_DUEL_58 ; sprite ID - db $23 ; palette ID - db $4b ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_15 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_6 - db SPRITE_DUEL_3 ; sprite ID - db $24 ; palette ID - db $4c ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_16 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_HIT - db SPRITE_DUEL_3 ; sprite ID - db $24 ; palette ID - db $4d ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_16 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BIG_HIT - db SPRITE_DUEL_3 ; sprite ID - db $24 ; palette ID - db $4e ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_17 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SHOW_DAMAGE - db SPRITE_DUEL_4 ; sprite ID - db $25 ; palette ID - db $00 ; anim ID - db $00 ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_THUNDER_SHOCK - db SPRITE_DUEL_5 ; sprite ID - db $26 ; palette ID - db $5c ; anim ID - db $00 ; anim flags - db SFX_18 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_LIGHTNING - db SPRITE_DUEL_6 ; sprite ID - db $27 ; palette ID - db $5e ; anim ID - db $00 ; anim flags - db SFX_19 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BORDER_SPARK - db SPRITE_DUEL_59 ; sprite ID - db $28 ; palette ID - db $5f ; anim ID - db $00 ; anim flags - db SFX_1A ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BIG_LIGHTNING - db SPRITE_DUEL_7 ; sprite ID - db $29 ; palette ID - db $60 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_1B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SMALL_FLAME - db SPRITE_DUEL_8 ; sprite ID - db $2a ; palette ID - db $61 ; anim ID - db $00 ; anim flags - db SFX_1C ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BIG_FLAME - db SPRITE_DUEL_8 ; sprite ID - db $2a ; palette ID - db $62 ; anim ID - db $00 ; anim flags - db SFX_1D ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_FIRE_SPIN - db SPRITE_DUEL_9 ; sprite ID - db $2b ; palette ID - db $63 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_1E ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DIVE_BOMB - db SPRITE_DUEL_10 ; sprite ID - db $2c ; palette ID - db $64 ; anim ID - db $00 ; anim flags - db SFX_1F ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WATER_JETS - db SPRITE_DUEL_61 ; sprite ID - db $2d ; palette ID - db $69 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_20 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WATER_GUN - db SPRITE_DUEL_11 ; sprite ID - db $2e ; palette ID - db $6a ; anim ID - db $00 ; anim flags - db SFX_21 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WHIRLPOOL - db SPRITE_DUEL_12 ; sprite ID - db $2f ; palette ID - db $6b ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_22 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_HYDRO_PUMP - db SPRITE_DUEL_13 ; sprite ID - db $30 ; palette ID - db $6c ; anim ID - db $00 ; anim flags - db SFX_23 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BLIZZARD - db SPRITE_DUEL_62 ; sprite ID - db $31 ; palette ID - db $6d ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_24 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PSYCHIC - db SPRITE_DUEL_14 ; sprite ID - db $32 ; palette ID - db $6e ; anim ID - db $00 ; anim flags - db SFX_25 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_GLARE - db SPRITE_DUEL_15 ; sprite ID - db $33 ; palette ID - db $6f ; anim ID - db $00 ; anim flags - db SFX_26 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BEAM - db SPRITE_DUEL_16 ; sprite ID - db $34 ; palette ID - db $70 ; anim ID - db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags - db SFX_27 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_HYPER_BEAM - db SPRITE_DUEL_17 ; sprite ID - db $35 ; palette ID - db $71 ; anim ID - db (1 << SPRITE_ANIM_FLAG_6) | (1 << SPRITE_ANIM_FLAG_Y_SUBTRACT) ; anim flags - db SFX_28 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_ROCK_THROW - db SPRITE_DUEL_18 ; sprite ID - db $36 ; palette ID - db $72 ; anim ID - db $00 ; anim flags - db SFX_29 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_STONE_BARRAGE - db SPRITE_DUEL_18 ; sprite ID - db $36 ; palette ID - db $73 ; anim ID - db $00 ; anim flags - db SFX_2A ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PUNCH - db SPRITE_DUEL_19 ; sprite ID - db $37 ; palette ID - db $74 ; anim ID - db $00 ; anim flags - db SFX_2B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_THUNDERPUNCH - db SPRITE_DUEL_19 ; sprite ID - db $37 ; palette ID - db $75 ; anim ID - db $00 ; anim flags - db SFX_52 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_FIRE_PUNCH - db SPRITE_DUEL_19 ; sprite ID - db $37 ; palette ID - db $76 ; anim ID - db $00 ; anim flags - db SFX_53 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_STRETCH_KICK - db SPRITE_DUEL_20 ; sprite ID - db $38 ; palette ID - db $77 ; anim ID - db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags - db SFX_2C ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SLASH - db SPRITE_DUEL_21 ; sprite ID - db $39 ; palette ID - db $78 ; anim ID - db $00 ; anim flags - db SFX_2D ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WHIP - db SPRITE_DUEL_22 ; sprite ID - db $3a ; palette ID - db $7a ; anim ID - db $00 ; anim flags - db SFX_2D ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_TEAR - db SPRITE_DUEL_23 ; sprite ID - db $3b ; palette ID - db $7b ; anim ID - db $00 ; anim flags - db SFX_2E ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_FURY_SWIPES - db SPRITE_DUEL_21 ; sprite ID - db $39 ; palette ID - db $79 ; anim ID - db $00 ; anim flags - db SFX_2F ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DRILL - db SPRITE_DUEL_24 ; sprite ID - db $3c ; palette ID - db $7c ; anim ID - db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags - db SFX_30 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_POT_SMASH - db SPRITE_DUEL_25 ; sprite ID - db $3d ; palette ID - db $7d ; anim ID - db $00 ; anim flags - db SFX_31 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BONEMERANG - db SPRITE_DUEL_26 ; sprite ID - db $3e ; palette ID - db $7e ; anim ID - db $00 ; anim flags - db SFX_32 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SEISMIC_TOSS - db SPRITE_DUEL_27 ; sprite ID - db $3f ; palette ID - db $7f ; anim ID - db $00 ; anim flags - db SFX_33 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_NEEDLES - db SPRITE_DUEL_28 ; sprite ID - db $40 ; palette ID - db $80 ; anim ID - db $00 ; anim flags - db SFX_34 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WHITE_GAS - db SPRITE_DUEL_29 ; sprite ID - db $41 ; palette ID - db $81 ; anim ID - db $00 ; anim flags - db SFX_35 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_POWDER - db SPRITE_DUEL_56 ; sprite ID - db $42 ; palette ID - db $82 ; anim ID - db $00 ; anim flags - db SFX_36 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_GOO - db SPRITE_DUEL_30 ; sprite ID - db $43 ; palette ID - db $83 ; anim ID - db $00 ; anim flags - db SFX_37 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BUBBLES - db SPRITE_DUEL_31 ; sprite ID - db $44 ; palette ID - db $84 ; anim ID - db $00 ; anim flags - db SFX_38 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_STRING_SHOT - db SPRITE_DUEL_32 ; sprite ID - db $45 ; palette ID - db $85 ; anim ID - db $00 ; anim flags - db SFX_39 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BOYFRIENDS - db SPRITE_DUEL_33 ; sprite ID - db $46 ; palette ID - db $86 ; anim ID - db $00 ; anim flags - db SFX_3A ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_LURE - db SPRITE_DUEL_34 ; sprite ID - db $47 ; palette ID - db $87 ; anim ID - db (1 << SPRITE_ANIM_FLAG_5) | (1 << SPRITE_ANIM_FLAG_X_SUBTRACT) ; anim flags - db SFX_3B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_TOXIC - db SPRITE_DUEL_35 ; sprite ID - db $48 ; palette ID - db $88 ; anim ID - db $00 ; anim flags - db SFX_3C ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_CONFUSE_RAY - db SPRITE_DUEL_66 ; sprite ID - db $49 ; palette ID - db $89 ; anim ID - db $00 ; anim flags - db SFX_3D ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SING - db SPRITE_DUEL_36 ; sprite ID - db $4a ; palette ID - db $8a ; anim ID - db $00 ; anim flags - db SFX_3E ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SUPERSONIC - db SPRITE_DUEL_37 ; sprite ID - db $4b ; palette ID - db $8b ; anim ID - db $00 ; anim flags - db SFX_3F ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PETAL_DANCE - db SPRITE_DUEL_57 ; sprite ID - db $4c ; palette ID - db $8c ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_40 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PROTECT - db SPRITE_DUEL_38 ; sprite ID - db $4d ; palette ID - db $8d ; anim ID - db $00 ; anim flags - db SFX_41 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BARRIER - db SPRITE_DUEL_39 ; sprite ID - db $4e ; palette ID - db $8e ; anim ID - db $00 ; anim flags - db SFX_42 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_QUICK_ATTACK - db SPRITE_DUEL_40 ; sprite ID - db $4f ; palette ID - db $8f ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_43 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_WHIRLWIND - db SPRITE_DUEL_41 ; sprite ID - db $50 ; palette ID - db $90 ; anim ID - db $00 ; anim flags - db SFX_44 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_CRY - db SPRITE_DUEL_42 ; sprite ID - db $51 ; palette ID - db $92 ; anim ID - db $00 ; anim flags - db SFX_45 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_QUESTION_MARK - db SPRITE_DUEL_43 ; sprite ID - db $52 ; palette ID - db $93 ; anim ID - db $00 ; anim flags - db SFX_46 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_SELFDESTRUCT - db SPRITE_DUEL_44 ; sprite ID - db $53 ; palette ID - db $94 ; anim ID - db $00 ; anim flags - db SFX_47 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BIG_SELFDESTRUCT_1 - db SPRITE_DUEL_44 ; sprite ID - db $53 ; palette ID - db $95 ; anim ID - db $00 ; anim flags - db SFX_48 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_HEAL - db SPRITE_DUEL_60 ; sprite ID - db $54 ; palette ID - db $97 ; anim ID - db $00 ; anim flags - db SFX_49 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DRAIN - db SPRITE_DUEL_64 ; sprite ID - db $55 ; palette ID - db $99 ; anim ID - db $00 ; anim flags - db SFX_4A ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DARK_GAS - db SPRITE_DUEL_29 ; sprite ID - db $56 ; palette ID - db $81 ; anim ID - db $00 ; anim flags - db SFX_4B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BIG_SELFDESTRUCT_2 - db SPRITE_DUEL_44 ; sprite ID - db $53 ; palette ID - db $96 ; anim ID - db $00 ; anim flags - db SFX_47 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_66 - db SPRITE_DUEL_3 ; sprite ID - db $24 ; palette ID - db $4d ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_16 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_67 - db SPRITE_DUEL_3 ; sprite ID - db $24 ; palette ID - db $4e ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_17 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_68 - db SPRITE_DUEL_5 ; sprite ID - db $26 ; palette ID - db $5c ; anim ID - db $00 ; anim flags - db SFX_18 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_69 - db SPRITE_DUEL_62 ; sprite ID - db $31 ; palette ID - db $6d ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_24 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_70 - db SPRITE_DUEL_45 ; sprite ID - db $57 ; palette ID - db $9a ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) ; anim flags - db SFX_11 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_71 - db SPRITE_DUEL_10 ; sprite ID - db $2c ; palette ID - db $65 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_5C ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_72 - db SPRITE_DUEL_10 ; sprite ID - db $2c ; palette ID - db $66 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_73 - db SPRITE_DUEL_60 ; sprite ID - db $54 ; palette ID - db $98 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_4C ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_74 - db SPRITE_DUEL_41 ; sprite ID - db $50 ; palette ID - db $91 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_4D ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_EXPAND - db SPRITE_DUEL_46 ; sprite ID - db $58 ; palette ID - db $9b ; anim ID - db $00 ; anim flags - db SFX_4E ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_76 - db SPRITE_DUEL_47 ; sprite ID - db $59 ; palette ID - db $9c ; anim ID - db $00 ; anim flags - db SFX_4F ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_THUNDER_WAVE - db SPRITE_DUEL_48 ; sprite ID - db $5a ; palette ID - db $9d ; anim ID - db $00 ; anim flags - db SFX_50 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_78 - db SPRITE_DUEL_10 ; sprite ID - db $2c ; palette ID - db $67 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_51 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_79 - db SPRITE_DUEL_10 ; sprite ID - db $2c ; palette ID - db $68 ; anim ID - db (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_51 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_80 - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $9e ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PLAYER_SHUFFLE - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $9f ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_07 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_OPP_SHUFFLE - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a0 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_07 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BOTH_SHUFFLE - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a1 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_07 ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_84 - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a2 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_BOTH_DRAW - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a3 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_PLAYER_DRAW - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a4 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_OPP_DRAW - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a5 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_COIN_SPIN - db SPRITE_DUEL_50 ; sprite ID - db $5c ; palette ID - db $a7 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_COIN_TOSS1 - db SPRITE_DUEL_50 ; sprite ID - db $5c ; palette ID - db $a8 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_0B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_COIN_TOSS2 - db SPRITE_DUEL_50 ; sprite ID - db $5c ; palette ID - db $a9 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_3) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_0B ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_COIN_TAILS - db SPRITE_DUEL_50 ; sprite ID - db $5c ; palette ID - db $aa ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_COIN_HEADS - db SPRITE_DUEL_50 ; sprite ID - db $5c ; palette ID - db $ab ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DUEL_WIN - db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID - db $5d ; palette ID - db $ac ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DUEL_LOSS - db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID - db $5d ; palette ID - db $ad ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_DUEL_DRAW - db SPRITE_DUEL_WON_LOST_DRAW ; sprite ID - db $5d ; palette ID - db $ae ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function - - ; DUEL_ANIM_96 - db SPRITE_DUEL_49 ; sprite ID - db $5b ; palette ID - db $a6 ; anim ID - db (1 << SPRITE_ANIM_FLAG_UNSKIPPABLE) | (1 << SPRITE_ANIM_FLAG_SPEED) ; anim flags - db SFX_STOP ; sound FX ID - db $00 ; handler function -; 0x1d078 +INCLUDE "data/duel_animations.asm" Func_1d078: ; 1d078 (7:5078) ld a, [wd627] diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm index 2414681..08c607f 100644 --- a/src/engine/bank1c.asm +++ b/src/engine/bank1c.asm @@ -260,11 +260,11 @@ Func_701e9: ; 701e9 (1c:41e9) push bc ld e, l ld d, h - ld b, $c0 - call Func_08bf + ld b, HIGH(wc000) + call InitBGMapDecompression pop bc pop de - call Func_08de + call DecompressBGMap ret Func_701fe: ; 701fe (1c:41fe) @@ -328,4 +328,7 @@ Func_70214: ; 70214 (1c:4214) ret Unknown_7024a: ; 7024a (1c:424a) - INCROM $7024a, $74000 + INCROM $7024a, $7036a + +Func_7036a: ; 7036a (1c:436a) + INCROM $7036a, $74000 diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm index 60830e9..e4cadba 100644 --- a/src/engine/bank20.asm +++ b/src/engine/bank20.asm @@ -11,15 +11,40 @@ Func_80028: ; 80028 (20:4028) ret ; 0x8003d - INCROM $8003d, $80077 +Func_8003d: ; 8003d (20:403d) + farcall LoadMapHeader + farcall Func_7036a + ld bc, $0 + call Func_80077 + ld a, $80 + ld [wd4ca], a + xor a + ld [wd4cb], a + call LoadTilesetGfx + xor a + ld [wd4ca], a + ld a, [wd291] + ld [wd4cb], a + ld a, [wd28f] + call Func_803c9 + ld a, [wd291] + ld [wd4cb], a + ld a, [wd290] + or a + jr z, .asm_80076 + call Func_803c9 +.asm_80076 + ret +; 0x80077 Func_80077: ; 80077 (20:4077) ld a, $1 - ld [wd292], a + ld [wBGMapCopyMode], a jr Func_80082 xor a - ld [wd292], a + ld [wBGMapCopyMode], a +; fallthrough Func_80082: ; 80082 (20:4082) push hl @@ -30,24 +55,29 @@ Func_80082: ; 80082 (20:4082) ld [hl], e inc hl ld [hl], d + +; get pointer and bank for BG Map call Func_803b9 ld a, [wTempPointerBank] ld [wd23d], a - ld de, wLoadedPalData - ld bc, $0006 + +; store header data + ld de, wBGMapBuffer + ld bc, $0006 ; header + 1st instruction call CopyBankedDataToDE ld l, e ld h, d ld a, [hli] - ld [wd12f], a + ld [wBGMapWidth], a ld a, [hli] - ld [wd130], a + ld [wBGMapHeight], a ld a, [hli] ld [wd23a], a ld a, [hli] - ld [wd23b], a + ld [wd23a + 1], a ld a, [hli] ld [wd23c], a + call Func_800bd pop de pop bc @@ -64,8 +94,8 @@ Func_800bd: ; 800bd (20:40bd) ld a, [wTempPointer + 1] adc $00 ld d, a - ld b, $c0 - call Func_08bf + ld b, HIGH(wc000) + call InitBGMapDecompression ld a, [wVRAMPointer] ld e, a ld a, [wVRAMPointer + 1] @@ -77,63 +107,72 @@ Func_800bd: ; 800bd (20:40bd) ret Func_800e0: ; 800e0 (20:40e0) +; if wd23c != 0, then use double wBGMapWidth push hl ld hl, wd28e - ld a, [wd12f] + ld a, [wBGMapWidth] ld [hl], a ld a, [wd23c] or a jr z, .asm_800f0 sla [hl] .asm_800f0 + ld c, $40 - ld hl, wLoadedPalData + ld hl, wBGMapBuffer xor a -.asm_800f6 +.loop_clear ld [hli], a dec c - jr nz, .asm_800f6 - ld a, [wd130] + jr nz, .loop_clear + +; loop each row, up to the number of tiles in height + ld a, [wBGMapHeight] ld c, a -.asm_800fe +.loop push bc push de ld b, $00 ld a, [wd28e] ld c, a - ld de, wLoadedPalData - call Func_3be4 - ld a, [wd12f] + ld de, wBGMapBuffer + call DecompressBGMapFromBank + + ld a, [wBGMapWidth] ld b, a pop de push de - ld hl, wLoadedPalData - call Func_8016e + ld hl, wBGMapBuffer + call CopyBGDataToVRAMOrSRAM ld a, [wConsole] - cp $02 - jr nz, .asm_8013b + cp CONSOLE_CGB + jr nz, .next_row + + ; cgb only call BankswitchVRAM1 - ld a, [wd12f] + ld a, [wBGMapWidth] ld c, a ld b, $00 - ld hl, wLoadedPalData + ld hl, wBGMapBuffer add hl, bc pop de push de - ld a, [wd12f] + ld a, [wBGMapWidth] ld b, a call Func_80148 - call Func_8016e + call CopyBGDataToVRAMOrSRAM call BankswitchVRAM0 -.asm_8013b + +.next_row pop de - ld hl, $20 + ld hl, BG_MAP_WIDTH add hl, de ld e, l ld d, h pop bc dec c - jr nz, .asm_800fe + jr nz, .loop + pop hl ret @@ -144,59 +183,71 @@ Func_80148: ; 80148 (20:4148) ld a, [wd23c] or a jr z, .asm_80162 + +; add wd291 to b bytes in hl push hl push bc -.asm_80155 +.loop_1 push bc ld a, [wd291] add [hl] ld [hli], a pop bc dec b - jr nz, .asm_80155 + jr nz, .loop_1 pop bc pop hl ret + +; store wd291 to b bytes in hl .asm_80162 push hl push bc ld a, [wd291] -.asm_80167 +.loop_2 ld [hli], a dec b - jr nz, .asm_80167 + jr nz, .loop_2 pop bc pop hl ret -Func_8016e: ; 8016e (20:416e) - ld a, [wd292] +; copies BG Map data pointed by hl +; to either VRAM or SRAM, depending on wBGMapCopyMode +; de is the target address in VRAM, +; if SRAM is the target address to copy, +; copies data to s0BGMap or s1BGMap +; for VRAM0 or VRAM1 respectively +CopyBGDataToVRAMOrSRAM: ; 8016e (20:416e) + ld a, [wBGMapCopyMode] or a jp z, SafeCopyDataHLtoDE + +; copies b bytes from hl to SRAM1 push hl push bc push de ldh a, [hBankSRAM] push af - ld a, $01 + ld a, BANK("SRAM1") call BankswitchSRAM push hl - ld hl, $800 + ld hl, s0BGMap - v0BGMap0 ldh a, [hBankVRAM] or a - jr z, .asm_8018c - ld hl, $c00 -.asm_8018c + jr z, .got_pointer + ld hl, s1BGMap - v1BGMap0 +.got_pointer add hl, de ld e, l ld d, h pop hl -.asm_80190 +.loop ld a, [hli] ld [de], a inc de dec b - jr nz, .asm_80190 + jr nz, .loop pop af call BankswitchSRAM call DisableSRAM @@ -323,7 +374,7 @@ Func_8025b: ; 8025b (20:425b) call LoadGraphicsPointerFromHL ld a, [hl] ; sprite number of tiles push af - ld [wCurSpriteNumTiles], a + ld [wTotalNumTiles], a ld a, TILE_SIZE ld [wCurSpriteTileSize], a call LoadGfxDataFromTempPointerToVRAMBank @@ -338,7 +389,7 @@ LoadGfxDataFromTempPointerToVRAMBank: ; 80274 (20:4274) jr LoadGfxDataFromTempPointer Func_80279: ; 80279 (20:4279) - call Func_802bb + call GetTileOffsetPointerAndSwitchVRAM_Tiles0ToTiles2 ; loads graphics data pointed by wTempPointer in wTempPointerBank ; to wVRAMPointer @@ -346,7 +397,7 @@ LoadGfxDataFromTempPointer: push hl push bc push de - ld a, [wCurSpriteNumTiles] + ld a, [wTotalNumTiles] ld b, a ld a, [wCurSpriteTileSize] ld c, a @@ -378,7 +429,7 @@ GetTileOffsetPointerAndSwitchVRAM: ; 8029f (20:429f) and $f0 ld [wVRAMPointer], a pop af - and $f + and $0f add HIGH(v0Tiles0) ; $80 ld [wVRAMPointer + 1], a @@ -389,33 +440,229 @@ GetTileOffsetPointerAndSwitchVRAM: ; 8029f (20:429f) call BankswitchVRAM ret -Func_802bb: ; 802bb (20:42bb) - ld a, [wd4ca] +; converts wVRAMTileOffset to address in VRAM +; and stores it in wVRAMPointer +; switches VRAM according to wd4cb +; then changes wVRAMPointer such that +; addresses to Tiles0 is changed to Tiles2 +GetTileOffsetPointerAndSwitchVRAM_Tiles0ToTiles2: ; 802bb (20:42bb) + ld a, [wVRAMTileOffset] push af - xor $80 - ld [wd4ca], a + xor $80 ; toggle top bit + ld [wVRAMTileOffset], a call GetTileOffsetPointerAndSwitchVRAM ld a, [wVRAMPointer + 1] add $8 ld [wVRAMPointer + 1], a pop af - ld [wd4ca], a + ld [wVRAMTileOffset], a ret ; 0x802d4 - INCROM $802d4, $803b9 +; loads tileset gfx to VRAM corresponding to wCurTileset +LoadTilesetGfx: ; 802d4 (20:42d4) + push hl + ld l, $02 + ld a, [wCurTileset] + call GetMapDataPointer + call LoadGraphicsPointerFromHL + call .LoadTileGfx + call BankswitchVRAM0 + pop hl + ret +; 0x802e8 + +; loads gfx data from wTempPointerBank:wTempPointer +.LoadTileGfx ; 802e8 (20:42e8) + push hl + push bc + push de + ld hl, wTempPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wTempPointerBank] + call GetFarByte ; get number of tiles (low byte) + ld [wTotalNumTiles], a + inc hl + ld a, [wTempPointerBank] + call GetFarByte ; get number of tiles (high byte) + ld [wTotalNumTiles + 1], a + inc hl + ld a, l + ld [wTempPointer], a + ld a, h + ld [wTempPointer + 1], a + +; used to sequentially copy gfx data in the order +; v0Tiles1 -> v0Tiles2 -> v1Tiles1 -> v1Tiles2 + + lb bc, $0, LOW(v0Tiles2 / TILE_SIZE) ; $00 + call .CopyGfxData + jr z, .done + lb bc, $0, LOW(v0Tiles1 / TILE_SIZE) ; $80 + call .CopyGfxData + jr z, .done + ; VRAM1 only used in CGB console + ld a, [wConsole] + cp CONSOLE_CGB + jr nz, .done + lb bc, $1, LOW(v1Tiles2 / TILE_SIZE) ; $00 + call .CopyGfxData + jr z, .done + lb bc, $1, LOW(v1Tiles1 / TILE_SIZE) ; $80 + call .CopyGfxData + +.done + pop de + pop bc + pop hl + ret +; 0x80336 + +; copies gfx data from wTempPointer to VRAM +; c must match with wVRAMTileOffset +; if c = $00, copies it to Tiles2 +; if c = $80, copies it to Tiles1 +; b must match with VRAM bank in wd4cb +; prepares next call to this routine if data wasn't fully copied +; so that it copies to the right VRAM section +.CopyGfxData ; 80336 (20:4336) + push hl + push bc + push de + ld a, [wd4cb] + cp b + jr nz, .skip + ld a, [wVRAMTileOffset] + ld d, a + xor c + bit 7, a + jr nz, .skip + +; (wd4cb == b) and +; bit 7 in c is same as bit 7 in wVRAMTileOffset + ld a, c + add $80 + sub d + ld d, a ; total number of tiles + ld a, [wTotalNumTiles + 1] + or a + jr nz, .asm_8035a + ; if d > wTotalNumTiles, + ; overwrite it with wTotalNumTiles + ld a, [wTotalNumTiles] + cp d + jr nc, .asm_8035a + ld d, a +.asm_8035a + ld a, [wTotalNumTiles] + sub d + ld [wTotalNumTiles], a + ld a, [wTotalNumTiles + 1] + sbc $00 + ld [wTotalNumTiles + 1], a + call GetTileOffsetPointerAndSwitchVRAM_Tiles0ToTiles2 + + ld b, d ; number of tiles + ld c, TILE_SIZE + ld hl, wVRAMPointer + ld e, [hl] + inc hl + ld d, [hl] + ld hl, wTempPointer + ld a, [hli] + ld h, [hl] + ld l, a + push bc + push hl + ldh a, [hBankVRAM] + push af + ld a, [wd4cb] + and $01 + call BankswitchVRAM + call CopyGfxDataFromTempBank + pop af + call BankswitchVRAM + pop de + pop bc + ; add number of tiles * TILE_SIZE + ; to wVRAMPointer and store it in wTempPointer + ld l, b + ld h, $00 + add hl, hl ; *2 + add hl, hl ; *4 + add hl, hl ; *8 + add hl, hl ; *16 (TILE_SIZE) + add hl, de + ld a, l + ld [wTempPointer], a + ld a, h + ld [wTempPointer + 1], a + + ld hl, wVRAMTileOffset + ld a, [hl] + add $80 + push af + and $80 ; start of next group of tiles + ld [hli], a + pop af + ; if it overflows + ; (which means a tile group after Tiles2) + ; then set wd4cb for VRAM1 + ld a, [hl] ; wd4cb + adc $00 + ld [hl], a + +.skip + ld hl, wTotalNumTiles + ld a, [hli] + or [hl] ; wTotalNumTiles + 1 + pop de + pop bc + pop hl + ret +; 0x803b9 + +; gets pointer to BG map with ID from wCurTilemap Func_803b9: ; 803b9 (20:43b9) ld l, $00 - ld a, [wd131] + ld a, [wCurTilemap] call GetMapDataPointer call LoadGraphicsPointerFromHL ld a, [hl] - ld [wd239], a + ld [wCurTileset], a ret ; 0x803c9 - INCROM $803c9, $803ec +Func_803c9: ; 803c9 (20:43c9) + push hl + push bc + push de + call CopyPaletteDataToBuffer + ld hl, wLoadedPalData + ld a, [hli] + or a + jr z, .asm_803dc + ld a, [hli] + push hl + call SetBGP + pop hl +.asm_803dc + ld a, [hli] + or a + jr z, .asm_803e8 + ld c, a + ld a, [wd4cb] + ld b, a + call LoadPaletteDataFromHL +.asm_803e8 + pop de + pop bc + pop hl + ret +; 0x803ec ; copies from palette data in hl c*8 bytes to palette index b ; in WRAM, starting from wBackgroundPalettesCGB @@ -571,7 +818,7 @@ Func_80b89: ; 80b89 (20:4b89) push af ld c, a ld a, $01 - ld [wd292], a + ld [wBGMapCopyMode], a ld b, $00 ld hl, wd323 add hl, bc @@ -589,7 +836,7 @@ Func_80b89: ; 80b89 (20:4b89) Func_80ba4: ; 80ba4 (20:4ba4) push af xor a - ld [wd292], a + ld [wBGMapCopyMode], a pop af ; Fallthrough @@ -598,17 +845,17 @@ Func_80baa: ; 80baa (20:4baa) push bc push de ld c, a - ld a, [wd131] + ld a, [wCurTilemap] push af ld a, [wd23d] push af - ld a, [wd12f] + ld a, [wBGMapWidth] push af - ld a, [wd130] + ld a, [wBGMapHeight] push af ld a, [wd23a] push af - ld a, [wd23b] + ld a, [wd23a + 1] push af ld b, $0 ld hl, wd323 @@ -635,7 +882,7 @@ Func_80baa: ; 80baa (20:4baa) .asm_80be7 ld a, [hl] - ld [wd131], a + ld [wCurTilemap], a push bc farcall Func_80082 pop bc @@ -651,17 +898,17 @@ Func_80baa: ; 80baa (20:4baa) add hl, bc farcall Func_c38f pop af - ld [wd23b], a + ld [wd23a + 1], a pop af ld [wd23a], a pop af - ld [wd130], a + ld [wBGMapHeight], a pop af - ld [wd12f], a + ld [wBGMapWidth], a pop af ld [wd23d], a pop af - ld [wd131], a + ld [wCurTilemap], a pop de pop bc pop hl @@ -678,208 +925,222 @@ SpriteNullAnimationFrame: ; might be closer to "screen specific data" than map data MapDataPointers: ; 80e5d (20:4e5d) - dw MapDataPointers_80e67 - dw MapDataPointers_8100f + dw Tilemaps + dw Tilesets dw MapDataPointers_8116b dw SpriteAnimationPointers dw MapDataPointers_81697 -MapDataPointers_80e67: ; 80e67 (20:4e67) - db $1b, $59, $00, $00 - db $22, $5a, $00, $00 - db $13, $5c, $00, $01 - db $2e, $5d, $00, $01 - db $d1, $5e, $00, $01 - db $f5, $5e, $00, $01 - db $26, $5f, $00, $01 - db $eb, $5f, $00, $01 - db $43, $61, $00, $01 - db $50, $61, $00, $01 - db $60, $61, $00, $02 - db $22, $62, $00, $02 - db $36, $63, $00, $03 - db $00, $64, $00, $03 - db $1d, $65, $00, $03 - db $e7, $65, $00, $03 - db $04, $67, $00, $03 - db $ce, $67, $00, $03 - db $eb, $68, $00, $03 - db $b5, $69, $00, $03 - db $d2, $6a, $00, $03 - db $9c, $6b, $00, $03 - db $b9, $6c, $00, $03 - db $83, $6d, $00, $03 - db $a0, $6e, $00, $03 - db $6a, $6f, $00, $03 - db $87, $70, $00, $03 - db $51, $71, $00, $03 - db $6e, $72, $00, $03 - db $21, $73, $00, $03 - db $24, $74, $00, $04 - db $45, $75, $00, $04 - db $db, $76, $00, $05 - db $8c, $77, $00, $05 - db $8d, $78, $00, $06 - db $d6, $79, $00, $06 - db $00, $40, $01, $07 - db $88, $41, $01, $07 - db $bb, $43, $01, $08 - db $33, $45, $01, $08 - db $2e, $47, $01, $09 - db $d8, $48, $01, $09 - db $73, $4b, $01, $0a - db $6f, $4c, $01, $0a - db $fe, $4d, $01, $0b - db $1d, $4f, $01, $0b - db $b6, $50, $01, $0c - db $91, $51, $01, $0c - db $15, $53, $01, $0d - db $b3, $54, $01, $0d - db $0a, $57, $01, $0e - db $ce, $57, $01, $0e - db $f1, $7b, $00, $0e - db $03, $7c, $00, $0e - db $ef, $58, $01, $0f - db $79, $5a, $01, $0f - db $1a, $7c, $00, $0f - db $26, $7c, $00, $0f - db $e2, $5c, $01, $10 - db $f4, $5d, $01, $10 - db $7c, $5f, $01, $11 - db $7f, $60, $01, $11 - db $36, $7c, $00, $12 - db $7d, $61, $01, $12 - db $93, $61, $01, $12 - db $a9, $61, $01, $12 - db $bf, $61, $01, $12 - db $d5, $61, $01, $12 - db $eb, $61, $01, $12 - db $01, $62, $01, $12 - db $17, $62, $01, $13 - db $da, $62, $01, $13 - db $64, $63, $01, $13 - db $43, $64, $01, $13 - db $df, $64, $01, $14 - db $b5, $65, $01, $14 - db $47, $66, $01, $15 - db $b8, $66, $01, $16 - db $3e, $67, $01, $17 - db $af, $67, $01, $18 - db $33, $68, $01, $19 - db $a4, $68, $01, $1a - db $25, $69, $01, $1b - db $96, $69, $01, $1c - db $14, $6a, $01, $1d - db $85, $6a, $01, $1e - db $28, $6b, $01, $1f - db $99, $6b, $01, $20 - db $34, $6c, $01, $21 - db $a5, $6c, $01, $22 - db $37, $6d, $01, $23 - db $cc, $6d, $01, $24 - db $8a, $6e, $01, $25 - db $18, $6f, $01, $25 - db $c0, $6f, $01, $25 - db $4f, $70, $01, $26 - db $a5, $71, $01, $27 - db $97, $73, $01, $28 - db $b7, $73, $01, $29 - db $e5, $73, $01, $2a - db $13, $74, $01, $2b - db $38, $75, $01, $2c - db $9f, $76, $01, $2d - db $f6, $76, $01, $2d - db $7c, $77, $01, $2e - db $c4, $77, $01, $2f - -MapDataPointers_8100f: ; 8100f (20:500f) - db $00, $40, $02, $c1 - db $12, $4c, $02, $97 - db $28, $78, $01, $4d - db $84, $55, $02, $81 - db $96, $5d, $02, $78 - db $18, $65, $02, $63 - db $4a, $6b, $02, $3c - db $0c, $6f, $02, $a1 - db $00, $40, $03, $83 - db $1e, $79, $02, $57 - db $32, $48, $03, $3a - db $d4, $4b, $03, $52 - db $f6, $50, $03, $57 - db $68, $56, $03, $9d - db $3a, $60, $03, $4e - db $1c, $65, $03, $cf - db $0e, $72, $03, $79 - db $00, $40, $04, $bd - db $a0, $79, $03, $48 - db $d2, $4b, $04, $6d - db $a4, $52, $04, $5d - db $76, $58, $04, $60 - db $78, $5e, $04, $56 - db $da, $63, $04, $60 - db $dc, $69, $04, $56 - db $3e, $6f, $04, $60 - db $40, $75, $04, $56 - db $00, $40, $05, $60 - db $02, $46, $05, $56 - db $64, $4b, $05, $60 - db $66, $51, $05, $60 - db $68, $57, $05, $60 - db $6a, $5d, $05, $60 - db $6c, $63, $05, $60 - db $6e, $69, $05, $60 - db $70, $6f, $05, $61 - db $82, $75, $05, $61 - db $fa, $7c, $01, $04 - db $00, $40, $06, $f4 - db $42, $4f, $06, $3b - db $3c, $7d, $01, $04 - db $7e, $7d, $01, $24 - db $a2, $7a, $04, $24 - db $f4, $62, $06, $dc - db $b6, $70, $06, $d4 - db $e4, $7c, $04, $24 - db $22, $7e, $03, $18 - db $94, $7b, $05, $31 - db $00, $40, $07, $24 - db $42, $42, $07, $24 - db $84, $44, $07, $24 - db $c6, $46, $07, $24 - db $08, $49, $07, $24 - db $4a, $4b, $07, $24 - db $8c, $4d, $07, $24 - db $ce, $4f, $07, $24 - db $10, $52, $07, $24 - db $52, $54, $07, $24 - db $94, $56, $07, $24 - db $d6, $58, $07, $24 - db $18, $5b, $07, $24 - db $5a, $5d, $07, $24 - db $9c, $5f, $07, $24 - db $de, $61, $07, $24 - db $20, $64, $07, $24 - db $62, $66, $07, $24 - db $a4, $68, $07, $24 - db $e6, $6a, $07, $24 - db $28, $6d, $07, $24 - db $6a, $6f, $07, $24 - db $ac, $71, $07, $24 - db $ee, $73, $07, $24 - db $30, $76, $07, $24 - db $72, $78, $07, $24 - db $b4, $7a, $07, $24 - db $f6, $7c, $07, $24 - db $00, $40, $08, $24 - db $42, $42, $08, $24 - db $84, $44, $08, $24 - db $c6, $46, $08, $24 - db $08, $49, $08, $24 - db $4a, $4b, $08, $24 - db $8c, $4d, $08, $24 - db $ce, $4f, $08, $24 - db $10, $52, $08, $24 - db $52, $54, $08, $24 - db $94, $56, $08, $24 +; \1 = pointer +; \2 = tileset +tilemap: MACRO + dwb \1, BANK(\1) - BANK(Tilemaps) + db \2 +ENDM + +Tilemaps: ; 80e67 (20:4e67) + tilemap OverworldMapTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP + tilemap OverworldMapCGBTilemap, TILESET_OVERWORLD_MAP ; TILEMAP_OVERWORLD_MAP_CGB + tilemap MasonLaboratoryTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY + tilemap MasonLaboratoryCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_MASON_LABORATORY_CGB + tilemap Unused1Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_1 + tilemap Unused2Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_2 + tilemap DeckMachineRoomTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM + tilemap DeckMachineRoomCGBTilemap, TILESET_MASON_LABORATORY ; TILEMAP_DECK_MACHINE_ROOM_CGB + tilemap Unused3Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_3 + tilemap Unused4Tilemap, TILESET_MASON_LABORATORY ; TILEMAP_UNUSED_4 + tilemap IshiharaTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA + tilemap IshiharaCGBTilemap, TILESET_ISHIHARA ; TILEMAP_ISHIHARA_CGB + tilemap FightingClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE + tilemap FightingClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIGHTING_CLUB_ENTRANCE_CGB + tilemap RockClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE + tilemap RockClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_ROCK_CLUB_ENTRANCE_CGB + tilemap WaterClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE + tilemap WaterClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_WATER_CLUB_ENTRANCE_CGB + tilemap LightningClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE + tilemap LightningClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_LIGHTNING_CLUB_ENTRANCE_CGB + tilemap GrassClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE + tilemap GrassClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_GRASS_CLUB_ENTRANCE_CGB + tilemap PsychicClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE + tilemap PsychicClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_PSYCHIC_CLUB_ENTRANCE_CGB + tilemap ScienceClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE + tilemap ScienceClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_SCIENCE_CLUB_ENTRANCE_CGB + tilemap FireClubEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE + tilemap FireClubEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_FIRE_CLUB_ENTRANCE_CGB + tilemap ChallengeHallEntranceTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE + tilemap ChallengeHallEntranceCGBTilemap, TILESET_CLUB_ENTRANCE ; TILEMAP_CHALLENGE_HALL_ENTRANCE_CGB + tilemap ClubLobbyTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY + tilemap ClubLobbyCGBTilemap, TILESET_CLUB_LOBBY ; TILEMAP_CLUB_LOBBY_CGB + tilemap FightingClubTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB + tilemap FightingClubCGBTilemap, TILESET_FIGHTING_CLUB ; TILEMAP_FIGHTING_CLUB_CGB + tilemap RockClubTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB + tilemap RockClubCGBTilemap, TILESET_ROCK_CLUB ; TILEMAP_ROCK_CLUB_CGB + tilemap WaterClubTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB + tilemap WaterClubCGBTilemap, TILESET_WATER_CLUB ; TILEMAP_WATER_CLUB_CGB + tilemap LightningClubTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB + tilemap LightningClubCGBTilemap, TILESET_LIGHTNING_CLUB ; TILEMAP_LIGHTNING_CLUB_CGB + tilemap GrassClubTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB + tilemap GrassClubCGBTilemap, TILESET_GRASS_CLUB ; TILEMAP_GRASS_CLUB_CGB + tilemap PsychicClubTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB + tilemap PsychicClubCGBTilemap, TILESET_PSYCHIC_CLUB ; TILEMAP_PSYCHIC_CLUB_CGB + tilemap ScienceClubTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB + tilemap ScienceClubCGBTilemap, TILESET_SCIENCE_CLUB ; TILEMAP_SCIENCE_CLUB_CGB + tilemap FireClubTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB + tilemap FireClubCGBTilemap, TILESET_FIRE_CLUB ; TILEMAP_FIRE_CLUB_CGB + tilemap ChallengeHallTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL + tilemap ChallengeHallCGBTilemap, TILESET_CHALLENGE_HALL ; TILEMAP_CHALLENGE_HALL_CGB + tilemap PokemonDomeEntranceTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE + tilemap PokemonDomeEntranceCGBTilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_POKEMON_DOME_ENTRANCE_CGB + tilemap Unused5Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNUSED_5 + tilemap Unused6Tilemap, TILESET_POKEMON_DOME_ENTRANCE ; TILEMAP_UNUSED_6 + tilemap PokemonDomeTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME + tilemap PokemonDomeGBTilemap, TILESET_POKEMON_DOME ; TILEMAP_POKEMON_DOME_CGB + tilemap Unused7Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNUSED_7 + tilemap Unused8Tilemap, TILESET_POKEMON_DOME ; TILEMAP_UNUSED_8 + tilemap HallOfHonorTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR + tilemap HallOfHonorCGBTilemap, TILESET_HALL_OF_HONOR ; TILEMAP_HALL_OF_HONOR_CGB + tilemap CardPop1Tilemap, TILESET_CARD_POP_1 ; TILEMAP_CARD_POP_1 + tilemap CardPop1CGBTilemap, TILESET_CARD_POP_1 ; TILEMAP_CARD_POP_1_CGB + tilemap GrassMedalTilemap, TILESET_MEDAL ; TILEMAP_GRASS_MEDAL + tilemap ScienceMedalTilemap, TILESET_MEDAL ; TILEMAP_SCIENCE_MEDAL + tilemap FireMedalTilemap, TILESET_MEDAL ; TILEMAP_FIRE_MEDAL + tilemap WaterMedalTilemap, TILESET_MEDAL ; TILEMAP_WATER_MEDAL + tilemap LightningMedalTilemap, TILESET_MEDAL ; TILEMAP_LIGHTNING_MEDAL + tilemap FightingMedalTilemap, TILESET_MEDAL ; TILEMAP_FIGHTING_MEDAL + tilemap RockMedalTilemap, TILESET_MEDAL ; TILEMAP_ROCK_MEDAL + tilemap PsychicMedalTilemap, TILESET_MEDAL ; TILEMAP_PSYCHIC_MEDAL + tilemap CardPop2Tilemap, TILESET_CARD_POP_2 ; TILEMAP_CARD_POP_2 + tilemap CardPop2CGBTilemap, TILESET_CARD_POP_2 ; TILEMAP_CARD_POP_2_CGB + tilemap CardPop2Unknown1Tilemap, TILESET_CARD_POP_2 ; TILEMAP_CARD_POP_2_UNKNOWN_1 + tilemap CardPop2Unknown2Tilemap, TILESET_CARD_POP_2 ; TILEMAP_CARD_POP_2_UNKNOWN_2 + tilemap CardPop3Tilemap, TILESET_CARD_POP_3 ; TILEMAP_CARD_POP_3 + tilemap CardPop3CGBTilemap, TILESET_CARD_POP_3 ; TILEMAP_CARD_POP_3_CGB + tilemap ColosseumTilemap, TILESET_COLOSSEUM_1 ; TILEMAP_COLOSSEUM + tilemap ColosseumCGBTilemap, TILESET_COLOSSEUM_2 ; TILEMAP_COLOSSEUM_CGB + tilemap EvolutionTilemap, TILESET_EVOLUTION_1 ; TILEMAP_EVOLUTION + tilemap EvolutionCGBTilemap, TILESET_EVOLUTION_2 ; TILEMAP_EVOLUTION_CGB + tilemap MysteryTilemap, TILESET_MYSTERY_1 ; TILEMAP_MYSTERY + tilemap MysteryCGBTilemap, TILESET_MYSTERY_2 ; TILEMAP_MYSTERY_CGB + tilemap LaboratoryTilemap, TILESET_LABORATORY_1 ; TILEMAP_LABORATORY + tilemap LaboratoryCGBTilemap, TILESET_LABORATORY_2 ; TILEMAP_LABORATORY_CGB + tilemap CharizardIntroTilemap, TILESET_CHARIZARD_INTRO_1 ; TILEMAP_CHARIZARD_INTRO + tilemap CharizardIntroCGBTilemap, TILESET_CHARIZARD_INTRO_2 ; TILEMAP_CHARIZARD_INTRO_CGB + tilemap ScytherIntroTilemap, TILESET_SCYTHER_INTRO_1 ; TILEMAP_SCYTHER_INTRO + tilemap ScytherIntroCGBTilemap, TILESET_SCYTHER_INTRO_2 ; TILEMAP_SCYTHER_INTRO_CGB + tilemap AerodactylIntroTilemap, TILESET_AERODACTYL_INTRO_1 ; TILEMAP_AERODACTYL_INTRO + tilemap AerodactylIntroCGBTilemap, TILESET_AERODACTYL_INTRO_2 ; TILEMAP_AERODACTYL_INTRO_CGB + tilemap TitleScreen1Tilemap, TILESET_TITLE_SCREEN_1 ; TILEMAP_TITLE_SCREEN_1 + tilemap TitleScreen2Tilemap, TILESET_TITLE_SCREEN_2 ; TILEMAP_TITLE_SCREEN_2 + tilemap SolidTiles1Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_1 + tilemap SolidTiles2Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_2 + tilemap SolidTiles3Tilemap, TILESET_SOLID_TILES_1 ; TILEMAP_SOLID_TILES_3 + tilemap TitleScreen3Tilemap, TILESET_TITLE_SCREEN_3 ; TILEMAP_TITLE_SCREEN_3 + tilemap TitleScreen4Tilemap, TILESET_TITLE_SCREEN_4 ; TILEMAP_TITLE_SCREEN_4 + tilemap SolidTiles4Tilemap, TILESET_SOLID_TILES_2 ; TILEMAP_SOLID_TILES_4 + tilemap PlayerTilemap, TILESET_PLAYER ; TILEMAP_PLAYER + tilemap OpponentTilemap, TILESET_RONALD ; TILEMAP_OPPONENT + tilemap TitleScreen5Tilemap, TILESET_TITLE_SCREEN_5 ; TILEMAP_TITLE_SCREEN_5 + tilemap TitleScreen6Tilemap, TILESET_TITLE_SCREEN_6 ; TILEMAP_TITLE_SCREEN_6 + tilemap CopyrightTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT + tilemap CopyrightCGBTilemap, TILESET_COPYRIGHT ; TILEMAP_COPYRIGHT_CGB + tilemap NintendoTilemap, TILESET_NINTENDO ; TILEMAP_NINTENDO + tilemap CompaniesTilemap, TILESET_COMPANIES ; TILEMAP_COMPANIES + +; \1 = pointer +; \2 = number of tiles +tileset: MACRO + dwb \1, BANK(\1) - BANK(Tilesets) + db \2 +ENDM + +Tilesets: ; 8100f (20:500f) + tileset OverworldMapTiles, 193 ; TILESET_OVERWORLD_MAP + tileset MasonLaboratoryTilesetGfx, 151 ; TILESET_MASON_LABORATORY + tileset IshiharaTilesetGfx, 77 ; TILESET_ISHIHARA + tileset ClubEntranceTilesetGfx, 129 ; TILESET_CLUB_ENTRANCE + tileset ClubLobbyTilesetGfx, 120 ; TILESET_CLUB_LOBBY + tileset FightingClubTilesetGfx, 99 ; TILESET_FIGHTING_CLUB + tileset RockClubTilesetGfx, 60 ; TILESET_ROCK_CLUB + tileset WaterClubTilesetGfx, 161 ; TILESET_WATER_CLUB + tileset LightningClubTilesetGfx, 131 ; TILESET_LIGHTNING_CLUB + tileset GrassClubTilesetGfx, 87 ; TILESET_GRASS_CLUB + tileset PsychicClubTilesetGfx, 58 ; TILESET_PSYCHIC_CLUB + tileset ScienceClubTilesetGfx, 82 ; TILESET_SCIENCE_CLUB + tileset FireClubTilesetGfx, 87 ; TILESET_FIRE_CLUB + tileset ChallengeHallTilesetGfx, 157 ; TILESET_CHALLENGE_HALL + tileset PokemonDomeEntranceTilesetGfx, 78 ; TILESET_POKEMON_DOME_ENTRANCE + tileset PokemonDomeTilesetGfx, 207 ; TILESET_POKEMON_DOME + tileset HallOfHonorTilesetGfx, 121 ; TILESET_HALL_OF_HONOR + tileset CardPop1Gfx, 189 ; TILESET_CARD_POP_1 + tileset MedalGfx, 72 ; TILESET_MEDAL + tileset CardPop2Gfx, 109 ; TILESET_CARD_POP_2 + tileset CardPop3Gfx, 93 ; TILESET_CARD_POP_3 + tileset Colosseum1Gfx, 96 ; TILESET_COLOSSEUM_1 + tileset Colosseum2Gfx, 86 ; TILESET_COLOSSEUM_2 + tileset Evolution1Gfx, 96 ; TILESET_EVOLUTION_1 + tileset Evolution2Gfx, 86 ; TILESET_EVOLUTION_2 + tileset Mystery1Gfx, 96 ; TILESET_MYSTERY_1 + tileset Mystery2Gfx, 86 ; TILESET_MYSTERY_2 + tileset Laboratory1Gfx, 96 ; TILESET_LABORATORY_1 + tileset Laboratory2Gfx, 86 ; TILESET_LABORATORY_2 + tileset CharizardIntro1Gfx, 96 ; TILESET_CHARIZARD_INTRO_1 + tileset CharizardIntro2Gfx, 96 ; TILESET_CHARIZARD_INTRO_2 + tileset ScytherIntro1Gfx, 96 ; TILESET_SCYTHER_INTRO_1 + tileset ScytherIntro2Gfx, 96 ; TILESET_SCYTHER_INTRO_2 + tileset AerodactylIntro1Gfx, 96 ; TILESET_AERODACTYL_INTRO_1 + tileset AerodactylIntro2Gfx, 96 ; TILESET_AERODACTYL_INTRO_2 + tileset Titlescreen1Gfx, 97 ; TILESET_TITLE_SCREEN_1 + tileset Titlescreen2Gfx, 97 ; TILESET_TITLE_SCREEN_2 + tileset SolidTiles1, 4 ; TILESET_SOLID_TILES_1 + tileset Titlescreen3Gfx, 244 ; TILESET_TITLE_SCREEN_3 + tileset Titlescreen4Gfx, 59 ; TILESET_TITLE_SCREEN_4 + tileset SolidTiles2, 4 ; TILESET_SOLID_TILES_2 + tileset PlayerGfx, 36 ; TILESET_PLAYER + tileset RonaldGfx, 36 ; TILESET_RONALD + tileset Titlescreen5Gfx, 220 ; TILESET_TITLE_SCREEN_5 + tileset Titlescreen6Gfx, 212 ; TILESET_TITLE_SCREEN_6 + tileset CopyrightGfx, 36 ; TILESET_COPYRIGHT + tileset NintendoGfx, 24 ; TILESET_NINTENDO + tileset CompaniesGfx, 49 ; TILESET_COMPANIES + tileset SamGfx, 36 ; TILESET_SAM + tileset ImakuniGfx, 36 ; TILESET_IMAKUNI + tileset NikkiGfx, 36 ; TILESET_NIKKI + tileset RickGfx, 36 ; TILESET_RICK + tileset KenGfx, 36 ; TILESET_KEN + tileset AmyGfx, 36 ; TILESET_AMY + tileset IsaacGfx, 36 ; TILESET_ISAAC + tileset MitchGfx, 36 ; TILESET_MITCH + tileset GeneGfx, 36 ; TILESET_GENE + tileset MurrayGfx, 36 ; TILESET_MURRAY + tileset CourtneyGfx, 36 ; TILESET_COURTNEY + tileset SteveGfx, 36 ; TILESET_STEVE + tileset JackGfx, 36 ; TILESET_JACK + tileset RodGfx, 36 ; TILESET_ROD + tileset JosephGfx, 36 ; TILESET_JOSEPH + tileset DavidGfx, 36 ; TILESET_DAVID + tileset ErikGfx, 36 ; TILESET_ERIK + tileset JohnGfx, 36 ; TILESET_JOHN + tileset AdamGfx, 36 ; TILESET_ADAM + tileset JonathanGfx, 36 ; TILESET_JONATHAN + tileset JoshuaGfx, 36 ; TILESET_JOSHUA + tileset NicholasGfx, 36 ; TILESET_NICHOLAS + tileset BrandonGfx, 36 ; TILESET_BRANDON + tileset MatthewGfx, 36 ; TILESET_MATTHEW + tileset RyanGfx, 36 ; TILESET_RYAN + tileset AndrewGfx, 36 ; TILESET_ANDREW + tileset ChrisGfx, 36 ; TILESET_CHRIS + tileset MichaelGfx, 36 ; TILESET_MICHAEL + tileset DanielGfx, 36 ; TILESET_DANIEL + tileset RobertGfx, 36 ; TILESET_ROBERT + tileset BrittanyGfx, 36 ; TILESET_BRITTANY + tileset KristinGfx, 36 ; TILESET_KRISTIN + tileset HeatherGfx, 36 ; TILESET_HEATHER + tileset SaraGfx, 36 ; TILESET_SARA + tileset AmandaGfx, 36 ; TILESET_AMANDA + tileset JenniferGfx, 36 ; TILESET_JENNIFER + tileset JessicaGfx, 36 ; TILESET_JESSICA + tileset StephanieGfx, 36 ; TILESET_STEPHANIE + tileset AaronGfx, 36 ; TILESET_AARON ; \1 = gfx pointer ; \2 = number of tiles @@ -1238,169 +1499,495 @@ palette_pointer: MACRO ENDM MapDataPointers_81697: ; 81697 (20:5697) - palette_pointer Palette0, 8, 1 ; $00 - palette_pointer Palette1, 8, 0 ; $01 - palette_pointer Palette2, 8, 0 ; $02 - palette_pointer Palette3, 8, 0 ; $03 - palette_pointer Palette4, 8, 0 ; $04 - palette_pointer Palette5, 8, 0 ; $05 - palette_pointer Palette6, 8, 0 ; $06 - palette_pointer Palette7, 8, 0 ; $07 - palette_pointer Palette8, 8, 0 ; $08 - palette_pointer Palette9, 8, 0 ; $09 - palette_pointer Palette10, 8, 0 ; $0a - palette_pointer Palette11, 8, 0 ; $0b - palette_pointer Palette12, 8, 0 ; $0c - palette_pointer Palette13, 8, 0 ; $0d - palette_pointer Palette14, 8, 0 ; $0e - palette_pointer Palette15, 8, 0 ; $0f - palette_pointer Palette16, 8, 0 ; $10 - palette_pointer Palette17, 8, 0 ; $11 - palette_pointer Palette18, 8, 0 ; $12 - palette_pointer Palette19, 8, 0 ; $13 - palette_pointer Palette20, 8, 0 ; $14 - palette_pointer Palette21, 8, 0 ; $15 - palette_pointer Palette22, 8, 0 ; $16 - palette_pointer Palette23, 8, 0 ; $17 - palette_pointer Palette24, 8, 0 ; $18 - palette_pointer Palette25, 8, 0 ; $19 - palette_pointer Palette26, 8, 0 ; $1a - palette_pointer Palette27, 8, 0 ; $1b - palette_pointer Palette28, 8, 0 ; $1c - palette_pointer Palette29, 8, 2 ; $1d - palette_pointer Palette30, 8, 2 ; $1e - palette_pointer Palette31, 1, 1 ; $1f - palette_pointer Palette32, 1, 1 ; $20 - palette_pointer Palette33, 1, 1 ; $21 - palette_pointer Palette34, 1, 1 ; $22 - palette_pointer Palette35, 1, 1 ; $23 - palette_pointer Palette36, 1, 1 ; $24 - palette_pointer Palette37, 1, 1 ; $25 - palette_pointer Palette38, 1, 1 ; $26 - palette_pointer Palette39, 1, 1 ; $27 - palette_pointer Palette40, 1, 1 ; $28 - palette_pointer Palette41, 1, 1 ; $29 - palette_pointer Palette42, 1, 1 ; $2a - palette_pointer Palette43, 1, 1 ; $2b - palette_pointer Palette44, 1, 1 ; $2c - palette_pointer Palette45, 1, 1 ; $2d - palette_pointer Palette46, 1, 1 ; $2e - palette_pointer Palette47, 1, 1 ; $2f - palette_pointer Palette48, 1, 1 ; $30 - palette_pointer Palette49, 1, 1 ; $31 - palette_pointer Palette50, 1, 1 ; $32 - palette_pointer Palette51, 1, 1 ; $33 - palette_pointer Palette52, 1, 1 ; $34 - palette_pointer Palette53, 1, 1 ; $35 - palette_pointer Palette54, 1, 1 ; $36 - palette_pointer Palette55, 1, 1 ; $37 - palette_pointer Palette56, 1, 1 ; $38 - palette_pointer Palette57, 1, 1 ; $39 - palette_pointer Palette58, 1, 1 ; $3a - palette_pointer Palette59, 1, 1 ; $3b - palette_pointer Palette60, 1, 1 ; $3c - palette_pointer Palette61, 1, 1 ; $3d - palette_pointer Palette62, 1, 1 ; $3e - palette_pointer Palette63, 1, 1 ; $3f - palette_pointer Palette64, 1, 1 ; $40 - palette_pointer Palette65, 1, 1 ; $41 - palette_pointer Palette66, 1, 1 ; $42 - palette_pointer Palette67, 1, 1 ; $43 - palette_pointer Palette68, 1, 1 ; $44 - palette_pointer Palette69, 1, 1 ; $45 - palette_pointer Palette70, 1, 1 ; $46 - palette_pointer Palette71, 1, 1 ; $47 - palette_pointer Palette72, 1, 1 ; $48 - palette_pointer Palette73, 1, 1 ; $49 - palette_pointer Palette74, 1, 1 ; $4a - palette_pointer Palette75, 1, 1 ; $4b - palette_pointer Palette76, 1, 1 ; $4c - palette_pointer Palette77, 1, 1 ; $4d - palette_pointer Palette78, 1, 1 ; $4e - palette_pointer Palette79, 1, 1 ; $4f - palette_pointer Palette80, 1, 1 ; $50 - palette_pointer Palette81, 1, 1 ; $51 - palette_pointer Palette82, 1, 1 ; $52 - palette_pointer Palette83, 1, 1 ; $53 - palette_pointer Palette84, 1, 1 ; $54 - palette_pointer Palette85, 1, 1 ; $55 - palette_pointer Palette86, 1, 1 ; $56 - palette_pointer Palette87, 1, 1 ; $57 - palette_pointer Palette88, 1, 1 ; $58 - palette_pointer Palette89, 1, 1 ; $59 - palette_pointer Palette90, 1, 1 ; $a5 - palette_pointer Palette91, 1, 1 ; $5b - palette_pointer Palette92, 1, 1 ; $5c - palette_pointer Palette93, 1, 1 ; $5d - palette_pointer Palette94, 8, 0 ; $5e - palette_pointer Palette95, 8, 0 ; $5f - palette_pointer Palette96, 8, 0 ; $60 - palette_pointer Palette97, 8, 0 ; $61 - palette_pointer Palette98, 8, 0 ; $62 - palette_pointer Palette99, 8, 0 ; $63 - palette_pointer Palette100, 8, 0 ; $64 - palette_pointer Palette101, 7, 0 ; $65 - palette_pointer Palette102, 7, 0 ; $66 - palette_pointer Palette103, 7, 0 ; $67 - palette_pointer Palette104, 7, 0 ; $68 - palette_pointer Palette105, 7, 0 ; $69 - palette_pointer Palette106, 7, 0 ; $6a - palette_pointer Palette107, 7, 0 ; $6b - palette_pointer Palette108, 0, 1 ; $6c - palette_pointer Palette109, 0, 1 ; $6d - palette_pointer Palette110, 0, 0 ; $6e - palette_pointer Palette111, 8, 1 ; $6f - palette_pointer Palette112, 8, 1 ; $70 - palette_pointer Palette113, 8, 1 ; $71 - palette_pointer Palette114, 4, 2 ; $72 - palette_pointer Palette115, 4, 2 ; $73 - palette_pointer Palette116, 4, 2 ; $74 - palette_pointer Palette117, 1, 0 ; $75 - palette_pointer Palette118, 6, 0 ; $76 - palette_pointer Palette119, 1, 0 ; $77 - palette_pointer Palette120, 1, 0 ; $78 - palette_pointer Palette121, 1, 0 ; $79 - palette_pointer Palette122, 1, 0 ; $7a - palette_pointer Palette123, 1, 0 ; $7b - palette_pointer Palette124, 1, 0 ; $7c - palette_pointer Palette125, 1, 0 ; $7d - palette_pointer Palette126, 1, 0 ; $7e - palette_pointer Palette127, 1, 0 ; $7f - palette_pointer Palette128, 1, 0 ; $80 - palette_pointer Palette129, 1, 0 ; $81 - palette_pointer Palette130, 1, 0 ; $82 - palette_pointer Palette131, 1, 0 ; $83 - palette_pointer Palette132, 1, 0 ; $84 - palette_pointer Palette133, 1, 0 ; $85 - palette_pointer Palette134, 1, 0 ; $86 - palette_pointer Palette135, 1, 0 ; $87 - palette_pointer Palette136, 1, 0 ; $88 - palette_pointer Palette137, 1, 0 ; $89 - palette_pointer Palette138, 1, 0 ; $8a - palette_pointer Palette139, 1, 0 ; $8b - palette_pointer Palette140, 1, 0 ; $8c - palette_pointer Palette141, 1, 0 ; $8d - palette_pointer Palette142, 1, 0 ; $8e - palette_pointer Palette143, 1, 0 ; $8f - palette_pointer Palette144, 1, 0 ; $90 - palette_pointer Palette145, 1, 0 ; $91 - palette_pointer Palette146, 1, 0 ; $92 - palette_pointer Palette147, 1, 0 ; $93 - palette_pointer Palette148, 1, 0 ; $94 - palette_pointer Palette149, 1, 0 ; $95 - palette_pointer Palette150, 1, 0 ; $96 - palette_pointer Palette151, 1, 0 ; $97 - palette_pointer Palette152, 1, 0 ; $98 - palette_pointer Palette153, 1, 0 ; $99 - palette_pointer Palette154, 1, 0 ; $9a - palette_pointer Palette155, 1, 0 ; $9b - palette_pointer Palette156, 1, 0 ; $9c - palette_pointer Palette157, 1, 0 ; $9d - palette_pointer Palette158, 1, 0 ; $9e - palette_pointer Palette159, 1, 0 ; $9f - palette_pointer Palette160, 1, 0 ; $a0 - - INCROM $8191b, $83c4c + palette_pointer Palette0, 8, 1 ; PALETTE_0 + palette_pointer Palette1, 8, 0 ; PALETTE_1 + palette_pointer Palette2, 8, 0 ; PALETTE_2 + palette_pointer Palette3, 8, 0 ; PALETTE_3 + palette_pointer Palette4, 8, 0 ; PALETTE_4 + palette_pointer Palette5, 8, 0 ; PALETTE_5 + palette_pointer Palette6, 8, 0 ; PALETTE_6 + palette_pointer Palette7, 8, 0 ; PALETTE_7 + palette_pointer Palette8, 8, 0 ; PALETTE_8 + palette_pointer Palette9, 8, 0 ; PALETTE_9 + palette_pointer Palette10, 8, 0 ; PALETTE_10 + palette_pointer Palette11, 8, 0 ; PALETTE_11 + palette_pointer Palette12, 8, 0 ; PALETTE_12 + palette_pointer Palette13, 8, 0 ; PALETTE_13 + palette_pointer Palette14, 8, 0 ; PALETTE_14 + palette_pointer Palette15, 8, 0 ; PALETTE_15 + palette_pointer Palette16, 8, 0 ; PALETTE_16 + palette_pointer Palette17, 8, 0 ; PALETTE_17 + palette_pointer Palette18, 8, 0 ; PALETTE_18 + palette_pointer Palette19, 8, 0 ; PALETTE_19 + palette_pointer Palette20, 8, 0 ; PALETTE_20 + palette_pointer Palette21, 8, 0 ; PALETTE_21 + palette_pointer Palette22, 8, 0 ; PALETTE_22 + palette_pointer Palette23, 8, 0 ; PALETTE_23 + palette_pointer Palette24, 8, 0 ; PALETTE_24 + palette_pointer Palette25, 8, 0 ; PALETTE_25 + palette_pointer Palette26, 8, 0 ; PALETTE_26 + palette_pointer Palette27, 8, 0 ; PALETTE_27 + palette_pointer Palette28, 8, 0 ; PALETTE_28 + palette_pointer Palette29, 8, 2 ; PALETTE_29 + palette_pointer Palette30, 8, 2 ; PALETTE_30 + palette_pointer Palette31, 1, 1 ; PALETTE_31 + palette_pointer Palette32, 1, 1 ; PALETTE_32 + palette_pointer Palette33, 1, 1 ; PALETTE_33 + palette_pointer Palette34, 1, 1 ; PALETTE_34 + palette_pointer Palette35, 1, 1 ; PALETTE_35 + palette_pointer Palette36, 1, 1 ; PALETTE_36 + palette_pointer Palette37, 1, 1 ; PALETTE_37 + palette_pointer Palette38, 1, 1 ; PALETTE_38 + palette_pointer Palette39, 1, 1 ; PALETTE_39 + palette_pointer Palette40, 1, 1 ; PALETTE_40 + palette_pointer Palette41, 1, 1 ; PALETTE_41 + palette_pointer Palette42, 1, 1 ; PALETTE_42 + palette_pointer Palette43, 1, 1 ; PALETTE_43 + palette_pointer Palette44, 1, 1 ; PALETTE_44 + palette_pointer Palette45, 1, 1 ; PALETTE_45 + palette_pointer Palette46, 1, 1 ; PALETTE_46 + palette_pointer Palette47, 1, 1 ; PALETTE_47 + palette_pointer Palette48, 1, 1 ; PALETTE_48 + palette_pointer Palette49, 1, 1 ; PALETTE_49 + palette_pointer Palette50, 1, 1 ; PALETTE_50 + palette_pointer Palette51, 1, 1 ; PALETTE_51 + palette_pointer Palette52, 1, 1 ; PALETTE_52 + palette_pointer Palette53, 1, 1 ; PALETTE_53 + palette_pointer Palette54, 1, 1 ; PALETTE_54 + palette_pointer Palette55, 1, 1 ; PALETTE_55 + palette_pointer Palette56, 1, 1 ; PALETTE_56 + palette_pointer Palette57, 1, 1 ; PALETTE_57 + palette_pointer Palette58, 1, 1 ; PALETTE_58 + palette_pointer Palette59, 1, 1 ; PALETTE_59 + palette_pointer Palette60, 1, 1 ; PALETTE_60 + palette_pointer Palette61, 1, 1 ; PALETTE_61 + palette_pointer Palette62, 1, 1 ; PALETTE_62 + palette_pointer Palette63, 1, 1 ; PALETTE_63 + palette_pointer Palette64, 1, 1 ; PALETTE_64 + palette_pointer Palette65, 1, 1 ; PALETTE_65 + palette_pointer Palette66, 1, 1 ; PALETTE_66 + palette_pointer Palette67, 1, 1 ; PALETTE_67 + palette_pointer Palette68, 1, 1 ; PALETTE_68 + palette_pointer Palette69, 1, 1 ; PALETTE_69 + palette_pointer Palette70, 1, 1 ; PALETTE_70 + palette_pointer Palette71, 1, 1 ; PALETTE_71 + palette_pointer Palette72, 1, 1 ; PALETTE_72 + palette_pointer Palette73, 1, 1 ; PALETTE_73 + palette_pointer Palette74, 1, 1 ; PALETTE_74 + palette_pointer Palette75, 1, 1 ; PALETTE_75 + palette_pointer Palette76, 1, 1 ; PALETTE_76 + palette_pointer Palette77, 1, 1 ; PALETTE_77 + palette_pointer Palette78, 1, 1 ; PALETTE_78 + palette_pointer Palette79, 1, 1 ; PALETTE_79 + palette_pointer Palette80, 1, 1 ; PALETTE_80 + palette_pointer Palette81, 1, 1 ; PALETTE_81 + palette_pointer Palette82, 1, 1 ; PALETTE_82 + palette_pointer Palette83, 1, 1 ; PALETTE_83 + palette_pointer Palette84, 1, 1 ; PALETTE_84 + palette_pointer Palette85, 1, 1 ; PALETTE_85 + palette_pointer Palette86, 1, 1 ; PALETTE_86 + palette_pointer Palette87, 1, 1 ; PALETTE_87 + palette_pointer Palette88, 1, 1 ; PALETTE_88 + palette_pointer Palette89, 1, 1 ; PALETTE_89 + palette_pointer Palette90, 1, 1 ; PALETTE_90 + palette_pointer Palette91, 1, 1 ; PALETTE_91 + palette_pointer Palette92, 1, 1 ; PALETTE_92 + palette_pointer Palette93, 1, 1 ; PALETTE_93 + palette_pointer Palette94, 8, 0 ; PALETTE_94 + palette_pointer Palette95, 8, 0 ; PALETTE_95 + palette_pointer Palette96, 8, 0 ; PALETTE_96 + palette_pointer Palette97, 8, 0 ; PALETTE_97 + palette_pointer Palette98, 8, 0 ; PALETTE_98 + palette_pointer Palette99, 8, 0 ; PALETTE_99 + palette_pointer Palette100, 8, 0 ; PALETTE_100 + palette_pointer Palette101, 7, 0 ; PALETTE_101 + palette_pointer Palette102, 7, 0 ; PALETTE_102 + palette_pointer Palette103, 7, 0 ; PALETTE_103 + palette_pointer Palette104, 7, 0 ; PALETTE_104 + palette_pointer Palette105, 7, 0 ; PALETTE_105 + palette_pointer Palette106, 7, 0 ; PALETTE_106 + palette_pointer Palette107, 7, 0 ; PALETTE_107 + palette_pointer Palette108, 0, 1 ; PALETTE_108 + palette_pointer Palette109, 0, 1 ; PALETTE_109 + palette_pointer Palette110, 0, 0 ; PALETTE_110 + palette_pointer Palette111, 8, 1 ; PALETTE_111 + palette_pointer Palette112, 8, 1 ; PALETTE_112 + palette_pointer Palette113, 8, 1 ; PALETTE_113 + palette_pointer Palette114, 4, 2 ; PALETTE_114 + palette_pointer Palette115, 4, 2 ; PALETTE_115 + palette_pointer Palette116, 4, 2 ; PALETTE_116 + palette_pointer Palette117, 1, 0 ; PALETTE_117 + palette_pointer Palette118, 6, 0 ; PALETTE_118 + palette_pointer Palette119, 1, 0 ; PALETTE_119 + palette_pointer Palette120, 1, 0 ; PALETTE_120 + palette_pointer Palette121, 1, 0 ; PALETTE_121 + palette_pointer Palette122, 1, 0 ; PALETTE_122 + palette_pointer Palette123, 1, 0 ; PALETTE_123 + palette_pointer Palette124, 1, 0 ; PALETTE_124 + palette_pointer Palette125, 1, 0 ; PALETTE_125 + palette_pointer Palette126, 1, 0 ; PALETTE_126 + palette_pointer Palette127, 1, 0 ; PALETTE_127 + palette_pointer Palette128, 1, 0 ; PALETTE_128 + palette_pointer Palette129, 1, 0 ; PALETTE_129 + palette_pointer Palette130, 1, 0 ; PALETTE_130 + palette_pointer Palette131, 1, 0 ; PALETTE_131 + palette_pointer Palette132, 1, 0 ; PALETTE_132 + palette_pointer Palette133, 1, 0 ; PALETTE_133 + palette_pointer Palette134, 1, 0 ; PALETTE_134 + palette_pointer Palette135, 1, 0 ; PALETTE_135 + palette_pointer Palette136, 1, 0 ; PALETTE_136 + palette_pointer Palette137, 1, 0 ; PALETTE_137 + palette_pointer Palette138, 1, 0 ; PALETTE_138 + palette_pointer Palette139, 1, 0 ; PALETTE_139 + palette_pointer Palette140, 1, 0 ; PALETTE_140 + palette_pointer Palette141, 1, 0 ; PALETTE_141 + palette_pointer Palette142, 1, 0 ; PALETTE_142 + palette_pointer Palette143, 1, 0 ; PALETTE_143 + palette_pointer Palette144, 1, 0 ; PALETTE_144 + palette_pointer Palette145, 1, 0 ; PALETTE_145 + palette_pointer Palette146, 1, 0 ; PALETTE_146 + palette_pointer Palette147, 1, 0 ; PALETTE_147 + palette_pointer Palette148, 1, 0 ; PALETTE_148 + palette_pointer Palette149, 1, 0 ; PALETTE_149 + palette_pointer Palette150, 1, 0 ; PALETTE_150 + palette_pointer Palette151, 1, 0 ; PALETTE_151 + palette_pointer Palette152, 1, 0 ; PALETTE_152 + palette_pointer Palette153, 1, 0 ; PALETTE_153 + palette_pointer Palette154, 1, 0 ; PALETTE_154 + palette_pointer Palette155, 1, 0 ; PALETTE_155 + palette_pointer Palette156, 1, 0 ; PALETTE_156 + palette_pointer Palette157, 1, 0 ; PALETTE_157 + palette_pointer Palette158, 1, 0 ; PALETTE_158 + palette_pointer Palette159, 1, 0 ; PALETTE_159 + palette_pointer Palette160, 1, 0 ; PALETTE_160 + +OverworldMapTilemap:: ; 8191b (20:591b) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map0.bin" + +OverworldMapCGBTilemap:: ; 81a22 (20:5a22) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map1.bin" + +MasonLaboratoryTilemap:: ; 81c13 (20:5c13) + db $1c ; width + db $1e ; height + dw $5d11 + db $00 + + INCBIN "data/maps/map2.bin" + +MasonLaboratoryCGBTilemap:: ; 81d2e (20:5d2e) + db $1c ; width + db $1e ; height + dw $5eb4 + db $01 + + INCBIN "data/maps/map3.bin" + +Unused1Tilemap:: ; 81ed1 (20:5ed1) + db $04 ; width + db $06 ; height + dw $5ef0 + db $00 + + INCBIN "data/maps/map4.bin" + +Unused2Tilemap:: ; 81ef5 (20:5ef5) + db $04 ; width + db $06 ; height + dw $5f21 + db $01 + + INCBIN "data/maps/map5.bin" + +DeckMachineRoomTilemap:: ; 81f26 (20:5f26) + db $18 ; width + db $1e ; height + dw $5fd3 + db $00 + + INCBIN "data/maps/map6.bin" + +DeckMachineRoomCGBTilemap:: ; 81feb (20:5feb) + db $18 ; width + db $1e ; height + dw $612b + db $01 + + INCBIN "data/maps/map7.bin" + +Unused3Tilemap:: ; 82143 (20:6143) + db $04 ; width + db $01 ; height + dw $614d + db $00 + + INCBIN "data/maps/map8.bin" + +Unused4Tilemap:: ; 82150 (20:6150) + db $04 ; width + db $01 ; height + dw $615d + db $01 + + INCBIN "data/maps/map9.bin" + +IshiharaTilemap:: ; 82160 (20:6160) + db $14 ; width + db $18 ; height + dw $620e + db $00 + + INCBIN "data/maps/map10.bin" + +IshiharaCGBTilemap:: ; 82222 (20:6222) + db $14 ; width + db $18 ; height + dw $6322 + db $01 + + INCBIN "data/maps/map11.bin" + +FightingClubEntranceTilemap:: ; 82336 (20:6336) + db $14 ; width + db $12 ; height + dw $63ec + db $00 + + INCBIN "data/maps/map12.bin" + +FightingClubEntranceCGBTilemap:: ; 82400 (20:6400) + db $14 ; width + db $12 ; height + dw $6509 + db $01 + + INCBIN "data/maps/map13.bin" + +RockClubEntranceTilemap:: ; 8251d (20:651d) + db $14 ; width + db $12 ; height + dw $65d3 + db $00 + + INCBIN "data/maps/map14.bin" + +RockClubEntranceCGBTilemap:: ; 825e7 (20:65e7) + db $14 ; width + db $12 ; height + dw $66f0 + db $01 + + INCBIN "data/maps/map15.bin" + +WaterClubEntranceTilemap:: ; 82704 (20:6704) + db $14 ; width + db $12 ; height + dw $67ba + db $00 + + INCBIN "data/maps/map16.bin" + +WaterClubEntranceCGBTilemap:: ; 827ce (20:67ce) + db $14 ; width + db $12 ; height + dw $68d7 + db $01 + + INCBIN "data/maps/map17.bin" + +LightningClubEntranceTilemap:: ; 828eb (20:68eb) + db $14 ; width + db $12 ; height + dw $69a1 + db $00 + + INCBIN "data/maps/map18.bin" + +LightningClubEntranceCGBTilemap:: ; 829b5 (20:69b5) + db $14 ; width + db $12 ; height + dw $6abe + db $01 + + INCBIN "data/maps/map19.bin" + +GrassClubEntranceTilemap:: ; 82ad2 (20:6ad2) + db $14 ; width + db $12 ; height + dw $6b88 + db $00 + + INCBIN "data/maps/map20.bin" + +GrassClubEntranceCGBTilemap:: ; 82b9c (20:6b9c) + db $14 ; width + db $12 ; height + dw $6ca5 + db $01 + + INCBIN "data/maps/map21.bin" + +PsychicClubEntranceTilemap:: ; 82cb9 (20:6cb9) + db $14 ; width + db $12 ; height + dw $6d6f + db $00 + + INCBIN "data/maps/map22.bin" + +PsychicClubEntranceCGBTilemap:: ; 82d83 (20:6d83) + db $14 ; width + db $12 ; height + dw $6e8c + db $01 + + INCBIN "data/maps/map23.bin" + +ScienceClubEntranceTilemap:: ; 82ea0 (20:6ea0) + db $14 ; width + db $12 ; height + dw $6f56 + db $00 + + INCBIN "data/maps/map24.bin" + +ScienceClubEntranceCGBTilemap:: ; 82f6a (20:6f6a) + db $14 ; width + db $12 ; height + dw $7073 + db $01 + + INCBIN "data/maps/map25.bin" + +FireClubEntranceTilemap:: ; 83087 (20:7087) + db $14 ; width + db $12 ; height + dw $713d + db $00 + + INCBIN "data/maps/map26.bin" + +FireClubEntranceCGBTilemap:: ; 83151 (20:7151) + db $14 ; width + db $12 ; height + dw $725a + db $01 + + INCBIN "data/maps/map27.bin" + +ChallengeHallEntranceTilemap:: ; 8326e (20:726e) + db $14 ; width + db $12 ; height + dw $730d + db $00 + + INCBIN "data/maps/map28.bin" + +ChallengeHallEntranceCGBTilemap:: ; 83321 (20:7321) + db $14 ; width + db $12 ; height + dw $7410 + db $01 + + INCBIN "data/maps/map29.bin" + +ClubLobbyTilemap:: ; 83424 (20:7424) + db $1c ; width + db $1a ; height + dw $7529 + db $00 + + INCBIN "data/maps/map30.bin" + +ClubLobbyCGBTilemap:: ; 83545 (20:7545) + db $1c ; width + db $1a ; height + dw $76bf + db $01 + + INCBIN "data/maps/map31.bin" + +FightingClubTilemap:: ; 836db (20:76db) + db $18 ; width + db $12 ; height + dw $777b + db $00 + + INCBIN "data/maps/map32.bin" + +FightingClubCGBTilemap:: ; 8378c (20:778c) + db $18 ; width + db $12 ; height + dw $787c + db $01 + + INCBIN "data/maps/map33.bin" + +RockClubTilemap:: ; 8388d (20:788d) + db $1c ; width + db $1e ; height + dw $79b5 + db $00 + + INCBIN "data/maps/map34.bin" + +RockClubCGBTilemap:: ; 839d6 (20:79d6) + db $1c ; width + db $1e ; height + dw $7bd0 + db $01 + + INCBIN "data/maps/map35.bin" + +Unused5Tilemap:: ; 83bf1 (20:7bf1) + db $04 ; width + db $03 ; height + dw $7c00 + db $00 + + INCBIN "data/maps/map52.bin" + +Unused6Tilemap:: ; 83c03 (20:7c03) + db $04 ; width + db $03 ; height + dw $7c17 + db $01 + + INCBIN "data/maps/map53.bin" + +Unused7Tilemap:: ; 83c1a (20:7c1a) + db $04 ; width + db $03 ; height + dw $7c23 + db $00 + + INCBIN "data/maps/map56.bin" + +Unused8Tilemap:: ; 83c26 (20:7c26) + db $04 ; width + db $03 ; height + dw $7c33 + db $01 + + INCBIN "data/maps/map57.bin" + +GrassMedalTilemap:: ; 83c36 (20:7c36) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map62.bin" AnimData1:: ; 83c4c (20:7c4c) frame_table AnimFrameTable0 @@ -1411,4 +1998,6 @@ AnimData1:: ; 83c4c (20:7c4c) Palette110:: ; 83c5b (20:7c5b) db $00, $00 - INCROM $83c5d, $84000 +rept $3a3 + db $ff +endr diff --git a/src/engine/home.asm b/src/engine/home.asm index 567b3d0..13089d7 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -1519,7 +1519,13 @@ UpdateRNGSources: ; 089b (0:089b) pop hl ret -Func_08bf: ; 08bf (0:08bf) +; initilizes variables used to decompress +; BG Map data in DecompressBGMap +; de points to the source of compressed data +; b is used as the HIGH byte of the +; WRAM address to write to ($100 bytes of buffer space) +; also clears this $100 byte space +InitBGMapDecompression: ; 08bf (0:08bf) ld hl, wcad6 ld [hl], e inc hl @@ -1528,70 +1534,90 @@ Func_08bf: ; 08bf (0:08bf) ld [hl], $1 inc hl xor a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], b + ld [hli], a ; wcad9 + ld [hli], a ; wcada + ld [hli], a ; wcadb + ld [hli], a ; wcadc + ld [hl], b ; wcadd inc hl - ld [hli], a ; 0 - ld [hl], $ef + ld [hli], a ; wcade + ld [hl], $ef ; wcadf + +; clear buffer ld h, b - ld l, $0 + ld l, LOW(wc000) xor a -.asm_8d9 +.loop ld [hl], a inc l - jr nz, .asm_8d9 + jr nz, .loop ret -Func_08de: ; 08de (0:08de) +; decompresses BG Map data +; uses values initialized by InitBGMapDecompression +; wcad6 holds the pointer for compressed source +; input: +; bc = map width +; de = buffer to place decompressed data +DecompressBGMap: ; 08de (0:08de) push hl push de -.asm_8e0 +.loop push bc - call Func_08ef + call .Decompress ld [de], a inc de pop bc dec bc ld a, c or b - jr nz, .asm_8e0 + jr nz, .loop pop de pop hl ret -Func_08ef: ; 08ef (0:08ef) +; instructions start with a byte stored in wcad9 +; its bits are read from higher to lower bit +; wcad8 stores the current bit being read +; bit set: +; - 1 byte read and copied literally +; bit not set: +; - 2 bytes read WW XY ZZ, byte in pos WW +; copied (X + 1) times, then in pos ZZ +; copied (Y + 1) times +.Decompress: ; 08ef (0:08ef) ld hl, wcadc ld a, [hl] or a - jr z, .asm_902 + jr z, .read_instruction + +; still repeating byte dec [hl] inc hl -.asm_8f8 - ld b, [hl] +.repeat_byte + ld b, [hl] ; wcadd inc hl - ld c, [hl] + ld c, [hl] ; wcade inc [hl] inc hl ld a, [bc] - ld c, [hl] + ld c, [hl] ; wcadf inc [hl] ld [bc], a ret -.asm_902 + +.read_instruction ld hl, wcad6 ld c, [hl] inc hl ld b, [hl] - inc hl + inc hl ; wcad8 dec [hl] - inc hl + inc hl ; wcad9 jr nz, .asm_914 - dec hl - ld [hl], $8 - inc hl + dec hl ; wcad8 + ld [hl], $8 ; number of bits + inc hl ; wcad9 ld a, [bc] inc bc ld [hl], a @@ -1600,6 +1626,8 @@ Func_08ef: ; 08ef (0:08ef) ld a, [bc] inc bc jr nc, .asm_92a + +; copy 1 byte literally ld hl, wcad6 ld [hl], c inc hl @@ -1608,10 +1636,11 @@ Func_08ef: ; 08ef (0:08ef) ld b, [hl] inc hl inc hl - ld c, [hl] + ld c, [hl] ; wcadf inc [hl] ld [bc], a ret + .asm_92a ld [wcade], a ld hl, wcada @@ -1621,23 +1650,24 @@ Func_08ef: ; 08ef (0:08ef) inc hl ld a, [bc] inc bc - ld [hli], a + ld [hli], a ; wcadb swap a .asm_93c and $f - inc a - ld [hli], a + inc a ; number of times to repeat + ld [hli], a ; wcadc push hl ld hl, wcad6 ld [hl], c inc hl ld [hl], b pop hl - jr .asm_8f8 + jr .repeat_byte + .asm_94a res 0, [hl] inc hl - ld a, [hli] + ld a, [hli] ; wcadb jr .asm_93c ; set attributes for [hl] sprites starting from wOAM + [wOAMOffset] / 4 @@ -11204,12 +11234,17 @@ ResetDoFrameFunction: ; 3bdb (0:3bdb) pop hl ret -Func_3be4: ; 3be4 (0:3be4) +; decompresses BG Map data from a given bank +; uses values initialized by InitBGMapDecompression +; input: +; bc = map width +; de = buffer to place decompressed data +DecompressBGMapFromBank: ; 3be4 (0:3be4) ldh a, [hBankROM] push af ld a, [wTempPointerBank] call BankswitchROM - call Func_08de + call DecompressBGMap pop af call BankswitchROM ret @@ -11266,7 +11301,8 @@ FillMemoryWithDE: ; 3c1f (0:3c1f) pop hl ret -Func_3c2d: ; 3c2d (0:3c2d) +; gets far byte a:hl, outputs value in a +GetFarByte: ; 3c2d (0:3c2d) push hl push af ldh a, [hBankROM] @@ -11634,7 +11670,7 @@ Func_3e10: ; 3e10 (0:3e10) ; fallthrough Func_3e17: ; 3e17 (0:3e17) - ld [wd131], a + ld [wCurTilemap], a ldh a, [hBankROM] push af ld a, BANK(Func_12fc6) diff --git a/src/gfx.asm b/src/gfx.asm index 37b92d4..e27c140 100644 --- a/src/gfx.asm +++ b/src/gfx.asm @@ -47,22 +47,541 @@ endr SECTION "Gfx 3", ROMX - INCROM $84000, $87828 +WaterClubTilemap:: ; 84000 (21:4000) + db $1c ; width + db $20 ; height + dw $4164 + db $00 -IshiharaTilesetGfx: ; 87828 (21:7828) - dw $4d + INCBIN "data/maps/map36.bin" + +WaterClubCGBTilemap:: ; 84188 (21:4188) + db $1c ; width + db $20 ; height + dw $4397 + db $01 + + INCBIN "data/maps/map37.bin" + +LightningClubTilemap:: ; 843bb (21:43bb) + db $1c ; width + db $20 ; height + dw $4511 + db $00 + + INCBIN "data/maps/map38.bin" + +LightningClubCGBTilemap:: ; 84533 (21:4533) + db $1c ; width + db $20 ; height + dw $470c + db $01 + + INCBIN "data/maps/map39.bin" + +GrassClubTilemap:: ; 8472e (21:472e) + db $1c ; width + db $20 ; height + dw $48b4 + db $00 + + INCBIN "data/maps/map40.bin" + +GrassClubCGBTilemap:: ; 848d8 (21:48d8) + db $1c ; width + db $20 ; height + dw $4b4f + db $01 + + INCBIN "data/maps/map41.bin" + +PsychicClubTilemap:: ; 84b73 (21:4b73) + db $1c ; width + db $1c ; height + dw $4c50 + db $00 + + INCBIN "data/maps/map42.bin" + +PsychicClubCGBTilemap:: ; 84c6f (21:4c6f) + db $1c ; width + db $1c ; height + dw $4ddf + db $01 + + INCBIN "data/maps/map43.bin" + +ScienceClubTilemap:: ; 84dfe (21:4dfe) + db $1c ; width + db $20 ; height + dw $4efe + db $00 + + INCBIN "data/maps/map44.bin" + +ScienceClubCGBTilemap:: ; 84f1d (21:4f1d) + db $1c ; width + db $20 ; height + dw $5097 + db $01 + + INCBIN "data/maps/map45.bin" + +FireClubTilemap:: ; 850b6 (21:50b6) + db $1c ; width + db $20 ; height + dw $5175 + db $00 + + INCBIN "data/maps/map46.bin" + +FireClubCGBTilemap:: ; 85191 (21:5191) + db $1c ; width + db $20 ; height + dw $52f9 + db $01 + + INCBIN "data/maps/map47.bin" + +ChallengeHallTilemap:: ; 85315 (21:5315) + db $20 ; width + db $20 ; height + dw $5484 + db $00 + + INCBIN "data/maps/map48.bin" + +ChallengeHallCGBTilemap:: ; 854b3 (21:54b3) + db $20 ; width + db $20 ; height + dw $56db + db $01 + + INCBIN "data/maps/map49.bin" + +PokemonDomeEntranceTilemap:: ; 8570a (21:570a) + db $20 ; width + db $12 ; height + dw $57ba + db $00 + + INCBIN "data/maps/map50.bin" + +PokemonDomeEntranceCGBTilemap:: ; 857ce (21:57ce) + db $20 ; width + db $12 ; height + dw $58db + db $01 + + INCBIN "data/maps/map51.bin" + +PokemonDomeTilemap:: ; 858ef (21:58ef) + db $20 ; width + db $20 ; height + dw $5a58 + db $00 + + INCBIN "data/maps/map54.bin" + +PokemonDomeGBTilemap:: ; 85a79 (21:5a79) + db $20 ; width + db $20 ; height + dw $5cc1 + db $01 + + INCBIN "data/maps/map55.bin" + +HallOfHonorTilemap:: ; 85ce2 (21:5ce2) + db $18 ; width + db $1a ; height + dw $5ddc + db $00 + + INCBIN "data/maps/map58.bin" + +HallOfHonorCGBTilemap:: ; 85df4 (21:5df4) + db $18 ; width + db $1a ; height + dw $5f64 + db $01 + + INCBIN "data/maps/map59.bin" + +CardPop1Tilemap:: ; 85f7c (21:5f7c) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map60.bin" + +CardPop1CGBTilemap:: ; 8607f (21:607f) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map61.bin" + +ScienceMedalTilemap:: ; 8617d (21:617d) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map63.bin" + +FireMedalTilemap:: ; 86193 (21:6193) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map64.bin" + +WaterMedalTilemap:: ; 861a9 (21:61a9) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map65.bin" + +LightningMedalTilemap:: ; 861bf (21:61bf) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map66.bin" + +FightingMedalTilemap:: ; 861d5 (21:61d5) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map67.bin" + +RockMedalTilemap:: ; 861eb (21:61eb) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map68.bin" + +PsychicMedalTilemap:: ; 86201 (21:6201) + db $03 ; width + db $03 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map69.bin" + +CardPop2Tilemap:: ; 86217 (21:6217) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map70.bin" + +CardPop2CGBTilemap:: ; 862da (21:62da) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map71.bin" + +CardPop2Unknown1Tilemap:: ; 86364 (21:6364) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map72.bin" + +CardPop2Unknown2Tilemap:: ; 86443 (21:6443) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map73.bin" + +CardPop3Tilemap:: ; 864df (21:64df) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map74.bin" + +CardPop3CGBTilemap:: ; 865b5 (21:65b5) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map75.bin" + +ColosseumTilemap:: ; 86647 (21:6647) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map76.bin" + +ColosseumCGBTilemap:: ; 866b8 (21:66b8) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map77.bin" + +EvolutionTilemap:: ; 8673e (21:673e) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map78.bin" + +EvolutionCGBTilemap:: ; 867af (21:67af) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map79.bin" + +MysteryTilemap:: ; 86833 (21:6833) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map80.bin" + +MysteryCGBTilemap:: ; 868a4 (21:68a4) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map81.bin" + +LaboratoryTilemap:: ; 86925 (21:6925) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map82.bin" + +LaboratoryCGBTilemap:: ; 86996 (21:6996) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map83.bin" + +CharizardIntroTilemap:: ; 86a14 (21:6a14) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map84.bin" + +CharizardIntroCGBTilemap:: ; 86a85 (21:6a85) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map85.bin" + +ScytherIntroTilemap:: ; 86b28 (21:6b28) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map86.bin" + +ScytherIntroCGBTilemap:: ; 86b99 (21:6b99) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map87.bin" + +AerodactylIntroTilemap:: ; 86c34 (21:6c34) + db $08 ; width + db $0c ; height + dw $0000 + db $00 + + INCBIN "data/maps/map88.bin" + +AerodactylIntroCGBTilemap:: ; 86ca5 (21:6ca5) + db $08 ; width + db $0c ; height + dw $0000 + db $01 + + INCBIN "data/maps/map89.bin" + +TitleScreen1Tilemap:: ; 86d37 (21:6d37) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map90.bin" + +TitleScreen2Tilemap:: ; 86dcc (21:6dcc) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map91.bin" + +SolidTiles1Tilemap:: ; 86e8a (21:6e8a) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map92.bin" + +SolidTiles2Tilemap:: ; 86f18 (21:6f18) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map93.bin" + +SolidTiles3Tilemap:: ; 86fc0 (21:6fc0) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map94.bin" + +TitleScreen3Tilemap:: ; 8704f (21:704f) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map95.bin" + +TitleScreen4Tilemap:: ; 871a5 (21:71a5) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map96.bin" + +SolidTiles4Tilemap:: ; 87397 (21:7397) + db $08 ; width + db $04 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map97.bin" + +PlayerTilemap:: ; 873b7 (21:73b7) + db $06 ; width + db $06 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map98.bin" + +OpponentTilemap:: ; 873e5 (21:73e5) + db $06 ; width + db $06 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map99.bin" + +TitleScreen5Tilemap:: ; 87413 (21:7413) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map100.bin" + +TitleScreen6Tilemap:: ; 87538 (21:7538) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map101.bin" + +CopyrightTilemap:: ; 8769f (21:769f) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map102.bin" + +CopyrightCGBTilemap:: ; 876f6 (21:76f6) + db $14 ; width + db $12 ; height + dw $0000 + db $01 + + INCBIN "data/maps/map103.bin" + +NintendoTilemap:: ; 8777c (21:777c) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map104.bin" + +CompaniesTilemap:: ; 877c4 (21:77c4) + db $14 ; width + db $12 ; height + dw $0000 + db $00 + + INCBIN "data/maps/map105.bin" + + +IshiharaTilesetGfx:: ; 87828 (21:7828) + dw 77 INCBIN "gfx/tilesets/ishihara.2bpp" -SolidTiles1: ; 87cfa (21:7cfa) - dw $4 +SolidTiles1:: ; 87cfa (21:7cfa) + dw 4 INCBIN "gfx/solid_tiles.2bpp" -SolidTiles2: ; 87d3c (21:7d3c) - dw $4 +SolidTiles2:: ; 87d3c (21:7d3c) + dw 4 INCBIN "gfx/solid_tiles.2bpp" -PlayerGfx: ; 87d7e (21:7d7e) - dw $24 +PlayerGfx:: ; 87d7e (21:7d7e) + dw 36 INCBIN "gfx/duelists/player.2bpp" Duel55Gfx:: ; 87fc0 (21:7fc0) @@ -82,36 +601,36 @@ AnimData12:: ; 87ff4 (21:7ff4) SECTION "Gfx 4", ROMX -OverworldMapTiles: ; 88000 (22:4000) - dw $c1 +OverworldMapTiles:: ; 88000 (22:4000) + dw 193 INCBIN "gfx/overworld_map.2bpp" -MasonLaboratoryTilesetGfx: ; 88c12 (22:4c12) - dw $97 +MasonLaboratoryTilesetGfx:: ; 88c12 (22:4c12) + dw 151 INCBIN "gfx/tilesets/masonlaboratory.2bpp" -ClubEntranceTilesetGfx: ; 89584 (22:5584) - dw $81 +ClubEntranceTilesetGfx:: ; 89584 (22:5584) + dw 129 INCBIN "gfx/tilesets/clubentrance.2bpp" -ClubLobbyTilesetGfx: ; 89d96 (22:5d96) - dw $78 +ClubLobbyTilesetGfx:: ; 89d96 (22:5d96) + dw 120 INCBIN "gfx/tilesets/clublobby.2bpp" -FightingClubTilesetGfx: ; 8a518 (22:6518) - dw $63 +FightingClubTilesetGfx:: ; 8a518 (22:6518) + dw 99 INCBIN "gfx/tilesets/fightingclub.2bpp" -RockClubTilesetGfx: ; 8ab4a (22:6b4a) - dw $3c +RockClubTilesetGfx:: ; 8ab4a (22:6b4a) + dw 60 INCBIN "gfx/tilesets/rockclub.2bpp" -WaterClubTilesetGfx: ; 8af0c (22:6f0c) - dw $a1 +WaterClubTilesetGfx:: ; 8af0c (22:6f0c) + dw 161 INCBIN "gfx/tilesets/waterclub.2bpp" -GrassClubTilesetGfx: ; 8b91e (22:791e) - dw $57 +GrassClubTilesetGfx:: ; 8b91e (22:791e) + dw 87 INCBIN "gfx/tilesets/grassclub.2bpp" OWPlayerGfx:: ; 8be90 (22:7e90) @@ -140,40 +659,40 @@ endr SECTION "Gfx 5", ROMX -LightningClubTilesetGfx: ; 8c000 (23:4000) - dw $83 +LightningClubTilesetGfx:: ; 8c000 (23:4000) + dw 131 INCBIN "gfx/tilesets/lightningclub.2bpp" -PsychicClubTilesetGfx: ; 8c832 (23:4832) - dw $3a +PsychicClubTilesetGfx:: ; 8c832 (23:4832) + dw 58 INCBIN "gfx/tilesets/psychicclub.2bpp" -ScienceClubTilesetGfx: ; 8cbd4 (23:4bd4) - dw $52 +ScienceClubTilesetGfx:: ; 8cbd4 (23:4bd4) + dw 82 INCBIN "gfx/tilesets/scienceclub.2bpp" -FireClubTilesetGfx: ; 8d0f6 (23:50f6) - dw $57 +FireClubTilesetGfx:: ; 8d0f6 (23:50f6) + dw 87 INCBIN "gfx/tilesets/fireclub.2bpp" -ChallengeHallTilesetGfx: ; 8d668 (23:5668) - dw $9d +ChallengeHallTilesetGfx:: ; 8d668 (23:5668) + dw 157 INCBIN "gfx/tilesets/challengehall.2bpp" -PokemonDomeEntranceTilesetGfx: ; 8e03a (23:603a) - dw $4e +PokemonDomeEntranceTilesetGfx:: ; 8e03a (23:603a) + dw 78 INCBIN "gfx/tilesets/pokemondomeentrance.2bpp" -PokemonDomeTilesetGfx: ; 8e51c (23:651c) - dw $cf +PokemonDomeTilesetGfx:: ; 8e51c (23:651c) + dw 207 INCBIN "gfx/tilesets/pokemondome.2bpp" -HallOfHonorTilesetGfx: ; 8f20e (23:720e) - dw $79 +HallOfHonorTilesetGfx:: ; 8f20e (23:720e) + dw 121 INCBIN "gfx/tilesets/hallofhonor.2bpp" -MedalGfx: ; 8f9a0 (23:79a0) - dw $48 +MedalGfx:: ; 8f9a0 (23:79a0) + dw 72 INCBIN "gfx/medals.2bpp", $0, $c0 INCBIN "gfx/medals.2bpp", $240, $30 INCBIN "gfx/medals.2bpp", $340, $10 @@ -193,8 +712,8 @@ MedalGfx: ; 8f9a0 (23:79a0) INCBIN "gfx/medals.2bpp", $420, $30 INCBIN "gfx/medals.2bpp", $3f0, $20 -NintendoGfx: ; 8fe22 (23:7e22) - dw $18 +NintendoGfx:: ; 8fe22 (23:7e22) + dw 24 INCBIN "gfx/nintendo.2bpp" Duel58Gfx:: ; 8ffa4 (23:7fa4) @@ -214,48 +733,48 @@ AnimData11:: ; 8fff5 (23:7ff5) SECTION "Gfx 6", ROMX -CardPop1Gfx: ; 90000 (24:4000) - dw $bd +CardPop1Gfx:: ; 90000 (24:4000) + dw 189 INCBIN "gfx/cardpop/cardpop1.2bpp" -CardPop2Gfx: ; 90bd2 (24:4bd2) - dw $6d +CardPop2Gfx:: ; 90bd2 (24:4bd2) + dw 109 INCBIN "gfx/cardpop/cardpop2.2bpp" -CardPop3Gfx: ; 912a4 (24:52a4) - dw $5d +CardPop3Gfx:: ; 912a4 (24:52a4) + dw 93 INCBIN "gfx/cardpop/cardpop3.2bpp" -Colosseum1Gfx: ; 91876 (24:5876) - dw $60 +Colosseum1Gfx:: ; 91876 (24:5876) + dw 96 INCBIN "gfx/booster_packs/colosseum1.2bpp" -Colosseum2Gfx: ; 91e78 (24:5e78) - dw $56 +Colosseum2Gfx:: ; 91e78 (24:5e78) + dw 86 INCBIN "gfx/booster_packs/colosseum2.2bpp" -Evolution1Gfx: ; 923da (24:63da) - dw $60 +Evolution1Gfx:: ; 923da (24:63da) + dw 96 INCBIN "gfx/booster_packs/evolution1.2bpp" -Evolution2Gfx: ; 929dc (24:69dc) - dw $56 +Evolution2Gfx:: ; 929dc (24:69dc) + dw 86 INCBIN "gfx/booster_packs/evolution2.2bpp" -Mystery1Gfx: ; 92f3e (24:6f3e) - dw $60 +Mystery1Gfx:: ; 92f3e (24:6f3e) + dw 96 INCBIN "gfx/booster_packs/mystery1.2bpp" -Mystery2Gfx: ; 93540 (24:7540) - dw $56 +Mystery2Gfx:: ; 93540 (24:7540) + dw 86 INCBIN "gfx/booster_packs/mystery2.2bpp" -RonaldGfx: ; 93aa2 (24:7aa2) - dw $24 +RonaldGfx:: ; 93aa2 (24:7aa2) + dw 36 INCBIN "gfx/duelists/ronald.2bpp" -CopyrightGfx: ; 93ce4 (24:7ce4) - dw $24 +CopyrightGfx:: ; 93ce4 (24:7ce4) + dw 36 INCBIN "gfx/copyright.2bpp" OWClerkGfx:: ; 93f26 (24:7f26) @@ -276,48 +795,48 @@ endr SECTION "Gfx 7", ROMX -Laboratory1Gfx: ; 94000 (25:4000) - dw $60 +Laboratory1Gfx:: ; 94000 (25:4000) + dw 96 INCBIN "gfx/booster_packs/laboratory1.2bpp" -Laboratory2Gfx: ; 94602 (25:4602) - dw $56 +Laboratory2Gfx:: ; 94602 (25:4602) + dw 86 INCBIN "gfx/booster_packs/laboratory2.2bpp" -CharizardIntro1Gfx: ; 94b64 (25:4b64) - dw $60 +CharizardIntro1Gfx:: ; 94b64 (25:4b64) + dw 96 INCBIN "gfx/titlescreen/booster_packs/charizardintro1.2bpp" -CharizardIntro2Gfx: ; 95166 (25:5166) - dw $60 +CharizardIntro2Gfx:: ; 95166 (25:5166) + dw 96 INCBIN "gfx/titlescreen/booster_packs/charizardintro2.2bpp" -ScytherIntro1Gfx: ; 95768 (25:5768) - dw $60 +ScytherIntro1Gfx:: ; 95768 (25:5768) + dw 96 INCBIN "gfx/titlescreen/booster_packs/scytherintro1.2bpp" -ScytherIntro2Gfx: ; 95d6a (25:5d6a) - dw $60 +ScytherIntro2Gfx:: ; 95d6a (25:5d6a) + dw 96 INCBIN "gfx/titlescreen/booster_packs/scytherintro2.2bpp" -AerodactylIntro1Gfx: ; 9636c (25:636c) - dw $60 +AerodactylIntro1Gfx:: ; 9636c (25:636c) + dw 96 INCBIN "gfx/titlescreen/booster_packs/aerodactylintro1.2bpp" -AerodactylIntro2Gfx: ; 9696e (25:696e) - dw $60 +AerodactylIntro2Gfx:: ; 9696e (25:696e) + dw 96 INCBIN "gfx/titlescreen/booster_packs/aerodactylintro2.2bpp" -Titlescreen1Gfx: ; 96f70 (25:6f70) - dw $61 +Titlescreen1Gfx:: ; 96f70 (25:6f70) + dw 97 INCBIN "gfx/titlescreen/titlescreen1.2bpp" -Titlescreen2Gfx: ; 97582 (25:7582) - dw $61 +Titlescreen2Gfx:: ; 97582 (25:7582) + dw 97 INCBIN "gfx/titlescreen/titlescreen2.2bpp" -CompaniesGfx: ; 97b94 (25:7b94) - dw $31 +CompaniesGfx:: ; 97b94 (25:7b94) + dw 49 INCBIN "gfx/companies.2bpp" OWRonaldGfx:: ; 97ea6 (25:7ea6) @@ -336,20 +855,20 @@ endr SECTION "Gfx 8", ROMX -Titlescreen3Gfx: ; 98000 (26:4000) - dw $f4 +Titlescreen3Gfx:: ; 98000 (26:4000) + dw 244 INCBIN "gfx/titlescreen/titlescreen3.2bpp" -Titlescreen4Gfx: ; 98f42 (26:4f42) - dw $13b +Titlescreen4Gfx:: ; 98f42 (26:4f42) + dw 315 INCBIN "gfx/titlescreen/titlescreen4.2bpp" -Titlescreen5Gfx: ; 9a2f4 (26:62f4) - dw $dc +Titlescreen5Gfx:: ; 9a2f4 (26:62f4) + dw 220 INCBIN "gfx/titlescreen/titlescreen5.2bpp" -Titlescreen6Gfx: ; 9b0b6 (26:70b6) - dw $d4 +Titlescreen6Gfx:: ; 9b0b6 (26:70b6) + dw 212 INCBIN "gfx/titlescreen/titlescreen6.2bpp" OWDrMasonGfx:: ; 9bdf8 (26:7df8) @@ -370,116 +889,116 @@ Duel62Gfx:: ; 9bfee (26:7fee) SECTION "Gfx 9", ROMX -SamGfx: ; 9c000 (27:4000) - dw $24 +SamGfx:: ; 9c000 (27:4000) + dw 36 INCBIN "gfx/duelists/sam.2bpp" -ImakuniGfx: ; 9c242 (27:4242) - dw $24 +ImakuniGfx:: ; 9c242 (27:4242) + dw 36 INCBIN "gfx/duelists/imakuni.2bpp" -NikkiGfx: ; 9c484 (27:4484) - dw $24 +NikkiGfx:: ; 9c484 (27:4484) + dw 36 INCBIN "gfx/duelists/nikki.2bpp" -RickGfx: ; 9c6c6 (27:46c6) - dw $24 +RickGfx:: ; 9c6c6 (27:46c6) + dw 36 INCBIN "gfx/duelists/rick.2bpp" -KenGfx: ; 9c908 (27:4908) - dw $24 +KenGfx:: ; 9c908 (27:4908) + dw 36 INCBIN "gfx/duelists/ken.2bpp" -AmyGfx: ; 9cb4a (27:4b4a) - dw $24 +AmyGfx:: ; 9cb4a (27:4b4a) + dw 36 INCBIN "gfx/duelists/amy.2bpp" -IsaacGfx: ; 9cd8c (27:4d8c) - dw $24 +IsaacGfx:: ; 9cd8c (27:4d8c) + dw 36 INCBIN "gfx/duelists/isaac.2bpp" -MitchGfx: ; 9cfce (27:4fce) - dw $24 +MitchGfx:: ; 9cfce (27:4fce) + dw 36 INCBIN "gfx/duelists/mitch.2bpp" -GeneGfx: ; 9d210 (27:5210) - dw $24 +GeneGfx:: ; 9d210 (27:5210) + dw 36 INCBIN "gfx/duelists/gene.2bpp" -MurrayGfx: ; 9d452 (27:5452) - dw $24 +MurrayGfx:: ; 9d452 (27:5452) + dw 36 INCBIN "gfx/duelists/murray.2bpp" -CourtneyGfx: ; 9d694 (27:5694) - dw $24 +CourtneyGfx:: ; 9d694 (27:5694) + dw 36 INCBIN "gfx/duelists/courtney.2bpp" -SteveGfx: ; 9d8d6 (27:58d6) - dw $24 +SteveGfx:: ; 9d8d6 (27:58d6) + dw 36 INCBIN "gfx/duelists/steve.2bpp" -JackGfx: ; 9db18 (27:5b18) - dw $24 +JackGfx:: ; 9db18 (27:5b18) + dw 36 INCBIN "gfx/duelists/jack.2bpp" -RodGfx: ; 9dd5a (27:5d5a) - dw $24 +RodGfx:: ; 9dd5a (27:5d5a) + dw 36 INCBIN "gfx/duelists/rod.2bpp" -JosephGfx: ; 9df9c (27:5f9c) - dw $24 +JosephGfx:: ; 9df9c (27:5f9c) + dw 36 INCBIN "gfx/duelists/joseph.2bpp" -DavidGfx: ; 9e1de (27:61de) - dw $24 +DavidGfx:: ; 9e1de (27:61de) + dw 36 INCBIN "gfx/duelists/david.2bpp" -ErikGfx: ; 9e420 (27:6420) - dw $24 +ErikGfx:: ; 9e420 (27:6420) + dw 36 INCBIN "gfx/duelists/erik.2bpp" -JohnGfx: ; 9e662 (27:6662) - dw $24 +JohnGfx:: ; 9e662 (27:6662) + dw 36 INCBIN "gfx/duelists/john.2bpp" -AdamGfx: ; 9e8a4 (27:68a4) - dw $24 +AdamGfx:: ; 9e8a4 (27:68a4) + dw 36 INCBIN "gfx/duelists/adam.2bpp" -JonathanGfx: ; 9eae6 (27:6ae6) - dw $24 +JonathanGfx:: ; 9eae6 (27:6ae6) + dw 36 INCBIN "gfx/duelists/jonathan.2bpp" -JoshuaGfx: ; 9ed28 (27:6d28) - dw $24 +JoshuaGfx:: ; 9ed28 (27:6d28) + dw 36 INCBIN "gfx/duelists/joshua.2bpp" -NicholasGfx: ; 9ef6a (27:6f6a) - dw $24 +NicholasGfx:: ; 9ef6a (27:6f6a) + dw 36 INCBIN "gfx/duelists/nicholas.2bpp" -BrandonGfx: ; 9f1ac (27:71ac) - dw $24 +BrandonGfx:: ; 9f1ac (27:71ac) + dw 36 INCBIN "gfx/duelists/brandon.2bpp" -MatthewGfx: ; 9f3ee (27:73ee) - dw $24 +MatthewGfx:: ; 9f3ee (27:73ee) + dw 36 INCBIN "gfx/duelists/matthew.2bpp" -RyanGfx: ; 9f630 (27:7630) - dw $24 +RyanGfx:: ; 9f630 (27:7630) + dw 36 INCBIN "gfx/duelists/ryan.2bpp" -AndrewGfx: ; 9f872 (27:7872) - dw $24 +AndrewGfx:: ; 9f872 (27:7872) + dw 36 INCBIN "gfx/duelists/andrew.2bpp" -ChrisGfx: ; 9fab4 (27:7ab4) - dw $24 +ChrisGfx:: ; 9fab4 (27:7ab4) + dw 36 INCBIN "gfx/duelists/chris.2bpp" -MichaelGfx: ; 9fcf6 (27:7cf6) - dw $24 +MichaelGfx:: ; 9fcf6 (27:7cf6) + dw 36 INCBIN "gfx/duelists/michael.2bpp" Duel63Gfx:: ; 9ff38 (27:7f38) @@ -496,48 +1015,48 @@ endr SECTION "Gfx 10", ROMX -DanielGfx: ; a0000 (28:4000) - dw $24 +DanielGfx:: ; a0000 (28:4000) + dw 36 INCBIN "gfx/duelists/daniel.2bpp" -RobertGfx: ; a0242 (28:4242) - dw $24 +RobertGfx:: ; a0242 (28:4242) + dw 36 INCBIN "gfx/duelists/robert.2bpp" -BrittanyGfx: ; a0484 (28:4484) - dw $24 +BrittanyGfx:: ; a0484 (28:4484) + dw 36 INCBIN "gfx/duelists/brittany.2bpp" -KristinGfx: ; a06c6 (28:46c6) - dw $24 +KristinGfx:: ; a06c6 (28:46c6) + dw 36 INCBIN "gfx/duelists/kristin.2bpp" -HeatherGfx: ; a0908 (28:4908) - dw $24 +HeatherGfx:: ; a0908 (28:4908) + dw 36 INCBIN "gfx/duelists/heather.2bpp" -SaraGfx: ; a0b4a (28:4b4a) - dw $24 +SaraGfx:: ; a0b4a (28:4b4a) + dw 36 INCBIN "gfx/duelists/sara.2bpp" -AmandaGfx: ; a0d8c (28:4d8c) - dw $24 +AmandaGfx:: ; a0d8c (28:4d8c) + dw 36 INCBIN "gfx/duelists/amanda.2bpp" -JenniferGfx: ; a0fce (28:4fce) - dw $24 +JenniferGfx:: ; a0fce (28:4fce) + dw 36 INCBIN "gfx/duelists/jennifer.2bpp" -JessicaGfx: ; a1210 (28:5210) - dw $24 +JessicaGfx:: ; a1210 (28:5210) + dw 36 INCBIN "gfx/duelists/jessica.2bpp" -StephanieGfx: ; a1452 (28:5452) - dw $24 +StephanieGfx:: ; a1452 (28:5452) + dw 36 INCBIN "gfx/duelists/stephanie.2bpp" -AaronGfx: ; a1694 (28:5694) - dw $24 +AaronGfx:: ; a1694 (28:5694) + dw 36 INCBIN "gfx/duelists/aaron.2bpp" OWIshiharaGfx:: ; a18d6 (28:58d6) diff --git a/src/sram.asm b/src/sram.asm index 09c4e67..512d96a 100644 --- a/src/sram.asm +++ b/src/sram.asm @@ -98,6 +98,11 @@ sba68:: ; ba68 SECTION "SRAM1", SRAM +; from VRAM0 +s0BGMap:: ds $400 ; a000 +; from VRAM1 +s1BGMap:: ds $400 ; a400 + SECTION "SRAM2", SRAM ds $1c00 diff --git a/src/wram.asm b/src/wram.asm index 83c260b..46345f9 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -2079,13 +2079,15 @@ wPCLastDirectionPressed:: ; d12d ds $1 -wd12f:: ; d12f +wBGMapWidth:: ; d12f ds $1 -wd130:: ; d130 +wBGMapHeight:: ; d130 ds $1 -wd131:: ; d131 +; current tilemap to load +; TILEMAP_* constant +wCurTilemap:: ; d131 ds $1 wd132:: ; d132 @@ -2126,14 +2128,13 @@ wd237:: ; d237 wd238:: ; d238 ds $1 -wd239:: ; d239 +; current tileset to load to VRAM +; TILESET_* constant +wCurTileset:: ; d239 ds $1 wd23a:: ; d23a - ds $1 - -wd23b:: ; d23b - ds $1 + ds $2 wd23c:: ; d23c ds $1 @@ -2141,10 +2142,20 @@ wd23c:: ; d23c wd23d:: ; d23d ds $1 +UNION + ; palette loaded from Palette* data wLoadedPalData:: ; d23e ds $50 +NEXTU + +; where BG map data is decompressed +wBGMapBuffer:: ; d23e + ds $40 + +ENDU + wd28e:: ; d28e ds $1 @@ -2157,7 +2168,10 @@ wd290:: ; d290 wd291:: ; d291 ds $1 -wd292:: ; d292 +; determines where to copy BG Map data +; $0 = copies to VRAM +; $1 = copies to SRAM +wBGMapCopyMode:: ; d292 ds $1 ds $4 @@ -2483,11 +2497,9 @@ wTempPointerBank:: ; d4c6 wCurSpriteTileSize:: ; d4c7 ds $1 -; stores number of tiles that current sprite has -wCurSpriteNumTiles:: ; d4c8 - ds $1 - - ds $1 +; stores number of tiles that current sprite/tileset has +wTotalNumTiles:: ; d4c8 + ds $2 ; stores tile offset in VRAM wVRAMTileOffset:: ; d4ca @@ -2495,6 +2507,8 @@ wVRAMTileOffset:: ; d4ca wd4ca:: ; d4ca ds $1 +; bottom bit stores which VRAM bank to draw certain gfx +; $0 = VRAM0, $1 = VRAM1 wd4cb:: ; d4cb ds $1 |