jojobear13 / shinpokered

Mostly-vanilla hack of Pokémon Red/Blue focused on bugfixes and trainer ai
205 stars 40 forks source link

Shin Pokémon Red, Blue, Green, Red-JP, & Blue-JP

Version 1.24.5

Shin (真) - The kanji for "true".
Used in Japanese media to denote a remastering, updated retelling , or a "true form" of something.

     This is an enhancement ROM hack of Pokemon Red & Blue based on the Pret team's pokered disassembly project. It is a mostly-vanilla hack that focuses on fixing game engine bugs and oversights from the original game. Additionally, trainer AI routines are improved and multiple quality-of-life enhancements have been added. It also acts as a kind of research-informed speculative work that presents an alternate interpretation of the games. Specifically, that being what the 2016 Nintendo Virtual Console re-release of Gen-1 Pokemon could have been.      It is the image of a glitch-free experience with player-friendly goodies and enhancements common to other modern remasterings.
The main purpose of the accompanying source code repository is to study, comment upon, and repair functional errors. It is important to record, for posterity's sake, the methods used for restoring the game to an error-free state. Finally, the source code documents many differences and changes between the various Japanese and English releases.

Box Art


Read the "Guide to New Player Functions" for instructions on all the new stuff the player can do. No, really, there's a TON of new options and features. You are bound to miss many of them if you do not read this guide.


Don't like the non-vanilla changes? Prefer only the bugfixes and AI improvements? Want a codebase from which to launch your own rom hack? Then the Lite branch is what you want. Head on over and start compiling.

Discuss Shin Pokemon in its dedicated PokéCommunity Showcase.

Follow media related to Shin Pokemon on YouTube.

Patch Info


BPS patches are provided for entry into your preferred emulator, patching tool, or other accessory that supports the BPS format.
Download and enter a patch which corresponds to the ROM of which you own a lawful copy.

Includes Pokemon Green and Japanese Red!

Includes Japanese Blue!

Updating Your Save File Deactivate all special options and NPC toggles in the old save if it's from an earlier patch.
When loading an old save file with the latest patch, the player is automatically warped to Pallet Town.
Normally this will be enough to update the save file without doing anything else.
It's possible you may still have issues upon loading a save from a previous patch or an unpatched game.
To prevent this from happening, save in the outdoor Pallet Town map on the old save.
You might be blocked by invisible walls upon loading the game.
To fix this, you must use the Softlock Warp detailed below to teleport back to Pallet Town.

Media


Shin Pokemon Trailer

Click to Show/Hide Images Title Screens (GBC Palettes) ![Title Screen 1](/screenshots/bgb00028.bmp?raw=true) ![Title Screen 2](/screenshots/bgb00029.bmp?raw=true) ![Title Screen 3](/screenshots/bgb00030.bmp?raw=true) ![Title Screen 4](/screenshots/bgb00031.bmp?raw=true) ![Title Screen 5](/screenshots/bgb00032.bmp?raw=true) Pokemon Yellow Backported Palettes and Gym Leader Names Restored ![Backported Palettes](/screenshots/bgb00022.bmp?raw=true) ![Gym Leader Names](/screenshots/bgb00037.bmp?raw=true) Rematches ![Rematches](/screenshots/bgb00003.bmp?raw=true) Trainer AI, Shiny Palette & Symbol, Exp Bar, Spaceworld Back Sprites Gender & Caught symbols in Wild Battles, Colored Attacks in GBC-mode Colored tossing animations in GBC-mode ![Battle Screen Upgrades 1](/screenshots/bgb00020.bmp?raw=true) ![Battle Screen Upgrades 2](/screenshots/bgb00021.bmp?raw=true) ![Battle Screen Upgrades 3](/screenshots/shinpokered_colored_tossing.gif?raw=true) TMs in Marts with Abbreviated Names ![Marts](/screenshots/bgb00016.bmp?raw=true) Shiny Animation ![Shiny Animation](/screenshots/bgb00019.gif?raw=true) Girl Trainer ![Girl Trainer 1](/screenshots/bgb00026.bmp?raw=true) ![Girl Trainer 2](/screenshots/bgb00025.bmp?raw=true) Temporary Field Move Slot ![Field SLot 1](/screenshots/bgb00004.bmp?raw=true) ![Field SLot 2](/screenshots/bgb00005.bmp?raw=true) Many new NPCs to toggle features ![NPC 1](/screenshots/bgb00007.bmp?raw=true) ![NPC 2](/screenshots/bgb00008.bmp?raw=true) ![NPC 3](/screenshots/bgb00009.bmp?raw=true) ![NPC 4](/screenshots/bgb00010.bmp?raw=true) ![NPC 5](/screenshots/bgb00011.bmp?raw=true) ![NPC 6](/screenshots/bgb00012.bmp?raw=true) Gamma Shader for LCD Screens (Left image is Off / Right image is On) ![Shader Off](/screenshots/bgb00035.bmp?raw=true) ![Shader On](/screenshots/bgb00036.bmp?raw=true) **Stats for Nerds**
Click to Show/Hide DV Stats Consecutive calls to the RNG function were performed in order to fill the memory with 8192 bytes of RNG data. These bytes were dumped and then then parsed into nybbles in order to simulate random DV values for pokemon. The following are histograms and statistical information on the various ways this project generates DVs. All data was generated using xor-shift methodology, not the vanilla DIV-register method. Standard wild pokemon DVs ![Standard](/screenshots/standard_wild_DVs.PNG?raw=true) Hard mode wild pokemon DVs ![Hard Wild](/screenshots/hard_mode_wild_DVs.PNG?raw=true) Hard mode trainer DVs ![Hard Trainer](/screenshots/hard_mode_trainer_DVs.PNG?raw=true)

Summary


Lite features for a cleaned-up purist experience

Over 200 bugs, glitches, oversights, and text errors of all sorts have been fixed! There are too many to enumerate in a simple summary, and some of them are very obscure or previously undiscovered.

Includes english builds of Green and Red-JP versions. It swaps the graphics, Cerulean Cave layout, and a few lines of text to replicate the original japanese releases. The original release pokedex entries have been adapted from the Fire Red translations. It also has all the pokedex data in metric.

Includes an english build of Blue-JP version. It swaps prizes, trades, wild encounter data, and some text to replicate the original japanese release. It also has all the pokedex data in metric.

Engine features from USA Yellow version have been backported. No more duochrome! Yellow's color scheme gets converted to display on the Gameboy Color. Attack animations are colored according to type during Gameboy Color play. Yellow's audio engine is backported for stereo sound support.

New options that can be toggled! Hit SELECT on the options screen to see an extra options menu.

The hard mode option increases difficulty by making the stats of trainer pokemon more on your level. It also doubles the effect of the X-stat items that AI trainers are fond of. And it disallows the use of Revive items in battle. Non-link battles will use the Stadium 1 critical hit chance formulas. Finally, it makes catching a wild Mewtwo more challenging.

Trainer AI has been improved and greatly expanded. Some trainers will even try to switch pokemon intelligently if you haven't disabled it in the extra options menu.

You get notified when a box is filled (either via catching or depositing a pokemon).

Switching out of a trapping move wastes the trapper's turn as per Pokemon Stadium. This prevents unbeatable AI scenarios as well as a PP underflow glitch.

Rage is limited to 2-3 turns but attack boosts are kept. This is primarily to prevent infinite battle loops.

Sleep does not prevent choosing a move, and the move is used upon waking up. To maintain sleep move accuracy, sleep starts with a counter of at least 2. And Rest now sets the sleep counter to 3.


Additional Master features that go beyond engine modifications and fixes

All 151 pkmn are available in one version including trade evolutions (rarities may vary per version).

You can play as a boy or a girl.

There's an EXP bar in battle.

You can hunt for shiny pokemon, and they are valid with Gen 2 games.

No more grinding wild pokemon. Nearly all trainers can be rematched just by talking to them once or twice.

You can choose RUN while holding SELECT in trainer battles to forfeit the match and black yourself out.

There is a built-in nuzlocke mode that can be toggled from the extra options menu.

The girl in Oak's lab toggles wild pokemon randomization. If activated early enough in the game, your starter pokemon choices are randomized as well.

One of the aides in Oak's lab toggles scaling of trainer rosters to your level (evolving them if applicable).

As an alternative to trainer scaling, there is now an obedience level-cap that can be toggled in the extra options menu. While active, the current maximum obedience level will display in the extra options menu. All pokemon, not just trades, will start to disobey if over the displayed level cap.

The other aide in Oak's lab toggles a pokeball-caught symbol in battle after obtaining the pokedex. To help with Gen 2 interaction, this also applies a gender symbol to species that can be male or female.

Another aide npc is in the Viridian pokemon center. He will toggle on/off randomization of non-special trainers.

An aide is in the Celadon Diner. He will toggle on/off a catch-up EXP boost function for under-leveled pokemon.

Item, Sleep, Freeze, Trapping, and Hyper Beam clauses can each be toggled by the Clause Brothers in Viridian City.

The bag now supports an additional item list for an extra 20 slots of space! Press START on the bag menu to hot-swap the item list that populates the active bag. The game's systems will generally detect items in the non-active bag space. Unique systems, such as Pokemon Stadium, will only recognize the active bag's item list.

Hold SELECT and press START while on the bag menu or PC item box menu to auto-sort your items.

The itemfinder now points you in the right direction. You can always hold SELECT while choosing to USE it to get its original function back.

Each pokemon on your team has a field move slot. These slots can temporarily hold a HM move for overworld-use only. No longer do you have to sacrifice one of your four moves for a HM move.

An experimental New Game+ has been added. It can be enabled if you have an uncorrupt save file wherein the Elite 4 have been beaten. Press and hold SELECT while choosing New Game; a jingle confirms activation.

The Cinnabar Lab allows for cloning and genetic modification of pokemon. It does this by mixing their DVs as of they were akin to genes and alleles. This replicates the ability to do selective breeding for DVs in a way that's more realistic.

Lots of quick-key features.

New NPCs!

Changes to fishing!

Other minor changes to lessen annoyance.

Cheats and Secrets!

Compatibility Notes


Changelog From the Last Full Release


Note: Changelogs may contain spoilers
View the Consolidated Changelog Document from 1.23 to 1.24.0

v1.24.5

v1.24.4

v1.24.3

v1.24.2

v1.24.1

Bugfixes


Tweaks


Additions


Difficulty and scalable trainers

Quick Keys / Options / Menu-Related

Graphics

Pre-E4 NPCs

Post-Game Content

Cheats and Secrets

Click to Reveal Spoilers! - The surfboard, a nugget, and TM 15 are hidden items added to the vermilion dock - Mew is on the basement level of the unknown dungeon - it is the rarest encounter in the game - only shows up after getting the pokedex diploma - can only be encountered once like static legendaries - Using the super rod in the unknown dungeon basement will yield glitch-level experiment dittos (a trap encounter) - Pay Day shenanigans - A pkmn with Pay Day in the 1st party slot will play its cry when interacting with a lucky slot machine - A pkmn with Pay Day in the 1st party slot will play its cry when a slot machine enters payout modes - 1 cry for a normal payout on the next pull - 2 cries to signal the possibility of all 7s/bars on the next pull - 3 cries to signal that super payout mode had been entered - Secret EXP boosting - Pkmn with levels > level cap give 255 stat exp for each stat - Pkmn with levels > level cap have 255 base exp yield - If a chansey >= level 100 is first in your roster: - Shiny wild random encounters and fishing rod encounters are much more common (1 in 256) - Repel effects will not block shiny encounters - Shiny Mercy - When a player encounters an AI trainer shiny pokemon, the next wild encounter will be shiny - AI trainers can only have shinies in hard mode, so it affords more chances to find wild shinies - Also, shiny mercy extends to tower ghosts, ghost marowak, and the old man catching tutorial - Winning the SS Anne tournament with a pikachu in the party will set its catch rate to 168 - In this rom hack, a pikachu with this catch rate can be taught Surf via HM - This catch rate makes it hold a gorgeous box if transferred to Gen 2 - In case of multiple pikachus, only the first in the roster will be affected - Likewise, a pikachu holding a gorgeous box can learn surf if transferred into this rom hack - Defeat Lance with a Dragonite in your top spot and it will be given a catch rate of 168 - Dragonite's cry will play to confirm that this has happened - In this rom hack, a dragonite with this catch rate can be taught Fly via HM - This catch rate makes it hold a gorgeous box if transferred to Gen 2 - Likewise, a dragonite holding a gorgeous box can learn fly if transferred into this rom hack - Added Bill's secret garden behind his house - Put Mew in your top spot and show Bill to gain access - You will encounter the starter pokemon plus some other rarer pokemon - Shiny rates are 1-in-128 in this area - Show Mewtwo to Mr. Fuji after beating the Elite 4 to get a M.GENE - Obtaining the MIST STONE: - There is a secret cave on Route 13, and the book within tells you to go to Bill's secret garden - Return to this book afterwards in order to find a mist stone - The mist stone will max-out all the stat exp of the lvl > 30 pokemon on which it is used - The five new trainer battles are as follows - Talking to prof oak after beating the elite 4 and answering "No" let's you challenge him to a battle - Can battle Mr. Fuji after beating the elite 4 - Can battle the Silph Chief after beating the elite 4 - Trainer Green (named Seiga) can be battled next to the ss anne dock truck after beating the elite 4 - Mind battle with future Trainer RED after beating the elite 4 via the new girl outside Bill's villa - Must have beaten Oak, Fuji, Silph Chief, and Green (the order doesn't matter) - After winning, must re-defeat the four extra trainers before you can challenge again - A win will respawn Mewtwo, the legendary birds, and allow Mew to be found again, and reset the mist stone events - You can now battle missingno on the infamous cinnabar shoreline - You must have gotten the pokedex diploma first - Activated the traditional way via the "old man in viridian" method - The battle will trigger randomly while surfing on the shore even if you are not moving - If defeated, it will set a non-key item in the sixth bag slot to a quantity of 99 - Win or lose, you must do the "Old Man" process again to reactivate the encounter - For an even harder battle, try using the eastern shore of the seafoam islands - Again, victory will set the quanitity of your sixth bag item to 99 - Beating the seafoam missingo battle adds an achievement to your diploma - Implemented the old Down+B urban legend for pokeballs as a cheat code - The timing is different. You have to hold Down+B before the "[PLAYER] used [ITEM]" text finishes printing. - If successful, the ball tossed will be twice as effective as normal - Added "The Shimmer", a cheat feature for those who want viability when using certain low-regarded pokemon. - Toggled ON/OFF via the glass pokeball decoration in the rival's house. - Pokemon Eligible: EKANS, CATERPIE, METAPOD, WEEDLE, KAKUNA, ZUBAT, PSYDUCK, PARAS, PONYTA, RATTATA, SANDSHREW, HORSEA, GOLDEEN, VENONAT, JIGGLYPUFF, ARBOK, BEEDRILL, BUTTERFREE, DITTO, FARFETCHD, GOLBAT, GOLDUCK, HITMONCHAN, LICKITUNG, ONIX, PARASECT, PINSIR, PORYGON, RAPIDASH, RATICATE, SANDSLASH, SEADRA, SEAKING, VENOMOTH, WIGGLYTUFF - The shimmer factor appears randomly and secretly, being more likely to occur by training and sending out eligible 'mons. - The shimmer only manifests in 'mons that are fully evolved, even if their pre-evos gained the secret shimmer factor. - When the shimmer manifests as a 'mon gets sent out, that 'mon gets a large boost to some stats that are low-to-poor. - Technical details of the shimmer - A 'mon eligible for shimmer that is sent out, either by player or enemy trainer, can get the shimmer factor. - The chance of getting the shimmer factor is 1-in-256 per send-out, rewarding a player that uses the 'mon frequently. - The odds increase by +(1-in-256) per 2048 HP-StatExp that the sent-out pokemon has, encouraging player investment. - The shimmer factor is defined via the pokemon's catch rate byte and is a value of $6D (held Miracle Berry in Gen-2). - The manifestation of the shimmer boosts one-to-four of a 'mons unmodified stats. - If 3/8ths of an unmodified stat is less than the mon's level, then the level value is added to that stat. - Stats that can be boosted are: attack, defense, speed, or special. - There is the same chance of shimmer manifesting on applicable enemy trainer pokemon. - Given their rosters, the shimmer will always manifest on the applicable pokemon of Bruno, Agatha, and the Karate Master.

Availability Changes


Click to Reveal Spoilers! #Added Encounter Locations for the following pokemon (rare if not normally in the chosen version): - charmander on route 25 (4.3%) - squirtle on route 6 (4.3%) - bulbasaur on route 4 (4.3%) - sandshrew (5.1%) and ekans (5.1%) on route 3 - vulpix (4.3%: red, blue-jp) or growlithe (4.3%: blue, green) on route 8 - bellsprout (4.3%: red, blue-jp) or oddish (4.3%: blue, green) on route 24 - meowth (9.8%: red) or mankey (9.8%: blue, green, blue-jp) on route 5 - farfetchd on route 12 (6.3%) and route 13 (4.3%) - cubone added to rock tunnel (5.1% floor 1 and 6.3% floor 2) - dodrio on route 17 (5.1%) - porygon in the power plant in red version (1.2%) - electabuzz in power plant in all versions (9.4% red and 5.1% all others) - magmar in pokemon mansion basement in all versions (4.3%) - snorlax in digletts cave (5.1%) - eevee on route 21 grass (4.3%) - hitmonchan (5.1%) & hitmonlee (5.1%) in victory road 3f - version-swapped pinser/scyther in safari zone central-area - lickitung (5.1% red, blue, green) in safari zone 1 - kangaskhan (5.1% blue-jp) in safari zone 1 - tauros (5.1% blue-jp) in safari zone 2 - jynx (5.1% red, blue, green) in safari zone 2 - mr mime in safari zone 3 (5.1%) - lapras replaces krabby when using super rod in safari zone - magnemite on route 10 (5.1%) - ponyta on route 7 (9.8%) - tentacruel on water routes 19, 20, and 21 (6.3%) - seaking on water routes 19, 20, and 21 (4.3%) - route 22 super rod data has changed to give psyduck & poliwag - version-swapped sandslash/arbok in unknown dungeon 1f - unknown dungeon changes - encounter rates between pokemon slightly re-balanced - chansey is rarer - dittos are rare #Trade evolutions now alternately evolve with a stone at a certain level with some new hinting NPC text - Kadabra: Use a moon stone at >= level 35 - Haunter: Use a thunder stone at >= level 35 - Graveler: Use a fire stone at >= level 35 - Machoke: Use a leaf stone at >= level 35 #Changes to pokemart inventories: - TMs of all kinds at all stores. All TMs are now re-purchaseable at various stages of the game. - Pewter city has ethers - Lavender town has max ethers - Saffron city has elixers - Cinnabar island has max elixers - Cerulean mart sells escape rope per Yellow version - Fuschia mart sells hyper potions per Yellow version #Added hidden items: - Added a hidden max revive in celadon city - Added a hidden super potion in celadon city - Added a hidden moon stone in diglett's cave - Added a hidden nugget in diglett's cave - Added hidden potion on route 22 - Additional hidden potion in viridian city - Added two hidden repels to pewter city - Added a hidden great ball and pokedoll on route 6 - Added hidden max revive on route 11 - Added hidden ultra ball on route 8

Built-In Nuzlocke Mode


About Gameshark Codes


Will they work? Largely, yes...with some rules.
Shin Pokemon does not reassign any wram or hram addresses, so cheat codes that modify values within these address ranges will still work.
The GB/C's wram is in addresses C000-DFFF, and hram is in FF80-FFFE.

Gameshark codes for the GB/C have an 8-digit hexadecimal format in the form of LMNOYZWX. The meaning of the separate digits is:

So say you want a cheat code that gives you 99 of the first item in the bag.
The quantity of the first item in the bag is at address D31F in wram, and 99-decimal equals 63-hex.
This gives a gameshark code of 01631FD3.

Any codes that follow these conventions and only modify the wram or hram should work like they do in the vanilla games.

Will Not Implement / Out of Scope


These are things that are commonly requested but fall outside the scope of the project. There are no plans to implement these:

Frequently Asked Questions


Will you do a special request just for me or make some specific patches or a ROM file for me?

No. Such requests will be politely declined. If you think you have a good recommendation, please fill out a suggestion ticket in the Issues tab of this project's github repository.

I love your work! How can I donate to you?

The gesture is appreciated and highly flattering, but donations of any sort are politely declined.

What are the best ways to support Shin Pokemon?

There are several ways you can support the project:

How do you come up with with new features and their implementations?

It's primarily based on nostalgic schoolyard rumors, interesting "what if" ideas, and love for secrets and easter eggs from the 1990s gaming era.

A separate project used code from Shin Pokemon to do such-and-such feature. Will you backport it into Shin Pokemon?

Let such projects have their own identity. Other creators need to be able to show off and be proud of what they made.

Why did you not use the artwork of Trainer Green from the Adventures comic or the Let's Go games for the female trainer option?

Internal debate was heated on how to proceed for a female player option, but here's the reasoning that won out:

So it was decided to whip-up something simple and original that depicted a female version of Trainer Red. She also acts as a (private) dev shoutout.

Why can Bide still hit opponents in the Fly/Dig state when Pokemon Stadium fixes this?

Bide is a crummy move, but it gains a little more strategy in Shin Pokemon. This oversight was purposefully retained as a "feature" to help it out some more.

Why does Hyper Beam recharge work like it does in gen-2 instead of always needing to recharge like in Stadium?

Shin Pokemon did do always-recharge at one point, but it was hated by literally every player. Removing recharge on a miss was done as a compromise.

Why is there a brief white frame flash when the screen transitions on Gameboy or Gameboy Color?

It's a hardware quirk. There is a brief moment where the LCD is disabled. When it is re-enabled, the screen displays blank white for 1 frame. The LCD gets disabled because it allows writing to VRAM at any time.
EDIT: I believe I've found a workaround by writing to VRAM during the HBLANK and VBLANK periods. The timing is a little tricky.

Credits / Special Thanks


The following folks for their great tutorials, glitch videos, and explanations across the internet

The following folks for bugfix collaberation

The shinpokered repository was branched from pret/pokered at merge pull request #185 committed on Jul 2, 2018