diff options
Diffstat (limited to 'data')
33 files changed, 1288 insertions, 0 deletions
diff --git a/data/battle/always_happen_effects.asm b/data/battle/always_happen_effects.asm new file mode 100644 index 00000000..4b6d466f --- /dev/null +++ b/data/battle/always_happen_effects.asm @@ -0,0 +1,13 @@ +AlwaysHappenSideEffects: +; Attacks that aren't finished after they faint the opponent. + db DRAIN_HP_EFFECT + db EXPLODE_EFFECT + db DREAM_EATER_EFFECT + db PAY_DAY_EFFECT + db TWO_TO_FIVE_ATTACKS_EFFECT + db $1E + db ATTACK_TWICE_EFFECT + db RECOIL_EFFECT + db TWINEEDLE_EFFECT + db RAGE_EFFECT + db -1 diff --git a/data/battle/critical_hit_moves.asm b/data/battle/critical_hit_moves.asm new file mode 100644 index 00000000..ee7543e8 --- /dev/null +++ b/data/battle/critical_hit_moves.asm @@ -0,0 +1,6 @@ +HighCriticalMoves: + db KARATE_CHOP + db RAZOR_LEAF + db CRABHAMMER + db SLASH + db $FF diff --git a/data/battle/residual_effects_1.asm b/data/battle/residual_effects_1.asm new file mode 100644 index 00000000..36e28391 --- /dev/null +++ b/data/battle/residual_effects_1.asm @@ -0,0 +1,20 @@ +; These are move effects (second value from the Moves table in bank $E). +ResidualEffects1: +; most non-side effects + db CONVERSION_EFFECT + db HAZE_EFFECT + db SWITCH_AND_TELEPORT_EFFECT + db MIST_EFFECT + db FOCUS_ENERGY_EFFECT + db CONFUSION_EFFECT + db HEAL_EFFECT + db TRANSFORM_EFFECT + db LIGHT_SCREEN_EFFECT + db REFLECT_EFFECT + db POISON_EFFECT + db PARALYZE_EFFECT + db SUBSTITUTE_EFFECT + db MIMIC_EFFECT + db LEECH_SEED_EFFECT + db SPLASH_EFFECT + db -1 diff --git a/data/battle/residual_effects_2.asm b/data/battle/residual_effects_2.asm new file mode 100644 index 00000000..cde55cc9 --- /dev/null +++ b/data/battle/residual_effects_2.asm @@ -0,0 +1,32 @@ +ResidualEffects2: +; non-side effects not included in ResidualEffects1 +; stat-affecting moves, sleep-inflicting moves, and Bide +; e.g., Meditate, Bide, Hypnosis + db $01 + db ATTACK_UP1_EFFECT + db DEFENSE_UP1_EFFECT + db SPEED_UP1_EFFECT + db SPECIAL_UP1_EFFECT + db ACCURACY_UP1_EFFECT + db EVASION_UP1_EFFECT + db ATTACK_DOWN1_EFFECT + db DEFENSE_DOWN1_EFFECT + db SPEED_DOWN1_EFFECT + db SPECIAL_DOWN1_EFFECT + db ACCURACY_DOWN1_EFFECT + db EVASION_DOWN1_EFFECT + db BIDE_EFFECT + db SLEEP_EFFECT + db ATTACK_UP2_EFFECT + db DEFENSE_UP2_EFFECT + db SPEED_UP2_EFFECT + db SPECIAL_UP2_EFFECT + db ACCURACY_UP2_EFFECT + db EVASION_UP2_EFFECT + db ATTACK_DOWN2_EFFECT + db DEFENSE_DOWN2_EFFECT + db SPEED_DOWN2_EFFECT + db SPECIAL_DOWN2_EFFECT + db ACCURACY_DOWN2_EFFECT + db EVASION_DOWN2_EFFECT + db -1 diff --git a/data/battle/set_damage_effects.asm b/data/battle/set_damage_effects.asm new file mode 100644 index 00000000..3fc75e41 --- /dev/null +++ b/data/battle/set_damage_effects.asm @@ -0,0 +1,6 @@ +SetDamageEffects: +; moves that do damage but not through normal calculations +; e.g., Super Fang, Psywave + db SUPER_FANG_EFFECT + db SPECIAL_DAMAGE_EFFECT + db -1 diff --git a/data/battle/special_effects.asm b/data/battle/special_effects.asm new file mode 100644 index 00000000..0db05b9a --- /dev/null +++ b/data/battle/special_effects.asm @@ -0,0 +1,24 @@ +SpecialEffects: +; Effects from arrays 2, 4, and 5B, minus Twineedle and Rage. +; Includes all effects that do not need to be called at the end of +; ExecutePlayerMove (or ExecuteEnemyMove), because they have already been handled + db DRAIN_HP_EFFECT + db EXPLODE_EFFECT + db DREAM_EATER_EFFECT + db PAY_DAY_EFFECT + db SWIFT_EFFECT + db TWO_TO_FIVE_ATTACKS_EFFECT + db $1E + db CHARGE_EFFECT + db SUPER_FANG_EFFECT + db SPECIAL_DAMAGE_EFFECT + db FLY_EFFECT + db ATTACK_TWICE_EFFECT + db JUMP_KICK_EFFECT + db RECOIL_EFFECT + ; fallthrough to Next EffectsArray +SpecialEffectsCont: +; damaging moves whose effect is executed prior to damage calculation + db THRASH_PETAL_DANCE_EFFECT + db TRAPPING_EFFECT + db -1 diff --git a/data/battle/stat_modifiers.asm b/data/battle/stat_modifiers.asm new file mode 100644 index 00000000..c0a6355a --- /dev/null +++ b/data/battle/stat_modifiers.asm @@ -0,0 +1,15 @@ +StatModifierRatios: +; first byte is numerator, second byte is denominator + db 25, 100 ; 0.25 + db 28, 100 ; 0.28 + db 33, 100 ; 0.33 + db 40, 100 ; 0.40 + db 50, 100 ; 0.50 + db 66, 100 ; 0.66 + db 1, 1 ; 1.00 + db 15, 10 ; 1.50 + db 2, 1 ; 2.00 + db 25, 10 ; 2.50 + db 3, 1 ; 3.00 + db 35, 10 ; 3.50 + db 4, 1 ; 4.00 diff --git a/data/battle/unused_critical_hit_moves.asm b/data/battle/unused_critical_hit_moves.asm new file mode 100644 index 00000000..84cb65ce --- /dev/null +++ b/data/battle/unused_critical_hit_moves.asm @@ -0,0 +1,6 @@ +UnusedHighCriticalMoves: + db KARATE_CHOP + db RAZOR_LEAF + db CRABHAMMER + db SLASH + db $FF diff --git a/data/bookshelf_tile_ids.asm b/data/bookshelf_tile_ids.asm new file mode 100644 index 00000000..535bf8e9 --- /dev/null +++ b/data/bookshelf_tile_ids.asm @@ -0,0 +1,37 @@ +; format: db tileset id, bookshelf tile id, text id +BookshelfTileIDs: + db PLATEAU, $30 + db_tx_pre IndigoPlateauStatues + db HOUSE, $3D + db_tx_pre TownMapText + db HOUSE, $1E + db_tx_pre BookOrSculptureText + db MANSION, $32 + db_tx_pre BookOrSculptureText + db REDS_HOUSE_1, $32 + db_tx_pre BookOrSculptureText + db LAB, $28 + db_tx_pre BookOrSculptureText + db LOBBY, $16 + db_tx_pre ElevatorText + db GYM, $1D + db_tx_pre BookOrSculptureText + db DOJO, $1D + db_tx_pre BookOrSculptureText + db GATE, $22 + db_tx_pre BookOrSculptureText + db MART, $54 + db_tx_pre PokemonStuffText + db MART, $55 + db_tx_pre PokemonStuffText + db POKECENTER, $54 + db_tx_pre PokemonStuffText + db POKECENTER, $55 + db_tx_pre PokemonStuffText + db LOBBY, $50 + db_tx_pre PokemonStuffText + db LOBBY, $52 + db_tx_pre PokemonStuffText + db SHIP, $36 + db_tx_pre BookOrSculptureText + db $FF diff --git a/data/cut_tree_blocks.asm b/data/cut_tree_blocks.asm new file mode 100644 index 00000000..eb63a712 --- /dev/null +++ b/data/cut_tree_blocks.asm @@ -0,0 +1,13 @@ +CutTreeBlockSwaps: +; first byte = tileset block containing the cut tree +; second byte = corresponding tileset block after the cut animation happens + db $32, $6D + db $33, $6C + db $34, $6F + db $35, $4C + db $60, $6E + db $0B, $0A + db $3C, $35 + db $3F, $35 + db $3D, $36 + db $FF ; list terminator diff --git a/data/door_tile_ids.asm b/data/door_tile_ids.asm new file mode 100644 index 00000000..686e418c --- /dev/null +++ b/data/door_tile_ids.asm @@ -0,0 +1,48 @@ +DoorTileIDPointers: + dbw OVERWORLD, OverworldDoorTileIDs + dbw FOREST, ForestDoorTileIDs + dbw MART, MartDoorTileIDs + dbw HOUSE, HouseDoorTileIDs + dbw FOREST_GATE, TilesetMuseumDoorTileIDs + dbw MUSEUM, TilesetMuseumDoorTileIDs + dbw GATE, TilesetMuseumDoorTileIDs + dbw SHIP, ShipDoorTileIDs + dbw LOBBY, LobbyDoorTileIDs + dbw MANSION, MansionDoorTileIDs + dbw LAB, LabDoorTileIDs + dbw FACILITY, FacilityDoorTileIDs + dbw PLATEAU, PlateauDoorTileIDs + db $ff + +OverworldDoorTileIDs: + db $1B,$58,$00 + +ForestDoorTileIDs: + db $3a,$00 + +MartDoorTileIDs: + db $5e,$00 + +HouseDoorTileIDs: + db $54,$00 + +TilesetMuseumDoorTileIDs: + db $3b,$00 + +ShipDoorTileIDs: + db $1e,$00 + +LobbyDoorTileIDs: + db $1c,$38,$1a,$00 + +MansionDoorTileIDs: + db $1a,$1c,$53,$00 + +LabDoorTileIDs: + db $34,$00 + +FacilityDoorTileIDs: + db $43,$58,$1b,$00 + +PlateauDoorTileIDs: + db $3b,$1b,$00 diff --git a/data/dungeon_maps.asm b/data/dungeon_maps.asm new file mode 100644 index 00000000..118cf46b --- /dev/null +++ b/data/dungeon_maps.asm @@ -0,0 +1,29 @@ +; GetBattleTransitionID_IsDungeonMap checks if wCurMap +; is equal to one of these maps +DungeonMaps1: + db VIRIDIAN_FOREST + db ROCK_TUNNEL_1F + db SEAFOAM_ISLANDS_1F + db ROCK_TUNNEL_B1F + db $FF + +; GetBattleTransitionID_IsDungeonMap checks if wCurMap +; is in between or equal to each pair of maps +DungeonMaps2: + ; all MT_MOON maps + db MT_MOON_1F + db MT_MOON_B2F + + ; all SS_ANNE maps, VICTORY_ROAD_1F, LANCES_ROOM, and HALL_OF_FAME + db SS_ANNE_1F + db HALL_OF_FAME + + ; all POKEMON_TOWER maps and Lavender Town buildings + db LAVENDER_POKECENTER + db LAVENDER_CUBONE_HOUSE + + ; SILPH_CO_[2-8]F, POKEMON_MANSION[2F-B1F], SAFARI_ZONE, and + ; CERULEAN_CAVE maps, except for SILPH_CO_1F + db SILPH_CO_2F + db CERULEAN_CAVE_1F + db $FF diff --git a/data/effects_pointers.asm b/data/effects_pointers.asm new file mode 100644 index 00000000..0d36e887 --- /dev/null +++ b/data/effects_pointers.asm @@ -0,0 +1,87 @@ +MoveEffectPointerTable: + dw SleepEffect ; unused effect + dw PoisonEffect ; POISON_SIDE_EFFECT1 + dw DrainHPEffect ; DRAIN_HP_EFFECT + dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT1 + dw FreezeBurnParalyzeEffect ; FREEZE_SIDE_EFFECT + dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT1 + dw ExplodeEffect ; EXPLODE_EFFECT + dw DrainHPEffect ; DREAM_EATER_EFFECT + dw $0000 ; MIRROR_MOVE_EFFECT + dw StatModifierUpEffect ; ATTACK_UP1_EFFECT + dw StatModifierUpEffect ; DEFENSE_UP1_EFFECT + dw StatModifierUpEffect ; SPEED_UP1_EFFECT + dw StatModifierUpEffect ; SPECIAL_UP1_EFFECT + dw StatModifierUpEffect ; ACCURACY_UP1_EFFECT + dw StatModifierUpEffect ; EVASION_UP1_EFFECT + dw PayDayEffect ; PAY_DAY_EFFECT + dw $0000 ; SWIFT_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN1_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN1_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN1_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN1_EFFECT + dw StatModifierDownEffect ; ACCURACY_DOWN1_EFFECT + dw StatModifierDownEffect ; EVASION_DOWN1_EFFECT + dw ConversionEffect ; CONVERSION_EFFECT + dw HazeEffect ; HAZE_EFFECT + dw BideEffect ; BIDE_EFFECT + dw ThrashPetalDanceEffect ; THRASH_PETAL_DANCE_EFFECT + dw SwitchAndTeleportEffect ; SWITCH_AND_TELEPORT_EFFECT + dw TwoToFiveAttacksEffect ; TWO_TO_FIVE_ATTACKS_EFFECT + dw TwoToFiveAttacksEffect ; unused effect + dw FlinchSideEffect ; FLINCH_SIDE_EFFECT1 + dw SleepEffect ; SLEEP_EFFECT + dw PoisonEffect ; POISON_SIDE_EFFECT2 + dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT2 + dw FreezeBurnParalyzeEffect ; unused effect + dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT2 + dw FlinchSideEffect ; FLINCH_SIDE_EFFECT2 + dw OneHitKOEffect ; OHKO_EFFECT + dw ChargeEffect ; CHARGE_EFFECT + dw $0000 ; SUPER_FANG_EFFECT + dw $0000 ; SPECIAL_DAMAGE_EFFECT + dw TrappingEffect ; TRAPPING_EFFECT + dw ChargeEffect ; FLY_EFFECT + dw TwoToFiveAttacksEffect ; ATTACK_TWICE_EFFECT + dw $0000 ; JUMP_KICK_EFFECT + dw MistEffect ; MIST_EFFECT + dw FocusEnergyEffect ; FOCUS_ENERGY_EFFECT + dw RecoilEffect ; RECOIL_EFFECT + dw ConfusionEffect ; CONFUSION_EFFECT + dw StatModifierUpEffect ; ATTACK_UP2_EFFECT + dw StatModifierUpEffect ; DEFENSE_UP2_EFFECT + dw StatModifierUpEffect ; SPEED_UP2_EFFECT + dw StatModifierUpEffect ; SPECIAL_UP2_EFFECT + dw StatModifierUpEffect ; ACCURACY_UP2_EFFECT + dw StatModifierUpEffect ; EVASION_UP2_EFFECT + dw HealEffect ; HEAL_EFFECT + dw TransformEffect ; TRANSFORM_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN2_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN2_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN2_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN2_EFFECT + dw StatModifierDownEffect ; ACCURACY_DOWN2_EFFECT + dw StatModifierDownEffect ; EVASION_DOWN2_EFFECT + dw ReflectLightScreenEffect ; LIGHT_SCREEN_EFFECT + dw ReflectLightScreenEffect ; REFLECT_EFFECT + dw PoisonEffect ; POISON_EFFECT + dw ParalyzeEffect ; PARALYZE_EFFECT + dw StatModifierDownEffect ; ATTACK_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; DEFENSE_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; SPEED_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; SPECIAL_DOWN_SIDE_EFFECT + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw StatModifierDownEffect ; unused effect + dw ConfusionSideEffect ; CONFUSION_SIDE_EFFECT + dw TwoToFiveAttacksEffect ; TWINEEDLE_EFFECT + dw $0000 ; unused effect + dw SubstituteEffect ; SUBSTITUTE_EFFECT + dw HyperBeamEffect ; HYPER_BEAM_EFFECT + dw RageEffect ; RAGE_EFFECT + dw MimicEffect ; MIMIC_EFFECT + dw $0000 ; METRONOME_EFFECT + dw LeechSeedEffect ; LEECH_SEED_EFFECT + dw SplashEffect ; SPLASH_EFFECT + dw DisableEffect ; DISABLE_EFFECT diff --git a/data/growth_rates.asm b/data/growth_rates.asm new file mode 100644 index 00000000..6c443183 --- /dev/null +++ b/data/growth_rates.asm @@ -0,0 +1,12 @@ +; each entry has the following scheme: +; %AAAABBBB %SCCCCCCC %DDDDDDDD %EEEEEEEE +; resulting in +; (a*n^3)/b + sign*c*n^2 + d*n - e +; where sign = -1 <=> S=1 +GrowthRateTable: + db $11,$00,$00,$00 ; medium fast n^3 + db $34,$0A,$00,$1E ; (unused?) 3/4 n^3 + 10 n^2 - 30 + db $34,$14,$00,$46 ; (unused?) 3/4 n^3 + 20 n^2 - 70 + db $65,$8F,$64,$8C ; medium slow: 6/5 n^3 - 15 n^2 + 100 n - 140 + db $45,$00,$00,$00 ; fast: 4/5 n^3 + db $54,$00,$00,$00 ; slow: 5/4 n^3 diff --git a/data/guard_drink_items.asm b/data/guard_drink_items.asm new file mode 100644 index 00000000..effef203 --- /dev/null +++ b/data/guard_drink_items.asm @@ -0,0 +1,2 @@ +GuardDrinksList: + db FRESH_WATER, SODA_POP, LEMONADE, $00 diff --git a/data/ledge_tiles.asm b/data/ledge_tiles.asm new file mode 100644 index 00000000..b742af1a --- /dev/null +++ b/data/ledge_tiles.asm @@ -0,0 +1,11 @@ +LedgeTiles: + ; (player direction) (tile player standing on) (ledge tile) (input required) + db SPRITE_FACING_DOWN, $2C,$37,D_DOWN + db SPRITE_FACING_DOWN, $39,$36,D_DOWN + db SPRITE_FACING_DOWN, $39,$37,D_DOWN + db SPRITE_FACING_LEFT, $2C,$27,D_LEFT + db SPRITE_FACING_LEFT, $39,$27,D_LEFT + db SPRITE_FACING_RIGHT,$2C,$0D,D_RIGHT + db SPRITE_FACING_RIGHT,$2C,$1D,D_RIGHT + db SPRITE_FACING_RIGHT,$39,$0D,D_RIGHT + db $FF diff --git a/data/mon_party_sprite_pointers.asm b/data/mon_party_sprite_pointers.asm new file mode 100644 index 00000000..7e94b04a --- /dev/null +++ b/data/mon_party_sprite_pointers.asm @@ -0,0 +1,140 @@ +MonPartySpritePointers: + dw SlowbroSprite + $c0 + db $40 / $10 ; 40 bytes + db BANK(SlowbroSprite) + dw vSprites + + dw BallSprite + db $80 / $10 ; $80 bytes + db BANK(BallSprite) + dw vSprites + $40 + + dw ClefairySprite + $c0 + db $40 / $10 ; $40 bytes + db BANK(ClefairySprite) + dw vSprites + $c0 + + dw BirdSprite + $c0 + db $40 / $10 ; $40 bytes + db BANK(BirdSprite) + dw vSprites + $100 + + dw SeelSprite + db $40 / $10 ; $40 bytes + db BANK(SeelSprite) + dw vSprites + $140 + + dw MonPartySprites + $40 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $180 + + dw MonPartySprites + $50 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $1a0 + + dw MonPartySprites + $60 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $1c0 + + dw MonPartySprites + $70 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $1e0 + + dw MonPartySprites + $80 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $200 + + dw MonPartySprites + $90 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $220 + + dw MonPartySprites + $A0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $240 + + dw MonPartySprites + $B0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $260 + + dw MonPartySprites + $100 + db $40 / $10 ; $40 bytes + db BANK(MonPartySprites) + dw vSprites + $380 + + dw SlowbroSprite + db $40 / $10 ; $40 bytes + db BANK(SlowbroSprite) + dw vSprites + $400 + + dw BallSprite + db $80 / $10 ; $80 bytes + db BANK(BallSprite) + dw vSprites + $440 + + dw ClefairySprite + db $40 / $10 ; $40 bytes + db BANK(ClefairySprite) + dw vSprites + $4c0 + + dw BirdSprite + db $40 / $10 ; $40 bytes + db BANK(BirdSprite) + dw vSprites + $500 + + dw SeelSprite + $C0 + db $40 / $10 ; $40 bytes + db BANK(SeelSprite) + dw vSprites + $540 + + dw MonPartySprites + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $580 + + dw MonPartySprites + $10 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $5a0 + + dw MonPartySprites + $20 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $5c0 + + dw MonPartySprites + $30 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $5E0 + + dw MonPartySprites + $C0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $600 + + dw MonPartySprites + $D0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $620 + + dw MonPartySprites + $E0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $640 + + dw MonPartySprites + $F0 + db $10 / $10 ; $10 bytes + db BANK(MonPartySprites) + dw vSprites + $660 + + dw MonPartySprites + $140 + db $40 / $10 ; $40 bytes + db BANK(MonPartySprites) + dw vSprites + $780 diff --git a/data/move_animation_pointers.asm b/data/move_animation_pointers.asm new file mode 100644 index 00000000..ba607141 --- /dev/null +++ b/data/move_animation_pointers.asm @@ -0,0 +1,81 @@ +; Format: Special Effect ID (1 byte), Address (2 bytes) +SpecialEffectPointers: + db SE_DARK_SCREEN_FLASH ; $FE + dw AnimationFlashScreen + db SE_DARK_SCREEN_PALETTE ; $FD + dw AnimationDarkScreenPalette + db SE_RESET_SCREEN_PALETTE ; $FC + dw AnimationResetScreenPalette + db SE_SHAKE_SCREEN ; $FB + dw AnimationShakeScreen + db SE_WATER_DROPLETS_EVERYWHERE ; $FA + dw AnimationWaterDropletsEverywhere + db SE_DARKEN_MON_PALETTE ; $F9 + dw AnimationDarkenMonPalette + db SE_FLASH_SCREEN_LONG ; $F8 + dw AnimationFlashScreenLong + db SE_SLIDE_MON_UP ; $F7 + dw AnimationSlideMonUp + db SE_SLIDE_MON_DOWN ; $F6 + dw AnimationSlideMonDown + db SE_FLASH_MON_PIC ; $F5 + dw AnimationFlashMonPic + db SE_SLIDE_MON_OFF ; $F4 + dw AnimationSlideMonOff + db SE_BLINK_MON ; $F3 + dw AnimationBlinkMon + db SE_MOVE_MON_HORIZONTALLY ; $F2 + dw AnimationMoveMonHorizontally + db SE_RESET_MON_POSITION ; $F1 + dw AnimationResetMonPosition + db SE_LIGHT_SCREEN_PALETTE ; $F0 + dw AnimationLightScreenPalette + db SE_HIDE_MON_PIC ; $EF + dw AnimationHideMonPic + db SE_SQUISH_MON_PIC ; $EE + dw AnimationSquishMonPic + db SE_SHOOT_BALLS_UPWARD ; $ED + dw AnimationShootBallsUpward + db SE_SHOOT_MANY_BALLS_UPWARD ; $EC + dw AnimationShootManyBallsUpward + db SE_BOUNCE_UP_AND_DOWN ; $EB + dw AnimationBoundUpAndDown + db SE_MINIMIZE_MON ; $EA + dw AnimationMinimizeMon + db SE_SLIDE_MON_DOWN_AND_HIDE ; $E9 + dw AnimationSlideMonDownAndHide + db SE_TRANSFORM_MON ; $E8 + dw AnimationTransformMon + db SE_LEAVES_FALLING ; $E7 + dw AnimationLeavesFalling + db SE_PETALS_FALLING ; $E6 + dw AnimationPetalsFalling + db SE_SLIDE_MON_HALF_OFF ; $E5 + dw AnimationSlideMonHalfOff + db SE_SHAKE_ENEMY_HUD ; $E4 + dw AnimationShakeEnemyHUD + db SE_SHAKE_ENEMY_HUD_2 ; unused--same pointer as SE_SHAKE_ENEMY_HUD ($E4) + dw AnimationShakeEnemyHUD + db SE_SPIRAL_BALLS_INWARD ; $E2 + dw AnimationSpiralBallsInward + db SE_DELAY_ANIMATION_10 ; $E1 + dw AnimationDelay10 + db SE_FLASH_ENEMY_MON_PIC ; unused--same as SE_FLASH_MON_PIC ($F5), but for the enemy mon + dw AnimationFlashEnemyMonPic + db SE_HIDE_ENEMY_MON_PIC ; $DF + dw AnimationHideEnemyMonPic + db SE_BLINK_ENEMY_MON ; $DE + dw AnimationBlinkEnemyMon + db SE_SHOW_MON_PIC ; $DD + dw AnimationShowMonPic + db SE_SHOW_ENEMY_MON_PIC ; $DC + dw AnimationShowEnemyMonPic + db SE_SLIDE_ENEMY_MON_OFF ; $DB + dw AnimationSlideEnemyMonOff + db SE_SHAKE_BACK_AND_FORTH ; $DA + dw AnimationShakeBackAndForth + db SE_SUBSTITUTE_MON ; $D9 + dw AnimationSubstitute + db SE_WAVY_SCREEN ; $D8 + dw AnimationWavyScreen + db $FF diff --git a/data/move_animation_special_effects.asm b/data/move_animation_special_effects.asm new file mode 100644 index 00000000..9dfb5645 --- /dev/null +++ b/data/move_animation_special_effects.asm @@ -0,0 +1,75 @@ +; Format: Animation ID (1 byte), Address (2 bytes) +AnimationIdSpecialEffects: + db MEGA_PUNCH + dw AnimationFlashScreen + + db GUILLOTINE + dw AnimationFlashScreen + + db MEGA_KICK + dw AnimationFlashScreen + + db HEADBUTT + dw AnimationFlashScreen + + db TAIL_WHIP + dw TailWhipAnimationUnused + + db GROWL + dw DoGrowlSpecialEffects + + db DISABLE + dw AnimationFlashScreen + + db BLIZZARD + dw DoBlizzardSpecialEffects + + db BUBBLEBEAM + dw AnimationFlashScreen + + db HYPER_BEAM + dw FlashScreenEveryFourFrameBlocks + + db THUNDERBOLT + dw FlashScreenEveryEightFrameBlocks + + db REFLECT + dw AnimationFlashScreen + + db SELFDESTRUCT + dw DoExplodeSpecialEffects + + db SPORE + dw AnimationFlashScreen + + db EXPLOSION + dw DoExplodeSpecialEffects + + db ROCK_SLIDE + dw DoRockSlideSpecialEffects + + db TRADE_BALL_DROP_ANIM + dw TradeHidePokemon + + db TRADE_BALL_SHAKE_ANIM + dw TradeShakePokeball + + db TRADE_BALL_TILT_ANIM + dw TradeJumpPokeball + + db TOSS_ANIM + dw DoBallTossSpecialEffects + + db SHAKE_ANIM + dw DoBallShakeSpecialEffects + + db POOF_ANIM + dw DoPoofSpecialEffects + + db GREATTOSS_ANIM + dw DoBallTossSpecialEffects + + db ULTRATOSS_ANIM + dw DoBallTossSpecialEffects + + db $FF ; terminator diff --git a/data/move_grammar.asm b/data/move_grammar.asm new file mode 100644 index 00000000..8113ab7c --- /dev/null +++ b/data/move_grammar.asm @@ -0,0 +1,14 @@ +ExclamationPointMoveSets: + db SWORDS_DANCE, GROWTH + db $00 + db RECOVER, BIDE, SELFDESTRUCT, AMNESIA + db $00 + db MEDITATE, AGILITY, TELEPORT, MIMIC, DOUBLE_TEAM, BARRAGE + db $00 + db POUND, SCRATCH, VICEGRIP, WING_ATTACK, FLY, BIND, SLAM, HORN_ATTACK, BODY_SLAM + db WRAP, THRASH, TAIL_WHIP, LEER, BITE, GROWL, ROAR, SING, PECK, COUNTER + db STRENGTH, ABSORB, STRING_SHOT, EARTHQUAKE, FISSURE, DIG, TOXIC, SCREECH, HARDEN + db MINIMIZE, WITHDRAW, DEFENSE_CURL, METRONOME, LICK, CLAMP, CONSTRICT, POISON_GAS + db LEECH_LIFE, BUBBLE, FLASH, SPLASH, ACID_ARMOR, FURY_SWIPES, REST, SHARPEN, SLASH, SUBSTITUTE + db $00 + db $FF ; terminator diff --git a/data/move_sfx.asm b/data/move_sfx.asm new file mode 100644 index 00000000..28ad0b63 --- /dev/null +++ b/data/move_sfx.asm @@ -0,0 +1,168 @@ +MoveSoundTable: + ; ID, pitch mod, tempo mod + db SFX_POUND, $00,$80 ; POUND + db SFX_BATTLE_0C, $10,$80 ; KARATE_CHOP + db SFX_DOUBLESLAP, $00,$80 ; DOUBLESLAP + db SFX_BATTLE_0B, $01,$80 ; COMET_PUNCH + db SFX_BATTLE_0D, $00,$40 ; MEGA_PUNCH + db SFX_SILPH_SCOPE, $00,$ff ; PAY_DAY + db SFX_BATTLE_0D, $10,$60 ; FIRE_PUNCH + db SFX_BATTLE_0D, $20,$80 ; ICE_PUNCH + db SFX_BATTLE_0D, $00,$a0 ; THUNDERPUNCH + db SFX_DAMAGE, $00,$80 ; SCRATCH + db SFX_BATTLE_0F, $20,$40 ; VICEGRIP + db SFX_BATTLE_0F, $00,$80 ; GUILLOTINE + db SFX_BATTLE_0E, $00,$a0 ; RAZOR_WIND + db SFX_NOT_VERY_EFFECTIVE,$10,$c0 ; SWORDS_DANCE + db SFX_NOT_VERY_EFFECTIVE,$00,$a0 ; CUT + db SFX_BATTLE_12, $00,$c0 ; GUST + db SFX_BATTLE_12, $10,$a0 ; WING_ATTACK + db SFX_BATTLE_13, $00,$e0 ; WHIRLWIND + db SFX_NOT_VERY_EFFECTIVE,$20,$c0 ; FLY + db SFX_BATTLE_14, $00,$80 ; BIND + db SFX_BATTLE_22, $00,$80 ; SLAM + db SFX_VINE_WHIP, $01,$80 ; VINE_WHIP + db SFX_BATTLE_20, $00,$80 ; STOMP + db SFX_BATTLE_17, $f0,$40 ; DOUBLE_KICK + db SFX_SUPER_EFFECTIVE, $00,$80 ; MEGA_KICK + db SFX_BATTLE_17, $00,$80 ; JUMP_KICK + db SFX_BATTLE_21, $10,$80 ; ROLLING_KICK + db SFX_BATTLE_1B, $01,$a0 ; SAND_ATTACK + db SFX_BATTLE_18, $00,$80 ; HEADBUTT + db SFX_BATTLE_1E, $00,$60 ; HORN_ATTACK + db SFX_BATTLE_1E, $01,$40 ; FURY_ATTACK + db SFX_HORN_DRILL, $00,$a0 ; HORN_DRILL + db SFX_SUPER_EFFECTIVE, $10,$a0 ; TACKLE + db SFX_BATTLE_20, $00,$c0 ; BODY_SLAM + db SFX_BATTLE_14, $10,$60 ; WRAP + db SFX_SUPER_EFFECTIVE, $00,$a0 ; TAKE_DOWN + db SFX_BATTLE_22, $11,$c0 ; THRASH + db SFX_SUPER_EFFECTIVE, $20,$c0 ; DOUBLE_EDGE + db SFX_BATTLE_21, $00,$80 ; TAIL_WHIP + db SFX_BATTLE_1B, $00,$80 ; POISON_STING + db SFX_BATTLE_1B, $20,$c0 ; TWINEEDLE + db SFX_BATTLE_19, $00,$80 ; PIN_MISSILE + db SFX_BATTLE_31, $ff,$40 ; LEER + db SFX_BATTLE_1E, $00,$80 ; BITE + db SFX_BATTLE_0B, $00,$c0 ; GROWL + db SFX_BATTLE_0B, $00,$40 ; ROAR + db SFX_BATTLE_35, $00,$80 ; SING + db SFX_BATTLE_27, $40,$60 ; SUPERSONIC + db SFX_BATTLE_27, $00,$80 ; SONICBOOM + db SFX_BATTLE_27, $ff,$40 ; DISABLE + db SFX_BATTLE_2A, $80,$c0 ; ACID + db SFX_BATTLE_19, $10,$a0 ; EMBER + db SFX_BATTLE_19, $21,$e0 ; FLAMETHROWER + db SFX_BATTLE_29, $00,$80 ; MIST + db SFX_BATTLE_24, $20,$60 ; WATER_GUN + db SFX_BATTLE_2A, $00,$80 ; HYDRO_PUMP + db SFX_BATTLE_2C, $00,$80 ; SURF + db SFX_BATTLE_28, $40,$80 ; ICE_BEAM + db SFX_BATTLE_29, $f0,$e0 ; BLIZZARD + db SFX_PSYBEAM, $00,$80 ; PSYBEAM + db SFX_BATTLE_2A, $f0,$60 ; BUBBLEBEAM + db SFX_BATTLE_28, $00,$80 ; AURORA_BEAM + db SFX_BATTLE_36, $00,$80 ; HYPER_BEAM + db SFX_PECK, $01,$a0 ; PECK + db SFX_BATTLE_13, $f0,$20 ; DRILL_PECK + db SFX_BATTLE_23, $01,$c0 ; SUBMISSION + db SFX_BATTLE_23, $00,$80 ; LOW_KICK + db SFX_SUPER_EFFECTIVE, $00,$e0 ; COUNTER + db SFX_BATTLE_26, $01,$60 ; SEISMIC_TOSS + db SFX_BATTLE_26, $20,$40 ; STRENGTH + db SFX_BATTLE_24, $00,$80 ; ABSORB + db SFX_BATTLE_24, $40,$c0 ; MEGA_DRAIN + db SFX_BATTLE_1B, $03,$60 ; LEECH_SEED + db SFX_BATTLE_25, $11,$e0 ; GROWTH + db SFX_BATTLE_12, $20,$e0 ; RAZOR_LEAF + db SFX_BATTLE_2E, $00,$80 ; SOLARBEAM + db SFX_BATTLE_1C, $00,$80 ; POISONPOWDER + db SFX_BATTLE_1C, $11,$a0 ; STUN_SPORE + db SFX_BATTLE_1C, $01,$c0 ; SLEEP_POWDER + db SFX_BATTLE_13, $14,$c0 ; PETAL_DANCE + db SFX_BATTLE_1B, $02,$a0 ; STRING_SHOT + db SFX_BATTLE_29, $f0,$80 ; DRAGON_RAGE + db SFX_BATTLE_29, $20,$c0 ; FIRE_SPIN + db SFX_BATTLE_2F, $00,$20 ; THUNDERSHOCK + db SFX_BATTLE_2F, $20,$80 ; THUNDERBOLT + db SFX_BATTLE_2E, $12,$60 ; THUNDER_WAVE + db SFX_BATTLE_26, $00,$80 ; THUNDER + db SFX_BATTLE_14, $01,$e0 ; ROCK_THROW + db SFX_BATTLE_29, $0f,$e0 ; EARTHQUAKE + db SFX_BATTLE_29, $11,$20 ; FISSURE + db SFX_DAMAGE, $10,$40 ; DIG + db SFX_BATTLE_0F, $10,$c0 ; TOXIC + db SFX_BATTLE_14, $00,$20 ; CONFUSION + db SFX_PSYCHIC_M, $00,$80 ; PSYCHIC_M + db SFX_BATTLE_35, $11,$18 ; HYPNOSIS + db SFX_BATTLE_09, $20,$c0 ; MEDITATE + db SFX_FAINT_FALL, $20,$c0 ; AGILITY + db SFX_BATTLE_25, $00,$10 ; QUICK_ATTACK + db SFX_BATTLE_26, $f0,$20 ; RAGE + db SFX_BATTLE_33, $f0,$c0 ; TELEPORT + db SFX_NOT_VERY_EFFECTIVE,$f0,$e0 ; NIGHT_SHADE + db SFX_BATTLE_09, $f0,$40 ; MIMIC + db SFX_BATTLE_31, $00,$80 ; SCREECH + db SFX_BATTLE_33, $80,$40 ; DOUBLE_TEAM + db SFX_BATTLE_33, $00,$80 ; RECOVER + db SFX_BATTLE_14, $11,$20 ; HARDEN + db SFX_BATTLE_14, $22,$10 ; MINIMIZE + db SFX_BATTLE_1B, $f1,$ff ; SMOKESCREEN + db SFX_BATTLE_13, $f1,$ff ; CONFUSE_RAY + db SFX_BATTLE_14, $33,$30 ; WITHDRAW + db SFX_BATTLE_32, $40,$c0 ; DEFENSE_CURL + db SFX_BATTLE_0E, $20,$20 ; BARRIER + db SFX_BATTLE_0E, $f0,$10 ; LIGHT_SCREEN + db SFX_BATTLE_0F, $f8,$10 ; HAZE + db SFX_NOT_VERY_EFFECTIVE,$f0,$10 ; REFLECT + db SFX_BATTLE_25, $00,$80 ; FOCUS_ENERGY + db SFX_BATTLE_18, $00,$c0 ; BIDE + db SFX_BATTLE_32, $c0,$ff ; METRONOME + db SFX_BATTLE_09, $f2,$20 ; MIRROR_MOVE + db SFX_BATTLE_34, $00,$80 ; SELFDESTRUCT + db SFX_BATTLE_34, $00,$40 ; EGG_BOMB + db SFX_BATTLE_09, $00,$40 ; LICK + db SFX_NOT_VERY_EFFECTIVE,$10,$ff ; SMOG + db SFX_BATTLE_2A, $20,$20 ; SLUDGE + db SFX_BATTLE_32, $00,$80 ; BONE_CLUB + db SFX_BATTLE_29, $1f,$20 ; FIRE_BLAST + db SFX_BATTLE_25, $2f,$80 ; WATERFALL + db SFX_BATTLE_0F, $1f,$ff ; CLAMP + db SFX_BATTLE_2B, $1f,$60 ; SWIFT + db SFX_BATTLE_26, $1e,$20 ; SKULL_BASH + db SFX_BATTLE_26, $1f,$18 ; SPIKE_CANNON + db SFX_BATTLE_14, $0f,$80 ; CONSTRICT + db SFX_BATTLE_09, $f8,$10 ; AMNESIA + db SFX_FAINT_FALL, $18,$20 ; KINESIS + db SFX_BATTLE_32, $08,$40 ; SOFTBOILED + db SFX_BATTLE_17, $01,$e0 ; HI_JUMP_KICK + db SFX_NOT_VERY_EFFECTIVE,$09,$ff ; GLARE + db SFX_BATTLE_35, $42,$01 ; DREAM_EATER + db SFX_BATTLE_1C, $00,$ff ; POISON_GAS + db SFX_BATTLE_32, $08,$e0 ; BARRAGE + db SFX_BATTLE_24, $00,$80 ; LEECH_LIFE + db SFX_BATTLE_09, $88,$10 ; LOVELY_KISS + db SFX_BATTLE_25, $48,$ff ; SKY_ATTACK + db SFX_FAINT_FALL, $ff,$ff ; TRANSFORM + db SFX_BATTLE_24, $ff,$10 ; BUBBLE + db SFX_FAINT_FALL, $ff,$04 ; DIZZY_PUNCH + db SFX_BATTLE_1C, $01,$ff ; SPORE + db SFX_BATTLE_13, $f8,$ff ; FLASH + db SFX_BATTLE_0C, $f0,$f0 ; PSYWAVE + db SFX_BATTLE_0F, $08,$10 ; SPLASH + db SFX_BATTLE_0D, $f0,$ff ; ACID_ARMOR + db SFX_SUPER_EFFECTIVE, $f0,$ff ; CRABHAMMER + db SFX_BATTLE_34, $10,$ff ; EXPLOSION + db SFX_BATTLE_0E, $f0,$20 ; FURY_SWIPES + db SFX_BATTLE_2B, $f0,$60 ; BONEMERANG + db SFX_BATTLE_21, $12,$10 ; REST + db SFX_BATTLE_36, $f0,$20 ; ROCK_SLIDE + db SFX_BATTLE_1E, $12,$ff ; HYPER_FANG + db SFX_BATTLE_31, $80,$04 ; SHARPEN + db SFX_BATTLE_33, $f0,$10 ; CONVERSION + db SFX_BATTLE_29, $f8,$ff ; TRI_ATTACK + db SFX_BATTLE_26, $f0,$ff ; SUPER_FANG + db SFX_NOT_VERY_EFFECTIVE,$01,$ff ; SLASH + db SFX_BATTLE_2C, $d8,$04 ; SUBSTITUTE + db SFX_BATTLE_0B, $00,$80 ; STRUGGLE + db SFX_BATTLE_0B, $00,$80 diff --git a/data/overworld_items.asm b/data/overworld_items.asm new file mode 100644 index 00000000..c2c244fe --- /dev/null +++ b/data/overworld_items.asm @@ -0,0 +1,9 @@ +; items which close the item menu when used +UsableItems_CloseMenu: + db ESCAPE_ROPE + db ITEMFINDER + db POKE_FLUTE + db OLD_ROD + db GOOD_ROD + db SUPER_ROD + db $ff diff --git a/data/party_items.asm b/data/party_items.asm new file mode 100644 index 00000000..0126ed5e --- /dev/null +++ b/data/party_items.asm @@ -0,0 +1,39 @@ +; items which bring up the party menu when used +UsableItems_PartyMenu: + db MOON_STONE + db ANTIDOTE + db BURN_HEAL + db ICE_HEAL + db AWAKENING + db PARLYZ_HEAL + db FULL_RESTORE + db MAX_POTION + db HYPER_POTION + db SUPER_POTION + db POTION + db FIRE_STONE + db THUNDER_STONE + db WATER_STONE + db HP_UP + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db RARE_CANDY + db LEAF_STONE + db FULL_HEAL + db REVIVE + db MAX_REVIVE + db FRESH_WATER + db SODA_POP + db LEMONADE + db X_ATTACK + db X_DEFEND + db X_SPEED + db X_SPECIAL + db PP_UP + db ETHER + db MAX_ETHER + db ELIXER + db MAX_ELIXER + db $ff diff --git a/data/predef_pointers.asm b/data/predef_pointers.asm new file mode 100644 index 00000000..5ce797e0 --- /dev/null +++ b/data/predef_pointers.asm @@ -0,0 +1,102 @@ +PredefPointers:: +; these are pointers to ASM routines. +; they appear to be used in overworld map scripts. + add_predef DrawPlayerHUDAndHPBar + add_predef CopyUncompressedPicToTilemap + add_predef AnimateSendingOutMon + add_predef ScaleSpriteByTwo + add_predef LoadMonBackPic + add_predef CopyDownscaledMonTiles + dbw $03,JumpMoveEffect ; wrong bank + add_predef HealParty + add_predef MoveAnimation + add_predef DivideBCDPredef + add_predef DivideBCDPredef2 + add_predef AddBCDPredef + add_predef SubBCDPredef + add_predef DivideBCDPredef3 + add_predef DivideBCDPredef4 + add_predef InitPlayerData + add_predef FlagActionPredef + add_predef HideObject + add_predef IsObjectHidden + add_predef ApplyOutOfBattlePoisonDamage + add_predef AnyPartyAlive + add_predef ShowObject + add_predef ShowObject2 + add_predef ReplaceTileBlock + add_predef InitPlayerData2 + add_predef LoadTilesetHeader + add_predef LearnMoveFromLevelUp + add_predef LearnMove + add_predef GetQuantityOfItemInBag + dbw $03,CheckForHiddenObjectOrBookshelfOrCardKeyDoor ; home bank + dbw $03,GiveItem ; home bank + add_predef ChangeBGPalColor0_4Frames + add_predef FindPathToPlayer + add_predef PredefShakeScreenVertically + add_predef CalcPositionOfPlayerRelativeToNPC + add_predef ConvertNPCMovementDirectionsToJoypadMasks + add_predef PredefShakeScreenHorizontally + add_predef UpdateHPBar + add_predef HPBarLength + add_predef Diploma_TextBoxBorder + add_predef DoubleOrHalveSelectedStats + add_predef ShowPokedexMenu + add_predef EvolutionAfterBattle + add_predef SaveSAVtoSRAM0 + add_predef InitOpponent + add_predef CableClub_Run + add_predef DrawBadges + add_predef ExternalClockTradeAnim + add_predef BattleTransition + add_predef CopyTileIDsFromList + add_predef PlayIntro + add_predef GetMoveSoundB + add_predef FlashScreen + add_predef GetTileAndCoordsInFrontOfPlayer + add_predef StatusScreen + add_predef StatusScreen2 + add_predef InternalClockTradeAnim + add_predef TrainerEngage + add_predef IndexToPokedex + add_predef DisplayPicCenteredOrUpperRight + add_predef UsedCut + add_predef ShowPokedexData + add_predef WriteMonMoves + add_predef SaveSAV + add_predef LoadSGB + add_predef MarkTownVisitedAndLoadMissableObjects + add_predef SetPartyMonTypes + add_predef CanLearnTM + add_predef TMToMove + add_predef _RunPaletteCommand + add_predef StarterDex + add_predef _AddPartyMon + add_predef UpdateHPBar2 + add_predef DrawEnemyHUDAndHPBar + add_predef LoadTownMap_Nest + add_predef PrintMonType + add_predef EmotionBubble + add_predef EmptyFunc3; return immediately + add_predef AskName + add_predef PewterGuys + add_predef SaveSAVtoSRAM2 + add_predef LoadSAV2 + add_predef LoadSAV + add_predef SaveSAVtoSRAM1 + add_predef DoInGameTradeDialogue + add_predef HallOfFamePC + add_predef DisplayDexRating + dbw $1E, _LeaveMapAnim ; wrong bank + dbw $1E, EnterMapAnim ; wrong bank + add_predef GetTileTwoStepsInFrontOfPlayer + add_predef CheckForCollisionWhenPushingBoulder + add_predef PrintStrengthTxt + add_predef PickUpItem + add_predef PrintMoveType + add_predef LoadMovePPs + add_predef DrawHP + add_predef DrawHP2 + add_predef DisplayElevatorFloorMenu + add_predef OaksAideScript diff --git a/data/rest_house_maps.asm b/data/rest_house_maps.asm new file mode 100644 index 00000000..2feb89d3 --- /dev/null +++ b/data/rest_house_maps.asm @@ -0,0 +1,5 @@ +SafariZoneRestHouses: + db SAFARI_ZONE_WEST_REST_HOUSE + db SAFARI_ZONE_EAST_REST_HOUSE + db SAFARI_ZONE_NORTH_REST_HOUSE + db -1 diff --git a/data/trainer_ai_pointers.asm b/data/trainer_ai_pointers.asm new file mode 100644 index 00000000..d7cb5f19 --- /dev/null +++ b/data/trainer_ai_pointers.asm @@ -0,0 +1,51 @@ +TrainerAIPointers: +; one entry per trainer class +; first byte, number of times (per Pokémon) it can occur +; next two bytes, pointer to AI subroutine for trainer class + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,JugglerAI ; juggler_x + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,GenericAI + dbw 3,JugglerAI ; juggler + dbw 3,GenericAI + dbw 3,GenericAI + dbw 2,BlackbeltAI ; blackbelt + dbw 3,GenericAI + dbw 3,GenericAI + dbw 1,GenericAI ; chief + dbw 3,GenericAI + dbw 1,GiovanniAI ; giovanni + dbw 3,GenericAI + dbw 2,CooltrainerMAI ; cooltrainerm + dbw 1,CooltrainerFAI ; cooltrainerf + dbw 2,BrunoAI ; bruno + dbw 5,BrockAI ; brock + dbw 1,MistyAI ; misty + dbw 1,LtSurgeAI ; surge + dbw 1,ErikaAI ; erika + dbw 2,KogaAI ; koga + dbw 2,BlaineAI ; blaine + dbw 1,SabrinaAI ; sabrina + dbw 3,GenericAI + dbw 1,Sony2AI ; sony2 + dbw 1,Sony3AI ; sony3 + dbw 2,LoreleiAI ; lorelei + dbw 3,GenericAI + dbw 2,AgathaAI ; agatha + dbw 1,LanceAI ; lance diff --git a/data/trainer_move_choices.asm b/data/trainer_move_choices.asm new file mode 100644 index 00000000..ccbae448 --- /dev/null +++ b/data/trainer_move_choices.asm @@ -0,0 +1,50 @@ +; move choice modification methods that are applied for each trainer class +; 0 is sentinel value +TrainerClassMoveChoiceModifications: + db 0 ; YOUNGSTER + db 1,0 ; BUG CATCHER + db 1,0 ; LASS + db 1,3,0 ; SAILOR + db 1,0 ; JR_TRAINER_M + db 1,0 ; JR_TRAINER_F + db 1,2,3,0; POKEMANIAC + db 1,2,0 ; SUPER_NERD + db 1,0 ; HIKER + db 1,0 ; BIKER + db 1,3,0 ; BURGLAR + db 1,0 ; ENGINEER + db 1,2,0 ; JUGGLER_X + db 1,3,0 ; FISHER + db 1,3,0 ; SWIMMER + db 0 ; CUE_BALL + db 1,0 ; GAMBLER + db 1,3,0 ; BEAUTY + db 1,2,0 ; PSYCHIC_TR + db 1,3,0 ; ROCKER + db 1,0 ; JUGGLER + db 1,0 ; TAMER + db 1,0 ; BIRD_KEEPER + db 1,0 ; BLACKBELT + db 1,0 ; SONY1 + db 1,3,0 ; PROF_OAK + db 1,2,0 ; CHIEF + db 1,2,0 ; SCIENTIST + db 1,3,0 ; GIOVANNI + db 1,0 ; ROCKET + db 1,3,0 ; COOLTRAINER_M + db 1,3,0 ; COOLTRAINER_F + db 1,0 ; BRUNO + db 1,0 ; BROCK + db 1,3,0 ; MISTY + db 1,3,0 ; LT_SURGE + db 1,3,0 ; ERIKA + db 1,3,0 ; KOGA + db 1,3,0 ; BLAINE + db 1,3,0 ; SABRINA + db 1,2,0 ; GENTLEMAN + db 1,3,0 ; SONY2 + db 1,3,0 ; SONY3 + db 1,2,3,0; LORELEI + db 1,0 ; CHANNELER + db 1,0 ; AGATHA + db 1,3,0 ; LANCE diff --git a/data/trainer_pic_money_pointers.asm b/data/trainer_pic_money_pointers.asm new file mode 100755 index 00000000..37678e74 --- /dev/null +++ b/data/trainer_pic_money_pointers.asm @@ -0,0 +1,143 @@ +TrainerPicAndMoneyPointers: +; trainer pic pointers and base money. +; money received after battle = base money × level of highest-level enemy mon + dw YoungsterPic + money 1500 + + dw BugCatcherPic + money 1000 + + dw LassPic + money 1500 + + dw SailorPic + money 3000 + + dw JrTrainerMPic + money 2000 + + dw JrTrainerFPic + money 2000 + + dw PokemaniacPic + money 5000 + + dw SuperNerdPic + money 2500 + + dw HikerPic + money 3500 + + dw BikerPic + money 2000 + + dw BurglarPic + money 9000 + + dw EngineerPic + money 5000 + + dw JugglerPic + money 3500 + + dw FisherPic + money 3500 + + dw SwimmerPic + money 500 + + dw CueBallPic + money 2500 + + dw GamblerPic + money 7000 + + dw BeautyPic + money 7000 + + dw PsychicPic + money 1000 + + dw RockerPic + money 2500 + + dw JugglerPic + money 3500 + + dw TamerPic + money 4000 + + dw BirdKeeperPic + money 2500 + + dw BlackbeltPic + money 2500 + + dw Rival1Pic + money 3500 + + dw ProfOakPic + money 9900 + + dw ChiefPic + money 3000 + + dw ScientistPic + money 5000 + + dw GiovanniPic + money 9900 + + dw RocketPic + money 3000 + + dw CooltrainerMPic + money 3500 + + dw CooltrainerFPic + money 3500 + + dw BrunoPic + money 9900 + + dw BrockPic + money 9900 + + dw MistyPic + money 9900 + + dw LtSurgePic + money 9900 + + dw ErikaPic + money 9900 + + dw KogaPic + money 9900 + + dw BlainePic + money 9900 + + dw SabrinaPic + money 9900 + + dw GentlemanPic + money 7000 + + dw Rival2Pic + money 6500 + + dw Rival3Pic + money 9900 + + dw LoreleiPic + money 9900 + + dw ChannelerPic + money 3000 + + dw AgathaPic + money 9900 + + dw LancePic + money 9900 diff --git a/data/vending_prices.asm b/data/vending_prices.asm new file mode 100644 index 00000000..9a473cc9 --- /dev/null +++ b/data/vending_prices.asm @@ -0,0 +1,7 @@ +VendingPrices: + db FRESH_WATER + money 200 + db SODA_POP + money 300 + db LEMONADE + money 350 diff --git a/data/warp_carpet_tile_ids.asm b/data/warp_carpet_tile_ids.asm new file mode 100644 index 00000000..6f312bc7 --- /dev/null +++ b/data/warp_carpet_tile_ids.asm @@ -0,0 +1,17 @@ +WarpTileListPointers: + dw .facingDownWarpTiles + dw .facingUpWarpTiles + dw .facingLeftWarpTiles + dw .facingRightWarpTiles + +.facingDownWarpTiles + db $01,$12,$17,$3D,$04,$18,$33,$FF + +.facingUpWarpTiles + db $01,$5C,$FF + +.facingLeftWarpTiles + db $1A,$4B,$FF + +.facingRightWarpTiles + db $0F,$4E,$FF diff --git a/data/warp_pad_hole_tile_ids.asm b/data/warp_pad_hole_tile_ids.asm new file mode 100644 index 00000000..3e2c1890 --- /dev/null +++ b/data/warp_pad_hole_tile_ids.asm @@ -0,0 +1,7 @@ +; format: db tileset id, tile id, value to be put in [wStandingOnWarpPadOrHole] +WarpPadAndHoleData: + db FACILITY, $20, 1 ; warp pad + db FACILITY, $11, 2 ; hole + db CAVERN, $22, 2 ; hole + db INTERIOR, $55, 1 ; warp pad + db $FF diff --git a/data/water_tilesets.asm b/data/water_tilesets.asm new file mode 100644 index 00000000..00f0ab1f --- /dev/null +++ b/data/water_tilesets.asm @@ -0,0 +1,4 @@ +; tilesets with water +WaterTilesets: + db OVERWORLD, FOREST, DOJO, GYM, SHIP, SHIP_PORT, CAVERN, FACILITY, PLATEAU + db $ff ; terminator diff --git a/data/wild_probabilities.asm b/data/wild_probabilities.asm new file mode 100644 index 00000000..9d4704c6 --- /dev/null +++ b/data/wild_probabilities.asm @@ -0,0 +1,15 @@ +WildMonEncounterSlotChances: +; There are 10 slots for wild pokemon, and this is the table that defines how common each of +; those 10 slots is. A random number is generated and then the first byte of each pair in this +; table is compared against that random number. If the random number is less than or equal +; to the first byte, then that slot is chosen. The second byte is double the slot number. + db $32, $00 ; 51/256 = 19.9% chance of slot 0 + db $65, $02 ; 51/256 = 19.9% chance of slot 1 + db $8C, $04 ; 39/256 = 15.2% chance of slot 2 + db $A5, $06 ; 25/256 = 9.8% chance of slot 3 + db $BE, $08 ; 25/256 = 9.8% chance of slot 4 + db $D7, $0A ; 25/256 = 9.8% chance of slot 5 + db $E4, $0C ; 13/256 = 5.1% chance of slot 6 + db $F1, $0E ; 13/256 = 5.1% chance of slot 7 + db $FC, $10 ; 11/256 = 4.3% chance of slot 8 + db $FF, $12 ; 3/256 = 1.2% chance of slot 9 |