Red Shin Pokemon Red/Blue (Bugfix, AI, and QoL patch)

Started by jojobear13 November 30th, 2019 11:29 PM
  • 15414 views
  • 147 replies
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
# Shin Pokémon Red and Blue

Version 1.1x

This is a rom hack of pokemon red & blue based on the Pret team's disassembly.
It's 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 improvements have been added.
Think of it as what the Nintendo Virtual Console re-release of red & blue might have been (plus a few extra goodies).

For the latest build patches and detailed changelog, please visit the main github page at https://github.com/jojobear13/shinpokered. The patches for your choice of red or blue are kept in the ips_patches folder.

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.

#Summary

- Tons of bugs, glitches, and oversights fixed

- Trainers are made more difficult not by increasing their team levels, but by doing the following:
--- Vastly improving the default ai routines
--- Giving them access to stat experience (only in "Set" style)
--- Giving them above-average random DVs (only in "Set" style)
--- Trainers of a smart-enough trainer class will make use of basic pkmn switching
--- Badge boosts are not applied in trainer battles (only in "Set" style)

- One of OAK's aides will toggle on/off scaling of trainer rosters to your level (evolving them if applicable)
- One of OAK's aides toggles pokeball-caught & gender symbols after obtaining the pokedex

- All 151 pkmn are available in one version
--- Though difficult for a select few, each pkmn can be obtained multiple times
--- The uniqueness between red & blue is still preserved in encounter rarity

- You can play as a boy or a girl

- You can hunt for shiny pokemon
--- DVs are checked to see if a pokemon would be shiny in the gen 2 games
--- If a pokemon has shiny DVs, then it will play the Reflect animation when entering battle
--- If playing on a super gameboy, shiny pkmn will have a palette swap on the status screen and also change color in battle
--- If playing on super gameboy, hold select when loading a pokedex entry to see that pokemon's shiny palette

- Minor quality-of-life improvements during battle
--- When a when a box is filled (either via catching or depositing a pokemon), notification text is displayed
--- Exp bar in battle
--- A pkmn plays its cry to signal the last turn of using a trapping move like wrap/clamp/etc
--- The safari zone mechanics run off level instead of speed and safari balls have a boosted catch rate
--- Press Select to play a mon's cry if it's already listed as owned in the pokedex

- Minor quality-of-life improvements outside of battle
--- Softlock Warp: instantly teleport back to your mom's house if you get stuck (see instructions in detailed changes below)
--- Running Shoes: Hold B to double your speed when walking, surfing, and biking
--- Press SELECT to use HMs based on proper context (must have the right badge and the move on one of your pkmn)
--- Press Select while holding A to automatically get on/off your bike or use the best rod in your inventory
--- Move relearner and deleter
--- Nearly all trainers can be rematched just by talking to them a 2nd time after their most recent defeat
--- Due to on-demand rematches, you could do a pseudo-"new game+" by boxing your pkmn and rematching everyone in order
--- All TMs can be repurchased as they are strategically scattered across all the Kanto pokemarts
--- Hold select and enter the status screen to print a 'mons stat exp
--- Hold start and enter the status screen to print a 'mons DVs
--- Slot machine bugs and oversights fixed so now you can actually win big
--- A pokemon having Pay Day will tip you off to the lucky slot machine and when it's in a special payout mode
--- After the E4 is beaten, an NPC will pay COINS for showing him pokemon as an alternative to slots
--- After the elite-4, the game corner chief will offer to buy pokemon from you
--- After the elite-4, a new vendor opens up in celadon allowing the purchase of normally unique items
--- After the elite-4, there is an NPC that generates a trainer battle with a randomized 6-pkmn roster
--- There's a tournament being held in the SS Anne's kitchen after the elite 4 are beaten
--- CUT not needed to get to Lt. Surge and Erika (a blocking event replaces the Vermilion shrub)
--- Added some special trainer battles as fun little easter eggs

- Minor learnset changes that make things more convenient while still staying gen-1 legal
--- Stone evolutions regain some level-up moves
--- Yellow-version move lists have been integrated

- Minimal changes to battle mechanics necessitated by AI improvements
--- Trapping move mechanics nerfed to prevent PP underflow glitch as well as stopping merciless, unwinnable abuse by AI trainers
----- They now end, ending the turn with no further attack, if the target switches pkmn
----- Upon hitting, user's speed reduced 25% until recalculated through other mechanics
----- The user's Cry is played on the final turn of a trapping move to signal its end
--- Adjustment to the sleep condition
----- Sleep does not prevent choosing a move
----- Waking up from sleep does not waste the turn and the chosen move is used

- Hardware Compatibility
--- Compatible with original Gameboy hardware (DMG, Super, Pocket, Color, Advance, SP)
--- Potentially compatible with Pokemon Stadium 1 & 2
--- Might be possible to use a save from vanilla USA red/blue with this rom hack (save in RED's house before transferring over)


#CREDITS / SPECIAL THANKS:

- The Pret team for providing the base disassembly and all the code comments that came with it.
- Rangi for the tool Polished Map
- Exp bar coded by Danny-E 33
- Move deleter/relearner coded by TheFakeMateo for Pokemon Red++
- Space World sprites
---Originally from the pret team's space world gold disassembly
---Sprite png files were all properly renamed and sorted by Rangi for Pokémon Red★ and Blue★: Space World Edition

- The following folks for their great tutorials, glitch videos, and explanations across the internet:
--- TheFakeMateo
--- Crystal_
--- ChickasaurusGL
--- v0id19

- The following folks for their help in pointing out and diagnosing bugs
--- kadetPirx
--- JOBOalthor1992
--- krazsen
--- kmalove




Rematches


TrainerAI, Shiny SGB palette, & Exp Bar


TMs in Marts


Shiny Animation


Girl Trainer
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
maybe i just skipped few text, the lite version has 150 (all obtainable?)
Negative on that. People making their own hacks using the Lite branch as a base will want to decide for themselves how to do 151 'mon availability. The 'mon availability of the Lite branch is the same as retail red/blue so as to not create more work for them.

You can create your own preferred wildmon availability by editing the data/wildPokemon asm files. For trade evolutions, you can edit the data/evos_moves.asm file and give them an evolution via level.

Chronosplit

I play for keeps!

Male
Seen 2 Days Ago
Posted May 18th, 2020
477 posts
9.5 Years
Is there a means to change the front sprites and even the back sprites as well? I've been wanting to have a hack of Red/Blue that has a mix of Pokémon Green sprites (fronts) and some of the Pokémon Gold beta (fronts and all the back sprites).
In the disassembly of red it's all PNG files, so changing sprites is about as simple as taking PNG files of Yellow or Green sprites from pokered and replacing them. You should also be able to do that with graphics from pokegold or pokecrystal (and yes the beta) in PNG format as long as you do it right, since you don't need to care about palettes due to everything being monochrome.

Just compile after that, and you'll find out whether or not it's all done properly. This quality is pretty well all universal between pokered projects that aren't in color though.

EDIT: Or just read this: https://github.com/jojobear13/shinpokered/blob/master/how%20to%20change%20pkmn%20sprites/instructions.md
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
Both the master and lite branches have been updated. Version 1.09 has the following changes:

- Gamefreak's abandoned functions for halving and doubling stats have been modified and put back into use
- The 999 cap for reflect and light screen is now consolidated into a single function
- Rest now more efficient in undoing brn/par stat changes
- Catching a pokemon with brn/par no longer applies the stat penalties to its party data stats
- New custom function for undoing the stat changes of burn and paralysis
- undoing paralysis is accurate to within 0 to -3 points
- undoing burn is accurate to within 0 to -1 point
- AI using full heal now reverts brn/par stat changes
- Condition healing items (including using Full Restore at max hp) no longer reset all stats
- Burn heal undoes the attack stat changes
- Paralyze heal undoes the speed stat changes
- Full restore at max hp undoes the stat changes of brn/par
- Full Restore when used in battle to heal HP now undoes the stat changes of brn/par
- Haze and status-curing items now clear the toxic counter
- The function that applies badge stat-ups has been reworked
- now selectively boosts the correct stat when called during a stat-up/down effect
- as a result, badge boosts are no longer temporary

EDIT: I had a typo in my code. I re-uploaded new 1.09 patches to the original post and the github.
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
The master and lite branches have been updated to version 1.10. Changes are as follows:


- The ABCD teleport glitch has been fixed
- The lift key in the rocket hideout drops during the end of battle text like in Yellow-version
- A wild marowak is no longer assumed to be the ghost marowak
- Pokedoll is disallowed during ghost marowak battle

- Fixed some issues with text in celadon floor 3, outside bill's house, and in vermillion city
- Fixed some incorrect placements in the pkmn random table lists
- Consolidated custom funcions into individual files for easy sorting


Shin Pokemon Red/Blue is now considered complete. Further updates from here on out will be rare and focus on fixing any overlooked issues.
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
Having an issue: The rocket won't drop the lift key therefore I cannot continue
Caused by a small typo that was making the lift key event set but not checked.I fixed it and pushed the updated patches to github. Please download the patch again and re-apply it to a fresh unpatched rom.

jastolze007

Male
Seen 3 Hours Ago
Posted 1 Day Ago
225 posts
3.6 Years
Could you fix the Critical hit ignoring the positive offensive stats please? It's annoying to use 3 Amnesia's and then it hit critical to do less than what a normal hit would have done. Also, I feel like the crit hit is higher than vanilla red version. Every second move against me is a crit :/
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
Could you fix the Critical hit ignoring the positive offensive stats please? It's annoying to use 3 Amnesia's and then it hit critical to do less than what a normal hit would have done. Also, I feel like the crit hit is higher than vanilla red version. Every second move against me is a crit :/
Critical hit rate for enemies is slightly higher than vanilla because their speed stat is boosted by stat exp. The Gen 1 RNG is also not the best, and it seems to be seeded by the time between button inputs.

I’m hesitant on changing critical hit interactions with stat boosts. It was a deliberate design decision in vanilla rather than a bug or an oversight. Critical hits being tied to speed means that fast crit-seekers can easily sweep a whole team. There is no countermeasure to this unless you get lucky and can set up evasion spam.

My initial experiments with this was a ball of frustration where Hikers’ machops wipe early-game parties with karate chop. Trust me, you replace one annoyance with a bigger annoyance.

Obviously GF changed this in gen 2 to take stat changes into account, but they also decoupled critical hits from the speed stat.
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
Is it possible to make this compatible with Danny-E full color patch?

I tried but got black screen
TLDR: Yes, but I'm not taking on that project.

IPS patches rarely work like what you are trying to do. Patching rom files is not like applying mods to a PC game with a modular file structure. Each patch assumes that the base rom file has certain values at certain locations within the rom file (your command values, address locations, etc) and then changes them accordingly. The default assumption for most hacks is that it patches the unmodified vanilla rom file. When you apply a patch you have now changed the rom. The default assumptions on where and what everything is in the rom file is not necessarily true anymore for applying another patch on top of that. You can get away with multi-patching for very small changes where the areas they overwrite do not overlap and everything pretty much stays in the same place.

Both Shin Pokemon and Danny's Full Color patch are not small changes. Data is shifted around from their default memory banks to make room for stuff. Whole core functions are added or re-written. To make Shin Pokemon compatible, I would have to start from square one and gradually integrate Danny's patch into Shin's code in such a way as to make them not interfere with each other. It would probably take me another year to do that and bugfix everything, so I'll leave that to someone else.

Inner Rhymes

Hip Hop and Pokemon are all I need.

Male
India.
Seen 1 Day Ago
Posted 1 Day Ago
905 posts
3.3 Years
This is exactly what I've been looking for. Most R/B quality of life hacks tend to include features that are either too modern or just a level increase in difficulty. I started playing a few minutes ago and I'm having a blast because the old school sprites feel very nostalgic to me because I'm so used to playing hacks with the Gen 2 graphics patch. Cheers and thanks you!

Chronosplit

I play for keeps!

Male
Seen 2 Days Ago
Posted May 18th, 2020
477 posts
9.5 Years
I've been loving this project so far!

While I'm aware that graphically this should keep as close to the original games as possible, I've noticed a patch on RHDN that gave me an idea: it changes only the Pokemon backsprites to the spaceworld demo, and they all seem to match up with the frontsprites unlike the ones the original game had. Seems that the source code isn't in the entry though. http://www.romhacking.net/hacks/4924/

Would that be possible for Shin to fold in later on if desired? I realize that it looks like there's some extra steps involved.
Seen 11 Hours Ago
Posted 2 Weeks Ago
91 posts
255 Days
Would that be possible for Shin to fold in later on if desired? I realize that it looks like there's some extra steps involved.
Yeah, that would be possible. I’d handle it with instructions for self-compiling like I do for the green or yellow front sprites. I’d have to do some tests to see if I can do a 1:1 replacement of the back sprites or if I have to move stuff around memory banks.