• 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)

10
Posts
4
Years
    • Seen Feb 22, 2022
    Since Blue was made on its own after the release of Red and Green, the white differentiation would have not been needed. I guess they grabbed the code for Red version and started working from there.

    Pretty sure the JP release of red and green had the same SGB pallete. I'm guessing they edited it for Blue to give better palletes, and that was used as the base for Red and Blue......resulting in translation errors, and a different Cerulean Cave map.....and more.....

    Oh, and a small nitpick, but there isn't any patch to restore Red or Blue to their Japanese Version. Red has the graphics and whatnot from green, just with Red's wild data, while Blue has entirely new wild pokemon and gift pokemon data, as well as trades. Sure, it's a very nitpicky thing, but just having the Green Patch be redundant since it's just a slightly different version of Blue seems weird to me.
     
    Last edited:
    536
    Posts
    4
    Years
    • Seen yesterday
    Oh, and a small nitpick, but there isn't any patch to restore Red or Blue to their Japanese Version. Red has the graphics and whatnot from green, just with Red's wild data, while Blue has entirely new wild pokemon and gift pokemon data, as well as trades. Sure, it's a very nitpicky thing, but just having the Green Patch be redundant since it's just a slightly different version of Blue seems weird to me.

    Yeah, it's weird. But I kept getting messages from people wanting a green version to go with their US red & blue. I guess some people just want a graphics swap of US blue for the novelty.

    I'll probably add a compiler option for jp-red and jp-blue until I can find a solution for batch-making ips patches.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Ah, okay. Anything else ported from Prism? That 60 fps it has is kinda cool, but I don't know if that can work in RB. makes the running shoes look nice rather than just being "feet bike." That's always been a pet peeve of mine.

    I'm not sure how Prism implements it exactly, but I suspect certain updater functions have been rewritten to update sprites twice as often. Using this suspicion I've been able to replicate the running shoes visual effect by adjusting the player sprite inter-frame counter limit. Normally it's set to 4, which translates to the game displaying 4 frames of the "neutral" pose followed by 4 frames of the "stepping" pose. Your brain and the gameboy's TFT screen ends up blending it together into one smooth movement. Prism seems to play the walk animation at double-speed, so for Gen 1 games that's an inter-frame limit of 2 to be used only when in a state of running. To be honest, double-speed looks a little janky and makes me a bit queasy (the player sprite has a slight up & down bob). I set the limit to 3 so the animation gets a 50% speed increase; it looks more natural and is fairly subtle.
     
    10
    Posts
    4
    Years
    • Seen Feb 22, 2022
    Yeah, that works. I just thought that the typical rom hack running shoes just look like they're gliding across the floor if anything.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Merry Christmas! Version 1.18 has been released. Here's the changelog:

    Master & Lite branches
    - Incredibly minor text edits in Green to match the japanese script
    - Palette & sound edits in Green
    - PP usage is now tracked for both wild and AI trainer pokemon
    - There is a chance for the AI to switch a sleeping pokemon based on the sleep counter
    --> chance is 0% if counter <= 3
    --> chance is 12.5% if counter > 3
    - Chances to switch have been reduced:
    --> toxic poison - changed probability from 50% to 34%
    --> super effective moves - probability weight reduced by 25%
    --> only switch out from low HP if player outspeeds enemy (gives the enemy one last shot at dealing damage)
    --> an enemy mon is flagged when sent out; non-volatile (except sleeping) status or low hp cannot initiate switching
    --> enemy mon that is recalled back due to a super effective move is flagged; it is demerited from being switched-in
    --> switch flags are all cleared when player sends out a new mon since the situation is now different
    - Patch version now shows on main menu
    - Fixed a scrolling text artifact in the credits when running in GBC-mode


    Master branch only
    - Fixed Mew appearing with glitched graphics
    - Mew's encounter has been changed a bit
    --> It's wild encounter rate has been reduced
    --> You will get a message about a "tingling feeling" if mew is encounterable
    --> You can only find it in the wild once
    --> Mew won't appear again after encountering; a message says the tingling feeling goes away
    - Beating the future red fight now also resets Mew's encounter
    - Missingno now has its iconic "L-block" appearance
    - When holding B to go faster, the player animation is sped-up by 50% to avoid the "ice skating" appearance
     
    536
    Posts
    4
    Years
    • Seen yesterday
    There was a typo in the object data of the unknown dungeon basement that affects the Green patches. I've fixed it and re-uploaded new Green patches. Please try again with these new patches if you are using Green version.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    After some discussion with my Reddit liaison, I've started work on a very simple randomizer for Shin Pokemon. I'm planing to have it be a unix bash script that can be run under cygwin with core utilities. The user will be prompted to input the name of the rom file as well as the banks and hex addresses of some important labels I'm adding to the .sym files (the .sym files will be added to the github). From there, the script will automatically do the necessary hex-editing on the rom file.

    While it does require a little more skill than the nice GUI options for other game, the tradeoff is that it is compatible with all unix-based operating systems and environments (very handy for developers). It will also continue to work when I make new updates to Shin Pokemon.

    Initial plans are as follows:
    --Mew, Mewtwo, and the bird trio are unaffected since their encounters are handled by map scripts and I don't want to mess with that yet.
    --Likewise, scripted pokemon (gifts, in-game trades, fossils, game corner, etc) are slated for later.
    --But your starters will get randomized of course.
    --151 availability is only in the master branch since that is already built into the rom itself.
    --Random encounter-able land & water pokemon will be randomized on a global scale (all instances of one species become all one other species).
    --Super rod pokemon will be randomized on a global scale.
    --Trainer pokemon will be randomized on a global scale.
    --Pokemon are put into A, B, and C tier lists. Randomization occurs within each separate list to prevent something like Brock throwing 2nd-stage evolutions at you.
    --No move randomizer planned yet since it takes a while to do it in a way that prevents soft-locking.

    Current status: I can accurately write bytes to a rom file, and I can randomize an array of pokemon hex values. Looking feasible but I have a long way to go.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    So the randomizer bash script is making progress. I had to make sure VIM was installed to Cygwin so I could access the xxd command. Starter pokemon and trainer rosters can now be randomized.
     
    9
    Posts
    3
    Years
    • Seen Jan 19, 2021
    Hey Jojo, hope youre keeping well, good to see progress is still going well with this rom :) so i discovered the New Game+ mechanism and played around with it a bit, saving my party to a box first then setting up with a junk pokemon ready to switch over (i actually did this several times to get it all just how i wanted it and experiment with the mechanism, and i believe i have found a bug, i left the old game with 80 pokemon in the bank and switched into the new game with only 78, when i got to the pokedex i can see whats going on, even though i have bulbasaur in the bank and i picked charmander this time, the pokedex is showing bulbasaur as not owned (no pokeball) so i'm guessing its something to do with the initial selection process clearing out the pokedex for the options i didnt pick? or something is re-setting any found status on the first 3 as you select one? not sure but yeah have at it :)
    All the best :)
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Hey Jojo, hope youre keeping well, good to see progress is still going well with this rom :) so i discovered the New Game+ mechanism and played around with it a bit, saving my party to a box first then setting up with a junk pokemon ready to switch over (i actually did this several times to get it all just how i wanted it and experiment with the mechanism, and i believe i have found a bug, i left the old game with 80 pokemon in the bank and switched into the new game with only 78, when i got to the pokedex i can see whats going on, even though i have bulbasaur in the bank and i picked charmander this time, the pokedex is showing bulbasaur as not owned (no pokeball) so i'm guessing its something to do with the initial selection process clearing out the pokedex for the options i didnt pick? or something is re-setting any found status on the first 3 as you select one? not sure but yeah have at it :)
    All the best :)

    Wait, did Pokémon get deleted from the PC? Or is it the owned Pokémon in the Pokédex?
     
    9
    Posts
    3
    Years
    • Seen Jan 19, 2021
    Wait, did Pokémon get deleted from the PC? Or is it the owned Pokémon in the Pokédex?

    it didnt get deleted from the pc, just in the pokedex it's not showing as owned, and actually i just withdrew bulbasaur from the bank to test if that would trigger it to show again and it's still not showing in the pokedex as owned (with a pokeball symbol)
     

    Attachments

    • Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)
      IMG_4629.jpg
      1.4 MB · Views: 3
    536
    Posts
    4
    Years
    • Seen yesterday
    it didnt get deleted from the pc, just in the pokedex it's not showing as owned, and actually i just withdrew bulbasaur from the bank to test if that would trigger it to show again and it's still not showing in the pokedex as owned (with a pokeball symbol)

    Ah, I see. That's good to know. I was worried I had a much bigger problem to solve. This is an easy fix. The issue is the StarterDex function that gets called every time you look at one of Oak's pokeballs.
    Code:
    ; this function temporarily makes the starters (and Ivysaur) seen
    ; so that the full Pokedex information gets displayed in Oak's lab
    StarterDex:
    	ld a, %01001011 ; set starter flags
    	ld [wPokedexOwned], a
    	predef ShowPokedexData
    	xor a ; unset starter flags
    	ld [wPokedexOwned], a
    	ret

    The problem is that the whole byte gets cleared to zero after viewing the pokedex entry and then it is placed back into wPokedexOwned. Fine if you assume that the player has no pokemon, but a problem for NG+. It should be like this instead.
    Code:
    StarterDex:
    	ld a, [wPokedexOwned]
    	push af
    	ld a, %01001011 ; set starter flags
    	ld [wPokedexOwned], a
    	predef ShowPokedexData
    	pop af
    	ld [wPokedexOwned], a
    	ret

    I've posted an issue on the github and slated the fix for the next version.
     
    9
    Posts
    3
    Years
    • Seen Jan 19, 2021
    Ah, I see. That's good to know. I was worried I had a much bigger problem to solve. This is an easy fix. The issue is the StarterDex function that gets called every time you look at one of Oak's pokeballs.
    Code:
    ; this function temporarily makes the starters (and Ivysaur) seen
    ; so that the full Pokedex information gets displayed in Oak's lab
    StarterDex:
    	ld a, %01001011 ; set starter flags
    	ld [wPokedexOwned], a
    	predef ShowPokedexData
    	xor a ; unset starter flags
    	ld [wPokedexOwned], a
    	ret

    The problem is that the whole byte gets cleared to zero after viewing the pokedex entry and then it is placed back into wPokedexOwned. Fine if you assume that the player has no pokemon, but a problem for NG+. It should be like this instead.
    Code:
    StarterDex:
    	ld a, [wPokedexOwned]
    	push af
    	ld a, %01001011 ; set starter flags
    	ld [wPokedexOwned], a
    	predef ShowPokedexData
    	pop af
    	ld [wPokedexOwned], a
    	ret

    I've posted an issue on the github and slated the fix for the next version.

    Thats fantastic, thanks for all your hard work :)
     
    1
    Posts
    3
    Years
    • Seen Apr 13, 2021
    Hey jojobear13, I love this hack so far (actually my favorite one) but I would like to ask you if a japanese version of it is planned ? I've been digging through the net for a disassembly of the Green version with no success. If it's not in your plans, how would I proceed to make a translation of your hack ? (if you allow me of course). Thanks !
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Hey jojobear13, I love this hack so far (actually my favorite one)

    Glad you enjoy it.

    but I would like to ask you if a japanese version of it is planned ?

    Not planned. I'm not multilingual.

    I've been digging through the net for a disassembly of the Green version with no success. If it's not in your plans, how would I proceed to make a translation of your hack ? (if you allow me of course). Thanks !

    Shin Pokemon is open source. You can clone the github repository, set up cygwin and rgbds to compile things, and start tinkering around. The first thing you'd want to do is restore the japanese characters by either replacing the text in gfx/font.png or restoring the japanese characters somehow. Then you would want to go to charmap.asm and remap the hex values from the english letters to the japanese letters.

    This is not a beginner's-level endeavor.
     
    47
    Posts
    4
    Years
  • The randomizer sounds awesome; something that I feel more of these "expansion" hacks should implement as it creates a whole new experience- I'm tired of using the same dang 3 starters each time! lol
     
    Back
    Top