• 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?".
  • Please note that users with less than 6 posts will have their threads/posts go to the approval queue if it has links or messages. This counts edits made to threads/posts after they were already approved and is intentional anti-spam behavior that is unfortunately necessary. Once you reach 6 posts, this will no longer occur.
  • 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)

  • 5
    Posts
    2
    Years
    • Seen Jul 15, 2021
    No (and tbh I did not even know there was exp all). It was in Mt. Moon, and I was fighting Trainer 3 or 4 (I think 4) on this map: https://cdn.wikimg.net/en/strategywiki/images/7/7f/Pokemon_RBY_MtMoon_1F.png

    I am playing Green version. I am playing with level scaling and gender on from Profs Aides. Butterfree only went from level 20 to level 21 while being switched out. If you'd be able to access my save state in any way, I could upload it to through some external website
     
  • 5
    Posts
    2
    Years
    • Seen Jul 15, 2021
    Sorry, I didn't see your other post saying to zip it! (message board noob)

    here it is
     

    Attachments

    • shin-green-v1.21.zip
      8.5 KB · Views: 1
  • 536
    Posts
    4
    Years
    • Seen today
    Sorry, I didn't see your other post saying to zip it! (message board noob)

    here it is

    Thanks. That helps me out more.

    So here's what I did. I took the v1.21 master green patch from the github. Then I applied it to a regular vanilla USA Blue version rom file. This gave me a fresh and clean rom of shinpokegreen_1.21 to work with. Loaded the game up in mGBA. Save file was detected. Loaded up your save file and everything worked okay; no crashes or getting stuck in the overworld.

    Loaded your save state. Everything worked fine. Butterfree was able to learn supersonic, and it was able to ditch learning supersonic. The battle ended successfully and I saved the game. See attachment.

    I would suggest that you delete your current rom file and apply the shinpokegreen_1.21 patch over a fresh download of a Pokemon Blue (USA) rom.
     

    Attachments

    • shin-green-v1.21.sav
      32 KB · Views: 1
  • 5
    Posts
    2
    Years
    • Seen Jul 15, 2021
    Wow, thank you so much for your quick replies and quick fix!

    Also, loving the game and especially loving the level curve. Makes each battle much more strategic!
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Hey Jojobear, would you be willing to, in a future release, make an NPC trigger an event with rematch battles where the opponent uses randomized mons? Some of the options I was thinking about would be similar strength or same type mons of the ones they replaced, or just overall random. That sounds like a lot of work, but it would be optional since you would have to activate it.

    Anywho, I'm starting it up a run again, this time on an actual stable emulator. Most of the glitches I experienced in the past seemed to be Goomba-specific.

    As always, I appreciate your work man!
     
  • 536
    Posts
    4
    Years
    • Seen today
    Hey Jojobear, would you be willing to, in a future release, make an NPC trigger an event with rematch battles where the opponent uses randomized mons? Some of the options I was thinking about would be similar strength or same type mons of the ones they replaced, or just overall random. That sounds like a lot of work, but it would be optional since you would have to activate it.

    Anywho, I'm starting it up a run again, this time on an actual stable emulator. Most of the glitches I experienced in the past seemed to be Goomba-specific.

    As always, I appreciate your work man!

    So basically a built-in randomizer. The main issue is that rom space, which holds the trainer rosters, cannot be overwritten. Built-in randomizers have to have lookup lists and perform a search-replace for every trainer mon. I can test out a few ideas, but I'm concerned about what this would do to battle load times.

    If all else fails, it would probably be easier to add a "replace by 'mon group" option to the external randomizer script.
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    So basically a built-in randomizer. The main issue is that rom space, which holds the trainer rosters, cannot be overwritten. Built-in randomizers have to have lookup lists and perform a search-replace for every trainer mon. I can test out a few ideas, but I'm concerned about what this would do to battle load times.

    If all else fails, it would probably be easier to add a "replace by 'mon group" option to the external randomizer script.

    I figured it would be a pain to implement. I was just throwing out ideas.

    This is literally my favorite Red hack. I play through the storyline just to be able to challenge the guy who uses six random mons that scale to your level. Definitely enjoying your work!
     
  • 536
    Posts
    4
    Years
    • Seen today
    I figured it would be a pain to implement. I was just throwing out ideas.

    This is literally my favorite Red hack. I play through the storyline just to be able to challenge the guy who uses six random mons that scale to your level. Definitely enjoying your work!

    Glad you enjoy it so much!

    Actually, I may have something here. I can create a new list of pokemon to randomly choose from which contains only non-evolved pokemon (about 73 excluding legendaries). Then I can reuse the GetRandMon and EnemyMonEvolve functions that I previously created in order to swap out trainer rosters and evolve them based on level. This could be done pretty easily for all the regular, non-boss trainers that don't have custom team levels and moves. This would make all those trainers have the same 'mon count and levels, but the 'mons themselves would be randomized every match. I can have it toggled via a new NPC somewhere.
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    I've uploaded some beta patches in the master_dev branch. Apply your choice of beta3 patch to an unpatched rom. There's an aide in the Viridian pokemon center that will toggle randomization of no-name trainers. Among other new things.

    That's so awesome! I'm currently on an older (1.19, I believe) beta and made some changes to the rom from compiling. Would there be any issue with me copying over some of the ASM files from that older version and compiling? I only changed typings and stats, a few moves, EXP growth rates, and the obvious level cap. I assume nothing has been changed since the newer release correct? Thanks again, man!
     
  • 536
    Posts
    4
    Years
    • Seen today
    I only changed typings and stats, a few moves, EXP growth rates, and the obvious level cap.

    Probably? The proper way to handle this is through a git merge so your edits get overlaid onto my commits. Google for more info about that. Otherwise the safest thing to do is copy your edits into the new files using a side-by-side compare program like BeyondCompare.
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Regarding the recent randomizer you added, if I want to patch it to a specific version that I've already compiled, and not just a fresh red rom, how would I go about doing that? I saw in the tools section on your GitHub that some of the files were modified recently so I assume those are the right tools.
     
  • 536
    Posts
    4
    Years
    • Seen today
    Regarding the recent randomizer you added, if I want to patch it to a specific version that I've already compiled, and not just a fresh red rom, how would I go about doing that? I saw in the tools section on your GitHub that some of the files were modified recently so I assume those are the right tools.

    Ips patches don't work that way. They are just maps of bit-differences between two rom files. If you have the older revision downloaded and set up in a git environment to compile, then you could use the cherry-pick command to selectively apply newer commits then recompile.
     
  • 536
    Posts
    4
    Years
    • Seen today
    So I've been doing some research on the gen-1 critical hit situation. I've been focusing on trying to find a reasonable way to rectify the odd situation where a critical hit can deal less damage than a non-critical hit.

    Given the following:
    A1 is the offensive stat and D1 is the defensive stat quantity for a non-critical hit.
    A2 is the offensive stat and D2 is the defensive stat quantity for a critical hit.
    L is the level of the attacker.

    Then the damage from a non-critical hit will be equal to or more than the damage of a critical hit if:
    (A1/D1) >= 2 * (A2/D2) * [ (L + 2.5) / (L + 5) ]

    There is a chunk of the damage formula for critical hits that goes as follows: (2 * 2 * L / 5) + 2
    I'll change this to the following for critical hits: (2 * 2 * L / 5) + 4
    Why the change? Because it changes (L + 2.5) into (L + 5) which lets me simplify the algebra down to a simple linear ratio:
    (A1/D1) >= 2 * (A2/D2) * [ (L + 5) / (L + 5) ]

    I can use this to implement a check on these stats when calculating critical hit damage. If a non-critical hit would do equal or more damage, then A1 and D1 are used in place of A2 and D2.

    This follows what I believe to be the original intent of Gen 1 critical hits: Crits should ignore defensive boosts and offensive penalties as a way to counter beefy wall 'mons, but they should not be so overwhelming as to allow the attacker offensive boosts while at the same time stripping defensive boosts from the defender. More or less, critical hits should be a large benefit to underdog attackers stuck in a low-damage situation and of middling benefit to high-damage attackers.
     
  • 1
    Posts
    2
    Years
    • Seen Jul 29, 2021
    Hello Jojo. I am addressing you today first of all as a fervent admirer of your work in reworking a 1st generation Pokémon game with brilliance. Your hack is splendid. Then, I would like to tell you that being French, the 1st generation is not the most popular and most played in my country. Nevertheless, it's the one I'm particularly attached to (with Black and White). That's why I'm taking the trouble to write you. Your excellent work has motivated me to undertake the invention of such a journey myself. However, I have little knowledge of rom hacking. Therefore, I would like to ask for your help in modifying a Pokémon Yellow rom, to tell me the steps to follow etc. Of course, I know it won't be easy to do it, but I would love to work on this project. I noticed your punctuality and your kindness, I don't doubt your sympathy towards the 1st time players ;) Thank you for reading my message, and I hope you will answer positively. See you soon!
    Ecto-1, French player.
     
    Back
    Top