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

    Trust me. You'd be much better served by the pret discord community for the pokered disassembly.

    https://discord.gg/xXp9cnnS
     
    Last edited:
    25
    Posts
    2
    Years
    • She/Her
    • Seen May 4, 2024
    So I've got a question. I added a female character option to my own hack using the instructions in the "how to" file, but whenever I withdraw an item from my PC or leave Red's living room, my character sprite becomes male again. Any thoughts?
     
    536
    Posts
    4
    Years
    • Seen yesterday
    The npc sprites get reloaded every time you change areas or a menu system closes. Sounds like you missed something somewhere, and the game is loading the male sprites by default. Probably happens in the home/overworld.asm file.

    Try taking a look at loadplayerspritegraphicscommon::

    Alternately, download my repository and use something like notepad++ to search every file for every instance of the string "female trainer". That should pull up every everything I modified for a girl trainer.
     
    Last edited:
    694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Question: Am I only able to use Amnesia twice successfully because the base stat is too high? I heard that 1024 is the max but I didn't think it would throw a "Nothing happened" on the third use. My SPC stat without any modifications is 354 so I assume that's why it's giving me that message.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    Question: Am I only able to use Amnesia twice successfully because the base stat is too high? I heard that 1024 is the max but I didn't think it would throw a "Nothing happened" on the third use. My SPC stat without any modifications is 354 so I assume that's why it's giving me that message.

    Stats are hard-capped at 999 and have nothing to do with restricting move effects. Stat mods go up to 6 stages in either direction like how it's always been. The reason you cannot use amnesia a third time is because the value $0D is in address $CD1D (indicating special is boosted to +6).
     
    42
    Posts
    4
    Years
    • Seen Aug 24, 2023
    Hi. I noticed that Elite Four battle theme was changed to regular Trainer battle theme.
    Can you teach me how to edit manually? I mainly used HxD to hack.
     
    694
    Posts
    7
    Years
    • Seen Feb 22, 2024
    Hi. I noticed that Elite Four battle theme was changed to regular Trainer battle theme.
    Can you teach me how to edit manually? I mainly used HxD to hack.

    I'd like to mention that the first three members of the E4 do not have their E4 theme, only Lance. That's how it was in Vanilla as well. JoJo didn't change the default themes.
     
    536
    Posts
    4
    Years
    • Seen yesterday
    I kinda changed the music. The Lite branch keeps the music the same as it was in Vanilla: Lorelei, Bruno, and Agatha play the trainer theme and Lance plays the gym leader theme. The Master branch takes more liberties and makes all four of them play the gym leader theme.

    You can see the tweaks I made to battle music selection here. This is how it works.

    The value in wGymLeaderNo is read. If the value is 9, then it loads the champion battle theme. If the value is a different non-zero number, then it loads the gym leader theme. If the value is zero, it checks to see the value of the currently-loaded opponent. Values below 200 are wild pokemon, so the wild theme gets played. Values >= 200 are trainers, so some more checks are run. If the trainer is Rival3 (from the final battle), always play the champion theme. If the trainer is Lance, always play the gym leader theme. Otherwise play the trainer theme.

    This makes it easy to set the music for scripted trainer battles like the elite 4. I just go into the map script files for each elite 4 room, and then I load any value from 1 to 8 into wGymLeaderNo upon talking to them.

    EDIT: Note that this is not something that can be done manually in a hex editor without a great deal of effort and expertise.
     
    Last edited:
    25
    Posts
    2
    Years
    • She/Her
    • Seen May 4, 2024
    So I got the female trainer to maintain during a play session, but now it resets to male whenever the save file is loaded. I think the bit is resetting when the game shuts down. How would I go about maintaining the selection?

    Also, wow Notepad++ is freaking phenomenal! Thanks for telling me about it!
     
    536
    Posts
    4
    Years
    • Seen yesterday
    So I got the female trainer to maintain during a play session, but now it resets to male whenever the save file is loaded. I think the bit is resetting when the game shuts down. How would I go about maintaining the selection?

    Also, wow Notepad++ is freaking phenomenal! Thanks for telling me about it!

    No problem. It's a lifesaver at the office because it defaults to Unix end-of-line markers and I can set the text to be colored according to multiple programming languages. When it comes to pokered & pokecrystal disassemblies, setting the language to Assembly makes everything much easier to see.

    Now for your trainer selection. You need to store your choice in a memory location that gets grabbed by the save/load routine. These are wram addresses $d158 to $dee1. Pull up the wram.asm file. It basically saves everything in-between wPlayerName and wBoxDataEnd, so pick an unused location somewhere in there that won't get overwritten. For instance, shinpokered uses bit 0 of address $D721 (given the label wUnusedD721). There are 78 leftover bytes after wGameProgressFlags that don't get used for anything, so you could do something like this:
    wRoute18GateCurScript:: ; d669
    ds 1

    ds 77​
    wFemaleTrainerByte::
    ;Bit 0 - 0 if male, 1 if female
    ds 1​
    Then just use wFemaleTrainerByte instead of wUnusedD721 with respect to all the places where you need to write or read the female trainer bit.
     
    14
    Posts
    9
    Years
    • Seen Dec 18, 2023
    Amazing work, especially for the well-detailed documentation and tutorials! Creating the file with swapped sprites was a piece of cake thanks to the tutorials, even though I never did this before!

    But it is a shame, that the spaceworld backsprites for all the Pokemon exist, but those for the trainers are missing, it feels kind of incomplete.
    Maybe you can add them too (as well as updating the instruction how to load them properly)?
     
    536
    Posts
    4
    Years
    • Seen yesterday
    But it is a shame, that the spaceworld backsprites for all the Pokemon exist, but those for the trainers are missing, it feels kind of incomplete.
    Maybe you can add them too (as well as updating the instruction how to load them properly)?

    This is news to me. Shouldn't be too difficult. Can you point me to a repository of the spaceworld trainer sprites?
    EDIT: Nevermind. I'll just crib the sprites from Rangi.

    EDIT2: So this is actually pretty easy to do by oneself. I'll explain.

    Go into the main.asm file and get ready to do some rom space management. Scroll down to the end of Bank $13 and take a look at image 1 attached. See all those INCLUDES commented-out in green? That stuff should be safe to move into another rom bank. Take a look at image 2 attached. I've moved that stuff to the end of rom bank $18. Doing this will free up a good amount of space in bank $13 so that it can be used exclusively for trainer sprites.

    Now go download the spaceworld trainer sprites from rangi's red star / blue star github. Paste over the old sprites in your trainer folder with these ones. Then compile using the "make clean" command. This will delete and remake all the compressed .pic and .2bpp files and compile your code. The spaceworld sprites take up more space than the vanilla ones, but it should compile fine since you cleaned out bank $13.
     

    Attachments

    • Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)
      1.JPG
      140.9 KB · Views: 3
    • Shin Pokemon Red/Blue/Green/JP builds (Bugfix, AI, and QoL patch)
      2.JPG
      126 KB · Views: 3
    Last edited:
    14
    Posts
    9
    Years
    • Seen Dec 18, 2023
    That was not what I wanted to know but thanks anyway 😅

    What I meant were the BACKSPRITES of the player (and maybe the catching tutorial guy / Prof. Oak in Yellow) which still have the low resolution.
    Unfortunately these sprites are not stored on Rangi's git, at least I didn't find them there).
    But the way to add them would be similar, I guess?
     
    536
    Posts
    4
    Years
    • Seen yesterday
    That was not what I wanted to know but thanks anyway 😅

    What I meant were the BACKSPRITES of the player (and maybe the catching tutorial guy / Prof. Oak in Yellow) which still have the low resolution.
    Unfortunately these sprites are not stored on Rangi's git, at least I didn't find them there).
    But the way to add them would be similar, I guess?

    Right. The idea is the same. Back sprites for pokemon and non-pokemon are essentially handled the same way by the game, so if you set up spaceworld back sprites for pokemon then you should be good to go for the most part.

    But I don't think any higher-res spaceworld back sprites exist for Red or the Old Man. They use Gold's back sprite and recycle the Gen 1 old man. I know Rangi had to use fanmade Red/Old_Man sprites for Red*&Blue*. Best of luck though.
     
    Back
    Top