Merge remote-tracking branch 'remotes/pokered/master'

This commit is contained in:
Rangi 2021-05-23 18:37:43 -04:00
commit b11b9e0968
7 changed files with 257 additions and 122 deletions

View File

@ -9,7 +9,7 @@ install:
HOMEBREW_NO_AUTO_UPDATE=1 brew install bison
export PATH="/usr/local/opt/bison/bin:$PATH"
fi
git clone -b v0.5.0 --depth=1 https://github.com/gbdev/rgbds
git clone -b v0.5.1 --depth=1 https://github.com/gbdev/rgbds
sudo make -C rgbds install
rm -rf rgbds
)

View File

@ -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.
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.5.0**.
Then follow the [**rgbds** install instructions](https://rgbds.gbdev.io/install/windows) for Windows with Cygwin to install **rgbds 0.5.1**.
**Note:** If you already have an older rgbds, you will need to update to 0.5.0. Ignore this if you have never installed rgbds before. If a version newer than 0.5.0 does not work, try downloading 0.5.0.
**Note:** If you already have an older rgbds, you will need to update to 0.5.1. Ignore this if you have never installed rgbds before. If a version newer than 0.5.1 does not work, try downloading 0.5.1.
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.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.5.0**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/macos) for macOS to install **rgbds 0.5.1**.
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
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### OpenSUSE
@ -94,7 +94,7 @@ To install the software required for **pokeyellow**:
sudo zypper install make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Arch Linux
@ -104,9 +104,9 @@ To install the software required for **pokeyellow**:
sudo pacman -S make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.5.0**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/arch) for Arch Linux to install **rgbds 0.5.1**.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Termux
@ -122,7 +122,7 @@ To 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/source) to build **rgbds 0.5.0** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
### Other distros
@ -133,7 +133,7 @@ If your distro is not listed here, try to find the required software in its repo
- `git`
- `rgbds`
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.0** from source.
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install/source) to build **rgbds 0.5.1** from source.
Now you're ready to [build **pokeyellow**](#build-pokeyellow).
@ -155,8 +155,8 @@ make
### 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.0 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.5.0/`. 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.5.1 globally. Instead, you can put its files in a directory within pokeyellow, such as `pokeyellow/rgbds-0.5.1/`. Then specify it when you run `make`:
```bash
make RGBDS=rgbds-0.5.0/
make RGBDS=rgbds-0.5.1/
```

View File

@ -1,29 +1,54 @@
TechnicalMachinePrices:
; In thousands (nybbles).
table_width 1, TechnicalMachinePrices
dn 3, 2 ; TM01, TM02
dn 2, 1 ; TM03, TM04
dn 3, 4 ; TM05, TM06
dn 2, 4 ; TM07, TM08
dn 3, 4 ; TM09, TM10
dn 2, 1 ; TM11, TM12
dn 4, 5 ; TM13, TM14
dn 5, 5 ; TM15, TM16
dn 3, 2 ; TM17, TM18
dn 3, 2 ; TM19, TM20
dn 5, 5 ; TM21, TM22
dn 5, 2 ; TM23, TM24
dn 5, 4 ; TM25, TM26
dn 5, 2 ; TM27, TM28
dn 4, 1 ; TM29, TM30
dn 2, 1 ; TM31, TM32
dn 1, 2 ; TM33, TM34
dn 4, 2 ; TM35, TM36
dn 2, 5 ; TM37, TM38
dn 2, 4 ; TM39, TM40
dn 2, 2 ; TM41, TM42
dn 5, 2 ; TM43, TM44
dn 2, 4 ; TM45, TM46
dn 3, 4 ; TM47, TM48
dn 4, 2 ; TM49, TM50
assert_table_length (NUM_TMS + 1) / 2
nybble_array TechnicalMachinePrices
nybble 3 ; TM01
nybble 2 ; TM02
nybble 2 ; TM03
nybble 1 ; TM04
nybble 3 ; TM05
nybble 4 ; TM06
nybble 2 ; TM07
nybble 4 ; TM08
nybble 3 ; TM09
nybble 4 ; TM10
nybble 2 ; TM11
nybble 1 ; TM12
nybble 4 ; TM13
nybble 5 ; TM14
nybble 5 ; TM15
nybble 5 ; TM16
nybble 3 ; TM17
nybble 2 ; TM18
nybble 3 ; TM19
nybble 2 ; TM20
nybble 5 ; TM21
nybble 5 ; TM22
nybble 5 ; TM23
nybble 2 ; TM24
nybble 5 ; TM25
nybble 4 ; TM26
nybble 5 ; TM27
nybble 2 ; TM28
nybble 4 ; TM29
nybble 1 ; TM30
nybble 2 ; TM31
nybble 1 ; TM32
nybble 1 ; TM33
nybble 2 ; TM34
nybble 4 ; TM35
nybble 2 ; TM36
nybble 2 ; TM37
nybble 5 ; TM38
nybble 2 ; TM39
nybble 4 ; TM40
nybble 2 ; TM41
nybble 2 ; TM42
nybble 5 ; TM43
nybble 2 ; TM44
nybble 2 ; TM45
nybble 4 ; TM46
nybble 3 ; TM47
nybble 4 ; TM48
nybble 4 ; TM49
nybble 2 ; TM50
end_nybble_array NUM_TMS

View File

@ -1,79 +1,154 @@
MonPartyData:
table_width 1, MonPartyData
dn ICON_GRASS, ICON_GRASS ; Bulbasaur / Ivysaur
dn ICON_GRASS, ICON_MON ; Venusaur / Charmander
dn ICON_MON, ICON_MON ; Charmeleon / Charizard
dn ICON_WATER, ICON_WATER ; Squirtle / Wartortle
dn ICON_WATER, ICON_BUG ; Blastoise / Caterpie
dn ICON_BUG, ICON_BUG ; Metapod / Butterfree
dn ICON_BUG, ICON_BUG ; Weedle / Kakuna
dn ICON_BUG, ICON_BIRD ; Beedrill / Pidgey
dn ICON_BIRD, ICON_BIRD ; Pidgeotto / Pidgeot
dn ICON_QUADRUPED, ICON_QUADRUPED ; Rattata / Raticate
dn ICON_BIRD, ICON_BIRD ; Spearow / Fearow
dn ICON_SNAKE, ICON_SNAKE ; Ekans / Arbok
dn ICON_PIKACHU, ICON_PIKACHU ; Pikachu / Raichu
dn ICON_MON, ICON_MON ; Sandshrew / Sandslash
dn ICON_MON, ICON_MON ; NidoranF / Nidorina
dn ICON_MON, ICON_MON ; Nidoqueen / NidoranM
dn ICON_MON, ICON_MON ; Nidorino / Nidoking
dn ICON_FAIRY, ICON_FAIRY ; Clefairy / Clefable
dn ICON_QUADRUPED, ICON_QUADRUPED ; Vulpix / Ninetales
dn ICON_FAIRY, ICON_FAIRY ; Jigglypuff / Wigglytuff
dn ICON_MON, ICON_MON ; Zubat / Golbat
dn ICON_GRASS, ICON_GRASS ; Oddish / Gloom
dn ICON_GRASS, ICON_BUG ; Vileplume / Paras
dn ICON_BUG, ICON_BUG ; Parasect / Venonat
dn ICON_BUG, ICON_MON ; Venomoth / Diglett
dn ICON_MON, ICON_MON ; Dugtrio / Meowth
dn ICON_MON, ICON_MON ; Persian / Psyduck
dn ICON_MON, ICON_MON ; Golduck / Mankey
dn ICON_MON, ICON_QUADRUPED ; Primeape / Growlithe
dn ICON_QUADRUPED, ICON_MON ; Arcanine / Poliwag
dn ICON_MON, ICON_MON ; Poliwhirl / Poliwrath
dn ICON_MON, ICON_MON ; Abra / Kadabra
dn ICON_MON, ICON_MON ; Alakazam / Machop
dn ICON_MON, ICON_MON ; Machoke / Machamp
dn ICON_GRASS, ICON_GRASS ; Bellsprout / Weepinbell
dn ICON_GRASS, ICON_WATER ; Victreebel / Tentacool
dn ICON_WATER, ICON_MON ; Tentacruel / Geodude
dn ICON_MON, ICON_MON ; Graveler / Golem
dn ICON_QUADRUPED, ICON_QUADRUPED ; Ponyta / Rapidash
dn ICON_QUADRUPED, ICON_MON ; Slowpoke / Slowbro
dn ICON_BALL, ICON_BALL ; Magnemite / Magneton
dn ICON_BIRD, ICON_BIRD ; Farfetch'd / Doduo
dn ICON_BIRD, ICON_WATER ; Dodrio / Seel
dn ICON_WATER, ICON_MON ; Dewgong / Grimer
dn ICON_MON, ICON_HELIX ; Muk / Shellder
dn ICON_HELIX, ICON_MON ; Cloyster / Gastly
dn ICON_MON, ICON_MON ; Haunter / Gengar
dn ICON_SNAKE, ICON_MON ; Onix / Drowzee
dn ICON_MON, ICON_WATER ; Hypno / Krabby
dn ICON_WATER, ICON_BALL ; Kingler / Voltorb
dn ICON_BALL, ICON_GRASS ; Electrode / Exeggcute
dn ICON_GRASS, ICON_MON ; Exeggutor / Cubone
dn ICON_MON, ICON_MON ; Marowak / Hitmonlee
dn ICON_MON, ICON_MON ; Hitmonchan / Lickitung
dn ICON_MON, ICON_MON ; Koffing / Weezing
dn ICON_QUADRUPED, ICON_MON ; Rhyhorn / Rhydon
dn ICON_FAIRY, ICON_GRASS ; Chansey / Tangela
dn ICON_MON, ICON_WATER ; Kangaskhan / Horsea
dn ICON_WATER, ICON_WATER ; Seadra / Goldeen
dn ICON_WATER, ICON_HELIX ; Seaking / Staryu
dn ICON_HELIX, ICON_MON ; Starmie / Mr.Mime
dn ICON_BUG, ICON_MON ; Scyther / Jynx
dn ICON_MON, ICON_MON ; Electabuzz / Magmar
dn ICON_BUG, ICON_QUADRUPED ; Pinsir / Tauros
dn ICON_WATER, ICON_SNAKE ; Magikarp / Gyarados
dn ICON_WATER, ICON_MON ; Lapras / Ditto
dn ICON_QUADRUPED, ICON_QUADRUPED ; Eevee / Vaporeon
dn ICON_QUADRUPED, ICON_QUADRUPED ; Jolteon / Flareon
dn ICON_MON, ICON_HELIX ; Porygon / Omanyte
dn ICON_HELIX, ICON_HELIX ; Omastar / Kabuto
dn ICON_HELIX, ICON_BIRD ; Kabutops / Aerodactyl
dn ICON_MON, ICON_BIRD ; Snorlax / Articuno
dn ICON_BIRD, ICON_BIRD ; Zapdos / Moltres
dn ICON_SNAKE, ICON_SNAKE ; Dratini / Dragonair
dn ICON_SNAKE, ICON_MON ; Dragonite / Mewtwo
dn ICON_MON, 0 ; Mew / padding
assert_table_length (NUM_POKEMON + 1) / 2
nybble_array MonPartyData
nybble ICON_GRASS ; Bulbasaur
nybble ICON_GRASS ; Ivysaur
nybble ICON_GRASS ; Venusaur
nybble ICON_MON ; Charmander
nybble ICON_MON ; Charmeleon
nybble ICON_MON ; Charizard
nybble ICON_WATER ; Squirtle
nybble ICON_WATER ; Wartortle
nybble ICON_WATER ; Blastoise
nybble ICON_BUG ; Caterpie
nybble ICON_BUG ; Metapod
nybble ICON_BUG ; Butterfree
nybble ICON_BUG ; Weedle
nybble ICON_BUG ; Kakuna
nybble ICON_BUG ; Beedrill
nybble ICON_BIRD ; Pidgey
nybble ICON_BIRD ; Pidgeotto
nybble ICON_BIRD ; Pidgeot
nybble ICON_QUADRUPED ; Rattata
nybble ICON_QUADRUPED ; Raticate
nybble ICON_BIRD ; Spearow
nybble ICON_BIRD ; Fearow
nybble ICON_SNAKE ; Ekans
nybble ICON_SNAKE ; Arbok
nybble ICON_PIKACHU ; Pikachu
nybble ICON_PIKACHU ; Raichu
nybble ICON_MON ; Sandshrew
nybble ICON_MON ; Sandslash
nybble ICON_MON ; NidoranF
nybble ICON_MON ; Nidorina
nybble ICON_MON ; Nidoqueen
nybble ICON_MON ; NidoranM
nybble ICON_MON ; Nidorino
nybble ICON_MON ; Nidoking
nybble ICON_FAIRY ; Clefairy
nybble ICON_FAIRY ; Clefable
nybble ICON_QUADRUPED ; Vulpix
nybble ICON_QUADRUPED ; Ninetales
nybble ICON_FAIRY ; Jigglypuff
nybble ICON_FAIRY ; Wigglytuff
nybble ICON_MON ; Zubat
nybble ICON_MON ; Golbat
nybble ICON_GRASS ; Oddish
nybble ICON_GRASS ; Gloom
nybble ICON_GRASS ; Vileplume
nybble ICON_BUG ; Paras
nybble ICON_BUG ; Parasect
nybble ICON_BUG ; Venonat
nybble ICON_BUG ; Venomoth
nybble ICON_MON ; Diglett
nybble ICON_MON ; Dugtrio
nybble ICON_MON ; Meowth
nybble ICON_MON ; Persian
nybble ICON_MON ; Psyduck
nybble ICON_MON ; Golduck
nybble ICON_MON ; Mankey
nybble ICON_MON ; Primeape
nybble ICON_QUADRUPED ; Growlithe
nybble ICON_QUADRUPED ; Arcanine
nybble ICON_MON ; Poliwag
nybble ICON_MON ; Poliwhirl
nybble ICON_MON ; Poliwrath
nybble ICON_MON ; Abra
nybble ICON_MON ; Kadabra
nybble ICON_MON ; Alakazam
nybble ICON_MON ; Machop
nybble ICON_MON ; Machoke
nybble ICON_MON ; Machamp
nybble ICON_GRASS ; Bellsprout
nybble ICON_GRASS ; Weepinbell
nybble ICON_GRASS ; Victreebel
nybble ICON_WATER ; Tentacool
nybble ICON_WATER ; Tentacruel
nybble ICON_MON ; Geodude
nybble ICON_MON ; Graveler
nybble ICON_MON ; Golem
nybble ICON_QUADRUPED ; Ponyta
nybble ICON_QUADRUPED ; Rapidash
nybble ICON_QUADRUPED ; Slowpoke
nybble ICON_MON ; Slowbro
nybble ICON_BALL ; Magnemite
nybble ICON_BALL ; Magneton
nybble ICON_BIRD ; Farfetch'd
nybble ICON_BIRD ; Doduo
nybble ICON_BIRD ; Dodrio
nybble ICON_WATER ; Seel
nybble ICON_WATER ; Dewgong
nybble ICON_MON ; Grimer
nybble ICON_MON ; Muk
nybble ICON_HELIX ; Shellder
nybble ICON_HELIX ; Cloyster
nybble ICON_MON ; Gastly
nybble ICON_MON ; Haunter
nybble ICON_MON ; Gengar
nybble ICON_SNAKE ; Onix
nybble ICON_MON ; Drowzee
nybble ICON_MON ; Hypno
nybble ICON_WATER ; Krabby
nybble ICON_WATER ; Kingler
nybble ICON_BALL ; Voltorb
nybble ICON_BALL ; Electrode
nybble ICON_GRASS ; Exeggcute
nybble ICON_GRASS ; Exeggutor
nybble ICON_MON ; Cubone
nybble ICON_MON ; Marowak
nybble ICON_MON ; Hitmonlee
nybble ICON_MON ; Hitmonchan
nybble ICON_MON ; Lickitung
nybble ICON_MON ; Koffing
nybble ICON_MON ; Weezing
nybble ICON_QUADRUPED ; Rhyhorn
nybble ICON_MON ; Rhydon
nybble ICON_FAIRY ; Chansey
nybble ICON_GRASS ; Tangela
nybble ICON_MON ; Kangaskhan
nybble ICON_WATER ; Horsea
nybble ICON_WATER ; Seadra
nybble ICON_WATER ; Goldeen
nybble ICON_WATER ; Seaking
nybble ICON_HELIX ; Staryu
nybble ICON_HELIX ; Starmie
nybble ICON_MON ; Mr.Mime
nybble ICON_BUG ; Scyther
nybble ICON_MON ; Jynx
nybble ICON_MON ; Electabuzz
nybble ICON_MON ; Magmar
nybble ICON_BUG ; Pinsir
nybble ICON_QUADRUPED ; Tauros
nybble ICON_WATER ; Magikarp
nybble ICON_SNAKE ; Gyarados
nybble ICON_WATER ; Lapras
nybble ICON_MON ; Ditto
nybble ICON_QUADRUPED ; Eevee
nybble ICON_QUADRUPED ; Vaporeon
nybble ICON_QUADRUPED ; Jolteon
nybble ICON_QUADRUPED ; Flareon
nybble ICON_MON ; Porygon
nybble ICON_HELIX ; Omanyte
nybble ICON_HELIX ; Omastar
nybble ICON_HELIX ; Kabuto
nybble ICON_HELIX ; Kabutops
nybble ICON_BIRD ; Aerodactyl
nybble ICON_MON ; Snorlax
nybble ICON_BIRD ; Articuno
nybble ICON_BIRD ; Zapdos
nybble ICON_BIRD ; Moltres
nybble ICON_SNAKE ; Dratini
nybble ICON_SNAKE ; Dragonair
nybble ICON_SNAKE ; Dragonite
nybble ICON_MON ; Mewtwo
nybble ICON_MON ; Mew
end_nybble_array NUM_POKEMON

View File

@ -38,6 +38,41 @@ x = \1
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
ENDM
nybble_array: MACRO
CURRENT_NYBBLE_ARRAY_VALUE = 0
CURRENT_NYBBLE_ARRAY_LENGTH = 0
IF _NARG == 1
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "\1"
ELSE
REDEF CURRENT_NYBBLE_ARRAY_START EQUS "._nybble_array\@"
{CURRENT_NYBBLE_ARRAY_START}:
ENDC
ENDM
nybble: MACRO
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
CURRENT_NYBBLE_ARRAY_LENGTH = CURRENT_NYBBLE_ARRAY_LENGTH + 1
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2 == 0
db CURRENT_NYBBLE_ARRAY_VALUE
CURRENT_NYBBLE_ARRAY_VALUE = 0
ENDC
ENDM
end_nybble_array: MACRO
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
db CURRENT_NYBBLE_ARRAY_VALUE
ENDC
IF _NARG == 1
x = \1
ASSERT x == CURRENT_NYBBLE_ARRAY_LENGTH, \
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} nybbles, got {d:CURRENT_NYBBLE_ARRAY_LENGTH}"
x = (x + 1) / 2
ASSERT x == @ - {CURRENT_NYBBLE_ARRAY_START}, \
"{CURRENT_NYBBLE_ARRAY_START}: expected {d:x} bytes"
ENDC
ENDM
def_grass_wildmons: MACRO
;\1: encounter rate
CURRENT_GRASS_WILDMONS_RATE = \1

View File

@ -1,9 +1,9 @@
MAJOR EQU 0
MINOR EQU 5
PATCH EQU 0
PATCH EQU 1
wrong_rgbds: MACRO
fail "pokeyellow requires rgbds v0.5.0 or newer."
fail "pokeyellow requires rgbds v0.5.1 or newer."
ENDM
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)

View File

@ -82,14 +82,14 @@ for objfile in objects:
elif magic == b'RGB9':
obj_ver = 10 + unpack_file("<I", f)[0]
if obj_ver not in [6, 10, 11, 12, 13, 15, 16, 17]:
if obj_ver not in [6, 10, 11, 12, 13, 15, 16, 17, 18]:
print("Error: File '%s' is of an unknown format." % objfile, file=stderr)
exit(1)
num_symbols = unpack_file("<I", f)[0]
unpack_file("<I", f) # skip num sections
if obj_ver in [16, 17]:
if obj_ver in [16, 17, 18]:
node_filenames = []
num_nodes = unpack_file("<I", f)[0]
for x in range(num_nodes):
@ -109,7 +109,7 @@ for objfile in objects:
sym_type = symtype(unpack_file("<B", f)[0] & 0x7f)
if sym_type == symtype.IMPORT:
continue
if obj_ver in [16, 17]:
if obj_ver in [16, 17, 18]:
sym_fileno = unpack_file("<I", f)[0]
sym_filename = node_filenames[sym_fileno]
else: