mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-12-24 19:36:48 +13:00
Merge branch 'master' of https://github.com/iimarckus/pokered
This commit is contained in:
commit
dac95cb42b
113
Makefile
113
Makefile
|
|
@ -1,12 +1,52 @@
|
|||
PYTHON := python
|
||||
MD5 := md5sum -c --quiet
|
||||
# Build Red/Blue. Yellow is WIP.
|
||||
roms := pokered.gbc pokeblue.gbc
|
||||
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .asm .tx .o .gbc
|
||||
.PHONY: all clean red blue yellow compare
|
||||
.PRECIOUS: %.2bpp
|
||||
|
||||
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
|
||||
|
||||
# md5sum -c is used to compare rom hashes. The options may vary across platforms.
|
||||
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: .asm .tx .o .gbc .png .2bpp .1bpp .pic
|
||||
|
||||
# Secondary expansion is required for dependency variables in object rules.
|
||||
.SECONDEXPANSION:
|
||||
|
||||
# Suppress annoying intermediate file deletion messages.
|
||||
.PRECIOUS: %.2bpp
|
||||
|
||||
# Filepath shortcuts to avoid overly long recipes.
|
||||
poketools := extras/pokemontools
|
||||
gfx := $(PYTHON) $(poketools)/gfx.py
|
||||
pic := $(PYTHON) $(poketools)/pic.py
|
||||
|
|
@ -14,8 +54,9 @@ includes := $(PYTHON) $(poketools)/scan_includes.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), \
|
||||
$(eval $(ver)_asm := $(shell find $(ver) -iname '*.asm')) \
|
||||
$(eval $(ver)_obj := $($(ver)_asm:.asm=.o)) \
|
||||
|
|
@ -26,25 +67,22 @@ $(foreach obj, $(all_obj), \
|
|||
)
|
||||
|
||||
|
||||
roms := pokered.gbc pokeblue.gbc
|
||||
|
||||
all: $(roms)
|
||||
red: pokered.gbc
|
||||
blue: pokeblue.gbc
|
||||
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 {} +
|
||||
|
||||
# Image files are added to a queue to reduce build time. They're converted when building parent objects.
|
||||
%.png: ;
|
||||
%.2bpp: %.png ; $(eval 2bppq += $<) @rm -f $@
|
||||
%.1bpp: %.png ; $(eval 1bppq += $<) @rm -f $@
|
||||
%.pic: %.2bpp ; $(eval picq += $<) @rm -f $@
|
||||
|
||||
# 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: ;
|
||||
%.tx: %.asm
|
||||
$(eval txq += $<)
|
||||
@rm -f $@
|
||||
%.tx: %.asm ; $(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))
|
||||
@$(pre) $(txq); $(eval txq :=)
|
||||
@$(gfx) 2bpp $(2bppq); $(eval 2bppq :=)
|
||||
|
|
@ -53,29 +91,16 @@ $(all_obj): $$*.tx $$(patsubst %.asm, %.tx, $$($$*_dep))
|
|||
rgbasm -h -o $@ $*.tx
|
||||
|
||||
|
||||
link = rgblink -n $*.sym -m $*.map
|
||||
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
|
||||
# Link objects together to build a rom.
|
||||
|
||||
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 $@ $^
|
||||
rgbfix $(dmg_opt) -t "POKEMON RED" $@
|
||||
|
||||
pokeblue.gbc: $(blue_obj)
|
||||
$(link) -o $@ $^
|
||||
rgbfix $(dmg_opt) -t "POKEMON BLUE" $@
|
||||
|
||||
pokeyellow.gbc: $(yellow_obj)
|
||||
$(link) -o $@ $^
|
||||
rgbfix $(cgb_opt) -t "POKEMON YELLOW" $@
|
||||
rgbfix $($*_opt) $@
|
||||
|
||||
|
||||
%.2bpp: %.png
|
||||
$(eval 2bppq += $<)
|
||||
@rm -f $@
|
||||
%.1bpp: %.png
|
||||
$(eval 1bppq += $<)
|
||||
@rm -f $@
|
||||
%.pic: %.2bpp
|
||||
$(eval picq += $<)
|
||||
@rm -f $@
|
||||
clean:
|
||||
rm -f $(roms) $(all_obj)
|
||||
find . \( -iname '*.tx' -o -iname '*.1bpp' -o -iname '*.2bpp' -o -iname '*.pic' \) -exec rm {} +
|
||||
|
|
|
|||
|
|
@ -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
|
||||
NUM_MOVES EQU 4
|
||||
|
||||
|
|
@ -18,3 +9,16 @@ NUM_BOXES EQU 12
|
|||
HOF_MON EQU $10
|
||||
HOF_TEAM EQU PARTY_LENGTH * HOF_MON
|
||||
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
|
||||
|
|
|
|||
|
|
@ -1,184 +1,210 @@
|
|||
NUM_ATTACKS EQU $A4
|
||||
const_value = 1
|
||||
|
||||
POUND EQU $01
|
||||
KARATE_CHOP EQU $02
|
||||
DOUBLESLAP EQU $03
|
||||
COMET_PUNCH EQU $04
|
||||
MEGA_PUNCH EQU $05
|
||||
PAY_DAY EQU $06
|
||||
FIRE_PUNCH EQU $07
|
||||
ICE_PUNCH EQU $08
|
||||
THUNDERPUNCH EQU $09
|
||||
SCRATCH EQU $0A
|
||||
VICEGRIP EQU $0B
|
||||
GUILLOTINE EQU $0C
|
||||
RAZOR_WIND EQU $0D
|
||||
SWORDS_DANCE EQU $0E
|
||||
CUT EQU $0F
|
||||
GUST EQU $10
|
||||
WING_ATTACK EQU $11
|
||||
WHIRLWIND EQU $12
|
||||
FLY EQU $13
|
||||
BIND EQU $14
|
||||
SLAM EQU $15
|
||||
VINE_WHIP EQU $16
|
||||
STOMP EQU $17
|
||||
DOUBLE_KICK EQU $18
|
||||
MEGA_KICK EQU $19
|
||||
JUMP_KICK EQU $1A
|
||||
ROLLING_KICK EQU $1B
|
||||
SAND_ATTACK EQU $1C
|
||||
HEADBUTT EQU $1D
|
||||
HORN_ATTACK EQU $1E
|
||||
FURY_ATTACK EQU $1F
|
||||
HORN_DRILL EQU $20
|
||||
TACKLE EQU $21
|
||||
BODY_SLAM EQU $22
|
||||
WRAP EQU $23
|
||||
TAKE_DOWN EQU $24
|
||||
THRASH EQU $25
|
||||
DOUBLE_EDGE EQU $26
|
||||
TAIL_WHIP EQU $27
|
||||
POISON_STING EQU $28
|
||||
TWINEEDLE EQU $29
|
||||
PIN_MISSILE EQU $2A
|
||||
LEER EQU $2B
|
||||
BITE EQU $2C
|
||||
GROWL EQU $2D
|
||||
ROAR EQU $2E
|
||||
SING EQU $2F
|
||||
SUPERSONIC EQU $30
|
||||
SONICBOOM EQU $31
|
||||
DISABLE EQU $32
|
||||
ACID EQU $33
|
||||
EMBER EQU $34
|
||||
FLAMETHROWER EQU $35
|
||||
MIST EQU $36
|
||||
WATER_GUN EQU $37
|
||||
HYDRO_PUMP EQU $38
|
||||
SURF EQU $39
|
||||
ICE_BEAM EQU $3A
|
||||
BLIZZARD EQU $3B
|
||||
PSYBEAM EQU $3C
|
||||
BUBBLEBEAM EQU $3D
|
||||
AURORA_BEAM EQU $3E
|
||||
HYPER_BEAM EQU $3F
|
||||
PECK EQU $40
|
||||
DRILL_PECK EQU $41
|
||||
SUBMISSION EQU $42
|
||||
LOW_KICK EQU $43
|
||||
COUNTER EQU $44
|
||||
SEISMIC_TOSS EQU $45
|
||||
STRENGTH EQU $46
|
||||
ABSORB EQU $47
|
||||
MEGA_DRAIN EQU $48
|
||||
LEECH_SEED EQU $49
|
||||
GROWTH EQU $4A
|
||||
RAZOR_LEAF EQU $4B
|
||||
SOLARBEAM EQU $4C
|
||||
POISONPOWDER EQU $4D
|
||||
STUN_SPORE EQU $4E
|
||||
SLEEP_POWDER EQU $4F
|
||||
PETAL_DANCE EQU $50
|
||||
STRING_SHOT EQU $51
|
||||
DRAGON_RAGE EQU $52
|
||||
FIRE_SPIN EQU $53
|
||||
THUNDERSHOCK EQU $54
|
||||
THUNDERBOLT EQU $55
|
||||
THUNDER_WAVE EQU $56
|
||||
THUNDER EQU $57
|
||||
ROCK_THROW EQU $58
|
||||
EARTHQUAKE EQU $59
|
||||
FISSURE EQU $5A
|
||||
DIG EQU $5B
|
||||
TOXIC EQU $5C
|
||||
CONFUSION EQU $5D
|
||||
PSYCHIC_M EQU $5E
|
||||
HYPNOSIS EQU $5F
|
||||
MEDITATE EQU $60
|
||||
AGILITY EQU $61
|
||||
QUICK_ATTACK EQU $62
|
||||
RAGE EQU $63
|
||||
TELEPORT EQU $64
|
||||
NIGHT_SHADE EQU $65
|
||||
MIMIC EQU $66
|
||||
SCREECH EQU $67
|
||||
DOUBLE_TEAM EQU $68
|
||||
RECOVER EQU $69
|
||||
HARDEN EQU $6A
|
||||
MINIMIZE EQU $6B
|
||||
SMOKESCREEN EQU $6C
|
||||
CONFUSE_RAY EQU $6D
|
||||
WITHDRAW EQU $6E
|
||||
DEFENSE_CURL EQU $6F
|
||||
BARRIER EQU $70
|
||||
LIGHT_SCREEN EQU $71
|
||||
HAZE EQU $72
|
||||
REFLECT EQU $73
|
||||
FOCUS_ENERGY EQU $74
|
||||
BIDE EQU $75
|
||||
METRONOME EQU $76
|
||||
MIRROR_MOVE EQU $77
|
||||
SELFDESTRUCT EQU $78
|
||||
EGG_BOMB EQU $79
|
||||
LICK EQU $7A
|
||||
SMOG EQU $7B
|
||||
SLUDGE EQU $7C
|
||||
BONE_CLUB EQU $7D
|
||||
FIRE_BLAST EQU $7E
|
||||
WATERFALL EQU $7F
|
||||
CLAMP EQU $80
|
||||
SWIFT EQU $81
|
||||
SKULL_BASH EQU $82
|
||||
SPIKE_CANNON EQU $83
|
||||
CONSTRICT EQU $84
|
||||
AMNESIA EQU $85
|
||||
KINESIS EQU $86
|
||||
SOFTBOILED EQU $87
|
||||
HI_JUMP_KICK EQU $88
|
||||
GLARE EQU $89
|
||||
DREAM_EATER EQU $8A
|
||||
POISON_GAS EQU $8B
|
||||
BARRAGE EQU $8C
|
||||
LEECH_LIFE EQU $8D
|
||||
LOVELY_KISS EQU $8E
|
||||
SKY_ATTACK EQU $8F
|
||||
TRANSFORM EQU $90
|
||||
BUBBLE EQU $91
|
||||
DIZZY_PUNCH EQU $92
|
||||
SPORE EQU $93
|
||||
FLASH EQU $94
|
||||
PSYWAVE EQU $95
|
||||
SPLASH EQU $96
|
||||
ACID_ARMOR EQU $97
|
||||
CRABHAMMER EQU $98
|
||||
EXPLOSION EQU $99
|
||||
FURY_SWIPES EQU $9A
|
||||
BONEMERANG EQU $9B
|
||||
REST EQU $9C
|
||||
ROCK_SLIDE EQU $9D
|
||||
HYPER_FANG EQU $9E
|
||||
SHARPEN EQU $9F
|
||||
CONVERSION EQU $A0
|
||||
TRI_ATTACK EQU $A1
|
||||
SUPER_FANG EQU $A2
|
||||
SLASH EQU $A3
|
||||
SUBSTITUTE EQU $A4
|
||||
STRUGGLE EQU $A5
|
||||
const POUND
|
||||
const KARATE_CHOP
|
||||
const DOUBLESLAP
|
||||
const COMET_PUNCH
|
||||
const MEGA_PUNCH
|
||||
const PAY_DAY
|
||||
const FIRE_PUNCH
|
||||
const ICE_PUNCH
|
||||
const THUNDERPUNCH
|
||||
const SCRATCH
|
||||
const VICEGRIP
|
||||
const GUILLOTINE
|
||||
const RAZOR_WIND
|
||||
const SWORDS_DANCE
|
||||
const CUT
|
||||
const GUST
|
||||
const WING_ATTACK
|
||||
const WHIRLWIND
|
||||
const FLY
|
||||
const BIND
|
||||
const SLAM
|
||||
const VINE_WHIP
|
||||
const STOMP
|
||||
const DOUBLE_KICK
|
||||
const MEGA_KICK
|
||||
const JUMP_KICK
|
||||
const ROLLING_KICK
|
||||
const SAND_ATTACK
|
||||
const HEADBUTT
|
||||
const HORN_ATTACK
|
||||
const FURY_ATTACK
|
||||
const HORN_DRILL
|
||||
const TACKLE
|
||||
const BODY_SLAM
|
||||
const WRAP
|
||||
const TAKE_DOWN
|
||||
const THRASH
|
||||
const DOUBLE_EDGE
|
||||
const TAIL_WHIP
|
||||
const POISON_STING
|
||||
const TWINEEDLE
|
||||
const PIN_MISSILE
|
||||
const LEER
|
||||
const BITE
|
||||
const GROWL
|
||||
const ROAR
|
||||
const SING
|
||||
const SUPERSONIC
|
||||
const SONICBOOM
|
||||
const DISABLE
|
||||
const ACID
|
||||
const EMBER
|
||||
const FLAMETHROWER
|
||||
const MIST
|
||||
const WATER_GUN
|
||||
const HYDRO_PUMP
|
||||
const SURF
|
||||
const ICE_BEAM
|
||||
const BLIZZARD
|
||||
const PSYBEAM
|
||||
const BUBBLEBEAM
|
||||
const AURORA_BEAM
|
||||
const HYPER_BEAM
|
||||
const PECK
|
||||
const DRILL_PECK
|
||||
const SUBMISSION
|
||||
const LOW_KICK
|
||||
const COUNTER
|
||||
const SEISMIC_TOSS
|
||||
const STRENGTH
|
||||
const ABSORB
|
||||
const MEGA_DRAIN
|
||||
const LEECH_SEED
|
||||
const GROWTH
|
||||
const RAZOR_LEAF
|
||||
const SOLARBEAM
|
||||
const POISONPOWDER
|
||||
const STUN_SPORE
|
||||
const SLEEP_POWDER
|
||||
const PETAL_DANCE
|
||||
const STRING_SHOT
|
||||
const DRAGON_RAGE
|
||||
const FIRE_SPIN
|
||||
const THUNDERSHOCK
|
||||
const THUNDERBOLT
|
||||
const THUNDER_WAVE
|
||||
const THUNDER
|
||||
const ROCK_THROW
|
||||
const EARTHQUAKE
|
||||
const FISSURE
|
||||
const DIG
|
||||
const TOXIC
|
||||
const CONFUSION
|
||||
const PSYCHIC_M
|
||||
const HYPNOSIS
|
||||
const MEDITATE
|
||||
const AGILITY
|
||||
const QUICK_ATTACK
|
||||
const RAGE
|
||||
const TELEPORT
|
||||
const NIGHT_SHADE
|
||||
const MIMIC
|
||||
const SCREECH
|
||||
const DOUBLE_TEAM
|
||||
const RECOVER
|
||||
const HARDEN
|
||||
const MINIMIZE
|
||||
const SMOKESCREEN
|
||||
const CONFUSE_RAY
|
||||
const WITHDRAW
|
||||
const DEFENSE_CURL
|
||||
const BARRIER
|
||||
const LIGHT_SCREEN
|
||||
const HAZE
|
||||
const REFLECT
|
||||
const FOCUS_ENERGY
|
||||
const BIDE
|
||||
const METRONOME
|
||||
const MIRROR_MOVE
|
||||
const SELFDESTRUCT
|
||||
const EGG_BOMB
|
||||
const LICK
|
||||
const SMOG
|
||||
const SLUDGE
|
||||
const BONE_CLUB
|
||||
const FIRE_BLAST
|
||||
const WATERFALL
|
||||
const CLAMP
|
||||
const SWIFT
|
||||
const SKULL_BASH
|
||||
const SPIKE_CANNON
|
||||
const CONSTRICT
|
||||
const AMNESIA
|
||||
const KINESIS
|
||||
const SOFTBOILED
|
||||
const HI_JUMP_KICK
|
||||
const GLARE
|
||||
const DREAM_EATER
|
||||
const POISON_GAS
|
||||
const BARRAGE
|
||||
const LEECH_LIFE
|
||||
const LOVELY_KISS
|
||||
const SKY_ATTACK
|
||||
const TRANSFORM
|
||||
const BUBBLE
|
||||
const DIZZY_PUNCH
|
||||
const SPORE
|
||||
const FLASH
|
||||
const PSYWAVE
|
||||
const SPLASH
|
||||
const ACID_ARMOR
|
||||
const CRABHAMMER
|
||||
const EXPLOSION
|
||||
const FURY_SWIPES
|
||||
const BONEMERANG
|
||||
const REST
|
||||
const ROCK_SLIDE
|
||||
const HYPER_FANG
|
||||
const SHARPEN
|
||||
const CONVERSION
|
||||
const TRI_ATTACK
|
||||
const SUPER_FANG
|
||||
const SLASH
|
||||
const SUBSTITUTE
|
||||
|
||||
; these do double duty as animation identifiers
|
||||
SHOWPIC_ANIM EQU $A6 ; redraw monster pic
|
||||
STATUS_AFFECTED_ANIM EQU $A7 ; effect when monster receives a status aliment
|
||||
XSTATITEM_ANIM EQU $AE ; use X Attack/Defense/Speed/Special
|
||||
BURN_PSN_ANIM EQU $BA ; Plays when a monster is burned or poisoned
|
||||
SLP_ANIM EQU $BD ; sleeping monster
|
||||
CONF_ANIM EQU $BF ; confused monster
|
||||
TOSS_ANIM EQU $C1 ; toss Poké Ball
|
||||
SHAKE_ANIM EQU $C2 ; shaking Poké Ball when catching monster
|
||||
POOF_ANIM EQU $C3 ; puff of smoke
|
||||
BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball
|
||||
GREATTOSS_ANIM EQU $C5 ; toss Great Ball
|
||||
ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball
|
||||
HIDEPIC_ANIM EQU $C8 ; monster disappears
|
||||
ROCK_ANIM EQU $C9 ; throw rock
|
||||
BAIT_ANIM EQU $CA ; throw bait
|
||||
NUM_ATTACKS EQU const_value + -1
|
||||
|
||||
const STRUGGLE
|
||||
|
||||
; Moves do double duty as animation identifiers.
|
||||
|
||||
const SHOWPIC_ANIM
|
||||
const STATUS_AFFECTED_ANIM
|
||||
const ANIM_A8
|
||||
const ANIM_A9
|
||||
const ANIM_AA
|
||||
const ANIM_AB
|
||||
const ANIM_AC
|
||||
const ANIM_AD
|
||||
const XSTATITEM_ANIM ; use X Attack/Defense/Speed/Special
|
||||
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
|
||||
|
|
|
|||
345
data/moves.asm
345
data/moves.asm
|
|
@ -1,168 +1,177 @@
|
|||
Moves: ; 38000 (e:4000)
|
||||
; characteristics of each move
|
||||
; animation, effect, power, type, accuracy, PP
|
||||
db POUND ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35
|
||||
db KARATE_CHOP ,NO_ADDITIONAL_EFFECT ,$32,NORMAL, $FF,25
|
||||
db DOUBLESLAP ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,10
|
||||
db COMET_PUNCH ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL, $D8,15
|
||||
db MEGA_PUNCH ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $D8,20
|
||||
db PAY_DAY ,PAY_DAY_EFFECT ,$28,NORMAL, $FF,20
|
||||
db FIRE_PUNCH ,BURN_SIDE_EFFECT1 ,$4B,FIRE, $FF,15
|
||||
db ICE_PUNCH ,FREEZE_SIDE_EFFECT ,$4B,ICE, $FF,15
|
||||
db THUNDERPUNCH,PARALYZE_SIDE_EFFECT1 ,$4B,ELECTRIC,$FF,15
|
||||
db SCRATCH ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35
|
||||
db VICEGRIP ,NO_ADDITIONAL_EFFECT ,$37,NORMAL, $FF,30
|
||||
db GUILLOTINE ,OHKO_EFFECT ,$01,NORMAL, $4C,5
|
||||
db RAZOR_WIND ,CHARGE_EFFECT ,$50,NORMAL, $BF,10
|
||||
db SWORDS_DANCE,ATTACK_UP2_EFFECT ,$00,NORMAL, $FF,30
|
||||
db CUT ,NO_ADDITIONAL_EFFECT ,$32,NORMAL, $F2,30
|
||||
db GUST ,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,35
|
||||
db WING_ATTACK ,NO_ADDITIONAL_EFFECT ,$23,FLYING, $FF,35
|
||||
db WHIRLWIND ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL, $D8,20
|
||||
db FLY ,FLY_EFFECT ,$46,FLYING, $F2,15
|
||||
db BIND ,TRAPPING_EFFECT ,$0F,NORMAL, $BF,20
|
||||
db SLAM ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $BF,20
|
||||
db VINE_WHIP ,NO_ADDITIONAL_EFFECT ,$23,GRASS, $FF,10
|
||||
db STOMP ,FLINCH_SIDE_EFFECT2 ,$41,NORMAL, $FF,20
|
||||
db DOUBLE_KICK ,ATTACK_TWICE_EFFECT ,$1E,FIGHTING,$FF,30
|
||||
db MEGA_KICK ,NO_ADDITIONAL_EFFECT ,$78,NORMAL, $BF,5
|
||||
db JUMP_KICK ,JUMP_KICK_EFFECT ,$46,FIGHTING,$F2,25
|
||||
db ROLLING_KICK,FLINCH_SIDE_EFFECT2 ,$3C,FIGHTING,$D8,15
|
||||
db SAND_ATTACK ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $FF,15
|
||||
db HEADBUTT ,FLINCH_SIDE_EFFECT2 ,$46,NORMAL, $FF,15
|
||||
db HORN_ATTACK ,NO_ADDITIONAL_EFFECT ,$41,NORMAL, $FF,25
|
||||
db FURY_ATTACK ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,20
|
||||
db HORN_DRILL ,OHKO_EFFECT ,$01,NORMAL, $4C,5
|
||||
db TACKLE ,NO_ADDITIONAL_EFFECT ,$23,NORMAL, $F2,35
|
||||
db BODY_SLAM ,PARALYZE_SIDE_EFFECT2 ,$55,NORMAL, $FF,15
|
||||
db WRAP ,TRAPPING_EFFECT ,$0F,NORMAL, $D8,20
|
||||
db TAKE_DOWN ,RECOIL_EFFECT ,$5A,NORMAL, $D8,20
|
||||
db THRASH ,THRASH_PETAL_DANCE_EFFECT ,$5A,NORMAL, $FF,20
|
||||
db DOUBLE_EDGE ,RECOIL_EFFECT ,$64,NORMAL, $FF,15
|
||||
db TAIL_WHIP ,DEFENSE_DOWN1_EFFECT ,$00,NORMAL, $FF,30
|
||||
db POISON_STING,POISON_SIDE_EFFECT1 ,$0F,POISON, $FF,35
|
||||
db TWINEEDLE ,TWINEEDLE_EFFECT ,$19,BUG, $FF,20
|
||||
db PIN_MISSILE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0E,BUG, $D8,20
|
||||
db LEER ,DEFENSE_DOWN1_EFFECT ,$00,NORMAL, $FF,30
|
||||
db BITE ,FLINCH_SIDE_EFFECT1 ,$3C,NORMAL, $FF,25
|
||||
db GROWL ,ATTACK_DOWN1_EFFECT ,$00,NORMAL, $FF,40
|
||||
db ROAR ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL, $FF,20
|
||||
db SING ,SLEEP_EFFECT ,$00,NORMAL, $8C,15
|
||||
db SUPERSONIC ,CONFUSION_EFFECT ,$00,NORMAL, $8C,20
|
||||
db SONICBOOM ,SPECIAL_DAMAGE_EFFECT ,$01,NORMAL, $E5,20
|
||||
db DISABLE ,DISABLE_EFFECT ,$00,NORMAL, $8C,20
|
||||
db ACID ,DEFENSE_DOWN_SIDE_EFFECT ,$28,POISON, $FF,30
|
||||
db EMBER ,BURN_SIDE_EFFECT1 ,$28,FIRE, $FF,25
|
||||
db FLAMETHROWER,BURN_SIDE_EFFECT1 ,$5F,FIRE, $FF,15
|
||||
db MIST ,MIST_EFFECT ,$00,ICE, $FF,30
|
||||
db WATER_GUN ,NO_ADDITIONAL_EFFECT ,$28,WATER, $FF,25
|
||||
db HYDRO_PUMP ,NO_ADDITIONAL_EFFECT ,$78,WATER, $CC,5
|
||||
db SURF ,NO_ADDITIONAL_EFFECT ,$5F,WATER, $FF,15
|
||||
db ICE_BEAM ,FREEZE_SIDE_EFFECT ,$5F,ICE, $FF,10
|
||||
db BLIZZARD ,FREEZE_SIDE_EFFECT ,$78,ICE, $E5,5
|
||||
db PSYBEAM ,CONFUSION_SIDE_EFFECT ,$41,PSYCHIC, $FF,20
|
||||
db BUBBLEBEAM ,SPEED_DOWN_SIDE_EFFECT ,$41,WATER, $FF,20
|
||||
db AURORA_BEAM ,ATTACK_DOWN_SIDE_EFFECT ,$41,ICE, $FF,20
|
||||
db HYPER_BEAM ,HYPER_BEAM_EFFECT ,$96,NORMAL, $E5,5
|
||||
db PECK ,NO_ADDITIONAL_EFFECT ,$23,FLYING, $FF,35
|
||||
db DRILL_PECK ,NO_ADDITIONAL_EFFECT ,$50,FLYING, $FF,20
|
||||
db SUBMISSION ,RECOIL_EFFECT ,$50,FIGHTING,$CC,25
|
||||
db LOW_KICK ,FLINCH_SIDE_EFFECT2 ,$32,FIGHTING,$E5,20
|
||||
db COUNTER ,NO_ADDITIONAL_EFFECT ,$01,FIGHTING,$FF,20
|
||||
db SEISMIC_TOSS,SPECIAL_DAMAGE_EFFECT ,$01,FIGHTING,$FF,20
|
||||
db STRENGTH ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $FF,15
|
||||
db ABSORB ,DRAIN_HP_EFFECT ,$14,GRASS, $FF,20
|
||||
db MEGA_DRAIN ,DRAIN_HP_EFFECT ,$28,GRASS, $FF,10
|
||||
db LEECH_SEED ,LEECH_SEED_EFFECT ,$00,GRASS, $E5,10
|
||||
db GROWTH ,SPECIAL_UP1_EFFECT ,$00,NORMAL, $FF,40
|
||||
db RAZOR_LEAF ,NO_ADDITIONAL_EFFECT ,$37,GRASS, $F2,25
|
||||
db SOLARBEAM ,CHARGE_EFFECT ,$78,GRASS, $FF,10
|
||||
db POISONPOWDER,POISON_EFFECT ,$00,POISON, $BF,35
|
||||
db STUN_SPORE ,PARALYZE_EFFECT ,$00,GRASS, $BF,30
|
||||
db SLEEP_POWDER,SLEEP_EFFECT ,$00,GRASS, $BF,15
|
||||
db PETAL_DANCE ,THRASH_PETAL_DANCE_EFFECT ,$46,GRASS, $FF,20
|
||||
db STRING_SHOT ,SPEED_DOWN1_EFFECT ,$00,BUG, $F2,40
|
||||
db DRAGON_RAGE ,SPECIAL_DAMAGE_EFFECT ,$01,DRAGON, $FF,10
|
||||
db FIRE_SPIN ,TRAPPING_EFFECT ,$0F,FIRE, $B2,15
|
||||
db THUNDERSHOCK,PARALYZE_SIDE_EFFECT1 ,$28,ELECTRIC,$FF,30
|
||||
db THUNDERBOLT ,PARALYZE_SIDE_EFFECT1 ,$5F,ELECTRIC,$FF,15
|
||||
db THUNDER_WAVE,PARALYZE_EFFECT ,$00,ELECTRIC,$FF,20
|
||||
db THUNDER ,PARALYZE_SIDE_EFFECT1 ,$78,ELECTRIC,$B2,10
|
||||
db ROCK_THROW ,NO_ADDITIONAL_EFFECT ,$32,ROCK, $A5,15
|
||||
db EARTHQUAKE ,NO_ADDITIONAL_EFFECT ,$64,GROUND, $FF,10
|
||||
db FISSURE ,OHKO_EFFECT ,$01,GROUND, $4C,5
|
||||
db DIG ,CHARGE_EFFECT ,$64,GROUND, $FF,10
|
||||
db TOXIC ,POISON_EFFECT ,$00,POISON, $D8,10
|
||||
db CONFUSION ,CONFUSION_SIDE_EFFECT ,$32,PSYCHIC, $FF,25
|
||||
db PSYCHIC_M ,SPECIAL_DOWN_SIDE_EFFECT ,$5A,PSYCHIC, $FF,10
|
||||
db HYPNOSIS ,SLEEP_EFFECT ,$00,PSYCHIC, $99,20
|
||||
db MEDITATE ,ATTACK_UP1_EFFECT ,$00,PSYCHIC, $FF,40
|
||||
db AGILITY ,SPEED_UP2_EFFECT ,$00,PSYCHIC, $FF,30
|
||||
db QUICK_ATTACK,NO_ADDITIONAL_EFFECT ,$28,NORMAL, $FF,30
|
||||
db RAGE ,RAGE_EFFECT ,$14,NORMAL, $FF,20
|
||||
db TELEPORT ,SWITCH_AND_TELEPORT_EFFECT,$00,PSYCHIC, $FF,20
|
||||
db NIGHT_SHADE ,SPECIAL_DAMAGE_EFFECT ,$00,GHOST, $FF,15
|
||||
db MIMIC ,MIMIC_EFFECT ,$00,NORMAL, $FF,10
|
||||
db SCREECH ,DEFENSE_DOWN2_EFFECT ,$00,NORMAL, $D8,40
|
||||
db DOUBLE_TEAM ,EVASION_UP1_EFFECT ,$00,NORMAL, $FF,15
|
||||
db RECOVER ,HEAL_EFFECT ,$00,NORMAL, $FF,20
|
||||
db HARDEN ,DEFENSE_UP1_EFFECT ,$00,NORMAL, $FF,30
|
||||
db MINIMIZE ,EVASION_UP1_EFFECT ,$00,NORMAL, $FF,20
|
||||
db SMOKESCREEN ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $FF,20
|
||||
db CONFUSE_RAY ,CONFUSION_EFFECT ,$00,GHOST, $FF,10
|
||||
db WITHDRAW ,DEFENSE_UP1_EFFECT ,$00,WATER, $FF,40
|
||||
db DEFENSE_CURL,DEFENSE_UP1_EFFECT ,$00,NORMAL, $FF,40
|
||||
db BARRIER ,DEFENSE_UP2_EFFECT ,$00,PSYCHIC, $FF,30
|
||||
db LIGHT_SCREEN,LIGHT_SCREEN_EFFECT ,$00,PSYCHIC, $FF,30
|
||||
db HAZE ,HAZE_EFFECT ,$00,ICE, $FF,30
|
||||
db REFLECT ,REFLECT_EFFECT ,$00,PSYCHIC, $FF,20
|
||||
db FOCUS_ENERGY,FOCUS_ENERGY_EFFECT ,$00,NORMAL, $FF,30
|
||||
db BIDE ,BIDE_EFFECT ,$00,NORMAL, $FF,10
|
||||
db METRONOME ,METRONOME_EFFECT ,$00,NORMAL, $FF,10
|
||||
db MIRROR_MOVE ,MIRROR_MOVE_EFFECT ,$00,FLYING, $FF,20
|
||||
db SELFDESTRUCT,EXPLODE_EFFECT ,$82,NORMAL, $FF,5
|
||||
db EGG_BOMB ,NO_ADDITIONAL_EFFECT ,$64,NORMAL, $BF,10
|
||||
db LICK ,PARALYZE_SIDE_EFFECT2 ,$14,GHOST, $FF,30
|
||||
db SMOG ,POISON_SIDE_EFFECT2 ,$14,POISON, $B2,20
|
||||
db SLUDGE ,POISON_SIDE_EFFECT2 ,$41,POISON, $FF,20
|
||||
db BONE_CLUB ,FLINCH_SIDE_EFFECT1 ,$41,GROUND, $D8,20
|
||||
db FIRE_BLAST ,BURN_SIDE_EFFECT2 ,$78,FIRE, $D8,5
|
||||
db WATERFALL ,NO_ADDITIONAL_EFFECT ,$50,WATER, $FF,15
|
||||
db CLAMP ,TRAPPING_EFFECT ,$23,WATER, $BF,10
|
||||
db SWIFT ,SWIFT_EFFECT ,$3C,NORMAL, $FF,20
|
||||
db SKULL_BASH ,CHARGE_EFFECT ,$64,NORMAL, $FF,15
|
||||
db SPIKE_CANNON,TWO_TO_FIVE_ATTACKS_EFFECT,$14,NORMAL, $FF,15
|
||||
db CONSTRICT ,SPEED_DOWN_SIDE_EFFECT ,$0A,NORMAL, $FF,35
|
||||
db AMNESIA ,SPECIAL_UP2_EFFECT ,$00,PSYCHIC, $FF,20
|
||||
db KINESIS ,ACCURACY_DOWN1_EFFECT ,$00,PSYCHIC, $CC,15
|
||||
db SOFTBOILED ,HEAL_EFFECT ,$00,NORMAL, $FF,10
|
||||
db HI_JUMP_KICK,JUMP_KICK_EFFECT ,$55,FIGHTING,$E5,20
|
||||
db GLARE ,PARALYZE_EFFECT ,$00,NORMAL, $BF,30
|
||||
db DREAM_EATER ,DREAM_EATER_EFFECT ,$64,PSYCHIC, $FF,15
|
||||
db POISON_GAS ,POISON_EFFECT ,$00,POISON, $8C,40
|
||||
db BARRAGE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL, $D8,20
|
||||
db LEECH_LIFE ,DRAIN_HP_EFFECT ,$14,BUG, $FF,15
|
||||
db LOVELY_KISS ,SLEEP_EFFECT ,$00,NORMAL, $BF,10
|
||||
db SKY_ATTACK ,CHARGE_EFFECT ,$8C,FLYING, $E5,5
|
||||
db TRANSFORM ,TRANSFORM_EFFECT ,$00,NORMAL, $FF,10
|
||||
db BUBBLE ,SPEED_DOWN_SIDE_EFFECT ,$14,WATER, $FF,30
|
||||
db DIZZY_PUNCH ,NO_ADDITIONAL_EFFECT ,$46,NORMAL, $FF,10
|
||||
db SPORE ,SLEEP_EFFECT ,$00,GRASS, $FF,15
|
||||
db FLASH ,ACCURACY_DOWN1_EFFECT ,$00,NORMAL, $B2,20
|
||||
db PSYWAVE ,SPECIAL_DAMAGE_EFFECT ,$01,PSYCHIC, $CC,15
|
||||
db SPLASH ,SPLASH_EFFECT ,$00,NORMAL, $FF,40
|
||||
db ACID_ARMOR ,DEFENSE_UP2_EFFECT ,$00,POISON, $FF,40
|
||||
db CRABHAMMER ,NO_ADDITIONAL_EFFECT ,$5A,WATER, $D8,10
|
||||
db EXPLOSION ,EXPLODE_EFFECT ,$AA,NORMAL, $FF,5
|
||||
db FURY_SWIPES ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL, $CC,15
|
||||
db BONEMERANG ,ATTACK_TWICE_EFFECT ,$32,GROUND, $E5,10
|
||||
db REST ,HEAL_EFFECT ,$00,PSYCHIC, $FF,10
|
||||
db ROCK_SLIDE ,NO_ADDITIONAL_EFFECT ,$4B,ROCK, $E5,10
|
||||
db HYPER_FANG ,FLINCH_SIDE_EFFECT1 ,$50,NORMAL, $E5,15
|
||||
db SHARPEN ,ATTACK_UP1_EFFECT ,$00,NORMAL, $FF,30
|
||||
db CONVERSION ,CONVERSION_EFFECT ,$00,NORMAL, $FF,30
|
||||
db TRI_ATTACK ,NO_ADDITIONAL_EFFECT ,$50,NORMAL, $FF,10
|
||||
db SUPER_FANG ,SUPER_FANG_EFFECT ,$01,NORMAL, $E5,10
|
||||
db SLASH ,NO_ADDITIONAL_EFFECT ,$46,NORMAL, $FF,20
|
||||
db SUBSTITUTE ,SUBSTITUTE_EFFECT ,$00,NORMAL, $FF,10
|
||||
db STRUGGLE ,RECOIL_EFFECT ,$32,NORMAL, $FF,10
|
||||
Moves:
|
||||
; Characteristics of each move.
|
||||
|
||||
move: macro
|
||||
db \1 ; animation (interchangeable with move id)
|
||||
db \2 ; effect
|
||||
db \3 ; power
|
||||
db \4 ; type
|
||||
db \5 percent ; accuracy
|
||||
db \6 ; pp
|
||||
endm
|
||||
|
||||
move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
|
||||
move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25
|
||||
move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10
|
||||
move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15
|
||||
move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20
|
||||
move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20
|
||||
move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15
|
||||
move ICE_PUNCH, FREEZE_SIDE_EFFECT, 75, ICE, 100, 15
|
||||
move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15
|
||||
move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
|
||||
move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30
|
||||
move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5
|
||||
move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10
|
||||
move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30
|
||||
move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30
|
||||
move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
|
||||
move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
|
||||
move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20
|
||||
move FLY, FLY_EFFECT, 70, FLYING, 95, 15
|
||||
move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20
|
||||
move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20
|
||||
move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10
|
||||
move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20
|
||||
move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30
|
||||
move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5
|
||||
move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25
|
||||
move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15
|
||||
move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15
|
||||
move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15
|
||||
move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25
|
||||
move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
|
||||
move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5
|
||||
move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35
|
||||
move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15
|
||||
move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20
|
||||
move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20
|
||||
move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20
|
||||
move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15
|
||||
move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
|
||||
move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35
|
||||
move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20
|
||||
move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20
|
||||
move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
|
||||
move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25
|
||||
move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40
|
||||
move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20
|
||||
move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15
|
||||
move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20
|
||||
move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20
|
||||
move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20
|
||||
move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30
|
||||
move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25
|
||||
move FLAMETHROWER, BURN_SIDE_EFFECT1, 95, FIRE, 100, 15
|
||||
move MIST, MIST_EFFECT, 0, ICE, 100, 30
|
||||
move WATER_GUN, NO_ADDITIONAL_EFFECT, 40, WATER, 100, 25
|
||||
move HYDRO_PUMP, NO_ADDITIONAL_EFFECT, 120, WATER, 80, 5
|
||||
move SURF, NO_ADDITIONAL_EFFECT, 95, WATER, 100, 15
|
||||
move ICE_BEAM, FREEZE_SIDE_EFFECT, 95, ICE, 100, 10
|
||||
move BLIZZARD, FREEZE_SIDE_EFFECT, 120, ICE, 90, 5
|
||||
move PSYBEAM, CONFUSION_SIDE_EFFECT, 65, PSYCHIC, 100, 20
|
||||
move BUBBLEBEAM, SPEED_DOWN_SIDE_EFFECT, 65, WATER, 100, 20
|
||||
move AURORA_BEAM, ATTACK_DOWN_SIDE_EFFECT, 65, ICE, 100, 20
|
||||
move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5
|
||||
move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
|
||||
move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20
|
||||
move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25
|
||||
move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20
|
||||
move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20
|
||||
move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20
|
||||
move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15
|
||||
move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20
|
||||
move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10
|
||||
move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10
|
||||
move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40
|
||||
move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25
|
||||
move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10
|
||||
move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35
|
||||
move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30
|
||||
move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15
|
||||
move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20
|
||||
move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40
|
||||
move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10
|
||||
move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15
|
||||
move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30
|
||||
move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15
|
||||
move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20
|
||||
move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10
|
||||
move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15
|
||||
move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10
|
||||
move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5
|
||||
move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10
|
||||
move TOXIC, POISON_EFFECT, 0, POISON, 85, 10
|
||||
move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC, 100, 25
|
||||
move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC, 100, 10
|
||||
move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC, 60, 20
|
||||
move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC, 100, 40
|
||||
move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC, 100, 30
|
||||
move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30
|
||||
move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20
|
||||
move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC, 100, 20
|
||||
move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15
|
||||
move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10
|
||||
move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40
|
||||
move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15
|
||||
move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20
|
||||
move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30
|
||||
move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20
|
||||
move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20
|
||||
move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10
|
||||
move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40
|
||||
move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40
|
||||
move BARRIER, DEFENSE_UP2_EFFECT, 0, PSYCHIC, 100, 30
|
||||
move LIGHT_SCREEN, LIGHT_SCREEN_EFFECT, 0, PSYCHIC, 100, 30
|
||||
move HAZE, HAZE_EFFECT, 0, ICE, 100, 30
|
||||
move REFLECT, REFLECT_EFFECT, 0, PSYCHIC, 100, 20
|
||||
move FOCUS_ENERGY, FOCUS_ENERGY_EFFECT, 0, NORMAL, 100, 30
|
||||
move BIDE, BIDE_EFFECT, 0, NORMAL, 100, 10
|
||||
move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10
|
||||
move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20
|
||||
move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5
|
||||
move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10
|
||||
move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30
|
||||
move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20
|
||||
move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20
|
||||
move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20
|
||||
move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5
|
||||
move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15
|
||||
move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10
|
||||
move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20
|
||||
move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15
|
||||
move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15
|
||||
move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35
|
||||
move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC, 100, 20
|
||||
move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC, 80, 15
|
||||
move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10
|
||||
move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20
|
||||
move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30
|
||||
move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC, 100, 15
|
||||
move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40
|
||||
move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
|
||||
move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15
|
||||
move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10
|
||||
move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5
|
||||
move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10
|
||||
move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30
|
||||
move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10
|
||||
move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15
|
||||
move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20
|
||||
move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC, 80, 15
|
||||
move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40
|
||||
move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40
|
||||
move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10
|
||||
move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5
|
||||
move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15
|
||||
move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 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
|
||||
|
|
|
|||
|
|
@ -391,7 +391,7 @@ GetTrainerName_: ; 13a58 (4:7a58)
|
|||
ld [wd0b5], a
|
||||
ld a, TRAINER_NAME
|
||||
ld [W_LISTTYPE], a
|
||||
ld a, $e
|
||||
ld a, BANK(TrainerNames)
|
||||
ld [wPredefBank], a
|
||||
call GetName
|
||||
ld hl, wcd6d
|
||||
|
|
|
|||
|
|
@ -525,9 +525,9 @@ Func_78e23: ; 78e23 (1e:4e23)
|
|||
ld [wcc79], a
|
||||
ld b, $e4
|
||||
ld a, [W_ANIMATIONID] ; W_ANIMATIONID
|
||||
cp $aa
|
||||
cp ANIM_AA
|
||||
jr c, .asm_78e3f
|
||||
cp $ae
|
||||
cp ANIM_AD + 1
|
||||
jr nc, .asm_78e3f
|
||||
ld b, $f0
|
||||
.asm_78e3f
|
||||
|
|
@ -697,13 +697,13 @@ AnimationIdSpecialEffects: ; 78ef5 (1e:4ef5)
|
|||
db ROCK_SLIDE
|
||||
dw DoRockSlideSpecialEffects
|
||||
|
||||
db $AA
|
||||
db ANIM_AA
|
||||
dw Func_79041
|
||||
|
||||
db $AB
|
||||
db ANIM_AB
|
||||
dw Func_7904c
|
||||
|
||||
db $AC
|
||||
db ANIM_AC
|
||||
dw Func_7907c
|
||||
|
||||
db TOSS_ANIM
|
||||
|
|
@ -2855,10 +2855,10 @@ TossBallAnimation: ; 79e16 (1e:5e16)
|
|||
|
||||
.PokeBallAnimations: ; 79e50 (1e:5e50)
|
||||
; 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
|
||||
ld a,$C1
|
||||
ld a,TOSS_ANIM
|
||||
ld [W_ANIMATIONID],a
|
||||
call PlayAnimation
|
||||
ld a,(SFX_08_43 - SFX_Headers_08) / 3
|
||||
|
|
|
|||
|
|
@ -2184,7 +2184,9 @@ asm_3d00e: ; 3d00e (f:500e)
|
|||
jr Func_3d03c
|
||||
|
||||
OldManItemList: ; 3d02d (f:502d)
|
||||
db $01, POKE_BALL, 50, $ff
|
||||
db 1 ; # items
|
||||
db POKE_BALL, 50
|
||||
db -1
|
||||
|
||||
Func_3d031
|
||||
ld hl, wNumBagItems ; wNumBagItems
|
||||
|
|
@ -5471,7 +5473,7 @@ asm_3e70b: ; 3e70b (f:670b)
|
|||
res 6, [hl] ; no longer invulnerable to typcial attacks
|
||||
ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
|
||||
ld [wd0b5], a
|
||||
ld a, $2c
|
||||
ld a, BANK(MoveNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, MOVE_NAME
|
||||
ld [W_LISTTYPE], a
|
||||
|
|
@ -5950,10 +5952,11 @@ GetCurrentMove: ; 3eabe (f:6abe)
|
|||
call AddNTimes
|
||||
ld a, BANK(Moves)
|
||||
call FarCopyData
|
||||
ld a, $2c
|
||||
|
||||
ld a, BANK(MoveNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, $2
|
||||
ld [W_LISTTYPE], a ; list type 2 = move name
|
||||
ld a, MOVE_NAME
|
||||
ld [W_LISTTYPE], a
|
||||
call GetName
|
||||
ld de, wcd6d
|
||||
jp CopyStringToCF4B
|
||||
|
|
@ -7059,16 +7062,16 @@ PoisonEffect: ; 3f24f (f:724f)
|
|||
dec de
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
and a
|
||||
ld b, $c7
|
||||
ld b, ANIM_C7
|
||||
ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
|
||||
ld a, [de]
|
||||
ld de, W_PLAYERTOXICCOUNTER ; wd06c
|
||||
jr nz, .asm_3f2b0
|
||||
ld b, $a9
|
||||
ld b, ANIM_A9
|
||||
ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
|
||||
ld de, W_ENEMYTOXICCOUNTER ; wd071
|
||||
.asm_3f2b0
|
||||
cp $5c
|
||||
cp TOXIC
|
||||
jr nz, .asm_3f2bd
|
||||
set 0, [hl]
|
||||
xor a
|
||||
|
|
@ -7170,14 +7173,14 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
|
|||
ld a, 1 << PAR
|
||||
ld [wEnemyMonStatus], a
|
||||
call Func_3ed27 ;quarter speed of affected monster
|
||||
ld a, $a9
|
||||
ld a, ANIM_A9
|
||||
call Func_3fbb9 ;animation
|
||||
jp PrintMayNotAttackText ;print paralysis text
|
||||
.burn
|
||||
ld a, 1 << BRN
|
||||
ld [wEnemyMonStatus], a
|
||||
call Func_3ed64
|
||||
ld a, $a9
|
||||
ld a, ANIM_A9
|
||||
call Func_3fbb9 ;animation
|
||||
ld hl, BurnedText
|
||||
jp PrintText
|
||||
|
|
@ -7185,7 +7188,7 @@ FreezeBurnParalyzeEffect: ; 3f30c (f:730c)
|
|||
call Func_3f9cf ;resets bit 5 of the D063/D068 flags
|
||||
ld a, 1 << FRZ
|
||||
ld [wEnemyMonStatus], a
|
||||
ld a, $a9
|
||||
ld a, ANIM_A9
|
||||
call Func_3fbb9 ;animation
|
||||
ld hl, FrozenText
|
||||
jp PrintText
|
||||
|
|
@ -7723,7 +7726,7 @@ BideEffect: ; 3f6e5 (f:76e5)
|
|||
inc a
|
||||
ld [bc], a
|
||||
ld a, [H_WHOSETURN]
|
||||
add $ae
|
||||
add XSTATITEM_ANIM
|
||||
jp Func_3fb96
|
||||
|
||||
ThrashPetalDanceEffect: ; 3f717 (f:7717)
|
||||
|
|
@ -7742,7 +7745,7 @@ ThrashPetalDanceEffect: ; 3f717 (f:7717)
|
|||
inc a
|
||||
ld [de], a
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
add $b0
|
||||
add ANIM_B0
|
||||
jp Func_3fb96
|
||||
|
||||
SwitchAndTeleportEffect: ; 3f739 (f:7739)
|
||||
|
|
@ -7938,11 +7941,11 @@ ChargeEffect: ; 3f88c (f:788c)
|
|||
ld de, W_PLAYERMOVEEFFECT ; wcfd3
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
and a
|
||||
ld b, $ae
|
||||
ld b, XSTATITEM_ANIM
|
||||
jr z, .asm_3f8a1
|
||||
ld hl, W_ENEMYBATTSTATUS1 ; W_ENEMYBATTSTATUS1
|
||||
ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
|
||||
ld b, $af
|
||||
ld b, ANIM_AF
|
||||
.asm_3f8a1
|
||||
set 4, [hl]
|
||||
ld a, [de]
|
||||
|
|
@ -7950,13 +7953,13 @@ ChargeEffect: ; 3f88c (f:788c)
|
|||
cp FLY_EFFECT
|
||||
jr nz, .asm_3f8ad
|
||||
set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig)
|
||||
ld b, $64
|
||||
ld b, TELEPORT
|
||||
.asm_3f8ad
|
||||
ld a, [de]
|
||||
cp DIG
|
||||
jr nz, .asm_3f8b6
|
||||
set 6, [hl] ; mon is now invulnerable to typical attacks (fly/dig)
|
||||
ld b, $c0
|
||||
ld b, ANIM_C0
|
||||
.asm_3f8b6
|
||||
xor a
|
||||
ld [wcc5b], a
|
||||
|
|
|
|||
|
|
@ -587,7 +587,7 @@ Func_39b87: ; 39b87 (e:5b87)
|
|||
jr z, .asm_39bc1
|
||||
push hl
|
||||
ld [wd0b5], a
|
||||
ld a, $2c
|
||||
ld a, BANK(MoveNames)
|
||||
ld [wPredefBank], a
|
||||
ld a, MOVE_NAME
|
||||
ld [W_LISTTYPE], a
|
||||
|
|
@ -1407,14 +1407,14 @@ SetupEnemyPartyPokeballs: ; 3a887 (e:6887)
|
|||
ld [hl], $20
|
||||
ld a, $f8
|
||||
ld [wTrainerEngageDistance], a
|
||||
ld hl, wOAMBuffer + $18
|
||||
ld hl, wOAMBuffer + PARTY_LENGTH * 4
|
||||
jp Func_3a8e1
|
||||
|
||||
SetupPokeballs: ; 0x3a8a6
|
||||
ld a, [de]
|
||||
push af
|
||||
ld de, wBuffer
|
||||
ld c, $6 ; max num of partymons
|
||||
ld c, PARTY_LENGTH
|
||||
ld a, $34 ; empty pokeball
|
||||
.emptyloop
|
||||
ld [de], a
|
||||
|
|
@ -1462,7 +1462,7 @@ PickPokeball: ; 3a8c2 (e:68c2)
|
|||
|
||||
Func_3a8e1: ; 3a8e1 (e:68e1)
|
||||
ld de, wHPBarMaxHP
|
||||
ld c, $6
|
||||
ld c, PARTY_LENGTH
|
||||
.asm_3a8e6
|
||||
ld a, [W_BASECOORDY] ; wd082
|
||||
ld [hli], a
|
||||
|
|
|
|||
|
|
@ -537,7 +537,7 @@ TradeCenter_SelectMon:
|
|||
ld [wTileMap + $141], a
|
||||
.asm_574a
|
||||
call JoypadLowSensitivity
|
||||
ld a, [$ffb5]
|
||||
ld a, [hJoy5]
|
||||
and a
|
||||
jr z, .asm_574a ; 0x5750 $f8
|
||||
bit 0, a
|
||||
|
|
@ -896,7 +896,7 @@ Func_5a5f: ; 5a5f (1:5a5f)
|
|||
ld [W_GRASSRATE], a ; W_GRASSRATE
|
||||
inc a
|
||||
ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE
|
||||
ld [$ffb5], a
|
||||
ld [hJoy5], a
|
||||
ld a, $a
|
||||
ld [wMusicHeaderPointer], a
|
||||
ld a, BANK(Music_Celadon)
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ asm_7befa: ; 7befa (1e:7efa)
|
|||
call DelayFrame
|
||||
push bc
|
||||
call JoypadLowSensitivity
|
||||
ld a, [$ffb5]
|
||||
ld a, [hJoy5]
|
||||
pop bc
|
||||
and $2
|
||||
jr nz, .asm_7bf0d
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ Func_3ad71: ; 3ad71 (e:6d71)
|
|||
ld [wHPBarMaxHP + 1], a
|
||||
ld a, MONSTER_NAME
|
||||
ld [W_LISTTYPE], a
|
||||
ld a, $e
|
||||
ld a, BANK(TrainerNames) ; bank is not used for monster names
|
||||
ld [wPredefBank], a
|
||||
call GetName
|
||||
push hl
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ _GivePokemon: ; 4fda5 (13:7da5)
|
|||
xor a
|
||||
ld [wccd3], a
|
||||
ld a, [wPartyCount] ; wPartyCount
|
||||
cp $6
|
||||
cp PARTY_LENGTH
|
||||
jr c, .asm_4fe01
|
||||
ld a, [W_NUMINBOX] ; wda80
|
||||
cp $14
|
||||
cp MONS_PER_BOX
|
||||
jr nc, .asm_4fdf9
|
||||
xor a
|
||||
ld [W_ENEMYBATTSTATUS3], a ; W_ENEMYBATTSTATUS3
|
||||
|
|
@ -18,18 +18,18 @@ _GivePokemon: ; 4fda5 (13:7da5)
|
|||
ld hl, wcf4b
|
||||
ld a, [wd5a0]
|
||||
and $7f
|
||||
cp $9
|
||||
cp 9
|
||||
jr c, .asm_4fdec
|
||||
sub $9
|
||||
ld [hl], $f7
|
||||
sub 9
|
||||
ld [hl], "1"
|
||||
inc hl
|
||||
add $f6
|
||||
add "0"
|
||||
jr .asm_4fdee
|
||||
.asm_4fdec
|
||||
add $f7
|
||||
add "1"
|
||||
.asm_4fdee
|
||||
ld [hli], a
|
||||
ld [hl], $50
|
||||
ld [hl], "@"
|
||||
ld hl, SetToBoxText
|
||||
call PrintText
|
||||
scf
|
||||
|
|
|
|||
|
|
@ -110,10 +110,10 @@ ItemUseBall: ; d687 (3:5687)
|
|||
dec a
|
||||
jr z,.UseBall
|
||||
ld a,[wPartyCount] ;is Party full?
|
||||
cp a,6
|
||||
cp a,PARTY_LENGTH
|
||||
jr nz,.UseBall
|
||||
ld a,[W_NUMINBOX] ;is Box full?
|
||||
cp a,20
|
||||
cp a,MONS_PER_BOX
|
||||
jp z,BoxFullCannotThrowBall
|
||||
.UseBall ;$56a7
|
||||
;ok, you can use a ball
|
||||
|
|
@ -421,7 +421,7 @@ ItemUseBall: ; d687 (3:5687)
|
|||
predef ShowPokedexData
|
||||
.checkParty ;$58f4
|
||||
ld a,[wPartyCount]
|
||||
cp a,6 ;is party full?
|
||||
cp a,PARTY_LENGTH ;is party full?
|
||||
jr z,.sendToBox
|
||||
xor a
|
||||
ld [wcc49],a
|
||||
|
|
|
|||
|
|
@ -88,25 +88,13 @@ Func_213c8:: ; 213c8 (8:53c8)
|
|||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||
ret
|
||||
|
||||
SomeonesPCText: ; 2148b (8:548b)
|
||||
db "SOMEONE's PC@"
|
||||
SomeonesPCText: 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
|
||||
ld hl, wd730
|
||||
set 6, [hl]
|
||||
|
|
@ -167,15 +155,15 @@ BillsPCMenu:
|
|||
call TextBoxBorder
|
||||
ld a, [wd5a0]
|
||||
and $7f
|
||||
cp $9
|
||||
cp 9
|
||||
jr c, .asm_2154f
|
||||
sub $9
|
||||
sub 9
|
||||
hlCoord 17, 16
|
||||
ld [hl], $f7
|
||||
add $f6
|
||||
ld [hl], "1"
|
||||
add "0"
|
||||
jr .asm_21551
|
||||
.asm_2154f
|
||||
add $f7
|
||||
add "1"
|
||||
.asm_21551
|
||||
Coorda 18, 16
|
||||
hlCoord 10, 16
|
||||
|
|
@ -227,7 +215,7 @@ BillsPCDeposit:
|
|||
jp BillsPCMenu
|
||||
.asm_215bb
|
||||
ld a, [W_NUMINBOX] ; wda80
|
||||
cp $14
|
||||
cp MONS_PER_BOX
|
||||
jr nz, .asm_215cb
|
||||
ld hl, BoxFullText ; $5802
|
||||
call PrintText
|
||||
|
|
@ -251,15 +239,15 @@ BillsPCDeposit:
|
|||
ld hl, wWhichTrade ; wWhichTrade
|
||||
ld a, [wd5a0]
|
||||
and $7f
|
||||
cp $9
|
||||
cp 9
|
||||
jr c, .asm_2160a
|
||||
sub $9
|
||||
ld [hl], $f7
|
||||
sub 9
|
||||
ld [hl], "1"
|
||||
inc hl
|
||||
add $f6
|
||||
add "0"
|
||||
jr .asm_2160c
|
||||
.asm_2160a
|
||||
add $f7
|
||||
add "1"
|
||||
.asm_2160c
|
||||
ld [hli], a
|
||||
ld [hl], $50
|
||||
|
|
@ -276,7 +264,7 @@ Func_21618: ; 21618 (8:5618)
|
|||
jp Func_214e8
|
||||
.asm_21627
|
||||
ld a, [wPartyCount] ; wPartyCount
|
||||
cp $6
|
||||
cp PARTY_LENGTH
|
||||
jr nz, .asm_21637
|
||||
ld hl, CantTakeMonText ; $5811
|
||||
call PrintText
|
||||
|
|
@ -353,7 +341,12 @@ Func_216be: ; 216be (8:56be)
|
|||
ret
|
||||
|
||||
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)
|
||||
db "BOX No.@"
|
||||
|
|
@ -389,7 +382,7 @@ HMMoveArray: ; 21745 (8:5745)
|
|||
db SURF
|
||||
db STRENGTH
|
||||
db FLASH
|
||||
db $ff
|
||||
db -1
|
||||
|
||||
Func_2174b: ; 2174b (8:574b)
|
||||
hlCoord 9, 10
|
||||
|
|
@ -458,14 +451,11 @@ Func_2174b: ; 2174b (8:574b)
|
|||
call LoadGBPal
|
||||
jr .asm_2178f
|
||||
|
||||
DepositPCText: ; 217cb (8:57cb)
|
||||
db "DEPOSIT@"
|
||||
|
||||
WithdrawPCText: ; 217d3 (8:57d3)
|
||||
db "WITHDRAW@"
|
||||
|
||||
StatsCancelPCText: ; 217dc (8:57dc)
|
||||
db "STATS",$4e,"CANCEL@"
|
||||
DepositPCText: db "DEPOSIT@"
|
||||
WithdrawPCText: db "WITHDRAW@"
|
||||
StatsCancelPCText:
|
||||
db "STATS"
|
||||
next "CANCEL@"
|
||||
|
||||
SwitchOnText: ; 0x217e9
|
||||
TX_FAR _SwitchOnText
|
||||
|
|
@ -523,7 +513,7 @@ PrintJustAMomentText1:: ; 5824 (8:5825)
|
|||
cp $c
|
||||
ret nz
|
||||
ld a, [W_CURMAP]
|
||||
cp $ef
|
||||
cp BATTLE_CENTER
|
||||
ld a, $2
|
||||
jr z, .asm_2183a
|
||||
inc a
|
||||
|
|
@ -541,7 +531,7 @@ PrintJustAMomentText2:: ; 5845 (8:5845)
|
|||
cp $8
|
||||
ret nz
|
||||
ld a, [W_CURMAP]
|
||||
cp $ef
|
||||
cp BATTLE_CENTER
|
||||
ld a, $2
|
||||
jr z, .asm_2185a
|
||||
inc a
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@ Func_5d5f: ; 5d5f (1:5d5f)
|
|||
xor a
|
||||
ld [hJoyPressed], a
|
||||
ld [hJoyHeld], a
|
||||
ld [$ffb5], a
|
||||
ld [hJoy5], a
|
||||
ld [wd72d], a
|
||||
ld hl, wd732
|
||||
set 0, [hl]
|
||||
|
|
@ -461,7 +461,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a)
|
|||
call SetOptionsFromCursorPositions
|
||||
.getJoypadStateLoop
|
||||
call JoypadLowSensitivity
|
||||
ld a,[$ffb5]
|
||||
ld a,[hJoy5]
|
||||
ld b,a
|
||||
and a,%11111011 ; any key besides select pressed?
|
||||
jr z,.getJoypadStateLoop
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
|
|||
ld [wLastMenuItem],a
|
||||
inc a
|
||||
ld [wd11e],a
|
||||
ld [$ffb7],a
|
||||
ld [hJoy7],a
|
||||
.setUpGraphics
|
||||
ld b,$08
|
||||
call GoPAL_SET
|
||||
|
|
@ -35,7 +35,7 @@ ShowPokedexMenu: ; 40000 (10:4000)
|
|||
ld [wcc37],a
|
||||
ld [wCurrentMenuItem],a
|
||||
ld [wLastMenuItem],a
|
||||
ld [$ffb7],a
|
||||
ld [hJoy7],a
|
||||
ld [wcd3a],a
|
||||
ld [wcd3b],a
|
||||
pop af
|
||||
|
|
@ -550,7 +550,7 @@ ShowPokedexDataInternal: ; 402e2 (10:42e2)
|
|||
ld [$fff4],a
|
||||
.waitForButtonPress
|
||||
call JoypadLowSensitivity
|
||||
ld a,[$ffb5]
|
||||
ld a,[hJoy5]
|
||||
and a,%00000011 ; A button and B button
|
||||
jr z,.waitForButtonPress
|
||||
pop af
|
||||
|
|
|
|||
|
|
@ -445,15 +445,15 @@ Func_7393f: ; 7393f (1c:793f)
|
|||
res 2, [hl]
|
||||
ld a, [wd5a0]
|
||||
and $7f
|
||||
cp $9
|
||||
cp 9
|
||||
jr c, .asm_739a6
|
||||
sub $9
|
||||
sub 9
|
||||
hlCoord 8, 2
|
||||
ld [hl], $f7
|
||||
add $f6
|
||||
ld [hl], "1"
|
||||
add "0"
|
||||
jr .asm_739a8
|
||||
.asm_739a6
|
||||
add $f7
|
||||
add "1"
|
||||
.asm_739a8
|
||||
Coorda 9, 2
|
||||
hlCoord 1, 2
|
||||
|
|
|
|||
|
|
@ -797,7 +797,7 @@ SlotMachine_3784e: ; 3784e (d:784e)
|
|||
SlotMachine_37882: ; 37882 (d:7882)
|
||||
call DelayFrame
|
||||
call JoypadLowSensitivity
|
||||
ld a, [$ffb5]
|
||||
ld a, [hJoy5]
|
||||
and $1
|
||||
ret z
|
||||
ld hl, wTrainerSpriteOffset
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ DisplayTownMap: ; 70e3e (1c:4e3e)
|
|||
ld [hl], $ff
|
||||
push hl
|
||||
ld a, $1
|
||||
ld [$ffb7], a
|
||||
ld [hJoy7], a
|
||||
ld a, [W_CURMAP] ; W_CURMAP
|
||||
push af
|
||||
ld b, $0
|
||||
|
|
@ -66,7 +66,7 @@ Func_70e92: ; 70e92 (1c:4e92)
|
|||
.asm_70ec8
|
||||
call Func_716c6
|
||||
call JoypadLowSensitivity
|
||||
ld a, [$ffb5]
|
||||
ld a, [hJoy5]
|
||||
ld b, a
|
||||
and $c3
|
||||
jr z, .asm_70ec8
|
||||
|
|
@ -78,7 +78,7 @@ Func_70e92: ; 70e92 (1c:4e92)
|
|||
jr nz, .asm_70f01
|
||||
xor a
|
||||
ld [wd09b], a
|
||||
ld [$ffb7], a
|
||||
ld [hJoy7], a
|
||||
ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
|
||||
call Func_711ab
|
||||
pop hl
|
||||
|
|
@ -188,7 +188,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90)
|
|||
push hl
|
||||
call DelayFrame
|
||||
call JoypadLowSensitivity
|
||||
ld a, [$ffb5]
|
||||
ld a, [hJoy5]
|
||||
ld b, a
|
||||
pop hl
|
||||
and $c3
|
||||
|
|
|
|||
|
|
@ -203,9 +203,9 @@ Func_41245: ; 41245 (10:5245)
|
|||
and a
|
||||
jr nz, .asm_41273
|
||||
call Delay50
|
||||
ld a, $ad
|
||||
ld a, ANIM_AD
|
||||
call Func_41676
|
||||
ld a, $aa
|
||||
ld a, ANIM_AA
|
||||
call Func_41676
|
||||
ld a, [wWhichTrade] ; wWhichTrade
|
||||
call PlayCry
|
||||
|
|
@ -242,9 +242,9 @@ Func_41298: ; 41298 (10:5298)
|
|||
ret
|
||||
|
||||
Func_412d2: ; 412d2 (10:52d2)
|
||||
ld a, $ab
|
||||
ld a, ANIM_AB
|
||||
call Func_41676
|
||||
ld c, $a
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
ld a, $e4
|
||||
ld [rOBP0], a ; $ff48
|
||||
|
|
@ -295,7 +295,7 @@ UnknownOAM_4132e: ; 4132e (10:532e)
|
|||
db $7E,$40,$7E,$60
|
||||
|
||||
Func_41336: ; 41336 (10:5336)
|
||||
ld a, $ac
|
||||
ld a, ANIM_AC
|
||||
call Func_41676
|
||||
call Func_415c8
|
||||
hlCoord 4, 10
|
||||
|
|
@ -308,7 +308,7 @@ Func_41336: ; 41336 (10:5336)
|
|||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||
ld a, [wTrainerEngageDistance]
|
||||
call Func_415a4
|
||||
ld a, $ad
|
||||
ld a, ANIM_AD
|
||||
call Func_41676
|
||||
ld a, $1
|
||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||
|
|
|
|||
24
home/copy.asm
Normal file
24
home/copy.asm
Normal 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
228
home/copy2.asm
Normal 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
304
home/serial.asm
Normal 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
3
home/timer.asm
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
; timer interrupt is apparently not invoked anyway
|
||||
Timer:: ; 2306 (0:2306)
|
||||
reti
|
||||
39
hram.asm
39
hram.asm
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
H_SPRITEWIDTH EQU $FF8B ; in bytes
|
||||
H_SPRITEWIDTH EQU $FF8B ; in tiles
|
||||
H_SPRITEINTERLACECOUNTER EQU $FF8B
|
||||
H_SPRITEHEIGHT EQU $FF8C ; in bytes
|
||||
H_SPRITEOFFSET EQU $FF8D
|
||||
H_SPRITEHEIGHT EQU $FF8C ; in tiles
|
||||
H_SPRITEOFFSET EQU $FF8D
|
||||
|
||||
hSoftReset EQU $FF8A
|
||||
; Initialized to 16.
|
||||
|
|
@ -14,28 +14,31 @@ hSoftReset EQU $FF8A
|
|||
H_DOWNARROWBLINKCNT1 EQU $FF8B
|
||||
H_DOWNARROWBLINKCNT2 EQU $FF8C
|
||||
|
||||
; Note: the following multiplication and division addresses are used for multiple purposes
|
||||
; and so they overlap with each other
|
||||
; Multiplcation and division variables are meant
|
||||
; 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_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_QUOTIENT EQU $FF95 ; 4 bytes, big endian order
|
||||
H_QUOTIENT EQU $FF95 ; 4 bytes
|
||||
H_REMAINDER EQU $FF99 ; 1 byte
|
||||
|
||||
; used to convert numbers to decimal
|
||||
H_PASTLEADINGZEROES EQU $FF95 ; flag to indicate that a nonzero digit has been printed
|
||||
H_NUMTOPRINT EQU $FF96 ; 3 bytes, big endian order
|
||||
H_POWEROFTEN EQU $FF99 ; 3 bytes, big endian order
|
||||
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes, big endian order (to back out of a subtraction)
|
||||
; PrintNumber (big endian).
|
||||
H_PASTLEADINGZEROES EQU $FF95 ; last char printed
|
||||
H_NUMTOPRINT EQU $FF96 ; 3 bytes
|
||||
H_POWEROFTEN EQU $FF99 ; 3 bytes
|
||||
H_SAVEDNUMTOPRINT EQU $FF9C ; 3 bytes
|
||||
|
||||
hJoyHeldLast EQU $FFB1
|
||||
hJoyReleased EQU $FFB2
|
||||
hJoyPressed EQU $FFB3
|
||||
hJoyHeld EQU $FFB4
|
||||
hJoyHeldLast EQU $FFB1
|
||||
hJoyReleased EQU $FFB2
|
||||
hJoyPressed EQU $FFB3
|
||||
hJoyHeld EQU $FFB4
|
||||
hJoy5 EQU $FFB5
|
||||
hJoy6 EQU $FFB6
|
||||
hJoy7 EQU $FFB7
|
||||
|
||||
H_LOADEDROMBANK EQU $FFB8
|
||||
|
||||
|
|
|
|||
32
macros.asm
32
macros.asm
|
|
@ -11,6 +11,20 @@ page EQUS "db $49," ; Start a new Pokedex page.
|
|||
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
|
||||
ld a, [H_LOADEDROMBANK]
|
||||
push af
|
||||
|
|
@ -189,6 +203,24 @@ predef_jump: MACRO
|
|||
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
|
||||
;2_channels EQU $40
|
||||
|
|
|
|||
10
main.asm
10
main.asm
|
|
@ -3419,7 +3419,7 @@ _AddPartyMon: ; f2e5 (3:72e5)
|
|||
.asm_f2f2
|
||||
ld a, [de]
|
||||
inc a
|
||||
cp $7
|
||||
cp PARTY_LENGTH + 1
|
||||
ret nc
|
||||
ld [de], a
|
||||
ld a, [de]
|
||||
|
|
@ -3681,7 +3681,7 @@ AddPartyMon_WriteMovePP: ; f476 (3:7476)
|
|||
_AddEnemyMonToPlayerParty: ; f49d (3:749d)
|
||||
ld hl, wPartyCount
|
||||
ld a, [hl]
|
||||
cp $6
|
||||
cp PARTY_LENGTH
|
||||
scf
|
||||
ret z ; party full, return failure
|
||||
inc a
|
||||
|
|
@ -3750,13 +3750,13 @@ Func_f51e: ; f51e (3:751e)
|
|||
jr z, .asm_f575
|
||||
ld hl, W_NUMINBOX ; wda80
|
||||
ld a, [hl]
|
||||
cp $14
|
||||
cp MONS_PER_BOX
|
||||
jr nz, .partyOrBoxNotFull
|
||||
jr .boxFull
|
||||
.checkPartyMonSlots
|
||||
ld hl, wPartyCount ; wPartyCount
|
||||
ld a, [hl]
|
||||
cp $6
|
||||
cp PARTY_LENGTH
|
||||
jr nz, .partyOrBoxNotFull
|
||||
.boxFull
|
||||
scf
|
||||
|
|
@ -3899,7 +3899,7 @@ Func_f51e: ; f51e (3:751e)
|
|||
ld a, d
|
||||
ld [W_CURENEMYLVL], a ; W_CURENEMYLVL
|
||||
pop hl
|
||||
ld bc, $21
|
||||
ld bc, wBoxMon2 - wBoxMon1
|
||||
add hl, bc
|
||||
ld [hli], a
|
||||
ld d, h
|
||||
|
|
|
|||
|
|
@ -67,9 +67,9 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
|
|||
call LoadMonData
|
||||
callab Func_58f43
|
||||
ld a, d
|
||||
cp $64
|
||||
cp MAX_LEVEL
|
||||
jr c, .asm_56315
|
||||
ld d, $64
|
||||
ld d, MAX_LEVEL
|
||||
callab CalcExperience
|
||||
ld hl, wDayCareMonExp
|
||||
ld a, [H_NUMTOPRINT]
|
||||
|
|
@ -78,7 +78,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
|
|||
ld [hli], a
|
||||
ld a, [$ff98]
|
||||
ld [hl], a
|
||||
ld d, $64
|
||||
ld d, MAX_LEVEL
|
||||
|
||||
.asm_56315
|
||||
xor a
|
||||
|
|
@ -100,7 +100,7 @@ DayCareMScript_562e1: ; 562e1 (15:62e1)
|
|||
.asm_56333
|
||||
call PrintText
|
||||
ld a, [wPartyCount]
|
||||
cp $6
|
||||
cp PARTY_LENGTH
|
||||
ld hl, DayCareMText_56440
|
||||
jp z, .asm_56403
|
||||
ld de, wTrainerFacingDirection
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ Route5GateScript0: ; 1df50 (7:5f50)
|
|||
xor a
|
||||
ld [hJoyHeld], a
|
||||
callba RemoveGuardDrink
|
||||
ld a, [$ff00+$db]
|
||||
ld a, [$ffdb]
|
||||
and a
|
||||
jr nz, .asm_1df82 ; 0x1df70 $10
|
||||
ld a, $2
|
||||
ld [$ff00+$8c], a
|
||||
ld [$ff8c], a
|
||||
call DisplayTextID
|
||||
call Route5GateScript_1df43
|
||||
ld a, $1
|
||||
|
|
@ -39,7 +39,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
|
|||
ret
|
||||
.asm_1df82
|
||||
ld a, $3
|
||||
ld [$ff00+$8c], a
|
||||
ld [$ff8c], a
|
||||
call DisplayTextID
|
||||
ld hl, wd728
|
||||
set 6, [hl]
|
||||
|
|
@ -74,7 +74,7 @@ Route5GateText1: ; 1dfaa (7:5faa)
|
|||
bit 6, a
|
||||
jr nz, .asm_88856 ; 0x1dfb0 $2c
|
||||
callba RemoveGuardDrink
|
||||
ld a, [$ff00+$db]
|
||||
ld a, [$ffdb]
|
||||
and a
|
||||
jr nz, .asm_768a2 ; 0x1dfbd $11
|
||||
ld hl, Route5GateText2
|
||||
|
|
|
|||
27
version.asm
27
version.asm
|
|
@ -1,20 +1,11 @@
|
|||
if !def(_RED)
|
||||
_RED EQU 0
|
||||
endc
|
||||
|
||||
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
|
||||
check_ver: MACRO
|
||||
if !def(\1)
|
||||
\1 EQU 0
|
||||
endc
|
||||
ENDM
|
||||
|
||||
check_ver _RED
|
||||
check_ver _BLUE
|
||||
check_ver _JAPAN
|
||||
check_ver _GREEN
|
||||
check_ver _YELLOW
|
||||
|
|
|
|||
Loading…
Reference in a new issue