• 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
    There was a crash happening upon choosing the starter pokemon. It's caused by the key item sfx playing in a text box in the overworld (specifically an improper stack push/pull).

    In light of this, I have put out v1.14 beta-2 patches for both the lite and master branches to fix this problem. The beta-2 patches also contain the most recent draft of the switching AI.

    The master branch beta-2 patch has the following additions but they are totally untested:
    - Slightly adjusted the style of the exp bar for flush lines and better visibility in grayscale
    - The mind battle with trainer RED can only be initiated after beating Oak, Fuji, Silph Chief, and Green
    - Beating the RED mind battle will respawn mewtwo and the legendary birds
    - You must re-beat the four special trainers to challenge the RED mind battle again after each win
    - Mewtwo and legendary birds removed from cerulean cave wild battle tables
    - Static mewtwo encounter set back to level 70

    EDIT: Beta 3 uploaded. I am testing the previously mentioned master features, and beating Green wasn't setting a flag.
     
    Last edited:
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Does this hack also have the Pokeball "caught" tile? I find that to be a useful piece of information when facing off with wild Pokemon. I wouldn't mind seeing gender either, since it's relevant when trading with Gen 2 or importing into Pokemon Bank and afaik is just determined by DVs in Gen 2.

    So in the process of fixing the flag check for pokemon owned, I've been poking around with how the battle HUD get's loaded. I think this is really easy to do. A lot of handy tiles are already loaded into VRAM so I can just directly point to them and assign a coordinate. Initial experiments are promising. I just need to piece together some tiles that look halfway decent. For the pokeball indicator I'll probably just use one of the four textbox corners.

    The male/female symbols are just text tiles (thankfully), but there's some extra planning in where and when they are displayed. Since gender has no mechanical or graphical meaning in gen 1, I'll probably limit its display to enemy wild pokemon and the individual 'mon status screens.
     

    darthbr

    Banned
  • 237
    Posts
    8
    Years
    • Seen Dec 8, 2023
    Hello Jojo, long time hum? xD

    I want to update the AI switching in my custom game, how to proceed? i added the custom ai function (in home as well), updated the stats function (in battle engines), but im having a error when trying to compile, i mean, how to update it without errors, i just want update this feature.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Hello Jojo, long time hum? xD

    I want to update the AI switching in my custom game, how to proceed? i added the custom ai function (in home as well), updated the stats function (in battle engines), but im having a error when trying to compile, i mean, how to update it without errors, i just want update this feature.

    You need to research rebasing with git. Basically automatically refreshes your main branch from one of my branches and then automatically overlays your changes on top of that. You will likely have conflicts that will be pointed out by git, so you'll have to learn how to fix those and continue the rebase.

    What may be simpler but more tedious is cherry-picking. You download one of my branches as a local branch in your directory. Then you start cherry-picking specific commit hashes from it that you want to apply.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    A small teaser for something I've been working on. Super Gameboy palette conversion for the Gameboy Color, like how it is done in Pokemon Yellow, has been coming along in great strides. Here's the progress thus far:

    • The background palettes are displaying well. This is the source of 90% of the game's color.
    • Title screen BGmaps and attributes modified to get the proper appearance.
    • Overworld sprite tile attributes are linking to the correct object palette.
    • Palettes displayed on the GBC are derived from Pokemon Yellow and tweaked where appropriate. This is because the default SGB pals were designed to look good on a 90's CRT monitor. A real GBC screen, combined with the GBC's color mixing, makes them look very washed out.

    I still need to do a few more things. The title screen has the wrong object palette for Trainer Red. There's also a brief graphical glitch affecting a few tiles of Red's hat at the start of battle. I also haven't tested out the slot machines that much.
     

    Attachments

    • Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)
      Capture.PNG
      35 KB · Views: 13
    • Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)
      Capture2.PNG
      42.1 KB · Views: 8
    Last edited:
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Real quick. I uploaded the patch files for v1.14 final. This fixes a few more bugs, and it also adds pokeball-caught and gender symbols. They can be activated by talking to the bottom-left Oak aide after getting the pokedex.

    V1.15 is next and will focus on backporting GBC functionality from pokemon yellow.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Pokeyellow GBC functionality has been backported and is now being playtested. The current code can be compiled from the "master_dev" or "lite_dev" branches.
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Love this. I've been playing it off and on. I picked it up again and noticed you now give an option whether opponents use more competitive stats via the Set option.

    It was originally very difficult. I would often have a Bellsprout a couple levels lower out speed my Nidoking lol.

    Anyway, maybe next you could fix the Critical hit ignoring user Atk/Sp. Atk boosts? (Swords dance, Growth, Amesia, etc.)

    I play this hack mainly for the rematch feature and replayability. I'm curious about one of the features you had. The randomized 6 PKMN roster post game. Is there a list of the possible PKMN they use and moves? Also are they EV trained?

    I'm currently playing this on my 3DS VC and really hope you continue working on it. Good job man!
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Love this. I've been playing it off and on. I picked it up again and noticed you now give an option whether opponents use more competitive stats via the Set option.

    It was originally very difficult. I would often have a Bellsprout a couple levels lower out speed my Nidoking lol.

    Yeah, under SET the trainers will have stat exp. It can add up.

    Anyway, maybe next you could fix the Critical hit ignoring user Atk/Sp. Atk boosts? (Swords dance, Growth, Amesia, etc.)

    Delving into this, and after some in-depth discussions, I don't believe this to be a bug or an oversight. Critical hit rate is based on speed in gen 1. This means you can have stuff like Jolteon auto-critting after using Focus Energy. Or Scyther with Slash eating through defensive buffs. The fact you don't get other modifiers with crits is likely an intentional trade-off. This was even carried over into pokemon stadium. I did do some playtesting that applied stat changes to crits, but I ditched it in frustration when Hikers and their Machops kept doing Leer-->Karate Chop.

    I play this hack mainly for the rematch feature and replayability. I'm curious about one of the features you had. The randomized 6 PKMN roster post game. Is there a list of the possible PKMN they use and moves? Also are they EV trained?

    Yes, but also no. EVs did not exist until Gen 3. Stat exp is used in gen 1 and 2, and it is the precursor to EVs. You could have up to 65,535 stat exp per stat in every stat. SET battle assigns trainer mons stat exp while shift battle defaults it to zero like in the retail games (which is why you always seemed to out-speed opponents). The stat point increase = SQRT(stat exp) * level / 400. Trainers are given 640 stat exp per level. So this works out to the following:
    • level 5 mons get 0 bonus points to all stats
    • level 30 mons get 10 bonus points to all stats
    • level 50 mons get 22 bonus points to all stats
    • level 100 mons get 63 bonus points to all stats

    The random trainer guy in the underground path can generate any of the 151 pokemon, but Mew is only possible if the diploma has been gained. The tournament on the SS ANNE generates any pokemon except Mew and Mewtwo. Moves for randomly generated teams are assigned based on the order learned in the level-up list.
     
    Last edited:
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Regarding the randomized trainers, does he give EXP (not stat EXP) upon defeating his PKMN? What about the tournament? Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along. If I decide to activate the level scaling post Level 100, would it affect anything in a negative way?

    Also, I didn't see how to obtain Mew. Is there a particular way?
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Regarding the randomized trainers, does he give EXP (not stat EXP) upon defeating his PKMN? What about the tournament?

    Yes and yes. I never liked how Gamefreak made postgame single-player battle areas not give exp or restrict legendaries.

    Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along. If I decide to activate the level scaling post Level 100, would it affect anything in a negative way?

    Umm...maybe. Trainer scaling keeps enemies at or slightly above your level, and a little more for boss battles (indicated by the gym leader or champion battle themes playing). At levels that high, the trainer scaling might loop around to level 0 and then weird stuff starts happening. Capping at 240 should be okay. I'll make a note to account for this in the next master_dev commit.

    Also, trainer money maxes out at about level 100. After that, most trainers will just give you $9999 every battle.

    Also, I didn't see how to obtain Mew. Is there a particular way?

    Way down at the very bottom of the readme. You must complete your dex and view the diploma. This will set an event flag. Mew then becomes a wild encounter in the basement floor of cerulean cave. It uses the rarest encounter rate slot (3 in 256 or about 1%).
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Also, I changed the Level cap to 250 when I compiled the source, assuming that will not effect gameplay as I go along.

    I also forgot to mention this. While there aren't big issues with what I've added and changed from retail, you will definitely run into issues related to the vanilla game engine itself.

    For just one example, the experience value is coded everywhere with the assumption that it is 3 bytes. That means the max exp you can have is 16,777,215. Going to 255 makes it possible to exceed this value so you end up overflowing into level 0. The highest max level on the slowest-growth pokemon would be 237 under this condition (requiring 16,640,066 exp).
     
  • 694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    I also forgot to mention this. While there aren't big issues with what I've added and changed from retail, you will definitely run into issues related to the vanilla game engine itself.

    For just one example, the experience value is coded everywhere with the assumption that it is 3 bytes. That means the max exp you can have is 16,777,215. Going to 255 makes it possible to exceed this value so you end up overflowing into level 0. The highest max level on the slowest-growth pokemon would be 237 under this condition (requiring 16,640,066 exp).

    Thanks. I had heard about the exp underflow error on gen 1/2 games. Luckily none of my team uses the slow growth formula. I've never finished a game past 120 anyway so it probably will never be an issue for me personally.

    Also, have you considered adding other features? Like the B/W EXP for instance? Maybe also changing Bug type being super effective against itself and Poison? With the original 151 mons, I counted 49 that were weak against Bug. Maybe change it to Gen 2+ standard? (I personally love it, as I use a Parasect on my team, but it's definitely overpowered despite their not being many Bug type attacks)

    Also, how does the game handle 4 digit stats? I know the max is by default 999 but you can edit that in the newest version of Red's disassembly to something else. I was curious how it would display HP for instance.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    Thanks. I had heard about the exp underflow error on gen 1/2 games. Luckily none of my team uses the slow growth formula. I've never finished a game past 120 anyway so it probably will never be an issue for me personally.

    Also, have you considered adding other features? Like the B/W EXP for instance? Maybe also changing Bug type being super effective against itself and Poison? With the original 151 mons, I counted 49 that were weak against Bug. Maybe change it to Gen 2+ standard? (I personally love it, as I use a Parasect on my team, but it's definitely overpowered despite their not being many Bug type attacks)

    Also, how does the game handle 4 digit stats? I know the max is by default 999 but you can edit that in the newest version of Red's disassembly to something else. I was curious how it would display HP for instance.

    Mechanics and system changes from later generations are out of scope for this project. In general, GF's intentions for Red are followed wherever possible.

    Each stat has 2 bytes, so it can theoretically go up to 65,536. I made the battle engine cap things at 999 to prevent stat boosts overflowing things to 0. The status screen is coded for 3 digits but can handle 4 digits just fine (use the cheat for displaying stat exp for an example). But it won't matter. No Pokémon can get 1000 in a stat without in-battle stat boosts.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    How do you raise the level cap to 250, is that standard

    misc_constants.asm, line 1, reads:
    Code:
    MAX_LEVEL EQU 100
    So change 100 to 250 and compile. No this is not standard. As stated in my previous posts, it will cause certain things to break in the game. Officially (well...as official as a random rom hacker can be), Shin Pokemon supports a level cap of 100 and makes no claims to any game stability should this be modified.
     
  • 510
    Posts
    11
    Years
    • Seen yesterday
    I'm trying to build the rom but I get the following error:

    Code:
    error: macros/asm_macros.asm::callba(22) : Unknown symbol 'SoftlockTeleport'

    Does anyone know what's causing this?
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    I'm trying to build the rom but I get the following error:

    Code:
    error: macros/asm_macros.asm::callba(22) : Unknown symbol 'SoftlockTeleport'

    Does anyone know what's causing this?

    It means that the function 'SoftlockTeleport' is being called across rom banks, but the function definition itself cannot be found.

    You didn't specify what branch you are trying to build, so I can only advise that you make sure your local working git branch is up to date with the remote branch you copied it from. The "pull" feature of git is probably what you want, as it will preserve your personal changes while updating any differences. You may have some conflicts you need to fix, but "git diff" and "git status" should help you narrow down affected files. I'm no expert with git so you will need to read some tutorials on your own.
     
  • 510
    Posts
    11
    Years
    • Seen yesterday
    I'm building from the lite branch. I've downloaded it and I'm making the changes (which are very minor) locally.
     
  • 536
    Posts
    4
    Years
    • Seen yesterday
    I'm building from the lite branch. I've downloaded it and I'm making the changes (which are very minor) locally.

    Wait, you're using the yellow front 'mon sprites aren't you? Are you using the replacement main.asm? That modified main.asm is actually out of date and doesn't INCLUDE certain files. You might want to consider going off the lite_dev branch instead.

    While it is the development branch, it is fairly stable as of commit d2aaeda. I've updated lite_dev to make swapping sprites easier and adjusted the guide. The front and back sprites are standardized to 7 unique rom banks, so the only thing that needs to change are filepaths. Also you'll have color in GBC mode since that's the big feature update for the upcoming v1.15.
     
    Back
    Top