Move more tables from engine/ to data/

This also splits the end of engine/battle/core.asm into engine/battle/effects.asm.
This commit is contained in:
Rangi 2020-06-23 17:50:50 -04:00
parent bdeb494add
commit 0a62d48df2
65 changed files with 2863 additions and 2825 deletions

View file

@ -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

View file

@ -0,0 +1,6 @@
HighCriticalMoves:
db KARATE_CHOP
db RAZOR_LEAF
db CRABHAMMER
db SLASH
db $FF

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,6 @@
UnusedHighCriticalMoves:
db KARATE_CHOP
db RAZOR_LEAF
db CRABHAMMER
db SLASH
db $FF

View file

@ -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

13
data/cut_tree_blocks.asm Normal file
View file

@ -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

48
data/door_tile_ids.asm Normal file
View file

@ -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

29
data/dungeon_maps.asm Normal file
View file

@ -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

87
data/effects_pointers.asm Normal file
View file

@ -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

12
data/growth_rates.asm Normal file
View file

@ -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

View file

@ -0,0 +1,2 @@
GuardDrinksList:
db FRESH_WATER, SODA_POP, LEMONADE, $00

11
data/ledge_tiles.asm Normal file
View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

14
data/move_grammar.asm Normal file
View file

@ -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

168
data/move_sfx.asm Normal file
View file

@ -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

9
data/overworld_items.asm Normal file
View file

@ -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

39
data/party_items.asm Normal file
View file

@ -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

102
data/predef_pointers.asm Normal file
View file

@ -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

5
data/rest_house_maps.asm Normal file
View file

@ -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

View file

@ -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

View file

@ -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

7
data/vending_prices.asm Normal file
View file

@ -0,0 +1,7 @@
VendingPrices:
db FRESH_WATER
money 200
db SODA_POP
money 300
db LEMONADE
money 350

View file

@ -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

View file

@ -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

4
data/water_tilesets.asm Normal file
View file

@ -0,0 +1,4 @@
; tilesets with water
WaterTilesets:
db OVERWORLD, FOREST, DOJO, GYM, SHIP, SHIP_PORT, CAVERN, FACILITY, PLATEAU
db $ff ; terminator

View file

@ -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

View file

@ -649,81 +649,7 @@ DoSpecialEffectByAnimationId:
pop hl
ret
; 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
INCLUDE "data/move_animation_special_effects.asm"
DoBallTossSpecialEffects:
ld a, [wcf91]
@ -985,87 +911,7 @@ TailWhipAnimationUnused:
ld c, 20
jp DelayFrames
; 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
INCLUDE "data/move_animation_pointers.asm"
AnimationDelay10:
ld c, 10
@ -2362,174 +2208,7 @@ IsCryMove:
scf
ret
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
INCLUDE "data/move_sfx.asm"
CopyPicTiles:
ld a, [H_WHOSETURN]

View file

@ -151,35 +151,7 @@ GetBattleTransitionID_IsDungeonMap:
res 2, c
ret
; 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
INCLUDE "data/dungeon_maps.asm"
LoadBattleTransitionTile:
ld hl, vChars1 + $7f0

View file

@ -5,7 +5,7 @@ PrintBeginningBattleText:
ld a, [wCurMap]
cp POKEMON_TOWER_3F
jr c, .notPokemonTower
cp MR_FUJIS_HOUSE
cp POKEMON_TOWER_7F + 1
jr c, .pokemonTower
.notPokemonTower
ld a, [wEnemyMonSpecies2]

File diff suppressed because it is too large Load diff

1493
engine/battle/effects.asm Normal file

File diff suppressed because it is too large Load diff

View file

@ -18,95 +18,4 @@ SaveTrainerName:
jr nz, .CopyCharacter
ret
TrainerNamePointers:
; what is the point of these?
dw YoungsterName
dw BugCatcherName
dw LassName
dw wTrainerName
dw JrTrainerMName
dw JrTrainerFName
dw PokemaniacName
dw SuperNerdName
dw wTrainerName
dw wTrainerName
dw BurglarName
dw EngineerName
dw JugglerXName
dw wTrainerName
dw SwimmerName
dw wTrainerName
dw wTrainerName
dw BeautyName
dw wTrainerName
dw RockerName
dw JugglerName
dw wTrainerName
dw wTrainerName
dw BlackbeltName
dw wTrainerName
dw ProfOakName
dw ChiefName
dw ScientistName
dw wTrainerName
dw RocketName
dw CooltrainerMName
dw CooltrainerFName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
YoungsterName:
db "YOUNGSTER@"
BugCatcherName:
db "BUG CATCHER@"
LassName:
db "LASS@"
JrTrainerMName:
db "JR.TRAINER♂@"
JrTrainerFName:
db "JR.TRAINER♀@"
PokemaniacName:
db "POKéMANIAC@"
SuperNerdName:
db "SUPER NERD@"
BurglarName:
db "BURGLAR@"
EngineerName:
db "ENGINEER@"
JugglerXName:
db "JUGGLER@"
SwimmerName:
db "SWIMMER@"
BeautyName:
db "BEAUTY@"
RockerName:
db "ROCKER@"
JugglerName:
db "JUGGLER@"
BlackbeltName:
db "BLACKBELT@"
ProfOakName:
db "PROF.OAK@"
ChiefName:
db "CHIEF@"
ScientistName:
db "SCIENTIST@"
RocketName:
db "ROCKET@"
CooltrainerMName:
db "COOLTRAINER♂@"
CooltrainerFName:
db "COOLTRAINER♀@"
INCLUDE "text/trainer_name_pointers.asm"

View file

@ -273,58 +273,9 @@ ReadMove:
pop hl
ret
; 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
INCLUDE "data/trainer_move_choices.asm"
INCLUDE "engine/battle/trainer_pic_money_pointers.asm"
INCLUDE "data/trainer_pic_money_pointers.asm"
INCLUDE "text/trainer_names.asm"
@ -368,57 +319,7 @@ TrainerAI:
call Random
jp hl
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
INCLUDE "data/trainer_ai_pointers.asm"
JugglerAI:
cp 25 percent + 1

View file

@ -101,18 +101,4 @@ TryDoWildEncounter:
xor a
ret
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
INCLUDE "data/wild_probabilities.asm"

View file

@ -146,15 +146,4 @@ CalcDSquared:
ld [H_MULTIPLIER], a
jp Multiply
; 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
INCLUDE "data/growth_rates.asm"

View file

@ -36,43 +36,7 @@ PrintBookshelfText:
ld [$ffdb], a
jpba PrintCardKeyText
; 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
INCLUDE "data/bookshelf_tile_ids.asm"
IndigoPlateauStatues:
TX_ASM

View file

@ -2881,10 +2881,7 @@ IsNextTileShoreOrWater:
and a
ret
; tilesets with water
WaterTilesets:
db OVERWORLD, FOREST, DOJO, GYM, SHIP, SHIP_PORT, CAVERN, FACILITY, PLATEAU
db $ff ; terminator
INCLUDE "data/water_tilesets.asm"
ReadSuperRodData:
; return e = 2 if no fish on this map

View file

@ -89,7 +89,7 @@ SomeonesPCText: db "SOMEONE's PC@"
BillsPCText: db "BILL's PC@"
PlayersPCText: db "'s PC@"
OaksPCText: db "PROF.OAK's PC@"
PKMNLeaguePCText: db $4a, "LEAGUE@"
PKMNLeaguePCText: db "<pkmn>LEAGUE@"
LogOffPCText: db "LOG OFF@"
BillsPC_::
@ -339,9 +339,9 @@ DisplayMonListMenu:
ret
BillsPCMenuText:
db "WITHDRAW ", $4a
next "DEPOSIT ", $4a
next "RELEASE ", $4a
db "WITHDRAW <pkmn>"
next "DEPOSIT <pkmn>"
next "RELEASE <pkmn>"
next "CHANGE BOX"
next "SEE YA!"
db "@"

View file

@ -365,11 +365,7 @@ PrintAlphabet:
ld [H_AUTOBGTRANSFERENABLED], a
jp Delay3
LowerCaseAlphabet:
db "abcdefghijklmnopqrstuvwxyz ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥UPPER CASE@"
UpperCaseAlphabet:
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥lower case@"
INCLUDE "text/alphabets.asm"
PrintNicknameAndUnderscores:
call CalcStringLength
@ -439,21 +435,7 @@ DakutensAndHandakutens:
ld [wNamingScreenLetter], a
ret
Dakutens:
db "かが", "きぎ", "くぐ", "けげ", "こご"
db "さざ", "しじ", "すず", "せぜ", "そぞ"
db "ただ", "ちぢ", "つづ", "てで", "とど"
db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
db "タダ", "チヂ", "ツヅ", "テデ", "トド"
db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
db $ff
Handakutens:
db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
db $ff
INCLUDE "text/dakutens.asm"
; calculates the length of the string at wcf4b and stores it in c
CalcStringLength:

View file

@ -446,55 +446,9 @@ CannotGetOffHereText:
TX_FAR _CannotGetOffHereText
db "@"
; 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
INCLUDE "data/party_items.asm"
; 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
INCLUDE "data/overworld_items.asm"
StartMenu_TrainerInfo:
call GBPalWhiteOut

View file

@ -130,10 +130,4 @@ LoadVendingMachineItem:
ld [hVendingMachinePrice + 2], a
ret
VendingPrices:
db FRESH_WATER
money 200
db SODA_POP
money 300
db LEMONADE
money 350
INCLUDE "data/vending_prices.asm"

View file

@ -162,146 +162,7 @@ LoadMonPartySpriteGfxWithLCDDisabled:
jr nz, .loop
jp EnableLCD
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
INCLUDE "data/mon_party_sprite_pointers.asm"
WriteMonPartySpriteOAMByPartyIndex:
; Write OAM blocks for the party mon in [hPartyMonIndex].

View file

@ -187,37 +187,7 @@ DisplayIntroNameTextBox:
.namestring
db "NAME@"
IF DEF(_RED)
DefaultNamesPlayer:
db "NEW NAME"
next "RED"
next "ASH"
next "JACK"
db "@"
DefaultNamesRival:
db "NEW NAME"
next "BLUE"
next "GARY"
next "JOHN"
db "@"
ENDC
IF DEF(_BLUE)
DefaultNamesPlayer:
db "NEW NAME"
next "BLUE"
next "GARY"
next "JOHN"
db "@"
DefaultNamesRival:
db "NEW NAME"
next "RED"
next "ASH"
next "JACK"
db "@"
ENDC
INCLUDE "text/player_names.asm"
GetDefaultName:
; a = name index
@ -243,30 +213,7 @@ GetDefaultName:
ld bc, $14
jp CopyData
IF DEF(_RED)
DefaultNamesPlayerList:
db "NEW NAME@"
db "RED@"
db "ASH@"
db "JACK@"
DefaultNamesRivalList:
db "NEW NAME@"
db "BLUE@"
db "GARY@"
db "JOHN@"
ENDC
IF DEF(_BLUE)
DefaultNamesPlayerList:
db "NEW NAME@"
db "BLUE@"
db "GARY@"
db "JOHN@"
DefaultNamesRivalList:
db "NEW NAME@"
db "RED@"
db "ASH@"
db "JACK@"
ENDC
INCLUDE "text/player_names_list.asm"
TextTerminator_6b20:
db "@"

View file

@ -248,16 +248,4 @@ ReplaceTreeTileBlock:
ld [hl], a
ret
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
INCLUDE "data/cut_tree_blocks.asm"

View file

@ -25,51 +25,4 @@ IsPlayerStandingOnDoorTile:
and a
ret
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
INCLUDE "data/door_tile_ids.asm"

View file

@ -54,17 +54,7 @@ HandleLedges:
call PlaySound
ret
; (player direction) (tile player standing on) (ledge tile) (input required)
LedgeTiles:
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
INCLUDE "data/ledge_tiles.asm"
LoadHoppingShadowOAM:
ld hl, vChars1 + $7f0

View file

@ -349,7 +349,7 @@ GetPlayerTeleportAnimFrameDelay:
IsPlayerStandingOnWarpPadOrHole:
ld b, 0
ld hl, .warpPadAndHoleData
ld hl, WarpPadAndHoleData
ld a, [wCurMapTileset]
ld c, a
.loop
@ -373,13 +373,7 @@ IsPlayerStandingOnWarpPadOrHole:
ld [wStandingOnWarpPadOrHole], a
ret
; 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
INCLUDE "data/warp_pad_hole_tile_ids.asm"
FishingAnim:
ld c, 10

View file

@ -157,12 +157,12 @@ IsWarpTileInFrontOfPlayer:
call _GetTileAndCoordsInFrontOfPlayer
ld a, [wCurMap]
cp SS_ANNE_BOW
jr z, .ssAnne5
jr z, IsSSAnneBowWarpTileInFrontOfPlayer
ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction
srl a
ld c, a
ld b, 0
ld hl, .warpTileListPointers
ld hl, WarpTileListPointers
add hl, bc
ld a, [hli]
ld h, [hl]
@ -176,33 +176,17 @@ IsWarpTileInFrontOfPlayer:
pop hl
ret
.warpTileListPointers:
dw .facingDownWarpTiles
dw .facingUpWarpTiles
dw .facingLeftWarpTiles
dw .facingRightWarpTiles
INCLUDE "data/warp_carpet_tile_ids.asm"
.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
.ssAnne5
IsSSAnneBowWarpTileInFrontOfPlayer:
ld a, [wTileInFrontOfPlayer]
cp $15
jr nz, .notSSAnne5Warp
scf
jr .done
jr IsWarpTileInFrontOfPlayer.done
.notSSAnne5Warp
and a
jr .done
jr IsWarpTileInFrontOfPlayer.done
IsPlayerStandingOnDoorTileOrWarpTile:
push hl

View file

@ -12,5 +12,4 @@ RemoveGuardDrink:
jr z, .drinkLoop
jpba RemoveItemByID
GuardDrinksList:
db FRESH_WATER, SODA_POP, LEMONADE, $00
INCLUDE "data/guard_drink_items.asm"

View file

@ -22,8 +22,4 @@ SetLastBlackoutMap:
pop hl
ret
SafariZoneRestHouses:
db SAFARI_ZONE_WEST_REST_HOUSE
db SAFARI_ZONE_EAST_REST_HOUSE
db SAFARI_ZONE_NORTH_REST_HOUSE
db -1
INCLUDE "data/rest_house_maps.asm"

View file

@ -49,105 +49,4 @@ GetPredefPointer:
ret
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
INCLUDE "data/predef_pointers.asm"

View file

@ -919,6 +919,7 @@ INCLUDE "engine/battle/moveEffects/reflect_light_screen_effect.asm"
SECTION "bankF", ROMX
INCLUDE "engine/battle/core.asm"
INCLUDE "engine/battle/effects.asm"
SECTION "bank10", ROMX

5
text/alphabets.asm Normal file
View file

@ -0,0 +1,5 @@
LowerCaseAlphabet:
db "abcdefghijklmnopqrstuvwxyz ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥UPPER CASE@"
UpperCaseAlphabet:
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/⠄,¥lower case@"

15
text/dakutens.asm Normal file
View file

@ -0,0 +1,15 @@
Dakutens:
db "かが", "きぎ", "くぐ", "けげ", "こご"
db "さざ", "しじ", "すず", "せぜ", "そぞ"
db "ただ", "ちぢ", "つづ", "てで", "とど"
db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
db "タダ", "チヂ", "ツヅ", "テデ", "トド"
db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
db $ff
Handakutens:
db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
db $ff

31
text/player_names.asm Normal file
View file

@ -0,0 +1,31 @@
IF DEF(_RED)
DefaultNamesPlayer:
db "NEW NAME"
next "RED"
next "ASH"
next "JACK"
db "@"
DefaultNamesRival:
db "NEW NAME"
next "BLUE"
next "GARY"
next "JOHN"
db "@"
ENDC
IF DEF(_BLUE)
DefaultNamesPlayer:
db "NEW NAME"
next "BLUE"
next "GARY"
next "JOHN"
db "@"
DefaultNamesRival:
db "NEW NAME"
next "RED"
next "ASH"
next "JACK"
db "@"
ENDC

View file

@ -0,0 +1,27 @@
IF DEF(_RED)
DefaultNamesPlayerList:
db "NEW NAME@"
db "RED@"
db "ASH@"
db "JACK@"
DefaultNamesRivalList:
db "NEW NAME@"
db "BLUE@"
db "GARY@"
db "JOHN@"
ENDC
IF DEF(_BLUE)
DefaultNamesPlayerList:
db "NEW NAME@"
db "BLUE@"
db "GARY@"
db "JOHN@"
DefaultNamesRivalList:
db "NEW NAME@"
db "RED@"
db "ASH@"
db "JACK@"
ENDC

7
text/stat_names.asm Normal file
View file

@ -0,0 +1,7 @@
StatsTextStrings:
db "ATTACK@"
db "DEFENSE@"
db "SPEED@"
db "SPECIAL@"
db "ACCURACY@"
db "EVADE@"

View file

@ -0,0 +1,92 @@
TrainerNamePointers:
; what is the point of these?
dw YoungsterName
dw BugCatcherName
dw LassName
dw wTrainerName
dw JrTrainerMName
dw JrTrainerFName
dw PokemaniacName
dw SuperNerdName
dw wTrainerName
dw wTrainerName
dw BurglarName
dw EngineerName
dw JugglerXName
dw wTrainerName
dw SwimmerName
dw wTrainerName
dw wTrainerName
dw BeautyName
dw wTrainerName
dw RockerName
dw JugglerName
dw wTrainerName
dw wTrainerName
dw BlackbeltName
dw wTrainerName
dw ProfOakName
dw ChiefName
dw ScientistName
dw wTrainerName
dw RocketName
dw CooltrainerMName
dw CooltrainerFName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
dw wTrainerName
YoungsterName:
db "YOUNGSTER@"
BugCatcherName:
db "BUG CATCHER@"
LassName:
db "LASS@"
JrTrainerMName:
db "JR.TRAINER♂@"
JrTrainerFName:
db "JR.TRAINER♀@"
PokemaniacName:
db "POKéMANIAC@"
SuperNerdName:
db "SUPER NERD@"
BurglarName:
db "BURGLAR@"
EngineerName:
db "ENGINEER@"
JugglerXName:
db "JUGGLER@"
SwimmerName:
db "SWIMMER@"
BeautyName:
db "BEAUTY@"
RockerName:
db "ROCKER@"
JugglerName:
db "JUGGLER@"
BlackbeltName:
db "BLACKBELT@"
ProfOakName:
db "PROF.OAK@"
ChiefName:
db "CHIEF@"
ScientistName:
db "SCIENTIST@"
RocketName:
db "ROCKET@"
CooltrainerMName:
db "COOLTRAINER♂@"
CooltrainerFName:
db "COOLTRAINER♀@"