FRLG is seriously one of the most brutal Pokemon Speedruns out there, only lacking in length to make it an actual nightmare in all aspects, although one could argue that it's a nightmare in that aspect as well if you add up the time you'll spend counting all of the books and tiles in the lab waiting to hit a runnable squirtle. Funny to think how this little change in the code to adjust for the removal of the battery from the cart results in a very brutal speedrunning experience. It would at least help a little bit if Squirtle started with scratch, because tackle is literally worse in every single aspect. And then you have to deal with wall after wall after wall after wall as the game keeps throwing incredibly difficult fights at you, some being difficult due to optimal strats being very risky, and some are just trash to deal with (looking at you Lt. Surge, you and your stupid cans). Great vid, your commentary is sick man and the professional speedrunning insight is truly invaluable! :D
I mean, it's a meme for a reason that speedrunners optimize the fun out of the game. Often, they find strats that are so luck-based or precise that they'll become the lynchpins of a run, and if you fuck it up, whelp all of it goes down the drain.
@@AztecCroc Huh, even if it hits night on the altered FRLG...? Maybe the change is just visual then, and there's some other code that would decide if it's day or night for evo purposes.
For those of y'all wanting to know the tracklist, as a VGM connoisseur, I got ya, for the most part (I'll label the ones I dunno as ??? (Don't worry, It's in order)): Snowdin Town - Undertale Waterfall - Undertale Tokyo - Shin Megami Tensei IV Resonance - HOME Night Walker - Under Night In-Birth Steam Cave - Pokémon Mystery Dungeon Explorers of Time Mass Effect map theme (according to a comment I read) Vulnerability - Trauma Center: Second Opinion Thanks for your help Isaac Michelsen and Gamesmarts194
Thank you Isaac, didn’t play Explorers of Time so that helped a lot. The first one you’re missing is called “HOME - Resonance”, the second one you’re missing is Steam Cave from Pokémon Mystery Dungeon Explorers of Time.
I’m glad to hear your final sentiments are for the better. It’s always cool to see games broken down by intense players who love the game. But seeing a game that cannot fully be broken down in the traditional sense makes it still feel like a challenge and make you hate to love or love to hate your experience. Rather than a mindless button mashing to the end just to see if you were faster.
As someone making a Leaf Green ROM hack at the moment, this is very interesting. I might tweak with the code a bit to add this bit of clock code. I want to add a day night cycle anyways.
This reminds me very well of the game I am speedrunning, Labyrinth of Refrain. Also a JRPG, Limited options when it comes to RNG manipulation, runs vary a lot from each other, high chance of getting fucked by RNG, appr. 2 hour runs, not collecting any XP we absolutely need One difference is that in LoR some dropped items are randomized and a lot of those are needed to complete the game xD
Great video. I never speedrun / watch any, but speedrun facts are always nice to know. And I'm a sucker for hearing about the gen 3 games and their enigmatic code. I used to love Emerald's broken RNG so much, it was SO satisfying when I hit that frame-perfect shiny mudkip.
From the way this has been described, it kinda feels like Pokemon FireRed speedrunning is a Rougelike. You have insane RNG, and restart at the beginning when you lose.
Personally as someone who once did game development and has done speed runs I think the way Fire Red’s RNG generation is set up is pretty cool and neat
so i want to know........ do some moves ignore their accuracy and go out of their way to miss? hypnosis seems to ignore it's big fat 60% accuracy and misses on me
@@PulseEffects grasswhistle IS my bestfriend! that move saved my runs multiple times and won me battles while lazy ass sleep powder and scumbag hypnosis both missed and killed me hypnosis went out of it's way, ignored it's accuracy and missed on propose to spite me sleep powder is a lazy good for nothing waste that doesn't even try to land thank you grasswhistle!. i don't deserve you, you save me over and over and you the only one that tries. i owe everything, i will teach you every time, this is why roselia is awesome poisonpowder is cool tho
@@blockmath_2048 but in other games 60-99 will mostly land, why is it in Pokémon o5% accurate attack will spam miss like hell? even OHKO moves don't miss that much
@@somechupacabrawithinternet8866 probably because most games alter their accuracy on subsequent uses, while pokemon uses the raw value each time. Why would other games alter their odds constantly? Well, you know how fun straight odds are.
I very rarely comment on videos, but since there is some wrong information in this one I guess I'll leave my 2 cents, since I researched this heavily literally in the last couple of days: You claim the RNG moves 4 times the speed it normally does or something along the lines of that in the FRLG title sequence, that statement is incorrect. I'll edit this in here I guess: For those curious, I will upload a video that explains what I explain in this comment (and more) on my english channel "Slashking Codes", as I feel like the public could "profit" off of my research so to speak, most info out there on this topic is very outdated^^ The tldr; is, you get 1 Seed for every 1 Frame and the game runs at roughly 60 frames per second. The seed you get is determined some frames into the "fade to white" when the title screen sequence ends, buttons pressed and their duration seem to influence which seed you get (for whatever reason, it doesn't really make sense to me, must be either interrupt related or CPU cycle in the final frame related), the same goes for settings like text speed, L=A etc. The not tldr;: The game runs an internal timer in the slot of timer1 as soon as the title screen comes up, ages ago some guy in some pokemon forum claimed it increments every 264 processor cycles, this is incorrect, it is set up to increment every single processor cycle, thus it increments (pretty much exactly) 280,896 times per frame (+-1 or 2 CPU cycles, I believe this is related to buttons being pressed possibly and general "slip" cycles, but these occur in a deterministic way, the same every time anyways). Input is read once per frame afaik, this means regardless how much the timer "spins" it's values (it overflows literally 4 times inbetween frames, making it act essentially randomly) there are only 60 seeds per second that can be hit. I was not able to fully reverse engineer this as intended, as the only truly "random and unpredictable" aspect of all of this is the final frame, where the timer is stopped halfway through the frame, after what appears to be a "random" amount of CPU cycles, implying depending on which frame the final seed is calculated, a different amount of instructions is executed before the timer is stopped and the seed is copied over (the seed is not random at all and very simple, it is a 2 byte value that literally corresponds to the final timer1 value). In other words, the RNG is moving exactly as fast as it always does in FRLG, infact it kind of runs slower, as I believe some frames later on advance it twice in 1 frame, while the intro sequence contains an essentially deterministic sequence of 60 start seeds per second, that can be consistently hit over and over again (and used for rng manipulation), however the new game sequence as of right now is still considered to be not (fully) manipulatable I believe. I wouldn't be surprised if at some point in the future the intro sequence also gets blown wide open and can be fully rng manipped in speedruns too, it would probably require 2-3 or 4 frame perfect inputs if I had to guess. Oh yeah btw, I guess if you read this far you are probably reasonably interested in this stuff, I'll probably upload a german video (as in, you know, in german) on how to use and abuse this to manipulate shinies/perfect pokemon etc in FR/LG on my channel in the coming days, so cheers, feel free to drop by if you want :)
I'd be curious to put your research alongside speedrunner research, cause me and a few others have dove into this hell hole of a title screen and found these manipulations to be too precise when trying to hold Two Buttons on the Title Screen to skip the "GameFreak Presents" followed by the "Zard/Venu" screen. Also not trying to spread misinformation with this video. If I'm wrong then my bad! But I've been told personally that it scrambles 4 times as fast as other instances of FRLG RNG by folks that dive into the code and do research for Speedruns all the time. 🤔
@@PulseEffects The secret is to not hold any buttons and let the full intro play out. The rng starts scrambling once the title screen starts rolling. By starting a timer on the Bios screen (you can pause it using Select + Start and unpause by hitting A) and aiming for a specific frame from there, it is possible to consistently hit a specific "seed grouping" lets say (it is a frame perfect thing after all). Once your (pre)timer runs out you hit and hold the a button until file select, to make sure the same seed is hit every time. Letting go of A earlier than this could bias the seed you hit, but the seed is determined during that fade, so holding until that is a safe way of doing it. It is also possible to determine the player's SID using a similiar timing trick, using the SID trick and the trick explained earlier, I managed to rng manip a shiny squirtle on my real cartridge copy of (german) Leafgreen. The entire concept behind this comes from "im a blisy" on youtube, but I believe most of the knowledge was discovered by lots of individual people and then "assembled" into what it is now so to speak. In theory, the title screen imo doesn't "scramble" the RNG at all. There is no "scrambling" going on, well there might be in the background, but that scrambling doesnt matter. The seed the game actually uses (the seed is the RNG start value) is determined in the fadeout of the title sequence and is the exact value of the timer1 register the moment it is stopped. Technically speaking the rng state cycles at a speed of 2 to the power of 24 ≈ 16.78 Mhz, which is the speed of the GBA's cpu, and it cycles between the values 0x0000 and 0xFFFF. This is blazingly fast, as it cycles once per cpu cycle, not per frame. In reality however, the intro sequence always plays out the exact same way. In the german copy you can notice this easily. In the top right there is always a leaf (in the Leaf Green version) I call the "fast leaf", followed by a slow leaf at the very top of the screen and then followed by 2 slow leaves right after, one of which overtakes the other. Since your input as a player is only read once a frame, all the other values the CPU cycles through dont matter at all. As such, there is 1 rng state/timer value/seed per frame, which can be modified by changing settings, or holding a button like Select or B all the way from starting the game up in the Bios Screen to file select additionally to pressing (and holding) A frame perfectly (I dont exactly know about the Select/B tech, I didnt try that at all). For Speedrunning this also has implications. As long as no rng manips are being done, all runs are legal, emulator or not. However, as soon as rng manips are being done, all emulator runs stop being legal, as emulators produce emulator seeds, and every emulator produces different seeds (they are always the same however, as they indeed are deterministic, just different from emu to emu). This is the result of even cycle accurate emulators not being perfect about emulating timer behaviour (and also other teeny tiny things). I would know, I tried dumping all possible seeds in a range of frames (which can btw also be done on hardware using a script and the Pomeg glitch for ACE) using various emulators, I even inquired about frame stepping being implemented into NanoBoyAdvance so I can try to dump the seeds using that, as it is cycle accurate, but the developer herself has already tried that and confirmed it is indeed not resulting in the correct seeds. This is why I researched all of this in the first place, I wanted to dump the seeds, but only on emulator (which is impossible... for now), as I dont want to risk my actual cartridge by using ACE on it, that can go south quickly. The only part of this I guess "complex math problem" of sorts I dont (yet) understand is the final frame, as the timer seems to be halted after an amount of cycles/instructions that is different from frame to frame. So far I didn't find a pattern to this (and I'm probably not going to research further into this), but if someone was to find out why/in which cases extra instructions are executed before the seed is copied into its final resting place (address 0x0202000, regardless of language and well, game, of the gen 3 games) and used for seeding and in general how many instructions are executed/CPU cycles pass before this, then it would be possible to dump all seeds by "force" (aka math) alone, as the timer values at the end of frames are essentially always the same, only on the "final" frame the timer is cut short (because it gets deactivated) and then used for seeding, but as I explained, the amount of instructions run before seeding the rng is "random" (it isnt) and I dont know how to determine it. There seems to be a correlation between higher timer values resulting in bigger "instruction swings" so to speak, I can't really explain what I mean with this, it's super technical, but likely only coincidental anyways. As a little addendum, after looking into your FRLG speedrun start guide (idk if that is still how its done today though), in theory, instead of entering your TID into some program, the ultimate final form of RNG manip (for speedrunning anyways) would require you to frame perfectly (this might be 1-3 inputs I'm guessing) get to the point where your TID is determined (I dont know how or when this works exactly, all I know is TID=Seed, but apparently seeding gets quite erratic on the new game screen, I havent researched that at all), and then from there you would just always hit the same TID (that results in a perfect starter in the low startup frames), however you probably can't name your rival "A", as I believe I have read somewhere that the naming screen also speeds up rng advancements, but that might be wrong, considering I also read Timer1 increments every 256 processor cycles, which is simply wrong. Alternatively you could also just take any TID, save infront of the starter, hard reset and utilize the method outlined above, as TID doesnt matter afaik in terms of pokemon generation. Since the startup seeds are always the same, you can just figure out a mapping that works and keep going for that, however as of right now, you'd have to always sit through the entire about 30 seconds of intro. Essentially resetting for a "perfect" is probably possible, but would most likely require a ton of frame perfect inputs. Resetting for a target SID is rather trivial, you start your flowtimer the same time you would start it in your video, then aim for a specific delay of frames to trigger the end of the new game thingy, then at the end of the animation past the last textbox the SID is determined, this final delay varies from version to version, for the english version its 249, for the german version its 207 frames (I had to reverse engineer the latter myself). Using the TID (that I dont care about, I just wanted to know my SID so I can rng manip shinies) and the delay used, it is then possible to calculate the SID from that (this is yet another technique explained on "im a blisy"s channel). Addendum to the addendum: Alright, so just for fun I just tested how this works in vba-rr, it seems to work like this (theoretically): You hit your desired initial seed on the main menu screen (1 frame perfect input, further referred to as fpi), you proceed through the new game screen, I am not sure if there is anything frame perfect here, it might be that a specific screen here speeds up the rng, or the timer is reengaged at some point to reseed from scratch maybe, I didnt fully check for any of that, but I'm just gonna pretend there is 1 of those screens (or the timer gets reengaged to reseed), so we'll add 2 fpis, making that 3 fpis. Your TID is determined the moment you hit OK on the naming screen, not really, it is determined in the fadeout I think, but yeah, essentially that is when, making that another fpi. I'm guessing its somewhere between 3 - idk, lets say 6 or 7 fpis to rng manip a TID, which is only useful for speedrunners anyways though (or for people who want a cool TID I guess lol), so that is fine maybe. The thing with the erratic nature of the new game screen is, I'm 99% sure that its not "erratic" at all. It might progress the RNG state at different speeds on different screens or textboxes, but by surrounding those with frame perfect inputs, it should be possible to always rng manip the same TID off of a cold boot. Mashing won't work, as it's frame perfect, but by giving yourself let's say 5 seconds between every button press, it should be realistic to hit all the frame perfect button presses, like, every once in a while (as in, idk, veeeery rarely). Note that according to im a blisy you can only rng manip like this off of a cold boot/hard reset, SRing wont work! Aha, Timer gets reengaged on naming screen, maybe it is just 2 frame perfect inputs after all? Hm... now I'm curious, gonna test this. Alright, heres my findings. You hit the correct initial seed, thats frame perfect (still not sure if that is necessary). I still dont know about some of the screens inbetween, but opening the naming screen is frame perfect, so is selecting the "A" as your first letter of the name I think, and so is pressing Start after. Maybe, not super sure about those two. The final A press to exit the naming screen is obviously also frame perfect. Using an emulator like vba-rr and some lua someone who is inclined to figure this out can easily research this, btw relevant addresses for this are: 04000104 is Timer1 Value, 04000106 is Timer1 Setting (might be relevant, probably not), 0202000 holds the initial seed, and later on the "final new game seed"
@@PulseEffects I added a little bit of stuff to the end, idk if you saw it, but yeah I did some of the research that might be necessary for you guys to figure it out^^. It's obviously not all the information you need, and I'm probably not the first to look into this, but yeah, there you go^^ Ok, this is the final bit of research I made, I'm gonna stop now^^: The A and Start Press seem to also be frame perfect. In vba-rr A can be held down on the first press, then you can just hold start, and to exit the screen, while holding A and start you can additionally use the L button as a second A button, so hold that one down as well. You obviously dont need to hold the buttons, but seeing how that is the most consistent way to get the same initial seed, I'm almost certain that holding buttons at specific points up to specific frames is the only way of making some of these frame perfect maneuvers work. I am almost certain that holding only matters in the exact frame a timer is started and stopped though. I think it's all frame perfect, but maybe thats just down to vba being inaccurate. Considering the moment the naming screen is opened seems to influence the final result aswell, even if all other inputs are frame perfectly in sync with the first input that opens the naming screen, there is a strong implication that opening the screen itself is also frame perfect, either as a result that it is being tied to the very first initial seed indirectly (by having a random delay of when the timer actually starts most likely, which probably depends on the initial seed indirectly), or resulting from, once again, vba inaccuracies.
So: RS the rng is seeded with current time, E has a bug that seeds with 0x00, and FRLG seeds with TrainerID/SecretID (whomst in turn are seeded from very precise timing information from the title screen)? Jeez
More generally, isn't it great that different games have slightly different mechanics? Now people that like maniping can play Ruby & Co while people that don't want to manip will play Firered or Leafgreen. Sure, there are other factors to differentiate the games as well, but overall they are very similar so having additional differences via their mechanics is a positive imo.
I got FireRed in emulator in my phone and I'm trying to get a shiny starter, and for that I soft reset, but I've noticed that, if I keep pressed the TurboA button (that basically goes straight to pickup the starter since I saved in front of the pokeball) the starter I get is always exactly the same. I have to make pauses between my button presses or run a bit before picking the starter to make sure it will be different.
@@musicstuff6310 Does save states work? I see that, if you load your saved state and do some running before picking the starter, the stats are different, so I think it might work, but still idk if it is enough for the starter ever be shinny by doing that or if you acually have to soft reset
7:40 - actually since tackle is 95% accuracy, there is a 73.5% chance that all tackles will hit over a 6 turn battle. This means that during the weedle fight tackle will only miss, on average, ONCE every 4 attempted runs. Not 1-2 times per run. This makes tackle the superior strat, not bubble.
im lost, not entirely sure why i watched this video in the first place, but got dam if this isnt the best song list for a youtube video ive ever watched. resonance into under night is a killer combo
Yooo shin megami tensei 4 Tokyo track at 1:58 is crazy, thanks for the memories. Greaaat video, FireRed is the bomb, played a lot in my childhood. All hail Lapras.
@@PulseEffects How come that works better? Compared to Geodude, Onix has a 1.5x better Sp. Def but a 1.6x better Def, so I'd expect that if Ember's better on Geodude it should in theory also be better on Onix.
@_Vengeance_ Difference is that you don't get Metal Claw until you face Onix which comes out after Geodude. And even if you had it for Geodude, he loves to spam Harden, so Ember becomes the better option!
Speaking on RNG manipulation in these games, knowing your TID/SID you can time your A-press on the title screen to land a set seed relatively often, but as you said ths seed generator moves SO quick on the title screen that this process is very difficult and almost entirely luck based. I’ve been RNGing static encounters for the legendaries on these games for my Shiny Legends home dex, and it is SUCH a pain 😂
It learns Vine Whip very late though. At least in the remakes it's better, in the originals you could beat Brock with a level 12 Charmander while Bulbasaur only gets Vine Whip on level 13.
I had no idea Pokerus was unavailable in FR/LG! I'm glad I can send it over from my other games where I got it. Gen 3 Emerald was the last to get Pokerus, randomly, not RNG abused. My first time was on Platinum, then nothing until Pokemon Sun, then again in Sword, then finally, the last bout was in Emerald, on a run for a Johto starter.
Pokerus is actually available in FRLG; it just doesn't go away or spread to other pokemon like in RSE. My first experience with pokerus was in LG which only made it more confusing as a kid since it didn't seem to behave like a virus...despite it telling me it was a virus?
Again i dk much but would it be better to actually use bubble and then to get lower hp on the sandshrew instead. I am sure a crit on scratch should be good if weedle attacked just once....
Donni If I got this right, but it seems too long of an explanation for "gotta press the A button at the exact precise time so I can get the Squirtle I want".
I managed to get through ruby, sapphire and emerald with a full team of shinys, starter included, for each one of them thanks to learning how to RNG manip in those games. But once I learned how complicated it is to RNG manipulate FRLG to the point of having to play the game to a gift pokemon JUST to learn your seeds and then you can reset for a shiny starter... Yeah I decided I wasn't even going to bother with RNGing shinys there, and decided to transfer Kanto pokemon to either Hoenn or Sinnoh to rng them there
Wasn't it good that they removed the clock code when making FRLG though? Maybe not for speedrunning, but for shiny hunting Emerald is the worst since with no battery you can't do much other than random encounters
Now that I've covered both Squirtle and Bulbasaur, should I cover Charmander next? 👀
yes
Sounds like a good idea to me. I'm curious how much Blaze abuse there is.
@@rjante2236 Yea
@RJ Ante I'd argue just as much if not more than Squirtle, but the story behind Charmander is a crazy tale to tell!
@@PulseEffects Ayyy
Read the title as "How a line of coke changed FireRed speedruns forever"
Every run just starts with the runner snorting another line and yelling “WHOO!”
Also known as the “f*** it, this is a Bulbasaur% speedrun now”
Dead ass what i read
You sure you ain’t snortin some
@kimiko but not forever
Remember kids
If moves are anything but 100% accuracy, they're 50% accurate.
And if theyre 50% accurate theyre 0% accurate when you need them to hit
@@PencilNova and 100% accurate if the move is being used against you
@@hawshimagical someone gets it
Unfortunate doesn’t begin to describe my series
wrong
FRLG is seriously one of the most brutal Pokemon Speedruns out there, only lacking in length to make it an actual nightmare in all aspects, although one could argue that it's a nightmare in that aspect as well if you add up the time you'll spend counting all of the books and tiles in the lab waiting to hit a runnable squirtle.
Funny to think how this little change in the code to adjust for the removal of the battery from the cart results in a very brutal speedrunning experience. It would at least help a little bit if Squirtle started with scratch, because tackle is literally worse in every single aspect. And then you have to deal with wall after wall after wall after wall as the game keeps throwing incredibly difficult fights at you, some being difficult due to optimal strats being very risky, and some are just trash to deal with (looking at you Lt. Surge, you and your stupid cans).
Great vid, your commentary is sick man and the professional speedrunning insight is truly invaluable! :D
Yeah it's still sad for all the former owners of the records who have all lost 😅
I mean, it's a meme for a reason that speedrunners optimize the fun out of the game. Often, they find strats that are so luck-based or precise that they'll become the lynchpins of a run, and if you fuck it up, whelp all of it goes down the drain.
I'm so happy they made tackle better in gen 5. 50 power, 100% accurate. Best buff ever
People writing essays in youtube comments will always be funny
Bug trainer: "hey what's the rush?"
Me sprinting through the forest on WC pace: "DO YOU MIND"
Fun fact, clock is available even though not written in the code. If you use a cia converter on 3ds and put rtc in there, it can hit night.
Wait so you could get Espeon and Umbreon once you've done the RS quest?
@@miles6492nope, they don't exist in gen 1
@@CM_ChocolateMiracles We're not talking about Gen 1, mate.
@@miles6492 You can always get Espeon, it's only Umbreon you can't get.
@@AztecCroc Huh, even if it hits night on the altered FRLG...? Maybe the change is just visual then, and there's some other code that would decide if it's day or night for evo purposes.
i had no idea that not having a clock function really changed so much for speedruns
day and night cycles in pokemon weren't just cool; it's even crazy all wrapped into one.
For those of y'all wanting to know the tracklist, as a VGM connoisseur, I got ya, for the most part (I'll label the ones I dunno as ??? (Don't worry, It's in order)):
Snowdin Town - Undertale
Waterfall - Undertale
Tokyo - Shin Megami Tensei IV
Resonance - HOME
Night Walker - Under Night In-Birth
Steam Cave - Pokémon Mystery Dungeon Explorers of Time
Mass Effect map theme (according to a comment I read)
Vulnerability - Trauma Center: Second Opinion
Thanks for your help Isaac Michelsen and Gamesmarts194
8:55 has a track from PMD explorers.
Thank you Isaac, didn’t play Explorers of Time so that helped a lot.
The first one you’re missing is called “HOME - Resonance”, the second one you’re missing is Steam Cave from Pokémon Mystery Dungeon Explorers of Time.
THANK YOU
Been killing it with the videos lately! This is making me wanna go back and grind out a decent any% time again lmao
What a great thing to wake up to alongside my eggs and pancakes (im dirty bulking for my next speedrun)
Does not sound like much of a speedrun if you need to bulk up to survive it.
11:25 that's some impressive RNG. Almost sounds like it would be worthwhile for a Race ROM to be created, and a separate speedrun category for it.
Someone actually cultured enough to use Linne's theme as a BGM. You just earned a sub
I heard it and thought “crap I know that theme, why can’t I remember it” 😂
I’m glad to hear your final sentiments are for the better. It’s always cool to see games broken down by intense players who love the game. But seeing a game that cannot fully be broken down in the traditional sense makes it still feel like a challenge and make you hate to love or love to hate your experience. Rather than a mindless button mashing to the end just to see if you were faster.
01:50 spectacular visual effects here. I love being inspired by your videos
The mass effect galaxy map music at 9:45 😭😭😭 unlocked many memories. Subbed.
when i was a kid i used to play so much that i had a level 40+ blastoise and a level 30+ pikachu before misty
As someone making a Leaf Green ROM hack at the moment, this is very interesting. I might tweak with the code a bit to add this bit of clock code. I want to add a day night cycle anyways.
This reminds me very well of the game I am speedrunning, Labyrinth of Refrain.
Also a JRPG, Limited options when it comes to RNG manipulation, runs vary a lot from each other, high chance of getting fucked by RNG, appr. 2 hour runs, not collecting any XP we absolutely need
One difference is that in LoR some dropped items are randomized and a lot of those are needed to complete the game xD
Great video. I never speedrun / watch any, but speedrun facts are always nice to know. And I'm a sucker for hearing about the gen 3 games and their enigmatic code. I used to love Emerald's broken RNG so much, it was SO satisfying when I hit that frame-perfect shiny mudkip.
Ah the SMT4 world map theme at 1:59.
I'm glad I'm not the only one who noticed it lol. Peak game
everyone mentioning the smt4 soundtrack and not the UNIST ost smh smh
and then the trauma center song catches me off guard what the fuck
@@Lordilucas12 someone did below in another comment
That lil guy is the cutest Squirtle art I’ve ever seen
that art comes from the pokemon cafe mix game, I think.
Dang, I loved the Trauma Center soundtrack playing at the end of the video, 10/10.
I have attempted to run FR several times but I've only ever a managed a "hearty jog" rather than a "speed run"
Even though I have no idea about or what all goes into speed runs, I do love learning new things about Pokémon.
Time to Skull Bash my head into the wall.
Weedle the run killer
I loved the game because it gave color to Ash's generation of Pokémon. Now I see it was all a nightmare for others
I love how a different line of code discovered a few months ago also completely changed FRLG speed running ( ACE )
From the way this has been described, it kinda feels like Pokemon FireRed speedrunning is a Rougelike. You have insane RNG, and restart at the beginning when you lose.
Ya know...it kinda of is a roguelike lmao.
@@PulseEffects definitely could help FireRed Leaf green speedrunner's mindsets. Just a random idea
Me: Learning the screen RNG while soft resetting for squirtle.
If you like the music at 4:28, play Under Night In-Birth.
Personally as someone who once did game development and has done speed runs I think the way Fire Red’s RNG generation is set up is pretty cool and neat
10:53 You CAN actually get both, you just need to use a sun stone/moon stone after getting the nat dex
Weird editing on the Weedle sequence where it said A was hurt by poison even though he wasn't poisoned and didn't take damage.
so i want to know........
do some moves ignore their accuracy and go out of their way to miss? hypnosis seems to ignore it's big fat 60% accuracy and misses on me
That just sounds like hypnosis in general haha.
@@PulseEffects grasswhistle IS my bestfriend! that move saved my runs multiple times and won me battles while lazy ass sleep powder and scumbag hypnosis both missed and killed me
hypnosis went out of it's way, ignored it's accuracy and missed on propose to spite me
sleep powder is a lazy good for nothing waste that doesn't even try to land
thank you grasswhistle!. i don't deserve you, you save me over and over and you the only one that tries. i owe everything, i will teach you every time, this is why roselia is awesome
poisonpowder is cool tho
that's just pokemon luck in general
if it's not 100% accurate, it will miss half of the time
@@blockmath_2048 but in other games 60-99 will mostly land, why is it in Pokémon o5% accurate attack will spam miss like hell? even OHKO moves don't miss that much
@@somechupacabrawithinternet8866 probably because most games alter their accuracy on subsequent uses, while pokemon uses the raw value each time.
Why would other games alter their odds constantly? Well, you know how fun straight odds are.
I very rarely comment on videos, but since there is some wrong information in this one I guess I'll leave my 2 cents, since I researched this heavily literally in the last couple of days:
You claim the RNG moves 4 times the speed it normally does or something along the lines of that in the FRLG title sequence, that statement is incorrect.
I'll edit this in here I guess: For those curious, I will upload a video that explains what I explain in this comment (and more) on my english channel "Slashking Codes", as I feel like the public could "profit" off of my research so to speak, most info out there on this topic is very outdated^^
The tldr; is, you get 1 Seed for every 1 Frame and the game runs at roughly 60 frames per second. The seed you get is determined some frames into the "fade to white" when the title screen sequence ends, buttons pressed and their duration seem to influence which seed you get (for whatever reason, it doesn't really make sense to me, must be either interrupt related or CPU cycle in the final frame related), the same goes for settings like text speed, L=A etc.
The not tldr;: The game runs an internal timer in the slot of timer1 as soon as the title screen comes up, ages ago some guy in some pokemon forum claimed it increments every 264 processor cycles, this is incorrect, it is set up to increment every single processor cycle, thus it increments (pretty much exactly) 280,896 times per frame (+-1 or 2 CPU cycles, I believe this is related to buttons being pressed possibly and general "slip" cycles, but these occur in a deterministic way, the same every time anyways). Input is read once per frame afaik, this means regardless how much the timer "spins" it's values (it overflows literally 4 times inbetween frames, making it act essentially randomly) there are only 60 seeds per second that can be hit. I was not able to fully reverse engineer this as intended, as the only truly "random and unpredictable" aspect of all of this is the final frame, where the timer is stopped halfway through the frame, after what appears to be a "random" amount of CPU cycles, implying depending on which frame the final seed is calculated, a different amount of instructions is executed before the timer is stopped and the seed is copied over (the seed is not random at all and very simple, it is a 2 byte value that literally corresponds to the final timer1 value).
In other words, the RNG is moving exactly as fast as it always does in FRLG, infact it kind of runs slower, as I believe some frames later on advance it twice in 1 frame, while the intro sequence contains an essentially deterministic sequence of 60 start seeds per second, that can be consistently hit over and over again (and used for rng manipulation), however the new game sequence as of right now is still considered to be not (fully) manipulatable I believe. I wouldn't be surprised if at some point in the future the intro sequence also gets blown wide open and can be fully rng manipped in speedruns too, it would probably require 2-3 or 4 frame perfect inputs if I had to guess. Oh yeah btw, I guess if you read this far you are probably reasonably interested in this stuff, I'll probably upload a german video (as in, you know, in german) on how to use and abuse this to manipulate shinies/perfect pokemon etc in FR/LG on my channel in the coming days, so cheers, feel free to drop by if you want :)
I'd be curious to put your research alongside speedrunner research, cause me and a few others have dove into this hell hole of a title screen and found these manipulations to be too precise when trying to hold Two Buttons on the Title Screen to skip the "GameFreak Presents" followed by the "Zard/Venu" screen.
Also not trying to spread misinformation with this video. If I'm wrong then my bad! But I've been told personally that it scrambles 4 times as fast as other instances of FRLG RNG by folks that dive into the code and do research for Speedruns all the time. 🤔
@@PulseEffects The secret is to not hold any buttons and let the full intro play out. The rng starts scrambling once the title screen starts rolling. By starting a timer on the Bios screen (you can pause it using Select + Start and unpause by hitting A) and aiming for a specific frame from there, it is possible to consistently hit a specific "seed grouping" lets say (it is a frame perfect thing after all). Once your (pre)timer runs out you hit and hold the a button until file select, to make sure the same seed is hit every time. Letting go of A earlier than this could bias the seed you hit, but the seed is determined during that fade, so holding until that is a safe way of doing it. It is also possible to determine the player's SID using a similiar timing trick, using the SID trick and the trick explained earlier, I managed to rng manip a shiny squirtle on my real cartridge copy of (german) Leafgreen. The entire concept behind this comes from "im a blisy" on youtube, but I believe most of the knowledge was discovered by lots of individual people and then "assembled" into what it is now so to speak. In theory, the title screen imo doesn't "scramble" the RNG at all. There is no "scrambling" going on, well there might be in the background, but that scrambling doesnt matter. The seed the game actually uses (the seed is the RNG start value) is determined in the fadeout of the title sequence and is the exact value of the timer1 register the moment it is stopped. Technically speaking the rng state cycles at a speed of 2 to the power of 24 ≈ 16.78 Mhz, which is the speed of the GBA's cpu, and it cycles between the values 0x0000 and 0xFFFF. This is blazingly fast, as it cycles once per cpu cycle, not per frame. In reality however, the intro sequence always plays out the exact same way. In the german copy you can notice this easily. In the top right there is always a leaf (in the Leaf Green version) I call the "fast leaf", followed by a slow leaf at the very top of the screen and then followed by 2 slow leaves right after, one of which overtakes the other. Since your input as a player is only read once a frame, all the other values the CPU cycles through dont matter at all. As such, there is 1 rng state/timer value/seed per frame, which can be modified by changing settings, or holding a button like Select or B all the way from starting the game up in the Bios Screen to file select additionally to pressing (and holding) A frame perfectly (I dont exactly know about the Select/B tech, I didnt try that at all).
For Speedrunning this also has implications. As long as no rng manips are being done, all runs are legal, emulator or not. However, as soon as rng manips are being done, all emulator runs stop being legal, as emulators produce emulator seeds, and every emulator produces different seeds (they are always the same however, as they indeed are deterministic, just different from emu to emu). This is the result of even cycle accurate emulators not being perfect about emulating timer behaviour (and also other teeny tiny things). I would know, I tried dumping all possible seeds in a range of frames (which can btw also be done on hardware using a script and the Pomeg glitch for ACE) using various emulators, I even inquired about frame stepping being implemented into NanoBoyAdvance so I can try to dump the seeds using that, as it is cycle accurate, but the developer herself has already tried that and confirmed it is indeed not resulting in the correct seeds. This is why I researched all of this in the first place, I wanted to dump the seeds, but only on emulator (which is impossible... for now), as I dont want to risk my actual cartridge by using ACE on it, that can go south quickly. The only part of this I guess "complex math problem" of sorts I dont (yet) understand is the final frame, as the timer seems to be halted after an amount of cycles/instructions that is different from frame to frame. So far I didn't find a pattern to this (and I'm probably not going to research further into this), but if someone was to find out why/in which cases extra instructions are executed before the seed is copied into its final resting place (address 0x0202000, regardless of language and well, game, of the gen 3 games) and used for seeding and in general how many instructions are executed/CPU cycles pass before this, then it would be possible to dump all seeds by "force" (aka math) alone, as the timer values at the end of frames are essentially always the same, only on the "final" frame the timer is cut short (because it gets deactivated) and then used for seeding, but as I explained, the amount of instructions run before seeding the rng is "random" (it isnt) and I dont know how to determine it. There seems to be a correlation between higher timer values resulting in bigger "instruction swings" so to speak, I can't really explain what I mean with this, it's super technical, but likely only coincidental anyways.
As a little addendum, after looking into your FRLG speedrun start guide (idk if that is still how its done today though), in theory, instead of entering your TID into some program, the ultimate final form of RNG manip (for speedrunning anyways) would require you to frame perfectly (this might be 1-3 inputs I'm guessing) get to the point where your TID is determined (I dont know how or when this works exactly, all I know is TID=Seed, but apparently seeding gets quite erratic on the new game screen, I havent researched that at all), and then from there you would just always hit the same TID (that results in a perfect starter in the low startup frames), however you probably can't name your rival "A", as I believe I have read somewhere that the naming screen also speeds up rng advancements, but that might be wrong, considering I also read Timer1 increments every 256 processor cycles, which is simply wrong. Alternatively you could also just take any TID, save infront of the starter, hard reset and utilize the method outlined above, as TID doesnt matter afaik in terms of pokemon generation. Since the startup seeds are always the same, you can just figure out a mapping that works and keep going for that, however as of right now, you'd have to always sit through the entire about 30 seconds of intro. Essentially resetting for a "perfect" is probably possible, but would most likely require a ton of frame perfect inputs. Resetting for a target SID is rather trivial, you start your flowtimer the same time you would start it in your video, then aim for a specific delay of frames to trigger the end of the new game thingy, then at the end of the animation past the last textbox the SID is determined, this final delay varies from version to version, for the english version its 249, for the german version its 207 frames (I had to reverse engineer the latter myself). Using the TID (that I dont care about, I just wanted to know my SID so I can rng manip shinies) and the delay used, it is then possible to calculate the SID from that (this is yet another technique explained on "im a blisy"s channel).
Addendum to the addendum: Alright, so just for fun I just tested how this works in vba-rr, it seems to work like this (theoretically): You hit your desired initial seed on the main menu screen (1 frame perfect input, further referred to as fpi), you proceed through the new game screen, I am not sure if there is anything frame perfect here, it might be that a specific screen here speeds up the rng, or the timer is reengaged at some point to reseed from scratch maybe, I didnt fully check for any of that, but I'm just gonna pretend there is 1 of those screens (or the timer gets reengaged to reseed), so we'll add 2 fpis, making that 3 fpis. Your TID is determined the moment you hit OK on the naming screen, not really, it is determined in the fadeout I think, but yeah, essentially that is when, making that another fpi. I'm guessing its somewhere between 3 - idk, lets say 6 or 7 fpis to rng manip a TID, which is only useful for speedrunners anyways though (or for people who want a cool TID I guess lol), so that is fine maybe. The thing with the erratic nature of the new game screen is, I'm 99% sure that its not "erratic" at all. It might progress the RNG state at different speeds on different screens or textboxes, but by surrounding those with frame perfect inputs, it should be possible to always rng manip the same TID off of a cold boot. Mashing won't work, as it's frame perfect, but by giving yourself let's say 5 seconds between every button press, it should be realistic to hit all the frame perfect button presses, like, every once in a while (as in, idk, veeeery rarely). Note that according to im a blisy you can only rng manip like this off of a cold boot/hard reset, SRing wont work! Aha, Timer gets reengaged on naming screen, maybe it is just 2 frame perfect inputs after all? Hm... now I'm curious, gonna test this.
Alright, heres my findings. You hit the correct initial seed, thats frame perfect (still not sure if that is necessary). I still dont know about some of the screens inbetween, but opening the naming screen is frame perfect, so is selecting the "A" as your first letter of the name I think, and so is pressing Start after. Maybe, not super sure about those two. The final A press to exit the naming screen is obviously also frame perfect. Using an emulator like vba-rr and some lua someone who is inclined to figure this out can easily research this, btw relevant addresses for this are: 04000104 is Timer1 Value, 04000106 is Timer1 Setting (might be relevant, probably not), 0202000 holds the initial seed, and later on the "final new game seed"
@@0Slashking0 Interesting. I'll bring this up to the speedrunning community and see what we can do with this. 👀
@@PulseEffects I added a little bit of stuff to the end, idk if you saw it, but yeah I did some of the research that might be necessary for you guys to figure it out^^. It's obviously not all the information you need, and I'm probably not the first to look into this, but yeah, there you go^^
Ok, this is the final bit of research I made, I'm gonna stop now^^: The A and Start Press seem to also be frame perfect. In vba-rr A can be held down on the first press, then you can just hold start, and to exit the screen, while holding A and start you can additionally use the L button as a second A button, so hold that one down as well. You obviously dont need to hold the buttons, but seeing how that is the most consistent way to get the same initial seed, I'm almost certain that holding buttons at specific points up to specific frames is the only way of making some of these frame perfect maneuvers work. I am almost certain that holding only matters in the exact frame a timer is started and stopped though. I think it's all frame perfect, but maybe thats just down to vba being inaccurate. Considering the moment the naming screen is opened seems to influence the final result aswell, even if all other inputs are frame perfectly in sync with the first input that opens the naming screen, there is a strong implication that opening the screen itself is also frame perfect, either as a result that it is being tied to the very first initial seed indirectly (by having a random delay of when the timer actually starts most likely, which probably depends on the initial seed indirectly), or resulting from, once again, vba inaccuracies.
@@0Slashking0 How'd you get to know so much about this? It's really impressive. Also, will your video have Eng subtitles?
I love the random Mass Effect music in the background
2:22 RESONANCE
So: RS the rng is seeded with current time, E has a bug that seeds with 0x00, and FRLG seeds with TrainerID/SecretID (whomst in turn are seeded from very precise timing information from the title screen)? Jeez
More generally, isn't it great that different games have slightly different mechanics?
Now people that like maniping can play Ruby & Co while people that don't want to manip will play Firered or Leafgreen. Sure, there are other factors to differentiate the games as well, but overall they are very similar so having additional differences via their mechanics is a positive imo.
1:57
Hell yeah, SMT4 music!
track at 6:45 is Pokemon Mystery Dungeon: Explorers of Sky - Steam Cave
I got FireRed in emulator in my phone and I'm trying to get a shiny starter, and for that I soft reset, but I've noticed that, if I keep pressed the TurboA button (that basically goes straight to pickup the starter since I saved in front of the pokeball) the starter I get is always exactly the same. I have to make pauses between my button presses or run a bit before picking the starter to make sure it will be different.
Yea what i do is pause a little and save state again before clicking, sometimes ill load the same frame over and hit different timings too.
@@musicstuff6310 Does save states work? I see that, if you load your saved state and do some running before picking the starter, the stats are different, so I think it might work, but still idk if it is enough for the starter ever be shinny by doing that or if you acually have to soft reset
7:40 - actually since tackle is 95% accuracy, there is a 73.5% chance that all tackles will hit over a 6 turn battle. This means that during the weedle fight tackle will only miss, on average, ONCE every 4 attempted runs. Not 1-2 times per run. This makes tackle the superior strat, not bubble.
im lost, not entirely sure why i watched this video in the first place, but got dam if this isnt the best song list for a youtube video ive ever watched. resonance into under night is a killer combo
Yooo shin megami tensei 4 Tokyo track at 1:58 is crazy, thanks for the memories. Greaaat video, FireRed is the bomb, played a lot in my childhood. All hail Lapras.
I was high on shrooms and saw the Veridian first trees as a caterpillar smiling with buck teeth and now I can't unsee it :(
I think you're getting satisfaction confused with relief.
You know...valid lmao
The fact that you can't manip this game is what makes it great. It feels much more accessible to the casuals.
Tip brock goes down easier with ember when onix is out but you do need metal claw for geodude if using charmander
Actually it's the other way around for a Speedrun. Geodude = Ember, Onix = Metal Claw.
@@PulseEffects for some reason ember saves me more against onix metal claw against geodude o.o
When using metal claw against onix I need charmeleon
@@PulseEffects How come that works better? Compared to Geodude, Onix has a 1.5x better Sp. Def but a 1.6x better Def, so I'd expect that if Ember's better on Geodude it should in theory also be better on Onix.
@_Vengeance_ Difference is that you don't get Metal Claw until you face Onix which comes out after Geodude. And even if you had it for Geodude, he loves to spam Harden, so Ember becomes the better option!
Thank you for talking about that CRAZY FRLG starter stat bs! You’re a life saver!
One line of code, and everything changes.
Hearing the Trauma Center OST on a Pokémon video... Can't tell if nostalgia or PTSD
Speaking on RNG manipulation in these games, knowing your TID/SID you can time your A-press on the title screen to land a set seed relatively often, but as you said ths seed generator moves SO quick on the title screen that this process is very difficult and almost entirely luck based. I’ve been RNGing static encounters for the legendaries on these games for my Shiny Legends home dex, and it is SUCH a pain 😂
I actually just started doing this myself. Might make a video on it in the future. 👀
4:14
Bulbasaur chilling as a grass type
It learns Vine Whip very late though. At least in the remakes it's better, in the originals you could beat Brock with a level 12 Charmander while Bulbasaur only gets Vine Whip on level 13.
That first bit felt personal
i am not immune to clickbait
edit: great video! I shall proceed to watch every single other video you have uploaded.
Squirrel 🐿️
Squirrel 🐿️
Squirrel 🐿
Squirrel 🐿
Squirrel 🐿️
Squirrel 🐿
Loved the commentary. thank you for video!
I thought it was a horror story by the beginning 😂
Linne’s theme. Nice.
PMD too, damn
with the revelation revealed at the end, i now crave frlg tas
I don’t think I’ve ever gotten to the Forrest without at least 3 Pokémon and at least a level 10.
That intro had major pokepasta energy- I just- I cant-
Welcome to Pokemon Speedrunning 👁👄👁
I wonder why he used so many cafe mix mons to represent them other than just the regular ones lol
I had no idea Pokerus was unavailable in FR/LG! I'm glad I can send it over from my other games where I got it. Gen 3 Emerald was the last to get Pokerus, randomly, not RNG abused. My first time was on Platinum, then nothing until Pokemon Sun, then again in Sword, then finally, the last bout was in Emerald, on a run for a Johto starter.
Pokerus is actually available in FRLG; it just doesn't go away or spread to other pokemon like in RSE. My first experience with pokerus was in LG which only made it more confusing as a kid since it didn't seem to behave like a virus...despite it telling me it was a virus?
i hear undernight inbirth music playing in the background, i like the video
Not sure if anyone sees this but can you give me the name of the last song used?
Shoutouts to Under Night
Home - Resonance LOL
you should list the music you used in this vid somewhere, if you haven't!
Again i dk much but would it be better to actually use bubble and then to get lower hp on the sandshrew instead. I am sure a crit on scratch should be good if weedle attacked just once....
No Geodude doesn't die and Sandshrew just gets more Sand Attack turns.
Donni If I got this right, but it seems too long of an explanation for "gotta press the A button at the exact precise time so I can get the Squirtle I want".
I managed to get through ruby, sapphire and emerald with a full team of shinys, starter included, for each one of them thanks to learning how to RNG manip in those games. But once I learned how complicated it is to RNG manipulate FRLG to the point of having to play the game to a gift pokemon JUST to learn your seeds and then you can reset for a shiny starter... Yeah I decided I wasn't even going to bother with RNGing shinys there, and decided to transfer Kanto pokemon to either Hoenn or Sinnoh to rng them there
Why not share a save where the Squirtle is already max stats with best nature?
Wasn't it good that they removed the clock code when making FRLG though? Maybe not for speedrunning, but for shiny hunting Emerald is the worst since with no battery you can't do much other than random encounters
ironmons first boss that sends you back to the lab. that damn bugcatcher
Ben Dover 👀 5:12
Based unist music, subbed
1:14 the text box says "A is hurt by poison", but it doesnt show the poison status? Nor does HP go down
Also known as a real RNG
The Smt music was fire
Given the crazy amount of Speed EVs you get in FRLG Quiet might be viable with a good enough IV
Thank you for an interesting video=)
This probably also explains the nuzlocke challenge being crazy in this game, thankfully sapphire is my favorite game so time to fudge rng xD
I think this makes LG (fuck FR) so much better as a set of games. CMM.
What's the music playing around 6:07? It's catchy
Night Walker from Under Night In-birth! =)
It's from a fighting game called under night in birth. Not 100% sure which song it is, but i *think* it's the character select music
I dont even know anything about pokemon speedruns i just clicked because the thumbnail looks so sad 😢
Mass effect music at 10:19???
4:31 what song is playing in the background here?
ua-cam.com/video/jFc_DY3M0hg/v-deo.html
SQUIRTLE ABUSE
The speed run would begin when you first start up the game the first time, and have to include the times you reset.
Based smt 4 music
is that UNIBEL? what ost used in your video?
Ngl I read the title as "Coke" instead of "Code" and I was like oh my I'm in for a ride
does anyone know what songs he uses in this video?? i love them
Nice SMT osts
What’s the song playing in the background at the very end?
What did captain kid do this time?
Twisted Rosalia OST at the end gave me good memories :')