• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Red hack: Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)

536
Posts
4
Years
    • Seen yesterday
    Oh ok, understood. I did read about the trainer classes that had that AI routine but I honestly thought that there were more trainers with it. Since the Lass and Hikers in Mt. Moon had that routine (plus the rockets), it gave me an impression that way more trainers had it. I guess aside from the Lass class, most of the others fit in the description of "serious trainers" (maybe except the hikers, their text is always very goofy IMO).

    I gave it to the hikers because they are the first adult trainers that the player encounters. It also fits because their japanese name is is "mountaineer", and that implies they are experienced and skilled outdoorsmen rather than your average boomer-dad out on a nature walk.
     
    18
    Posts
    12
    Years
  • I gave it to the hikers because they are the first adult trainers that the player encounters. It also fits because their japanese name is is "mountaineer", and that implies they are experienced and skilled outdoorsmen rather than your average boomer-dad out on a nature walk.

    I guess that kinda makes sense. Personally I wouldn't give them that AI still but it's a decent reason. Oh, I'm also curious about your reasoning for giving that same AI to the Jr. trainers in the games, as I feel like they don't quite fit into the category that would usually have it.


    On a different note, while attempting to check for some things in the beginning of the game, I started a new save and accidentally saved over my previous save lol so I ended up fighting Brock again but this time without extra grinding (and without speed-up). I used a Lv. 11 Bulbasaur, and Lv. 9 Ratatta and Nidoran(f). I had a more interesting experience than in the base game, which isn't hard to accomplish but it's surprising how without radically changing the battle you managed to make it more engaging. Kudos for that, I'm really looking forward to seeing the rest of the important battles now.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    I guess that kinda makes sense. Personally I wouldn't give them that AI still but it's a decent reason. Oh, I'm also curious about your reasoning for giving that same AI to the Jr. trainers in the games, as I feel like they don't quite fit into the category that would usually have it.

    Jr Trainers are supposed to be fellow 10-year-old trainers like the player. They are a cut above the other children the player encounters in the early game. I wanted to give them access to something the player has, that being switching, to emphasize that.

    Satoshi Tajiri put in a clear divide between battles with adult and child npcs. Adults tend to be a bit smarter, and quite a few are meant to be older analogs of child trainers. Off the top of my head: Jr trainers become cooltrainers, lassies become beauties, and super nerds become scientists.

    I also have a big spreadsheet that plots all the trainer classes and their AI settings. I tried to give the switching AI layer to a modest spread of trainer classes. This leads to a more diverse blend of AI layers to be encountered.

    There are some AI settings with type-matching that are holdovers from the master branch which I have neglected. I'm in the process of reverting them. However, I will fudge things a bit and make all of the gym leaders and elite-4 do type-matching. It's missing from Agatha, Bruno, Brock, Surge, Sabrina, and Blaine. Makes sense to leave it off for Brock as it doesn't do anything for him, but the others were likely an oversight due to copy-pasting code from other trainers.


    On a different note, while attempting to check for some things in the beginning of the game, I started a new save and accidentally saved over my previous save lol so I ended up fighting Brock again but this time without extra grinding (and without speed-up). I used a Lv. 11 Bulbasaur, and Lv. 9 Ratatta and Nidoran(f). I had a more interesting experience than in the base game, which isn't hard to accomplish but it's surprising how without radically changing the battle you managed to make it more engaging. Kudos for that, I'm really looking forward to seeing the rest of the important battles now.

    Thanks. That's probably the changes to AI layer 1 which is "don't do useless things". The vanilla games give this to everything but youngsters and cueballs. Before, it only did things like dissuading using status moves on status'd pokemon. Now it dissuades a whole bunch of things.

    Just watch out for Agatha. She tends to filter people now.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    V1.23 has been released. Happy New Year!

    Lite branch changelog:
    Readjusted the vertical positioning of some spaceworld back sprites
    Fixed Flying and Teleporting out of maps with the forest tileset
    Fixed messed-up warps dealing with the forest tileset
    Fixed incorrect animation colors
    Fixed some minor color errors in non-move battle animations
    Changed color of normal-type attacks to yellow
    Adjusted the Saffron Guard text for accuracy
    Attacks reduced to zero damage now say the target is unaffected instead of missing

    The project now compiles Japanese Blue
    The project now compiles Japanese Red
    Green and Red-JP have their original pokedex entries (adapted from Fire Red)
    Green, Red-JP, and Blue-JP now display metric units in the pokedex
    Green, Red-JP, and Blue-JP now have the japanese-style town map layout
    Green, Red-JP, and Blue-JP now have their correct copyright graphics
    Green, Red-JP, and Blue-JP now have the "PRESENTS" graphic under "Game Freak"
    Green and Red-JP play the original shooting star sound effect

    Gamma shader defaults ON if the destination code in the rom header is set to 00 (JP)
    Pressing SELECT at the copyright info now switches the shader from its default state
    The default state of the gamma shader can be changed with any gameboy rom header editor
    Alternately, remove the 'j' in 'cjsv' in the Makefile to compile with a JP destination code

    Engine Improvement: the 1.5x EXP boost function now has overflow protection
    Engine Improvement: EXP Gained can now print up to five digits instead of four
    Engine Improvement: Pokemon can now learn more than 1 more per level
    Engine Improvement: the "LF" character mapping can be used as a line-feed

    Text with zero frame delay can be toggled in the options menu; press LEFT with the cursor on FAST
    Gym leader names have been restored on the trainer card

    Reverted some AI settings for trainer classes to match the retail releases (holdovers from master branch)


    Master branch changelog:
    New Stuff

    The player's party 'mons now have temporary field move slots for HM moves
    Each party 'mon has 1 slot separate from its regular move list
    A field move in this slot can be used in the overworld as normal
    You will be asked about filling the slot when teaching a field move out of battle
    You cannot overwrite a slot with a field move already in it
    A slot is cleared when its 'mon leaves the party (such as being put in the PC)
    In the case of a 'mon with 4 regular field moves:
    The slotted temporary move cannot be menu-selected
    The slotted temporary move, if it's a HM move, can be used via quick-key

    There is now an obedience level-cap that can be toggled in the options menu
    With the cursor in the BATTLE STYLE section, press A to toggle it on and off
    While active, the current maximum obedience level will display in the options menu
    All pokemon, not just trades, will start to disobey if over the displayed level cap
    The cap will change based on which badge you have
    Not recommended for use with trainer scaling since you might gain too many levels too quickly
    Best to turn this off in the post-game as it's really for the gym challenge and elite-4

    Good rod has an expanded 'mon list and level range
    Increased the level range of the super rod
    Old rod now randomly acts as a Good rod 50% of the time
    Old rod is a sellable non-key item with the value of a nugget
    The Route 12 Fishing Guru is now visitable upon first reaching Lavender Town
    Swapped location of Good and Super Rod

    The project now compiles Japanese Blue
    The project now compiles Japanese Red
    Green and Red-JP have their original pokedex entries (adapted from Fire Red)
    Green, Red-JP, and Blue-JP now display metric units in the pokedex
    Green, Red-JP, and Blue-JP now have the japanese-style town map layout
    Green, Red-JP, and Blue-JP now have their correct copyright graphics
    Green, Red-JP, and Blue-JP now have the "PRESENTS" graphic under "Game Freak"
    Green and Red-JP play the original shooting star sound effect

    Gamma shader defaults ON if the destination code in the rom header is set to 00 (JP)
    Pressing SELECT at the copyright info now switches the shader from its default state
    The default state of the gamma shader can be changed with any gameboy rom header editor
    Alternately, remove the 'j' in 'cjsv' in the Makefile to compile with a JP destination code

    SET mode gives an additional 1.5x EXP boost in trainer battles
    Added a NPC to the Celadon Diner to toggle a Catch-Up EXP Boost feature

    Engine Improvement: the 1.5x EXP boost function now has overflow protection
    Engine Improvement: EXP Gained can now print up to five digits instead of four
    Engine Improvement: Pokemon can now learn more than 1 move per level
    Engine Improvement: the "LF" character mapping can be used as a line-feed
    Text with zero frame delay can be toggled in the options menu; press LEFT with the cursor on FAST
    New Game Plus no longer makes a new Trainer ID, so old boxed pokemon will obey on a new playthrough
    Shiny symbol is now displayed
    The extra bag space introduced previously is now detected by most of the game's systems
    Gave a couple tm moves to the cerulean rival's abra
    Initiating the Pokemon Tower rival battle will deactivate the following skippable rival battles
    The Cerulean encounter
    The SS Anne encounter
    Attacks reduced to zero damage now say the target is unaffected instead of missing
    Gym leader names have been restored on the trainer card

    Hack-related adjustments and fixes

    Fixed Flying and Teleporting out of maps with the forest tileset
    Fixed messed-up warps dealing with the forest tileset
    Fixed incorrect animation colors
    Fixed some minor color errors in non-move battle animations
    Changed color of normal-type attacks to yellow
    Adjusted the Saffron Guard text for accuracy
    Assigned a default palette to confusion & crashing self-damage
    Made it so choosing New Game doesn't clear certain other options
    Fixed bugged TH/HM names within text boxes
    Slightly adjusted some Cinnabar Mansion notes to match the Japanese text
    Reworked the level-up movelist for all four 'mons in the Eevee family
    Readjusted the vertical positioning of some spaceworld back sprites
    Fixed the item clause breaking the AI choosing moves
    Clarified text of the blocking 'mon in Vermilion city
    Fixed typos
    Adjusted alignment of printed statEXP
    EXP bar goes off of MAX_LEVEL instead of an assumed lvl 100
    Fixed Sleep/Freeze clause not working correctly
    Streamlined the Sleep/Freeze clause function and cleaned the spaghetti code
    Made it so choosing to play as a girl doesn't clear certain other options
    Updated the Elite 4 and Gym Leaders a bit (mostly Koga)
    Edited Blaine's sunglasses to be darker
    No-Yes boxes can be canceled by pressing B
    Fixed text delay flags getting cleared which would override the text speed
    Seiga/Green special battle now uses JrTrainer-F instead of Lass
    Lass reverted to vanilla AI
    Rival phase 1 gets AI layer 3 and Channeler gets AI layer 4

    I've updated the Guide to New Player Functions as well.
     

    Attachments

    • Guide_to_New_Player_Functions.txt
      17.9 KB · Views: 9
    Last edited:
    56
    Posts
    5
    Years
    • Seen Apr 19, 2024
    Hey something else i would like to say. Would it be possible to restore the original text box border, and the fossil sprites in pewter museum for Jp shin red and green?
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Hey something else i would like to say. Would it be possible to restore the original text box border, and the fossil sprites in pewter museum for Jp shin red and green?

    Sure. I just need to work out some minor details that are preventing a straight asset swap.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    I've been working on a new feature for the master branch. Who likes built-in nuzlocke modes?
     
    536
    Posts
    4
    Years
    • Seen yesterday
    The nuzlocke mode is now in private beta testing. For anyone curious about how it currently plays, it is compiled and archived under the v1.23.02 development patches found in the master_dev branch of the github repository. I've also attached a TXT file to this post that gives details about the mode's current functionality.
     

    Attachments

    • shinpokered_nuzlocke.txt
      4 KB · Views: 6
    81
    Posts
    3
    Years
  • hi jojobear13

    I found a wild encounter bug that occurs only in Shin pokemon blue (JP) japanese 1.23 version (not with the normal shin pokemon blue)

    when walking in this grass area on Route 13,

    I sometimes encounter certain pokemon at super-ridiculously high levels
    (a Gastly at level 185!, a Scyther also at level 185! or a Tangela at level 186!! OHH SH--)

    -see attached pics below

    other Shin pokemon 1.23 patches (including shin pokemon blue original) do not have this problem

    also, a wild raticate seems to be missing from the 2nd floor of cerulean cave in shin blue jp (unless the encounter is extremely rare like 1% but so far I never really encountered one there)
     

    Attachments

    • shin_pokemon_bluejp_v123-1.png
      shin_pokemon_bluejp_v123-1.png
      3.9 KB · Views: 1
    • shin_pokemon_bluejp_v123-2.png
      shin_pokemon_bluejp_v123-2.png
      3.4 KB · Views: 1
    • shin_pokemon_bluejp_v123-3.png
      shin_pokemon_bluejp_v123-3.png
      3.6 KB · Views: 1
    • shin_pokemon_bluejp_v123-4.png
      shin_pokemon_bluejp_v123-4.png
      3.2 KB · Views: 1
    536
    Posts
    4
    Years
    • Seen yesterday
    hi jojobear13

    I found a wild encounter bug that occurs only in Shin pokemon blue (JP) japanese 1.23 version (not with the normal shin pokemon blue)

    when walking in this grass area on Route 13,

    I sometimes encounter certain pokemon at super-ridiculously high levels
    (a Gastly at level 185!, a Scyther also at level 185! or a Tangela at level 186!! OHH SH--)

    -see attached pics below

    other Shin pokemon 1.23 patches (including shin pokemon blue original) do not have this problem

    also, a wild raticate seems to be missing from the 2nd floor of cerulean cave in shin blue jp (unless the encounter is extremely rare like 1% but so far I never really encountered one there)

    Thanks for the bug report. Both are being caused by typos I made in the wild encounter files. Only Blue-JP is affected. You can fix the issue by re-patching a fresh rom with the appropriate v1.23.03 dev patch. FYI, the game now kicks you back to Pallet Town as a safety measure when you first load an old save on a new patch.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    So, some brainstorming I've been having. One of the advantages in using an external randomizer program is that you can shuffle all the wild pokemon around and their new distribution remains consistent throughout the game. Contrast this to a basic built-in randomizer where pokemon are determined randomly from encounter to encounter and there is no way to track them by area. The most straightforward way to implement the former outcome in-game is to have a randomized list that gets saved and referenced, but this can take up a costly 150 bytes in wram that just isn't available.

    But what if I could deterministically shuffle a list burned into rom space using a random seed byte? Then all I would have to do is save the seed in wram. The shuffled list could be generated as-needed and in the same order every time. I could use the Fisher-Yates algorithm to do this. Then I could have wild pokemon be swapped out in a consistent way every time. Hmm...I think this might work with the GB/C's processor if I can find a shortcut or two.

    EDIT: Holy crap. This is actually kinda coming together and doesn't run like molasses. The GB/C may use tech from the 1970s, but it's a surprising little workhorse.

    EDIT2: And now it's working. Just have to optimize how I do things for the "AREA" section of the pokedex so it doesn't take several seconds to load.
     
    Last edited:
    42
    Posts
    4
    Years
    • Seen Aug 24, 2023
    Hi. Is it possible to expand the newer damaging moves in LGPE like Shadow Ball and Dragon Pulse? Thanks!
     
    Back
    Top