Kanto Expansion Pak
===================
This is a ROM Hack of Pokémon Red and Blue, aiming to expand the Kanto region with more interesting locations, evolutions added in later generations, and QoL changes.

If playing on an emulator, BGB is strongly recommended for its accuracy and features. VBA's inaccuracies can cause unintended glitches.

New Pokemon:
====
- The 34 known beta Pokemon that were cut from RBY have been fully implemented.
- Evolutions or Pre-evolutions of a Kanto Pokemon found in a future generation are included; eg. Kleavor, Glaceon, Annihilape
- Evolutions or Pre-evolutions of a Kanto Pokemon found in the SpaceWorld '97 demo are included; eg. Madaamu, Pudi
	- Some Pokemon will also use their SW97 designs!

Johto baby Pokemon and regional pre-evolutions were omitted due to memory constraints. This just barely works.

New Types:
====
- Dark, Steel and Fairy types are added
	- note that Dark and Steel use their type effectiveness from the SW97 demo
	- note that Bite is still Normal-type
	- note that the Clefairy, Mime Jr, and Jigglypuff lines are not Steel or Fairy-type, respectively
		- This (and Bite) was done to ensure the original Kanto Pokemon were unaltered in any way
		- While Magnemite, Magnetite, and Magneton are pure Electric, Magnezone is part-Steel.
		- Scream Tail remains Psychic/Fairy.

Type Matchups for Steel and Dark for reference:
- Steel...
	- Attacks are Super Effective vs: Rock, Fairy
	- Attacks are Not Very Effective vs: Water, Electric
	- Attacks do no Damage vs: Steel
	- Pokemon are weak to: Water, Electric
	- Pokemon resist: Poison, Rock, Fighting, Fairy
	- Pokemon are Immune To: Steel
- Dark...
	- Attacks are Super Effective vs: Ghost, Psychic, Dark
	- Attacks are Not Very Effective vs: Normal, Fairy 
	- Pokemon are Weak to: Normal, Dark, Fairy 
	- Pokemon resist: Ghost, Psychic

New Items:
====
- The Sun, Ice, Poison and Heart Stones have been added.
- The Protector and Black Augurite evolution items have been added for Rhyperior and Kleavor, respectively.
- The Old Sea Chart has been added, allowing access to Faraway Island and Mew.
- The Citrine Pass has been added, allowing access to a new post-game area based on the unused "C" map.

New areas
====
- Celadon University is just north of Celadon.
	- This is a reference to a Magikarp event from July 1998, and includes the lore from it and other areas of Pokemon's early worldbuilding.
	- New infinitely re-battleable trainers are accessible.
	- There's a Move Deleter and Move Relearner!
- Citrine City is a new island city that can be accessed in the postgame.
- Underwater Tunnel connects Route 25 and Route 10.
- Cinnabar Volcano is a new area that houses Moltres, allowing it to be obtained before Victory Road.
- Faraway Island from Pokemon Emerald has been added, where you can find Mew. It also has its own wild encounters, as well as an improved translation on its sign, enhancing its appearance from its source material.
- Mt. Moon Crater is a new area based on Area Zero in Pokemon Scarlet and Violet, accessible in the post-game. Here, you can encounter Scream Tail and Sandy Shocks via random encounter, just like the original!
- Bill's Garden is accessible in the post-game to access all "one-time deals", just like in the mythos!
- Silph Co. holds a special challenge for Pokemon League Champions...

Improved areas
====
- Most barriers to travel across the region have been removed, allowing for almost fully open world gameplay. To encourage this, Gym Leaders now have level scaling, giving more consistent challenge across the game. 
- Rock Tunnel has a more workable map, now being easier to go through and having new areas to explore. Includes a way to get renewable fossils, items, and other interesting bits and pieces. Overall, it makes Flash much more rewarding to bring, showing you where the items and content are instead of being an inconvenience. 
- Diglett's Cave has a more detailed map with Onix, Wiglett, and Wugtrio also appearing!
- Route 25 has been given a facelift, adding Bill's Lighthouse!
- The Route 5-6 underground path contains a shortcut to Celadon City. 
	- This allows you to skip Route 9 and Rock Tunnel, making them optional areas and opening up central Kanto.
- Cinnabar Island is a lot bigger, and has a new location added to it. The mansion seems different too...
- Cinnabar Lab's trade room features an NPC who'll trade you back your Pokemon for trade evolutions!
- Pokemon Tower was shortened, being less intensive and adding room for more maps.
- Silph Co's pathing was completely overhauled to make navigating it less tedious.
- Viridian Gym now has a new area once you make Giovanni leave.
- The S.S. Anne now returns after getting your fourth badge!
- After entering the Hall of Fame, try visiting Route 1!

QoL Enhancements
====
- All 217 (current) Pokemon can be obtained without the use of trading or glitches, including Mew!
- New Pokedex entries for most Pokemon are available, sourced from the original 1996 Pokedex book by Creatures Inc., restoring a ton of old Kanto lore. Thanks to [Dr. Lava and Nob Ogasawara](http://lavacutcontent.com/1996-creatures-pokedex-translation-1/) for their incredible work translating and writing about it!
- Pikachu and Eevee are now starters, featuring fully functional Rival lineups. If you pick Pikachu, he picks Eevee, and if you pick Eevee, he picks Pikachu!
- Item Descriptions are available!
- Press A beside surfable water, strength boulders or cut trees to use the HMs without needing to go into the Party menu.
- PP symbol is displayed in the battle menu. PP displayed before, it just looks nicer now. Done by changing a straggler Japanese character.
- Running Shoes by holding B. Also works with the bike! Surf speed is also doubled.
- Fast text has no frame delay between text scrolling, doubling the scroll speed. It's also been made the default option, so you don't need to go into the Options menu for it.
- Lorelei, Bruno, and Agatha now play the Gym Leader Battle theme.
- HP bar has been doubled in speed, having a 1 frame delay per pixel rather than 2.
- Trainer DVs are perfect-15s.
- The protagonist is referred to in a gender neutral manner.
- PC added to Celadon Hotel where the invisible event usually is. Why not?
- Artificial Save Delay has been removed.
- Ultra Balls now have a Ball Modifier of 4, instead of 8. This makes them better for general-purpose than Great Balls. Safari Balls have the same effect applied. 
- Event moves can now be taught via TM/HM;
	- TM16 (Pay Day) can be taught to Fearow and Rapidash ('98 Shogakukan)
	- TM23 (Dragon Rage) can be taught to Magikarp (July '98 Shogakukan)
	- HM02 (Fly) can be taught to the Pikachu line (Corocoro)
	- HM03 (Surf) can be taught to the Pikachu line (Stadium / Corocoro)
	- Psyduck learns Amnesia at Lv15 (Stadium)
- Yellow learnset changes are imported; eg. Flash Venonat
- The Game Corner in general is massively buffed, making everything far more worth going for;
	- 3x Cherry now gives 100 coins (used to be 8)
	- 3x Magikarp/Poliwag/Bird/Diglett/Rattata/Jigglypuff now gives 200 coins (used to be 15)
	- 3x BAR now gives 500 coins (used to be 100)
	- 3x 7s now gives 999 coins (used to be 300)
- Game Corner prizes have been altered;
	- Version parity is done across prizes, using Blue's superior prices.
	- New prizes across both versions include: Cubone, Blastyke, and Cactus.
	- The Moon Stone is available over TM23 (Dragon Rage). Dragon Rage is accessible in Celadon University!
- Bag capacity increased from 20 to 30 items.
- Spinner tiles move faster.
- If a move is disabled, it now has an upper-case D instead of a lower-case one.

Bug Fixes
====
Many non-multiplayer, non-battle related bugs have been fixed. The aforementioned have been preserved for the RBY battle experience. Bugs that are fixed are ones that objectively hurt the gameplay experience. Much of this can be attributed to [the tutorials](https://github.com/pret/pokered/wiki/Bugs-and-Glitches) made by the good people at pret.
- Fixed various translation errors (eg. Route 14 Birdkeeper's "birds of prey" line, Koji and Atsuko in Fuschia.)
- Blaine is no longer addicted to Super Potions.
- CoolTrainerF no longer switches a lot.
- Transformed Pokemon aren't presumed to be Dittos! Mew and Animon function correctly with this at play.
- Status curing items don't remove modifiers anymore.
- Learning new moves plays the sound in the correct bank.
- Falling through a hole on a bike now properly resets the music, as you fall off a bike when going down.
- Using an Escape Rope no longer shows weird characters on DMG and spins correctly on DMG.
- The Item Finder will correctly find items at X/Y 0.0
- Glitch Pokémon will no longer corrupt the Hall of Fame.
- Strength smoke puffs now show properly.
- Game Corner has a ton of fixes;
	- The slots no longer load too many tiles
	- The lucky machine stops when it should if there's a 7
	- The 40-coin hidden item is fixed, and there can always be a lucky machine.
	- and a few other objective fixes.
- 2 invisible stars that show on the title screen are cut off; also, the "presents" logo from RG is re-used!
- The healing machine animates correctly! 
- Using Minimize or Substitute, looking at the Pokedex, and then battling won't cause sprite corruption.
- OAM Updates can no longer be interrupted by V-Blank, avoiding some sprite corruption.
- Trainer Card transition no longer shows weird garbage on DMGs; this was due to not having enough time to load properly.
- Battle victory music plays at the right time; there were some situations where it would happen when you lost.
- Music in Oak's Lab is delayed a frame so it always plays with the correct channels; V-Blank could otherwise interrupt it.
- The hidden item sfx no longer gets cut off sometimes
- The audio engine no longer borrows from the high bytes of the wrong frequency.
- Oak no longer has his line overwrite itself when giving Poke Balls.
- Player correctly faces the Route 8 guard when stopped.
- Weird behaviour when going to 11F in Silph Co. and forcing a player to leave despite not moving is fixed.
- Fixed weirdness in Pokemon Tower where saving Mr. Fuji won't immediately let you leave. Also fixed coord termination on 2F which could cause some terribleness.
and more!
- Trainer Name Pointers are removed, as the localised games don't need to use the file at all.
- Dakutens are removed, as the Japanese accents aren't used in English releases.
- Blank Leader Name code is removed; before, this would only be for the PNGs.

Known Bugs
====
- Only portions of spinner tiles animate.
- Occasionally, menu text sets itself to scroll.
- The lone Rocket in Viridian Gym's basement needs to be directly spoken to to be battled
- Yujirou isn't properly re-fightable
- Fix warps from Viridian Pre-Gym, currently goes to Fuschia which is hilarious. 
- Mew needs to disappear after being captured etc (only seems to happen sometimes?)
- Should be able to fly from Faraway (reposition in map listing)
- Item descriptions are offset
- Strength boulders don't fall down holes
- Pokedex is very laggy

Evolution Methods for new Pokemon
====
Due to the odd way some new Pokemon evolve, methods are listed here. Beta Pokemon are included with their original methods, given their obscurity. Some Pokemon will have methods from the Spaceworld '97 demo to be closer to (or functional in the context of) RBY.

New Pokemon:
- Rhydon -> Rhyperior | Use Protector 
- Lickitung -> Lickilicky | L32
- Scyther -> Scizor | L41
- Scyther -> Kleavor | Use Black Augurite
- Pinsir -> Purakkusu | L42
- Tangela -> Tangrowth | L44
- Onix -> Steelix | L38
- Slowpoke -> Slowking | Use Heart Stone 
- Chansey -> Blissey | L45
- Psyduck -> Weirduck | L22, Golduck level remains the same for Weirduck.
- Magmar -> Magmortar | Use Fire Stone
- Electabuzz -> Electivire | Use Thunder Stone
- Magneton -> Magnezone | Use Thunder Stone
- Farfetch'd -> Sirfetch'd | Use Heart Stone
- Poliwhirl -> Politoed | Use Heart Stone
- Ditto -> Animon | Trade
- Seadra -> Kingdra | Trade
- Primeape -> Annihilape | Trade
- Golbat -> Crobat | L44
- Marowak -> Guardia | Use Heart Stone
- Porygon -> Porygon2 | Trade
- Porygon2 -> Porygon-Z | Use Dubious Disc
- Gloom -> Bellossom | Use Poison Stone
- Weepinbell -> Tsubomitto | Use Poison Stone

Kanto Beta Pokemon:
- Blottle -> Pendraken | L30
- Bittybat -> Zubat | L15
- Cheep -> Jabetta | L30
- Mikon -> Vulpix | L15
- Raichu -> Gorochu | Trade
- Ribbito -> Croakozuna | L30
- Skimper -> Bawligua | L30
- Bawligua -> Cryithan | L50
- Konya -> Meowth | L14
- Decilla -> Gyaoon | L40
- Magnemite -> Magnetite | L20
- Magnetite -> Magneton | L30
- Gyopin -> Goldeen | L16
- Kotora -> Gaotora | L16
- Gaotora -> Gorotora | L36
- Puchikorn -> Ponyta | L20
- Blastyke -> Blastoise | L36
- Wartortle -> Totartle | L36, replaces Blastoise
- Pudi -> Growlithe | L16
- Para -> Paras | L12
- Hinaazu -> Doduo | L18
- Betobebii -> Grimer | L20

Eeveelutions:
- Espeon | Heart Stone 
- Umbreon | Poison Stone
- Leafeon | Leaf Stone
- Glaceon | Ice Stone
- Sylveon | Moon Stone

Nidos can evolve into Nidoreign with a Moon Stone, or their original counterparts with a Poison Stone. 

Accessing Regional variants
====
Adding regional variants was difficult; we hit the exact cap by cutting their pre-evolutions. However, we managed to implement them quite nicely! Given many of these evolve via stones, we've given them their pre-evolution's learnsets to ensure they remain functional.

Much like in Let's Go Pikachu and Let's Go Eevee, traders are available who will trade you a regional variant in exchange for a Kantonian one. This goes as follows:
- Viridian City: Raticate
- Pewter City: Golem
- Cerulean City: Ninetales
- Vermillion City: Persian
- Lavender Town: Dugtrio
- Celadon City: Sandslash
- Saffron City: Raichu
- Fuchsia City: Marowak
- Cinnabar Island: Muk
- Indigo Plateau: Exeggutor
Version exclusivity was factored in, instead moving Raticate and Golem to the cities without a trader.

Galarian and Paldean formes are accessed on the S.S. Anne, which now returns after four badges. Hisuian formes are found in the wild in Bill's Garden, which is accessible in the post-game.

Credits
====
* Plague von Karma - Creator of the Showdown Mod, Developer
* Martha's Against Humanity - Developer, tweaks of Albatross's sprites.
* Ema Skye - Developer 
* pret et al - Pokémon Red and Blue Disassembly Project, many tutorials helped us!
* ausma - Showdown Mod assistance
* Paulluxx - Showdown Mod assistance
* DuoM2 - Showdown Mod assistance 
* Albatross - Much of the new sprites used in the hack (Electivire, Magmortar, Rhyperior, Tangrowth, Glaceon, Sylveon...)
* Frrf - Assisting with the development of the Pikachu / Eevee Mode
* erosunica - Assistance with developing Celadon University & Citrine City, plus sources for various subjects.
* Chatot4444 - Assisting with gym scaling code
* ZumiIsawhat? - Restorations of beta OST
* Helix Chamber, RacieBeep, loumilouminosus, Orchid, GBCRetro, & catstorm26 - Prototype Pokémon sprites
* Vortyne - Reused a bit of code from their pureRGB hack, which was used to assist with making MissingNo. stable. Assisted in bug fixes.
* jojobear13 & Mateo - Move deleter & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of.
* Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld!
* 大吟醸 (Daiginjo) - Assistance in translating the Tamamushi University Student Book, allowing for an accurate adaptation of the location.

Original README.md proceeding;
# Pokémon Red and Blue [![Build Status][ci-badge]][ci]

This is a disassembly of Pokémon Red and Blue.

It builds the following ROMs:

- Pokemon Red (UE) [S][!].gb `sha1: ea9bcae617fdf159b045185467ae58b2e4a48b9a`
- Pokemon Blue (UE) [S][!].gb `sha1: d7037c83e1ae5b39bde3c30787637ba1d4c48ce2`
- BLUEMONS.GB (debug build) `sha1: 5b1456177671b79b263c614ea0e7cc9ac542e9c4`
- dmgapae0.e69.patch `sha1: 0fb5f743696adfe1dbb2e062111f08f9bc5a293a`
- dmgapee0.e68.patch `sha1: ed4be94dc29c64271942c87f2157bca9ca1019c7`

To set up the repository, see [**INSTALL.md**](INSTALL.md).


## See also

- **Discord:** [pret][discord]
- **IRC:** [libera#pret][irc]

Other disassembly projects:

- [**Pokémon Yellow**][pokeyellow]
- [**Pokémon Gold/Silver**][pokegold]
- [**Pokémon Crystal**][pokecrystal]
- [**Pokémon Pinball**][pokepinball]
- [**Pokémon TCG**][poketcg]
- [**Pokémon Ruby**][pokeruby]
- [**Pokémon FireRed**][pokefirered]
- [**Pokémon Emerald**][pokeemerald]

[pokeyellow]: https://github.com/pret/pokeyellow
[pokegold]: https://github.com/pret/pokegold
[pokecrystal]: https://github.com/pret/pokecrystal
[pokepinball]: https://github.com/pret/pokepinball
[poketcg]: https://github.com/pret/poketcg
[pokeruby]: https://github.com/pret/pokeruby
[pokefirered]: https://github.com/pret/pokefirered
[pokeemerald]: https://github.com/pret/pokeemerald
[discord]: https://discord.gg/d5dubZ3
[irc]: https://web.libera.chat/?#pret
[ci]: https://github.com/pret/pokered/actions
[ci-badge]: https://github.com/pret/pokered/actions/workflows/main.yml/badge.svg
