Posts for gifvex

Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
Leaving animations on until after Weedle and using L5 Rattata for redbar saves a second for the cost of 18 xp. It still gives L10 for Onix but I didn't play past that, so I dunno if it affects something later. https://streamable.com/8rmltk
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
Did you check using Squirtle all the way to Tauros? Looking at your full-game Squirtle movie, it's very close with Clefable through the end of tower, after having done extra prep expecting to continue using Squirtle.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
ruadath wrote:
Are we expecting this version to console verify?
This movie, no. The exploit is fine as entrpntr verified a resync for console today. It was made with a work-in-progress build for an RTA emulator so it could be some time before those changes make it over.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
feos wrote:
What internal counter needs to be put into movies so that the site could use 4194304 cycles/sec to know exactly the real movie length? The cyclecount I added to movies recently doesn't seem to correspond to the correct rate.
I don't know if you had a certain example, but I recently submitted a gambatte movie and noted the cycle count in the header is accurate at 2097152 samples/sec. The counter accumulates the number of audio samples which has the same frequency as the higher clock speed the GBC can be set to.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
Some potential improvements from the demo in this post. I'm not sure where other time is lost but it could be below 9:50 with luck manip.
  • The soft reset before the sprite coordinate manip isn't needed in this route. It's useful in RTA to clear the engaged trainer class value so a battle with the trainer from the deathfly doesn't begin after the forest text. That value here is the special stat of the Pokemon caught after the deathfly. A battle still begins because it's nonzero, but it's a wild Pokemon and it's 6-7s faster to run from it than to do a soft reset.
  • The menu flash before the sprite coordinate manip also isn't needed in this route. It's required in RTA to load a $50 tile into the buffer that the TMTRAINER item's name will read from when A is pressed on it so it doesn't crash. This route doesn't buy that item so it can be skipped to save like 5s.
  • Another 10s+ can be saved with more efficient party swaps at the end. The demo sets the Hall of Fame script index to 2 to skip Oak's text and sets up a warp tile to the Hall of Fame, which can be done in 4 swaps total. This requires an item count of 2, Pidgey to have $76xx DVs, and the ACE to load $54 into the party count. The player name is used for the Pokedex owned flags instead of Pidgey's nickname.
Memory wrote:
ThunderAxe31 wrote:
In my opinion it's something that deserves a separate publication, also because it's mainly besed on a glitch that is not available in Red/Blue.
Which glitch is this?
The mart is possible in Red/Blue but not in the same way. In Yellow, the town map text uses ID $41, and the 65th text in Viridian Forest reads from $C331. The bird sprite is deloaded when its screen x-position is -2 to leave $FE, the control character for a mart, in the OAM buffer at $C331. Red/Blue's forest can read from $C331 with text IDs $27, $2C, and $31, but those aren't used by anything nearby.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
feos wrote:
Another question is, can a movie account for initial SRAM state that's been verified and is neither all $00 nor all $FF?
To post something: I'd like to try all the states ThunderAxe flashed but haven't had time yet. I would guess it's possible though. It's not possible to cover the entire checksum range (quickly) in-game, but by leaving nonzero values from the initial state like with all $FF, it should be able to have enough variance to hit whatever checksum is in that state. The answer to another question, "can a movie always account for initial SRAM state...", would be no without clearing save data. The basic mechanic here is not writing $50 to the space that will be loaded as Cyndaquil's nickname so it loads without a string terminator. If the initial state has a $50 there, the nickname will be terminated whether the game writes a $50 or not. Some other control characters in that space may also cause problems.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
feos wrote:
Where can I read which pokemon games are considered the same game by tasvideos standards?
Mothrayas wrote:
A Red run has obsoleted a Yellow run, so technically any of the Gen 1 games are fair game for obsoleting each other. It would depend on the category, though. A glitchless Red run obsoleting a glitchless Yellow run (or vice versa) would be silly. That said, back when the first SRAM glitch run was published, it didn't obsolete the JPN door glitch run because it was considered "different enough to warrant a new category" (so not to obsolete the Green run), establishing that the Green run is no longer published as any%. The same SRAM glitch could be done on the Japanese versions - it's not exclusive to the newer releases. Actually, considering its rating and our present-day publication structure, it probably should be retroactively obsoleted now.
Could Yellow or Yellow (JPN) obsolete [3655] GB Pokémon: Blue Version "warp glitch" by gifvex in 10:12.00? This is also a question about language obsoletions and branches, I guess. All three can forgo save data corruption and use an invalid script/text index in Viridian Forest to execute a little bit of arbitrary code from stored Pokemon data to help warp to the Hall of Fame. The select glitch for the "dokokashira door" Hall of Fame warp used in 1639M is only in Red & Green (JPN) and Blue (JPN), but is also a warp method, though this movie is within the save glitch branch history. If I am a user who wants to improve the warp glitch or save glitch branch in gen 1 Pokemon, which versions and languages are available? Other maybe relevant postings: I went through our Yellow/Red/Blue branches... Fixing all branch labels
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
FractalFusion wrote:
I admit that a lot of the 1st gen save corruption TASes abuse uninitialized SRAM (all FFs). This is the one crucial step in glitching the game to think you have 255 Pokemon so you can use the menu to corrupt more memory.
Patashu wrote:
Can this be clarified further? It is also possible to beat gen 1 pokemon RTA with the save corruption glitch. Is the TAS route not equal to the RTA route?
Aside from Red & Green (JPN), gen 1 fills the memory with $ff for the clear save action, so it has that going for it.
feos wrote:
So to clarify, the setup relying on $FF filled SRAM would make the movie shorter or longer? If it'd be shorter, all we need to know is a real life proof that in normal conditions fresh SRAM may be filled with $FF. If it's actually possible, a movie using such a setup may obsolete this one in future.
The movie should be shorter if clear save is skipped and it's all $ff. It would save maybe 5s in the intro with luck manip and lose about 2.5s to a TIME NOT SET prompt when loading the save later. The checksum concept also changes. The values already in SRAM in this movie are $00 and do not contribute to the sum, but $ff values would. This means the checksum can be anywhere from about $28000 to $3d000 by changing where the reset is between Cyndaquil's DVs and its nickname's string terminator. It would save another 10s or so without the need for a player name or extra box names to contribute to the checksum.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
ThunderAxe31 wrote:
Would it be possible to resync this movie for removing the part in which you clear the save data, or is that necessary for the specific glitch setup you used? In the first case we could replace the movie file in this submission, while in the second case the submission would have chances to be accepted as it is.
lucky beat me to it, but yeah, the setup in this movie requires the values not written by the save process to be $00. The morals around using an in-game method to do this rather than finding an emulator with that as the default saveram state is mostly lighthearted.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
And we thought EFLs were dead. Bonus note for the thread: it's been a theme of recent Pokemon TASes to sync on console, but BizHawk still has some issues with the gen 2 Pokemon games. For this movie, all that needs to change is 1 input in the box names to accomodate for an incorrect real-time clock value in the save file that affects the checksum. This assumes someone has a way to time the 10μs reset window on hardware though.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
dwangoAC wrote:
Can you please clarify what level of console verification was employed here? Did you use Endrift's GBPP? I'd like to try to follow through on actual verification on console if there's a way to do it.
For the topic: I'm in contact with dwango and we'll look to get the console verification replicated at some point.
Alyosha wrote:
@gifvex: how did this realization come about? I'm not aware of the GBA version of GBC BIOS being dumped. Did this solution just match up to observed behaviour and was simple enough to be correct? (I failed to arrive at this solution when looking over the code myself a couple months back so nice work to whoever came up with that!)
Correct, it was a theory by ExtraTricky in 2016 and has held up since. The difference in initial state between GBC and GBA is (1) the b register is 1 higher, (2) the zero flag is reset, and (3) the cycle counter is 4 higher. Most of the accuracy changes came from identifying random number divergence between console and emulator then drilling down the missing or extra cycles.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
MrWint wrote:
Amazing work, the precision down to individual CPU cycles necessary to make this work is really impressive. I'm happy a setup to exploit the TFly in Viridian Forest to trigger ACE has finally been found, I remember I looked at that a few years ago. I'm not surprised I didn't find anything, seeing now how it works and how it was discovered. Congratulations on this run. Seeing this makes me want to return to this game, but I'm rusty and would need to catch up on a lot of things.
Thank you. I'm happy you got to see it, your submissions set an incredible precedent for luck manipulation.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
FractalFusion wrote:
Oh, nice. I had actually considered making this run (not to such a perfect extent though) when I first saw it on speedrun.com. Good thing I didn't actually work on it (beyond a single test run I made in a couple hours). A bit surprised you were willing to do all this work in a category where every single run is in danger of being completely obsoleted by a single discovery.
I was behind the routing for what's on SRC and set aside some setups not viable for real-time runs, so most of the work was done then. If a new discovery is found then that's always a good thing. It could be a long time though, trainerfly is still the earliest glitch after save corruption, just now it's used for ACE.
Fortranm wrote:
Do you plan to make a GSC any% run based on current RTA route?
Maybe, but GSC still needs some work done on RTC emulation to sync with console.
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
Mothrayas wrote:
Thanks for the input, gifvex - good to know about the history of these emulation updates. So, if I read this right, this run then technically runs on inaccurate emulation behaviour, which just happens to give the right results for Red/Blue. That's useful to know.
Correct: this TAS could be played back on Game Boy Player as is, but the linked GitHub repository in the submission isn't the latest version of changes, so I wanted to make sure no one assumed it as such.
Mothrayas wrote:
Any chance that you (or perhaps someone else) could elaborate on this?
I edited my post a bit, but to expand, the submitted movie uses three instances of RTA manipulation, which rely on a hard reset and fully-buffered inputs. The three instances were trainer ID via power on, Pidgey via save & quit, and Ditto via save & quit. TAS of course doesn't need to rely on resetting to manipulate from power on because the current RNG state is known, and can use frame perfect inputs instead of only inputs with easy-to-hit windows. Pidgey is not required when selecting Charmander as the starter and manipulating for two specific bytes as its DVs (stats). MrWint's publication here shows the use of Charmander: http://tasvideos.org/2680M.html The input file can be ended earlier by performing an additional swap in the party menu to manipulate the caught flags in the Pokedex for less text in the Hall of Fame. Another publication by MrWint utilizes this text strategy: http://tasvideos.org/4431S.html
Experienced Forum User, Published Author, Former player
Joined: 3/13/2017
Posts: 15
Hi, I was just made aware of Graystripe's submission so I'll chime in. Emulator: The (RTA) PokemonSpeedruns community created a method of RNG manipulation in Red/Blue/Yellow for use in their speedruns in August 2016. At the time, the only emulator that matched console (Game Boy Player / GBA) for these manipulations was BGB 1.5.2 by beware, but only for Red/Blue. Community efforts eventually lead to discovering some changes that could be made to emulation source to match console. Graystripe used a modification of BizHawk "bizhawk-psr" that was created in September that does indeed match console for Red/Blue, in both GBC and GBA mode. Since then, some corrections - false leads that happened to work for Red/Blue - and other changes were made to match console for Yellow, and at least as far as the trainer ID for Gold/Silver/Crystal. These changes were not made to bizhawk-psr but rather "gambatte-speedrun", which is currently the emulator of choice for RTA runs and can be found at http://github.com/dabomstew/gambatte-speedrun . BGB 1.5.3 was recently released and also reflects these changes. Eventually, once PokemonSpeedruns was confident that the emulation changes truly reflected console and didn't just happen to produce correct results, the plan was to submit to BizHawk so that TAS could be created that would play back on console. TAS: As for the TAS itself, it can be in the 10-11 minute range based on current knowledge in the community that Graystripe is a part of. This seems like a decent practice movie using RTA strategies, but I'm looking forward to an improvement.