mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-04-09 05:44:44 -07:00
Merge yenatch/master.
This commit is contained in:
commit
0e47273378
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
|
||||
baserom.sgm
|
||||
baserom.sav
|
||||
pokered.sgm
|
||||
pokered.sav
|
||||
baserom.rtc
|
||||
pokecrystal.sgm
|
||||
pokecrystal.sav
|
||||
pokecrystal.rtc
|
||||
|
||||
# for vim configuration
|
||||
# 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
|
||||
sudo apt-get install make gcc bison git python python-setuptools
|
||||
@ -24,153 +41,38 @@ cd pokecrystal
|
||||
|
||||
# install python requirements
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
To compile the ROM from ASM source:
|
||||
```
|
||||
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
|
||||
`cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful!
|
||||
Rejoice!
|
||||
`cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! 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
|
||||
make clean && make
|
||||
```
|
||||
Set up [GitHub for Windows](http://windows.github.com/) and clone this 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://mibbit.com/) or something.
|
||||
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)).
|
||||
|
||||
# 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).
|
||||
|
17
Makefile
17
Makefile
@ -1,6 +1,7 @@
|
||||
.SUFFIXES: .asm .tx .o .gbc .png .2bpp .lz
|
||||
|
||||
TEXTFILES = text/sweethoney.tx \
|
||||
TEXTFILES = \
|
||||
text/sweethoney.tx \
|
||||
text/phone/bill.tx \
|
||||
text/phone/elm.tx \
|
||||
text/phone/mom.tx \
|
||||
@ -10,7 +11,8 @@ TEXTFILES = text/sweethoney.tx \
|
||||
text/common_3.tx \
|
||||
main.tx
|
||||
|
||||
VERTGFX = gfx/pics/%.png \
|
||||
VERTGFX = \
|
||||
gfx/pics/%.png \
|
||||
gfx/trainers/%.png
|
||||
|
||||
HORIZGFX = $(filter-out gfx/%.png, $(VERTGFX))
|
||||
@ -24,10 +26,16 @@ HORIZGFX = $(filter-out gfx/%.png, $(VERTGFX))
|
||||
# so take care to reorganize accordingly
|
||||
|
||||
all: pokecrystal.gbc
|
||||
cmp baserom.gbc $<
|
||||
|
||||
win: pokecrystal.gbc
|
||||
fc baserom.gbc $<
|
||||
|
||||
clean:
|
||||
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}
|
||||
rgbasm -o pokecrystal.o pokecrystal.asm
|
||||
@ -38,7 +46,6 @@ pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES}
|
||||
pokecrystal.gbc: pokecrystal.o
|
||||
rgblink -o $@ $<
|
||||
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
|
||||
cmp baserom.gbc $@
|
||||
|
||||
|
||||
lzs: ${VERTGFX} ${HORIZGFX}
|
||||
@ -51,8 +58,8 @@ front.png: tiles.png
|
||||
cd extras && python gfx.py png-to-lz --front $@ $(OBJECT_DIRECTORY)/tiles.2bpp
|
||||
tiles.png:
|
||||
cd extras && python gfx.py png-to-2bpp $@
|
||||
.png: ${VERTGFX}
|
||||
.png:: ${VERTGFX}
|
||||
cd extras && python gfx.py png-to-lz --vert $@
|
||||
.png: ${HORIZGFX}
|
||||
.png:: ${HORIZGFX}
|
||||
cd extras && python gfx.py png-to-lz $@
|
||||
|
||||
|
52
README.md
52
README.md
@ -4,65 +4,29 @@ 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.
|
||||
|
||||
|
||||
## Base ROM
|
||||
|
||||
The following ROM is required for compiling:
|
||||
|
||||
```
|
||||
Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc
|
||||
|
||||
md5: 9f2922b235a5eeb78d65594e82ef5dde
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
* disassembly of [Pokémon Red](http://bitbucket.org/iimarckus/pokered).
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
* Hang out with us on IRC, nucleus.kafuka.org #skeetendo (you can [ use mibbit](http://chat.mibbit.com/) to this server)
|
||||
* Hang out with us on IRC: `nucleus.kafuka.org #skeetendo` (for example, by
|
||||
using [mibbit](http://chat.mibbit.com/)).
|
||||
|
||||
* Are we missing something? Make a pull request! Contributions are welcome.
|
||||
|
||||
* Tackle some [issues](https://github.com/kanzure/pokecrystal/issues)!
|
||||
|
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
|
11200
battle/effect_commands.asm
Normal file
11200
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
|
||||
|
File diff suppressed because it is too large
Load Diff
257
constants.asm
257
constants.asm
@ -2337,6 +2337,7 @@ EVOLVE_HAPPINESS EQU 4
|
||||
EVOLVE_STAT EQU 5
|
||||
|
||||
; happiness evolution triggers
|
||||
HAPPINESS_TO_EVOLVE EQU 220
|
||||
TR_ANYTIME EQU 1
|
||||
TR_MORNDAY EQU 2
|
||||
TR_NITE EQU 3
|
||||
@ -3321,42 +3322,45 @@ NOTE_16 EQU $0f
|
||||
; specials
|
||||
NUM_SPECIALS EQU $a8
|
||||
|
||||
SPECIAL_UPDATESPRITETILES EQU $0038
|
||||
SPECIAL_UPDATESPRITETILES EQU $0038
|
||||
|
||||
SPECIAL_WAITSFX EQU $003b
|
||||
SPECIAL_BIKESURFMUSIC EQU $003c
|
||||
SPECIAL_WAITSFX EQU $003b
|
||||
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_TRAINERHOUSE EQU $0067
|
||||
SPECIAL_SNORLAXAWAKE EQU $0060
|
||||
|
||||
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_OMANYTECHAMBER EQU $0084
|
||||
SPECIAL_ODDEGG EQU $007d
|
||||
|
||||
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_POKESEER EQU $0091
|
||||
SPECIAL_CELEBI EQU $008f
|
||||
|
||||
SPECIAL_DRATINI EQU $0094
|
||||
SPECIAL_AFTERCELEBI EQU $0090
|
||||
SPECIAL_POKESEER EQU $0091
|
||||
|
||||
SPECIAL_BEASTSCHECK EQU $0096
|
||||
SPECIAL_MONCHECK EQU $0097
|
||||
SPECIAL_DRATINI EQU $0094
|
||||
|
||||
SPECIAL_BEASTSCHECK EQU $0096
|
||||
SPECIAL_MONCHECK EQU $0097
|
||||
|
||||
|
||||
; predefs
|
||||
PREDEF_FILLPP EQU $05
|
||||
PREDEF_ADDPARTYMON EQU $06
|
||||
PREDEF_FILLSTATS EQU $0C
|
||||
PREDEF_FILLMOVES EQU $1B
|
||||
PREDEF_GETUNOWNLETTER EQU $2D
|
||||
@ -3442,6 +3446,221 @@ 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_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_UNLEASH EQU 0
|
||||
|
||||
SUBSTATUS_DESTINY_BOND EQU 6
|
||||
SUBSTATUS_LOCK_ON EQU 5
|
||||
|
||||
|
||||
; status
|
||||
SLP EQU 7
|
||||
PSN EQU 1 << 3
|
||||
BRN EQU 1 << 4
|
||||
FRZ EQU 1 << 5
|
||||
PAR EQU 1 << 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
|
||||
; unused EQU $25
|
||||
EFFECT_OHKO EQU $26
|
||||
EFFECT_RAZOR_WIND EQU $27
|
||||
EFFECT_SUPER_FANG EQU $28
|
||||
EFFECT_STATIC_DAMAGE EQU $29
|
||||
EFFECT_BIND EQU $2a
|
||||
; unused EQU $2b
|
||||
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
|
||||
; unused EQU $4e
|
||||
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
|
||||
; unused EQU $6e
|
||||
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
|
||||
; unused EQU $82
|
||||
; unused EQU $83
|
||||
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
|
||||
BUTTONS EQU %00010000
|
||||
D_PAD EQU %00100000
|
||||
|
@ -98,6 +98,7 @@ chars = {
|
||||
0xE9: "&",
|
||||
0xEA: "é",
|
||||
0xEB: "→",
|
||||
0xED: "▶",
|
||||
0xEF: "♂",
|
||||
0xF0: "¥",
|
||||
0xF1: "×",
|
||||
|
@ -2917,7 +2917,7 @@ music_command_enders = [0xEA, 0xEB, 0xEE, 0xFC, 0xFF,]
|
||||
# special case for 0xFD (if loopchannel.count = 0, break)
|
||||
|
||||
def create_music_command_classes(debug=False):
|
||||
klasses = [GivePoke]
|
||||
klasses = []
|
||||
for (byte, cmd) in music_commands_new.items():
|
||||
cmd_name = cmd[0].replace(" ", "_")
|
||||
params = {"id": byte, "size": 1, "end": byte in music_command_enders, "macro_name": cmd_name}
|
||||
@ -2943,6 +2943,221 @@ def create_music_command_classes(debug=False):
|
||||
return klasses
|
||||
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"):
|
||||
"""generates all macros based on commands
|
||||
this is dumped into script_macros.asm"""
|
||||
|
10
hram.asm
10
hram.asm
@ -26,6 +26,16 @@ 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
|
||||
|
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 @@
|
||||
|
||||
(+
|
||||
)*
|
||||
|
||||
|
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