mirror of
https://github.com/pret/pokeyellow.git
synced 2026-04-26 17:47:20 -05:00
Merge remote-tracking branch 'remotes/pokered/master'
This commit is contained in:
commit
7dd9d7dc80
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
||||||
uses: actions/checkout@master
|
uses: actions/checkout@master
|
||||||
with:
|
with:
|
||||||
path: rgbds
|
path: rgbds
|
||||||
ref: v0.5.2
|
ref: v0.6.0
|
||||||
repository: gbdev/rgbds
|
repository: gbdev/rgbds
|
||||||
|
|
||||||
- name: Install rgbds
|
- name: Install rgbds
|
||||||
|
|
|
||||||
22
INSTALL.md
22
INSTALL.md
|
|
@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho
|
||||||
|
|
||||||
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
|
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
|
||||||
|
|
||||||
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.5.2**.
|
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.6.0**.
|
||||||
|
|
||||||
**Note:** If you already have an older rgbds, you will need to update to 0.5.2. Ignore this if you have never installed rgbds before. If a version newer than 0.5.2 does not work, try downloading 0.5.2.
|
**Note:** If you already have an older rgbds, you will need to update to 0.6.0. Ignore this if you have never installed rgbds before. If a version newer than 0.6.0 does not work, try downloading 0.6.0.
|
||||||
|
|
||||||
Now open the **Cygwin terminal** and enter the following commands.
|
Now open the **Cygwin terminal** and enter the following commands.
|
||||||
|
|
||||||
|
|
@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
|
||||||
|
|
||||||
Open **Terminal** and prepare to enter commands.
|
Open **Terminal** and prepare to enter commands.
|
||||||
|
|
||||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.5.2**.
|
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.6.0**.
|
||||||
|
|
||||||
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
||||||
|
|
||||||
|
|
@ -84,7 +84,7 @@ To install the software required for **pokeyellow**:
|
||||||
sudo apt-get install make gcc git
|
sudo apt-get install make gcc git
|
||||||
```
|
```
|
||||||
|
|
||||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.5.2** from source.
|
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source.
|
||||||
|
|
||||||
### OpenSUSE
|
### OpenSUSE
|
||||||
|
|
||||||
|
|
@ -94,7 +94,7 @@ To install the software required for **pokeyellow**:
|
||||||
sudo zypper install make gcc git
|
sudo zypper install make gcc git
|
||||||
```
|
```
|
||||||
|
|
||||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.5.2** from source.
|
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source.
|
||||||
|
|
||||||
### Arch Linux
|
### Arch Linux
|
||||||
|
|
||||||
|
|
@ -104,9 +104,9 @@ To install the software required for **pokeyellow**:
|
||||||
sudo pacman -S make gcc git
|
sudo pacman -S make gcc git
|
||||||
```
|
```
|
||||||
|
|
||||||
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Arch Linux to install **rgbds 0.5.2**.
|
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Arch Linux to install **rgbds 0.6.0**.
|
||||||
|
|
||||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.5.2** from source.
|
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source.
|
||||||
|
|
||||||
### Termux
|
### Termux
|
||||||
|
|
||||||
|
|
@ -122,7 +122,7 @@ To install **rgbds**:
|
||||||
sudo apt install rgbds
|
sudo apt install rgbds
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.5.2** from source.
|
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source.
|
||||||
|
|
||||||
### Other distros
|
### Other distros
|
||||||
|
|
||||||
|
|
@ -133,7 +133,7 @@ If your distro is not listed here, try to find the required software in its repo
|
||||||
- `git`
|
- `git`
|
||||||
- `rgbds`
|
- `rgbds`
|
||||||
|
|
||||||
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.5.2** from source.
|
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.0** from source.
|
||||||
|
|
||||||
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
|
||||||
|
|
||||||
|
|
@ -155,8 +155,8 @@ make
|
||||||
|
|
||||||
### Build with a local rgbds version
|
### Build with a local rgbds version
|
||||||
|
|
||||||
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.5.2 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.5.2/`. Then specify it when you run `make`:
|
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.6.0 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.6.0/`. Then specify it when you run `make`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make RGBDS=rgbds-0.5.2/
|
make RGBDS=rgbds-0.6.0/
|
||||||
```
|
```
|
||||||
|
|
|
||||||
12
Makefile
12
Makefile
|
|
@ -81,7 +81,7 @@ tools:
|
||||||
$(MAKE) -C tools/
|
$(MAKE) -C tools/
|
||||||
|
|
||||||
|
|
||||||
RGBASMFLAGS = -h -L -Weverything -Wnumeric-string=2 -Wtruncation=1
|
RGBASMFLAGS = -hL -Q8 -P includes.asm -Weverything -Wnumeric-string=2 -Wtruncation=1
|
||||||
# Create a sym/map for debug purposes if `make` run with `DEBUG=1`
|
# Create a sym/map for debug purposes if `make` run with `DEBUG=1`
|
||||||
ifeq ($(DEBUG),1)
|
ifeq ($(DEBUG),1)
|
||||||
RGBASMFLAGS += -E
|
RGBASMFLAGS += -E
|
||||||
|
|
@ -100,7 +100,7 @@ rgbdscheck.o: rgbdscheck.asm
|
||||||
# As a side effect, they're evaluated immediately instead of when the rule is invoked.
|
# As a side effect, they're evaluated immediately instead of when the rule is invoked.
|
||||||
# It doesn't look like $(shell) can be deferred so there might not be a better way.
|
# It doesn't look like $(shell) can be deferred so there might not be a better way.
|
||||||
define DEP
|
define DEP
|
||||||
$1: $2 $$(shell tools/scan_includes $2) | rgbdscheck.o
|
$1: $2 $$(shell tools/scan_includes $2) | includes.asm rgbdscheck.o
|
||||||
$$(RGBASM) $$(RGBASMFLAGS) -o $$@ $$<
|
$$(RGBASM) $$(RGBASMFLAGS) -o $$@ $$<
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
@ -116,8 +116,8 @@ $(foreach obj, $(pokeyellow_debug_obj), $(eval $(call DEP,$(obj),$(obj:_debug.o=
|
||||||
$(foreach obj, $(pokeyellow_vc_obj), $(eval $(call DEP,$(obj),$(obj:_vc.o=.asm))))
|
$(foreach obj, $(pokeyellow_vc_obj), $(eval $(call DEP,$(obj),$(obj:_vc.o=.asm))))
|
||||||
|
|
||||||
# Dependencies for VC files that need to run scan_includes
|
# Dependencies for VC files that need to run scan_includes
|
||||||
%.constants.sym: %.constants.asm $(shell tools/scan_includes %.constants.asm) | rgbdscheck.o
|
%.constants.sym: %.constants.asm $(shell tools/scan_includes %.constants.asm) | includes.asm rgbdscheck.o
|
||||||
$(RGBASM) $< > $@
|
$(RGBASM) $(RGBASMFLAGS) $< > $@
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -138,8 +138,8 @@ opts = -cjsv -k 01 -l 0x33 -m 0x1b -p 0 -r 03 -t "POKEMON YELLOW"
|
||||||
|
|
||||||
### Misc file-specific graphics rules
|
### Misc file-specific graphics rules
|
||||||
|
|
||||||
gfx/battle/attack_anim_1.2bpp: tools/gfx += --trim-whitespace
|
gfx/battle/move_anim_0.2bpp: tools/gfx += --trim-whitespace
|
||||||
gfx/battle/attack_anim_2.2bpp: tools/gfx += --trim-whitespace
|
gfx/battle/move_anim_1.2bpp: tools/gfx += --trim-whitespace
|
||||||
|
|
||||||
gfx/credits/the_end.2bpp: tools/gfx += --interleave --png=$<
|
gfx/credits/the_end.2bpp: tools/gfx += --interleave --png=$<
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "Sound Effect Headers 1", ROMX
|
SECTION "Sound Effect Headers 1", ROMX
|
||||||
INCLUDE "audio/headers/sfxheaders1.asm"
|
INCLUDE "audio/headers/sfxheaders1.asm"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,93 +45,96 @@ DEF FIRST_SE_ID EQU const_value
|
||||||
|
|
||||||
; subanimations that are part of move animations
|
; subanimations that are part of move animations
|
||||||
; SubanimationPointers indexes (see data/battle_anims/subanimations.asm)
|
; SubanimationPointers indexes (see data/battle_anims/subanimations.asm)
|
||||||
|
|
||||||
|
; The 0 or 1 in the name of a subanim indicates whether to use tileset 0 or 1 data/moves/animations.asm.
|
||||||
|
; "Both" indicates either can be used for different images using the same animation.
|
||||||
const_def
|
const_def
|
||||||
const SUBANIM_00
|
const SUBANIM_0_STAR
|
||||||
const SUBANIM_01
|
const SUBANIM_0_STAR_TWICE
|
||||||
const SUBANIM_02
|
const SUBANIM_0_STAR_THRICE
|
||||||
const SUBANIM_03
|
const SUBANIM_0_STAR_DESCENDING
|
||||||
const SUBANIM_04
|
const SUBANIM_1_STAR_BIG_MOVING
|
||||||
const SUBANIM_05
|
const SUBANIM_1_STAR_BIG
|
||||||
const SUBANIM_06
|
const SUBANIM_0_BALL_TOSS_HIGH
|
||||||
const SUBANIM_07
|
const SUBANIM_0_BALL_TOSS_MIDDLE
|
||||||
const SUBANIM_08
|
const SUBANIM_0_BALL_TOSS_LOW
|
||||||
const SUBANIM_09
|
const SUBANIM_0_BALL_SHAKE_ENEMY
|
||||||
const SUBANIM_0A
|
const SUBANIM_0_BALL_POOF_ENEMY
|
||||||
const SUBANIM_0B
|
const SUBANIM_0_BALL_BLOCK
|
||||||
const SUBANIM_0C
|
const SUBANIM_1_FLAME_COLUMN_1
|
||||||
const SUBANIM_0D
|
const SUBANIM_1_FLAME_COLUMN_2
|
||||||
const SUBANIM_0E
|
const SUBANIM_1_FLAME_COLUMN_3
|
||||||
const SUBANIM_0F
|
const SUBANIM_0_SCRATCHES
|
||||||
const SUBANIM_10
|
const SUBANIM_1_TORNADO
|
||||||
const SUBANIM_11
|
const SUBANIM_1_FLAMES
|
||||||
const SUBANIM_12
|
const SUBANIM_0_HEART_1_MUSIC
|
||||||
const SUBANIM_13
|
const SUBANIM_1_BLOB_TOSS
|
||||||
const SUBANIM_14
|
const SUBANIM_1_BLOB_DRIP_ENEMY
|
||||||
const SUBANIM_15
|
const SUBANIM_1_SHOUT
|
||||||
const SUBANIM_16
|
const SUBANIM_0_SLICE
|
||||||
const SUBANIM_17
|
const SUBANIM_0_BIRDIES_CIRCLING_ENEMY
|
||||||
const SUBANIM_18
|
const SUBANIM_1_SWORDS_CIRCLING
|
||||||
const SUBANIM_19
|
const SUBANIM_1_CLOUD_TOSS
|
||||||
const SUBANIM_1A
|
const SUBANIM_0_WATER_COLUMNS
|
||||||
const SUBANIM_1B
|
const SUBANIM_1_SEED_TOSS
|
||||||
const SUBANIM_1C
|
const SUBANIM_1_SEED_LAND
|
||||||
const SUBANIM_1D
|
const SUBANIM_0_ROCKS_LIFT
|
||||||
const SUBANIM_1E
|
const SUBANIM_0_ROCKS_TOSS
|
||||||
const SUBANIM_1F
|
const SUBANIM_1_FLAME_BEAM
|
||||||
const SUBANIM_20
|
const SUBANIM_1_FLAME_STAR
|
||||||
const SUBANIM_21
|
const SUBANIM_0_CIRCLES_1_SQUARES_CENTERING_ENEMY
|
||||||
const SUBANIM_22
|
const SUBANIM_0_CIRCLE_1_SQUARE_TOSS_BACK
|
||||||
const SUBANIM_23
|
const SUBANIM_0_BIND
|
||||||
const SUBANIM_24
|
const SUBANIM_0_STATUS_PARALYZED
|
||||||
const SUBANIM_25
|
const SUBANIM_0_STATUS_CONFUSED
|
||||||
const SUBANIM_26
|
const SUBANIM_0_STATUS_CONFUSED_ENEMY
|
||||||
const SUBANIM_27
|
const SUBANIM_0_STATUS_POISONED
|
||||||
const SUBANIM_28
|
const SUBANIM_1_SAND
|
||||||
const SUBANIM_29
|
const SUBANIM_1_LIGHTNING_BALL
|
||||||
const SUBANIM_2A
|
const SUBANIM_0_SLICE_BOTH_SIDES
|
||||||
const SUBANIM_2B
|
const SUBANIM_1_LIGHTNING
|
||||||
const SUBANIM_2C
|
const SUBANIM_0_WATER_DROPLETS
|
||||||
const SUBANIM_2D
|
const SUBANIM_0_CIRCLES_CENTERING
|
||||||
const SUBANIM_2E
|
const SUBANIM_0_BEAM
|
||||||
const SUBANIM_2F
|
const SUBANIM_0_ICE_RISE
|
||||||
const SUBANIM_30
|
const SUBANIM_0_ROCKS_FALL_ENEMY
|
||||||
const SUBANIM_31
|
const SUBANIM_0_SOUND_WAVE
|
||||||
const SUBANIM_32
|
const SUBANIM_0_CIRCLE_1_SQUARE_HALF_TOSS ; unused
|
||||||
const SUBANIM_33
|
const SUBANIM_1_BARRIER
|
||||||
const SUBANIM_34
|
const SUBANIM_1_SELFDESTRUCT
|
||||||
const SUBANIM_35
|
const SUBANIM_0_WATER_BUBBLES
|
||||||
const SUBANIM_36
|
const SUBANIM_0_CIRCLES_FALLING
|
||||||
const SUBANIM_37
|
const SUBANIM_0_STRING_SHOT
|
||||||
const SUBANIM_38
|
const SUBANIM_0_ICE_FALL
|
||||||
const SUBANIM_39
|
const SUBANIM_0_CIRCLE_1_SQUARE_APPEARS ; unused
|
||||||
const SUBANIM_3A
|
const SUBANIM_0_STATUS_SLEEP
|
||||||
const SUBANIM_3B
|
const SUBANIM_0_STATUS_SLEEP_ENEMY
|
||||||
const SUBANIM_3C
|
const SUBANIM_0_WATER_1_FIRE_BARRIER ; unused
|
||||||
const SUBANIM_3D
|
const SUBANIM_0_WATER_1_FIRE_GEYSER ; unused
|
||||||
const SUBANIM_3E
|
const SUBANIM_1_STAR_BIG_TOSS
|
||||||
const SUBANIM_3F
|
const SUBANIM_1_STARS_SMALL_TOSS
|
||||||
const SUBANIM_40
|
const SUBANIM_1_MUSIC_CIRCLING_ENEMY
|
||||||
const SUBANIM_41
|
const SUBANIM_1_CIRCLE_BLACK_TOSS
|
||||||
const SUBANIM_42
|
const SUBANIM_1_EXPLOSION_SMALL_ENEMY
|
||||||
const SUBANIM_43
|
const SUBANIM_0_CIRCLE_1_SQUARE_CLOSING
|
||||||
const SUBANIM_44
|
const SUBANIM_1_LEAVES_TOSS
|
||||||
const SUBANIM_45
|
const SUBANIM_0_HORN_JAB_TWICE
|
||||||
const SUBANIM_46
|
const SUBANIM_0_HORN_JAB_THRICE
|
||||||
const SUBANIM_47
|
const SUBANIM_0_BALL_POOF
|
||||||
const SUBANIM_48
|
const SUBANIM_2_TRADE_BALL_DROP
|
||||||
const SUBANIM_49
|
const SUBANIM_2_TRADE_BALL_SHAKE
|
||||||
const SUBANIM_4A
|
const SUBANIM_2_TRADE_BALL_APPEAR
|
||||||
const SUBANIM_4B
|
const SUBANIM_2_TRADE_BALL_POOF
|
||||||
const SUBANIM_4C
|
const SUBANIM_0_EGG_SHAKING
|
||||||
const SUBANIM_4D
|
const SUBANIM_1_TRIANGLE_TOSS
|
||||||
const SUBANIM_4E
|
const SUBANIM_1_SPHERE_BIG
|
||||||
const SUBANIM_4F
|
const SUBANIM_1_SPHERE_BIG_RISE
|
||||||
const SUBANIM_50
|
const SUBANIM_1_SPHERE_BIG_FALL
|
||||||
const SUBANIM_51
|
const SUBANIM_0_SHELL
|
||||||
const SUBANIM_52
|
const SUBANIM_0_COIN_BOUNCE
|
||||||
const SUBANIM_53
|
const SUBANIM_0_SAFARI_ROCK
|
||||||
const SUBANIM_54
|
const SUBANIM_0_SAFARI_BAIT
|
||||||
const SUBANIM_55
|
const SUBANIM_0_STAR_HIGH
|
||||||
DEF NUM_SUBANIMS EQU const_value
|
DEF NUM_SUBANIMS EQU const_value
|
||||||
|
|
||||||
; types of subanimations
|
; types of subanimations
|
||||||
|
|
|
||||||
41
constants/sprite_set_constants.asm
Normal file
41
constants/sprite_set_constants.asm
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
; sprite set ids
|
||||||
|
; indexes for SpriteSets (see data/maps/sprite_sets.asm)
|
||||||
|
; values for MapSpriteSets and SplitMapSpriteSets (see data/maps/sprite_sets.asm)
|
||||||
|
const_def 1
|
||||||
|
const SPRITESET_PALLET_VIRIDIAN ; 01
|
||||||
|
const SPRITESET_PEWTER_CERULEAN ; 02
|
||||||
|
const SPRITESET_LAVENDER ; 03
|
||||||
|
const SPRITESET_VERMILION ; 04
|
||||||
|
const SPRITESET_CELADON ; 05
|
||||||
|
const SPRITESET_INDIGO ; 06
|
||||||
|
const SPRITESET_SAFFRON ; 07
|
||||||
|
const SPRITESET_SILENCE_BRIDGE ; 08
|
||||||
|
const SPRITESET_CYCLING_ROAD ; 09
|
||||||
|
const SPRITESET_FUCHSIA ; 0a
|
||||||
|
DEF NUM_SPRITE_SETS EQU const_value - 1
|
||||||
|
|
||||||
|
; split sprite set ids
|
||||||
|
; indexes for SplitMapSpriteSets (see data/maps/sprite_sets.asm)
|
||||||
|
; values for MapSpriteSets (see data/maps/sprite_sets.asm)
|
||||||
|
const_next $f1
|
||||||
|
DEF FIRST_SPLIT_SET EQU const_value
|
||||||
|
const SPLITSET_ROUTE_2 ; f1
|
||||||
|
const SPLITSET_ROUTE_10 ; f2
|
||||||
|
const SPLITSET_ROUTE_11 ; f3
|
||||||
|
const SPLITSET_ROUTE_12 ; f4
|
||||||
|
const SPLITSET_ROUTE_15 ; f5
|
||||||
|
const SPLITSET_ROUTE_16 ; f6
|
||||||
|
const SPLITSET_ROUTE_18 ; f7
|
||||||
|
const SPLITSET_ROUTE_20 ; f8
|
||||||
|
const SPLITSET_ROUTE_5 ; f9
|
||||||
|
const SPLITSET_ROUTE_6 ; fa
|
||||||
|
const SPLITSET_ROUTE_7 ; fb
|
||||||
|
const SPLITSET_ROUTE_8 ; fc
|
||||||
|
DEF NUM_SPLIT_SETS EQU const_value - FIRST_SPLIT_SET
|
||||||
|
|
||||||
|
; split directions
|
||||||
|
DEF EAST_WEST EQU 1
|
||||||
|
DEF NORTH_SOUTH EQU 2
|
||||||
|
|
||||||
|
; each sprite set has 9 walking sprites and 2 still sprites
|
||||||
|
DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
|
|
@ -1,91 +1,91 @@
|
||||||
SubanimationPointers:
|
SubanimationPointers:
|
||||||
table_width 2, SubanimationPointers
|
table_width 2, SubanimationPointers
|
||||||
dw Subanimation00
|
dw Subanim_0Star
|
||||||
dw Subanimation01
|
dw Subanim_0StarTwice
|
||||||
dw Subanimation02
|
dw Subanim_0StarThrice
|
||||||
dw Subanimation03
|
dw Subanim_0StarDescending
|
||||||
dw Subanimation04
|
dw Subanim_1StarBigMoving
|
||||||
dw Subanimation05
|
dw Subanim_1StarBig
|
||||||
dw Subanimation06
|
dw Subanim_0BallTossHigh
|
||||||
dw Subanimation07
|
dw Subanim_0BallTossMiddle
|
||||||
dw Subanimation08
|
dw Subanim_0BallTossLow
|
||||||
dw Subanimation09
|
dw Subanim_0BallShakeEnemy
|
||||||
dw Subanimation0a
|
dw Subanim_0BallPoofEnemy
|
||||||
dw Subanimation0b
|
dw Subanim_0BallBlock
|
||||||
dw Subanimation0c
|
dw Subanim_1FlameColumn1
|
||||||
dw Subanimation0d
|
dw Subanim_1FlameColumn2
|
||||||
dw Subanimation0e
|
dw Subanim_1FlameColumn3
|
||||||
dw Subanimation0f
|
dw Subanim_0Scratches
|
||||||
dw Subanimation10
|
dw Subanim_1Tornado
|
||||||
dw Subanimation11
|
dw Subanim_1Flames
|
||||||
dw Subanimation12
|
dw Subanim_0Heart_1Music
|
||||||
dw Subanimation13
|
dw Subanim_1BlobToss
|
||||||
dw Subanimation14
|
dw Subanim_1BlobDripEnemy
|
||||||
dw Subanimation15
|
dw Subanim_1Shout
|
||||||
dw Subanimation16
|
dw Subanim_0Slice
|
||||||
dw Subanimation17
|
dw Subanim_0BirdiesCirclingEnemy
|
||||||
dw Subanimation18
|
dw Subanim_1SwordsCircling
|
||||||
dw Subanimation19
|
dw Subanim_1CloudToss
|
||||||
dw Subanimation1a
|
dw Subanim_0WaterColumns
|
||||||
dw Subanimation1b
|
dw Subanim_1SeedToss
|
||||||
dw Subanimation1c
|
dw Subanim_1SeedLand
|
||||||
dw Subanimation1d
|
dw Subanim_0RocksLift
|
||||||
dw Subanimation1e
|
dw Subanim_0RocksToss
|
||||||
dw Subanimation1f
|
dw Subanim_1FlameBeam
|
||||||
dw Subanimation20
|
dw Subanim_1FlameStar
|
||||||
dw Subanimation21
|
dw Subanim_0Circles_1Squares_CenteringEnemy
|
||||||
dw Subanimation22
|
dw Subanim_0Circle_1Square_TossBack
|
||||||
dw Subanimation23
|
dw Subanim_0Bind
|
||||||
dw Subanimation24
|
dw Subanim_0StatusParalyzed
|
||||||
dw Subanimation25
|
dw Subanim_0StatusConfused
|
||||||
dw Subanimation26
|
dw Subanim_0StatusConfusedEnemy
|
||||||
dw Subanimation27
|
dw Subanim_0StatusPoisoned
|
||||||
dw Subanimation28
|
dw Subanim_1Sand
|
||||||
dw Subanimation29
|
dw Subanim_1LightningBall
|
||||||
dw Subanimation2a
|
dw Subanim_0SliceBothSides
|
||||||
dw Subanimation2b
|
dw Subanim_1Lightning
|
||||||
dw Subanimation2c
|
dw Subanim_0WaterDroplets
|
||||||
dw Subanimation2d
|
dw Subanim_0CirclesCentering
|
||||||
dw Subanimation2e
|
dw Subanim_0Beam
|
||||||
dw Subanimation2f
|
dw Subanim_0IceRise
|
||||||
dw Subanimation30
|
dw Subanim_0RocksFallEnemy
|
||||||
dw Subanimation31
|
dw Subanim_0SoundWave
|
||||||
dw Subanimation32
|
dw Subanim_0Circle_1Square_HalfToss ; unused
|
||||||
dw Subanimation33
|
dw Subanim_1Barrier
|
||||||
dw Subanimation34
|
dw Subanim_1Selfdestruct
|
||||||
dw Subanimation35
|
dw Subanim_0WaterBubbles
|
||||||
dw Subanimation36
|
dw Subanim_0CirclesFalling
|
||||||
dw Subanimation37
|
dw Subanim_0StringShot
|
||||||
dw Subanimation38
|
dw Subanim_0IceFall
|
||||||
dw Subanimation39
|
dw Subanim_0Circle_1Square_Appears ; unused
|
||||||
dw Subanimation3a
|
dw Subanim_0StatusSleep
|
||||||
dw Subanimation3b
|
dw Subanim_0StatusSleepEnemy
|
||||||
dw Subanimation3c
|
dw Subanim_0Water_1Fire_Barrier ; unused
|
||||||
dw Subanimation3d
|
dw Subanim_0Water_1Fire_Geyser ; unused
|
||||||
dw Subanimation3e
|
dw Subanim_1StarBigToss
|
||||||
dw Subanimation3f
|
dw Subanim_1StarsSmallToss
|
||||||
dw Subanimation40
|
dw Subanim_1MusicCirclingEnemy
|
||||||
dw Subanimation41
|
dw Subanim_1CircleBlackToss
|
||||||
dw Subanimation42
|
dw Subanim_1ExplosionSmallEnemy
|
||||||
dw Subanimation43
|
dw Subanim_0Circle_1Square_Closing
|
||||||
dw Subanimation44
|
dw Subanim_1LeavesToss
|
||||||
dw Subanimation45
|
dw Subanim_0HornJabTwice
|
||||||
dw Subanimation46
|
dw Subanim_0HornJabThrice
|
||||||
dw Subanimation47
|
dw Subanim_0BallPoof
|
||||||
dw Subanimation48
|
dw Subanim_2TradeBallDrop
|
||||||
dw Subanimation49
|
dw Subanim_2TradeBallShake
|
||||||
dw Subanimation4a
|
dw Subanim_2TradeBallAppear
|
||||||
dw Subanimation4b
|
dw Subanim_2TradeBallPoof
|
||||||
dw Subanimation4c
|
dw Subanim_0EggShaking
|
||||||
dw Subanimation4d
|
dw Subanim_1TriangleToss
|
||||||
dw Subanimation4e
|
dw Subanim_1SphereBig
|
||||||
dw Subanimation4f
|
dw Subanim_1SphereBigRise
|
||||||
dw Subanimation50
|
dw Subanim_1SphereBigFall
|
||||||
dw Subanimation51
|
dw Subanim_0Shell
|
||||||
dw Subanimation52
|
dw Subanim_0CoinBounce
|
||||||
dw Subanimation53
|
dw Subanim_0SafariRock
|
||||||
dw Subanimation54
|
dw Subanim_0SafariBait
|
||||||
dw Subanimation55
|
dw Subanim_0StarHigh
|
||||||
assert_table_length NUM_SUBANIMS
|
assert_table_length NUM_SUBANIMS
|
||||||
|
|
||||||
; format:
|
; format:
|
||||||
|
|
@ -98,17 +98,17 @@ MACRO subanim
|
||||||
db (\1 << 5) | \2
|
db (\1 << 5) | \2
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
Subanimation04:
|
Subanim_1StarBigMoving:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_02, BASECOORD_1A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_1A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_02, BASECOORD_03, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_03, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation05:
|
Subanim_1StarBig:
|
||||||
subanim SUBANIMTYPE_HFLIP, 1
|
subanim SUBANIMTYPE_HFLIP, 1
|
||||||
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation08:
|
Subanim_0BallTossLow:
|
||||||
subanim SUBANIMTYPE_NORMAL, 11
|
subanim SUBANIMTYPE_NORMAL, 11
|
||||||
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_44, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_44, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -122,7 +122,7 @@ Subanimation08:
|
||||||
db FRAMEBLOCK_03, BASECOORD_A1, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_A1, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation07:
|
Subanim_0BallTossMiddle:
|
||||||
subanim SUBANIMTYPE_NORMAL, 11
|
subanim SUBANIMTYPE_NORMAL, 11
|
||||||
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -136,7 +136,7 @@ Subanimation07:
|
||||||
db FRAMEBLOCK_03, BASECOORD_A6, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_A6, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation06:
|
Subanim_0BallTossHigh:
|
||||||
subanim SUBANIMTYPE_NORMAL, 11
|
subanim SUBANIMTYPE_NORMAL, 11
|
||||||
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_A2, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -150,14 +150,14 @@ Subanimation06:
|
||||||
db FRAMEBLOCK_03, BASECOORD_A9, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_A9, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_34, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation09:
|
Subanim_0BallShakeEnemy:
|
||||||
subanim SUBANIMTYPE_NORMAL, 4
|
subanim SUBANIMTYPE_NORMAL, 4
|
||||||
db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_04, BASECOORD_21, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_04, BASECOORD_21, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_03, BASECOORD_21, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_05, BASECOORD_21, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_05, BASECOORD_21, FRAMEBLOCKMODE_04
|
||||||
|
|
||||||
Subanimation0a:
|
Subanim_0BallPoofEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 6
|
subanim SUBANIMTYPE_HFLIP, 6
|
||||||
db FRAMEBLOCK_06, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_06, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_07, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_07, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -166,18 +166,18 @@ Subanimation0a:
|
||||||
db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0A, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation0b:
|
Subanim_0BallBlock:
|
||||||
subanim SUBANIMTYPE_NORMAL, 4
|
subanim SUBANIMTYPE_NORMAL, 4
|
||||||
db FRAMEBLOCK_01, BASECOORD_2D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_2D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_2F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_2F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_35, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_35, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_4D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_4D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation55:
|
Subanim_0StarHigh:
|
||||||
subanim SUBANIMTYPE_HFLIP, 1
|
subanim SUBANIMTYPE_HFLIP, 1
|
||||||
db FRAMEBLOCK_01, BASECOORD_9D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_9D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation11:
|
Subanim_1Flames:
|
||||||
subanim SUBANIMTYPE_HFLIP, 12
|
subanim SUBANIMTYPE_HFLIP, 12
|
||||||
db FRAMEBLOCK_0B, BASECOORD_26, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0B, BASECOORD_26, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_0C, BASECOORD_26, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_26, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -192,7 +192,7 @@ Subanimation11:
|
||||||
db FRAMEBLOCK_0B, BASECOORD_27, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0B, BASECOORD_27, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_0C, BASECOORD_27, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_27, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2b:
|
Subanim_1Lightning:
|
||||||
subanim SUBANIMTYPE_HFLIP, 11
|
subanim SUBANIMTYPE_HFLIP, 11
|
||||||
db FRAMEBLOCK_0D, BASECOORD_03, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_0D, BASECOORD_03, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_0E, BASECOORD_03, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_0E, BASECOORD_03, FRAMEBLOCKMODE_03
|
||||||
|
|
@ -206,7 +206,7 @@ Subanimation2b:
|
||||||
db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_11, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2c:
|
Subanim_0WaterDroplets:
|
||||||
subanim SUBANIMTYPE_HFLIP, 12
|
subanim SUBANIMTYPE_HFLIP, 12
|
||||||
db FRAMEBLOCK_12, BASECOORD_01, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_12, BASECOORD_01, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_12, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_12, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -221,7 +221,7 @@ Subanimation2c:
|
||||||
db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_16, BASECOORD_38, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation12:
|
Subanim_0Heart_1Music:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 9
|
subanim SUBANIMTYPE_COORDFLIP, 9
|
||||||
db FRAMEBLOCK_17, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_17, BASECOORD_39, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_39, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -233,35 +233,35 @@ Subanimation12:
|
||||||
db FRAMEBLOCK_17, BASECOORD_3F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_3F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_17, BASECOORD_1F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_1F, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation00:
|
Subanim_0Star:
|
||||||
subanim SUBANIMTYPE_HFLIP, 1
|
subanim SUBANIMTYPE_HFLIP, 1
|
||||||
db FRAMEBLOCK_01, BASECOORD_17, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_17, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation01:
|
Subanim_0StarTwice:
|
||||||
subanim SUBANIMTYPE_HFLIP, 2
|
subanim SUBANIMTYPE_HFLIP, 2
|
||||||
db FRAMEBLOCK_01, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation02:
|
Subanim_0StarThrice:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_01, BASECOORD_12, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_12, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_1C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_1C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation03:
|
Subanim_0StarDescending:
|
||||||
subanim SUBANIMTYPE_HFLIP, 4
|
subanim SUBANIMTYPE_HFLIP, 4
|
||||||
db FRAMEBLOCK_01, BASECOORD_0B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_0B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_11, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_11, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_18, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_18, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_1D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation0c:
|
Subanim_1FlameColumn1:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation0d:
|
Subanim_1FlameColumn2:
|
||||||
subanim SUBANIMTYPE_HFLIP, 6
|
subanim SUBANIMTYPE_HFLIP, 6
|
||||||
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -270,7 +270,7 @@ Subanimation0d:
|
||||||
db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_0C, BASECOORD_23, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation0e:
|
Subanim_1FlameColumn3:
|
||||||
subanim SUBANIMTYPE_HFLIP, 9
|
subanim SUBANIMTYPE_HFLIP, 9
|
||||||
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_0C, BASECOORD_20, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_0C, BASECOORD_15, FRAMEBLOCKMODE_02
|
||||||
|
|
@ -282,7 +282,7 @@ Subanimation0e:
|
||||||
db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_0C, BASECOORD_19, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_0C, BASECOORD_0C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_0C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation1f:
|
Subanim_1FlameBeam:
|
||||||
subanim SUBANIMTYPE_REVERSE, 5
|
subanim SUBANIMTYPE_REVERSE, 5
|
||||||
db FRAMEBLOCK_0C, BASECOORD_30, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_0C, BASECOORD_30, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_0C, BASECOORD_40, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_0C, BASECOORD_40, FRAMEBLOCKMODE_03
|
||||||
|
|
@ -290,7 +290,7 @@ Subanimation1f:
|
||||||
db FRAMEBLOCK_0C, BASECOORD_42, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_0C, BASECOORD_42, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_0C, BASECOORD_21, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2e:
|
Subanim_0Beam:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 14
|
subanim SUBANIMTYPE_HVFLIP, 14
|
||||||
db FRAMEBLOCK_18, BASECOORD_43, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_18, BASECOORD_43, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_75, BASECOORD_52, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_75, BASECOORD_52, FRAMEBLOCKMODE_04
|
||||||
|
|
@ -307,14 +307,14 @@ Subanimation2e:
|
||||||
db FRAMEBLOCK_1E, BASECOORD_43, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_1E, BASECOORD_43, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_75, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_75, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2f:
|
Subanim_0IceRise:
|
||||||
subanim SUBANIMTYPE_HFLIP, 4
|
subanim SUBANIMTYPE_HFLIP, 4
|
||||||
db FRAMEBLOCK_1F, BASECOORD_24, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_1F, BASECOORD_24, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_20, BASECOORD_20, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_20, BASECOORD_20, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_21, BASECOORD_1A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_21, BASECOORD_1A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_22, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_22, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation30:
|
Subanim_0RocksFallEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 18
|
subanim SUBANIMTYPE_HFLIP, 18
|
||||||
db FRAMEBLOCK_23, BASECOORD_00, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_23, BASECOORD_00, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_23, BASECOORD_02, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_23, BASECOORD_02, FRAMEBLOCKMODE_02
|
||||||
|
|
@ -335,7 +335,7 @@ Subanimation30:
|
||||||
db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_24, BASECOORD_28, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation0f:
|
Subanim_0Scratches:
|
||||||
subanim SUBANIMTYPE_HFLIP, 12
|
subanim SUBANIMTYPE_HFLIP, 12
|
||||||
db FRAMEBLOCK_26, BASECOORD_0E, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_26, BASECOORD_0E, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_26, BASECOORD_16, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_26, BASECOORD_16, FRAMEBLOCKMODE_02
|
||||||
|
|
@ -350,7 +350,7 @@ Subanimation0f:
|
||||||
db FRAMEBLOCK_29, BASECOORD_16, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_29, BASECOORD_16, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_29, BASECOORD_1C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_29, BASECOORD_1C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation16:
|
Subanim_0Slice:
|
||||||
subanim SUBANIMTYPE_HFLIP, 12
|
subanim SUBANIMTYPE_HFLIP, 12
|
||||||
db FRAMEBLOCK_2A, BASECOORD_05, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2A, BASECOORD_05, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_2B, BASECOORD_05, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_2B, BASECOORD_05, FRAMEBLOCKMODE_02
|
||||||
|
|
@ -365,7 +365,7 @@ Subanimation16:
|
||||||
db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_02
|
||||||
db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2C, BASECOORD_00, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation10:
|
Subanim_1Tornado:
|
||||||
subanim SUBANIMTYPE_REVERSE, 8
|
subanim SUBANIMTYPE_REVERSE, 8
|
||||||
db FRAMEBLOCK_2D, BASECOORD_44, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2D, BASECOORD_44, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_2E, BASECOORD_45, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2E, BASECOORD_45, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -376,7 +376,7 @@ Subanimation10:
|
||||||
db FRAMEBLOCK_2D, BASECOORD_2F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2D, BASECOORD_2F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_2E, BASECOORD_1A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2E, BASECOORD_1A, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation31:
|
Subanim_0SoundWave:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 10
|
subanim SUBANIMTYPE_HVFLIP, 10
|
||||||
db FRAMEBLOCK_2F, BASECOORD_46, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2F, BASECOORD_46, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_2F, BASECOORD_4A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2F, BASECOORD_4A, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -389,7 +389,7 @@ Subanimation31:
|
||||||
db FRAMEBLOCK_2F, BASECOORD_2E, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2F, BASECOORD_2E, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_2F, BASECOORD_51, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_2F, BASECOORD_51, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation13:
|
Subanim_1BlobToss:
|
||||||
subanim SUBANIMTYPE_REVERSE, 6
|
subanim SUBANIMTYPE_REVERSE, 6
|
||||||
db FRAMEBLOCK_30, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_30, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_30, BASECOORD_32, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_30, BASECOORD_32, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -398,7 +398,7 @@ Subanimation13:
|
||||||
db FRAMEBLOCK_30, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_30, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation14:
|
Subanim_1BlobDripEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 9
|
subanim SUBANIMTYPE_HFLIP, 9
|
||||||
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_30, BASECOORD_10, FRAMEBLOCKMODE_03
|
||||||
|
|
@ -410,7 +410,7 @@ Subanimation14:
|
||||||
db FRAMEBLOCK_31, BASECOORD_22, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_31, BASECOORD_22, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_31, BASECOORD_27, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_31, BASECOORD_27, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation41:
|
Subanim_1CircleBlackToss:
|
||||||
subanim SUBANIMTYPE_REVERSE, 5
|
subanim SUBANIMTYPE_REVERSE, 5
|
||||||
db FRAMEBLOCK_03, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_32, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_32, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -418,32 +418,32 @@ Subanimation41:
|
||||||
db FRAMEBLOCK_03, BASECOORD_0E, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_0E, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_03, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_03, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation42:
|
Subanim_1ExplosionSmallEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_5A, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_5A, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation15:
|
Subanim_1Shout:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 2
|
subanim SUBANIMTYPE_HVFLIP, 2
|
||||||
db FRAMEBLOCK_35, BASECOORD_52, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_35, BASECOORD_52, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_35, BASECOORD_53, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_35, BASECOORD_53, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation17:
|
Subanim_0BirdiesCirclingEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 4
|
subanim SUBANIMTYPE_HFLIP, 4
|
||||||
db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation18:
|
Subanim_1SwordsCircling:
|
||||||
subanim SUBANIMTYPE_ENEMY, 4
|
subanim SUBANIMTYPE_ENEMY, 4
|
||||||
db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_36, BASECOORD_54, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_36, BASECOORD_55, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_37, BASECOORD_56, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_37, BASECOORD_57, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation40:
|
Subanim_1MusicCirclingEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 6
|
subanim SUBANIMTYPE_HFLIP, 6
|
||||||
db FRAMEBLOCK_17, BASECOORD_54, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_54, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_17, BASECOORD_55, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_55, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -452,7 +452,7 @@ Subanimation40:
|
||||||
db FRAMEBLOCK_17, BASECOORD_57, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_57, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_17, BASECOORD_13, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_17, BASECOORD_13, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation19:
|
Subanim_1CloudToss:
|
||||||
subanim SUBANIMTYPE_REVERSE, 12
|
subanim SUBANIMTYPE_REVERSE, 12
|
||||||
db FRAMEBLOCK_38, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_38, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_39, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_39, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -467,7 +467,7 @@ Subanimation19:
|
||||||
db FRAMEBLOCK_38, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_38, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_39, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_39, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation1a:
|
Subanim_0WaterColumns:
|
||||||
subanim SUBANIMTYPE_HFLIP, 16
|
subanim SUBANIMTYPE_HFLIP, 16
|
||||||
db FRAMEBLOCK_3A, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3A, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_3B, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3B, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -486,20 +486,20 @@ Subanimation1a:
|
||||||
db FRAMEBLOCK_3E, BASECOORD_0B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3E, BASECOORD_0B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_3F, BASECOORD_0B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3F, BASECOORD_0B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation1b:
|
Subanim_1SeedToss:
|
||||||
subanim SUBANIMTYPE_REVERSE, 4
|
subanim SUBANIMTYPE_REVERSE, 4
|
||||||
db FRAMEBLOCK_40, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_40, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_40, BASECOORD_32, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_40, BASECOORD_32, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_40, BASECOORD_92, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_40, BASECOORD_92, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_40, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_40, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation1c:
|
Subanim_1SeedLand:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_41, BASECOORD_58, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_41, BASECOORD_58, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_41, BASECOORD_59, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_41, BASECOORD_59, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_41, BASECOORD_21, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_41, BASECOORD_21, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation1d:
|
Subanim_0RocksLift:
|
||||||
subanim SUBANIMTYPE_ENEMY, 15
|
subanim SUBANIMTYPE_ENEMY, 15
|
||||||
db FRAMEBLOCK_24, BASECOORD_9A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_24, BASECOORD_9A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_23, BASECOORD_1B, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_23, BASECOORD_1B, FRAMEBLOCKMODE_02
|
||||||
|
|
@ -517,22 +517,22 @@ Subanimation1d:
|
||||||
db FRAMEBLOCK_25, BASECOORD_62, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_25, BASECOORD_62, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_25, BASECOORD_99, FRAMEBLOCKMODE_03
|
||||||
|
|
||||||
Subanimation1e:
|
Subanim_0RocksToss:
|
||||||
subanim SUBANIMTYPE_NORMAL, 1
|
subanim SUBANIMTYPE_NORMAL, 1
|
||||||
db FRAMEBLOCK_25, BASECOORD_75, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_25, BASECOORD_75, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation20:
|
Subanim_1FlameStar:
|
||||||
subanim SUBANIMTYPE_HFLIP, 2
|
subanim SUBANIMTYPE_HFLIP, 2
|
||||||
db FRAMEBLOCK_42, BASECOORD_07, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_42, BASECOORD_07, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_43, BASECOORD_07, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_43, BASECOORD_07, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation21:
|
Subanim_0Circles_1Squares_CenteringEnemy:
|
||||||
subanim SUBANIMTYPE_HFLIP, 3
|
subanim SUBANIMTYPE_HFLIP, 3
|
||||||
db FRAMEBLOCK_44, BASECOORD_00, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_44, BASECOORD_00, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_45, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_45, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_46, BASECOORD_10, FRAMEBLOCKMODE_02
|
db FRAMEBLOCK_46, BASECOORD_10, FRAMEBLOCKMODE_02
|
||||||
|
|
||||||
Subanimation22:
|
Subanim_0Circle_1Square_TossBack:
|
||||||
subanim SUBANIMTYPE_REVERSE, 11
|
subanim SUBANIMTYPE_REVERSE, 11
|
||||||
db FRAMEBLOCK_47, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_47, BASECOORD_56, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_56, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -546,8 +546,8 @@ Subanimation22:
|
||||||
db FRAMEBLOCK_47, BASECOORD_89, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_89, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_47, BASECOORD_B0, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_B0, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2d:
|
Subanim_0CirclesCentering:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 6
|
subanim SUBANIMTYPE_COORDFLIP, 6 ; should be SUBANIMTYPE_HVFLIP
|
||||||
db FRAMEBLOCK_44, BASECOORD_64, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_44, BASECOORD_64, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_45, BASECOORD_65, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_45, BASECOORD_65, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_46, BASECOORD_66, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_46, BASECOORD_66, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -555,15 +555,15 @@ Subanimation2d:
|
||||||
db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_66, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation39:
|
Subanim_0Circle_1Square_Appears:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 1
|
subanim SUBANIMTYPE_COORDFLIP, 1
|
||||||
db FRAMEBLOCK_47, BASECOORD_67, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_67, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation4e:
|
Subanim_1SphereBig:
|
||||||
subanim SUBANIMTYPE_HFLIP, 1
|
subanim SUBANIMTYPE_HFLIP, 1
|
||||||
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_03
|
||||||
|
|
||||||
Subanimation4f:
|
Subanim_1SphereBigRise:
|
||||||
subanim SUBANIMTYPE_HFLIP, 7
|
subanim SUBANIMTYPE_HFLIP, 7
|
||||||
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_71, BASECOORD_08, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_71, BASECOORD_08, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -573,7 +573,7 @@ Subanimation4f:
|
||||||
db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation50:
|
Subanim_1SphereBigFall:
|
||||||
subanim SUBANIMTYPE_HFLIP, 8
|
subanim SUBANIMTYPE_HFLIP, 8
|
||||||
db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_74, BASECOORD_95, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_73, BASECOORD_95, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -584,7 +584,7 @@ Subanimation50:
|
||||||
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_71, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_71, BASECOORD_16, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_71, BASECOORD_16, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation29:
|
Subanim_1LightningBall:
|
||||||
subanim SUBANIMTYPE_HFLIP, 29
|
subanim SUBANIMTYPE_HFLIP, 29
|
||||||
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_4A, BASECOORD_68, FRAMEBLOCKMODE_03
|
||||||
|
|
@ -616,63 +616,63 @@ Subanimation29:
|
||||||
db FRAMEBLOCK_4D, BASECOORD_2A, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_4D, BASECOORD_2A, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_6B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation2a:
|
Subanim_0SliceBothSides:
|
||||||
subanim SUBANIMTYPE_HFLIP, 4
|
subanim SUBANIMTYPE_HFLIP, 4
|
||||||
db FRAMEBLOCK_4E, BASECOORD_2B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_4E, BASECOORD_2B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_4F, BASECOORD_2B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_4F, BASECOORD_2B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_50, BASECOORD_2B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation23:
|
Subanim_0Bind:
|
||||||
subanim SUBANIMTYPE_HFLIP, 2
|
subanim SUBANIMTYPE_HFLIP, 2
|
||||||
db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation24:
|
Subanim_0StatusParalyzed:
|
||||||
subanim SUBANIMTYPE_ENEMY, 2
|
subanim SUBANIMTYPE_ENEMY, 2
|
||||||
db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_51, BASECOORD_2D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_51, BASECOORD_6E, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation25:
|
Subanim_0StatusConfused:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 2
|
subanim SUBANIMTYPE_COORDFLIP, 2
|
||||||
db FRAMEBLOCK_52, BASECOORD_71, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_52, BASECOORD_71, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_52, BASECOORD_72, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_52, BASECOORD_72, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation26:
|
Subanim_0StatusConfusedEnemy:
|
||||||
subanim SUBANIMTYPE_NORMAL, 2
|
subanim SUBANIMTYPE_NORMAL, 2
|
||||||
db FRAMEBLOCK_52, BASECOORD_01, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_52, BASECOORD_01, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_52, BASECOORD_2C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_52, BASECOORD_2C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3a:
|
Subanim_0StatusSleep:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 3
|
subanim SUBANIMTYPE_COORDFLIP, 3
|
||||||
db FRAMEBLOCK_53, BASECOORD_71, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_71, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_53, BASECOORD_7F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_7F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_53, BASECOORD_81, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_81, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3b:
|
Subanim_0StatusSleepEnemy:
|
||||||
subanim SUBANIMTYPE_NORMAL, 3
|
subanim SUBANIMTYPE_NORMAL, 3
|
||||||
db FRAMEBLOCK_53, BASECOORD_01, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_01, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_53, BASECOORD_15, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_15, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_53, BASECOORD_2C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_53, BASECOORD_2C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation27:
|
Subanim_0StatusPoisoned:
|
||||||
subanim SUBANIMTYPE_ENEMY, 2
|
subanim SUBANIMTYPE_ENEMY, 2
|
||||||
db FRAMEBLOCK_54, BASECOORD_01, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_54, BASECOORD_01, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_54, BASECOORD_2C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_54, BASECOORD_2C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation28:
|
Subanim_1Sand:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 3
|
subanim SUBANIMTYPE_HVFLIP, 3
|
||||||
db FRAMEBLOCK_55, BASECOORD_73, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_55, BASECOORD_73, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_56, BASECOORD_73, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_56, BASECOORD_73, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_57, BASECOORD_73, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_57, BASECOORD_73, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation32:
|
Subanim_0Circle_1Square_HalfToss:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 3
|
subanim SUBANIMTYPE_COORDFLIP, 3
|
||||||
db FRAMEBLOCK_47, BASECOORD_74, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_74, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_47, BASECOORD_43, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_43, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_47, BASECOORD_75, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_47, BASECOORD_75, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation33:
|
Subanim_1Barrier:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 6
|
subanim SUBANIMTYPE_HVFLIP, 6
|
||||||
db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -681,7 +681,7 @@ Subanimation33:
|
||||||
db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_58, BASECOORD_76, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_76, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3c:
|
Subanim_0Water_1Fire_Barrier:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 7
|
subanim SUBANIMTYPE_COORDFLIP, 7
|
||||||
db FRAMEBLOCK_59, BASECOORD_79, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_59, BASECOORD_79, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_59, BASECOORD_7B, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_59, BASECOORD_7B, FRAMEBLOCKMODE_03
|
||||||
|
|
@ -691,7 +691,7 @@ Subanimation3c:
|
||||||
db FRAMEBLOCK_59, BASECOORD_7C, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_59, BASECOORD_7C, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_59, BASECOORD_76, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_59, BASECOORD_76, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3d:
|
Subanim_0Water_1Fire_Geyser:
|
||||||
subanim SUBANIMTYPE_NORMAL, 8
|
subanim SUBANIMTYPE_NORMAL, 8
|
||||||
db FRAMEBLOCK_3A, BASECOORD_4D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3A, BASECOORD_4D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_3B, BASECOORD_4D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3B, BASECOORD_4D, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -702,7 +702,7 @@ Subanimation3d:
|
||||||
db FRAMEBLOCK_3E, BASECOORD_4D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3E, BASECOORD_4D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_3F, BASECOORD_4D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_3F, BASECOORD_4D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation34:
|
Subanim_1Selfdestruct:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 21
|
subanim SUBANIMTYPE_HVFLIP, 21
|
||||||
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_SMALL_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_7D, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -726,14 +726,14 @@ Subanimation34:
|
||||||
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_82, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_LARGE_BLACK_CIRCLE, BASECOORD_82, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_5A, BASECOORD_82, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_5A, BASECOORD_82, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation35:
|
Subanim_0WaterBubbles:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 4
|
subanim SUBANIMTYPE_HVFLIP, 4
|
||||||
db FRAMEBLOCK_5B, BASECOORD_83, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_5B, BASECOORD_83, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_5C, BASECOORD_84, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_5C, BASECOORD_84, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_5D, BASECOORD_85, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_5D, BASECOORD_85, FRAMEBLOCKMODE_03
|
||||||
db FRAMEBLOCK_5E, BASECOORD_09, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_5E, BASECOORD_09, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation36:
|
Subanim_0CirclesFalling:
|
||||||
subanim SUBANIMTYPE_HFLIP, 8
|
subanim SUBANIMTYPE_HFLIP, 8
|
||||||
db FRAMEBLOCK_5F, BASECOORD_2A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_5F, BASECOORD_2A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_5F, BASECOORD_00, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_5F, BASECOORD_00, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -744,7 +744,7 @@ Subanimation36:
|
||||||
db FRAMEBLOCK_62, BASECOORD_2A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_62, BASECOORD_2A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_62, BASECOORD_00, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_62, BASECOORD_00, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation37:
|
Subanim_0StringShot:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 10
|
subanim SUBANIMTYPE_HVFLIP, 10
|
||||||
db FRAMEBLOCK_63, BASECOORD_89, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_63, BASECOORD_89, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_64, BASECOORD_75, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_64, BASECOORD_75, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -757,7 +757,7 @@ Subanimation37:
|
||||||
db FRAMEBLOCK_65, BASECOORD_88, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_65, BASECOORD_88, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_65, BASECOORD_1A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_65, BASECOORD_1A, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation38:
|
Subanim_0IceFall:
|
||||||
subanim SUBANIMTYPE_HFLIP, 16
|
subanim SUBANIMTYPE_HFLIP, 16
|
||||||
db FRAMEBLOCK_66, BASECOORD_8A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_66, BASECOORD_8A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_66, BASECOORD_33, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_66, BASECOORD_33, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -776,7 +776,7 @@ Subanimation38:
|
||||||
db FRAMEBLOCK_66, BASECOORD_1E, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_66, BASECOORD_1E, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_67, BASECOORD_29, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_67, BASECOORD_29, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3e:
|
Subanim_1StarBigToss:
|
||||||
subanim SUBANIMTYPE_REVERSE, 18
|
subanim SUBANIMTYPE_REVERSE, 18
|
||||||
db FRAMEBLOCK_02, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_34, BASECOORD_31, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_31, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -797,7 +797,7 @@ Subanimation3e:
|
||||||
db FRAMEBLOCK_34, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_02, BASECOORD_10, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation3f:
|
Subanim_1StarsSmallToss:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 18
|
subanim SUBANIMTYPE_COORDFLIP, 18
|
||||||
db FRAMEBLOCK_68, BASECOORD_4B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_68, BASECOORD_4B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_68, BASECOORD_8C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_68, BASECOORD_8C, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -818,7 +818,7 @@ Subanimation3f:
|
||||||
db FRAMEBLOCK_68, BASECOORD_23, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_68, BASECOORD_23, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_68, BASECOORD_1F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_68, BASECOORD_1F, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation44:
|
Subanim_1LeavesToss:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 12
|
subanim SUBANIMTYPE_HVFLIP, 12
|
||||||
db FRAMEBLOCK_69, BASECOORD_4B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_69, BASECOORD_4B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_69, BASECOORD_8C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_69, BASECOORD_8C, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -833,20 +833,20 @@ Subanimation44:
|
||||||
db FRAMEBLOCK_69, BASECOORD_0C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_69, BASECOORD_0C, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_69, BASECOORD_06, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_69, BASECOORD_06, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation43:
|
Subanim_0Circle_1Square_Closing:
|
||||||
subanim SUBANIMTYPE_ENEMY, 3
|
subanim SUBANIMTYPE_ENEMY, 3
|
||||||
db FRAMEBLOCK_6A, BASECOORD_07, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6A, BASECOORD_07, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6B, BASECOORD_0F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6B, BASECOORD_0F, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6C, BASECOORD_17, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6C, BASECOORD_17, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation45:
|
Subanim_0HornJabTwice:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 4
|
subanim SUBANIMTYPE_HVFLIP, 4
|
||||||
db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6D, BASECOORD_63, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_63, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6D, BASECOORD_8C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_8C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation46:
|
Subanim_0HornJabThrice:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 6
|
subanim SUBANIMTYPE_HVFLIP, 6
|
||||||
db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_8B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_84, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -855,13 +855,13 @@ Subanimation46:
|
||||||
db FRAMEBLOCK_6D, BASECOORD_0A, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_0A, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6D, BASECOORD_89, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6D, BASECOORD_89, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation47:
|
Subanim_0BallPoof:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 3
|
subanim SUBANIMTYPE_HVFLIP, 3
|
||||||
db FRAMEBLOCK_06, BASECOORD_82, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_06, BASECOORD_82, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_07, BASECOORD_82, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_07, BASECOORD_82, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_08, BASECOORD_96, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_08, BASECOORD_96, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation48:
|
Subanim_2TradeBallDrop:
|
||||||
subanim SUBANIMTYPE_NORMAL, 6
|
subanim SUBANIMTYPE_NORMAL, 6
|
||||||
db FRAMEBLOCK_03, BASECOORD_41, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_03, BASECOORD_41, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04
|
||||||
|
|
@ -870,24 +870,24 @@ Subanimation48:
|
||||||
db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03
|
||||||
|
|
||||||
Subanimation49:
|
Subanim_2TradeBallShake:
|
||||||
subanim SUBANIMTYPE_NORMAL, 4
|
subanim SUBANIMTYPE_NORMAL, 4
|
||||||
db FRAMEBLOCK_04, BASECOORD_48, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_04, BASECOORD_48, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04
|
db FRAMEBLOCK_05, BASECOORD_48, FRAMEBLOCKMODE_04
|
||||||
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_03, BASECOORD_48, FRAMEBLOCKMODE_03
|
||||||
|
|
||||||
Subanimation4a:
|
Subanim_2TradeBallAppear:
|
||||||
subanim SUBANIMTYPE_NORMAL, 1
|
subanim SUBANIMTYPE_NORMAL, 1
|
||||||
db FRAMEBLOCK_04, BASECOORD_84, FRAMEBLOCKMODE_03
|
db FRAMEBLOCK_04, BASECOORD_84, FRAMEBLOCKMODE_03
|
||||||
|
|
||||||
Subanimation4b:
|
Subanim_2TradeBallPoof:
|
||||||
subanim SUBANIMTYPE_NORMAL, 3
|
subanim SUBANIMTYPE_NORMAL, 3
|
||||||
db FRAMEBLOCK_06, BASECOORD_72, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_06, BASECOORD_72, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_07, BASECOORD_72, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_07, BASECOORD_72, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_08, BASECOORD_72, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_08, BASECOORD_72, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation4c:
|
Subanim_0EggShaking:
|
||||||
subanim SUBANIMTYPE_COORDFLIP, 8
|
subanim SUBANIMTYPE_COORDFLIP, 8
|
||||||
db FRAMEBLOCK_6F, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6F, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -898,7 +898,7 @@ Subanimation4c:
|
||||||
db FRAMEBLOCK_70, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_70, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_6E, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation4d:
|
Subanim_1TriangleToss:
|
||||||
subanim SUBANIMTYPE_HVFLIP, 6
|
subanim SUBANIMTYPE_HVFLIP, 6
|
||||||
db FRAMEBLOCK_32, BASECOORD_4B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_32, BASECOORD_4B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_33, BASECOORD_4F, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_33, BASECOORD_4F, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -907,7 +907,7 @@ Subanimation4d:
|
||||||
db FRAMEBLOCK_32, BASECOORD_19, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_32, BASECOORD_19, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_33, BASECOORD_0D, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_33, BASECOORD_0D, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation51:
|
Subanim_0Shell:
|
||||||
subanim SUBANIMTYPE_ENEMY, 6
|
subanim SUBANIMTYPE_ENEMY, 6
|
||||||
db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -916,7 +916,7 @@ Subanimation51:
|
||||||
db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_76, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_34, BASECOORD_1B, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation52:
|
Subanim_0CoinBounce:
|
||||||
subanim SUBANIMTYPE_HFLIP, 7
|
subanim SUBANIMTYPE_HFLIP, 7
|
||||||
db FRAMEBLOCK_77, BASECOORD_25, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_77, BASECOORD_25, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_77, BASECOORD_9B, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_77, BASECOORD_9B, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -926,7 +926,7 @@ Subanimation52:
|
||||||
db FRAMEBLOCK_77, BASECOORD_50, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_77, BASECOORD_50, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_77, BASECOORD_8C, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_77, BASECOORD_8C, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation53:
|
Subanim_0SafariRock:
|
||||||
subanim SUBANIMTYPE_NORMAL, 12
|
subanim SUBANIMTYPE_NORMAL, 12
|
||||||
db FRAMEBLOCK_78, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_78, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_78, BASECOORD_A2, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_78, BASECOORD_A2, FRAMEBLOCKMODE_00
|
||||||
|
|
@ -941,7 +941,7 @@ Subanimation53:
|
||||||
db FRAMEBLOCK_78, BASECOORD_34, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_78, BASECOORD_34, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_01, BASECOORD_9E, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_01, BASECOORD_9E, FRAMEBLOCKMODE_00
|
||||||
|
|
||||||
Subanimation54:
|
Subanim_0SafariBait:
|
||||||
subanim SUBANIMTYPE_NORMAL, 11
|
subanim SUBANIMTYPE_NORMAL, 11
|
||||||
db FRAMEBLOCK_79, BASECOORD_30, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_79, BASECOORD_30, FRAMEBLOCKMODE_00
|
||||||
db FRAMEBLOCK_79, BASECOORD_A2, FRAMEBLOCKMODE_00
|
db FRAMEBLOCK_79, BASECOORD_A2, FRAMEBLOCKMODE_00
|
||||||
|
|
|
||||||
|
|
@ -1,73 +1,71 @@
|
||||||
|
; Valid sprite IDs for each outdoor map.
|
||||||
|
|
||||||
MapSpriteSets:
|
MapSpriteSets:
|
||||||
table_width 1, MapSpriteSets
|
table_width 1, MapSpriteSets
|
||||||
db $01 ; PALLET_TOWN
|
db SPRITESET_PALLET_VIRIDIAN ; PALLET_TOWN
|
||||||
db $01 ; VIRIDIAN_CITY
|
db SPRITESET_PALLET_VIRIDIAN ; VIRIDIAN_CITY
|
||||||
db $02 ; PEWTER_CITY
|
db SPRITESET_PEWTER_CERULEAN ; PEWTER_CITY
|
||||||
db $02 ; CERULEAN_CITY
|
db SPRITESET_PEWTER_CERULEAN ; CERULEAN_CITY
|
||||||
db $03 ; LAVENDER_TOWN
|
db SPRITESET_LAVENDER ; LAVENDER_TOWN
|
||||||
db $04 ; VERMILION_CITY
|
db SPRITESET_VERMILION ; VERMILION_CITY
|
||||||
db $05 ; CELADON_CITY
|
db SPRITESET_CELADON ; CELADON_CITY
|
||||||
db $0a ; FUCHSIA_CITY
|
db SPRITESET_FUCHSIA ; FUCHSIA_CITY
|
||||||
db $01 ; CINNABAR_ISLAND
|
db SPRITESET_PALLET_VIRIDIAN ; CINNABAR_ISLAND
|
||||||
db $06 ; INDIGO_PLATEAU
|
db SPRITESET_INDIGO ; INDIGO_PLATEAU
|
||||||
db $07 ; SAFFRON_CITY
|
db SPRITESET_SAFFRON ; SAFFRON_CITY
|
||||||
db $01 ; unused map ID
|
db SPRITESET_PALLET_VIRIDIAN ; UNUSED_MAP_0B
|
||||||
db $01 ; ROUTE_1
|
db SPRITESET_PALLET_VIRIDIAN ; ROUTE_1
|
||||||
db $f1 ; ROUTE_2
|
db SPLITSET_ROUTE_2 ; ROUTE_2
|
||||||
db $02 ; ROUTE_3
|
db SPRITESET_PEWTER_CERULEAN ; ROUTE_3
|
||||||
db $02 ; ROUTE_4
|
db SPRITESET_PEWTER_CERULEAN ; ROUTE_4
|
||||||
db $f9 ; ROUTE_5
|
db SPLITSET_ROUTE_5 ; ROUTE_5
|
||||||
db $fa ; ROUTE_6
|
db SPLITSET_ROUTE_6 ; ROUTE_6
|
||||||
db $fb ; ROUTE_7
|
db SPLITSET_ROUTE_7 ; ROUTE_7
|
||||||
db $fc ; ROUTE_8
|
db SPLITSET_ROUTE_8 ; ROUTE_8
|
||||||
db $02 ; ROUTE_9
|
db SPRITESET_PEWTER_CERULEAN ; ROUTE_9
|
||||||
db $f2 ; ROUTE_10
|
db SPLITSET_ROUTE_10 ; ROUTE_10
|
||||||
db $f3 ; ROUTE_11
|
db SPLITSET_ROUTE_11 ; ROUTE_11
|
||||||
db $f4 ; ROUTE_12
|
db SPLITSET_ROUTE_12 ; ROUTE_12
|
||||||
db $08 ; ROUTE_13
|
db SPRITESET_SILENCE_BRIDGE ; ROUTE_13
|
||||||
db $08 ; ROUTE_14
|
db SPRITESET_SILENCE_BRIDGE ; ROUTE_14
|
||||||
db $f5 ; ROUTE_15
|
db SPLITSET_ROUTE_15 ; ROUTE_15
|
||||||
db $f6 ; ROUTE_16
|
db SPLITSET_ROUTE_16 ; ROUTE_16
|
||||||
db $09 ; ROUTE_17
|
db SPRITESET_CYCLING_ROAD ; ROUTE_17
|
||||||
db $f7 ; ROUTE_18
|
db SPLITSET_ROUTE_18 ; ROUTE_18
|
||||||
db $0a ; ROUTE_19
|
db SPRITESET_FUCHSIA ; ROUTE_19
|
||||||
db $f8 ; ROUTE_20
|
db SPLITSET_ROUTE_20 ; ROUTE_20
|
||||||
db $01 ; ROUTE_21
|
db SPRITESET_PALLET_VIRIDIAN ; ROUTE_21
|
||||||
db $01 ; ROUTE_22
|
db SPRITESET_PALLET_VIRIDIAN ; ROUTE_22
|
||||||
db $06 ; ROUTE_23
|
db SPRITESET_INDIGO ; ROUTE_23
|
||||||
db $02 ; ROUTE_24
|
db SPRITESET_PEWTER_CERULEAN ; ROUTE_24
|
||||||
db $02 ; ROUTE_25
|
db SPRITESET_PEWTER_CERULEAN ; ROUTE_25
|
||||||
assert_table_length FIRST_INDOOR_MAP
|
assert_table_length FIRST_INDOOR_MAP
|
||||||
|
|
||||||
DEF EAST_WEST EQU 1
|
|
||||||
DEF NORTH_SOUTH EQU 2
|
|
||||||
|
|
||||||
; Format:
|
; Format:
|
||||||
; 00: determines whether the map is split EAST_WEST or NORTH_SOUTH
|
; #1: whether the map is split EAST_WEST or NORTH_SOUTH
|
||||||
; 01: coordinate of dividing line
|
; #2: coordinate of dividing line
|
||||||
; 02: sprite set ID if in the West or North side
|
; #3: sprite set ID if on the west or north side
|
||||||
; 03: sprite set ID if in the East or South side
|
; #4: sprite set ID if on the east or south side
|
||||||
SplitMapSpriteSets:
|
SplitMapSpriteSets:
|
||||||
db NORTH_SOUTH, 37, $02, $01 ; $f1
|
table_width 4, SplitMapSpriteSets
|
||||||
db NORTH_SOUTH, 50, $02, $03 ; $f2
|
db NORTH_SOUTH, 37, SPRITESET_PEWTER_CERULEAN, SPRITESET_PALLET_VIRIDIAN ; SPLITSET_ROUTE_2
|
||||||
db EAST_WEST, 57, $04, $08 ; $f3
|
db NORTH_SOUTH, 50, SPRITESET_PEWTER_CERULEAN, SPRITESET_LAVENDER ; SPLITSET_ROUTE_10
|
||||||
db NORTH_SOUTH, 21, $03, $08 ; $f4
|
db EAST_WEST, 57, SPRITESET_VERMILION, SPRITESET_SILENCE_BRIDGE ; SPLITSET_ROUTE_11
|
||||||
db EAST_WEST, 8, $0A, $08 ; $f5
|
db NORTH_SOUTH, 21, SPRITESET_LAVENDER, SPRITESET_SILENCE_BRIDGE ; SPLITSET_ROUTE_12
|
||||||
db EAST_WEST, 24, $09, $05 ; $f6
|
db EAST_WEST, 8, SPRITESET_FUCHSIA, SPRITESET_SILENCE_BRIDGE ; SPLITSET_ROUTE_15
|
||||||
db EAST_WEST, 34, $09, $0A ; $f7
|
db EAST_WEST, 24, SPRITESET_CYCLING_ROAD, SPRITESET_CELADON ; SPLITSET_ROUTE_16
|
||||||
db EAST_WEST, 53, $01, $0A ; $f8
|
db EAST_WEST, 34, SPRITESET_CYCLING_ROAD, SPRITESET_FUCHSIA ; SPLITSET_ROUTE_18
|
||||||
db NORTH_SOUTH, 33, $02, $07 ; $f9
|
db EAST_WEST, 53, SPRITESET_PALLET_VIRIDIAN, SPRITESET_FUCHSIA ; SPLITSET_ROUTE_20
|
||||||
db NORTH_SOUTH, 2, $07, $04 ; $fa
|
db NORTH_SOUTH, 33, SPRITESET_PEWTER_CERULEAN, SPRITESET_SAFFRON ; SPLITSET_ROUTE_5
|
||||||
db EAST_WEST, 17, $05, $07 ; $fb
|
db NORTH_SOUTH, 2, SPRITESET_SAFFRON, SPRITESET_VERMILION ; SPLITSET_ROUTE_6
|
||||||
db EAST_WEST, 3, $07, $03 ; $fc
|
db EAST_WEST, 17, SPRITESET_CELADON, SPRITESET_SAFFRON ; SPLITSET_ROUTE_7
|
||||||
|
db EAST_WEST, 3, SPRITESET_SAFFRON, SPRITESET_LAVENDER ; SPLITSET_ROUTE_8
|
||||||
|
assert_table_length NUM_SPLIT_SETS
|
||||||
|
|
||||||
SpriteSets:
|
SpriteSets:
|
||||||
|
table_width SPRITE_SET_LENGTH, SpriteSets
|
||||||
|
|
||||||
; each sprite set has 9 walking sprites and 2 still sprites
|
; SPRITESET_PALLET_VIRIDIAN
|
||||||
DEF SPRITE_SET_LENGTH EQU 9 + 2
|
|
||||||
|
|
||||||
; sprite set $01
|
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_BLUE
|
db SPRITE_BLUE
|
||||||
db SPRITE_YOUNGSTER
|
db SPRITE_YOUNGSTER
|
||||||
|
|
@ -79,10 +77,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_SWIMMER
|
db SPRITE_SWIMMER
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_GAMBLER_ASLEEP
|
db SPRITE_GAMBLER_ASLEEP
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $02
|
; SPRITESET_PEWTER_CERULEAN
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_YOUNGSTER
|
db SPRITE_YOUNGSTER
|
||||||
db SPRITE_ROCKET
|
db SPRITE_ROCKET
|
||||||
|
|
@ -94,10 +90,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $03
|
; SPRITESET_LAVENDER
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_LITTLE_GIRL
|
db SPRITE_LITTLE_GIRL
|
||||||
db SPRITE_GIRL
|
db SPRITE_GIRL
|
||||||
|
|
@ -109,10 +103,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $04
|
; SPRITESET_VERMILION
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_OFFICER_JENNY
|
db SPRITE_OFFICER_JENNY
|
||||||
db SPRITE_SUPER_NERD
|
db SPRITE_SUPER_NERD
|
||||||
|
|
@ -124,10 +116,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $05
|
; SPRITESET_CELADON
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_LITTLE_GIRL
|
db SPRITE_LITTLE_GIRL
|
||||||
db SPRITE_LITTLE_BOY
|
db SPRITE_LITTLE_BOY
|
||||||
|
|
@ -139,10 +129,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_ROCKET
|
db SPRITE_ROCKET
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_SNORLAX
|
db SPRITE_SNORLAX
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $06
|
; SPRITESET_INDIGO
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_GYM_GUIDE
|
db SPRITE_GYM_GUIDE
|
||||||
db SPRITE_MONSTER
|
db SPRITE_MONSTER
|
||||||
|
|
@ -154,10 +142,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_GAMBLER
|
db SPRITE_GAMBLER
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $07
|
; SPRITESET_SAFFRON
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_ROCKET
|
db SPRITE_ROCKET
|
||||||
db SPRITE_SCIENTIST
|
db SPRITE_SCIENTIST
|
||||||
|
|
@ -169,10 +155,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
db SPRITE_UNUSED_GAMBLER_ASLEEP_2
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $08
|
; SPRITESET_SILENCE_BRIDGE
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_BIKER
|
db SPRITE_BIKER
|
||||||
db SPRITE_SUPER_NERD
|
db SPRITE_SUPER_NERD
|
||||||
|
|
@ -184,10 +168,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_ROCKER
|
db SPRITE_ROCKER
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_SNORLAX
|
db SPRITE_SNORLAX
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $09
|
; SPRITESET_CYCLING_ROAD
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_BIKER
|
db SPRITE_BIKER
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
|
|
@ -199,10 +181,8 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_MIDDLE_AGED_MAN
|
db SPRITE_MIDDLE_AGED_MAN
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_SNORLAX
|
db SPRITE_SNORLAX
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
|
||||||
; sprite set $0a
|
; SPRITESET_FUCHSIA
|
||||||
table_width 1
|
|
||||||
db SPRITE_PIKACHU
|
db SPRITE_PIKACHU
|
||||||
db SPRITE_COOLTRAINER_M
|
db SPRITE_COOLTRAINER_M
|
||||||
db SPRITE_CHANSEY
|
db SPRITE_CHANSEY
|
||||||
|
|
@ -214,4 +194,5 @@ DEF SPRITE_SET_LENGTH EQU 9 + 2
|
||||||
db SPRITE_YOUNGSTER
|
db SPRITE_YOUNGSTER
|
||||||
db SPRITE_POKE_BALL
|
db SPRITE_POKE_BALL
|
||||||
db SPRITE_FOSSIL
|
db SPRITE_FOSSIL
|
||||||
assert_table_length SPRITE_SET_LENGTH
|
|
||||||
|
assert_table_length NUM_SPRITE_SETS
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -275,7 +275,7 @@ PlayAnimation:
|
||||||
ld a, [wAnimPalette]
|
ld a, [wAnimPalette]
|
||||||
ldh [rOBP0], a
|
ldh [rOBP0], a
|
||||||
call UpdateGBCPal_OBP0
|
call UpdateGBCPal_OBP0
|
||||||
call LoadAnimationTileset
|
call LoadMoveAnimationTiles
|
||||||
call LoadSubanimation
|
call LoadSubanimation
|
||||||
call PlaySubanimation
|
call PlaySubanimation
|
||||||
pop af
|
pop af
|
||||||
|
|
@ -372,11 +372,11 @@ GetSubanimationTransform2:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; loads tile patterns for battle animations
|
; loads tile patterns for battle animations
|
||||||
LoadAnimationTileset:
|
LoadMoveAnimationTiles:
|
||||||
ld a, [wWhichBattleAnimTileset]
|
ld a, [wWhichBattleAnimTileset]
|
||||||
add a
|
add a
|
||||||
add a
|
add a
|
||||||
ld hl, AnimationTilesetPointers
|
ld hl, MoveAnimationTilesPointers
|
||||||
ld e, a
|
ld e, a
|
||||||
ld d, 0
|
ld d, 0
|
||||||
add hl, de
|
add hl, de
|
||||||
|
|
@ -387,7 +387,7 @@ LoadAnimationTileset:
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld d, a ; de = address of tileset
|
ld d, a ; de = address of tileset
|
||||||
ld hl, vSprites tile $31
|
ld hl, vSprites tile $31
|
||||||
ld b, BANK(AnimationTileset1) ; ROM bank
|
ld b, BANK(MoveAnimationTiles0) ; ROM bank
|
||||||
ld a, [wTempTilesetNumTiles]
|
ld a, [wTempTilesetNumTiles]
|
||||||
ld c, a ; number of tiles
|
ld c, a ; number of tiles
|
||||||
jp CopyVideoData ; load tileset
|
jp CopyVideoData ; load tileset
|
||||||
|
|
@ -398,17 +398,18 @@ MACRO anim_tileset
|
||||||
db -1 ; padding
|
db -1 ; padding
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
AnimationTilesetPointers:
|
MoveAnimationTilesPointers:
|
||||||
; number of tiles, gfx pointer
|
; number of tiles, gfx pointer
|
||||||
anim_tileset 79, AnimationTileset1
|
anim_tileset 79, MoveAnimationTiles0
|
||||||
anim_tileset 79, AnimationTileset2
|
anim_tileset 79, MoveAnimationTiles1
|
||||||
anim_tileset 64, AnimationTileset1
|
anim_tileset 64, MoveAnimationTiles2
|
||||||
|
|
||||||
AnimationTileset1:
|
MoveAnimationTiles0:
|
||||||
INCBIN "gfx/battle/attack_anim_1.2bpp"
|
MoveAnimationTiles2:
|
||||||
|
INCBIN "gfx/battle/move_anim_0.2bpp"
|
||||||
|
|
||||||
AnimationTileset2:
|
MoveAnimationTiles1:
|
||||||
INCBIN "gfx/battle/attack_anim_2.2bpp"
|
INCBIN "gfx/battle/move_anim_1.2bpp"
|
||||||
|
|
||||||
SlotMachineTiles2:
|
SlotMachineTiles2:
|
||||||
INCBIN "gfx/slots/slots_2.2bpp"
|
INCBIN "gfx/slots/slots_2.2bpp"
|
||||||
|
|
@ -1158,7 +1159,7 @@ AnimationWaterDropletsEverywhere:
|
||||||
; in Surf/Mist/Toxic.
|
; in Surf/Mist/Toxic.
|
||||||
xor a
|
xor a
|
||||||
ld [wWhichBattleAnimTileset], a
|
ld [wWhichBattleAnimTileset], a
|
||||||
call LoadAnimationTileset
|
call LoadMoveAnimationTiles
|
||||||
ld d, 32
|
ld d, 32
|
||||||
ld a, -16
|
ld a, -16
|
||||||
ld [wBaseCoordX], a
|
ld [wBaseCoordX], a
|
||||||
|
|
@ -1720,7 +1721,7 @@ _AnimationShootBallsUpward:
|
||||||
push bc
|
push bc
|
||||||
xor a
|
xor a
|
||||||
ld [wWhichBattleAnimTileset], a
|
ld [wWhichBattleAnimTileset], a
|
||||||
call LoadAnimationTileset
|
call LoadMoveAnimationTiles
|
||||||
pop bc
|
pop bc
|
||||||
ld d, $7a ; ball tile
|
ld d, $7a ; ball tile
|
||||||
ld hl, wShadowOAM
|
ld hl, wShadowOAM
|
||||||
|
|
@ -2234,7 +2235,7 @@ InitMultipleObjectsOAM:
|
||||||
push bc
|
push bc
|
||||||
push de
|
push de
|
||||||
ld [wWhichBattleAnimTileset], a
|
ld [wWhichBattleAnimTileset], a
|
||||||
call LoadAnimationTileset
|
call LoadMoveAnimationTiles
|
||||||
pop de
|
pop de
|
||||||
pop bc
|
pop bc
|
||||||
xor a
|
xor a
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ LoadShootingStarGraphics:
|
||||||
ldh [rOBP1], a
|
ldh [rOBP1], a
|
||||||
call UpdateGBCPal_OBP0
|
call UpdateGBCPal_OBP0
|
||||||
call UpdateGBCPal_OBP1
|
call UpdateGBCPal_OBP1
|
||||||
ld de, AnimationTileset2 tile 3 ; star tile (top left quadrant)
|
ld de, MoveAnimationTiles1 tile 3 ; star tile (top left quadrant)
|
||||||
ld hl, vChars1 tile $20
|
ld hl, vChars1 tile $20
|
||||||
lb bc, BANK(AnimationTileset2), 1
|
lb bc, BANK(MoveAnimationTiles1), 1
|
||||||
call CopyVideoData
|
call CopyVideoData
|
||||||
ld de, AnimationTileset2 tile 19 ; star tile (bottom left quadrant)
|
ld de, MoveAnimationTiles1 tile 19 ; star tile (bottom left quadrant)
|
||||||
ld hl, vChars1 tile $21
|
ld hl, vChars1 tile $21
|
||||||
lb bc, BANK(AnimationTileset2), 1
|
lb bc, BANK(MoveAnimationTiles1), 1
|
||||||
call CopyVideoData
|
call CopyVideoData
|
||||||
ld de, FallingStar
|
ld de, FallingStar
|
||||||
ld hl, vChars1 tile $22
|
ld hl, vChars1 tile $22
|
||||||
|
|
|
||||||
|
|
@ -113,8 +113,8 @@ InitCutAnimOAM:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
LoadCutGrassAnimationTilePattern:
|
LoadCutGrassAnimationTilePattern:
|
||||||
ld de, AnimationTileset2 tile 6 ; tile depicting a leaf
|
ld de, MoveAnimationTiles1 tile 6 ; tile depicting a leaf
|
||||||
lb bc, BANK(AnimationTileset2), 1
|
lb bc, BANK(MoveAnimationTiles1), 1
|
||||||
jp CopyVideoData
|
jp CopyVideoData
|
||||||
|
|
||||||
WriteCutOrBoulderDustAnimationOAMBlock:
|
WriteCutOrBoulderDustAnimationOAMBlock:
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
_InitMapSprites::
|
_InitMapSprites::
|
||||||
call InitOutsideMapSprites
|
call InitOutsideMapSprites
|
||||||
ret c ; return if the map is an outside map (already handled by above call)
|
ret c ; return if the map is an outside map (already handled by above call)
|
||||||
; if the map is an inside map (i.e. mapID >= $25)
|
; if the map is an inside map (i.e. mapID >= FIRST_INDOOR_MAP)
|
||||||
call LoadSpriteSetFromMapHeader
|
call LoadSpriteSetFromMapHeader
|
||||||
call LoadMapSpriteTilePatterns
|
call LoadMapSpriteTilePatterns
|
||||||
call Func_14150
|
call Func_14150
|
||||||
|
|
@ -38,11 +38,11 @@ InitOutsideMapSprites:
|
||||||
dec a
|
dec a
|
||||||
ld c, a
|
ld c, a
|
||||||
ld b, 0
|
ld b, 0
|
||||||
ld a, (wSpriteSetID - wSpriteSet)
|
ld a, wSpriteSetID - wSpriteSet
|
||||||
ld hl, SpriteSets
|
ld hl, SpriteSets
|
||||||
call AddNTimes ; get sprite set offset
|
call AddNTimes ; get sprite set offset
|
||||||
ld de, wSpriteSet
|
ld de, wSpriteSet
|
||||||
ld bc, (wSpriteSetID - wSpriteSet)
|
ld bc, wSpriteSetID - wSpriteSet
|
||||||
call CopyData ; copy it to wSpriteSet
|
call CopyData ; copy it to wSpriteSet
|
||||||
call LoadMapSpriteTilePatterns
|
call LoadMapSpriteTilePatterns
|
||||||
.skipLoadingSpriteSet
|
.skipLoadingSpriteSet
|
||||||
|
|
@ -186,7 +186,7 @@ LoadWalkingTilePattern:
|
||||||
ld d, h
|
ld d, h
|
||||||
ld e, l
|
ld e, l
|
||||||
call GetSpriteVRAMAddress
|
call GetSpriteVRAMAddress
|
||||||
set 3, h ; add $800 to hl
|
set 3, h ; add $80 tiles to hl
|
||||||
call CopyVideoDataAlternate
|
call CopyVideoDataAlternate
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
@ -205,19 +205,17 @@ GetSpriteVRAMAddress:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
SpriteVRAMAddresses:
|
SpriteVRAMAddresses:
|
||||||
; Equivalent to multiplying $C0 (number of bytes in 12 tiles) times the VRAM
|
dw vChars0 + (1 * 12) tiles
|
||||||
; slot and adding the result to $8000 (the VRAM base address).
|
dw vChars0 + (2 * 12) tiles
|
||||||
dw vChars0 + $0c0
|
dw vChars0 + (3 * 12) tiles
|
||||||
dw vChars0 + $180
|
dw vChars0 + (4 * 12) tiles
|
||||||
dw vChars0 + $240
|
dw vChars0 + (5 * 12) tiles
|
||||||
dw vChars0 + $300
|
dw vChars0 + (6 * 12) tiles
|
||||||
dw vChars0 + $3c0
|
dw vChars0 + (7 * 12) tiles
|
||||||
dw vChars0 + $480
|
dw vChars0 + (8 * 12) tiles
|
||||||
dw vChars0 + $540
|
dw vChars0 + (9 * 12) tiles
|
||||||
dw vChars0 + $600
|
dw vChars0 + (10 * 12) tiles ; 4-tile sprites
|
||||||
dw vChars0 + $6c0
|
dw vChars0 + (10 * 12 + 4) tiles ; 4-tile sprites
|
||||||
dw vChars0 + $780 ; 4-tile sprites
|
|
||||||
dw vChars0 + $7c0 ; 4-tile sprites
|
|
||||||
|
|
||||||
ReadSpriteSheetData:
|
ReadSpriteSheetData:
|
||||||
ldh a, [hVRAMSlot]
|
ldh a, [hVRAMSlot]
|
||||||
|
|
@ -263,7 +261,7 @@ Func_14150:
|
||||||
jr z, .spriteUnused
|
jr z, .spriteUnused
|
||||||
call Func_14179
|
call Func_14179
|
||||||
push hl
|
push hl
|
||||||
ld de, (wSpritePlayerStateData2ImageBaseOffset) - (wSpriteStateData1) ; $10e
|
ld de, wSpritePlayerStateData2ImageBaseOffset - wSpriteStateData1
|
||||||
add hl, de ; [x#SPRITESTATEDATA2_IMAGEBASEOFFSET]
|
add hl, de ; [x#SPRITESTATEDATA2_IMAGEBASEOFFSET]
|
||||||
ld [hl], a ; write offset
|
ld [hl], a ; write offset
|
||||||
pop hl
|
pop hl
|
||||||
|
|
@ -304,11 +302,11 @@ GetSplitMapSpriteSetID:
|
||||||
ld hl, MapSpriteSets
|
ld hl, MapSpriteSets
|
||||||
add hl, de
|
add hl, de
|
||||||
ld a, [hl] ; a = spriteSetID
|
ld a, [hl] ; a = spriteSetID
|
||||||
cp $f0 ; does the map have 2 sprite sets?
|
cp FIRST_SPLIT_SET - 1 ; does the map have 2 sprite sets?
|
||||||
ret c
|
ret c
|
||||||
; Chooses the correct sprite set ID depending on the player's position within
|
; Chooses the correct sprite set ID depending on the player's position within
|
||||||
; the map for maps with two sprite sets.
|
; the map for maps with two sprite sets.
|
||||||
cp $f8
|
cp SPLITSET_ROUTE_20
|
||||||
jr z, .route20
|
jr z, .route20
|
||||||
ld hl, SplitMapSpriteSets
|
ld hl, SplitMapSpriteSets
|
||||||
and $0f
|
and $0f
|
||||||
|
|
@ -320,8 +318,8 @@ GetSplitMapSpriteSetID:
|
||||||
jr nc, .noCarry
|
jr nc, .noCarry
|
||||||
inc h
|
inc h
|
||||||
.noCarry
|
.noCarry
|
||||||
ld a, [hli] ; determines whether the map is split East/West or North/South
|
ld a, [hli] ; whether the map is split EAST_WEST or NORTH_SOUTH
|
||||||
cp $01
|
cp EAST_WEST
|
||||||
ld a, [hli] ; position of dividing line
|
ld a, [hli] ; position of dividing line
|
||||||
ld b, a
|
ld b, a
|
||||||
jr z, .eastWestDivide
|
jr z, .eastWestDivide
|
||||||
|
|
@ -333,35 +331,39 @@ GetSplitMapSpriteSetID:
|
||||||
.compareCoord
|
.compareCoord
|
||||||
cp b
|
cp b
|
||||||
jr c, .loadSpriteSetID
|
jr c, .loadSpriteSetID
|
||||||
; if in the East side or South side
|
; if in the east side or south side
|
||||||
inc hl
|
inc hl
|
||||||
.loadSpriteSetID
|
.loadSpriteSetID
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ret
|
ret
|
||||||
; Uses sprite set $01 for West side and $0A for East side.
|
; Uses sprite set SPRITESET_PALLET_VIRIDIAN for west side and SPRITESET_FUCHSIA for east side.
|
||||||
; Route 20 is a special case because the two map sections have a more complex
|
; Route 20 is a special case because the two map sections have a more complex
|
||||||
; shape instead of the map simply being split horizontally or vertically.
|
; shape instead of the map simply being split horizontally or vertically.
|
||||||
.route20
|
.route20
|
||||||
ld hl, wXCoord
|
ld hl, wXCoord
|
||||||
|
; Use SPRITESET_PALLET_VIRIDIAN if X < 43
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $2b
|
cp 43
|
||||||
ld a, $01
|
ld a, SPRITESET_PALLET_VIRIDIAN
|
||||||
ret c
|
ret c
|
||||||
|
; Use SPRITESET_FUCHSIA if X >= 62.
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $3e
|
cp 62
|
||||||
ld a, $0a
|
ld a, SPRITESET_FUCHSIA
|
||||||
ret nc
|
ret nc
|
||||||
|
; If 55 <= X < 62, split Y at 8; else 43 <= X < 55, so split Y at 13
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $37
|
cp 55
|
||||||
ld b, $08
|
ld b, 8
|
||||||
jr nc, .next
|
jr nc, .next
|
||||||
ld b, $0d
|
ld b, 13
|
||||||
.next
|
.next
|
||||||
|
; Use SPRITESET_FUCHSIA if Y < split; else use SPRITESET_PALLET_VIRIDIAN
|
||||||
ld a, [wYCoord]
|
ld a, [wYCoord]
|
||||||
cp b
|
cp b
|
||||||
ld a, $0a
|
ld a, SPRITESET_FUCHSIA
|
||||||
ret c
|
ret c
|
||||||
ld a, $01
|
ld a, SPRITESET_PALLET_VIRIDIAN
|
||||||
ret
|
ret
|
||||||
|
|
||||||
INCLUDE "data/maps/sprite_sets.asm"
|
INCLUDE "data/maps/sprite_sets.asm"
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 977 B After Width: | Height: | Size: 977 B |
|
Before Width: | Height: | Size: 936 B After Width: | Height: | Size: 936 B |
3
home.asm
3
home.asm
|
|
@ -1,6 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "NULL", ROM0
|
SECTION "NULL", ROM0
|
||||||
NULL::
|
NULL::
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,20 @@
|
||||||
INCLUDE "charmap.asm"
|
INCLUDE "charmap.asm"
|
||||||
|
|
||||||
INCLUDE "macros.asm"
|
INCLUDE "macros/asserts.asm"
|
||||||
|
INCLUDE "macros/const.asm"
|
||||||
|
INCLUDE "macros/predef.asm"
|
||||||
|
INCLUDE "macros/farcall.asm"
|
||||||
|
INCLUDE "macros/data.asm"
|
||||||
|
INCLUDE "macros/code.asm"
|
||||||
|
INCLUDE "macros/gfx.asm"
|
||||||
|
INCLUDE "macros/coords.asm"
|
||||||
|
INCLUDE "macros/vc.asm"
|
||||||
|
|
||||||
|
INCLUDE "macros/scripts/audio.asm"
|
||||||
|
INCLUDE "macros/scripts/maps.asm"
|
||||||
|
INCLUDE "macros/scripts/events.asm"
|
||||||
|
INCLUDE "macros/scripts/text.asm"
|
||||||
|
INCLUDE "macros/scripts/gfx_anims.asm"
|
||||||
|
|
||||||
INCLUDE "constants/hardware_constants.asm"
|
INCLUDE "constants/hardware_constants.asm"
|
||||||
INCLUDE "constants/oam_constants.asm"
|
INCLUDE "constants/oam_constants.asm"
|
||||||
|
|
@ -28,6 +42,7 @@ INCLUDE "constants/map_constants.asm"
|
||||||
INCLUDE "constants/map_data_constants.asm"
|
INCLUDE "constants/map_data_constants.asm"
|
||||||
INCLUDE "constants/map_object_constants.asm"
|
INCLUDE "constants/map_object_constants.asm"
|
||||||
INCLUDE "constants/hide_show_constants.asm"
|
INCLUDE "constants/hide_show_constants.asm"
|
||||||
|
INCLUDE "constants/sprite_set_constants.asm"
|
||||||
INCLUDE "constants/credits_constants.asm"
|
INCLUDE "constants/credits_constants.asm"
|
||||||
INCLUDE "constants/audio_constants.asm"
|
INCLUDE "constants/audio_constants.asm"
|
||||||
INCLUDE "constants/music_constants.asm"
|
INCLUDE "constants/music_constants.asm"
|
||||||
15
macros.asm
15
macros.asm
|
|
@ -1,15 +0,0 @@
|
||||||
INCLUDE "macros/asserts.asm"
|
|
||||||
INCLUDE "macros/const.asm"
|
|
||||||
INCLUDE "macros/predef.asm"
|
|
||||||
INCLUDE "macros/farcall.asm"
|
|
||||||
INCLUDE "macros/data.asm"
|
|
||||||
INCLUDE "macros/code.asm"
|
|
||||||
INCLUDE "macros/gfx.asm"
|
|
||||||
INCLUDE "macros/coords.asm"
|
|
||||||
INCLUDE "macros/vc.asm"
|
|
||||||
|
|
||||||
INCLUDE "macros/scripts/audio.asm"
|
|
||||||
INCLUDE "macros/scripts/maps.asm"
|
|
||||||
INCLUDE "macros/scripts/events.asm"
|
|
||||||
INCLUDE "macros/scripts/text.asm"
|
|
||||||
INCLUDE "macros/scripts/gfx_anims.asm"
|
|
||||||
|
|
@ -71,10 +71,8 @@ MACRO dab ; dwb address, bank
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
MACRO sine_table
|
MACRO sine_table
|
||||||
; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
|
; \1 samples of sin(x) from x=0 to x<0.5 turns (pi radians)
|
||||||
DEF x = 0
|
for x, \1
|
||||||
REPT \1
|
dw sin(x * 0.5 / (\1))
|
||||||
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
|
endr
|
||||||
DEF x += DIV(32768, \1) ; a circle has 65536 "degrees"
|
|
||||||
ENDR
|
|
||||||
ENDM
|
ENDM
|
||||||
|
|
|
||||||
3
main.asm
3
main.asm
|
|
@ -1,6 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "bank1", ROMX
|
SECTION "bank1", ROMX
|
||||||
|
|
||||||
INCLUDE "data/sprites/facings.asm"
|
INCLUDE "data/sprites/facings.asm"
|
||||||
|
|
|
||||||
3
maps.asm
3
maps.asm
|
|
@ -1,6 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "Maps 1", ROMX
|
SECTION "Maps 1", ROMX
|
||||||
|
|
||||||
INCLUDE "data/maps/headers/CeladonCity.asm"
|
INCLUDE "data/maps/headers/CeladonCity.asm"
|
||||||
|
|
|
||||||
2
ram.asm
2
ram.asm
|
|
@ -1,5 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
INCLUDE "macros/ram.asm"
|
INCLUDE "macros/ram.asm"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ wSpriteStateData1::
|
||||||
; - E
|
; - E
|
||||||
; - F
|
; - F
|
||||||
wSpritePlayerStateData1:: spritestatedata1 wSpritePlayerStateData1 ; player is struct 0
|
wSpritePlayerStateData1:: spritestatedata1 wSpritePlayerStateData1 ; player is struct 0
|
||||||
; wSprite02StateData1 - wSprite15StateData1
|
; wSprite01StateData1 - wSprite14StateData1
|
||||||
FOR n, 1, NUM_SPRITESTATEDATA_STRUCTS - 1
|
FOR n, 1, NUM_SPRITESTATEDATA_STRUCTS - 1
|
||||||
wSprite{02d:n}StateData1:: spritestatedata1 wSprite{02d:n}StateData1
|
wSprite{02d:n}StateData1:: spritestatedata1 wSprite{02d:n}StateData1
|
||||||
ENDR
|
ENDR
|
||||||
|
|
@ -130,7 +130,7 @@ wSpriteStateData2::
|
||||||
; - E: sprite image base offset (in video ram, player always has value 1, used to compute sprite image index)
|
; - E: sprite image base offset (in video ram, player always has value 1, used to compute sprite image index)
|
||||||
; - F
|
; - F
|
||||||
wSpritePlayerStateData2:: spritestatedata2 wSpritePlayerStateData2 ; player is struct 0
|
wSpritePlayerStateData2:: spritestatedata2 wSpritePlayerStateData2 ; player is struct 0
|
||||||
; wSprite02StateData2 - wSprite15StateData2
|
; wSprite01StateData2 - wSprite14StateData2
|
||||||
FOR n, 1, NUM_SPRITESTATEDATA_STRUCTS - 1
|
FOR n, 1, NUM_SPRITESTATEDATA_STRUCTS - 1
|
||||||
wSprite{02d:n}StateData2:: spritestatedata2 wSprite{02d:n}StateData2
|
wSprite{02d:n}StateData2:: spritestatedata2 wSprite{02d:n}StateData2
|
||||||
ENDR
|
ENDR
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,16 @@
|
||||||
MAJOR EQU 0
|
MAJOR EQU 0
|
||||||
MINOR EQU 5
|
MINOR EQU 6
|
||||||
PATCH EQU 2
|
PATCH EQU 0
|
||||||
|
|
||||||
MACRO wrong_rgbds
|
WRONG_RGBDS EQUS "fail \"pokeyellow requires rgbds v0.6.0 or newer.\""
|
||||||
fail "pokeyellow requires rgbds v0.5.2 or newer."
|
|
||||||
ENDM
|
|
||||||
|
|
||||||
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)
|
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)
|
||||||
wrong_rgbds
|
WRONG_RGBDS
|
||||||
ELSE
|
ELSE
|
||||||
IF (__RGBDS_MAJOR__ < MAJOR) || \
|
IF (__RGBDS_MAJOR__ < MAJOR) || \
|
||||||
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ < MINOR) || \
|
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ < MINOR) || \
|
||||||
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ < PATCH) || \
|
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ < PATCH) || \
|
||||||
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ == PATCH && DEF(__RGBDS_RC__))
|
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ == PATCH && DEF(__RGBDS_RC__))
|
||||||
wrong_rgbds
|
WRONG_RGBDS
|
||||||
ENDC
|
ENDC
|
||||||
ENDC
|
ENDC
|
||||||
|
|
|
||||||
3
text.asm
3
text.asm
|
|
@ -1,6 +1,3 @@
|
||||||
INCLUDE "constants.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "Text 1", ROMX
|
SECTION "Text 1", ROMX
|
||||||
|
|
||||||
INCLUDE "data/text/text_1.asm"
|
INCLUDE "data/text/text_1.asm"
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ function register_bank(amount) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rom_bank && toupper($0) ~ /^[ \t]*EMPTY/ {
|
rom_bank && toupper($0) ~ /^[ \t]*EMPTY$/ {
|
||||||
# Empty bank
|
# Empty bank
|
||||||
register_bank(16384)
|
register_bank(16384)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
Usage: python3 free_space.py [BANK=none] [pokeyellow.map]
|
|
||||||
|
|
||||||
Calculate the free space in the ROM or its individual banks.
|
|
||||||
|
|
||||||
The BANK argument allows printing free space in one, all, or none of the ROM's banks.
|
|
||||||
Valid arguments are numbers (in decimal "42" or hexadecimal "0x2A"), "all" or "none".
|
|
||||||
If not specified, defaults to "none".
|
|
||||||
"""
|
|
||||||
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from mapreader import MapReader
|
|
||||||
|
|
||||||
def main():
|
|
||||||
print_bank = 'none'
|
|
||||||
filename = 'pokeyellow.map'
|
|
||||||
|
|
||||||
for arg in sys.argv[1:]:
|
|
||||||
if arg.startswith('BANK='):
|
|
||||||
print_bank = arg.split('=', 1)[-1]
|
|
||||||
else:
|
|
||||||
filename = arg
|
|
||||||
|
|
||||||
if print_bank not in {'all', 'none'}:
|
|
||||||
try:
|
|
||||||
print_bank = (int(print_bank[2:], 16)
|
|
||||||
if print_bank.startswith('0x') or print_bank.startswith('0X')
|
|
||||||
else int(print_bank))
|
|
||||||
except ValueError:
|
|
||||||
error = f'Error: invalid BANK: {print_bank}'
|
|
||||||
if print_bank.isalnum():
|
|
||||||
error += f' (did you mean: 0x{print_bank}?)'
|
|
||||||
print(error, file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
num_banks = 0x80
|
|
||||||
bank_size = 0x4000 # bytes
|
|
||||||
total_size = num_banks * bank_size
|
|
||||||
|
|
||||||
reader = MapReader()
|
|
||||||
with open(filename, 'r', encoding='utf-8') as file:
|
|
||||||
reader.read_map_data(file.readlines())
|
|
||||||
|
|
||||||
free_space = 0
|
|
||||||
per_bank = []
|
|
||||||
default_bank_data = {'sections': [], 'used': 0, 'slack': bank_size}
|
|
||||||
for bank in range(num_banks):
|
|
||||||
bank_data = reader.bank_data['ROM0 bank' if bank == 0 else 'ROMX bank']
|
|
||||||
data = bank_data.get(bank, default_bank_data)
|
|
||||||
used, slack = data['used'], data['slack']
|
|
||||||
per_bank.append((used, slack))
|
|
||||||
free_space += slack
|
|
||||||
|
|
||||||
free_percent = 100 * free_space / total_size
|
|
||||||
print(f'Free space: {free_space}/{total_size} ({free_percent:.2f}%)')
|
|
||||||
if print_bank != 'none':
|
|
||||||
print()
|
|
||||||
print('bank, used, free')
|
|
||||||
for bank in range(num_banks):
|
|
||||||
used, slack = per_bank[bank]
|
|
||||||
if print_bank in {'all', bank}:
|
|
||||||
print(f'${bank:02X}, {used}, {slack}')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
@ -1,173 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
# A library for parsing the pokeyellow.map file output by rgbds.
|
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
class MapReader:
|
|
||||||
|
|
||||||
# {'ROM Bank': { 0: { 'sections': [ { 'beg': 1234,
|
|
||||||
# 'end': 5678,
|
|
||||||
# 'name': 'Section001',
|
|
||||||
# 'symbols': [ { 'symbol': 'Function1234',
|
|
||||||
# 'address: 1234,
|
|
||||||
# },
|
|
||||||
# ]
|
|
||||||
# },
|
|
||||||
# ],
|
|
||||||
# 'used': 1234,
|
|
||||||
# 'slack': 4567,
|
|
||||||
# },
|
|
||||||
# },
|
|
||||||
# 'OAM': { 'sections': [ { 'beg': 1234,
|
|
||||||
# 'end': 5678,
|
|
||||||
# 'name': 'Section002',
|
|
||||||
# 'symbols': [ { 'symbol': 'Data1234',
|
|
||||||
# 'address: 1234,
|
|
||||||
# },
|
|
||||||
# ]
|
|
||||||
# },
|
|
||||||
# ],
|
|
||||||
# 'used': 1234,
|
|
||||||
# 'slack': 4567,
|
|
||||||
# },
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
bank_data = {}
|
|
||||||
|
|
||||||
bank_types = {
|
|
||||||
'HRAM' : { 'size': 0x80, 'banked': False, },
|
|
||||||
'OAM' : { 'size': 0xA0, 'banked': False, },
|
|
||||||
'ROM0 bank': { 'size': 0x4000, 'banked': True, },
|
|
||||||
'ROMX bank': { 'size': 0x4000, 'banked': True, },
|
|
||||||
'SRAM bank': { 'size': 0x2000, 'banked': True, },
|
|
||||||
'VRAM bank': { 'size': 0x1000, 'banked': True, },
|
|
||||||
'WRAM bank': { 'size': 0x2000, 'banked': True, },
|
|
||||||
}
|
|
||||||
|
|
||||||
# FSM states
|
|
||||||
INIT, BANK, SECTION = range(3)
|
|
||||||
|
|
||||||
# $506D-$519A ($012E bytes) ["Type Matchups"]
|
|
||||||
section_header_regex = re.compile('\$([0-9A-Fa-f]{4})-\$([0-9A-Fa-f]{4}) \(.*\) \["(.*)"\]')
|
|
||||||
# $506D = TypeMatchups
|
|
||||||
section_data_regex = re.compile('\$([0-9A-Fa-f]{4}) = (.*)')
|
|
||||||
# $3ED2 bytes
|
|
||||||
slack_regex = re.compile('\$([0-9A-Fa-f]{4}) bytes?')
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
self.__dict__.update(kwargs)
|
|
||||||
|
|
||||||
def _parse_init(self, line):
|
|
||||||
|
|
||||||
line = line.split(':', 1)[0]
|
|
||||||
parts = line.split(' #', 1)
|
|
||||||
|
|
||||||
if (parts[0] in self.bank_types):
|
|
||||||
self._cur_bank_name = parts[0]
|
|
||||||
self._cur_bank_type = self.bank_types[self._cur_bank_name]
|
|
||||||
if (self._cur_bank_type['banked'] and len(parts) > 1):
|
|
||||||
parts[1] = parts[1].split(':', 1)[0]
|
|
||||||
parts[1] = parts[1].split(' ', 1)[0]
|
|
||||||
self._cur_bank = int(parts[1], 10)
|
|
||||||
if self._cur_bank_name not in self.bank_data:
|
|
||||||
self.bank_data[self._cur_bank_name] = {}
|
|
||||||
if self._cur_bank_type['banked']:
|
|
||||||
if self._cur_bank not in self.bank_data[self._cur_bank_name]:
|
|
||||||
self.bank_data[self._cur_bank_name][self._cur_bank] = {}
|
|
||||||
self._cur_data = self.bank_data[self._cur_bank_name][self._cur_bank]
|
|
||||||
else:
|
|
||||||
self._cur_data = self.bank_data[self._cur_bank_name]
|
|
||||||
|
|
||||||
if ({} == self._cur_data):
|
|
||||||
self._cur_data['sections'] = []
|
|
||||||
self._cur_data['used'] = 0
|
|
||||||
self._cur_data['slack'] = self._cur_bank_type['size']
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
def _parse_section_header(self, header):
|
|
||||||
|
|
||||||
section_data = self.section_header_regex.match(header)
|
|
||||||
if section_data is not None:
|
|
||||||
beg = int(section_data.group(1), 16)
|
|
||||||
end = int(section_data.group(2), 16)
|
|
||||||
name = section_data.group(3)
|
|
||||||
self._cur_section = {'beg': beg, 'end': end, 'name': name, 'symbols': []}
|
|
||||||
self._cur_data['sections'].append(self._cur_section)
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def _parse_slack(self, data):
|
|
||||||
|
|
||||||
slack_data = self.slack_regex.match(data)
|
|
||||||
slack_bytes = int(slack_data.group(1), 16)
|
|
||||||
self._cur_data['slack'] = slack_bytes
|
|
||||||
|
|
||||||
used_bytes = 0
|
|
||||||
|
|
||||||
for s in self._cur_data['sections']:
|
|
||||||
used_bytes += s['end'] - s['beg'] + 1
|
|
||||||
|
|
||||||
self._cur_data['used'] = used_bytes
|
|
||||||
|
|
||||||
def read_map_data(self, map):
|
|
||||||
|
|
||||||
if type(map) is str:
|
|
||||||
map = map.split('\n')
|
|
||||||
|
|
||||||
self._state = MapReader.INIT
|
|
||||||
self._cur_bank_name = ''
|
|
||||||
self._cur_bank_type = {}
|
|
||||||
self._cur_bank = 0
|
|
||||||
self._cur_data = {}
|
|
||||||
|
|
||||||
for line in map:
|
|
||||||
|
|
||||||
line = line.rstrip()
|
|
||||||
if (MapReader.INIT == self._state):
|
|
||||||
|
|
||||||
if (self._parse_init(line)):
|
|
||||||
self._state = MapReader.BANK
|
|
||||||
|
|
||||||
elif (MapReader.BANK == self._state or MapReader.SECTION == self._state):
|
|
||||||
|
|
||||||
if ('' == line):
|
|
||||||
self._state = MapReader.INIT
|
|
||||||
else:
|
|
||||||
|
|
||||||
line = line.lstrip()
|
|
||||||
parts = line.split(': ', 1)
|
|
||||||
|
|
||||||
if (MapReader.SECTION == self._state):
|
|
||||||
section_data = self.section_data_regex.match(parts[0])
|
|
||||||
if section_data is not None:
|
|
||||||
address = int(section_data.group(1), 16)
|
|
||||||
name = section_data.group(2)
|
|
||||||
self._cur_section['symbols'].append({'name': name, 'address': address})
|
|
||||||
continue
|
|
||||||
|
|
||||||
if ('SECTION' == parts[0]):
|
|
||||||
if (self._parse_section_header(parts[1])):
|
|
||||||
self._state = MapReader.SECTION
|
|
||||||
elif ('SLACK' == parts[0]):
|
|
||||||
self._parse_slack(parts[1])
|
|
||||||
self._state = MapReader.INIT
|
|
||||||
elif ('EMPTY' == parts[0]):
|
|
||||||
self._cur_data = {'sections': [], 'used': 0, 'slack': self._cur_bank_type['size']}
|
|
||||||
self._state = MapReader.INIT
|
|
||||||
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
for k, v in self.bank_data.items():
|
|
||||||
if (self.bank_types[k]['banked']):
|
|
||||||
for _, vv in v.items():
|
|
||||||
vv['sections'].sort(key=lambda x: x['beg'])
|
|
||||||
for vvv in vv['sections']:
|
|
||||||
vvv['symbols'].sort(key=lambda x: x['address'])
|
|
||||||
else:
|
|
||||||
v['sections'].sort(key=lambda x: x['beg'])
|
|
||||||
for vv in v['sections']:
|
|
||||||
vv['symbols'].sort(key=lambda x: x['address'])
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
"""
|
|
||||||
Usage: python used_space.py [pokeyellow.map] [used_space.png]
|
|
||||||
|
|
||||||
Generate a PNG visualizing the space used by each bank in the ROM.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from colorsys import hls_to_rgb
|
|
||||||
|
|
||||||
import png
|
|
||||||
from mapreader import MapReader
|
|
||||||
|
|
||||||
def main():
|
|
||||||
mapfile = sys.argv[1] if len(sys.argv) >= 2 else 'pokeyellow.map'
|
|
||||||
outfile = sys.argv[2] if len(sys.argv) >= 3 else 'used_space.png'
|
|
||||||
|
|
||||||
num_banks = 0x80
|
|
||||||
bank_mask = 0x3FFF
|
|
||||||
bank_size = 0x4000 # bytes
|
|
||||||
|
|
||||||
bpp = 8 # bytes per pixel
|
|
||||||
height = 256 # pixels
|
|
||||||
assert bank_size % bpp == 0 and (bank_size // bpp) % height == 0
|
|
||||||
|
|
||||||
pixels_per_bank = bank_size // bpp # 2048 pixels
|
|
||||||
bank_width = pixels_per_bank // height # 8 pixels
|
|
||||||
width = bank_width * num_banks # 1024 pixels
|
|
||||||
|
|
||||||
reader = MapReader()
|
|
||||||
with open(mapfile, 'r', encoding='utf-8') as file:
|
|
||||||
reader.read_map_data(file.readlines())
|
|
||||||
|
|
||||||
hit_data = []
|
|
||||||
default_bank_data = {'sections': [], 'used': 0, 'slack': bank_size}
|
|
||||||
for bank in range(num_banks):
|
|
||||||
hits = [0] * pixels_per_bank
|
|
||||||
bank_data = reader.bank_data['ROM0 bank' if bank == 0 else 'ROMX bank']
|
|
||||||
data = bank_data.get(bank, default_bank_data)
|
|
||||||
for s in data['sections']:
|
|
||||||
beg = s['beg'] & bank_mask
|
|
||||||
end = s['end'] & bank_mask
|
|
||||||
for i in range(beg, end + 1):
|
|
||||||
hits[i // bpp] += 1
|
|
||||||
hit_data.append(hits)
|
|
||||||
|
|
||||||
pixels = [[(0xFF, 0xFF, 0xFF)] * width for _ in range(height)]
|
|
||||||
for bank, hits in enumerate(hit_data):
|
|
||||||
hue = 0 if bank == 0 else 210 if bank % 2 else 270
|
|
||||||
for i, hit in enumerate(hits):
|
|
||||||
x, y = i % bank_width + bank * bank_width, i // bank_width
|
|
||||||
hls = (hue / 360, 1 - (85 * hit / bpp) / 100, 1)
|
|
||||||
rgb = tuple(int(c * 0xFF) for c in hls_to_rgb(*hls))
|
|
||||||
pixels[y][x] = rgb
|
|
||||||
|
|
||||||
png_data = [tuple(c for pixel in row for c in pixel) for row in pixels]
|
|
||||||
with open(outfile, 'wb') as file:
|
|
||||||
writer = png.Writer(width, height, greyscale=False, bitdepth=8, compression=9)
|
|
||||||
writer.write(file, png_data)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
INCLUDE "constants.asm"
|
; These are all the asm constants needed to make the yellow_vc patch.
|
||||||
|
|
||||||
; These are all the asm constants needed to make the blue_vc patch.
|
|
||||||
|
|
||||||
MACRO vc_const
|
MACRO vc_const
|
||||||
DEF x = \1
|
DEF x = \1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user