This commit is contained in:
U-Daniel-PC\Daniel 2014-09-19 23:19:05 -04:00
commit dac95cb42b
31 changed files with 1709 additions and 1613 deletions

109
Makefile
View file

@ -1,12 +1,52 @@
# Build Red/Blue. Yellow is WIP.
roms := pokered.gbc pokeblue.gbc
.PHONY: all clean red blue yellow compare
all: $(roms)
red: pokered.gbc
blue: pokeblue.gbc
yellow: pokeyellow.gbc
versions := red blue yellow
# Header options for rgbfix.
dmg_opt = -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03
cgb_opt = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03
red_opt = $(dmg_opt) -t "POKEMON RED"
blue_opt = $(dmg_opt) -t "POKEMON BLUE"
yellow_opt = $(cgb_opt) -t "POKEMON YELLOW"
# If your default python is 3, you may want to change this to python27.
PYTHON := python PYTHON := python
# md5sum -c is used to compare rom hashes. The options may vary across platforms.
MD5 := md5sum -c --quiet MD5 := md5sum -c --quiet
# The compare target is a shortcut to check that the build matches the original roms exactly.
# This is for contributors to make sure a change didn't affect the contents of the rom.
# More thorough comparison can be made by diffing the output of hexdump -C against both roms.
compare:
@$(MD5) roms.md5
# Clear the default suffixes.
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .asm .tx .o .gbc .SUFFIXES: .asm .tx .o .gbc .png .2bpp .1bpp .pic
.PHONY: all clean red blue yellow compare
.PRECIOUS: %.2bpp # Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION: .SECONDEXPANSION:
# Suppress annoying intermediate file deletion messages.
.PRECIOUS: %.2bpp
# Filepath shortcuts to avoid overly long recipes.
poketools := extras/pokemontools poketools := extras/pokemontools
gfx := $(PYTHON) $(poketools)/gfx.py gfx := $(PYTHON) $(poketools)/gfx.py
pic := $(PYTHON) $(poketools)/pic.py pic := $(PYTHON) $(poketools)/pic.py
@ -14,8 +54,9 @@ includes := $(PYTHON) $(poketools)/scan_includes.py
pre := $(PYTHON) prequeue.py pre := $(PYTHON) prequeue.py
versions := red blue yellow
# Collect file dependencies for objects in red/, blue/ and yellow/.
# These aren't provided by rgbds by default, so we have to look for file includes ourselves.
$(foreach ver, $(versions), \ $(foreach ver, $(versions), \
$(eval $(ver)_asm := $(shell find $(ver) -iname '*.asm')) \ $(eval $(ver)_asm := $(shell find $(ver) -iname '*.asm')) \
$(eval $(ver)_obj := $($(ver)_asm:.asm=.o)) \ $(eval $(ver)_obj := $($(ver)_asm:.asm=.o)) \
@ -26,25 +67,22 @@ $(foreach obj, $(all_obj), \
) )
roms := pokered.gbc pokeblue.gbc # Image files are added to a queue to reduce build time. They're converted when building parent objects.
%.png: ;
all: $(roms) %.2bpp: %.png ; $(eval 2bppq += $<) @rm -f $@
red: pokered.gbc %.1bpp: %.png ; $(eval 1bppq += $<) @rm -f $@
blue: pokeblue.gbc %.pic: %.2bpp ; $(eval picq += $<) @rm -f $@
yellow: pokeyellow.gbc
compare:
@$(MD5) roms.md5
clean:
rm -f $(roms) $(all_obj)
find . \( -iname '*.tx' -o -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
# Source files are not fed directly into rgbasm.
# A python preprocessor runs over them first, replacing ascii strings with correct character codes.
# It spits out the new file with extension .tx.
# The text preprocessor also uses a queue.
%.asm: ; %.asm: ;
%.tx: %.asm %.tx: %.asm ; $(eval txq += $<) @rm -f $@
$(eval txq += $<)
@rm -f $@
# Assemble source files into objects.
# Queue payloads are here. These are made silent since there may be hundreds of targets.
# Use rgbasm -h to use halts without nops.
$(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep)) $(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep))
@$(pre) $(txq); $(eval txq :=) @$(pre) $(txq); $(eval txq :=)
@$(gfx) 2bpp $(2bppq); $(eval 2bppq :=) @$(gfx) 2bpp $(2bppq); $(eval 2bppq :=)
@ -53,29 +91,16 @@ $(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep))
rgbasm -h -o $@ $*.tx rgbasm -h -o $@ $*.tx
link = rgblink -n $*.sym -m $*.map # Link objects together to build a rom.
dmg_opt := -jsv -k 01 -l 0x33 -m 0x13 -p 0 -r 03
cgb_opt := -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03
pokered.gbc: $(red_obj) # Make a symfile for debugging. rgblink will segfault if a mapfile isn't made too.
link = rgblink -n poke$*.sym -m poke$*.map
poke%.gbc: $$(%_obj)
$(link) -o $@ $^ $(link) -o $@ $^
rgbfix $(dmg_opt) -t "POKEMON RED" $@ rgbfix $($*_opt) $@
pokeblue.gbc: $(blue_obj)
$(link) -o $@ $^
rgbfix $(dmg_opt) -t "POKEMON BLUE" $@
pokeyellow.gbc: $(yellow_obj)
$(link) -o $@ $^
rgbfix $(cgb_opt) -t "POKEMON YELLOW" $@
%.2bpp: %.png clean:
$(eval 2bppq += $<) rm -f $(roms) $(all_obj)
@rm -f $@ find . \( -iname '*.tx' -o -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
%.1bpp: %.png
$(eval 1bppq += $<)
@rm -f $@
%.pic: %.2bpp
$(eval picq += $<)
@rm -f $@

View file

@ -1,12 +1,3 @@
A_BUTTON EQU %00000001
B_BUTTON EQU %00000010
SELECT EQU %00000100
START EQU %00001000
D_RIGHT EQU %00010000
D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
MAX_LEVEL EQU 100 MAX_LEVEL EQU 100
NUM_MOVES EQU 4 NUM_MOVES EQU 4
@ -18,3 +9,16 @@ NUM_BOXES EQU 12
HOF_MON EQU $10 HOF_MON EQU $10
HOF_TEAM EQU PARTY_LENGTH * HOF_MON HOF_TEAM EQU PARTY_LENGTH * HOF_MON
NUM_HOF_TEAMS EQU 50 NUM_HOF_TEAMS EQU 50
A_BUTTON EQU %00000001
B_BUTTON EQU %00000010
SELECT EQU %00000100
START EQU %00001000
D_RIGHT EQU %00010000
D_LEFT EQU %00100000
D_UP EQU %01000000
D_DOWN EQU %10000000
SCREEN_WIDTH EQU 20
SCREEN_HEIGHT EQU 18

View file

@ -1,184 +1,210 @@
NUM_ATTACKS EQU $A4 const_value = 1
POUND EQU $01 const POUND
KARATE_CHOP EQU $02 const KARATE_CHOP
DOUBLESLAP EQU $03 const DOUBLESLAP
COMET_PUNCH EQU $04 const COMET_PUNCH
MEGA_PUNCH EQU $05 const MEGA_PUNCH
PAY_DAY EQU $06 const PAY_DAY
FIRE_PUNCH EQU $07 const FIRE_PUNCH
ICE_PUNCH EQU $08 const ICE_PUNCH
THUNDERPUNCH EQU $09 const THUNDERPUNCH
SCRATCH EQU $0A const SCRATCH
VICEGRIP EQU $0B const VICEGRIP
GUILLOTINE EQU $0C const GUILLOTINE
RAZOR_WIND EQU $0D const RAZOR_WIND
SWORDS_DANCE EQU $0E const SWORDS_DANCE
CUT EQU $0F const CUT
GUST EQU $10 const GUST
WING_ATTACK EQU $11 const WING_ATTACK
WHIRLWIND EQU $12 const WHIRLWIND
FLY EQU $13 const FLY
BIND EQU $14 const BIND
SLAM EQU $15 const SLAM
VINE_WHIP EQU $16 const VINE_WHIP
STOMP EQU $17 const STOMP
DOUBLE_KICK EQU $18 const DOUBLE_KICK
MEGA_KICK EQU $19 const MEGA_KICK
JUMP_KICK EQU $1A const JUMP_KICK
ROLLING_KICK EQU $1B const ROLLING_KICK
SAND_ATTACK EQU $1C const SAND_ATTACK
HEADBUTT EQU $1D const HEADBUTT
HORN_ATTACK EQU $1E const HORN_ATTACK
FURY_ATTACK EQU $1F const FURY_ATTACK
HORN_DRILL EQU $20 const HORN_DRILL
TACKLE EQU $21 const TACKLE
BODY_SLAM EQU $22 const BODY_SLAM
WRAP EQU $23 const WRAP
TAKE_DOWN EQU $24 const TAKE_DOWN
THRASH EQU $25 const THRASH
DOUBLE_EDGE EQU $26 const DOUBLE_EDGE
TAIL_WHIP EQU $27 const TAIL_WHIP
POISON_STING EQU $28 const POISON_STING
TWINEEDLE EQU $29 const TWINEEDLE
PIN_MISSILE EQU $2A const PIN_MISSILE
LEER EQU $2B const LEER
BITE EQU $2C const BITE
GROWL EQU $2D const GROWL
ROAR EQU $2E const ROAR
SING EQU $2F const SING
SUPERSONIC EQU $30 const SUPERSONIC
SONICBOOM EQU $31 const SONICBOOM
DISABLE EQU $32 const DISABLE
ACID EQU $33 const ACID
EMBER EQU $34 const EMBER
FLAMETHROWER EQU $35 const FLAMETHROWER
MIST EQU $36 const MIST
WATER_GUN EQU $37 const WATER_GUN
HYDRO_PUMP EQU $38 const HYDRO_PUMP
SURF EQU $39 const SURF
ICE_BEAM EQU $3A const ICE_BEAM
BLIZZARD EQU $3B const BLIZZARD
PSYBEAM EQU $3C const PSYBEAM
BUBBLEBEAM EQU $3D const BUBBLEBEAM
AURORA_BEAM EQU $3E const AURORA_BEAM
HYPER_BEAM EQU $3F const HYPER_BEAM
PECK EQU $40 const PECK
DRILL_PECK EQU $41 const DRILL_PECK
SUBMISSION EQU $42 const SUBMISSION
LOW_KICK EQU $43 const LOW_KICK
COUNTER EQU $44 const COUNTER
SEISMIC_TOSS EQU $45 const SEISMIC_TOSS
STRENGTH EQU $46 const STRENGTH
ABSORB EQU $47 const ABSORB
MEGA_DRAIN EQU $48 const MEGA_DRAIN
LEECH_SEED EQU $49 const LEECH_SEED
GROWTH EQU $4A const GROWTH
RAZOR_LEAF EQU $4B const RAZOR_LEAF
SOLARBEAM EQU $4C const SOLARBEAM
POISONPOWDER EQU $4D const POISONPOWDER
STUN_SPORE EQU $4E const STUN_SPORE
SLEEP_POWDER EQU $4F const SLEEP_POWDER
PETAL_DANCE EQU $50 const PETAL_DANCE
STRING_SHOT EQU $51 const STRING_SHOT
DRAGON_RAGE EQU $52 const DRAGON_RAGE
FIRE_SPIN EQU $53 const FIRE_SPIN
THUNDERSHOCK EQU $54 const THUNDERSHOCK
THUNDERBOLT EQU $55 const THUNDERBOLT
THUNDER_WAVE EQU $56 const THUNDER_WAVE
THUNDER EQU $57 const THUNDER
ROCK_THROW EQU $58 const ROCK_THROW
EARTHQUAKE EQU $59 const EARTHQUAKE
FISSURE EQU $5A const FISSURE
DIG EQU $5B const DIG
TOXIC EQU $5C const TOXIC
CONFUSION EQU $5D const CONFUSION
PSYCHIC_M EQU $5E const PSYCHIC_M
HYPNOSIS EQU $5F const HYPNOSIS
MEDITATE EQU $60 const MEDITATE
AGILITY EQU $61 const AGILITY
QUICK_ATTACK EQU $62 const QUICK_ATTACK
RAGE EQU $63 const RAGE
TELEPORT EQU $64 const TELEPORT
NIGHT_SHADE EQU $65 const NIGHT_SHADE
MIMIC EQU $66 const MIMIC
SCREECH EQU $67 const SCREECH
DOUBLE_TEAM EQU $68 const DOUBLE_TEAM
RECOVER EQU $69 const RECOVER
HARDEN EQU $6A const HARDEN
MINIMIZE EQU $6B const MINIMIZE
SMOKESCREEN EQU $6C const SMOKESCREEN
CONFUSE_RAY EQU $6D const CONFUSE_RAY
WITHDRAW EQU $6E const WITHDRAW
DEFENSE_CURL EQU $6F const DEFENSE_CURL
BARRIER EQU $70 const BARRIER
LIGHT_SCREEN EQU $71 const LIGHT_SCREEN
HAZE EQU $72 const HAZE
REFLECT EQU $73 const REFLECT
FOCUS_ENERGY EQU $74 const FOCUS_ENERGY
BIDE EQU $75 const BIDE
METRONOME EQU $76 const METRONOME
MIRROR_MOVE EQU $77 const MIRROR_MOVE
SELFDESTRUCT EQU $78 const SELFDESTRUCT
EGG_BOMB EQU $79 const EGG_BOMB
LICK EQU $7A const LICK
SMOG EQU $7B const SMOG
SLUDGE EQU $7C const SLUDGE
BONE_CLUB EQU $7D const BONE_CLUB
FIRE_BLAST EQU $7E const FIRE_BLAST
WATERFALL EQU $7F const WATERFALL
CLAMP EQU $80 const CLAMP
SWIFT EQU $81 const SWIFT
SKULL_BASH EQU $82 const SKULL_BASH
SPIKE_CANNON EQU $83 const SPIKE_CANNON
CONSTRICT EQU $84 const CONSTRICT
AMNESIA EQU $85 const AMNESIA
KINESIS EQU $86 const KINESIS
SOFTBOILED EQU $87 const SOFTBOILED
HI_JUMP_KICK EQU $88 const HI_JUMP_KICK
GLARE EQU $89 const GLARE
DREAM_EATER EQU $8A const DREAM_EATER
POISON_GAS EQU $8B const POISON_GAS
BARRAGE EQU $8C const BARRAGE
LEECH_LIFE EQU $8D const LEECH_LIFE
LOVELY_KISS EQU $8E const LOVELY_KISS
SKY_ATTACK EQU $8F const SKY_ATTACK
TRANSFORM EQU $90 const TRANSFORM
BUBBLE EQU $91 const BUBBLE
DIZZY_PUNCH EQU $92 const DIZZY_PUNCH
SPORE EQU $93 const SPORE
FLASH EQU $94 const FLASH
PSYWAVE EQU $95 const PSYWAVE
SPLASH EQU $96 const SPLASH
ACID_ARMOR EQU $97 const ACID_ARMOR
CRABHAMMER EQU $98 const CRABHAMMER
EXPLOSION EQU $99 const EXPLOSION
FURY_SWIPES EQU $9A const FURY_SWIPES
BONEMERANG EQU $9B const BONEMERANG
REST EQU $9C const REST
ROCK_SLIDE EQU $9D const ROCK_SLIDE
HYPER_FANG EQU $9E const HYPER_FANG
SHARPEN EQU $9F const SHARPEN
CONVERSION EQU $A0 const CONVERSION
TRI_ATTACK EQU $A1 const TRI_ATTACK
SUPER_FANG EQU $A2 const SUPER_FANG
SLASH EQU $A3 const SLASH
SUBSTITUTE EQU $A4 const SUBSTITUTE
STRUGGLE EQU $A5
; these do double duty as animation identifiers NUM_ATTACKS EQU const_value + -1
SHOWPIC_ANIM EQU $A6 ; redraw monster pic
STATUS_AFFECTED_ANIM EQU $A7 ; effect when monster receives a status aliment const STRUGGLE
XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special
BURN_PSN_ANIM EQU $BA ; Plays when a monster is burned or poisoned ; Moves do double duty as animation identifiers.
SLP_ANIM EQU $BD ; sleeping monster
CONF_ANIM EQU $BF ; confused monster const SHOWPIC_ANIM
TOSS_ANIM EQU $C1 ; toss Poké Ball const STATUS_AFFECTED_ANIM
SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster const ANIM_A8
POOF_ANIM EQU $C3 ; puff of smoke const ANIM_A9
BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball const ANIM_AA
GREATTOSS_ANIM EQU $C5 ; toss Great Ball const ANIM_AB
ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball const ANIM_AC
HIDEPIC_ANIM EQU $C8 ; monster disappears const ANIM_AD
ROCK_ANIM EQU $C9 ; throw rock const XSTATITEM_ANIM ; use X Attack/Defense/Speed/Special
BAIT_ANIM EQU $CA ; throw bait const ANIM_AF
const ANIM_B0
const ANIM_B1
const ANIM_B2
const ANIM_B3
const ANIM_B4
const ANIM_B5
const ANIM_B6
const ANIM_B7
const ANIM_B8
const ANIM_B9
const BURN_PSN_ANIM ; Plays when a monster is burned or poisoned
const ANIM_BB
const ANIM_BC
const SLP_ANIM ; sleeping monster
const ANIM_BE
const CONF_ANIM ; confused monster
const ANIM_C0
const TOSS_ANIM ; toss Poké Ball
const SHAKE_ANIM ; shaking Poké Ball when catching monster
const POOF_ANIM ; puff of smoke
const BLOCKBALL_ANIM ; trainer knocks away Poké Ball
const GREATTOSS_ANIM ; toss Great Ball
const ULTRATOSS_ANIM ; toss Ultra Ball or Master Ball
const ANIM_C7
const HIDEPIC_ANIM ; monster disappears
const ROCK_ANIM ; throw rock
const BAIT_ANIM ; throw bait

View file

@ -1,168 +1,177 @@
Moves: ; 38000 (e:4000) Moves:
; characteristics of each move ; Characteristics of each move.
; animation, effect, power, type, accuracy, PP
db POUND ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35 move: macro
db KARATE_CHOP ,NO_ADDITIONAL_EFFECT ,$32,NORMAL, $FF,25 db \1 ; animation (interchangeable with move id)
db DOUBLESLAP ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,10 db \2 ; effect
db COMET_PUNCH ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL, $D8,15 db \3 ; power
db MEGA_PUNCH ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $D8,20 db \4 ; type
db PAY_DAY ,PAY_DAY_EFFECT ,$28,NORMAL, $FF,20 db \5 percent ; accuracy
db FIRE_PUNCH ,BURN_SIDE_EFFECT1 ,$4B,FIRE, $FF,15 db \6 ; pp
db ICE_PUNCH ,FREEZE_SIDE_EFFECT ,$4B,ICE, $FF,15 endm
db THUNDERPUNCH,PARALYZE_SIDE_EFFECT1 ,$4B,ELECTRIC,$FF,15
db SCRATCH ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35 move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
db VICEGRIP ,NO_ADDITIONAL_EFFECT ,$37,NORMAL, $FF,30 move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25
db GUILLOTINE ,OHKO_EFFECT ,$01,NORMAL, $4C,5 move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10
db RAZOR_WIND ,CHARGE_EFFECT ,$50,NORMAL, $BF,10 move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15
db SWORDS_DANCE,ATTACK_UP2_EFFECT ,$00,NORMAL, $FF,30 move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20
db CUT ,NO_ADDITIONAL_EFFECT ,$32,NORMAL, $F2,30 move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20
db GUST ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35 move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15
db WING_ATTACK ,NO_ADDITIONAL_EFFECT ,$23,FLYING, $FF,35 move ICE_PUNCH, FREEZE_SIDE_EFFECT, 75, ICE, 100, 15
db WHIRLWIND ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL, $D8,20 move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15
db FLY ,FLY_EFFECT ,$46,FLYING, $F2,15 move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
db BIND ,TRAPPING_EFFECT ,$0F,NORMAL, $BF,20 move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30
db SLAM ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $BF,20 move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5
db VINE_WHIP ,NO_ADDITIONAL_EFFECT ,$23,GRASS, $FF,10 move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10
db STOMP ,FLINCH_SIDE_EFFECT2 ,$41,NORMAL, $FF,20 move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30
db DOUBLE_KICK ,ATTACK_TWICE_EFFECT ,$1E,FIGHTING,$FF,30 move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30
db MEGA_KICK ,NO_ADDITIONAL_EFFECT ,$78,NORMAL, $BF,5 move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
db JUMP_KICK ,JUMP_KICK_EFFECT ,$46,FIGHTING,$F2,25 move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
db ROLLING_KICK,FLINCH_SIDE_EFFECT2 ,$3C,FIGHTING,$D8,15 move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20
db SAND_ATTACK ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $FF,15 move FLY, FLY_EFFECT, 70, FLYING, 95, 15
db HEADBUTT ,FLINCH_SIDE_EFFECT2 ,$46,NORMAL, $FF,15 move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20
db HORN_ATTACK ,NO_ADDITIONAL_EFFECT ,$41,NORMAL, $FF,25 move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20
db FURY_ATTACK ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,20 move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10
db HORN_DRILL ,OHKO_EFFECT ,$01,NORMAL, $4C,5 move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20
db TACKLE ,NO_ADDITIONAL_EFFECT ,$23,NORMAL, $F2,35 move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30
db BODY_SLAM ,PARALYZE_SIDE_EFFECT2 ,$55,NORMAL, $FF,15 move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5
db WRAP ,TRAPPING_EFFECT ,$0F,NORMAL, $D8,20 move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25
db TAKE_DOWN ,RECOIL_EFFECT ,$5A,NORMAL, $D8,20 move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15
db THRASH ,THRASH_PETAL_DANCE_EFFECT ,$5A,NORMAL, $FF,20 move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15
db DOUBLE_EDGE ,RECOIL_EFFECT ,$64,NORMAL, $FF,15 move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15
db TAIL_WHIP ,DEFENSE_DOWN1_EFFECT ,$00,NORMAL, $FF,30 move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25
db POISON_STING,POISON_SIDE_EFFECT1 ,$0F,POISON, $FF,35 move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
db TWINEEDLE ,TWINEEDLE_EFFECT ,$19,BUG, $FF,20 move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5
db PIN_MISSILE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0E,BUG, $D8,20 move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35
db LEER ,DEFENSE_DOWN1_EFFECT ,$00,NORMAL, $FF,30 move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15
db BITE ,FLINCH_SIDE_EFFECT1 ,$3C,NORMAL, $FF,25 move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20
db GROWL ,ATTACK_DOWN1_EFFECT ,$00,NORMAL, $FF,40 move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20
db ROAR ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL, $FF,20 move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20
db SING ,SLEEP_EFFECT ,$00,NORMAL, $8C,15 move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15
db SUPERSONIC ,CONFUSION_EFFECT ,$00,NORMAL, $8C,20 move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
db SONICBOOM ,SPECIAL_DAMAGE_EFFECT ,$01,NORMAL, $E5,20 move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35
db DISABLE ,DISABLE_EFFECT ,$00,NORMAL, $8C,20 move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20
db ACID ,DEFENSE_DOWN_SIDE_EFFECT ,$28,POISON, $FF,30 move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20
db EMBER ,BURN_SIDE_EFFECT1 ,$28,FIRE, $FF,25 move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
db FLAMETHROWER,BURN_SIDE_EFFECT1 ,$5F,FIRE, $FF,15 move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25
db MIST ,MIST_EFFECT ,$00,ICE, $FF,30 move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40
db WATER_GUN ,NO_ADDITIONAL_EFFECT ,$28,WATER, $FF,25 move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20
db HYDRO_PUMP ,NO_ADDITIONAL_EFFECT ,$78,WATER, $CC,5 move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15
db SURF ,NO_ADDITIONAL_EFFECT ,$5F,WATER, $FF,15 move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20
db ICE_BEAM ,FREEZE_SIDE_EFFECT ,$5F,ICE, $FF,10 move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20
db BLIZZARD ,FREEZE_SIDE_EFFECT ,$78,ICE, $E5,5 move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20
db PSYBEAM ,CONFUSION_SIDE_EFFECT ,$41,PSYCHIC, $FF,20 move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30
db BUBBLEBEAM ,SPEED_DOWN_SIDE_EFFECT ,$41,WATER, $FF,20 move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25
db AURORA_BEAM ,ATTACK_DOWN_SIDE_EFFECT ,$41,ICE, $FF,20 move FLAMETHROWER, BURN_SIDE_EFFECT1, 95, FIRE, 100, 15
db HYPER_BEAM ,HYPER_BEAM_EFFECT ,$96,NORMAL, $E5,5 move MIST, MIST_EFFECT, 0, ICE, 100, 30
db PECK ,NO_ADDITIONAL_EFFECT ,$23,FLYING, $FF,35 move WATER_GUN, NO_ADDITIONAL_EFFECT, 40, WATER, 100, 25
db DRILL_PECK ,NO_ADDITIONAL_EFFECT ,$50,FLYING, $FF,20 move HYDRO_PUMP, NO_ADDITIONAL_EFFECT, 120, WATER, 80, 5
db SUBMISSION ,RECOIL_EFFECT ,$50,FIGHTING,$CC,25 move SURF, NO_ADDITIONAL_EFFECT, 95, WATER, 100, 15
db LOW_KICK ,FLINCH_SIDE_EFFECT2 ,$32,FIGHTING,$E5,20 move ICE_BEAM, FREEZE_SIDE_EFFECT, 95, ICE, 100, 10
db COUNTER ,NO_ADDITIONAL_EFFECT ,$01,FIGHTING,$FF,20 move BLIZZARD, FREEZE_SIDE_EFFECT, 120, ICE, 90, 5
db SEISMIC_TOSS,SPECIAL_DAMAGE_EFFECT ,$01,FIGHTING,$FF,20 move PSYBEAM, CONFUSION_SIDE_EFFECT, 65, PSYCHIC, 100, 20
db STRENGTH ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $FF,15 move BUBBLEBEAM, SPEED_DOWN_SIDE_EFFECT, 65, WATER, 100, 20
db ABSORB ,DRAIN_HP_EFFECT ,$14,GRASS, $FF,20 move AURORA_BEAM, ATTACK_DOWN_SIDE_EFFECT, 65, ICE, 100, 20
db MEGA_DRAIN ,DRAIN_HP_EFFECT ,$28,GRASS, $FF,10 move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5
db LEECH_SEED ,LEECH_SEED_EFFECT ,$00,GRASS, $E5,10 move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
db GROWTH ,SPECIAL_UP1_EFFECT ,$00,NORMAL, $FF,40 move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20
db RAZOR_LEAF ,NO_ADDITIONAL_EFFECT ,$37,GRASS, $F2,25 move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25
db SOLARBEAM ,CHARGE_EFFECT ,$78,GRASS, $FF,10 move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20
db POISONPOWDER,POISON_EFFECT ,$00,POISON, $BF,35 move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20
db STUN_SPORE ,PARALYZE_EFFECT ,$00,GRASS, $BF,30 move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20
db SLEEP_POWDER,SLEEP_EFFECT ,$00,GRASS, $BF,15 move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15
db PETAL_DANCE ,THRASH_PETAL_DANCE_EFFECT ,$46,GRASS, $FF,20 move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20
db STRING_SHOT ,SPEED_DOWN1_EFFECT ,$00,BUG, $F2,40 move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10
db DRAGON_RAGE ,SPECIAL_DAMAGE_EFFECT ,$01,DRAGON, $FF,10 move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10
db FIRE_SPIN ,TRAPPING_EFFECT ,$0F,FIRE, $B2,15 move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40
db THUNDERSHOCK,PARALYZE_SIDE_EFFECT1 ,$28,ELECTRIC,$FF,30 move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25
db THUNDERBOLT ,PARALYZE_SIDE_EFFECT1 ,$5F,ELECTRIC,$FF,15 move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10
db THUNDER_WAVE,PARALYZE_EFFECT ,$00,ELECTRIC,$FF,20 move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35
db THUNDER ,PARALYZE_SIDE_EFFECT1 ,$78,ELECTRIC,$B2,10 move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30
db ROCK_THROW ,NO_ADDITIONAL_EFFECT ,$32,ROCK, $A5,15 move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15
db EARTHQUAKE ,NO_ADDITIONAL_EFFECT ,$64,GROUND, $FF,10 move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20
db FISSURE ,OHKO_EFFECT ,$01,GROUND, $4C,5 move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40
db DIG ,CHARGE_EFFECT ,$64,GROUND, $FF,10 move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10
db TOXIC ,POISON_EFFECT ,$00,POISON, $D8,10 move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15
db CONFUSION ,CONFUSION_SIDE_EFFECT ,$32,PSYCHIC, $FF,25 move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30
db PSYCHIC_M ,SPECIAL_DOWN_SIDE_EFFECT ,$5A,PSYCHIC, $FF,10 move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15
db HYPNOSIS ,SLEEP_EFFECT ,$00,PSYCHIC, $99,20 move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20
db MEDITATE ,ATTACK_UP1_EFFECT ,$00,PSYCHIC, $FF,40 move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10
db AGILITY ,SPEED_UP2_EFFECT ,$00,PSYCHIC, $FF,30 move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15
db QUICK_ATTACK,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,30 move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10
db RAGE ,RAGE_EFFECT ,$14,NORMAL, $FF,20 move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5
db TELEPORT ,SWITCH_AND_TELEPORT_EFFECT,$00,PSYCHIC, $FF,20 move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10
db NIGHT_SHADE ,SPECIAL_DAMAGE_EFFECT ,$00,GHOST, $FF,15 move TOXIC, POISON_EFFECT, 0, POISON, 85, 10
db MIMIC ,MIMIC_EFFECT ,$00,NORMAL, $FF,10 move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC, 100, 25
db SCREECH ,DEFENSE_DOWN2_EFFECT ,$00,NORMAL, $D8,40 move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC, 100, 10
db DOUBLE_TEAM ,EVASION_UP1_EFFECT ,$00,NORMAL, $FF,15 move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC, 60, 20
db RECOVER ,HEAL_EFFECT ,$00,NORMAL, $FF,20 move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC, 100, 40
db HARDEN ,DEFENSE_UP1_EFFECT ,$00,NORMAL, $FF,30 move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC, 100, 30
db MINIMIZE ,EVASION_UP1_EFFECT ,$00,NORMAL, $FF,20 move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30
db SMOKESCREEN ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $FF,20 move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20
db CONFUSE_RAY ,CONFUSION_EFFECT ,$00,GHOST, $FF,10 move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC, 100, 20
db WITHDRAW ,DEFENSE_UP1_EFFECT ,$00,WATER, $FF,40 move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15
db DEFENSE_CURL,DEFENSE_UP1_EFFECT ,$00,NORMAL, $FF,40 move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10
db BARRIER ,DEFENSE_UP2_EFFECT ,$00,PSYCHIC, $FF,30 move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40
db LIGHT_SCREEN,LIGHT_SCREEN_EFFECT ,$00,PSYCHIC, $FF,30 move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15
db HAZE ,HAZE_EFFECT ,$00,ICE, $FF,30 move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20
db REFLECT ,REFLECT_EFFECT ,$00,PSYCHIC, $FF,20 move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30
db FOCUS_ENERGY,FOCUS_ENERGY_EFFECT ,$00,NORMAL, $FF,30 move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20
db BIDE ,BIDE_EFFECT ,$00,NORMAL, $FF,10 move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20
db METRONOME ,METRONOME_EFFECT ,$00,NORMAL, $FF,10 move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10
db MIRROR_MOVE ,MIRROR_MOVE_EFFECT ,$00,FLYING, $FF,20 move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40
db SELFDESTRUCT,EXPLODE_EFFECT ,$82,NORMAL, $FF,5 move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40
db EGG_BOMB ,NO_ADDITIONAL_EFFECT ,$64,NORMAL, $BF,10 move BARRIER, DEFENSE_UP2_EFFECT, 0, PSYCHIC, 100, 30
db LICK ,PARALYZE_SIDE_EFFECT2 ,$14,GHOST, $FF,30 move LIGHT_SCREEN, LIGHT_SCREEN_EFFECT, 0, PSYCHIC, 100, 30
db SMOG ,POISON_SIDE_EFFECT2 ,$14,POISON, $B2,20 move HAZE, HAZE_EFFECT, 0, ICE, 100, 30
db SLUDGE ,POISON_SIDE_EFFECT2 ,$41,POISON, $FF,20 move REFLECT, REFLECT_EFFECT, 0, PSYCHIC, 100, 20
db BONE_CLUB ,FLINCH_SIDE_EFFECT1 ,$41,GROUND, $D8,20 move FOCUS_ENERGY, FOCUS_ENERGY_EFFECT, 0, NORMAL, 100, 30
db FIRE_BLAST ,BURN_SIDE_EFFECT2 ,$78,FIRE, $D8,5 move BIDE, BIDE_EFFECT, 0, NORMAL, 100, 10
db WATERFALL ,NO_ADDITIONAL_EFFECT ,$50,WATER, $FF,15 move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10
db CLAMP ,TRAPPING_EFFECT ,$23,WATER, $BF,10 move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20
db SWIFT ,SWIFT_EFFECT ,$3C,NORMAL, $FF,20 move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5
db SKULL_BASH ,CHARGE_EFFECT ,$64,NORMAL, $FF,15 move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10
db SPIKE_CANNON,TWO_TO_FIVE_ATTACKS_EFFECT,$14,NORMAL, $FF,15 move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30
db CONSTRICT ,SPEED_DOWN_SIDE_EFFECT ,$0A,NORMAL, $FF,35 move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20
db AMNESIA ,SPECIAL_UP2_EFFECT ,$00,PSYCHIC, $FF,20 move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20
db KINESIS ,ACCURACY_DOWN1_EFFECT ,$00,PSYCHIC, $CC,15 move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20
db SOFTBOILED ,HEAL_EFFECT ,$00,NORMAL, $FF,10 move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5
db HI_JUMP_KICK,JUMP_KICK_EFFECT ,$55,FIGHTING,$E5,20 move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15
db GLARE ,PARALYZE_EFFECT ,$00,NORMAL, $BF,30 move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10
db DREAM_EATER ,DREAM_EATER_EFFECT ,$64,PSYCHIC, $FF,15 move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20
db POISON_GAS ,POISON_EFFECT ,$00,POISON, $8C,40 move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15
db BARRAGE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,20 move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15
db LEECH_LIFE ,DRAIN_HP_EFFECT ,$14,BUG, $FF,15 move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35
db LOVELY_KISS ,SLEEP_EFFECT ,$00,NORMAL, $BF,10 move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC, 100, 20
db SKY_ATTACK ,CHARGE_EFFECT ,$8C,FLYING, $E5,5 move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC, 80, 15
db TRANSFORM ,TRANSFORM_EFFECT ,$00,NORMAL, $FF,10 move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10
db BUBBLE ,SPEED_DOWN_SIDE_EFFECT ,$14,WATER, $FF,30 move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20
db DIZZY_PUNCH ,NO_ADDITIONAL_EFFECT ,$46,NORMAL, $FF,10 move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30
db SPORE ,SLEEP_EFFECT ,$00,GRASS, $FF,15 move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC, 100, 15
db FLASH ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $B2,20 move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40
db PSYWAVE ,SPECIAL_DAMAGE_EFFECT ,$01,PSYCHIC, $CC,15 move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
db SPLASH ,SPLASH_EFFECT ,$00,NORMAL, $FF,40 move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15
db ACID_ARMOR ,DEFENSE_UP2_EFFECT ,$00,POISON, $FF,40 move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10
db CRABHAMMER ,NO_ADDITIONAL_EFFECT ,$5A,WATER, $D8,10 move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5
db EXPLOSION ,EXPLODE_EFFECT ,$AA,NORMAL, $FF,5 move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10
db FURY_SWIPES ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL, $CC,15 move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30
db BONEMERANG ,ATTACK_TWICE_EFFECT ,$32,GROUND, $E5,10 move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10
db REST ,HEAL_EFFECT ,$00,PSYCHIC, $FF,10 move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15
db ROCK_SLIDE ,NO_ADDITIONAL_EFFECT ,$4B,ROCK, $E5,10 move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20
db HYPER_FANG ,FLINCH_SIDE_EFFECT1 ,$50,NORMAL, $E5,15 move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC, 80, 15
db SHARPEN ,ATTACK_UP1_EFFECT ,$00,NORMAL, $FF,30 move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40
db CONVERSION ,CONVERSION_EFFECT ,$00,NORMAL, $FF,30 move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40
db TRI_ATTACK ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $FF,10 move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10
db SUPER_FANG ,SUPER_FANG_EFFECT ,$01,NORMAL, $E5,10 move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5
db SLASH ,NO_ADDITIONAL_EFFECT ,$46,NORMAL, $FF,20 move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15
db SUBSTITUTE ,SUBSTITUTE_EFFECT ,$00,NORMAL, $FF,10 move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 10
db STRUGGLE ,RECOIL_EFFECT ,$32,NORMAL, $FF,10 move REST, HEAL_EFFECT, 0, PSYCHIC, 100, 10
move ROCK_SLIDE, NO_ADDITIONAL_EFFECT, 75, ROCK, 90, 10
move HYPER_FANG, FLINCH_SIDE_EFFECT1, 80, NORMAL, 90, 15
move SHARPEN, ATTACK_UP1_EFFECT, 0, NORMAL, 100, 30
move CONVERSION, CONVERSION_EFFECT, 0, NORMAL, 100, 30
move TRI_ATTACK, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 10
move SUPER_FANG, SUPER_FANG_EFFECT, 1, NORMAL, 90, 10
move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20
move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10
move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10

View file

@ -391,7 +391,7 @@ GetTrainerName_: ; 13a58 (4:7a58)
ld [wd0b5], a ld [wd0b5], a
ld a, TRAINER_NAME ld a, TRAINER_NAME
ld [W_LISTTYPE], a ld [W_LISTTYPE], a
ld a, $e ld a, BANK(TrainerNames)
ld [wPredefBank], a ld [wPredefBank], a
call GetName call GetName
ld hl, wcd6d ld hl, wcd6d

View file

@ -525,9 +525,9 @@ Func_78e23: ; 78e23 (1e:4e23)
ld [wcc79], a ld [wcc79], a
ld b, $e4 ld b, $e4
ld a, [W_ANIMATIONID] ; W_ANIMATIONID ld a, [W_ANIMATIONID] ; W_ANIMATIONID
cp $aa cp ANIM_AA
jr c, .asm_78e3f jr c, .asm_78e3f
cp $ae cp ANIM_AD + 1
jr nc, .asm_78e3f jr nc, .asm_78e3f
ld b, $f0 ld b, $f0
.asm_78e3f .asm_78e3f
@ -697,13 +697,13 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
db ROCK_SLIDE db ROCK_SLIDE
dw DoRockSlideSpecialEffects dw DoRockSlideSpecialEffects
db $AA db ANIM_AA
dw Func_79041 dw Func_79041
db $AB db ANIM_AB
dw Func_7904c dw Func_7904c
db $AC db ANIM_AC
dw Func_7907c dw Func_7907c
db TOSS_ANIM db TOSS_ANIM
@ -2855,10 +2855,10 @@ TossBallAnimation: ; 79e16 (1e:5e16)
.PokeBallAnimations: ; 79e50 (1e:5e50) .PokeBallAnimations: ; 79e50 (1e:5e50)
; sequence of animations that make up the Poké Ball toss ; sequence of animations that make up the Poké Ball toss
db POOF_ANIM,HIDEPIC_ANIM,$C2,POOF_ANIM,SHOWPIC_ANIM db POOF_ANIM,HIDEPIC_ANIM,SHAKE_ANIM,POOF_ANIM,SHOWPIC_ANIM
.BlockBall ; 5E55 .BlockBall ; 5E55
ld a,$C1 ld a,TOSS_ANIM
ld [W_ANIMATIONID],a ld [W_ANIMATIONID],a
call PlayAnimation call PlayAnimation
ld a,(SFX_08_43 - SFX_Headers_08) / 3 ld a,(SFX_08_43 - SFX_Headers_08) / 3

View file

@ -2184,7 +2184,9 @@ asm_3d00e: ; 3d00e (f:500e)
jr Func_3d03c jr Func_3d03c
OldManItemList: ; 3d02d (f:502d) OldManItemList: ; 3d02d (f:502d)
db $01, POKE_BALL, 50, $ff db 1 ; # items
db POKE_BALL, 50
db -1
Func_3d031 Func_3d031
ld hl, wNumBagItems ; wNumBagItems ld hl, wNumBagItems ; wNumBagItems
@ -5471,7 +5473,7 @@ asm_3e70b: ; 3e70b (f:670b)
res 6, [hl] ; no longer invulnerable to typcial attacks res 6, [hl] ; no longer invulnerable to typcial attacks
ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
ld [wd0b5], a ld [wd0b5], a
ld a, $2c ld a, BANK(MoveNames)
ld [wPredefBank], a ld [wPredefBank], a
ld a, MOVE_NAME ld a, MOVE_NAME
ld [W_LISTTYPE], a ld [W_LISTTYPE], a
@ -5950,10 +5952,11 @@ GetCurrentMove: ; 3eabe (f:6abe)
call AddNTimes call AddNTimes
ld a, BANK(Moves) ld a, BANK(Moves)
call FarCopyData call FarCopyData
ld a, $2c
ld a, BANK(MoveNames)
ld [wPredefBank], a ld [wPredefBank], a
ld a, $2 ld a, MOVE_NAME
ld [W_LISTTYPE], a ; list type 2 = move name ld [W_LISTTYPE], a
call GetName call GetName
ld de, wcd6d ld de, wcd6d
jp CopyStringToCF4B jp CopyStringToCF4B
@ -7059,16 +7062,16 @@ PoisonEffect: ; 3f24f (f:724f)
dec de dec de
ld a, [H_WHOSETURN] ; $fff3 ld a, [H_WHOSETURN] ; $fff3
and a and a
ld b, $c7 ld b, ANIM_C7
ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3 ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
ld a, [de] ld a, [de]
ld de, W_PLAYERTOXICCOUNTER ; wd06c ld de, W_PLAYERTOXICCOUNTER ; wd06c
jr nz, .asm_3f2b0 jr nz, .asm_3f2b0
ld b, $a9 ld b, ANIM_A9
ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3 ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
ld de, W_ENEMYTOXICCOUNTER ; wd071 ld de, W_ENEMYTOXICCOUNTER ; wd071
.asm_3f2b0 .asm_3f2b0
cp $5c cp TOXIC
jr nz, .asm_3f2bd jr nz, .asm_3f2bd
set 0, [hl] set 0, [hl]
xor a xor a
@ -7170,14 +7173,14 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
ld a, 1 << PAR ld a, 1 << PAR
ld [wEnemyMonStatus], a ld [wEnemyMonStatus], a
call Func_3ed27 ;quarter speed of affected monster call Func_3ed27 ;quarter speed of affected monster
ld a, $a9 ld a, ANIM_A9
call Func_3fbb9 ;animation call Func_3fbb9 ;animation
jp PrintMayNotAttackText ;print paralysis text jp PrintMayNotAttackText ;print paralysis text
.burn .burn
ld a, 1 << BRN ld a, 1 << BRN
ld [wEnemyMonStatus], a ld [wEnemyMonStatus], a
call Func_3ed64 call Func_3ed64
ld a, $a9 ld a, ANIM_A9
call Func_3fbb9 ;animation call Func_3fbb9 ;animation
ld hl, BurnedText ld hl, BurnedText
jp PrintText jp PrintText
@ -7185,7 +7188,7 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
call Func_3f9cf ;resets bit 5 of the D063/D068 flags call Func_3f9cf ;resets bit 5 of the D063/D068 flags
ld a, 1 << FRZ ld a, 1 << FRZ
ld [wEnemyMonStatus], a ld [wEnemyMonStatus], a
ld a, $a9 ld a, ANIM_A9
call Func_3fbb9 ;animation call Func_3fbb9 ;animation
ld hl, FrozenText ld hl, FrozenText
jp PrintText jp PrintText
@ -7723,7 +7726,7 @@ BideEffect: ; 3f6e5 (f:76e5)
inc a inc a
ld [bc], a ld [bc], a
ld a, [H_WHOSETURN] ld a, [H_WHOSETURN]
add $ae add XSTATITEM_ANIM
jp Func_3fb96 jp Func_3fb96
ThrashPetalDanceEffect: ; 3f717 (f:7717) ThrashPetalDanceEffect: ; 3f717 (f:7717)
@ -7742,7 +7745,7 @@ ThrashPetalDanceEffect: ; 3f717 (f:7717)
inc a inc a
ld [de], a ld [de], a
ld a, [H_WHOSETURN] ; $fff3 ld a, [H_WHOSETURN] ; $fff3
add $b0 add ANIM_B0
jp Func_3fb96 jp Func_3fb96
SwitchAndTeleportEffect: ; 3f739 (f:7739) SwitchAndTeleportEffect: ; 3f739 (f:7739)
@ -7938,11 +7941,11 @@ ChargeEffect: ; 3f88c (f:788c)
ld de, W_PLAYERMOVEEFFECT ; wcfd3 ld de, W_PLAYERMOVEEFFECT ; wcfd3
ld a, [H_WHOSETURN] ; $fff3 ld a, [H_WHOSETURN] ; $fff3
and a and a
ld b, $ae ld b, XSTATITEM_ANIM
jr z, .asm_3f8a1 jr z, .asm_3f8a1
ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1 ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
ld b, $af ld b, ANIM_AF
.asm_3f8a1 .asm_3f8a1
set 4, [hl] set 4, [hl]
ld a, [de] ld a, [de]
@ -7950,13 +7953,13 @@ ChargeEffect: ; 3f88c (f:788c)
cp FLY_EFFECT cp FLY_EFFECT
jr nz, .asm_3f8ad jr nz, .asm_3f8ad
set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig) set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig)
ld b, $64 ld b, TELEPORT
.asm_3f8ad .asm_3f8ad
ld a, [de] ld a, [de]
cp DIG cp DIG
jr nz, .asm_3f8b6 jr nz, .asm_3f8b6
set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig) set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig)
ld b, $c0 ld b, ANIM_C0
.asm_3f8b6 .asm_3f8b6
xor a xor a
ld [wcc5b], a ld [wcc5b], a

View file

@ -587,7 +587,7 @@ Func_39b87: ; 39b87 (e:5b87)
jr z, .asm_39bc1 jr z, .asm_39bc1
push hl push hl
ld [wd0b5], a ld [wd0b5], a
ld a, $2c ld a, BANK(MoveNames)
ld [wPredefBank], a ld [wPredefBank], a
ld a, MOVE_NAME ld a, MOVE_NAME
ld [W_LISTTYPE], a ld [W_LISTTYPE], a
@ -1407,14 +1407,14 @@ SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
ld [hl], $20 ld [hl], $20
ld a, $f8 ld a, $f8
ld [wTrainerEngageDistance], a ld [wTrainerEngageDistance], a
ld hl, wOAMBuffer + $18 ld hl, wOAMBuffer + PARTY_LENGTH * 4
jp Func_3a8e1 jp Func_3a8e1
SetupPokeballs: ; 0x3a8a6 SetupPokeballs: ; 0x3a8a6
ld a, [de] ld a, [de]
push af push af
ld de, wBuffer ld de, wBuffer
ld c, $6 ; max num of partymons ld c, PARTY_LENGTH
ld a, $34 ; empty pokeball ld a, $34 ; empty pokeball
.emptyloop .emptyloop
ld [de], a ld [de], a
@ -1462,7 +1462,7 @@ PickPokeball: ; 3a8c2 (e:68c2)
Func_3a8e1: ; 3a8e1 (e:68e1) Func_3a8e1: ; 3a8e1 (e:68e1)
ld de, wHPBarMaxHP ld de, wHPBarMaxHP
ld c, $6 ld c, PARTY_LENGTH
.asm_3a8e6 .asm_3a8e6
ld a, [W_BASECOORDY] ; wd082 ld a, [W_BASECOORDY] ; wd082
ld [hli], a ld [hli], a

View file

@ -537,7 +537,7 @@ TradeCenter_SelectMon:
ld [wTileMap + $141], a ld [wTileMap + $141], a
.asm_574a .asm_574a
call JoypadLowSensitivity call JoypadLowSensitivity
ld a, [$ffb5] ld a, [hJoy5]
and a and a
jr z, .asm_574a ; 0x5750 $f8 jr z, .asm_574a ; 0x5750 $f8
bit 0, a bit 0, a
@ -896,7 +896,7 @@ Func_5a5f: ; 5a5f (1:5a5f)
ld [W_GRASSRATE], a ; W_GRASSRATE ld [W_GRASSRATE], a ; W_GRASSRATE
inc a inc a
ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
ld [$ffb5], a ld [hJoy5], a
ld a, $a ld a, $a
ld [wMusicHeaderPointer], a ld [wMusicHeaderPointer], a
ld a, BANK(Music_Celadon) ld a, BANK(Music_Celadon)

View file

@ -140,7 +140,7 @@ asm_7befa: ; 7befa (1e:7efa)
call DelayFrame call DelayFrame
push bc push bc
call JoypadLowSensitivity call JoypadLowSensitivity
ld a, [$ffb5] ld a, [hJoy5]
pop bc pop bc
and $2 and $2
jr nz, .asm_7bf0d jr nz, .asm_7bf0d

View file

@ -135,7 +135,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
ld [wHPBarMaxHP + 1], a ld [wHPBarMaxHP + 1], a
ld a, MONSTER_NAME ld a, MONSTER_NAME
ld [W_LISTTYPE], a ld [W_LISTTYPE], a
ld a, $e ld a, BANK(TrainerNames) ; bank is not used for monster names
ld [wPredefBank], a ld [wPredefBank], a
call GetName call GetName
push hl push hl

View file

@ -3,10 +3,10 @@ _GivePokemon: ; 4fda5 (13:7da5)
xor a xor a
ld [wccd3], a ld [wccd3], a
ld a, [wPartyCount] ; wPartyCount ld a, [wPartyCount] ; wPartyCount
cp $6 cp PARTY_LENGTH
jr c, .asm_4fe01 jr c, .asm_4fe01
ld a, [W_NUMINBOX] ; wda80 ld a, [W_NUMINBOX] ; wda80
cp $14 cp MONS_PER_BOX
jr nc, .asm_4fdf9 jr nc, .asm_4fdf9
xor a xor a
ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3 ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3
@ -18,18 +18,18 @@ _GivePokemon: ; 4fda5 (13:7da5)
ld hl, wcf4b ld hl, wcf4b
ld a, [wd5a0] ld a, [wd5a0]
and $7f and $7f
cp $9 cp 9
jr c, .asm_4fdec jr c, .asm_4fdec
sub $9 sub 9
ld [hl], $f7 ld [hl], "1"
inc hl inc hl
add $f6 add "0"
jr .asm_4fdee jr .asm_4fdee
.asm_4fdec .asm_4fdec
add $f7 add "1"
.asm_4fdee .asm_4fdee
ld [hli], a ld [hli], a
ld [hl], $50 ld [hl], "@"
ld hl, SetToBoxText ld hl, SetToBoxText
call PrintText call PrintText
scf scf

View file

@ -110,10 +110,10 @@ ItemUseBall: ; d687 (3:5687)
dec a dec a
jr z,.UseBall jr z,.UseBall
ld a,[wPartyCount] ;is Party full? ld a,[wPartyCount] ;is Party full?
cp a,6 cp a,PARTY_LENGTH
jr nz,.UseBall jr nz,.UseBall
ld a,[W_NUMINBOX] ;is Box full? ld a,[W_NUMINBOX] ;is Box full?
cp a,20 cp a,MONS_PER_BOX
jp z,BoxFullCannotThrowBall jp z,BoxFullCannotThrowBall
.UseBall ;$56a7 .UseBall ;$56a7
;ok, you can use a ball ;ok, you can use a ball
@ -421,7 +421,7 @@ ItemUseBall: ; d687 (3:5687)
predef ShowPokedexData predef ShowPokedexData
.checkParty ;$58f4 .checkParty ;$58f4
ld a,[wPartyCount] ld a,[wPartyCount]
cp a,6 ;is party full? cp a,PARTY_LENGTH ;is party full?
jr z,.sendToBox jr z,.sendToBox
xor a xor a
ld [wcc49],a ld [wcc49],a

View file

@ -88,25 +88,13 @@ Func_213c8:: ; 213c8 (8:53c8)
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ret ret
SomeonesPCText: ; 2148b (8:548b) SomeonesPCText: db "SOMEONE's PC@"
db "SOMEONE's PC@" BillsPCText: db "BILL's PC@"
PlayersPCText: db "'s PC@"
OaksPCText: db "PROF.OAK's PC@"
PKMNLeaguePCText: db $4a, "LEAGUE@"
LogOffPCText: db "LOG OFF@"
BillsPCText: ; 21497 (8:5497)
db "BILL's PC@"
PlayersPCText: ; 214a0 (8:54a0)
db "'s PC@"
OaksPCText: ; 214a5 (8:54a5)
db "PROF.OAK's PC@"
PKMNLeaguePCText: ; 214b2 (8:54b2)
db $4a,"LEAGUE@"
LogOffPCText: ; 214ba (8:54ba)
db "LOG OFF@"
Func_214c2:: ; 214c2 (8:54c2)
BillsPC_:: ; 0x214c2 BillsPC_:: ; 0x214c2
ld hl, wd730 ld hl, wd730
set 6, [hl] set 6, [hl]
@ -167,15 +155,15 @@ BillsPCMenu:
call TextBoxBorder call TextBoxBorder
ld a, [wd5a0] ld a, [wd5a0]
and $7f and $7f
cp $9 cp 9
jr c, .asm_2154f jr c, .asm_2154f
sub $9 sub 9
hlCoord 17, 16 hlCoord 17, 16
ld [hl], $f7 ld [hl], "1"
add $f6 add "0"
jr .asm_21551 jr .asm_21551
.asm_2154f .asm_2154f
add $f7 add "1"
.asm_21551 .asm_21551
Coorda 18, 16 Coorda 18, 16
hlCoord 10, 16 hlCoord 10, 16
@ -227,7 +215,7 @@ BillsPCDeposit:
jp BillsPCMenu jp BillsPCMenu
.asm_215bb .asm_215bb
ld a, [W_NUMINBOX] ; wda80 ld a, [W_NUMINBOX] ; wda80
cp $14 cp MONS_PER_BOX
jr nz, .asm_215cb jr nz, .asm_215cb
ld hl, BoxFullText ; $5802 ld hl, BoxFullText ; $5802
call PrintText call PrintText
@ -251,15 +239,15 @@ BillsPCDeposit:
ld hl, wWhichTrade ; wWhichTrade ld hl, wWhichTrade ; wWhichTrade
ld a, [wd5a0] ld a, [wd5a0]
and $7f and $7f
cp $9 cp 9
jr c, .asm_2160a jr c, .asm_2160a
sub $9 sub 9
ld [hl], $f7 ld [hl], "1"
inc hl inc hl
add $f6 add "0"
jr .asm_2160c jr .asm_2160c
.asm_2160a .asm_2160a
add $f7 add "1"
.asm_2160c .asm_2160c
ld [hli], a ld [hli], a
ld [hl], $50 ld [hl], $50
@ -276,7 +264,7 @@ Func_21618: ; 21618 (8:5618)
jp Func_214e8 jp Func_214e8
.asm_21627 .asm_21627
ld a, [wPartyCount] ; wPartyCount ld a, [wPartyCount] ; wPartyCount
cp $6 cp PARTY_LENGTH
jr nz, .asm_21637 jr nz, .asm_21637
ld hl, CantTakeMonText ; $5811 ld hl, CantTakeMonText ; $5811
call PrintText call PrintText
@ -353,7 +341,12 @@ Func_216be: ; 216be (8:56be)
ret ret
BillsPCMenuText: ; 216e1 (8:56e1) BillsPCMenuText: ; 216e1 (8:56e1)
db "WITHDRAW ",$4a,$4e,"DEPOSIT ",$4a,$4e,"RELEASE ",$4a,$4e,"CHANGE BOX",$4e,"SEE YA!@" db "WITHDRAW ", $4a
next "DEPOSIT ", $4a
next "RELEASE ", $4a
next "CHANGE BOX"
next "SEE YA!"
db "@"
BoxNoPCText: ; 21713 (8:5713) BoxNoPCText: ; 21713 (8:5713)
db "BOX No.@" db "BOX No.@"
@ -389,7 +382,7 @@ HMMoveArray: ; 21745 (8:5745)
db SURF db SURF
db STRENGTH db STRENGTH
db FLASH db FLASH
db $ff db -1
Func_2174b: ; 2174b (8:574b) Func_2174b: ; 2174b (8:574b)
hlCoord 9, 10 hlCoord 9, 10
@ -458,14 +451,11 @@ Func_2174b: ; 2174b (8:574b)
call LoadGBPal call LoadGBPal
jr .asm_2178f jr .asm_2178f
DepositPCText: ; 217cb (8:57cb) DepositPCText: db "DEPOSIT@"
db "DEPOSIT@" WithdrawPCText: db "WITHDRAW@"
StatsCancelPCText:
WithdrawPCText: ; 217d3 (8:57d3) db "STATS"
db "WITHDRAW@" next "CANCEL@"
StatsCancelPCText: ; 217dc (8:57dc)
db "STATS",$4e,"CANCEL@"
SwitchOnText: ; 0x217e9 SwitchOnText: ; 0x217e9
TX_FAR _SwitchOnText TX_FAR _SwitchOnText
@ -523,7 +513,7 @@ PrintJustAMomentText1:: ; 5824 (8:5825)
cp $c cp $c
ret nz ret nz
ld a, [W_CURMAP] ld a, [W_CURMAP]
cp $ef cp BATTLE_CENTER
ld a, $2 ld a, $2
jr z, .asm_2183a jr z, .asm_2183a
inc a inc a
@ -541,7 +531,7 @@ PrintJustAMomentText2:: ; 5845 (8:5845)
cp $8 cp $8
ret nz ret nz
ld a, [W_CURMAP] ld a, [W_CURMAP]
cp $ef cp BATTLE_CENTER
ld a, $2 ld a, $2
jr z, .asm_2185a jr z, .asm_2185a
inc a inc a

View file

@ -307,7 +307,7 @@ Func_5d5f: ; 5d5f (1:5d5f)
xor a xor a
ld [hJoyPressed], a ld [hJoyPressed], a
ld [hJoyHeld], a ld [hJoyHeld], a
ld [$ffb5], a ld [hJoy5], a
ld [wd72d], a ld [wd72d], a
ld hl, wd732 ld hl, wd732
set 0, [hl] set 0, [hl]
@ -461,7 +461,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
call SetOptionsFromCursorPositions call SetOptionsFromCursorPositions
.getJoypadStateLoop .getJoypadStateLoop
call JoypadLowSensitivity call JoypadLowSensitivity
ld a,[$ffb5] ld a,[hJoy5]
ld b,a ld b,a
and a,%11111011 ; any key besides select pressed? and a,%11111011 ; any key besides select pressed?
jr z,.getJoypadStateLoop jr z,.getJoypadStateLoop

View file

@ -10,7 +10,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
ld [wLastMenuItem],a ld [wLastMenuItem],a
inc a inc a
ld [wd11e],a ld [wd11e],a
ld [$ffb7],a ld [hJoy7],a
.setUpGraphics .setUpGraphics
ld b,$08 ld b,$08
call GoPAL_SET call GoPAL_SET
@ -35,7 +35,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
ld [wcc37],a ld [wcc37],a
ld [wCurrentMenuItem],a ld [wCurrentMenuItem],a
ld [wLastMenuItem],a ld [wLastMenuItem],a
ld [$ffb7],a ld [hJoy7],a
ld [wcd3a],a ld [wcd3a],a
ld [wcd3b],a ld [wcd3b],a
pop af pop af
@ -550,7 +550,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
ld [$fff4],a ld [$fff4],a
.waitForButtonPress .waitForButtonPress
call JoypadLowSensitivity call JoypadLowSensitivity
ld a,[$ffb5] ld a,[hJoy5]
and a,%00000011 ; A button and B button and a,%00000011 ; A button and B button
jr z,.waitForButtonPress jr z,.waitForButtonPress
pop af pop af

View file

@ -445,15 +445,15 @@ Func_7393f: ; 7393f (1c:793f)
res 2, [hl] res 2, [hl]
ld a, [wd5a0] ld a, [wd5a0]
and $7f and $7f
cp $9 cp 9
jr c, .asm_739a6 jr c, .asm_739a6
sub $9 sub 9
hlCoord 8, 2 hlCoord 8, 2
ld [hl], $f7 ld [hl], "1"
add $f6 add "0"
jr .asm_739a8 jr .asm_739a8
.asm_739a6 .asm_739a6
add $f7 add "1"
.asm_739a8 .asm_739a8
Coorda 9, 2 Coorda 9, 2
hlCoord 1, 2 hlCoord 1, 2

View file

@ -797,7 +797,7 @@ SlotMachine_3784e: ; 3784e (d:784e)
SlotMachine_37882: ; 37882 (d:7882) SlotMachine_37882: ; 37882 (d:7882)
call DelayFrame call DelayFrame
call JoypadLowSensitivity call JoypadLowSensitivity
ld a, [$ffb5] ld a, [hJoy5]
and $1 and $1
ret z ret z
ld hl, wTrainerSpriteOffset ld hl, wTrainerSpriteOffset

View file

@ -6,7 +6,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e)
ld [hl], $ff ld [hl], $ff
push hl push hl
ld a, $1 ld a, $1
ld [$ffb7], a ld [hJoy7], a
ld a, [W_CURMAP] ; W_CURMAP ld a, [W_CURMAP] ; W_CURMAP
push af push af
ld b, $0 ld b, $0
@ -66,7 +66,7 @@ Func_70e92: ; 70e92 (1c:4e92)
.asm_70ec8 .asm_70ec8
call Func_716c6 call Func_716c6
call JoypadLowSensitivity call JoypadLowSensitivity
ld a, [$ffb5] ld a, [hJoy5]
ld b, a ld b, a
and $c3 and $c3
jr z, .asm_70ec8 jr z, .asm_70ec8
@ -78,7 +78,7 @@ Func_70e92: ; 70e92 (1c:4e92)
jr nz, .asm_70f01 jr nz, .asm_70f01
xor a xor a
ld [wd09b], a ld [wd09b], a
ld [$ffb7], a ld [hJoy7], a
ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
call Func_711ab call Func_711ab
pop hl pop hl
@ -188,7 +188,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
push hl push hl
call DelayFrame call DelayFrame
call JoypadLowSensitivity call JoypadLowSensitivity
ld a, [$ffb5] ld a, [hJoy5]
ld b, a ld b, a
pop hl pop hl
and $c3 and $c3

View file

@ -203,9 +203,9 @@ Func_41245: ; 41245 (10:5245)
and a and a
jr nz, .asm_41273 jr nz, .asm_41273
call Delay50 call Delay50
ld a, $ad ld a, ANIM_AD
call Func_41676 call Func_41676
ld a, $aa ld a, ANIM_AA
call Func_41676 call Func_41676
ld a, [wWhichTrade] ; wWhichTrade ld a, [wWhichTrade] ; wWhichTrade
call PlayCry call PlayCry
@ -242,9 +242,9 @@ Func_41298: ; 41298 (10:5298)
ret ret
Func_412d2: ; 412d2 (10:52d2) Func_412d2: ; 412d2 (10:52d2)
ld a, $ab ld a, ANIM_AB
call Func_41676 call Func_41676
ld c, $a ld c, 10
call DelayFrames call DelayFrames
ld a, $e4 ld a, $e4
ld [rOBP0], a ; $ff48 ld [rOBP0], a ; $ff48
@ -295,7 +295,7 @@ UnknownOAM_4132e: ; 4132e (10:532e)
db $7E,$40,$7E,$60 db $7E,$40,$7E,$60
Func_41336: ; 41336 (10:5336) Func_41336: ; 41336 (10:5336)
ld a, $ac ld a, ANIM_AC
call Func_41676 call Func_41676
call Func_415c8 call Func_415c8
hlCoord 4, 10 hlCoord 4, 10
@ -308,7 +308,7 @@ Func_41336: ; 41336 (10:5336)
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
ld a, [wTrainerEngageDistance] ld a, [wTrainerEngageDistance]
call Func_415a4 call Func_415a4
ld a, $ad ld a, ANIM_AD
call Func_41676 call Func_41676
ld a, $1 ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba ld [H_AUTOBGTRANSFERENABLED], a ; $ffba

1558
home.asm

File diff suppressed because it is too large Load diff

24
home/copy.asm Normal file
View file

@ -0,0 +1,24 @@
FarCopyData::
; Copy bc bytes from a:hl to de.
ld [wBuffer], a
ld a, [H_LOADEDROMBANK]
push af
ld a, [wBuffer]
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
call CopyData
pop af
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
ret
CopyData::
; Copy bc bytes from hl to de.
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, c
or b
jr nz, CopyData
ret

228
home/copy2.asm Normal file
View file

@ -0,0 +1,228 @@
FarCopyData2::
; Identical to FarCopyData, but uses $ff8b
; as temp space instead of wBuffer.
ld [$ff8b],a
ld a,[H_LOADEDROMBANK]
push af
ld a,[$ff8b]
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
call CopyData
pop af
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
ret
FarCopyData3::
; Copy bc bytes from a:de to hl.
ld [$ff8b],a
ld a,[H_LOADEDROMBANK]
push af
ld a,[$ff8b]
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
push hl
push de
push de
ld d,h
ld e,l
pop hl
call CopyData
pop de
pop hl
pop af
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
ret
FarCopyDataDouble::
; Expand bc bytes of 1bpp image data
; from a:hl to 2bpp data at de.
ld [$ff8b],a
ld a,[H_LOADEDROMBANK]
push af
ld a,[$ff8b]
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
.loop
ld a,[hli]
ld [de],a
inc de
ld [de],a
inc de
dec bc
ld a,c
or b
jr nz,.loop
pop af
ld [H_LOADEDROMBANK],a
ld [MBC3RomBank],a
ret
CopyVideoData::
; Wait for the next VBlank, then copy c 2bpp
; tiles from b:de to hl, 8 tiles at a time.
; This takes c/8 frames.
ld a, [H_AUTOBGTRANSFERENABLED]
push af
xor a ; disable auto-transfer while copying
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [H_LOADEDROMBANK]
ld [$ff8b], a
ld a, b
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
ld a, e
ld [H_VBCOPYSRC], a
ld a, d
ld [H_VBCOPYSRC + 1], a
ld a, l
ld [H_VBCOPYDEST], a
ld a, h
ld [H_VBCOPYDEST + 1], a
.loop
ld a, c
cp 8
jr nc, .keepgoing
.done
ld [H_VBCOPYSIZE], a
call DelayFrame
ld a, [$ff8b]
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
pop af
ld [H_AUTOBGTRANSFERENABLED], a
ret
.keepgoing
ld a, 8
ld [H_VBCOPYSIZE], a
call DelayFrame
ld a, c
sub 8
ld c, a
jr .loop
CopyVideoDataDouble::
; Wait for the next VBlank, then copy c 1bpp
; tiles from b:de to hl, 8 tiles at a time.
; This takes c/8 frames.
ld a, [H_AUTOBGTRANSFERENABLED]
push af
xor a ; disable auto-transfer while copying
ld [H_AUTOBGTRANSFERENABLED], a
ld a, [H_LOADEDROMBANK]
ld [$ff8b], a
ld a, b
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
ld a, e
ld [H_VBCOPYDOUBLESRC], a
ld a, d
ld [H_VBCOPYDOUBLESRC + 1], a
ld a, l
ld [H_VBCOPYDOUBLEDEST], a
ld a, h
ld [H_VBCOPYDOUBLEDEST + 1], a
.loop
ld a, c
cp 8
jr nc, .keepgoing
.done
ld [H_VBCOPYDOUBLESIZE], a
call DelayFrame
ld a, [$ff8b]
ld [H_LOADEDROMBANK], a
ld [MBC3RomBank], a
pop af
ld [H_AUTOBGTRANSFERENABLED], a
ret
.keepgoing
ld a, 8
ld [H_VBCOPYDOUBLESIZE], a
call DelayFrame
ld a, c
sub 8
ld c, a
jr .loop
ClearScreenArea::
; Clear tilemap area cxb at hl.
ld a, $7f ; blank tile
ld de, 20 ; screen width
.y
push hl
push bc
.x
ld [hli], a
dec c
jr nz, .x
pop bc
pop hl
add hl, de
dec b
jr nz, .y
ret
CopyScreenTileBufferToVRAM::
; Copy wTileMap to the BG Map starting at b * $100.
; This is done in thirds of 6 rows, so it takes 3 frames.
ld c, 6
ld hl, $600 * 0
ld de, wTileMap + 20 * 6 * 0
call .setup
call DelayFrame
ld hl, $600 * 1
ld de, wTileMap + 20 * 6 * 1
call .setup
call DelayFrame
ld hl, $600 * 2
ld de, wTileMap + 20 * 6 * 2
call .setup
jp DelayFrame
.setup
ld a, d
ld [H_VBCOPYBGSRC+1], a
call GetRowColAddressBgMap
ld a, l
ld [H_VBCOPYBGDEST], a
ld a, h
ld [H_VBCOPYBGDEST+1], a
ld a, c
ld [H_VBCOPYBGNUMROWS], a
ld a, e
ld [H_VBCOPYBGSRC], a
ret
ClearScreen::
; Clear wTileMap, then wait
; for the bg map to update.
ld bc, 20 * 18
inc b
ld hl, wTileMap
ld a, $7f
.loop
ld [hli], a
dec c
jr nz, .loop
dec b
jr nz, .loop
jp Delay3

304
home/serial.asm Normal file
View file

@ -0,0 +1,304 @@
Serial:: ; 2125 (0:2125)
push af
push bc
push de
push hl
ld a, [$ffaa]
inc a
jr z, .asm_2142
ld a, [$ff01]
ld [$ffad], a
ld a, [$ffac]
ld [$ff01], a
ld a, [$ffaa]
cp $2
jr z, .asm_2162
ld a, $80
ld [$ff02], a
jr .asm_2162
.asm_2142
ld a, [$ff01]
ld [$ffad], a
ld [$ffaa], a
cp $2
jr z, .asm_215f
xor a
ld [$ff01], a
ld a, $3
ld [rDIV], a ; $ff04
.asm_2153
ld a, [rDIV] ; $ff04
bit 7, a
jr nz, .asm_2153
ld a, $80
ld [$ff02], a
jr .asm_2162
.asm_215f
xor a
ld [$ff01], a
.asm_2162
ld a, $1
ld [$ffa9], a
ld a, $fe
ld [$ffac], a
pop hl
pop de
pop bc
pop af
reti
Func_216f:: ; 216f (0:216f)
ld a, $1
ld [$ffab], a
.asm_2173
ld a, [hl]
ld [$ffac], a
call Func_219a
push bc
ld b, a
inc hl
ld a, $30
.asm_217e
dec a
jr nz, .asm_217e
ld a, [$ffab]
and a
ld a, b
pop bc
jr z, .asm_2192
dec hl
cp $fd
jr nz, .asm_2173
xor a
ld [$ffab], a
jr .asm_2173
.asm_2192
ld [de], a
inc de
dec bc
ld a, b
or c
jr nz, .asm_2173
ret
Func_219a:: ; 219a (0:219a)
xor a
ld [$ffa9], a
ld a, [$ffaa]
cp $2
jr nz, .asm_21a7
ld a, $81
ld [$ff02], a
.asm_21a7
ld a, [$ffa9]
and a
jr nz, .asm_21f1
ld a, [$ffaa]
cp $1
jr nz, .asm_21cc
call Func_2237
jr z, .asm_21cc
call Func_2231
push hl
ld hl, wcc48
inc [hl]
jr nz, .asm_21c3
dec hl
inc [hl]
.asm_21c3
pop hl
call Func_2237
jr nz, .asm_21a7
jp Func_223f
.asm_21cc
ld a, [rIE] ; $ffff
and $f
cp $8
jr nz, .asm_21a7
ld a, [W_NUMHITS] ; wd074
dec a
ld [W_NUMHITS], a ; wd074
jr nz, .asm_21a7
ld a, [wd075]
dec a
ld [wd075], a
jr nz, .asm_21a7
ld a, [$ffaa]
cp $1
jr z, .asm_21f1
ld a, $ff
.asm_21ee
dec a
jr nz, .asm_21ee
.asm_21f1
xor a
ld [$ffa9], a
ld a, [rIE] ; $ffff
and $f
sub $8
jr nz, .asm_2204
ld [W_NUMHITS], a ; wd074
ld a, $50
ld [wd075], a
.asm_2204
ld a, [$ffad]
cp $fe
ret nz
call Func_2237
jr z, .asm_221f
push hl
ld hl, wcc48
ld a, [hl]
dec a
ld [hld], a
inc a
jr nz, .asm_2219
dec [hl]
.asm_2219
pop hl
call Func_2237
jr z, Func_223f
.asm_221f
ld a, [rIE] ; $ffff
and $f
cp $8
ld a, $fe
ret z
ld a, [hl]
ld [$ffac], a
call DelayFrame
jp Func_219a
Func_2231:: ; 2231 (0:2231)
ld a, $f
.asm_2233
dec a
jr nz, .asm_2233
ret
Func_2237:: ; 2237 (0:2237)
push hl
ld hl, wcc47
ld a, [hli]
or [hl]
pop hl
ret
Func_223f:: ; 223f (0:223f)
dec a
ld [wcc47], a
ld [wcc48], a
ret
Func_2247:: ; 2247 (0:2247)
ld hl, wcc42
ld de, wcc3d
ld c, $2
ld a, $1
ld [$ffab], a
.asm_2253
call DelayFrame
ld a, [hl]
ld [$ffac], a
call Func_219a
ld b, a
inc hl
ld a, [$ffab]
and a
ld a, $0
ld [$ffab], a
jr nz, .asm_2253
ld a, b
ld [de], a
inc de
dec c
jr nz, .asm_2253
ret
Func_226e:: ; 226e (0:226e)
call SaveScreenTilesToBuffer1
callab PrintWaitingText
call Func_227f
jp LoadScreenTilesFromBuffer1
Func_227f:: ; 227f (0:227f)
ld a, $ff
ld [wcc3e], a
.asm_2284
call Func_22c3
call DelayFrame
call Func_2237
jr z, .asm_22a0
push hl
ld hl, wcc48
dec [hl]
jr nz, .asm_229f
dec hl
dec [hl]
jr nz, .asm_229f
pop hl
xor a
jp Func_223f
.asm_229f
pop hl
.asm_22a0
ld a, [wcc3e]
inc a
jr z, .asm_2284
ld b, $a
.asm_22a8
call DelayFrame
call Func_22c3
dec b
jr nz, .asm_22a8
ld b, $a
.asm_22b3
call DelayFrame
call Func_22ed
dec b
jr nz, .asm_22b3
ld a, [wcc3e]
ld [wcc3d], a
ret
Func_22c3:: ; 22c3 (0:22c3)
call asm_22d7
ld a, [wcc42]
add $60
ld [$ffac], a
ld a, [$ffaa]
cp $2
jr nz, asm_22d7
ld a, $81
ld [$ff02], a
asm_22d7:: ; 22d7 (0:22d7)
ld a, [$ffad]
ld [wcc3d], a
and $f0
cp $60
ret nz
xor a
ld [$ffad], a
ld a, [wcc3d]
and $f
ld [wcc3e], a
ret
Func_22ed:: ; 22ed (0:22ed)
xor a
ld [$ffac], a
ld a, [$ffaa]
cp $2
ret nz
ld a, $81
ld [$ff02], a
ret
Func_22fa:: ; 22fa (0:22fa)
ld a, $2
ld [$ff01], a
xor a
ld [$ffad], a
ld a, $80
ld [$ff02], a
ret

3
home/timer.asm Normal file
View file

@ -0,0 +1,3 @@
; timer interrupt is apparently not invoked anyway
Timer:: ; 2306 (0:2306)
reti

View file

@ -1,7 +1,7 @@
H_SPRITEWIDTH EQU $FF8B ; in bytes H_SPRITEWIDTH EQU $FF8B ; in tiles
H_SPRITEINTERLACECOUNTER EQU $FF8B H_SPRITEINTERLACECOUNTER EQU $FF8B
H_SPRITEHEIGHT EQU $FF8C ; in bytes H_SPRITEHEIGHT EQU $FF8C ; in tiles
H_SPRITEOFFSET EQU $FF8D H_SPRITEOFFSET EQU $FF8D
hSoftReset EQU $FF8A hSoftReset EQU $FF8A
@ -14,28 +14,31 @@ hSoftReset EQU $FF8A
H_DOWNARROWBLINKCNT1 EQU $FF8B H_DOWNARROWBLINKCNT1 EQU $FF8B
H_DOWNARROWBLINKCNT2 EQU $FF8C H_DOWNARROWBLINKCNT2 EQU $FF8C
; Note: the following multiplication and division addresses are used for multiple purposes ; Multiplcation and division variables are meant
; and so they overlap with each other ; to overlap for back-to-back usage. Big endian.
H_MULTIPLICAND EQU $FF96 ; 3 bytes, big endian order H_MULTIPLICAND EQU $FF96 ; 3 bytes
H_MULTIPLIER EQU $FF99 ; 1 byte H_MULTIPLIER EQU $FF99 ; 1 byte
H_PRODUCT EQU $FF95 ; 4 bytes, big endian order H_PRODUCT EQU $FF95 ; 4 bytes
H_DIVIDEND EQU $FF95 ; 4 bytes, big endian order H_DIVIDEND EQU $FF95 ; 4 bytes
H_DIVISOR EQU $FF99 ; 1 byte H_DIVISOR EQU $FF99 ; 1 byte
H_QUOTIENT EQU $FF95 ; 4 bytes, big endian order H_QUOTIENT EQU $FF95 ; 4 bytes
H_REMAINDER EQU $FF99 ; 1 byte H_REMAINDER EQU $FF99 ; 1 byte
; used to convert numbers to decimal ; PrintNumber (big endian).
H_PASTLEADINGZEROES EQU $FF95 ; flag to indicate that a nonzero digit has been printed H_PASTLEADINGZEROES EQU $FF95 ; last char printed
H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order H_NUMTOPRINT EQU $FF96 ; 3 bytes
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order H_POWEROFTEN EQU $FF99 ; 3 bytes
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction) H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes
hJoyHeldLast EQU $FFB1 hJoyHeldLast EQU $FFB1
hJoyReleased EQU $FFB2 hJoyReleased EQU $FFB2
hJoyPressed EQU $FFB3 hJoyPressed EQU $FFB3
hJoyHeld EQU $FFB4 hJoyHeld EQU $FFB4
hJoy5 EQU $FFB5
hJoy6 EQU $FFB6
hJoy7 EQU $FFB7
H_LOADEDROMBANK EQU $FFB8 H_LOADEDROMBANK EQU $FFB8

View file

@ -11,6 +11,20 @@ page EQUS "db $49," ; Start a new Pokedex page.
dex EQUS "db $5f, $50" ; End a Pokedex entry. dex EQUS "db $5f, $50" ; End a Pokedex entry.
percent EQUS "* $ff / 100"
; Constant enumeration is useful for monsters, items, moves, etc.
const_def: MACRO
const_value = 0
ENDM
const: MACRO
\1 EQU const_value
const_value = const_value + 1
ENDM
homecall: MACRO homecall: MACRO
ld a, [H_LOADEDROMBANK] ld a, [H_LOADEDROMBANK]
push af push af
@ -189,6 +203,24 @@ predef_jump: MACRO
ENDM ENDM
add_tx_pre: MACRO
\1_id:: dw \1
ENDM
tx_pre_id: MACRO
ld a, (\1_id - TextPredefs) / 2
ENDM
tx_pre: MACRO
tx_pre_id \1
call PrintPredefTextID
ENDM
tx_pre_jump: MACRO
tx_pre_id \1
jp PrintPredefTextID
ENDM
;1_channel EQU $00 ;1_channel EQU $00
;2_channels EQU $40 ;2_channels EQU $40

View file

@ -3419,7 +3419,7 @@ _AddPartyMon: ; f2e5 (3:72e5)
.asm_f2f2 .asm_f2f2
ld a, [de] ld a, [de]
inc a inc a
cp $7 cp PARTY_LENGTH + 1
ret nc ret nc
ld [de], a ld [de], a
ld a, [de] ld a, [de]
@ -3681,7 +3681,7 @@ AddPartyMon_WriteMovePP: ; f476 (3:7476)
_AddEnemyMonToPlayerParty: ; f49d (3:749d) _AddEnemyMonToPlayerParty: ; f49d (3:749d)
ld hl, wPartyCount ld hl, wPartyCount
ld a, [hl] ld a, [hl]
cp $6 cp PARTY_LENGTH
scf scf
ret z ; party full, return failure ret z ; party full, return failure
inc a inc a
@ -3750,13 +3750,13 @@ Func_f51e: ; f51e (3:751e)
jr z, .asm_f575 jr z, .asm_f575
ld hl, W_NUMINBOX ; wda80 ld hl, W_NUMINBOX ; wda80
ld a, [hl] ld a, [hl]
cp $14 cp MONS_PER_BOX
jr nz, .partyOrBoxNotFull jr nz, .partyOrBoxNotFull
jr .boxFull jr .boxFull
.checkPartyMonSlots .checkPartyMonSlots
ld hl, wPartyCount ; wPartyCount ld hl, wPartyCount ; wPartyCount
ld a, [hl] ld a, [hl]
cp $6 cp PARTY_LENGTH
jr nz, .partyOrBoxNotFull jr nz, .partyOrBoxNotFull
.boxFull .boxFull
scf scf
@ -3899,7 +3899,7 @@ Func_f51e: ; f51e (3:751e)
ld a, d ld a, d
ld [W_CURENEMYLVL], a ; W_CURENEMYLVL ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
pop hl pop hl
ld bc, $21 ld bc, wBoxMon2 - wBoxMon1
add hl, bc add hl, bc
ld [hli], a ld [hli], a
ld d, h ld d, h

View file

@ -67,9 +67,9 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
call LoadMonData call LoadMonData
callab Func_58f43 callab Func_58f43
ld a, d ld a, d
cp $64 cp MAX_LEVEL
jr c, .asm_56315 jr c, .asm_56315
ld d, $64 ld d, MAX_LEVEL
callab CalcExperience callab CalcExperience
ld hl, wDayCareMonExp ld hl, wDayCareMonExp
ld a, [H_NUMTOPRINT] ld a, [H_NUMTOPRINT]
@ -78,7 +78,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
ld [hli], a ld [hli], a
ld a, [$ff98] ld a, [$ff98]
ld [hl], a ld [hl], a
ld d, $64 ld d, MAX_LEVEL
.asm_56315 .asm_56315
xor a xor a
@ -100,7 +100,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
.asm_56333 .asm_56333
call PrintText call PrintText
ld a, [wPartyCount] ld a, [wPartyCount]
cp $6 cp PARTY_LENGTH
ld hl, DayCareMText_56440 ld hl, DayCareMText_56440
jp z, .asm_56403 jp z, .asm_56403
ld de, wTrainerFacingDirection ld de, wTrainerFacingDirection

View file

@ -27,11 +27,11 @@ Route5GateScript0: ; 1df50 (7:5f50)
xor a xor a
ld [hJoyHeld], a ld [hJoyHeld], a
callba RemoveGuardDrink callba RemoveGuardDrink
ld a, [$ff00+$db] ld a, [$ffdb]
and a and a
jr nz, .asm_1df82 ; 0x1df70 $10 jr nz, .asm_1df82 ; 0x1df70 $10
ld a, $2 ld a, $2
ld [$ff00+$8c], a ld [$ff8c], a
call DisplayTextID call DisplayTextID
call Route5GateScript_1df43 call Route5GateScript_1df43
ld a, $1 ld a, $1
@ -39,7 +39,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
ret ret
.asm_1df82 .asm_1df82
ld a, $3 ld a, $3
ld [$ff00+$8c], a ld [$ff8c], a
call DisplayTextID call DisplayTextID
ld hl, wd728 ld hl, wd728
set 6, [hl] set 6, [hl]
@ -74,7 +74,7 @@ Route5GateText1: ; 1dfaa (7:5faa)
bit 6, a bit 6, a
jr nz, .asm_88856 ; 0x1dfb0 $2c jr nz, .asm_88856 ; 0x1dfb0 $2c
callba RemoveGuardDrink callba RemoveGuardDrink
ld a, [$ff00+$db] ld a, [$ffdb]
and a and a
jr nz, .asm_768a2 ; 0x1dfbd $11 jr nz, .asm_768a2 ; 0x1dfbd $11
ld hl, Route5GateText2 ld hl, Route5GateText2

View file

@ -1,20 +1,11 @@
if !def(_RED) check_ver: MACRO
_RED EQU 0 if !def(\1)
endc \1 EQU 0
if !def(_BLUE)
_BLUE EQU 0
endc
if !def(_JAPAN)
_JAPAN EQU 0
endc
if !def(_GREEN)
_GREEN EQU 0
endc
if !def(_YELLOW)
_YELLOW EQU 0
endc endc
ENDM
check_ver _RED
check_ver _BLUE
check_ver _JAPAN
check_ver _GREEN
check_ver _YELLOW