![]() |
Shout-out to Sinna who is doing a no-commentary LP of Shin Green.
|
The next version will include a toggle in the option menu to render overworld movement at 60fps. Doesn't make you faster, but it does make things scroll somewhat smoother. Personally, I can only really tell the difference on an LCD screen. Some people are really into this kinda thing though, and I was interested in seeing if I could do it.
|
Many thanks Jojo for this rom hack. It is the best there is for Red. Two times completed already, a true pleasure, the exact update the original game needed. Spreading the hack around me because it so good. ❤️
|
Hey Jojobear13 can you add Surf to Pikachu/Raichu's learnset
|
Quote:
|
Hi again,
@jojobear13 In the past, you've mentioned the possibility of creating jp-red and jp-blue branches. Would these include metric units? Is this even doable? |
Quote:
Not in a rush to do jp red and blue. Don’t want to step on MoriyaFaith’s toes. |
Quote:
Just a suggestion, of course. |
So here's something to think about. I was watching some Pikasprey videos on youtube, and one of them kinda stuck with me. It covered a scenario where you just get stuck in a battle with Lorelei that just won't end. You're trapped in a near-unending cycle of being unable to KO her dewgong.
I thought, "Wouldn't it be neat if you could just forfeit the match?" After a bit of trial and error I ended up working this into shinpokered master_dev branch. When in a battle with an AI trainer, holding SELECT while choosing to RUN will prompt you to forfeit. Choosing YES will initiate a blackout. I'm not entirely sure what purpose this could serve. Maybe some kind of nuzlocke variant. Either way, I just think it's neat. It'll show up when I put out v1.21, which I should just get off my butt and do already |
Quote:
I'm still playing off and on, I really enjoy that feature where one of the Aides can toggle the trainers to be of level with your own. I was curious though, would there ever be a case where it lowers the AI's levels if you are a lower level than their original team? |
Quote:
|
just checking in on progress love the work you have made! one day in the future shin pokemon yellow yeah that will be a thing no doubt great work with green btw and years later shin pokemon gold silver and crystal man that will be something else ha ha need time machine .... Bill get in here ! lmao
|
Finally got around to uploading the patches for version 1.21! Fingers crossed I won't have to release a hotfix for some silly oversight.
A few new features I want to highlight with this patch. First is that there is now a gamma shader that will do color correction if you play in GBC mode on a backlit LCD (phone, GBA SP, etc). Press SELECT on the copyright info screen right when you boot up to activate it. You'll notice the colors aren't as saturated. Secondly, there's a 60 FPS mode that I made as a proof of concept. It's kinda rusty, but it works. Toggle it by placing the cursor over CANCEL in the options menu and pressing left or right. I've been meaning to write a report in the ASM forum on how I did it, but I'll get around to it eventually. Thirdly is that I did some re-jiggering of the AI. Switching now scans your active mon's moves and takes those into account for scoring. Use of explosion moves will be less likely if the enemy mon has more HP. More aggressive attacking has been moved to AI layer 1 which applies to most trainers. These next two things are only in the master branch. Fourthly is the ability to forfeit a match as I posted about earlier. And fifthly, by special request and also only in the master branch, is the ability for pikachu to learn Surf. If you win the SS Anne post-game tournament with a pikachu in your team, that pikachu's catch rate will change to 168. Pikachus with a 168 catch rate are allowed to be taught the Surf HM. If transferred to/from Gen 2 with the time capsule, this catch rate value corresponds to holding a Gorgeous Box. Anyway, here is the the full changelog: Master Branch v1.21 Quote:
Quote:
|
Love this hack! I dislike playing Gen 1 games because of all the glitches but your fixes make it enjoyable for me. Also to note, your hack is still true to the original games so it doesn't feel like I'm playing a completely different game. Currently I'm using your hacks to do a solo run with every Pokemon. Question: Did you have any plans to do a similar hack for Gen 2 games? I really hope you do because they would definitely benefit from your tweaks.
|
Quote:
Perfect Crystal 2020 update exists, so I don’t want to just redo everything it already does. Though I suggest giving that one a spin. |
so far so good with the 1.21 release of shin pokemon red/blue/green 😃
no problems to report for this new version; barely finished all 3 games. all that's left for me to do is to participate in the tournament battles in ss anne and in one of the underground paths |
Quote:
|
I found a potentially weird bug. My butterfree leveled up to 21 off screen (I had a spearow out) and tried to learn supersonic. No matter what I chose, it won't let me proceed. Whether I attempt to learn the move or try to abandon learning it, it just repeats the question (no combination of yes/no to the two questions works). I can upload my save file if you're unable to replicate the problem.
|
Quote:
|
1 Attachment(s)
https://www.pokecommunity.com/attachment.php?attachmentid=97689&stc=1&d=1625709001
Unfortunately I hadn't saved in a while, so it set me back a bit. I tried to upload the save state but it wouldn't let me. Let me know if I can upload anything else that can be of help. |
Quote:
|
Quote:
|
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 |
Quote:
|
1 Attachment(s)
Sorry, I didn't see your other post saying to zip it! (message board noob)
here it is |
1 Attachment(s)
Quote:
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. |
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! |
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! |
Quote:
If all else fails, it would probably be easier to add a “replace by ‘mon group” option to the external randomizer script. |
Quote:
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! |
Quote:
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. |
Quote:
|
Quote:
|
Quote:
|
I can't get the patches to work, LIPS says they aren't ips files.
|
Quote:
|
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.
|
Quote:
|
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. |
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. |
Quote:
https://discord.gg/xXp9cnnS |
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?
|
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. |
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.
|
Quote:
|
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. |
Quote:
|
Quote:
|
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. |
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! |
Quote:
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: Quote:
|
Finally got the gender bit working, thanks!
|
Here's a shout-out to Paige for making what is, to my knowledge, my first piece of Shin Red fan art! Give her some views if you like what you see.
|
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)? |
2 Attachment(s)
Quote:
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. |
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? |
Quote:
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. |
Any plan for Yellow?
|
Quote:
|
I think you should fuse your idea with Full Colour Pokemon Red Hack.
|
Quote:
|
In this image on the left red in GBC mode has colored moves. Could it be possible to use palettes for moves like that in shin?
https://i.imgur.com/IR8XWj2.jpg |
Quote:
|
Quote:
The image on your left is running in "Not SGB" mode. The game assumes that grayscale is going to be used everywhere, so it skips over all the color-associated SGB code. The GBC bios reads from the rom header that pokemon red is being played, so it makes the object colors dark/light green and the background colors dark/light red. The image on your right is running in "SGB detected" mode. There's an interesting quirk that happens with attack animation objects. The palette of the object will match whatever is loaded for the background. So the color can end up a bit wrong. To get around this, Gamefreak made it so that animations switch to only using the black and white colors of the loaded palettes when operating in SGB mode. I'll do a little experimenting to see what I can affect. |
Oh, this worked out splendidly!
https://i.imgur.com/vHaom6u.png This will only work when playing in GBC mode. I made it so that a palette is associated with each move type. When a move animation plays, the type is referenced and the corresponding palette is copied into the GBC's object palette registers for OBP0 to OBP3. I can't do much of anything with the SGB because animated objects can't really have separate colors from the background. Hardware limitation. The GBC is much more flexible giving me 8 palettes of 4 colors each for both backgrounds and objects, and directly translating and writing color information to them is more straightforward. |
Quote:
I noticed that moves are sometimes the same color as the pokemon they were used on. |
Currently playing on the Vita with Gambatte.
Is it normal for Professor Oaks sprite to get not disappear when he guides you into his lab? He just stood on the door tile. And is it Normal for Charmeleon to always crit using slash? I tired applying the full color ips hack and it wont boot. https://www.pokecommunity.com/showthread.php?t=361713 |
Quote:
Yes, high-critical moves like Slash will nearly always crit when used by pokemon with good to high speed. Gen 1 gives high-critical moves a base 8x chance to crit. EDIT: Some more insight on how Gen 1 does critical hits (assuming code mistakes have been fixed). The battle engine randomly picks a number between 0 and 255. A critical hit is made if this number is less than the attacking mon's crit value. This crit value defaults to 0.5*[base speed] rounded down to the nearest integer. The Dire Hit/Focus Energy effect quadruples the crit value to 2*[base speed]. High-critical moves octuples the crit value to 4*[base speed]. There is always a 1/256 chance that a critical hit does not occur (a random number of exactly 255). This means it's possible to get a critical hit 99.6% of the time given a certain base speed threshold. These thresholds are as such:
Try this for a bit of fun since the Focus Energy effect is fixed. Train an Eevee until it learns Focus Energy. Evolve it to Jolteon. Train it until it learns Pin Missile. Setup with Focus Energy then laugh hysterically at psychic types. |
Quote:
|
Quote:
I’m going to release v1.22 (a big stonkin’ update) before the end of the year. I am reorganizing the readme file for clarity. But you do bring up a good point. I will look at doing a kind of “New Player Functionality” guide for the master branch that describes all the new stuff that players can interact with. Real talk about yellow version. I have no plans to add yellow. There are too many engine modifications from red & blue that I would have to start all over from nothing. I’m a little burned out on gen 1 anyway, but that happens when one spends almost 4 years debugging decades-old code. |
Maybe instead of holding select or start at the Pokémon menu, we can press Select in the Pokémon preview to change though all the hidden information.
|
Any idea what features will be in the 1.22 version
|
Quote:
New Features (master branch)
New Features (master & lite branch)
Hack-induced Fixes (master branch):
Hack-induced Fixes (master & lite branch):
Misc Adjustments (master branch)
Misc Adjustments (master and lite branch)
|
Okay, I've lolligagged enough. Version 1.22 has been released.
There is now a "Guide to New Player Functions" for instructions on all the new stuff the player can do in the Master branch. Master Branch Changelog Quote:
Lite Branch Changelog Quote:
|
Looks like the back sprites for green version are glitched up.
|
Quote:
|
Thanks
|
The update looks awesome and I appreciate all the hard work! Would it be possible to have a master branch ips with the vanilla sprites included in the downloads? I'm awful with github stuff and can never seem to figure that out. The previous releases were with the og sprites so I was hoping that would be an option. I'm really glad you're still pushing updates! Cheers
|
Quote:
|
Thank you so much JoJobear! I really appreciate it. Have a good day my friend.
|
You're welcome.
I plan on continuing to support Shin Pokemon as problems are discovered. But updates are going to be less frequent unless there's some show-stopper bug that's found. Queuing up little things in the issue log over a few months then knocking them all out at once is easier to manage. |
i can't go viridian forest => pewter city
in shin green 1.22M version just loof route 2 gate = viridian forest exit |
Quote:
|
Quote:
EDIT: I switched the forest tileset back to an inside area until I can find out why this breaks certain warp tiles. |
Quote:
|
Hello,
How to add ''tm names'' into marts in LITE version? like, TM X - ICE BEAM is it too hard? |
1 Attachment(s)
Hey Jojobear
I noticed a small graphical glitch. I rematched the first bug catcher in viridian forest, on his second pokemon (caterpie) I used flamethrower and half of the attack changed to the colour green. I tried this on wild caterpie and it didn't happen. |
Quote:
Looks like I neglected to clear out and reset the OBP0 palette settings when the attack colors are set. It gets overwritten when trainers send out a new pokemon, and this causes the wrong colors to display for the attack objects. Also I did a workaround for Fly and Teleport in the forest tileset. So that's back in. The forest tileset is still considered indoors, but Fly and Teleport now have a hard-coded exception. Fingers crossed this didn't break anything else. This is why professional game developers spend money on hiring a QA team. |
No more green flamethrower? 😭
Love this hack. Just updated a couple days ago and was able to carry over my save from 1.19. I'm thoroughly enjoying challenging the trainers with different 'mons each battle. Kudos! |
Quote:
You should probably ask eshasunrise who recently got this working in Retyped Red. |
1 Attachment(s)
Weird visual bug with obtaining any TM that starts with 0. (Ex: TM 06) In both cases I've experienced, since the new update, it displays them in a glitch name.
Also, upon receiving HM04, it said I got "Gary" instead. Name looks fine in bag though. |
Quote:
|
Quote:
The ListName address needed to be set to ITEM_LIST when using GetItemName on machines in order to work with an extra check I added to GetName. |
Quote:
Also, I don't remember for sure, but didn't one of the updates address the critical hit nerf when you raise offensive stats? Asking because the crit rate would destroy me sometimes when in battle after I used Amnesia at least twice. Also, is there anything that can be done in Red's code (not for this hack) to address the game always soft resetting once going out of bounds? Like, would the game still glitch up? Was curious what would've happened. |
Quote:
The act of going out of bounds results in loading garbage data into the map functions. Like how missingno's appearance is the result of feeding garbage data into the battle sprite renderer. You aren't soft resetting so much as you are jumping to a random address and crashing the game. |
Bug report: Graveller learns Headbutt at level 29, should be Harden.
|
Quote:
|
My bad, that's what I meant :)
|
Quote:
So I made a few adjustments to ‘mons that learn explosion moves to try to play nicer with the ai. The issue is that the gen-1 move learning function can’t pick up multiple moves learned at the same level. So I have to do something about that. |
Some other notes I had while playing:
- The sunbathing blocker Pokemon at Vermillion should probably say something like "It's staring curiously at the S.S Anne" to make it obvious that's the leave condition. When I saw it for the first time it really confused me. - I think the Eevee lines are better off using their RB movesets instead of yellow's. Yellow was balanced around the rival's Eevee, so it learns important moves before level 25, making them impossible to get in vanilla. The most egregious example is Jolteon, who because of this can never learn Thundershock. - The spaceworld back sprites are placed too far up for some pokemon. Nidoking for example looks awkwardly cut off. |
| All times are GMT -8. The time now is 8:52 AM. |
![]()
© 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.