mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
This commit is contained in:
commit
acdb00c5dc
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# No monkey business with line endings
|
||||||
|
* -text
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -26,8 +26,10 @@ extras/*.json
|
|||||||
# for any of the poor souls with save game files in their working directory
|
# for any of the poor souls with save game files in their working directory
|
||||||
baserom.sgm
|
baserom.sgm
|
||||||
baserom.sav
|
baserom.sav
|
||||||
pokered.sgm
|
baserom.rtc
|
||||||
pokered.sav
|
pokecrystal.sgm
|
||||||
|
pokecrystal.sav
|
||||||
|
pokecrystal.rtc
|
||||||
|
|
||||||
# for vim configuration
|
# for vim configuration
|
||||||
# url: http://www.vim.org/scripts/script.php?script_id=441
|
# url: http://www.vim.org/scripts/script.php?script_id=441
|
||||||
|
180
INSTALL.md
180
INSTALL.md
@ -1,4 +1,21 @@
|
|||||||
# Linux
|
# Getting Started
|
||||||
|
|
||||||
|
Compiling requires a certain Pokemon Crystal ROM:
|
||||||
|
|
||||||
|
```
|
||||||
|
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
|
||||||
|
md5: 9f2922b235a5eeb78d65594e82ef5dde
|
||||||
|
```
|
||||||
|
|
||||||
|
Save it as `baserom.gbc` in the repository.
|
||||||
|
|
||||||
|
|
||||||
|
Feel free to ask us on nucleus.kafuka.org #skeetendo if something goes wrong (remember to tell where)!
|
||||||
|
|
||||||
|
Don't know how to use IRC? Try [mibbit](http://chat.mibbit.com/?server=nucleus.kafuka.org&channel=#skeetendo).
|
||||||
|
|
||||||
|
|
||||||
|
## Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install make gcc bison git python python-setuptools
|
sudo apt-get install make gcc bison git python python-setuptools
|
||||||
@ -24,153 +41,38 @@ cd pokecrystal
|
|||||||
|
|
||||||
# install python requirements
|
# install python requirements
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
To compile the ROM from ASM source:
|
||||||
|
```
|
||||||
make clean && make
|
make clean && make
|
||||||
```
|
```
|
||||||
|
|
||||||
# Windows
|
|
||||||
|
|
||||||
Follow these instructions to install `pokecrystal` on Microsoft Windows. Once
|
|
||||||
installed, you can run `make` to compile `main.asm` into a ROM.
|
|
||||||
|
|
||||||
## Installing cygwin
|
|
||||||
|
|
||||||
Cygwin provides a virtual linux environment on Windows systems. Just get
|
|
||||||
`setup.exe`: http://cygwin.com/install.html
|
|
||||||
|
|
||||||
During the install:
|
|
||||||
|
|
||||||
1. Keep the defaults.
|
|
||||||
|
|
||||||
2. It shouldn't matter which mirror you choose, but http://mirrors.kernel.org
|
|
||||||
seems to work.
|
|
||||||
|
|
||||||
3. Select the packages listed below.
|
|
||||||
|
|
||||||
You'll be presented with a package selection screen. Select the following
|
|
||||||
packages (hint: there's a search box).
|
|
||||||
|
|
||||||
1. `python` (installed by default)
|
|
||||||
|
|
||||||
2. `gcc` and `gcc-core` (under devel)
|
|
||||||
|
|
||||||
3. `byacc` (under devel)
|
|
||||||
|
|
||||||
4. `make` (under devel)
|
|
||||||
|
|
||||||
5. `wget` (under web)
|
|
||||||
|
|
||||||
6. `git` (under devel)
|
|
||||||
|
|
||||||
7. `mercurial` (optional, if you wish to work with pokered as well)
|
|
||||||
|
|
||||||
Let cygwin finish the install. Might take a sec while all packages are
|
|
||||||
downloading.
|
|
||||||
|
|
||||||
## Installing other requirements
|
|
||||||
|
|
||||||
Launch cygwin (bash). Maybe you know your way around the linux terminal. If not, a
|
|
||||||
crash course:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# list files in current directory
|
|
||||||
ls
|
|
||||||
|
|
||||||
# show current directory
|
|
||||||
pwd
|
|
||||||
|
|
||||||
# change directory
|
|
||||||
cd /away/we/go
|
|
||||||
```
|
|
||||||
|
|
||||||
The next step is building `rgbds`, the GB assembler. Type:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# download rgbds source code
|
|
||||||
git clone git://github.com/bentley/rgbds.git
|
|
||||||
|
|
||||||
# compile rgbds
|
|
||||||
cd rgbds
|
|
||||||
YACC=byacc make
|
|
||||||
|
|
||||||
# make rgbds accessible for all time
|
|
||||||
export PATH=$PATH:`pwd`
|
|
||||||
echo "export PATH=$PATH:`pwd`" >> ~/.bashrc
|
|
||||||
|
|
||||||
# check if rgbasm is installed now
|
|
||||||
which rgbasm
|
|
||||||
```
|
|
||||||
|
|
||||||
If that fails (it shouldn't), you can download binaries like so:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# download rgbds binaries
|
|
||||||
wget http://diyhpl.us/~bryan/irc/pokered/rgbds/rgbds.zip --output-document=rgbds.zip
|
|
||||||
|
|
||||||
# unzip
|
|
||||||
unzip rgbds.zip
|
|
||||||
|
|
||||||
# make rgbds accessible for all time
|
|
||||||
export PATH=$PATH:`pwd`/rgbds
|
|
||||||
echo "export PATH=$PATH:`pwd`/rgbds" >> ~/.bashrc
|
|
||||||
|
|
||||||
# clean up that zip file
|
|
||||||
rm rgbds.zip
|
|
||||||
```
|
|
||||||
|
|
||||||
The next step is to install `unittest2`, unless you installed python2.7
|
|
||||||
earlier:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~
|
|
||||||
wget http://peak.telecommunity.com/dist/ez_setup.py
|
|
||||||
python ez_setup.py
|
|
||||||
easy_install unittest2
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you should be able to build `pokecrystal` for the first time:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~
|
|
||||||
git clone git://github.com/kanzure/pokecrystal.git
|
|
||||||
cd pokecrystal
|
|
||||||
```
|
|
||||||
|
|
||||||
The final requirement is downloading a certain Pokemon Crystal ROM:
|
|
||||||
|
|
||||||
```
|
|
||||||
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
|
|
||||||
md5: 9f2922b235a5eeb78d65594e82ef5dde
|
|
||||||
```
|
|
||||||
|
|
||||||
Save it as `C:\cygwin\home\(your username)\pokecrystal\baserom.gbc`. You can
|
|
||||||
check the md5 of a file by typing `md5sum baserom.gbc`.
|
|
||||||
|
|
||||||
To compile the ROM from ASM source, type:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
That will take between 3 and 15 seconds, depending on your computer. If you see
|
That will take between 3 and 15 seconds, depending on your computer. If you see
|
||||||
`cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful!
|
`cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice!
|
||||||
Rejoice!
|
|
||||||
|
|
||||||
Now you may try messing around with `main.asm`, or just do whatever you wanted
|
|
||||||
to.
|
|
||||||
|
|
||||||
To build again, you should use the following command:
|
## Windows
|
||||||
|
|
||||||
```bash
|
Set up [GitHub for Windows](http://windows.github.com/) and clone this repository.
|
||||||
make clean && make
|
|
||||||
```
|
|
||||||
|
|
||||||
Feel free to ask us on nucleus.kafuka.org #skeetendo if something goes wrong
|
If you haven't already, get [Python 2.7](http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi) ([64-bit](http://www.python.org/ftp/python/2.7.3/python-2.7.3.amd64.msi)).
|
||||||
(remember to tell where)! Don't know how to use IRC? Try
|
|
||||||
[mibbit](http://mibbit.com/) or something.
|
|
||||||
|
|
||||||
# Contributing changes
|
Extract the following files from the [RGBDS](https://github.com/downloads/bentley/rgbds/rgbds-0.0.1.zip) package into the repository:
|
||||||
|
`rgbasm.exe`
|
||||||
|
`rgbds.exe`
|
||||||
|
`rgbfix.exe`
|
||||||
|
`rgblink.exe`
|
||||||
|
|
||||||
## Setting up a public git repo
|
Install [make](http://gnuwin32.sourceforge.net/downlinks/make.php) for Windows.
|
||||||
|
|
||||||
|
To compile the ROM from ASM source, run `pokecrystal.bat`.
|
||||||
|
|
||||||
|
That will take between 3 and 15 seconds, depending on your computer. If you see
|
||||||
|
`FC: no differences encountered`, the build was successful! Rejoice!
|
||||||
|
|
||||||
|
Now you may try messing around with `main.asm`, or just do whatever you wanted to.
|
||||||
|
|
||||||
|
|
||||||
|
# Contributions are welcome!
|
||||||
|
|
||||||
For those uninitiated with git-based collaboration, and who do not want to setup a server to host git repositories, use GitHub. Register on GitHub and follow [this tutorial to setup ssh keys](https://help.github.com/articles/generating-ssh-keys). Then go to [the pokecrystal repo](https://github.com/kanzure/pokecrystal) and click the giant "fork" button. This will bring you to a page with some instructions regarding `git remote` (follow these steps in your pokecrystal folder).
|
|
||||||
|
27
Makefile
27
Makefile
@ -1,6 +1,7 @@
|
|||||||
.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
|
.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
|
||||||
|
|
||||||
TEXTFILES = text/sweethoney.tx \
|
TEXTFILES = \
|
||||||
|
text/sweethoney.tx \
|
||||||
text/phone/bill.tx \
|
text/phone/bill.tx \
|
||||||
text/phone/elm.tx \
|
text/phone/elm.tx \
|
||||||
text/phone/mom.tx \
|
text/phone/mom.tx \
|
||||||
@ -10,7 +11,8 @@ TEXTFILES = text/sweethoney.tx \
|
|||||||
text/common_3.tx \
|
text/common_3.tx \
|
||||||
main.tx
|
main.tx
|
||||||
|
|
||||||
VERTGFX = gfx/pics/%.png \
|
VERTGFX = \
|
||||||
|
gfx/pics/%.png \
|
||||||
gfx/trainers/%.png
|
gfx/trainers/%.png
|
||||||
|
|
||||||
HORIZGFX = $(filter-out gfx/%.png, $(VERTGFX))
|
HORIZGFX = $(filter-out gfx/%.png, $(VERTGFX))
|
||||||
@ -24,10 +26,16 @@ HORIZGFX = $(filter-out gfx/%.png, $(VERTGFX))
|
|||||||
# so take care to reorganize accordingly
|
# so take care to reorganize accordingly
|
||||||
|
|
||||||
all: pokecrystal.gbc
|
all: pokecrystal.gbc
|
||||||
|
cmp baserom.gbc $<
|
||||||
|
|
||||||
|
win: pokecrystal.gbc
|
||||||
|
fc baserom.gbc $<
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f main.tx pokecrystal.o pokecrystal.gbc ${TEXTFILES}
|
rm -f main.tx pokecrystal.o pokecrystal.gbc ${TEXTFILES}
|
||||||
|
|
||||||
|
winclean:
|
||||||
|
del main.tx pokecrystal.o pokecrystal.gbc .\text\sweethoney.tx .\text\phone\bill.tx .\text\phone\elm.tx .\text\phone\mom.tx .\text\phone\trainers1.tx .\text\common.tx .\text\common_2.tx .\text\common_3.tx
|
||||||
|
|
||||||
pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES}
|
pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES}
|
||||||
rgbasm -o pokecrystal.o pokecrystal.asm
|
rgbasm -o pokecrystal.o pokecrystal.asm
|
||||||
@ -38,21 +46,20 @@ pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES}
|
|||||||
pokecrystal.gbc: pokecrystal.o
|
pokecrystal.gbc: pokecrystal.o
|
||||||
rgblink -o $@ $<
|
rgblink -o $@ $<
|
||||||
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
|
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
|
||||||
cmp baserom.gbc $@
|
|
||||||
|
|
||||||
|
|
||||||
lzs: ${VERTGFX} ${HORIZGFX}
|
lzs: ${VERTGFX} ${HORIZGFX}
|
||||||
|
|
||||||
pngs:
|
pngs:
|
||||||
cd extras; python gfx.py mass-decompress; python gfx.py dump-pngs
|
cd extras && python gfx.py mass-decompress && python gfx.py dump-pngs
|
||||||
|
|
||||||
|
|
||||||
front.png: tiles.png
|
front.png: tiles.png
|
||||||
cd extras; python gfx.py png-to-lz --front $@ $(OBJECT_DIRECTORY)/tiles.2bpp
|
cd extras && python gfx.py png-to-lz --front $@ $(OBJECT_DIRECTORY)/tiles.2bpp
|
||||||
tiles.png:
|
tiles.png:
|
||||||
cd extras; python gfx.py png-to-2bpp $@
|
cd extras && python gfx.py png-to-2bpp $@
|
||||||
.png: ${VERTGFX}
|
.png:: ${VERTGFX}
|
||||||
cd extras; python gfx.py png-to-lz --vert $@
|
cd extras && python gfx.py png-to-lz --vert $@
|
||||||
.png: ${HORIZGFX}
|
.png:: ${HORIZGFX}
|
||||||
cd extras; python gfx.py png-to-lz $@
|
cd extras && python gfx.py png-to-lz $@
|
||||||
|
|
||||||
|
53
README.md
53
README.md
@ -4,65 +4,30 @@ This is a hand-crafted disassembly of Pokémon Crystal.
|
|||||||
|
|
||||||
The source code in this project successfully converts back into a ROM image. All source code is meticulously commented.
|
The source code in this project successfully converts back into a ROM image. All source code is meticulously commented.
|
||||||
|
|
||||||
|
|
||||||
## Base ROM
|
## Base ROM
|
||||||
|
|
||||||
The following ROM is required for compiling:
|
The following ROM is required for compiling:
|
||||||
|
|
||||||
|
```
|
||||||
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
|
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
|
||||||
|
|
||||||
md5: 9f2922b235a5eeb78d65594e82ef5dde
|
md5: 9f2922b235a5eeb78d65594e82ef5dde
|
||||||
|
```
|
||||||
|
|
||||||
Eventually this will not be necessary.
|
Eventually this will not be necessary.
|
||||||
|
|
||||||
## Installing
|
|
||||||
|
|
||||||
Simple.
|
|
||||||
|
|
||||||
``` bash
|
|
||||||
sudo apt-get install make gcc bison git python python-setuptools
|
|
||||||
|
|
||||||
# unittest2 is required if using python2.6
|
|
||||||
sudo easy_install unittest2
|
|
||||||
sudo easy_install pip
|
|
||||||
|
|
||||||
# download rgbds source code
|
|
||||||
git clone git://github.com/bentley/rgbds.git
|
|
||||||
|
|
||||||
# compile rgbds
|
|
||||||
cd rgbds
|
|
||||||
make
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
# check if rgbasm is installed now
|
|
||||||
which rgbasm
|
|
||||||
|
|
||||||
# download pokecrystal
|
|
||||||
git clone https://github.com/kanzure/pokecrystal.git
|
|
||||||
cd pokecrystal
|
|
||||||
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
make clean && make
|
|
||||||
```
|
|
||||||
|
|
||||||
Also, there are [Windows installation instructions](https://github.com/kanzure/pokecrystal/blob/master/INSTALL.md).
|
|
||||||
|
|
||||||
## Assembling
|
|
||||||
|
|
||||||
* To assemble, first install RGBDS and put it in your path. The version of RGBDS needed is [rgbds-linux](https://github.com/bentley/rgbds/).
|
|
||||||
|
|
||||||
* Next, copy the Pokémon ROM to this directory as "baserom.gbc".
|
|
||||||
|
|
||||||
* Then run "make" in your shell.
|
|
||||||
|
|
||||||
* This will output a file named "pokecrystal.gbc".
|
|
||||||
|
|
||||||
## See also
|
## See also
|
||||||
|
|
||||||
* disassembly of [Pokémon Red](http://bitbucket.org/iimarckus/pokered).
|
* disassembly of [Pokémon Red](http://bitbucket.org/iimarckus/pokered).
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
* Hang out with us on IRC, nucleus.kafuka.org #skeetendo ([or use mibbit](http://chat.mibbit.com/?server=nucleus.kafuka.org&channel=#skeetendo))
|
* Hang out with us on IRC:
|
||||||
|
`nucleus.kafuka.org #skeetendo`
|
||||||
|
(or use [mibbit](http://chat.mibbit.com/?server=nucleus.kafuka.org&channel=#skeetendo)).
|
||||||
|
|
||||||
|
* Are we missing something? Make a pull request! Contributions are welcome.
|
||||||
|
|
||||||
* Tackle some [issues](https://github.com/kanzure/pokecrystal/issues)!
|
* Tackle some [issues](https://github.com/kanzure/pokecrystal/issues)!
|
||||||
|
@ -1,212 +1,213 @@
|
|||||||
; e927c
|
; e927c
|
||||||
dbw $3c, $4b3f ; dex fanfare 50-79
|
dbw $3c, $4b3f ; Dex Fanfare 50-79
|
||||||
dbw $3c, $4c2f ; item
|
dbw $3c, $4c2f ; Item
|
||||||
dbw $3c, $4c89 ; caught mon
|
dbw $3c, $4c89 ; Caught Mon
|
||||||
dbw $3c, $4941 ; pokeballs placed on table
|
dbw $3c, $4941 ; Pokeballs Placed On Table
|
||||||
dbw $3c, $4947 ; potion
|
dbw $3c, $4947 ; Potion
|
||||||
dbw $3c, $494a ; full heal
|
dbw $3c, $494a ; Full Heal
|
||||||
dbw $3c, $494d ; menu
|
dbw $3c, $494d ; Menu
|
||||||
dbw $3c, $4950 ; read text
|
dbw $3c, $4950 ; Read Text
|
||||||
dbw $3c, $4950 ; read text
|
dbw $3c, $4950 ; Read Text 2
|
||||||
dbw $3c, $4bd5 ; dex fanfare 20-49
|
dbw $3c, $4bd5 ; Dex Fanfare 20-49
|
||||||
dbw $3c, $4cea ; dex fanfare 80-109
|
dbw $3c, $4cea ; Dex Fanfare 80-109
|
||||||
dbw $3c, $4953 ; poison
|
dbw $3c, $4953 ; Poison
|
||||||
dbw $3c, $4956 ; got safari balls
|
dbw $3c, $4956 ; Got Safari Balls
|
||||||
dbw $3c, $4959 ; boot pc
|
dbw $3c, $4959 ; Boot Pc
|
||||||
dbw $3c, $495c ; shut down pc
|
dbw $3c, $495c ; Shut Down Pc
|
||||||
dbw $3c, $495f ; choose pc option
|
dbw $3c, $495f ; Choose Pc Option
|
||||||
dbw $3c, $4962 ; bide / escape rope
|
dbw $3c, $4962 ; Escape Rope
|
||||||
dbw $3c, $4965 ; push button
|
dbw $3c, $4965 ; Push Button
|
||||||
dbw $3c, $4968 ; second part of itemfinder
|
dbw $3c, $4968 ; Second Part Of Itemfinder
|
||||||
dbw $3c, $496b ; warp to
|
dbw $3c, $496b ; Warp To
|
||||||
dbw $3c, $496e ; warp from
|
dbw $3c, $496e ; Warp From
|
||||||
dbw $3c, $4971 ; change dex mode
|
dbw $3c, $4971 ; Change Dex Mode
|
||||||
dbw $3c, $4974 ; jump over ledge
|
dbw $3c, $4974 ; Jump Over Ledge
|
||||||
dbw $3c, $4977 ; grass rustle
|
dbw $3c, $4977 ; Grass Rustle
|
||||||
dbw $3c, $497a ; fly
|
dbw $3c, $497a ; Fly
|
||||||
dbw $3c, $497d ; wrong
|
dbw $3c, $497d ; Wrong
|
||||||
dbw $3c, $4983 ; squeak
|
dbw $3c, $4983 ; Squeak
|
||||||
dbw $3c, $4986 ; strength
|
dbw $3c, $4986 ; Strength
|
||||||
dbw $3c, $4989 ; boat
|
dbw $3c, $4989 ; Boat
|
||||||
dbw $3c, $498f ; wall open
|
dbw $3c, $498f ; Wall Open
|
||||||
dbw $3c, $4992 ; place puzzle piece down
|
dbw $3c, $4992 ; Place Puzzle Piece Down
|
||||||
dbw $3c, $4995 ; enter door
|
dbw $3c, $4995 ; Enter Door
|
||||||
dbw $3c, $4998 ; switch pokemon
|
dbw $3c, $4998 ; Switch Pokemon
|
||||||
dbw $3c, $499e ; score tally? ; sounds like something out of game corner
|
dbw $3c, $499e ; Tally
|
||||||
dbw $3c, $49a4 ; buy/sell
|
dbw $3c, $49a4 ; Transaction
|
||||||
dbw $3c, $49ad ; exit building
|
dbw $3c, $49ad ; Exit Building
|
||||||
dbw $3c, $49aa ; bump
|
dbw $3c, $49aa ; Bump
|
||||||
dbw $3c, $49b0 ; save
|
dbw $3c, $49b0 ; Save
|
||||||
dbw $3c, $49f8 ; pokeflute
|
dbw $3c, $49f8 ; Pokeflute
|
||||||
dbw $3c, $49fb ; elevator end
|
dbw $3c, $49fb ; Elevator End
|
||||||
dbw $3c, $49fe ; throw ball
|
dbw $3c, $49fe ; Throw Ball
|
||||||
dbw $3c, $4a04 ; smokescreen
|
dbw $3c, $4a04 ; Ball Poof
|
||||||
dbw $3c, $4a0a ; ; something skidding on water?
|
dbw $3c, $4a0a ; Unknown 3A
|
||||||
dbw $3c, $4a10 ; run
|
dbw $3c, $4a10 ; Run
|
||||||
dbw $3c, $4a13 ; slot machine start
|
dbw $3c, $4a13 ; Slot Machine Start
|
||||||
dbw $3c, $4dbe ; fanfare
|
dbw $3c, $4dbe ; Fanfare
|
||||||
dbw $3c, $4a3d ; peck
|
dbw $3c, $4a3d ; Peck
|
||||||
dbw $3c, $4a40 ; kinesis
|
dbw $3c, $4a40 ; Kinesis
|
||||||
dbw $3c, $4a43 ; lick
|
dbw $3c, $4a43 ; Lick
|
||||||
dbw $3c, $4a46 ; pound
|
dbw $3c, $4a46 ; Pound
|
||||||
dbw $3c, $4a49 ; move puzzle piece
|
dbw $3c, $4a49 ; Move Puzzle Piece
|
||||||
dbw $3c, $4a4c ; comet punch
|
dbw $3c, $4a4c ; Comet Punch
|
||||||
dbw $3c, $4a4f ; mega punch
|
dbw $3c, $4a4f ; Mega Punch
|
||||||
dbw $3c, $4a52 ; scratch
|
dbw $3c, $4a52 ; Scratch
|
||||||
dbw $3c, $4a55 ; vicegrip
|
dbw $3c, $4a55 ; Vicegrip
|
||||||
dbw $3c, $4a58 ; razor wind
|
dbw $3c, $4a58 ; Razor Wind
|
||||||
dbw $3c, $4a5b ; cut
|
dbw $3c, $4a5b ; Cut
|
||||||
dbw $3c, $4a5e ; wing attack
|
dbw $3c, $4a5e ; Wing Attack
|
||||||
dbw $3c, $4a61 ; whirlwind
|
dbw $3c, $4a61 ; Whirlwind
|
||||||
dbw $3c, $4a64 ; bind
|
dbw $3c, $4a64 ; Bind
|
||||||
dbw $3c, $4a67 ; vine whip
|
dbw $3c, $4a67 ; Vine Whip
|
||||||
dbw $3c, $4a6a ; double kick
|
dbw $3c, $4a6a ; Double Kick
|
||||||
dbw $3c, $4a6d ; mega kick
|
dbw $3c, $4a6d ; Mega Kick
|
||||||
dbw $3c, $4a70 ; headbutt
|
dbw $3c, $4a70 ; Headbutt
|
||||||
dbw $3c, $4a73 ; horn attack
|
dbw $3c, $4a73 ; Horn Attack
|
||||||
dbw $3c, $4a76 ; tackle
|
dbw $3c, $4a76 ; Tackle
|
||||||
dbw $3c, $4a79 ; poison sting
|
dbw $3c, $4a79 ; Poison Sting
|
||||||
dbw $3c, $4a7c ; poisonpowder
|
dbw $3c, $4a7c ; Powder
|
||||||
dbw $3c, $4a7f ; doubleslap
|
dbw $3c, $4a7f ; Doubleslap
|
||||||
dbw $3c, $4a82 ; bite
|
dbw $3c, $4a82 ; Bite
|
||||||
dbw $3c, $4a88 ; jump kick
|
dbw $3c, $4a88 ; Jump Kick
|
||||||
dbw $3c, $4a8b ; stomp
|
dbw $3c, $4a8b ; Stomp
|
||||||
dbw $3c, $4a8e ; tail whip
|
dbw $3c, $4a8e ; Tail Whip
|
||||||
dbw $3c, $4a91 ; karate chop
|
dbw $3c, $4a91 ; Karate Chop
|
||||||
dbw $3c, $4a94 ; submission
|
dbw $3c, $4a94 ; Submission
|
||||||
dbw $3c, $4a97 ; water gun
|
dbw $3c, $4a97 ; Water Gun
|
||||||
dbw $3c, $4a9d ; swords dance
|
dbw $3c, $4a9d ; Swords Dance
|
||||||
dbw $3c, $4aa0 ; thunder
|
dbw $3c, $4aa0 ; Thunder
|
||||||
dbw $3c, $4aa3 ; supersonic
|
dbw $3c, $4aa3 ; Supersonic
|
||||||
dbw $3c, $4aac ; leer
|
dbw $3c, $4aac ; Leer
|
||||||
dbw $3c, $4ab5 ; ember
|
dbw $3c, $4ab5 ; Ember
|
||||||
dbw $3c, $4abb ; bubblebeam
|
dbw $3c, $4abb ; Bubblebeam
|
||||||
dbw $3c, $4ac4 ; hydro pump
|
dbw $3c, $4ac4 ; Hydro Pump
|
||||||
dbw $3c, $4aca ; surf
|
dbw $3c, $4aca ; Surf
|
||||||
dbw $3c, $4ad3 ; psybeam
|
dbw $3c, $4ad3 ; Psybeam
|
||||||
dbw $3c, $4adc ; leech seed
|
dbw $3c, $4adc ; Charge
|
||||||
dbw $3c, $4ae5 ; thundershock
|
dbw $3c, $4ae5 ; Thundershock
|
||||||
dbw $3c, $4aee ; psychic
|
dbw $3c, $4aee ; Psychic
|
||||||
dbw $3c, $4af7 ; screech
|
dbw $3c, $4af7 ; Screech
|
||||||
dbw $3c, $4afd ; bone club
|
dbw $3c, $4afd ; Bone Club
|
||||||
dbw $3c, $4b03 ; sharpen
|
dbw $3c, $4b03 ; Sharpen
|
||||||
dbw $3c, $4b09 ; egg bomb
|
dbw $3c, $4b09 ; Egg Bomb
|
||||||
dbw $3c, $4b12 ; sing
|
dbw $3c, $4b12 ; Sing
|
||||||
dbw $3c, $4b18 ; sky attack
|
dbw $3c, $4b18 ; Hyper Beam
|
||||||
dbw $3c, $4b21 ; hyper beam
|
dbw $3c, $4b21 ; Shine
|
||||||
dbw $3c, $4b24 ; shine
|
dbw $3c, $4b24 ; Unknown 5F
|
||||||
dbw $3c, $4a1c ;
|
dbw $3c, $4a1c ; Unknown 60
|
||||||
dbw $3c, $4a1f ; $60
|
dbw $3c, $4a1f ; Unknown 61
|
||||||
dbw $3c, $4a22 ; tap
|
dbw $3c, $4a22 ; Unknown 62
|
||||||
dbw $3c, $4a25 ; tap
|
dbw $3c, $4a25 ; Unknown 63
|
||||||
dbw $3c, $4a28 ; burn ; that is not a burn
|
dbw $3c, $4a28 ; Burn
|
||||||
dbw $3c, $4a2b ; title screen sound
|
dbw $3c, $4a2b ; Title Screen Entrance
|
||||||
dbw $3c, $4a2e ; similar to $60
|
dbw $3c, $4a2e ; Unknown 66
|
||||||
dbw $3c, $4a31 ; get coin from slots
|
dbw $3c, $4a31 ; Get Coin From Slots
|
||||||
dbw $3c, $4a34 ; pay day
|
dbw $3c, $4a34 ; Pay Day
|
||||||
dbw $3c, $4a3a ; metronome
|
dbw $3c, $4a3a ; Metronome
|
||||||
dbw $3c, $4a19 ; call
|
dbw $3c, $4a19 ; Call
|
||||||
dbw $3c, $4b2d ; hang up
|
dbw $3c, $4b2d ; Hang Up
|
||||||
dbw $3c, $4b30 ; no signal
|
dbw $3c, $4b30 ; No Signal
|
||||||
dbw $3c, $4b2a ; sandstorm
|
dbw $3c, $4b2a ; Sandstorm
|
||||||
dbw $3c, $4b33 ; elevator
|
dbw $3c, $4b33 ; Elevator
|
||||||
dbw $3c, $52b4 ; protect
|
dbw $3c, $52b4 ; Protect
|
||||||
dbw $3c, $52f6 ; sketch
|
dbw $3c, $52f6 ; Sketch
|
||||||
dbw $3c, $5314 ; rain dance
|
dbw $3c, $5314 ; Rain Dance
|
||||||
dbw $3c, $5334 ; aeroblast
|
dbw $3c, $5334 ; Aeroblast
|
||||||
dbw $3c, $5352 ; spark
|
dbw $3c, $5352 ; Spark
|
||||||
dbw $3c, $5360 ; curse
|
dbw $3c, $5360 ; Curse
|
||||||
dbw $3c, $537d ; rage
|
dbw $3c, $537d ; Rage
|
||||||
dbw $3c, $539c ; thief
|
dbw $3c, $539c ; Thief
|
||||||
dbw $3c, $53b0 ; thief
|
dbw $3c, $53b0 ; Thief 2
|
||||||
dbw $3c, $53ca ; spider web
|
dbw $3c, $53ca ; Spider Web
|
||||||
dbw $3c, $53f7 ; mind reader
|
dbw $3c, $53f7 ; Mind Reader
|
||||||
dbw $3c, $541d ; nighmare
|
dbw $3c, $541d ; Nightmare
|
||||||
dbw $3c, $5453 ; snore
|
dbw $3c, $5453 ; Snore
|
||||||
dbw $3c, $5469 ; sweet kiss
|
dbw $3c, $5469 ; Sweet Kiss
|
||||||
dbw $3c, $547f ; sweet kiss
|
dbw $3c, $547f ; Sweet Kiss 2
|
||||||
dbw $3c, $54a5 ; belly drum
|
dbw $3c, $54a5 ; Belly Drum
|
||||||
dbw $3c, $54ba ;
|
dbw $3c, $54ba ; Unknown 7F
|
||||||
dbw $3c, $54d0 ; sludge bomb
|
dbw $3c, $54d0 ; Sludge Bomb
|
||||||
dbw $3c, $54f5 ; foresight
|
dbw $3c, $54f5 ; Foresight
|
||||||
dbw $3c, $5515 ; spite
|
dbw $3c, $5515 ; Spite
|
||||||
dbw $3c, $553a ; outrage
|
dbw $3c, $553a ; Outrage
|
||||||
dbw $3c, $554d ; perish song
|
dbw $3c, $554d ; Perish Song
|
||||||
dbw $3c, $5570 ; giga drain
|
dbw $3c, $5570 ; Giga Drain
|
||||||
dbw $3c, $55b4 ; attract
|
dbw $3c, $55b4 ; Attract
|
||||||
dbw $3c, $55cc ; kinesis
|
dbw $3c, $55cc ; Kinesis 2
|
||||||
dbw $3c, $55de ; zap cannon
|
dbw $3c, $55de ; Zap Cannon
|
||||||
dbw $3c, $55ef ; mean look
|
dbw $3c, $55ef ; Mean Look
|
||||||
dbw $3c, $5621 ; heal bell
|
dbw $3c, $5621 ; Heal Bell
|
||||||
dbw $3c, $5637 ; return
|
dbw $3c, $5637 ; Return
|
||||||
dbw $3c, $5653 ; exp bar
|
dbw $3c, $5653 ; Exp Bar
|
||||||
dbw $3c, $567f ; milk drink
|
dbw $3c, $567f ; Milk Drink
|
||||||
dbw $3c, $569f ; present
|
dbw $3c, $569f ; Present
|
||||||
dbw $3c, $56b9 ; morning sun
|
dbw $3c, $56b9 ; Morning Sun
|
||||||
dbw $3c, $4b3f ; level up
|
dbw $3c, $4b3f ; Level Up
|
||||||
dbw $3c, $4b86 ; key item
|
dbw $3c, $4b86 ; Key Item
|
||||||
dbw $3c, $4d56 ; fanfare
|
dbw $3c, $4d56 ; Fanfare 2
|
||||||
dbw $3c, $4dc7 ; register phone #
|
dbw $3c, $4dc7 ; Register Phone #
|
||||||
dbw $3c, $4e26 ; 3rd place
|
dbw $3c, $4e26 ; 3Rd Place
|
||||||
dbw $3c, $4e66 ; get egg from daycare man
|
dbw $3c, $4e66 ; Get Egg From Daycare Man
|
||||||
dbw $3c, $4e66 ; get egg from daycare lady
|
dbw $3c, $4e66 ; Get Egg From Daycare Lady
|
||||||
dbw $3c, $4edc ; move deleted
|
dbw $3c, $4edc ; Move Deleted
|
||||||
dbw $3c, $4f5e ; 2nd place
|
dbw $3c, $4f5e ; 2Nd Place
|
||||||
dbw $3c, $4fe2 ; 1st place
|
dbw $3c, $4fe2 ; 1St Place
|
||||||
dbw $3c, $5069 ; choose a card
|
dbw $3c, $5069 ; Choose A Card
|
||||||
dbw $3c, $5104 ; get tm
|
dbw $3c, $5104 ; Get Tm
|
||||||
dbw $3c, $517d ; get badge
|
dbw $3c, $517d ; Get Badge
|
||||||
dbw $3c, $5236 ; quit slots
|
dbw $3c, $5236 ; Quit Slots
|
||||||
dbw $3c, $5775 ; nothing
|
dbw $3c, $5775 ; Egg Crack
|
||||||
dbw $3c, $5878 ; dex fanfare <20
|
dbw $3c, $5878 ; Dex Fanfare < 20
|
||||||
dbw $3c, $58d2 ; dex fanfare 140-169
|
dbw $3c, $58d2 ; Dex Fanfare 140-169
|
||||||
dbw $3c, $5951 ; dex fanfare 170-199
|
dbw $3c, $5951 ; Dex Fanfare 170-199
|
||||||
dbw $3c, $59d6 ; dex fanfare 200-229
|
dbw $3c, $59d6 ; Dex Fanfare 200-229
|
||||||
dbw $3c, $5a66 ; dex fanfare >=230
|
dbw $3c, $5a66 ; Dex Fanfare 230 +
|
||||||
dbw $3c, $5784 ; evolved
|
dbw $3c, $5784 ; Evolved
|
||||||
dbw $3c, $579b ; master ball
|
dbw $3c, $579b ; Master Ball
|
||||||
dbw $3c, $57c0 ; egg crack
|
dbw $3c, $57c0 ; Egg Hatch
|
||||||
dbw $3c, $57d9 ; charizard fireball (gs intro)
|
dbw $3c, $57d9 ; Gs Intro Charizard Fireball
|
||||||
dbw $3c, $57ff ; pokemon appears (gs intro)
|
dbw $3c, $57ff ; Gs Intro Pokemon Appears
|
||||||
dbw $3c, $5818 ; flash
|
dbw $3c, $5818 ; Flash
|
||||||
dbw $3c, $5846 ; game freak logo
|
dbw $3c, $5846 ; Game Freak Logo Gs
|
||||||
dbw $3c, $5b33 ; not very effective
|
dbw $3c, $5b33 ; Not Very Effective
|
||||||
dbw $3c, $5b40 ; damage
|
dbw $3c, $5b40 ; Damage
|
||||||
dbw $3c, $5b50 ; super effective
|
dbw $3c, $5b50 ; Super Effective
|
||||||
dbw $3c, $5b63 ; ball bounce
|
dbw $3c, $5b63 ; Ball Bounce
|
||||||
dbw $3c, $56df ; moonlight
|
dbw $3c, $56df ; Moonlight
|
||||||
dbw $3c, $56fd ; encore
|
dbw $3c, $56fd ; Encore
|
||||||
dbw $3c, $5721 ; beat up
|
dbw $3c, $5721 ; Beat Up
|
||||||
dbw $3c, $574c ; batom pass
|
dbw $3c, $574c ; Baton Pass
|
||||||
dbw $3c, $4944 ; ball wiggle
|
dbw $3c, $4944 ; Ball Wiggle
|
||||||
dbw $3c, $5734 ; sweet scent
|
dbw $3c, $5734 ; Sweet Scent
|
||||||
dbw $3c, $5bb3 ; sweet scent
|
dbw $3c, $5bb3 ; Sweet Scent 2
|
||||||
dbw $3c, $5bec ; hit end of exp bar
|
dbw $3c, $5bec ; Hit End Of Exp Bar
|
||||||
dbw $3c, $5c10 ; give trademon
|
dbw $3c, $5c10 ; Give Trademon
|
||||||
dbw $3c, $5c3e ; get trademon
|
dbw $3c, $5c3e ; Get Trademon
|
||||||
dbw $3c, $5c6c ; train arrived
|
dbw $3c, $5c6c ; Train Arrived
|
||||||
dbw $3c, $675b ; stop slot
|
dbw $3c, $675b ; Stop Slot
|
||||||
dbw $3c, $5cb4 ; 2 boops
|
dbw $3c, $5cb4 ; 2 Boops
|
||||||
dbw $3c, $6769 ; glass ting
|
dbw $3c, $6769 ; Glass Ting
|
||||||
dbw $3c, $6773 ; 2 glass ting
|
dbw $3c, $6773 ; Glass Ting 2
|
||||||
|
|
||||||
; Crystal adds the following SFX:
|
; Crystal adds the following SFX:
|
||||||
|
|
||||||
dbw $5e, $582d ; intro unown 1
|
dbw $5e, $582d ; Intro Unown 1
|
||||||
dbw $5e, $583e ; intro unown 2
|
dbw $5e, $583e ; Intro Unown 2
|
||||||
dbw $5e, $584f ; intro unown 3
|
dbw $5e, $584f ; Intro Unown 3
|
||||||
dbw $5e, $586e ; boop
|
dbw $5e, $586e ; Ditto Pop Up
|
||||||
dbw $5e, $5888 ; game freak ditto transform
|
dbw $5e, $5888 ; Ditto Transform
|
||||||
dbw $5e, $58a0 ; intro suicune 1
|
dbw $5e, $58a0 ; Intro Suicune 1
|
||||||
dbw $5e, $58aa ; intro pichu
|
dbw $5e, $58aa ; Intro Pichu
|
||||||
dbw $5e, $58c0 ; intro suicune 2
|
dbw $5e, $58c0 ; Intro Suicune 2
|
||||||
dbw $5e, $58f4 ; intro suicune 3
|
dbw $5e, $58f4 ; Intro Suicune 3
|
||||||
dbw $5e, $5907 ; game freak ditto bounce
|
dbw $5e, $5907 ; Ditto Bounce
|
||||||
dbw $5e, $591d ; intro suicune 4
|
dbw $5e, $591d ; Intro Suicune 4
|
||||||
dbw $5e, $5942 ; game freak presents
|
dbw $5e, $5942 ; Game Freak Presents
|
||||||
dbw $5e, $5961 ; tingle
|
dbw $5e, $5961 ; Tingle
|
||||||
dbw $3c, $5cd0 ; sand?
|
dbw $3c, $5cd0 ; Unknown Cb
|
||||||
dbw $5e, $597c ; two pc beeps
|
dbw $5e, $597c ; Two Pc Beeps
|
||||||
dbw $5e, $5992 ; 4 note ditty
|
dbw $5e, $5992 ; 4 Note Ditty
|
||||||
dbw $5e, $59cb ; twinkle
|
dbw $5e, $59cb ; Twinkle
|
||||||
; e94e9
|
; e94e9
|
||||||
|
|
||||||
|
3362
battle/ai/scoring.asm
Normal file
3362
battle/ai/scoring.asm
Normal file
File diff suppressed because it is too large
Load Diff
177
battle/effect_command_pointers.asm
Normal file
177
battle/effect_command_pointers.asm
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
; 3fd28
|
||||||
|
dw BattleCommand01 ; 34084
|
||||||
|
dw BattleCommand02 ; 343db
|
||||||
|
dw BattleCommand03 ; 34541
|
||||||
|
dw BattleCommand04 ; 34555
|
||||||
|
dw BattleCommand05 ; 34631
|
||||||
|
dw BattleCommand06 ; 352dc
|
||||||
|
dw BattleCommand07 ; 346d2
|
||||||
|
dw BattleCommand08 ; 34cfd
|
||||||
|
dw BattleCommand09 ; 34d32
|
||||||
|
dw BattleCommand0a ; 34eee
|
||||||
|
dw BattleCommand0b ; 34f60
|
||||||
|
dw BattleCommand0c ; 35004
|
||||||
|
dw BattleCommand0d ; 35023
|
||||||
|
dw BattleCommand0e ; 3505e
|
||||||
|
dw BattleCommand0f ; 35175
|
||||||
|
dw BattleCommand10 ; 351ad
|
||||||
|
dw BattleCommand11 ; 351c0
|
||||||
|
dw BattleCommand12 ; 35250
|
||||||
|
dw BattleCommand13 ; 35eee
|
||||||
|
dw BattleCommand14 ; 35e5c
|
||||||
|
dw BattleCommand15 ; 35fff
|
||||||
|
dw BattleCommand16 ; 36008
|
||||||
|
dw BattleCommand17 ; 3608c
|
||||||
|
dw BattleCommand18 ; 36102
|
||||||
|
dw BattleCommand19 ; 36165
|
||||||
|
dw BattleCommand1a ; 37380
|
||||||
|
dw BattleCommand1b ; 373c9
|
||||||
|
dw BattleCommand1c ; 361e4
|
||||||
|
dw BattleCommand1d ; 362e3
|
||||||
|
dw BattleCommand1e ; 3705c
|
||||||
|
dw BattleCommand1f ; 3707f
|
||||||
|
dw BattleCommand20 ; 3710e
|
||||||
|
dw BattleCommand21 ; 36671
|
||||||
|
dw BattleCommand22 ; 366e5
|
||||||
|
dw BattleCommand23 ; 3680f
|
||||||
|
dw BattleCommand24 ; 369b6
|
||||||
|
dw BattleCommand25 ; 36aa0
|
||||||
|
dw BattleCommand26 ; 36af3
|
||||||
|
dw BattleCommand27 ; 36cb2
|
||||||
|
dw BattleCommand28 ; 36c7e
|
||||||
|
dw BattleCommand29 ; 36c98
|
||||||
|
dw BattleCommand2a ; 36d3b
|
||||||
|
dw BattleCommand2b ; 36d1d
|
||||||
|
dw BattleCommand2c ; 3713e
|
||||||
|
dw BattleCommand2d ; 371cd
|
||||||
|
dw BattleCommand2e ; 372fc
|
||||||
|
dw BattleCommand2f ; 35f2c
|
||||||
|
dw BattleCommand30 ; 36dc7
|
||||||
|
dw BattleCommand31 ; 36e7c
|
||||||
|
dw BattleCommand32 ; 36f0b
|
||||||
|
dw BattleCommand33 ; 36f46
|
||||||
|
dw BattleCommand34 ; 37418
|
||||||
|
dw BattleCommand35 ; 36f9d
|
||||||
|
dw BattleCommand36 ; 36fe1
|
||||||
|
dw BattleCommand37 ; 36fed
|
||||||
|
dw BattleCommand38 ; 37e85
|
||||||
|
dw BattleCommand39 ; 36b4d
|
||||||
|
dw BattleCommand3a ; 36b3a
|
||||||
|
dw BattleCommand3b ; 36c2d
|
||||||
|
dw BattleCommand3c ; 36c2c
|
||||||
|
dw BattleCommand3d ; 36751
|
||||||
|
dw BattleCommand3e ; 3671a
|
||||||
|
dw BattleCommand3f ; 35726
|
||||||
|
dw BattleCommand40 ; 35813
|
||||||
|
dw BattleCommand41 ; 35864
|
||||||
|
dw BattleCommand42 ; 35926
|
||||||
|
dw BattleCommand43 ; 359d0
|
||||||
|
dw BattleCommand44 ; 359e6
|
||||||
|
dw BattleCommand45 ; 35a53
|
||||||
|
dw BattleCommand46 ; 35a74
|
||||||
|
dw BattleCommand47 ; 35b16
|
||||||
|
dw BattleCommand48 ; 35b33
|
||||||
|
dw BattleCommand49 ; 35bff
|
||||||
|
dw BattleCommand4a ; 35c0f
|
||||||
|
dw BattleCommand4b ; 35c94
|
||||||
|
dw BattleCommand4c ; 35cc9
|
||||||
|
dw BattleCommand4d ; 36ac9
|
||||||
|
dw BattleCommand4e ; 346b2
|
||||||
|
dw BattleCommand4f ; 346cd
|
||||||
|
dw BattleCommand50 ; 37492
|
||||||
|
dw BattleCommand51 ; 37517
|
||||||
|
dw BattleCommand52 ; 37536
|
||||||
|
dw BattleCommand53 ; 37563
|
||||||
|
dw BattleCommand54 ; 37588
|
||||||
|
dw BattleCommand55 ; 37618
|
||||||
|
dw BattleCommand56 ; 37683
|
||||||
|
dw BattleCommand57 ; 376a0
|
||||||
|
dw BattleCommand58 ; 376c2
|
||||||
|
dw BattleCommand59 ; 376f8
|
||||||
|
dw BattleCommand5a ; 3766f
|
||||||
|
dw BattleCommand5b ; 37718
|
||||||
|
dw BattleCommand5c ; 37734
|
||||||
|
dw BattleCommand5d ; 37791
|
||||||
|
dw BattleCommand5e ; 37792
|
||||||
|
dw BattleCommand5f ; 377ce
|
||||||
|
dw BattleCommand60 ; 3784b
|
||||||
|
dw BattleCommand61 ; 37874
|
||||||
|
dw BattleCommand62 ; 35612
|
||||||
|
dw BattleCommand63 ; 3790e
|
||||||
|
dw BattleCommand64 ; 37939
|
||||||
|
dw BattleCommand65 ; 37972
|
||||||
|
dw BattleCommand66 ; 37991
|
||||||
|
dw BattleCommand67 ; 379c9
|
||||||
|
dw BattleCommand68 ; 37b1d
|
||||||
|
dw BattleCommand69 ; 37b39
|
||||||
|
dw BattleCommand6a ; 37b74
|
||||||
|
dw BattleCommand6b ; 37b78
|
||||||
|
dw BattleCommand6c ; 37b7c
|
||||||
|
dw BattleCommand6d ; 37be8
|
||||||
|
dw BattleCommand6e ; 37bf4
|
||||||
|
dw BattleCommand6f ; 37c07
|
||||||
|
dw BattleCommand70 ; 361ac
|
||||||
|
dw BattleCommand71 ; 361b0
|
||||||
|
dw BattleCommand72 ; 361b4
|
||||||
|
dw BattleCommand73 ; 361b8
|
||||||
|
dw BattleCommand74 ; 361bc
|
||||||
|
dw BattleCommand75 ; 361c0
|
||||||
|
dw BattleCommand76 ; 361c4
|
||||||
|
dw BattleCommand77 ; 361c8
|
||||||
|
dw BattleCommand78 ; 361cc
|
||||||
|
dw BattleCommand79 ; 361d0
|
||||||
|
dw BattleCommand7a ; 361d4
|
||||||
|
dw BattleCommand7b ; 361d8
|
||||||
|
dw BattleCommand7c ; 361dc
|
||||||
|
dw BattleCommand7d ; 361e0
|
||||||
|
dw BattleCommand7e ; 362ad
|
||||||
|
dw BattleCommand7f ; 362b1
|
||||||
|
dw BattleCommand80 ; 362b5
|
||||||
|
dw BattleCommand81 ; 362b9
|
||||||
|
dw BattleCommand82 ; 362bd
|
||||||
|
dw BattleCommand83 ; 362c1
|
||||||
|
dw BattleCommand84 ; 362c5
|
||||||
|
dw BattleCommand85 ; 362c9
|
||||||
|
dw BattleCommand86 ; 362cd
|
||||||
|
dw BattleCommand87 ; 362d1
|
||||||
|
dw BattleCommand88 ; 362d5
|
||||||
|
dw BattleCommand89 ; 362d9
|
||||||
|
dw BattleCommand8a ; 362dd
|
||||||
|
dw BattleCommand8b ; 362e1
|
||||||
|
dw BattleCommand8c ; 363b8
|
||||||
|
dw BattleCommand8d ; 363e9
|
||||||
|
dw BattleCommand8e ; 3644c
|
||||||
|
dw BattleCommand8f ; 3646a
|
||||||
|
dw BattleCommand90 ; 34ecc
|
||||||
|
dw BattleCommand91 ; 34fdb
|
||||||
|
dw BattleCommand92 ; 34fd1
|
||||||
|
dw BattleCommand93 ; 34ffd
|
||||||
|
dw BattleCommand94 ; 36a82
|
||||||
|
dw BattleCommand95 ; 37c1a
|
||||||
|
dw BattleCommand96 ; 37c55
|
||||||
|
dw BattleCommand97 ; 36f1d
|
||||||
|
dw BattleCommand98 ; 36f25
|
||||||
|
dw BattleCommand99 ; 36f2f
|
||||||
|
dw BattleCommand9a ; 37c95
|
||||||
|
dw BattleCommand9b ; 37d0d
|
||||||
|
dw BattleCommand9c ; 37d34
|
||||||
|
dw BattleCommand9d ; 37ce6
|
||||||
|
dw BattleCommand9e ; 37d02
|
||||||
|
dw BattleCommand9f ; 37d94
|
||||||
|
dw BattleCommanda0 ; 36778
|
||||||
|
dw BattleCommanda1 ; 35461
|
||||||
|
dw BattleCommanda2 ; 3527b
|
||||||
|
dw BattleCommanda3 ; 34833
|
||||||
|
dw BattleCommanda4 ; 36500
|
||||||
|
dw BattleCommanda5 ; 35165
|
||||||
|
dw BattleCommanda6 ; 365af
|
||||||
|
dw BattleCommanda7 ; 365c3
|
||||||
|
dw BattleCommanda8 ; 355b5
|
||||||
|
dw BattleCommanda9 ; 355d5
|
||||||
|
dw BattleCommandaa ; 37e80
|
||||||
|
dw BattleCommandab ; 34f57
|
||||||
|
dw BattleCommandac ; 3658f
|
||||||
|
dw BattleCommandad ; 351a5
|
||||||
|
dw BattleCommandae ; 35197
|
||||||
|
dw BattleCommandaf ; 365a7
|
||||||
|
; 3fe86
|
11209
battle/effect_commands.asm
Normal file
11209
battle/effect_commands.asm
Normal file
File diff suppressed because it is too large
Load Diff
2243
battle/moves/move_effects.asm
Normal file
2243
battle/moves/move_effects.asm
Normal file
File diff suppressed because it is too large
Load Diff
158
battle/moves/move_effects_pointers.asm
Normal file
158
battle/moves/move_effects_pointers.asm
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
dw NormalHit
|
||||||
|
dw DoSleep
|
||||||
|
dw PoisonHit
|
||||||
|
dw LeechHit
|
||||||
|
dw BurnHit
|
||||||
|
dw FreezeHit
|
||||||
|
dw ParalyzeHit
|
||||||
|
dw Explosion
|
||||||
|
dw DreamEater
|
||||||
|
dw MirrorMove
|
||||||
|
dw AttackUp
|
||||||
|
dw DefenseUp
|
||||||
|
dw SpeedUp
|
||||||
|
dw Growth
|
||||||
|
dw SpecialDefenseUp
|
||||||
|
dw AccuracyUp
|
||||||
|
dw EvasionUp
|
||||||
|
dw NormalHit
|
||||||
|
dw Growl
|
||||||
|
dw DefenseDown
|
||||||
|
dw StringShot
|
||||||
|
dw SpecialAttackDown
|
||||||
|
dw SpecialDefenseDown
|
||||||
|
dw AccuracyDown
|
||||||
|
dw SweetScent
|
||||||
|
dw Haze
|
||||||
|
dw Bide
|
||||||
|
dw Rampage
|
||||||
|
dw Whirlwind
|
||||||
|
dw MultiHit
|
||||||
|
dw Conversion
|
||||||
|
dw FlinchHit
|
||||||
|
dw Heal
|
||||||
|
dw Toxic
|
||||||
|
dw PayDay
|
||||||
|
dw LightScreen
|
||||||
|
dw TriAttack
|
||||||
|
dw NormalHit
|
||||||
|
dw OHKOHit
|
||||||
|
dw RazorWind
|
||||||
|
dw SuperFang
|
||||||
|
dw StaticDamage
|
||||||
|
dw Bind
|
||||||
|
dw NormalHit
|
||||||
|
dw MultiHit
|
||||||
|
dw NormalHit
|
||||||
|
dw Mist
|
||||||
|
dw FocusEnergy
|
||||||
|
dw RecoilHit
|
||||||
|
dw DoConfuse
|
||||||
|
dw SwordsDance
|
||||||
|
dw DefenseUp2
|
||||||
|
dw Agility
|
||||||
|
dw SpecialAttackUp2
|
||||||
|
dw Amnesia
|
||||||
|
dw AccuracyUp2
|
||||||
|
dw EvasionUp2
|
||||||
|
dw Transform
|
||||||
|
dw Charm
|
||||||
|
dw Screech
|
||||||
|
dw SpeedDown2
|
||||||
|
dw SpecialAttackDown2
|
||||||
|
dw SpecialDefenseDown2
|
||||||
|
dw AccuracyDown2
|
||||||
|
dw EvasionDown2
|
||||||
|
dw Reflect
|
||||||
|
dw DoPoison
|
||||||
|
dw DoParalyze
|
||||||
|
dw AuroraBeam
|
||||||
|
dw DefenseDownHit
|
||||||
|
dw SpeedDownHit
|
||||||
|
dw SpecialAttackDownHit
|
||||||
|
dw SpecialDefenseDownHit
|
||||||
|
dw AccuracyDownHit
|
||||||
|
dw EvasionDownHit
|
||||||
|
dw SkyAttack
|
||||||
|
dw ConfuseHit
|
||||||
|
dw Twineedle
|
||||||
|
dw NormalHit
|
||||||
|
dw Substitute
|
||||||
|
dw HyperBeam
|
||||||
|
dw Rage
|
||||||
|
dw Mimic
|
||||||
|
dw Metronome
|
||||||
|
dw LeechSeed
|
||||||
|
dw Splash
|
||||||
|
dw Disable
|
||||||
|
dw StaticDamage
|
||||||
|
dw Psywave
|
||||||
|
dw Counter
|
||||||
|
dw Encore
|
||||||
|
dw PainSplit
|
||||||
|
dw Snore
|
||||||
|
dw Conversion2
|
||||||
|
dw LockOn
|
||||||
|
dw Sketch
|
||||||
|
dw DefrostOpponent
|
||||||
|
dw SleepTalk
|
||||||
|
dw DestinyBond
|
||||||
|
dw Reversal
|
||||||
|
dw Spite
|
||||||
|
dw FalseSwipe
|
||||||
|
dw HealBell
|
||||||
|
dw NormalHit
|
||||||
|
dw TripleKick
|
||||||
|
dw Thief
|
||||||
|
dw MeanLook
|
||||||
|
dw Nightmare
|
||||||
|
dw FlameWheel
|
||||||
|
dw Curse
|
||||||
|
dw NormalHit
|
||||||
|
dw Protect
|
||||||
|
dw Spikes
|
||||||
|
dw Foresight
|
||||||
|
dw PerishSong
|
||||||
|
dw Sandstorm
|
||||||
|
dw Endure
|
||||||
|
dw Rollout
|
||||||
|
dw Swagger
|
||||||
|
dw FuryCutter
|
||||||
|
dw Attract
|
||||||
|
dw Return
|
||||||
|
dw Present
|
||||||
|
dw Frustration
|
||||||
|
dw Safeguard
|
||||||
|
dw SacredFire
|
||||||
|
dw Magnitude
|
||||||
|
dw BatonPass
|
||||||
|
dw Pursuit
|
||||||
|
dw RapidSpin
|
||||||
|
dw NormalHit
|
||||||
|
dw NormalHit
|
||||||
|
dw MorningSun
|
||||||
|
dw Synthesis
|
||||||
|
dw Moonlight
|
||||||
|
dw HiddenPower
|
||||||
|
dw RainDance
|
||||||
|
dw SunnyDay
|
||||||
|
dw SteelWing
|
||||||
|
dw MetalClaw
|
||||||
|
dw Ancientpower
|
||||||
|
dw FakeOut
|
||||||
|
dw BellyDrum
|
||||||
|
dw PsychUp
|
||||||
|
dw MirrorCoat
|
||||||
|
dw SkullBash
|
||||||
|
dw Twister
|
||||||
|
dw Earthquake
|
||||||
|
dw FutureSight
|
||||||
|
dw Gust
|
||||||
|
dw Stomp
|
||||||
|
dw Solarbeam
|
||||||
|
dw Thunder
|
||||||
|
dw Teleport
|
||||||
|
dw BeatUp
|
||||||
|
dw Fly
|
||||||
|
dw DefenseCurl
|
||||||
|
|
@ -1,257 +1,258 @@
|
|||||||
; Characteristics of each move
|
; Characteristics of each move
|
||||||
|
|
||||||
; animation, effect, power, type, accuracy, PP, effect chance
|
; animation, effect, power, type, accuracy, PP, effect chance
|
||||||
Move0:
|
|
||||||
db POUND, $00, 40, NORMAL, $ff, 35, $00
|
Move1:
|
||||||
Move1:
|
db POUND, EFFECT_NORMAL_HIT, 40, NORMAL, $ff, 35, $00
|
||||||
db KARATE_CHOP, $00, 50, FIGHTING, $ff, 25, $00
|
Move2:
|
||||||
db DOUBLESLAP, $1d, 15, NORMAL, $d8, 10, $00
|
db KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, $ff, 25, $00
|
||||||
db COMET_PUNCH, $1d, 18, NORMAL, $d8, 15, $00
|
db DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, $d8, 10, $00
|
||||||
db MEGA_PUNCH, $00, 80, NORMAL, $d8, 20, $00
|
db COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, $d8, 15, $00
|
||||||
db PAY_DAY, $22, 40, NORMAL, $ff, 20, $00
|
db MEGA_PUNCH, EFFECT_NORMAL_HIT, 80, NORMAL, $d8, 20, $00
|
||||||
db FIRE_PUNCH, $04, 75, FIRE, $ff, 15, $19
|
db PAY_DAY, EFFECT_PAY_DAY, 40, NORMAL, $ff, 20, $00
|
||||||
db ICE_PUNCH, $05, 75, ICE, $ff, 15, $19
|
db FIRE_PUNCH, EFFECT_BURN_HIT, 75, FIRE, $ff, 15, $19
|
||||||
db THUNDERPUNCH, $06, 75, ELECTRIC, $ff, 15, $19
|
db ICE_PUNCH, EFFECT_FREEZE_HIT, 75, ICE, $ff, 15, $19
|
||||||
db SCRATCH, $00, 40, NORMAL, $ff, 35, $00
|
db THUNDERPUNCH, EFFECT_PARALYZE_HIT, 75, ELECTRIC, $ff, 15, $19
|
||||||
db VICEGRIP, $00, 55, NORMAL, $ff, 30, $00
|
db SCRATCH, EFFECT_NORMAL_HIT, 40, NORMAL, $ff, 35, $00
|
||||||
db GUILLOTINE, $26, 0, NORMAL, $4c, 5, $00
|
db VICEGRIP, EFFECT_NORMAL_HIT, 55, NORMAL, $ff, 30, $00
|
||||||
db RAZOR_WIND, $27, 80, NORMAL, $bf, 10, $00
|
db GUILLOTINE, EFFECT_OHKO, 0, NORMAL, $4c, 5, $00
|
||||||
db SWORDS_DANCE, $32, 0, NORMAL, $ff, 30, $00
|
db RAZOR_WIND, EFFECT_RAZOR_WIND, 80, NORMAL, $bf, 10, $00
|
||||||
db CUT, $00, 50, NORMAL, $f2, 30, $00
|
db SWORDS_DANCE, EFFECT_ATTACK_UP_2, 0, NORMAL, $ff, 30, $00
|
||||||
db GUST, $95, 40, FLYING, $ff, 35, $00
|
db CUT, EFFECT_NORMAL_HIT, 50, NORMAL, $f2, 30, $00
|
||||||
db WING_ATTACK, $00, 60, FLYING, $ff, 35, $00
|
db GUST, EFFECT_GUST, 40, FLYING, $ff, 35, $00
|
||||||
db WHIRLWIND, $1c, 0, NORMAL, $ff, 20, $00
|
db WING_ATTACK, EFFECT_NORMAL_HIT, 60, FLYING, $ff, 35, $00
|
||||||
db FLY, $9b, 70, FLYING, $f2, 15, $00
|
db WHIRLWIND, EFFECT_WHIRLWIND, 0, NORMAL, $ff, 20, $00
|
||||||
db BIND, $2a, 15, NORMAL, $bf, 20, $00
|
db FLY, EFFECT_FLY, 70, FLYING, $f2, 15, $00
|
||||||
db SLAM, $00, 80, NORMAL, $bf, 20, $00
|
db BIND, EFFECT_BIND, 15, NORMAL, $bf, 20, $00
|
||||||
db VINE_WHIP, $00, 35, GRASS, $ff, 10, $00
|
db SLAM, EFFECT_NORMAL_HIT, 80, NORMAL, $bf, 20, $00
|
||||||
db STOMP, $96, 65, NORMAL, $ff, 20, $4c
|
db VINE_WHIP, EFFECT_NORMAL_HIT, 35, GRASS, $ff, 10, $00
|
||||||
db DOUBLE_KICK, $2c, 30, FIGHTING, $ff, 30, $00
|
db STOMP, EFFECT_STOMP, 65, NORMAL, $ff, 20, $4c
|
||||||
db MEGA_KICK, $00, 120, NORMAL, $bf, 5, $00
|
db DOUBLE_KICK, EFFECT_DOUBLE_HIT, 30, FIGHTING, $ff, 30, $00
|
||||||
db JUMP_KICK, $2d, 70, FIGHTING, $f2, 25, $00
|
db MEGA_KICK, EFFECT_NORMAL_HIT, 120, NORMAL, $bf, 5, $00
|
||||||
db ROLLING_KICK, $1f, 60, FIGHTING, $d8, 15, $4c
|
db JUMP_KICK, EFFECT_JUMP_KICK, 70, FIGHTING, $f2, 25, $00
|
||||||
db SAND_ATTACK, $17, 0, GROUND, $ff, 15, $00
|
db ROLLING_KICK, EFFECT_FLINCH_HIT, 60, FIGHTING, $d8, 15, $4c
|
||||||
db HEADBUTT, $1f, 70, NORMAL, $ff, 15, $4c
|
db SAND_ATTACK, EFFECT_ACCURACY_DOWN, 0, GROUND, $ff, 15, $00
|
||||||
db HORN_ATTACK, $00, 65, NORMAL, $ff, 25, $00
|
db HEADBUTT, EFFECT_FLINCH_HIT, 70, NORMAL, $ff, 15, $4c
|
||||||
db FURY_ATTACK, $1d, 15, NORMAL, $d8, 20, $00
|
db HORN_ATTACK, EFFECT_NORMAL_HIT, 65, NORMAL, $ff, 25, $00
|
||||||
db HORN_DRILL, $26, 1, NORMAL, $4c, 5, $00
|
db FURY_ATTACK, EFFECT_MULTI_HIT, 15, NORMAL, $d8, 20, $00
|
||||||
db TACKLE, $00, 35, NORMAL, $f2, 35, $00
|
db HORN_DRILL, EFFECT_OHKO, 1, NORMAL, $4c, 5, $00
|
||||||
db BODY_SLAM, $06, 85, NORMAL, $ff, 15, $4c
|
db TACKLE, EFFECT_NORMAL_HIT, 35, NORMAL, $f2, 35, $00
|
||||||
db WRAP, $2a, 15, NORMAL, $d8, 20, $00
|
db BODY_SLAM, EFFECT_PARALYZE_HIT, 85, NORMAL, $ff, 15, $4c
|
||||||
db TAKE_DOWN, $30, 90, NORMAL, $d8, 20, $00
|
db WRAP, EFFECT_BIND, 15, NORMAL, $d8, 20, $00
|
||||||
db THRASH, $1b, 90, NORMAL, $ff, 20, $00
|
db TAKE_DOWN, EFFECT_RECOIL_HIT, 90, NORMAL, $d8, 20, $00
|
||||||
db DOUBLE_EDGE, $30, 120, NORMAL, $ff, 15, $00
|
db THRASH, EFFECT_RAMPAGE, 90, NORMAL, $ff, 20, $00
|
||||||
db TAIL_WHIP, $13, 0, NORMAL, $ff, 30, $00
|
db DOUBLE_EDGE, EFFECT_RECOIL_HIT, 120, NORMAL, $ff, 15, $00
|
||||||
db POISON_STING, $02, 15, POISON, $ff, 35, $4c
|
db TAIL_WHIP, EFFECT_DEFENSE_DOWN, 0, NORMAL, $ff, 30, $00
|
||||||
db TWINEEDLE, $4d, 25, BUG, $ff, 20, $33
|
db POISON_STING, EFFECT_POISON_HIT, 15, POISON, $ff, 35, $4c
|
||||||
db PIN_MISSILE, $1d, 14, BUG, $d8, 20, $00
|
db TWINEEDLE, EFFECT_TWINEEDLE, 25, BUG, $ff, 20, $33
|
||||||
db LEER, $13, 0, NORMAL, $ff, 30, $00
|
db PIN_MISSILE, EFFECT_MULTI_HIT, 14, BUG, $d8, 20, $00
|
||||||
db BITE, $1f, 60, DARK, $ff, 25, $4c
|
db LEER, EFFECT_DEFENSE_DOWN, 0, NORMAL, $ff, 30, $00
|
||||||
db GROWL, $12, 0, NORMAL, $ff, 40, $00
|
db BITE, EFFECT_FLINCH_HIT, 60, DARK, $ff, 25, $4c
|
||||||
db ROAR, $1c, 0, NORMAL, $ff, 20, $00
|
db GROWL, EFFECT_ATTACK_DOWN, 0, NORMAL, $ff, 40, $00
|
||||||
db SING, $01, 0, NORMAL, $8c, 15, $00
|
db ROAR, EFFECT_WHIRLWIND, 0, NORMAL, $ff, 20, $00
|
||||||
db SUPERSONIC, $31, 0, NORMAL, $8c, 20, $00
|
db SING, EFFECT_SLEEP, 0, NORMAL, $8c, 15, $00
|
||||||
db SONICBOOM, $29, 20, NORMAL, $e5, 20, $00
|
db SUPERSONIC, EFFECT_CONFUSE, 0, NORMAL, $8c, 20, $00
|
||||||
db DISABLE, $56, 0, NORMAL, $8c, 20, $00
|
db SONICBOOM, EFFECT_STATIC_DAMAGE, 20, NORMAL, $e5, 20, $00
|
||||||
db ACID, $45, 40, POISON, $ff, 30, $19
|
db DISABLE, EFFECT_DISABLE, 0, NORMAL, $8c, 20, $00
|
||||||
db EMBER, $04, 40, FIRE, $ff, 25, $19
|
db ACID, EFFECT_DEFENSE_DOWN_HIT, 40, POISON, $ff, 30, $19
|
||||||
db FLAMETHROWER, $04, 95, FIRE, $ff, 15, $19
|
db EMBER, EFFECT_BURN_HIT, 40, FIRE, $ff, 25, $19
|
||||||
db MIST, $2e, 0, ICE, $ff, 30, $00
|
db FLAMETHROWER, EFFECT_BURN_HIT, 95, FIRE, $ff, 15, $19
|
||||||
db WATER_GUN, $00, 40, WATER, $ff, 25, $00
|
db MIST, EFFECT_MIST, 0, ICE, $ff, 30, $00
|
||||||
db HYDRO_PUMP, $00, 120, WATER, $cc, 5, $00
|
db WATER_GUN, EFFECT_NORMAL_HIT, 40, WATER, $ff, 25, $00
|
||||||
db SURF, $00, 95, WATER, $ff, 15, $00
|
db HYDRO_PUMP, EFFECT_NORMAL_HIT, 120, WATER, $cc, 5, $00
|
||||||
db ICE_BEAM, $05, 95, ICE, $ff, 10, $19
|
db SURF, EFFECT_NORMAL_HIT, 95, WATER, $ff, 15, $00
|
||||||
db BLIZZARD, $05, 120, ICE, $b2, 5, $19
|
db ICE_BEAM, EFFECT_FREEZE_HIT, 95, ICE, $ff, 10, $19
|
||||||
db PSYBEAM, $4c, 65, PSYCHIC, $ff, 20, $19
|
db BLIZZARD, EFFECT_FREEZE_HIT, 120, ICE, $b2, 5, $19
|
||||||
db BUBBLEBEAM, $46, 65, WATER, $ff, 20, $19
|
db PSYBEAM, EFFECT_CONFUSE_HIT, 65, PSYCHIC, $ff, 20, $19
|
||||||
db AURORA_BEAM, $44, 65, ICE, $ff, 20, $19
|
db BUBBLEBEAM, EFFECT_SPEED_DOWN_HIT, 65, WATER, $ff, 20, $19
|
||||||
db HYPER_BEAM, $50, 150, NORMAL, $e5, 5, $00
|
db AURORA_BEAM, EFFECT_ATTACK_DOWN_HIT, 65, ICE, $ff, 20, $19
|
||||||
db PECK, $00, 35, FLYING, $ff, 35, $00
|
db HYPER_BEAM, EFFECT_HYPER_BEAM, 150, NORMAL, $e5, 5, $00
|
||||||
db DRILL_PECK, $00, 80, FLYING, $ff, 20, $00
|
db PECK, EFFECT_NORMAL_HIT, 35, FLYING, $ff, 35, $00
|
||||||
db SUBMISSION, $30, 80, FIGHTING, $cc, 25, $00
|
db DRILL_PECK, EFFECT_NORMAL_HIT, 80, FLYING, $ff, 20, $00
|
||||||
db LOW_KICK, $1f, 50, FIGHTING, $e5, 20, $4c
|
db SUBMISSION, EFFECT_RECOIL_HIT, 80, FIGHTING, $cc, 25, $00
|
||||||
db COUNTER, $59, 1, FIGHTING, $ff, 20, $00
|
db LOW_KICK, EFFECT_FLINCH_HIT, 50, FIGHTING, $e5, 20, $4c
|
||||||
db SEISMIC_TOSS, $57, 1, FIGHTING, $ff, 20, $00
|
db COUNTER, EFFECT_COUNTER, 1, FIGHTING, $ff, 20, $00
|
||||||
db STRENGTH, $00, 80, NORMAL, $ff, 15, $00
|
db SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE, 1, FIGHTING, $ff, 20, $00
|
||||||
db ABSORB, $03, 20, GRASS, $ff, 20, $00
|
db STRENGTH, EFFECT_NORMAL_HIT, 80, NORMAL, $ff, 15, $00
|
||||||
db MEGA_DRAIN, $03, 40, GRASS, $ff, 10, $00
|
db ABSORB, EFFECT_LEECH_HIT, 20, GRASS, $ff, 20, $00
|
||||||
db LEECH_SEED, $54, 0, GRASS, $e5, 10, $00
|
db MEGA_DRAIN, EFFECT_LEECH_HIT, 40, GRASS, $ff, 10, $00
|
||||||
db GROWTH, $0d, 0, NORMAL, $ff, 40, $00
|
db LEECH_SEED, EFFECT_LEECH_SEED, 0, GRASS, $e5, 10, $00
|
||||||
db RAZOR_LEAF, $00, 55, GRASS, $f2, 25, $00
|
db GROWTH, EFFECT_SP_ATTACK_UP, 0, NORMAL, $ff, 40, $00
|
||||||
db SOLARBEAM, $97, 120, GRASS, $ff, 10, $00
|
db RAZOR_LEAF, EFFECT_NORMAL_HIT, 55, GRASS, $f2, 25, $00
|
||||||
db POISONPOWDER, $42, 0, POISON, $bf, 35, $00
|
db SOLARBEAM, EFFECT_SOLARBEAM, 120, GRASS, $ff, 10, $00
|
||||||
db STUN_SPORE, $43, 0, GRASS, $bf, 30, $00
|
db POISONPOWDER, EFFECT_POISON, 0, POISON, $bf, 35, $00
|
||||||
db SLEEP_POWDER, $01, 0, GRASS, $bf, 15, $00
|
db STUN_SPORE, EFFECT_PARALYZE, 0, GRASS, $bf, 30, $00
|
||||||
db PETAL_DANCE, $1b, 70, GRASS, $ff, 20, $00
|
db SLEEP_POWDER, EFFECT_SLEEP, 0, GRASS, $bf, 15, $00
|
||||||
db STRING_SHOT, $14, 0, BUG, $f2, 40, $00
|
db PETAL_DANCE, EFFECT_RAMPAGE, 70, GRASS, $ff, 20, $00
|
||||||
db DRAGON_RAGE, $29, 40, DRAGON, $ff, 10, $00
|
db STRING_SHOT, EFFECT_SPEED_DOWN, 0, BUG, $f2, 40, $00
|
||||||
db FIRE_SPIN, $2a, 15, FIRE, $b2, 15, $00
|
db DRAGON_RAGE, EFFECT_STATIC_DAMAGE, 40, DRAGON, $ff, 10, $00
|
||||||
db THUNDERSHOCK, $06, 40, ELECTRIC, $ff, 30, $19
|
db FIRE_SPIN, EFFECT_BIND, 15, FIRE, $b2, 15, $00
|
||||||
db THUNDERBOLT, $06, 95, ELECTRIC, $ff, 15, $19
|
db THUNDERSHOCK, EFFECT_PARALYZE_HIT, 40, ELECTRIC, $ff, 30, $19
|
||||||
db THUNDER_WAVE, $43, 0, ELECTRIC, $ff, 20, $00
|
db THUNDERBOLT, EFFECT_PARALYZE_HIT, 95, ELECTRIC, $ff, 15, $19
|
||||||
db THUNDER, $98, 120, ELECTRIC, $b2, 10, $4c
|
db THUNDER_WAVE, EFFECT_PARALYZE, 0, ELECTRIC, $ff, 20, $00
|
||||||
db ROCK_THROW, $00, 50, ROCK, $e5, 15, $00
|
db THUNDER, EFFECT_THUNDER, 120, ELECTRIC, $b2, 10, $4c
|
||||||
db EARTHQUAKE, $93, 100, GROUND, $ff, 10, $00
|
db ROCK_THROW, EFFECT_NORMAL_HIT, 50, ROCK, $e5, 15, $00
|
||||||
db FISSURE, $26, 1, GROUND, $4c, 5, $00
|
db EARTHQUAKE, EFFECT_EARTHQUAKE, 100, GROUND, $ff, 10, $00
|
||||||
db DIG, $9b, 60, GROUND, $ff, 10, $00
|
db FISSURE, EFFECT_OHKO, 1, GROUND, $4c, 5, $00
|
||||||
db TOXIC, $21, 0, POISON, $d8, 10, $00
|
db DIG, EFFECT_FLY, 60, GROUND, $ff, 10, $00
|
||||||
db CONFUSION, $4c, 50, PSYCHIC, $ff, 25, $19
|
db TOXIC, EFFECT_TOXIC, 0, POISON, $d8, 10, $00
|
||||||
db PSYCHIC_M, $48, 90, PSYCHIC, $ff, 10, $19
|
db CONFUSION, EFFECT_CONFUSE_HIT, 50, PSYCHIC, $ff, 25, $19
|
||||||
db HYPNOSIS, $01, 0, PSYCHIC, $99, 20, $00
|
db PSYCHIC_M, EFFECT_SP_DEFENSE_DOWN_HIT, 90, PSYCHIC, $ff, 10, $19
|
||||||
db MEDITATE, $0a, 0, PSYCHIC, $ff, 40, $00
|
db HYPNOSIS, EFFECT_SLEEP, 0, PSYCHIC, $99, 20, $00
|
||||||
db AGILITY, $34, 0, PSYCHIC, $ff, 30, $00
|
db MEDITATE, EFFECT_ATTACK_UP, 0, PSYCHIC, $ff, 40, $00
|
||||||
db QUICK_ATTACK, $67, 40, NORMAL, $ff, 30, $00
|
db AGILITY, EFFECT_SPEED_UP_2, 0, PSYCHIC, $ff, 30, $00
|
||||||
db RAGE, $51, 20, NORMAL, $ff, 20, $00
|
db QUICK_ATTACK, EFFECT_PRIORITY_HIT, 40, NORMAL, $ff, 30, $00
|
||||||
db TELEPORT, $99, 0, PSYCHIC, $ff, 20, $00
|
db RAGE, EFFECT_RAGE, 20, NORMAL, $ff, 20, $00
|
||||||
db NIGHT_SHADE, $57, 1, GHOST, $ff, 15, $00
|
db TELEPORT, EFFECT_TELEPORT, 0, PSYCHIC, $ff, 20, $00
|
||||||
db MIMIC, $52, 0, NORMAL, $ff, 10, $00
|
db NIGHT_SHADE, EFFECT_LEVEL_DAMAGE, 1, GHOST, $ff, 15, $00
|
||||||
db SCREECH, $3b, 0, NORMAL, $d8, 40, $00
|
db MIMIC, EFFECT_MIMIC, 0, NORMAL, $ff, 10, $00
|
||||||
db DOUBLE_TEAM, $10, 0, NORMAL, $ff, 15, $00
|
db SCREECH, EFFECT_DEFENSE_DOWN_2, 0, NORMAL, $d8, 40, $00
|
||||||
db RECOVER, $20, 0, NORMAL, $ff, 20, $00
|
db DOUBLE_TEAM, EFFECT_EVASION_UP, 0, NORMAL, $ff, 15, $00
|
||||||
db HARDEN, $0b, 0, NORMAL, $ff, 30, $00
|
db RECOVER, EFFECT_HEAL, 0, NORMAL, $ff, 20, $00
|
||||||
db MINIMIZE, $10, 0, NORMAL, $ff, 20, $00
|
db HARDEN, EFFECT_DEFENSE_UP, 0, NORMAL, $ff, 30, $00
|
||||||
db SMOKESCREEN, $17, 0, NORMAL, $ff, 20, $00
|
db MINIMIZE, EFFECT_EVASION_UP, 0, NORMAL, $ff, 20, $00
|
||||||
db CONFUSE_RAY, $31, 0, GHOST, $ff, 10, $00
|
db SMOKESCREEN, EFFECT_ACCURACY_DOWN, 0, NORMAL, $ff, 20, $00
|
||||||
db WITHDRAW, $0b, 0, WATER, $ff, 40, $00
|
db CONFUSE_RAY, EFFECT_CONFUSE, 0, GHOST, $ff, 10, $00
|
||||||
db DEFENSE_CURL, $9c, 0, NORMAL, $ff, 40, $00
|
db WITHDRAW, EFFECT_DEFENSE_UP, 0, WATER, $ff, 40, $00
|
||||||
db BARRIER, $33, 0, PSYCHIC, $ff, 30, $00
|
db DEFENSE_CURL, EFFECT_DEFENSE_CURL, 0, NORMAL, $ff, 40, $00
|
||||||
db LIGHT_SCREEN, $23, 0, PSYCHIC, $ff, 30, $00
|
db BARRIER, EFFECT_DEFENSE_UP_2, 0, PSYCHIC, $ff, 30, $00
|
||||||
db HAZE, $19, 0, ICE, $ff, 30, $00
|
db LIGHT_SCREEN, EFFECT_LIGHT_SCREEN, 0, PSYCHIC, $ff, 30, $00
|
||||||
db REFLECT, $41, 0, PSYCHIC, $ff, 20, $00
|
db HAZE, EFFECT_HAZE, 0, ICE, $ff, 30, $00
|
||||||
db FOCUS_ENERGY, $2f, 0, NORMAL, $ff, 30, $00
|
db REFLECT, EFFECT_REFLECT, 0, PSYCHIC, $ff, 20, $00
|
||||||
db BIDE, $1a, 0, NORMAL, $ff, 10, $00
|
db FOCUS_ENERGY, EFFECT_FOCUS_ENERGY, 0, NORMAL, $ff, 30, $00
|
||||||
db METRONOME, $53, 0, NORMAL, $ff, 10, $00
|
db BIDE, EFFECT_BIDE, 0, NORMAL, $ff, 10, $00
|
||||||
db MIRROR_MOVE, $09, 0, FLYING, $ff, 20, $00
|
db METRONOME, EFFECT_METRONOME, 0, NORMAL, $ff, 10, $00
|
||||||
db SELFDESTRUCT, $07, 200, NORMAL, $ff, 5, $00
|
db MIRROR_MOVE, EFFECT_MIRROR_MOVE, 0, FLYING, $ff, 20, $00
|
||||||
db EGG_BOMB, $00, 100, NORMAL, $bf, 10, $00
|
db SELFDESTRUCT, EFFECT_EXPLOSION, 200, NORMAL, $ff, 5, $00
|
||||||
db LICK, $06, 20, GHOST, $ff, 30, $4c
|
db EGG_BOMB, EFFECT_NORMAL_HIT, 100, NORMAL, $bf, 10, $00
|
||||||
db SMOG, $02, 20, POISON, $b2, 20, $66
|
db LICK, EFFECT_PARALYZE_HIT, 20, GHOST, $ff, 30, $4c
|
||||||
db SLUDGE, $02, 65, POISON, $ff, 20, $4c
|
db SMOG, EFFECT_POISON_HIT, 20, POISON, $b2, 20, $66
|
||||||
db BONE_CLUB, $1f, 65, GROUND, $d8, 20, $19
|
db SLUDGE, EFFECT_POISON_HIT, 65, POISON, $ff, 20, $4c
|
||||||
db FIRE_BLAST, $04, 120, FIRE, $d8, 5, $19
|
db BONE_CLUB, EFFECT_FLINCH_HIT, 65, GROUND, $d8, 20, $19
|
||||||
db WATERFALL, $00, 80, WATER, $ff, 15, $00
|
db FIRE_BLAST, EFFECT_BURN_HIT, 120, FIRE, $d8, 5, $19
|
||||||
db CLAMP, $2a, 35, WATER, $bf, 10, $00
|
db WATERFALL, EFFECT_NORMAL_HIT, 80, WATER, $ff, 15, $00
|
||||||
db SWIFT, $11, 60, NORMAL, $ff, 20, $00
|
db CLAMP, EFFECT_BIND, 35, WATER, $bf, 10, $00
|
||||||
db SKULL_BASH, $91, 100, NORMAL, $ff, 15, $00
|
db SWIFT, EFFECT_ALWAYS_HIT, 60, NORMAL, $ff, 20, $00
|
||||||
db SPIKE_CANNON, $1d, 20, NORMAL, $ff, 15, $00
|
db SKULL_BASH, EFFECT_SKULL_BASH, 100, NORMAL, $ff, 15, $00
|
||||||
db CONSTRICT, $46, 10, NORMAL, $ff, 35, $19
|
db SPIKE_CANNON, EFFECT_MULTI_HIT, 20, NORMAL, $ff, 15, $00
|
||||||
db AMNESIA, $36, 0, PSYCHIC, $ff, 20, $00
|
db CONSTRICT, EFFECT_SPEED_DOWN_HIT, 10, NORMAL, $ff, 35, $19
|
||||||
db KINESIS, $17, 0, PSYCHIC, $cc, 15, $00
|
db AMNESIA, EFFECT_SP_DEFENSE_UP_2, 0, PSYCHIC, $ff, 20, $00
|
||||||
db SOFTBOILED, $20, 0, NORMAL, $ff, 10, $00
|
db KINESIS, EFFECT_ACCURACY_DOWN, 0, PSYCHIC, $cc, 15, $00
|
||||||
db HI_JUMP_KICK, $2d, 85, FIGHTING, $e5, 20, $00
|
db SOFTBOILED, EFFECT_HEAL, 0, NORMAL, $ff, 10, $00
|
||||||
db GLARE, $43, 0, NORMAL, $bf, 30, $00
|
db HI_JUMP_KICK, EFFECT_JUMP_KICK, 85, FIGHTING, $e5, 20, $00
|
||||||
db DREAM_EATER, $08, 100, PSYCHIC, $ff, 15, $00
|
db GLARE, EFFECT_PARALYZE, 0, NORMAL, $bf, 30, $00
|
||||||
db POISON_GAS, $42, 0, POISON, $8c, 40, $00
|
db DREAM_EATER, EFFECT_DREAM_EATER, 100, PSYCHIC, $ff, 15, $00
|
||||||
db BARRAGE, $1d, 15, NORMAL, $d8, 20, $00
|
db POISON_GAS, EFFECT_POISON, 0, POISON, $8c, 40, $00
|
||||||
db LEECH_LIFE, $03, 20, BUG, $ff, 15, $00
|
db BARRAGE, EFFECT_MULTI_HIT, 15, NORMAL, $d8, 20, $00
|
||||||
db LOVELY_KISS, $01, 0, NORMAL, $bf, 10, $00
|
db LEECH_LIFE, EFFECT_LEECH_HIT, 20, BUG, $ff, 15, $00
|
||||||
db SKY_ATTACK, $4b, 140, FLYING, $e5, 5, $00
|
db LOVELY_KISS, EFFECT_SLEEP, 0, NORMAL, $bf, 10, $00
|
||||||
db TRANSFORM, $39, 0, NORMAL, $ff, 10, $00
|
db SKY_ATTACK, EFFECT_SKY_ATTACK, 140, FLYING, $e5, 5, $00
|
||||||
db BUBBLE, $46, 20, WATER, $ff, 30, $19
|
db TRANSFORM, EFFECT_TRANSFORM, 0, NORMAL, $ff, 10, $00
|
||||||
db DIZZY_PUNCH, $4c, 70, NORMAL, $ff, 10, $33
|
db BUBBLE, EFFECT_SPEED_DOWN_HIT, 20, WATER, $ff, 30, $19
|
||||||
db SPORE, $01, 0, GRASS, $ff, 15, $00
|
db DIZZY_PUNCH, EFFECT_CONFUSE_HIT, 70, NORMAL, $ff, 10, $33
|
||||||
db FLASH, $17, 0, NORMAL, $b2, 20, $00
|
db SPORE, EFFECT_SLEEP, 0, GRASS, $ff, 15, $00
|
||||||
db PSYWAVE, $58, 1, PSYCHIC, $cc, 15, $00
|
db FLASH, EFFECT_ACCURACY_DOWN, 0, NORMAL, $b2, 20, $00
|
||||||
db SPLASH, $55, 0, NORMAL, $ff, 40, $00
|
db PSYWAVE, EFFECT_PSYWAVE, 1, PSYCHIC, $cc, 15, $00
|
||||||
db ACID_ARMOR, $33, 0, POISON, $ff, 40, $00
|
db SPLASH, EFFECT_SPLASH, 0, NORMAL, $ff, 40, $00
|
||||||
db CRABHAMMER, $00, 90, WATER, $d8, 10, $00
|
db ACID_ARMOR, EFFECT_DEFENSE_UP_2, 0, POISON, $ff, 40, $00
|
||||||
db EXPLOSION, $07, 250, NORMAL, $ff, 5, $00
|
db CRABHAMMER, EFFECT_NORMAL_HIT, 90, WATER, $d8, 10, $00
|
||||||
db FURY_SWIPES, $1d, 18, NORMAL, $cc, 15, $00
|
db EXPLOSION, EFFECT_EXPLOSION, 250, NORMAL, $ff, 5, $00
|
||||||
db BONEMERANG, $2c, 50, GROUND, $e5, 10, $00
|
db FURY_SWIPES, EFFECT_MULTI_HIT, 18, NORMAL, $cc, 15, $00
|
||||||
db REST, $20, 0, PSYCHIC, $ff, 10, $00
|
db BONEMERANG, EFFECT_DOUBLE_HIT, 50, GROUND, $e5, 10, $00
|
||||||
db ROCK_SLIDE, $1f, 75, ROCK, $e5, 10, $4c
|
db REST, EFFECT_HEAL, 0, PSYCHIC, $ff, 10, $00
|
||||||
db HYPER_FANG, $1f, 80, NORMAL, $e5, 15, $19
|
db ROCK_SLIDE, EFFECT_FLINCH_HIT, 75, ROCK, $e5, 10, $4c
|
||||||
db SHARPEN, $0a, 0, NORMAL, $ff, 30, $00
|
db HYPER_FANG, EFFECT_FLINCH_HIT, 80, NORMAL, $e5, 15, $19
|
||||||
db CONVERSION, $1e, 0, NORMAL, $ff, 30, $00
|
db SHARPEN, EFFECT_ATTACK_UP, 0, NORMAL, $ff, 30, $00
|
||||||
db TRI_ATTACK, $24, 80, NORMAL, $ff, 10, $33
|
db CONVERSION, EFFECT_CONVERSION, 0, NORMAL, $ff, 30, $00
|
||||||
db SUPER_FANG, $28, 1, NORMAL, $e5, 10, $00
|
db TRI_ATTACK, EFFECT_TRI_ATTACK, 80, NORMAL, $ff, 10, $33
|
||||||
db SLASH, $00, 70, NORMAL, $ff, 20, $00
|
db SUPER_FANG, EFFECT_SUPER_FANG, 1, NORMAL, $e5, 10, $00
|
||||||
db SUBSTITUTE, $4f, 0, NORMAL, $ff, 10, $00
|
db SLASH, EFFECT_NORMAL_HIT, 70, NORMAL, $ff, 20, $00
|
||||||
db STRUGGLE, $30, 50, NORMAL, $ff, 1, $00
|
db SUBSTITUTE, EFFECT_SUBSTITUTE, 0, NORMAL, $ff, 10, $00
|
||||||
db SKETCH, $5f, 0, NORMAL, $ff, 1, $00
|
db STRUGGLE, EFFECT_RECOIL_HIT, 50, NORMAL, $ff, 1, $00
|
||||||
db TRIPLE_KICK, $68, 10, FIGHTING, $e5, 10, $00
|
db SKETCH, EFFECT_SKETCH, 0, NORMAL, $ff, 1, $00
|
||||||
db THIEF, $69, 40, DARK, $ff, 10, $ff
|
db TRIPLE_KICK, EFFECT_TRIPLE_KICK, 10, FIGHTING, $e5, 10, $00
|
||||||
db SPIDER_WEB, $6a, 0, BUG, $ff, 10, $00
|
db THIEF, EFFECT_THIEF, 40, DARK, $ff, 10, $ff
|
||||||
db MIND_READER, $5e, 0, NORMAL, $ff, 5, $00
|
db SPIDER_WEB, EFFECT_MEAN_LOOK, 0, BUG, $ff, 10, $00
|
||||||
db NIGHTMARE, $6b, 0, GHOST, $ff, 15, $00
|
db MIND_READER, EFFECT_LOCK_ON, 0, NORMAL, $ff, 5, $00
|
||||||
db FLAME_WHEEL, $6c, 60, FIRE, $ff, 25, $19
|
db NIGHTMARE, EFFECT_NIGHTMARE, 0, GHOST, $ff, 15, $00
|
||||||
db SNORE, $5c, 40, NORMAL, $ff, 15, $4c
|
db FLAME_WHEEL, EFFECT_FLAME_WHEEL, 60, FIRE, $ff, 25, $19
|
||||||
db CURSE, $6d, 0, CURSE_T, $ff, 10, $00
|
db SNORE, EFFECT_SNORE, 40, NORMAL, $ff, 15, $4c
|
||||||
db FLAIL, $63, 1, NORMAL, $ff, 15, $00
|
db CURSE, EFFECT_CURSE, 0, CURSE_T, $ff, 10, $00
|
||||||
db CONVERSION2, $5d, 0, NORMAL, $ff, 30, $00
|
db FLAIL, EFFECT_REVERSAL, 1, NORMAL, $ff, 15, $00
|
||||||
db AEROBLAST, $00, 100, FLYING, $f2, 5, $00
|
db CONVERSION2, EFFECT_CONVERSION2, 0, NORMAL, $ff, 30, $00
|
||||||
db COTTON_SPORE, $3c, 0, GRASS, $d8, 40, $00
|
db AEROBLAST, EFFECT_NORMAL_HIT, 100, FLYING, $f2, 5, $00
|
||||||
db REVERSAL, $63, 1, FIGHTING, $ff, 15, $00
|
db COTTON_SPORE, EFFECT_SPEED_DOWN_2, 0, GRASS, $d8, 40, $00
|
||||||
db SPITE, $64, 0, GHOST, $ff, 10, $00
|
db REVERSAL, EFFECT_REVERSAL, 1, FIGHTING, $ff, 15, $00
|
||||||
db POWDER_SNOW, $05, 40, ICE, $ff, 25, $19
|
db SPITE, EFFECT_SPITE, 0, GHOST, $ff, 10, $00
|
||||||
db PROTECT, $6f, 0, NORMAL, $ff, 10, $00
|
db POWDER_SNOW, EFFECT_FREEZE_HIT, 40, ICE, $ff, 25, $19
|
||||||
db MACH_PUNCH, $67, 40, FIGHTING, $ff, 30, $00
|
db PROTECT, EFFECT_PROTECT, 0, NORMAL, $ff, 10, $00
|
||||||
db SCARY_FACE, $3c, 0, NORMAL, $e5, 10, $00
|
db MACH_PUNCH, EFFECT_PRIORITY_HIT, 40, FIGHTING, $ff, 30, $00
|
||||||
db FAINT_ATTACK, $11, 60, DARK, $ff, 20, $00
|
db SCARY_FACE, EFFECT_SPEED_DOWN_2, 0, NORMAL, $e5, 10, $00
|
||||||
db SWEET_KISS, $31, 0, NORMAL, $bf, 10, $00
|
db FAINT_ATTACK, EFFECT_ALWAYS_HIT, 60, DARK, $ff, 20, $00
|
||||||
db BELLY_DRUM, $8e, 0, NORMAL, $ff, 10, $00
|
db SWEET_KISS, EFFECT_CONFUSE, 0, NORMAL, $bf, 10, $00
|
||||||
db SLUDGE_BOMB, $02, 90, POISON, $ff, 10, $4c
|
db BELLY_DRUM, EFFECT_BELLY_DRUM, 0, NORMAL, $ff, 10, $00
|
||||||
db MUD_SLAP, $49, 20, GROUND, $ff, 10, $ff
|
db SLUDGE_BOMB, EFFECT_POISON_HIT, 90, POISON, $ff, 10, $4c
|
||||||
db OCTAZOOKA, $49, 65, WATER, $d8, 10, $7f
|
db MUD_SLAP, EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, $ff, 10, $ff
|
||||||
db SPIKES, $70, 0, GROUND, $ff, 20, $00
|
db OCTAZOOKA, EFFECT_ACCURACY_DOWN_HIT, 65, WATER, $d8, 10, $7f
|
||||||
db ZAP_CANNON, $06, 100, ELECTRIC, $7f, 5, $ff
|
db SPIKES, EFFECT_SPIKES, 0, GROUND, $ff, 20, $00
|
||||||
db FORESIGHT, $71, 0, NORMAL, $ff, 40, $00
|
db ZAP_CANNON, EFFECT_PARALYZE_HIT, 100, ELECTRIC, $7f, 5, $ff
|
||||||
db DESTINY_BOND, $62, 0, GHOST, $ff, 5, $00
|
db FORESIGHT, EFFECT_FORESIGHT, 0, NORMAL, $ff, 40, $00
|
||||||
db PERISH_SONG, $72, 0, NORMAL, $ff, 5, $00
|
db DESTINY_BOND, EFFECT_DESTINY_BOND, 0, GHOST, $ff, 5, $00
|
||||||
db ICY_WIND, $46, 55, ICE, $f2, 15, $ff
|
db PERISH_SONG, EFFECT_PERISH_SONG, 0, NORMAL, $ff, 5, $00
|
||||||
db DETECT, $6f, 0, FIGHTING, $ff, 5, $00
|
db ICY_WIND, EFFECT_SPEED_DOWN_HIT, 55, ICE, $f2, 15, $ff
|
||||||
db BONE_RUSH, $1d, 25, GROUND, $cc, 10, $00
|
db DETECT, EFFECT_PROTECT, 0, FIGHTING, $ff, 5, $00
|
||||||
db LOCK_ON, $5e, 0, NORMAL, $ff, 5, $00
|
db BONE_RUSH, EFFECT_MULTI_HIT, 25, GROUND, $cc, 10, $00
|
||||||
db OUTRAGE, $1b, 90, DRAGON, $ff, 15, $00
|
db LOCK_ON, EFFECT_LOCK_ON, 0, NORMAL, $ff, 5, $00
|
||||||
db SANDSTORM, $73, 0, ROCK, $ff, 10, $00
|
db OUTRAGE, EFFECT_RAMPAGE, 90, DRAGON, $ff, 15, $00
|
||||||
db GIGA_DRAIN, $03, 60, GRASS, $ff, 5, $00
|
db SANDSTORM, EFFECT_SANDSTORM, 0, ROCK, $ff, 10, $00
|
||||||
db ENDURE, $74, 0, NORMAL, $ff, 10, $00
|
db GIGA_DRAIN, EFFECT_LEECH_HIT, 60, GRASS, $ff, 5, $00
|
||||||
db CHARM, $3a, 0, NORMAL, $ff, 20, $00
|
db ENDURE, EFFECT_ENDURE, 0, NORMAL, $ff, 10, $00
|
||||||
db ROLLOUT, $75, 30, ROCK, $e5, 20, $00
|
db CHARM, EFFECT_ATTACK_DOWN_2, 0, NORMAL, $ff, 20, $00
|
||||||
db FALSE_SWIPE, $65, 40, NORMAL, $ff, 40, $00
|
db ROLLOUT, EFFECT_ROLLOUT, 30, ROCK, $e5, 20, $00
|
||||||
db SWAGGER, $76, 0, NORMAL, $e5, 15, $ff
|
db FALSE_SWIPE, EFFECT_FALSE_SWIPE, 40, NORMAL, $ff, 40, $00
|
||||||
db MILK_DRINK, $20, 0, NORMAL, $ff, 10, $00
|
db SWAGGER, EFFECT_SWAGGER, 0, NORMAL, $e5, 15, $ff
|
||||||
db SPARK, $06, 65, ELECTRIC, $ff, 20, $4c
|
db MILK_DRINK, EFFECT_HEAL, 0, NORMAL, $ff, 10, $00
|
||||||
db FURY_CUTTER, $77, 10, BUG, $f2, 20, $00
|
db SPARK, EFFECT_PARALYZE_HIT, 65, ELECTRIC, $ff, 20, $4c
|
||||||
db STEEL_WING, $8a, 70, STEEL, $e5, 25, $19
|
db FURY_CUTTER, EFFECT_FURY_CUTTER, 10, BUG, $f2, 20, $00
|
||||||
db MEAN_LOOK, $6a, 0, NORMAL, $ff, 5, $00
|
db STEEL_WING, EFFECT_STEEL_WING, 70, STEEL, $e5, 25, $19
|
||||||
db ATTRACT, $78, 0, NORMAL, $ff, 15, $00
|
db MEAN_LOOK, EFFECT_MEAN_LOOK, 0, NORMAL, $ff, 5, $00
|
||||||
db SLEEP_TALK, $61, 0, NORMAL, $ff, 10, $00
|
db ATTRACT, EFFECT_ATTRACT, 0, NORMAL, $ff, 15, $00
|
||||||
db HEAL_BELL, $66, 0, NORMAL, $ff, 5, $00
|
db SLEEP_TALK, EFFECT_SLEEP_TALK, 0, NORMAL, $ff, 10, $00
|
||||||
db RETURN, $79, 1, NORMAL, $ff, 20, $00
|
db HEAL_BELL, EFFECT_HEAL_BELL, 0, NORMAL, $ff, 5, $00
|
||||||
db PRESENT, $7a, 1, NORMAL, $e5, 15, $00
|
db RETURN, EFFECT_RETURN, 1, NORMAL, $ff, 20, $00
|
||||||
db FRUSTRATION, $7b, 1, NORMAL, $ff, 20, $00
|
db PRESENT, EFFECT_PRESENT, 1, NORMAL, $e5, 15, $00
|
||||||
db SAFEGUARD, $7c, 0, NORMAL, $ff, 25, $00
|
db FRUSTRATION, EFFECT_FRUSTRATION, 1, NORMAL, $ff, 20, $00
|
||||||
db PAIN_SPLIT, $5b, 0, NORMAL, $ff, 20, $00
|
db SAFEGUARD, EFFECT_SAFEGUARD, 0, NORMAL, $ff, 25, $00
|
||||||
db SACRED_FIRE, $7d, 100, FIRE, $f2, 5, $7f
|
db PAIN_SPLIT, EFFECT_PAIN_SPLIT, 0, NORMAL, $ff, 20, $00
|
||||||
db MAGNITUDE, $7e, 1, GROUND, $ff, 30, $00
|
db SACRED_FIRE, EFFECT_SACRED_FIRE, 100, FIRE, $f2, 5, $7f
|
||||||
db DYNAMICPUNCH, $4c, 100, FIGHTING, $7f, 5, $ff
|
db MAGNITUDE, EFFECT_MAGNITUDE, 1, GROUND, $ff, 30, $00
|
||||||
db MEGAHORN, $00, 120, BUG, $d8, 10, $00
|
db DYNAMICPUNCH, EFFECT_CONFUSE_HIT, 100, FIGHTING, $7f, 5, $ff
|
||||||
db DRAGONBREATH, $06, 60, DRAGON, $ff, 20, $4c
|
db MEGAHORN, EFFECT_NORMAL_HIT, 120, BUG, $d8, 10, $00
|
||||||
db BATON_PASS, $7f, 0, NORMAL, $ff, 40, $00
|
db DRAGONBREATH, EFFECT_PARALYZE_HIT, 60, DRAGON, $ff, 20, $4c
|
||||||
db ENCORE, $5a, 0, NORMAL, $ff, 5, $00
|
db BATON_PASS, EFFECT_BATON_PASS, 0, NORMAL, $ff, 40, $00
|
||||||
db PURSUIT, $80, 40, DARK, $ff, 20, $00
|
db ENCORE, EFFECT_ENCORE, 0, NORMAL, $ff, 5, $00
|
||||||
db RAPID_SPIN, $81, 20, NORMAL, $ff, 40, $00
|
db PURSUIT, EFFECT_PURSUIT, 40, DARK, $ff, 20, $00
|
||||||
db SWEET_SCENT, $18, 0, NORMAL, $ff, 20, $00
|
db RAPID_SPIN, EFFECT_RAPID_SPIN, 20, NORMAL, $ff, 40, $00
|
||||||
db IRON_TAIL, $45, 100, STEEL, $bf, 15, $4c
|
db SWEET_SCENT, EFFECT_EVASION_DOWN, 0, NORMAL, $ff, 20, $00
|
||||||
db METAL_CLAW, $8b, 50, STEEL, $f2, 35, $19
|
db IRON_TAIL, EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, $bf, 15, $4c
|
||||||
db VITAL_THROW, $11, 70, FIGHTING, $ff, 10, $00
|
db METAL_CLAW, EFFECT_METAL_CLAW, 50, STEEL, $f2, 35, $19
|
||||||
db MORNING_SUN, $84, 0, NORMAL, $ff, 5, $00
|
db VITAL_THROW, EFFECT_ALWAYS_HIT, 70, FIGHTING, $ff, 10, $00
|
||||||
db SYNTHESIS, $85, 0, GRASS, $ff, 5, $00
|
db MORNING_SUN, EFFECT_MORNING_SUN, 0, NORMAL, $ff, 5, $00
|
||||||
db MOONLIGHT, $86, 0, NORMAL, $ff, 5, $00
|
db SYNTHESIS, EFFECT_SYNTHESIS, 0, GRASS, $ff, 5, $00
|
||||||
db HIDDEN_POWER, $87, 1, NORMAL, $ff, 15, $00
|
db MOONLIGHT, EFFECT_MOONLIGHT, 0, NORMAL, $ff, 5, $00
|
||||||
db CROSS_CHOP, $00, 100, FIGHTING, $cc, 5, $00
|
db HIDDEN_POWER, EFFECT_HIDDEN_POWER, 1, NORMAL, $ff, 15, $00
|
||||||
db TWISTER, $92, 40, DRAGON, $ff, 20, $33
|
db CROSS_CHOP, EFFECT_NORMAL_HIT, 100, FIGHTING, $cc, 5, $00
|
||||||
db RAIN_DANCE, $88, 0, WATER, $e5, 5, $00
|
db TWISTER, EFFECT_TWISTER, 40, DRAGON, $ff, 20, $33
|
||||||
db SUNNY_DAY, $89, 0, FIRE, $e5, 5, $00
|
db RAIN_DANCE, EFFECT_RAIN_DANCE, 0, WATER, $e5, 5, $00
|
||||||
db CRUNCH, $48, 80, DARK, $ff, 15, $33
|
db SUNNY_DAY, EFFECT_SUNNY_DAY, 0, FIRE, $e5, 5, $00
|
||||||
db MIRROR_COAT, $90, 1, PSYCHIC, $ff, 20, $00
|
db CRUNCH, EFFECT_SP_DEFENSE_DOWN_HIT, 80, DARK, $ff, 15, $33
|
||||||
db PSYCH_UP, $8f, 0, NORMAL, $ff, 10, $00
|
db MIRROR_COAT, EFFECT_MIRROR_COAT, 1, PSYCHIC, $ff, 20, $00
|
||||||
db EXTREMESPEED, $67, 80, NORMAL, $ff, 5, $00
|
db PSYCH_UP, EFFECT_PSYCH_UP, 0, NORMAL, $ff, 10, $00
|
||||||
db ANCIENTPOWER, $8c, 60, ROCK, $ff, 5, $19
|
db EXTREMESPEED, EFFECT_PRIORITY_HIT, 80, NORMAL, $ff, 5, $00
|
||||||
db SHADOW_BALL, $48, 80, GHOST, $ff, 15, $33
|
db ANCIENTPOWER, EFFECT_ANCIENTPOWER, 60, ROCK, $ff, 5, $19
|
||||||
db FUTURE_SIGHT, $94, 80, PSYCHIC, $e5, 15, $00
|
db SHADOW_BALL, EFFECT_SP_DEFENSE_DOWN_HIT, 80, GHOST, $ff, 15, $33
|
||||||
db ROCK_SMASH, $45, 20, FIGHTING, $ff, 15, $7f
|
db FUTURE_SIGHT, EFFECT_FUTURE_SIGHT, 80, PSYCHIC, $e5, 15, $00
|
||||||
db WHIRLPOOL, $2a, 15, WATER, $b2, 15, $00
|
db ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, $ff, 15, $7f
|
||||||
db BEAT_UP, $9a, 10, DARK, $ff, 10, $00
|
db WHIRLPOOL, EFFECT_BIND, 15, WATER, $b2, 15, $00
|
||||||
|
db BEAT_UP, EFFECT_BEAT_UP, 10, DARK, $ff, 10, $00
|
||||||
|
|
||||||
|
587
constants.asm
587
constants.asm
@ -1464,6 +1464,26 @@ MAP_ROUTE_30_BERRY_SPEECH_HOUSE EQU $09
|
|||||||
MAP_MR_POKEMONS_HOUSE EQU $0a
|
MAP_MR_POKEMONS_HOUSE EQU $0a
|
||||||
MAP_ROUTE_31_VIOLET_GATE EQU $0b
|
MAP_ROUTE_31_VIOLET_GATE EQU $0b
|
||||||
|
|
||||||
|
|
||||||
|
; elevator floors
|
||||||
|
_B4F EQU $0
|
||||||
|
_B3F EQU $1
|
||||||
|
_B2F EQU $2
|
||||||
|
_B1F EQU $3
|
||||||
|
_1F EQU $4
|
||||||
|
_2F EQU $5
|
||||||
|
_3F EQU $6
|
||||||
|
_4F EQU $7
|
||||||
|
_5F EQU $8
|
||||||
|
_6F EQU $9
|
||||||
|
_7F EQU $a
|
||||||
|
_8F EQU $b
|
||||||
|
_9F EQU $c
|
||||||
|
_10F EQU $d
|
||||||
|
_11F EQU $e
|
||||||
|
_ROOF EQU $f
|
||||||
|
|
||||||
|
|
||||||
; item constants
|
; item constants
|
||||||
NO_ITEM EQU $00
|
NO_ITEM EQU $00
|
||||||
MASTER_BALL EQU $01
|
MASTER_BALL EQU $01
|
||||||
@ -1689,6 +1709,58 @@ HM_05 EQU $F7
|
|||||||
HM_06 EQU $F8
|
HM_06 EQU $F8
|
||||||
HM_07 EQU $F9
|
HM_07 EQU $F9
|
||||||
|
|
||||||
|
NUM_TMS EQU HM_01 - TM_01 - 2
|
||||||
|
|
||||||
|
; pockets
|
||||||
|
ITEM EQU 1
|
||||||
|
KEY_ITEM EQU 2
|
||||||
|
BALL EQU 3
|
||||||
|
TM_HM EQU 4
|
||||||
|
|
||||||
|
; item actions
|
||||||
|
CANT_SELECT EQU %01000000
|
||||||
|
CANT_TOSS EQU %10000000
|
||||||
|
|
||||||
|
; held item effects
|
||||||
|
HELD_BERRY EQU $01
|
||||||
|
HELD_LEFTOVERS EQU $03
|
||||||
|
HELD_RESTORE_PP EQU $06
|
||||||
|
HELD_CLEANSE_TAG EQU $08
|
||||||
|
HELD_HEAL_POISON EQU $0a
|
||||||
|
HELD_HEAL_FREEZE EQU $0b
|
||||||
|
HELD_HEAL_BURN EQU $0c
|
||||||
|
HELD_HEAL_SLEEP EQU $0d
|
||||||
|
HELD_HEAL_PARALYZE EQU $0e
|
||||||
|
HELD_HEAL_STATUS EQU $0f
|
||||||
|
HELD_HEAL_CONFUSION EQU $10
|
||||||
|
HELD_METAL_POWDER EQU $2a
|
||||||
|
HELD_NORMAL_BOOST EQU $32
|
||||||
|
HELD_FIGHTING_BOOST EQU $33
|
||||||
|
HELD_FLYING_BOOST EQU $34
|
||||||
|
HELD_POISON_BOOST EQU $35
|
||||||
|
HELD_GROUND_BOOST EQU $36
|
||||||
|
HELD_ROCK_BOOST EQU $37
|
||||||
|
HELD_BUG_BOOST EQU $38
|
||||||
|
HELD_GHOST_BOOST EQU $39
|
||||||
|
HELD_FIRE_BOOST EQU $3a
|
||||||
|
HELD_WATER_BOOST EQU $3b
|
||||||
|
HELD_GRASS_BOOST EQU $3c
|
||||||
|
HELD_ELECTRIC_BOOST EQU $3d
|
||||||
|
HELD_PSYCHIC_BOOST EQU $3e
|
||||||
|
HELD_ICE_BOOST EQU $3f
|
||||||
|
HELD_DRAGON_BOOST EQU $40
|
||||||
|
HELD_DARK_BOOST EQU $41
|
||||||
|
HELD_STEEL_BOOST EQU $42
|
||||||
|
HELD_ESCAPE EQU $48
|
||||||
|
HELD_CRITICAL_UP EQU $49
|
||||||
|
HELD_QUICK_CLAW EQU $4a
|
||||||
|
HELD_TRADE_EVOLVE EQU $4b
|
||||||
|
HELD_AMULET_COIN EQU $4c
|
||||||
|
HELD_BRIGHTPOWDER EQU $4d
|
||||||
|
HELD_FOCUS_BAND EQU $4f
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; days of the week
|
; days of the week
|
||||||
SUNDAY EQU $00
|
SUNDAY EQU $00
|
||||||
MONDAY EQU $01
|
MONDAY EQU $01
|
||||||
@ -2336,7 +2408,9 @@ EVOLVE_TRADE EQU 3
|
|||||||
EVOLVE_HAPPINESS EQU 4
|
EVOLVE_HAPPINESS EQU 4
|
||||||
EVOLVE_STAT EQU 5
|
EVOLVE_STAT EQU 5
|
||||||
|
|
||||||
|
BASE_HAPPINESS EQU 70
|
||||||
; happiness evolution triggers
|
; happiness evolution triggers
|
||||||
|
HAPPINESS_TO_EVOLVE EQU 220
|
||||||
TR_ANYTIME EQU 1
|
TR_ANYTIME EQU 1
|
||||||
TR_MORNDAY EQU 2
|
TR_MORNDAY EQU 2
|
||||||
TR_NITE EQU 3
|
TR_NITE EQU 3
|
||||||
@ -3249,6 +3323,221 @@ MUSIC_SUICUNE_BATTLE EQU 100
|
|||||||
MUSIC_BATTLE_TOWER_LOBBY EQU 101
|
MUSIC_BATTLE_TOWER_LOBBY EQU 101
|
||||||
MUSIC_MOBILE_CENTER EQU 102
|
MUSIC_MOBILE_CENTER EQU 102
|
||||||
|
|
||||||
|
MUSIC_MAHOGANY_MART EQU 100 ; grandfathered from gold
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; sfx
|
||||||
|
SFX_DEX_FANFARE_50_79 EQU $00
|
||||||
|
SFX_ITEM EQU $01
|
||||||
|
SFX_CAUGHT_MON EQU $02
|
||||||
|
SFX_POKEBALLS_PLACED_ON_TABLE EQU $03
|
||||||
|
SFX_POTION EQU $04
|
||||||
|
SFX_FULL_HEAL EQU $05
|
||||||
|
SFX_MENU EQU $06
|
||||||
|
SFX_READ_TEXT EQU $07
|
||||||
|
SFX_READ_TEXT_2 EQU $08
|
||||||
|
SFX_DEX_FANFARE_20_49 EQU $09
|
||||||
|
SFX_DEX_FANFARE_80_109 EQU $0a
|
||||||
|
SFX_POISON EQU $0b
|
||||||
|
SFX_GOT_SAFARI_BALLS EQU $0c
|
||||||
|
SFX_BOOT_PC EQU $0d
|
||||||
|
SFX_SHUT_DOWN_PC EQU $0e
|
||||||
|
SFX_CHOOSE_PC_OPTION EQU $0f
|
||||||
|
SFX_ESCAPE_ROPE EQU $10
|
||||||
|
SFX_PUSH_BUTTON EQU $11
|
||||||
|
SFX_SECOND_PART_OF_ITEMFINDER EQU $12
|
||||||
|
SFX_WARP_TO EQU $13
|
||||||
|
SFX_WARP_FROM EQU $14
|
||||||
|
SFX_CHANGE_DEX_MODE EQU $15
|
||||||
|
SFX_JUMP_OVER_LEDGE EQU $16
|
||||||
|
SFX_GRASS_RUSTLE EQU $17
|
||||||
|
SFX_FLY EQU $18
|
||||||
|
SFX_WRONG EQU $19
|
||||||
|
SFX_SQUEAK EQU $1a
|
||||||
|
SFX_STRENGTH EQU $1b
|
||||||
|
SFX_BOAT EQU $1c
|
||||||
|
SFX_WALL_OPEN EQU $1d
|
||||||
|
SFX_PLACE_PUZZLE_PIECE_DOWN EQU $1e
|
||||||
|
SFX_ENTER_DOOR EQU $1f
|
||||||
|
SFX_SWITCH_POKEMON EQU $20
|
||||||
|
SFX_TALLY EQU $21
|
||||||
|
SFX_TRANSACTION EQU $22
|
||||||
|
SFX_EXIT_BUILDING EQU $23
|
||||||
|
SFX_BUMP EQU $24
|
||||||
|
SFX_SAVE EQU $25
|
||||||
|
SFX_POKEFLUTE EQU $26
|
||||||
|
SFX_ELEVATOR_END EQU $27
|
||||||
|
SFX_THROW_BALL EQU $28
|
||||||
|
SFX_BALL_POOF EQU $29
|
||||||
|
SFX_UNKNOWN_3A EQU $2a
|
||||||
|
SFX_RUN EQU $2b
|
||||||
|
SFX_SLOT_MACHINE_START EQU $2c
|
||||||
|
SFX_FANFARE EQU $2d
|
||||||
|
SFX_PECK EQU $2e
|
||||||
|
SFX_KINESIS EQU $2f
|
||||||
|
SFX_LICK EQU $30
|
||||||
|
SFX_POUND EQU $31
|
||||||
|
SFX_MOVE_PUZZLE_PIECE EQU $32
|
||||||
|
SFX_COMET_PUNCH EQU $33
|
||||||
|
SFX_MEGA_PUNCH EQU $34
|
||||||
|
SFX_SCRATCH EQU $35
|
||||||
|
SFX_VICEGRIP EQU $36
|
||||||
|
SFX_RAZOR_WIND EQU $37
|
||||||
|
SFX_CUT EQU $38
|
||||||
|
SFX_WING_ATTACK EQU $39
|
||||||
|
SFX_WHIRLWIND EQU $3a
|
||||||
|
SFX_BIND EQU $3b
|
||||||
|
SFX_VINE_WHIP EQU $3c
|
||||||
|
SFX_DOUBLE_KICK EQU $3d
|
||||||
|
SFX_MEGA_KICK EQU $3e
|
||||||
|
SFX_HEADBUTT EQU $3f
|
||||||
|
SFX_HORN_ATTACK EQU $40
|
||||||
|
SFX_TACKLE EQU $41
|
||||||
|
SFX_POISON_STING EQU $42
|
||||||
|
SFX_POWDER EQU $43
|
||||||
|
SFX_DOUBLESLAP EQU $44
|
||||||
|
SFX_BITE EQU $45
|
||||||
|
SFX_JUMP_KICK EQU $46
|
||||||
|
SFX_STOMP EQU $47
|
||||||
|
SFX_TAIL_WHIP EQU $48
|
||||||
|
SFX_KARATE_CHOP EQU $49
|
||||||
|
SFX_SUBMISSION EQU $4a
|
||||||
|
SFX_WATER_GUN EQU $4b
|
||||||
|
SFX_SWORDS_DANCE EQU $4c
|
||||||
|
SFX_THUNDER EQU $4d
|
||||||
|
SFX_SUPERSONIC EQU $4e
|
||||||
|
SFX_LEER EQU $4f
|
||||||
|
SFX_EMBER EQU $50
|
||||||
|
SFX_BUBBLEBEAM EQU $51
|
||||||
|
SFX_HYDRO_PUMP EQU $52
|
||||||
|
SFX_SURF EQU $53
|
||||||
|
SFX_PSYBEAM EQU $54
|
||||||
|
SFX_CHARGE EQU $55
|
||||||
|
SFX_THUNDERSHOCK EQU $56
|
||||||
|
SFX_PSYCHIC EQU $57
|
||||||
|
SFX_SCREECH EQU $58
|
||||||
|
SFX_BONE_CLUB EQU $59
|
||||||
|
SFX_SHARPEN EQU $5a
|
||||||
|
SFX_EGG_BOMB EQU $5b
|
||||||
|
SFX_SING EQU $5c
|
||||||
|
SFX_HYPER_BEAM EQU $5d
|
||||||
|
SFX_SHINE EQU $5e
|
||||||
|
SFX_UNKNOWN_5F EQU $5f
|
||||||
|
SFX_UNKNOWN_60 EQU $60
|
||||||
|
SFX_UNKNOWN_61 EQU $61
|
||||||
|
SFX_UNKNOWN_62 EQU $62
|
||||||
|
SFX_UNKNOWN_63 EQU $63
|
||||||
|
SFX_BURN EQU $64
|
||||||
|
SFX_TITLE_SCREEN_ENTRANCE EQU $65
|
||||||
|
SFX_UNKNOWN_66 EQU $66
|
||||||
|
SFX_GET_COIN_FROM_SLOTS EQU $67
|
||||||
|
SFX_PAY_DAY EQU $68
|
||||||
|
SFX_METRONOME EQU $69
|
||||||
|
SFX_CALL EQU $6a
|
||||||
|
SFX_HANG_UP EQU $6b
|
||||||
|
SFX_NO_SIGNAL EQU $6c
|
||||||
|
SFX_SANDSTORM EQU $6d
|
||||||
|
SFX_ELEVATOR EQU $6e
|
||||||
|
SFX_PROTECT EQU $6f
|
||||||
|
SFX_SKETCH EQU $70
|
||||||
|
SFX_RAIN_DANCE EQU $71
|
||||||
|
SFX_AEROBLAST EQU $72
|
||||||
|
SFX_SPARK EQU $73
|
||||||
|
SFX_CURSE EQU $74
|
||||||
|
SFX_RAGE EQU $75
|
||||||
|
SFX_THIEF EQU $76
|
||||||
|
SFX_THIEF_2 EQU $77
|
||||||
|
SFX_SPIDER_WEB EQU $78
|
||||||
|
SFX_MIND_READER EQU $79
|
||||||
|
SFX_NIGHTMARE EQU $7a
|
||||||
|
SFX_SNORE EQU $7b
|
||||||
|
SFX_SWEET_KISS EQU $7c
|
||||||
|
SFX_SWEET_KISS_2 EQU $7d
|
||||||
|
SFX_BELLY_DRUM EQU $7e
|
||||||
|
SFX_UNKNOWN_7F EQU $7f
|
||||||
|
SFX_SLUDGE_BOMB EQU $80
|
||||||
|
SFX_FORESIGHT EQU $81
|
||||||
|
SFX_SPITE EQU $82
|
||||||
|
SFX_OUTRAGE EQU $83
|
||||||
|
SFX_PERISH_SONG EQU $84
|
||||||
|
SFX_GIGA_DRAIN EQU $85
|
||||||
|
SFX_ATTRACT EQU $86
|
||||||
|
SFX_KINESIS_2 EQU $87
|
||||||
|
SFX_ZAP_CANNON EQU $88
|
||||||
|
SFX_MEAN_LOOK EQU $89
|
||||||
|
SFX_HEAL_BELL EQU $8a
|
||||||
|
SFX_RETURN EQU $8b
|
||||||
|
SFX_EXP_BAR EQU $8c
|
||||||
|
SFX_MILK_DRINK EQU $8d
|
||||||
|
SFX_PRESENT EQU $8e
|
||||||
|
SFX_MORNING_SUN EQU $8f
|
||||||
|
SFX_LEVEL_UP EQU $90
|
||||||
|
SFX_KEY_ITEM EQU $91
|
||||||
|
SFX_FANFARE_2 EQU $92
|
||||||
|
SFX_REGISTER_PHONE_# EQU $93
|
||||||
|
SFX_3RD_PLACE EQU $94
|
||||||
|
SFX_GET_EGG_FROM_DAYCARE_MAN EQU $95
|
||||||
|
SFX_GET_EGG_FROM_DAYCARE_LADY EQU $96
|
||||||
|
SFX_MOVE_DELETED EQU $97
|
||||||
|
SFX_2ND_PLACE EQU $98
|
||||||
|
SFX_1ST_PLACE EQU $99
|
||||||
|
SFX_CHOOSE_A_CARD EQU $9a
|
||||||
|
SFX_GET_TM EQU $9b
|
||||||
|
SFX_GET_BADGE EQU $9c
|
||||||
|
SFX_QUIT_SLOTS EQU $9d
|
||||||
|
SFX_EGG_CRACK EQU $9e
|
||||||
|
SFX_DEX_FANFARE_LESS_THAN_20 EQU $9f
|
||||||
|
SFX_DEX_FANFARE_140_169 EQU $a0
|
||||||
|
SFX_DEX_FANFARE_170_199 EQU $a1
|
||||||
|
SFX_DEX_FANFARE_200_229 EQU $a2
|
||||||
|
SFX_DEX_FANFARE_230_PLUS EQU $a3
|
||||||
|
SFX_EVOLVED EQU $a4
|
||||||
|
SFX_MASTER_BALL EQU $a5
|
||||||
|
SFX_EGG_HATCH EQU $a6
|
||||||
|
SFX_GS_INTRO_CHARIZARD_FIREBALL EQU $a7
|
||||||
|
SFX_GS_INTRO_POKEMON_APPEARS EQU $a8
|
||||||
|
SFX_FLASH EQU $a9
|
||||||
|
SFX_GAME_FREAK_LOGO_GS EQU $aa
|
||||||
|
SFX_NOT_VERY_EFFECTIVE EQU $ab
|
||||||
|
SFX_DAMAGE EQU $ac
|
||||||
|
SFX_SUPER_EFFECTIVE EQU $ad
|
||||||
|
SFX_BALL_BOUNCE EQU $ae
|
||||||
|
SFX_MOONLIGHT EQU $af
|
||||||
|
SFX_ENCORE EQU $b0
|
||||||
|
SFX_BEAT_UP EQU $b1
|
||||||
|
SFX_BATON_PASS EQU $b2
|
||||||
|
SFX_BALL_WIGGLE EQU $b3
|
||||||
|
SFX_SWEET_SCENT EQU $b4
|
||||||
|
SFX_SWEET_SCENT_2 EQU $b5
|
||||||
|
SFX_HIT_END_OF_EXP_BAR EQU $b6
|
||||||
|
SFX_GIVE_TRADEMON EQU $b7
|
||||||
|
SFX_GET_TRADEMON EQU $b8
|
||||||
|
SFX_TRAIN_ARRIVED EQU $b9
|
||||||
|
SFX_STOP_SLOT EQU $ba
|
||||||
|
SFX_2_BOOPS EQU $bb
|
||||||
|
SFX_GLASS_TING EQU $bc
|
||||||
|
SFX_GLASS_TING_2 EQU $bd
|
||||||
|
SFX_INTRO_UNOWN_1 EQU $be
|
||||||
|
SFX_INTRO_UNOWN_2 EQU $bf
|
||||||
|
SFX_INTRO_UNOWN_3 EQU $c0
|
||||||
|
SFX_DITTO_POP_UP EQU $c1
|
||||||
|
SFX_DITTO_TRANSFORM EQU $c2
|
||||||
|
SFX_INTRO_SUICUNE_1 EQU $c3
|
||||||
|
SFX_INTRO_PICHU EQU $c4
|
||||||
|
SFX_INTRO_SUICUNE_2 EQU $c5
|
||||||
|
SFX_INTRO_SUICUNE_3 EQU $c6
|
||||||
|
SFX_DITTO_BOUNCE EQU $c7
|
||||||
|
SFX_INTRO_SUICUNE_4 EQU $c8
|
||||||
|
SFX_GAME_FREAK_PRESENTS EQU $c9
|
||||||
|
SFX_TINGLE EQU $ca
|
||||||
|
SFX_UNKNOWN_CB EQU $cb
|
||||||
|
SFX_TWO_PC_BEEPS EQU $cc
|
||||||
|
SFX_4_NOTE_DITTY EQU $cd
|
||||||
|
SFX_TWINKLE EQU $ce
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; sound
|
; sound
|
||||||
_4CH1 EQU $c0
|
_4CH1 EQU $c0
|
||||||
_3CH1 EQU $80
|
_3CH1 EQU $80
|
||||||
@ -3319,47 +3608,57 @@ NOTE_16 EQU $0f
|
|||||||
; specials
|
; specials
|
||||||
NUM_SPECIALS EQU $a8
|
NUM_SPECIALS EQU $a8
|
||||||
|
|
||||||
SPECIAL_UPDATESPRITETILES EQU $0038
|
SPECIAL_UPDATESPRITETILES EQU $0038
|
||||||
|
|
||||||
SPECIAL_WAITSFX EQU $003b
|
SPECIAL_WAITSFX EQU $003b
|
||||||
SPECIAL_BIKESURFMUSIC EQU $003c
|
SPECIAL_BIKESURFMUSIC EQU $003c
|
||||||
|
|
||||||
SPECIAL_LOADFACESTEP EQU $003f
|
SPECIAL_LOADFACESTEP EQU $003f
|
||||||
|
|
||||||
SPECIAL_SNORLAXAWAKE EQU $0060
|
SPECIAL_GIVESHUCKLE EQU $004b
|
||||||
|
|
||||||
SPECIAL_GAMEBOYCHECK EQU $0066
|
SPECIAL_SNORLAXAWAKE EQU $0060
|
||||||
SPECIAL_TRAINERHOUSE EQU $0067
|
|
||||||
|
|
||||||
SPECIAL_RUSTLETREE EQU $006a
|
SPECIAL_GAMEBOYCHECK EQU $0066
|
||||||
|
SPECIAL_TRAINERHOUSE EQU $0067
|
||||||
|
|
||||||
SPECIAL_ODDEGG EQU $007d
|
SPECIAL_RUSTLETREE EQU $006a
|
||||||
|
|
||||||
SPECIAL_MOVETUTOR EQU $0083
|
SPECIAL_ODDEGG EQU $007d
|
||||||
SPECIAL_OMANYTECHAMBER EQU $0084
|
|
||||||
|
|
||||||
SPECIAL_RUINCHAMBERWALL EQU $0087
|
SPECIAL_MOVETUTOR EQU $0083
|
||||||
|
SPECIAL_OMANYTECHAMBER EQU $0084
|
||||||
|
|
||||||
SPECIAL_HOOHCHAMBER EQU $008d
|
SPECIAL_RUINCHAMBERWALL EQU $0087
|
||||||
|
|
||||||
SPECIAL_CELEBI EQU $008f
|
SPECIAL_HOOHCHAMBER EQU $008d
|
||||||
|
|
||||||
SPECIAL_AFTERCELEBI EQU $0090
|
SPECIAL_CELEBI EQU $008f
|
||||||
SPECIAL_POKESEER EQU $0091
|
|
||||||
|
|
||||||
SPECIAL_DRATINI EQU $0094
|
SPECIAL_AFTERCELEBI EQU $0090
|
||||||
|
SPECIAL_POKESEER EQU $0091
|
||||||
|
|
||||||
SPECIAL_BEASTSCHECK EQU $0096
|
SPECIAL_DRATINI EQU $0094
|
||||||
SPECIAL_MONCHECK EQU $0097
|
|
||||||
|
SPECIAL_BEASTSCHECK EQU $0096
|
||||||
|
SPECIAL_MONCHECK EQU $0097
|
||||||
|
|
||||||
|
|
||||||
; predefs
|
; predefs
|
||||||
|
PREDEF_FLAG EQU $03
|
||||||
PREDEF_FILLPP EQU $05
|
PREDEF_FILLPP EQU $05
|
||||||
|
PREDEF_ADDPARTYMON EQU $06
|
||||||
PREDEF_FILLSTATS EQU $0C
|
PREDEF_FILLSTATS EQU $0C
|
||||||
PREDEF_FILLMOVES EQU $1B
|
PREDEF_FILLMOVES EQU $1B
|
||||||
PREDEF_GETUNOWNLETTER EQU $2D
|
PREDEF_GETUNOWNLETTER EQU $2D
|
||||||
|
|
||||||
|
|
||||||
|
; flag manipulation
|
||||||
|
RESET_FLAG EQU 0
|
||||||
|
SET_FLAG EQU 1
|
||||||
|
CHECK_FLAG EQU 2
|
||||||
|
|
||||||
|
|
||||||
; script vars
|
; script vars
|
||||||
NUM_VARS EQU $1b
|
NUM_VARS EQU $1b
|
||||||
VAR_MOVEMENT EQU $08
|
VAR_MOVEMENT EQU $08
|
||||||
@ -3416,6 +3715,256 @@ BATTLETYPE_FORCEITEM EQU $0a
|
|||||||
BATTLETYPE_SUICUNE EQU $0c
|
BATTLETYPE_SUICUNE EQU $0c
|
||||||
|
|
||||||
|
|
||||||
|
; battle variables
|
||||||
|
BATTLE_VARS_SUBSTATUS1 EQU 0
|
||||||
|
BATTLE_VARS_SUBSTATUS2 EQU 1
|
||||||
|
BATTLE_VARS_SUBSTATUS3 EQU 2
|
||||||
|
BATTLE_VARS_SUBSTATUS4 EQU 3
|
||||||
|
BATTLE_VARS_SUBSTATUS5 EQU 4
|
||||||
|
BATTLE_VARS_SUBSTATUS1_OPP EQU 5
|
||||||
|
BATTLE_VARS_SUBSTATUS2_OPP EQU 6
|
||||||
|
BATTLE_VARS_SUBSTATUS3_OPP EQU 7
|
||||||
|
BATTLE_VARS_SUBSTATUS4_OPP EQU 8
|
||||||
|
BATTLE_VARS_SUBSTATUS5_OPP EQU 9
|
||||||
|
BATTLE_VARS_STATUS EQU 10
|
||||||
|
BATTLE_VARS_STATUS_OPP EQU 11
|
||||||
|
BATTLE_VARS_MOVE_ANIM EQU 12
|
||||||
|
BATTLE_VARS_MOVE_EFFECT EQU 13
|
||||||
|
BATTLE_VARS_MOVE_POWER EQU 14
|
||||||
|
BATTLE_VARS_MOVE_TYPE EQU 15
|
||||||
|
BATTLE_VARS_MOVE EQU 16
|
||||||
|
BATTLE_VARS_LAST_COUNTER_MOVE EQU 17
|
||||||
|
BATTLE_VARS_LAST_COUNTER_MOVE_OPP EQU 18
|
||||||
|
BATTLE_VARS_LAST_MOVE EQU 19
|
||||||
|
BATTLE_VARS_LAST_MOVE_OPP EQU 20
|
||||||
|
|
||||||
|
|
||||||
|
SUBSTATUS_IN_LOVE EQU 7
|
||||||
|
SUBSTATUS_ENCORED EQU 6
|
||||||
|
SUBSTATUS_ENDURE EQU 5
|
||||||
|
SUBSTATUS_PERISH EQU 4
|
||||||
|
SUBSTATUS_IDENTIFIED EQU 3
|
||||||
|
SUBSTATUS_PROTECT EQU 2
|
||||||
|
SUBSTATUS_CURSE EQU 1
|
||||||
|
SUBSTATUS_NIGHTMARE EQU 0
|
||||||
|
|
||||||
|
SUBSTATUS_CURLED EQU 0
|
||||||
|
|
||||||
|
SUBSTATUS_CONFUSED EQU 7
|
||||||
|
SUBSTATUS_FLYING EQU 6
|
||||||
|
SUBSTATUS_UNDERGROUND EQU 5
|
||||||
|
SUBSTATUS_CHARGED EQU 4
|
||||||
|
SUBSTATUS_FLINCHED EQU 3
|
||||||
|
SUBSTATUS_ROLLOUT EQU 1
|
||||||
|
SUBSTATUS_BIDE EQU 0
|
||||||
|
|
||||||
|
SUBSTATUS_LEECH_SEED EQU 7
|
||||||
|
SUBSTATUS_RAGE EQU 6
|
||||||
|
SUBSTATUS_RECHARGE EQU 5
|
||||||
|
SUBSTATUS_SUBSTITUTE EQU 4
|
||||||
|
SUBSTATUS_FOCUS_ENERGY EQU 2
|
||||||
|
SUBSTATUS_MIST EQU 1
|
||||||
|
SUBSTATUS_UNLEASH EQU 0
|
||||||
|
|
||||||
|
SUBSTATUS_CANT_RUN EQU 7
|
||||||
|
SUBSTATUS_DESTINY_BOND EQU 6
|
||||||
|
SUBSTATUS_LOCK_ON EQU 5
|
||||||
|
SUBSTATUS_TOXIC EQU 0
|
||||||
|
|
||||||
|
|
||||||
|
SCREENS_REFLECT EQU 4
|
||||||
|
SCREENS_LIGHT_SCREEN EQU 3
|
||||||
|
SCREENS_SAFEGUARD EQU 2
|
||||||
|
SCREENS_SPIKES EQU 0
|
||||||
|
|
||||||
|
|
||||||
|
; status
|
||||||
|
SLP EQU 7 ; 7 turns
|
||||||
|
|
||||||
|
PSN EQU 3
|
||||||
|
BRN EQU 4
|
||||||
|
FRZ EQU 5
|
||||||
|
PAR EQU 6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; move effects
|
||||||
|
EFFECT_NORMAL_HIT EQU $00
|
||||||
|
EFFECT_SLEEP EQU $01
|
||||||
|
EFFECT_POISON_HIT EQU $02
|
||||||
|
EFFECT_LEECH_HIT EQU $03
|
||||||
|
EFFECT_BURN_HIT EQU $04
|
||||||
|
EFFECT_FREEZE_HIT EQU $05
|
||||||
|
EFFECT_PARALYZE_HIT EQU $06
|
||||||
|
EFFECT_EXPLOSION EQU $07
|
||||||
|
EFFECT_DREAM_EATER EQU $08
|
||||||
|
EFFECT_MIRROR_MOVE EQU $09
|
||||||
|
EFFECT_ATTACK_UP EQU $0a
|
||||||
|
EFFECT_DEFENSE_UP EQU $0b
|
||||||
|
EFFECT_SPEED_UP EQU $0c
|
||||||
|
EFFECT_SP_ATTACK_UP EQU $0d
|
||||||
|
EFFECT_SP_DEFENSE_UP EQU $0e
|
||||||
|
EFFECT_ACCURACY_UP EQU $0f
|
||||||
|
EFFECT_EVASION_UP EQU $10
|
||||||
|
EFFECT_ALWAYS_HIT EQU $11
|
||||||
|
EFFECT_ATTACK_DOWN EQU $12
|
||||||
|
EFFECT_DEFENSE_DOWN EQU $13
|
||||||
|
EFFECT_SPEED_DOWN EQU $14
|
||||||
|
EFFECT_SP_ATTACK_DOWN EQU $15
|
||||||
|
EFFECT_SP_DEFENSE_DOWN EQU $16
|
||||||
|
EFFECT_ACCURACY_DOWN EQU $17
|
||||||
|
EFFECT_EVASION_DOWN EQU $18
|
||||||
|
EFFECT_HAZE EQU $19
|
||||||
|
EFFECT_BIDE EQU $1a
|
||||||
|
EFFECT_RAMPAGE EQU $1b
|
||||||
|
EFFECT_WHIRLWIND EQU $1c
|
||||||
|
EFFECT_MULTI_HIT EQU $1d
|
||||||
|
EFFECT_CONVERSION EQU $1e
|
||||||
|
EFFECT_FLINCH_HIT EQU $1f
|
||||||
|
EFFECT_HEAL EQU $20
|
||||||
|
EFFECT_TOXIC EQU $21
|
||||||
|
EFFECT_PAY_DAY EQU $22
|
||||||
|
EFFECT_LIGHT_SCREEN EQU $23
|
||||||
|
EFFECT_TRI_ATTACK EQU $24
|
||||||
|
EFFECT_UNUSED_25 EQU $25 ; unused
|
||||||
|
EFFECT_OHKO EQU $26
|
||||||
|
EFFECT_RAZOR_WIND EQU $27
|
||||||
|
EFFECT_SUPER_FANG EQU $28
|
||||||
|
EFFECT_STATIC_DAMAGE EQU $29
|
||||||
|
EFFECT_BIND EQU $2a
|
||||||
|
EFFECT_UNUSED_2B EQU $2b ; unused
|
||||||
|
EFFECT_DOUBLE_HIT EQU $2c
|
||||||
|
EFFECT_JUMP_KICK EQU $2d
|
||||||
|
EFFECT_MIST EQU $2e
|
||||||
|
EFFECT_FOCUS_ENERGY EQU $2f
|
||||||
|
EFFECT_RECOIL_HIT EQU $30
|
||||||
|
EFFECT_CONFUSE EQU $31
|
||||||
|
EFFECT_ATTACK_UP_2 EQU $32
|
||||||
|
EFFECT_DEFENSE_UP_2 EQU $33
|
||||||
|
EFFECT_SPEED_UP_2 EQU $34
|
||||||
|
EFFECT_SP_ATTACK_UP_2 EQU $35
|
||||||
|
EFFECT_SP_DEFENSE_UP_2 EQU $36
|
||||||
|
EFFECT_ACCURACY_UP_2 EQU $37
|
||||||
|
EFFECT_EVASION_UP_2 EQU $38
|
||||||
|
EFFECT_TRANSFORM EQU $39
|
||||||
|
EFFECT_ATTACK_DOWN_2 EQU $3a
|
||||||
|
EFFECT_DEFENSE_DOWN_2 EQU $3b
|
||||||
|
EFFECT_SPEED_DOWN_2 EQU $3c
|
||||||
|
EFFECT_SP_ATTACK_DOWN_2 EQU $3d
|
||||||
|
EFFECT_SP_DEFENSE_DOWN_2 EQU $3e
|
||||||
|
EFFECT_ACCURACY_DOWN_2 EQU $3f
|
||||||
|
EFFECT_EVASION_DOWN_2 EQU $40
|
||||||
|
EFFECT_REFLECT EQU $41
|
||||||
|
EFFECT_POISON EQU $42
|
||||||
|
EFFECT_PARALYZE EQU $43
|
||||||
|
EFFECT_ATTACK_DOWN_HIT EQU $44
|
||||||
|
EFFECT_DEFENSE_DOWN_HIT EQU $45
|
||||||
|
EFFECT_SPEED_DOWN_HIT EQU $46
|
||||||
|
EFFECT_SP_ATTACK_DOWN_HIT EQU $47
|
||||||
|
EFFECT_SP_DEFENSE_DOWN_HIT EQU $48
|
||||||
|
EFFECT_ACCURACY_DOWN_HIT EQU $49
|
||||||
|
EFFECT_EVASION_DOWN_HIT EQU $4a
|
||||||
|
EFFECT_SKY_ATTACK EQU $4b
|
||||||
|
EFFECT_CONFUSE_HIT EQU $4c
|
||||||
|
EFFECT_TWINEEDLE EQU $4d
|
||||||
|
EFFECT_UNUSED_4E EQU $4e ; unused
|
||||||
|
EFFECT_SUBSTITUTE EQU $4f
|
||||||
|
EFFECT_HYPER_BEAM EQU $50
|
||||||
|
EFFECT_RAGE EQU $51
|
||||||
|
EFFECT_MIMIC EQU $52
|
||||||
|
EFFECT_METRONOME EQU $53
|
||||||
|
EFFECT_LEECH_SEED EQU $54
|
||||||
|
EFFECT_SPLASH EQU $55
|
||||||
|
EFFECT_DISABLE EQU $56
|
||||||
|
EFFECT_LEVEL_DAMAGE EQU $57
|
||||||
|
EFFECT_PSYWAVE EQU $58
|
||||||
|
EFFECT_COUNTER EQU $59
|
||||||
|
EFFECT_ENCORE EQU $5a
|
||||||
|
EFFECT_PAIN_SPLIT EQU $5b
|
||||||
|
EFFECT_SNORE EQU $5c
|
||||||
|
EFFECT_CONVERSION2 EQU $5d
|
||||||
|
EFFECT_LOCK_ON EQU $5e
|
||||||
|
EFFECT_SKETCH EQU $5f
|
||||||
|
EFFECT_DEFROST_OPPONENT EQU $60
|
||||||
|
EFFECT_SLEEP_TALK EQU $61
|
||||||
|
EFFECT_DESTINY_BOND EQU $62
|
||||||
|
EFFECT_REVERSAL EQU $63
|
||||||
|
EFFECT_SPITE EQU $64
|
||||||
|
EFFECT_FALSE_SWIPE EQU $65
|
||||||
|
EFFECT_HEAL_BELL EQU $66
|
||||||
|
EFFECT_PRIORITY_HIT EQU $67
|
||||||
|
EFFECT_TRIPLE_KICK EQU $68
|
||||||
|
EFFECT_THIEF EQU $69
|
||||||
|
EFFECT_MEAN_LOOK EQU $6a
|
||||||
|
EFFECT_NIGHTMARE EQU $6b
|
||||||
|
EFFECT_FLAME_WHEEL EQU $6c
|
||||||
|
EFFECT_CURSE EQU $6d
|
||||||
|
EFFECT_UNUSED_6E EQU $6e ; unused
|
||||||
|
EFFECT_PROTECT EQU $6f
|
||||||
|
EFFECT_SPIKES EQU $70
|
||||||
|
EFFECT_FORESIGHT EQU $71
|
||||||
|
EFFECT_PERISH_SONG EQU $72
|
||||||
|
EFFECT_SANDSTORM EQU $73
|
||||||
|
EFFECT_ENDURE EQU $74
|
||||||
|
EFFECT_ROLLOUT EQU $75
|
||||||
|
EFFECT_SWAGGER EQU $76
|
||||||
|
EFFECT_FURY_CUTTER EQU $77
|
||||||
|
EFFECT_ATTRACT EQU $78
|
||||||
|
EFFECT_RETURN EQU $79
|
||||||
|
EFFECT_PRESENT EQU $7a
|
||||||
|
EFFECT_FRUSTRATION EQU $7b
|
||||||
|
EFFECT_SAFEGUARD EQU $7c
|
||||||
|
EFFECT_SACRED_FIRE EQU $7d
|
||||||
|
EFFECT_MAGNITUDE EQU $7e
|
||||||
|
EFFECT_BATON_PASS EQU $7f
|
||||||
|
EFFECT_PURSUIT EQU $80
|
||||||
|
EFFECT_RAPID_SPIN EQU $81
|
||||||
|
EFFECT_UNUSED_82 EQU $82 ; unused
|
||||||
|
EFFECT_UNUSED_83 EQU $83 ; unused
|
||||||
|
EFFECT_MORNING_SUN EQU $84
|
||||||
|
EFFECT_SYNTHESIS EQU $85
|
||||||
|
EFFECT_MOONLIGHT EQU $86
|
||||||
|
EFFECT_HIDDEN_POWER EQU $87
|
||||||
|
EFFECT_RAIN_DANCE EQU $88
|
||||||
|
EFFECT_SUNNY_DAY EQU $89
|
||||||
|
EFFECT_STEEL_WING EQU $8a
|
||||||
|
EFFECT_METAL_CLAW EQU $8b
|
||||||
|
EFFECT_ANCIENTPOWER EQU $8c
|
||||||
|
EFFECT_FAKE_OUT EQU $8d
|
||||||
|
EFFECT_BELLY_DRUM EQU $8e
|
||||||
|
EFFECT_PSYCH_UP EQU $8f
|
||||||
|
EFFECT_MIRROR_COAT EQU $90
|
||||||
|
EFFECT_SKULL_BASH EQU $91
|
||||||
|
EFFECT_TWISTER EQU $92
|
||||||
|
EFFECT_EARTHQUAKE EQU $93
|
||||||
|
EFFECT_FUTURE_SIGHT EQU $94
|
||||||
|
EFFECT_GUST EQU $95
|
||||||
|
EFFECT_STOMP EQU $96
|
||||||
|
EFFECT_SOLARBEAM EQU $97
|
||||||
|
EFFECT_THUNDER EQU $98
|
||||||
|
EFFECT_TELEPORT EQU $99
|
||||||
|
EFFECT_BEAT_UP EQU $9a
|
||||||
|
EFFECT_FLY EQU $9b
|
||||||
|
EFFECT_DEFENSE_CURL EQU $9c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; battle animations
|
||||||
|
; animations below fc are 1:1 with move constants
|
||||||
|
ANIM_CONFUSED EQU $103
|
||||||
|
ANIM_SLEEP EQU $104
|
||||||
|
|
||||||
|
ANIM_INLOVE EQU $10a
|
||||||
|
|
||||||
|
|
||||||
|
WEATHER_RAIN EQU 1
|
||||||
|
WEATHER_SUN EQU 2
|
||||||
|
WEATHER_SANDSTORM EQU 3
|
||||||
|
WEATHER_RAIN_END EQU 4
|
||||||
|
WEATHER_SUN_END EQU 5
|
||||||
|
WEATHER_SANDSTORM_END EQU 6
|
||||||
|
|
||||||
|
|
||||||
; joypad
|
; joypad
|
||||||
BUTTONS EQU %00010000
|
BUTTONS EQU %00010000
|
||||||
D_PAD EQU %00100000
|
D_PAD EQU %00100000
|
||||||
|
@ -98,6 +98,8 @@ chars = {
|
|||||||
0xE9: "&",
|
0xE9: "&",
|
||||||
0xEA: "é",
|
0xEA: "é",
|
||||||
0xEB: "→",
|
0xEB: "→",
|
||||||
|
0xED: "▶",
|
||||||
|
0xEE: "▼",
|
||||||
0xEF: "♂",
|
0xEF: "♂",
|
||||||
0xF0: "¥",
|
0xF0: "¥",
|
||||||
0xF1: "×",
|
0xF1: "×",
|
||||||
|
@ -1471,7 +1471,7 @@ ScriptPointerLabelAfterBank.parse = _parse_script_pointer_bytes
|
|||||||
class PointerLabelToScriptPointer(PointerLabelParam):
|
class PointerLabelToScriptPointer(PointerLabelParam):
|
||||||
def parse(self):
|
def parse(self):
|
||||||
PointerLabelParam.parse(self)
|
PointerLabelParam.parse(self)
|
||||||
address = calculate_pointer_from_bytes_at(self.address, bank=self.bank)
|
address = calculate_pointer_from_bytes_at(self.parsed_address, bank=self.bank)
|
||||||
address2 = calculate_pointer_from_bytes_at(address, bank="reverse") # maybe not "reverse"?
|
address2 = calculate_pointer_from_bytes_at(address, bank="reverse") # maybe not "reverse"?
|
||||||
self.script = parse_script_engine_script_at(address2, origin=False, map_group=self.map_group, map_id=self.map_id, force=self.force, debug=self.debug)
|
self.script = parse_script_engine_script_at(address2, origin=False, map_group=self.map_group, map_id=self.map_id, force=self.force, debug=self.debug)
|
||||||
|
|
||||||
@ -2912,7 +2912,7 @@ music_command_enders = [0xEA, 0xEB, 0xEE, 0xFC, 0xFF,]
|
|||||||
# special case for 0xFD (if loopchannel.count = 0, break)
|
# special case for 0xFD (if loopchannel.count = 0, break)
|
||||||
|
|
||||||
def create_music_command_classes(debug=False):
|
def create_music_command_classes(debug=False):
|
||||||
klasses = [GivePoke]
|
klasses = []
|
||||||
for (byte, cmd) in music_commands_new.items():
|
for (byte, cmd) in music_commands_new.items():
|
||||||
cmd_name = cmd[0].replace(" ", "_")
|
cmd_name = cmd[0].replace(" ", "_")
|
||||||
params = {"id": byte, "size": 1, "end": byte in music_command_enders, "macro_name": cmd_name}
|
params = {"id": byte, "size": 1, "end": byte in music_command_enders, "macro_name": cmd_name}
|
||||||
@ -2938,6 +2938,221 @@ def create_music_command_classes(debug=False):
|
|||||||
return klasses
|
return klasses
|
||||||
music_classes = create_music_command_classes()
|
music_classes = create_music_command_classes()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
effect_commands = {
|
||||||
|
0x1: ['checkturn'],
|
||||||
|
0x2: ['checkobedience'],
|
||||||
|
0x3: ['usedmovetext'],
|
||||||
|
0x4: ['doturn'],
|
||||||
|
0x5: ['critical'],
|
||||||
|
0x6: ['damagestats'],
|
||||||
|
0x7: ['stab'],
|
||||||
|
0x8: ['damagevariation'],
|
||||||
|
0x9: ['checkhit'],
|
||||||
|
0xa: ['effect0x0a'],
|
||||||
|
0xb: ['effect0x0b'],
|
||||||
|
0xc: ['effect0x0c'],
|
||||||
|
0xd: ['resulttext'],
|
||||||
|
0xe: ['checkfaint'],
|
||||||
|
0xf: ['criticaltext'],
|
||||||
|
0x10: ['supereffectivetext'],
|
||||||
|
0x11: ['checkdestinybond'],
|
||||||
|
0x12: ['buildopponentrage'],
|
||||||
|
0x13: ['poisontarget'],
|
||||||
|
0x14: ['sleeptarget'],
|
||||||
|
0x15: ['draintarget'],
|
||||||
|
0x16: ['eatdream'],
|
||||||
|
0x17: ['burntarget'],
|
||||||
|
0x18: ['freezetarget'],
|
||||||
|
0x19: ['paralyzetarget'],
|
||||||
|
0x1a: ['selfdestruct'],
|
||||||
|
0x1b: ['mirrormove'],
|
||||||
|
0x1c: ['statup'],
|
||||||
|
0x1d: ['statdown'],
|
||||||
|
0x1e: ['payday'],
|
||||||
|
0x1f: ['conversion'],
|
||||||
|
0x20: ['resetstats'],
|
||||||
|
0x21: ['storeenergy'],
|
||||||
|
0x22: ['unleashenergy'],
|
||||||
|
0x23: ['forceswitch'],
|
||||||
|
0x24: ['endloop'],
|
||||||
|
0x25: ['flinchtarget'],
|
||||||
|
0x26: ['ohko'],
|
||||||
|
0x27: ['recoil'],
|
||||||
|
0x28: ['mist'],
|
||||||
|
0x29: ['focusenergy'],
|
||||||
|
0x2a: ['confuse'],
|
||||||
|
0x2b: ['confusetarget'],
|
||||||
|
0x2c: ['heal'],
|
||||||
|
0x2d: ['transform'],
|
||||||
|
0x2e: ['screen'],
|
||||||
|
0x2f: ['poison'],
|
||||||
|
0x30: ['paralyze'],
|
||||||
|
0x31: ['substitute'],
|
||||||
|
0x32: ['rechargenextturn'],
|
||||||
|
0x33: ['mimic'],
|
||||||
|
0x34: ['metronome'],
|
||||||
|
0x35: ['leechseed'],
|
||||||
|
0x36: ['splash'],
|
||||||
|
0x37: ['disable'],
|
||||||
|
0x38: ['cleartext'],
|
||||||
|
0x39: ['charge'],
|
||||||
|
0x3a: ['checkcharge'],
|
||||||
|
0x3b: ['traptarget'],
|
||||||
|
0x3c: ['effect0x3c'],
|
||||||
|
0x3d: ['rampage'],
|
||||||
|
0x3e: ['checkrampage'],
|
||||||
|
0x3f: ['constantdamage'],
|
||||||
|
0x40: ['counter'],
|
||||||
|
0x41: ['encore'],
|
||||||
|
0x42: ['painsplit'],
|
||||||
|
0x43: ['snore'],
|
||||||
|
0x44: ['conversion2'],
|
||||||
|
0x45: ['lockon'],
|
||||||
|
0x46: ['sketch'],
|
||||||
|
0x47: ['defrostopponent'],
|
||||||
|
0x48: ['sleeptalk'],
|
||||||
|
0x49: ['destinybond'],
|
||||||
|
0x4a: ['spite'],
|
||||||
|
0x4b: ['falseswipe'],
|
||||||
|
0x4c: ['healbell'],
|
||||||
|
0x4d: ['kingsrock'],
|
||||||
|
0x4e: ['triplekick'],
|
||||||
|
0x4f: ['kickcounter'],
|
||||||
|
0x50: ['thief'],
|
||||||
|
0x51: ['arenatrap'],
|
||||||
|
0x52: ['nightmare'],
|
||||||
|
0x53: ['defrost'],
|
||||||
|
0x54: ['curse'],
|
||||||
|
0x55: ['protect'],
|
||||||
|
0x56: ['spikes'],
|
||||||
|
0x57: ['foresight'],
|
||||||
|
0x58: ['perishsong'],
|
||||||
|
0x59: ['startsandstorm'],
|
||||||
|
0x5a: ['endure'],
|
||||||
|
0x5b: ['checkcurl'],
|
||||||
|
0x5c: ['rolloutpower'],
|
||||||
|
0x5d: ['effect0x5d'],
|
||||||
|
0x5e: ['furycutter'],
|
||||||
|
0x5f: ['attract'],
|
||||||
|
0x60: ['happinesspower'],
|
||||||
|
0x61: ['present'],
|
||||||
|
0x62: ['damagecalc'],
|
||||||
|
0x63: ['frustrationpower'],
|
||||||
|
0x64: ['safeguard'],
|
||||||
|
0x65: ['checksafeguard'],
|
||||||
|
0x66: ['getmagnitude'],
|
||||||
|
0x67: ['batonpass'],
|
||||||
|
0x68: ['pursuit'],
|
||||||
|
0x69: ['clearhazards'],
|
||||||
|
0x6a: ['healmorn'],
|
||||||
|
0x6b: ['healday'],
|
||||||
|
0x6c: ['healnite'],
|
||||||
|
0x6d: ['hiddenpower'],
|
||||||
|
0x6e: ['startrain'],
|
||||||
|
0x6f: ['startsun'],
|
||||||
|
0x70: ['attackup'],
|
||||||
|
0x71: ['defenseup'],
|
||||||
|
0x72: ['speedup'],
|
||||||
|
0x73: ['specialattackup'],
|
||||||
|
0x74: ['specialdefenseup'],
|
||||||
|
0x75: ['accuracyup'],
|
||||||
|
0x76: ['evasionup'],
|
||||||
|
0x77: ['attackup2'],
|
||||||
|
0x78: ['defenseup2'],
|
||||||
|
0x79: ['speedup2'],
|
||||||
|
0x7a: ['specialattackup2'],
|
||||||
|
0x7b: ['specialdefenseup2'],
|
||||||
|
0x7c: ['accuracyup2'],
|
||||||
|
0x7d: ['evasionup2'],
|
||||||
|
0x7e: ['attackdown'],
|
||||||
|
0x7f: ['defensedown'],
|
||||||
|
0x80: ['speeddown'],
|
||||||
|
0x81: ['specialattackdown'],
|
||||||
|
0x82: ['specialdefensedown'],
|
||||||
|
0x83: ['accuracydown'],
|
||||||
|
0x84: ['evasiondown'],
|
||||||
|
0x85: ['attackdown2'],
|
||||||
|
0x86: ['defensedown2'],
|
||||||
|
0x87: ['speeddown2'],
|
||||||
|
0x88: ['specialattackdown2'],
|
||||||
|
0x89: ['specialdefensedown2'],
|
||||||
|
0x8a: ['accuracydown2'],
|
||||||
|
0x8b: ['evasiondown2'],
|
||||||
|
0x8c: ['statmessageuser'],
|
||||||
|
0x8d: ['statmessagetarget'],
|
||||||
|
0x8e: ['statupfailtext'],
|
||||||
|
0x8f: ['statdownfailtext'],
|
||||||
|
0x90: ['effectchance'],
|
||||||
|
0x91: ['effect0x91'],
|
||||||
|
0x92: ['effect0x92'],
|
||||||
|
0x93: ['switchturn'],
|
||||||
|
0x94: ['fakeout'],
|
||||||
|
0x95: ['bellydrum'],
|
||||||
|
0x96: ['psychup'],
|
||||||
|
0x97: ['rage'],
|
||||||
|
0x98: ['doubleflyingdamage'],
|
||||||
|
0x99: ['doubleundergrounddamage'],
|
||||||
|
0x9a: ['mirrorcoat'],
|
||||||
|
0x9b: ['checkfuturesight'],
|
||||||
|
0x9c: ['futuresight'],
|
||||||
|
0x9d: ['doubleminimizedamage'],
|
||||||
|
0x9e: ['skipsuncharge'],
|
||||||
|
0x9f: ['thunderaccuracy'],
|
||||||
|
0xa0: ['teleport'],
|
||||||
|
0xa1: ['beatup'],
|
||||||
|
0xa2: ['ragedamage'],
|
||||||
|
0xa3: ['effect0xa3'],
|
||||||
|
0xa4: ['allstatsup'],
|
||||||
|
0xa5: ['effect0xa5'],
|
||||||
|
0xa6: ['effect0xa6'],
|
||||||
|
0xa7: ['effect0xa7'],
|
||||||
|
0xa8: ['effect0xa8'],
|
||||||
|
0xa9: ['clearmissdamage'],
|
||||||
|
0xaa: ['wait'],
|
||||||
|
0xab: ['hittarget'],
|
||||||
|
0xac: ['tristatuschance'],
|
||||||
|
0xad: ['supereffectivelooptext'],
|
||||||
|
0xae: ['startloop'],
|
||||||
|
0xaf: ['curl'],
|
||||||
|
0xfe: ['endturn'],
|
||||||
|
0xff: ['endmove'],
|
||||||
|
}
|
||||||
|
|
||||||
|
effect_command_enders = [0xFF,]
|
||||||
|
|
||||||
|
def create_effect_command_classes(debug=False):
|
||||||
|
klasses = []
|
||||||
|
for (byte, cmd) in effect_commands.items():
|
||||||
|
cmd_name = cmd[0].replace(" ", "_")
|
||||||
|
params = {
|
||||||
|
"id": byte,
|
||||||
|
"size": 1,
|
||||||
|
"end": byte in effect_command_enders,
|
||||||
|
"macro_name": cmd_name
|
||||||
|
}
|
||||||
|
params["param_types"] = {}
|
||||||
|
if len(cmd) > 1:
|
||||||
|
param_types = cmd[1:]
|
||||||
|
for (i, each) in enumerate(param_types):
|
||||||
|
thing = {"name": each[0], "class": each[1]}
|
||||||
|
params["param_types"][i] = thing
|
||||||
|
if debug:
|
||||||
|
print "each is: " + str(each)
|
||||||
|
print "thing[class] is: " + str(thing["class"])
|
||||||
|
params["size"] += thing["class"].size
|
||||||
|
klass_name = cmd_name+"Command"
|
||||||
|
klass = classobj(klass_name, (Command,), params)
|
||||||
|
globals()[klass_name] = klass
|
||||||
|
klasses.append(klass)
|
||||||
|
# later an individual klass will be instantiated to handle something
|
||||||
|
return klasses
|
||||||
|
|
||||||
|
effect_classes = create_effect_command_classes()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def generate_macros(filename="../script_macros.asm"):
|
def generate_macros(filename="../script_macros.asm"):
|
||||||
"""generates all macros based on commands
|
"""generates all macros based on commands
|
||||||
this is dumped into script_macros.asm"""
|
this is dumped into script_macros.asm"""
|
||||||
@ -6201,7 +6416,7 @@ def parse_map_header_by_id(*args, **kwargs):
|
|||||||
elif len(args) == 1 and type(args[0]) == str:
|
elif len(args) == 1 and type(args[0]) == str:
|
||||||
map_group = int(args[0].split(".")[0])
|
map_group = int(args[0].split(".")[0])
|
||||||
map_id = int(args[0].split(".")[1])
|
map_id = int(args[0].split(".")[1])
|
||||||
else:
|
elif map_group == None and map_id == None:
|
||||||
raise Exception("dunno what to do with input")
|
raise Exception("dunno what to do with input")
|
||||||
offset = map_names[map_group]["offset"]
|
offset = map_names[map_group]["offset"]
|
||||||
map_header_offset = offset + ((map_id - 1) * map_header_byte_size)
|
map_header_offset = offset + ((map_id - 1) * map_header_byte_size)
|
||||||
|
@ -1436,8 +1436,8 @@ def mass_to_colored_png(debug=False):
|
|||||||
for name in files:
|
for name in files:
|
||||||
if debug: print os.path.splitext(name), os.path.join(root, name)
|
if debug: print os.path.splitext(name), os.path.join(root, name)
|
||||||
if os.path.splitext(name)[1] == '.2bpp':
|
if os.path.splitext(name)[1] == '.2bpp':
|
||||||
if name[:5]+'.pal' in files:
|
if os.path.splitext(name)[0]+'.pal' in files:
|
||||||
to_png(os.path.join(root, name), None, os.path.join(root, name[:-5]+'.pal'))
|
to_png(os.path.join(root, name), None, os.path.join(root, os.path.splitext(name)[0]+'.pal'))
|
||||||
else:
|
else:
|
||||||
to_png(os.path.join(root, name))
|
to_png(os.path.join(root, name))
|
||||||
|
|
||||||
@ -1459,26 +1459,26 @@ def mass_to_colored_png(debug=False):
|
|||||||
|
|
||||||
def mass_decompress(debug=False):
|
def mass_decompress(debug=False):
|
||||||
for root, dirs, files in os.walk('../gfx/'):
|
for root, dirs, files in os.walk('../gfx/'):
|
||||||
for file in files:
|
for name in files:
|
||||||
if 'lz' in file:
|
if 'lz' in name:
|
||||||
if '/pics' in root:
|
if '/pics' in root:
|
||||||
if 'front' in file:
|
if 'front' in name:
|
||||||
id = root.split('pics/')[1][:3]
|
id = root.split('pics/')[1][:3]
|
||||||
if id != 'egg':
|
if id != 'egg':
|
||||||
with open(root+'/'+file, 'rb') as lz: de = Decompressed(lz.read(), 'vert', sizes[int(id)-1])
|
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read(), 'vert', sizes[int(id)-1])
|
||||||
else:
|
else:
|
||||||
with open(root+'/'+file, 'rb') as lz: de = Decompressed(lz.read(), 'vert', 4)
|
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read(), 'vert', 4)
|
||||||
to_file(root+'/'+'front.2bpp', de.pic)
|
to_file(os.path.join(root, 'front.2bpp'), de.pic)
|
||||||
to_file(root+'/'+'tiles.2bpp', de.animtiles)
|
to_file(os.path.join(root, 'tiles.2bpp'), de.animtiles)
|
||||||
elif 'back' in file:
|
elif 'back' in name:
|
||||||
with open(root+'/'+file, 'rb') as lz: de = Decompressed(lz.read(), 'vert')
|
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read(), 'vert')
|
||||||
to_file(root+'/'+'back.2bpp', de.output)
|
to_file(os.path.join(root, 'back.2bpp'), de.output)
|
||||||
elif '/trainers' in root or '/fx' in root:
|
elif '/trainers' in root or '/fx' in root:
|
||||||
with open(root+'/'+file, 'rb') as lz: de = Decompressed(lz.read(), 'vert')
|
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read(), 'vert')
|
||||||
to_file(root+'/'+file[:-3]+'.2bpp', de.output)
|
to_file(os.path.join(root, os.path.splitext(name)[0]+'.2bpp'), de.output)
|
||||||
else:
|
else:
|
||||||
with open(root+'/'+file, 'rb') as lz: de = Decompressed(lz.read())
|
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read())
|
||||||
to_file(root+file[:-3]+'.2bpp', de.output)
|
to_file(os.path.join(root, os.path.splitext(name)[0]+'.2bpp'), de.output)
|
||||||
|
|
||||||
def append_terminator_to_lzs(directory):
|
def append_terminator_to_lzs(directory):
|
||||||
# fix lzs that were extracted with a missing terminator
|
# fix lzs that were extracted with a missing terminator
|
||||||
|
161
extras/vba.py
161
extras/vba.py
@ -104,6 +104,11 @@ Gb.loadVBA()
|
|||||||
|
|
||||||
from vba_config import *
|
from vba_config import *
|
||||||
|
|
||||||
|
try:
|
||||||
|
import vba_keyboard as keyboard
|
||||||
|
except ImportError:
|
||||||
|
print "Not loading the keyboard module (which uses networkx)."
|
||||||
|
|
||||||
if not os.path.exists(rom_path):
|
if not os.path.exists(rom_path):
|
||||||
raise Exception("rom_path is not configured properly; edit vba_config.py?")
|
raise Exception("rom_path is not configured properly; edit vba_config.py?")
|
||||||
|
|
||||||
@ -163,10 +168,14 @@ def button_combiner(buttons):
|
|||||||
buttons.replace("select", "")
|
buttons.replace("select", "")
|
||||||
result |= button_masks["select"]
|
result |= button_masks["select"]
|
||||||
|
|
||||||
|
if isinstance(buttons, list):
|
||||||
|
if len(buttons) > 9:
|
||||||
|
raise Exception("can't combine more than 9 buttons at a time")
|
||||||
|
|
||||||
for each in buttons:
|
for each in buttons:
|
||||||
result |= button_masks[each]
|
result |= button_masks[each]
|
||||||
|
|
||||||
print "button: " + str(result)
|
#print "button: " + str(result)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def load_rom(path=None):
|
def load_rom(path=None):
|
||||||
@ -434,6 +443,69 @@ def press(buttons, steplimit=1):
|
|||||||
for step_counter in range(0, steplimit):
|
for step_counter in range(0, steplimit):
|
||||||
Gb.step(number)
|
Gb.step(number)
|
||||||
|
|
||||||
|
def get_buttons():
|
||||||
|
"""
|
||||||
|
Returns the currentButtons[0] value (an integer with bits set for which
|
||||||
|
buttons are currently pressed).
|
||||||
|
"""
|
||||||
|
return Gb.getCurrentButtons()
|
||||||
|
|
||||||
|
class State(RomList):
|
||||||
|
name = None
|
||||||
|
|
||||||
|
class Recording:
|
||||||
|
def __init__(self):
|
||||||
|
self.frames = []
|
||||||
|
self.states = {}
|
||||||
|
|
||||||
|
def _get_frame_count(self):
|
||||||
|
return len(self.frames)
|
||||||
|
|
||||||
|
frame_count = property(fget=_get_frame_count)
|
||||||
|
|
||||||
|
def save(self, name=None):
|
||||||
|
"""
|
||||||
|
Saves the current state.
|
||||||
|
"""
|
||||||
|
state = State(get_state())
|
||||||
|
state.name = name
|
||||||
|
self.states[self.frame_count] = state
|
||||||
|
|
||||||
|
def load(self, name):
|
||||||
|
"""
|
||||||
|
Loads a state by name in the state list.
|
||||||
|
"""
|
||||||
|
for state in self.states.items():
|
||||||
|
if state.name == name:
|
||||||
|
set_state(state)
|
||||||
|
return state
|
||||||
|
return False
|
||||||
|
|
||||||
|
def step(self, stepcount=1, first_frame=0, replay=False):
|
||||||
|
"""
|
||||||
|
Records button presses for each frame.
|
||||||
|
"""
|
||||||
|
if replay:
|
||||||
|
stepcount = len(self.frames[first_name:])
|
||||||
|
|
||||||
|
for counter in range(first_frame, stepcount):
|
||||||
|
if replay:
|
||||||
|
press(self.frames[counter], steplimit=0)
|
||||||
|
else:
|
||||||
|
self.frames.append(get_buttons())
|
||||||
|
nstep(1)
|
||||||
|
|
||||||
|
def replay_from(self, thing):
|
||||||
|
"""
|
||||||
|
Replays based on a State or the name of a saved state.
|
||||||
|
"""
|
||||||
|
if isinstance(thing, State):
|
||||||
|
set_state(thing)
|
||||||
|
else:
|
||||||
|
thing = self.load(thing)
|
||||||
|
frame_id = self.states.index(thing)
|
||||||
|
self.step(first_frame=frame_id, replay=True)
|
||||||
|
|
||||||
class Registers:
|
class Registers:
|
||||||
order = [
|
order = [
|
||||||
"pc",
|
"pc",
|
||||||
@ -564,6 +636,66 @@ def call(bank, address):
|
|||||||
else:
|
else:
|
||||||
registers["pc"] = address
|
registers["pc"] = address
|
||||||
|
|
||||||
|
class cheats:
|
||||||
|
"""
|
||||||
|
Helpers to manage the cheating infrastructure.
|
||||||
|
|
||||||
|
import vba; vba.load_rom(); vba.cheats.add_gameshark("0100CFCF", "text speedup 1"); vba.cheats.add_gameshark("0101CCCF", "text speedup 2"); vba.go()
|
||||||
|
"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def enable(id):
|
||||||
|
"""
|
||||||
|
void gbCheatEnable(int i)
|
||||||
|
"""
|
||||||
|
Gb.cheatEnable(id)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def disable(id):
|
||||||
|
"""
|
||||||
|
void gbCheatDisable(int i)
|
||||||
|
"""
|
||||||
|
Gb.cheatDisable(id)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def load_file(filename):
|
||||||
|
"""
|
||||||
|
Loads a .clt file. By default each cheat is disabled.
|
||||||
|
"""
|
||||||
|
Gb.loadCheatsFromFile(filename)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_all():
|
||||||
|
"""
|
||||||
|
Removes all cheats from memory.
|
||||||
|
|
||||||
|
void gbCheatRemoveAll()
|
||||||
|
"""
|
||||||
|
Gb.cheatRemoveAll()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_cheat(id):
|
||||||
|
"""
|
||||||
|
Removes a specific cheat from memory by id.
|
||||||
|
|
||||||
|
void gbCheatRemove(int i)
|
||||||
|
"""
|
||||||
|
Gb.cheatRemove(id)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_gamegenie(code, description=""):
|
||||||
|
"""
|
||||||
|
void gbAddGgCheat(const char *code, const char *desc)
|
||||||
|
"""
|
||||||
|
Gb.cheatAddGamegenie(code, description)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_gameshark(code, description=""):
|
||||||
|
"""
|
||||||
|
gbAddGsCheat(const char *code, const char *desc)
|
||||||
|
"""
|
||||||
|
Gb.cheatAddGameshark(code, description)
|
||||||
|
|
||||||
class crystal:
|
class crystal:
|
||||||
"""
|
"""
|
||||||
Just a simple namespace to store a bunch of functions for Pokémon Crystal.
|
Just a simple namespace to store a bunch of functions for Pokémon Crystal.
|
||||||
@ -766,6 +898,25 @@ class crystal:
|
|||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def keyboard_apply(button_sequence):
|
||||||
|
"""
|
||||||
|
Applies a sequence of buttons to the on-screen keyboard.
|
||||||
|
"""
|
||||||
|
for buttons in button_sequence:
|
||||||
|
press(buttons)
|
||||||
|
nstep(2)
|
||||||
|
press([])
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def write(something="TrAiNeR"):
|
||||||
|
"""
|
||||||
|
Uses a planning algorithm to type out a word in the most efficient way
|
||||||
|
possible.
|
||||||
|
"""
|
||||||
|
button_sequence = keyboard.plan_typing(something)
|
||||||
|
crystal.keyboard_apply([[x] for x in button_sequence])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def set_partymon2():
|
def set_partymon2():
|
||||||
"""
|
"""
|
||||||
@ -836,6 +987,14 @@ class TestEmulator(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertTrue("TRAINER" in text)
|
self.assertTrue("TRAINER" in text)
|
||||||
|
|
||||||
|
class TestWriter(unittest.TestCase):
|
||||||
|
def test_very_basic(self):
|
||||||
|
button_sequence = keyboard.plan_typing("an")
|
||||||
|
expected_result = ["select", "a", "d", "r", "r", "r", "r", "a"]
|
||||||
|
|
||||||
|
self.assertEqual(len(expected_result), len(button_sequence))
|
||||||
|
self.assertEqual(expected_result, button_sequence)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
||||||
|
@ -2,13 +2,10 @@
|
|||||||
# -*- encoding: utf-8 -*-
|
# -*- encoding: utf-8 -*-
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# by default we assume the user has things in their $HOME
|
# by default we assume the user has vba in pokecrystal/extras
|
||||||
home = os.path.expanduser("~") # or System.getProperty("user.home")
|
project_path = os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..'))
|
||||||
|
|
||||||
# and that the pokecrystal project folder is in there somewhere
|
# save states are in pokecrystal/save-states/
|
||||||
project_path = os.path.join(home, os.path.join("code", "pokecrystal"))
|
|
||||||
|
|
||||||
# save states are in ~/code/pokecrystal/save-states/
|
|
||||||
save_state_path = os.path.join(project_path, "save-states")
|
save_state_path = os.path.join(project_path, "save-states")
|
||||||
|
|
||||||
# where is your rom?
|
# where is your rom?
|
||||||
|
563
extras/vba_keyboard.py
Normal file
563
extras/vba_keyboard.py
Normal file
@ -0,0 +1,563 @@
|
|||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
This file constructs a networkx.DiGraph object called graph, which can be used
|
||||||
|
to find the shortest path of keypresses on the keyboard to type a word.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import itertools
|
||||||
|
import networkx
|
||||||
|
|
||||||
|
graph = networkx.DiGraph()
|
||||||
|
|
||||||
|
graph_data = """
|
||||||
|
A a select
|
||||||
|
A B r
|
||||||
|
A I l
|
||||||
|
A lower-upper-column-1 u
|
||||||
|
A J d
|
||||||
|
|
||||||
|
B b select
|
||||||
|
B A l
|
||||||
|
B C r
|
||||||
|
B lower-upper-column-2 u
|
||||||
|
B K d
|
||||||
|
|
||||||
|
C c select
|
||||||
|
C D r
|
||||||
|
C B l
|
||||||
|
C lower-upper-column-3 u
|
||||||
|
C L d
|
||||||
|
|
||||||
|
D d select
|
||||||
|
D E r
|
||||||
|
D C l
|
||||||
|
D del-upper-column-1 u
|
||||||
|
D M d
|
||||||
|
|
||||||
|
E e select
|
||||||
|
E del-upper-column-2 u
|
||||||
|
E N d
|
||||||
|
E D l
|
||||||
|
E F r
|
||||||
|
|
||||||
|
F f select
|
||||||
|
F del-upper-column-3 u
|
||||||
|
F O d
|
||||||
|
F E l
|
||||||
|
F G r
|
||||||
|
|
||||||
|
G g select
|
||||||
|
G end-upper-column-1 u
|
||||||
|
G P d
|
||||||
|
G F l
|
||||||
|
G H r
|
||||||
|
|
||||||
|
H h select
|
||||||
|
H end-upper-column-2 u
|
||||||
|
H Q d
|
||||||
|
H G l
|
||||||
|
H I r
|
||||||
|
|
||||||
|
I i select
|
||||||
|
I end-upper-column-3 u
|
||||||
|
I R d
|
||||||
|
I H l
|
||||||
|
I A r
|
||||||
|
|
||||||
|
J j select
|
||||||
|
J A u
|
||||||
|
J S d
|
||||||
|
J R l
|
||||||
|
J K r
|
||||||
|
|
||||||
|
K k select
|
||||||
|
K B u
|
||||||
|
K T d
|
||||||
|
K J l
|
||||||
|
K L r
|
||||||
|
|
||||||
|
L l select
|
||||||
|
L C u
|
||||||
|
L U d
|
||||||
|
L K l
|
||||||
|
L M r
|
||||||
|
|
||||||
|
M m select
|
||||||
|
M D u
|
||||||
|
M V d
|
||||||
|
M L l
|
||||||
|
M N r
|
||||||
|
|
||||||
|
N n select
|
||||||
|
N E u
|
||||||
|
N W d
|
||||||
|
N M l
|
||||||
|
N O r
|
||||||
|
|
||||||
|
O o select
|
||||||
|
O F u
|
||||||
|
O X d
|
||||||
|
O N l
|
||||||
|
O P r
|
||||||
|
|
||||||
|
P p select
|
||||||
|
P G u
|
||||||
|
P Y d
|
||||||
|
P O l
|
||||||
|
P Q r
|
||||||
|
|
||||||
|
Q q select
|
||||||
|
Q H u
|
||||||
|
Q Z d
|
||||||
|
Q P l
|
||||||
|
Q R r
|
||||||
|
|
||||||
|
R r select
|
||||||
|
R I u
|
||||||
|
R space-upper-x8-y2 d
|
||||||
|
R Q l
|
||||||
|
R J r
|
||||||
|
|
||||||
|
S s select
|
||||||
|
S J u
|
||||||
|
S - d
|
||||||
|
S space-upper-x8-y2 l
|
||||||
|
|
||||||
|
T t select
|
||||||
|
T K u
|
||||||
|
T ? d
|
||||||
|
T S l
|
||||||
|
T U r
|
||||||
|
|
||||||
|
U u select
|
||||||
|
U L u
|
||||||
|
U ! d
|
||||||
|
U T l
|
||||||
|
U V r
|
||||||
|
|
||||||
|
V v select
|
||||||
|
V M u
|
||||||
|
V / d
|
||||||
|
V U l
|
||||||
|
V W r
|
||||||
|
|
||||||
|
W w select
|
||||||
|
W N u
|
||||||
|
W . d
|
||||||
|
W V l
|
||||||
|
W X r
|
||||||
|
|
||||||
|
X x select
|
||||||
|
X O u
|
||||||
|
X , d
|
||||||
|
X W l
|
||||||
|
X Y r
|
||||||
|
|
||||||
|
Y y select
|
||||||
|
Y P u
|
||||||
|
Y space-upper-x6-y3 d
|
||||||
|
Y X l
|
||||||
|
Y Z r
|
||||||
|
|
||||||
|
Z z select
|
||||||
|
Z Q u
|
||||||
|
Z space-upper-x7-y3 d
|
||||||
|
Z Y l
|
||||||
|
Z space-upper-x8-y2 r
|
||||||
|
|
||||||
|
end-upper-column-1 lower-upper-column-1 r
|
||||||
|
end-upper-column-2 lower-upper-column-1 r
|
||||||
|
end-upper-column-3 lower-upper-column-1 r
|
||||||
|
end-upper-column-1 del-upper-column-1 l
|
||||||
|
end-upper-column-2 del-upper-column-1 l
|
||||||
|
end-upper-column-3 del-upper-column-1 l
|
||||||
|
lower-upper-column-1 end-upper-column-1 l
|
||||||
|
lower-upper-column-2 end-upper-column-1 l
|
||||||
|
lower-upper-column-3 end-upper-column-1 l
|
||||||
|
lower-upper-column-1 del-upper-column-1 r
|
||||||
|
lower-upper-column-2 del-upper-column-1 r
|
||||||
|
lower-upper-column-3 del-upper-column-1 r
|
||||||
|
del-upper-column-1 lower-upper-column-1 l
|
||||||
|
del-upper-column-2 lower-upper-column-1 l
|
||||||
|
del-upper-column-3 lower-upper-column-1 l
|
||||||
|
del-upper-column-1 end-upper-column-1 r
|
||||||
|
del-upper-column-2 end-upper-column-1 r
|
||||||
|
del-upper-column-3 end-upper-column-1 r
|
||||||
|
|
||||||
|
lower-upper-column-1 A d
|
||||||
|
lower-upper-column-2 B d
|
||||||
|
lower-upper-column-3 C d
|
||||||
|
lower-upper-column-1 - u
|
||||||
|
lower-upper-column-2 ? u
|
||||||
|
lower-upper-column-3 ! u
|
||||||
|
|
||||||
|
del-upper-column-1 D d
|
||||||
|
del-upper-column-2 E d
|
||||||
|
del-upper-column-3 F d
|
||||||
|
del-upper-column-1 / u
|
||||||
|
del-upper-column-2 . u
|
||||||
|
del-upper-column-3 , u
|
||||||
|
|
||||||
|
end-upper-column-1 G d
|
||||||
|
end-upper-column-2 H d
|
||||||
|
end-upper-column-3 I d
|
||||||
|
end-upper-column-1 space-upper-x6-y3 u
|
||||||
|
end-upper-column-2 space-upper-x7-y3 u
|
||||||
|
end-upper-column-3 space-upper-x8-y3 u
|
||||||
|
|
||||||
|
space-upper-x8-y2 space-lower-x8-y2 select
|
||||||
|
space-upper-x8-y2 R u
|
||||||
|
space-upper-x8-y2 space-upper-x8-y3 d
|
||||||
|
space-upper-x8-y2 Z l
|
||||||
|
space-upper-x8-y2 S r
|
||||||
|
|
||||||
|
space-upper-x8-y3 MN select
|
||||||
|
space-upper-x8-y3 space-upper-x8-y2 u
|
||||||
|
space-upper-x8-y3 end-upper-column-3 d
|
||||||
|
space-upper-x8-y3 space-upper-x7-y3 l
|
||||||
|
space-upper-x8-y3 - r
|
||||||
|
|
||||||
|
space-upper-x7-y3 PK select
|
||||||
|
space-upper-x7-y3 Z u
|
||||||
|
space-upper-x7-y3 end-upper-column-2 d
|
||||||
|
space-upper-x7-y3 space-upper-x6-y3 l
|
||||||
|
space-upper-x7-y3 space-upper-x8-y3 r
|
||||||
|
|
||||||
|
space-upper-x6-y3 ] select
|
||||||
|
space-upper-x6-y3 Y u
|
||||||
|
space-upper-x6-y3 end-upper-column-1 d
|
||||||
|
space-upper-x6-y3 , l
|
||||||
|
space-upper-x6-y3 space-upper-x7-y3 r
|
||||||
|
|
||||||
|
end-upper-column-1 end-lower-column-1 select
|
||||||
|
end-upper-column-2 end-lower-column-2 select
|
||||||
|
end-upper-column-3 end-lower-column-3 select
|
||||||
|
lower-upper-column-1 lower-lower-column-1 select
|
||||||
|
lower-upper-column-2 lower-lower-column-2 select
|
||||||
|
lower-upper-column-3 lower-lower-column-3 select
|
||||||
|
del-upper-column-1 del-lower-column-1 select
|
||||||
|
del-upper-column-2 del-lower-column-2 select
|
||||||
|
del-upper-column-3 del-lower-column-3 select
|
||||||
|
|
||||||
|
lower-lower-column-1 × u
|
||||||
|
lower-lower-column-2 ( u
|
||||||
|
lower-lower-column-3 ) u
|
||||||
|
lower-lower-column-1 a d
|
||||||
|
lower-lower-column-2 b d
|
||||||
|
lower-lower-column-3 c d
|
||||||
|
|
||||||
|
end-lower-column-1 ] u
|
||||||
|
end-lower-column-2 PK u
|
||||||
|
end-lower-column-3 MN u
|
||||||
|
end-lower-column-1 g d
|
||||||
|
end-lower-column-2 h d
|
||||||
|
end-lower-column-3 i d
|
||||||
|
|
||||||
|
del-lower-column-1 : u
|
||||||
|
del-lower-column-2 ; u
|
||||||
|
del-lower-column-3 [ u
|
||||||
|
del-lower-column-1 d d
|
||||||
|
del-lower-column-2 e d
|
||||||
|
del-lower-column-3 f d
|
||||||
|
|
||||||
|
- × select
|
||||||
|
- S u
|
||||||
|
- lower-upper-column-1 d
|
||||||
|
- space-upper-x8-y3 l
|
||||||
|
- ? r
|
||||||
|
|
||||||
|
? ( select
|
||||||
|
? T u
|
||||||
|
? lower-upper-column-2 d
|
||||||
|
? - l
|
||||||
|
? ! r
|
||||||
|
|
||||||
|
! ) select
|
||||||
|
! U u
|
||||||
|
! lower-upper-column-3 d
|
||||||
|
! ? l
|
||||||
|
! / r
|
||||||
|
|
||||||
|
/ : select
|
||||||
|
/ V u
|
||||||
|
/ del-upper-column-1 d
|
||||||
|
/ ! l
|
||||||
|
/ . r
|
||||||
|
|
||||||
|
. ; select
|
||||||
|
. W u
|
||||||
|
. del-upper-column-2 d
|
||||||
|
. / l
|
||||||
|
. , r
|
||||||
|
|
||||||
|
, [ select
|
||||||
|
, X u
|
||||||
|
, del-upper-column-3 d
|
||||||
|
, . l
|
||||||
|
, space-upper-x6-y3 r
|
||||||
|
|
||||||
|
× - select
|
||||||
|
× s u
|
||||||
|
× upper-lower-column-1 d
|
||||||
|
× MN l
|
||||||
|
× ( r
|
||||||
|
|
||||||
|
( ? select
|
||||||
|
( t u
|
||||||
|
( upper-lower-column-2 d
|
||||||
|
( × l
|
||||||
|
( ) r
|
||||||
|
|
||||||
|
) ! select
|
||||||
|
) u u
|
||||||
|
) upper-lower-column-3 d
|
||||||
|
) ( l
|
||||||
|
) : r
|
||||||
|
|
||||||
|
: / select
|
||||||
|
: v u
|
||||||
|
: del-lower-column-1 d
|
||||||
|
: ) l
|
||||||
|
: ; r
|
||||||
|
|
||||||
|
; . select
|
||||||
|
; w u
|
||||||
|
; del-lower-column-2 d
|
||||||
|
; : l
|
||||||
|
; [ r
|
||||||
|
|
||||||
|
[ , select
|
||||||
|
[ x u
|
||||||
|
[ del-lower-column-3 d
|
||||||
|
[ ; l
|
||||||
|
[ ] r
|
||||||
|
|
||||||
|
] space-upper-x6-y3 select
|
||||||
|
] y u
|
||||||
|
] end-lower-column-1 d
|
||||||
|
] [ l
|
||||||
|
] PK r
|
||||||
|
|
||||||
|
PK space-upper-x7-y3 select
|
||||||
|
PK z u
|
||||||
|
PK end-lower-column-2 d
|
||||||
|
PK ] l
|
||||||
|
PK MN r
|
||||||
|
|
||||||
|
MN space-upper-x8-y3 select
|
||||||
|
MN space-lower-x8-y2 u
|
||||||
|
MN end-lower-column-3 d
|
||||||
|
MN PK l
|
||||||
|
MN × r
|
||||||
|
|
||||||
|
space-lower-x8-y2 space-upper-x8-y2 select
|
||||||
|
space-lower-x8-y2 r u
|
||||||
|
space-lower-x8-y2 MN d
|
||||||
|
space-lower-x8-y2 z l
|
||||||
|
space-lower-x8-y2 s r
|
||||||
|
|
||||||
|
a A select
|
||||||
|
a upper-lower-column-1 u
|
||||||
|
a j d
|
||||||
|
a i l
|
||||||
|
a b r
|
||||||
|
|
||||||
|
b B select
|
||||||
|
b upper-lower-column-2 u
|
||||||
|
b k d
|
||||||
|
b a l
|
||||||
|
b c r
|
||||||
|
|
||||||
|
c C select
|
||||||
|
c upper-lower-column-3 u
|
||||||
|
c l d
|
||||||
|
c b l
|
||||||
|
c d r
|
||||||
|
|
||||||
|
d D select
|
||||||
|
d del-lower-column-1 u
|
||||||
|
d m d
|
||||||
|
d c l
|
||||||
|
d e r
|
||||||
|
|
||||||
|
e E select
|
||||||
|
e del-lower-column-2 u
|
||||||
|
e n d
|
||||||
|
e d l
|
||||||
|
e f r
|
||||||
|
|
||||||
|
f F select
|
||||||
|
f del-lower-column-3 u
|
||||||
|
f o d
|
||||||
|
f e l
|
||||||
|
f g r
|
||||||
|
|
||||||
|
g G select
|
||||||
|
g end-lower-column-1 u
|
||||||
|
g p d
|
||||||
|
g f l
|
||||||
|
g h r
|
||||||
|
|
||||||
|
h H select
|
||||||
|
h end-lower-column-2 u
|
||||||
|
h q d
|
||||||
|
h g l
|
||||||
|
h i r
|
||||||
|
|
||||||
|
i I select
|
||||||
|
i end-lower-column-3 u
|
||||||
|
i r d
|
||||||
|
i h l
|
||||||
|
i a r
|
||||||
|
|
||||||
|
j J select
|
||||||
|
j a u
|
||||||
|
j s d
|
||||||
|
j r l
|
||||||
|
j k r
|
||||||
|
|
||||||
|
k K select
|
||||||
|
k b u
|
||||||
|
k t d
|
||||||
|
k j l
|
||||||
|
k l r
|
||||||
|
|
||||||
|
l L select
|
||||||
|
l c u
|
||||||
|
l u d
|
||||||
|
l k l
|
||||||
|
l m r
|
||||||
|
|
||||||
|
m M select
|
||||||
|
m d u
|
||||||
|
m v d
|
||||||
|
m l l
|
||||||
|
m n r
|
||||||
|
|
||||||
|
n N select
|
||||||
|
n e u
|
||||||
|
n w d
|
||||||
|
n m l
|
||||||
|
n o r
|
||||||
|
|
||||||
|
o O select
|
||||||
|
o f u
|
||||||
|
o x d
|
||||||
|
o n l
|
||||||
|
o p r
|
||||||
|
|
||||||
|
p P select
|
||||||
|
p g u
|
||||||
|
p y d
|
||||||
|
p o l
|
||||||
|
p q r
|
||||||
|
|
||||||
|
q Q select
|
||||||
|
q h u
|
||||||
|
q z d
|
||||||
|
q p l
|
||||||
|
q r r
|
||||||
|
|
||||||
|
r R select
|
||||||
|
r i u
|
||||||
|
r space-lower-x8-y2 d
|
||||||
|
r q l
|
||||||
|
r j r
|
||||||
|
|
||||||
|
s S select
|
||||||
|
s j u
|
||||||
|
s × d
|
||||||
|
s space-lower-x8-y2 l
|
||||||
|
s t r
|
||||||
|
|
||||||
|
t T select
|
||||||
|
t k u
|
||||||
|
t ( d
|
||||||
|
t s l
|
||||||
|
t u r
|
||||||
|
|
||||||
|
u U select
|
||||||
|
u l u
|
||||||
|
u ) d
|
||||||
|
u t l
|
||||||
|
u v r
|
||||||
|
|
||||||
|
v V select
|
||||||
|
v m u
|
||||||
|
v : d
|
||||||
|
v u l
|
||||||
|
v w r
|
||||||
|
|
||||||
|
w W select
|
||||||
|
w n u
|
||||||
|
w ; d
|
||||||
|
w v l
|
||||||
|
w x r
|
||||||
|
|
||||||
|
x X select
|
||||||
|
x o u
|
||||||
|
x [ d
|
||||||
|
x w l
|
||||||
|
x y r
|
||||||
|
|
||||||
|
y Y select
|
||||||
|
y p u
|
||||||
|
y ] d
|
||||||
|
y x l
|
||||||
|
y z r
|
||||||
|
|
||||||
|
z Z select
|
||||||
|
z q u
|
||||||
|
z PK d
|
||||||
|
z y l
|
||||||
|
z space-lower-x8-y2 r"""
|
||||||
|
|
||||||
|
for line in graph_data.split("\n"):
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
elif line[0] == "#":
|
||||||
|
continue
|
||||||
|
|
||||||
|
(node1, node2, edge_name) = line.split(" ")
|
||||||
|
graph.add_edge(node1, node2, key=edge_name)
|
||||||
|
|
||||||
|
#print "Adding edge ("+edge_name+") "+node1+" -> "+node2
|
||||||
|
|
||||||
|
def shortest_path(node1, node2):
|
||||||
|
"""
|
||||||
|
Figures out the shortest list of button presses to move from one letter to
|
||||||
|
another.
|
||||||
|
"""
|
||||||
|
buttons = []
|
||||||
|
last = None
|
||||||
|
path = networkx.shortest_path(graph, node1, node2)
|
||||||
|
for each in path:
|
||||||
|
if last != None:
|
||||||
|
buttons.append(convert_nodes_to_button_press(last, each))
|
||||||
|
last = each
|
||||||
|
return buttons
|
||||||
|
#return [convert_nodes_to_button_press(node3, node4) for (node3, node4) in zip(*(iter(networkx.shortest_path(graph, node1, node2)),) * 2)]
|
||||||
|
|
||||||
|
def convert_nodes_to_button_press(node1, node2):
|
||||||
|
"""
|
||||||
|
Determines the button necessary to switch from node1 to node2.
|
||||||
|
"""
|
||||||
|
print "getting button press for state transition: " + node1 + " -> " + node2
|
||||||
|
return graph.get_edge_data(node1, node2)["key"]
|
||||||
|
|
||||||
|
def plan_typing(text, current="A"):
|
||||||
|
"""
|
||||||
|
Plans a sequence of button presses to spell out the given text.
|
||||||
|
"""
|
||||||
|
buttons = []
|
||||||
|
for target in text:
|
||||||
|
if target == current:
|
||||||
|
buttons.append("a")
|
||||||
|
else:
|
||||||
|
print "Finding the shortest path between " + current + " and " + target
|
||||||
|
more_buttons = shortest_path(current, target)
|
||||||
|
buttons.extend(more_buttons)
|
||||||
|
buttons.append("a")
|
||||||
|
current = target
|
||||||
|
return buttons
|
||||||
|
|
21
gbhw.asm
21
gbhw.asm
@ -1,5 +1,26 @@
|
|||||||
; Graciously aped from http://nocash.emubase.de/pandocs.htm .
|
; Graciously aped from http://nocash.emubase.de/pandocs.htm .
|
||||||
|
|
||||||
|
; MBC3
|
||||||
|
MBC3SRamEnable EQU $0000
|
||||||
|
MBC3RomBank EQU $2000
|
||||||
|
MBC3SRamBank EQU $4000
|
||||||
|
MBC3LatchClock EQU $6000
|
||||||
|
MBC3RTC EQU $a000
|
||||||
|
|
||||||
|
SRAM_DISABLE EQU $00
|
||||||
|
SRAM_ENABLE EQU $0a
|
||||||
|
|
||||||
|
RTC_S EQU $08 ; Seconds 0-59 (0-3Bh)
|
||||||
|
RTC_M EQU $09 ; Minutes 0-59 (0-3Bh)
|
||||||
|
RTC_H EQU $0a ; Hours 0-23 (0-17h)
|
||||||
|
RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh)
|
||||||
|
RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag
|
||||||
|
; Bit 0 Most significant bit of Day Counter (Bit 8)
|
||||||
|
; Bit 6 Halt (0=Active, 1=Stop Timer)
|
||||||
|
; Bit 7 Day Counter Carry Bit (1=Counter Overflow)
|
||||||
|
|
||||||
|
|
||||||
|
; Hardware registers
|
||||||
rJOYP EQU $ff00 ; Joypad (R/W)
|
rJOYP EQU $ff00 ; Joypad (R/W)
|
||||||
rSB EQU $ff01 ; Serial transfer data (R/W)
|
rSB EQU $ff01 ; Serial transfer data (R/W)
|
||||||
rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
rSC EQU $ff02 ; Serial Transfer Control (R/W)
|
||||||
|
60
hram.asm
Normal file
60
hram.asm
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
hPushOAM EQU $ff80
|
||||||
|
|
||||||
|
hBuffer EQU $ff8b
|
||||||
|
|
||||||
|
hRTCDayHi EQU $ff8d
|
||||||
|
hRTCDayLo EQU $ff8e
|
||||||
|
hRTCHours EQU $ff8f
|
||||||
|
hRTCMinutes EQU $ff90
|
||||||
|
hRTCSeconds EQU $ff91
|
||||||
|
|
||||||
|
hHours EQU $ff94
|
||||||
|
|
||||||
|
hMinutes EQU $ff96
|
||||||
|
|
||||||
|
hSeconds EQU $ff98
|
||||||
|
|
||||||
|
hROMBank EQU $ff9d
|
||||||
|
|
||||||
|
hJoypadReleased EQU $ffa2
|
||||||
|
hJoypadPressed EQU $ffa3
|
||||||
|
hJoypadDown EQU $ffa4
|
||||||
|
hJoypadSum EQU $ffa5
|
||||||
|
hJoyReleased EQU $ffa6
|
||||||
|
hJoyPressed EQU $ffa7
|
||||||
|
hJoyDown EQU $ffa8
|
||||||
|
|
||||||
|
hPastLeadingZeroes EQU $ffb3
|
||||||
|
|
||||||
|
hDividend EQU $ffb3
|
||||||
|
hDivisor EQU $ffb7
|
||||||
|
hQuotient EQU $ffb4
|
||||||
|
|
||||||
|
hMultiplicand EQU $ffb4
|
||||||
|
hMultiplier EQU $ffb7
|
||||||
|
hProduct EQU $ffb3
|
||||||
|
|
||||||
|
hMathBuffer EQU $ffb8
|
||||||
|
|
||||||
|
hLCDStatCustom EQU $ffc6
|
||||||
|
|
||||||
|
hBGMapMode EQU $ffd4
|
||||||
|
hBGMapThird EQU $ffd5
|
||||||
|
hBGMapAddress EQU $ffd6
|
||||||
|
|
||||||
|
hOAMUpdate EQU $ffd8
|
||||||
|
hSPBuffer EQU $ffd9
|
||||||
|
|
||||||
|
hBGMapUpdate EQU $ffdb
|
||||||
|
|
||||||
|
hTileAnimFrame EQU $ffdf
|
||||||
|
|
||||||
|
hRandomAdd EQU $ffe1
|
||||||
|
hRandomSub EQU $ffe2
|
||||||
|
|
||||||
|
hBattleTurn EQU $ffe4
|
||||||
|
hCGBPalUpdate EQU $ffe5
|
||||||
|
hCGB EQU $ffe6
|
||||||
|
hSGB EQU $ffe7
|
||||||
|
hDMATransfer EQU $ffe8
|
||||||
|
|
2053
items/item_attributes.asm
Normal file
2053
items/item_attributes.asm
Normal file
File diff suppressed because it is too large
Load Diff
54
joypad.asm
54
joypad.asm
@ -9,9 +9,9 @@ JoypadInt: ; 92e
|
|||||||
ClearJoypadPublic: ; 92f
|
ClearJoypadPublic: ; 92f
|
||||||
xor a
|
xor a
|
||||||
; Pressed this frame (delta)
|
; Pressed this frame (delta)
|
||||||
ld [$ffa7], a
|
ld [hJoyPressed], a
|
||||||
; Currently pressed
|
; Currently pressed
|
||||||
ld [$ffa8], a
|
ld [hJoyDown], a
|
||||||
ret
|
ret
|
||||||
; 935
|
; 935
|
||||||
|
|
||||||
@ -22,10 +22,10 @@ Joypad: ; 935
|
|||||||
|
|
||||||
; Updates:
|
; Updates:
|
||||||
|
|
||||||
; $ffa2: released this frame (delta)
|
; hJoypadReleased: released this frame (delta)
|
||||||
; $ffa3: pressed this frame (delta)
|
; hJoypadPressed: pressed this frame (delta)
|
||||||
; $ffa4: currently pressed
|
; hJoypadDown: currently pressed
|
||||||
; $ffa5: pressed so far
|
; hJoypadSum: pressed so far
|
||||||
|
|
||||||
; Any of these three bits can be used to disable input.
|
; Any of these three bits can be used to disable input.
|
||||||
ld a, [$cfbe]
|
ld a, [$cfbe]
|
||||||
@ -76,27 +76,27 @@ Joypad: ; 935
|
|||||||
ld [rJOYP], a
|
ld [rJOYP], a
|
||||||
|
|
||||||
; To get the delta we xor the last frame's input with the new one.
|
; To get the delta we xor the last frame's input with the new one.
|
||||||
ld a, [$ffa4] ; last frame
|
ld a, [hJoypadDown] ; last frame
|
||||||
ld e, a
|
ld e, a
|
||||||
xor b
|
xor b
|
||||||
ld d, a
|
ld d, a
|
||||||
; Released this frame:
|
; Released this frame:
|
||||||
and e
|
and e
|
||||||
ld [$ffa2], a
|
ld [hJoypadReleased], a
|
||||||
; Pressed this frame:
|
; Pressed this frame:
|
||||||
ld a, d
|
ld a, d
|
||||||
and b
|
and b
|
||||||
ld [$ffa3], a
|
ld [hJoypadPressed], a
|
||||||
|
|
||||||
; Add any new presses to the list of collective presses:
|
; Add any new presses to the list of collective presses:
|
||||||
ld c, a
|
ld c, a
|
||||||
ld a, [$ffa5]
|
ld a, [hJoypadSum]
|
||||||
or c
|
or c
|
||||||
ld [$ffa5], a
|
ld [hJoypadSum], a
|
||||||
|
|
||||||
; Currently pressed:
|
; Currently pressed:
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [$ffa4], a
|
ld [hJoypadDown], a
|
||||||
|
|
||||||
; Now that we have the input, we can do stuff with it.
|
; Now that we have the input, we can do stuff with it.
|
||||||
|
|
||||||
@ -110,11 +110,11 @@ Joypad: ; 935
|
|||||||
|
|
||||||
|
|
||||||
GetJoypadPublic: ; 984
|
GetJoypadPublic: ; 984
|
||||||
; Update mirror joypad input from $ffa4 (real input)
|
; Update mirror joypad input from hJoypadDown (real input)
|
||||||
|
|
||||||
; $ffa6: released this frame (delta)
|
; hJoyReleased: released this frame (delta)
|
||||||
; $ffa7: pressed this frame (delta)
|
; hJoyPressed: pressed this frame (delta)
|
||||||
; $ffa8: currently pressed
|
; hJoyDown: currently pressed
|
||||||
|
|
||||||
; bit 0 A
|
; bit 0 A
|
||||||
; 1 B
|
; 1 B
|
||||||
@ -137,28 +137,28 @@ GetJoypadPublic: ; 984
|
|||||||
jr z, .auto
|
jr z, .auto
|
||||||
|
|
||||||
; To get deltas, take this and last frame's input.
|
; To get deltas, take this and last frame's input.
|
||||||
ld a, [$ffa4] ; real input
|
ld a, [hJoypadDown] ; real input
|
||||||
ld b, a
|
ld b, a
|
||||||
ld a, [$ffa8] ; last frame mirror
|
ld a, [hJoyDown] ; last frame mirror
|
||||||
ld e, a
|
ld e, a
|
||||||
|
|
||||||
; Released this frame:
|
; Released this frame:
|
||||||
xor b
|
xor b
|
||||||
ld d, a
|
ld d, a
|
||||||
and e
|
and e
|
||||||
ld [$ffa6], a
|
ld [hJoyReleased], a
|
||||||
|
|
||||||
; Pressed this frame:
|
; Pressed this frame:
|
||||||
ld a, d
|
ld a, d
|
||||||
and b
|
and b
|
||||||
ld [$ffa7], a
|
ld [hJoyPressed], a
|
||||||
|
|
||||||
; It looks like the collective presses got commented out here.
|
; It looks like the collective presses got commented out here.
|
||||||
ld c, a
|
ld c, a
|
||||||
|
|
||||||
; Currently pressed:
|
; Currently pressed:
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [$ffa8], a ; frame input
|
ld [hJoyDown], a ; frame input
|
||||||
|
|
||||||
.quit
|
.quit
|
||||||
pop bc
|
pop bc
|
||||||
@ -174,7 +174,7 @@ GetJoypadPublic: ; 984
|
|||||||
; A value of $ff will immediately end the stream.
|
; A value of $ff will immediately end the stream.
|
||||||
|
|
||||||
; Read from the input stream.
|
; Read from the input stream.
|
||||||
ld a, [$ff9d]
|
ld a, [hROMBank]
|
||||||
push af
|
push af
|
||||||
ld a, [AutoInputBank]
|
ld a, [AutoInputBank]
|
||||||
rst Bankswitch
|
rst Bankswitch
|
||||||
@ -232,8 +232,8 @@ GetJoypadPublic: ; 984
|
|||||||
pop af
|
pop af
|
||||||
rst Bankswitch
|
rst Bankswitch
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [$ffa7], a ; pressed
|
ld [hJoyPressed], a ; pressed
|
||||||
ld [$ffa8], a ; input
|
ld [hJoyDown], a ; input
|
||||||
jr .quit
|
jr .quit
|
||||||
; 9ee
|
; 9ee
|
||||||
|
|
||||||
@ -251,9 +251,9 @@ StartAutoInput: ; 9ee
|
|||||||
ld [AutoInputLength], a
|
ld [AutoInputLength], a
|
||||||
; Reset input mirrors.
|
; Reset input mirrors.
|
||||||
xor a
|
xor a
|
||||||
ld [$ffa7], a ; pressed this frame
|
ld [hJoyPressed], a ; pressed this frame
|
||||||
ld [$ffa6], a ; released this frame
|
ld [hJoyReleased], a ; released this frame
|
||||||
ld [$ffa8], a ; currently pressed
|
ld [hJoyDown], a ; currently pressed
|
||||||
|
|
||||||
ld a, AUTO_INPUT
|
ld a, AUTO_INPUT
|
||||||
ld [InputType], a
|
ld [InputType], a
|
||||||
|
@ -4,7 +4,7 @@ BattleTower1F_MapScriptHeader: ; 0x9e393
|
|||||||
|
|
||||||
; triggers
|
; triggers
|
||||||
dw UnknownScript_0x9e39d, $0000
|
dw UnknownScript_0x9e39d, $0000
|
||||||
dw $63d3, $0000
|
dw UnknownScript_0x9e3d3, $0000
|
||||||
|
|
||||||
; callback count
|
; callback count
|
||||||
db 0
|
db 0
|
||||||
@ -39,6 +39,7 @@ UnknownScript_0x9e3c7: ; 0x9e3c7
|
|||||||
special $0086
|
special $0086
|
||||||
UnknownScript_0x9e3d1: ; 0x9e3d1
|
UnknownScript_0x9e3d1: ; 0x9e3d1
|
||||||
dotrigger $1
|
dotrigger $1
|
||||||
|
UnknownScript_0x9e3d3: ; 0x9e3d3
|
||||||
end
|
end
|
||||||
; 0x9e3d4
|
; 0x9e3d4
|
||||||
|
|
||||||
@ -57,7 +58,7 @@ UnknownScript_0x9e3e0: ; 0x9e3e0
|
|||||||
UnknownScript_0x9e3e2: ; 0x9e3e2
|
UnknownScript_0x9e3e2: ; 0x9e3e2
|
||||||
writebyte $2
|
writebyte $2
|
||||||
special $0086
|
special $0086
|
||||||
if_equal $3, $74e4 ; wtf ?
|
if_equal $3, BattleTowerBattleRoomScript_0x9f4e4
|
||||||
loadfont
|
loadfont
|
||||||
2writetext UnknownText_0x9e5ab
|
2writetext UnknownText_0x9e5ab
|
||||||
keeptextopen
|
keeptextopen
|
||||||
@ -119,7 +120,7 @@ UnknownScript_0x9e454: ; 0x9e454
|
|||||||
warpsound
|
warpsound
|
||||||
disappear $2
|
disappear $2
|
||||||
stopfollow
|
stopfollow
|
||||||
applymovement $0, $6576
|
applymovement $0, MovementData_0x9e576
|
||||||
warpcheck
|
warpcheck
|
||||||
end
|
end
|
||||||
; 0x9e47a
|
; 0x9e47a
|
||||||
@ -177,9 +178,21 @@ UnknownScript_0x9e4bb: ; 0x9e4bb
|
|||||||
end
|
end
|
||||||
; 0x9e4be
|
; 0x9e4be
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$9e4be,$9e4e4 - $9e4be
|
|
||||||
|
|
||||||
UnknownScript_0x9e4e4: ; 0x9e4e4
|
UnknownScript_0x9e4be: ; 0x9e4be
|
||||||
|
2writetext UnknownText_0x9ef1f
|
||||||
|
yesorno
|
||||||
|
iffalse UnknownScript_0x9e3fc
|
||||||
|
special $0004
|
||||||
|
iffalse UnknownScript_0x9e3fc
|
||||||
|
writebyte $1
|
||||||
|
special $0086
|
||||||
|
special $0075
|
||||||
|
if_equal $a, UnknownScript_0x9e3fc
|
||||||
|
if_not_equal $0, UnknownScript_0x9e550
|
||||||
|
2writetext UnknownText_0x9e9eb
|
||||||
|
spriteface $2, $2
|
||||||
|
2writetext UnknownText_0x9ea1b
|
||||||
closetext
|
closetext
|
||||||
spriteface $2, $0
|
spriteface $2, $0
|
||||||
loadmovesprites
|
loadmovesprites
|
||||||
@ -282,6 +295,7 @@ MovementData_0x9e571: ; 0x9e571
|
|||||||
step_up
|
step_up
|
||||||
step_up
|
step_up
|
||||||
step_up
|
step_up
|
||||||
|
MovementData_0x9e576: ; 0x9e576
|
||||||
step_up
|
step_up
|
||||||
step_end
|
step_end
|
||||||
; 0x9e578
|
; 0x9e578
|
||||||
|
@ -108,6 +108,7 @@ UnknownScript_0x9f4d9: ; 0x9f4d9
|
|||||||
pause 60
|
pause 60
|
||||||
special $002f
|
special $002f
|
||||||
warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
|
warpfacing $1, GROUP_BATTLE_TOWER_1F, MAP_BATTLE_TOWER_1F, $7, $7
|
||||||
|
BattleTowerBattleRoomScript_0x9f4e4: ; 0x9f4e4
|
||||||
loadfont
|
loadfont
|
||||||
2writetext UnknownText_0x9eaef
|
2writetext UnknownText_0x9eaef
|
||||||
2jump UnknownScript_0x9e47a
|
2jump UnknownScript_0x9e47a
|
||||||
@ -136,7 +137,12 @@ UnknownScript_0x9f4f7: ; 0x9f4f7
|
|||||||
end
|
end
|
||||||
; 0x9f50b
|
; 0x9f50b
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$9f50b,$9f52e-$9f50b
|
|
||||||
|
UnknownText_0x9f50b: ; 0x9f50b
|
||||||
|
db $0, "You'll be returned", $4f
|
||||||
|
db "after you SAVE.", $57
|
||||||
|
; 0x9f52e
|
||||||
|
|
||||||
|
|
||||||
BattleTowerBattleRoom_MapEventHeader: ; 0x9f52e
|
BattleTowerBattleRoom_MapEventHeader: ; 0x9f52e
|
||||||
; filler
|
; filler
|
||||||
|
@ -21,11 +21,25 @@ UnknownScript_0x9f5c0: ; 0x9f5c0
|
|||||||
|
|
||||||
UnknownScript_0x9f5c1: ; 0x9f5c1
|
UnknownScript_0x9f5c1: ; 0x9f5c1
|
||||||
follow $2, $0
|
follow $2, $0
|
||||||
3callasm $27, $75cb
|
3callasm BANK(Function_0x9f5cb), Function_0x9f5cb
|
||||||
2jump UnknownScript_0x9f5dc
|
2jump UnknownScript_0x9f5dc
|
||||||
; 0x9f5cb
|
; 0x9f5cb
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$9f5cb,$9f5dc - $9f5cb
|
|
||||||
|
Function_0x9f5cb: ; 0x9f5cb
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
|
||||||
|
ld a, 3
|
||||||
|
ld [rSVBK], a
|
||||||
|
ld a, [$d800]
|
||||||
|
ld [ScriptVar], a
|
||||||
|
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
ret
|
||||||
|
; 0x9f5dc
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x9f5dc: ; 0x9f5dc
|
UnknownScript_0x9f5dc: ; 0x9f5dc
|
||||||
if_equal $3, UnknownScript_0x9f603
|
if_equal $3, UnknownScript_0x9f603
|
||||||
|
1
maps/BetaAlphRuinUnsolvedPuzzleRoom.blk
Normal file
1
maps/BetaAlphRuinUnsolvedPuzzleRoom.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
,+
|
10
maps/BetaAzaleaTown.blk
Normal file
10
maps/BetaAzaleaTown.blk
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
aaaaaaaaFDaaaaaaaaaaaaaaaaaFDaaaaaaaaaaaaaaaaaFHIIaaaaaaBaaaFaaaaaaFaFaaaHJGFee>aacaaaFaaaadeefaaaaFGbaaaaaaaaFDaaaaaaaFaaDaU
|
||||||
|
aaaaaaaHIY
|
||||||
|
aaaaaaa~zU
|
||||||
|
aaaaaaa5Y
|
||||||
|
aaaaa@AAAA5z
|
||||||
|
vvvUaaaaaaaaaaa552955zvvvvvvvvvv
|
||||||
|
aa55551111111111111
|
||||||
|
|
||||||
|
a555555555555555552
|
||||||
|
a
|
1
maps/BetaBlackthornCity.blk
Normal file
1
maps/BetaBlackthornCity.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
hqqqqqqqqqqqqqqqqqqqhqorrrrrrrrrnqqqqqqqhqiaKeWaKeWahqqqqqqqhqieKaWWWaeWhqorrnqqhqiaWWKWeaWehqi !hqqhqiKWWeeaWWahqi$%hqqhqieKeaWWeeehqi$%hqqhqiaKaWeeWaahqi$%hqqlrmKeWWaWeWahqi()hqqKaWKaWaeWlrmtuhqqWWWWWWKaWWWWWWhqqhqqlrrG
|
1
maps/BetaBlank.blk
Normal file
1
maps/BetaBlank.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
8
maps/BetaCave.blk
Normal file
8
maps/BetaCave.blk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
5
maps/BetaCave2.blk
Normal file
5
maps/BetaCave2.blk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
(+
|
||||||
|
)*
|
||||||
|
|
||||||
|
|
18
maps/BetaCaveTestMap.blk
Normal file
18
maps/BetaCaveTestMap.blk
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
;< ;6<
|
||||||
|
|
||||||
|
589:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5
6
|
||||||
|
|
1
maps/BetaCeladonMansion.blk
Normal file
1
maps/BetaCeladonMansion.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
? +,/
|
9
maps/BetaCherrygroveCity.blk
Normal file
9
maps/BetaCherrygroveCity.blk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
aaaaaaaa
|
||||||
|
|
||||||
|
a6
|
||||||
|
a6YEa6Y,-6YG./a52vUa551
|
||||||
|
|
||||||
|
aaaaa5555
|
||||||
|
|
||||||
|
aaaa
|
1
maps/BetaCianwoodCity.blk
Normal file
1
maps/BetaCianwoodCity.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
aaaaXaaTyaaX5ETy5Tv455aTvvyfaXYaaXYEaaeaaa
|
2
maps/BetaCinnabarIslandPokemonLabHallway.blk
Normal file
2
maps/BetaCinnabarIslandPokemonLabHallway.blk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
|
2
maps/BetaCinnabarIslandPokemonLabRoom1.blk
Normal file
2
maps/BetaCinnabarIslandPokemonLabRoom1.blk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
|
1
maps/BetaCinnabarIslandPokemonLabRoom2.blk
Normal file
1
maps/BetaCinnabarIslandPokemonLabRoom2.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaCinnabarIslandPokemonLabRoom3.blk
Normal file
1
maps/BetaCinnabarIslandPokemonLabRoom3.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaElevator.blk
Normal file
1
maps/BetaElevator.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
&$$$%$$$$$$$$$$$$$$$$$$
|
15
maps/BetaEmptyHouse.blk
Normal file
15
maps/BetaEmptyHouse.blk
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%
|
||||||
|
|
||||||
|
|
10
maps/BetaGoldenrodCity.blk
Normal file
10
maps/BetaGoldenrodCity.blk
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FD
|
||||||
|
|
||||||
|
JHU !Y$#Y"HEzv%&IIIIIIIIJII55)* @-.EAAAAAAAAAAFIHIJEEvvU55YY@AEYDFYHFzU5
|
||||||
|
|
||||||
|
B
@55
|
||||||
|
|
||||||
|
F~D
|
1
maps/BetaHerosHouse.blk
Normal file
1
maps/BetaHerosHouse.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
!"
|
1
maps/BetaHouse.blk
Normal file
1
maps/BetaHouse.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
*+,*-.12/0/
|
1
maps/BetaHouse2.blk
Normal file
1
maps/BetaHouse2.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
?',9..',9
|
1
maps/BetaIlexForest.blk
Normal file
1
maps/BetaIlexForest.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
hqqqqqihqqqqqilrrsm
|
1
maps/BetaLakeOfRage.blk
Normal file
1
maps/BetaLakeOfRage.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
\^af\a\^afG^f\\f>^fTU^abfd?fdTvyY>dG\fd\X55Ya^d?f^Tvy55Y<d`f\\Ty555Y`f]\?\aX555Y\\^?Tvvy555Y^<fTvy555555Y^bd\bf^X5555555Ydf\ffTy5555555Y\b\af\fX55555Ya^d<d\daX555Yfd\\G`f^^\<G^\<bad>>e\adfa
|
1
maps/BetaMahoganyTown.blk
Normal file
1
maps/BetaMahoganyTown.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
`N=`RZW,-G./WEZWWG?
|
1
maps/BetaNewBarkTown.blk
Normal file
1
maps/BetaNewBarkTown.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
^]?II~IDGaaHTvEX5@~~{XDGGXHIIIIIIIaXvvvvvvvvv1
|
4
maps/BetaOlivineCity.blk
Normal file
4
maps/BetaOlivineCity.blk
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
FDIJHIIIFDFZFDFDFFZFFZFFDFFZFAABFZFFDF|}FTvvvvvvvvvUDF|}FXYX55YDF|}FXYX55YHIIIJ|}FXYX556vvv
|
||||||
|
|
||||||
|
JXYX5545552
|
||||||
|
Xzvvvvy55255552vvvy555
555550555552995555~5555:5555
|
2
maps/BetaPewterMuseumOfScience1F.blk
Normal file
2
maps/BetaPewterMuseumOfScience1F.blk
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
!&!&
|
1
maps/BetaPewterMuseumOfScience2F.blk
Normal file
1
maps/BetaPewterMuseumOfScience2F.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
012!
|
1
maps/BetaPokecenterMainHouse.blk
Normal file
1
maps/BetaPokecenterMainHouse.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
'
|
1
maps/BetaPokecenterTradeStation.blk
Normal file
1
maps/BetaPokecenterTradeStation.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
'
|
5
maps/BetaRocketHideout1.blk
Normal file
5
maps/BetaRocketHideout1.blk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
:?
<?
)
|
||||||
|
|
||||||
|
?
)
==
>>
"!
89
*>
*
89
:?:?
)
;?;?
)
?
<?<?
)
?
)
?
|
||||||
|
)
*
,-.,//////////-
|
4
maps/BetaRocketHideout2.blk
Normal file
4
maps/BetaRocketHideout2.blk
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
>:)
><)
>>
)89
>>
8:
::?
?<
<<?
*
?
)
*
),/////////////-
|
5
maps/BetaRocketHideout3.blk
Normal file
5
maps/BetaRocketHideout3.blk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
+=1,////?
|
||||||
|
=== :?5////4???
<?105//
)==
>>:)5//////>89<)
|
||||||
|
,/////->>>> 18899///=
|
||||||
|
5///->:?1 =
|
||||||
|
><?
>?
?
,/////-,////-
|
7
maps/BetaRoute23EarlyVersion.blk
Normal file
7
maps/BetaRoute23EarlyVersion.blk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
!
|
||||||
|
|
||||||
|
ohi
|
||||||
|
omhi!nm7:~nm'nm'nm'nm'nm'nm'nm'nm
|
||||||
|
^
|
||||||
|
noo
!hihi
|
3
maps/BetaSproutTower1.blk
Normal file
3
maps/BetaSproutTower1.blk
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
9
maps/BetaSproutTower2.blk
Normal file
9
maps/BetaSproutTower2.blk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
7
maps/BetaSproutTower3.blk
Normal file
7
maps/BetaSproutTower3.blk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
9
maps/BetaSproutTower5.blk
Normal file
9
maps/BetaSproutTower5.blk
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
4
maps/BetaSproutTower6.blk
Normal file
4
maps/BetaSproutTower6.blk
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
8
maps/BetaSproutTower7.blk
Normal file
8
maps/BetaSproutTower7.blk
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
5
maps/BetaSproutTower8.blk
Normal file
5
maps/BetaSproutTower8.blk
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1
maps/BetaSproutTower9.blk
Normal file
1
maps/BetaSproutTower9.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaSproutTowerCutOut1.blk
Normal file
1
maps/BetaSproutTowerCutOut1.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaSproutTowerCutOut2.blk
Normal file
1
maps/BetaSproutTowerCutOut2.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaSproutTowerCutOut3.blk
Normal file
1
maps/BetaSproutTowerCutOut3.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaSsAquaInsideCutOut.blk
Normal file
1
maps/BetaSsAquaInsideCutOut.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
maps/BetaTeakCity.blk
Normal file
1
maps/BetaTeakCity.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
?eeeeeeeeeeeb !bb$%b>$%`&;',-&'`$%`*"+#/*+aE$%dg,-b()#/tuWZWVWVWVWZ@AABGTU !FXY$%&'XYa$%*+VVZVVVVVVZaa()EatuIIJ~{@AAAAA HII
|
1
maps/BetaUnknown.blk
Normal file
1
maps/BetaUnknown.blk
Normal file
@ -0,0 +1 @@
|
|||||||
|
(
|
7
maps/BetaVioletCity.blk
Normal file
7
maps/BetaVioletCity.blk
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
??&;'TU&;'b?*"+XY*"+?=G^bXYTU]]]]]]]]]]]]]XYXYXYb`b !`GbD$%F`
|
||||||
|
&;'
|
||||||
|
bD()F`G*"+
|
||||||
|
eeebDtuF`
|
||||||
|
|
||||||
|
AEA
|
||||||
|
bpk`bsm`=]E`G`G?e`b`?eeeeeeeeeef`b
|
@ -11,11 +11,59 @@ BlackthornGym2F_MapScriptHeader: ; 0x195722
|
|||||||
; 0x195727
|
; 0x195727
|
||||||
|
|
||||||
UnknownScript_0x195727: ; 0x195727
|
UnknownScript_0x195727: ; 0x195727
|
||||||
writecmdqueue $572b
|
writecmdqueue CmdQueue_0x19572b
|
||||||
return
|
return
|
||||||
; 0x19572b
|
; 0x19572b
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$19572b,$33
|
CmdQueue_0x19572b: ; 0x19572b
|
||||||
|
dbw 2, StoneTable_0x195730 ; check if any stones are sitting on a warp
|
||||||
|
db 0, 0 ; filler
|
||||||
|
; 0x195730
|
||||||
|
|
||||||
|
StoneTable_0x195730: ; 0x195730
|
||||||
|
db 5, 4 ; warp, person
|
||||||
|
dw UnknownScript_0x19573d
|
||||||
|
|
||||||
|
db 3, 5 ; warp, person
|
||||||
|
dw UnknownScript_0x195742
|
||||||
|
|
||||||
|
db 4, 6 ; warp, person
|
||||||
|
dw UnknownScript_0x195747
|
||||||
|
|
||||||
|
db $ff ; end
|
||||||
|
; 0x19573d
|
||||||
|
|
||||||
|
UnknownScript_0x19573d: ; 0x19573d
|
||||||
|
disappear 4
|
||||||
|
2jump UnknownScript_0x19574c
|
||||||
|
; 0x195742
|
||||||
|
|
||||||
|
UnknownScript_0x195742: ; 0x195742
|
||||||
|
disappear 5
|
||||||
|
2jump UnknownScript_0x19574c
|
||||||
|
; 0x195747
|
||||||
|
|
||||||
|
UnknownScript_0x195747: ; 0x195747
|
||||||
|
disappear 6
|
||||||
|
2jump UnknownScript_0x19574c
|
||||||
|
; 0x19574c
|
||||||
|
|
||||||
|
UnknownScript_0x19574c: ; 0x19574c
|
||||||
|
pause 30
|
||||||
|
2call UnknownScript_0x195758
|
||||||
|
loadfont
|
||||||
|
2writetext UnknownText_0x1958a5
|
||||||
|
closetext
|
||||||
|
loadmovesprites
|
||||||
|
end
|
||||||
|
; 0x195758
|
||||||
|
|
||||||
|
UnknownScript_0x195758: ; 0x195758
|
||||||
|
playsound $001b
|
||||||
|
earthquake 80
|
||||||
|
end
|
||||||
|
; 0x19575e
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x19575e: ; 0x19575e
|
UnknownScript_0x19575e: ; 0x19575e
|
||||||
jumpstd $000e
|
jumpstd $000e
|
||||||
|
@ -28,7 +28,7 @@ MapCeladonDeptStore6FSignpost5Script: ; 0x71180
|
|||||||
2writetext UnknownText_0x71250
|
2writetext UnknownText_0x71250
|
||||||
UnknownScript_0x71184: ; 0x71184
|
UnknownScript_0x71184: ; 0x71184
|
||||||
special $0051
|
special $0051
|
||||||
loadmenudata $5203
|
loadmenudata MenuDataHeader_0x71203
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x7119a
|
if_equal $1, UnknownScript_0x7119a
|
||||||
@ -89,8 +89,24 @@ UnknownScript_0x711fc: ; 0x711fc
|
|||||||
2jump UnknownScript_0x71184
|
2jump UnknownScript_0x71184
|
||||||
; 0x71203
|
; 0x71203
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$71203,$47
|
MenuDataHeader_0x71203: ; 0x71203
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x7120b
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x7120b
|
||||||
|
|
||||||
|
MenuData2_0x7120b: ; 0x7120b
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "FRESH WATER ¥200@"
|
||||||
|
db "SODA POP ¥300@"
|
||||||
|
db "LEMONADE ¥350@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x71249
|
||||||
|
|
||||||
|
|
||||||
MapCeladonDeptStore6FSignpost0Script: ; 0x7124a
|
MapCeladonDeptStore6FSignpost0Script: ; 0x7124a
|
||||||
jumptext UnknownText_0x7133e
|
jumptext UnknownText_0x7133e
|
||||||
|
@ -8,7 +8,7 @@ CeladonDeptStoreElevator_MapScriptHeader: ; 0x713ab
|
|||||||
|
|
||||||
MapCeladonDeptStoreElevatorSignpost0Script: ; 0x713ad
|
MapCeladonDeptStoreElevatorSignpost0Script: ; 0x713ad
|
||||||
loadfont
|
loadfont
|
||||||
elevator $53be
|
elevator Elevator_0x713be
|
||||||
loadmovesprites
|
loadmovesprites
|
||||||
iffalse UnknownScript_0x713bd
|
iffalse UnknownScript_0x713bd
|
||||||
pause 5
|
pause 5
|
||||||
@ -19,19 +19,18 @@ UnknownScript_0x713bd: ; 0x713bd
|
|||||||
end
|
end
|
||||||
; 0x713be
|
; 0x713be
|
||||||
|
|
||||||
; elevator
|
|
||||||
UnknownText_0x713be: ; 0x713be
|
|
||||||
text_waitbutton
|
|
||||||
text_box $1504, 5, 5
|
|
||||||
store_at $615
|
|
||||||
text_waitbutton
|
|
||||||
store_at $715
|
|
||||||
text_dunno2
|
|
||||||
store_at $815
|
|
||||||
start_asm
|
|
||||||
; 0x713d0
|
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$713d0,$713d8 - $713d0
|
Elevator_0x713be: ; 0x713be
|
||||||
|
db 6 ; floors
|
||||||
|
db _1F, 4, GROUP_CELADON_DEPT_STORE_1F, MAP_CELADON_DEPT_STORE_1F
|
||||||
|
db _2F, 3, GROUP_CELADON_DEPT_STORE_2F, MAP_CELADON_DEPT_STORE_2F
|
||||||
|
db _3F, 3, GROUP_CELADON_DEPT_STORE_3F, MAP_CELADON_DEPT_STORE_3F
|
||||||
|
db _4F, 3, GROUP_CELADON_DEPT_STORE_4F, MAP_CELADON_DEPT_STORE_4F
|
||||||
|
db _5F, 3, GROUP_CELADON_DEPT_STORE_5F, MAP_CELADON_DEPT_STORE_5F
|
||||||
|
db _6F, 2, GROUP_CELADON_DEPT_STORE_6F, MAP_CELADON_DEPT_STORE_6F
|
||||||
|
db $ff ; end
|
||||||
|
; 0x713d8
|
||||||
|
|
||||||
|
|
||||||
CeladonDeptStoreElevator_MapEventHeader: ; 0x713d8
|
CeladonDeptStoreElevator_MapEventHeader: ; 0x713d8
|
||||||
; filler
|
; filler
|
||||||
|
@ -24,7 +24,7 @@ MapCeladonGameCornerPrizeRoomSignpost0Script: ; 0x726ef
|
|||||||
2writetext UnknownText_0x72974
|
2writetext UnknownText_0x72974
|
||||||
UnknownScript_0x726fd: ; 0x726fd
|
UnknownScript_0x726fd: ; 0x726fd
|
||||||
special $004f
|
special $004f
|
||||||
loadmenudata $6790
|
loadmenudata MenuDataHeader_0x72790
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x72714
|
if_equal $1, UnknownScript_0x72714
|
||||||
@ -111,8 +111,24 @@ UnknownScript_0x7278a: ; 0x7278a
|
|||||||
end
|
end
|
||||||
; 0x72790
|
; 0x72790
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$72790,$38
|
MenuDataHeader_0x72790: ; 0x72790
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 15 ; end coords
|
||||||
|
dw MenuData2_0x72798
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x72798
|
||||||
|
|
||||||
|
MenuData2_0x72798: ; 0x72798
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "TM32 1500@"
|
||||||
|
db "TM29 3500@"
|
||||||
|
db "TM15 7500@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x727c8
|
||||||
|
|
||||||
|
|
||||||
MapCeladonGameCornerPrizeRoomSignpost1Script: ; 0x727c8
|
MapCeladonGameCornerPrizeRoomSignpost1Script: ; 0x727c8
|
||||||
faceplayer
|
faceplayer
|
||||||
@ -124,7 +140,7 @@ MapCeladonGameCornerPrizeRoomSignpost1Script: ; 0x727c8
|
|||||||
UnknownScript_0x727d3: ; 0x727d3
|
UnknownScript_0x727d3: ; 0x727d3
|
||||||
2writetext UnknownText_0x72974
|
2writetext UnknownText_0x72974
|
||||||
special $004f
|
special $004f
|
||||||
loadmenudata $6877
|
loadmenudata MenuDataHeader_0x72877
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x727ed
|
if_equal $1, UnknownScript_0x727ed
|
||||||
@ -190,8 +206,24 @@ UnknownScript_0x72849: ; 0x72849
|
|||||||
2jump UnknownScript_0x727d3
|
2jump UnknownScript_0x727d3
|
||||||
; 0x72877
|
; 0x72877
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$72877,$41
|
MenuDataHeader_0x72877: ; 0x72877
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 17 ; end coords
|
||||||
|
dw MenuData2_0x7287f
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x7287f
|
||||||
|
|
||||||
|
MenuData2_0x7287f: ; 0x7287f
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "PIKACHU 2222@"
|
||||||
|
db "PORYGON 5555@"
|
||||||
|
db "LARVITAR 8888@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x728b8
|
||||||
|
|
||||||
|
|
||||||
UnknownText_0x728b8: ; 0x728b8
|
UnknownText_0x728b8: ; 0x728b8
|
||||||
db $0, "I wanted PORYGON,", $4f
|
db $0, "I wanted PORYGON,", $4f
|
||||||
|
@ -29,7 +29,7 @@ UnknownScript_0x18d030: ; 0x18d030
|
|||||||
setbit1 $0001
|
setbit1 $0001
|
||||||
2writetext UnknownText_0x18d3bc
|
2writetext UnknownText_0x18d3bc
|
||||||
keeptextopen
|
keeptextopen
|
||||||
loadmenudata $5215
|
loadmenudata MenuDataHeader_0x18d215
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x18d0a9
|
if_equal $1, UnknownScript_0x18d0a9
|
||||||
@ -42,7 +42,7 @@ UnknownScript_0x18d049: ; 0x18d049
|
|||||||
setbit1 $0002
|
setbit1 $0002
|
||||||
2writetext UnknownText_0x18d3d3
|
2writetext UnknownText_0x18d3d3
|
||||||
keeptextopen
|
keeptextopen
|
||||||
loadmenudata $5234
|
loadmenudata MenuDataHeader_0x18d234
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x18d0a9
|
if_equal $1, UnknownScript_0x18d0a9
|
||||||
@ -52,7 +52,7 @@ UnknownScript_0x18d061: ; 0x18d061
|
|||||||
setbit1 $0003
|
setbit1 $0003
|
||||||
2writetext UnknownText_0x18d3f3
|
2writetext UnknownText_0x18d3f3
|
||||||
keeptextopen
|
keeptextopen
|
||||||
loadmenudata $5258
|
loadmenudata MenuDataHeader_0x18d258
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x18d0cb
|
if_equal $1, UnknownScript_0x18d0cb
|
||||||
@ -62,7 +62,7 @@ UnknownScript_0x18d079: ; 0x18d079
|
|||||||
setbit1 $0004
|
setbit1 $0004
|
||||||
2writetext UnknownText_0x18d420
|
2writetext UnknownText_0x18d420
|
||||||
keeptextopen
|
keeptextopen
|
||||||
loadmenudata $5283
|
loadmenudata MenuDataHeader_0x18d283
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x18d0a9
|
if_equal $1, UnknownScript_0x18d0a9
|
||||||
@ -72,7 +72,7 @@ UnknownScript_0x18d091: ; 0x18d091
|
|||||||
setbit1 $0005
|
setbit1 $0005
|
||||||
2writetext UnknownText_0x18d44a
|
2writetext UnknownText_0x18d44a
|
||||||
keeptextopen
|
keeptextopen
|
||||||
loadmenudata $52a5
|
loadmenudata MenuDataHeader_0x18d2a5
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x18d0cb
|
if_equal $1, UnknownScript_0x18d0cb
|
||||||
@ -274,7 +274,91 @@ UnknownScript_0x18d20d: ; 0x18d20d
|
|||||||
end
|
end
|
||||||
; 0x18d215
|
; 0x18d215
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$18d215,$aa
|
|
||||||
|
MenuDataHeader_0x18d215: ; 0x18d215
|
||||||
|
db $40 ; flags
|
||||||
|
db 04, 08 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x18d21d
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x18d21d
|
||||||
|
|
||||||
|
MenuData2_0x18d21d: ; 0x18d21d
|
||||||
|
db $81 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "Pal@"
|
||||||
|
db "Underling@"
|
||||||
|
db "Friend@"
|
||||||
|
; 0x18d234
|
||||||
|
|
||||||
|
|
||||||
|
MenuDataHeader_0x18d234: ; 0x18d234
|
||||||
|
db $40 ; flags
|
||||||
|
db 04, 09 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x18d23c
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x18d23c
|
||||||
|
|
||||||
|
MenuData2_0x18d23c: ; 0x18d23c
|
||||||
|
db $81 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "Strategy@"
|
||||||
|
db "Raising@"
|
||||||
|
db "Cheating@"
|
||||||
|
; 0x18d258
|
||||||
|
|
||||||
|
|
||||||
|
MenuDataHeader_0x18d258: ; 0x18d258
|
||||||
|
db $40 ; flags
|
||||||
|
db 04, 05 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x18d260
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x18d260
|
||||||
|
|
||||||
|
MenuData2_0x18d260: ; 0x18d260
|
||||||
|
db $81 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "Weak person@"
|
||||||
|
db "Tough person@"
|
||||||
|
db "Anybody@"
|
||||||
|
; 0x18d283
|
||||||
|
|
||||||
|
|
||||||
|
MenuDataHeader_0x18d283: ; 0x18d283
|
||||||
|
db $40 ; flags
|
||||||
|
db 04, 08 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x18d28b
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x18d28b
|
||||||
|
|
||||||
|
MenuData2_0x18d28b: ; 0x18d28b
|
||||||
|
db $81 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "Love@"
|
||||||
|
db "Violence@"
|
||||||
|
db "Knowledge@"
|
||||||
|
; 0x18d2a5
|
||||||
|
|
||||||
|
|
||||||
|
MenuDataHeader_0x18d2a5: ; 0x18d2a5
|
||||||
|
db $40 ; flags
|
||||||
|
db 04, 12 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x18d2ad
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x18d2ad
|
||||||
|
|
||||||
|
MenuData2_0x18d2ad: ; 0x18d2ad
|
||||||
|
db $81 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "Tough@"
|
||||||
|
db "Both@"
|
||||||
|
db "Weak@"
|
||||||
|
; 0x18d2bf
|
||||||
|
|
||||||
|
|
||||||
MovementData_0x18d2bf: ; 0x18d2bf
|
MovementData_0x18d2bf: ; 0x18d2bf
|
||||||
slow_step_up
|
slow_step_up
|
||||||
|
@ -143,9 +143,7 @@ CooltrainerfCaraScript: ; 0x18c92a
|
|||||||
end
|
end
|
||||||
; 0x18c932
|
; 0x18c932
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$18c932,$14
|
TrainerTwinsLeaandpia1: ; 0x18c932
|
||||||
|
|
||||||
TrainerTwinsLeaandpia1: ; 0x18c946
|
|
||||||
; bit/flag number
|
; bit/flag number
|
||||||
dw $5bf
|
dw $5bf
|
||||||
|
|
||||||
@ -156,17 +154,45 @@ TrainerTwinsLeaandpia1: ; 0x18c946
|
|||||||
dw TwinsLeaandpia1SeenText
|
dw TwinsLeaandpia1SeenText
|
||||||
|
|
||||||
; text when trainer beaten
|
; text when trainer beaten
|
||||||
;dw TwinsLeaandpia1BeatenText
|
dw TwinsLeaandpia1BeatenText
|
||||||
dw $4f06
|
|
||||||
|
|
||||||
; script when lost
|
; script when lost
|
||||||
dw $0000
|
dw $0000
|
||||||
|
|
||||||
; script when talk again
|
; script when talk again
|
||||||
dw TwinsLeaandpia1Script
|
dw TwinsLeaandpia1Script
|
||||||
|
; 0x18c93e
|
||||||
|
|
||||||
|
TwinsLeaandpia1Script: ; 0x18c93e
|
||||||
|
talkaftercancel
|
||||||
|
loadfont
|
||||||
|
2writetext UnknownText_0x18ced3
|
||||||
|
closetext
|
||||||
|
loadmovesprites
|
||||||
|
end
|
||||||
|
; 0x18c946
|
||||||
|
|
||||||
|
TrainerTwinsLeaandpia2: ; 0x18c946
|
||||||
|
; bit/flag number
|
||||||
|
dw $5bf
|
||||||
|
|
||||||
|
; trainer group && trainer id
|
||||||
|
db TWINS, LEAANDPIA1
|
||||||
|
|
||||||
|
; text when seen
|
||||||
|
dw TwinsLeaandpia2SeenText
|
||||||
|
|
||||||
|
; text when trainer beaten
|
||||||
|
dw TwinsLeaandpia2BeatenText
|
||||||
|
|
||||||
|
; script when lost
|
||||||
|
dw $0000
|
||||||
|
|
||||||
|
; script when talk again
|
||||||
|
dw TwinsLeaandpia2Script
|
||||||
; 0x18c952
|
; 0x18c952
|
||||||
|
|
||||||
TwinsLeaandpia1Script: ; 0x18c952
|
TwinsLeaandpia2Script: ; 0x18c952
|
||||||
talkaftercancel
|
talkaftercancel
|
||||||
loadfont
|
loadfont
|
||||||
2writetext UnknownText_0x18cf0f
|
2writetext UnknownText_0x18cf0f
|
||||||
@ -395,7 +421,7 @@ UnknownText_0x18ce11: ; 0x18ce11
|
|||||||
db "approval.", $57
|
db "approval.", $57
|
||||||
; 0x18ceab
|
; 0x18ceab
|
||||||
|
|
||||||
UnknownText_0x18ceab: ; 0x18ceab
|
TwinsLeaandpia1SeenText: ; 0x18ceab
|
||||||
db $0, "It's a stranger we", $4f
|
db $0, "It's a stranger we", $4f
|
||||||
db "don't know.", $57
|
db "don't know.", $57
|
||||||
; 0x18cec9
|
; 0x18cec9
|
||||||
@ -409,11 +435,11 @@ UnknownText_0x18ced3: ; 0x18ced3
|
|||||||
db "to battle LANCE.", $57
|
db "to battle LANCE.", $57
|
||||||
; 0x18cef8
|
; 0x18cef8
|
||||||
|
|
||||||
TwinsLeaandpia1SeenText: ; 0x18cef8
|
TwinsLeaandpia2SeenText: ; 0x18cef8
|
||||||
db $0, "Who are you?", $57
|
db $0, "Who are you?", $57
|
||||||
; 0x18cf06
|
; 0x18cf06
|
||||||
|
|
||||||
UnknownText_0x18cf06: ; 0x18cf06
|
TwinsLeaandpia2BeatenText: ; 0x18cf06
|
||||||
db $0, "Meanie.", $57
|
db $0, "Meanie.", $57
|
||||||
; 0x18cf0f
|
; 0x18cf0f
|
||||||
|
|
||||||
@ -464,7 +490,7 @@ DragonsDenB1F_MapEventHeader: ; 0x18cf73
|
|||||||
person_event $23, 12, 24, $7, $0, 255, 255, $82, 4, TrainerCooltrainermDarin, $ffff
|
person_event $23, 12, 24, $7, $0, 255, 255, $82, 4, TrainerCooltrainermDarin, $ffff
|
||||||
person_event $24, 12, 12, $6, $0, 255, 255, $82, 3, TrainerCooltrainerfCara, $ffff
|
person_event $24, 12, 12, $6, $0, 255, 255, $82, 3, TrainerCooltrainerfCara, $ffff
|
||||||
person_event $26, 21, 8, $9, $0, 255, 255, $82, 1, $4932, $ffff
|
person_event $26, 21, 8, $9, $0, 255, 255, $82, 1, $4932, $ffff
|
||||||
person_event $26, 22, 8, $9, $0, 255, 255, $82, 1, TrainerTwinsLeaandpia1, $ffff
|
person_event $26, 22, 8, $9, $0, 255, 255, $82, 1, TrainerTwinsLeaandpia2, $ffff
|
||||||
person_event $54, 8, 34, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a1, $07bf
|
person_event $54, 8, 34, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a1, $07bf
|
||||||
person_event $54, 24, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a3, $07c0
|
person_event $54, 24, 9, $1, $0, 255, 255, $1, 0, ItemFragment_0x18c9a3, $07c0
|
||||||
; 0x18d014
|
; 0x18d014
|
||||||
|
@ -65,7 +65,7 @@ MapEarlsPokemonAcademySignpost3Script: ; 0x68a9f
|
|||||||
loadfont
|
loadfont
|
||||||
2writetext UnknownText_0x68eb2
|
2writetext UnknownText_0x68eb2
|
||||||
UnknownScript_0x68aa3: ; 0x68aa3
|
UnknownScript_0x68aa3: ; 0x68aa3
|
||||||
loadmenudata $4ae1
|
loadmenudata MenuDataHeader_0x68ae1
|
||||||
interpretmenu
|
interpretmenu
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x68abe
|
if_equal $1, UnknownScript_0x68abe
|
||||||
@ -107,8 +107,32 @@ UnknownScript_0x68ada: ; 0x68ada
|
|||||||
2jump UnknownScript_0x68aa3
|
2jump UnknownScript_0x68aa3
|
||||||
; 0x68ae1
|
; 0x68ae1
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$68ae1,$2a
|
MenuDataHeader_0x68ae1: ; 0x68ae1
|
||||||
|
db $40 ; flags
|
||||||
|
db 00, 00 ; start coords
|
||||||
|
db 08, 11 ; end coords
|
||||||
|
dw MenuData2_0x68ae9
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x68ae9
|
||||||
|
|
||||||
|
MenuData2_0x68ae9: ; 0x68ae9
|
||||||
|
db $80 ; flags
|
||||||
|
dn 3, 2 ; rows, columns
|
||||||
|
db 5 ; spacing
|
||||||
|
dbw BANK(UnknownText_0x68af2), UnknownText_0x68af2
|
||||||
|
dbw $1a, $0000
|
||||||
|
; 0x68af2
|
||||||
|
|
||||||
|
UnknownText_0x68af2: ; 0x68af2
|
||||||
|
db "PSN@"
|
||||||
|
db "PAR@"
|
||||||
|
db "SLP@"
|
||||||
|
db "BRN@"
|
||||||
|
db "FRZ@"
|
||||||
|
db "QUIT@"
|
||||||
|
; 0x68b0b
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x68b0b: ; 0x68b0b
|
UnknownScript_0x68b0b: ; 0x68b0b
|
||||||
loadfont
|
loadfont
|
||||||
|
@ -56,7 +56,7 @@ UnknownScript_0x198909: ; 0x198909
|
|||||||
checkcoins 4000
|
checkcoins 4000
|
||||||
if_equal $2, UnknownScript_0x1989dd
|
if_equal $2, UnknownScript_0x1989dd
|
||||||
2writetext UnknownText_0x1990ce
|
2writetext UnknownText_0x1990ce
|
||||||
loadmenudata $4967
|
loadmenudata MenuDataHeader_0x198967
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x19893a
|
if_equal $1, UnknownScript_0x19893a
|
||||||
@ -89,7 +89,24 @@ UnknownScript_0x198958: ; 0x198958
|
|||||||
2jump UnknownScript_0x1989d7
|
2jump UnknownScript_0x1989d7
|
||||||
; 0x198967
|
; 0x198967
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$198967,$33
|
|
||||||
|
MenuDataHeader_0x198967: ; 0x198967
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 15 ; end coords
|
||||||
|
dw MenuData2_0x19896f
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x19896f
|
||||||
|
|
||||||
|
MenuData2_0x19896f: ; 0x19896f
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "FLAMETHROWER@"
|
||||||
|
db "THUNDERBOLT@"
|
||||||
|
db "ICE BEAM@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x19899a
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x19899a: ; 0x19899a
|
UnknownScript_0x19899a: ; 0x19899a
|
||||||
2writetext UnknownText_0x1990b4
|
2writetext UnknownText_0x1990b4
|
||||||
|
@ -11,7 +11,7 @@ MapGoldenrodDeptStore6FSignpost5Script: ; 0x563f5
|
|||||||
2writetext UnknownText_0x564cb
|
2writetext UnknownText_0x564cb
|
||||||
UnknownScript_0x563f9: ; 0x563f9
|
UnknownScript_0x563f9: ; 0x563f9
|
||||||
special $0051
|
special $0051
|
||||||
loadmenudata $6478
|
loadmenudata MenuDataHeader_0x56478
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x5640f
|
if_equal $1, UnknownScript_0x5640f
|
||||||
@ -72,8 +72,24 @@ UnknownScript_0x56471: ; 0x56471
|
|||||||
2jump UnknownScript_0x563f9
|
2jump UnknownScript_0x563f9
|
||||||
; 0x56478
|
; 0x56478
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$56478,$564bf - $56478
|
MenuDataHeader_0x56478: ; 0x56478
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 19 ; end coords
|
||||||
|
dw MenuData2_0x56480
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x56480
|
||||||
|
|
||||||
|
MenuData2_0x56480: ; 0x56480
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "FRESH WATER ¥200@"
|
||||||
|
db "SODA POP ¥300@"
|
||||||
|
db "LEMONADE ¥350@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x564bf
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x564bf: ; 0x564bf
|
UnknownScript_0x564bf: ; 0x564bf
|
||||||
jumptextfaceplayer UnknownText_0x5654b
|
jumptextfaceplayer UnknownText_0x5654b
|
||||||
|
@ -8,7 +8,7 @@ GoldenrodDeptStoreElevator_MapScriptHeader: ; 0x56697
|
|||||||
|
|
||||||
MapGoldenrodDeptStoreElevatorSignpost0Script: ; 0x56699
|
MapGoldenrodDeptStoreElevatorSignpost0Script: ; 0x56699
|
||||||
loadfont
|
loadfont
|
||||||
elevator $66e0
|
elevator Elevator_0x566e0
|
||||||
loadmovesprites
|
loadmovesprites
|
||||||
iffalse UnknownScript_0x566df
|
iffalse UnknownScript_0x566df
|
||||||
pause 5
|
pause 5
|
||||||
@ -48,7 +48,19 @@ UnknownScript_0x566df: ; 0x566df
|
|||||||
end
|
end
|
||||||
; 0x566e0
|
; 0x566e0
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$566e0,$566fe - $566e0
|
|
||||||
|
Elevator_0x566e0: ; 0x566e0
|
||||||
|
db 7 ; floors
|
||||||
|
db _B1F, 2, GROUP_GOLDENROD_DEPT_STORE_B1F, MAP_GOLDENROD_DEPT_STORE_B1F
|
||||||
|
db _1F, 4, GROUP_GOLDENROD_DEPT_STORE_1F, MAP_GOLDENROD_DEPT_STORE_1F
|
||||||
|
db _2F, 3, GROUP_GOLDENROD_DEPT_STORE_2F, MAP_GOLDENROD_DEPT_STORE_2F
|
||||||
|
db _3F, 3, GROUP_GOLDENROD_DEPT_STORE_3F, MAP_GOLDENROD_DEPT_STORE_3F
|
||||||
|
db _4F, 3, GROUP_GOLDENROD_DEPT_STORE_4F, MAP_GOLDENROD_DEPT_STORE_4F
|
||||||
|
db _5F, 3, GROUP_GOLDENROD_DEPT_STORE_5F, MAP_GOLDENROD_DEPT_STORE_5F
|
||||||
|
db _6F, 2, GROUP_GOLDENROD_DEPT_STORE_6F, MAP_GOLDENROD_DEPT_STORE_6F
|
||||||
|
db $ff ; end
|
||||||
|
; 0x566fe
|
||||||
|
|
||||||
|
|
||||||
GoldenrodDeptStoreElevator_MapEventHeader: ; 0x566fe
|
GoldenrodDeptStoreElevator_MapEventHeader: ; 0x566fe
|
||||||
; filler
|
; filler
|
||||||
|
@ -55,7 +55,7 @@ UnknownScript_0x56c28: ; 0x56c28
|
|||||||
2writetext UnknownText_0x56e8b
|
2writetext UnknownText_0x56e8b
|
||||||
UnknownScript_0x56c36: ; 056c36
|
UnknownScript_0x56c36: ; 056c36
|
||||||
special $004f
|
special $004f
|
||||||
loadmenudata $6cc9
|
loadmenudata MenuDataHeader_0x56cc9
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x56c4d
|
if_equal $1, UnknownScript_0x56c4d
|
||||||
@ -142,8 +142,24 @@ UnknownScript_0x56cc3: ; 0x56cc3
|
|||||||
end
|
end
|
||||||
; 0x56cc9
|
; 0x56cc9
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$56cc9,$38
|
MenuDataHeader_0x56cc9: ; 0x56cc9
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 15 ; end coords
|
||||||
|
dw MenuData2_0x56cd1
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x56cd1
|
||||||
|
|
||||||
|
MenuData2_0x56cd1: ; 0x56cd1
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "TM25 5500@"
|
||||||
|
db "TM14 5500@"
|
||||||
|
db "TM38 5500@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x56d01
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x56d01: ; 0x56d01
|
UnknownScript_0x56d01: ; 0x56d01
|
||||||
faceplayer
|
faceplayer
|
||||||
@ -155,7 +171,7 @@ UnknownScript_0x56d01: ; 0x56d01
|
|||||||
UnknownScript_0x56d0c: ; 0x56d0c
|
UnknownScript_0x56d0c: ; 0x56d0c
|
||||||
2writetext UnknownText_0x56e8b
|
2writetext UnknownText_0x56e8b
|
||||||
special $004f
|
special $004f
|
||||||
loadmenudata $6db0
|
loadmenudata MenuDataHeader_0x56db0
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x56d26
|
if_equal $1, UnknownScript_0x56d26
|
||||||
@ -221,8 +237,24 @@ UnknownScript_0x56d82: ; 0x56d82
|
|||||||
2jump UnknownScript_0x56d0c
|
2jump UnknownScript_0x56d0c
|
||||||
; 0x56db0
|
; 0x56db0
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$56db0,$56df1 - $56db0
|
MenuDataHeader_0x56db0: ; 0x56db0
|
||||||
|
db $40 ; flags
|
||||||
|
db 02, 00 ; start coords
|
||||||
|
db 11, 17 ; end coords
|
||||||
|
dw MenuData2_0x56db8
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x56db8
|
||||||
|
|
||||||
|
MenuData2_0x56db8: ; 0x56db8
|
||||||
|
db $80 ; flags
|
||||||
|
db 4 ; items
|
||||||
|
db "ABRA 100@"
|
||||||
|
db "CUBONE 800@"
|
||||||
|
db "WOBBUFFET 1500@"
|
||||||
|
db "CANCEL@"
|
||||||
|
; 0x56df1
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x56df1: ; 0x56df1
|
UnknownScript_0x56df1: ; 0x56df1
|
||||||
faceplayer
|
faceplayer
|
||||||
|
@ -24,7 +24,7 @@ MapGoldenrodPokeComCenter2FMobileSignpost0Script: ; 0x625da
|
|||||||
closetext
|
closetext
|
||||||
UnknownScript_0x625df: ; 0x625df
|
UnknownScript_0x625df: ; 0x625df
|
||||||
reloadmappart
|
reloadmappart
|
||||||
loadmenudata $6602
|
loadmenudata MenuDataHeader_0x62602
|
||||||
interpretmenu2
|
interpretmenu2
|
||||||
writebackup
|
writebackup
|
||||||
if_equal $1, UnknownScript_0x625f0
|
if_equal $1, UnknownScript_0x625f0
|
||||||
@ -51,7 +51,23 @@ UnknownScript_0x62600: ; 0x62600
|
|||||||
end
|
end
|
||||||
; 0x62602
|
; 0x62602
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$62602,$62624 - $62602
|
|
||||||
|
MenuDataHeader_0x62602: ; 0x62602
|
||||||
|
db $40 ; flags
|
||||||
|
db 00, 00 ; start coords
|
||||||
|
db 08, 15 ; end coords
|
||||||
|
dw MenuData2_0x6260a
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x6260a
|
||||||
|
|
||||||
|
MenuData2_0x6260a: ; 0x6260a
|
||||||
|
db $80 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "# つうしん クラブ@" ; # COM CLUB
|
||||||
|
db "モバイルセンター@" ; MOBILE CENTER
|
||||||
|
db "やめる@" ; QUIT
|
||||||
|
; 0x62624
|
||||||
|
|
||||||
|
|
||||||
MapGoldenrodPokeComCenter2FMobileSignpost1Script: ; 0x62624
|
MapGoldenrodPokeComCenter2FMobileSignpost1Script: ; 0x62624
|
||||||
loadfont
|
loadfont
|
||||||
@ -86,8 +102,23 @@ UnknownScript_0x6264a: ; 0x6264a
|
|||||||
end
|
end
|
||||||
; 0x6264c
|
; 0x6264c
|
||||||
|
|
||||||
; menu data
|
|
||||||
INCBIN "baserom.gbc",$6264c,$25
|
MenuDataHeader_0x6264c: ; 0x6264c
|
||||||
|
db $40 ; flags
|
||||||
|
db 00, 00 ; start coords
|
||||||
|
db 08, 15 ; end coords
|
||||||
|
dw MenuData2_0x62654
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x62654
|
||||||
|
|
||||||
|
MenuData2_0x62654: ; 0x62654
|
||||||
|
db $80 ; flags
|
||||||
|
db 3 ; items
|
||||||
|
db "でんわ",$1f,"つかうとき@" ; Use phone
|
||||||
|
db "でんわ",$4a,"つながらないとき@" ; Don't use phone
|
||||||
|
db "やめる@" ; QUIT
|
||||||
|
; 0x62673
|
||||||
|
|
||||||
|
|
||||||
MapGoldenrodPokeComCenter2FMobileSignpost2Script: ; 0x62671
|
MapGoldenrodPokeComCenter2FMobileSignpost2Script: ; 0x62671
|
||||||
jumptext UnknownText_0x62b26
|
jumptext UnknownText_0x62b26
|
||||||
|
@ -123,10 +123,6 @@ HallOfFame_MapEventHeader: ; 0x181678
|
|||||||
; 0x181695
|
; 0x181695
|
||||||
|
|
||||||
|
|
||||||
; Pokedex entries I
|
|
||||||
; 001-064
|
|
||||||
|
|
||||||
INCLUDE "stats/pokedex/entries_1.asm"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,11 +11,71 @@ IcePathB1F_MapScriptHeader: ; 0x7e4b9
|
|||||||
; 0x7e4be
|
; 0x7e4be
|
||||||
|
|
||||||
UnknownScript_0x7e4be: ; 0x7e4be
|
UnknownScript_0x7e4be: ; 0x7e4be
|
||||||
writecmdqueue $64c2
|
writecmdqueue CmdQueue_0x7e4c2
|
||||||
return
|
return
|
||||||
; 0x7e4c2
|
; 0x7e4c2
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$7e4c2,$7e50a - $7e4c2
|
CmdQueue_0x7e4c2: ; 0x7e4c2
|
||||||
|
dbw 2, StoneTable_0x7e4c7 ; check if any stones are sitting on a warp
|
||||||
|
db 0, 0 ; filler
|
||||||
|
; 0x7e4c7
|
||||||
|
|
||||||
|
StoneTable_0x7e4c7: ; 0x7e4c7
|
||||||
|
db 3, 2 ; warp, person
|
||||||
|
dw UnknownScript_0x7e4d8
|
||||||
|
|
||||||
|
db 4, 3 ; warp, person
|
||||||
|
dw UnknownScript_0x7e4e0
|
||||||
|
|
||||||
|
db 5, 4 ; warp, person
|
||||||
|
dw UnknownScript_0x7e4e8
|
||||||
|
|
||||||
|
db 6, 5 ; warp, person
|
||||||
|
dw UnknownScript_0x7e4f0
|
||||||
|
|
||||||
|
db $ff ; end
|
||||||
|
; 0x7e4d8
|
||||||
|
|
||||||
|
UnknownScript_0x7e4d8: ; 0x7e4d8
|
||||||
|
disappear 2
|
||||||
|
clearbit1 $070d
|
||||||
|
2jump UnknownScript_0x7e4f8
|
||||||
|
; 0x7e4e0
|
||||||
|
|
||||||
|
UnknownScript_0x7e4e0: ; 0x7e4e0
|
||||||
|
disappear 3
|
||||||
|
clearbit1 $070e
|
||||||
|
2jump UnknownScript_0x7e4f8
|
||||||
|
; 0x7e4e8
|
||||||
|
|
||||||
|
UnknownScript_0x7e4e8: ; 0x7e4e8
|
||||||
|
disappear 4
|
||||||
|
clearbit1 $070f
|
||||||
|
2jump UnknownScript_0x7e4f8
|
||||||
|
; 0x7e4f0
|
||||||
|
|
||||||
|
UnknownScript_0x7e4f0: ; 0x7e4f0
|
||||||
|
disappear 5
|
||||||
|
clearbit1 $0710
|
||||||
|
2jump UnknownScript_0x7e4f8
|
||||||
|
; 0x7e4f8
|
||||||
|
|
||||||
|
UnknownScript_0x7e4f8: ; 0x7e4f8
|
||||||
|
pause 30
|
||||||
|
2call UnknownScript_0x7e504
|
||||||
|
loadfont
|
||||||
|
2writetext UnknownText_0x7e512
|
||||||
|
closetext
|
||||||
|
loadmovesprites
|
||||||
|
end
|
||||||
|
; 0x7e504
|
||||||
|
|
||||||
|
UnknownScript_0x7e504: ; 0x7e504
|
||||||
|
playsound $001b
|
||||||
|
earthquake 80
|
||||||
|
end
|
||||||
|
; 0x7e50a
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x7e50a: ; 0x7e50a
|
UnknownScript_0x7e50a: ; 0x7e50a
|
||||||
jumpstd $000e
|
jumpstd $000e
|
||||||
@ -30,7 +90,12 @@ MapIcePathB1FSignpostItem0: ; 0x7e50f
|
|||||||
db MAX_POTION
|
db MAX_POTION
|
||||||
; 0x7e512
|
; 0x7e512
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$7e512,$1b
|
|
||||||
|
UnknownText_0x7e512: ; 0x7e512
|
||||||
|
db $0, "The boulder fell", $4f
|
||||||
|
db "through.", $57
|
||||||
|
; 0x7e52d
|
||||||
|
|
||||||
|
|
||||||
IcePathB1F_MapEventHeader: ; 0x7e52d
|
IcePathB1F_MapEventHeader: ; 0x7e52d
|
||||||
; filler
|
; filler
|
||||||
|
@ -34,7 +34,9 @@ UnknownScript_0x7abc5: ; 0x7abc5
|
|||||||
return
|
return
|
||||||
; 0x7abc9
|
; 0x7abc9
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$7abc9,$7abcc - $7abc9
|
|
||||||
|
db 0, 0, 0 ; filler
|
||||||
|
|
||||||
|
|
||||||
UnknownScript_0x7abcc: ; 0x7abcc
|
UnknownScript_0x7abcc: ; 0x7abcc
|
||||||
describedecoration $1
|
describedecoration $1
|
||||||
|
@ -16,7 +16,7 @@ UnknownScript_0x9d278: ; 0x9d278
|
|||||||
2writetext UnknownText_0x9d303
|
2writetext UnknownText_0x9d303
|
||||||
yesorno
|
yesorno
|
||||||
iffalse UnknownScript_0x9d2b6
|
iffalse UnknownScript_0x9d2b6
|
||||||
special $004b
|
special SPECIAL_GIVESHUCKLE
|
||||||
iffalse UnknownScript_0x9d2b0
|
iffalse UnknownScript_0x9d2b0
|
||||||
2writetext UnknownText_0x9d3ed
|
2writetext UnknownText_0x9d3ed
|
||||||
keeptextopen
|
keeptextopen
|
||||||
|
@ -141,22 +141,37 @@ PsychicNathanScript: ; 0x58095
|
|||||||
end
|
end
|
||||||
; 0x5809d
|
; 0x5809d
|
||||||
|
|
||||||
UnknownScript_0x5809d: ; 0x5809d
|
|
||||||
musicfadeout $2905, $1
|
|
||||||
; 0x580a2
|
|
||||||
|
|
||||||
; probably not a script?
|
TrainerSuperNerdStan: ; 0x5809d
|
||||||
UnknownScript_0x580a2: ; 0x580a2
|
; bit/flag number
|
||||||
db $e5
|
dw $581
|
||||||
itemtotext THUNDERSTONE, $42
|
|
||||||
2call $a900
|
; trainer group && trainer id
|
||||||
pokenamemem EXEGGCUTE, $47
|
db SUPER_NERD, STAN
|
||||||
|
|
||||||
|
; text when seen
|
||||||
|
dw UnknownText_0x581e5
|
||||||
|
|
||||||
|
; text when trainer beaten
|
||||||
|
dw UnknownText_0x58217
|
||||||
|
|
||||||
|
; script when lost
|
||||||
|
dw $0000
|
||||||
|
|
||||||
|
; script when talk again
|
||||||
|
dw UnknownScript_0x580a9
|
||||||
|
; 0x580a9
|
||||||
|
|
||||||
|
UnknownScript_0x580a9: ; 0x580a9
|
||||||
|
talkaftercancel
|
||||||
|
loadfont
|
||||||
2writetext UnknownText_0x58250
|
2writetext UnknownText_0x58250
|
||||||
closetext
|
closetext
|
||||||
loadmovesprites
|
loadmovesprites
|
||||||
end
|
end
|
||||||
; 0x580b1
|
; 0x580b1
|
||||||
|
|
||||||
|
|
||||||
MapRuinsofAlphOutsideSignpost0Script: ; 0x580b1
|
MapRuinsofAlphOutsideSignpost0Script: ; 0x580b1
|
||||||
jumptext UnknownText_0x58325
|
jumptext UnknownText_0x58325
|
||||||
; 0x580b4
|
; 0x580b4
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
INCLUDE "wram.asm"
|
INCLUDE "wram.asm"
|
||||||
INCLUDE "constants.asm"
|
INCLUDE "constants.asm"
|
||||||
INCLUDE "gbhw.asm"
|
INCLUDE "gbhw.asm"
|
||||||
|
INCLUDE "hram.asm"
|
||||||
INCLUDE "main.tx"
|
INCLUDE "main.tx"
|
||||||
|
3
pokecrystal.bat
Normal file
3
pokecrystal.bat
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@set PATH=%PATH%;C:\Program Files (x86)\GnuWin32\bin\;C:\Python27\
|
||||||
|
@make winclean && make win
|
||||||
|
@pause
|
@ -18,6 +18,7 @@ from extras.crystal import (
|
|||||||
text_command_classes,
|
text_command_classes,
|
||||||
movement_command_classes,
|
movement_command_classes,
|
||||||
music_classes,
|
music_classes,
|
||||||
|
effect_classes,
|
||||||
)
|
)
|
||||||
|
|
||||||
even_more_macros = [
|
even_more_macros = [
|
||||||
@ -34,6 +35,7 @@ macros += even_more_macros
|
|||||||
macros += [each[1] for each in text_command_classes]
|
macros += [each[1] for each in text_command_classes]
|
||||||
macros += movement_command_classes
|
macros += movement_command_classes
|
||||||
macros += music_classes
|
macros += music_classes
|
||||||
|
macros += effect_classes
|
||||||
|
|
||||||
# show lines before preprocessing in stdout
|
# show lines before preprocessing in stdout
|
||||||
show_original_lines = False
|
show_original_lines = False
|
||||||
@ -285,6 +287,7 @@ chars = {
|
|||||||
"é": 0xEA,
|
"é": 0xEA,
|
||||||
"→": 0xEB,
|
"→": 0xEB,
|
||||||
"▶": 0xED,
|
"▶": 0xED,
|
||||||
|
"▼": 0xEE,
|
||||||
"♂": 0xEF,
|
"♂": 0xEF,
|
||||||
"¥": 0xF0,
|
"¥": 0xF0,
|
||||||
"×": 0xF1,
|
"×": 0xF1,
|
||||||
|
@ -252,7 +252,7 @@ Script_jumptextfaceplayer: ; 0x96e45
|
|||||||
ld [$d450], a
|
ld [$d450], a
|
||||||
ld b, $25
|
ld b, $25
|
||||||
ld hl, $6e79
|
ld hl, $6e79
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x96e5f
|
; 0x96e5f
|
||||||
|
|
||||||
Script_jumptext: ; 0x96e5f
|
Script_jumptext: ; 0x96e5f
|
||||||
@ -268,7 +268,7 @@ Script_jumptext: ; 0x96e5f
|
|||||||
ld [$d450], a
|
ld [$d450], a
|
||||||
ld b, $25
|
ld b, $25
|
||||||
ld hl, $6e7a
|
ld hl, $6e7a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x96e79
|
; 0x96e79
|
||||||
|
|
||||||
INCBIN "baserom.gbc",$96e79,$96e81 - $96e79
|
INCBIN "baserom.gbc",$96e79,$96e81 - $96e79
|
||||||
@ -286,7 +286,7 @@ Script_3jumptext: ; 0x96e81
|
|||||||
ld [$d450], a
|
ld [$d450], a
|
||||||
ld b, $25
|
ld b, $25
|
||||||
ld hl, $6e7a
|
ld hl, $6e7a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x96e9b
|
; 0x96e9b
|
||||||
|
|
||||||
Script_2writetext: ; 0x96e9b
|
Script_2writetext: ; 0x96e9b
|
||||||
@ -550,13 +550,13 @@ Script_specialsound: ; 0x96fe4
|
|||||||
ld hl, $543d
|
ld hl, $543d
|
||||||
rst $8
|
rst $8
|
||||||
ld a, [$d142]
|
ld a, [$d142]
|
||||||
cp $4
|
cp TM_HM
|
||||||
ld de, $009b
|
ld de, SFX_GET_TM
|
||||||
jr z, .asm_96ff7 ; 0x96ff2 $3
|
jr z, .play
|
||||||
ld de, $0001
|
ld de, SFX_ITEM
|
||||||
.asm_96ff7
|
.play
|
||||||
call StartSFX
|
call StartSFX
|
||||||
call $3c55
|
call WaitSFX
|
||||||
ret
|
ret
|
||||||
; 0x96ffe
|
; 0x96ffe
|
||||||
|
|
||||||
@ -681,7 +681,7 @@ Script_describedecoration: ; 0x970df
|
|||||||
rst $8
|
rst $8
|
||||||
ld h, d
|
ld h, d
|
||||||
ld l, e
|
ld l, e
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x970ee
|
; 0x970ee
|
||||||
|
|
||||||
Script_fruittree: ; 0x970ee
|
Script_fruittree: ; 0x970ee
|
||||||
@ -690,10 +690,10 @@ Script_fruittree: ; 0x970ee
|
|||||||
; tree_id (SingleByteParam)
|
; tree_id (SingleByteParam)
|
||||||
|
|
||||||
call GetScriptByte
|
call GetScriptByte
|
||||||
ld [$d03e], a
|
ld [CurFruitTree], a
|
||||||
ld b, $11
|
ld b, BANK(FruitTreeScript)
|
||||||
ld hl, $4000
|
ld hl, FruitTreeScript
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x970fc
|
; 0x970fc
|
||||||
|
|
||||||
Script_loadwilddata: ; 0x970fc
|
Script_loadwilddata: ; 0x970fc
|
||||||
@ -743,7 +743,7 @@ Script_scripttalkafter: ; 0x97125
|
|||||||
ld l, a
|
ld l, a
|
||||||
ld a, [$d03e]
|
ld a, [$d03e]
|
||||||
ld b, a
|
ld b, a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x97132
|
; 0x97132
|
||||||
|
|
||||||
Script_trainerstatus: ; 0x97132
|
Script_trainerstatus: ; 0x97132
|
||||||
@ -877,7 +877,7 @@ Script_playsound: ; 0x971b7
|
|||||||
Script_waitbutton: ; 0x971c3
|
Script_waitbutton: ; 0x971c3
|
||||||
; script command 0x86
|
; script command 0x86
|
||||||
|
|
||||||
call $3c55
|
call WaitSFX
|
||||||
ret
|
ret
|
||||||
; 0x971c7
|
; 0x971c7
|
||||||
|
|
||||||
@ -1417,7 +1417,7 @@ Script_returnafterbattle: ; 0x97459
|
|||||||
jr nz, .asm_97470 ; 0x97466 $8
|
jr nz, .asm_97470 ; 0x97466 $8
|
||||||
ld b, $4
|
ld b, $4
|
||||||
ld hl, $64c1
|
ld hl, $64c1
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
.asm_97470
|
.asm_97470
|
||||||
bit 0, d
|
bit 0, d
|
||||||
jr z, .asm_9747c ; 0x97472 $8
|
jr z, .asm_9747c ; 0x97472 $8
|
||||||
@ -1510,14 +1510,14 @@ ScriptCall: ; 0x974cb
|
|||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld a, [ScriptPos]
|
ld a, [ScriptPos]
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
ld a, [$d43b]
|
ld a, [ScriptPos + 1]
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [ScriptBank], a
|
ld [ScriptBank], a
|
||||||
ld a, e
|
ld a, e
|
||||||
ld [ScriptPos], a
|
ld [ScriptPos], a
|
||||||
ld a, d
|
ld a, d
|
||||||
ld [$d43b], a
|
ld [ScriptPos + 1], a
|
||||||
ret
|
ret
|
||||||
; 0x974f3
|
; 0x974f3
|
||||||
|
|
||||||
@ -1539,7 +1539,7 @@ Script_2jump: ; 0x974fe
|
|||||||
ld h, a
|
ld h, a
|
||||||
ld a, [ScriptBank]
|
ld a, [ScriptBank]
|
||||||
ld b, a
|
ld b, a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x9750d
|
; 0x9750d
|
||||||
|
|
||||||
Script_3jump: ; 0x9750d
|
Script_3jump: ; 0x9750d
|
||||||
@ -1553,7 +1553,7 @@ Script_3jump: ; 0x9750d
|
|||||||
ld l, a
|
ld l, a
|
||||||
call GetScriptByte
|
call GetScriptByte
|
||||||
ld h, a
|
ld h, a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x9751c
|
; 0x9751c
|
||||||
|
|
||||||
Script_2ptjump: ; 0x9751c
|
Script_2ptjump: ; 0x9751c
|
||||||
@ -1570,7 +1570,7 @@ Script_2ptjump: ; 0x9751c
|
|||||||
ld a, [hli]
|
ld a, [hli]
|
||||||
ld h, [hl]
|
ld h, [hl]
|
||||||
ld l, a
|
ld l, a
|
||||||
jp $759d
|
jp ScriptJump
|
||||||
; 0x9752c
|
; 0x9752c
|
||||||
|
|
||||||
Script_iffalse: ; 0x9752c
|
Script_iffalse: ; 0x9752c
|
||||||
@ -1655,7 +1655,7 @@ Script_jumpstd: ; 0x9756e
|
|||||||
; predefined_script (MultiByteParam)
|
; predefined_script (MultiByteParam)
|
||||||
|
|
||||||
call $757b
|
call $757b
|
||||||
jr Unknown_9759d ; 0x97571 $2a
|
jr ScriptJump ; 0x97571 $2a
|
||||||
; 0x97573
|
; 0x97573
|
||||||
|
|
||||||
Script_callstd: ; 0x97573
|
Script_callstd: ; 0x97573
|
||||||
@ -1693,13 +1693,13 @@ Unknown_97596: ; 0x97596
|
|||||||
ret
|
ret
|
||||||
; 0x9759d
|
; 0x9759d
|
||||||
|
|
||||||
Unknown_9759d: ; 0x9759d
|
ScriptJump: ; 0x9759d
|
||||||
ld a, b
|
ld a, b
|
||||||
ld [ScriptBank], a
|
ld [ScriptBank], a
|
||||||
ld a, l
|
ld a, l
|
||||||
ld [ScriptPos], a
|
ld [ScriptPos], a
|
||||||
ld a, h
|
ld a, h
|
||||||
ld [$d43b], a
|
ld [ScriptPos + 1], a
|
||||||
ret
|
ret
|
||||||
; 0x975aa
|
; 0x975aa
|
||||||
|
|
||||||
@ -3041,7 +3041,7 @@ Unknown_0x97b9a: ; 0x97b9a
|
|||||||
ld [ScriptPos], a
|
ld [ScriptPos], a
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld d, a
|
ld d, a
|
||||||
ld [$d43b], a
|
ld [ScriptPos + 1], a
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
.asm_97bbe
|
.asm_97bbe
|
||||||
|
File diff suppressed because it is too large
Load Diff
502
stats/wild/fish.asm
Normal file
502
stats/wild/fish.asm
Normal file
@ -0,0 +1,502 @@
|
|||||||
|
FishAction: ; 92402
|
||||||
|
; Using a fishing rod.
|
||||||
|
; Fish for monsters with rod e in encounter group d.
|
||||||
|
; Return monster e at level d.
|
||||||
|
|
||||||
|
push af
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
|
||||||
|
; Get the fishing group for this map.
|
||||||
|
ld b, e
|
||||||
|
call GetFishGroupHeader
|
||||||
|
|
||||||
|
ld hl, FishGroupHeaders
|
||||||
|
; encounter chance
|
||||||
|
add hl, de
|
||||||
|
; pointer to old rod data
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
; pointer to good rod data
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
; pointer to super rod data
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
|
||||||
|
call Fish
|
||||||
|
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
; 9241a
|
||||||
|
|
||||||
|
|
||||||
|
Fish: ; 9241a
|
||||||
|
; Grandfathered from Red.
|
||||||
|
|
||||||
|
; Fish for monsters with rod b from encounter data in FishGroup at hl.
|
||||||
|
; Return monster e at level d.
|
||||||
|
|
||||||
|
call RNG
|
||||||
|
|
||||||
|
; Got a bite?
|
||||||
|
cp [hl]
|
||||||
|
jr nc, .NoBite
|
||||||
|
|
||||||
|
; Get encounter data by rod:
|
||||||
|
; 0: Old
|
||||||
|
; 1: Good
|
||||||
|
; 2: Super
|
||||||
|
inc hl
|
||||||
|
ld e, b
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
; Encounter chance for this monster:
|
||||||
|
call RNG
|
||||||
|
|
||||||
|
.CheckEncounter
|
||||||
|
cp [hl]
|
||||||
|
jr z, .ReadMon
|
||||||
|
jr c, .ReadMon
|
||||||
|
|
||||||
|
; Next monster...
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
jr .CheckEncounter
|
||||||
|
|
||||||
|
.ReadMon
|
||||||
|
; We're done with the encounter chance
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
; Species 0 triggers a read from a time-based encounter table.
|
||||||
|
ld a, [hli]
|
||||||
|
ld d, a
|
||||||
|
and a
|
||||||
|
call z, .TimeEncounter
|
||||||
|
|
||||||
|
; Level
|
||||||
|
ld e, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
.NoBite
|
||||||
|
ld de, 0
|
||||||
|
ret
|
||||||
|
|
||||||
|
.TimeEncounter
|
||||||
|
|
||||||
|
; The level byte is repurposed as the index for the new table.
|
||||||
|
ld e, [hl]
|
||||||
|
ld d, 0
|
||||||
|
ld hl, TimeFishGroups
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
add hl, de
|
||||||
|
|
||||||
|
; One nightmon, then one daymon
|
||||||
|
ld a, [TimeOfDay]
|
||||||
|
and 3
|
||||||
|
cp NITE
|
||||||
|
jr c, .TimeSpecies
|
||||||
|
inc hl
|
||||||
|
inc hl
|
||||||
|
|
||||||
|
.TimeSpecies
|
||||||
|
ld d, [hl]
|
||||||
|
inc hl
|
||||||
|
ret
|
||||||
|
; 9245b
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GetFishGroupHeader: ; 9245b
|
||||||
|
; Return fishing encounter group header d in de.
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld hl, $dc1e
|
||||||
|
bit 2, [hl]
|
||||||
|
pop hl
|
||||||
|
jr z, .end
|
||||||
|
|
||||||
|
; Groups 11 and 12 have special attributes.
|
||||||
|
ld a, d
|
||||||
|
cp 11
|
||||||
|
jr z, .group11
|
||||||
|
cp 12
|
||||||
|
jr z, .group12
|
||||||
|
|
||||||
|
.end
|
||||||
|
dec d
|
||||||
|
ld e, d
|
||||||
|
ld d, 0
|
||||||
|
ret
|
||||||
|
|
||||||
|
.group11
|
||||||
|
ld a, [$dfce]
|
||||||
|
cp 1
|
||||||
|
jr nz, .end
|
||||||
|
ld d, 6
|
||||||
|
jr .end
|
||||||
|
|
||||||
|
.group12
|
||||||
|
ld a, [$dfce]
|
||||||
|
cp 2
|
||||||
|
jr nz, .end
|
||||||
|
ld d, 7
|
||||||
|
jr .end
|
||||||
|
; 92488
|
||||||
|
|
||||||
|
|
||||||
|
FishGroupHeaders:
|
||||||
|
|
||||||
|
FishGroup1Header: ; 92488
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup1_Old
|
||||||
|
dw FishGroup1_Good
|
||||||
|
dw FishGroup1_Super
|
||||||
|
|
||||||
|
FishGroup2Header: ; 9248f
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup2_Old
|
||||||
|
dw FishGroup2_Good
|
||||||
|
dw FishGroup2_Super
|
||||||
|
|
||||||
|
FishGroup3Header: ; 92496
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup3_Old
|
||||||
|
dw FishGroup3_Good
|
||||||
|
dw FishGroup3_Super
|
||||||
|
|
||||||
|
FishGroup4Header: ; 9249d
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup4_Old
|
||||||
|
dw FishGroup4_Good
|
||||||
|
dw FishGroup4_Super
|
||||||
|
|
||||||
|
FishGroup5Header: ; 924a4
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup5_Old
|
||||||
|
dw FishGroup5_Good
|
||||||
|
dw FishGroup5_Super
|
||||||
|
|
||||||
|
FishGroup6Header: ; 924ab
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup6_Old
|
||||||
|
dw FishGroup6_Good
|
||||||
|
dw FishGroup6_Super
|
||||||
|
|
||||||
|
FishGroup7Header: ; 924b2
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup7_Old
|
||||||
|
dw FishGroup7_Good
|
||||||
|
dw FishGroup7_Super
|
||||||
|
|
||||||
|
FishGroup8Header: ; 924b9
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup8_Old
|
||||||
|
dw FishGroup8_Good
|
||||||
|
dw FishGroup8_Super
|
||||||
|
|
||||||
|
FishGroup9Header: ; 924c0
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup9_Old
|
||||||
|
dw FishGroup9_Good
|
||||||
|
dw FishGroup9_Super
|
||||||
|
|
||||||
|
FishGroup10Header: ; 924c7
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup10_Old
|
||||||
|
dw FishGroup10_Good
|
||||||
|
dw FishGroup10_Super
|
||||||
|
|
||||||
|
FishGroup11Header: ; 924ce
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup11_Old
|
||||||
|
dw FishGroup11_Good
|
||||||
|
dw FishGroup11_Super
|
||||||
|
|
||||||
|
FishGroup12Header: ; 924d5
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup12_Old
|
||||||
|
dw FishGroup12_Good
|
||||||
|
dw FishGroup12_Super
|
||||||
|
|
||||||
|
FishGroup13Header: ; 924dc
|
||||||
|
db $80 ; 50%
|
||||||
|
dw FishGroup11_Old
|
||||||
|
dw FishGroup11_Good
|
||||||
|
dw FishGroup11_Super
|
||||||
|
|
||||||
|
FishGroup1:
|
||||||
|
FishGroup1_Old: ; 924e3
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, KRABBY, 10
|
||||||
|
FishGroup1_Good: ; 924ec
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, KRABBY, 20
|
||||||
|
db $e6, KRABBY, 20
|
||||||
|
db $ff, $0, 0
|
||||||
|
FishGroup1_Super: ; 924f8
|
||||||
|
db $66, KRABBY, 40
|
||||||
|
db $b2, $0, 1
|
||||||
|
db $e6, KRABBY, 40
|
||||||
|
db $ff, KINGLER, 40
|
||||||
|
|
||||||
|
FishGroup2:
|
||||||
|
FishGroup2_Old: ; 92504
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, TENTACOOL, 10
|
||||||
|
FishGroup2_Good: ; 9250d
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, TENTACOOL, 20
|
||||||
|
db $e6, CHINCHOU, 20
|
||||||
|
db $ff, $0, 2
|
||||||
|
FishGroup2_Super: ; 92519
|
||||||
|
db $66, CHINCHOU, 40
|
||||||
|
db $b2, $0, 3
|
||||||
|
db $e6, TENTACRUEL, 40
|
||||||
|
db $ff, LANTURN, 40
|
||||||
|
|
||||||
|
FishGroup3:
|
||||||
|
FishGroup3_Old: ; 92525
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, GOLDEEN, 10
|
||||||
|
FishGroup3_Good: ; 9252e
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, GOLDEEN, 20
|
||||||
|
db $e6, GOLDEEN, 20
|
||||||
|
db $ff, $0, 4
|
||||||
|
FishGroup3_Super: ; 9253a
|
||||||
|
db $66, GOLDEEN, 40
|
||||||
|
db $b2, $0, 5
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, SEAKING, 40
|
||||||
|
|
||||||
|
FishGroup4:
|
||||||
|
FishGroup4_Old: ; 92546
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, POLIWAG, 10
|
||||||
|
FishGroup4_Good: ; 9254f
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, POLIWAG, 20
|
||||||
|
db $e6, POLIWAG, 20
|
||||||
|
db $ff, $0, 6
|
||||||
|
FishGroup4_Super: ; 9255b
|
||||||
|
db $66, POLIWAG, 40
|
||||||
|
db $b2, $0, 7
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, POLIWAG, 40
|
||||||
|
|
||||||
|
FishGroup5:
|
||||||
|
FishGroup5_Old: ; 92567
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, MAGIKARP, 10
|
||||||
|
FishGroup5_Good: ; 92570
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, MAGIKARP, 20
|
||||||
|
db $e6, MAGIKARP, 20
|
||||||
|
db $ff, $0, 8
|
||||||
|
FishGroup5_Super: ; 9257c
|
||||||
|
db $66, MAGIKARP, 40
|
||||||
|
db $b2, $0, 9
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, DRAGONAIR, 40
|
||||||
|
|
||||||
|
FishGroup6:
|
||||||
|
FishGroup6_Old: ; 92588
|
||||||
|
db $b3, MAGIKARP, 5
|
||||||
|
db $d9, MAGIKARP, 5
|
||||||
|
db $ff, QWILFISH, 5
|
||||||
|
FishGroup6_Good: ; 92591
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, QWILFISH, 20
|
||||||
|
db $e6, QWILFISH, 20
|
||||||
|
db $ff, $0, 10
|
||||||
|
FishGroup6_Super: ; 9259d
|
||||||
|
db $66, QWILFISH, 40
|
||||||
|
db $b2, $0, 11
|
||||||
|
db $e6, QWILFISH, 40
|
||||||
|
db $ff, QWILFISH, 40
|
||||||
|
|
||||||
|
FishGroup7:
|
||||||
|
FishGroup7_Old: ; 925a9
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, REMORAID, 10
|
||||||
|
FishGroup7_Good: ; 925b2
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, REMORAID, 20
|
||||||
|
db $e6, REMORAID, 20
|
||||||
|
db $ff, $0, 12
|
||||||
|
FishGroup7_Super: ; 925be
|
||||||
|
db $66, REMORAID, 40
|
||||||
|
db $b2, $0, 13
|
||||||
|
db $e6, REMORAID, 40
|
||||||
|
db $ff, REMORAID, 40
|
||||||
|
|
||||||
|
FishGroup8:
|
||||||
|
FishGroup8_Old: ; 925ca
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, MAGIKARP, 10
|
||||||
|
FishGroup8_Good: ; 925d3
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, MAGIKARP, 20
|
||||||
|
db $e6, MAGIKARP, 20
|
||||||
|
db $ff, $0, 14
|
||||||
|
FishGroup8_Super: ; 925df
|
||||||
|
db $66, MAGIKARP, 40
|
||||||
|
db $b2, $0, 15
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, MAGIKARP, 40
|
||||||
|
|
||||||
|
FishGroup9:
|
||||||
|
FishGroup9_Old: ; 925eb
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, MAGIKARP, 10
|
||||||
|
FishGroup9_Good: ; 925f4
|
||||||
|
db $59, MAGIKARP, 10
|
||||||
|
db $b2, MAGIKARP, 10
|
||||||
|
db $e6, MAGIKARP, 10
|
||||||
|
db $ff, $0, 16
|
||||||
|
FishGroup9_Super: ; 92600
|
||||||
|
db $66, MAGIKARP, 10
|
||||||
|
db $b2, $0, 17
|
||||||
|
db $e6, MAGIKARP, 10
|
||||||
|
db $ff, DRAGONAIR, 10
|
||||||
|
|
||||||
|
FishGroup10:
|
||||||
|
FishGroup10_Old: ; 9260c
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, KRABBY, 10
|
||||||
|
FishGroup10_Good: ; 92615
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, KRABBY, 20
|
||||||
|
db $e6, KRABBY, 20
|
||||||
|
db $ff, $0, 18
|
||||||
|
FishGroup10_Super: ; 92621
|
||||||
|
db $66, KRABBY, 40
|
||||||
|
db $b2, $0, 19
|
||||||
|
db $e6, KINGLER, 40
|
||||||
|
db $ff, SEADRA, 40
|
||||||
|
|
||||||
|
FishGroup11:
|
||||||
|
FishGroup11_Old: ; 9262d
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, TENTACOOL, 10
|
||||||
|
FishGroup11_Good: ; 92636
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, TENTACOOL, 20
|
||||||
|
db $e6, TENTACOOL, 20
|
||||||
|
db $ff, $0, 20
|
||||||
|
FishGroup11_Super: ; 92642
|
||||||
|
db $66, TENTACOOL, 40
|
||||||
|
db $b2, $0, 21
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, QWILFISH, 40
|
||||||
|
|
||||||
|
FishGroup12:
|
||||||
|
FishGroup12_Old: ; 9264e
|
||||||
|
db $b3, MAGIKARP, 10
|
||||||
|
db $d9, MAGIKARP, 10
|
||||||
|
db $ff, POLIWAG, 10
|
||||||
|
FishGroup12_Good: ; 92657
|
||||||
|
db $59, MAGIKARP, 20
|
||||||
|
db $b2, POLIWAG, 20
|
||||||
|
db $e6, POLIWAG, 20
|
||||||
|
db $ff, $0, 6
|
||||||
|
FishGroup12_Super: ; 92663
|
||||||
|
db $66, POLIWAG, 40
|
||||||
|
db $b2, $0, 7
|
||||||
|
db $e6, MAGIKARP, 40
|
||||||
|
db $ff, REMORAID, 40
|
||||||
|
|
||||||
|
; 9266f
|
||||||
|
|
||||||
|
TimeFishGroups: ; 9266f
|
||||||
|
; 0
|
||||||
|
db CORSOLA, 20 ; nite
|
||||||
|
db STARYU, 20 ; day
|
||||||
|
; 1
|
||||||
|
db CORSOLA, 40 ; nite
|
||||||
|
db STARYU, 40 ; day
|
||||||
|
; 2
|
||||||
|
db SHELLDER, 20 ; nite
|
||||||
|
db SHELLDER, 20 ; day
|
||||||
|
; 3
|
||||||
|
db SHELLDER, 40 ; nite
|
||||||
|
db SHELLDER, 40 ; day
|
||||||
|
; 4
|
||||||
|
db GOLDEEN, 20 ; nite
|
||||||
|
db GOLDEEN, 20 ; day
|
||||||
|
; 5
|
||||||
|
db GOLDEEN, 40 ; nite
|
||||||
|
db GOLDEEN, 40 ; day
|
||||||
|
; 6
|
||||||
|
db POLIWAG, 20 ; nite
|
||||||
|
db POLIWAG, 20 ; day
|
||||||
|
; 7
|
||||||
|
db POLIWAG, 40 ; nite
|
||||||
|
db POLIWAG, 40 ; day
|
||||||
|
; 8
|
||||||
|
db DRATINI, 20 ; nite
|
||||||
|
db DRATINI, 20 ; day
|
||||||
|
; 9
|
||||||
|
db DRATINI, 40 ; nite
|
||||||
|
db DRATINI, 40 ; day
|
||||||
|
; 10
|
||||||
|
db QWILFISH, 20 ; nite
|
||||||
|
db QWILFISH, 20 ; day
|
||||||
|
; 11
|
||||||
|
db QWILFISH, 40 ; nite
|
||||||
|
db QWILFISH, 40 ; day
|
||||||
|
; 12
|
||||||
|
db REMORAID, 20 ; nite
|
||||||
|
db REMORAID, 20 ; day
|
||||||
|
; 13
|
||||||
|
db REMORAID, 40 ; nite
|
||||||
|
db REMORAID, 40 ; day
|
||||||
|
; 14
|
||||||
|
db GYARADOS, 20 ; nite
|
||||||
|
db GYARADOS, 20 ; day
|
||||||
|
; 15
|
||||||
|
db GYARADOS, 40 ; nite
|
||||||
|
db GYARADOS, 40 ; day
|
||||||
|
; 16
|
||||||
|
db DRATINI, 10 ; nite
|
||||||
|
db DRATINI, 10 ; day
|
||||||
|
; 17
|
||||||
|
db DRATINI, 10 ; nite
|
||||||
|
db DRATINI, 10 ; day
|
||||||
|
; 18
|
||||||
|
db HORSEA, 20 ; nite
|
||||||
|
db HORSEA, 20 ; day
|
||||||
|
; 19
|
||||||
|
db HORSEA, 40 ; nite
|
||||||
|
db HORSEA, 40 ; day
|
||||||
|
; 20
|
||||||
|
db TENTACOOL, 20 ; nite
|
||||||
|
db TENTACOOL, 20 ; day
|
||||||
|
; 21
|
||||||
|
db TENTACOOL, 40 ; nite
|
||||||
|
db TENTACOOL, 40 ; day
|
||||||
|
|
||||||
|
; 926c7
|
||||||
|
|
BIN
tilesets/00_collision.bin
Normal file
BIN
tilesets/00_collision.bin
Normal file
Binary file not shown.
BIN
tilesets/00_metatiles.bin
Normal file
BIN
tilesets/00_metatiles.bin
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user